具有用于提供多模向量处理的可编程数据路径配置的向量处理引擎、以及相关向量处理...的制作方法

文档序号:9308591阅读:310来源:国知局
具有用于提供多模向量处理的可编程数据路径配置的向量处理引擎、以及相关向量处理 ...的制作方法
【专利说明】具有用于提供多模向量处理的可编程数据路径配置的向量处理引擎、以及相关向量处理器、系统和方法
[0001]相关串请
[0002]本申请涉及2013年3月13日提交的、名为“Vector Processing EnginesHaving Programmable Data Path Configurat1ns For Providing Mult1-Mode Radix_2xButterfly Vector Processing Circuits, And Related Vector Processors, Systems,And Methods (具有用于提供多模基_2X蝶形向量处理电路的可编程数据路径配置的向量处理引擎及相关向量处理器、系统和方法)”的美国专利申请S/N.13/798,599 (高通编号N0.123247),该申请通过引用被整体纳入于此。
[0003]本申请还涉及2013年3月13日提交的、名为“Vector Processing Carry-SaveAccumulators Employing Redundant Carry-Save Format To Reduce Carry Propagat1n,And Related Vector Processors, Systems, And Methods (米用冗余进位保留格式来减少进位传播的向量处理进位保留累加器及相关向量处理器、系统和方法)”的美国专利申请S/N.13/798,618 (高通编号N0.123248),该申请通过引用被整体纳入于此。
【背景技术】
[0004]1.11.公开领域
[0005]本公开的领域涉及用于处理向量和标量运算的向量处理器和相关系统,包括单指令多数据(SMD)处理器和多指令多数据(MMD)处理器。
[0006]I1.背景
[0007]无线计算系统正迅速成为数字信息领域中最流行的技术之一。技术进步已导致越来越小且越来越强大的无线通信设备。例如,无线计算设备通常包括小、轻量且易于由用户携带的便携式无线电话、个人数字助理(PDA)和寻呼设备。更具体地,便携式无线电话(诸如蜂窝电话和网际协议(IP)电话)可通过无线网络传输语音和数据分组。此外,许多这样的无线通信设备包括其它类型的设备。例如,无线电话可包括数码相机、数码摄像机、数字记录器、和/或音频文件播放器。同样,无线电话可包括可用于接入因特网的web接口。此夕卜,无线通信设备可包括用于根据所设计的无线通信技术标准(例如,码分多址(CDMA)、宽带CDMA(WCDMA)以及长期演进(LTE))来处理高速无线通信数据的复杂处理资源。因此,这些无线通信设备包括相当强的计算能力。
[0008]随着无线计算设备变得越来越小且越来越强大,它们越来越变得资源受限。例如,屏幕尺寸、可用存储器和文件系统空间的量以及输入和输出能力的数量可能受到设备的小尺寸的限制。此外,电池大小、电池提供的电量以及电池的寿命也受到限制。增加设备的电池寿命的一种方式是设计消耗较少功率的处理器。
[0009]就这一点而言,对包括向量处理器的无线通信设备可采用基带处理器。向量处理器具有提供对向量(即,数组)工作的高级运算的向量体系结构。与对一组数据执行向量指令然后再次取回和解码向量指令以用于向量内的后续元素相反,向量处理涉及取回向量指令一次,然后在数据元素的整个数组上执行向量指令多次。这种过程允许降低执行程序所需的能量,因为每一向量指令需要被取回的次数较少等等。由于向量指令同时在多个时钟周期上对长向量操作,因此高度并行性可用简单的按次序向量指令分派来实现。
[0010]图1示出了可在计算设备(诸如无线计算机设备)中采用的示例性基带处理器10。基带处理器10包括多个处理引擎(PE) 12,它们各自专用于为特定应用提供因功能而异的向量处理。在此示例中,在基带处理器10中提供了六(6)个分开的PE 12 (O)-12 (5) οPE 12(0)-12(5)各自被配置成为从共享存储器16向PE 12 (O)-12 (5)提供的固定X位宽的向量数据14提供向量处理。例如,向量数据14可以是512位宽。向量数据14可被定义成较小的多个X位宽的向量数据样本集18 (O)-18 (Y)(例如,16位和32位样本集)。以此方式,PE 12(0)-12(5)能够提供对并行向PE12 (O)-12 (5)提供的多个向量数据样本集的向量处理以实现高度并行性。每个PE12(0)-12(5)可包括用于存储对向量数据14处理的向量指令的结果的向量寄存器文件(VR)。
[0011]图1中的基带处理器10中的每一 PE 12(0)-12(5)包括专门设计来高效执行特定类型的固定运算的特定、专用的电路和硬件。例如,图1中的基带处理器10包括分开的宽带码分多址(WCDMA)PE 12(0),12(1)以及长期演进(LTE)PE 12 (4)、12 (5),因为 WCDMA 和 LTE涉及不同类型的专门运算。因此,通过提供分开的WCDMA专有PE 12(0)、12⑴以及LTE专有PE 12 (4)、12 (5),PE 12 (O)、12 (I)、12 (4)、12 (5)中的每一个可被设计成包括特别针对WCDMA和LTE频繁执行的功能的专门、专用电路以便进行高效运算。这种设计与标量处理引擎形成对照,标量处理引擎包括被设计成灵活以支持较大数量的不相关运算但效率较低的更为通用的电路和硬件。
[0012]在基带处理器中提供因功能而异的PE对频繁执行的、专门的运算是有利的。然而,提供因功能而异的PE可增加基带处理器所需的面积和功率,因为分开的因功能而异的PE各自包括专门的电路和存储器。
[0013]公开概沐
[0014]本文所公开的实施例包括具有可编程数据路径配置的向量处理引擎(VPE)以供提供多模向量处理。还公开了相关的向量处理器、系统和方法。本文所公开的VPE包括至少一个向量处理级,其被配置成根据正被向量处理级所执行的向量指令来处理向量数据。每个向量处理级包括一个或多个向量处理块,其被配置成基于正被执行的向量指令来处理向量数据。向量处理块的非限定性示例是乘法器和累加器。向量处理块能够基于向量处理块的可编程数据路径配置来在不同模式中为不同类型的指令提供不同的功能。以此方式,VPE可被提供其可重新编程以根据正被执行的向量指令执行不同类型的功能的数据路径配置。
[0015]作为结果,较少的VPE可提供期望的特定技术,由此节省了基带处理器中的面积而仍保留与标量处理引擎相比较少的寄存器写以及较快的指令执行的向量处理优点。向量处理块的数据路径配置也可被编程并在VPE中的向量指令执行期间重新编程以支持VPE中不同模式中的不同专门向量运算的执行。
[0016]本文所公开的具有用于多模向量处理的可编程数据路径配置的VPE与仅包括提供固定功能的固定数据路径配置的VPE是有区别的。本文所公开的具有用于向量处理的可编程数据路径配置的VPE与标量处理引擎(诸如举例而言在数字信号处理器(DSP)中提供的那些标量处理引擎)也是有区别的。标量处理引擎采用灵活、通用的电路和逻辑来执行不同类型的非固定功能,但也在向量指令执行期间将中间结果写入寄存器文件,从而消耗额外的功率并增加向量指令执行时间。
[0017]就此,在一个实施例中提供了一种VPE。该VPE被配置成提供向量数据的多模向量处理。该VPE包括输入读级,其被配置成在多个输入数据路径当中的一输入数据路径中提供向量数组宽度的多个向量数据输入样本集。VPE还包括至少一个向量处理级,该至少一个向量处理级包括多个向量处理块。该多个向量处理块当中的每一个向量处理块被配置成从该多个输入数据路径当中的至少一个输入数据路径接收来自该多个向量数据输入样本集中的至少一个向量数据输入样本集。该多个向量处理块当中的每一个向量处理块被进一步配置成根据该至少一个向量处理级所执行的向量指令基于用于每个向量处理块的可编程数据路径配置来处理该至少一个向量数据输入样本集以提供至少一个向量结果输出样本集。该多个向量处理块当中的每一个向量处理块被进一步配置成在多个输出数据路径当中的至少一个输出数据路径中提供该至少一个向量结果输出样本集。该VPE还包括输出处理级,其被配置成从该多个向量处理块中的每一个向量处理块接收该至少一个向量结果输出样本集。
[0018]在另一实施例中,提供了一种被配置成提供向量数据的多模向量处理的VPE。该VPE包括输入读级装置,其被配置成在多个输入数据路径当中的一输入数据路径中提供向量数组宽度的多个向量数据输入样本集。该VPE还包括至少一个向量处理级装置。该至少一个向量处理级装置包括多个向量处理装置。该多个向量处理装置当中的每一个向量处理装置被配置成从该多个输入数据路径当中的至少一个输入数据路径接收来自所述多个向量数据输入样本集中的至少一个向量数据输入样本集。该多个向量处理装置当中的每一个向量处理装置被进一步配置成根据该至少一个向量处理级所执行的向量指令基于用于每个向量处理块的可编程数据路径配置来处理该至少一个向量数据输入样本集以提供至少一个向量结果输出样本集。该多个向量处理装置当中的每一个向量处理装置被进一步配置成在多个输出数据路径当中的至少一个输出数据路径中提供该至少一个向量结果输出样本集。该VPE还包括输出处理装置,其被配置成从该多个向量处理装置中的每一个向量处理装置接收该至少一个向量结果输出样本集。
[0019]在另一实施例中,提供了一种在向量处理引擎(VPE)中处理向量数据的方法。该方法包括在输入处理级中在多个输入数据路径当中的一输入数据路径中提供向量数组宽度的多个向量数据输入样本集。该方法还包括在至少一个向量处理级中的多个向量处理块中处理该多个向量数据输入样本集。该方法还包括在该多个向量处理块中的每一个向量处理块中,从该多个输入数据路径当中的至少一个输入数据路径接收来自该多个向量数据输入样本集中的至少一个向量数据输入样本集,根据该至少一个向量处理级所执行的向量指令基于用于每个向量处理块的可编程数据路径配置来处理该至少一个向量数据输入样本集以提供至少一个向量结果输出样本集。该方法还包括在多个输出数据路径当中的至少一个输出数据路径中提供该至少一个向量结果输出样本集。该方法还包括在输出处理级中从该多个向量处理块中的每一个向量处理块接收该至少一个向量结果输出样本集。
[0020]在另一实施例中,提供了一种向量处理器。该向量处理器包括至少一个向量寄存器,该向量寄存器被配置成从向量数据存储器接收向量数据输入样本集。该向量处理器还包括至少一个向量结果寄存器,该向量结果寄存器被配置成存储向量结果输出样本集。该向量处理器还包括至少一个VPE,该至少一个VPE包括多个向量处理级。该多个向量处理级各自被配置成:接收来自该至少一个向量寄存器的至少一个向量数据输入样本集,根据每个向量处理级所执行的向量指令基于用于每个向量处理级的至少一个数据路径配置来将来自该至少一个向量寄存器的该至少一个向量数据输入样本集处理成至少一个向量结果输出样本集,以及将该至少一个向量结果输出样本集提供给该至少一个向量寄存器以被存储在该至少一个向量结果寄存器中。
[0021]附图简述:
[0022]图1是包括各自专用于为特定应用提供因功能而异的向量处理的多个向量处理引擎(VPE)的一示例性向量处理器的示意图;
[0023]图2是包括具有可编程数据路径配置的通用VPE的一示例性向量处理器的示意图,使得VPE中提供的通用电路和硬件可被编程为多个模式,以便以高效的方式为多个应用或技术执行特定类型的向量运算而无需提供分开的VPE ;
[0024]图3是图2的VPE中提供的示例性向量处理级的示意图,其中向量处理级中的某些包括具有可编程数据路径配置的示例性向量处理块;
[0025]图4A是示出包括在图2和3的示例性向量处理器中的、具有可编程数据路径配置的至少一个向量处理块的示例性向量处理的流程图;
[0026]图4B是示出乘法器块和累加器块的示例性向量处理的流程图,这些块各自具有可编程数据路径配置并在图2和3的示例性向量处理器中的不同向量处理级中提供;
[0027]图5是图2和3的VPE的向量处理级中提供的多个乘法器块的更详细的示意图,其中多个乘法器块各自具有可编程数据路径配置,使得多个乘法器块可被编程为多个模式以执行特定的、不同类型的向量乘法运算;
[0028]图6是图5中多个乘法器块当中的一乘法器块的内部组件的示意图,该乘法器块具有能够被编程以提供8位乘8位向量数据输入样本集和16位乘16位向量数据输入样本集的乘法运算的可编程数据路径配置;
[0029]图7是图2和3的VPE中的乘法器块和累加器块的一般化示意图,其中累加器块采用进位保留累加器结构,该结构采用冗余进位保留格式来减少进位传播;
[0030]图8是图7的累加器块的示例性内部组件的详细示意图,该累加器块在图2和3的VPE中提供,其中累加器块具有可编程数据路径配置,使得累加器块可被编程为多个模式以便用冗余进位保留格式执行特定的、不同类型的向量累加运算;
[0031]图9A是图8的累加器块的示意图,该累加器块具有被编程用于提供双24位累加器模式的数据路径配置;
[0032]图9B是图8的累加器块的示意图,该累加器块具有被编程用于提供单个40位累加器模式的数据路径配置;
[0033]图9C是图8的累加器块的示意图,该累加器块具有被编程用于提供16位进位保留加法器继之以单个24位累加器模式的数据路径配置;以及
[0034]图10是根据本文所公开的实施例的可包括向量处理器的示例性的基于处理器的系统的框图,该向量处理器包括具有可编程数据路径配置的VPE,所以VPE中的通用电路和硬件可被编程以用作被设计成以高效方式为多个应用或技术执行特定类型的向量运算的专用电路,而无需提供分开的VPE。
[0035]详细描沐
[0036]现在参照附图,描述了本公开的若干示例性实施例。措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实施例不必被解释为优于或胜过其他实施例。
[0037]本文所公开的实施例包括具有用于提供多模向量处理的可编程数据路径配置的向量处理引擎(VPE)。还公开了相关的向量处理器、系统和方法。本文所公开的VPE包括至少一个向量处理级,其被配置成根据正被向量处理级执行的向量指令来处理向量数据。每个向量处理级包括一个或多个向量处理块,其被配置成基于正被执行的向量指令来处理向量数据。向量处理块的非限定性示例是乘法器和累加器。向量处理块能够基于向量处理块的数据路径配置来在不同模式中为不同类型的指令提供不同的向量运算。向量处理块的数据路径配置是可编程的并且可重新编程(即,重新布线)以根据正被执行的特定向量指令在不同模式中不同地处理向量数据以提供专门向量运算操作。
[0038]
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1