可重配置的流型矢量处理器制造技术

技术编号:2859929 阅读:132 留言:0更新日期:2012-04-11 18:40
提供可重配置的流矢量处理器(100),它包括许多功能单元(102),每一个功能单元都具有一个或多个用来接收数据值的输入端和提供数据值的输出端,一个可重配置的互连开关(104)以及一个微型序列发生器(118)。可重配置的互连开关(104)包括一个或多个链路,可操作各个链路,以将功能单元(102)的输出与功能单元(102)的输入耦合在一起,如微型序列发生器(118)所指导的那样。矢量处理器还可以包括一个或多个用来从存储器中检索数据的输入流单元(122)。每一个输入流单元由主处理器所指导,并具有到该主处理器的规定接口(116)。矢量处理器还包括一个或多个用来将数据写入存储器或主处理器的输出流单元(124)。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总的来说涉及计算机处理器领域。更特别地,本专利技术涉及一种可重配置的流型矢量处理器
技术介绍
许多为移动设备(多媒体,图形,图像压缩/解压缩,等等)设计的新应用包括高百分比的流型矢量计算。这些应用的计算速率经常超过最好的通用CPU所能提供的速率。因此,希望找到一种方法来改善存在于这样的设备中的计算引擎的性能,以满足这些新应用计算上的需求。同时,这些新应用的特性是标准以及遵照这些标准的最好的算法经常改变,需要一个可编程的并且易于编程的解决方案。况且,上市的时间压力在不断地在增加。针对这个问题的一个方法是增加对以前在软件及硬件方面的投资的重新利用。通过可编程性来最好地提升在多种产品内的硬件的重新利用。软件的重新利用是通过在一个设备的多样实现中的一致程序设计模型来提升的,以便保持二进制兼容性。满足这个需求的一个尝试是使用硬件加速器。这些不足以解决问题,因为它们改编程序的能力有限。那些在功能上不固定的硬件加速器只允许在它们所执行功能的参数上的改变,而不是功能的类型或排序上的改变。可编程的解决方案以矢量处理器、数字信号处理器、SIMD处理器和VLIW处理器的形式存在。这些解决方案由于它们的程序设计模型的限制而达不到目标,该限制导致它们在所有的硬件阶段都很难编程并且使之难于维持一致的程序设计模型。在它们的程序设计模型中的限制包括数据通路管道的程序设计员的可见度,存储器宽度及延迟,在存储器中的数据调整,以及显式资源的相关性。附图说明被认为是该专利技术的特性的新颖特征将在所附的权利要求中阐述。然而,该专利技术本身,以及优选的使用模式,及进一步的对象和其中的优点,最好是在结合附图进行阅读的时候,通过参考下列说明性实施例的详细描述来理解,其中图1是本专利技术的可重配置的流型矢量处理器的一个实施例的图形表示。图2是一个示范性的迭代计算的数据流图。图3是对本专利技术的矢量处理器进行编程的一个进程的流程图。图4是对一个主处理器进行编程以操作本专利技术的矢量处理器的一个进程的流程图。具体实施例方式尽管本专利技术容许有许多不同形式的实施例,但在图中示出了一个或多个具体实施例,并在这里将详细说明它们,要理解当前的公开内容应被看作本专利技术的原理的示范,而不是将该专利技术局限于示出并说明的具体实施例。在下面的说明中,在这些图的几个视图中,用相似的参考数字来描述相同、相似或对应的部分。本专利技术的可重配置的流型矢量处理器(RSVP)是一个协处理器,它执行矢量操作即一组在一序列的数据元素上的相同操作。设计了通过执行高速矢量操作来增强嵌入式通用处理器(主处理器)的性能。在RSVP程序设计模型中,矢量操作的规范分成两个部分访问和计算。在本专利技术的一个实施例中,提供了一个可重配置的流型矢量处理器,该处理器包括许多功能单元,每一个功能单元都具有一个或多个用来接收数据值的输入端以及一个用来提供数据值的输出端,该处理器还包括一个可重配置的互连开关和一个微型序列发生器。可重配置的互连开关包括一个或多个链路,可操作每一个链路,用以将功能单元的输出与功能单元的输入耦合在一起,如微型序列发生器所指导的那样。矢量处理器还包括一个或多个用来从存储器中检索数据的输入流单元。输入流单元是由主处理器控制的,并具有到该主处理器的规定接口。矢量处理器还包括一个或多个用来将数据写入存储器的输出流单元,同时还包括一个到主处理器的规定接口。在一个进一步的实施例中,可重配置的互连开关包括一个用于存储中间数据值的存储器。在优选实施例中,输入流单元的规定接口构成了程序设计模型的第一部分。在序列中的存储器中所存储的指令构成了程序设计模型的第二部分,该序列控制可重配置的互连开关。图1示出了RVSP硬件100的一个示范性的实施例。参照图1,许多功能单元102的输出和输入都通过可重配置的互连开关104而相互连接。功能单元可以包括乘法器106、加法器108、逻辑单元110和移位器112。其它的功能单元也可以包括在其中,并且特定型号的多功能单元也可以包括在其中。来自功能单元的输出端可以是单精度(single)寄存器或是流水线寄存器。功能单元可以支持多路独立操作。例如,乘法器可以具有128比特的输入和128比特的输出,并且能够执行两个32×32到64或四个16×16到32比特的乘法,或是任何总计不超过128比特输入或128比特输出的组合。硬件也包括一个或多个累加器114。在优选实施例中,累加器的作用既是累加器也是存储寄存器,并且它们不仅接合到互连开关104也接合到外部接口116。外部接口116使RSVP能够与主处理器连接并使主处理器能够访问累加器和RSVP的其它部件。功能单元102和可重配置的互连开关104为RSVP规定了数据通路。功能单元和可重配置的互连开关104连接到微型序列发生器118,该微型序列发生器118包括存储器120(最好是高速缓存),用来存储描述执行过程的指令程序,即所要求的矢量计算的数据流图的特定说明。在处理器时钟的每一个周期,微型序列发生器产生控制字,该控制字配置在互连开关中的链路并驱动功能单元。纯量(scalar)值以及隧道节点功能性的存储和表示由常量单元120提供。纯量值和隧道初值可以由主处理器或是指令程序加载。在操作中,一个或多个输入流单元122(在图中只示出了一个单元)将输入数据值提供给互连开关104。每一个输入流单元122都由描述存储器中的数据分配的一组参数所控制。这组参数由主处理器提供,其中,通过外部接口116,输入流单元连接到该主处理器上。每一个输出流单元124(在图中只示出了一个单元)都类似地由主处理器来控制,并且可操作来从可重配置互连开关104传输数据到外部存储器。输入流单元122和输出流单元124都与使数据流同步的微型序列发生器118相连。上述示范性RSVP的体系结构易于矢量访问和矢量计算的操作的分离。由输入和输出流单元执行的矢量访问,由作为矢量操作的一部分的每一个输入和输出矢量的位置、形状以及类型的描述构成。在优选实施例中,这些属性是通过两个或多个参数来描述的1.矢量地址下一个矢量元素的存储器中的起始地址。2.跨距(stride)从一个元素到下一个元素的带符号的增量。3.跨度(span)在跳跃(skip)之前的跨距的数目。4.跳跃在对元素的跨度进行计数之后的带符号的增量。5.大小每一个数据元素的大小(例如,1,2或4字节)。除了输入和输出矢量之外,矢量处理器还可以包括许多纯量和累加器寄存器,这些寄存器的初值可以由程序设计员指定。这些寄存器在矢量计算的内部使用。就累加器来说,寄存器的值允许在计算的过程中改变,并且可以为了以后使用而被访问。程序设计模型的矢量访问部分是以用于主处理器的程序设计语言来描述的,并在主机上执行。矢量计算由将应用于输入矢量的元素的部分有序的运算符组、纯量寄存器以及导出每一个输出矢量元素的累加器所组成。在本专利技术的程序设计模型中,这通过计算的数据流图的线性化表示来完成。在数据流图中,在图中的每一个节点都使用一个节点描述符来标示,该节点描述符指定了将由该节点执行的操作以及从中获得输入数据的节点。这里没有像在其它CPU中那样显式命名在运算符之间传递数据的寄存器。这里是一个范例计算,它具有如下的C语言描述<pre listing-type=progra本文档来自技高网...

【技术保护点】
一种可重配置的流型矢量处理器,其包括:多个功能单元,每一个功能单元都具有一个或多个用于接收数据值的输入端以及一个用于提供数据值的输出端;可重配置的互连开关,包括一个或多个链路,每一个链路都可操作的将功能单元的输出端耦合至功能单元的所述一个或多个输入端中的一个输入端;以及耦合到可重配置的互连开关的微型序列发生器,可操作的控制所述可重配置的互连开关。

【技术特征摘要】
US 2002-6-28 10/184,5831.一种可重配置的流型矢量处理器,其包括多个功能单元,每一个功能单元都具有一个或多个用于接收数据值的输入端以及一个用于提供数据值的输出端;可重配置的互连开关,包括一个或多个链路,每一个链路都可操作的将功能单元的输出端耦合至功能单元的所述一个或多个输入端中的一个输入端;以及耦合到可重配置的互连开关的微型序列发生器,可操作的控制所述可重配置的互连开关。2.根据权利要求1的可重配置的流型矢量处理器,其中,所述微型序列发生器包括用于存储指令程序的程序存储器。3.根据权利要求1的可重配置的流型矢量处理器,其中,所述可重配置的互连开关包括用于存储数据值的开关存储器。4.根据权利要求3的可重配置的流型矢量处理器,其中,所述开关存储器包括FIFO、按程序工作的延迟和流水线寄存器堆中的至少一个。5.根据权利要求1的可重配置的流型矢量处理器,其中,所述可重配置的互连开关的链路由微型序列发生器控制,以从功能单元的输出端接收数据值并且向功能单元的所述一个或多个输入端中的一个输入端提供数据值。6.根据权利要求1的可重配置的流型矢量处理器,进一步包括一个或多个耦合到所述可重配置的互连开关的输入流单元,可操作的从数据存储器检索输入数据值,并提供数据值给所述可重配置的互连开关;以及一个或多个耦合到所述可重配置的互连开关的输出流单元,可操作的从所述可重配置的互连开关接收数据值,并提供输出数据值给数据存储器。7.根据权利要求6的可重配置的流型矢量处理器,其中,所述输入和输出流单元包括用于从主机接收控制指令的接口。8.根据权利要求7的可重配置的流型矢量处理器,其中,所述控制指令包括以下各项的至少一项在数据存储器中的数据值的矢量的起始地址;数据值的矢量的跨度;数据值之间的跨距;在矢量数据值的跨度之间跳跃的大量存储器地址;以及在数据值的矢量中的每一个数据值的大小。9.根据权利要求6的可重配置的流型矢量处理器,进一步包括外部接口,可操作的耦合到所述输入流单元、输出流单元以及到主机的微型序列发生器。10.根据权利要求1的可重配置的流型矢量处理器,其中,所述功能单元包括以下各项中的至少一项移位器;加法器;逻辑单元;以及乘法器。11.根据权利要求10的可重配置的流型矢量处理器,其中,所述功能单元进一步包括通过(passthrough)功能单元。12.根据权利要求1的可重配置的流型矢量处理器,其中,所述多个功能单元中的至少一个的输出端包括寄存器流水线。13.根据权利要...

【专利技术属性】
技术研发人员:菲利普E马伊肯特唐纳莫特雷蒙德B埃西克四世西尔维乌基里切斯库布赖恩杰奥弗雷卢卡斯詹姆士M诺里斯迈克尔艾伦许特阿利赛义迪
申请(专利权)人:摩托罗拉公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1