首页> 中国专利> 数字信号处理器的数据路径电路

数字信号处理器的数据路径电路

摘要

数据路径电路可包括用于并行计算的数字乘法和累加电路(MAC)与数字硬件计算器。数字硬件计算器和MAC可耦合到用于接收输入操作数的输入存储器元件。该MAC可包括数字乘法器结构,其具有耦合到加法器的部分乘积发生器以使第一和第二输入操作数相乘并产生乘法结果。该数字硬件计算器可包括耦合在计算器输入和计算器输出寄存器之间的第一查找表。第一查找表可包括根据第一预定的数学函数映射到相应数学函数结果的表项目值。数字硬件计算器可配置成基于第一查找表计算很难计算的数学函数诸如对数函数、指数函数、除法函数和平方根函数。

著录项

  • 公开/公告号CN103677736A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 亚德诺半导体股份有限公司;

    申请/专利号CN201310396061.X

  • 发明设计人 米卡埃尔·莫尔滕森;

    申请日2013-09-04

  • 分类号G06F7/533(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人刘倜

  • 地址 丹麦阿勒鲁德

  • 入库时间 2023-12-17 00:50:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-05

    授权

    授权

  • 2014-07-02

    著录事项变更 IPC(主分类):G06F7/533 变更前: 变更后: 申请日:20130904

    著录事项变更

  • 2014-04-23

    实质审查的生效 IPC(主分类):G06F7/533 申请日:20130904

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

本发明涉及用于数字信号处理器的数据路径电路。数据路径电路 包括配置用于并行计算的数字乘法和累加电路(MAC结构)与数字硬 件计算器。数字硬件计算器和MAC都耦合到用于接收第一二输入操 作数和第二输入操作数的输入存储器元件。该MAC可包括常规的数 字乘法器结构,其具有耦合到加法器结构的多个部分乘积发生器以使 第一和第二输入操作数相乘并产生乘法结果。该数字硬件计算器包括 可操作地耦合在计算器输入和计算器输出寄存器之间的第一查找表。 第一查找表包括根据第一预定的数学函数映射到多个相应数学函数 结果的多个表项目值。数字硬件计算器可有利地配置成基于第一查找 表计算很难计算的数学函数诸如对数函数、指数函数、除法函数和平 方根函数。

发明背景

数字乘法器在数字信号处理器(DSP)中被广泛使用用于二进制数 的快速乘法。许多基本DSP算法诸如FIR滤波器、IIR滤波器、卷积 和快速傅立叶变换(FFT)严重依赖于DSP的乘法-累加性能,使数字乘 法器成为DSP的主要部件。数字乘法器通常伴有加法器以形成快速 乘法-累加(所谓的MAC)计算结构。二进制数可以用各种二进制数格 式诸如2的补码、带符号量值等表示。二进制数可用定点格式或浮点 格式表示。取决于特定应用的格式和要求,用来表示N位被乘数(Y) 的每个的位数即N和M位乘数(X)的每个的位数即M可以变化很大。 用于表示N位被乘数和M位乘数的每个的位数通常介于8和56之间。 这些传统MAC结构非常适于提供输入操作数或上述基本DSP算法的 变量的快速乘法和加法。

然而,大量信号处理算法需要基础数学函数,这些基础数学函数 很难计算,这些实例是对数、指数、除数和平方根。这些很难计算的 函数共有难以映射到二进制数学的共同特征,例如对数函数,或者它 们具有非确定性的性质例如除法操作。在此上下文中,非确定性意味 着提前预测产生的数学序列是非常困难或者不实际的。该事实导致必 须搜索正确解决方案的算术电路设计。作为实例,人们可以将数字乘 法器和数字除法器的数学序列的预测进行比较。在传统信号处理算法 和可编程数字信号处理器的设计中,这些很难计算的数学函数的快速 和有效计算已经在很大程度上不被注意。通过使用可编程DSP的传 统MAC结构的软件例程,或者在替代方案中,通过建立专门适于计 算特定类型的困难数学函数的定制数字状态机或定制数据路径,该方 法将解决这些很难计算的数学函数。该特定数学函数可以是对数。

然而,在此类定制数字状态机或定制数据路径周围建立的DSP 缺乏以快速和有效节能的方式运行其它类型的很难计算的数学函数 和相关联的DSP算法的灵活性。通过适当配置的DSP软件,可编程 DSP的传统MAC结构可以适用于运行宽范围的DSP算法。然而, 当运行上述很难计算的数学函数时,传统MAC结构令人遗憾地缓慢 和功率低效。这是因为传统MAC结构被优化以执行乘法、加法和减 法操作,并因而通过设计不适合的操作来计算其它类型的数学函数。 因此,大量的MAC周期通常被计算困难数学函数的程序例程消耗。 这在传统MAC结构上强加了高计算负荷,通过阻断或延迟形成所考 虑的DSP算法的部分的其它数学函数而损害了可编程DSP的计算性 能。

因此,存在对数据路径电路的需要,数据路径电路包括传统的数 字乘法和累加电路(MAC)与数字硬件计算器或数学加速器,MAC用 于执行有效和快速的乘法、加法和减法操作,数字硬件计算器或数学 加速器用于上述很难计算的数学函数的有效和快速计算。如果(MAC) 和数字硬件计算器能够并行操作来改善数据路径电路的计算吞吐量, 那么甚至将更具吸引力。因此,为了将运行的不同类型的数学函数的 不同需要,可以优化MAC和数字硬件计算器的硬件体系结构或设计。

US7,284,027涉及在用于实时DSP应用的定点或浮点数上执行 高速算术计算的方法和电路单元。该公开涉及用于定点或浮点复数的 乘法结合快速FFT计算的定制乘法器体系结构/拓扑结构。复数乘法 器结构基于数域计算通过对数加法操作来乘以复数输入数并随后应 用取幂以返回在线性域中的乘法结果。

US7,539,717公开了使用基于表格的泰勒级数近似来计算DSP 应用中的浮点数的对数的方法和硬件电路块。在浮点输入操作数上执 行某些预处理步骤的多个专用硬件块耦合到浮点FMAD,其基于预处 理压缩值执行浮点输入操作数的对数的最终计算。专用硬件块包括第 一查找表和第二查找表,分别存储与对数函数相关联的全精度变量和 压缩变量值。

发明内容

本发明的第一方面涉及一种用于数字信号处理器诸如由可运行 程序指令控制的软件可编程数字信号处理器的数据路径电路。数据路 径电路包括用于存储第一和第二输入操作数的输入存储器元件例如 输入寄存器。数据路径电路此外包括配置用于并行计算的数字乘法和 累加电路和数字硬件计算器。所述数字乘法和累加电路包括:

第一输入端和第二输入端,其均连接到所述输入存储器元件,用 于分别接收所述第一输入操作数和所述第二输入操作数;

多个部分乘积发生器,其被配置用于产生所述第一输入操作数或 所述第二输入操作数的多个部分乘积;

加法器结构,其被配置成接收和组合所述多个部分乘积以产生乘 法结果;

算术逻辑单元,其被配置用于接收所述乘法结果并向其加入第一 变量以计算累加的乘法结果;

第一累加器,其耦合到所述算术逻辑单元并被配置用于接收和操 纵所述累加的乘法结果。所述数字硬件计算器包括连接到所述第一输 入操作数和所述第二输入操作数中的一个的计算器输入端和用于存 储计算的计算器结果的计算器输出寄存器。所述数字硬件计算器的第 一查找表可操作地耦合在所述计算器输入端和所述计算器输出寄存 器之间。第一查找表包括根据第一预定的数学函数映射到多个相应数 学函数结果的多个表项目值。

包含在本数据路径电路中的数字硬件计算器向数据路径电路提 供了很多益处。这些尤为明显,如果数字硬件计算器被配置成计算多 个先前讨论的很难计算的数学函数诸如对数函数、指数函数、除法函 数和平方根函数中的一个。这些算术函数或者难以映射到二进制数学 电路例如对数函数,或者是非确定性的例如除法函数。然而,这些很 难计算的数学函数可以用径直的方式以期望的精度映射到查找表。通 过选择表项目值的数量或表的大小,可以达到期望的精度水平。此外, 精度可通过在相关的数学函数结果之间应用公知的表内插方案来改 善。因此,对于所考虑的特定类型的算术操作,提供并行操作数字乘 法和累加电路(MAC结构)与数字硬件计算器允许DSP算法的数学计 算被分割成在数据路径电路的最佳计算硬件上同时运行的单独部分 或程序例程。在这种方式下,本数据路径电路能够在MAC结构上运 行传统的乘法-累加操作用于FIR滤波器、IIR滤波器等,MAC结构 对这些类型的计算是有效的。同时,数学函数像先前所讨论的对数、 除法、指数、平方根等可以在适当配置的数字硬件计算器上有效地运 行。特定DSP算法的数学函数在数据路径电路的不同计算硬件资源 之间的这种分割导致相当大的功率节省和许多DSP算法的更快运行, 其利用乘法、加法和减法操作与上面讨论的困难的数学函数的混合。 因此,数字硬件计算器可适用于支持基于贝叶斯或概率计算的非常有 用的DSP算法的全部类型的有效计算。这类有用的DSP算法包括通 常基于维特比算法的隐马尔可夫模型(HMM),维特比算法又严重依 赖于对数函数的计算。

此外,通过在本数据路径电路中维持传统的MAC结构,有利于 现有的DSP硬件构件、现有的可运行DSP程序例程和现有的编程模 型/结构的重新使用。传统的MAC结构是高度复杂的数字电路构件或 结构,其基于几十年的R&D及伴随的体系结构改进以小芯片面积消 耗、密集的电路布局和低功耗来提供快速乘法和加法操作。同时,通 过将很难计算的数学函数的计算引导至数字硬件计算器以便改善计 算吞吐量或性能和降低数据路径电路的功耗,新DSP软件可以利用 本数据路径体系结构的优点。对于特定DSP算法,算术操作在MAC 结构和数字硬件计算器之间的分割可以在实现DSP算法的可运行代 码或程序例程产生期间由适当配置的编译器执行。

通常,第一输入操作数可包括N位被乘数且第二输入操作数可 包括M位乘数,其中M和N的每个表示正整数,其是第一和第二输 入操作数的各自字长。N和M的值可相同或它们可不同。N和M的 每个的值可例如落在8位和64位之间。数字乘法器优选地包括编码 方案以减少部分乘积发生器的数量。根据此类实施方案,所述多个部 分乘积发生器适用于选择所述N位被乘数的各自的部分乘积,其中 每个部分乘积选自根据预定的编码方案诸如布斯编码由与所述M位 乘数的预定位集相关的所述N位被乘数计算的一组部分乘积结果。 技术人员将明白,取决于数字乘法器的尺寸和复杂性,可应用不同基 数的布斯编码诸如选自{基-4、基-8和基-16、基-32、基-64、基-128} 布斯编码的组的布斯编码方案。

二进制数诸如第一和第二输入操作数在本数据路径电路中优选 地用常见的二进制数格式诸如选自{2的补码、带符号量值、冗余二 进制带符号数字、进位保留}的组的格式来表示。

在本发明的一些实施方案中,第一查找表可具有2-维结构,即将 每个单一表项目值映射到单一相应的数学函数结果。然而,在其它实 施方案中,第一查找表可具有N维结构,其中N是大于2的正整数。 在后种实施方案中,所述第一查找表包括将各自的N-1多个表项目值 映射到所述相应数学函数结果的N维。这对于计算许多算术操作诸 如除法是非常有用的,在除法中被除数或分子可以是第一输入操作数 并且除数或分母是第二输入操作数。映射此类除法函数的查找表可由 3维表格形成,其中每对输入操作数根据除法操作映射到单一相应的 数学函数结果。

在另一有用的实施方案中,数字硬件计算器包括用于表格内插 的内插器。内插器被配置用于从第一查找表读取第一和第二数学函数 结果并将内插操作应用到第一和第二数学函数结果以产生内插的数 学函数结果。如果相关输入操作数的值或其它变量不能精确地匹配任 一表项目值,那么内插器可应用于在第一查找表的表项目中填充间隙 或通常改善数学函数结果的准确度。技术人员将理解,不同类型的内 插操作或方案可通过内插器应用,诸如样条内插或包括线性内插(它 是多项式内插的特殊情况)的多项式内插。同样,取决于第一预定的 数学函数的复杂性和任何特定应用的准确度要求,内插函数可包括将 除上述第一和第二数学函数结果外的附加的数学函数结果。

取决于在用于制造数据路径电路的半导体工艺中可用的应用和 存储器选项,不同类型的存储器元件可用于存储第一查找表的多个表 项目和多个数学函数结果的各自值,即表数据。在一个实施方案中, 查找表可被制造为存储表格数据的掩模可编程或可合成ROM。查找 表在ROM中的实现通常消耗最小的半导体芯片面积并导致与查找表 中读取操作有关的低功耗。另一方面,由第一查找表映射的预定的数 学函数必须在数据路径电路的设计时进行选择并在此后保持固定,这 在一些情况下限制了灵活性。

在替代和同样有利的实施方案中,查找表包括存储表格数据内容 的可读和可写存储器元件。在此实施方案中,所述可读和可写存储器 优选地包括选自{RAM、EPROM、EEPROM、快闪式存储器、数据 寄存器}的组的存储器元件。技术人员将理解,查找表可包括上面所 列类型的可读和可写存储器元件的组合。使用可读和可写存储器元件 用于存储表格数据允许第一预定的数学函数在运行时改变,结合产生 用于包括本数据路径电路的DSP设备的可运行程序例程或代码。预 定的数学函数因此可通过代码研发者或程序员借助于适当的编程工 具或环境诸如或SigmaStudioTM根据编程DSP算法的 性质来选择。因此,对于包括大量对数函数计算的DSP算法,查找 表可被配置成映射相关对数函数诸如ln(x)、log10(x)、log2(x)等。然 而,当在不同DSP应用中运行其它类型的DSP算法时,同一数据路 径电路的查找表可被配置成映射完全不同的预定的数学函数诸如平 方根或除法函数。然而,通过选择可读和可写存储器类型用于存储第 一查找表,数字硬件计算器提供非常灵活的数学计算引擎或协处理 器。此性质允许同一数据路径电路通过将第一查找表的表格数据内容 简单地修改成所考虑的预定的数学函数而在各种类型DSP算法中加 速数学计算。

在本数据路径电路的另一有利的实施方案中,多路复用器被配置 成选择性地将所述数学函数结果和所述第一输入操作数或所述第二 输入操作数的一个传送到所述MAC结构的所述算术逻辑单元作为所 述第一变量。多路复用器用于使数字硬件计算器与MAC结构紧密集 成,使得来自很难计算的函数的数学函数结果可以直接注入算术逻辑 单元而没有任何时间延迟或没有对暂存器、寄存器或存储器移动操作 等的任何需要。多路复用器优选地具有耦合到输入存储器元件的第一 输入端和耦合到保持数学函数结果的数字硬件计算器的输出寄存器 的第二输入端。在这种方式下,第一变量的源头可以用通过适当地控 制多路复用器的选择输入端的逻辑状态以灵活方式来选择。

技术人员将理解,数字硬件计算器可包括插在第一查找表前面的 各种预处理函数,用于预处理第一和第二输入操作数或其它输入变 量。同样,后处理函数诸如先前讨论的内插器,可插在第一查找表之 后以在计算器输出寄存器中存储最终的数学结果之前进一步处理所 产生的数学函数结果。在一个实施方案中,压缩器函数插在所述输入 存储器元件和所述第一查找表之间。所述压缩器函数被配置成将压缩 器输入值的数值范围映射到较小的压缩器输出值的数值范围。多路复 用器此外被配置成选择性地将所述第一输入操作数和所述第二输入 操作数中的一个以及所述第一输入操作数和所述第二输入操作数的 相应的压缩值传送到所述查找表的输入端。在可用于减少第一查找表 的尺寸的表格查找之前,压缩器函数可用于减少第一和/或第二输入 操作数或其它输入变量的数值范围。

在一些实施方案中,本数据路径电路可包括除了第一查找表外的 一个或多个另外的查找表。这些另外的查找表优选地适用于映射各自 的另外的很难计算的数学函数。这允许通过数字硬件计算器计算与先 前讨论的基本函数像上面讨论的对数、除法、指数、平方根相比的高 阶数学函数。根据一个此类实施方案,数字硬件计算器包括可操作地 耦合在所述第一查找表的输出端和所述计算器输出寄存器之间的第 二查找表。所述第二查找表包括根据第二预定的数学函数映射到多个 相应数学函数结果的多个表项目值。这后一种实施方案可以例如被配 置为计算高阶数学函数如:

负雅可比对数函数,min*(x,y)=Min(x,y)–ln(1+e(-|x-y|)以及

最大值-对数函数,max*=max(x,y)+ln(1+e e(-|x-y|));

其中x可等于所述第一输入操作数且y等于所述第二输入操作 数。第一预定的数学函数可包括用于基于查找表计算1+e(-|x-y|的指数 函数;第二预定的数学函数可包括自然对数函数,使得自然对数采用 在第一查找表的输出端提供的数学函数结果。

技术人员将明白,术语“并行计算”,如应用于数字乘法和累加电 路与数字硬件计算器的各自的算术计算的,意味着这些算术计算可同 时运行而不是相继运行。如可选地陈述的,术语‘并行计算’意味着当 数字乘法和累加电路与数字硬件计算器均操作时由数字乘法和累加 电路运行的计算周期在时间上与由数字硬件计算器运行的计算周期 至少部分重叠。因此,数据路径电路被配置成使得数学函数操作、 数字硬件计算器与数字乘法和累加电路可完全独立地运行。MAC结 构和数字硬件计算器的同时计算能力并不意味着各自的计算具有相 同的周期时间或被放置在数据路径电路的公共流水线级。数字硬件计 算器可例如具有比数字乘法和累加电路长的周期时间,以便传递各自 的累加乘法结果的多个MAC操作可与数字硬件计算器的单一周期同 时执行,反之亦然。可选地,适当数量的停顿周期可插入MAC结构 的流水线中直到数字硬件计算器通过传递计算器结果已经完成其计 算周期。

如上所述,所述第一输入操作数和所述第二输入操作数的每个、 所述多个表项目值、所述多个相应数学函数结果以及优选地所述数据 路径电路的所有其它变量优选地用选自{2的补码、带符号量值、冗 余二进制带符号数字量、进位保留}的组的常见二进制数格式来表示。

本发明的第二方面涉及一种数字信号处理器电路组件,其包括:

数字信号处理器,其包括:

根据其上述实施方案的任一项的数据路径电路,

可读和可写数据存储器空间,其用于存储所述第一查找表;

非易失性存储器,其存储:

用于在所述数字信号处理器上运行的数字信号处理算法的一组 可运行程序指令,

查找表数据,其包括所述多个表项目值和所述多个相应数学函数 结果。

非易失性存储器可随所述数字信号处理器集成在公共半导体衬 底上。可选地,非易失性存储器可包括单独的集成电路例如串行 EEPROM或快闪式存储器。串行EEPROM或快闪式存储器和数字信 号处理器可安装在共享载体诸如印刷电路板上并耦合用于通过共享 数据总线和各自的数据端口或接口交换数据。

根据本发明的第三方面,提供了一种产生用于上述数字信号处理 器电路组件的所述查找表数据内容的方法,所述方法包括步骤:

选择用于所述数字信号处理器的数字信号处理算法,选择将制成 表的所述数字信号处理算法的数学函数,

选择所述第一查找表的最小表项目值、最大表项目值和表步长 值,

通过基于所述选择的数学函数、所述最小表项目值、所述最大表 项目值和所述表步长值计算所述多个表项目值和所述多个相应数学 函数结果而产生所述查找表数据内容,

将所述查找表数据内容写入到所述非易失性存储器的地址空间。

根据本发明的方法,查找表存储在DSP的先前讨论的可读和可 写存储器类型中,其优选地被安排在DSP的数据存储器中。表格数 据内容可结合DSP源代码的开发在适当的基于PC或工作站的软件工 具或代码开发环境中进行选择或定义。软件工具可例如适用于基于程 序员或用户说明诸如表大小、最小和最大表项目值、二进制数格式等 来计算适当的表格值。表项目值和伴随的数学函数结果可由利用PC 或工作站的计算资源的软件工具来计算并随后被写入和存储于非易 失性存储器的地址空间。表项目值和伴随的数学函数结果可通过编程 端口或接口从PC或工作站传送到数字信号处理器(DSP)。在编程后 的DSP电路初始化或上电时,表项目值和伴随的数学函数结果可在 运行DSP算法期间被读入或转移到DSP的可读和可写存储器空间诸 如数据RAM空间或数据寄存器堆,以允许在DSP上运行数字信号处 理算法期间快速访问表格数据内容。

附图说明

本发明的优选实施方案将结合附图进行更详细地描述,在附图 中:

图1是根据本发明的第一实施方案的用于数字信号处理器的数 据路径电路的示意图;以及

图2是图1上描绘的数据路径电路的数字硬件计算器的示意图。

具体实施方式

图1是数据路径电路100的示意图,它尤其适合于集成于数字信 号处理器中,其中常见的实时信号处理算法需要快速计算复杂的数学 函数。然而,普通技术人员将明白,本数据路径电路100还可以被 集成在传统的微处理器设计例如数学硬件加速器或协处理器中。

数据路径电路100包括输入存储器元件或块102,例如输入数据 寄存器或RAM位置,其被配置用于存储至少第一和第二输入操作数。 第一和第二输入操作数可用定点或浮点格式表示并且数据路径电路 适用于每种类型的数字格式。技术人员将明白,输入存储器元件120 可被配置成存储一个或多个附加的输入操作数。数据路径电路100包 括数字乘法和累加电路(MAC结构)与数字硬件计算器104,两者都被 配置用于接收第一和第二输入操作数并且在这些操作数上运行并行 计算。MAC结构包括传统的数字乘法器106(包括多个部分乘积发生 器)和合适的加法器结构,被配置用于输入存储器元件120中保持的 第一和第二输入操作数的乘法并提供乘法结果。技术人员将理解,数 字乘法器可以是与多种类型的传统的数字乘法器体系结构的任一项 大致相同的设计或结构。在一个实施方案中,加法器结构可包括进位 传输加法器或进位保留加法器。数字乘法器可包括部分乘积发生器的 布斯(Booth)编码例如基-4或基-8布斯编码。当尺寸取决于第一和第 二输入操作数的所选择的字长时,传统的数字乘法器106的尺寸可变 化很大。取决于特定应用的要求,这些字长可以变化很大,并且可相 同或不同。第一和第二输入操作数的每个的字长可例如落在8位和 64位之间。第一和第二输入操作数优选用常见的二进制数格式诸如 选自{2的补码、带符号量值、冗余二进制带符号数字量、进位保留} 的组的格式来表示。

由数字乘法器106产生的乘法结果通过适当的内部数据总线被 传送到算术逻辑单元110,其配置成将乘法结果加到第一变量。第一 变量在多路复用器108的多路复用器输出端提供。算术逻辑单元110 的输出是累加的乘法结果,其被传递到耦合算术逻辑单元的第一累加 器112的输入端,如图所示。第一累加器112被配置成接收、临时存 储和操纵累加的乘法结果,其通常表示特定DSP算法在运行下的中 间结果。操纵累加的乘法结果可涉及多种类型的算术操作,诸如舍位、 舍入、向左或向右调整等。技术人员将明白,数字乘法器106和算术 逻辑单元110优选地被设计成具有传统MAC结构。数字乘法器106 可被配置成使N位被乘数即第一输入操作数与M位乘数即第二输入 操作数相乘。数字乘法器106优选地包括多个部分乘积发生器,其适 用于选择N位被乘数的各自的部分乘积,其中每个部分乘积选自根 据预定的编码方案诸如布斯编码由与所述M位乘数的预定位集相关 的所述N位被乘数计算的一组部分乘积结果。传统MAC结构有利地 支持现有的DSP硬件构件、DSP代码和编程模型/结构的重新使用。 本MAC结构的传统结构从而提供向后兼容性,允许快速移植现有的 现场验证的DSP软件和算法并优化其运行。

多路复用器108与MAC结构以有利的方式紧密集成,使得第一 变量的源头可以通过控制多路复用器108的选择输入端S0的逻辑状 态以灵活方式来选择。取决于S0的逻辑状态,由数字硬件计算器104 计算的数学函数结果或者保持在输入存储器元件102中的第一输入 操作数和第二输入操作数中的一个通过多路复用器108的多路复用 器输出端传送到算术逻辑单元110。同样,保持在输入存储器元件102 中的任何其它相关的操作数或变量可被传送到算术逻辑单元110。因 此,在S0的一个状态中,MAC结构能够快速计算:

F=(x*y)+z;其中z表示选择输入端S0的第一逻辑状态中的第 三输入操作数。在S0的第二、相对的逻辑状态中,数字硬件计算器 104被配置成快速计算函数如:

F=(x*y)+ln(z)或

F=(x*y)+ln(x)或

F=(x*y)+e(z)或

F=∫cosx dx=sinx+C或

F=∫tanx dx=-ln|cosx|+C

在其它实施方案中,数字硬件计算器104被配置成基于查找表 210来计算概率函数。概率函数可包括二项式函数。

数字硬件计算器104优选地包括可操作地耦合在计算器输入端 和计算器输出端之间的一个或多个查找表。计算器输入端优选地耦合 到至少第一和第二输入操作数,而且还可耦合到其它输入操作数或附 加的数据寄存器,用于接收相关的输入操作数或变量。数字硬件计算 器104的输出端耦合到第二累加器114,如果需要,用于操纵来自数 字硬件计算器104的计算的计算器结果。数字硬件计算器104被配置 成在输入操作数上执行某些算术操作,以便基于一个或多个查找表有 效地计算一个或多个很难计算的数学函数诸如对数函数、指数函数、 除法函数和平方根函数,如下面进一步详细描述的。

图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之间的项目,与相应数量的 数学函数结果。

在上文提及的一些实施方案中,查找表210可具有2-维结构,即 将单一表项目值映射到单一相应的数学函数结果。然而,技术人员将 明白,某些类型的预定数学函数可能需要两个或多个输入操作数映射 到单一相应的数学函数结果。例如,对于除法操作,其中被除数或者 分子可以是第一输入操作数并且除数或分母是第二输入操作数。这种 查找表可以被认为是3维表格,其中每对输入操作数根据除法操作映 射到单一相应的数学函数结果。

保持在查找表210中的数值可以存储在不同类型的存储器元件 中,这取决于用于数据路径电路100的集成的半导体工艺中可用的应 用和存储器选项。在一个实施方案中,查找表210可被设计或制造成 存储多个表项目值和多个相应的数学函数结果的直接(掩模)或可合 成的ROM。查找表在ROM中的实现通常使用最小的半导体芯片面 积并导致与表读取操作有关的低功耗。另一方面,由查找表210映射 的数学函数必须在数据路径电路100的设计时进行选择并在此后保 持固定,这限制了灵活性。

在替代和同样有利的实施方案中,查找表210被存储在存储多个 表项目值和多个相应的数学函数结果的可读和可写存储器类型诸如 RAM、EPROM或EEPROM、快闪式存储器、寄存器等中。这个实 施方案允许预定的数学函数在运行时改变,结合产生用于包括本数据 路径电路100的DSP设备的可运行程序指令或代码。根据所编程的 DSP算法的性质,可因此用合适的编程工具选择预定的数学函数。因 此,对于包括大量对数函数计算的DSP算法,查找表可被配置为映 射相关对数函数诸如ln(x)、log10(x)、log2(x)等。然而,当运行其它类 型的DSP算法时,同一数据路径电路的查找表可被重新配置为映射 完全不同的预定的数学函数,诸如以上讨论的平方根或除法函数中的 一个。通过使用可读和可写存储器类型用于存储查找表,数字硬件计 算器104被转换为非常灵活的数学计算引擎或协处理器。此性质允许 同一数据路径电路104通过简单地修改查找表的内容在大量不同的 DSP算法中加速数学计算。表项目值和伴随的数学函数结果可结合 DSP源代码的开发在适当的软件工具或环境中进行选择或定义。软件 工具可例如适用于基于用户说明诸如表的大小、最小和最大表项目 值、二进制数格式等来计算适当的表格值。表项目值和伴随的数学函 数结果可被下载到能够访问DSP电路的非易失性数据存储器空间用 于存储。在DSP电路初始化或上电时,表项目值和伴随的数学函数 结果可被读入或转移到易失性数据存储器区如RAM区或寄存器堆, 在运行DSP算法期间保持查找表104的数据内容以允许快速访问表 格内容。图2中描绘的数字硬件计算器104包括内插器212,如果输 入操作数或压缩输入操作数的值不能精确地匹配任一表项目值,那么 内插器212可方便地用于在查找表210表项目中填充间隙或通常改善 数学函数结果的准确度。内插器212被配置用于从查找表210读取或 接收第一和第二数学函数结果。第一和第二数学函数结果优选地对应 于输入操作数的值之上和之下的最接近的数学函数结果。内插器212 被配置成将内插操作或函数应用到第一和第二数学函数结果以产生 内插的数学函数结果。技术人员将理解,不同类型的内插操作或方案 可被应用诸如样条内插或包括线性内插(它是多项式内插的特殊情况) 的多项式内插。同样,取决于预定的数学函数的复杂性和任何特定应 用的准确度要求,内插函数可将附加的数学函数结果利用到上述第一 和第二数学函数结果。对于多维查找表,内插器可以是双线性(N=3) 或三线性(N=4)内插器。对于查找表的每个额外维数,内插器要求两 个附加的数学函数结果作为输入,使得双线性内插器利用来自查找表 的四个数学函数结果并且三线性查找表要求来自查找表的六个数学 函数结果。

由内插操作产生的数学函数结果被传送到可设置的输出限制器 214的第一输入端。可设置的输出限制器214被配置成处理内插数学 函数结果的边界条件,例如通过将结果舍位到数学函数结果的预定的 可允许的数值范围。如通过数据总线或线205所示的,可设置的输出 限制器214还可以适于直接从MUX2的输出端接收第二输入以确定 查找表210的上限和/或下限是否已经被超过。此外,可设置的输出 限制器214可被配置成确定如何已经超过上限和/或下限。该信息可 应用于确定如何以最佳方式限制输出。

受限的和/或内插的数学函数结果最后临时存储在输出寄存器 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电路上哪一种或哪些种数学函数消耗最大 数量的计算周期。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号