多芯片初始化方法及装置与流程

文档序号:15166205发布日期:2018-08-14 17:30阅读:408来源:国知局

本发明涉及数据网络通信领域,尤其是涉及到多芯片初始化方法及装置。



背景技术:

大型分布式通信设备上电时通常需要启动多个处理器,每个处理器都要初始化不同种类的芯片,且不同种类的芯片初始化流程也不一样。每种芯片的初始化流程分为多个阶段,这些阶段之间有一定的依赖关系,导致不同种类的芯片无法进行完全独立的并行初始化。同时,由于每个处理器负责初始化的芯片种类和关系各不相同,而这种依赖关系并非是静态不变的,它随着内部协作关系变化而变化,不能通过固定的芯片并行初始化流程来解决。

相关技术中,为了避免芯片初始化失败降低系统可靠性的问题,大多数设备都采用串行方式进行初始化。然而在芯片非常多的情况下采用串行初始化方案会导致设备上电耗时过长。

相关并行初始化技术只对同种类没有依赖关系的芯片适用,没有解决不同种类芯片之间的依赖问题,因而只能在一定范围内进行并行初始化处理。

针对相关技术中不支持不同类型芯片并行初始化的问题,现有技术还未提出有效的解决方案。



技术实现要素:

本发明的目的在于提供了芯片初始化方法及装置,解决了相关技术中不支持不同类型芯片并行初始化的问题。

根据本发明的一个方面,提供一种多芯片初始化方法,包括:根据各芯片在初始化进程中不同任务之间的依赖关系确定当前可初始化任务,其中,该当前可初始化任务独立于其他初始化任务;以同一时间作为初始化起点,对该当前可初始化任务进行初始化处理;清除该当前可初始化任务的依赖关系,确定待初始化任务中的下一可初始化任务,直至所有待初始化任务都完成初始化。

进一步,在根据各芯片在初始化进程中不同任务之间的依赖关系确定当前可初始化任务之前,该方法还包括:解析预设的依赖关系配置文件;从该解析结果中获取该依赖关系。

进一步,在根据各芯片在初始化进程中不同任务之间的依赖关系确定当前可初始化任务之后,该方法还包括:判断该依赖关系是否包括预设的需调整依赖关系,其中,该需调整依赖关系包括循环依赖和错误依赖;在判断结果为是的情况下,调整该依赖关系。

进一步,该清除该当前可初始化任务的依赖关系包括:判断是否存在处于依赖于已初始化状态的当前可初始化任务;在判断结果为是的情况下,清除关于该当前可初始化任务的依赖关系。

进一步,该依赖关系包括:可初始化任务依赖于多个初始化任务。

根据本发明的另一方面,提供一种多芯片初始化装置,包括:确定模块,用于根据各芯片在初始化进程中不同任务之间的依赖关系确定当前可初始化任务;其中,该当前可初始化任务独立于其他初始化任务;初始化模块,用于以同一时间作为初始化起点,对该当前可初始化任务进行初始化处理;清除模块,用于清除该当前可初始化任务的依赖关系,确定待初始化任务中的下一可初始化任务,直至所有待初始化任务都完成初始化。

进一步,该多芯片初始化装置还包括:解析模块,用于解析预设的依赖关系配置文件;获取模块,用于从该解析结果中获取该依赖关系。

进一步,该装置还包括:判断模块,用于判断该依赖关系是否包括预设的需调整依赖关系,其中,该需调整依赖关系包括循环依赖和错误依赖;调整模块,用于在判断结果为是的情况下,调整该依赖关系。

进一步,该清除模块包括:判断单元,用于判断是否存在处于依赖于已初始化状态的当前可初始化任务;清除单元,用于在判断结果为是的情况下,清除关于该当前可初始化任务的依赖关系。

进一步,该依赖关系包括:可初始化任务依赖于多个初始化任务。

通过本发明,采用通过定制生成依赖关系表的依赖配置文件,并根据依赖关系表的动态更新决定并行启动哪些芯片初始化任务的技术方案,解决了相关技术中不支持不同类型芯片的问题,提高多芯片并行初始化的程度。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的多芯片初始化方法的流程图;

图2是根据本发明实施例的多芯片初始化装置的结构框图;

图3是根据本发明优选实施例的多芯片初始化装置的结构框图一;

图4是根据本发明优选实施例的多芯片初始化装置的结构框图二;

图5是根据本发明优选实施例的多芯片初始化装置的结构框图三。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种多芯片初始化方法及装置,图1是根据本发明实施例的多芯片初始化方法的流程图,如图1所示,该流程包括如下步骤:

步骤s102,根据各芯片在初始化进程中不同任务之间的依赖关系确定当前可初始化任务;其中,所述当前可初始化任务独立于其他初始化任务。上述依赖关系包括一对一的依赖关系,也包括一对多的依赖关系,也即一初始化任务依赖于多个初始化任务。

使用任务(work)描述芯片初始化的各个阶段。多芯片初始化流程中首先启动设备,创建芯片初始化管理线程,读取依赖关系配置文件,其中该依赖关系配置文件包括各芯片在初始化进程中不同任务之间的依赖关系。遍历上述依赖关系,确定独立于其他初始化任务的可初始化任务,该当前可初始化任务不依赖于其他初始化任务。

优选地,检查上述确定的依赖关系,确保没有循环依赖或错误依赖。所谓循环依赖是指至少两个待初始化任务之间相互存在依赖关系,换言之其依赖关系形成闭环。举例而言:对于两种待初始化任务,第一待初始化任务和第二待初始化任务,若待第一初始化任务依赖于第二待初始化任务,第二待初始化任务依赖于第一待初始化任务,则认为二者之间形成循环依赖。对于三种待初始化任务,第一待初始化任务、第二待初始化任务和第三待初始化任务,若待第一待初始化任务依赖于第二待初始化任务,第二待初始化任务依赖于第三待初始化任务,第三待初始化任务依赖于第二待初始化任务,则认为三者之间形成循环依赖。处于循环依赖的状态下的待初始化任务无法执行初始化。所谓错误依赖是指依赖关系存在错误。

步骤s104,以同一时间作为初始化起点,对所述当前可初始化任务进行初始化处理。

为每个芯片创建一个初始化处理线程,在需要进行初始化时,将该芯片投递到该初始化线程中去,并运行线程启动对应的可初始化任务。

步骤s106,清除所述当前可初始化任务的依赖关系,确定待初始化任务中的下一可初始化任务,直至所有待初始化任务都完成初始化。

在上述当前可初始化任务初始化完成后,清除与该已完成初始化的当前可初始化任务相关的依赖关系,包括依赖于上述已初始化完成的当前可初始化任务。由于该已完成初始化的当前可初始化任务,其不会再影响依赖于其的待初始化任务的初始化,仅依赖于其的待初始化任务可以启动初始化线程。

针对大型通信设备芯片种类繁多,依赖关系复杂的情况,本实施例提出一种通过定制依赖配置文件,由依赖配置文件生成依赖关系表,并根据依赖关系表的动态更新决定并行启动哪些芯片初始化任务,最终达到多种芯片并行初始化,缩短设备启动时间的目标,同时解除了控制流程和特定硬件结构之间的耦合,保证了所支持设备的多样性。

一种优选实施例为建立二维的依赖关系表,其横行和竖列都为初始化任务,单元格中用0和1表示任务之间的依赖关系。其中,1表示该行任务依赖于该列任务,0表示该行任务不依赖于该列任务。举例而言,某设备存在3组芯片,分别为为chip1、chip2、chip3。chip1初始化过程分为work1_1、work1_2、work1_3三个任务,chip2初始化过程分为work2_1、work2_2两个任务,chip3初始化过程分为work3_1、work3_2、work3_3三个任务,则依赖关系表为:

如横行为work3_1,竖列为work2_2定位的单元格为1,表示work3_1依赖work2_2,在work2_2未完成初始化的情况下,work3_1无法执行初始化。

该多芯片初始化流程包括:首先判断是否存在横行都为0的待初始化任务,也即不依赖于其他初始化任务。确定work1_1与work2_1可以首先启动初始化进程,由于二者之间不存在依赖关系,因此二者可以启动并行初始化,也即以同一时间作为初始化起点,对该当前可初始化任务进行初始化处理。初始化执行完毕后,将work1_1与work2_1所处的竖列的值清零,也即清除掉其他待初始化任务依赖该二者的依赖关系记录,重新判断是否存在待初始化任务中下一可初始化任务。该下一可初始化任务不依赖于其他的待初始化任务,也即其所处的横行的值为0。将该待下一可初始化任务并行初始化后,清除该下一可初始化任务的依赖关系,直至所有待初始化任务全部完成初始化。

图2是根据本发明实施例的多芯片初始化装置的结构框图,如图2所示,该装置包括:

确定模块22,用于根据各芯片在初始化进程中不同任务之间的依赖关系确定当前可初始化任务;其中,该当前可初始化任务独立于其他初始化任务;

初始化模块24,用于以同一时间作为初始化起点,对该当前可初始化任务进行初始化处理;

清除模块26,用于清除该当前可初始化任务的依赖关系,确定待初始化任务中的下一可初始化任务,直至所有待初始化任务都完成初始化。

上述依赖关系包括一对一的依赖关系和一对多的依赖关系,也即可初始化任务可以依赖于一个初始化任务,也可以依赖于多个初始化任务。

图3是根据本发明优选实施例的多芯片初始化装置的结构框图一,如图3所示,该装置还包括:

解析模块32,用于解析预设的依赖关系配置文件;

获取模块34,用于从所述解析结果中获取该依赖关系。

图4是根据本发明优选实施例的多芯片初始化装置的结构框图二,如图4所示,该多芯片初始化装置还包括:

判断模块42,用于判断所述依赖关系是否包括预设的需调整依赖关系,其中,所述需调整依赖关系包括循环依赖和错误依赖;

调整模块44,用于在判断结果为是的情况下,调整所述依赖关系。

图5是根据本发明优选实施例多芯片初始化装置的结构框图三,如图5所示,该清除模块包括:

判断单元52,用于判断是否存在处于依赖于已初始化状态的当前可初始化任务;

清除单元54,用于在判断结果为是的情况下,清除关于所述当前可初始化任务的依赖关系。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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