CN103235771A - 基于寄存器窗口互相重叠的多核间数据交换方法及装置 - Google Patents
基于寄存器窗口互相重叠的多核间数据交换方法及装置 Download PDFInfo
- Publication number
- CN103235771A CN103235771A CN2013101445120A CN201310144512A CN103235771A CN 103235771 A CN103235771 A CN 103235771A CN 2013101445120 A CN2013101445120 A CN 2013101445120A CN 201310144512 A CN201310144512 A CN 201310144512A CN 103235771 A CN103235771 A CN 103235771A
- Authority
- CN
- China
- Prior art keywords
- register
- kernel
- window
- group
- register window
- 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
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及基于寄存器窗口互相重叠的多核间数据交换方法及装置,其交换方法包括以下步骤:a、对每个处理内核设置至少两个寄存器窗口,其中一个寄存器窗口与其它处理内核的一个寄存器窗口重叠,称之为重叠寄存器窗口;并使重叠寄存器窗口与两组不同的寄存器对应;b、通过使步骤a所述的重叠寄存器窗口在两组不同的寄存器之间切换,实现各处理内核间的寄存器交换,从而实现数据交换。本发明充分利用了不同处理内核的通用寄存器窗口的互相重叠技术来实现数据的高速交换。
Description
技术领域
本发明涉及多核(包含两核及两核以上)处理器设计领域,尤其涉及处理器内部多个处理内核之间数据交换的方法及装置。
背景技术
一般情况下,多核处理器的各CPU核(即处理内核)执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的核间通信机制是多核处理器高性能的重要保障,目前比较主流的片上高效通信机制有两种,一种是基于总线共享的缓存结构(即Cache结构),一种是基于片上的互连结构。
现有双核CPU的结构如图1所示。其中通过CPU内部高速交换总线进行多核间通信的就是基于总线共享缓存结构,每个处理内核拥有共享的二级或三级缓存或者外部存储器(如SDRAM等),用于保存比较常用的数据,并通过连接核心的总线进行互相通信。这种系统的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。而通过核间数据线进行多核间通信的就是基于片上互连的结构,每个处理内核具有独立的处理单元和缓存,各个处理内核通过交叉开关或片上网络等方式连接在一起,各个处理内核之间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证;缺点是硬件结构复杂,且软件改动较大。
图1所示结构综合了上述两种通信方式,代表着现有设计中综合利用这两种通信方式来进一步提高核间通信性能的趋势。例如现在就有人提出在全局范围采用片上互联结构而局部采用总线共享缓存结构的核间通信技术,来达到核间通信性能与系统硬件结构复杂性的平衡。但实践表明,这种将上述两种通信方式简单地叠加利用的技术,核间的数据交换速度及可靠性仍然是有限的,且实现起来比较困难。
发明内容
为了解决上述现有技术中所存在的技术问题,本发明的首要目的在于提供基于寄存器窗口互相重叠的多核间数据交换方法,该方法充分利用不同处理内核的通用寄存器窗口的互相重叠技术来实现数据的高速交换。
本发明的另一目的在于提供基于寄存器窗口互相重叠的多核间数据交换装置,用于实现上述基于寄存器窗口互相重叠的多核间数据交换方法。
本发明的首要目的通过下述技术方案实现:基于寄存器窗口互相重叠的多核间数据交换方法,包括以下步骤:a、对每个处理内核设置至少2个寄存器窗口,其中一个寄存器窗口与其它处理内核的一个寄存器窗口重叠,称之为重叠寄存器窗口;并使重叠寄存器窗口与2组不同的寄存器对应;b、通过使步骤a所述的重叠寄存器窗口在2组不同的寄存器之间切换,实现各处理内核间的寄存器交换,从而实现数据交换。
在上述数据交换方法中,步骤a设置至少2个寄存器窗口的具体步骤为:在每个处理内核中设置一个寄存器堆,并把该寄存器堆划分成多个窗口。
在上述数据交换方法中,采用开关电路实现步骤b所述的切换;切换的过程为:当其中一个处理内核运算完成后,将运算结果存放于重叠寄存器窗口所对应的一组寄存器,然后通过开关电路将该组寄存器切换至另外一个处理内核的重叠寄存器窗口,使另外一个处理内核对运算结果继续进行流水运算。
本发明的另一目的通过以下技术方案实现:基于寄存器窗口互相重叠的多核间数据交换装置,包括相连接的第一处理内核、第二处理内核,还包括第一开关电路、第二开关电路,第一处理内核设有第一寄存器窗口、第二寄存器窗口,第二处理内核设有第三寄存器窗口、第四寄存器窗口;其中第二寄存器窗口与第三寄存器窗口重叠,称为重叠寄存器窗口;第一寄存器窗口对应第一组寄存器,第二寄存器窗口对应第二组寄存器和第三组寄存器,第三寄存器窗口对应第三组寄存器和第二组寄存器,第四寄存器窗口对应第四组寄存器;第一开关电路受控于第一处理内核,用于实现第二寄存器窗口在第二组寄存器与第三组寄存器之间的切换;第二开关电路受控于第二处理内核,用于实现第三寄存器窗口在第三组寄存器与第二组寄存器之间的切换。
在上述数据交换装置中,第一开关电路设置在第一处理内核内;第二开关电路设置在第二处理内核内。
上述数据交换装置还包括与第二处理内核连接的第三处理内核;第三处理内核设有与第五组寄存器和第四组寄存器对应的第五寄存器窗口、与第六组寄存器对应的第六寄存器窗口,以及用于实现第五寄存器窗口在第五组寄存器和第四组寄存器之间切换的第四开关电路;第二处理内核设有用于实现第四寄存器窗口在第四组寄存器和第五组寄存器间切换的第三开关电路。
本发明相对于现有技术具有以下优点:利用寄存器堆的窗口重叠技术,通过不同核间的寄存器窗口互相切换来实现小量数据的高速交换,避免传统方法的数据需要另外建立缓存或者对外访问接口,或者需先回到低速的外部数据缓存或者外部存储器,再进行内部数据缓存同步的时间延时。直接以处理器的内部寄存器的作为数据交换手段,一个处理内核的运算单元输出结果可直接作为另外一处理内核的运算单元的输入,实现核与核之间的运算数据无缝连接。
附图说明
图1为现有的双核CPU结构图;
图2为本发明的一种双核双寄存器窗口重叠的处理器结构图;
图3为本发明的双核双寄存器窗口互相重叠技术的数据处理示意图;
图4a、4b、4c为本发明的双核双寄存器窗口互相重叠技术的几种结果示意图;
图5为本发明的双核双寄存器窗口重叠后的流水运算的示意图;
图6为本发明的一种三核双寄存器窗口重叠的处理器结构图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
本实施例为实现本发明的实施例中,最简单的含有两个处理内核和两组寄存器窗口互相重叠的实施例。
如图2、图3所示,本发明交换装置包括第一处理内核1、第二处理内核2、第一开关电路7、第二开关电路8,第一处理内核1设有第一寄存器窗口11、第二寄存器窗口12,第二处理内核2设有第三寄存器窗口21、第四寄存器窗口22,其中第二寄存器窗口12与第三寄存器窗口22重叠,称为重叠寄存器窗口。第一寄存器窗口11对应第一组寄存器,第二寄存器窗口12对应第二组寄存器和第三组寄存器,第三寄存器窗口21对应第三组寄存器和第二组寄存器,第四寄存器窗口22对应第四组寄存器。第一开关电路7受控于第一处理内核1,用于实现第二寄存器窗口12在第二组寄存器与第三组寄存器之间的切换;第二开关电路8受控于第二处理内核2,用于实现第三寄存器窗口21在第三组寄存器与第二组寄存器之间的切换。
第一开关电路7设置在第一处理内核1内;第二开关电路8设置在第二处理内核2内。第一处理内核1、第二处理内核2分别通过第一内部数据缓存13、第二内部数据缓存23与外部数据缓存或外部存储器交换数据。
本发明交换方法为基于处理内核的多组寄存器窗口重叠以及处理内核与处理内核之间的寄存器窗口互相重叠而形成的数据高速交换方法,其实施过程包括以下步骤:
a、对每个处理内核设置至少2个寄存器窗口,其中一个寄存器窗口与其它处理内核的一个寄存器窗口重叠,称之为重叠寄存器窗口;并使重叠寄存器窗口与2组不同的寄存器对应。所述寄存器为通用寄存器。
本步骤通过给处理内核设置多于1组的通用寄存器来实现窗口重叠技术,所设置的多组通用寄存器的窗口功能完全一样;实际操作中,可以在每个处理内核中设置一个数量比较大的寄存器堆,并把它划分成多个窗口,从而形成多组通用寄存器。因为在执行CALL指令时,必须把硬件现场(主要包括程序计数器和处理机状态字)和程序本身的软件现场(主要指在子程序中要使用的通用寄存器等)保存到主存储器中;另外,还要把执行子程序所需要的参数从主程序传送过去。在执行RETURN指令时,要做相反的工作,最后把运算结果传送回主程序。因此,执行CALL和RETURN指令时,访问存储器的信息量非常大。通过增加寄存器窗口,可使用寄存器来保留更多的现场信息,有效降低了存储器的访问量。
b、通过使步骤a所述的重叠寄存器窗口在2组不同的寄存器之间切换,实现各处理内核间的寄存器交换,从而实现数据交换。
本步骤可以采用开关电路是重叠寄存器窗口在2组不同的寄存器之间切换,从而使处理内核间的寄存器能够互相切换重叠和共享,实现处理内核间的寄存器级数据交换,满足不同处理内核间的高速数据交换需求。切换的具体过程为:当其中一个处理内核运算完成后,将运算结果存放于重叠寄存器窗口所对应的一组寄存器,然后通过开关电路立刻将该组寄存器切换至另外一个处理内核的重叠寄存器窗口,使另外一个处理内核对运算结果继续进行流水运算。
本发明的数据交换原理如下:
正常工作情况下第一处理内核1已有两个寄存器窗口:第一寄存器窗口11、第二寄存器窗口12,两个寄存器窗口分别对应第一组寄存器和第二组寄存器;两组寄存器都设有32个寄存器,分别为Reg100-Reg131和Reg132-Reg163。同样,对于第二处理内核2也已有两个寄存器窗口:第三寄存器窗口21、第四寄存器窗口22,两个寄存器窗口分别对应第三组寄存器和第四组寄存器;两组寄存器都设有32个寄存器,分别为Reg232-Reg263和Reg200-Reg231。其中,第二寄存器窗口12与第三寄存器窗口21重叠。这两个重叠的寄存器窗口对于第一处理内核1和第二处理内核2来说,极大地提升了多线程调度、函数调用等大量用到CALL和RETURN指令的场合。
为了满足第一处理内核1和第二处理内核2之间的高速数据交换,甚至达到流水级别的交换效率,如图3所示,第一处理内核1的第二寄存器窗口12的32个寄存器Reg132-Reg163和第二处理内核2的第三寄存器窗口21的32个寄存器Reg232-Reg263在各自控制信号的作用下以及第一开关电路7和第二开关电路8的作用下,分别实现了如图4a、4b、4c所示的寄存器窗口互相重叠的三种效果。第一种效果:第二处理内核2的第三寄存器窗口21的32个寄存器Reg232-Reg263交给了第一处理内核1使用,如图4a所示;第二种效果:第一处理内核1的第二寄存器窗口12的32个寄存器Reg132-Reg163交给了第二处理内核2使用,如图4b所示;第三种效果:上述第一种效果和第二种效果同时生效,即两个处理内核的寄存器窗口完全互换,如图4c所示。
图5为图4b所示第二种效果的一种流水数据交换效果,第一处理内核1使用其第一寄存器窗口11的两个寄存器Reg108和Reg109在第一算术逻辑单元3中进行算术逻辑运算(即通常所说的逻辑ALU运算,对数据的运算操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。),运算结果存放于其第二寄存器窗口12的寄存器Reg138;然后第二寄存器窗口12交叉重叠为第二处理内核2的寄存器,与第二处理内核2的第四寄存器窗口22的寄存器Reg209在第二算术逻辑单元4中进行算术逻辑运算,运算结果存放于其第四寄存器窗口22的寄存器Reg238。反之亦然,第一处理内核1也可使用第二处理内核2的第三寄存器窗口21的寄存器Reg238作为输入,形成源源不断的数据交换的流水循环。
实施例2
本实施例为在实施例1的基础上,扩展到三核处理器的数据交换应用的一种实施方式,其结构如图6所示。
本实施例与实施例1的数据交换原理基本相同,所不同的是增加了一个核处理器,即第三处理内核6。第三处理内核6与第二处理内核2连接,也有两个寄存器窗口,分别为第五寄存器窗口61和第六寄存器窗口62。第五寄存器窗口61与第五组寄存器和第四组寄存器对应,第六寄存器窗口62与第六组寄存器对应;此时,第二处理内核2的第四寄存器窗口22与第四组寄存器和第五组寄存器对应。第二处理内核2设有用于实现第四寄存器窗口22在第四组寄存器和第五组寄存器间切换的第三开关电路,第三处理内核6还设有用于实现第五寄存器窗口61在第五组寄存器和第四组寄存器之间切换的第四开关电路。
第三处理内核6通过第三算术逻辑单元7进行算术逻辑运算,通过第三内部数据缓存63与外部数据缓存或外部存储器交换数据。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (8)
1.基于寄存器窗口互相重叠的多核间数据交换方法,其特征在于包括以下步骤:
a、对每个处理内核设置至少2个寄存器窗口,其中一个寄存器窗口与其它处理内核的一个寄存器窗口重叠,称之为重叠寄存器窗口;并使重叠寄存器窗口与2组不同的寄存器对应;
b、通过使步骤a所述的重叠寄存器窗口在2组不同的寄存器之间切换,实现各处理内核间的寄存器交换,从而实现数据交换。
2.根据权利要求1所述的基于寄存器窗口互相重叠的多核间数据交换方法,其特征在于:所述寄存器为通用寄存器。
3.根据权利要求2所述的基于寄存器窗口互相重叠的多核间数据交换方法,其特征在于:步骤a设置至少2个寄存器窗口的具体步骤为:在每个处理内核中设置一个寄存器堆,并把该寄存器堆划分成多个窗口。
4.根据权利要求3所述的基于寄存器窗口互相重叠的多核间数据交换方法,其特征在于:采用开关电路实现步骤b所述的切换。
5.根据权利要求4所述的基于寄存器窗口互相重叠的多核间数据交换方法,其特征在于所述切换的过程为:当其中一个处理内核运算完成后,将运算结果存放于重叠寄存器窗口所对应的一组寄存器,然后通过开关电路将该组寄存器切换至另外一个处理内核的重叠寄存器窗口,使另外一个处理内核对运算结果继续进行流水运算。
6.基于寄存器窗口互相重叠的多核间数据交换装置,包括相连接的第一处理内核、第二处理内核,其特征在于:还包括第一开关电路、第二开关电路,第一处理内核设有第一寄存器窗口、第二寄存器窗口,第二处理内核设有第三寄存器窗口、第四寄存器窗口;其中第二寄存器窗口与第三寄存器窗口重叠,称为重叠寄存器窗口;第一寄存器窗口对应第一组寄存器,第二寄存器窗口对应第二组寄存器和第三组寄存器,第三寄存器窗口对应第三组寄存器和第二组寄存器,第四寄存器窗口对应第四组寄存器;第一开关电路受控于第一处理内核,用于实现第二寄存器窗口在第二组寄存器与第三组寄存器之间的切换;第二开关电路受控于第二处理内核,用于实现第三寄存器窗口在第三组寄存器与第二组寄存器之间的切换。
7.根据权利要求6所述的基于寄存器窗口互相重叠的多核间数据交换装置,其特征在于:第一开关电路设置在第一处理内核内;第二开关电路设置在第二处理内核内。
8.根据权利要求6所述的基于寄存器窗口互相重叠的多核间数据交换装置,其特征在于:还包括与第二处理内核连接的第三处理内核;第三处理内核设有与第五组寄存器和第四组寄存器对应的第五寄存器窗口、与第六组寄存器对应的第六寄存器窗口,以及用于实现第五寄存器窗口在第五组寄存器和第四组寄存器之间切换的第四开关电路;第二处理内核设有用于实现第四寄存器窗口在第四组寄存器和第五组寄存器间切换的第三开关电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101445120A CN103235771A (zh) | 2013-04-24 | 2013-04-24 | 基于寄存器窗口互相重叠的多核间数据交换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101445120A CN103235771A (zh) | 2013-04-24 | 2013-04-24 | 基于寄存器窗口互相重叠的多核间数据交换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103235771A true CN103235771A (zh) | 2013-08-07 |
Family
ID=48883815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101445120A Pending CN103235771A (zh) | 2013-04-24 | 2013-04-24 | 基于寄存器窗口互相重叠的多核间数据交换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235771A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086405A1 (en) * | 2003-10-06 | 2005-04-21 | Kobayashi Grant H. | Efficient system management synchronization and memory allocation |
CN101593097A (zh) * | 2009-05-22 | 2009-12-02 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
CN101706766A (zh) * | 2009-12-18 | 2010-05-12 | 长沙理工大学 | 一种嵌入式双核互补微处理器的结构方法 |
CN203276274U (zh) * | 2013-04-24 | 2013-11-06 | 南京龙渊微电子科技有限公司 | 基于寄存器窗口互相重叠的多核间数据交换装置 |
-
2013
- 2013-04-24 CN CN2013101445120A patent/CN103235771A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086405A1 (en) * | 2003-10-06 | 2005-04-21 | Kobayashi Grant H. | Efficient system management synchronization and memory allocation |
CN101593097A (zh) * | 2009-05-22 | 2009-12-02 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
CN101706766A (zh) * | 2009-12-18 | 2010-05-12 | 长沙理工大学 | 一种嵌入式双核互补微处理器的结构方法 |
CN203276274U (zh) * | 2013-04-24 | 2013-11-06 | 南京龙渊微电子科技有限公司 | 基于寄存器窗口互相重叠的多核间数据交换装置 |
Non-Patent Citations (1)
Title |
---|
陈勇等: "基于寄存器窗口互相重叠的多核间数据交换方法", 《中国集成电路》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111512292A (zh) | 用于可配置空间加速器中的非结构化数据流的装置、方法和系统 | |
DE102018005172A1 (de) | Prozessoren, verfahren und systeme mit einem konfigurierbaren räumlichen beschleuniger | |
CN102270189B (zh) | 基于fpga多核系统的核间通信方法 | |
DE102018126150A1 (de) | Einrichtung, verfahren und systeme für multicast in einem konfigurierbaren räumlichen beschleuniger | |
CN102073481B (zh) | 多核dsp可重构专用集成电路系统 | |
CN104820657A (zh) | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 | |
JP4527571B2 (ja) | 再構成可能演算処理装置 | |
US8769459B2 (en) | High-end fault-tolerant computer system and method for same | |
CN102541809B (zh) | 一种动态可重构处理器 | |
US8769458B2 (en) | Prototype verification system and verification method for high-end fault-tolerant computer | |
CN102135950A (zh) | 基于星型互联架构的片上异构多核系统及其通信方法 | |
CN102141974A (zh) | 一种多核处理器核间通信方法及其电路结构 | |
CN102306139A (zh) | 用于ofdm无线通信系统的异构多核数字信号处理器 | |
CN104699654A (zh) | 一种基于chi片内互联总线与qpi片间互联总线互联适配系统和方法 | |
CN104820582A (zh) | 一种基于Navigator的多核嵌入式DSP并行编程模型实现方法 | |
CN108874730A (zh) | 一种数据处理器及数据处理方法 | |
CN203276274U (zh) | 基于寄存器窗口互相重叠的多核间数据交换装置 | |
CN101295241A (zh) | 传送数据 | |
CN104035896B (zh) | 一种适用于2.5d多核系统的融合存储器的片外加速器 | |
CN103235717B (zh) | 具有多态指令集体系结构的处理器 | |
CN102012802B (zh) | 面向向量处理器数据交换的方法及装置 | |
CN107566301A (zh) | 一种实现RapidIO交换机系统总线速度自动配置的方法及装置 | |
CN103235771A (zh) | 基于寄存器窗口互相重叠的多核间数据交换方法及装置 | |
CN107102965A (zh) | 一种数据处理电路、系统及数据处理方法 | |
CN111078286A (zh) | 数据通信方法、计算系统和存储介质 |
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 |
Application publication date: 20130807 |