CN103279448A - 基于数据缓存重配置的多核间数据交换方法及装置 - Google Patents
基于数据缓存重配置的多核间数据交换方法及装置 Download PDFInfo
- Publication number
- CN103279448A CN103279448A CN2013101446142A CN201310144614A CN103279448A CN 103279448 A CN103279448 A CN 103279448A CN 2013101446142 A CN2013101446142 A CN 2013101446142A CN 201310144614 A CN201310144614 A CN 201310144614A CN 103279448 A CN103279448 A CN 103279448A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer memory
- kernel
- data buffer
- circuit
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及基于数据缓存重配置的多核间数据交换方法及装置,其中方法包括以下步骤:a、为每个处理内核配置至少2路数据缓存,对每个处理内核的数据缓存进行相同的组相联映射;b、从每个处理内核的数据缓存中选取至少1路数据缓存作为与其它处理内核进行通信的数据交换单元;c、切换步骤b所述数据交换单元与处理内核的连接,进而实现各处理内核对数据交换单元的控制权的转让和交换;d、步骤b所述数据交换单元的地址转换模块跟随所对应的数据交换单元切换,以实现处理内核之间交换数据缓存后的数据访问。本发明利用现有的数据缓存,通过数据缓存的互相切换来实现大量数据的快速交换。
Description
技术领域
本发明涉及多核(包含两核及两核以上)处理器设计领域,尤其涉及处理器内部多个处理内核之间数据交换的方法及装置。
背景技术
一般情况下,多核处理器的各CPU核心执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是多核处理器高性能的重要保障,目前比较主流的片上高效通信机制有两种,一种是基于总线共享缓存(Cache)结构,一种是基于片上互连结构。Cache,也叫高速缓冲存储器,是存在于主存与CPU(即处理内核)之间的缓冲存储器,一般由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。Cache的功能是用来存放那些近期需要运行的指令与数据,目的是提高CPU对存储器的访问速度。
现有双核CPU的结构图如图1所示。其中通过CPU内部高速交换总线进行多核间通信的就是基于总线共享缓存结构(即共享Cache结构),它是指每个处理内核拥有共享的二级缓存、三级缓存或者外部存储器(如SDRAM等),用于保存比较常用的数据,并通过连接核心的总线进行互相通信。这种系统的优点是结构简单,通信速度快,缺点是基于CPU内部高速交换总线的结构可扩展性较差。而通过核间数据线进行多核间通信的就是基于片上互连的结构,是指每个CPU核心具有独立的处理单元和缓存,各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证;缺点是硬件结构复杂,且需要对软件作出较大的改动。
图1所示结构综合了上述两种通信方式,代表着现有设计中综合利用这两种通信方式来进一步提高核间通信性能的趋势。例如现在就有人提出在全局范围采用片上互联结构而局部采用总线共享缓存结构的核间通信技术,来达到核间通信性能与系统硬件结构复杂性的平衡。但实践表明,这种将上述两种通信方式简单地叠加利用的技术,核间的数据交换速度及可靠性仍然是有限的,且实现起来比较困难。
发明内容
为了解决上述现有技术中所存在的技术问题,本发明的首要目的在于提供一种基于数据缓存重配置的多核间数据交换方法,该方法充分利用内部数据缓存,采用数据缓存重配置的方式,对每个处理内核具有的独立的数据缓存进行容量和地址空间的重新配置,通过对部分数据缓存的互相转让来实现数据的交换,实现了核间数据的快速、可靠交换,且容易实现。
本发明的另一目的在于提供一种基于数据缓存重配置的多核间数据交换装置,该装置用于进行数据缓存转让和交换,实现上述通过对数据缓存重新配置来实现多核间数据交换的方法。
本发明首要目的通过下述技术方案实现:基于数据缓存重配置的多核间数据交换方法,其特征在于包括以下步骤:
a、为每个处理内核配置至少2路数据缓存,对每个处理内核的数据缓存进行相同的组相联映射;
b、从每个处理内核的数据缓存中选取至少1路数据缓存作为与其它处理内核进行通信的数据交换单元;
c、切换步骤b所述数据交换单元与处理内核的连接,进而实现各处理内核对数据交换单元的控制权的转让和交换;
d、步骤b所述数据交换单元的地址转换模块跟随所对应的数据交换单元切换,以实现处理内核之间交换数据缓存后的数据访问。
上述交换方法中,步骤a所述的组相联映射为常规的缓存组相联映射,可以为2路组相联映射、4路组相联映射或8路组相联映射。相联映射的路数和缓存容量的大小与芯片系统的性能和成本有关。
上述交换方法中,步骤c所述的切换为数据缓存接口的互相切换。
上述交换方法中,步骤c所述的切换为开关控制的切换,当多个处理内核间完全对称平等时,交换数据时由需要交换数据的处理内核提出交换申请,等待另一处理内核来应答;当多个处理内核中有一个是主控处理内核时,交换数据时则由主控处理内核根据任务需求来动态控制和分配。
本发明的另一目的通过以下技术方案实现:基于数据缓存重配置的多核间数据交换装置,其特征在于:包括第一处理内核、第二处理内核、缓存交叉开关、连接在第一处理内核与第二处理内核之间的开关控制模块,其中第一处理内核设有两路组相联映射的第一路数据缓存、第二路数据缓存,第二处理内核设有两路组相联映射的第三路数据缓存、第四路数据缓存,缓存交叉开关分别与第一处理内核、第二处理内核、第二路数据缓存、第三路数据缓存、开关控制模块连接。
上述交换装置还包括第三处理内核、第二缓存交叉开关、连接在第二处理内核与第三处理内核之间的第二开关控制模块,其中第三处理内核设有两路组相联映射的第五路数据缓存和第六路数据缓存,第二缓存交叉开关分别与第三处理内核、第二处理内核、第五路数据缓存、第六路数据缓存、开关控制模块连接。
上述交换装置还包括与所述数据缓存连接的、用于存储外部所输入运算数据的外部存储器。
本发明相对于现有技术具有以下优点:利用现有的数据缓存,通过数据缓存的互相切换来实现大量数据的快速交换,避免传统方法的数据需要先回到低速的L2 缓存或者外部存储器,再进行L1 缓存数据同步的时间延时。
附图说明
图1为现有技术的双核CPU的结构示意图;
图2为本发明实施例1的装置结构示意图;
图3为本发明缓存的部分结构示意图;
图4为本发明实施例2的装置结构示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
本实施例为实现本发明的实施例中,最简单的含有两核CPU和两路组相联映射的数据缓存的实施例。需要注意的是,本实施例在描述本发明的实施方式时,忽略了CPU核的指令缓存,仅专注数据交换用的数据缓存。
如图2所示,本发明的基于数据缓存重配置的多核间数据交换装置包括第一处理内核1、第二处理内核2、连接在第一处理内核1与第二处理内核2之间的开关控制模块8、缓存交叉开关9,其中第一处理内核1设有第一路数据缓存 11、第二路数据缓存 12,第二处理内核2设有第三路数据缓存 21、第四路数据缓存 22,缓存交叉开关9分别与第一路数据缓存 11、第二路数据缓存 12、第三路数据缓存 21、第四路数据缓存 22、开关控制模块8连接。第一处理内核1通过第一路数据缓存 11、第二路数据缓存 12连接至CPU内部高速交换总线,再通过CPU接口与CPU外部高速交换桥连接;第二处理内核2通过第三路数据缓存 21、第四路数据缓存 22连接至CPU内部高速交换总线,再通过CPU接口与CPU外部高速交换桥连接。
采用图2所述装置实现数据缓存重配置的多核间数据交换方法时,其实施过程包括以下步骤:
a、为每个处理内核配置至少2路数据缓存,对每个处理内核的数据缓存进行相同的组相联映射。
本步骤a所述的组相联映射为常规的缓存组相联映射,可以为2路组相联映射、4路组相联映射或8路组相联映射。相联映射的路数和缓存容量的大小与芯片系统的性能和成本有关。
b、从每个处理内核的数据缓存中选取至少1路数据缓存作为与其它处理内核进行通信的数据交换单元。
本步骤b的交换缓存路数根据系统所交换的数据容量大小以及处理内核数量来确定。一般来说,需要交换的数据越多越频繁则可多选可交换的数据缓存的路数。
c、切换步骤b所述数据交换单元与处理内核的连接,进而实现各处理内核对数据交换单元的控制权的转让和交换。
本步骤c所述的切换可以是数据缓存接口的互相切换,也可以是开关控制的切换,其中开关控制的方式与多个处理内核间的组合方式有关。当所述切换为开关控制的切换时,且当多个处理内核间完全对称平等时,交换数据时由需要交换数据的处理内核提出交换申请,等待另一处理内核来应答;当多个处理内核中有一个是主控处理内核时,交换数据时则由主控处理内核根据任务需求来动态控制和分配。
d、步骤b所述数据交换单元的地址转换模块跟随所对应的数据交换单元切换,以实现处理内核之间交换数据缓存后的数据访问。
正常工作情况下,第一处理内核1通过第一数据通路3访问第一路数据缓存 11、第二路数据缓存 12;而同时第二处理内核2则通过第二数据通路4访问第三路数据缓存 21、第四路数据缓存 22。第一路数据缓存 11、第二路数据缓存 12、第三路数据缓存 21、第四路数据缓存 22这四路数据缓存则通过第三数据通道5访问外部数据缓存 6或者外部存储器7,从而建立数据的映射关系。
为了满足第一处理内核1和第二处理内核2之间的数据交换,每个处理内核分别设计同样的两路组相联映射的数据缓存,其中对应第一处理内核1的是第一路数据缓存 11和第二路数据缓存 12,对应第二处理内核的是第三路数据缓存 21、第四路数据缓存 22。现设计用于交换数据的是第一处理内核1的第二路数据缓存 12和第二处理内核2的第三路数据缓存 21。
而开关控制模块8用于共同受第一处理内核1和第二处理内核2控制,该开关控制模块控制两路缓存间的缓存交叉开关9。缓存交叉开关9则掌管着处理内核之间读取、交换数据时,对第一处理内核1、第二处理内核2与第四数据通路10或第五数据通路15连接的选通、切换。
本发明处理内核进行数据读写操作、数据交换的原理如下:当第一处理内核1需要从外部数据缓存6或外部存储器7进行数据读写操作时,选通第一数据通路3,通过第一路数据缓存11完成;当第二处理内核2需要从外部数据缓存6或外部存储器7进行数据读写操作时,选通第二数据通路4,通过第四路数据缓存22完成;当第一处理内核1需要读取第二处理内核2的数据时,首先通过开关控制模块8使缓存交叉开关9选通第二处理内核2与第五数据通路15的连接,以便第二处理内核2将第一处理内核1所需的数据写入第三路数据缓存21中,然后缓存交叉开关9选通第一处理内核1与第五数据通路15的连接,以便第一处理内核1读取第三路数据缓存21中的数据;当第一处理内核1与第二处理内核2需要交换数据时,首先通过开关控制模块8使缓存交叉开关9选通第二处理内核2与第五数据通路15的连接、选通第一处理内核1与第四数据通路10的连接,以便第二处理内核2将第一处理内核1所需的数据写入第三路数据缓存21中,第一处理内核1将第二处理内核2所需的数据写入第二数据缓存12中,然后缓存交叉开关9选通第一处理内核1与第五数据通路15的连接、选通第二处理内核2与第四数据通路10的连接,以便第一处理内核1读取第三路数据缓存21中的数据、第二处理内核2读取第二数据缓存12中的数据。第二处理内核2若要读取第一处理内核1中的数据,其原理与第一处理内核1读取第二处理内核2的相同,不赘述。
当第一处理内核1有数据需要和第二处理内核2进行交换时,第一处理内核1则通过开关控制模块8告知第二处理内核2,第二处理内核2决定是否应答第一处理内核1的请求,若确定交换,则开关控制模块8通过第六数据通道12使能缓存间的交叉开关9,使得第一处理内核1通过第一数据通道3和第五数据通道11直接使用第二处理内核2的第三路数据缓存 21,同时让出其第二路数据缓存 12给第二处理内核2进行控制。
反之,第二处理内核2有数据需要和第一处理内核1进行数据交换时,通过上述同样的方法来实现数据缓存的交换使用,从而达到数据快速交换的目的。
图3为图2的四路数据缓存中其中一路的功能示意图。此乃标准的缓存访问技术,这里不作详述。
实施例2
本实施例为在实施例1的基础上,扩展到三核处理器的数据通信应用的一种实施方式,其结构如图4所示。
本实施例与实施例的原理基本相同,所不同的是增加了一个核处理器,即第三处理内核13,第三处理内核13设有两路组相联映射的第五路数据缓存 31和第六路数据缓存 32;相应地增加了第二缓存交叉开关16,以及连接在第二处理内核2与第三处理内核13之间的第二开关控制模块14,其中第二缓存交叉开关16分别与第三处理内核13、第二处理内核2、第二开关控制模块14、第四路数据缓存22、第五路数据缓存31连接。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (7)
1.基于数据缓存重配置的多核间数据交换方法,其特征在于包括以下步骤:
a、为每个处理内核配置至少2路数据缓存,对每个处理内核的数据缓存进行相同的组相联映射;
b、从每个处理内核的数据缓存中选取至少1路数据缓存作为与其它处理内核进行通信的数据交换单元;
c、切换步骤b所述数据交换单元与处理内核的连接,进而实现各处理内核对数据交换单元的控制权的转让和交换;
d、步骤b所述数据交换单元的地址转换模块跟随所对应的数据交换单元切换,以实现处理内核之间交换数据缓存后的数据访问。
2.根据权利要求1所述的基于数据缓存重配置的多核间数据交换方法,其特征在于:步骤a所述的组相联映射为2路组相联映射、4路组相联映射或8路组相联映射。
3.根据权利要求1所述的基于数据缓存重配置的多核间数据交换方法,其特征在于:步骤c所述的切换为数据缓存接口的互相切换。
4.根据权利要求1所述的基于数据缓存重配置的多核间数据交换方法,其特征在于:步骤c所述的切换为开关控制的切换,当多个处理内核间完全对称平等时,交换数据时由需要交换数据的处理内核提出交换申请,等待另一处理内核来应答;当多个处理内核中有一个是主控处理内核时,交换数据时则由主控处理内核根据任务需求来动态控制和分配。
5.基于数据缓存重配置的多核间数据交换装置,其特征在于:包括第一处理内核、第二处理内核、缓存交叉开关、连接在第一处理内核与第二处理内核之间的开关控制模块,其中第一处理内核设有两路组相联映射的第一路数据缓存、第二路数据缓存,第二处理内核设有两路组相联映射的第三路数据缓存、第四路数据缓存,缓存交叉开关分别与第一处理内核、第二处理内核、第二路数据缓存、第三路数据缓存、开关控制模块连接。
6.根据权利要求5所述的基于数据缓存重配置的多核间数据交换装置,其特征在于:还包括第三处理内核、第二缓存交叉开关、连接在第二处理内核与第三处理内核之间的第二开关控制模块,其中第三处理内核设有两路组相联映射的第五路数据缓存和第六路数据缓存,第二缓存交叉开关分别与第三处理内核、第二处理内核、第五路数据缓存、第六路数据缓存、开关控制模块连接。
7.根据权利要求5所述的基于数据缓存重配置的多核间数据交换装置,其特征在于:还包括与所述数据缓存连接的、用于存储外部所输入运算数据的外部存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101446142A CN103279448A (zh) | 2013-04-24 | 2013-04-24 | 基于数据缓存重配置的多核间数据交换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101446142A CN103279448A (zh) | 2013-04-24 | 2013-04-24 | 基于数据缓存重配置的多核间数据交换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103279448A true CN103279448A (zh) | 2013-09-04 |
Family
ID=49061973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101446142A Pending CN103279448A (zh) | 2013-04-24 | 2013-04-24 | 基于数据缓存重配置的多核间数据交换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279448A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294194A (zh) * | 2015-06-22 | 2017-01-04 | 三星电子株式会社 | 数据存储装置和具有该数据存储装置的数据处理系统 |
CN109086228A (zh) * | 2018-06-26 | 2018-12-25 | 深圳市安信智控科技有限公司 | 具有多个独立访问通道的高速存储器芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055533A (zh) * | 2007-05-28 | 2007-10-17 | 中兴通讯股份有限公司 | 一种多线程处理器动态内存管理系统及方法 |
CN101067794A (zh) * | 2007-06-14 | 2007-11-07 | 中兴通讯股份有限公司 | 多核处理器及其串口复用方法 |
CN101477512A (zh) * | 2009-01-16 | 2009-07-08 | 中国科学院计算技术研究所 | 一种处理器系统及其访存方法 |
CN101593097A (zh) * | 2009-05-22 | 2009-12-02 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
US20130024621A1 (en) * | 2010-03-16 | 2013-01-24 | Snu R & Db Foundation | Memory-centered communication apparatus in a coarse grained reconfigurable array |
-
2013
- 2013-04-24 CN CN2013101446142A patent/CN103279448A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055533A (zh) * | 2007-05-28 | 2007-10-17 | 中兴通讯股份有限公司 | 一种多线程处理器动态内存管理系统及方法 |
CN101067794A (zh) * | 2007-06-14 | 2007-11-07 | 中兴通讯股份有限公司 | 多核处理器及其串口复用方法 |
CN101477512A (zh) * | 2009-01-16 | 2009-07-08 | 中国科学院计算技术研究所 | 一种处理器系统及其访存方法 |
CN101593097A (zh) * | 2009-05-22 | 2009-12-02 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
US20130024621A1 (en) * | 2010-03-16 | 2013-01-24 | Snu R & Db Foundation | Memory-centered communication apparatus in a coarse grained reconfigurable array |
Non-Patent Citations (1)
Title |
---|
陈勇 等: "基于寄存器窗口互相重叠的多核问数据交换方法", 《中国集成电路》, no. 159, 31 August 2012 (2012-08-31) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294194A (zh) * | 2015-06-22 | 2017-01-04 | 三星电子株式会社 | 数据存储装置和具有该数据存储装置的数据处理系统 |
CN106294194B (zh) * | 2015-06-22 | 2022-03-18 | 三星电子株式会社 | 数据存储装置和具有该数据存储装置的数据处理系统 |
CN109086228A (zh) * | 2018-06-26 | 2018-12-25 | 深圳市安信智控科技有限公司 | 具有多个独立访问通道的高速存储器芯片 |
CN109086228B (zh) * | 2018-06-26 | 2022-03-29 | 深圳市安信智控科技有限公司 | 具有多个独立访问通道的高速存储器芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347477B2 (en) | Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations | |
CN104699631B (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
US11947798B2 (en) | Packet routing between memory devices and related apparatuses, methods, and memory systems | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
US10838865B2 (en) | Stacked memory device system interconnect directory-based cache coherence methodology | |
CN108780432A (zh) | 用于高速缓存无效的设备及方法 | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN101739241A (zh) | 一种片上多核dsp簇和应用扩展方法 | |
CN110347635A (zh) | 一种基于多层总线的异构多核微处理器 | |
CN102866980B (zh) | 用于多核微处理器片上互连网络的网络通信胞元 | |
CN109308283A (zh) | 一种SoC片上系统及其外设总线切换方法 | |
CN101441616B (zh) | 基于寄存器文件的快速数据交换结构及其管理方法 | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN101620587B (zh) | 柔性可重构任务处理单元结构 | |
CN108256643A (zh) | 一种基于hmc的神经网络运算装置和方法 | |
CN104808950B (zh) | 对嵌入式存储器元件的模式依赖性访问 | |
CN204390227U (zh) | 计算设备扩展装置、以及可扩展的计算系统 | |
CN114296638A (zh) | 存算一体化固态硬盘控制器、固态硬盘、数据存储系统及方法 | |
CN103279448A (zh) | 基于数据缓存重配置的多核间数据交换方法及装置 | |
CN105373492A (zh) | 一种面向任务流的基于寄存器文件的快速数据交换结构 | |
CN104598404A (zh) | 计算设备扩展方法和装置、以及可扩展的计算系统 | |
CN104035896A (zh) | 一种适用于2.5d多核系统的融合存储器的片外加速器 | |
CN113704171B (zh) | 一种软件定义的数据存储系统 | |
CN203276275U (zh) | 基于数据缓存重配置的多核间数据交换装置 | |
CN106502923B (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: 20130904 |