CN101581959B - 多核芯片中复位单个核的方法和设备 - Google Patents
多核芯片中复位单个核的方法和设备 Download PDFInfo
- Publication number
- CN101581959B CN101581959B CN2009101572223A CN200910157222A CN101581959B CN 101581959 B CN101581959 B CN 101581959B CN 2009101572223 A CN2009101572223 A CN 2009101572223A CN 200910157222 A CN200910157222 A CN 200910157222A CN 101581959 B CN101581959 B CN 101581959B
- Authority
- CN
- China
- Prior art keywords
- code
- reset
- nuclear
- core chip
- multi core
- 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.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明的实施例公开了一种多核芯片中复位单个核的方法和设备,能够对多核芯片中的单个核进行复位,而其他核不受影响。本发明实施例提供的方法包括:多核芯片上电复位后,将启动代码复制到非易失性存储器的地址对应的内存空间中;当单个核需要复位时,从所述内存空间中执行所述启动代码对所述单个核进行复位。本发明实施例提供的一种单板包括:多核芯片;存储单元;和复制单元,用于多核芯片上电复位后,将启动代码复制到所述存储单元中非易失性存储器的地址对应的内存空间中,以便于所述多核芯片中的单个核需要复位时从所述内存空间中读取启动代码。
Description
技术领域
本发明涉及通信领域,具体而言是涉及一种多核芯片中复位单个核的方法和设备。
背景技术
在单核的情况下,CPU(Central Processing Unit,中央处理单元)在复位时,会从固定的启动地址读取启动代码,例如对于ARM(Asynchronous Response Mode,异步应答方式)系列的CPU来说,会从启动地址0x0开始读取指令,该0x0地址在启动时为保存启动代码的非易失性存储器的地址。当系统正常运行时,该0x0地址将变成内存的地址,但该CPU再次复位时,该地址0x0又会被复位成非易失性存储器的地址,CPU从该地址再次加载启动代码进行复位操作。
发明人发现,现有技术存在如下问题:对于多核CPU来说,复位单个核或者线程时,如果启动地址也被重新复位成非易失性存储器的地址,将导致其他核无法从启动地址读取到正确的数据。
发明内容
本发明实施例提供一种多核芯片中复位单个核的方法和设备,能够对多核芯片中的单个核进行复位,而其他核不受影响。
为实现上述目的,本发明实施例提供了一种多核芯片中复位单个核的方法,包括:
多核芯片上电复位后,将非易失性存储器中的启动代码复制到启动地址对应的内存空间中;
当单个核需要复位时,从所述启动地址对应的内存空间中读取所述启动代码对所述单个核进行复位。
本发明实施例还提供了一种单板,包括:多核芯片;存储单元;和复制单元,
所述复制单元,用于多核芯片上电复位后,将非易失性存储器中的启动代码复制到所述存储单元中对应启动地址的内存空间中,以便于所述多核芯片中的单个核需要复位时从所述内存空间中读取启动代码。
由上述本发明实施例提供的技术方案可知,在多核芯片上电复位后,通过将启动代码复制到启动地址对应的内存空间中,当单个核需要复位时,从所述启动地址对应的内存空间中读取所述启动代码,从而在单独复位单个核时,不会影响到其他核或线程的正常运行,进而提升故障处理能力,降低故障等级。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面对实施例中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种多核芯片中复位单个核的方法流程图;
图2为本发明实施例提供的另一种多核芯片中复位单个核的方法流程图;
图3为本发明实施例提供的一种单板的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的一种多核芯片中复位单个核的方法,包括:
步骤11,多核芯片上电复位后,将启动代码复制到启动地址对应的内存空间中;
这里可以由第一个启动成功的核执行复制操作,当然也可以由其它核执行复制操作。
复制的时间是在上电复位后,可以是初始化成功后就复制,也可以初始化成功后过一段时间再复制。
步骤12,当单个核需要复位时,从所述启动地址对应的内存空间中读取所述启动代码对该单个核进行复位。
对于多核CPU,复位单个核或者线程时,不能如单核CPU那样,将启动地址所在空间重新设置成非易失性存储器的地址,因为如果复位启动地址所在空间内的配置内容,将可能会导致其他核或者线程无法正常工作。
为了保证在启动地址所在空间不复位的情况下,单个核或者线程能正常复位,需要保证在多核CPU正常运行时,单个核或者线程从启动地址对应的内存空间中读取到的指令与上电复位时从非易失性存储器中读取到的指令一致。即需要把非易失性存储器中的启动代码“搬移”到多核CPU正常运行时启动地址对应的内存空间中,这样单个核或者线程复位时,才能读取到正常的启动代码。
以ARM CPU为例:在ARM多核CPU中,系统启动后,将启动过程中需要的启动代码从非易失性存储器中复制到启动地址对应的内存空间中,在单独对某个核复位时,要复位的单个核默认从启动地址对应的内存空间的0x0地址读取启动代码,这样就无需将启动地址所在的内存空间重新复位成用于存放启动代码的非易失性存储器的地址,从而实现了对多核中单独某个核的直接复位而不会影响到其他核。
需要说明的是,对于不同体系架构的多核芯片,所述启动代码在非易失性存储器中的启动地址可能不同。例如,对于ARM系列,启动地址为0x0,对于MIPS(Million Instruction Per Second,百万条指令每秒)系列CPU,启动地址则 为0xbfc00000。
本发明实施例提供的多核芯片中复位单个核的方法,通过将非易失性存储器中的启动代码复制到启动地址对应的内存空间中,在复位单个核时,从所述启动地址对应的内存空间中读取所述启动代码,而无需将启动地址重新复位成非易失性存储器的地址,从而在单独复位单个核时,不会影响到其他核或线程的正常运行,进而提升故障处理能力,降低故障等级。
参见图2,本发明另一实施例提供的一种多核芯片中复位单个核的方法,包括:
步骤21,修改启动代码,使得多核芯片中的每个核在复位时只需执行启动代码中的部分代码;
修改启动代码的目的是,在单独复位单个核时,一些初始化的代码不再执行,仅执行该单个核复位时的所需代码,同时在执行这些所需代码时不会影响到其它核的代码。
修改启动代码的方式,可以是向多核芯片中的每个核分配一个核序号,每个核序号对应该单个核或某几个核复位时的所需代码,修改后的启动代码是由一些初始化代码和所有核序号对应的所需代码组成,多核芯片中的每个核在复位时只需执行与其核序号对应的部分代码。
步骤22,多核芯片上电复位后,将所述修改后的启动代码复制到对应启动地址的内存空间中;
步骤23,当发现某个单个核需要复位,向所述单个核发送复位指令;
例如,在多核芯片中,可以设置一个核用来管理其它的核,当某一个核需要复位时,由该负责管理的核向需要复位的核发送复位指令;当然也可以由一个独立的检测单元来进行检测并发送复位指令。
步骤24,当需要复位的单个核接收到复位指令后,该单个核根据所述复位指令,从所述内存空间中读取相应代码执行复位操作。
读取相应代码执行复位操作的方式可以是,需要复位的单个核在接收到复位指令时,首先获取该核在所述多核芯片中所对应的核序号,然后再从所述启动地址对应的内存空间中执行该核序号对应的部分代码。
本发明实施例提供的多核芯片中复位单个核的方法,通过将启动代码复制到对应启动地址的内存空间中,使得多核芯片中的每个核在复位时只需从对应启动地址的内存空间读取并执行启动代码,而不需要对启动地址进行复位,因此不会影响其他核或线程的正常运行;进一步的,本实施例复制的启动代码是经过修改的代码,修改后的代码不包括初始化相关的代码,也不包括可能会影响其它核的代码,在复位单个核时,只需执行部分代码,而无须执行全部的启动代码,因此减少了单个核复位时读取启动代码的时间,保证了单个核出现故障时的迅速复位。
参见图3,本发明实施例提供一种应用上述方法实施例的单板3,包括:多核芯片31;存储单元32;和复位单元33,
所述复制单元33,用于多核芯片31上电复位后,将启动代码复制到所述存储单元32中对应启动地址的内存空间中,以便于所述多核芯片31中的单个核需要复位时从所述内存空间中读取启动代码。
将启动代码复制到所述存储单元32中可以由代码实现,或可以由多核芯片中的某个控制的核来实现,或也可以由另外一个硬件(例如复制单元)来实现。
需要说明的是,该存储单元32,不同于存储启动代码的非易失性存储器。
对于多核CPU,复位单个核时,不能如单核CPU那样,将启动地址所在空间重新设置成非易失性存储器的地址,因为如果复位启动地址所在空间内的配 置内容,将可能会导致其他核或者线程无法正常工作。
为了保证在启动地址所在空间不复位的情况下,单个核或者线程从启动地址对应的内存空间中读取到的指令与上电复位时从非易失性存储器中读取到的指令一致。需要把非易失性存储器中的启动代码“搬移”到多核CPU正常运行时启动地址对应的内存空间中,这样单个核或者线程复位时,才能读取到正常的启动代码。
所述多核芯片31中的一个核,具体用于当接收到复位指令后,根据所述复位指令,从所述存储单元中存储启动代码的地址空间读取启动代码执行复位操作。
可选的,仍参见图3,所述复制单元33具体可包括:
修改子单元331,用于修改启动代码,使得多核芯片中的每个核在复位时只需执行启动代码中的部分代码;
保存子单元332,用于将所述修改子单元331修改后的启动代码复制到所述存储单元32中对应启动地址的内存空间。
修改启动代码的目的是,在单独复位单个核时,一些初始化的代码不再执行,仅执行该单个核复位时的所需代码,同时在执行这些所需代码时不会影响到其它核的代码。
修改启动代码的方式,可以是向多核芯片中的每个核分配一个核序号,每个核序号对应该单个核或某几个核复位时的所需代码,修改后的启动代码是由一些初始化代码和所有核序号对应的所需代码组成,多核芯片中的每个核在复位时只需执行与其核序号对应的部分代码。
当然,该修改启动代码的操作也可以由第一个启动成功的核进行,或由多核芯片中的其他核进行。
可选地,本实施例提供的单板还可包括:
检测单元34,用于发现所述多核芯片中一个核需要复位时,向所述需要复位的核发送复位指令。
该检测单元34可以是一个硬件电路,用于检测核是否需要复位;也可以是一段代码,由多核芯片中的一个核来执行。例如,由多核芯片中负责管理其它核的核执行检测代码以检测其它核是否需要复位,如果需要复位,向需要复位的核发送复位指令。
当需要复位的单个核接收到复位指令后,所述单个核根据所述复位指令,从所述内存空间中读取相应代码执行复位操作。
读取相应代码执行复位操作的方式可以是,需要复位的单个核在接收到复位指令时,首先获取该核在所述多核芯片中所对应的核序号,然后再从所述启动地址对应的内存空间中执行该核序号对应的部分代码。
本发明实施例提供的单板,通过复制单元33在上电复位后,将启动代码复制到存储单元32中对应启动地址的内存空间中,以便于所述多核芯片31中的单个核需要复位时从所述内存空间中读取启动代码。这样在单独复位单个核时,无需将启动地址重新复位成非易失性存储器的地址,从而在单独复位单个核时,不会影响到其他核或线程的正常运行,进而提升故障处理能力,降低故障等级。
进一步地,通过在复制前修改启动代码,使得多核芯片中的每个核在复位时只需对应读取所述启动代码中的部分代码,而无须执行全部的启动代码,从而可以减少单个核复位时读取启动代码的时间,保证单个核出现故障时的迅速复位。
本领域中的普通技术人员还可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来 实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或任意其它形式的存储介质中。
上述具体实施例并不用以限制本发明,对于本技术领域的普通技术人员来说,凡在不脱离本发明原理的前提下,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种多核芯片中复位单个核的方法,其特征在于,包括:
多核芯片上电复位后,将非易失性存储器中的启动代码复制到启动地址对应的内存空间中;
当单个核需要复位时,从所述启动地址对应的内存空间中读取所述启动代码对所述单个核进行复位。
2.根据权利要求1所述的方法,其特征在于,所述将启动代码复制到启动地址对应的内存空间中,包括:
修改启动代码,使得多核芯片中的每个核在复位时只需执行启动代码中的部分代码;
将所述修改后的启动代码复制到对应所述启动地址的内存空间中。
3.根据权利要求1所述的方法,其特征在于,所述当单个核需要复位时,从所述启动地址对应的内存空间中读取所述启动代码对所述单个核进行复位,包括:
当需要复位的单个核接收到复位指令后,所述单个核根据所述复位指令,从所述内存空间中读取启动代码执行复位操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果发现单个核需要复位,向所述需要复位的单个核发送复位指令。
5.一种单板,其特征在于,包括:
多核芯片;存储单元;
复制单元,用于多核芯片上电复位后,将非易失性存储器中的启动代码复制到所述存储单元中对应启动地址的内存空间中,以便于所述多核芯片中的单个核需要复位时从所述内存空间中读取启动代码。
6.根据权利要求5所述的单板,其特征在于,所述多核芯片中的一个核,具体用于当接收到复位指令后,根据所述复位指令,从所述存储单元中存储启动代码的内存空间读取启动代码执行复位操作。
7.根据权利要求5所述的单板,其特征在于,所述复制单元包括:
修改子单元,用于修改启动代码,使得多核芯片中的每个核在复位时只需执行启动代码中的部分代码;
保存子单元,用于将所述修改子单元修改后的启动代码复制到所述存储单元中对应启动地址的内存空间。
8.根据权利要求5所述的单板,其特征在于,还包括:
检测单元,用于发现所述多核芯片中一个核需要复位时,向所述需要复位的核发送复位指令。
9.根据权利要求8所述的单板,其特征在于,
所述检测单元,具体为所述多核芯片中的一个核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101572223A CN101581959B (zh) | 2009-07-02 | 2009-07-02 | 多核芯片中复位单个核的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101572223A CN101581959B (zh) | 2009-07-02 | 2009-07-02 | 多核芯片中复位单个核的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101581959A CN101581959A (zh) | 2009-11-18 |
CN101581959B true CN101581959B (zh) | 2012-04-04 |
Family
ID=41364131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101572223A Active CN101581959B (zh) | 2009-07-02 | 2009-07-02 | 多核芯片中复位单个核的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101581959B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850203B (zh) * | 2015-06-10 | 2019-02-05 | 联想(北京)有限公司 | 一种电子设备复位方法及电子设备 |
JP6796203B2 (ja) * | 2017-06-23 | 2020-12-02 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
CN109981370B (zh) * | 2019-03-29 | 2022-01-11 | 烽火通信科技股份有限公司 | 不同总线和协议的单元盘的业务管理方法、装置及系统 |
CN113010353B (zh) * | 2021-03-22 | 2024-05-28 | 北京灵汐科技有限公司 | 核地址更新方法、映射方法、数据传输方法及装置、芯片 |
CN112989758B (zh) * | 2021-05-17 | 2021-09-28 | 芯华章科技股份有限公司 | 对多个原型验证板同步复位的方法、验证系统及存储介质 |
CN115167651B (zh) * | 2022-09-05 | 2022-11-25 | 北京紫光芯能科技有限公司 | 一种多核soc复位的负载均衡电路及系统 |
-
2009
- 2009-07-02 CN CN2009101572223A patent/CN101581959B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101581959A (zh) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101581959B (zh) | 多核芯片中复位单个核的方法和设备 | |
US8397042B2 (en) | Secure memory interface | |
CN101373433A (zh) | 更新bios的方法以及使用该方法的电脑与系统 | |
CN100511148C (zh) | 一种cpu系统的启动方法及系统 | |
JP2005222228A (ja) | メモリカード及び半導体装置 | |
CN102819442B (zh) | 一种嵌入式设备程序烧写的方法及系统 | |
KR20110098567A (ko) | 최소 부트 이미지의 생성 방법 및 장치 | |
CN101364193A (zh) | 自动恢复bios的方法以及使用该方法的电脑与系统 | |
CN109587331B (zh) | 云手机故障自动修复的方法与系统 | |
CN103701707B (zh) | 一种网络设备 | |
CN104916328A (zh) | 存储器的集成电路上的数据保护方法及相关的存储器电路 | |
KR20060046485A (ko) | 메모리 카드 및 반도체 장치 | |
CN113254286B (zh) | 一种服务器的日志输出方法、系统及相关装置 | |
CN108509215A (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN101950262A (zh) | 在嵌入式系统中实现安全模式的方法及装置 | |
CN112667442B (zh) | 基于非易失内存器件启动系统的控制方法、装置及设备 | |
CN104820646A (zh) | 在Linux系统下支持多RC的PCIE设备动态扫描方法 | |
CN104484289A (zh) | 一种基于扇区的嵌入式系统写保护的装置以及方法 | |
CN104866388A (zh) | 数据处理方法及装置 | |
CN107463513A (zh) | 在存储位置之间转移控制的系统和方法 | |
CN103218237A (zh) | 使用基于rom的初始化单元和可编程微控制器的gpu的初始化 | |
CN104407806A (zh) | 独立磁盘冗余阵列组硬盘信息的修改方法和装置 | |
WO2013085305A1 (ko) | 비휘발성 메모리 시스템 및 이를 프로그램하는 방법 | |
CN104461382B (zh) | 运行多个文件系统的文件服务器的内部写方法和服务器 | |
CN111338700A (zh) | 加载fpga版本的方法及装置、存储介质 |
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 |