CN1647064A - 用于实现脉动阵列的处理方法和设备 - Google Patents
用于实现脉动阵列的处理方法和设备 Download PDFInfo
- Publication number
- CN1647064A CN1647064A CNA038091240A CN03809124A CN1647064A CN 1647064 A CN1647064 A CN 1647064A CN A038091240 A CNA038091240 A CN A038091240A CN 03809124 A CN03809124 A CN 03809124A CN 1647064 A CN1647064 A CN 1647064A
- Authority
- CN
- China
- Prior art keywords
- register
- data
- depth
- equipment
- degree
- 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
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)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及用于实现脉动阵列类结构的处理方法和设备。输入数据以预定顺序被存储在深度可配置寄存器装置(DCF)中,并被提供给处理装置(FU),该处理装置用于根据从指令数据5中生成的控制信号来处理所述输入数据,其中根据指令数据来控制寄存器装置(DCF)的深度。因而,脉动阵列可以被映射到可编程处理器例如VLIW处理器,而不需要明确地流出操作来实现寄存器移动,其中寄存器移动构成阵列的延迟线。
Description
技术领域
本发明涉及一种处理方法和设备,特别涉及可缩放VLIW(VeryLarge Instruction Word(超大型指令字))处理器或粗粒度可再配置处理器,用于实现脉动阵列类结构。
背景技术
可编程或者可配置处理器是可在制造之后定制的预制造装置,以便根据分别发给它的指令或者配置来执行特定功能。这些指令或配置在处理器中被执行时控制处理器资源(例如算术逻辑单元(ALU),寄存器堆,互连,存储器等),以便在时间(即,顺序地)或空间(即,并行)执行某些操作。通常,可配置处理器将在空间上比可编程处理器执行更多的操作,而可编程处理器将在时间上比可配置处理器执行更多的操作。
目前已经开发了一种用于数字信号处理器(DSP)的硅算法(algorithm-to-silicon)设计方法论,允许DSP设计者的生产率的巨大增加以及所得到芯片的更佳设计。该方法论最初包含以实施独立方式捕获一种算法。随后,借助一组鉴别器和分析器,可以为一个固定点实施而调整和最佳化该算法。一旦达到满意特性,就可以应用一组交互合成引擎来将固定点规范映射到目标VLIW类结构。该映射处理是非常灵活和快速的,使之有可能在非常短时间内试验许多替换。通常,这种VLIW类处理器结构的超大型实例可以被视为粗粒度可再配置处理器,其中其微代码存储器中的每个控制字是一配置。该解释是可能的,这归因于相应的VLIW指令的长度,其允许许多并行操作被执行,因此主要在空间上计算。
VLIW处理器用于利用应用中可用的Instruction LevelParallelism(指令级并行性)(ILP)。为了利用ILP,在VLIW指令中同时安排数据独立操作。
图1是表示处理应用和应用的相应可编程处理器结构的示意图,其中代表循环体的数据流程图被显示在左侧。在图1中,圆圈20代表操作,而箭头代表操作之间的数据相关性。虚箭头代表在循环迭代中分别消耗或产生的输入或输出值。在右侧,示出了4-流出槽(issueslot)VLIW处理器10,包括四个ALU A1至A4以及用于控制ALU A1至A4操作的四个流出槽I1至I4。在此情况下,VLIW处理器10可以计算五个周期中的所示循环处理应用的一个迭代,在每个周期分别执行两个、四个、两个、一个和一个操作的序列。每个周期的操作数量取决于可以同时或者并行处理(即,显示在处理应用的一个水平线内)的操作的数量。处理应用的部分区域30示出了第二周期中的情况,其中在VLIW处理器10的一个周期中并行执行四个操作。
需要注意,在用于循环的单迭代的循环体内利用LIP。软件流水线技术可以用来利用ILP交叉循环迭代,但是那些通常是难于实现的,并且主要仅对非常简单和小的循环(例如,单一基本块)是有效的。
然而,定制硬件可以重叠循环的每个迭代的执行,使大多数计算资源在所有周期上是忙碌的。此类实施将数据局部性以及流水线利用到极至,这被称为脉动阵列。图2表示出显示数字滤波器应用(例如,即可以在每个周期生成输出样值的FIR(有限脉冲响应)滤波器)的最后两个抽头的脉动阵列实施的示意图。灰色块是定时控制的寄存器R。所有功能单元FU在每个周期上也都是忙碌的。当输入数据i沿“管道”向下到达右端以生成输出数据o时,如同在“脉动”装配线中那样,该输入数据i被本地处理。线acc包含部分累加。寄存器c包含乘法器的系数。因此,该结构被称为“脉动”阵列。脉动阵列允许非常高的并行性利用,从而获得高通过量。
在Zapata等人的“A VLSI constant geometry architecture forthe fast Hartley and Fourier transforms(用于快速哈特利和傅立叶变换的VLSI恒定几何结构)”,IEEE Transactions on Paralleland Distributed Systems,Vol.3,No.1,pp 58-70,1992年1月中,处理器存储器的结构基于先进先出(FIFO)队列,以有助于脉动数据流并允许以复合数据移动和变换的地址序列的直接方式实施。这利用硬件控制、借助于简单的复用操作予以实现。
因此,原则上,有可能把脉动阵列映射到VLIW处理器上。随后,脉动阵列中的每个功能单元FU将对应于VLIW处理器中的等效单元(例如,ALU,乘法器,MAC等)并且将被分配一个流出槽。对于图2的脉动阵列,在VLIW处理器中将需要四个流出槽用于四个功能单元FU。此外,对于每个寄存器移动,在VLIW处理器中将需要一个寄存器移动单元,每个寄存器移动对应于脉动阵列中的延迟线,具有其对应的流出槽。在图2的脉动阵列中,提供了对应于延迟线的七个寄存器移动。因此,在VLIW处理器中将需要七个寄存器移动单元,这些移动单元具有其附加的七个流出槽。这样,与实际操作相比,将存在更多的流出槽,并因而存在更多的控制信号和相关电路,对应于寄存器移动。此外,对访问相同寄存器(这些寄存器需要由其它功能单元访问)的移动单元的需要在VLIW设计中引入结构复杂性。所有这一切使脉动阵列的VLIW实施不实际。在此方面,注意,在原始脉动阵列中,借助于可以实施延迟线而没有任何显式控制的寄存器的FIFO线,可以在空间上对寄存器移动进行编码。
发明内容
本发明的一个目的是利用可编程处理器能够实现脉动阵列结构。
上述目的利用权利要求1中所要求保护的处理设备和权利要求8中所要求保护的处理方法予以实现。
因此,通过在处理单元的输入上提供深度可配置寄存器装置,可以实现用于实施脉动阵列的可编程处理器模板。由于能够利用可编程处理器例如VLIW处理器实现脉动阵列结构,因此可以为类似于视频流的媒体强化应用,提供主要是通过量的硬件类性能,同时保持已知处理器范例的灵活性和可编程性。甚至有可能得到编译器,以自动生成“脉动阵列类”指令调度而不需要显式硬件设计。编译技术可以在该方向被扩展。
因此,可以为脉动结构的映射提供经济合算的VLIW模板。该模板显著地减少了由于显式控制对应于延迟线的所有寄存器移动操作的当前需要所造成的开销。
寄存器装置最好包括在处理装置的多个功能单元的每个输入端上提供的分布式寄存器堆。特别地,分布式寄存器堆可以包括对于各个寄存器是可寻址的深度可配置FIFO寄存器堆。可利用的物理寄存器的数量利用硬件来固定。随后,寄存器控制装置可以被安排成根据从指令数据中导出的控制信号来确定FIFO寄存器堆的最后逻辑寄存器。
此外,可以提供至少一个流出槽,用于存储指令数据。寄存器控制装置可以被安排成使用被存储在至少一个流出槽中的指令数据的一部分位模式,以控制寄存器装置的深度。
在从属权利要求中定义了其它的有益的进一步发展。
附图说明
在下面,将参考附图根据优选实施例来描述本发明,其中:
图1表示处理应用和相应的可编程处理器结构的示意图;
图2表示脉动阵列结构的示意图;
图3表示根据本发明的在可编程处理器中实现图2的脉动阵列结构的原理示意图;和
图4表示用于实现脉动阵列的根据优选实施例的可编程处理器结构。
具体实施方式
在图3中,重构了图2的脉动阵列,以使其能够在VLIW结构中实施。使流出槽I1至I4显式,并且在功能单元(例如ALU)的输入端上保持包括寄存器R的先入先出(FIFO)延迟线。虚线框代表硬件中可用的但在所示的脉动配置中未使用的物理寄存器。这样描绘的技术方案建议了一种可以有效映射脉动结构的VLIW模板。通过在功能单元FU的每个输入上提供分布式寄存器堆,可以概括图3中所示的直观概念。
图4示出了作为可有效映射脉动结构的VLIW模板的优选实施例的可编程处理器结构。特别地,为每个功能单元FU的每个输入提供一个分布式寄存器堆DCF。此外,提供了由若干点对点线路组成的互连网络,并且该互连网络通过复用器50的输入或输出被连接到功能单元的各自输入。因而,点对点线路可以利用单个预定功能单元FU被写入。尽管图4建议了完全的连接,但是互连总线不必被全部连接。此外,功能单元FU的每个输入可以被连接到对于各个寄存器是可寻址的标准寄存器堆RF。请注意,在图4中,为了简单起见,每个功能单元FU输入的右边输入仅被显示为被连接到相应的标准寄存器堆RF。但是,具有多个读和/或写端口的寄存器堆也是有可能的。
由于模板不包括任何集中式结构即分布所有资源的事实,因此模板是可缩放的,因而允许大脉动阵列(例如,16抽头FIR滤波器或者大型矩阵乘法器)潜在需要的超大量的流出槽。
根据该优选实施例,深度可配置寄存器堆DCF被安排在每个功能单元FU的每个输入上。深度可配置寄存器堆DCF可以利用FIFO存储器来实现,这些存储器的最后逻辑寄存器可以利用控制信号来确定。然而,任何其它的可寻址或者可控制存储器或寄存器结构都能够用来实施深度可配置寄存器堆DCF,只要它们能够根据控制或者地址信号确定延迟线中的最后逻辑存储位置。
对于N个物理寄存器的深度可配置FIFO,可以编程FIFO的输出,以使其位于寄存器N、N-1、N-2、......1上。通过控制FIFO的深度,我们可以控制它仿真的延迟线的数量。在图3中,例如,如果最左的FIFO具有4个物理寄存器R,则图4的最左的深度受控寄存器堆DCF将受最左的流出槽I1上的控制信号的控制,以便将其输出端置于第二寄存器(N-2,N=4),而较下面的两个寄存器(N,N-1)保持不用。因而,控制深度受控寄存器堆DCF的深度的控制信号是相应流出槽I1至I4中的位模式的一部分。
总之,通过在每个功能单元FU的输入端上提供深度可配置存储器或者寄存器堆DCF,可以实现用于实施脉动阵列的可编程处理器模板。深度可配置寄存器堆DCF的深度例如受相应流出槽中装载的相应比特的控制。利用此增加,脉动阵列现在可以被映射到可编程处理器上,例如映射到一个VLIW处理器上,而不需要明确流出操作来实施构成阵列的延迟线的寄存器移动。所建议的模板可以被配置成实施各种脉动阵列。它提供允许硬件类数据通过量的粗粒度可再配置构造,同时它保持处理器的可编程性。
应当注意到,本发明不限于优选实施例,而可以在任何可编程或者可配置的数据处理结构中使用,以实现脉动或其它的流水线结构。
Claims (11)
1、一种用于实现脉动阵列类结构的处理设备,所述设备包括:
a)输入装置,用于输入数据;
b)寄存器装置,用于以预定顺序存储所述输入数据;
c)处理装置,用于根据从指令数据生成的控制信号来处理从所述寄存器装置接收的数据;和
d)寄存器控制装置,用于根据所述指令数据控制所述寄存器装置的深度。
2、根据权利要求1所述的设备,其中所述寄存器装置包括在所述处理装置的多个功能单元的输入端上提供的分布式寄存器堆。
3、根据权利要求2所述的设备,其中所述分布式寄存器堆包括对于各自寄存器是可寻址的深度可配置FIFO寄存器堆。
4、根据权利要求3所述的设备,其中所述寄存器控制装置被安排为根据从所述指令数据导出的控制信号来确定所述FIFO寄存器堆的最后逻辑寄存器。
5、根据任何一项前面权利要求所述的设备,还包括至少一个用于存储所述指令数据的流出槽。
6、根据权利要求5所述的设备,其中所述寄存器控制装置被安排为使用存储在所述至少一个流出槽中的所述指令数据的一部分位模式来控制所述寄存器装置的所述深度。
7、根据任何一项前面权利要求所述的设备,其中所述可编程处理设备是可缩放VLIW处理器或粗粒度可再配置处理器。
8、根据权利要求2-7之中任何一项权利要求所述的设备,其中所述分布式寄存器堆被连接到由多个点对点连接线构成的互连网络上。
9、根据权利要求8所述的设备,其中所述点对点互连线具有单一源。
10、根据权利要求8所述的设备,其中所述互连网络被部分地连接。
11、一种用于实现脉动阵列类结构的处理方法,所述方法包括:
a)在寄存器堆中以预定顺序存储所述输入数据;
b)根据从指令数据中生成的控制信号,处理从所述寄存器堆接收的数据;和
c)根据所述指令数据控制所述寄存器堆的深度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02076649.9 | 2002-04-25 | ||
EP02076649 | 2002-04-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1647064A true CN1647064A (zh) | 2005-07-27 |
Family
ID=29265968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038091240A Pending CN1647064A (zh) | 2002-04-25 | 2003-04-01 | 用于实现脉动阵列的处理方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7260709B2 (zh) |
EP (1) | EP1504533A2 (zh) |
JP (1) | JP4087379B2 (zh) |
KR (1) | KR100952148B1 (zh) |
CN (1) | CN1647064A (zh) |
AU (1) | AU2003212603A1 (zh) |
WO (1) | WO2003092171A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038582B (zh) * | 2007-04-02 | 2010-05-12 | 中国科学院光电技术研究所 | 用于自适应光学波前复原运算的脉动阵列处理方法及电路 |
CN104682920A (zh) * | 2015-03-10 | 2015-06-03 | 中国人民解放军国防科学技术大学 | 高速脉动阵列滤波器的系数无缝切换方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099719A (ja) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | 処理装置 |
JP2008116997A (ja) * | 2006-10-31 | 2008-05-22 | Kyushu Univ | 再構成可能データパスプロセッサ |
US11003620B2 (en) * | 2017-12-22 | 2021-05-11 | Intel Corporation | Systolic array of pipelined processing engines for implementing dynamic programming algorithms |
US20220414053A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Systolic array of arbitrary physical and logical depth |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6057090B2 (ja) | 1980-09-19 | 1985-12-13 | 株式会社日立製作所 | データ記憶装置およびそれを用いた処理装置 |
US5046000A (en) | 1989-01-27 | 1991-09-03 | International Business Machines Corporation | Single-FIFO high speed combining switch |
US5045000A (en) * | 1990-07-09 | 1991-09-03 | Everbrite, Inc. | Neon sign connector |
US5673396A (en) | 1994-12-16 | 1997-09-30 | Motorola, Inc. | Adjustable depth/width FIFO buffer for variable width data transfers |
GB2298109B (en) | 1995-02-14 | 1999-09-01 | Nokia Mobile Phones Ltd | Data interface |
US5933855A (en) * | 1997-03-21 | 1999-08-03 | Rubinstein; Richard | Shared, reconfigurable memory architectures for digital signal processing |
EP1113357A3 (en) | 1999-12-30 | 2001-11-14 | Texas Instruments Incorporated | Method and apparatus for implementing a variable length delay instruction |
US6631455B1 (en) * | 2000-09-29 | 2003-10-07 | Cypress Semiconductor Corp. | Logic for initializing the depth of the queue pointer memory |
US6907479B2 (en) * | 2001-07-18 | 2005-06-14 | Integrated Device Technology, Inc. | Integrated circuit FIFO memory devices that are divisible into independent FIFO queues, and systems and methods for controlling same |
US6836809B2 (en) * | 2001-08-23 | 2004-12-28 | Intel Corporation | Writing and reading data from a queue |
-
2003
- 2003-04-01 CN CNA038091240A patent/CN1647064A/zh active Pending
- 2003-04-01 EP EP03708428A patent/EP1504533A2/en not_active Withdrawn
- 2003-04-01 US US10/511,504 patent/US7260709B2/en not_active Expired - Fee Related
- 2003-04-01 WO PCT/IB2003/001187 patent/WO2003092171A2/en active Application Filing
- 2003-04-01 JP JP2004500416A patent/JP4087379B2/ja not_active Expired - Fee Related
- 2003-04-01 KR KR1020047016993A patent/KR100952148B1/ko not_active IP Right Cessation
- 2003-04-01 AU AU2003212603A patent/AU2003212603A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038582B (zh) * | 2007-04-02 | 2010-05-12 | 中国科学院光电技术研究所 | 用于自适应光学波前复原运算的脉动阵列处理方法及电路 |
CN104682920A (zh) * | 2015-03-10 | 2015-06-03 | 中国人民解放军国防科学技术大学 | 高速脉动阵列滤波器的系数无缝切换方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20040107507A (ko) | 2004-12-20 |
JP4087379B2 (ja) | 2008-05-21 |
US20050166034A1 (en) | 2005-07-28 |
WO2003092171A2 (en) | 2003-11-06 |
EP1504533A2 (en) | 2005-02-09 |
AU2003212603A8 (en) | 2003-11-10 |
AU2003212603A1 (en) | 2003-11-10 |
KR100952148B1 (ko) | 2010-04-09 |
WO2003092171A3 (en) | 2004-10-21 |
US7260709B2 (en) | 2007-08-21 |
JP2005524160A (ja) | 2005-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030146B2 (en) | Execution engine for executing single assignment programs with affine dependencies | |
EP0314277B1 (en) | Simd array processor | |
KR101966712B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 | |
KR101620676B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트 | |
KR101638225B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US8375395B2 (en) | Switch-based parallel distributed cache architecture for memory access on reconfigurable computing platforms | |
JP6895484B2 (ja) | マルチスレッドプロセッサのレジスタファイル | |
JP6944974B2 (ja) | ロード/ストア命令 | |
US10417304B2 (en) | Dual phase matrix-vector multiplication system | |
US5083267A (en) | Horizontal computer having register multiconnect for execution of an instruction loop with recurrance | |
US5276819A (en) | Horizontal computer having register multiconnect for operand address generation during execution of iterations of a loop of program code | |
US5036454A (en) | Horizontal computer having register multiconnect for execution of a loop with overlapped code | |
US20060015701A1 (en) | Arithmetic node including general digital signal processing functions for an adaptive computing machine | |
US11782760B2 (en) | Time-multiplexed use of reconfigurable hardware | |
CN1647064A (zh) | 用于实现脉动阵列的处理方法和设备 | |
CN101615113A (zh) | 一条指令完成一次蝶形运算的微处理器实现方法 | |
EP3108358B1 (en) | Execution engine for executing single assignment programs with affine dependencies | |
US11853762B1 (en) | Single instruction multiple data execution with variable size logical registers | |
KR20230082621A (ko) | 얕은 파이프라인을 갖는 고도의 병렬 처리 아키텍처 | |
US11989581B2 (en) | Software managed memory hierarchy | |
Hayat et al. | A dynamically reconfigurable parallel pipelined system for real-time image processing applications | |
Yap et al. | High Performance Computing Architectures and Techniques | |
Liu et al. | Exploration of Spatial Pipeline Computation for Heuristic Access Coarse-Grained Reconfigurable Cells | |
Basu et al. | A New Generalized Reconfigurable Architecture for Digital Signal Processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |