一种芯片启动的方法、网络设备和机器可读存储介质与流程

文档序号:22313577发布日期:2020-09-23 01:34阅读:97来源:国知局
一种芯片启动的方法、网络设备和机器可读存储介质与流程

本公开涉及通信技术领域,尤其涉及一种芯片启动的方法、网络设备和机器可读存储介质。



背景技术:

smp(symmetricmultiprocessing,对称多处理系统)架构的多核多硬件线程芯片是当前网络处理芯片常见采用的处理器架构,在这样的系统中,所有的cpu共享全部资源,如总线,内存和i/o系统等,只有一个操作系统,这种系统有一个最大的特点就是共享所有资源。多个cpu之间没有区别,平等地访问内存、外设和操作系统。

如图1所示,多核多硬件线程芯片有多个core,每个core内部又有多个cpu。芯片上的cpu都启动并运行起来,才能进入数据业务处理流程。当前主流linux操作系统对于smp架构的多core多cpu(即多核多硬件线程)芯片启动采用的是串行的启动方式,一个cpu启动完成才会启动下一个cpu,理论上来说cpu的个数越多启动越慢。尤其,芯片的前期开发需要在simulation/emulation仿真平台上做各种验证工作,simulation/emulation仿真平台的工作频率最低可达1khz,按现在多core多cpu芯片常用频率1ghz来算,那么在simulation/emulation环境下的频率是真实芯片频率的百万分之一,对应运行相同的软件启动流程,其消耗时间理论上也为真实芯片的一百万倍。



技术实现要素:

本公开实施例提供了一种芯片启动的方法、网络设备和机器可读存储介质,通过该方法,可以缩短多核多硬件线程芯片的启动时间。

本公开实施例提供了一种芯片启动的方法,该芯片为多核多硬件线程芯片,并且,该芯片包括两个或两个以上的核core,每个core包括两个或两个以上的cpu,该方法包括:

所述芯片中第一core的第一cpu启动;

所述第一cpu向所述芯片中的第二core发送唤醒信息,其中,所述第二core包括除去所述第一core之外的其它core;

以使所述第二core在接收到所述唤醒信息后启动;

其中,所述第一core为所述芯片中的主控core。

通过上述实施例可以看出,当多核多硬件线程芯片中的第一core中的某一cpu启动后,就可以向除第一core之外的其它第二core发送唤醒信息,以使第一core中的其它cpu启动时,第二core中的cpu也可以处于启动状态,大幅度减少了芯片的启动时间。

在另一种实施例中,在所述芯片中第一core的第一cpu启动后,所述方法还包括:所述第一cpu指示所述第一core中的其它cpu启动。

在另一种实施例中,所述第一cpu向所述芯片中的第二core发送唤醒信息,具体包括:

所述第一cpu向某一个第二core发送唤醒信息;或者,

所述第一cpu向所有第二core发送唤醒信息。

在另一种实施例中,所述以使所述第二core在接收到所述唤醒信息后启动,具体包括:

所述第二core在接收到所述唤醒信息后,启动所述第二core中的第二cpu,所述第二cpu为所述第二core中的主cpu。

在另一种实施例中,所述方法还包括:

所述第二cpu向其它第二core发送唤醒信息;

所述第二cpu指示所在的第二core中的其它cpu启动。

本公开实施例还提供了一种网络设备,所述网络设备具有多核多硬件线程芯片,所述网络设备包括:处理器和机器可读存储介质;

所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一实施例。

本公开实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一实施例。

附图说明

图1.为本公开实施例提供的一种芯片架构示意图;

图2.为本公开实施例提供的一种芯片架构示意图;

图3.为本公开实施例提供的一种芯片启动的方法的流程示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

一种多核多硬件线程芯片,如图2所示,其中,core0为该芯片的主控核,当core0中的cpu0启动后(若core0中除cpu0还有其它cpu,则需要等待所有cpu启动)会指示core1中的cpu0-cpun启动,待core1中的全部cpu启动后,会指示core2中的所有cpu启动,以此类推一直到corex中的cpu全部启动后,该芯片完成启动工作,有上述过程可以看出,由于芯片中每个核以及每个核中的cpu都是串行启动,从而导致芯片启动的时间过长,由于在simulation/emulation仿真平台上做验证工作时,其启动时间更是比真实芯片启动的时间长出数倍。

如图3所示,本公开实施例提出了一种芯片启动的方法,该方法用在多核多硬件线程芯片,该多核多硬件线程芯片包括两个或两个以上的核core,每个core包括两个或两个以上的cpu,该方法包括:

s1.所述芯片中第一core的第一cpu启动;

s2.所述第一cpu向所述芯片中的第二core发送唤醒信息,其中,所述第二core包括除去所述第一core之外的其它core;

s3.以使所述第二core在接收到所述唤醒信息后启动。

其中,第一core为所述芯片中的主控core。

一般情况下,多核多硬件线程芯片中会设有主控core,用于管理该芯片中的其它非主控core,在本实施例中,第一core可以为该多核多硬件线程芯片中的主控core。

同时,在多核多硬件线程芯片中,每个core中都可能存在多个cpu,在本实施例中,第一core中也可能存在多个cpu(由于第一core为主控cpu,不排除因该core只执行主控功能而只存在一个cpu的情况),在多个cpu中也会存在优先级的设定,一般来说,会在多个cpu中选定一个cpu作为主cpu,例如本实施例中的第一cpu。

在步骤s1中,当芯片接收到唤醒信息时,多核多硬件线程中的主控core会优先响应该唤醒信息,例如,本实施例中的第一core优先响应该唤醒信息,具体为第一core中的第一cpu优先响应该唤醒信息,并根据该唤醒信息执行启动。

在本实施例中,当第一cpu完成启动后,会向该芯片中的其它core发送唤醒信息,例如向第二core发送唤醒信息,其中,第二core为该芯片中除第一core之外的core,既非主控core,并且,第二core可以为某一个core,也可以是全部的非主控core。在一种情况下,当第二core为某一个core时,第一cpu向该某一个core发送唤醒信息,以使该某一个core中的第二cpu启动,当第二cpu启动后,便可以向另一个第二core发送唤醒信息,以此类推,以至全部的core均接收到唤醒信息。在另一种情况下,第一cpu在启动后,可以向全部的第二core发送唤醒信息,以使全部的第二core可以接收到唤醒信息。

在本实施例中,当第一core中的第一cpu启动后,在向第二core发送唤醒信息的同事,第一cpu向第一core中的其他cpu发送唤醒信息。同理,基于上述实施例,当第二core为某一个core时(为便于区分,此处称为第二目标core,对应第二目标核中的主cpu,称为第二目标cpu),第二目标core接收到第一cpu(或者其它第二core中的第二cpu)发送的唤醒信息时,当第二目标cpu完成启动后,可以向其他第二core发送唤醒信息,同时,第二目标cpu可以向该第二目标core中的其他cpu发送唤醒信息,直到该芯片中的所有core中的cpu均完成启动。

通过上述实施例可以看出,当多核多硬件线程芯片中的第一core中的某一cpu启动后,就可以向除第一core之外的其它第二core发送唤醒信息,以使第一core中的其它cpu启动时,第二core中的cpu也可以处于启动状态,避免,只有当某一core中的cpu全部启动后,才能使另一个core中的cpu开始启动,采用本实施例中的方法,可以大幅度减少了芯片的启动时间。

为了对本公开中的方案进行详细阐述,本公开还提供了一种实施例,如图2所示,多核多硬件线程芯片,包括若干core,其中每个core中包括若干cpu,当该芯片接收到唤醒信息后,该芯片中的主控core0(既第一core)中的cpu0(既第一cpu)开始启动。

在一种实施例中,当cpu0启动后,会向core1发送唤醒信息,core1中的cpu0接收到唤醒信息后会执行启动,当cpu0启动后一方面,会向core2发送唤醒信息,以使core2中的cpu0执行启动,另一方面,cpu0会向core1中的cpu1发送唤醒信息,当cpu1根据唤醒信息启动后,会向core1中的cpu2发送唤醒信息,以此类推,直到core1中的cpun启动。需要说明的是,当core2中的cpu0启动后,会执行与core1中的cpu0相同的动作,既core2中的cpu0向corex发送唤醒信息,同时core2中的cpu0会向core2中的cpu1发送唤醒信息。

在另一种实施例中,当cpu0启动后,会向core1-corex发送唤醒信息,使得core1-corex中的cpu0接收到该唤醒信息后,同时进行启动。

由上述实施例可以看出,当启动芯片时,主控core中的主cpu启动后,就会向其他core发送唤醒信息,使得一定时间内各core中的cpu可以均处于启动状态,从而避免,只有当某一core中的cpu全部启动后,才能使另一个core中的cpu开始启动,采用本实施例中的方法,可以大幅度减少了芯片的启动时间。

基于与上述方法相同的思想,本公开实施例还提供了一种网络设备,该网络设备具有多核多硬件线程芯片,该网络设备包括:处理器和机器可读存储介质;

该机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,该处理器被所述机器可执行指令促使:实现方法实施例中的各步骤。

基于与上述方法相同的思想,本公开实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,该机器可执行指令促使所述处理器:实现方法实施例中的各步骤。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法和电子设备,也可以通过其它的方式实现。以上所描述的实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施方式的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

最后应说明的是:以上所述实施方式,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施方式对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施方式所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施方式技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1