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

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

Info

Publication number
CN103543983B
CN103543983B CN201210251206.2A CN201210251206A CN103543983B CN 103543983 B CN103543983 B CN 103543983B CN 201210251206 A CN201210251206 A CN 201210251206A CN 103543983 B CN103543983 B CN 103543983B
Authority
CN
China
Prior art keywords
data
byte
register
address
depositor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210251206.2A
Other languages
English (en)
Other versions
CN103543983A (zh
Inventor
朱鹏飞
孙红霞
吴永强
E·圭代蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Beijing R&D Co Ltd
STMicroelectronics SRL
Original Assignee
STMicroelectronics Beijing R&D Co Ltd
STMicroelectronics SRL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Beijing R&D Co Ltd, STMicroelectronics SRL filed Critical STMicroelectronics Beijing R&D Co Ltd
Priority to CN201210251206.2A priority Critical patent/CN103543983B/zh
Priority to US13/936,849 priority patent/US9082476B2/en
Publication of CN103543983A publication Critical patent/CN103543983A/zh
Application granted granted Critical
Publication of CN103543983B publication Critical patent/CN103543983B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

用于提高平衡吞吐量数据路径架构上的FIR操作性能的新颖 数据访问方法
相关申请信息
本申请涉及[代理案号11-BJ-0647]“Modified Balanced Throughput Data-PathArchitecture 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。
已经在某一具体程度上描述本发明的当前优选实施例及其许多改进。应当理解已经通过示例进行这一描述并且本发明由所附权利要求的范围限定。本领域普通技术人员清楚在权利要求的范围内的其它实施例。

Claims (21)

1.一种用于执行信号处理操作的装置,包括:
存储器存储单元;
地址生成器单元,功能上连接到所述存储器存储单元并且可操作用于通过具有多个数据宽度的数据总线从所述存储器存储单元接收数据并且向所述存储器存储单元写入数据;
寄存器存储器阵列,功能上连接到所述地址生成器单元并且可操作用于从所述地址生成器单元接收数据并且向所述地址生成器单元写入值,其中使用寄存器文件系统来存储所述寄存器存储器阵列中的所述数据;
乘法累加单元,功能上连接到所述寄存器文件系统并且可操作用于从所述寄存器存储器阵列接收并且向所述寄存器存储器阵列写入,并且将数据值配对相乘和相加并且向所述寄存器存储器阵列中的位置写入求和;
其中在用于单独的寄存器存储器位置的分级方案中组织所述寄存器文件系统,其中将单独寄存器存储器位置配对组织成相应配对寄存器单元,并且将配对寄存器单元配对组织成相应分组寄存器单元;并且
其中所述地址生成器单元使用未对准地址布局系统以通过将任何未对准数据地址与分组寄存器单元的中点对准将来自所述存储器存储单元的值放入所述寄存器。
2.根据权利要求1所述的装置,其中从所述存储器存储单元到所述地址生成器单元的所述数据总线的所述多个宽度是2的正幂,并且所述多个宽度是指寄存器存储器位置以字节为单位的大小。
3.根据权利要求1所述的装置,其中所述地址生成器单元具有一个地址加法器。
4.根据权利要求1所述的装置,其中所述地址生成器单元通过单个端口访问所述存储器存储单元。
5.根据权利要求1所述的装置,其中所述分级组织方案根据左手模式或者右手模式将八个寄存器位置组织成两个分组寄存器单元;其中所述左手模式按照顺序[r1,r0,r3,r2]将寄存器r0至r3布置成GR0并且按照顺序[r5,r4,r7,r6]将寄存器r4至r7布置成GR1;并且其中所述右手模式按照顺序[r3,r2,r1,r0]将寄存器r0至r3布置成GR0并且按照顺序[r7,r6,r5,r4]将寄存器r4至r7布置成GR1。
6.根据权利要求5所述的装置,其中所述地址生成器单元通过移动以字节为单位的大小为标准寄存器以字节为单位的大小两倍的数据块将数据移入所述分组的寄存器,其中所述地址生成器单元为从存储器存储单元移动的所述数据块的字节确定对准点,所述地址生成器单元将所述对准点与所述地址生成器单元将把所述数据移入的分组寄存器单元的中点对准,并且向所述分组寄存器单元中对应地逐字节加载所述数据。
7.根据权利要求6所述的装置,其中对于存储器对准地址的情况而言,从存储器存储单元移动的所述数据块的所述对准点是字节0的端部,所述端部与字节0的与字节1相邻的端部相对。
8.根据权利要求6所述的装置,其中对于存储器未对准地址的情况而言,从存储器存储单元移动的所述数据块的所述对准点是在所述未对准地址的字节数的与下一更低字节数相邻的端部,并且其中所述地址生成器单元通过迫使所述未对准地址对准至存储器块来访问所述存储器存储单元。
9.根据权利要求6所述的装置,其中所述地址生成器单元通过按照根据权利要求6的过程首先加载第一块而按照左手模式配置所述分组寄存器并且按照右手模式配置第二数据块来移动两个数据块,每个数据块以字节为单位的大小是标准寄存器以字节为单位的大小的两倍。
10.根据权利要求6所述的装置,其中所述地址生成器单元通过将根据权利要求6的过程应用于数据块的每个配对和关联目标分组寄存器并且确定用于数据块的每个配对的对应对准点将数据块的多个配对依次移入对应分组的寄存器使得两个数据块移向一个分组的寄存器。
11.根据权利要求1所述的装置,其中所述乘法累加单元被配置用于单指令多数据操作。
12.根据权利要求1所述的装置,其中所述乘法累加单元被配置用于每个周期正整数K个乘法累加操作;其中待相乘的所述数据值的大小是2的正幂M;并且其中从所述存储器存储单元到所述寄存器存储器阵列的数据路径为2*M*K。
13.一种用于执行信号处理操作的方法,包括:
从存储器存储单元读取并且向存储器存储单元写入将在乘法累加操作中使用的多个数据值;
在通过使用三级分级访问系统和未对准地址布局过程这二者而组织的寄存器存储器位置中存储所述数据值;
将数据值从所述寄存器存储器位置移入乘法累加单元;
执行所述乘法累加操作;并且
将所述操作的结果写入所述寄存器存储器位置;
其中所述三级分级访问系统将单独的寄存器存储器位置的配对组织成配对的寄存器单元,并且将配对的寄存器单元的配对组织成分组寄存器单元。
14.根据权利要求13所述的方法,其中地址生成器单元从所述存储器存储单元越过数据总线移动从所述存储器存储单元读取的所述多个数据值,并且其中数据总线大小是2的正幂宽度,并且所述宽度是指所述寄存器存储器的的以字节为单位的数据大小。
15.根据权利要求13所述的方法,其中所述三级分级访问系统根据左手模式或者右手模式将八个寄存器位置组织成两个分组寄存器单元;其中所述左手模式按照顺序[r1,r0,r3,r2]将寄存器r0至r3布置成GR0并且按照顺序[r5,r4,r7,r6]将寄存器r4至r7布置成GR1;并且其中所述右手模式按照顺序[r3,r2,r1,r0]将寄存器r0至r3布置成GR0并且按照顺序[r7,r6,r5,r4]将寄存器r4至r7布置成GR1。
16.根据权利要求13所述的方法,其中地址生成器单元按如下方式通过移动以字节为单位的大小为标准寄存器以字节为单位的大小两倍的数据块将数据从存储器存储单元移入所述分组的寄存器:所述地址生成器单元确定从存储器存储单元移动的字节的对准点,所述地址生成器单元将所述对准点与所述地址生成器单元将把所述数据移入的分组寄存器单元的中点对准,并且向所述分组寄存器单元中对应地逐字节加载所述数据。
17.根据权利要求16所述的方法,其中对于存储器对准地址的情况而言,从存储器存储单元移动的所述数据块的所述对准点是字节0的端部,所述端部与字节0的与字节1相邻的端部相对。
18.根据权利要求16所述的方法,其中对于存储器未对准地址的情况而言,从存储器存储单元移动的所述数据块的所述对准点是在所述未对准地址的字节数的与下一更低字节数相邻的端部,并且其中通过迫使所述未对准地址对准至系统存储器块来访问所述存储器存储单元。
19.根据权利要求18所述的方法,其中所述地址生成器单元通过按照根据权利要求16所述的方法首先加载第一块而按照左手模式配置所述分组寄存器并且按照右手模式配置第二数据块来移动两个数据块,每个数据块以字节为单位的大小是标准寄存器以字节为单位的大小的两倍。
20.根据权利要求16所述的方法,其中所述地址生成器单元通过将根据权利要求16所述的方法应用于数据块的每个配对和关联目标分组寄存器并且确定用于数据块的每个配对的适当对准点将数据块的多个配对依次移入对应的分组的寄存器使得两个数据块移向一个分组的寄存器。
21.根据权利要求13所述的方法,其中所述乘法累加操作由乘法累加单元执行,其中所述乘法累加单元通过每个周期执行正整数K个单指令多数据操作来操作;其中待相乘的所述数据值的大小是2的正幂M;并且其中从所述存储器存储单元到所述寄存器存储器位置的数据路径为2*M*K。
CN201210251206.2A 2012-07-11 2012-07-11 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法 Active CN103543983B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210251206.2A CN103543983B (zh) 2012-07-11 2012-07-11 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
US13/936,849 US9082476B2 (en) 2012-07-11 2013-07-08 Data accessing method to boost performance of FIR operation on balanced throughput data-path architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210251206.2A CN103543983B (zh) 2012-07-11 2012-07-11 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法

Publications (2)

Publication Number Publication Date
CN103543983A CN103543983A (zh) 2014-01-29
CN103543983B true CN103543983B (zh) 2016-08-24

Family

ID=49914998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210251206.2A Active CN103543983B (zh) 2012-07-11 2012-07-11 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法

Country Status (2)

Country Link
US (1) US9082476B2 (zh)
CN (1) CN103543983B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103543984B (zh) * 2012-07-11 2016-08-10 世意法(北京)半导体研发有限责任公司 用于特殊相关应用的修改型平衡吞吐量数据路径架构
US20160026588A1 (en) * 2014-07-23 2016-01-28 Qualcomm Incorporated System and method for bus width conversion in a system on a chip
US10891991B2 (en) * 2018-11-26 2021-01-12 Gsi Technology Inc. Massively parallel, associative multiplier accumulator
CN110109704B (zh) * 2019-05-05 2021-08-27 杭州中科微电子有限公司 一种数字信号处理系统
CN110275858B (zh) * 2019-05-17 2022-03-29 南京南瑞继保电气有限公司 一种信息处理方法、终端及计算机可读存储介质
US11644566B2 (en) * 2020-01-31 2023-05-09 Nxp Usa, Inc. Systems and methods for synthetic aperture radar with vector processing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502182B1 (en) * 1998-05-01 2002-12-31 Yamaha Corporation Digital signal processing device
CN1729464A (zh) * 2002-06-28 2006-02-01 皇家飞利浦电子股份有限公司 在阵列处理器上的划分
CN1900927A (zh) * 2006-07-14 2007-01-24 中国电子科技集团公司第三十八研究所 可重构数字信号处理器
CN101203846A (zh) * 2005-05-24 2008-06-18 科莱索尼克公司 具有可编程网络的数字信号处理器
CN101238455A (zh) * 2005-08-11 2008-08-06 科莱索尼克公司 包括配置为执行复矢量指令的集群式simd微体系结构的可编程数字信号处理器
CN203241983U (zh) * 2012-07-11 2013-10-16 世意法(北京)半导体研发有限责任公司 用于执行信号处理操作的装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7395408B2 (en) * 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements
US20050204118A1 (en) * 2004-02-27 2005-09-15 National Chiao Tung University Method for inter-cluster communication that employs register permutation
US7302627B1 (en) * 2004-04-05 2007-11-27 Mimar Tibet Apparatus for efficient LFSR calculation in a SIMD processor
CN103543984B (zh) * 2012-07-11 2016-08-10 世意法(北京)半导体研发有限责任公司 用于特殊相关应用的修改型平衡吞吐量数据路径架构

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502182B1 (en) * 1998-05-01 2002-12-31 Yamaha Corporation Digital signal processing device
CN1729464A (zh) * 2002-06-28 2006-02-01 皇家飞利浦电子股份有限公司 在阵列处理器上的划分
CN101203846A (zh) * 2005-05-24 2008-06-18 科莱索尼克公司 具有可编程网络的数字信号处理器
CN101238455A (zh) * 2005-08-11 2008-08-06 科莱索尼克公司 包括配置为执行复矢量指令的集群式simd微体系结构的可编程数字信号处理器
CN1900927A (zh) * 2006-07-14 2007-01-24 中国电子科技集团公司第三十八研究所 可重构数字信号处理器
CN203241983U (zh) * 2012-07-11 2013-10-16 世意法(北京)半导体研发有限责任公司 用于执行信号处理操作的装置

Also Published As

Publication number Publication date
US9082476B2 (en) 2015-07-14
CN103543983A (zh) 2014-01-29
US20140019679A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
CN103543984B (zh) 用于特殊相关应用的修改型平衡吞吐量数据路径架构
CN103543983B (zh) 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
Johnsson Solving tridiagonal systems on ensemble architectures
KR101781057B1 (ko) 실행 유닛들과 벡터 데이터 메모리 사이에 병합 회로를 갖는 벡터 프로세싱 엔진, 및 관련된 방법
KR101842061B1 (ko) 필터 벡터 프로세싱 연산들을 위해 탭핑-지연 라인을 이용하는 벡터 프로세싱 엔진, 및 관련된 벡터 프로세서 시스템들 및 방법들
US9977676B2 (en) Vector processing engines (VPEs) employing reordering circuitry in data flow paths between execution units and vector data memory to provide in-flight reordering of output vector data stored to vector data memory, and related vector processor systems and methods
US9880845B2 (en) Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods
US9619227B2 (en) Vector processing engines (VPEs) employing tapped-delay line(s) for providing precision correlation / covariance vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods
US20150143076A1 (en) VECTOR PROCESSING ENGINES (VPEs) EMPLOYING DESPREADING CIRCUITRY IN DATA FLOW PATHS BETWEEN EXECUTION UNITS AND VECTOR DATA MEMORY TO PROVIDE IN-FLIGHT DESPREADING OF SPREAD-SPECTRUM SEQUENCES, AND RELATED VECTOR PROCESSING INSTRUCTIONS, SYSTEMS, AND METHODS
EP2972988A2 (en) Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
CN102945224A (zh) 基于fpga的高速可变点fft处理器及其处理方法
CN107223237A (zh) 用于存储器访问的方法和装置
CN101847137B (zh) 一种实现基2fft计算的fft处理器
CN102495721A (zh) 一种支持fft加速的simd向量处理器
CN104182207A (zh) 处理器中的移动平均处理及处理器
US10949493B2 (en) Multi-functional computing apparatus and fast fourier transform computing apparatus
CN114996649A (zh) 一种矩阵分解和下三角矩阵求逆的实现方法
CN108762719A (zh) 一种并行广义内积重构控制器
CN203241983U (zh) 用于执行信号处理操作的装置
CN203217552U (zh) 用于执行信号处理操作的装置
CN104734668A (zh) 一种插值滤波器
US10623222B2 (en) Vectorized peak detection for signal processing
Dimitroulakos et al. Compiler assisted architectural exploration for coarse grained reconfigurable arrays
CN108140017A (zh) 用于线性相位有限脉冲响应抽取滤波器中的地址排序的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant