CN112463719A - 一种基于粗粒度可重构阵列实现的存内计算方法 - Google Patents
一种基于粗粒度可重构阵列实现的存内计算方法 Download PDFInfo
- Publication number
- CN112463719A CN112463719A CN202011410089.0A CN202011410089A CN112463719A CN 112463719 A CN112463719 A CN 112463719A CN 202011410089 A CN202011410089 A CN 202011410089A CN 112463719 A CN112463719 A CN 112463719A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- reconfigurable array
- arithmetic logic
- unit
- 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
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
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
一种基于CGRA的存内处理系统,其特征在于,包括:中央处理器、主存、可重构阵列、全局指令寄存器,采用3D堆叠模式,每一个主存块对应一个逻辑层,所述逻辑层和存储芯片之间采用TSV技术进行直连;可重构阵列的处理单元被配置为存储单元或算术逻辑单元;存储单元用于与所述内存进行数据交换;算术逻辑单元用于根据寄存器数据、附近所述存储单元数据、配置信息进行计算。本发明的有益效果为:明显的性能优势,广泛的应用优势,在仿真平台下可以实现该架构的功能仿真,并应用到具体的数据密集型算法中,适配更多的算法应用,灵活性更高,可重构阵列全局指令存储器均采用非对称设计,大大提高了可重构阵列内部配置数据传输的效率。
Description
技术领域
本发明涉及一种高效的存内计算架构领域的设计方案,特别涉及基于粗粒度可重构阵列实现的存内计算架构设计方案。
背景技术
随着当今社会的数据爆炸式增长与对数据分析日益增加的需求,传统计算架构在性能及灵活性方面面临巨大挑战。传统计算架构从内存中进行数据访问,在面对大规模数据时,由于内存带宽不能随着应用程序数据规模的扩大而进行扩展,这已经成为了一个制约性能的瓶颈点。数据移动占用了大量的运行时间和能耗,搬运数据的代价相较于计算而言更为昂贵,这一系列的问题令人们开始思考在内存中处理大数据的可能性。
在内存设计和内存体系结构方面的进步使人们有机会在内存中进行数据处理(Processing-in-Memory,PIM),实现高内部带宽和低延迟。在PIM中,对传统计算架构进行重新设计,并避免不必要的数据移动。存内处理,也称为近数据处理(near-dataprocessing,NDP),支持在DRAM中使用内存本身或某种形式的处理逻辑(例如加速器,可重构逻辑等)来执行操作。随着现代存储器架构的进步,例如逻辑层和内存以3D堆叠的方式集成,各种工作探索了一系列用于多种不同目的的PIM架构[8-13]。
可重构计算架构是异于传统冯诺依曼结构的一种计算架构,它通过静态或动态更改电路结构和连接关系来改变电路功能,这与通过改变所执行的指令流来改变功能的冯诺依曼架构思路不同。按重构的时间特性划分,可将可重构处理器分为静态重构和动态重构。现场可编程逻辑门阵列(Field Programmable Gate Arrays,FPGA)是典型的具有静态重构特性的可重构计算处理器。FPGA的出现,以其灵活可配置的特性某种程度上满足了硬件难以迎合软件快速变化的需求。但由于其自身存在配置信息量大、配置时间长(通常需要十几毫秒到几十毫秒)、功能模块性能难以满足要求[14]等问题,逐渐出现了粗粒度的处理单元。
本文涉及的是动态粗粒度可重构计算架构(Coarse-Grained Reconfigurablearchitecture,CGRA)。该结构可以在计算过程中间动态改变电路结构及功能,相比静态可重构的FPGA更为灵活;粗粒度时,它的功能改变至少粒度以一个字节(8bit)及以上为一个最小单位,而FPGA是以位(bit)为单位进行细粒度重构。粗粒度可重构带来的好处是配置信息的量会大大降低,从而降低了重构时的代价,这也是粗粒度可重构架构比FPGA更适合实现动态可重构的根本原因。粗粒度可重构架构被视为在后摩尔定律时代能效比更高的体系结构。近年来对CGRA的主要优化方向有:能够加速的应用的领域是否全面;对比其他并行计算平台,是否具有更低的功耗;相对通用处理器,是否具有更高的性能。
通常意义下的CGRA结构组成是由ADRES[1]模型所定义的,CGRA常见的工作方式是在完成某个既定运算任务之后,迅速对其加载新的配置比特流进行功能重构。在这个模型基础上,不同结构对某个或某些组成部分做出了区别设计,以改善架构的性能或功耗。基于存内计算架构模型,本次设计将在传统的粗粒度可重构架构上进行调整,取消共享数据存储器单元,将CGRA与DRAM直连,对于计算密集型的计算任务具有良好的并行执行性能,并且CGRA的可重构特性决定了这个架构对于通用处理的可行性,可根据具体情况进行算术逻辑单元的功能调整。
对CGRA的相关研究及分析
国内外对粗粒度可重构架构的研究多集中在能效和算法优化阶段,而较少运用CGRA去实现一些具体应用的性能加速。例如:[1]研究了运算单元(PE)的异构性,复杂度和整合方式对系统能效的影响。[2]和[3]探索运算单元(PE)间的互联结构对能效的影响。[4],[5]和[6]试图找到全局寄存器,共享寄存器和本地寄存器之间最合适的大小关系。
在其他平台上有与本发明类似的研究。例如:[7]实现加速的存内计算架构及其加速方法。但其内存结构与逻辑层具体实现,与本发明有很大区别。
参考文献
[1]Y.Park,J.J.K.Park,and S.Mahlke.2012.Efficient performance scalingof future CGRAs for mobile applications.In International Conference on Field-Programmable Technology(FPT).335–342.
[2]A.Lambrechts,P.Raghavan,M.Jayapala,F.Catthoor,andD.Verkest.2008.Energy-Aware Interconnect Optimization for a Coarse GrainedReconfigurable Processor.In 21st International Conference on VLSI Design(VLSID).201–207.
[3]Bouwensetal.2007.Architectural Exploration of the ADRES Coarse-Grained Reconfigurable Array.In Reconfigurable Computing:Architectures,Toolsand Applications.Springer,1–13.
[4]Z.Kwok and S.J.E.Wilton.2005.Register file architectureoptimization in a coarse-grained reconfigurable architecture.In FCCM.35–44.
[5]Bouwensetal.2008.Architecture Enhancements for the ADRES Coarse-grained Reconfigurable Array.In HiPEAC.66–81.
[6]S.Dave,M.Balasubramanian,and A.Shrivastava.URECA:Unifiedregisterfile for CGRAs.In DATE 2018.1081–1086.
[7]清华大学.实现加速的存内计算架构及其加速方法:中国,G06F15/76(20060101).2019-11-21.
[8]A.Boroumand,S.Ghose,Y.Kim,R.Ausavarungnirun,E.Shiu,R.Thakur,D.Kim,A.Kuusela,A.Knies,P.Ranganathan,O.Mutlu,Google workloads for consumerdevices:mitigating data movement bottlenecks,ASPLOS,2018.
[9]M.Hashemi,Khubaib,E.Ebrahimi,O.Mutlu,Y.N.Patt,Acceleratingdependent cache misses with an enhanced memory controller,ISCA,2016.
[10]M.Hashemi,O.Mutlu,Y.N.Patt,Continuous runahead:transparenthardware acceleration for memory intensive workloads,MICRO,2016.
[11]J.Ahn,S.Hong,S.Yoo,O.Mutlu,K.Choi,A scalable processing-in-memoryaccelerator for parallel graph processing,ISCA,2015.
[12]J.Ahn,S.Yoo,O.Mutlu,K.Choi,PIM-enabled instructions:alow-overhead,locality-aware processing-in-memory architecture,ISCA,2015.
[13]Q.Zhu,T.Graf,H.E.Sumbul,L.Pileggi,F.Franchetti,Acceleratingsparse matrix-matrix multiplication with 3D-stacked logic-in-memory hardware,HPEC,2013.
[14]Vuillemin J E,Bertin P,Roncin D,et al.Programmable activememories:Reconfigurable systems come of age[J].IEEE Transactions on VeryLarge Integration Systems,1996,4(1):56-69.
发明内容
通过对背景技术的分析,现有技术存在以下技术问题:
1、针对数据密集型应用,非存内处理加速器在数据搬运时传输时间较长,访存不够灵活,使得存储器访问成为系统瓶颈,造成较大的性能和功耗损失,存在存储墙的问题。
2、专用集成电路的专用性太高,可复用性低,局限性高。
3、现场可编程逻辑门阵列(Field Programmable Gate Arrays,FPGA)是典型的具有静态重构特性的可重构计算处理器。虽支持可重构,但配置信息量大、配置时间长(通常需要十几毫秒到几十毫秒)、功能模块性能难以满足要求。
4、当前现有的存内计算架构的灵活性较低,无法适配复杂多变的各类密集型应用。
为解决上面的技术问题,
1、针对存储墙这一核心问题,本发明设计了相应解决方式,采取的措施包括:
①、采取近内存(Near Data Processing,NDP)架构(即存内架构),将粗粒度可重构阵列与内存直连,阵列对数据的搬运不经过总线的通信,减少数据搬运的物理距离、时间和功耗,提高整体性能。
②、可重构阵列全局指令存储器均采用非对称设计,与处理器端接口保持传统的64bit读写端口,对可重构阵列内部,其数据宽度为512bit,大大提高了可重构阵列内部配置数据传输的效率。
2、针对已有技术的一些方案应用领域狭窄的问题,CGRA的可重构特性决定该发明架构可以广泛应用于多个应用领域,并具有明显的能效提升。
3、由于可重构的特性大幅提高了配置应用的灵活性,具有更为广泛的适配范围。
4、粒度较传统可重构门阵列粗,减少配置代价,缩短配置时间。
5、针对互连结构不够灵活的缺陷,采用开关设计,将可重构阵列与配置存储器、可重构阵列的上下两行之间使用采用交叉开关进行连接。这一方式使得上一行PE单元的计算结果可以输出到下一行的任一PE单元或者暂存到PE本身的寄存器中,具有很高的灵活性,可根据具体要求进行不同的输入配置,适合于进行数据流处理应用。
一种粗粒度可重构阵列PEA,PEA的列总线通过指令控制器与全局指令存储器数据连通,PEA的行总线通过共享数据存储器与内存数据连通;指令存储控制器通过列总线,完成将全局指令存储器中的指令分发给各处理单元的任务。共享数据存储器通过行总线读取或写入处理单元的数据,完成内存与处理单元的数据交换,以及各处理单元数据的存储汇总;
对其中每个处理单元(PE)进行异构设计成为存储单元或算术逻辑单元。存储单元负责与内存进行数据交换;算术逻辑单元负责根据寄存器数据/附近存储单元数据,根据配置信息进行相关计算。
优选地,可重构阵列的包含64个处理单元,被设计为8行8列的形式,最外圈28个处理单元设计为存储单元;内部26个处理单元设计为算术逻辑单元。
进一步地,存储单元LSU从处理器接收目标的物理地址,LSU有读操作和写操作两种模式。读操作模式时,执行两步操作:根据指令的目标地址位置,从对应内存中读取目标物理地址中的数据,并将数据根据配置指令写到对应的ALU。写操作模式时,执行两步操作:将计算结果从相应ALU中读取,并根据指令的目标地址位置,并将结果写回内存的相应位置中。
进一步地,算术逻辑单元ALU单元由两个选择器提供输入,ALU单元的每个操作数的来源可分为两种:①、来自于本地寄存器堆;②、来自于上一行ALU的输出。故而第一行的ALU单元没有来自上一行ALU的输出作为它的输入,操作数来源只有一种。至于选择器具体选择哪个数据来源,是由配置信息决定的。选择器通过全局指令存储器(ContextRegister)中传输的当前指令进行输入选择。并且,ALU具体进行何种逻辑操作,也要取决于Context Register内部存储的指令。每个ALU单元的计算结果也有两个去向:①、存储到本地寄存器堆,作为下一次进行逻辑计算的一个可能输入;②、输出到下一行ALU的输入端,同样最后一行的ALU计算结果不会有第二种去向。
进一步地,LSU的工作机制如下:
在没有处理任务时,LSU处于Idle状态;接收到CPU分配的任务后,LSU的状态切换到Ready并开始工作,接收要从内存中搬运的数据的物理地址,向存储阵列发出读请求;向存储阵列发送读数据请求后,状态切换到WaitingResp,等待存储阵列返回数据;完成数据接收后,LSU根据指令存储器将所得数据发送到所指定的ALU,并等待ALU完成相应逻辑运算,将结果传回;结果接收完成后向存储阵列发送写数据请求,数据写入后LSU切换到Finish,此时LSU完成一次完整的操作。
进一步地,ALU的工作方式如下:
ALU的工作机制与LSU略有不同,它接收的数据是由LSU发送的,并在完成相应逻辑计算后将结果写回LSU,全程与存储单元并没有直接关联。初始状态下ALU处于Idle状态;接收数据之后状态切换到WaitingResp,并进行具体计算,具体计算根据全局指令存储器中的配置进行具体操作;计算完成后,ALU将结果写回LSU,写入后ALU切换到Finish,此时ALU完成一次完整的操作。
进一步地,全局指令寄存器采用了非对称设计的两套端口,在与主处理器和内存进行数据交换时,第一总线接口,保证系统的良好兼容性;与可重构阵列PEA进行交互时采用第二总线接口,以满足重构时的速度。
优选地,第一总线接口为64位接口,第二总线接口为512位接口。
一种基于CGRA的存内处理系统,包括:中央处理器、主存、可重构阵列PEA、全局指令寄存器;
中央处理器通过总线分别与主存、可重构阵列、全局指令寄存器连接;
主存分别与可重构阵列、全局指令寄存器连接;
可重构阵列与全局指令寄存器连接;
全局指令寄存器用于存储应用的配置信息,配置信息在系统运行前被从主存读入。
进一步地,采用3D堆叠模式,每一个主存块对应一个逻辑层,逻辑层和存储芯片之间采用TSV技术进行直连,可重构阵列与处理器之间通过总线相连,通过总线将要搬运的数据地址转换后发送给可重构阵列和指令存储器,后者再去对应的内存中进行数据搬运和处理。
与现有技术相比,本发明的有益效果如下:
1、比现有结构,本发明具有明显的性能优势。相比现有PIM(Processing-in-Memory)结构,本发明具有更高的性能;相比传统意义上的处理器,本发明具有明显的面积和功耗优势。
2、相比其他一些优化技术,本发明同时具有广泛的应用优势,在仿真平台下可以实现该架构的功能仿真,并应用到具体的数据密集型算法中。
3、适配更多的算法应用,灵活性更高,配置指令数量少,配置周期短,对程序员更为友好。
4、可重构阵列全局指令存储器均采用非对称设计,与处理器端接口保持传统的32bit读写端口,对可重构阵列内部,其数据宽度为512bit,大大提高了可重构阵列内部配置数据传输的效率。
附图说明
图1是本申请的实施例的的存内计算架构框图;
图2是本申请的实施例的的8x8 CGRA架构图;
图3是本申请的实施例的存储单元的物理结构;
图4是本申请的实施例的算术逻辑单元的物理结构;
图5是本申请的实施例的全局指令寄存器的物理结构;
图6是本申请的实施例的存内计算架构;
图7是本申请的实施例的指令互联结构。
具体实施方式
以下参考说明书附图介绍本申请的优选实施例,使其技术内容更加清楚和便于理解。本申请可以通过许多不同形式的实施例来得以体现,本申请的保护范围并非仅限于文中提到的实施例。
以下将对本发明的构思、具体结构及产生的技术效果作进一步的说明,以充分地了解本发明的目的、特征和效果,但本发明的保护不仅限于此。
本发明的实施例
一、粗粒度可重构阵列PEA
设计粗粒度可重构架构(CGRA),对其中每个处理单元(PE)进行异构设计,使它可以完成存储/运算功能,连线方式如图2所示,PEA的列总线通过指令控制器与全局指令存储器数据连通,PEA的行总线通过共享数据存储器与内存数据连通。CGRA的主要接口有两个,一个是指令存储控制器与全局指令存储器之间的配置接口,另外一个是共享数据存储器与内存直连的数据接口,两个接口均采用高速传输设计。指令存储控制器通过列总线,完成将全局指令存储器中的指令分发给各处理单元的任务。共享数据存储器通过行总线读取或写入处理单元的数据,完成内存与处理单元的数据交换,以及各处理单元数据的存储汇总。可重构阵列的64个处理单元被设计为8行8列的形式,最外圈28个处理单元设计为存储单元,负责与内存进行数据交换;内部26个处理单元设计为算术逻辑单元,负责根据寄存器数据/附近存储单元数据,根据配置信息进行相关计算。
二、PE的物理结构
在PEA异构架构下,将PE分为存储单元(Load/Store Unit,LSU)和算术逻辑单元(Algorithm Logic Unit,ALU),存储单元的物理结构如图3所示。算术逻辑单元的物理结构如图4所示。
LSU单元从处理器接收目标的物理地址,LSU有读操作和写操作两种模式。读操作模式时,执行两步操作:根据指令的目标地址位置,从对应内存中读取目标物理地址中的数据,并将数据根据配置指令写到对应的ALU。写操作模式时,执行两步操作:将计算结果从相应ALU中读取,并根据指令的目标地址位置,并将结果写回内存的相应位置中。
ALU单元由两个选择器提供输入,ALU单元的每个操作数的来源可分为两种:①、来自于本地寄存器堆;②、来自于上一行ALU的输出。故而第一行的ALU单元没有来自上一行ALU的输出作为它的输入,操作数来源只有一种。至于选择器具体选择哪个数据来源,是由配置信息决定的。选择器通过全局指令存储器(Context Register)中传输的当前指令进行输入选择。并且,ALU具体进行何种逻辑操作,也要取决于Context Register内部存储的指令。每个ALU单元的计算结果也有两个去向:①、存储到本地寄存器堆,作为下一次进行逻辑计算的一个可能输入;②、输出到下一行ALU的输入端,同样最后一行的ALU计算结果不会有第二种去向。
三、PE的行为建模
基于有限状态机建立PE行为模型,将PE的物理结构抽象为行为建模。PE有空闲(Idle)、就绪(Ready)、等待响应(WaitingResp)和完成(Finish)等状态。PE分为LSU和ALU,二者的工作机制不同。
在没有处理任务时,LSU处于Idle状态;接收到CPU分配的任务后,LSU的状态切换到Ready并开始工作,接收要从内存中搬运的数据的物理地址,向存储阵列发出读请求;向存储阵列发送读数据请求后,状态切换到WaitingResp,等待存储阵列返回数据;完成数据接收后,LSU根据指令存储器将所得数据发送到所指定的ALU,并等待ALU完成相应逻辑运算,将结果传回;结果接收完成后向存储阵列发送写数据请求,数据写入后LSU切换到Finish,此时LSU完成一次完整的操作。
ALU的工作机制与LSU略有不同,它接收的数据是由LSU发送的,并在完成相应逻辑计算后将结果写回LSU,全程与存储单元并没有直接关联。初始状态下ALU处于Idle状态;接收数据之后状态切换到WaitingResp,并进行具体计算,具体计算根据全局指令存储器中的配置进行具体操作;计算完成后,ALU将结果写回LSU,写入后ALU切换到Finish,此时ALU完成一次完整的操作。
四、全局指令寄存器的物理结构
全局指令寄存器的结构如图5所示,采用了非对称设计的两套端口,在与主处理器和内存进行数据交换时,采用64位总线接口,保证系统的良好兼容性。在主处理器的请求502信号到来之后,发送响应信号503,表示传输顺利执行,随后根据目标地址到内存对应位置进行数据搬运。与可重构阵列PEA进行交互时采用宽度达512bit的端口504,以满足重构时的速度。全局指令寄存器内部单元每512bit作为一个单元,每一512bit单元501的地址设置相应id,在检索和传输时根据对应id配置通过504端口传输到可重构阵列PEA中。
五、可重构阵列PEA与全局指令寄存器间指令存储控制器设计
可重构阵列与全局指令寄存器之间通过指令互联结构进行连接。如图7所示,指令互联结构左侧有到64个PE的配置寄存器的连接,右侧为全局指令寄存器512bit的数据端口。每次最多允许8个PE的配置信息通过指令互联结构传输到对应的PE中。
六、3D堆叠架构的可行性分析
3D堆叠思想起源于SDRAM和NOR/NAND的叠层封装,主要特点包括:多功能,高能效,单位体积上的功能及应用成倍提升以降低成本。而硅穿孔(TSV)技术的兴起使得3D堆叠架构的物理实现成为可能。TSV是一种让3D IC封装遵循摩尔定律的互联技术,可堆叠多片芯片,其设计概念来自于印刷电路板(PCB),在芯片钻出小洞,从底部填充入金属,硅晶圆上以刻蚀或激光方式钻孔(via),再以导电材料填充,这一技术能够以更低的成本有效提高系统的整合度与能效。
TSV技术在3D集成电路中具有重要应用,对于跨入3D IC具有相当的优势。附图1中PEA和主存/Context Memory和主存的连接(DMA)都采用TSV技术进行3D直连。
七、基于CGRA的存内处理架构
3D堆叠集成技术使基于硅通孔(Through Silicon Via,TSV)的逻辑层和存储芯片堆叠在一起互连,减少访存物理距离,可提供高带宽和更高的资源效率。基于存内计算架构模型,本次设计将在传统的粗粒度可重构架构上进行调整,将粗粒度可重构阵列与主存直连,实现方式如附图6。将DRAM分块,块的大小为256MB,分块的数量取决于总内存的大小。
本发明所提出的基于CGRA的存内处理架构如图1所示,其中:
101为本发明所采用的处理器核,为仿真状态下的时序CPU,是一个X86指令集的处理器。
102为系统的主存,这里采用DRAM存储器,通过TSV与103和104直连。
103为可重构阵列PEA,规模为8×8共64个PE单元,每个PE单元均可访问全局指令存储器。PEA与外部的通信主要是通过异构PE的LSU单元来用主存读入数据,或将数据写回主存,配置信息则通过指令互联结构从全局指令存储器读取。
104为全局指令寄存器Context Memory,用于存储应用的配置信息,在系统运行前通过TSV从DRAM读入。
采用3D堆叠模式,每一个DRAM的块对应一个逻辑层,逻辑层和存储芯片之间采用TSV技术进行直连,可重构阵列与处理器之间通过总线相连,通过总线将要搬运的数据地址转换后发送给可重构阵列和指令存储器,后者再去对应的内存中进行数据搬运和处理。可重构阵列作为逻辑层,进行数据处理。存储单元将直接根据接收的数据地址到主存相应位置进行数据搬运,这种直连模式减少数据搬运的延时,降低相应功耗,之后算术逻辑单元根据指令存储器的配置完成对数据的相应操作。由于大幅减少数据搬运所产生的代价,因此对于计算密集型的计算任务具有良好的执行性能,并且CGRA的可重构特性决定了这个架构对于通用处理的可行性,可根据具体情况进行算术逻辑单元的功能调整。
本发明最终的系统实现采用C++和Python结合的方式实现,C++实现具体结构配置,Python提供参数接口,但本发明并不限于C++和Python语言。具体实施方式如下:
步骤1以C++和Python实现CPU、DRAM、总线等的仿真。
步骤2根据附图3和附图4的方案实现可重构阵列的处理单元。
步骤3根据附图2将PE组合实现为可重构阵列。
步骤4按照附图5的结构实现全局指令存储器。
步骤5按照附图7的结构实现指令互联结构。
步骤6按照附图2和图6的结构将CGRA与DRAM直连,设计形成3D堆叠模式,通过Through Silicon Via技术,实现近内存处理。
步骤7按照附图1的结构将步骤1~6的模块集成成为最终的存内处理CGRA架构。
以上详细描述了本申请的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本申请的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本申请的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种粗粒度可重构阵列,其特征在于,其列总线通过指令控制器与全局指令存储器数据连通,其行总线通过共享数据存储器与内存数据连通;所述指令存储控制器,用于通过所述列总线,将所述全局指令存储器中的指令分发给各处理单元;所述共享数据存储器,用于通过所述行总线读取或写入所述处理单元的数据,完成内存与所述处理单元的数据交换,以及各所述处理单元的数据存储汇总;
所述处理单元被配置为存储单元或算术逻辑单元;所述存储单元用于与所述内存进行数据交换;所述算术逻辑单元用于根据寄存器数据、附近所述存储单元数据、配置信息进行计算。
2.如权利要求1所述的粗粒度可重构阵列,其特征在于,包含64个所述处理单元,所述处理单元被配置为8行8列的形式,最外圈28个所述处理单元为所述存储单元,内部26个所述处理单元设计为所述算术逻辑单元。
3.如权利要求1所述的粗粒度可重构阵列,其特征在于,所述存储单元,从中央处理器接收目标的物理地址,有读操作和写操作两种模式;在读操作模式时,被配置为执行两步操作:根据指令的目标地址位置,从对应所述内存中读取目标物理地址中的数据,并将数据根据配置指令写到对应的所述算术逻辑单元;在写操作模式时,执行两步操作:将计算结果从相应所述算术逻辑单元中读取,并根据指令的目标地址位置,并将结果写回所述内存的相应位置中。
4.如权利要求3所述的粗粒度可重构阵列,其特征在于,所述存储单元的工作机制如下:
在没有处理任务时,所述存储单元处于Idle状态;
接收到所述中央处理器分配的任务后,所述存储单元的状态切换到Ready并开始工作,接收要从所述内存中搬运的数据的物理地址,向存储阵列发出读请求;向所述存储阵列发送读数据请求后,状态切换到WaitingResp,等待所述存储阵列返回数据;
完成数据接收后,所述存储单元根据所述全局指令存储器将所得数据发送到所指定的所述算术逻辑单元,并等待所述算术逻辑单元完成相应逻辑运算,将结果传回;
结果接收完成后向所述存储阵列发送写数据请求,数据写入后所述存储单元切换到Finish,此时所述存储单元完成一次完整的操作。
5.如权利要求1所述的粗粒度可重构阵列,其特征在于,所述算术逻辑单元,被配置为由两个选择器提供输入,每个操作数来自于本地寄存器堆或来自于上一行所述算术逻辑单元的输出;
所述选择器通过所述全局指令存储器中传输的当前指令进行输入选择;所述算术逻辑单元操作指令来自于所述全局指令存储器内部存储的指令;
每个所述算术逻辑单元的计算结果被存储到本地寄存器堆,作为下一次进行逻辑计算的一个备选输入,或被输出到下一行所述算术逻辑单元的输入端。
6.如权利要求5所述的粗粒度可重构阵列,其特征在于,所述算术逻辑单元的工作方式如下:
所述算术逻辑单元接收的数据是由所述存储单元发送的,并在完成相应逻辑计算后将结果写回所述存储单元,全程与所述存储单元并没有直接关联;
初始状态下所述算术逻辑单元处于Idle状态;
接收数据之后状态切换到WaitingResp,并进行具体计算,具体计算根据所述全局指令存储器中的配置进行具体操作;
计算完成后,所述算术逻辑单元将结果写回所述存储单元,写入后所述算术逻辑单元切换到Finish,此时所述算术逻辑单元完成一次完整的操作。
7.如权利要求1所述的粗粒度可重构阵列,其特征在于,所述全局指令寄存器具有非对称设计的两套接口,其中,第一总线接口,用于与所述中央处理器和所述内存进行数据交换;第二总线接口,用于与所述可重构阵列进行交互。
8.如权利要求1所述的粗粒度可重构阵列,其特征在于,所述第一总线接口为64位接口,所述第二总线接口为512位接口。
9.一种基于CGRA的存内处理系统,其特征在于,包括:中央处理器、主存、可重构阵列、全局指令寄存器;
所述中央处理器通过总线分别与所述主存、所述可重构阵列、所述全局指令寄存器连接;
所述主存分别与所述可重构阵列、所述全局指令寄存器连接;
所述可重构阵列与所述全局指令寄存器连接;
所述全局指令寄存器用于存储应用的配置信息,所述配置信息在系统运行前被从主存读入;
所述可重构阵列为如权利要求1-8任一所述的粗粒度可重构阵列。
10.如权利要求9所述的存内处理系统,其特征在于,采用3D堆叠模式,每一个主存块对应一个逻辑层,所述逻辑层和存储芯片之间采用TSV技术进行直连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011410089.0A CN112463719A (zh) | 2020-12-04 | 2020-12-04 | 一种基于粗粒度可重构阵列实现的存内计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011410089.0A CN112463719A (zh) | 2020-12-04 | 2020-12-04 | 一种基于粗粒度可重构阵列实现的存内计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463719A true CN112463719A (zh) | 2021-03-09 |
Family
ID=74805893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011410089.0A Pending CN112463719A (zh) | 2020-12-04 | 2020-12-04 | 一种基于粗粒度可重构阵列实现的存内计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463719A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732639A (zh) * | 2021-04-01 | 2021-04-30 | 南京大学 | 一种粗粒度动态可重构处理器及其数据处理方法 |
CN112995067A (zh) * | 2021-05-18 | 2021-06-18 | 中国人民解放军海军工程大学 | 一种粗粒度可重构数据处理架构及其数据处理方法 |
CN113254390A (zh) * | 2021-06-09 | 2021-08-13 | 千芯半导体科技(北京)有限公司 | 可重构计算结构、计算方法及硬件架构 |
CN113282536A (zh) * | 2021-07-26 | 2021-08-20 | 浙江毫微米科技有限公司 | 基于内存密集型算法的数据处理系统和计算机设备 |
CN113377293A (zh) * | 2021-07-08 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 用于在存储设备中进行计算的方法及装置、存储设备 |
CN113468102A (zh) * | 2021-07-22 | 2021-10-01 | 无锡沐创集成电路设计有限公司 | 混合粒度的计算电路模块和计算系统 |
CN114064560A (zh) * | 2021-11-17 | 2022-02-18 | 上海交通大学 | 一种面向粗粒度可重构阵列的可配置便笺式缓存设计方法 |
CN115617274A (zh) * | 2022-10-27 | 2023-01-17 | 亿铸科技(杭州)有限责任公司 | 一种具备坏块管理功能的存内计算装置及操作方法 |
WO2023030054A1 (zh) * | 2021-09-03 | 2023-03-09 | 西安紫光国芯半导体有限公司 | 一种计算器件、计算系统及计算方法 |
TWI795893B (zh) * | 2021-08-04 | 2023-03-11 | 高麗大學校產學協力團 | 利用矽電晶體的可重構邏輯記憶體件 |
CN117033298A (zh) * | 2022-10-21 | 2023-11-10 | 上海天数智芯半导体有限公司 | 一种瓦片处理器、soc芯片以及电子设备 |
CN117076384A (zh) * | 2023-10-12 | 2023-11-17 | 清华大学无锡应用技术研究院 | 计算装置、存内计算加速系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083519A1 (en) * | 2007-09-20 | 2009-03-26 | Core Logic, Inc. | Processing Element (PE) Structure Forming Floating Point-Reconfigurable Array (FP-RA) and FP-RA Control Circuit for Controlling the FP-RA |
CN102156666A (zh) * | 2011-04-20 | 2011-08-17 | 上海交通大学 | 用于粗粒度可重构阵列处理器资源调度的温度优化方法 |
CN103761072A (zh) * | 2014-02-10 | 2014-04-30 | 东南大学 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
CN105468568A (zh) * | 2015-11-13 | 2016-04-06 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN105867994A (zh) * | 2016-04-20 | 2016-08-17 | 上海交通大学 | 一种用于粗粒度可重构架构编译器的指令调度优化方法 |
US20170123795A1 (en) * | 2015-11-04 | 2017-05-04 | International Business Machines Corporation | Tightly coupled processor arrays using coarse grained reconfigurable architecture with iteration level commits |
-
2020
- 2020-12-04 CN CN202011410089.0A patent/CN112463719A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083519A1 (en) * | 2007-09-20 | 2009-03-26 | Core Logic, Inc. | Processing Element (PE) Structure Forming Floating Point-Reconfigurable Array (FP-RA) and FP-RA Control Circuit for Controlling the FP-RA |
CN102156666A (zh) * | 2011-04-20 | 2011-08-17 | 上海交通大学 | 用于粗粒度可重构阵列处理器资源调度的温度优化方法 |
CN103761072A (zh) * | 2014-02-10 | 2014-04-30 | 东南大学 | 一种粗粒度可重构层次化的阵列寄存器文件结构 |
US20170123795A1 (en) * | 2015-11-04 | 2017-05-04 | International Business Machines Corporation | Tightly coupled processor arrays using coarse grained reconfigurable architecture with iteration level commits |
CN105468568A (zh) * | 2015-11-13 | 2016-04-06 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN105867994A (zh) * | 2016-04-20 | 2016-08-17 | 上海交通大学 | 一种用于粗粒度可重构架构编译器的指令调度优化方法 |
Non-Patent Citations (1)
Title |
---|
李锦超等: "《基于相似性的粗粒度可重构指令压缩》", 《微电子学与计算机》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732639A (zh) * | 2021-04-01 | 2021-04-30 | 南京大学 | 一种粗粒度动态可重构处理器及其数据处理方法 |
CN112995067A (zh) * | 2021-05-18 | 2021-06-18 | 中国人民解放军海军工程大学 | 一种粗粒度可重构数据处理架构及其数据处理方法 |
CN113254390A (zh) * | 2021-06-09 | 2021-08-13 | 千芯半导体科技(北京)有限公司 | 可重构计算结构、计算方法及硬件架构 |
CN113254390B (zh) * | 2021-06-09 | 2021-10-29 | 千芯半导体科技(北京)有限公司 | 可重构计算结构、计算方法及硬件架构 |
CN113377293B (zh) * | 2021-07-08 | 2022-07-05 | 支付宝(杭州)信息技术有限公司 | 用于在存储设备中进行计算的方法及装置、存储设备 |
CN113377293A (zh) * | 2021-07-08 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 用于在存储设备中进行计算的方法及装置、存储设备 |
CN113468102A (zh) * | 2021-07-22 | 2021-10-01 | 无锡沐创集成电路设计有限公司 | 混合粒度的计算电路模块和计算系统 |
CN113282536A (zh) * | 2021-07-26 | 2021-08-20 | 浙江毫微米科技有限公司 | 基于内存密集型算法的数据处理系统和计算机设备 |
CN113282536B (zh) * | 2021-07-26 | 2021-11-30 | 浙江毫微米科技有限公司 | 基于内存密集型算法的数据处理系统和计算机设备 |
TWI795893B (zh) * | 2021-08-04 | 2023-03-11 | 高麗大學校產學協力團 | 利用矽電晶體的可重構邏輯記憶體件 |
WO2023030054A1 (zh) * | 2021-09-03 | 2023-03-09 | 西安紫光国芯半导体有限公司 | 一种计算器件、计算系统及计算方法 |
CN114064560A (zh) * | 2021-11-17 | 2022-02-18 | 上海交通大学 | 一种面向粗粒度可重构阵列的可配置便笺式缓存设计方法 |
CN117033298A (zh) * | 2022-10-21 | 2023-11-10 | 上海天数智芯半导体有限公司 | 一种瓦片处理器、soc芯片以及电子设备 |
CN115617274A (zh) * | 2022-10-27 | 2023-01-17 | 亿铸科技(杭州)有限责任公司 | 一种具备坏块管理功能的存内计算装置及操作方法 |
CN117076384A (zh) * | 2023-10-12 | 2023-11-17 | 清华大学无锡应用技术研究院 | 计算装置、存内计算加速系统 |
CN117076384B (zh) * | 2023-10-12 | 2024-02-02 | 清华大学无锡应用技术研究院 | 计算装置、存内计算加速系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112463719A (zh) | 一种基于粗粒度可重构阵列实现的存内计算方法 | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
Carvalho | The gap between processor and memory speeds | |
EP3637265B1 (en) | Memory device performing in-memory prefetching and system including the same | |
CN111433758B (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
US20210181974A1 (en) | Systems and methods for low-latency memory device | |
US10922258B2 (en) | Centralized-distributed mixed organization of shared memory for neural network processing | |
CN102253921A (zh) | 一种动态可重构处理器 | |
Torabzadehkashi et al. | Accelerating hpc applications using computational storage devices | |
Paul et al. | MAHA: An energy-efficient malleable hardware accelerator for data-intensive applications | |
Wang et al. | A star network approach in heterogeneous multiprocessors system on chip | |
CN114297097B (zh) | 一种众核可定义分布式共享存储结构 | |
CN115456155A (zh) | 一种多核存算处理器架构 | |
CN112486908A (zh) | 层次化的多rpu多pea的可重构处理器 | |
Paul et al. | Energy-efficient hardware acceleration through computing in the memory | |
Shang et al. | LACS: A high-computational-efficiency accelerator for CNNs | |
CN104035896A (zh) | 一种适用于2.5d多核系统的融合存储器的片外加速器 | |
Yousefzadeh et al. | Energy-efficient in-memory address calculation | |
US20070067380A2 (en) | Floating Point Intensive Reconfigurable Computing System for Iterative Applications | |
CN114398308A (zh) | 基于数据驱动粗粒度可重构阵列的近内存计算系统 | |
Liang et al. | Design of 16-bit fixed-point CNN coprocessor based on FPGA | |
Duan et al. | Research on Double-Layer Networks-on-Chip for Inter-Chiplet Data Switching on Active Interposers | |
Cao et al. | MZ Core: An Enhanced Matrix Acceleration Engine for HPC/AI Applications | |
CN112540950B (zh) | 基于配置信息共享存储的可重构处理器及其共享存储方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210309 |