首页> 中国专利> 用于提高平衡吞吐量数据路径架构上的FIR操作性能的新颖数据访问方法

用于提高平衡吞吐量数据路径架构上的FIR操作性能的新颖数据访问方法

摘要

本发明的实施例公开了一种用于提高平衡吞吐量数据路径架构上的FIR操作性能的新颖数据访问方法。公开一种用于通过使用修改型平衡数据结构和访问架构来实现涉及到乘法累加(MAC)操作的数字信号处理操作的装置和方法。这一架构维持如下数据路径,该数据路径连接一个地址生成单元、一个寄存器文件和一个MAC执行单元。寄存器文件具有单独的寄存器的分级分组组织,该组织减少存储器未对准所引起的冒泡周期。这一架构使用并行执行并且可以每个周期实现两个或者更多个MAC操作。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-24

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20120711

    实质审查的生效

  • 2014-01-29

    公开

    公开

说明书

相关申请信息

本申请涉及[代理案号11-BJ-0647]“Modified Balanced Throughput Data-Path Architecture for Special Correlation Applications”,该申请在法律可允许的最大程度上通过引用而全文并入本文。 

技术领域

这里描述的本发明涉及用于实现数字信号处理(DSP)操作的系统架构、装置和方法。更具体而言但是并非排它地,本发明涉及用于实现涉及到乘法累加(MAC)计算的DSP操作(比如有限冲激响应(FIR)滤波、有限傅里叶变换、卷积、相关和其它DSP操作)的系统、装置和方法。其它科学领域也使用MAC操作,例如物理科学的数值仿真。 

背景技术

在信号处理(尤其是数字信号处理)领域中,许多必需操作是有限冲激响应(FIR)滤波器(也称为加权平均)的形式。在这一公知操作中,值的有限集合(也称为滤波器系数或者抽头加权值)h(k)(k=0,...,N-1)和输入数据序列的值x(k)用来按照规则 创建输出序列值y(n)。由于每次将n递增1都将输入值的所选集合移位1;所以这一过程也称为滑动窗求和。为了计算每个y(n),首先将系数和输入值的配对相乘,然后相加求和,这称为乘法累加(MAC)的过程。 

FIR操作在信号处理中广泛用来选择所需频率、去除噪声并且 检测雷达信号以及其它应用。如等式的形式所示,FIR滤波操作很好地适合在计算机硬件上实现。在一个这样的实现方式中,向专用存储器阵列中加载滤波器系数,然后对于每个值y(n)而言,向第二存储器阵列中加载输入的对应部分,并且对经对准的系数和输入逐对执行MAC操作。 

尽管可以并且经常是通过软件在通用计算机上完成实现FIR操作,但是许多信号处理应用需要FIR操作的很快计算。这些情况经常需要在专用数字硬件(比如数字信号处理器(DSP))上、在可重新配置平台(比如现场可编程门阵列(FPGA))上、或者在专用集成电路(ASIC)上的专用实现。在这一水平上,硬件实现方式的具体细节(比如如何代表并且内部存储值以及它们的数据类型、数据总线大小等)对于获得很高速FIR操作而言变得重要。高效硬件实施的一个目标是让MAC操作出现于每个周期。实现甚至更高MAC速率尤其是值得的。 

在图1中示出了本领域已知的一种用于实现快速FIR操作的一般方法和系统。信号数据或者系数经过地址生成器(AG)从系统的存储器移动并且存储于系统的快速可访问存储器位置(称为寄存器文件(Reg文件))。在每个周期中,从Reg文件移动两个值进入MAC单元,并且计算它们的乘积、求和成累加值并且回写到累加寄存器位置。 

对于进行中的正常操作而言,必须有向寄存器文件中读取的数据量与MAC单元消耗的数据量的平衡。另外,进入MAC的数据值必须完整;如果访问对于MAC而言必需的数据值有延迟,则MAC必须等待一个(或者多个)周期直至它获得用于乘法和累加计算的完整数据值。这样的暂停称为冒泡周期。它代表系统的整体操作的效率低下。防止这样的低效率是本发明的一个总体目标。本发明的另一目标是实现每个周期的多于一个MAC操作的速率。 

发明内容

这里公开的本发明实施例实现了新形式的平衡吞吐量数据路径架构,该形式可以克服数据存储器未对准的问题,并且可以被推广成产生每个周期多于一个的MAC操作的实现方式。在图3中示出了新架构。数据(包括用于MAC操作的输入和系数)存储于系统的大型存储器储存器中,该大型存储器储存器常为随机存取存储器并且这里称为系统存储器。由于需要来自系统存储器的各种值用于FIR计算,所以AG将值从系统存储器移入架构的寄存器存储器文件系统,该系统包括MAC执行单元快速可访问的存储器单元。 

本发明一个示例实施例的一个要素是将分级结构用于寄存器存储器文件系统。这一特征(称为分组寄存器文件(GRF)系统)将寄存器组织成三级。第一级是单独的寄存器位置的基础级。第二级将寄存器组织成寄存器配对。第三级将配对寄存器组织成分组寄存器,每个分组寄存器包括两个配对寄存器并且因此包括四个单独的寄存器。 

GRF系统的分级和引用方案由实施例的下一特征(未对准地址布局(MAP)系统)使用,该特征由地址生成(AG)单元的修改版本实现。修改型AG按照下文详述的两个具体过程从系统存储器向寄存器中加载值,以便完全填充每个单个分组寄存器。另外,具体加载顺序帮助整个系统每个周期实现一个或者多于一个的MAC。 

示例实施例的第三特征是在MAC执行单元中使用并行处理。由于待对多对数据执行的操作是乘法累加,所以MAC被构造成接收多对数据和系数并且在每个周期同时执行操作是有利的。用于这一处理形式的术语是单指令多数据(SIMD)。MAC执行单元无论它运用的并行量如何都在乘法累加过程之后向寄存器存储器系统回写MAC操作的值。 

如下文将详述的那样,本发明的这些特征的组合允许系统吞吐量——去往和来自寄存器和存储器——保持平衡。另外可以通过使用MAP和修改型AG来克服由于存储器未对准所致的冒泡周期。最后可以实现更高MAC速率。 

根据对如附图中所示本发明实施例的以下更具体描述将清楚本发明的前述和其它特征、效用和优点。 

附图说明

具体描述参照附图。在图中,参考数字的两个最右数位左边的数位标识该参考数字首次出现的图。相同参考数字在所有附图中用来引用相似特征和部件。 

图1示出了现有技术的平衡吞吐量数据路径架构。 

图2示出了现有技术的地址生成器(AG)的内部细节和它如何访问存储器。 

图3示出了本发明对现有技术的平衡吞吐量数据路径架构的修改。 

图4示出了本发明中的用于AG的修改形式。 

图5示出了本发明的分组寄存器文件组织方案。 

图6示出了在对准存储器布局之下向分组寄存器中加载数据的两阶段过程。 

图7示出了一个分组寄存器(共计四个寄存器)和来自存储器的值的未对准地址布局而未对准地址对准至分组寄存器的中间(在配对寄存器pr1与pr0之间)。 

图8示出了使用分组和未对准地址布局过程的右手模式的、数据值A和B从存储器向分组寄存器g0(共计四个寄存器)中的示例连续数据加载操作的一个步骤。 

图9示出了使用分组和未对准地址布局的左手模式的、现在为数据值C和D从存储器向相同分组寄存器g中的示例连续数据加载操作的第二步骤。 

具体实施方式

这里列举常用缩写词: 

AG    地址生成器 

ASIC   专用集成电路 

DSP    数字信号处理器(或者处理) 

EX     执行单元 

FIR    有限冲激响应 

FPGA   现场可编程门阵列 

GR     分组寄存器 

MAC    乘法累加 

MAP    错位地址系统 

PR     配对寄存器 

RAM    随机存取存储器 

SIMD   单指令多数据 

在本文献中,词语“示例性”用来意味着“用作示例、实例或者示出而并未解释为限制”。这里描述为“示例性”的本发明主题内容的任何实施例或者实现方式并不必然解释为比其它实施例优选或者有利。 

公知的是数字信号处理的许多操作(具体为FIR滤波器)使用滑动窗型操作,在该操作中通过将输入集合移位输入值与系数或者抽头权值逐对相乘的求和来创建值的输出集合。例如FIR滤波器具有形式 并且有限傅里叶变换是 其中 对于需要快速计算这样的公式的应用而言,清楚的是必须迅速执行乘法和累加操作。本发明这里公开用于快速实现这样的MAC操作的各种实施例。 

在图1中示出了一种用于在数字电路中实施FIR滤波的已知架构,并且称之为平衡吞吐量数据路径架构。它可以在专用DSP芯片、FPGA或者ASIC上实现。它包括四个主要要素:大型系统存储器101、地址生成器AG 103、寄存器文件104(Reg文件)和MAC执行单元105。系统存储器经常包括随机存取存储器并且用来存储大量输入和输出数据值,并且如果必需则还存储用于FIR应用的滤波器系数。Reg文件单元包括称为寄存器的存储器位置阵列,这些寄存器通常让 系统的处理部件更快访问。AG是经常在电路中实现的寻址系统,该系统负责在系统存储器与Reg文件之间移动所需多条数据。AG通过数据总线102接收值并且向系统存储器写入值。最后,MAC单元105包括用于将两个值相乘并且将该乘积与累加值相加的必需电路。累加值Accum在存储于Reg文件中之时可以在字节大小上大于数据或者系数D/C的大小以便防止算术溢出的问题。如在本领域中所知的那样,MAC单元现在具有在一个周期中执行MAC操作的能力。 

在理想操作条件(其中目标是获得在每个周期中出现1个MAC操作)之下,系统必须从系统存储器向Reg文件中移动与它从Reg文件向MAC移动的数据量相同的数据量,并且移回至累加寄存器位置。这是为了防止Reg文件的溢出并且保证完全利用MAC执行单元而需要的数据吞吐量平衡。 

在这一已知架构中,Reg文件可以具有三个读取/两个写入端口的结构,从而在每个周期中将两个数据和/或系数值(图1中的D/C)与累加的当前值一起从Reg文件移入MAC单元以用于MAC操作。同时,AG通过一个写入端口106将两个新数据或者系数值从系统存储器移入Reg文件中,并且在MAC操作结束时,MAC执行单元通过Reg文件的另一写入端口将更新的累加值移回至累加值源于的Reg文件位置。 

为了这一架构理想地工作,必须在一个周期中从系统存储器移动将必须访问的来自系统存储器的两个新数据或者系数值。另外,AG使用的数据存储器地址必须与存储器的存储器块对准,从而可以在一个周期中通过数据总线移动两个数据值。 

然而如果完整配对的系数和/或数据值的存储器地址未与系统存储器的块对准(即地址指向在系统存储器访问块的边界之间的字节),则在一个周期中可以通过总线移动所需配对的仅一部分,并且系统将需要等待至下一周期以完成数据移动。这称为存储器未对准;它在MAC单元中需要冒泡周期,从而完整配对的值可以移入Reg文件位置。 

一种处置存储器未对准的已知方式是使AG加倍并且让系统存储器具有双地址端口和双值输出端口这两者。这在图2中示出。在跨越存储器块边界存储数据和/或系数值的情况下,然后为了访问它,AG将需要生成两个地址(开始地址201和递增器单元202生成的递增地址)。但是这将要求两个地址端口在系统存储器上可用。此外,系统存储器将需要两个端口,通过这两个端口导出包含值的存储器块。在AG内,选择器和组合器单元203将组装数据值并且将它移向Reg文件。然而在功能上,这一方式需要更多电路面积和功率用于在数字硬件中实施。 

图3中所示本发明一个实施例公开了一种用于实现平衡数据吞吐量的不同架构,该架构可以减少或者消除冒泡周期的出现,这无需系统存储器上的额外端口并且可以被扩展成在时钟周期中实现多于一个的MAC操作。实施例包括主存储器系统301(该系统通常包括RAM),修改型地址生成器AG 303访问主存储器系统以向寄存器存储器阵列系统并从寄存器存储器阵列系统移动值(信号数据值或者系数)。可以仅用一个地址加法器实现AG。将寄存器存储器阵列组织为由乘法累加处理器(MAC)305直接访问和写入的GRF304。存储器数据总线302可以是加倍宽度或者在其它情况下为四倍宽度或者2的任何正幂宽度,其中宽度这里是指每个寄存器存储器位置以字节为单位的大小。 

与现有技术的不同点之一在于:在一个实施例中,MAC单元能够通过使用单指令多数据过程(SIMD)在一个周期中执行多于一对的MAC操作。 

此外,用于寄存器存储器阵列304的GRF将分级组织方案用于单独寄存器存储器位置。在一个实施例中,这是三层数据寻址和访问方案,该方案包括单独的寄存器的基础层、第二层(其中组合单独寄存器存储器位置的配对用于用作称为配对寄存器(PR)的单元并且其中组合两个PR用于用作称为分组寄存器(GR)的单元)。图5从左到右示出了其中八个寄存器具有单独的地址(示意地标注 为r0至r7)的示例、这些寄存器的配对如何组合成四个PR(示意地标注为p0至p3)并且最终如何——按照交替模式——将这四个PR分组成两个分组寄存器(GR)(示意地标注为g0和g1)。图5中所示实施例示出了PR左边具有奇数索引寄存器而偶数索引寄存器在右边。 

存在将PR组织成GR的两种模式。在左手模式中,偶数索引PR布局于左边而奇数索引PR布局于右边。在右手模式中,奇数索引PR布局于左边而偶数索引PR布局于右边。 

利用这一分级寄存器组织方案,在一个实施例中,修改型AG303可以使用未对准地址布局过程(MAP)向存储器系统并从存储器系统移动值。 

作为修改型AG与GRF系统一起的MAP操作的示例情况,假设寄存器存储器位置宽度为32比特(即4字节)。也假设AG通过加倍宽度数据总线访问来自系统存储器的64比特(即8字节)加倍宽度的块。当向AG提供的系统存储器地址为4的倍数时,对准该地址。对于以二进制提供的地址而言,对准的地址具有各自等于0的两个最低有效数。 

如果在指令中未检测到存储器地址未对准,则来自系统存储器的值可以存储于一个GR的一个PR中。来自系统存储器的第二数据块然后可以存储于GR的另一PR中。这在图6中图示。 

然而如果检测到存储器地址未对准(在这一示例中,当向AG提供的地址不是4的倍数时),则本发明的示例性实施例通过迫使地址中的适当数目的最低有效位为0来创建对准的地址。根据对准的地址确定待加载的值的8字节加倍宽度。另外,AG基于地址的未对准模式分配对准点。作为示例,如果地址的未对准是在(字节0至字节7中的)字节2,则对准点是在移动的数据块的字节1与字节2之间的点。对准点与目标分组寄存器的中点对准,从而如图7中所示,字节0和1示意地对准至GR的中点右边而字节2至7示意地对准至中点的左边。然后如图所示向目标GR中加载数据字节。注 意,填充寄存器r1和r3中的每个寄存器中的四个可用字节中的仅两个字节。注意在图5中,标注为g0的GR使用GRF系统的右手模式。 

对于连续加载操作而言,如果先前段落的示例性右手模式加载操作已经用于一个加载操作,则如图8和图9中所示,在下一迭代中,加载的下一8字节块对于同一GR使用左手模式。图8示出了图5中所示相同右手模式过程。图7示出了使用左手模式访问gr0中的寄存器如何允许向gr0的剩余分段中加载下一8个字节C和D。 

由于用MAP已经将待相乘的两个值移入寄存器阵列位置,所以MAC执行单元可以在一个周期访问两个值并累加值、执行乘法累加操作并且回写更新的累加值。 

该架构的实施例在数据路径302多于加倍宽度时可以每个周期实现多于一个的MAC操作以加载系数和/或数据值这二者的配对,并且构造MAC单元用于单指令多数据(SIMD)操作。一种用于构造MAC单元以配置用于每个周期正整数K个MAC操作的示例性方式;其中待相乘的数据值的大小是2的正幂,M;并且其中从存储器存储单元到寄存器存储器阵列的数据路径为2*M*K。 

已经在某一具体程度上描述本发明的当前优选实施例及其许多改进。应当理解已经通过示例进行这一描述并且本发明由所附权利要求的范围限定。本领域普通技术人员清楚在权利要求的范围内的其它实施例。 

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号