CN113434087B - 基于共享空间的多核启动方法 - Google Patents
基于共享空间的多核启动方法 Download PDFInfo
- Publication number
- CN113434087B CN113434087B CN202110716559.4A CN202110716559A CN113434087B CN 113434087 B CN113434087 B CN 113434087B CN 202110716559 A CN202110716559 A CN 202110716559A CN 113434087 B CN113434087 B CN 113434087B
- Authority
- CN
- China
- Prior art keywords
- core
- space
- fpga
- starting
- shared
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于共享空间的多核启动方法,使用一片FPGA,挂接在核1的IO空间,同时挂接在核2、核3、核4的CE1启动FLASH空间,通过FPGA模拟核2、3、4的CE1启动空间,核1启动后将存在核1的FLASH中的核2的启动程序搬移到FPGA的共享内存空间,然后释放核2的复位,核2启动引导软件,核2引导软件与核1进行交互,通过FPGA共享空间将应用软件移到自身内部RAM空间,随后再启动应用软件运行,核3和核4的启动过程同理。该方法不仅节省了硬件成本和体积,另外使用处理器的三总线交互控制方式,通用性好,便于移植,而且软件开发成本低,具有更高的实际应用价值。
Description
技术领域
本发明属于软件启动方法领域,具体涉及一种基于共享空间的多核启动方法。
背景技术
随着处理器集成技术不断发展,高性能高集成度的多核处理器已被广泛应用,以往的多台计算机可以集成到一台计算机中,使用多核处理器代替原先的多台计算机分别处理不同的程序。但是一些多核处理器只是集成了处理器,对于每个处理器任然需要单独配置启动存储器,具体如图1所示。通常嵌入式计算机的启动程序占用空间比较小,启动存储器空间浪费很大。另一方面军用或者宇航用存储器体积大,成本高昂,困扰着计算机***的集成度进一步提高和降低成本设计。
DSP6713J/500是一款4核高性能高可靠型军用处理器,该处理器目前支持两种多核启动方式,一种是ROM启动方式,需要为每个核挂接一个FLASH,加电后每个核从片选CE1存储器上FLASH中启动,第二种启动方式为使用HPI启动,HPI启动需要两个条件,首先处理器必须具有HPI接口,其次是在芯片外增加一片FPGA,通过FPGA模拟HPI主机Host功能,通过FPGA内部的HPI控制器启动多核,对于没有HPI接口的处理器则不能使用该方式,因此HPI方式启动方式只适用于特定处理器,不具备广泛推广应用的条件。
因此,亟待设计一种能更有效的使用资源、降低成本同时又便于广泛推广应用的多核启动方案。
发明内容
本发明为解决现有技术中存在的缺陷,提出一种基于共享空间的多核启动方法,以DSP6713J/500多核处理器控制计算机***为应用对象,只需FPGA实现一段共享空间RAM和多核交互逻辑控制即可实现多核启动。
本发明是采用以下的技术方案实现的:一种基于共享空间的多核启动方法,基于箭载控制计算机***实现,采用DSP6713J/500四核处理器和一片FPGA,四核处理器包括核1、核2、核3和核4,FPGA中设计一段共享存储空间,该共享存储空间挂接在核1的IO空间上,同时挂接在核2、核3、核4的CE1启动FLASH空间,每个核平均分配2M字节存储空间,由核1控制分时复用该共享存储空间,具体包括以下步骤:
步骤1、程序上注,启动核1;
步骤2、核1搬移核2程序到FPGA共享存储空间,释放核2复位,核2启动;
步骤3、核1搬移核3程序到FPGA共享存储空间,释放核3复位,核3启动;
步骤4、核1搬移核4程序到FPGA共享存储空间,释放核4复位、核4启动;
步骤5、多核启动完成,核1启动应用程序。
进一步的,所述步骤2中,具体为:
核1的bootcs直接挂接到共享的FLASH上,加电后核1直接从FLASH搬移启动程序到自己的RAM空间启动;核1启动后,将FLASH中核2的启动程序搬移到FPGA的共享存储空间,然后释放核2的复位信号,核2的bootcs有效,从FPGA的共享空间将程序搬移到自己的内部RAM启动空间后跳转启动引导软件,核2引导软件与核1进行交互,通过FPGA共享空间将应用软件移到自身内部RAM空间,随后再启动应用软件运行,同时释放bootcs控制,核2使用FPGA共享空间结束。
与现有技术相比,本发明的优点和积极效果在于:
(1)4核共享1片FLASH存储空间,节省3片FLASH的硬件成本和体积;
(2)使用处理器的三总线交互控制方式,通用性好,便于移植,目前绝大多数的处理器都使用三总线访问存储器和外部接口,因此绝大多数的处理器可以支持本文的启动方案;
(3)软件开发成本低,不用开发和使用HPI控制程序,只需FPGA实现一段共享空间RAM和多核交互逻辑控制即可实现多核启动。
附图说明
图1为传统多核启动原理框图;
图2为本发明实施例多核启动流程示意图;
图3为本发明实施例多核启动原理框图。
具体实施方式
为了能够更加清楚地理解本发明的上述目的、特征和优点,下面结合附图及实施例对本发明做进一步说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例。
本方案是在DSP6713J/500多核处理器使用中开发的一种更为经济和易于实现的多核软件启动技术。该技术以DSP6713J/500多核处理器控制计算机***为应用对象,支持通过核1加载核2、3、4的软件,而不需要为每个核配置单独的FLASH存储器。可以节省传统启动方式的成本、体积,只需要设备配置一款FPGA,无需再增加额外硬件,就可使用核1挂载FLASH实现核1和之外其他三个核的软件启动。
具体的,如图2和图3所示,基于共享空间的多核启动方法,基于箭载控制计算机***实现,采用DSP6713J/500四核处理器和一片FPGA,包括核1、核2、核3和核4,核1运行控制计算机主程序,核2给伺服控制器使用,核3给PWM控制器使用,FPGA中设计一段共享存储空间,挂接在核1的IO空间上,同时挂接在核2、核3、核4的CE1启动FLASH空间,每个核平均分配2M字节存储空间,由核1控制分时复用该共享存储空间,具体包括以下步骤:
步骤1、程序上注,启动核1;
步骤2、核1搬移核2程序到FPGA共享存储空间,释放核2复位,核2启动;
步骤3、核1搬移核3程序到FPGA共享存储空间,释放核3复位,核3启动;
步骤4、核1搬移核4程序到FPGA共享存储空间,释放核4复位、核4启动;
步骤5、多核启动完成,核1启动应用程序。
本实施例中,DSP的程序存储器使用了AM29LV641-120EI,单片8M字节,每个核平均分配2M字节存储空间,DSP的对外接口控制使用了FPGA XC7K325T,核2,核3的总线接口也挂接在FPGA上。设备加电后,DSP的核1运行监控程序,等待程序上注,通过上位机将3个核的程序分别上注的各自分配的空间内,然后发送核1启动跳转指令,DSP核1从自己挂接的FLASH中启动,核1启动后开始从FLASH中搬移核2的程序到FPGA的共享RAM空间,搬移完成后释放核2的复位,核2启动为CE1 ROM启动模式,核2的ROM空间为FPGA模拟存储器空间,FPGA从FLASH中首先读取4KB程序存放于共享RAM中,此时FPGA释放核2的复位,核2从共享存储空间开始运行,一般引导程序和应用程序大小不会小于4KB,因此引导程序还需将自身的后续运行程序和应用软件代码通过共享存储空间搬移到核1的内部RAM,搬运过程通过核1与FPGA之间的交互完成,逐步完成运行程序搬移到内部RAM的过程,当搬运完成后,启动软件继续运行,随后将应用软件加载运行起来,应用软件运行成功后核2反馈给核1启动成功状态,完成核2的全部启动程序,核1开始按照启动核2的流程启动核3。同理如果核4也需要使用参考核2的启动流程。
本方案的主要难点是多核存储空间共享,如何将一片存储区域给多个核启动使用,为了解决该问题,本实施例从程序存储空间分区使用和FPGA存储器空间分时复用两方面进行设计,详细说明如下:
(1)实现多核共享一片存储器,其实就是分区使用,一片FLASH共8M字节,每个核可平均分配2M字节,也可根据实际使用情况按需分配。设计一套监控软件和上位机实现FLASH的程序上注和下传管理,监控软件运行在核1上,通过上位机和核1监控软件进行交互。上位机中可以配置各个核的程序上注地址和空间,可以将任意大小的程序上注到FLASH的指定空间中。
(2)通过(1)各个核的启动程序和应用程序已经注入到了共享的存储空间中,还需要将程序搬移到各自的启动空间中,才能启动,为此在FPGA中设计一段共享存储空间,挂接在核1的IO空间上,核1可以直接读写该空间,核2、核3、核4的bootcs都指向该共享空间,由核1控制分时复用该共享空间。核1的bootcs直接挂接到共享的FLASH上,加电后核1可以直接从FLASH搬移启动程序到自己的RAM空间启动,核1启动后,将FLASH中核2的启动程序搬移到FPGA的共享存储空间,然后释放核2的复位信号,核2的bootcs有效,从FPGA的共享空间将程序搬移到自己的内部RAM启动空间后跳转启动引导软件,核2引导软件与核1进行交互,通过FPGA共享空间将应用软件移到自身内部RAM空间,随后再启动应用软件运行,同时释放bootcs控制,核2使用FPGA共享空间结束。核3和核4的启动过程同核2启动原理一样,核1再重复相同的操作启动核3和核4,多核都启动成功后核1跳转到自己的应用程序。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (1)
1.基于共享空间的多核启动方法,基于箭载控制计算机***实现,其特征在于,采用DSP6713J/500四核处理器和一片FPGA,四核处理器包括核1、核2、核3和核4,FPGA中设计一段共享存储空间,该共享存储空间挂接在核1的IO空间上,同时挂接在核2、核3、核4的CE1启动FLASH空间,每个核平均分配2M字节存储空间,由核1控制分时复用该共享存储空间,具体包括以下步骤:
步骤1、程序上注,启动核1;
步骤2、核1的bootcs直接挂接到共享的FLASH上,加电后核1直接从FLASH搬移启动程序到自己的RAM空间启动,核1启动后,将FLASH中核2的启动程序搬移到FPGA的共享存储空间,然后释放核2的复位信号,核2的bootcs有效,从FPGA的共享空间将程序搬移到自己的内部RAM启动空间后跳转启动引导软件,核2引导软件与核1进行交互,通过FPGA共享空间将应用软件移到自身内部RAM空间,随后再启动应用软件运行,同时释放bootcs控制,核2使用FPGA共享空间结束;
步骤3、核1再重复相同的操作启动核3和核4;
步骤4、多核都启动成功后核1跳转到自己的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110716559.4A CN113434087B (zh) | 2021-06-28 | 2021-06-28 | 基于共享空间的多核启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110716559.4A CN113434087B (zh) | 2021-06-28 | 2021-06-28 | 基于共享空间的多核启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434087A CN113434087A (zh) | 2021-09-24 |
CN113434087B true CN113434087B (zh) | 2022-09-23 |
Family
ID=77755251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110716559.4A Active CN113434087B (zh) | 2021-06-28 | 2021-06-28 | 基于共享空间的多核启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434087B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114221B (zh) * | 2022-08-30 | 2022-12-06 | 湖南矩阵电子科技有限公司 | 基于异构多核架构的数据处理***及方法 |
CN116737279B (zh) * | 2023-08-15 | 2024-01-02 | 北京紫光芯能科技有限公司 | 用于程序运行的方法及装置、处理器、电子设备、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207782A (zh) * | 2013-03-27 | 2013-07-17 | 北京航空航天大学 | 基于multi-kernel MOS 的分区***构建方法 |
JPWO2013140518A1 (ja) * | 2012-03-19 | 2015-08-03 | 富士通株式会社 | スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法 |
CN107656773A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
CN109634672A (zh) * | 2018-12-04 | 2019-04-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于核间通信的多核处理器加载方法 |
CN111176739A (zh) * | 2019-12-29 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种***启动方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270189B (zh) * | 2011-06-17 | 2013-02-13 | 西安电子科技大学 | 基于fpga多核***的核间通信方法 |
CN109086086B (zh) * | 2018-08-06 | 2021-06-08 | 深圳忆联信息***有限公司 | 一种非空间共享的多核cpu的启动方法及装置 |
-
2021
- 2021-06-28 CN CN202110716559.4A patent/CN113434087B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013140518A1 (ja) * | 2012-03-19 | 2015-08-03 | 富士通株式会社 | スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法 |
CN103207782A (zh) * | 2013-03-27 | 2013-07-17 | 北京航空航天大学 | 基于multi-kernel MOS 的分区***构建方法 |
CN107656773A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
CN109634672A (zh) * | 2018-12-04 | 2019-04-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于核间通信的多核处理器加载方法 |
CN111176739A (zh) * | 2019-12-29 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种***启动方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
多核DSP的Nand Flash启动软硬件设计;蔡湘平等;《单片机与嵌入式***应用》;20130301(第03期);全文 * |
多核DSP的动态重构方案的设计与实现;何双宗等;《机械设计》;20180831;第35卷(第S1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113434087A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625321B2 (en) | Apparatuses and methods for memory address translation during block migration using depth mapping table based on mapping state | |
CN113434087B (zh) | 基于共享空间的多核启动方法 | |
JP6355114B2 (ja) | リソース処理方法、オペレーティング・システム、およびデバイス | |
US9697024B2 (en) | Interrupt management method, and computer implementing the interrupt management method | |
KR102236419B1 (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
CN112286645A (zh) | 一种gpu资源池调度***及方法 | |
JP2015534184A (ja) | コード実行の柔軟なアクセラレーション | |
KR20100037959A (ko) | 가상 컴퓨팅 가속기와 서버 기반의 가상 컴퓨팅을 구현하기위한 프로그램 다운로드 방법 | |
CN111694402B (zh) | 单芯片异构***的控制方法和可穿戴设备 | |
KR101835604B1 (ko) | 메모리를 위한 스케줄러 | |
CN106648758A (zh) | 一种多核处理器boot启动***及方法 | |
CN112650539A (zh) | 面向异构众核处理器的动态链接运行支撑方法 | |
EP3270293B1 (en) | Two stage command buffers to overlap iommu map and second tier memory reads | |
EP3438816B1 (en) | Bios starting method and device | |
CN115794680A (zh) | 一种基于硬件克隆技术的多核操作***及其控制方法 | |
US20220358049A1 (en) | Memory access handling for peripheral component interconnect devices | |
CN110673956B (zh) | 回收线程创建方法、装置、计算机设备以及存储介质 | |
CN103176832B (zh) | 一种类unix操作***运行虚拟操作***的方法及装置 | |
US20230185991A1 (en) | Multi-processor simulation on a multi-core machine | |
JP2022034455A (ja) | 計算機システムおよび管理方法 | |
CN102141915B (zh) | 一种基于RTLinux的设备实时控制方法 | |
CN106155682A (zh) | 一种基于SDMA控制器的Linux***启动方法及*** | |
CN114416031A (zh) | 面向AIoT场景支持RISC-V处理器的操作*** | |
CN103853599A (zh) | 一种节点计算能力的扩展方法 | |
CN112181626A (zh) | 脱离Android操作***调度CPU的***、方法及介质 |
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 |