数字信号处理器的数据路径电路的制作方法

文档序号:6510115阅读:285来源:国知局
数字信号处理器的数据路径电路的制作方法
【专利摘要】数据路径电路可包括用于并行计算的数字乘法和累加电路(MAC)与数字硬件计算器。数字硬件计算器和MAC可耦合到用于接收输入操作数的输入存储器元件。该MAC可包括数字乘法器结构,其具有耦合到加法器的部分乘积发生器以使第一和第二输入操作数相乘并产生乘法结果。该数字硬件计算器可包括耦合在计算器输入和计算器输出寄存器之间的第一查找表。第一查找表可包括根据第一预定的数学函数映射到相应数学函数结果的表项目值。数字硬件计算器可配置成基于第一查找表计算很难计算的数学函数诸如对数函数、指数函数、除法函数和平方根函数。
【专利说明】数字信号处理器的数据路径电路
[0001]本发明涉及用于数字信号处理器的数据路径电路。数据路径电路包括配置用于并行计算的数字乘法和累加电路(MAC结构)与数字硬件计算器。数字硬件计算器和MAC都耦合到用于接收第一二输入操作数和第二输入操作数的输入存储器元件。该MAC可包括常规的数字乘法器结构,其具有耦合到加法器结构的多个部分乘积发生器以使第一和第二输入操作数相乘并产生乘法结果。该数字硬件计算器包括可操作地耦合在计算器输入和计算器输出寄存器之间的第一查找表。第一查找表包括根据第一预定的数学函数映射到多个相应数学函数结果的多个表项目值。数字硬件计算器可有利地配置成基于第一查找表计算很难计算的数学函数诸如对数函数、指数函数、除法函数和平方根函数。
[0002]发明背景
[0003]数字乘法器在数字信号处理器(DSP)中被广泛使用用于二进制数的快速乘法。许多基本DSP算法诸如FIR滤波器、IIR滤波器、卷积和快速傅立叶变换(FFT)严重依赖于DSP的乘法-累加性能,使数字乘法器成为DSP的主要部件。数字乘法器通常伴有加法器以形成快速乘法-累加(所谓的MAC)计算结构。二进制数可以用各种二进制数格式诸如2的补码、带符号量值等表示。二进制数可用定点格式或浮点格式表示。取决于特定应用的格式和要求,用来表示N位被乘数(Y)的每个的位数即N和M位乘数(X)的每个的位数即M可以变化很大。用于表示N位被乘数和M位乘数的每个的位数通常介于8和56之间。这些传统MAC结构非常适于提供输入操作数或上述基本DSP算法的变量的快速乘法和加法。
[0004]然而,大量信号处理算法需要基础数学函数,这些基础数学函数很难计算,这些实例是对数、指数、除数和平方根。这些很难计算的函数共有难以映射到二进制数学的共同特征,例如对数函数,或者它们具有非确定性的性质例如除法操作。在此上下文中,非确定性意味着提前预测产生的数学序列是非常困难或者不实际的。该事实导致必须搜索正确解决方案的算术电路设计。作为实例,人们可以将数字乘法器和数字除法器的数学序列的预测进行比较。在传统信号处理算法和可编程数字信号处理器的设计中,这些很难计算的数学函数的快速和有效计算已经在很大程度上不被注意。通过使用可编程DSP的传统MAC结构的软件例程,或者在替代方案中,通过建立专门适于计算特定类型的困难数学函数的定制数字状态机或定制数据路径,该方法将解决这些很难计算的数学函数。该特定数学函数可以是对数。
[0005]然而,在此类定制数字状态机或定制数据路径周围建立的DSP缺乏以快速和有效节能的方式运行其它类型的很难计算的数学函数和相关联的DSP算法的灵活性。通过适当配置的DSP软件,可编程DSP的传统MAC结构可以适用于运行宽范围的DSP算法。然而,当运行上述很难计算的数学函数时,传统MAC结构令人遗憾地缓慢和功率低效。这是因为传统MAC结构被优化以执行乘法、加法和减法操作,并因而通过设计不适合的操作来计算其它类型的数学函数。因此,大量的MAC周期通常被计算困难数学函数的程序例程消耗。这在传统MAC结构上强加了高计算负荷,通过阻断或延迟形成所考虑的DSP算法的部分的其它数学函数而损害了可编程DSP的计算性能。
[0006]因此,存在对数据路径电路的需要,数据路径电路包括传统的数字乘法和累加电路(MAC)与数字硬件计算器或数学加速器,MAC用于执行有效和快速的乘法、加法和减法操作,数字硬件计算器或数学加速器用于上述很难计算的数学函数的有效和快速计算。如果(MAC)和数字硬件计算器能够并行操作来改善数据路径电路的计算吞吐量,那么甚至将更具吸引力。因此,为了将运行的不同类型的数学函数的不同需要,可以优化MAC和数字硬件计算器的硬件体系结构或设计。
[0007]US7, 284,027涉及在用于实时DSP应用的定点或浮点数上执行高速算术计算的方法和电路单元。该公开涉及用于定点或浮点复数的乘法结合快速FFT计算的定制乘法器体系结构/拓扑结构。复数乘法器结构基于数域计算通过对数加法操作来乘以复数输入数并随后应用取幂以返回在线性域中的乘法结果。
[0008]US7, 539,717公开了使用基于表格的泰勒级数近似来计算DSP应用中的浮点数的对数的方法和硬件电路块。在浮点输入操作数上执行某些预处理步骤的多个专用硬件块耦合到浮点FMAD,其基于预处理压缩值执行浮点输入操作数的对数的最终计算。专用硬件块包括第一查找表和第二查找表,分别存储与对数函数相关联的全精度变量和压缩变量值。

【发明内容】

[0009]本发明的第一方面涉及一种用于数字信号处理器诸如由可运行程序指令控制的软件可编程数字信号处理器的数据路径电路。数据路径电路包括用于存储第一和第二输入操作数的输入存储器元件例如输入寄存器。数据路径电路此外包括配置用于并行计算的数字乘法和累加电路和数字硬件计算器。所述数字乘法和累加电路包括:
[0010]第一输入端和第二输入端,其均连接到所述输入存储器元件,用于分别接收所述第一输入操作数和所述第二输入操作数;
[0011]多个部分乘积发生器,其被配置用于产生所述第一输入操作数或所述第二输入操作数的多个部分乘积;
[0012]加法器结构,其被配置成接收和组合所述多个部分乘积以产生乘法结果;
[0013]算术逻辑单元,其被配置用于接收所述乘法结果并向其加入第一变量以计算累加的乘法结果;
[0014]第一累加器,其耦合到所述算术逻辑单元并被配置用于接收和操纵所述累加的乘法结果。所述数字硬件计算器包括连接到所述第一输入操作数和所述第二输入操作数中的一个的计算器输入端和用于存储计算的计算器结果的计算器输出寄存器。所述数字硬件计算器的第一查找表可操作地耦合在所述计算器输入端和所述计算器输出寄存器之间。第一查找表包括根据第一预定的数学函数映射到多个相应数学函数结果的多个表项目值。
[0015]包含在本数据路径电路中的数字硬件计算器向数据路径电路提供了很多益处。这些尤为明显,如果数字硬件计算器被配置成计算多个先前讨论的很难计算的数学函数诸如对数函数、指数函数、除法函数和平方根函数中的一个。这些算术函数或者难以映射到二进制数学电路例如对数函数,或者是非确定性的例如除法函数。然而,这些很难计算的数学函数可以用径直的方式以期望的精度映射到查找表。通过选择表项目值的数量或表的大小,可以达到期望的精度水平。此外,精度可通过在相关的数学函数结果之间应用公知的表内插方案来改善。因此,对于所考虑的特定类型的算术操作,提供并行操作数字乘法和累加电路(MAC结构)与数字硬件计算器允许DSP算法的数学计算被分割成在数据路径电路的最佳计算硬件上同时运行的单独部分或程序例程。在这种方式下,本数据路径电路能够在MAC结构上运行传统的乘法-累加操作用于FIR滤波器、IIR滤波器等,MAC结构对这些类型的计算是有效的。同时,数学函数像先前所讨论的对数、除法、指数、平方根等可以在适当配置的数字硬件计算器上有效地运行。特定DSP算法的数学函数在数据路径电路的不同计算硬件资源之间的这种分割导致相当大的功率节省和许多DSP算法的更快运行,其利用乘法、加法和减法操作与上面讨论的困难的数学函数的混合。因此,数字硬件计算器可适用于支持基于贝叶斯或概率计算的非常有用的DSP算法的全部类型的有效计算。这类有用的DSP算法包括通常基于维特比算法的隐马尔可夫模型(HMM),维特比算法又严重依赖于对数函数的计算。
[0016]此外,通过在本数据路径电路中维持传统的MAC结构,有利于现有的DSP硬件构件、现有的可运行DSP程序例程和现有的编程模型/结构的重新使用。传统的MAC结构是高度复杂的数字电路构件或结构,其基于几十年的R&D及伴随的体系结构改进以小芯片面积消耗、密集的电路布局和低功耗来提供快速乘法和加法操作。同时,通过将很难计算的数学函数的计算引导至数字硬件计算器以便改善计算吞吐量或性能和降低数据路径电路的功耗,新DSP软件可以利用本数据路径体系结构的优点。对于特定DSP算法,算术操作在MAC结构和数字硬件计算器之间的分割可以在实现DSP算法的可运行代码或程序例程产生期间由适当配置的编译器执行。
[0017]通常,第一输入操作数可包括N位被乘数且第二输入操作数可包括M位乘数,其中M和N的每个表示正整数,其是第一和第二输入操作数的各自字长。N和M的值可相同或它们可不同。N和M的每个的值可例如落在8位和64位之间。数字乘法器优选地包括编码方案以减少部分乘积发生器的数量。根据此类实施方案,所述多个部分乘积发生器适用于选择所述N位被乘数的各自的部分乘积,其中每个部分乘积选自根据预定的编码方案诸如布斯编码由与所述M位乘数的预定位集相关的所述N位被乘数计算的一组部分乘积结果。技术人员将明白,取决于数字乘法器的尺寸和复杂性,可应用不同基数的布斯编码诸如选自{基_4、基-8和基-16、基-32、基-64、基-128}布斯编码的组的布斯编码方案。
[0018]二进制数诸如第一和第二输入操作数在本数据路径电路中优选地用常见的二进制数格式诸如选自{2的补码、带符号量值、冗余二进制带符号数字、进位保留}的组的格式来表示。
[0019]在本发明的一些实施方案中,第一查找表可具有2-维结构,即将每个单一表项目值映射到单一相应的数学函数结果。然而,在其它实施方案中,第一查找表可具有N维结构,其中N是大于2的正整数。在后种实施方案中,所述第一查找表包括将各自的N-1多个表项目值映射到所述相应数学函数结果的N维。这对于计算许多算术操作诸如除法是非常有用的,在除法中被除数或分子可以是第一输入操作数并且除数或分母是第二输入操作数。映射此类除法函数的查找表可由3维表格形成,其中每对输入操作数根据除法操作映射到单一相应的数学函数结果。
[0020]在另一有用的实施方案中,数字硬件计算器包括用于表格内插的内插器。内插器被配置用于从第一查找表读取第一和第二数学函数结果并将内插操作应用到第一和第二数学函数结果以产生内插的数学函数结果。如果相关输入操作数的值或其它变量不能精确地匹配任一表项目值,那么内插器可应用于在第一查找表的表项目中填充间隙或通常改善数学函数结果的准确度。技术人员将理解,不同类型的内插操作或方案可通过内插器应用,诸如样条内插或包括线性内插(它是多项式内插的特殊情况)的多项式内插。同样,取决于第一预定的数学函数的复杂性和任何特定应用的准确度要求,内插函数可包括将除上述第一和第二数学函数结果外的附加的数学函数结果。
[0021]取决于在用于制造数据路径电路的半导体工艺中可用的应用和存储器选项,不同类型的存储器元件可用于存储第一查找表的多个表项目和多个数学函数结果的各自值,即表数据。在一个实施方案中,查找表可被制造为存储表格数据的掩模可编程或可合成ROM。查找表在ROM中的实现通常消耗最小的半导体芯片面积并导致与查找表中读取操作有关的低功耗。另一方面,由第一查找表映射的预定的数学函数必须在数据路径电路的设计时进行选择并在此后保持固定,这在一些情况下限制了灵活性。
[0022]在替代和同样有利的实施方案中,查找表包括存储表格数据内容的可读和可写存储器元件。在此实施方案中,所述可读和可写存储器优选地包括选自{RAM、EPR0M、EEPR0M、快闪式存储器、数据寄存器}的组的存储器元件。技术人员将理解,查找表可包括上面所列类型的可读和可写存储器元件的组合。使用可读和可写存储器元件用于存储表格数据允许第一预定的数学函数在运行时改变,结合产生用于包括本数据路径电路的DSP设备的可运行程序例程或代码。预定的数学函数因此可通过代码研发者或程序员借助于适当的编程工具或环境诸如VisualDSP++?或SigmaStudio?根据编程DSP算法的性质来选择。因此,
对于包括大量对数函数计算的DSP算法,查找表可被配置成映射相关对数函数诸如In(X)、1glO (X)、log2(x)等。然而,当在不同DSP应用中运行其它类型的DSP算法时,同一数据路径电路的查找表可被配置成映射完全不同的预定的数学函数诸如平方根或除法函数。然而,通过选择可读和可写存储器类型用于存储第一查找表,数字硬件计算器提供非常灵活的数学计算引擎或协处理器。此性质允许同一数据路径电路通过将第一查找表的表格数据内容简单地修改成所考虑的预定的数学函数而在各种类型DSP算法中加速数学计算。
[0023]在本数据路径电路的另一有利的实施方案中,多路复用器被配置成选择性地将所述数学函数结果和所述第一输入操作数或所述第二输入操作数的一个传送到所述MAC结构的所述算术逻辑单元作为所述第一变量。多路复用器用于使数字硬件计算器与MAC结构紧密集成,使得来自很难计算的函数的数学函数结果可以直接注入算术逻辑单元而没有任何时间延迟或没有对暂存器、寄存器或存储器移动操作等的任何需要。多路复用器优选地具有耦合到输入存储器元件的第一输入端和耦合到保持数学函数结果的数字硬件计算器的输出寄存器的第二输入端。在这种方式下,第一变量的源头可以用通过适当地控制多路复用器的选择输入端的逻辑状态以灵活方式来选择。
[0024]技术人员将理解,数字硬件计算器可包括插在第一查找表前面的各种预处理函数,用于预处理第一和第二输入操作数或其它输入变量。同样,后处理函数诸如先前讨论的内插器,可插在第一查找表之后以在计算器输出寄存器中存储最终的数学结果之前进一步处理所产生的数学函数结果。在一个实施方案中,压缩器函数插在所述输入存储器元件和所述第一查找表之间。所述压缩器函数被配置成将压缩器输入值的数值范围映射到较小的压缩器输出值的数值范围。多路复用器此外被配置成选择性地将所述第一输入操作数和所述第二输入操作数中的一个以及所述第一输入操作数和所述第二输入操作数的相应的压缩值传送到所述查找表的输入端。在可用于减少第一查找表的尺寸的表格查找之前,压缩器函数可用于减少第一和/或第二输入操作数或其它输入变量的数值范围。
[0025]在一些实施方案中,本数据路径电路可包括除了第一查找表外的一个或多个另外的查找表。这些另外的查找表优选地适用于映射各自的另外的很难计算的数学函数。这允许通过数字硬件计算器计算与先前讨论的基本函数像上面讨论的对数、除法、指数、平方根相比的高阶数学函数。根据一个此类实施方案,数字硬件计算器包括可操作地耦合在所述第一查找表的输出端和所述计算器输出寄存器之间的第二查找表。所述第二查找表包括根据第二预定的数学函数映射到多个相应数学函数结果的多个表项目值。这后一种实施方案可以例如被配置为计算高阶数学函数如:
[0026]负雅可比对数函数,min*(x,y)=Min(x, y) - ln(l+eHxnr|)以及
[0027]最大值-对数函数,max*=max(x, y)+In (1+e eHx-yl));
[0028]其中X可等于所述第一输入操作数且I等于所述第二输入操作数。第一预定的数学函数可包括用于基于查找表计算l+eHx_yl的指数函数;第二预定的数学函数可包括自然对数函数,使得自然对数采用在第一查找表的输出端提供的数学函数结果。
[0029]技术人员将明白,术语“并行计算”,如应用于数字乘法和累加电路与数字硬件计算器的各自的算术计算的,意味着这些算术计算可同时运行而不是相继运行。如可选地陈述的,术语‘并行计算’意味着当数字乘法和累加电路与数字硬件计算器均操作时由数字乘法和累加电路运行的计算周期在时间上与由数字硬件计算器运行的计算周期至少部分重叠。因此,数据路径电路被配置成使得数学函数操作、数字硬件计算器与数字乘法和累加电路可完全独立地运行。MAC结构和数字硬件计算器的同时计算能力并不意味着各自的计算具有相同的周期时间或被放置在数据路径电路的公共流水线级。数字硬件计算器可例如具有比数字乘法和累加电路长的周期时间,以便传递各自的累加乘法结果的多个MAC操作可与数字硬件计算器的单一周期同时执行,反之亦然。可选地,适当数量的停顿周期可插入MAC结构的流水线中直到数字硬件计算器通过传递计算器结果已经完成其计算周期。
[0030]如上所述,所述第一输入操作数和所述第二输入操作数的每个、所述多个表项目值、所述多个相应数学函数结果以及优选地所述数据路径电路的所有其它变量优选地用选自{2的补码、带符号量值、冗余二进制带符号数字量、进位保留}的组的常见二进制数格式来表示。
[0031]本发明的第二方面涉及一种数字信号处理器电路组件,其包括:
[0032]数字信号处理器,其包括:
[0033]根据其上述实施方案的任一项的数据路径电路,
[0034]可读和可写数据存储器空间,其用于存储所述第一查找表;
[0035]非易失性存储器,其存储:
[0036]用于在所述数字信号处理器上运行的数字信号处理算法的一组可运行程序指令,
[0037]查找表数据,其包括所述多个表项目值和所述多个相应数学函数结果。
[0038]非易失性存储器可随所述数字信号处理器集成在公共半导体衬底上。可选地,非易失性存储器可包括单独的集成电路例如串行EEPROM或快闪式存储器。串行EEPROM或快闪式存储器和数字信号处理器可安装在共享载体诸如印刷电路板上并耦合用于通过共享数据总线和各自的数据端口或接口交换数据。
[0039]根据本发明的第三方面,提供了一种产生用于上述数字信号处理器电路组件的所述查找表数据内容的方法,所述方法包括步骤:
[0040]选择用于所述数字信号处理器的数字信号处理算法,选择将制成表的所述数字信号处理算法的数学函数,
[0041]选择所述第一查找表的最小表项目值、最大表项目值和表步长值,
[0042]通过基于所述选择的数学函数、所述最小表项目值、所述最大表项目值和所述表步长值计算所述多个表项目值和所述多个相应数学函数结果而产生所述查找表数据内容,
[0043]将所述查找表数据内容写入到所述非易失性存储器的地址空间。
[0044]根据本发明的方法,查找表存储在DSP的先前讨论的可读和可写存储器类型中,其优选地被安排在DSP的数据存储器中。表格数据内容可结合DSP源代码的开发在适当的基于PC或工作站的软件工具或代码开发环境中进行选择或定义。软件工具可例如适用于基于程序员或用户说明诸如表大小、最小和最大表项目值、二进制数格式等来计算适当的表格值。表项目值和伴随的数学函数结果可由利用PC或工作站的计算资源的软件工具来计算并随后被写入和存储于非易失性存储器的地址空间。表项目值和伴随的数学函数结果可通过编程端口或接口从PC或工作站传送到数字信号处理器(DSP)。在编程后的DSP电路初始化或上电时,表项目值和伴随的数学函数结果可在运行DSP算法期间被读入或转移到DSP的可读和可写存储器空间诸如数据RAM空间或数据寄存器堆,以允许在DSP上运行数字信号处理算法期间快速访问表格数据内容。
【专利附图】

【附图说明】
[0045]本发明的优选实施方案将结合附图进行更详细地描述,在附图中:
[0046]图1是根据本发明的第一实施方案的用于数字信号处理器的数据路径电路的示意图;以及
[0047]图2是图1上描绘的数据路径电路的数字硬件计算器的示意图。
【具体实施方式】
[0048]图1是数据路径电路100的示意图,它尤其适合于集成于数字信号处理器中,其中常见的实时信号处理算法需要快速计算复杂的数学函数。然而,普通技术人员将明白,本数据路径电路100还可以被集成在传统的微处理器设计例如数学硬件加速器或协处理器中。
[0049]数据路径电路100包括输入存储器元件或块102,例如输入数据寄存器或RAM位置,其被配置用于存储至少第一和第二输入操作数。第一和第二输入操作数可用定点或浮点格式表示并且数据路径电路适用于每种类型的数字格式。技术人员将明白,输入存储器元件120可被配置成存储一个或多个附加的输入操作数。数据路径电路100包括数字乘法和累加电路(MAC结构)与数字硬件计算器104,两者都被配置用于接收第一和第二输入操作数并且在这些操作数上运行并行计算。MAC结构包括传统的数字乘法器106(包括多个部分乘积发生器)和合适的加法器结构,被配置用于输入存储器元件120中保持的第一和第二输入操作数的乘法并提供乘法结果。技术人员将理解,数字乘法器可以是与多种类型的传统的数字乘法器体系结构的任一项大致相同的设计或结构。在一个实施方案中,加法器结构可包括进位传输加法器或进位保留加法器。数字乘法器可包括部分乘积发生器的布斯(Booth)编码例如基-4或基-8布斯编码。当尺寸取决于第一和第二输入操作数的所选择的字长时,传统的数字乘法器106的尺寸可变化很大。取决于特定应用的要求,这些字长可以变化很大,并且可相同或不同。第一和第二输入操作数的每个的字长可例如落在8位和64位之间。第一和第二输入操作数优选用常见的二进制数格式诸如选自{2的补码、带符号量值、冗余二进制带符号数字量、进位保留}的组的格式来表示。
[0050]由数字乘法器106产生的乘法结果通过适当的内部数据总线被传送到算术逻辑单元110,其配置成将乘法结果加到第一变量。第一变量在多路复用器108的多路复用器输出端提供。算术逻辑单元110的输出是累加的乘法结果,其被传递到耦合算术逻辑单元的第一累加器112的输入端,如图所示。第一累加器112被配置成接收、临时存储和操纵累加的乘法结果,其通常表示特定DSP算法在运行下的中间结果。操纵累加的乘法结果可涉及多种类型的算术操作,诸如舍位、舍入、向左或向右调整等。技术人员将明白,数字乘法器106和算术逻辑单元110优选地被设计成具有传统MAC结构。数字乘法器106可被配置成使N位被乘数即第一输入操作数与M位乘数即第二输入操作数相乘。数字乘法器106优选地包括多个部分乘积发生器,其适用于选择N位被乘数的各自的部分乘积,其中每个部分乘积选自根据预定的编码方案诸如布斯编码由与所述M位乘数的预定位集相关的所述N位被乘数计算的一组部分乘积结果。传统MAC结构有利地支持现有的DSP硬件构件、DSP代码和编程模型/结构的重新使用。本MAC结构的传统结构从而提供向后兼容性,允许快速移植现有的现场验证的DSP软件和算法并优化其运行。
[0051]多路复用器108与MAC结构以有利的方式紧密集成,使得第一变量的源头可以通过控制多路复用器108的选择输入端SO的逻辑状态以灵活方式来选择。取决于SO的逻辑状态,由数字硬件计算器104计算的数学函数结果或者保持在输入存储器元件102中的第一输入操作数和第二输入操作数中的一个通过多路复用器108的多路复用器输出端传送到算术逻辑单元HO。同样,保持在输入存储器元件102中的任何其它相关的操作数或变量可被传送到算术逻辑单元110。因此,在SO的一个状态中,MAC结构能够快速计算:
[0052]F=(x*y)+z;其中z表示选择输入端SO的第一逻辑状态中的第三输入操作数。在SO的第二、相对的逻辑状态中,数字硬件计算器104被配置成快速计算函数如:
[0053]F=(x*y)+ln(z)或
[0054]F=(x*y)+ln(x)或
[0055]F=(x*y)+e(z)或
[0056]F= / cosx dx=sinx+C 或
[0057]F= f tanx dx=_ln|cosx|+C
[0058]在其它实施方案中,数字硬件计算器104被配置成基于查找表210来计算概率函数。概率函数可包括二项式函数。
[0059]数字硬件计算器104优选地包括可操作地耦合在计算器输入端和计算器输出端之间的一个或多个查找表。计算器输入端优选地耦合到至少第一和第二输入操作数,而且还可耦合到其它输入操作数或附加的数据寄存器,用于接收相关的输入操作数或变量。数字硬件计算器104的输出端耦合到第二累加器114,如果需要,用于操纵来自数字硬件计算器104的计算的计算器结果。数字硬件计算器104被配置成在输入操作数上执行某些算术操作,以便基于一个或多个查找表有效地计算一个或多个很难计算的数学函数诸如对数函数、指数函数、除法函数和平方根函数,如下面进一步详细描述的。[0060]图2是根据优选实施方案的数据路径电路的数字硬件计算器104的示意图。数字硬件计算器104从输入存储器元件102接收输入操作数并可通过多路复用器204、MUX-2将未处理的输入操作数传送到查找表210的项目。在替代方案中,输入操作数可首先被传送到任选的压缩器函数202并且输入操作数的经处理或经压缩的值被传送到查找表210的项目。由对数/线性选择函数208控制的逻辑选择信号被应用至多路复用器204的选择输入端,并从而控制输入操作数以上面何种格式传送给查找表210。压缩器函数将输入操作数的数值范围例如用于带符号16位整数表示的+32768—32767映射成较小数值范围的压缩器输出值。输入操作数或变量的数值范围的这种减小可以提高由表示预定数学函数的查找表输出的数学函数结果的准确度。或对于给定输出的数学函数结果的准确度,压缩操作可相反地减小所需的表项目值的数量和表的大小,例如对数压缩器函数将导致大量表项目在
0.0和1.0之间,对于更大表项目值,表项目的数量减少。该特征允许算术函数如平方根函数映射到比线性步骤在表项目之间要求的小的查找表。取决于预定的数学函数的特性、输入操作数的数值范围和特定DSP算法强加的准确度要求,查找表210的尺寸将自然地变化。在若干不例性2维表格实施方案中,查找表包括256和4096个单独的表项目之间,诸如在512和1024之间的项目,与相应数量的数学函数结果。
[0061]在上文提及的一些实施方案中,查找表210可具有2-维结构,即将单一表项目值映射到单一相应的数学函数结果。然而,技术人员将明白,某些类型的预定数学函数可能需要两个或多个输入操作数映射到单一相应的数学函数结果。例如,对于除法操作,其中被除数或者分子可以是第一输入操作数并且除数或分母是第二输入操作数。这种查找表可以被认为是3维表格,其中每对输入操作数根据除法操作映射到单一相应的数学函数结果。
[0062]保持在查找表210中的数值可以存储在不同类型的存储器元件中,这取决于用于数据路径电路100的集成的半导体工艺中可用的应用和存储器选项。在一个实施方案中,查找表210可被设计或制造成存储多个表项目值和多个相应的数学函数结果的直接(掩模)或可合成的ROM。查找表在ROM中的实现通常使用最小的半导体芯片面积并导致与表读取操作有关的低功耗。另一方面,由查找表210映射的数学函数必须在数据路径电路100的设计时进行选择并在此后保持固定,这限制了灵活性。
[0063]在替代和同样有利的实施方案中,查找表210被存储在存储多个表项目值和多个相应的数学函数结果的可读和可写存储器类型诸如RAM、EPROM或EEPR0M、快闪式存储器、寄存器等中。这个实施方案允许预定的数学函数在运行时改变,结合产生用于包括本数据路径电路100的DSP设备的可运行程序指令或代码。根据所编程的DSP算法的性质,可因此用合适的编程工具选择预定的数学函数。因此,对于包括大量对数函数计算的DSP算法,查找表可被配置为映射相关对数函数诸如ln(X) Uogltl(X) Uog2(X)等。然而,当运行其它类型的DSP算法时,同一数据路径电路的查找表可被重新配置为映射完全不同的预定的数学函数,诸如以上讨论的平方根或除法函数中的一个。通过使用可读和可写存储器类型用于存储查找表,数字硬件计算器104被转换为非常灵活的数学计算引擎或协处理器。此性质允许同一数据路径电路104通过简单地修改查找表的内容在大量不同的DSP算法中加速数学计算。表项目值和伴随的数学函数结果可结合DSP源代码的开发在适当的软件工具或环境中进行选择或定义。软件工具可例如适用于基于用户说明诸如表的大小、最小和最大表项目值、二进制数格式等来计算适当的表格值。表项目值和伴随的数学函数结果可被下载到能够访问DSP电路的非易失性数据存储器空间用于存储。在DSP电路初始化或上电时,表项目值和伴随的数学函数结果可被读入或转移到易失性数据存储器区如RAM区或寄存器堆,在运行DSP算法期间保持查找表104的数据内容以允许快速访问表格内容。图2中描绘的数字硬件计算器104包括内插器212,如果输入操作数或压缩输入操作数的值不能精确地匹配任一表项目值,那么内插器212可方便地用于在查找表210表项目中填充间隙或通常改善数学函数结果的准确度。内插器212被配置用于从查找表210读取或接收第一和第二数学函数结果。第一和第二数学函数结果优选地对应于输入操作数的值之上和之下的最接近的数学函数结果。内插器212被配置成将内插操作或函数应用到第一和第二数学函数结果以产生内插的数学函数结果。技术人员将理解,不同类型的内插操作或方案可被应用诸如样条内插或包括线性内插(它是多项式内插的特殊情况)的多项式内插。同样,取决于预定的数学函数的复杂性和任何特定应用的准确度要求,内插函数可将附加的数学函数结果利用到上述第一和第二数学函数结果。对于多维查找表,内插器可以是双线性(N=3)或三线性(N=4)内插器。对于查找表的每个额外维数,内插器要求两个附加的数学函数结果作为输入,使得双线性内插器利用来自查找表的四个数学函数结果并且三线性查找表要求来自查找表的六个数学函数结果。
[0064]由内插操作产生的数学函数结果被传送到可设置的输出限制器214的第一输入端。可设置的输出限制器214被配置成处理内插数学函数结果的边界条件,例如通过将结果舍位到数学函数结果的预定的可允许的数值范围。如通过数据总线或线205所示的,可设置的输出限制器214还可以适于直接从MUX2的输出端接收第二输入以确定查找表210的上限和/或下限是否已经被超过。此外,可设置的输出限制器214可被配置成确定如何已经超过上限和/或下限。该信息可应用于确定如何以最佳方式限制输出。
[0065]受限的和/或内插的数学函数结果最后临时存储在输出寄存器216中。输出寄存器优选地耦合到图1上描绘的MAC结构中的多路复用器108的输入端,使得存储的数学函数结果可以直接注入MAC结构。因此,数字硬件计算器104可被用来计算第一和/或第二输入操作数的很难计算的数学函数,同时其中此数字乘法器106计算相同输入操作数或不同输入操作数的乘积。在这种方式下,DSP算法的数学计算可分成不同部分或段,所述不同部分或段在数据路径电路的特定计算硬件资源即数字硬件计算器104或MAC结构上并行运行,其最适于所考虑的特定类型的数学函数。在这种方式下,用于FIR滤波器计算等的传统乘法-累加操作可在MAC结构上计算,而函数如先前讨论的对数、指数、平方根等可在数字硬件计算器104上计算。DSP算法在MAC结构和数字硬件计算器104之间的这种分割会导致相当大的功率节省和更快的DSP算法运行,DSP算法使用传统的乘法-累加计算和上面讨论的很难计算的数学函数的混合。用于特定DSP算法的不同类型数学操作之间的分割可以例如在实现所考虑的DSP算法的可运行代码产生期间由适当配置的编译器工具执行。编译器工具或环境可以配置成将一个或多个很难计算的数学函数引导至数字硬件计算器104。可以用多种方法来进行哪种很难计算的数学函数引导至数字硬件计算器104的决定。在一种情况中,这个决定可以基于用户的干预做出。在其它情况下,该决定可以基于很难计算的数学函数的内部优先级表。在另一实施方案中,DSP电路上DSP算法的函数模拟可应用于确定在DSP电路上哪一种或哪些种数学函数消耗最大数量的计算周期。
【权利要求】
1.一种用于数字信号处理器的数据路径电路,其包括:
输入存储器元件,其用于存储第一输入操作数和第二输入操作数, 数字乘法和累加电路与数字硬件计算器,其被配置用于并行计算; 所述数字乘法和累加电路包括: 第一输入端和第二输入端,其均连接到所述输入存储器元件,用于分别接收所述第一输入操作数和所述第二输入操作数; 多个部分乘积发生器,其被配置用于产生所述第一输入操作数或所述第二输入操作数的多个部分乘积; 加法器结构,其被配置成接收和组合所述多个部分乘积以产生乘法结果; 算术逻辑单元,其被配置用于接收所述乘法结果并向其加入第一变量以计算累加的乘法结果; 第一累加器,其耦合到所述算术逻辑单元并被配置用于接收和操纵所述累加的乘法结果; 所述数字硬件计算器包括连接到所述第一输入操作数和所述第二输入操作数中的一个的计算器输入端和用于存储计算的计算器结果的计算器输出寄存器, 第一查找表,其可操作地耦合在所述计算器输入端和所述计算器输出寄存器之间,其中所述第一查找表包括根据第一预定的数学函数映射到多个相应数学函数结果的多个表项目值。
2.根据权利要求1所述的数据路径电路,其中所述第一输入操作数包括N位被乘数且所述第二输入操作数包括M位乘数; 所述多个部分乘积发生器适用于选择所述N位被乘数的各自的部分乘积,其中每个部分乘积选自根据预定的编码方案由与所述M位乘数的预定位集相关的所述N位被乘数计算的一组部分乘积结果;M和N的每个表示正整数。
3.根据权利要求1所述的数据路径电路,其中所述第一预定的数学函数选自{对数函数、指数函数、除法函数、平方根函数}的组。
4.根据权利要求1所述的数据路径电路,其中所述第一查找表包括将各自的N-1多个表项目值映射到所述相应数学函数结果的N维; 其中N为大于2的正整数。
5.根据权利要求1所述的数据路径电路,其中所述数字硬件计算器包括内插器,所述内插器被配置用于: 从所述第一查找表读取第一数学函数结果和第二数学函数结果, 将内插操作应用到所述第一数学函数结果和所述第二数学函数结果以产生内插的数学函数结果。
6.根据权利要求1所述的数据路径电路,其中所述第一查找表包括存储所述多个表项目值和所述多个相应数学函数结果的掩模可编程只读存储器(ROM)和可合成只读存储器(ROM)中的一个。
7.根据权利要求1所述的数据路径电路,其中所述查找表包括存储所述多个表项目值和所述多个相应数学函数结果的可读和可写存储器;由此支持运行时对所述第一预定的数学函数的改变。
8.根据权利要求7所述的数据路径电路,其中所述可读和可写存储器包括选自{RAM、EPROM、EEPROM、快闪式存储器、数据寄存器}的组的存储器元件。
9.根据权利要求1所述的数据路径电路,包括多路复用器,其被配置成选择性地将所述数学函数结果和所述第一输入操作数或所述第二输入操作数的一个传送到所述算术逻辑单元作为所述第一变量。
10.根据权利要求1所述的数据路径电路,其包括: 压缩器函数,其被插入到所述输入存储器元件和所述第一查找表之间,所述压缩器函数被配置成将压缩器输入值的数值范围映射到较小的压缩器输出值的数值范围; 多路复用器,其被配置成选择性地将所述第一输入操作数和所述第二输入操作数中的一个以及所述第一输入操作数和所述第二输入操作数中的一个的相应的压缩值传送到所述第一查找表的输入端。
11.根据权利要求1所述的数据路径电路,其中所述数字硬件计算器还包括: 第二查找表,其可操作地耦合在所述第一查找表的输出端和所述计算器输出寄存器之间; 所述第二查找表包括根据第二预定的数学函数映射到多个相应数学函数结果的多个表项目值。
12.根据权利要求11所述的数据路径电路,其中所述数字硬件计算器被配置用于计算下列函数的至少一个: 负雅可比对数函数,min*(x,y) =Min(x,y) -ln(l+eHx_yl)以及 最大值-对数函数,max*=max(x, y)+ln(l+e eHx-yl)); 其中X等于所述第一输入操作数、y等于所述第二输入操作数,所述第一预定的数学函数包括指数函数且所述第二预定的数学函数包括对数函数。
13.根据权利要求1所述的数据路径电路,其中由所述数字乘法和累加电路运行的计算周期在时间上与由所述数字硬件计算器运行的计算周期至少部分重叠。
14.根据权利要求2所述的数据路径电路,其中所述预定编码方案包括选自{基-8和基-16、基-32、基-64、基-128)布斯编码的组的布斯编码方案。
15.根据权利要求1所述的数据路径电路,其中所述第一输入操作数和所述第二输入操作数的每个、所述多个表项目值、所述多个相应数学函数结果用选自{2的补码、带符号量值、冗余二进制带符号数字量、进位保留}的组的常见二进制数格式来表示。
16.一种数字信号处理器电路组件,其包括: 数字信号处理器,其包括: 根据权利要求1所述的数据路径电路, 可读和可写数据存储器空间,其用于存储所述第一查找表; 非易失性存储器,其存储: 用于在所述数字信号处理器上运行的数字信号处理算法的一组可运行程序指令, 包括所述多个表项目值和所述多个相应数学函数结果的查找表数据内容。
17.—种产生用于根据权利要求16所述的数字信号处理器电路组件的所述查找表数据的方法,所述方法包括以下步骤: 选择用于所述数字信号处理器的数字信号处理算法 ,选择将制成表的所述数字信号处理算法的数学函数, 选择所述第一查找表的最小表项目值、最大表项目值和表步长值, 通过基于所述选择的数学函数、所述最小表项目值、所述最大表项目值和所述表步长值计算所述多个表项目值和所述多个相应数学函数结果而产生所述查找表数据内容, 将所述查找表数据内容写`入到所述非易失性存储器的地址空间。
【文档编号】G06F7/533GK103677736SQ201310396061
【公开日】2014年3月26日 申请日期:2013年9月4日 优先权日:2012年9月4日
【发明者】米卡埃尔·莫尔滕森 申请人:亚德诺半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1