CN112540793A - 支持多访存模式的可重构处理单元阵列及控制方法、装置 - Google Patents
支持多访存模式的可重构处理单元阵列及控制方法、装置 Download PDFInfo
- Publication number
- CN112540793A CN112540793A CN202011506034.XA CN202011506034A CN112540793A CN 112540793 A CN112540793 A CN 112540793A CN 202011506034 A CN202011506034 A CN 202011506034A CN 112540793 A CN112540793 A CN 112540793A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- access
- memory
- addressing
- pea
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 claims abstract description 114
- 238000003491 array Methods 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 235000010582 Pisum sativum Nutrition 0.000 description 46
- 229920000120 polyethyl acrylate Polymers 0.000 description 46
- 241000219843 Pisum Species 0.000 description 44
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 6
- 101100217475 Arabidopsis thaliana ACA1 gene Proteins 0.000 description 2
- 240000004713 Pisum sativum Species 0.000 description 2
- 101100533932 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SPA2 gene Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101100366043 Caenorhabditis elegans sms-2 gene Proteins 0.000 description 1
- 102100039578 ETS translocation variant 4 Human genes 0.000 description 1
- 101000813747 Homo sapiens ETS translocation variant 4 Proteins 0.000 description 1
- 101100463348 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PEA2 gene Proteins 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种支持多访存模式的可重构处理单元阵列及控制方法、装置,其中该方法包括:多个处理单元阵列PEA及对应的多个共享存储器SM;每个处理单元阵列PEA包括:多个处理单元PE;每个共享存储器SM被划分为多个存储体Bank;其中,多个处理单元阵列PEA和多个共享存储器间隔设置,使得每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank。本发明能够使得每个处理单元阵列PEA能够根据不同的访存运算配置信息,控制每个处理单元阵列PEA中各个处理单元PE采用不同的访存模式访问相应的共享存储器SM。
Description
技术领域
本发明涉及可重构计算领域,尤其涉及一种支持多访存模式的可重构处理单元阵列及控制方法、装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
以冯诺依曼架构为核心的计算机和微处理器在过去取得了巨大的成功,这是因为以指令流驱动为特征的处理器通常具有很强的灵活性。目前,指令流驱动的处理器通常包括通用处理器、可编程数字信号处理器、专用指令集处理器和嵌入式处理器。然而,也正是由于指令驱动的执行方式、有限的计算单元和存储带宽,使得此类处理器的性能和功耗很不理想,无法满足与日俱增的应用计算需求。例如,经典的无内部互锁流水级的微处理器(Microprocessor without interlocked piped stages,MIPS)中,完整执行一条指令就包括取指、译码、寄存器访问、执行和数据回写这五个步骤。其中,只有“执行”这一步是真正所需要的操作。
可重构计算的概念在上世纪60年代被提出,但是受限于当时的集成电路工艺水平,直到上世纪90年代可重构计算才重新得到重视,成为学术界和产业界的热点。可重构计算的计算方式包括两类突出特点:一是制造后芯片的定制能力,即硅实现后计算功能仍可按需改变,区别于传统的集成电路;二是能实现很大程度上的算法到数据通路上的空间映射,区别于通用处理器的时域映射。基于粗粒度可重构架构(Coarse-GrainedReconfigurable Architecture,CGRA)的处理器应运而生。粒度是指可重构处理器数据通路中运算单元的数据位宽度,一般将大于等于4bit的粒度称为粗粒度。一般情况下,粒度越大的可重构处理器所需的配置信息越少,重构数据通路的速度也就越快,但是其灵活性也就越低。现如今,人工智能的应用为处理器带来了新的挑战,它要求处理器的算力更强,面对不同人工智能算法要具有更优化的计算策略。CGRA本身的架构特点使其能够较好地满足这些应用需求,因为它兼具通用处理器的灵活性和专用集成电路的高性能。
寻址方式是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。经典的精简或复杂指令集的微处理器通常包含了多种寻址访存方式。例如,MIPS中就有五种寻址方式:①立即数寻址,操作数就是位于指令本身中的常数;②寄存器寻址,操作数是寄存器;③基址寻址或偏移寻址,操作数在内存中,其地址是指令中基址寄存器和常数的和;④PC相对寻址,地址是PC和指令中常数的和;⑤伪直接寻址,跳转地址由指令中26位字段和PC高位相连而成。在CGRA处理器中,为了适应其异构化的多处理单元的特性,需要增加新的访存和寻址模式。
发明内容
本发明实施例中提供了一种支持多访存模式的可重构处理单元阵列,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,该可重构处理单元阵列包括:多个处理单元阵列PEA及对应的多个共享存储器SM;每个处理单元阵列PEA包括:多个处理单元PE;每个共享存储器SM被划分为多个存储体Bank;其中,多个处理单元阵列PEA和多个共享存储器间隔设置,使得每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank。
本发明实施例中提供了一种访存控制方法,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,该访存控制方法包括:获取访存运算型配置信息,访存运算型配置信息用于确定每个处理单元阵列PEA中的每个处理单元PE访问相应共享存储器SM所采用的寻址访存方式;根据访存运算型配置信息,控制每个处理单元PE访问相应的共享存储器SM。
本发明实施例中还提供了一种访存控制装置,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,该访存控制装置包括:访问配置模块,用于获取访存运算型配置信息,访存运算型配置信息用于确定每个处理单元阵列PEA中的每个处理单元PE访问相应共享存储器SM所采用的寻址访存方式;访问控制模块,用于根据访存运算型配置信息,控制每个处理单元PE访问相应的共享存储器SM。
本发明实施例中还提供了一种计算机设备,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述访存控制方法。
本发明实施例中还提供了一种计算机可读存储介质,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,该计算机可读存储介质存储有执行上述访存控制方法的计算机程序。
本发明实施例中提供了一种支持多访存模式的可重构处理单元阵列,将多个处理单元阵列PEA及对应的多个共享存储器SM间隔设置,使得每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank。
由于本发明实施例中提供的可重构处理单元阵列,每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank,使得每个处理单元阵列PEA能够根据不同的访存运算配置信息,控制每个处理单元阵列PEA中各个处理单元PE采用不同的访存模式访问相应的共享存储器SM。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种处理单元阵列PEA结构示意图;
图2为本发明实施例中提供的一种处理单元PE结构示意图;
图3为本发明实施例中提供的一种支持多访存模式的可重构处理单元阵列结构示意图;
图4为本发明实施例中提供的一种访存控制方法流程图;
图5为本发明实施例中提供的一种访存控制装置示意图;
图6为本发明实施例中提供的一种计算机设备示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在CGRA中,参与计算的核心单元是处理单元阵列PEA和处理单元PE,下面首先介绍CGRA中的处理单元阵列(即PE Array,简称PEA)和处理单元PE。
图1为本发明实施例中提供的一种处理单元阵列PEA结构示意图,如图1所示,每个处理单元阵列PEA内部集成了一个8×8PEA、PE的全局寄存器Global Reg、协处理器接口Coprocessor Interface、数据控制器Data Control、共享存储器Shared Memory、PEA控制器PEA Control和配置控制器Context Control。
图2本发明实施例中提供的一种处理单元PE结构示意图,如图2所示,PE内部的核心部分有:PE控制器PE Control、配置存储器CM、局部寄存器LR、PE路由器Router、PE执行单元(ALU、MUL和LSU)和Debug模块Deb。
由图1所示的处理单元阵列PEA可以看到,每个处理单元阵列PEA上都有存储数据的共享存储器(Shared Memory,SM),为内部的处理单元PE提供数据。
为了支持每个处理单元阵列PEA中的处理单元PE能够采用多种访存模式访问共享存储器(Shared Memory,SM),本发明实施例中提供了一种支持多访存模式的可重构处理单元阵列,图3为本发明实施例中提供的一种支持多访存模式的可重构处理单元阵列结构示意图,如图3所示,包括:多个处理单元阵列PEA(图3示出了四个:PEA1、PEA2、PEA3和PEA4)及对应的多个共享存储器SM(图3示出了四个:SM1、SM 2、SM 3和SM 4);每个处理单元阵列PEA包括:多个处理单元PE;每个共享存储器SM被划分为多个存储体Bank;其中,多个处理单元阵列PEA和多个共享存储器间隔设置,使得每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank。
由于每个处理单元阵列PEA中的处理单元PE能够访问相邻的两个共享存储器,因而,共享存储器SM中存储体Bank的数量可以是处理单元阵列PEA中处理单元PE数量的两倍。例如,当可重构处理单元阵列包括4个处理单元阵列PEA且每个处理单元阵列PEA包括8个处理单元PE的情况下,每个共享存储器SM被划分为16个存储体Bank。如图3所示的PEA1,除了自身的SM1可以访问之外,还可以访问相邻的SM2。由于SM有16个Bank,每个Bank均为256×32,即1KB大小,因此这8个PE中每个PE可访问的空间共32KB大小。
如图3所示,在CGRA中,通常有多个PEA,PEA上的PE访问PEA上的SM时会有着不同的访问方式。
在具体实施时,本发明实施例中提供的可重构处理单元阵列中,每个处理单元PE可采用如下任意一种寻址访存方式访问共享存储器SM:立即数寻址访存方式、变址型寻址访存方式和寄存器型寻址访存方式。其中,立即数寻址访存,也就是配置中包含了立即数的地址,可以直接使用;变址型寻址访存,即基于PE运算结果进行访存;寄存器型寻址访存,即地址来源于某些寄存器。
可选地,上述寄存器型寻址访存方式包括:基于局部寄存器的寻址访存方式和基于全局寄存器的寻址访存方式。上述变址型寻址访存方式包括:基于本处理单元PE计算结果实现的变址型寻址访存方式和基于相连的其他处理单元PE计算结果的变址型寻址访存方式。
由于本发明实施例中提供的可重构处理单元阵列,每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank,使得每个处理单元阵列PEA能够根据不同的访存运算配置信息,控制每个处理单元阵列PEA中各个处理单元PE采用不同的访存模式访问相应的共享存储器SM。
可选地,访存运算型配置信息中包含如下字段的字段信息:AddrMem字段、Offset字段、IncreaseFlag字段;其中,AddrMem字段表示访存运算基址;Offset字段表示访存运算配置在循环迭代时的地址偏移量;IncreaseFlag字段表示访存地址的自增或自减的标志位。
下面,针对访存运算型配置信息以及访存运算型配置信息中的AddrMem字段、Offset字段、IncreaseFlag字段进行具体说明:
CGRA中的处理单元PE的配置信息全部采用64-bit的配置信息格式,目前用到的主要包含三大类:顶层型配置信息、ALU运算型配置信息(包含MUL/MAC类运算)和访存运算型配置信息。下面主要介绍访存运算型配置信息(LSU-Config),它的格式和每个字段的含义如下表1所示。
表1访存运算型配置信息
在本发明实施例中,PE访问SM地址的方式,主要支持3种类型:立即数寻址访存、变址型寻址访存(即基于PE运算结果进行访存)以及寄存器型寻址访存。其中寄存器型寻址访问根据不同寄存器来源又可以分为2种:基于局部寄存器和基于全局寄存器;基于变址型寻址访存也有2种:基于本PE计算结果和基于相连的其他PE计算结果。注意,由于关键路径延时的影响,所有计算结果均需来自流水线寄存器的结果输出。
另外,访存地址自增标志位为高时,可以通过Offset偏移量,根据迭代次数进行访存地址自增,从而实现访存配置信息的迭代执行和连续访存。下面,对LSU访存运算类型的配置信息的部分细节进行更加详细的介绍和说明。
1)AddrMem,即访存运算基址:
①AddrMem[7:5]=000,数据来源于本PE的本地寄存器堆Local RegisterFile(8个),AddrMem[4:0]表示寄存器Index;目前实现支持访问12个局部寄存器,只能访问0-7这低8个LR数据寄存器。
②AddrMem[7:5]=001,数据来源于本PEA阵列的全局寄存器堆GlobalRegisterFile,AddrMem[4:0]表示寄存器Index;目前实现支持最大20个全局寄存器,只能访问0-15这16个低GR寄存器。
③AddrMem[7:5]=010,数据来源于其他相连的PE的计算结果Out1。AddrMem[4]=0,表示正常流水,没有数据冒险产生,数据来自其他PE的输出寄存器Out1;AddrMem[4]=1,表示流水产生数据冒险产生,数据来自其他PE的ALU运算的输出,尚未写入Out1。AddrMem[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源;本寄存器型ALU运算PE目前为8个:分别为上、下、左、右、上端、下端、左端、右端。
④AddrMem[7:5]=011,表示把本PE的计算结果作为地址,间接寻址访问SharedMemory。AddrMem[4]=0,表示正常流水,没有数据冒险产生,地址来自于本PE的ALU计算结果的输出寄存器Out1;AddrMem[4]=1,表示流水产生数据冒险产生,地址来自于其他相连PE的ALU计算结果输出,但尚未写入Out1。
⑤AddrMem[7:5]=100,表示立即数直接寻址方式访问Shared Memory。AddrMem[4]表示访问不同阵列的Shared Memory,支持访问2个不同阵列的Shared Memory,PEA和SM的环形结构已经在5.1节中说明了:AddrMem[4]=0,表示访问本PEA的Shared Memory;AddrMem[4]=1,表示访问其他相邻PEA的Shared Memory。AddrMem[3:0]和DirectAddrMem,共12bit地址,最大表示单个Shared Memory能访问的存储空间大小,最大支持16KB。
2)Offset和IncreaseFlag:
Offset表示访存运算配置在循环迭代时的地址偏移量,加上其中保留的[32]字段,扩展给Offset字段,使其成为5-bit。
IncreaseFlag是访存地址的自增或者自减的标志位,由原来的1-bit扩展为2-bit,新增了地址的自减功能。该字段表示访存地址自动增加或减少Offset,否则访存地址由配置中的输入地址决定(AddrMem+DirectAddrMem),具体含义如下:
①IncreaseFlag=00,访存地址不自增也不自减,由配置中的输入地址决定(AddrMem+DirectAddrMem);
②IncreaseFlag=01,访存地址自增的标志位,表示访存地址自动增加Offset,否则访存地址由配置中的输入地址决定(AddrMem+DirectAddrMem);
③IncreaseFlag=10,访存地址自减的标志位,表示访存地址自动减少Offset,否则访存地址由配置中的输入地址决定(AddrMem+DirectAddrMem);
④IncreaseFlag=11,保留未用。
由上可知,本发明实施例中提供的可重构处理单元阵列,可根据访存运算型配置信息中的AddrMem字段和Offset以及IncreaseFlag字段,控制PE访问SM的方式。
当AddrMem[7:5]=100时,采用立即数寻址方式;
当AddrMem[7:5]=000时,采用变址型寻址方式,且地址数据来源于本PE的本地寄存器堆;
当AddrMem[7:5]=001时,采用变址型寻址方式,且地址数据来源于本PEA阵列的全局寄存器堆;
当AddrMem[7:5]=010时,地址数据来源于其他相连的PE的计算结果;
当AddrMem[7:5]=011时,将本PE的计算结果作为地址,间接寻址访问SM;
最后,通过自增或自减标志位IncreaseFlag和地址偏移量Offset字段,根据迭代次数进行访存地址自增,从而实现访存配置信息的迭代执行和连续访存。
基于同一发明构思,本发明实施例中还提供了一种访存控制方法,用于控制上述任一项的支持多访存模式的可重构处理单元阵列,如下面的实施例所述。由于该访存控制方法解决问题的原理与支持多访存模式的可重构处理单元阵列相似,因此该访存控制方法的实施可以参见上述支持多访存模式的可重构处理单元阵列的实施,重复之处不再赘述。
图4为本发明实施例中提供的一种访存控制方法流程图,如图4所示,该方法包括如下步骤:
S401,获取访存运算型配置信息,访存运算型配置信息用于确定每个处理单元阵列PEA中的每个处理单元PE访问相应共享存储器SM所采用的寻址访存方式;
S402,根据访存运算型配置信息,控制每个处理单元PE访问相应的共享存储器SM。
可选地,上述S401获取的访存运算型配置信息中可包含如下字段的字段信息:AddrMem字段、Offset字段、IncreaseFlag字段;其中,AddrMem字段表示访存运算基址;Offset字段表示访存运算配置在循环迭代时的地址偏移量;IncreaseFlag字段表示访存地址的自增或自减的标志位。
基于同一发明构思,本发明实施例中还提供了一种访存控制装置,用于控制上述任一项的支持多访存模式的可重构处理单元阵列,如下面的实施例所述。由于该访存控制装置解决问题的原理与支持多访存模式的可重构处理单元阵列相似,因此该访存控制装置的实施可以参见上述支持多访存模式的可重构处理单元阵列的实施,重复之处不再赘述。
图5为本发明实施例中提供的一种访存控制装置示意图,如图5所示,该访存控制装置包括:访问配置模块51和访问控制模块52。
其中,访问配置模块51,用于获取访存运算型配置信息,访存运算型配置信息用于确定每个处理单元阵列PEA中的每个处理单元PE访问相应共享存储器SM所采用的寻址访存方式;访问控制模块52,用于根据访存运算型配置信息,控制每个处理单元PE访问相应的共享存储器SM。
可选地,上述访存运算型配置信息中包含如下字段的字段信息:AddrMem字段、Offset字段、IncreaseFlag字段;其中,AddrMem字段表示访存运算基址;Offset字段表示访存运算配置在循环迭代时的地址偏移量;IncreaseFlag字段表示访存地址的自增或自减的标志位。
基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,图6为本发明实施例中提供的一种计算机设备示意图,如图6所示,该计算机设备60包括存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,处理器602执行计算机程序时实现上述访存控制方法。
基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有的寻址访存模式不适用于可重构处理器阵列的技术问题,该计算机可读存储介质存储有执行上述访存控制方法的计算机程序。
综上所述,本发明实施例中提供了一种支持多访存模式的可重构处理单元阵列及其控制方法、装置、计算机设备、计算机可读存储介质,将多个处理单元阵列PEA及对应的多个共享存储器SM间隔设置,使得每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank。本发明实施例可应用但不限于可重构计算、大规模集成电路(VLSI)和计算机体系结构等领域。
由于本发明实施例中提供的可重构处理单元阵列,每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank,使得每个处理单元阵列PEA能够根据不同的访存运算配置信息,控制每个处理单元阵列PEA中各个处理单元PE采用不同的访存模式访问相应的共享存储器SM。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种支持多访存模式的可重构处理单元阵列,其特征在于,包括:多个处理单元阵列PEA及对应的多个共享存储器SM;每个处理单元阵列PEA包括:多个处理单元PE;每个共享存储器SM被划分为多个存储体Bank;
其中,所述多个处理单元阵列PEA和所述多个共享存储器间隔设置,使得每个处理单元阵列PEA中的每个处理单元PE能够访问相邻两个共享存储器SM的存储体Bank。
2.如权利要求1所述的可重构处理单元阵列,其特征在于,每个处理单元PE采用如下任意一种寻址访存方式访问共享存储器SM:立即数寻址访存方式、变址型寻址访存方式和寄存器型寻址访存方式。
3.如权利要求2所述的可重构处理单元阵列,其特征在于,所述寄存器型寻址访存方式包括:基于局部寄存器的寻址访存方式和基于全局寄存器的寻址访存方式。
4.如权利要求2所述的可重构处理单元阵列,其特征在于,所述变址型寻址访存方式包括:基于本处理单元PE计算结果实现的变址型寻址访存方式和基于相连的其他处理单元PE计算结果的变址型寻址访存方式。
5.如权利要求1至4任一项所述的可重构处理单元阵列,其特征在于,所述可重构处理单元阵列包括:4个处理单元阵列PEA;每个处理单元阵列PEA包括:8个处理单元PE;每个共享存储器SM被划分为16个存储体Bank。
6.一种访存控制方法,其特征在于,用于控制权利要求1至5任一项所述的可重构处理单元阵列,包括:
获取访存运算型配置信息,所述访存运算型配置信息用于确定每个处理单元阵列PEA中的每个处理单元PE访问相应共享存储器SM所采用的寻址访存方式;
根据访存运算型配置信息,控制每个处理单元PE访问相应的共享存储器SM。
7.如权利要求6所述的访存控制方法,其特征在于,所述访存运算型配置信息中包含如下字段的字段信息:AddrMem字段、Offset字段、IncreaseFlag字段;其中,AddrMem字段表示访存运算基址;Offset字段表示访存运算配置在循环迭代时的地址偏移量;IncreaseFlag字段表示访存地址的自增或自减的标志位。
8.一种访存控制装置,其特征在于,用于控制权利要求1至5任一项所述的可重构处理单元阵列,包括:
访问配置模块,用于获取访存运算型配置信息,所述访存运算型配置信息用于确定每个处理单元阵列PEA中的每个处理单元PE访问相应共享存储器SM所采用的寻址访存方式;
访问控制模块,用于根据访存运算型配置信息,控制每个处理单元PE访问相应的共享存储器SM。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7所述访存控制方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求7所述访存控制方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011506034.XA CN112540793A (zh) | 2020-12-18 | 2020-12-18 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011506034.XA CN112540793A (zh) | 2020-12-18 | 2020-12-18 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112540793A true CN112540793A (zh) | 2021-03-23 |
Family
ID=75019053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011506034.XA Pending CN112540793A (zh) | 2020-12-18 | 2020-12-18 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540793A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328821A (zh) * | 2022-10-18 | 2022-11-11 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
CN117896067A (zh) * | 2024-03-13 | 2024-04-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1061482A (zh) * | 1990-11-13 | 1992-05-27 | 国际商业机器公司 | 并行相联处理器系统 |
CN1504898A (zh) * | 2002-11-29 | 2004-06-16 | 上海奇码数字信息有限公司 | 内部数据存储结构、寻址方法以及数字信号处理器 |
CN1666174A (zh) * | 2002-05-24 | 2005-09-07 | 皇家飞利浦电子股份有限公司 | 处理器的地址生成单元 |
US20090204754A1 (en) * | 2006-07-11 | 2009-08-13 | Freescale Semiconductor, Inc. | Microprocessor and method for register addressing therein |
CN102221987A (zh) * | 2011-05-11 | 2011-10-19 | 西安电子科技大学 | 基于嵌入式专用指令集处理器的指令集编码方法 |
CN103970508A (zh) * | 2014-06-04 | 2014-08-06 | 上海航天电子通讯设备研究所 | 一种精简的微处理器ip核 |
CN105468568A (zh) * | 2015-11-13 | 2016-04-06 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
-
2020
- 2020-12-18 CN CN202011506034.XA patent/CN112540793A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1061482A (zh) * | 1990-11-13 | 1992-05-27 | 国际商业机器公司 | 并行相联处理器系统 |
CN1666174A (zh) * | 2002-05-24 | 2005-09-07 | 皇家飞利浦电子股份有限公司 | 处理器的地址生成单元 |
CN1504898A (zh) * | 2002-11-29 | 2004-06-16 | 上海奇码数字信息有限公司 | 内部数据存储结构、寻址方法以及数字信号处理器 |
US20090204754A1 (en) * | 2006-07-11 | 2009-08-13 | Freescale Semiconductor, Inc. | Microprocessor and method for register addressing therein |
CN102221987A (zh) * | 2011-05-11 | 2011-10-19 | 西安电子科技大学 | 基于嵌入式专用指令集处理器的指令集编码方法 |
CN103970508A (zh) * | 2014-06-04 | 2014-08-06 | 上海航天电子通讯设备研究所 | 一种精简的微处理器ip核 |
CN105468568A (zh) * | 2015-11-13 | 2016-04-06 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328821A (zh) * | 2022-10-18 | 2022-11-11 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
CN115328821B (zh) * | 2022-10-18 | 2022-12-23 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
CN117896067A (zh) * | 2024-03-13 | 2024-04-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11436143B2 (en) | Unified memory organization for neural network processors | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
US8200940B1 (en) | Reduction operations in a synchronous parallel thread processing system with disabled execution threads | |
US8832413B2 (en) | Processing system with interspersed processors and communication elements having improved wormhole routing | |
US20230169319A1 (en) | Spatially sparse neural network accelerator for multi-dimension visual analytics | |
EP2372530A1 (en) | Data processing method and device | |
US7725518B1 (en) | Work-efficient parallel prefix sum algorithm for graphics processing units | |
US10007527B2 (en) | Uniform load processing for parallel thread sub-sets | |
CN110046704B (zh) | 基于数据流的深度网络加速方法、装置、设备及存储介质 | |
JP4934356B2 (ja) | 映像処理エンジンおよびそれを含む映像処理システム | |
US7430631B2 (en) | Access to a wide memory | |
US20090240895A1 (en) | Systems and methods for coalescing memory accesses of parallel threads | |
US8392669B1 (en) | Systems and methods for coalescing memory accesses of parallel threads | |
US7877573B1 (en) | Work-efficient parallel prefix sum algorithm for graphics processing units | |
CN1519704A (zh) | 包括纯量算术逻辑单元的单指令多数据处理机 | |
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
CN112732639B (zh) | 一种粗粒度动态可重构处理器及其数据处理方法 | |
CN112540793A (zh) | 支持多访存模式的可重构处理单元阵列及控制方法、装置 | |
CN112486908A (zh) | 层次化的多rpu多pea的可重构处理器 | |
CN112486903A (zh) | 可重构处理单元、可重构处理单元阵列及其运行方法 | |
CN112395548A (zh) | 通过指令用于动态编程的处理器及配置该处理器的方法 | |
Shang et al. | LACS: A high-computational-efficiency accelerator for CNNs | |
CN112486904B (zh) | 可重构处理单元阵列的寄存器堆设计方法及装置 | |
CN115858439A (zh) | 三维堆叠式可编程逻辑架构和处理器设计体系结构 | |
US9411724B2 (en) | Method and apparatus for a partial-address select-signal generator with address shift |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210323 |
|
RJ01 | Rejection of invention patent application after publication |