CN112527729A - 一种紧耦合异构多核处理器架构及其处理方法 - Google Patents

一种紧耦合异构多核处理器架构及其处理方法 Download PDF

Info

Publication number
CN112527729A
CN112527729A CN202011478517.3A CN202011478517A CN112527729A CN 112527729 A CN112527729 A CN 112527729A CN 202011478517 A CN202011478517 A CN 202011478517A CN 112527729 A CN112527729 A CN 112527729A
Authority
CN
China
Prior art keywords
core
data
pcore
ccore
cache
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
Application number
CN202011478517.3A
Other languages
English (en)
Inventor
黄权
李兆亮
王辰琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Huixinda Technology Co ltd
Original Assignee
Hangzhou Huixinda Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Huixinda Technology Co ltd filed Critical Hangzhou Huixinda Technology Co ltd
Priority to CN202011478517.3A priority Critical patent/CN112527729A/zh
Publication of CN112527729A publication Critical patent/CN112527729A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

本发明提供了一种紧耦合异构多核处理器架构及其处理方法,包括具有相互连接的主核CCore和从核PCore的核组结构,所述的核组结构中还包括有分别连接于主核CCore和从核PCore的多个一级数据缓存L1D,且多个一级数据缓存L1D均连接于二级缓存访问总线,所述的二级缓存访问总线连接于二级缓存L2Cache,所述的二级缓存L2Cache连接于访存总线,所述的访存总线连接于DMA和主存。本方案高效支持生产者‑消费者的缓冲管理,使数据预取与计算紧密耦合,有效提高访存带宽利用率。

Description

一种紧耦合异构多核处理器架构及其处理方法
技术领域
本发明属数据处理技术领域,尤其是涉及一种紧耦合异构多核处理器架构及其处理方法。
背景技术
芯片管脚数的限制以及I/O频率的限制导致了访存带宽瓶颈。随着深度学习、大数据、图计算、稀疏矩阵向量乘等访存性能决定的应用兴起,因为访存带宽的限制,对于这类应用而言,再增大主存容量无助于性能提升。
传统的异构结构中,主线程通过极少的预取指令和乒乓式缓冲来进行数据预取,主要针对容易并行化,且具有规则访存模式的科学计算,无法满足访存不规则,且预取地址不确定的应用需求,例如图、连续矩阵向量乘、卷积网络等。
发明内容
本发明的目的是针对上述问题,提供一种紧耦合异构多核处理器架构及其处理方法。
为达到上述目的,本发明采用了下列技术方案:
一种紧耦合异构多核处理器架构,包括具有相互连接的主核CCore和从核PCore的核组结构,所述的核组结构中还包括有分别连接于主核CCore和从核PCore的多个一级数据缓存L1D,且多个一级数据缓存L1D均连接于二级缓存访问总线,所述的二级缓存访问总线连接于二级缓存L2Cache,所述的二级缓存L2Cache连接于访存总线,所述的访存总线连接于DMA和主存。
在上述的紧耦合异构多核处理器架构中,所述的核组结构中具有一个主核CCore和多个与所述主核CCore相连的从核PCore,且所述的主核CCore和从核PCore之间通过线程同步和通知总线相连接;
所述的核组结构中还包括分别连接于主核CCore和从核PCore的多个一级指令缓存L1P,且所述的一级指令缓存L1P连接于所述的二级缓存访问总线,且多个一级指令缓存L1P与多个一级数据缓存L1D交错间隔设置;
所述的一级数据缓存L1D和一级指令缓存L1P均通过监听总线连接于所述的主核CCore和从核PCore;
所述的主核CCore为标量或超标量处理器核,所述的从核PCore为计算处理器核。
在上述的紧耦合异构多核处理器架构中,所述的二级缓存L2Cache中具有多个环形缓冲区,且至少一个环形缓冲区用于缓存计算结果数据,至少一个环形缓冲区用于缓存从主存中导入的计算数据并对不规则数据进行规则排列。
在上述的紧耦合异构多核处理器架构中,所述的二级缓存L2Cache中具有至少两个用于缓存从主存中导入的计算数据的环形缓冲区;
所述的访存总线连接有用于连接I/O设备的I/O接口,所述的I/O接口连接于外设总线,所述的外设总线连接于所述的DMA。
一种基于所述紧耦合异构多核处理器架构的数据处理方法,包括以下步骤:
S1.主核CCore预先分析从核PCore所需的计算数据的存储地址,并协调DMA将计算数据从主存导入二级缓存L2Cache;
S2.从核PCore将自己所需的计算数据从所述的二级缓存L2Cache获取到就近一级数据缓存L1D进行计算;
S3.从核PCore通过所述就近一级数据缓存L1D将计算结果数据写入到二级缓存L2Cache;
S4.主核CCore再次协调DMA将计算结果数据从二级缓存L2Cache写入主存。
在上述的紧耦合异构多核处理器架构的数据处理方法中,步骤S1中,所述的计算数据包括规则数据和不规则数据,且当为不规则数据时,在二级缓存L2Cache中进行规则排列。
在上述的紧耦合异构多核处理器架构的数据处理方法中,所述的二级缓存L2Cache中设置有三个环形缓冲区,且其中一个缓冲区用于缓存计算结果数据,其余两个缓冲区用于缓存从主存中导入的计算数据并对不规则数据进行规则排列。
在上述的紧耦合异构多核处理器架构的数据处理方法中,所述的主核CCore为标量或超标量处理器核,所述的从核PCore为计算处理器核;
且本方法在执行过程中,所述的主核CCore对所述的从核PCore进行计算任务动态分配。
在上述的紧耦合异构多核处理器架构的数据处理方法中,所述的主核CCore通过主核-从核之间的同步机制实现计算任务的动态分配,且通过以下方式实现主核-从核之间的同步机制:
每个从核PCore进行自主判断是否能够执行计算;
每个从核PCore在主控核上占据一个中断入口,且通过指令向主核CCore发送中断,通知主核CCore当前操作完成状态。
在上述的紧耦合异构多核处理器架构的数据处理方法中,从核PCore之间采用用于保证同一地址存储的数据只由一个从核PCore进行读写操作的原子锁机制。
本发明的优点在于:
1、高效支持生产者-消费者的缓冲管理,使数据预取与计算紧密耦合;
2、主核预先分析从核所需的计算数据的存储地址并协调DMA将不规则数据从主存导入共享的二级缓存,并进行一定规则排列,以实现对不规则且预取地址的应用程序的访存,同时支持复杂的高效数据预取,能够降低缓存缺失的次数,提高访存带宽利用率;
3、从核将自己所需的计算数据从的共享的二级缓存获取到就近一级数据缓存进行数据计算,实现计算/访存的无缝衔接,通过计算与访存匹配进而降低复杂调度的功耗;
4、设置从主存到从核的两个缓冲区,能够进一步支持复杂的高效数据预取,提高访存带宽利用率,实现计算/访存的无缝衔接;
5、动态任务分配完全由主核通过主核-从核之间的同步机制协调,有效降低从核负载的不均衡性。
附图说明
图1为本发明紧耦合异构多核处理器架构的架构图;
图2是本发明的生产者-消费者模型图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步详细的说明。
提高访存带宽利用率,充分利用访存带宽有助于性能提升,计算与访存相匹配又可以降低功耗,故此,本实施例提出了一种采用紧耦合的主从异构多核处理器架构,如图1所示,包括具有一个主核CCore和多个通过线程同步和通知总线与主核CCore相连的从核PCore的核组结构,其中,主核CCore为标量或超标量处理器核,从核PCore为计算处理器核,是针对计算进行功耗优化的核。本实施例的线程同步和通知总线支持线程启动/停止/通知机制(Fork/Join/Notify机制)。
进一步地,核组结构中还包括有分别通过监听总线连接于主核CCore和从核PCore以供主核CCore、从核PCore共享的多个一级数据缓存L1D和多个一级指令缓存L1P,其中L1D为Cache/SRAM可配置,L1D之间采用基于监听的一致性协议维护方法,可采用写更新和写作废的一致性协议,共享二级缓存L2Cache。
具体地,多个一级数据缓存L1D和多个一级指令缓存L1P均连接于二级缓存访问总线,且多个一级指令缓存L1P与多个一级数据缓存L1D交错间隔设置;二级缓存访问总线连接于二级缓存L2Cache,二级缓存L2Cache连接于访存总线,访存总线连接于DMA(DirectMemory Access直接存储器访问)和多个主存,多个主存分别通过多个主存接口连接于访存总线,其中DMA用于存储器间的数据搬移。
进一步地,二级缓存L2Cache中具有多个环形缓冲区,如图2所示,本实施例优选设置三个环形缓冲区:M缓冲、X缓冲和Y缓冲,且Y缓冲用于缓存通过就近一级缓存L1D写入的从核PCore的计算结果数据,M缓冲、X缓冲用于缓存从主存中导入的计算数据并对不规则数据进行规则排列;
图2的生产者-消费者模型中:
Y缓冲:y_buffer,从核PCore是生产者,主核CCore是消费者
X缓冲:x_buffer,主核CCore是生产者,从核PCore是消费者
M缓冲:m_buffer,主核CCore是生产者,从核PCore是消费者
为了便于理解,下面分别给出主核Ccore于从核PCore的程序伪代码:
Figure BDA0002836570600000051
Figure BDA0002836570600000061
Figure BDA0002836570600000071
进一步地,访存总线连接有用于连接I/O设备的I/O接口,I/O接口连接于外设总线,外设总线连接于DMA。
具体地,本紧耦合异构多核处理器架构的数据处理方法包括以下步骤:
S1.主核CCore预先分析从核PCore所需的计算数据的存储地址,并协调DMA将计算数据从主存导入二级缓存L2Cache;这里的计算数据包括规则数据和不规则数据,且当为不规则数据时,在二级缓存L2Cache中进行规则排列,具体到本实施例,在M缓冲或X缓冲进行不规则排列。
通过该步骤实现了对不规则且预取地址不确定的应用程序的访存,能够支持复杂的的高效数据预取,降低缓存缺失的次数,提高访存带宽利用率。此外,本实施例优选设置两个从主存到从核PCore的缓冲区,能够进一步实现前述效果,实现计算/访存的无缝衔接。
S2.从核PCore将自己所需的计算数据从二级缓存L2Cache获取到就近一级数据缓存L1D进行计算;具体到本实施例,即将M缓冲、X缓冲中事先排列好的数据读取到就近一级数据缓存L1D进行计算,如向量乘计算;
这里从核PCore将自己所需的计算数据从二级缓存L2Cache获取到就近一级数据缓存L1D进行计算的方式实现了计算/访存的无缝衔接,通过计算与访存匹配进而降低复杂调度的功能。
S3.从核PCore通过就近一级数据缓存L1D将计算结果数据写入到二级缓存L2Cache,如Y缓冲;
S4.主核CCore再次协调DMA将Y缓冲中的计算结果数据写入存储器(即主存)。
进一步地,主核CCore通过主核-从核之间的同步机制对从核PCore进行计算任务的动态分配,以此降低从核PCore负载不均衡性,具体为:
主核CCore通过主核-从核之间的同步机制将从核PCore需要数据分配给从核PCore缓存,并启动从核PCore;
从核PCore通过主核-从核之间的同步机制动态获取任务,对主核CCore为其分配的数据进行计算,并将任务执行状态反馈给主核CCore,动态任务分配完全由主核CCore通过主核CCore-从核PCore之间的同步机制协调,以此降低从核PCore负载不均衡性。
具体地,本实施例通过以下方式实现主核-从核之间的同步机制:
每个从核PCore在主核CCore上占据一个中断入口,可以通过指令向主核CCore发送中断,通知主核CCore当前操作完成。设置主核CCore到每个从核PCore的线程控制端口,支持如下操作:
(1)StartProcessor(coreID,threadAddress),启动编号为coreID的从核PCore从地址threadAddress处开始执行;
(2)HaltProcessor(coreID),将编号为coreID的从核PCore挂起;
(3)ResumeProcessor(coreID),重启编号为coreID的从核PCore;
(4)ResetProcessor(coreID),将编号为coreID的从核PCore复位;
(5)value=GetProcessor(coreID),读取编号为coreID的从核PCore状态,返回为BUSY或STALL等状态。
此外,每个从核PCore占据主核CCore的一个中断入口,通过如下指令向同组主核CCore发送中断:
Notify(),产生中断,通知主核Ccore。
每个从核PCore进行自主判断是否能够执行计算:
从核PCore自主判断是否能够执行,且为了降低功耗,这里设置从核PCore等待指令:
wait ready_flag_address;
执行该指令之后,从核PCore查询ready_flag_address,如果为true,那么继续执行下面的指令,否则从核PCore挂起,并监控核组内其他核对该地址的操作,当监控到其他核将该地址置1时,该从核Pcore恢复启动。
此外,本实施例中,DMA与主核CCore之间也具有同步机制:
DMA接收主核CCore的命令,并在完成指定的操作后,向主核CCore发送中断,并将标志位置位;
DMA命令源地址,目标地址,长度,返回标志存放地址;
DMA执行完成之后,将返回标志存放地址置1,同时给主核CCore发出中断,通过这种方式,既可以支持DMA与主核CCore间的查询式同步,也可以支持中断式同步。
优选地,本实施例在处理器核处增加RAW(Read-and-Write)专用指令支持的原子锁机制,以保证同一地址存储的数据只由一个从核PCore进行读写操作,具体可以通过如下两种方式实现原子锁:
1)采用经典的LL/SC(Load Linked/Store Conditional)指令对实现;
2)采用专门的指令实现,在读取到写回的整个操作周期内监控其他核的读/写地址,由主核CCore选出一个从核PCore完成指令,其他核阻塞,等待该从核PCore完成之后再继续操作。或者给其他从核PCore返回指令失败的信息,此时这些从核PCore需要再次提出操作请求以完成操作。
阻塞式实现的主要问题是要避免死锁,为了避免死锁,可以规定每个从核PCore每个时钟周期不能同时进行两个原子操作(或者只设置一个能执行原子操作的功能部件)。
本实施例通过主核CCore、从核PCore、DMA、二级缓存L2Cache、一级数据缓存L1D之间的协调配合实现了数据预取与计算紧密耦合,能够解决对数据不规则且预取地址不确定的应用的访存需求。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了主核Ccore、从核PCore、核组结构、一级数据缓存L1D、二级缓存访问总线、二级缓存L2Cache、访存总、DMA、主存、线程同步和通知总线、一级指令缓存L1P等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。

Claims (10)

1.一种紧耦合异构多核处理器架构,其特征在于,包括具有相互连接的主核CCore和从核PCore的核组结构,所述的核组结构中还包括有分别连接于主核CCore和从核PCore的多个一级数据缓存L1D,且多个一级数据缓存L1D均连接于二级缓存访问总线,所述的二级缓存访问总线连接于二级缓存L2Cache,所述的二级缓存L2Cache连接于访存总线,所述的访存总线连接于DMA和主存。
2.根据权利要求1所述的紧耦合异构多核处理器架构,其特征在于,所述的核组结构中具有一个主核CCore和多个与所述主核CCore相连的从核PCore,且所述的主核CCore和从核PCore之间通过线程同步和通知总线相连接;
所述的核组结构中还包括分别连接于主核CCore和从核PCore的多个一级指令缓存L1P,且所述的一级指令缓存L1P连接于所述的二级缓存访问总线,且多个一级指令缓存L1P与多个一级数据缓存L1D交错间隔设置;
所述的一级数据缓存L1D和一级指令缓存L1P均通过监听总线连接于所述的主核CCore和从核PCore;
所述的主核CCore为标量或超标量处理器核,所述的从核PCore为计算处理器核。
3.根据权利要求2所述的紧耦合异构多核处理器架构,其特征在于,所述的二级缓存L2Cache中具有多个环形缓冲区,且至少一个环形缓冲区用于缓存计算结果数据,至少一个环形缓冲区用于缓存从主存中导入的计算数据并对不规则数据进行规则排列。
4.根据权利要求3所述的紧耦合异构多核处理器架构,其特征在于,所述的二级缓存L2Cache中具有至少两个用于缓存从主存中导入的计算数据的环形缓冲区;
所述的访存总线连接有用于连接I/O设备的I/O接口,所述的I/O接口连接于外设总线,所述的外设总线连接于所述的DMA。
5.一种基于权利要求1-4任意一项所述紧耦合异构多核处理器架构的数据处理方法,其特征在于,包括以下步骤:
S1.主核CCore预先分析从核PCore所需的计算数据的存储地址,并协调DMA将计算数据从主存导入二级缓存L2Cache;
S2.从核PCore将自己所需的计算数据从所述的二级缓存L2Cache获取到就近一级数据缓存L1D进行计算;
S3.从核PCore通过所述就近一级数据缓存L1D将计算结果数据写入到二级缓存L2Cache;
S4.主核CCore再次协调DMA将计算结果数据从二级缓存L2Cache写入主存。
6.根据权利要求5中所述的紧耦合异构多核处理器架构的数据处理方法,其特征在于,步骤S1中,所述的计算数据包括规则数据和不规则数据,且当为不规则数据时,在二级缓存L2Cache中进行规则排列。
7.根据权利要求6中所述的紧耦合异构多核处理器架构的数据处理方法,其特征在于,所述的二级缓存L2Cache中设置有三个环形缓冲区,且其中一个缓冲区用于缓存计算结果数据,其余两个缓冲区用于缓存从主存中导入的计算数据并对不规则数据进行规则排列。
8.根据权利要求7中所述的紧耦合异构多核处理器架构的数据处理方法,其特征在于,所述的主核CCore为标量或超标量处理器核,所述的从核PCore为计算处理器核;
且本方法在执行过程中,所述的主核CCore对所述的从核PCore进行计算任务动态分配。
9.根据权利要求8中所述的紧耦合异构多核处理器架构的数据处理方法,其特征在于,所述的主核CCore通过主核-从核之间的同步机制实现计算任务的动态分配,且通过以下方式实现主核-从核之间的同步机制:
每个从核PCore进行自主判断是否能够执行计算;
每个从核PCore在主控核上占据一个中断入口,且通过指令向主核CCore发送中断,通知主核CCore当前操作完成状态。
10.根据权利要求9中所述的紧耦合异构多核处理器架构的数据处理方法,其特征在于,从核PCore之间采用用于保证同一地址存储的数据只由一个从核PCore进行读写操作的原子锁机制。
CN202011478517.3A 2020-12-15 2020-12-15 一种紧耦合异构多核处理器架构及其处理方法 Pending CN112527729A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011478517.3A CN112527729A (zh) 2020-12-15 2020-12-15 一种紧耦合异构多核处理器架构及其处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011478517.3A CN112527729A (zh) 2020-12-15 2020-12-15 一种紧耦合异构多核处理器架构及其处理方法

Publications (1)

Publication Number Publication Date
CN112527729A true CN112527729A (zh) 2021-03-19

Family

ID=75000129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011478517.3A Pending CN112527729A (zh) 2020-12-15 2020-12-15 一种紧耦合异构多核处理器架构及其处理方法

Country Status (1)

Country Link
CN (1) CN112527729A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419119A (zh) * 2021-06-02 2021-09-21 中电科思仪科技股份有限公司 一种基于多核dsp的并行相位噪声测量方法
CN117555824A (zh) * 2024-01-12 2024-02-13 深圳中微电科技有限公司 基于mvp架构的gpu模拟器中高速缓存器存储架构

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419119A (zh) * 2021-06-02 2021-09-21 中电科思仪科技股份有限公司 一种基于多核dsp的并行相位噪声测量方法
CN117555824A (zh) * 2024-01-12 2024-02-13 深圳中微电科技有限公司 基于mvp架构的gpu模拟器中高速缓存器存储架构

Similar Documents

Publication Publication Date Title
US11880687B2 (en) System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network
JP7052170B2 (ja) プロセッサおよびシステム
TWI628594B (zh) 用戶等級分叉及會合處理器、方法、系統及指令
US8200905B2 (en) Effective prefetching with multiple processors and threads
CN110865968B (zh) 多核处理装置及其内核之间数据传输方法
EP2808783B1 (en) Smart cache and smart terminal
CN108885586B (zh) 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令
JP2001236221A (ja) マルチスレッドを利用するパイプライン並列プロセッサ
US20170185515A1 (en) Cpu remote snoop filtering mechanism for field programmable gate array
CN107729267B (zh) 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
CN112527729A (zh) 一种紧耦合异构多核处理器架构及其处理方法
WO2019085649A1 (zh) 一种缓存访问方法、多级缓存系统及计算机系统
WO2017127180A1 (en) Random-access disjoint concurrent sparse writes to heterogeneous buffers
CN102681890A (zh) 一种应用于线程级推测并行的限制性值传递方法和装置
CN106326184A (zh) 基于cpu、gpu和dsp的异构计算框架
CN111008042A (zh) 基于异构流水线的高效通用处理器执行方法及系统
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
CN115481072A (zh) 核间数据传输方法、多核芯片及机器可读存储介质
CN110647357B (zh) 同步多线程处理器
US9043507B2 (en) Information processing system
US20080109639A1 (en) Execution of instructions within a data processing apparatus having a plurality of processing units
Lu et al. Achieving efficient packet-based memory system by exploiting correlation of memory requests
Li et al. A new software cache structure on Sunway TaihuLight
WO2023016383A1 (zh) 用于高速缓冲存储器的方法及其相关产品
US20240004808A1 (en) Optimized prioritization of memory accesses

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