CN101051274A - 实现多cpu加载的系统及方法 - Google Patents
实现多cpu加载的系统及方法 Download PDFInfo
- Publication number
- CN101051274A CN101051274A CN 200610078815 CN200610078815A CN101051274A CN 101051274 A CN101051274 A CN 101051274A CN 200610078815 CN200610078815 CN 200610078815 CN 200610078815 A CN200610078815 A CN 200610078815A CN 101051274 A CN101051274 A CN 101051274A
- Authority
- CN
- China
- Prior art keywords
- cpu
- software
- storage unit
- load server
- loading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种通信系统中的实现多CPU加载的系统及方法,包括多个CPU每个CPU都有独立的引导系统BOOTROM、基本软件、扩展软件和数据文件的存储单元;每个CPU上的BOOTROM优先从本地加载,即从各自独立的存储单元中取得基本软件进行启动,如果启动失败再由引导系统加载服务器加载;每个CPU上的基本软件优先从本地加载,即从各自独立的存储单元中取得扩展软件和数据文件进行启动,如果启动失败再由正常系统加载服务器加载。基本软件启动成功后,和加载服务器通信校验版本,如果版本不正确主动进行版本更新并复位,是一种高速、可靠的多CPU系统快速加载的系统及方法。
Description
技术领域
本发明涉及一种计算机领域的技术,尤其涉及一种多CPU快速加载处理技术。
背景技术
目前,高集成度、分布式处理是通信系统发展的方向。通常通信系统的结构包括多个CPU(中央处理单元),例如,对于由多机柜组成的通信系统来说,一个机柜中包括多个机框,每个机框中分布着多块单板,每块单板可以是单CPU,也可以是多个CPU。
CPU是分布软件的基本单元。由于不兼容CPU指令集的不一样,所以不同CPU上可能分布不同的软件,而且,即使是兼容CPU之间,由于物理资源或是业务类别的限制,也有可能运行不同的软件。
因此,对于多CPU系统来说,需要实现灵活分布、更新和控制各个CPU上的软件,包括针对软件的加载、启动、升级。其中,加载是指单CPU如何获得正确的软件和数据,启动是指单CPU上的软件进行初始化,多CPU软件在初始化时进行配合以完成整个系统的启动的处理过程。
目前,在通信系统中实现多CPU加载的方法主要有两种,下面将对这两种多CPU加载的实现方案分别进行说明。
(一)在现有技术中,采用的一种多CPU加载实现方案是全系统统一设计一个加载服务器,该加载服务器负责对全系统中所有CPU进行软件加载。
其中,加载服务器的功能包括:指示被加载CPU进行加载通道的建立,以及指示被加载CPU进行软件文件和数据文件的下载。
对于被加载CPU来说有一个最小软件系统,这通常称之为BOOTROM(引导系统),BOOTROM负责和加载服务器进行通信,完成加载通道的建立。之后,通过加载通道加载CPU的基本软件,进行BOOTROM的启动,启动成功后再通过同一个加载通道加载扩展软件和数据文件进行CPU的基本软件的启动。
可以看出,在该实现方案中,存在以下缺点:
(1)可扩展性差的缺点:
BOOTROM作为最小软件系统,在系统版本的升级时,虽然在原则上需要保持其不变,但由于加载通道和文件下载在版本升级时可能会变动,因此,对BOOTROM仍然会有联动升级的需求;
(2)容易发生单点故障:
由于加载服务器如果发生故障,则整个系统将无法正常加载,因此,使得当针对某一个CPU无法正常加载时,将导致单点故障,影响整个通信系统的性能;
(3)加载速度比较慢:
所有CPU的加载依赖于加载通道的建立,并顺序加载,在加载通道带宽小或被加载CPU数据多的情况下将导致加载速度较慢,进而降低了针对多CPU的加载效率。
在现有技术中,还采用了另外一种多CPU加载实现方案,具体为:
全系统统一设计两个加载服务器,一个是引导系统加载服务器,负责BOOTROM加载,另一个是正常系统加载服务器,负责正常系统加载。其中,每个CPU的BOOTROM是由引导系统加载服务器通过BOOTROM的加载通道加载CPU的基本软件进行启动;每个CPU的基本软件是由正常系统加载服务器通过基本软件加载通道加载扩展软件和数据文件进行启动。
该方案虽然克服了前一方案的可扩展性差的缺点,但是同样存在易单点故障,即加载服务器如果发生故障则整个系统无法正常加载,同时,在该实现方案中,由于所有CPU的加载仍依赖于加载通道的建立并顺序加载,因此,由加载通道带宽小或被加载CPU数据多的情况导致的加载速度较慢的问题将依然存在。
发明内容
本发明的目的是提供一种高速、可靠的多CPU加载系统及利用该系统实现多CPU系统快速加载的方法。
本发明的目的是通过以下技术方案实现的:
本发明实现多CPU加载的系统,包括多个CPU,其特征在于,每个CPU都设置有各自的软件存储单元,当对CPU进行加载时,则调用各自的软件存储单元中存储的软件或数据进行CPU加载操作。
所述的软件存储单元包括:引导系统BOOTROM存储单元、基本软件存储单元、扩展软件存储单元和数据文件存储单元。
所述的软件存储单元是通过硬盘或快闪存储器FLASH实现的。
本发明实现多CPU加载的系统最好还包括:可与多CPU通信的远端引导系统加载服务器和正常系统加载服务器,当各个CPU通过各自的软件存储单元加载失败时,则通过所述的引导系统加载服务器和正常系统加载服务器进行CPU加载操作。
本发明实现多CPU加载的方法,其特征在于,包括步骤:
A、每个CPU从各自的软件存储单元中调用加载过程中需要的信息,并进行加载处理;
B、各个CPU加载成功后,与加载服务器通信完成加载操作。
所述的步骤B还包括:
各个加载成功的CPU与加载服务器通信,进行版本校验,并版本不正确时,主动进行版本更新、复位。
上述实现多CPU加载的方法还包括步骤:
C、当该CPU加载未成功时,通过引导系统加载服务器和正常系统加载服务器对该CPU进行加载操作。
所述的步骤C包括:
C1、各个CPU上的BOOTROM由引导系统加载服务器通过BOOTROM的加载通道取得CPU的基本软件进行启动;
C2、各个CPU上的基本软件由正常系统加载服务器通过基本软件的加载通道取得扩展软件和数据文件进行启动。
所述的步骤A包括:
A1、各个CPU上的BOOTROM从各自的软件存储单元中取得基本软件进行启动;
A2、各个CPU上的基本软件从各自的软件存储单元取得扩展软件和数据文件进行启动。
所述的步骤A1最好还包括:
当该CPU上的BOOTROM启动未成功时,由引导系统加载服务器通过BOOTROM的加载通道取得CPU的基本软件进行启动,并执行步骤A2;
在执行步骤A2后,当该CPU上的基本软件启动未成功时,由正常系统加载服务器通过基本软件的加载通道取得扩展软件和数据文件进行启动。
由上述本发明提供的技术方案可以看出,本发明所述的实现多CPU加载系统及方法,由于每块CPU都设置有各自的软件存储单元,当对CPU进行加载时,则调用各自的软件存储单元中存储的软件或数据进行CPU加载操作,不依赖于加载通道的建立,速度快、不易发生单点故障;又由于各个CPU加载成功后,和加载服务器通信,校验版本,如果版本不正确,主动进行版本更新并复位,保证了版本的可靠性;另外,由于本发明还包括引导系统加载服务器和正常系统加载服务器,当各个CPU通过各自的软件存储单元加载失败时,则通过所述的引导系统加载服务器和正常系统加载服务器进行CPU加载操作,进一步保证了系统的可靠性。
附图说明
图1为本发明所述系统中各CPU的软件存储单元的结构示意图;
图2为本发明中所述的方法的原理图。
图3为本发明中所述的系统的具体实现结构示意图;
图4为本发明中所述的方法的具体实现流程示意图。
具体实施方式
本发明的核心是分别为各个CPU设置相应的软件存储单元,并在针对通信系统的多个CPU进行加载时,首先利用各自的软件存储单元进行多CPU的加载,之后,再与加载服务器通信完成加载操作。从而可以实现针对多个CPU的快速加载处理,解决了目前多CPU加载速度慢、系统可靠性低的问题。
具体一点讲,本发明提供了一种实现多CPU加载系统和一种实现多CPU快速加载的方法,下面将分别对所述的系统和方法的实现进行说明。
所述的实现多CPU加载系统,包括多个CPU,如图1所示,各CPU都设置有各自的软件存储单元,当对CPU进行加载时,则调用各自的软件存储单元中存储的软件或数据进行CPU加载操作。所述的软件存储单元包括引导系统BOOTROM存储单元、基本软件存储单元、扩展软件存储单元和数据文件存储单元。上述软件存储单元一般是通过硬盘或快闪存储器FLASH两种介质实现的。
系统还包括引导系统加载服务器和正常系统加载服务器,当各个CPU通过各自的软件存储单元加载失败时,则通过所述的引导系统加载服务器和正常系统加载服务器进行CPU加载操作。
所述的实现多CPU快速加载的方法,如图2所示,包括:
步骤21:每个CPU优先从各自的软件存储单元中调用加载过程中需要的信息,并进行加载处理。
如果加载成功,则进行:
步骤22:与加载服务器通信,校验版本,如果版本不正确,主动进行版本更新并复位。
版本更新并复位是指通过可与CPU通信的远端加载服务器主动进行版本的升级,并回复到启动状态,此时可以根据需要选择重新启动系统,或不重新启动系统而等到下一次启动系统时应用新的版本。选择重新启动时,由于此时系统并不完全依赖加载服务器加载全部的软件文件和数据文件,因此系统依然可以实现快速启动。
一般来说,各CPU的软件和数据在本地存储是正确的。在换插单板或更新配置的情况下,某些CPU的软件和数据在本地存储是失效的,在这种情况下,通过步骤22进行版本校验,以保证系统可靠。
进行步骤21时,如果加载不成功,则进行:
步骤23:通过引导系统加载服务器和正常系统加载服务器进行加载操作;具体的加载过程包括:
(1)针对CPU中的BOOTROM的启动操作:
各个CPU上的BOOTROM由引导系统加载服务器通过BOOTROM的加载通道取得CPU的基本软件进行启动;
(2)针对CPU中的基本软件的启动操作:
通过取得基本软件启动CPU上的BOOTROM后,各个CPU上的基本软件由正常系统加载服务器通过基本软件的加载通道取得扩展软件和数据文件进行启动
通过执行步骤23的处理,可以进一步保证系统的可靠性。
为便于对本发明有进一步的理解,下面将结合附图及相应的具体实施例对本发明进行详细的说明。
首先,结合图3,对本发明实现多CPU加载系统较佳的具体应用实例进行详细的说明。
如图3所示,本发明实现多CPU加载系统包括3个CPU,也可以有多个CPU,每个CPU都设置有各自独立的软件存储单元,当对CPU进行加载时,则首先调用各自的软件存储单元中存储的软件或数据进行CPU加载操作。所述的软件存储单元是通过硬盘或快闪存储器FLASH两种介质实现的,所述的软件存储单元包括引导系统BOOTROM存储单元、基本软件存储单元、扩展软件存储单元和数据文件存储单元,存储在硬盘或FLASH上。
本发明还包括引导系统加载服务器和正常系统加载服务器,所述的引导系统加载服务器负责引导系统加载,具体负责每个CPU的BOOTROM通过BOOTROM的加载通道加载CPU的基本软件进行启动;所述的正常系统加载服务器负责正常系统加载。具体负责每个CPU的基本软件通过基本软件加载通道加载扩展软件和数据文件进行启动。当各个CPU通过各自的软件存储单元加载失败时,则通过所述的引导系统加载服务器和正常系统加载服务器进行CPU加载操作。
其次,再结合图4,对实现多CPU快速加载的方法的具体应用实例进行详细的说明
本发明实现多CPU系统加载方法如图4所示,各CPU首先从各自的软件存储单元中调用加载过程中需要的信息,并进行加载处理,当该CPU加载未成功时,通过引导系统加载服务器和正常系统加载服务器进行加载操作。当该CPU加载成功时,加载服务器通信,校验版本,如果版本不正确,主动进行版本更新并复位。具体包括一下步骤:
步骤41:各CPU上的BOOTROM首先从各自的软件存储单元中取得基本软件进行启动。如果启动不成功,则:
步骤42:该CPU上的BOOTROM由引导系统加载服务器通过BOOTROM的加载通道加载CPU的基本软件进行启动;
具体为:由引导系统加载服务器通过BOOTROM的加载通道将基本软件加载到该CPU上,之后,在该CPU上,便可以通过该基本软件实现针对CPU上的BOOTROM的启动操作。
启动成功后,执行:
步骤43:各CPU上的基本软件首先从各自的软件存储单元取得扩展软件和数据文件进行启动。
启动成功后,执行:
步骤44:CPU和加载服务器通信,校验版本,如果版本不正确,主动进行版本更新并复位。
版本更新并复位是指通过可与CPU通信的远端加载服务器主动进行版本的升级,并回复到启动状态,此时可以根据需要选择重新启动系统,或不重新启动系统而等到下一次启动系统时应用新的版本。选择重新启动时,由于此时系统并不完全依赖加载服务器加载全部的软件文件和数据文件,因此系统依然可以实现快速启动。
一般来说,各CPU的软件和数据在本地存储是正确的。在换插单板或更新配置的情况下,某些CPU的软件和数据在本地存储是失效的,在这种情况下,通过步骤44进行版本校验,以保证系统可靠。
如果步骤43启动不成功,则:
步骤45:该CPU上的基本软件由正常系统加载服务器通过基本软件的加载通道加载扩展软件和数据文件进行启动。
具体为:由正常系统加载服务器通过基本软件的加载通道将扩展软件和数据文件加载到该CPU上,之后,在该CPU上,便可以通过该扩展软件和数据文件实现针对CPU上的基本软件的启动操作。
一般情况下,步骤41、步骤43、步骤44可以依次完成,但也并不排除步骤41或步骤43会有启动失败的情况,此时,通过步骤42或步骤45由引导系统加载服务器和正常系统加载服务器进行加载操作,可以保证系统安全启动。
综上所述,本发明所述的通信系统中的实现多CPU加载系统及方法,由于每个CPU都设置有各自的软件存储单元,当对CPU进行加载时,则调用各自的软件存储单元中存储的软件或数据进行CPU加载操作,不依赖于加载通道的建立,速度快、不易发生单点故障;又由于各个CPU加载成功后,和加载服务器通信,校验版本,如果版本不正确,主动进行版本更新并复位,保证了版本的可靠性;另外,由于本发明还包括引导系统加载服务器和正常系统加载服务器,当各个CPU通过各自的软件存储单元加载失败时,则通过所述的引导系统加载服务器和正常系统加载服务器进行CPU加载操作,进一步保证了系统的可靠性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1、一种实现多CPU加载的系统,包括多个CPU,其特征在于,每个CPU都设置有各自的软件存储单元,当对CPU进行加载时,则调用各自的软件存储单元中存储的软件或数据进行CPU加载操作。
2、根据权利要求1所述的实现多CPU加载的系统,其特征在于,所述的软件存储单元包括:引导系统BOOTROM存储单元、基本软件存储单元、扩展软件存储单元和数据文件存储单元。
3、根据权利要求1或2所述的实现多CPU加载的系统,其特征在于,所述的软件存储单元是通过硬盘或快闪存储器FLASH实现的。
4、根据权利要求1或2所述的实现多CPU加载的系统,其特征在于,还包括:可与多CPU通信的远端引导系统加载服务器和正常系统加载服务器,当各个CPU通过各自的软件存储单元加载失败时,则通过所述的引导系统加载服务器和正常系统加载服务器进行CPU加载操作。
5、一种实现多CPU加载的方法,其特征在于,包括步骤:
A、每个CPU从各自的软件存储单元中调用加载过程中需要的信息,并进行加载处理;
B、各个CPU加载成功后,与加载服务器通信完成加载操作。
6、根据权利要求5所述的实现多CPU加载的方法,其特征在于,所述的步骤B还包括:
各个加载成功的CPU与加载服务器通信,进行版本校验,并版本不正确时,主动进行版本更新、复位。
7、根据权利要求5所述的实现多CPU加载的方法,其特征在于,所述的方法还包括步骤:
C、当该CPU加载未成功时,通过引导系统加载服务器和正常系统加载服务器对该CPU进行加载操作。
8、根据权利要求7所述的实现多CPU加载的方法,其特征在于,所述的步骤C包括:
C1、各个CPU上的BOOTROM由引导系统加载服务器通过BOOTROM的加载通道取得CPU的基本软件进行启动;
C2、各个CPU上的基本软件由正常系统加载服务器通过基本软件的加载通道取得扩展软件和数据文件进行启动。
9、根据权利要求5所述的实现多CPU加载的方法,其特征在于,所述的步骤A包括:
A1、各个CPU上的BOOTROM从各自的软件存储单元中取得基本软件进行启动;
A2、各个CPU上的基本软件从各自的软件存储单元取得扩展软件和数据文件进行启动。
10、根据权利要求9所述的实现多CPU加载的方法,其特征在于,所述的步骤A1还包括:
当该CPU上的BOOTROM启动未成功时,由引导系统加载服务器通过BOOTROM的加载通道取得CPU的基本软件进行启动,并执行步骤A2;
在执行步骤A2后,当该CPU上的基本软件启动未成功时,由正常系统加载服务器通过基本软件的加载通道取得扩展软件和数据文件进行启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100788157A CN100458696C (zh) | 2006-05-08 | 2006-05-08 | 实现多cpu加载的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100788157A CN100458696C (zh) | 2006-05-08 | 2006-05-08 | 实现多cpu加载的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101051274A true CN101051274A (zh) | 2007-10-10 |
CN100458696C CN100458696C (zh) | 2009-02-04 |
Family
ID=38782700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100788157A Active CN100458696C (zh) | 2006-05-08 | 2006-05-08 | 实现多cpu加载的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100458696C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222373B (zh) * | 2008-01-29 | 2010-07-28 | 杭州华三通信技术有限公司 | 多主控系统中的主控板启动方法和多主控系统 |
CN101639794B (zh) * | 2009-05-27 | 2011-01-26 | 福州思迈特数码科技有限公司 | 多cpu系统的安全启动方法 |
CN111124436A (zh) * | 2019-11-05 | 2020-05-08 | 上海航天控制技术研究所 | 一种提高星敏感器软件加载可靠性的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043648A (zh) * | 2009-10-23 | 2011-05-04 | 中兴通讯股份有限公司 | 多核系统及其启动方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62272341A (ja) * | 1986-05-21 | 1987-11-26 | Fanuc Ltd | マルチプロセツサシステムにおけるブ−トロ−デイング方式 |
JP2001306307A (ja) * | 2000-04-25 | 2001-11-02 | Hitachi Ltd | ファームウェアの処理方法。 |
US6725341B1 (en) * | 2000-06-28 | 2004-04-20 | Intel Corporation | Cache line pre-load and pre-own based on cache coherence speculation |
CN1295633C (zh) * | 2002-12-26 | 2007-01-17 | 华为技术有限公司 | 一种多cpu通信的方法 |
CN1301473C (zh) * | 2003-09-17 | 2007-02-21 | 中兴通讯股份有限公司 | 多处理器系统共享引导模块的方法 |
-
2006
- 2006-05-08 CN CNB2006100788157A patent/CN100458696C/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222373B (zh) * | 2008-01-29 | 2010-07-28 | 杭州华三通信技术有限公司 | 多主控系统中的主控板启动方法和多主控系统 |
CN101639794B (zh) * | 2009-05-27 | 2011-01-26 | 福州思迈特数码科技有限公司 | 多cpu系统的安全启动方法 |
CN111124436A (zh) * | 2019-11-05 | 2020-05-08 | 上海航天控制技术研究所 | 一种提高星敏感器软件加载可靠性的方法 |
CN111124436B (zh) * | 2019-11-05 | 2023-12-29 | 上海航天控制技术研究所 | 一种提高星敏感器软件加载可靠性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100458696C (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100343807C (zh) | 一种Boot软件升级方法和一种Boot软件恢复方法 | |
CN1834909A (zh) | 用于远程设备系统软件的升级方法 | |
CN101030146A (zh) | 一种实现固件更新的方法和系统 | |
CN1889041A (zh) | 一种软件升级及回退方法 | |
CN101047561A (zh) | 一种设备自动化升级的方法 | |
CN101075196A (zh) | 便携式电子装置及加载便携式电子装置的资源数据的方法 | |
CN1834913A (zh) | 一种管理软件安装/卸载的方法 | |
CN1858707A (zh) | 一种移动终端软件自动加载的方法 | |
CN1831771A (zh) | 一种更新软件的方法 | |
CN1811725A (zh) | 一种快速存储装置及快速更新数据的方法 | |
CN1968168A (zh) | 刀片服务器的定位方法及定位系统 | |
CN1993676A (zh) | 发现数据处理系统内的硬件的方法和设备 | |
CN101051274A (zh) | 实现多cpu加载的系统及方法 | |
CN1949169A (zh) | 电视机软件升级方法 | |
CN1573694A (zh) | 初始化包括主和协处理器系统中的协处理器的装置和方法 | |
CN1570863A (zh) | 远程加载或升级程序的系统及其方法 | |
CN1786910A (zh) | 一种bios在线升级方法 | |
CN1501621A (zh) | 一种系统安全启动方法 | |
CN101030148A (zh) | 实现重映射的方法、装置 | |
CN1738246A (zh) | 网络终端产品的在线升级方法 | |
CN1092358C (zh) | 带有检测点功能的计算机系统 | |
CN1245686C (zh) | 嵌入式系统中软件补丁的加载与同步的方法 | |
CN1991777A (zh) | 镜像文件的数据预装系统及方法 | |
CN1841329A (zh) | 对目标文件进行定位的方法和装置 | |
CN1315053C (zh) | 网络计算机bios的刷新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |