CN106648758B - 一种多核处理器boot启动***及方法 - Google Patents
一种多核处理器boot启动***及方法 Download PDFInfo
- Publication number
- CN106648758B CN106648758B CN201611080574.XA CN201611080574A CN106648758B CN 106648758 B CN106648758 B CN 106648758B CN 201611080574 A CN201611080574 A CN 201611080574A CN 106648758 B CN106648758 B CN 106648758B
- Authority
- CN
- China
- Prior art keywords
- core
- main
- main core
- data
- external memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种多核处理器BOOT启动***及方法,其包括主核、一个或多个从核、外部存储器以及EMI接口模块,EMI接口模块用于负责主核的总线与外部存储器的总线间的信号匹配;主核内部RAM存储器,与主核连接,用于存放主核的程序与数据;一个或多个从核内部RAM存储器,与从核间一一对应连接,用于存放连接从核的程序与数据;主核路由控制器,通过主核网络节点控制器与主核连接;从核路由控制器,通过从核网络节点控制器与从核间一一对应连接,从核路由控制器与主核路由控制器间连接。本发明能实现相同架构下的不同型号的多核处理器、以及不同架构下的不同型号的多核处理器使用同一个bootloader,提高多核处理器bootloader的兼容性和灵活性。
Description
技术领域
本发明涉及一种启动***及方法,尤其是一种多核处理器BOOT启动***及方法,属于集成电路的技术领域。
背景技术
多核技术的开发源于工程师们认识到,仅仅提高单核芯片(one chip)的速度会产生过多热量且无法带来相应的性能改善,先前的处理器产品就是如此。他们认识到,在先前产品中以那种速率,处理器产生的热量很快会超过太阳表面。即便是没有热量问题,其性价比也令人难以接受,速度稍快的处理器价格要高很多。
上世纪八九十年代以来,推动微处理器性能不断提高的因素主要有两个:半导体工艺技术的飞速进步和体系结构的不断发展。半导体工艺技术的每一次进步都为微处理器体系结构的研究提出了新的问题,开辟了新的领域;体系结构的进展又在半导体工艺技术发展的基础上进一步提高了微处理器的性能。这两个因素是相互影响,相互促进的。一般说来,工艺和电路技术的发展使得处理器性能提高约20倍,体系结构的发展使得处理器性能提高约4倍,编译技术的发展使得处理器性能提高约1.4倍,但这种规律性的东西却很难维持。
操作***与硬件交互紧密,各产品使用的芯片、单板硬件差异很大。在嵌入式领域,传统上的处理器的硬件型号、bootloader(译为启动加载器,bootloader是嵌入式***在加电后执行的第一段代码,在它完成处理器和相关硬件的初始化之后,再将操作***镜像装载到内存中,然后跳转到操作***所在的空间,启动操作***运行)版本和操作***版本需要一一对应,即每一型号的处理器(单核处理器或者多核处理器)都需要使用与其配套的操作***。
操作***二进制归一后,可以同一版本的操作***支撑不同型号的处理器、不同版本的bootloader。初始化代码的地址和相应的固定地址不同。同时,由于固定地址被硬编码写入操作***中,最终使得不同型号的处理器需要使用不同版本的操作***,操作***无法完成二进制归一。bootloader是在操作***运行之前运行的一段程序,用于初始化硬件设备、建立内存空间映射图,从而将操作***的软硬件环境带到一个合适状态,以便为最终调用操作***内核准备好正确的环境。在实现上述多核处理器启动的过程中,现有技术中至少存在如下问题:相同架构下的不同型号的多核处理器以及不同架构下的不同型号的多核处理器的启动地址,启动参数的不同,需要单独编写bootloader,增加了一定的工作量。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种多核处理器BOOT启动***及方法,其能实现相同架构下的不同型号的多核处理器、以及不同架构下的不同型号的多核处理器使用同一个bootloader,提高多核处理器bootloader的兼容性和灵活性。
按照本发明提供的技术方案,一种多核处理器BOOT启动***,包括:
主核,用于负责程序的调度与***接口的数据处理;
一个或多个从核,用于负责程序的运算;
外部存储器,用于存放存储bootloader程序以及主核、从核的源程序,并通过EMI接口模块与主核连接;
EMI接口模块,用于负责主核的总线与外部存储器的总线间的信号匹配;
主核内部RAM存储器,与主核连接,用于存放主核的程序与数据;
一个或多个从核内部RAM存储器,与从核间一一对应连接,用于存放连接从核的程序与数据;
主核路由控制器,通过主核网络节点控制器与主核连接;
从核路由控制器,通过从核网络节点控制器与从核间一一对应连接,从核路由控制器与主核路由控制器间连接。
所述外部存储器的数据位宽为8位、16位或32位。
一种多核处理器BOOT启动方法,所述启动方法包括如下步骤:
步骤S200、提供主核以及所需数量的从核,主核通过EMI接口模块与外部存储器连接,主核与主核内部RAM存储器以及主核网络节点控制器连接,且主核通过主核网络节点控制器与主核路由控制器连接;每个从核与一个从核内部RAM存储器以及从核网络节点控制器队对应连接,每个从核通过从核网络节点控制器与从核路由控制器间一一对应连接,从核路由控制器与主核路由控制器相互连接;
步骤S201、生成主核以及每个从核对应的源程序,并将所生成的源程序和bootloader程序合并成BIN文件,并将所述合并的BIN文件烧写到外部存储器内;
步骤S202、上电启动,并初始化EMI接口模块;
步骤S203、判断当前从核源程序是否搬运结束,若搬运结束,则跳转至步骤步骤S204,否则,跳转至步骤S208;
步骤S204、主核通过EMI接口模块读取外部存储器中的从核参数,以配置从核;
步骤S205、主核通过EMI接口模块读取外部存储器内从核段的大小,若所述读取从核段的数据块大小为零,则跳转至步骤S203,否则,跳转至步骤S206;
步骤S206、主核将外部存储器中从核的源程序加载到主核内部RAM存储器内;
步骤S207、配置主核网络节点控制器,并将主核内部RAM存储器中的从核源程序传送至目标从核的从核内部RAM存储器内;
步骤S208、主核从外部存储器中读取主核的参数,以配置主核;
步骤S209、读取外部存储器中主核段的数据,并判断主核段的大小,若所述主核段的大小为非零,则执行步骤S211,否则,执行步骤S210;
步骤S210、主核通过EMI接口模块将外部存储器的主核源代码加载到主核内部RAM存储器内;
步骤S211、跳转到启动地址,以实现多核处理器的启动。
本发明的优点:主核通过EMI接口模块与外部存储器连接,主核的源程序、从核的源程序以及bootloader程序均存储在外部存储器中,能直接从外部存储器启动,可以灵活的修改bootloader程序,支持8位、16位、32位外部存储器的启动。同一个bootloader程序可以匹配相同架构下的不同型号的多核处理器以及不同架构下的不同型号的多核处理器,提高了bootloader的兼容性。
附图说明
图1为本发明多核处理器BOOT启动***的实施示意图。
图2为本发明启动流程图。
图3为本发明EMI参数格式的示意图。
图4为本发明外部存储器的数据格式示意图。
图5为本发明源程序的数据包格式示意图。
附图标记说明:100-主核内部RAM存储器、101-主核、102-主核网络节点控制器、103-主核路由控制器、104-EMI接口模块、105-外部存储器、110-第一从核内部RAM存储器、111-第一从核、112-第一从核网络节点控制器、113-第一从核路由控制器、120-第二从核内部RAM存储器、121-第二从核、122-第二从核网络节点控制器以及123-第二从核路由控制器。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
为了能实现相同架构下的不同型号的多核处理器、以及不同架构下的不同型号的多核处理器使用同一个bootloader,提高多核处理器bootloader的兼容性和灵活性,本发明包括:
主核101,用于负责程序的调度与***接口的数据处理;
一个或多个从核,用于负责程序的运算;
外部存储器105,用于存放存储bootloader程序以及主核101、从核的源程序,并通过EMI接口模块104与主核101连接;
EMI接口模块104,用于负责主核的总线与外部存储器105的总线间的信号匹配;
主核内部RAM存储器100,与主核101连接,用于存放主核101的程序与数据;
一个或多个从核内部RAM存储器,与从核间一一对应连接,用于存放连接从核的程序与数据;
主核路由控制器103,通过主核网络节点控制器102与主核101连接;
从核路由控制器,通过从核网络节点控制器与从核间一一对应连接,从核路由控制器与主核路由控制器103间连接。
具体地,主核网络节点控制器102、从核网络节点控制器能实现数据的打包以及解包数据。主核101通过EMI接口104与外部存储器105连接后,能实现主核101与外部存储器105的数据交互,以实现启动加载bootloader。主核内部RAM存储器100与主核101连接后,主核101能执行主核内部RAM存储器内的程序,每个从核与一个从核内部RAM存储器一一对应连接,以使得从核能执行与之连接从核内部RAM存储器内读程序。所述外部存储器105的数据位宽为8位、16位或32位。
从核的数量可以根据需要进行选择,具体为本技术领域人员所熟知,此处不再赘述。本发明实施例中,以两个从核为例进行说明,如图1所示,具体地,从核包括第一从核111以及第二从核121,其中,第一从核111与第一从核内部RAM存储器110连接,第一从核111还与第一从核网络节点控制器112连接,并通过第一从核网络控制器112与第一从核路由控制器113连接。第二从核121与与第二从核内部RAM存储器120连接,第二从核121还与第二从核网络节点控制器122连接,且第二从核121还通过第二从核网络节点控制器122与第二从核路由控制器123连接,第一从核路由控制器113与主核路由控制器103以及第二从核路由控制器123连接,且第二从核路由控制器123通过第一从核路由控制器113与主核路由控制器103连接。
具体地,主核网络节点控制器102与主核101相连,可以接收来自主核101的数据,也可以发送数据到主核101;第一从核网络节点控制器112与第一从核111相连,可以接收来自第一从核111的数据,也可以发送数据到第一从核111,第二从核网络节点控制器122与第二从核121间的配合关系与第一从核网络节点控制器112与第一从核111的配合关系类似,此处不再赘述。
主核网络节点控制器102与主核路由控制器103相连,主核网络节点控制器102接收来自主核101的数据后,打包后发送给主核路由控制器103,亦可接收来自主核路由控制器103的数据,通过解包后发送给主核101处理。第一从核网络节点控制器112与第一从核路由控制器113相连,第一从核网络节点控制器112接收来自第一从核111的数据后,打包后发送给第一从核路由控制器113,亦可接收来自第一从核路由控制器113的数据,通过解包后发送给第一从核111处理。网络节点控制器可以采用本技术领域常用的技术手段实现对数据打包以及解包过程,具体过程为本技术领域人员所熟知,此处不再赘述。此外,第二从核网络节点控制器112与第二从核121以及第二从核路由控制器123间的配合关系,可以参考上述说明,此处不再赘述。
较佳地,所述主核路由控制器103与第一从核路由控制器113相连,主核路由控制器103根据数据包信息,把数据发送给第一从核路由控制器113,同时也可以接收来自第一从核路由控制器113的数据;第一从核路由控制器113与第二从核路由控制器123相连,第一从核路由控制器113根据数据包信息,把数据发送给第二从核路由控制器123,同时也可以接收来自第二从核路由控制器123的数据。
如图3所示,为本发明EMI接口模块104的EMI参数格式,具体属性如下:
WAITINV[7]:外部等待信号极性取反位;WAITRDC[6:2]:读信号相位延迟位;PORTW[1:0]:外部存储器105的位宽控制,0代表8位,1代表16位,2代表32位;BCGEN[7:6]:字节控制信号位,0代表字节控制信号随片选时序,1代表字节控制信号随控制信号时序,2代表字节控制信号随写使能信号时序;WAIT[5:4]:外部等待信号控制位;ADDRC[3:0]:地址相位延迟位。
如图4所示,为本发明外部存储器105的数据格式,其中,401是一条跳转指令,直接跳转到bootloader程序404;402是EMI参数,包含了配置外部存储器105的数据位宽、读信号时序等信息;403是页表偏移地址,指向核总数405;404是bootloader程序,实现把主核101的程序和从核程序搬运到对应空间;405是核总数,包含了主核101和从核的总数;406文件大小,指总BIN文件大小;主核偏移地址407指向主核的源程序410;第一从核偏移地址408指向第一从核111的源程序411;第二从核的偏移地址409指向第二从核121的源程序412,其它从核以此类推。
如图5所示,为本发明主核101源程序数据包格式,从核源程序格式与主核101一致,具体属性如下:
编号501对应的数据包格式中,XX表示核的编号,其中0表示主核,1~255表示从核;YY核总线数据位宽,一般指8位、16位、32位数据位宽,AAAA表示该核代码是有效代码。编号502对应的数据包格式中,XXXXXXXX指核正常运行的时钟频率。编号503、编号504、编号505对应的数据包格式中,存放了核的其它辅助信息。编号506对应的数据包格式中,ZZZZZZZZ指核启动的指针地址,即当程序搬运到对应核以后,该对应核PC需要指向的地址。
编号510对应的数据包格式中,存放了程序第一段数据块的大小,编号511对应的数据包格式中,存放了程序第一段数据块的地址,编号512对应的数据块中,存放了程序第一段数据块。
编号520对应的数据包格式中,存放了程序第二段数据块的大小,编号521对应的数据包格式中,存放了程序第二段数据块的地址,编号522对应的数据块中,存放了程序第二段数据块。其它段的程序格式以此类推。
编号531对应的数据包格式中,00000000指源代码程序的结尾标志,当bootloader程序判断到段大小为0时候,表示该核搬运结束,可以结束搬运,准备执行下一个核的程序。
如表1所示,为本发明提高的多核处理器网络节点控制器数据包结构,具体地址代表属性如下:
表1
其中,Bit35为电源管理位,1有效,传数据时需要长置1;置0时,触发器不翻转,路由不工作。Bit34为包有效位。1有效;为0时,表示该数据包为无效包,不传送。Bit33为虚拟通道位,用于选择虚拟通道0或1。Bit32为包判定位,表示该包为头包,0表示该包为数据包。
从包:Bit[31:0]传输的数据。
头包:Bit[31:29]:输出端口,数据输出核选择与其相连的数据输出口;Bit[28:25]表示目的路由地址;Bit[24:20]表示包个数;Bit[19:1]为目的地址,数据要传送的目的节点内的存储器或寄存器地址;Bit[0]为保留位。
如表2所示,为本发明bootloader程序格式,是对图4中401、402、403、404的一个扩展说明,对于32位的外部存储器105,一个外部存储器时钟可以读取32位数据;对于16位的外部存储器105,两个外部存储器时钟可以读取32位数据;对于8位的外部存储器105,四个外部存储器时钟可以读取32位数据。
表2
其中,地址0x00000000存放了一条跳转指令401;0x00000004~0x00000013存放的是EMI参数402;0x00000018存放的是页表偏移地址403;0x0000001C存放的是bootloader程序404。EMI参数中的XX表示图3中EMI启动参数301,YY表示图3中EMI启动参数302。
如图2所示,在上述多核处理器BOOT启动***的架构下,能得到对应的启动方法,所述启动方法包含如下具体步骤:
步骤S201、生成主核101以及每个从核对应的源程序,并将所生成的源程序和bootloader程序合并成BIN文件,并将所述合并的BIN文件烧写到外部存储器105内;
具体实施时,先生成bootloader程序,其中,0x00000004~0x0000001B部分保留,该空间预留给EMI参数402和页表偏移地址403。根据外部存储器105的位宽,设置地址空间在0x00000004~0x00000017的EMI启动参数,如果外部存储器105的数据位宽是8则设置301的PORTW为0,如果外部存储器105的数据位宽是16则设置301的PORTW为1,如果外部存储器105的数据位宽是32则设置301的PORTW为2;根据外部存储器105的读时序速率要求,配置301的WAITRDC和302的ADDRC;根据外部存储器105的接口属性要求,配置301的WAININV,BCGEN和WAIT值。
在上述操作完成后,再生成主核101的源程序,以及第一从核111的源程序,第二从核121的源程序;当存在更多的从核时,依顺序生成相应的源程序。根据上位机的参数配置核总数405,根据核总数405预留主核和从核的偏移地址空间。主核101的源程序放在410处,主核偏移地址407并指向主核程序410;第一从核111的源程序放在主核程序410下即411处,第一从核111偏移地址408指向第一从核111的源程序411;第二从核121的源程序放在从核程序411下即412处,第二从核121的偏移地址409指向第二从核121的源程序412,其它从核程序存放位置以此类推,放在第二从核121的源程序412下,偏移地址以此类推存放在409下。这样通过上位机软件,合并如图4所示的一个BIN文件中。外部存储器105的数据就准备完毕,最后把程序烧写到外部存储器105中。
步骤S202,上电启动,并初始化EMI接口模块104;
上电复位后,主核101停在读取第一条跳转指令401处,等待EMI接口模块104的释放初始完毕信号。此时,EMI接口模块104默认配置成32位数据启动方式,EMI接口模块104读取第4字单元低八位数据301和第5字单元低八位数据302,根据读取到的EMI启动参数,EMI接口模块104自己配置其参数寄存器。如果301中的PORTW为0,即外部存储器105的数据位宽为8位,EMI接口模块104配置成8位模式启动,EMI接口模块104就可以连续读4个外部存储器105的低8位数据自动合并成32位数据;如果301中的PORTW为1,即外部存储器105的数据位宽为16位,EMI接口模块104配置成16位模式启动,EMI接口模块104就可以连续读2个外部存储器低16位数据自动合并成32位数据;如果301中的PORTW为2,即外部存储器105的数据位宽为32位,EMI接口模块104配置成32位模式启动,并能够从外部存储105正常读取32位数据。配置完EMI参数后,EMI释放初始完毕信号,主核101才开始从EMI开始读取第一条指令。主核101从外部存储器105的首地址读取第一条指令,从第一条跳转指令401跳到执行外部存储器105中的bootloader代码段404,在404中主核101先执行一段汇编代码,再调用C库的初始化,最后跳到bootloader的主函数执行搬运程序。
步骤S203,判断当前从核源程序是否搬运结束,若搬运结束,则跳转至步骤步骤S204,否则,跳转至步骤S208;
主核101通过与核总数405进行比较,判断从核BOOT是否结束,如果结束执行步骤S208,没有结束执行步骤S204。
S204,主核101通过EMI接口模块104读取外部存储器105中的从核参数,以配置从核;
如果是第一从核111,则读取第一从核111的偏移地址408中的数据,从而找到第一从核111的源程序411,读取第一从核111的源程序411中的第一从核111的参数信息,读取411中的编号501对应的数据,判断低16位是否为0xAAAA,如果不是则跳到步骤S203,如果是,则读取411中的编号501对应数据的高8位,确定第一从核111的编号,读取编号501对应数据的次高8位,确定第一从核111的位宽;再读取411中的编号502对应的数据,配置第一从核111的频率;读取411中的编号503、编号504、编号505对应的数据,以配置第一从核111的辅助信息;读取411中编号506对应的数据,配置第一从核111的PC指针。
如果是第二从核121,则读取第二从核121的偏移地址409中的数据,从而找到第二从核121的源程序412,读取第二从核121的源程序412中的第二从核121参数信息,读取412中的编号501对应的数据,判断低16位是否为0xAAAA,如果不是,则跳到步骤S203,如果是,则读取412中的编号501对应数据的高8位,确定第二从核121的编号,读取编号501对应数据的次高8位,确定第二从核121的位宽;再读取412中的编号502对应的数据,配置第二从核121的频率;读取412中的编号503、编号504、编号505对应的数据,配置第二从核121的辅助信息;读取412中编号506对应的数据,配置第二从核121的PC指针。
其它从核的参数配置以此类推,此处不再一一列举。
步骤S205、主核101通过EMI接口模块104读取外部存储器105内从核段的大小,若所述读取从核段的数据块大小为零,则跳转至步骤S203,否则,跳转至步骤S206;
具体地,如果是第一从核111的第一段,读取第一从核111的源程序411中编号510对应的数据,判断第一段数据块大小,如果非零,则执行步骤S206,如果为零,执行步骤S203。如果是第一从核111的第二段,读取第一从核111的源程序411中与编号520对应的数据,判断第二段数据块大小,如果非零,执行步骤S206,如果为零,执行步骤S203;第一从核111的其它段以此类推。
如果是第二从核121的第一段,读取第二从核121的源程序412中与编号510对应的数据,判断第一段数据块大小,如果非零,执行步骤S206,如果为零,执行步骤S203;如果是第二从核121的第二段,读取第二从核121的源程序412中与编号520对应的数据,判断第二段数据块大小,如果非零,执行步骤S206,如果为零,执行步骤S203;第二从核121的其它段以此类推。其它从核以此类推。
S206,主核101将外部存储器105中从核的源程序加载到主核内部RAM存储器100内;
具体地,如果是第一从核111的第一段源代码,主核101在主核内部RAM存储器100先开辟一块内存空间,空间大小为第一从核111的源程序411中与编号510对应数据的大小,主核101通过EMI接口模块104从外部存储器105中把第一从核111的源程序411中与编号512段对应的数据搬运到主核内部RAM存储器100中开辟的空间中;如果是第一从核111的第二段源代码,主核101在主核内部RAM存储器100先开辟一块内存空间,空间大小为第一从核111的源程序411中与编号520对应数据的大小,主核101通过EMI接口模块104从外部存储器105中把第一从核111的源程序411中与编号522段对应数据搬运到主核内部RAM存储器100中开辟的空间中;第一从核111其它段程序以此类推实现搬运。
如果是第二从核121的第一段源代码,主核101在主核内部RAM存储器100先开辟一块内存空间,空间大小为第二从核121的源程序412中与编号510对应数据的大小,主核101通过EMI接口模块104从外部存储器105中把第二从核121的源程序412中与编号512对应的段数据搬运到主核内部RAM存储器100中开辟的空间中;如果是第二从核121的第二段源代码,主核101在主核RAM存储器100先开辟一块内存空间,空间大小为第二从核121的源程序412中与编号520对应数据的大小,主核101通过EMI接口模块104从外部存储器105中把第二从核121的源程序412中与编号522对应段数据搬运到主核内部RAM存储器100中开辟的空间中;第二从核121的其它段程序以此类推实现搬运。其它从核以此类推实现数据搬运,此处不再一一列举。
步骤S207,配置主核网络节点控制器102,并将主核内部RAM存储器100中的从核源程序传送至目标从核的从核内部RAM存储器内;
具体地,如果是第一从核111,先初始化主核网络节点控制器102,读取第一从核111的源程序411中与编号511对应的数据,以用来设置第一从核目标地址,主核内部RAM存储器100中开辟的空间首地址设置成源地址,第一从核111的源程序411中与编号510对应的数据设置搬运长度,然后启动主核网络节点控制器102自动搬运模式,主核网络节点控制器102就会自动把主核内部RAM存储器100中的数据打包成表1所示的格式,然后发往主核路由控制器103;主核路由控制器103接收到一包数据后,分析包的属性,根据包的头包中路由地址,决定往发往哪个路由模块,此时,主核路由控制器103收到的路由地址是1,则把包发往第一从核路由控制器113;第一从核路由控制器113接收到数据后,判断是本节点数据还是其它路由数据,此时是本网络节点数据,则第一从核路由控制器113把数据发送到第一从核网络节点控制器112;第一从核网络节点控制器112接收到数据包后,对数据进行解析后,按要求把数据存入第一从核内部RAM存储器110的相应存储空间中。
如果是第二从核121,先初始化主核网络节点控制器102,读取第二从核121的源程序412中与编号511对应数据用来设置从核目标地址,主核内部RAM存储器100中开辟的空间首地址设置成源地址,第二从核121的源程序412中与编号510对应的数据设置搬运长度,然后启动主核网络节点控制器102自动搬运模式,主核网络节点控制器102就会自动把主核内部RAM存储器100中的数据打包成表1所示的格式,然后发往主核路由控制器103;主核路由控制器103接收到一包数据后,分析包的属性,根据包的头包中路由地址,决定往发往哪个路由模块,此时主核路由控制器103收到的路由地址是2,则把包发往路第一从核由控制器113;第一从核路由控制器113接收到数据后,判断是本节点数据还是其它路由数据,此时不是本网络节点数据,则继续把包发往第二从核路由控制器123;第二从核路由控制器123接收到数据后,判断到是本节点数据,则第二从核路由控制器123把数据发送到第二从核网络节点控制器122;第二从核网络节点控制器122接收到数据包后,对数据进行解析后,按要求把数据存入第二从核内部RAM存储器120相应的存储空间中。
步骤S208、主核101从外部存储器105中读取主核101的参数,以配置主核101;
具体地,读取主核101的偏移地址407中的数据,找到主核101程序地址410,读取主核101的源程序410中的主核参数信息,读取410中与编号501对应数据,判断低16位是否为0xAAAA,如果不是则跳到S211,如果是,则读取410中与编号501对应数据的高8位,确定主核101的编号,读取次高8位,确定主核101的位宽;利用410中与编号502对应的数据,配置主核101的频率,读取410中与编号503、编号504、编号505对应的数据,配置辅助信息,读取410中与编号506对应的数据,配置主核101的PC指针。
步骤S209、读取外部存储器105中主核段的数据,并判断主核段的大小,若所述主核段的大小为非零,则执行步骤S211,否则,执行步骤S210;
具体地,读取主核101的源程序410中与编号510对应的数据,判断主核段大小,如果非零,执行步骤S211,如果为零,执行步骤S210。
步骤S210、主核101通过EMI接口模块104将外部存储器105的主核源代码加载到主核内部RAM存储器100内;
具体地,如果是主核101的第一段源代码,主核101通过EMI接口模块104从外部存储器105中把410中与编号512对应的段数据搬运到主核内部RAM存储器中,地址为主核101的源程序410中与编号511对应的数据,空间大小为源程序410中与编号510对应数据的大小;如果是第二段码,主核101通过EMI接口模块104从外部存储器105中把主核101的源程序410中与编号522对应段数据搬运到主核内部RAM存储器100中,地址为主核101的源程序410中与编号521对应的数据,空间大小为主核101的源程序410中与编号510对应数据的大小;
S211,跳转到启动地址,以实现多核处理器的启动。
至此,一个多核处理器BOOT启动方法过程结束。
在此说明中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (3)
1.一种多核处理器BOOT启动***,其特征是,包括:
主核(101),用于负责程序的调度与***接口的数据处理;
一个或多个从核,用于负责程序的运算;
外部存储器(105),用于存放存储bootloader程序以及主核(101)、从核的源程序,并通过EMI接口模块(104)与主核(101)连接;
EMI接口模块(104),用于负责主核的总线与外部存储器(105)的总线间的信号匹配;
主核内部RAM存储器(100),与主核(101)连接,用于存放主核(101)的程序与数据;
一个或多个从核内部RAM存储器,与对应的从核间一一连接,用于存放连接从核的程序与数据;
主核路由控制器(103),通过主核网络节点控制器(102)与主核(101)连接;
从核路由控制器,通过从核网络节点控制器与对应的从核间一一连接,从核路由控制器与主核路由控制器(103)间连接。
2.根据权利要求1所述的多核处理器BOOT启动***,其特征是:所述外部存储器(105)的数据位宽为8位、16位或32位。
3.一种多核处理器BOOT启动方法,其特征是,所述启动方法包括如下步骤:
步骤S200、提供主核(101)以及所需数量的从核,主核(101)通过EMI接口模块(104)与外部存储器(105)连接,主核(101)与主核内部RAM存储器(100)以及主核网络节点控制器(102)连接,且主核(101)通过主核网络节点控制器(102)与主核路由控制器(103)连接;每个从核与一个从核内部RAM存储器以及从核网络节点控制器队对应连接,每个从核通过从核网络节点控制器与对应的从核路由控制器间一一连接,从核路由控制器与主核路由控制器相互连接;
步骤S201、生成主核(101)以及每个从核对应的源程序,并将所生成的源程序和bootloader程序合并成BIN文件,并将所述合并的BIN文件烧写到外部存储器(105)内;
步骤S202、上电启动,并初始化EMI接口模块(104);
步骤S203、判断当前从核源程序是否搬运结束,若搬运结束,则跳转至步骤步骤S204,否则,跳转至步骤S208;
步骤S204、主核(101)通过EMI接口模块(104)读取外部存储器(105)中的从核参数,以配置从核;
步骤S205、主核(101)通过EMI接口模块(104)读取外部存储器(105)内从核段的大小,若所述读取从核段的数据块大小为零,则跳转至步骤S203,否则,跳转至步骤S206;
步骤S206、主核(101)将外部存储器(105)中从核的源程序加载到主核内部RAM存储器(100)内;
步骤S207、配置主核网络节点控制器(102),并将主核内部RAM存储器(100)中的从核源程序传送至目标从核的从核内部RAM存储器内;
步骤S208、主核(101)从外部存储器(105)中读取主核(101)的参数,以配置主核(101);
步骤S209、读取外部存储器(105)中主核段的数据,并判断主核段的大小,若所述主核段的大小为非零,则执行步骤S211,否则,执行步骤S210;
步骤S210、主核(101)通过EMI接口模块(104)将外部存储器(105)的主核源代码加载到主核内部RAM存储器(100)内;
步骤S211、跳转到启动地址,以实现多核处理器的启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611080574.XA CN106648758B (zh) | 2016-11-30 | 2016-11-30 | 一种多核处理器boot启动***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611080574.XA CN106648758B (zh) | 2016-11-30 | 2016-11-30 | 一种多核处理器boot启动***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106648758A CN106648758A (zh) | 2017-05-10 |
CN106648758B true CN106648758B (zh) | 2019-11-15 |
Family
ID=58813505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611080574.XA Active CN106648758B (zh) | 2016-11-30 | 2016-11-30 | 一种多核处理器boot启动***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648758B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634672A (zh) * | 2018-12-04 | 2019-04-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于核间通信的多核处理器加载方法 |
CN109800032B (zh) * | 2019-01-31 | 2022-03-25 | 深圳忆联信息***有限公司 | Bootrom多核加载方法及装置 |
CN114090097A (zh) * | 2020-06-30 | 2022-02-25 | 中国航发商用航空发动机有限责任公司 | 发动机控制***和控制软件启动方法 |
CN113076263A (zh) * | 2021-05-06 | 2021-07-06 | 北京字节跳动网络技术有限公司 | 一种进程运行的方法、装置、计算机设备及存储介质 |
CN113672260B (zh) * | 2021-08-17 | 2024-04-12 | 浙江大华技术股份有限公司 | 一种处理器cpu初始化方法 |
CN116795452B (zh) * | 2023-07-20 | 2024-04-02 | 龙芯中科(北京)信息技术有限公司 | 驱动程序兼容性的确定方法、装置及设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100524286C (zh) * | 2007-10-29 | 2009-08-05 | 中国科学院计算技术研究所 | 一种多核处理***及其管理方法 |
CN101996087B (zh) * | 2010-12-02 | 2013-12-04 | 北京星河亮点技术股份有限公司 | 多核处理器阵列程序的动态加载方法 |
JP6102204B2 (ja) * | 2012-11-19 | 2017-03-29 | 富士通株式会社 | 電子装置、その制御プログラムおよび制御方法 |
CN104156234B (zh) * | 2014-07-22 | 2018-07-31 | 华为技术有限公司 | 启动多核处理器、bootloader大小端模式自适应的方法及装置 |
CN104199699B (zh) * | 2014-08-29 | 2017-06-16 | 北京经纬恒润科技有限公司 | 程序加载方法、芯片启动方法、装置及主控设备 |
CN104866357B (zh) * | 2015-05-29 | 2019-08-23 | 中国电子科技集团公司第五十八研究所 | 数字信号处理器的boot启动方法及其启动装置 |
-
2016
- 2016-11-30 CN CN201611080574.XA patent/CN106648758B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106648758A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648758B (zh) | 一种多核处理器boot启动***及方法 | |
CN114546405B (zh) | 用于使用统一中间表示来处理图形的方法和*** | |
CN106648803A (zh) | 一种dsp芯片在线升级方法 | |
US20070169059A1 (en) | Compiler method for extracting and accelerator template program | |
CN105814541B (zh) | 计算机设备及计算机设备内存启动的方法 | |
US10289785B1 (en) | Platform architecture creation for a system-on-chip | |
CN112232000B (zh) | 跨多个验证域的验证***、验证方法、验证设备 | |
EP2482195A1 (en) | Semiconductor device and host apparatus | |
US9367306B2 (en) | Method for transforming a multithreaded program for general execution | |
CN104156234B (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
US6745320B1 (en) | Data processing apparatus | |
CN113672342A (zh) | 嵌入式虚拟化***及构建、测试方法、终端及介质 | |
KR20200139525A (ko) | Fpga를 포함하는 전자 시스템 및 이의 동작 방법 | |
CN109725941A (zh) | 一种用于显示驱动芯片的可编程初始化方法及*** | |
CN104346132A (zh) | 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机 | |
CN108595917A (zh) | 基于fpga的面向基因测序串匹配算法的加速平台及设计方法 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
CN109656758B (zh) | 用于异构双处理器***芯片的调试方法及*** | |
CN104850015B (zh) | 一种软件封装方法及一种汽车电子控制器 | |
CN106980513A (zh) | 一种双引导文件的切换方法及装置 | |
US11593547B1 (en) | Prediction and optimization of multi-kernel circuit design performance using a programmable overlay | |
US8694975B2 (en) | Programming system in multi-core environment, and method and program of the same | |
CN101908016A (zh) | 多核心嵌入式装置的除错信息与断点管理方法 | |
CN112764379B (zh) | 一种基于dsp***的iap控制方法 | |
CN104035811B (zh) | 虚拟机现场数据的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |