CN112486908A - 层次化的多rpu多pea的可重构处理器 - Google Patents
层次化的多rpu多pea的可重构处理器 Download PDFInfo
- Publication number
- CN112486908A CN112486908A CN202011510855.0A CN202011510855A CN112486908A CN 112486908 A CN112486908 A CN 112486908A CN 202011510855 A CN202011510855 A CN 202011510855A CN 112486908 A CN112486908 A CN 112486908A
- Authority
- CN
- China
- Prior art keywords
- pea
- data
- reconfigurable processor
- rpu
- memory
- 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.)
- Granted
Links
- 229920000120 polyethyl acrylate Polymers 0.000 claims abstract description 117
- 235000010582 Pisum sativum Nutrition 0.000 claims abstract description 110
- 241000219843 Pisum Species 0.000 claims abstract description 100
- 230000015654 memory Effects 0.000 claims abstract description 89
- 238000012545 processing Methods 0.000 claims abstract description 50
- 240000004713 Pisum sativum Species 0.000 claims abstract description 10
- 238000003491 array Methods 0.000 claims abstract description 10
- 230000003993 interaction Effects 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 2
- 230000009977 dual effect Effects 0.000 claims 1
- 239000004744 fabric Substances 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000021251 pulses Nutrition 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- OUXCBPLFCPMLQZ-WOPPDYDQSA-N 4-amino-1-[(2r,3s,4s,5r)-4-hydroxy-5-(hydroxymethyl)-3-methyloxolan-2-yl]-5-iodopyrimidin-2-one Chemical compound C[C@H]1[C@H](O)[C@@H](CO)O[C@H]1N1C(=O)N=C(N)C(I)=C1 OUXCBPLFCPMLQZ-WOPPDYDQSA-N 0.000 description 1
- DNXHEGUUPJUMQT-CBZIJGRNSA-N Estrone Chemical compound OC1=CC=C2[C@H]3CC[C@](C)(C(CC4)=O)[C@@H]4[C@@H]3CCC2=C1 DNXHEGUUPJUMQT-CBZIJGRNSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006317 isomerization reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种层次化的多RPU多PEA的可重构处理器,包括:4个可重构处理器块RPU;其中,每个RPU包括:4个处理单元阵列PEA;其中,每个PEA包括:8×8个处理单元PE,以及与8×8个PE配合完成运算任务的处理单元阵列控制器、协处理器接口、配置控制器、数据控制器和数据共享存储器。本发明可以通过层次化的多RPU多PEA的粗粒度可重构阵列的结构,使得处理器的扩展变得简单,提升了灵活性,并降低了设计和控制的复杂度,能够间接地降低功耗,提升了性能。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种层次化的多RPU多PEA的可重构处理器。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
以冯诺依曼架构为核心的计算机和微处理器在过去取得了巨大的成功,因为以指令流驱动为特征的处理器通常具有很强的灵活性。目前,指令流驱动的处理器通常包括通用处理器(General Purpose Processer,GPP)、可编程数字信号处理器(ProgrammableDigital Signal Processor,PDSP)、专用指令集处理器(Application SpecificInstruction-set Processor,ASIP)和嵌入式处理器。然而,也正是由于指令驱动的执行方式,以及有限的计算单元和存储带宽,此类处理器的性能和功耗很不理想,无法满足与日俱增的应用计算需求。例如,经典MIPS架构的通用处理器中,完整执行一条指令就包括取指、译码、寄存器访问、执行和数据回写这五个步骤。其中,只有“执行”这一步是真正所需要的操作。
与指令流驱动对应的是数据流驱动,相应的计算被称为定制计算或专用计算。上世纪90年代兴起的专用集成电路(Application Specific Integrated Circuits,ASIC)采用的就是数据流驱动的计算架构。这一架构与通用处理器的最大差别就在于前者的行为是确定的,控制向量事先存储在控制器中,等待数据流去触发不同的状态即可。ASIC无需指令集,可以针对不同的应用去设计最优的数据通路,从而达到优良的性能和较低的功耗。但是ASIC也存在致命的缺陷,因为它的灵活性和可扩展性极差,无法适用于日益演变的应用场景和功能。随着制程向着7nm甚至5nm推进,专用集成电路的制造费用变得非常昂贵,其漫长的设计周期也制约了它的向前发展。
20世纪60年代,加州大学洛杉矶分校的Estrin提出了可重构计算的雏形,即可重构硬件根据任务的计算特点,通过裁剪和重组可以达到加速执行某一特定任务的目的。场域可编程门阵列(Field Programmable Gate Array,FPGA)是一种可重构的硬件,它利用硬件描述语言(VHDL和Verilog HDL)和特殊的工艺(EEPROM、SRAM和反熔丝等),可以将设计快速映射成实际的电路。FPGA也有其缺点,那就是设计的粒度太小、造价昂贵以及性能较ASIC差。
在这些背景下,一种粗粒度可重构架构(Coarse-Grained ReconfigurableArchitecture,CGRA)的处理器应运而生。粒度是指可重构处理器数据通路中运算单元的数据位宽度,一般将大于等于4bit的粒度称为粗粒度。一般情况下,粒度越大的可重构处理器所需的配置信息越少,重构数据通路的速度也就越快,但是其灵活性也就越低。现如今,人工智能的应用为处理器带来了新的挑战,它要求处理器的算力更强,面对不同人工智能算法要具有更优化的计算策略。CGRA本身的架构特点使其能够较好地满足这些应用需求,因为它兼具通用处理器的灵活性和ASIC的高性能。因此,急需一种兼具灵活性和高性能的CGRA处理器。
发明内容
本发明实施例提供一种层次化的多RPU多PEA的可重构处理器,用以提供一种兼具灵活性和高性能的可重构处理器,该处理器包括:
4个可重构处理器块RPU;其中,每个RPU包括:
4个处理单元阵列PEA;其中,每个PEA包括:
8×8个处理单元PE,以及与8×8个PE配合完成运算任务的处理单元阵列控制器、协处理器接口、配置控制器、数据控制器和数据共享存储器
本发明实施例中,层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,与现有技术中不能兼具灵活性和高性能可重构处理器技术方案相比,包括:4个可重构处理器块RPU;其中,每个RPU包括:4个处理单元阵列PEA;其中,每个PEA包括:8×8个处理单元PE,以及与8×8个PE配合完成运算任务的处理单元阵列控制器、协处理器接口、配置控制器、数据控制器和数据共享存储器,可以通过层次化的多RPU多PEA的粗粒度可重构阵列的结构,使得处理器的扩展变得简单,提升了灵活性,并降低了设计和控制的复杂度,能够间接地降低功耗,提升了性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中层次化的多RPU多PEA的可重构处理器的结构示意图;
图2为本发明又一实施例中可重构处理器的结构示意图;
图3为本发明实施例中CGRA接口示意图;
图4为本发明实施例中PEA结构图;
图5为本发明实施例中PEA阵列的片上互连原理图;
图6为本发明实施例中数据共享存储器(SM)的结构图;
图7为本发明实施例中数据共享存储器的地址空间分配示意图;
图8为本发明实施例中多个PEA之间SM数据交互的示意图;
图9为本发明实施例中不同PEA-SM之间任务流水执行示意图;
图10为本发明实施例中PE结构示意图;
图11为本发明实施例中PE单元的四级流水线示意图;
图12为本发明实施例中PE单元不停顿地完美流水执行示意图;
图13为本发明实施例中PE单元在配置迭代运算下的非完美流水执行;
图14为本发明实施例中Cache的组织结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例涉及了一种可重构处理器,该可重构处理器为一种易扩展的层次化的多可重构处理器块(Reconfigurable Processing Unit,RPU)、多处理单元阵列(Processing Element Array,PEA)的粗粒度可重构架构(Coarse-GrainedReconfigurable Architecture,CGRA)的集成方案,涉及到大规模集成电路(Very LargeScale Integration,VLSI)和计算机体系结构等领域。
下面介绍发明人提出本发明实施例的可重构处理器的思路。
为了满足人工智能的应用为处理器新的挑战,即它要求处理器的算力更强,面对不同人工智能算法要具有更优化的计算策略的目的,发明人提出的粗粒度可重构处理器的指标如下表1所示:
表1:粗粒度可重构处理器的指标
制造工艺 | SMIC 40nm CMOS |
粗粒度单元 | 32-bit计算单元不少于512个 |
最高工作频率 | 不低于450MHz |
运算能力 | 不低于2000GOPS@8-bit |
片上存储容量 | 不少于16Mbits |
运算能效 | 相比同类SRAM型FPGA,能效比x5 |
如上表1所示,为满足项目指标要求的运算能力不低于2000GOPS@8-bit,假设计算处理单元的位宽为32bit,工作频率不低于450MHz,那么本专利设计的可重构计算阵列能够运行到500MHz以上,且在全流水的情况下一个周期完成一个运算,理论上需要的粗粒度处理单元PE的数目可以由以下公式估算:
由上所述可知,本发明实施例涉及的粗粒度可重构处理单元阵列的规模非常大,所以必须对其进行合理集成,以避免单个超大的PEA阵列的出现。经过综合考虑之后,发明人提出了一种层次化的多RPU多PEA的可重构处理器,下面对该处理器进行详细介绍。
图1为本发明实施例中层次化的多RPU多PEA的可重构处理器的结构示意图,如图1所示,该处理包括:
4个可重构处理器块RPU;其中,每个RPU包括:
4个处理单元阵列PEA;其中,每个PEA包括:
8×8个处理单元PE,以及与8×8个PE配合完成运算任务的处理单元阵列控制器、协处理器接口、配置控制器、数据控制器和数据共享存储器。
因此,本发明实施例提供的可重构处理器采用4个RPU单元,每个RPU包含4个PEA阵列,每个PEA阵列包含8×8个PE(Processing Element,处理单元)。通过此种多RPU多PEA的粗粒度可重构阵列的结构,发明人可以使得处理器的扩展变得简单,并降低设计和控制的复杂度,能够间接地降低功耗,提升性能。可重构处理器,即粗粒度可重构阵列的规模大小及其组织结构如图1所示。
如图1所示,每个PEA阵列除了包含8×8共64个PE处理单元之外,还包括处理单元阵列控制器、协处理器接口、配置控制器、数据控制器和数据共享存储器(Shared Memory)。PE通过这些控制器、总线和存储器完成配置的读取和数据的交互与传输。
介绍完可重构阵列的大致内容,下面介绍粗粒度可重构处理器的总体架构。CGRA的总体架构如图2所示,每个RPU单元除了包括4个PEA阵列之外,还集成了内部主控RISCV(一种精简指令集的处理器)、ESRAM(Embedded SRAM,嵌入式静态随机存取存储器)、DMAC(Direct Memory Access Control,直接存储器访问控制器)、一级数据Cache(L1 DataCache,一级数据缓冲存储器)、一级配置Cache(L1Context Cache,一级配置缓冲存储器)和负责互连的总线及接口。CGRA除了包含4个RPU单元之外,还集成了外部主控RISCV、ESRAM、DMAC、DDR Ctrl、二级数据Cache(L2 Data Cache,二级数据缓冲存储器)、二级配置Cache(L2 Context Cache,二级配置缓冲存储器)、通用异步传输收发器(UART)、计时器单元Timer、中断控制Intc和其他总线及接口。
图2英文说明:CGRA:粗粒度可重构架构,Coarse-Grained ReconfigurableArchitecture;ESRAM:Embedded SRAM,嵌入式静态随机存取存储器;DMAC:Direct MemoryAccess,直接存储器访问控制器;DDR Ctrl:Double Data Rate Synchronous DynamicRandom Access Memory Control,双倍数据率同步动态随机存取存储器;RISC-V:一种精简指令集,可以不翻译;AXI:Advanced eXtensible Interface,先进可扩展总线,是一种总线协议;APB:Advanced Peripheral Bus,先进外围总线,是一种总线协议;AHB:AdvancedHigh Performance Bus,先进高性能总线,是一种总线协议;EMI:External MemoryInterface,外部存储器接口,是一种总线协议;Intc:Interrupt Control,中断控制器;Timer:定时器;Uart:Universal Asynchronous Receiver/Transmitter,通用异步收发传输器;L1 Data Cache:一级数据高速缓存;L1Context Cache:一级配置高速缓存;L2 DataCache:二级数据高速缓存;L2 Context Cache:二级配置高速缓存;RPU:ReconfigurableProcessing Unit,可重构处理器块;PEA:Processing Element Array:处理单元阵列;DataControl:数据控制器;Shared Memory:数据共享存储器;PEA Control:处理单元处理单元阵列控制器;Context Control:配置控制器;Coprocessor Interface:协处理器接口;PECtrl:处理单元控制器;Deb:Debug调试模块;CM:Context Memory,配置存储器;Router:路由器;ALU:Algorithm Logic Unit,算数逻辑单元;MUL:Multiplier,乘法器;LSU:Load/Store Unit,访存单元;LR:Local Register,局部寄存器;Global Reg:全局寄存器。
通过上述可知,在一个实施例中,上述层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器还可以包括:外部主控、高速内存、二级数据缓冲存储器和二级配置缓冲存储器;
每个RPU还包括:内部主控、高速内存、一级数据缓冲存储器和一级配置缓冲存储器。
下面接着介绍CGRA系统接口。
CGRA的系统设计接口如图3所示,CGRA的接口分为5类:
1.时钟信号,分别为总线时钟和CGRA工作时钟,其中总线时钟为200M,CGRA时钟为500M。
2.时钟使能信号,共四根,用于CGRA工作时钟的使能有效信号,每一根分别控制CGRA中的一个状态控制核。
3.复位信号,分别为总线复位信号与CGRA工作复位信号。其中CGRA工作复位信号分为四根,每一根分别控制CGRA中的一个状态控制器核。
4.清空信号,用于清空整个CGRA中的Cache缓存的信号。
5.总线信号,分别为AXI_MASTER总线和AXI_SLAVE总线,其中SLAVE总线用于外部设备控制整个CGRA的访问,MASTER总线用于CGRA访问外部设备。
CGRA的工作模式是这样的:首先是准备步骤,DDR Ctrl启动并引导初始化程序,引导主控RISCV启动,然后片外的DDR在DDR Ctrl的控制下通过AXI总线将程序包(包括数据包和配置包)搬运至ESRAM;接着进行第一步,外部主控初始化RPU的内部主控,配置并使能RPU的DMA,同时把RPU对应的程序包(包括当前所需执行的配置包和数据包)的初始地址信息写入到RPU的ESRAM;第二步,RPU内部的DMA主动发起对外部DDR的访问请求,根据已载入的初始信息,将程序包(包括当前所需执行的配置包和数据包)的地址及长度写入到RPU内部的ESRAM;第三步,外部主控轮询RPU的DMA的配置寄存器,发现数据传输完成,即释放RPU复位,然后程序包开始执行,从ESRAM中读取配置包地址和大小、数据包地址和大小,通过协处理器接口发送给PEA;第四步:PEA内的数据和配置控制器根据得到的配置包地址和大小、数据包地址和大小发起对外部L1/L2 Cache和DDR的访问请求;第五步,将PEA具体的配置包和数据包,分别搬运到PE内部的配置存储器CM和PEA内部的数据共享存储器SM;第六步:RPU内部的PEA阵列,根据PE内部CM的配置信息和PEA内部SM的数据,并行执行对应的计算任务。当PEA完成本套配置包和数据包的计算时,则将最终的计算结果写回到PEA阵列上的共享存储器SM;第七步,当PEA计算完成当前的配置包和数据包时,PEA根据PE产生的CP_finish信号和PE_finish信号,判断是否继续请求下一套配置包和数据包,同时RPU根据需要,把PEA上SM的数据写回L1/L2Cache或DDR,供其它PEA、RPU或外部设备使用。
介绍完CGRA的总体架构、系统接口和工作模式,我们可以看到,CGRA的数据和配置的搬运是以这样的层次逐级进行的:
1.数据:DDR→ESRAM→二级数据Cache→一级数据Cache→基于PEA的集中共享存储单元SM(Shared Memory)
2.配置:DDR→ESRAM→二级配置Cache→一级配置Cache→基于PE的分布式配置存储单元CM(Context Memory)。
CGRA是在后摩尔定律时代以及人工智能逐渐兴起的背景下发展出来的一种计算架构,它区别于传统的冯诺依曼架构,具有异构化和分布式的特征,针对不同运算可以实时改变数据通路,达到最优的运算性能。
综上,本发明实施例提供的可重构处理器的优点是:
首先,为了达到项目的指标要求,该CGRA需要1000个左右PE处理单元。该发明实现的层次化的结构,将1024个PE划分到不同的PEA阵列和RPU模块,使得系统的层次更加清晰,CGRA的扩展变得容易,并降低设计和控制的难度。其次,CGRA的数据和配置的存储及传输也需要有一定的层次。类似于传统的计算机体系结构,数据或配置从片外搬运到CGRA片上时,经过的存储器大小逐级减小、速度逐级增大,直到数据或配置达到各自PE上的存储单元。
如上所述,介绍了所发明的CGRA的指标、阵列设计、架构设计和系统接口,对整个CGRA进行了初步介绍和整体概览。下面,将继续深入其内部,进一步地阐述CGRA的工作原理、集成方式和其他技术细节,以便于理解本发明如何实施。
一、首先,介绍处理单元阵列PEA模块的设计。
PEA模块主要实现以下几个功能:
1.实现阵列内部PE的集成和互连;
2.实现PEA对阵列片上Shared Memory的访问;
3.实现PEA和协处理器接口对阵列全局寄存器堆的访问;
4.实现外部对阵列片上Shared Memory的读写访问,主要包括数据Cache和主控总线(如DMAC和RISCV);
5.实现协处理器对配置Cache的访问和对PEA阵列各PE进行配置。
PEA的内部结构如图4所示,PEA模块内部集成了一个8×8PE Array、PE的全局寄存器(Global Reg,全局寄存器的作用是为了暂存PEA计算的结果,所谓全局是在运算过程中可能反复用到这些值,内部的PE也可以共享全局寄存器里的值)、协处理器接口(Coprocessor Interface)、数据控制器(Data Control)、数据共享存储器(SharedMemory)、PEA控制器(PEA Control)和配置控制器(Context Control)。其中,协处理器接口(Coprocessor Interface)的主要功能在PEA Interface中实现。下面介绍详细介绍。
1.介绍PEA阵列的设计。
PEA模块中最核心的部分就是PEA阵列。由于PEA阵列过大,我们的PEA阵列采用异构的PEA阵列结构,只有PEA四周边沿的PE支持访存操作,它们能够从阵列共享的存储器Shared Memory中取数或存储计算结果。如图5所示,展示了PEA阵列的互连。
如图5所示,我们采用了只在边缘进行访存的PEA阵列结构,其中异构的PE功能如下:
(1)访存PE:包括边缘的竖线背景和灰色PE,共28个。上边沿8个竖线背景PE既可以访问本PEA的SM(Shared Memory,数据共享存储器),又可以访问相邻一个PEA的SM;另外三个边的20个灰色PE只能访问本PEA的SM。
(2)计算PE:阵列所有PE,共64个,所有PEA上的PE(包括边沿的PE)都可以进行计算,但是边沿的28个访存PE不能进行除法和取模(16-bit的非流水执行)运算。
通过上述可知,在一个实施例中,每个PEA中四周边沿的PE为支持访存操作的边缘访存PE。
在一个实施例中,四周边沿的PE中一个边沿的8个边缘访存PE为既访问本PEA的数据共享存储器,又访问相邻PEA的数据共享存储器的边缘访问PE;其余三个边沿的20个边缘访存PE只能访问本PEA的数据共享存储器。
在一个实施例中,所述边缘访存PE不能进行除法和取模运算。
为了能够实现粗粒度计算处理单元阵列高效的计算能力,处理单元必须支持与其他处理单元和memory等之间的灵活数据传输,而又不会带来太多的互联面积和功耗开销,我们的粗粒度计算处理阵列典型2-D Mesh互联形式进行优化改进,主要对内部计算PE与边缘访存PE间的互连方式进行优化。
目前本粗粒度计算处理单元阵列提供了9种其他PE数据的路由,分别是:相邻的4个PE(上、下、左、右)、同行和同列两端的PE(上端、下端、左端、右端)以及本身PE。例如,图5中边框加粗的PE,它与它相邻的4个PE进行互连;与同行的最左端边沿的PE和最右端边沿的PE互连;与同列的最上端边沿PE和最下端边沿的PE互连;自己与自己互连。同时,该互连结构还支持脉动执行的部分和结果和一个计算分量(Output Reg和Input Reg)同时传递,都能进行传递给邻近PE的Input Reg的2个32bit的数据输出端口,其增加的“同行、同列两端PE”相连,能够让PEA阵列进行连续的脉动乘累加运算。
通过上述可知,在一个实施例中,每个PEA中四周边沿之外的PE为主要计算PE,所述主要计算PE可以包括9种互连结构。
2.介绍PEA中共享存储器SM。
SM采用可预取的交互式多Bank(区)结构,如图6所示,地址空间分配如图7所示。
如图6和图7所示,在本发明实施例的PEA阵列的共享存储方案中,SM被划分为16个Bank,其中B0~B7为一组,B8~B15为另一组,方便实现乒乓结构和数据预取。其次,SM采用双端口SRAM,那么PEA在进行计算时,RPU可直接通过总线接口与SM通信,通过乒乓Bank的方式,实现数据包的预取。乒乓结构和数据预取是这样的:一组Banks被PEA阵列读数据时,另一组Banks可以预先写入新的数据;同理,当这组Banks写完时,它变成读模式,另一组变成写模式,从而完成类似于乒乓的读写操作,让SM不会空闲下来。
通过上述可知,在一个实施例中,每个PEA中的数据共享存储器包括16个区,其中8个区为第一组,另外8个区为第二组,数据共享存储器采用双端口静态随机存取存储器SRAM,其中,第一组被PEA读数据时,第二组预先写入新的数据;当第二组写完数据时,第二组变成读模式,第一组变成写模式。
另外,如图8所示,PEA和相邻PEA的SM呈现一种环形结构:
之所以能实现这种环形结构,是因为前面提到的访存PE中有8个PE可以访问相邻PEA的SM。由于SM有16个Bank,每个Bank均为256×32,即1KB大小,因此,这8个PE中每个PE可访问的空间共32KB大小,这种结构实现了PEA之间的数据直接交互,提高片上数据带宽和吞吐率。
通过上述可知,在一个实施例中,每个PEA与相邻PEA的数据共享存储器进行数据交互,使得四个PEA和四个数据共享存储器之间的数据交互形式呈现一种环形形式。
基于PEA和SM之间环形的数据交互方式,本发明实施例可以实现不同PEA之间的一种流水的执行方式,如图9所示。
3.接着介绍处理单元PE的设计。
如图10所示,粗粒度可重构阵列的处理单元PE的结构中,内部的核心部分有:PE控制器(PE Control)、配置存储器(CM)、局部寄存器(LR)、PE路由器(Router)、PE执行单元(ALU、MUL和LSU)和Debug模块(Deb)。下面进行详细介绍。
(1)介绍PE的流水线结构。
为了实现2000GOPS的计算能力,PE必须采用流水的执行方式。如图11所示,采用了四级流水线:
流水线包含四个阶段:取配置、译码+取数、执行、写回。其中执行阶段又进行更细的流水:1个周期的ALU运算,不包括乘法类操作(乘法Mul和乘累加Mac);2个周期的Store访存运算;3个周期的乘法类运算,主要包括无符号乘法Mul运算和无符号乘累加Mac运算;6个周期的Load运算;18个周期的除法型运算。“配置-执行”的流水化隐藏了取指延时,消除访存阶段,将访存看作特殊的“访存类型运算”。
图11的英文说明:PipeReg:流水线寄存器;Outreg:输出寄存器;Config:配置;Decode:译码;Execute:执行;Write:写回;Mac:乘累加。
通过上述可知,在一个实施例中,PE可以采用取配置阶段、译码加取数阶段、执行阶段和写回阶段的四级流水线执行方式。
在一个实施例中,所述执行阶段包括:1个周期的算术逻辑单元ALU运算;2个周期的存储访存运算;3个周期的乘法类运算;6个周期的加载运算;18个周期的除法型运算。
如图12所示,PE在单周期运算下进行完美流水执行。此时的PE运算配置地址连续加1,实现类似通用处理器GPP的时域映射(Temporal Mapping)的动态执行方式。
如图13所示,本发明实施例给出了配置迭代运算的流水线下的执行情况(目前实际迭代次数是配置信息决定),明显可以发现此时的流水线是间断执行的,配置的地址也出现了不连续的情况。这里,我们可以在流水线停顿时,对配置地址减1,重新取配置回被流水线冲刷的配置,即可实现功能的正确执行。
即,在一个实施例中,PE在单周期运算情况下,PE运算配置地址连续加1,实现时域映射的动态执行方式;PE在配置迭代运算流水线下,对配置地址减1,重新取配置回被流水线冲刷的配置。
(2)介绍PE的配置信息格式。
本项目CGRA中的处理单元PE的配置信息全部采用64-bit的配置信息格式,目前用到的主要可以包含三大类:顶层型配置信息、ALU运算型配置信息(包含MUL/MAC类运算)和访存运算型配置信息。这些配置信息的主要特点有:适用于目前项目中大规模粗粒度阵列的设计要求;高灵活性、高扩展性;支持多种运算类型、阵列大小、储存大小、不同数据位宽等;存在配置长度扩展位和许多配置编码保留位,用以实现未来配置信息扩展等。下表2-表4展示了这些配置信息。
表2:顶层型配置信息
表3:ALU运算型配置信息
表4:访存运算型配置信息
通过上述可知,在一个实施例中,PE的配置信息可以包括:顶层型配置信息、ALU运算型配置信息和访存运算型配置信息。
二、介绍Cache的设计。
按照目前可重构项目中,对于缓存的要求,我们采用数据和配置分离的哈弗-缓存结构,提高数据和配置包的数据复用率,降低PEA对外部存储的访问代价。
即,在一个实施例中,一级数据缓冲存储器、一级配置缓冲存储器、二级数据缓冲存储器和二级配置缓冲存储器采用数据和配置分离的哈弗-缓存结构。
如图14所示的Cache组织结构,以数据Cache为例,其中四个一级Cache(每个一级Cache包含Data Cache和Context Cache。四个一级Cache是指图14中的L1 Data Cache1~4和L1 Context Cache1~4)分别连接四个RPU,每个L1Cache均用单个RPU内部4个PEA的Shared Memory(集中式形式)和Context Memory(分布式形式)的数据共享。而且,4个L1Cache于彼此之间为全互联结构,用于实现四个Cache间的数据一致性的问题。四个Cache与二级Cache(二级Cache是指图14中的L2 Data Cache和L2 Context Cache)连接。除了L1Cache间用于数据一致性的全互联总线为自定义总线外,其余所有总线均为AHB总线。
四种规格的Cache如下表5所示:
表5:Cache的规格大小
名称 | 总线宽度 | 策略 | 一致性 | 路数 | 组数 | 总大小 |
L1 Data Cache | 256 | 写通 | 是 | 8 | 128 | 64KB |
L1 Context Cache | 64 | 写通 | 是 | 8 | 128 | 64KB |
L2 Data Cache | 256 | 写回 | 否 | 16 | 256 | 256KB |
L2 Context Cache | 64 | 写回 | 否 | 16 | 256 | 256KB |
Cache内部存储器的细节如下表6所示:
表6:Cache内部存储器的规格
综上,本发明实施例实现了一种层次化多RPU多PEA的粗粒度可重构处理器CGRA,提出了多PEA阵列的集成方案,阐述了其中的核心模块和相关技术。在本发明实施例中,着重说明了PEA阵列的互连方案和PE的实现细节,它们都能够以流水的方式执行计算,以达到项目要求的数据吞吐率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,包括:
4个可重构处理器块RPU;其中,每个RPU包括:
4个处理单元阵列PEA;其中,每个PEA包括:
8×8个处理单元PE,以及与8×8个PE配合完成运算任务的处理单元阵列控制器、协处理器接口、配置控制器、数据控制器和数据共享存储器。
2.如权利要求1所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,还包括:外部主控、第一高速内存、二级数据缓冲存储器和二级配置缓冲存储器;
每个RPU还包括:内部主控、第二高速内存、一级数据缓冲存储器和一级配置缓冲存储器。
3.如权利要求1所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,每个PEA中四周边沿的PE为支持访存操作的边缘访存PE。
4.如权利要求3所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,四周边沿的PE中一个边沿的8个边缘访存PE为既访问本PEA的数据共享存储器,又访问相邻PEA的数据共享存储器的边缘访问PE;其余三个边沿的20个边缘访存PE只能访问本PEA的数据共享存储器。
5.如权利要求3所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,所述边缘访存PE不能进行除法和取模运算。
6.如权利要求3所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,每个PEA中四周边沿之外的PE为主要计算PE,所述主要计算PE包括9种互连结构。
7.如权利要求1所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,每个PEA中的数据共享存储器包括16个区,其中8个区为第一组,另外8个区为第二组,数据共享存储器采用双端口静态随机存取存储器SRAM,其中,第一组被PEA读数据时,第二组预先写入新的数据;当第二组写完数据时,第二组变成读模式,第一组变成写模式。
8.如权利要求7所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,每个PEA与相邻PEA的数据共享存储器进行数据交互,使得4个PEA和4个数据共享存储器之间的数据交互形式呈现一种环形形式。
9.如权利要求1所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,PE采用取配置阶段、译码加取数阶段、执行阶段和写回阶段的四级流水线执行方式。
10.如权利要求1所述的层次化的多可重构处理器块RPU多处理单元阵列PEA的可重构处理器,其特征在于,PE的配置信息包括:顶层型配置信息、ALU运算型配置信息和访存运算型配置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011510855.0A CN112486908B (zh) | 2020-12-18 | 2020-12-18 | 层次化的多rpu多pea的可重构处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011510855.0A CN112486908B (zh) | 2020-12-18 | 2020-12-18 | 层次化的多rpu多pea的可重构处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486908A true CN112486908A (zh) | 2021-03-12 |
CN112486908B CN112486908B (zh) | 2024-06-11 |
Family
ID=74914878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011510855.0A Active CN112486908B (zh) | 2020-12-18 | 2020-12-18 | 层次化的多rpu多pea的可重构处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486908B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968911A (zh) * | 2022-08-01 | 2022-08-30 | 中国人民解放军63921部队 | 算子频度压缩及上下文配置调度的fir可重构处理器 |
CN115841416A (zh) * | 2022-11-29 | 2023-03-24 | 白盒子(上海)微电子科技有限公司 | 一种用于自动驾驶领域的可重构智能图像处理器架构 |
CN116166186A (zh) * | 2022-12-12 | 2023-05-26 | 中科芯集成电路有限公司 | 一种基于双端口Sram的Cache控制器及工作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024621A1 (en) * | 2010-03-16 | 2013-01-24 | Snu R & Db Foundation | Memory-centered communication apparatus in a coarse grained reconfigurable array |
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN111581148A (zh) * | 2020-04-16 | 2020-08-25 | 清华大学 | 基于粗粒度可重构架构的处理器 |
-
2020
- 2020-12-18 CN CN202011510855.0A patent/CN112486908B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024621A1 (en) * | 2010-03-16 | 2013-01-24 | Snu R & Db Foundation | Memory-centered communication apparatus in a coarse grained reconfigurable array |
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN111581148A (zh) * | 2020-04-16 | 2020-08-25 | 清华大学 | 基于粗粒度可重构架构的处理器 |
Non-Patent Citations (2)
Title |
---|
LIANG WANG等: "Achieving Flexible Global Reconfiguration in NoCs Using Reconfigurable Rings", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 31, no. 3, 10 September 2019 (2019-09-10), pages 611 - 622, XP011765680, DOI: 10.1109/TPDS.2019.2940190 * |
殷崇勇 等: "可重构媒体处理器任务编译器的前端设计", 北京邮电大学学报, vol. 34, no. 03, 30 June 2011 (2011-06-30), pages 108 - 112 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968911A (zh) * | 2022-08-01 | 2022-08-30 | 中国人民解放军63921部队 | 算子频度压缩及上下文配置调度的fir可重构处理器 |
CN115841416A (zh) * | 2022-11-29 | 2023-03-24 | 白盒子(上海)微电子科技有限公司 | 一种用于自动驾驶领域的可重构智能图像处理器架构 |
CN115841416B (zh) * | 2022-11-29 | 2024-03-19 | 白盒子(上海)微电子科技有限公司 | 一种用于自动驾驶领域的可重构智能图像处理器架构 |
CN116166186A (zh) * | 2022-12-12 | 2023-05-26 | 中科芯集成电路有限公司 | 一种基于双端口Sram的Cache控制器及工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112486908B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
JP2966085B2 (ja) | 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 | |
EP2224345B1 (en) | Multiprocessor with interconnection network using shared memory | |
CN112486908B (zh) | 层次化的多rpu多pea的可重构处理器 | |
US7725518B1 (en) | Work-efficient parallel prefix sum algorithm for graphics processing units | |
US20110252204A1 (en) | Shared single access memory with management of multiple parallel requests | |
US20030018868A1 (en) | Method and apparatus for using smart memories in computing | |
EP1269328A2 (en) | System having a configurable cache/sram memory | |
CN114398308A (zh) | 基于数据驱动粗粒度可重构阵列的近内存计算系统 | |
CN112540793A (zh) | 支持多访存模式的可重构处理单元阵列及控制方法、装置 | |
Shang et al. | LACS: A high-computational-efficiency accelerator for CNNs | |
Li et al. | An efficient multicast router using shared-buffer with packet merging for dataflow architecture | |
CN115858439A (zh) | 三维堆叠式可编程逻辑架构和处理器设计体系结构 | |
CN112486905B (zh) | 可重构异构化pea互连方法 | |
CN112486904A (zh) | 可重构处理单元阵列的寄存器堆设计方法及装置 | |
CN117009287A (zh) | 一种于弹性队列存储的动态可重构处理器 | |
US20090193227A1 (en) | Multi-stream on-chip memory |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |