CN112486903A - 可重构处理单元、可重构处理单元阵列及其运行方法 - Google Patents
可重构处理单元、可重构处理单元阵列及其运行方法 Download PDFInfo
- Publication number
- CN112486903A CN112486903A CN202011503241.XA CN202011503241A CN112486903A CN 112486903 A CN112486903 A CN 112486903A CN 202011503241 A CN202011503241 A CN 202011503241A CN 112486903 A CN112486903 A CN 112486903A
- Authority
- CN
- China
- Prior art keywords
- reconfigurable processing
- processing unit
- link
- reconfigurable
- processing units
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 378
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000015654 memory Effects 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 32
- 230000002093 peripheral effect Effects 0.000 claims description 23
- 238000003491 array Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000009987 spinning Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010977 unit operation Methods 0.000 description 2
- 235000010582 Pisum sativum Nutrition 0.000 description 1
- 240000004713 Pisum sativum Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 229920000120 polyethyl acrylate Polymers 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 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
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
本发明实施例提供了一种可重构处理单元、可重构处理单元阵列及其运行方法,其中,该方法包括:在取配置的流水环节中,读取该可重构处理单元的配置信息;在译码和取数的流水环节中,对配置信息进行译码并根据所述配置信息读取数据;在执行的流水环节中,根据配置信息对读取的数据进行运算操作或访存操作;在写回的流水环节中,根据配置信息对数据进行存储器的写回操作,各流水环节并行运行。该方案可重构处理单元实现共四级流水环节,各流水环节并行运行,在执行的流水环节中实现了运算操作功能和访存操作功能并存且运算操作和访存操作分离式运行,使得实现了执行的流水环节更细的流水设计,有利于提高可重构处理单元阵列的计算能力和计算性能。
Description
技术领域
本发明涉及处理器技术领域,特别涉及一种可重构处理单元、可重构处理单元阵列及其运行方法。
背景技术
粗粒度可重构处理器架构以其低能耗、高性能和高能效和灵活动态可重构的特性,正得到越来越多的关注。粗粒度可重构计算架构是一种综合了通用处理器的灵活性和专用集成电路的高性能计算架构,非常适用于对于数据和计算密集型等并行度非常高的应用的处理,比如,人工智能、数字信号处理、视频图像处理、科学计算和通信加密等领域的应用。同时,随着人工智能、神经网络、大数据、云计算、5G通信等应用的迅速兴起,其带来的更加密集的数据和更加密集的运算,这就提出了对芯片计算能力的挑战。
可重构处理单元自身的性能特点使其更适合被分配一个任务环节而不是独自承担整个任务链完成各种任务功能,并且可重构处理单元阵列内部的各个可重构处理单元之间的互联,为流水化执行任务提供了可能。那么,如果我们能够让可重构处理单元分别执行不同流水环节的任务,数据在各个可重构处理单元的流通形成多级流水的形式,支持多个流水线环节的并行执行,就能在有限的硬件资源下,将计算能力和计算性能近乎成倍提高。现有的可重构处理单元虽然可分别执行不同流水环节的任务,如,取配置、译码、取数、执行(分为运算、访存两种执行操作)和写回等流水环节,但是,每个可重构处理单元在执行流水环节时只能执行运算操作或访存操作,即只具备运算操作或访存操作一种功能,使得每个可重构处理单元只具备单一的执行功能,这样的可重构处理单元不利于提高可重构处理单元阵列的计算能力和计算性能。
发明内容
本发明实施例提供了一种可重构处理单元的运行方法,以解决现有技术中可重构处理单元不利于提高可重构处理单元阵列的计算能力和计算性能的技术问题。该方法包括:
在取配置的流水环节中,读取该可重构处理单元的配置信息;
在译码和取数的流水环节中,对所述配置信息进行译码并根据所述配置信息读取数据;
在执行的流水环节中,根据所述配置信息对读取的数据进行运算操作或访存操作,其中,所述执行的流水环节同时具备运算操作和访存操作的功能;
在写回的流水环节中,根据所述配置信息对数据进行存储器的写回操作,其中,所述取配置的流水环节、所述译码和取数的流水环节、所述执行的流水环节以及所述写回的流水环节中,各流水环节并行运行。
本发明实施例还提供了一种可重构处理单元阵列的运行方法,以解决现有技术中可重构处理单元不利于提高可重构处理单元阵列的计算能力和计算性能的技术问题。该方法包括:
组成可重构处理单元阵列的每个可重构处理单元的运行包括上述任意所述的可重构处理单元的运行方法,配置所述可重构处理单元阵列中四周边缘上的可重构处理单元在所述执行的流水环节中执行访存操作,配置所述可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元在所述执行的流水环节中执行运算操作;
针对所述可重构处理单元阵列中的每个可重构处理单元,以该可重构处理单元为中心,配置该可重构处理单元与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置配置该可重构处理单元还与所在行的和/或所在列的可重构处理单元进行数据传输。
本发明实施例还提供了一种可重构处理单元,以解决现有技术中可重构处理单元不利于提高可重构处理单元阵列的计算能力和计算性能的技术问题。该可重构处理单元包括:
取配置模块,用于在取配置的流水环节中,读取该可重构处理单元的配置信息;
译码和取数模块,用于在译码和取数的流水环节中,对所述配置信息进行译码并根据所述配置信息读取数据;
执行模块,用于在执行的流水环节中,根据所述配置信息对读取的数据进行运算操作或访存操作,其中,所述执行的流水环节同时具备运算操作和访存操作的功能;
写回模块,用于在写回的流水环节中,根据所述配置信息对数据进行存储器的写回操作,其中,所述取配置的流水环节、所述译码和取数的流水环节、所述执行的流水环节以及所述写回的流水环节中,各流水环节并行运行。
本发明实施例还提供了一种可重构处理单元阵列,以解决现有技术中可重构处理单元不利于提高可重构处理单元阵列的计算能力和计算性能的技术问题。该可重构处理单元阵列包括:
可重构处理单元阵列包括上述任意所述的可重构处理单元,所述可重构处理单元阵列中四周边缘上的可重构处理单元的所述执行模块被配置为在所述执行的流水环节中执行访存操作,所述可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元的所述执行模块被配置为在所述执行的流水环节中执行运算操作;
针对所述可重构处理单元阵列中的每个可重构处理单元,以该可重构处理单元为中心,该可重构处理单元被配置为与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置该可重构处理单元还被配置为与所在行的和/或所在列的可重构处理单元进行数据传输。
在本发明实施例中,提出了可重构处理单元的运行方法,该可重构处理单元的运行方法包括取配置的流水环节、译码和取数的流水环节、执行的流水环节以及写回的流水环节,共四级流水环节,各流水环节并行运行,其中,执行的流水环节同时具备运算操作和访存操作的功能,即将运算和访存合并为一级流水,各个可重构处理单元在运行时,可以通过配置信息灵活地配置各个可重构处理单元在执行环节进行运算操作或访存操作,在执行的流水环节中实现了运算操作功能和访存操作功能并存且运算操作和访存操作分离式运行,使得实现了执行的流水环节更细的流水设计,有利于提高可重构处理单元应用的灵活性,应用该可重构处理单元组成可重构处理单元阵列,有利于提高可重构处理单元阵列内可重构处理单元之间数据传输的灵活性,进而有利于提高可重构处理单元阵列的计算能力和计算性能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种可重构处理单元的运行方法的流程图;
图2是本发明实施例提供的一种粗粒度可重构处理单元的结构原理图;
图3是本发明实施例提供的一种单周期下可重构处理单元的流水示意图;
图4是本发明实施例提供的一种单周期下可重构处理单元的流水结构示意图;
图5是本发明实施例提供的一种可重构处理单元的运行方法的流程图;
图6是本发明实施例提供的一种可重构处理单元阵列的布局和互联的示意图;
图7是本发明实施例提供的一种多次迭代执行下PE单元的流水线出现“停顿”问题的示意图;
图8是本发明实施例提供的一种多次迭代执行下解决PE单元的流水线“停顿”问题的示意图;
图9是本发明实施例提供的一种多次迭代执行下解决PE单元的流水线“停顿”问题的示例图;
图10是本发明实施例提供的一种可重构处理单元的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种可重构处理单元的运行方法,如图1所示,该方法包括:
步骤102:在取配置的流水环节中,读取该可重构处理单元的配置信息;
步骤104:在译码和取数的流水环节中,对所述配置信息进行译码并根据所述配置信息读取数据;
步骤106:在执行的流水环节中,根据所述配置信息对读取的数据进行运算操作或访存操作,其中,所述执行的流水环节同时具备运算操作和访存操作的功能;
步骤108:在写回的流水环节中,根据所述配置信息对数据进行存储器的写回操作,其中,所述取配置的流水环节、所述译码和取数的流水环节、所述执行的流水环节以及所述写回的流水环节中,各流水环节并行运行。
由图1所示的流程可知,在本发明实施例中,提出了可重构处理单元的运行方法,该可重构处理单元的运行方法包括取配置的流水环节、译码和取数的流水环节、执行的流水环节以及写回的流水环节,共四级流水环节,各流水环节并行运行,其中,执行的流水环节同时具备运算操作和访存操作的功能,即将运算和访存合并为一级流水,各个可重构处理单元在运行时,可以通过配置信息灵活地配置各个可重构处理单元在执行环节进行运算操作或访存操作,在执行的流水环节中实现了运算操作功能和访存操作功能并存且运算操作和访存操作分离式运行,使得实现了执行的流水环节更细的流水设计,有利于提高可重构处理单元应用的灵活性,应用该可重构处理单元组成可重构处理单元阵列,有利于提高可重构处理单元阵列内可重构处理单元之间数据传输的灵活性,进而有利于提高可重构处理单元阵列的计算能力和计算性能。
具体实施时,粗粒度可重构阵列(Coarse Grained Reconfigurable Array,简称为CGRA)由上述可重构处理单元阵列((Processing Elements Array,简称为PEA)组成,可重构处理单元阵列由可重构处理单元(PE)组成。上述可重构处理单元可以采用现有可重构处理单元的结构,如图2所示,可重构处理单元作为粗粒度可重构阵列的可重构处理单元(PE),PE内部的核心功能部分主要是:PE控制器Ctrl、配置存储CM、局部寄存器堆LR、PE路由器Router、PE的执行单元(该执行单元主要由3部分决定:LSU(load and store unit,访存模块)、ALU(arithmetic and logic unit,算术逻辑元)和MUL(multiplier乘法模块)三个模块)。在流水线中的“执行”阶段包括了运算和访存类型的操作,实现了更细的流水,不同的运算占用不同的周期数来完成:
1)1个周期的ALU运算,不包括乘法类操作(如乘法Mul和乘累加Mac)和除法类运算(如除法和取模运算)。该ALU总共能支持20种单周期运算,如下表1所示。
2)2个周期运算的Store访存运算。
3)3个周期的MUL类运算。
4)4个周期的MAC运算。
5)8个周期的Load访存运算。
其中,Store运算实际上要4个时钟周期才能写进SRAM中,但是实际我们处理完Store运算的写地址和写数据后(此时只需要2个周期),可以继续操作其他运算,不影响Store的写操作,所以可以视为2个周期运算。
表1
具体实施时,为了实现可重构处理单元的四级流水,如图3所示,通过流水线寄存器(PipeReg)将流水线切割成四个流水环节,分别为取配置(Config)、译码+取数(Decode)、执行(Excute)、写回(Write),各流水环节在执行完本流水环节的操作后将相关数据存入寄存器中,供下一个流水环节来读取相关数据。如图3所示,具体处理过程如下:在取配置阶段,从配置存储器(Context SRAM)中取配置,并将配置存入段间寄存器(PipeReg),在下一个时钟到来时,将段间寄存器(PipeReg)中的配置存入译码器中,根据译码所得的配置信息,根据译码所得的可重构处理单元PE的编号,将不同的配置信息写入路由Router、全局寄存器GR、局部寄存器LR或者直接写入段间寄存器PipeReg中,在执行阶段时,根据段间寄存器中的配置信息,来决定该PE所执行的操作是访存操作(图3中的Load/Store)还是Mul/Mac操作或者是ALU操作,并在操作完成之后将操作结果写入段间寄存器PipeReg,在写回阶段,将结果写入局部寄存器LR或者全局寄存器GR当中。需要注意的是图3中的时钟信号仅作为示意,实际最终实现的拍数可以不同于图3中所示。
具体实施时,可重构处理单元中的四级流水环节并行运行,具体的,取配置、译码+取数、写回三个流水阶段每次执行可以各需要一个时钟周期,执行流水环节所占的时钟周期数与其进行的运算类型有关。
具体实施时,上述执行的流水阶段将运算操作和访存操作分离执行,把访存操作视为特殊的“访存类型运算”。
具体实施时,可重构处理单元(PE)在单周期运算的完美流水下的各级流水线的执行状态如图4所示,期间流水线不进行停顿,此时的PE的运算配置地址连续加1,可以实现类型通用处理器GPP的时域映射(Temporal Mapping)的动态执行方式。图4中C、D、E/L、W分别代表四级流水中的“取配置”、“译码+取数”、“执行(包括了运算和访存)”、“写回”四个流水阶段。如图4所示,在r2时钟周期内“取配置”流水环节执行第一次取配置,记为C1;在r2时钟周期内,“译码+取数”流水环节执行第一次“译码+取数”,记为D1,并且“取配置”流水环节执行第二次取配置,记为C2;在r3时钟周期内,“执行”流水环节执行第一次运算或访存,记为E1,“译码+取数”流水环节执行第二次“译码+取数”,记为D2,并且“取配置”流水环节执行第三次取配置,记为C3;在r4时钟周期内,“写回”流水环节执行第一次写回,“执行”流水环节执行第二次运算或访存,记为E2,“译码+取数”流水环节执行第三次“译码+取数”,记为D3,并且“取配置”流水环节执行第四次取配置,记为C4,依次类推。可见,当“写回”流水环节对第一个结果写回的时候“W1”,“取配置”流水环节已经在取第四个配置了“C4”,即四个流水阶段并行执行极大地提高了效率。
具体实施时,为了能够实现粗粒度可重构处理单元阵列高效的计算能力,可重构处理单元必须支持与其他可重构处理单元和memory之间灵活的数据传输,而又要保证不会带来太多的互联面积和功耗的开销,在本实施例中,如图5所示:基于上述可重构处理单元的运行方法提供了一种可重构处理单元阵列的运行方法,具体的,包括以下步骤:
步骤502:配置所述可重构处理单元阵列中四周边缘上的可重构处理单元在所述执行的流水环节中执行访存操作,配置所述可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元在所述执行的流水环节中执行运算操作;
步骤504:针对所述可重构处理单元阵列中的每个可重构处理单元,以该可重构处理单元为中心,配置该可重构处理单元与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置配置该可重构处理单元还与所在行的和/或所在列的可重构处理单元进行数据传输。
具体的,上述可重构处理单元组成的可重构处理单元阵列可以是多种大小尺寸的,以8x8的阵列为例,如图6所示,可重构处理单元阵列中四周边缘上的PE(即四周边缘部分的PE)作为访存PE(即执行流水环节执行访存操作),其中,上边沿的8个PE既可以访问本PEA的share memory(共享存储器),也能够访问相邻一个PEA的share memory,其他边沿的20个PE只能访问本PEA的share memory。可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元为运算PE(即执行流水环节执行运算操作),具体的,可重构处理单元阵列中所有的64个PE也包括边沿的PE都能够进行计算,但计算类型根据位置不同有些差异。此外,还优化了内部运算PE和边缘访存PE间的互联方式,如图6所示,配置每个可重构处理单元与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元。
具体的,如图6所示,以加粗的运算PE为例,如图6所示的该运算PE连接的实线表示其数据传输互联关系,以该运算PE为中心,该运算PE与上下左右方位上相邻的四个PE、同行两端的PE以及同列两端的PE(即上端、下端、左端、右端的PE)进行数据传输,加上本身PE,即共9个PE,即可重构处理单元阵列可以为该运算PE提供9种获取其他PE数据的路由。
此外,针对可重构处理单元阵列中四周边缘上的每个可重构处理单元,还根据该可重构处理单元所在位置配置该可重构处理单元还与所在行的和/或所在列的可重构处理单元进行数据传输,具体的,
所述可重构处理单元阵列为矩形,如图6所示,上边缘的可重构处理单元可以访问所在可重构处理单元阵列和相邻可重构处理单元阵列的存储器,下边缘和左右边缘上的可重构处理单元只可以访问所在可重构处理单元阵列的存储器,针对所述可重构处理单元阵列的边缘上顶角位置的可重构处理单元,如图6所示,以左上角位置的可重构处理单元为例,该可重构处理单元不但与所在行两端的可重构处理单元、所在列两端的可重构处理单元以及下、右方位上相邻的可重构处理单元互联进行数据传输,该可重构处理单元还与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在行和所在列中的可重构处理单元互联进行数据传输;
针对所述可重构处理单元阵列的左右边缘上除了顶角位置之外的可重构处理单元,该可重构处理单元不但与所在行两端的可重构处理单元、所在列两端的可重构处理单元以及上下左右方位上存在的相邻的可重构处理单元互联进行数据传输,该可重构处理单元还与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在行中的可重构处理单元进行数据传输;
针对所述可重构处理单元阵列的上下边缘上除了顶角位置之外的可重构处理单元,如图6所示,以下边缘上用虚线标定的可重构处理单元为例,该可重构处理单元不但与所在行两端的可重构处理单元、所在列两端的可重构处理单元以及上左右方位上存在的相邻的可重构处理单元互联进行数据传输,还与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在列中的可重构处理单元进行数据传输。
具体实施时,上述可重构处理单元阵列的运行方法在配置多次迭代运算的流水线执行情况下,此时的流水线是间断执行的,配置地址也会出现不连续的情况,相应地,配置多次迭代的工作模式适合于PEA的Spatial的静态运算模式。如图7所示,每个流水阶段都只占用一个时钟周期时间,而实际中会有多周期迭代执行运算,这时执行流水阶段就需要多个周期重复执行而不需要重新读配置,此时就要面临流水下PE单元的流水线“停顿”问题,此外,如果访存操作需要多周期执行也会造成PE流水线的“停顿”问题。具体的,如图7所示,stall_d信号是流水停滞的标志信号,代表流水线的译码的停滞状态,表示当前配置迭代重复进行译码运算,不再读新配置指令,第二条指令重复迭代执行了四个周期,导致图中灰色部分也就是第三条指令配置C3和第四条指令配置C4都因为通往下一阶段的流水线寄存器被占而配置失败,从而因为多次迭代执行下PE单元的流水线“停顿”问题导致C3、C4被冲刷。
为了解决多次迭代执行下PE单元的流水线“停顿”问题,在本实施例中,提出了针对所述可重构处理单元阵列中的每个可重构处理单元,在配置该可重构处理单元的所述执行的流水环节进行多次迭代执行的情况下,在该可重构处理单元的开始多次迭代执行时,通过信号触发该可重构处理单元的所述取配置的流水环节暂停读取配置,等待多次迭代所需的时钟周期后,将当前配置地址减一,采用减一后的配置地址重新读取配置。
具体的,如图8所示,在D2译码时发现将要发生流水停滞,通过stall_d信号告知上一取配置流水阶段全部暂定读取配置,等待D2进行多次迭代所需的4个时钟周期后,将当前配置地址减一,采用减一后的配置地址重新取配置。此时,让C3等待到流水停滞结束后再进行配置,即可实现功能的正确执行。其中,stall_e也是流水停滞的标识信号,代表流水线执行阶段的停滞状态。
具体实施时,以一个示例进行具体分析配置多次迭代下流水线的“停顿”问题及其解决方案。如图9所示,图9中stall_d和stall_e都是流水停滞的标识信号,分别代表流水线的译码和执行阶段的停滞状态。图9中首先进行了一个加法运算,由于是一周期运算,流水正常运行。其后配置的Load指令译码阶段流水停滞了4个周期导致Load指令后面的And指令和Shift指令都没能被读取配置,即图9中灰色部分。此时流水停滞的标识信号控制全部暂定读取配置。Load指令在译码后需要2个周期之后才能开始执行,所以图9中执行阶段有2个周期的空白,然后执行了四个周期。在执行到最后一个周期时流水停滞结束,将配置地址减一,重新读取到And指令配置进行流水。这样一来便解决了由于load操作需要多周期执行而造成PE流水线的“停顿”问题。
基于同一发明构思,本发明实施例中还提供了一种可重构处理单元,如下面的实施例所述。由于可重构处理单元解决问题的原理与可重构处理单元运行方法相似,因此可重构处理单元的实施可以参见可重构处理单元运行方法的实施,重复之处不再赘述。
图10是本发明实施例的可重构处理单元的一种结构框图,如图10所示,包括:
取配置模块1002,用于在取配置的流水环节中,读取该可重构处理单元的配置信息;
译码和取数模块1004,用于在译码和取数的流水环节中,对所述配置信息进行译码并根据所述配置信息读取数据;
执行模块1006,用于在执行的流水环节中,根据所述配置信息对读取的数据进行运算操作或访存操作,其中,所述执行的流水环节同时具备运算操作和访存操作的功能;
写回模块1008,用于在写回的流水环节中,根据所述配置信息对数据进行存储器的写回操作,其中,所述取配置的流水环节、所述译码和取数的流水环节、所述执行的流水环节以及所述写回的流水环节中,各流水环节并行运行。
在一个实施例中,上述可重构处理单元,还包括:
寄存器,用于在所述取配置的流水环节、所述译码和取数的流水环节以及所述执行的流水环节中,各流水环节在执行完本流水环节的操作后将相关数据存入寄存器中,供下一个流水环节来读取相关数据。
在一个实施例中,所述取配置模块、所述译码和取数模块以及所述写回模块,在每次执行各流水环节时分别占用一个时钟周期。
基于同一发明构思,本发明实施例中还提供了一种可重构处理单元阵列,如下面的实施例所述。由于可重构处理单元阵列解决问题的原理与可重构处理单元阵列运行方法相似,因此可重构处理单元阵列的实施可以参见可重构处理单元阵列运行方法的实施,重复之处不再赘述。
在本实施例中,可重构处理单元阵列包括上述任意所述的可重构处理单元,所述可重构处理单元阵列中四周边缘上的可重构处理单元的所述执行模块被配置为在所述执行的流水环节中执行访存操作,所述可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元的所述执行模块被配置为在所述执行的流水环节中执行运算操作;
针对所述可重构处理单元阵列中的每个可重构处理单元,以该可重构处理单元为中心,该可重构处理单元被配置为与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置该可重构处理单元还被配置为与所在行的和/或所在列的可重构处理单元进行数据传输。
在一个实施例中,所述可重构处理单元阵列为矩形,针对所述可重构处理单元阵列的边缘上顶角位置的可重构处理单元,该可重构处理单元还被配置为与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在行和所在列中的可重构处理单元进行数据传输;
针对所述可重构处理单元阵列的左右边缘上除了顶角位置之外的可重构处理单元,该可重构处理单元还被配置为与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在行中的可重构处理单元进行数据传输;
针对所述可重构处理单元阵列的上下边缘上除了顶角位置之外的可重构处理单元,该可重构处理单元还被配置为与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在列中的可重构处理单元进行数据传输,其中,上边缘的可重构处理单元访问所在可重构处理单元阵列和相邻可重构处理单元阵列的存储器,下边缘和左右边缘上的可重构处理单元访问所在可重构处理单元阵列的存储器。
在一个实施例中,所述可重构处理单元阵列中的每个可重构处理单元,还包括:
取配置暂停模块,用于针对所述可重构处理单元阵列中的每个可重构处理单元,在配置该可重构处理单元的所述执行的流水环节进行多次迭代执行的情况下,在该可重构处理单元开始多次迭代执行时,通过信号触发该可重构处理单元的所述取配置的流水环节暂停读取配置,等待多次迭代所需的时钟周期后,将当前配置地址减一,采用减一后的配置地址重新读取配置。
本发明实施例实现了如下技术效果:通过拓扑优化得到绘制有旋压机中各个零件的结构和旋压机自身的空洞筋格结构的CAD模型,然后将CAD模型转换为CAE面结构模型,获取到旋压机各个部分的参数,根据这些参数建立旋压机的有限元参数化模型,对建立的有限元参数化模型进行有限元的参数优化便可以实现对旋压机的建模优化,最终便可以得到优化后的旋压机结构。通过上述方式实现了通过参数化有限元对旋压机进行设计的目的,提高了旋压机的优化效率和产品性能。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种可重构处理单元的运行方法,其特征在于,包括:
在取配置的流水环节中,读取该可重构处理单元的配置信息;
在译码和取数的流水环节中,对所述配置信息进行译码并根据所述配置信息读取数据;
在执行的流水环节中,根据所述配置信息对读取的数据进行运算操作或访存操作,其中,所述执行的流水环节同时具备运算操作和访存操作的功能;
在写回的流水环节中,根据所述配置信息对数据进行存储器的写回操作,其中,所述取配置的流水环节、所述译码和取数的流水环节、所述执行的流水环节以及所述写回的流水环节中,各流水环节并行运行。
2.如权利要求1所述的可重构处理单元的运行方法,其特征在于,还包括:
所述取配置的流水环节、所述译码和取数的流水环节以及所述执行的流水环节中,各流水环节在执行完本流水环节的操作后将相关数据存入寄存器中,供下一个流水环节来读取相关数据。
3.如权利要求1或2所述的可重构处理单元的运行方法,其特征在于,
所述取配置的流水环节、所述译码和取数的流水环节以及所述写回的流水环节中,各流水环节每次执行时分别占用一个时钟周期。
4.一种可重构处理单元阵列的运行方法,其特征在于,包括:
组成可重构处理单元阵列的每个可重构处理单元的运行包括权利要求1至3中任一项所述的可重构处理单元的运行方法,配置所述可重构处理单元阵列中四周边缘上的可重构处理单元在所述执行的流水环节中执行访存操作,配置所述可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元在所述执行的流水环节中执行运算操作;
针对所述可重构处理单元阵列中的每个可重构处理单元,以该可重构处理单元为中心,配置该可重构处理单元与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置配置该可重构处理单元还与所在行的和/或所在列的可重构处理单元进行数据传输。
5.如权利要求4所述的可重构处理单元阵列的运行方法,其特征在于,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置配置该可重构处理单元还与所在行的和/或所在列的可重构处理单元进行数据传输,包括:
所述可重构处理单元阵列为矩形,针对所述可重构处理单元阵列的边缘上顶角位置的可重构处理单元,该可重构处理单元还与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在行和所在列中的可重构处理单元进行数据传输;
针对所述可重构处理单元阵列的左右边缘上除了顶角位置之外的可重构处理单元,该可重构处理单元还与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在行中的可重构处理单元进行数据传输;
针对所述可重构处理单元阵列的上下边缘上除了顶角位置之外的可重构处理单元,该可重构处理单元还与该可重构处理单元所在的四分之一所述可重构处理单元阵列中所在列中的可重构处理单元进行数据传输,其中,上边缘的可重构处理单元访问所在可重构处理单元阵列和相邻可重构处理单元阵列的存储器,下边缘和左右边缘上的可重构处理单元访问所在可重构处理单元阵列的存储器。
6.如权利要求4或5所述的可重构处理单元阵列的运行方法,其特征在于,还包括:
针对所述可重构处理单元阵列中的每个可重构处理单元,在配置该可重构处理单元的所述执行的流水环节进行多次迭代执行的情况下,在该可重构处理单元开始多次迭代执行时,通过信号触发该可重构处理单元的所述取配置的流水环节暂停读取配置,等待多次迭代所需的时钟周期后,将当前配置地址减一,采用减一后的配置地址重新读取配置。
7.一种可重构处理单元,其特征在于,包括:
取配置模块,用于在取配置的流水环节中,读取该可重构处理单元的配置信息;
译码和取数模块,用于在译码和取数的流水环节中,对所述配置信息进行译码并根据所述配置信息读取数据;
执行模块,用于在执行的流水环节中,根据所述配置信息对读取的数据进行运算操作或访存操作,其中,所述执行的流水环节同时具备运算操作和访存操作的功能;
写回模块,用于在写回的流水环节中,根据所述配置信息对数据进行存储器的写回操作,其中,所述取配置的流水环节、所述译码和取数的流水环节、所述执行的流水环节以及所述写回的流水环节中,各流水环节并行运行。
8.如权利要求7所述的可重构处理单元,其特征在于,还包括:
寄存器,用于在所述取配置的流水环节、所述译码和取数的流水环节以及所述执行的流水环节中,各流水环节在执行完本流水环节的操作后将相关数据存入寄存器中,供下一个流水环节来读取相关数据。
9.如权利要求7或8所述的可重构处理单元,其特征在于,所述取配置模块、所述译码和取数模块以及所述写回模块,在每次执行各流水环节时分别占用一个时钟周期。
10.一种可重构处理单元阵列,其特征在于,包括:
可重构处理单元阵列包括权利要求7至9中任一项所述的可重构处理单元,所述可重构处理单元阵列中四周边缘上的可重构处理单元的所述执行模块被配置为在所述执行的流水环节中执行访存操作,所述可重构处理单元阵列中除了四周边缘上的可重构处理单元之外的其他可重构处理单元的所述执行模块被配置为在所述执行的流水环节中执行运算操作;
针对所述可重构处理单元阵列中的每个可重构处理单元,以该可重构处理单元为中心,该可重构处理单元被配置为与以下可重构处理单元进行数据传输:该可重构处理单元所在行的两端的可重构处理单元、该可重构处理单元所在列的两端的可重构处理单元以及该可重构处理单元的上下左右方位上存在的且与该可重构处理单元相邻的可重构处理单元,针对所述可重构处理单元阵列中四周边缘上的每个可重构处理单元,根据该可重构处理单元所在位置该可重构处理单元还被配置为与所在行的和/或所在列的可重构处理单元进行数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503241.XA CN112486903A (zh) | 2020-12-18 | 2020-12-18 | 可重构处理单元、可重构处理单元阵列及其运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503241.XA CN112486903A (zh) | 2020-12-18 | 2020-12-18 | 可重构处理单元、可重构处理单元阵列及其运行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112486903A true CN112486903A (zh) | 2021-03-12 |
Family
ID=74914664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011503241.XA Pending CN112486903A (zh) | 2020-12-18 | 2020-12-18 | 可重构处理单元、可重构处理单元阵列及其运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486903A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553031A (zh) * | 2021-06-04 | 2021-10-26 | 中国人民解放军战略支援部队信息工程大学 | 软件定义变结构计算架构及利用其实现的左右脑一体化资源联合分配方法 |
CN113608775A (zh) * | 2021-06-18 | 2021-11-05 | 天津津航计算技术研究所 | 一种基于内存直接读写的流程配置方法 |
CN115328821A (zh) * | 2022-10-18 | 2022-11-11 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598483A (zh) * | 2016-11-10 | 2017-04-26 | 华中科技大学 | 一种面向异构内存的可重构内存管理系统 |
CN107506329A (zh) * | 2017-08-18 | 2017-12-22 | 浙江大学 | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 |
WO2018126484A1 (zh) * | 2017-01-09 | 2018-07-12 | 中国科学院自动化研究所 | 可重构的并行图像细节增强方法和装置 |
CN112084139A (zh) * | 2020-08-25 | 2020-12-15 | 上海交通大学 | 一种基于数据流驱动的多发射混合粒度可重构阵列处理器 |
-
2020
- 2020-12-18 CN CN202011503241.XA patent/CN112486903A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598483A (zh) * | 2016-11-10 | 2017-04-26 | 华中科技大学 | 一种面向异构内存的可重构内存管理系统 |
WO2018126484A1 (zh) * | 2017-01-09 | 2018-07-12 | 中国科学院自动化研究所 | 可重构的并行图像细节增强方法和装置 |
CN107506329A (zh) * | 2017-08-18 | 2017-12-22 | 浙江大学 | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 |
CN112084139A (zh) * | 2020-08-25 | 2020-12-15 | 上海交通大学 | 一种基于数据流驱动的多发射混合粒度可重构阵列处理器 |
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. 03, 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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553031A (zh) * | 2021-06-04 | 2021-10-26 | 中国人民解放军战略支援部队信息工程大学 | 软件定义变结构计算架构及利用其实现的左右脑一体化资源联合分配方法 |
CN113553031B (zh) * | 2021-06-04 | 2023-02-24 | 中国人民解放军战略支援部队信息工程大学 | 软件定义变结构计算架构及利用其实现的左右脑一体化资源联合分配方法 |
CN113608775A (zh) * | 2021-06-18 | 2021-11-05 | 天津津航计算技术研究所 | 一种基于内存直接读写的流程配置方法 |
CN113608775B (zh) * | 2021-06-18 | 2023-10-13 | 天津津航计算技术研究所 | 一种基于内存直接读写的流程配置方法 |
CN115328821A (zh) * | 2022-10-18 | 2022-11-11 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
CN115328821B (zh) * | 2022-10-18 | 2022-12-23 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Khailany et al. | Imagine: Media processing with streams | |
Zaruba et al. | Manticore: A 4096-core RISC-V chiplet architecture for ultraefficient floating-point computing | |
CN112486903A (zh) | 可重构处理单元、可重构处理单元阵列及其运行方法 | |
US9275002B2 (en) | Tile-based processor architecture model for high-efficiency embedded homogeneous multicore platforms | |
US9535877B2 (en) | Processing system with interspersed processors and communication elements having improved communication routing | |
US20120331278A1 (en) | Branch removal by data shuffling | |
US20140137123A1 (en) | Microcomputer for low power efficient baseband processing | |
Fan et al. | Stream processing dual-track CGRA for object inference | |
Wang et al. | MaPU: A novel mathematical computing architecture | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
CN112486908B (zh) | 层次化的多rpu多pea的可重构处理器 | |
CN113468102A (zh) | 混合粒度的计算电路模块和计算系统 | |
Song et al. | Gpnpu: Enabling efficient hardware-based direct convolution with multi-precision support in gpu tensor cores | |
Taka et al. | MaxEVA: Maximizing the Efficiency of Matrix Multiplication on Versal AI Engine | |
CN112540793A (zh) | 支持多访存模式的可重构处理单元阵列及控制方法、装置 | |
Lin et al. | MERIT: Tensor transform for memory-efficient vision processing on parallel architectures | |
Abdelhamid et al. | MITRACA: A next-gen heterogeneous architecture | |
CN112486905B (zh) | 可重构异构化pea互连方法 | |
CN112486904A (zh) | 可重构处理单元阵列的寄存器堆设计方法及装置 | |
US11029954B2 (en) | Per-lane dynamic indexing in temporary registers | |
CN117009287A (zh) | 一种于弹性队列存储的动态可重构处理器 | |
Végh | How to extend the Single-Processor Paradigm to the Explicitly Many-Processor Approach | |
Jiang et al. | Dynamic Multi-bit Parallel Computing Method Based on Reconfigurable Structure | |
Schaffer et al. | A prototype multithreaded associative SIMD processor | |
Ferreira et al. | Reducing interconnection cost in coarse-grained dynamic computing through multistage network |
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 |