具有包含用于FIR滤波的矢量卷积函数的指令集的矢量处理器的制作方法与工艺

文档序号:11995655阅读:569来源:国知局
具有包含用于FIR滤波的矢量卷积函数的指令集的矢量处理器的制作方法与工艺
具有包含用于FIR滤波的矢量卷积函数的指令集的矢量处理器相关申请交叉引用本申请要求2011年10月27日提交的、美国专利临时申请序列号61/552,242、名称为“软件数字前端(SoftDFE)信号处理和数字射频”的优先权,通过引用并入本文。本申请关联于美国专利申请序列号12/849142,2010年8月3日提交,名称为“用于提供存储器带宽有效关联加速的系统和方法”,通过引用并入本文。技术领域本发明涉及数字处理技术,更特别地,涉及用于矢量卷积的技术。

背景技术:
矢量处理器实现包含在矢量(即,一维数据阵列)上操作的指令的指令集。另一方面,标量数字信号处理器(DSP)具有在单个数据项上操作的指令。矢量处理器对于特定工作负荷提供增强的性能。数字处理器(如DSP和矢量处理器)通常整合专用硬件以执行数学密集型处理应用所需的软件操作,如加法,乘法,乘法累加(MAC)和移位累加。乘法累加体系结构例如认识到多种公共数据处理操作涉及两数相乘,将结果值加到另一值然后累加结果。这一基本操作可利用专用高速乘法器和累加器有效实现。然而,已有的DSP和矢量处理器不通过具有冲击响应的滤波器提供专用指令来支持输入信号的矢量卷积。然而,处理器中越来越多地需要矢量卷积操作。在FIR滤波域,例如,卷积处理输入波形信号和滤波器的冲击响应作为所应用的时滞(延迟)的函数。卷积处理器典型地接收和处理时移输入信号和滤波器的冲击响应并对每个时移版本(每个时滞)产生一个输出值。该卷积计算可广泛用于例如在FIR滤波应用中。对于输入序列长度L和多个时滞W,所需要的计算复杂度为O(L*W)。因为需要大量计算,因此强烈希望在多种应用中加速卷积计算。因此对于数字处理器,如矢量处理器,存在具有支持矢量卷积函数的指令集的需求。

技术实现要素:
总体上,提供了一种矢量处理器,具有包含矢量卷积函数的指令集。根据本发明的一方面,所公开的矢量处理器通过获取包含至少N1+N2-1输入样本的矢量在输入信号和滤波器冲击响应之间执行卷积函数;获取矢量的N2时移版本(包括零移动版本),其中每个时移版本包含N1样本;并利用N1系数的矢量执行矢量时移版本的加权求和;并对每个加权和产生包含一个输出值的输出矢量。该矢量处理器例如响应于具有包含N1+N2-1输入样本的矢量的一个或多个矢量卷积软件指令而执行该方法。该矢量可包含多个实数或复数输入样本,并且该滤波器冲击响应可利用作为实数或复数的多个系数来表达。该多个系数可利用降低数量的位使用多个迭代来处理,直到系数的所有位被处理;并且每个迭代的输出被移动和累加,直到系数的所有位被处理。在进一步实施例,当由卷积支持的系数数量小于滤波器中将被处理的系数数量时;较大滤波器的较小块被迭代处理并且每个迭代的输出对每个块被累加,直到所有的较大滤波器被处理。本发明更全面的理解以及本发明进一步特征和优点将参考如下详细描述和附图来获取。附图说明图1为结合本发明的特征的示例性矢量处理器的示意性框图;图2说明了结合本发明的特征的复数矢量卷积函数;以及图3为示例性的基于矢量的数字处理器的示意性框图,其根据本发明实施例处理矢量输入以产生矢量输出。具体实施方式本发明的某些方面提供了一种矢量处理器,支持矢量卷积函数。卷积指令典型地接收并处理时移输入信号和滤波器的冲击响应并对每个时移版本产生具有一个输出值的矢量。基本MAC操作可利用复数或实数输入和系数。因此,输入样本和系数可为实数和/或虚数。所公开的专用矢量卷积指令可用于实现例如数字前端信号处理中的通道滤波,RF均衡器,IQ失调校正和用于数字预失真(DPD)参数估计的卷积。如本文所使用,术语“矢量处理器”为在程序代码中的矢量数据上执行矢量指令的处理器。本发明可用于例如手机,基站和其他网络元件。图1为结合本发明的特征的示例性矢量处理器100的示意性框图。如图1所示,示例性矢量处理器100包括用于矢量卷积函数的一个或多个功能单元110,如下文进一步讨论。一般地,如果矢量处理器100处理的是包括对应于矢量卷积函数和用于该函数(即,输入样本)的合适的操作数的预定义指令关键字的软件代码,指令解码器必须触发处理矢量卷积指令所需的合适的矢量卷积功能单元110(一个或多个)。注意,矢量卷积功能单元110可由一个以上指令共享。一般地,本发明的各方面扩展了传统矢量处理器,以提供支持矢量卷积函数的增强指令集。根据本发明的方面,矢量处理器100接收具有实数或复数输入的输入矢量,应用复数矢量卷积函数至该输入并对每个时移生成具有一个输出值的矢量。所公开的矢量处理器100具有矢量体系结构,如下文结合图3讨论,其处理一个或多个矢量输入,每个矢量输入包含并行处理的多个实数或复数标量数。如下文结合图2进一步讨论,如果输入样本数为N1+N2-1,并且输出样本数为N2,则卷积指令执行例如单周期中1-4位的N1×N2卷积操作。此外,如果卷积的系数具有比矢量卷积功能单元系数位更多的位,则输出结果可迭代获取。例如,如果卷积由2位系数实现,并且需要12位,将采取6次迭代来获取最终结果。假设在输入中有64个样本(63被使用),且32个系数存储于寄存器而32个输出被计算,该指令在单周期执行1024个两位系数乘以32位复数数据(16位实数+16位虚数)的MAC运算并且在6个周期执行32位复数数据(16位实数+16位虚数)乘以24位复数系数(12位实数+12位虚数)复数运算。该性能为高于通用DSP的数量等级。图2说明了结合本发明的特征的矢量卷积函数200。一般地,矢量卷积函数200计算N位复数数据(N/2位实数和N/2位虚数)的卷积和复数对跖数据(例如,系数)。矢量卷积函数200典型地接收N1+N2-1个样本的输入矢量并处理输入矢量210N1(沿轴230)的N1个样本的时移版本220和系数,并对每个时移版本(每个时滞)产生FIR输出值225。输出矢量260包含N2个输出值。在图2的示例性实施例中,输入矢量210包含实数或复数数据(例如,32位实数和32位虚数)的N1+N2-1个样本和利用系数被卷积的具有N1个样本(16位实数和16位虚数)的N2个时移版本220。每个系数可为二进制值(例如,或2位,4位等)。所公开的矢量卷积函数(vec_conv())加速矢量卷积函数200中的FIR滤波,其中系数例如为二进制值(如2位,4位等)。此外,该操作可在单周期中利用足够数量的系数位进一步加速和执行,如18位。一般地,每个时移操作包含移动输入值220的FIR滤波和系数。对于2位值的示例性卷积,FIR滤波/卷积操作可写成:其中:其中h(k)表示系数且x(n-k)表示时移输入值。在多相位滤波的情况下,系数hk可对于滤波器的每个相位改变。利用具有冲击响应h的滤波器的输入信号x的卷积可写成:输入信号x与输入信号y的关联或互相关可写成(其中信号x和/或信号y可为已知参考信号如导频信号或CDMA二进制/双跖(bipodal)码):对于利用系数的12位表示的示例性卷积,以6次迭代来计算FIR滤波输出(6次2位值)。图3为示例性基于矢量的数字处理器300的示意性框图,其根据本发明实施例同时处理一个或多个复数。总体上,相对于标量实现,图3的基于矢量的实现通过并发执行不同的处理降低了实现该算法所需的复杂度或周期数。因此,基于矢量的数字处理器300包含用于矢量卷积的功能单元310。一般地,基于矢量的数字处理器300处理输入x的矢量并生成输出的矢量y(n)。对于N1=32和N2=37,示例性基于矢量的数字处理器300可表示为:(y1,y2,...y37)=vec_cor32x37(x1,x2,...,x68)结论尽管本发明的示例性实施例已参考数字处理器中的数字逻辑块和存储器表来描述,本领域技术人员清楚的是,多种函数可实现于数字域,作为软件程序的处理步骤,通过电路元件或状态机的硬件,或软件和硬件的组合。该软件可应用于,例如数字信号处理器,专用集成电路或微控制器。该硬件和软件可用于实现于集成电路的电路中。因此,本发明的函数可实现为用于实现该方法的方法和装置的形式。本发明的方面中的一个或多个可实现为程序代码形式,例如是否存储在存储介质,载入机器和/或由其执行,其中,当程序代码载入机器如处理器并由其执行时,该机器成为用于实现本发明的装置。当实现于通用处理器时,程序代码段联合该处理器来提供类似地操作具体逻辑电路的设备。本发明还可实现为集成电路、数字处理器、微处理器和微控制器中的一个或多个。应当理解,本文示出和描述的实施例和变型仅仅是说明本发明的原理,并且多种修改可由本领域技术人员实现,而不偏离本发明的范围和精神。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1