CN106293825A - 一种基于硬件信号量的多核启动同步方法 - Google Patents
一种基于硬件信号量的多核启动同步方法 Download PDFInfo
- Publication number
- CN106293825A CN106293825A CN201610635043.6A CN201610635043A CN106293825A CN 106293825 A CN106293825 A CN 106293825A CN 201610635043 A CN201610635043 A CN 201610635043A CN 106293825 A CN106293825 A CN 106293825A
- Authority
- CN
- China
- Prior art keywords
- hardware semaphore
- value
- kinetonucleus
- multinuclear
- semaphore register
- 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.)
- Pending
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)
- Multi Processors (AREA)
Abstract
本发明提供一种基于硬件信号量的多核启动同步方法,包括基于多核同步启动系统,预先为需要同步的从动核分配相应的硬件信号量寄存器和设备值;主控核上电启动;主控核引导从动核进行加载启动;从动核启动后,填写硬件信号量寄存器的值为设备值;主控核访问硬件信号量寄存器,判断其值是否是分配的设备值,如果是表示从动核启动完成,否则继续循环读取硬件信号量寄存器,直到此值为分配的设备值,实现多核同步。本发明利用硬件信号量寄存器技术,使启动同步的时间摆脱长时间盲等的困境;如果没有硬件信号量寄存器,也可以使用共享内存模拟硬件信号量寄存器实现,达到广泛使用于所有多核系统的目的。本发明实现简单,应用广泛,具有重要的市场价值。
Description
技术领域
本发明涉及多核嵌入式技术领域,尤其是涉及一种基于硬件信号量的多核启动同步方法。
背景技术
为了降低处理器的体积和功耗,多核技术在不断发展,不仅将多个相同的核封装在一个芯片内,也有将几种不同类型的核封装在一起,这些芯片集成了控制和专业信号处理等多种功能,具有更强的专业性,被广泛应用于通信、航天等领域。随着嵌入式硬件技术的发展,嵌入式软件技术也亟待提高。
参见图1中现有技术中的多核启动同步的传统方法,包括主核上电启动,引导从核启动,并延时预计时间,与从核握手同步;从核启动后则等待主核发握手同步请求。例如使用的芯片集成了DSP(数字信号处理器)和PPC(精简指令集架构的中央处理器)两种不同类的核,各自运行自己的程序,管理自己的内存;同时,它们又需要协同工作,是个同步系统,所以需要从上电开始就一直保持同步状态。目前的这种同步,多采取等待的方式,即等待足够长的时间,此时间通过统计另一系统启动所用时间,然后在统计的最长时间的基础上留足富余时间来确定,这样就会导致开机时间过长,否则就会有一定概率的开机异常。
发明内容
本发明提出了一种基于硬件信号量的核间同步方式,其目的是有效缩短多核系统的开机时间,提升用户体验。
本发明的技术方案为一种基于硬件信号量的多核启动同步方法,基于多核同步启动系统,执行以下步骤,
步骤1,预先为需要同步的从动核分配相应的硬件信号量寄存器和设备值;
步骤2,主控核上电启动;
步骤3,主控核引导从动核进行加载启动;从动核启动后,填写硬件信号量寄存器的值为步骤1分配的设备值;
步骤4,主控核访问硬件信号量寄存器,判断其值是否是步骤1分配的设备值,如果是表示从动核启动完成,否则继续循环读取硬件信号量寄存器,直到此值为步骤1分配的设备值,实现多核同步。
而且,如果没有硬件信号量寄存器,从主控核和从动核的共享内存中指定一个地址进行替代。
而且,所述多核同步启动系统采用支持硬件信号量寄存器的多核SoC芯片,其中PA为主控核引导SC作为从动核启动。
本发明对比已有技术有以下创新点:
1、利用硬件信号量寄存器技术,主核可在从核启动之后,第一时间得知,使启动同步的时间摆脱长时间盲等的困境。
2、本设计模型还可以使用共享内存模拟硬件信号量寄存器,如果没有硬件信号量寄存器,也可以使用共享内存模拟硬件信号量寄存器实现,达到广泛适用于所有多核系统的目的。
因此,本发明实现简单,应用广泛,具有重要的市场价值。
附图说明
图1 为现有技术中的多核启动同步的传统方法示意图;
图2为本发明实施例的多核启动同步的方案示意图。
具体实施方式
本发明主要针对拥有不同种类核的多核系统如何实现快速可靠的启动同步,提供一种基于硬件信号量寄存器的设计,在同步多核系统启动中,满足良好的客户体验,有效减少盲目等待的时间。本设计充分利用硬件信号量寄存器的资源,有效缩短可靠的启动同步所需时间,合理使用系统资源。
本发明的实施例,提出了一种多核启动同步的新设计,结合硬件信号量技术,实现可控的启动同步。设置支持有硬件信号量寄存器的SoC芯片,由一种内核启动之后引导另一种内核启动;在引导另一内核启动之后,通过访问硬件信号量寄存器获知该内核是否启动完成,以实现同步工作。该方法能在所有多核系统中实现多个不同种类核的同步启动,并且保证在第一时间完成同步,摆脱长时间盲等的困境;通过往硬件信号量寄存器写一个预先定义的非零值,实现启动完成的通知。
采用硬件信号量可以避免无互动的等待,可以通过查询硬件信号量寄存器得知其余的核是否启动完成,并且可以通过访问的值获知哪些核启动完成。如果不是使用硬件信号量这种方式,而是使用共享内存,来运行本发明介绍的方法,有可能会出现握手异常的问题,因为硬件信号量具有下述特点:只能由零改写成非零的值和从非零的值改为零,而不能从非零值改成不同的非零值。而启动过程中,有些内核会初始化内存,带来值的改变。而硬件信号量寄存器首先不需要初始化,同时其写操作具有定向性,可以屏蔽异常。所以当用共享内存替代硬件信号量运行本发明介绍的方法时,需选取不会被内核启动操作的内存。
本发明实施例设置支持硬件信号量寄存器的多核SoC芯片(可以是PA与SC),并且PA为主控核引导SC作为从动核启动。其中,SoC表示系统级芯片,SC表示可编程数字信号处理器子系统,PA表示中央处理器子系统。
如图2所示,实施例具体实施过程如下,其中没有特别指出由SC执行的都是由PA执行,具体实施时可采用软件技术实现自动运行:
1.为需要同步的核分配属于自己的硬件信号量寄存器和设备值,具体实施时,可由本领域技术人员根据具体芯片需求预先指定。本实施例中,为SC分配的硬件信号量寄存器的地址是0x17108,设备值0xFE,定义该设备值用于标示从动核SC已启动。如果没有硬件信号量寄存器,可以从共享内存(需同步的几个核都可以访问到的内存)中,指定一个地址,用于替代。
2.主控核上电启动。
3.主控核引导从动核SC加载、启动。具体实施时,这一步可以根据核类型进行具体实现。本实施例中,是引导SC核的加载;从动核启动后,主动填写硬件信号量寄存器的值为预定义的设备值0xFE。
4.主控核(即PA侧),访问0x17108,判断其值是否是预定义的设备值0xFE,如果是表示SC启动完成,否则继续循环读取硬件信号量寄存器,直到此值为0xFE,实现多核同步。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (3)
1.一种基于硬件信号量的多核启动同步方法,其特征在于:基于多核同步启动系统,执行以下步骤,
步骤1,预先为需要同步的从动核分配相应的硬件信号量寄存器和设备值;
步骤2,主控核上电启动;
步骤3,主控核引导从动核进行加载启动;从动核启动后,填写硬件信号量寄存器的值为步骤1分配的设备值;
步骤4,主控核访问硬件信号量寄存器,判断其值是否是步骤1分配的设备值,如果是表示从动核启动完成,否则继续循环读取硬件信号量寄存器,直到此值为步骤1分配的设备值,实现多核同步。
2.根据权利要求1所述基于硬件信号量的多核启动同步方法,其特征在于:如果没有硬件信号量寄存器,从主控核和从动核的共享内存中指定一个地址进行替代。
3.根据权利要求1或2所述基于硬件信号量的多核启动同步方法,其特征在于:所述多核同步启动系统采用支持硬件信号量寄存器的多核SoC芯片,其中PA为主控核引导SC作为从动核启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635043.6A CN106293825A (zh) | 2016-08-05 | 2016-08-05 | 一种基于硬件信号量的多核启动同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635043.6A CN106293825A (zh) | 2016-08-05 | 2016-08-05 | 一种基于硬件信号量的多核启动同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106293825A true CN106293825A (zh) | 2017-01-04 |
Family
ID=57665231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610635043.6A Pending CN106293825A (zh) | 2016-08-05 | 2016-08-05 | 一种基于硬件信号量的多核启动同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293825A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874458A (zh) * | 2017-05-10 | 2018-11-23 | 鸿秦(北京)科技有限公司 | 一种多核SoC的固件启动方法以及多核SoC设备 |
CN108990091A (zh) * | 2018-07-03 | 2018-12-11 | 武汉虹信通信技术有限责任公司 | 一种基于共享内存的lte物理层测试方法及系统 |
CN112073790A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 显示设备及双系统间启动状态的同步方法 |
CN114741137A (zh) * | 2022-05-09 | 2022-07-12 | 潍柴动力股份有限公司 | 一种基于多核微控制器的软件启动方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282623A1 (en) * | 2005-06-14 | 2006-12-14 | Howlett Warren K | Systems and methods of accessing common registers in a multi-core processor |
CN101122869A (zh) * | 2007-09-20 | 2008-02-13 | 中兴通讯股份有限公司 | 一种用于多核多线程处理器的单线程复位方法 |
CN101546275A (zh) * | 2008-03-26 | 2009-09-30 | 中国科学院微电子研究所 | 具有硬件信号量模块的多处理器系统及其实现方法 |
CN103136159A (zh) * | 2011-11-29 | 2013-06-05 | 中国航空工业集团公司第六三一研究所 | 一种用于多处理机系统的控制和信息交互方法 |
CN104731577A (zh) * | 2013-12-20 | 2015-06-24 | 三星泰科威株式会社 | 多系统和启动所述多系统的方法 |
CN102855214B (zh) * | 2011-06-27 | 2015-07-29 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
-
2016
- 2016-08-05 CN CN201610635043.6A patent/CN106293825A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282623A1 (en) * | 2005-06-14 | 2006-12-14 | Howlett Warren K | Systems and methods of accessing common registers in a multi-core processor |
CN101122869A (zh) * | 2007-09-20 | 2008-02-13 | 中兴通讯股份有限公司 | 一种用于多核多线程处理器的单线程复位方法 |
CN101546275A (zh) * | 2008-03-26 | 2009-09-30 | 中国科学院微电子研究所 | 具有硬件信号量模块的多处理器系统及其实现方法 |
CN102855214B (zh) * | 2011-06-27 | 2015-07-29 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
CN103136159A (zh) * | 2011-11-29 | 2013-06-05 | 中国航空工业集团公司第六三一研究所 | 一种用于多处理机系统的控制和信息交互方法 |
CN104731577A (zh) * | 2013-12-20 | 2015-06-24 | 三星泰科威株式会社 | 多系统和启动所述多系统的方法 |
Non-Patent Citations (2)
Title |
---|
乾龙_HERON: "ARM多核处理器启动过程分析", 《HTTPS://BLOG.CSDN.NET/QIANLONG4526888/ARTICLE/DETAILS/27695173》 * |
邵贝贝: "《嵌入式系统中的双核技术》", 30 September 2008, 北京航空航天大学出版社 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874458A (zh) * | 2017-05-10 | 2018-11-23 | 鸿秦(北京)科技有限公司 | 一种多核SoC的固件启动方法以及多核SoC设备 |
CN108990091A (zh) * | 2018-07-03 | 2018-12-11 | 武汉虹信通信技术有限责任公司 | 一种基于共享内存的lte物理层测试方法及系统 |
CN108990091B (zh) * | 2018-07-03 | 2021-10-22 | 武汉虹信科技发展有限责任公司 | 一种基于共享内存的lte物理层测试方法及系统 |
CN112073790A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 显示设备及双系统间启动状态的同步方法 |
CN114741137A (zh) * | 2022-05-09 | 2022-07-12 | 潍柴动力股份有限公司 | 一种基于多核微控制器的软件启动方法、装置、设备及存储介质 |
CN114741137B (zh) * | 2022-05-09 | 2024-02-20 | 潍柴动力股份有限公司 | 一种基于多核微控制器的软件启动方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293825A (zh) | 一种基于硬件信号量的多核启动同步方法 | |
CN1983196B (zh) | 用于将执行线程分组的系统和方法 | |
CN103577308B (zh) | 移动设备的日志文件的获取方法 | |
CN104932933B (zh) | 一种获取自旋锁的方法及装置 | |
CN104090848A (zh) | 一种周期性大数据处理的内存管理方法及装置 | |
CN107949816A (zh) | 在处理器核变得活跃时提供电压调节的电路和方法 | |
CN106385329A (zh) | 资源池的处理方法、装置和设备 | |
CN104199699B (zh) | 程序加载方法、芯片启动方法、装置及主控设备 | |
CN111694402B (zh) | 单芯片异构系统的控制方法和可穿戴设备 | |
CN110633130B (zh) | 一种基于内存热插拔技术的虚拟内存管理方法和装置 | |
CN103034812A (zh) | 一种可信芯片兼容方法、设备及该设备的使用方法 | |
CN106326145A (zh) | 一种存储器的控制方法和装置 | |
US8825465B2 (en) | Simulation apparatus and method for multicore system | |
AU2012227208B2 (en) | Global clock handler object for HDL environment | |
CN103677745A (zh) | 一种在龙芯主板中写入和读取设备标识的方法 | |
CN113204425B (zh) | 供进程管理内部线程的方法、装置、电子设备及存储介质 | |
CN112732556B (zh) | 分布式系统的自动化测试方法、装置、设备及存储介质 | |
WO2014201885A1 (en) | Method and system for invoking plug-in function | |
CN103019944A (zh) | 基于代码注入方式的测试方法和装置 | |
US20230185991A1 (en) | Multi-processor simulation on a multi-core machine | |
CN102542525B (zh) | 一种信息处理设备以及信息处理方法 | |
CN106897200A (zh) | 一种基于redis的分布式文件系统性能测试方法 | |
CN117215491A (zh) | 一种快速数据访问方法、快速数据访问装置及光模块 | |
CN103517051A (zh) | 控制方法和电子设备 | |
US20140370990A1 (en) | Method and system for invoking plug-in function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |
|
RJ01 | Rejection of invention patent application after publication |