用于实现脉动阵列的处理方法和设备 【技术领域】
本发明涉及一种处理方法和设备,特别涉及可缩放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处理器上,而不需要明确流出操作来实施构成阵列的延迟线的寄存器移动。所建议的模板可以被配置成实施各种脉动阵列。它提供允许硬件类数据通过量的粗粒度可再配置构造,同时它保持处理器的可编程性。
应当注意到,本发明不限于优选实施例,而可以在任何可编程或者可配置的数据处理结构中使用,以实现脉动或其它的流水线结构。