CN1952900A - 可编程通用多核处理器芯片上处理器之间程序流同步方法 - Google Patents
可编程通用多核处理器芯片上处理器之间程序流同步方法 Download PDFInfo
- Publication number
- CN1952900A CN1952900A CN 200510086643 CN200510086643A CN1952900A CN 1952900 A CN1952900 A CN 1952900A CN 200510086643 CN200510086643 CN 200510086643 CN 200510086643 A CN200510086643 A CN 200510086643A CN 1952900 A CN1952900 A CN 1952900A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- processor
- party
- core
- valid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000001360 synchronised effect Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Abstract
一种多核处理器芯片上处理器之间进行程序流同步的方法。在多核处理器芯片上,两个处理器核需要通过接口动态数据和控制信息交换。发送的处理器必须在接收的处理器做好准备之后,开始发送不会出错。二者之间需要同步,该方法:执行同步指令,该指令将发往另一方的一根同步信号有效,并使本处理器进入闲置等待状态,直到发现对方发来的同步信号有效,才继续程序流执行;另一方也在做好准备时,执行同步指令,同样进行闲置等待状态,一旦发现对方发来的同步信号有效,就继续自己的程序流,进行信息交换。该方法解决了处理器核之间进行同步的难点,而且易于编程,同步时,由于处理器核处于闲置等待状态,核内逻辑不翻转,极大的降低了功耗。
Description
技术领域
本发明属于处理器技术领域,是一种可编程通用多核处理器芯片上处理器之间的程序流同步方法。
背景技术
在处理器设计领域,当前市场上主要处理器都是在单处理器架构下,提高时钟主频,提高低层次并行度(譬如数据并行,操作并行,指令并行,线程并行等)从而来提高处理器的处理能力。
随着工艺的发展,芯片集成度不断得到成倍的提高,但是在当前主流处理器的电路规模情况下,要提高处理器的主频到4GHz,甚至更高,将面临着芯片功耗太大,散热难的问题,从而很难达到期望的频率。
而从提高低层次并行度上来提高处理器性能,性价比在急速降低,采用新技术花费很大的电路规模也只能稍微提高处理器的性能。
单芯片上,提高处理器核的并行度,也就是设计多处理器,成为一个最可取的选择。人们发现在同样的电路规模下,多处理器芯片比起低层次并行的单处理器芯片的平均性能要高。所以围绕多处理器架构的芯片设计研究是当前的方向。
而单芯片上多处理器核之间进行数据和控制信息交换又是多处理器芯片设计研究的重点。处理器核之间进行信息交换或者进行其他协调工作往往需要先对二者进行程序流的同步。发明人首先考虑到处理器核的程序流同步的需要,并提出了同步解决方案。
发明内容
可编程多核处理器芯片上,任何有可能和别的处理器核进行同步的处理器核都必须扩充指令集使其支持同步指令,同步指令具有如下形式:
<同步指示><和本核同步的处理器核的标示>
硬件上,每个处理器核和其需要同步的处理器核之间具有两根互联信号线,分别为发往对方的同步信号。
在软件上,为了实现两个处理器核的程序流分别在各自的程序节点上实现同步,应当在其程序节点上插入指向对方的同步指令。不管哪个处理器核先执行到其同步指令,都将排空自己的流水线,其程序指针不再改变,进入闲置状态;同时硬件自动使发给对方处理器的同步信号有效,然后每个时钟都检查对方发来的同步信号是否有效,如果有效,则脱离闲置状态,继续后面的程序执行,并使发给对方的同步信号无效;
在后执行同步指令的一方,发现对方发来的同步信号已经有效,将不再进入闲置状态,而是直接进行下面的程序执行,这样能够提高此处理器的执行效率;但要发给对方同步信号有效电平脉冲,而且脉冲宽度足够对方处理器核能够探测到,以便于对方脱离闲置状态,继续其后面的程序执行。
通过支持同步指令,多处理器核芯片(多中央处理器或者数字信号处理器核)内部,各个处理器核的程序流之间可以方便的进行同步,同步之后以便于二者之间的信息交换和其他协调工作。
实现同步的两个处理器核之间互送对方的信号线,也就是同步信号,该信号的有效与否指示:
<发出处理器核当前是否处于等待对方同步信号状态>,
这种状态是一种闲置状态,处于这种状态的处理器核的程序流停在了同步指令这个程序节点上。
先执行同步指令的处理器,在处于同步等待状态时,一旦发现对方发来的同步信号有效,将使自己发出的同步无效。而对方后执行同步指令,它执行时,仅仅使能它发出的同步信号有效一段时间。这一机制称为同步互相抵制机制。
这种同步方案可以使用在任何可编程多核处理器芯片上,不管芯片嵌入的核是CPU核,DSP核,还是其他可编程核。
技术方案
一种可编程通用多核处理器芯片上处理器之间的程序流同步方法,每个处理器核和其需要同步的处理器核之间具有两根互联信号线,分别为发往对方的同步信号,为了实现两个处理器核的程序流分别在各自的程序节点上实现同步,应当在其程序节点上插入指向对方的同步指令,不管哪个处理器核先执行到其同步指令,都将排空自己的流水线,其程序指针不再改变,进入闲置状态;同时发给对方处理器同步信号,然后每个时钟都检查对方发来的同步信号是否有效,如果有效,则脱离闲置状态,继续后面的程序执行,并使发给对方的同步信号无效;
对方处理器也具有同样的同步流程;只是在后执行同步指令的一方,发现对方发来的同步信号已经有效,将不再进入闲置状态,而是直接进行下面的程序执行;但要发给对方同步信号有效电平脉冲,脉冲宽度足够对方处理器核能够探测到,以便于对方脱离闲置状态,继续其后面的程序执行。
所述的同步方法,多处理器芯片上的处理器核需要支持本文提出的同步指令,
处理器核支持同步指令,该指令有如下形式:
<同步指示><和本核同步的处理器核的标示>。
所述的同步方法,多处理器芯片上的任何两个需要同步的处理器核之间必须有两根发往对方的同步信号,
1)(用A,B标示两个需要互相同步的处理器核)处理器核A和B之间,有一根处理器核A发往B的同步信号AB,它指示:
<处理器核A当前是否处于等待处理器B发来同步信号的状态>
2)处理器核A和B之间,有一根处理器核B发往A的同步信号BA,它指示:
<处理器核B当前是否处于等待处理器A发来同步信号的状态>
所述的同步方法,两个处理器核之间需要数据传输之前,需要首先对二者进行同步,根据上述的同步方法,两个需要互相同步的处理器核在同步流程上是一样的,该同步流程具有如下步骤:
1)发送数据处理器,产生发送数据,配置发送通道,到达同步程序节点;接收数据处理器,先完成别的处理任务,然后将配置接收通道,之后到达同步程序节点;
2)处理器执行同步指令,同步指令包含该指令的关键字,和对方处理器ID;
3)同步指令执行后,将检测该指令指向的处理器发来的同步信号是否有效,如果有效,则不需进入闲置等待状态,只需发送足够对方检测宽度的同步信号有效电平脉冲就可以了;如果无效,则是使发给对方的同步信号有效,同时进入闲置等待状态,等待对方发来的同步信号有效;
4)假如两个同步信号都有效,则两个处理器互相检测到对方发来的信号有效之后,将使发给对方的信号无效,也就是进行互相抵消;
5)发送数据方,开始发送;接收数据方,开始接收。
所述的同步方法,可以使用在任何可编程多核处理器芯片上,不管芯片嵌入的核是CPU核,DSP核,还是其他可编程核。
附图说明
图1是两个处理器核同步信号连接示意图。
图2是两个处理器核进行同步的流程示意图。
具体实施方式
图1是两个处理器核同步信号连接示意图。该图示意,多处理器芯片上的任何两个可以互相同步的处理器A,B之间,具有两根互相发给对方的同步信号:同步信号AB和同步信号BA。同步信号AB为处理器A发给处理器B的同步信号;同步信号BA为处理器B发给处理器A的同步信号。
注:需要的同步的处理器核即可以是CPU核,也可以是DSP核,还可以是其他类型可编程核,没有什么特殊要求。
图2是两个处理器核进行同步的流程。如图所示,分为五步:
1)处理器如果产生发射数据源,将运行运算程序产生所需要的数据,然后配置发射通道,到达同步程序节点;如果处理器需要接收数据,在完成别的处理任务之后,将配置接收通道,到达同步程序节点;
2)处理器执行同步指令,同步指令包含该指令的关键字,和对方处理器ID;
3)同步指令执行后,将检测该指令指向的处理器发来的同步信号是否有效,如果有效,则不需进入闲置等待状态,只需发送足够对方检测宽度的同步信号有效电平脉冲就可以了;如果无效,则是使发给对方的同步信号有效,同时进入闲置等待状态,等待对方发来的同步信号有效;
4)假如两个同步信号都有效,则两个处理器互相检测到对方发来的信号有效之后,将使发给对方的信号无效,也就是进行互相抵消;
5)发送数据方,开始发送;接收数据方,开始接收;
注:处理器A,B在第4步之前彼此好无关系,二者之间的步骤在时间上不要求有先后关系,每个处理器的同步流程都是一样的,譬如A处理器的第1步在时间上可能晚于B处理器的第3步。而A,B处理器内的程序流真正同步是从第4步开始的。
图2也提供了基于支持该同步机制的多处理器核进行软件编程的模型。
Claims (5)
1、一种可编程通用多核处理器芯片上处理器之间的程序流同步方法,特征在于:
每个处理器核和其需要同步的处理器核之间具有两根互联信号线,分别为发往对方的同步信号,为了实现两个处理器核的程序流分别在各自的程序节点上实现同步,应当在其程序节点上插入指向对方的同步指令,不管哪个处理器核先执行到其同步指令,都将排空自己的流水线,其程序指针不再改变,进入闲置状态;同时发给对方处理器同步信号,然后每个时钟都检查对方发来的同步信号是否有效,如果有效,则脱离闲置状态,继续后面的程序执行,并使发给对方的同步信号无效;
对方处理器也具有同样的同步流程;只是在后执行同步指令的一方,发现对方发来的同步信号已经有效,将不再进入闲置状态,而是直接进行下面的程序执行;但要发给对方同步信号有效电平脉冲,脉冲宽度足够对方处理器核能够探测到,以便于对方脱离闲置状态,继续其后面的程序执行。
2、根据权利要求1所述的同步方法,其特征在于:多处理器芯片上的处理器核需要支持本文提出的同步指令,
处理器核支持同步指令,该指令有如下形式:
<同步指示><和本核同步的处理器核的标示>。
3,根据权利要求1所述的同步方法,其特征在于:多处理器芯片上的任何两个需要同步的处理器核之间必须有两根发往对方的同步信号,
1)处理器核A和B之间,有一根处理器核A发往B的同步信号AB,它指示:
<处理器核A当前是否处于等待处理器B发来同步信号的状态>
2)处理器核A和B之间,有一根处理器核B发往A的同步信号BA,它指示:
<处理器核B当前是否处于等待处理器A发来同步信号的状态>。
4,根据权利要求1所述的同步方法,其特征在于:两个处理器核之间需要数据传输之前,需要首先对二者进行同步,根据权利要求1所述的同步方法,两个需要互相同步的处理器核在同步流程上是一样的,该同步流程具有如下步骤:
1)发送数据处理器,产生发送数据,配置发送通道,到达同步程序节点;接收数据处理器,先完成别的处理任务,然后将配置接收通道,之后到达同步程序节点;
2)处理器执行同步指令,同步指令包含该指令的关键字,和对方处理器ID;
3)同步指令执行后,将检测该指令指向的处理器发来的同步信号是否有效,如果有效,则不需进入闲置等待状态,只需发送足够对方检测宽度的同步信号有效电平脉冲就可以了;如果无效,则是使发给对方的同步信号有效,同时进入闲置等待状态,等待对方发来的同步信号有效;
4)假如两个同步信号都有效,则两个处理器互相检测到对方发来的信号有效之后,将使发给对方的信号无效,也就是进行互相抵消;
5)发送数据方,开始发送;接收数据方,开始接收。
5,根据权利要求1,2,3,4所述的同步方法,可以使用在任何可编程多核处理器芯片上,不管芯片嵌入的核是CPU核,DSP核,还是其他可编程核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510086643 CN1952900A (zh) | 2005-10-20 | 2005-10-20 | 可编程通用多核处理器芯片上处理器之间程序流同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510086643 CN1952900A (zh) | 2005-10-20 | 2005-10-20 | 可编程通用多核处理器芯片上处理器之间程序流同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1952900A true CN1952900A (zh) | 2007-04-25 |
Family
ID=38059253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510086643 Pending CN1952900A (zh) | 2005-10-20 | 2005-10-20 | 可编程通用多核处理器芯片上处理器之间程序流同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1952900A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908034A (zh) * | 2010-06-28 | 2010-12-08 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
CN101950282A (zh) * | 2010-08-30 | 2011-01-19 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎 |
WO2012027907A1 (en) * | 2010-09-03 | 2012-03-08 | Siemens Aktiengesellschaft | Method for parallelizing automatic control programs and compiler |
CN102446155A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 同步装置及方法 |
CN101840390B (zh) * | 2009-03-18 | 2012-05-23 | 中国科学院微电子研究所 | 适用于多处理器系统的硬件同步电路结构及其实现方法 |
CN102857383A (zh) * | 2011-06-28 | 2013-01-02 | 鸿富锦精密工业(深圳)有限公司 | 同步测试控制方法及系统 |
WO2013118008A1 (en) * | 2012-02-08 | 2013-08-15 | International Business Machines Corporation | Processor performance improvement for instruction sequences that include barrier instructions |
CN112130898A (zh) * | 2019-06-24 | 2020-12-25 | 华为技术有限公司 | 一种插入同步指令的方法及装置 |
WO2021179333A1 (zh) * | 2020-03-13 | 2021-09-16 | 北京希姆计算科技有限公司 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
CN113821469A (zh) * | 2021-09-23 | 2021-12-21 | 深圳市元征科技股份有限公司 | 多处理器的同步方法、装置、终端设备及存储介质 |
CN117545060A (zh) * | 2023-11-10 | 2024-02-09 | 北京唯得科技有限公司 | 一种基于5g移频双路系统的主从设备中的数据传输方法 |
-
2005
- 2005-10-20 CN CN 200510086643 patent/CN1952900A/zh active Pending
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840390B (zh) * | 2009-03-18 | 2012-05-23 | 中国科学院微电子研究所 | 适用于多处理器系统的硬件同步电路结构及其实现方法 |
CN101908034B (zh) * | 2010-06-28 | 2012-05-23 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
CN101908034A (zh) * | 2010-06-28 | 2010-12-08 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
US9411778B2 (en) | 2010-08-30 | 2016-08-09 | Institute Of Computing Technology Of The Chinese Academy Of Sciences | Multiprocessor system and synchronous engine device thereof |
WO2012027959A1 (zh) * | 2010-08-30 | 2012-03-08 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎装置 |
CN101950282A (zh) * | 2010-08-30 | 2011-01-19 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎 |
WO2012027907A1 (en) * | 2010-09-03 | 2012-03-08 | Siemens Aktiengesellschaft | Method for parallelizing automatic control programs and compiler |
CN103080900A (zh) * | 2010-09-03 | 2013-05-01 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
CN103080900B (zh) * | 2010-09-03 | 2015-10-14 | 西门子公司 | 并行化自动控制程序的方法及编译器 |
CN102446155A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 同步装置及方法 |
CN102857383A (zh) * | 2011-06-28 | 2013-01-02 | 鸿富锦精密工业(深圳)有限公司 | 同步测试控制方法及系统 |
GB2513509B (en) * | 2012-02-08 | 2015-01-14 | Ibm | Processor performance improvement for instruction sequences that include barrier instructions |
US8935513B2 (en) | 2012-02-08 | 2015-01-13 | International Business Machines Corporation | Processor performance improvement for instruction sequences that include barrier instructions |
GB2513509A (en) * | 2012-02-08 | 2014-10-29 | Ibm | Processor performance improvement for instruction sequences that include barrier instructions |
US9274856B2 (en) | 2012-02-08 | 2016-03-01 | International Business Machines Corporation | Improving processor performance for instruction sequences that include barrier instructions |
WO2013118008A1 (en) * | 2012-02-08 | 2013-08-15 | International Business Machines Corporation | Processor performance improvement for instruction sequences that include barrier instructions |
CN112130898A (zh) * | 2019-06-24 | 2020-12-25 | 华为技术有限公司 | 一种插入同步指令的方法及装置 |
US11934832B2 (en) | 2019-06-24 | 2024-03-19 | Huawei Technologies Co., Ltd. | Synchronization instruction insertion method and apparatus |
CN112130898B (zh) * | 2019-06-24 | 2024-09-24 | 华为技术有限公司 | 一种插入同步指令的方法及装置 |
WO2021179333A1 (zh) * | 2020-03-13 | 2021-09-16 | 北京希姆计算科技有限公司 | 任务分配方法、装置、电子设备及计算机可读存储介质 |
CN113821469A (zh) * | 2021-09-23 | 2021-12-21 | 深圳市元征科技股份有限公司 | 多处理器的同步方法、装置、终端设备及存储介质 |
CN117545060A (zh) * | 2023-11-10 | 2024-02-09 | 北京唯得科技有限公司 | 一种基于5g移频双路系统的主从设备中的数据传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7339223B2 (ja) | フレキシブルなオンダイファブリックインターフェイス | |
US10409347B2 (en) | Domain-differentiated power state coordination system | |
US8635476B2 (en) | Decentralized power management distributed among multiple processor cores | |
US9009512B2 (en) | Power state synchronization in a multi-core processor | |
JP7616849B2 (ja) | ストリーミングファブリックインタフェース | |
TWI608326B (zh) | 用以測量介於具有獨立矽時脈的裝置之間的時間偏置之設備、方法及系統 | |
US8914650B2 (en) | Dynamically adjusting power of non-core processor circuitry including buffer circuitry | |
CN105492989B (zh) | 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质 | |
CN101840390B (zh) | 适用于多处理器系统的硬件同步电路结构及其实现方法 | |
US10509740B2 (en) | Mutual exclusion in a non-coherent memory hierarchy | |
CN105260255A (zh) | 一种多处理器核片上系统的看门狗实现方法 | |
CN106095583A (zh) | 基于新神威处理器的主从核协同计算编程框架 | |
US7904615B2 (en) | Asynchronous computer communication | |
CN1952900A (zh) | 可编程通用多核处理器芯片上处理器之间程序流同步方法 | |
KR20230164152A (ko) | 심리스하게 집적된 마이크로컨트롤러 칩 | |
CN111913822A (zh) | 一种基于amp架构的核间通信方式 | |
CN115061803A (zh) | 一种多核处理系统及其任务调度方法、芯片、存储介质 | |
CN101727423B (zh) | 可重配置fpga上可抢占硬件多任务系统及其实现方法 | |
CN103093446B (zh) | 基于多处理器片上系统的多源图像融合装置和方法 | |
CN101303687A (zh) | 一种嵌入式异构多核体系片上通信的实现方法 | |
CN107566296B (zh) | 接口设备和接口方法 | |
CN103412849A (zh) | ARM处理器的NoC资源网络接口及其驱动方法 | |
CN114647448B (zh) | 一种多单片机间唤醒通信的方法、装置、设备及存储介质 | |
CN115696433A (zh) | 一种信息处理方法、装置和网络设备 | |
CN101989191A (zh) | 一种多Ready输入中央处理器的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |