CN103543984A - 用于特殊相关应用的修改型平衡吞吐量数据路径架构 - Google Patents

用于特殊相关应用的修改型平衡吞吐量数据路径架构 Download PDF

Info

Publication number
CN103543984A
CN103543984A CN201210251241.4A CN201210251241A CN103543984A CN 103543984 A CN103543984 A CN 103543984A CN 201210251241 A CN201210251241 A CN 201210251241A CN 103543984 A CN103543984 A CN 103543984A
Authority
CN
China
Prior art keywords
register
data
unit
byte
grouping
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.)
Granted
Application number
CN201210251241.4A
Other languages
English (en)
Other versions
CN103543984B (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 CN201210251241.4A priority Critical patent/CN103543984B/zh
Priority to US13/936,886 priority patent/US9424033B2/en
Publication of CN103543984A publication Critical patent/CN103543984A/zh
Application granted granted Critical
Publication of CN103543984B publication Critical patent/CN103543984B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/3824Operand accessing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明的实施例公开了一种用于特殊相关应用的修改型平衡吞吐量数据路径架构。给出用于修改型平衡吞吐量数据路径架构的装置和方法用于在计算机硬件中高效实施滤波、卷积和相关的数字信号处理算法,其中数据和系数缓冲器可以实施为滑动窗。这一架构使用复用器和从地址生成器单元到乘法累加执行单元的数据路径支路。通过在地址生成器到执行单元的数据路径与寄存器到执行单元的数据路径之间选择,可以克服未对准寻址对系数引起的不平衡吞吐量和乘法累加冒泡周期。修改型平衡吞吐量数据路径架构可以在实施数字信号处理算法时实现每个周期高乘法累加操作速率。

Description

用于特殊相关应用的修改型平衡吞吐量数据路径架构
相关申请信息
本申请涉及[代理案号11-BJ-0648]“Novel Data AccessingMethod to Boost Performance of FIR Operation on BalancedThroughput Data-Path Architecture”,该申请在法律可允许的最大程度上通过引用而全文并入本文。
技术领域
这里描述的本发明涉及用于实现数字信号处理(DSP)操作的***架构、装置和方法。更具体而言但是并非排它地,本发明涉及用于实现涉及到乘法累加(MAC)计算的DSP操作(比如有限冲激响应(FIR)滤波、卷积、相关和其它DSP操作)的***、装置和方法。其它科学领域也使用MAC操作,例如物理科学的数值仿真。
背景技术
在信号处理(尤其是数字信号处理)领域中,许多必需操作是有限冲激响应(FIR)滤波器(也称为加权平均)的形式。在这一公知操作中,值的有限集合(也称为滤波器系数或者抽头加权值)h(k)(k=0,...,N-1)和输入数据序列的值x(k)用来按照规则
Figure BSA00000751733900011
创建输出序列值y(n)。由于每次将n递增1都将输入值的所选集合移位1;所以这一过程也称为滑动窗求和。为了计算每个y(n),首先将系数和输入值的配对相乘、然后相加求和,这称为乘法累加(MAC)的过程。
信号处理中常用的其它已知计算类型涉及到与FIR操作相似、但是涉及到两个数据信号的相关计算。一个示例是自相关操作,其中比较信号x(m)与它本身的移位版本x(m+n)以按照公式
Figure BSA00000751733900021
创建自相关信号。清楚的是这样的相关计算也使用许多MAC操作。
FIR和相关操作在信号处理中广泛用来选择数据所需频率、去除噪声、计算信号的功率谱密度以及其它应用。如等式的形式所示,这些操作很好地适合在计算机硬件上实现。为了实现FIR滤波器操作,向专用存储器阵列中加载滤波器系数,然后对于每个值y(n)而言,向第二存储器阵列中加载输入的对应部分,并且对对准的值逐对执行MAC操作。为了实现自相关,向存储器中连续加载两个信号的值。
尽管可以并且经常是通过软件在通用计算机过程中完成实现FIR和相关操作,但是许多信号处理应用需要操作的很快计算。这些情况经常需要在专用数字硬件(比如数字信号处理器(DSP))上、在可重新配置平台(比如现场可编程门阵列(FPGA))上、或者在专用集成电路(ASIC)上的专用实现。在这一水平上,硬件实现方式的具体细节(比如如何代表并且内部存储值、它们的数据类型、数据总线大小等)对于获得很高速操作而言变得重要。高效硬件实施的一个目标是让MAC操作出现于每个周期。实现甚至更高MAC速率尤其是值得的。
在图1中示出了本领域已知的、一种用于实现快速FIR操作的一般方法和***。数据或者系数经过地址生成器(AG)从***的存储器移动并且存储于***的快速可访问存储器位置(称为寄存器文件(Reg文件))。在每个周期中,从Reg文件移动两个值进入MAC单元,并且计算它们的乘积并且求和成累加值并且回写到累加寄存器位置。
对于进行中的正常操作而言,必须有向Reg文件中读取的数据量与MAC单元消耗的数据量的平衡。另外,进入MAC单元的数据值必须完整;如果访问对于MAC单元而言必需的数据值有延迟,则它必须等待一个(或者多个)周期直至它获得用于乘法和累加计算的完整数据值。这样的暂停称为冒泡周期。它代表***的整体操作的效率低下。防止这样的低效率是本发明的一个总体目标。另一目标是创建如下架构,在该架构中可以在一个周期中执行的多于一个MAC操作。另一目标是处置地址未对准用于执行相关型计算。
发明内容
在图1中示出了已知的现有技术平衡吞吐量架构。然而它具有限制,因为冒泡周期可能经常出现足以减少总体效率。在图2中示出了一种针对地址未对准的解决方案,其中地址生成器产生两个***存储器地址,该地址生成器将两个端口用于读取和写入操作。图3示出了使用另一架构以解决地址未对准而未使用图2的AG架构。图3的架构代之以使用图4的AG架构。图3的架构适合于在实现FIR操作期间避免冒泡周期。
在图7中示出了本发明的架构,并且该架构适合用于在实现相关操作时避免存储器未对准问题。
例如包括采样信号的值的数据被存储于***的大型存储器储存器(经常为随机存取存储器,并且这里称为***存储器)中。由于需要来自***存储器的各种值用于FIR或者相关计算,所以AG将值从***存储器移入架构的寄存器存储器文件***,该***包括MAC执行单元快速可访问的存储器。
本发明的一个实施例将分级结构用于寄存器存储器文件***。这一要素(称为分组寄存器文件(GRF)***)将寄存器组织成三级。第一级是单独的寄存器位置的基础级。第二级将寄存器组织成寄存器配对。第三级将配对寄存器组织成分组寄存器,每个分组包括两个配对寄存器并且因此包括四个单独的寄存器。
本发明的实施例在下一特征中使用GRF***的分级和引用方案,该下一特征为未对准地址布局(MAP)***。MAP由AG实现并且按照下文详述的具体过程从***存储器向寄存器中加载值以便完全填充每个单个分组寄存器。另外,它的具体加载顺序帮助整个***每个周期实现一个或者多个MAC。
本发明实施例的第三特征是使用从AG直接到MAC执行单元的专用数据路径,从而AG可以将数据从***存储器直接移入MAC执行单元。这一特征可以消除在相关操作期间对冒泡周期的需要,因为可以在向寄存器中加载数据的同时向MAC单元中立即加载未对准的数据。复用器(MUX)实现向MAC执行单元(EX)中正确加载值。
本发明的第四特征是在MAC执行单元中使用并行处理。由于将对数据的多个配对执行的操作是乘法累加,所以MAC被构造成接收数据的多个配对和系数并且在每个周期同时执行操作是有利的。用于这一处理形式的术语是单指令多数据(SIMD)。MAC执行单元无论它运用的并行量如何都在乘法累加过程之后向寄存器存储器***回写MAC操作的值。
如下文将详述的那样,本发明的这些特征的组合允许***吞吐量——去往和来自寄存器和存储器——保持平衡。另外可以克服由于未对准所致的冒泡周期。最后可以实现更高MAC速率。
根据对如附图中所示本发明实施例的以下更具体描述将清楚本发明的前述和其它特征、效用和优点。
附图说明
具体描述参照附图。在图中,参考数字的两个最右数位左边的数位标识该参考数字首次出现的图。相同参考数字在所有附图中用来引用相似特征和部件。
图1示出了现有技术的平衡吞吐量数据路径和访问架构。
图2示出了地址生成器单元的内部结构和数据访问路径。
图3示出了针对未对准地址问题的一个解决方案。
图4示出了图3中所示架构使用的修改型地址生成器。
图5示出了本发明的架构。
图6示出了如何使用GRF***来组织寄存器。
图7示出了在没有地址未对准时使用GRF***针对从存储器的数据加载的对准。
图8示出了在有地址未对准的情况下使用GRF***针对从存储器的数据加载的对准。
图9示出了在有地址未对准的情况下使用GRF***针对从存储器的第二数据加载的对准。
图10示出了在相关操作的情况下的地址未对准情况。
图11示出了在本发明中的在相关操作的情况下、在地址未对准的情况下的值流。
具体实施方式
为了方便,这里列举常用缩写词:
AG      地址生成器
ASIC    专用集成电路
DSP     数字信号处理器(或者处理)
EX      执行单元
FIR     有限冲激响应
FPGA    现场可编程门阵列
GR      分组寄存器
MAC     乘法累加
MAP     错位地址***
PR      配对寄存器
RAM     随机存取存储器
SIMD    单指令多数据
MUX     复用器
公知的是数字信号处理的许多操作(具体为FIR滤波器或者相关操作)使用滑动窗型操作,在该操作中通过将输入集合移位输入值与系数或者抽头权值逐对相乘的求和来创建值的输出集合。例如FIR滤波器具有形式
Figure BSA00000751733900051
并且信号X(n)和Y(n)的卷积是X·Y[n]=∑kX(n-k)Y(k)。对于需要快速计算这样的公式的应用而言,清楚的是必须迅速(优选并行)执行乘法和累加操作。本发明这里公开用于快速实现这样的MAC操作的各种实施例。如这里所用,术语数据值将指代信号数据值或者滤波器系数数据值。
在图1中示出了一种用于在数字电路中实现FIR滤波的已知架构并且称之为平衡吞吐量数据路径架构。它可以在专用DSP芯片、FPGA或者ASIC上实现。它包括四个主要要素:大型***存储器101、地址生成器AG 103、Reg文件104和MAC执行单元105。***存储器经常包括随机存取存储器,并且用来存储大量输入和输出数据值,并且如果必需则还存储用于FIR应用的滤波器系数。Reg文件单元包括称为寄存器的存储器位置阵列,这些寄存器通常让***的处理部件更快访问。AG是经常在电路中实现的寻址***,该***负责在***存储器与寄存器文件之间移动所需多条数据。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。
本发明修改该新架构以针对相关型计算(其中向寄存器中加载两个信号的数据值)处置地址未对准。为了参照的一致性,图3的架构称为未修改架构,而这里公开的在图5中所示的架构称为修改型架构。
本发明的以及未修改架构的实施例包括主存储器***,该***通常包括RAM,地址生成器AG访问主存储器***以向存储器***和从存储器***移动值(信号值或者系数),该存储器***称为GRF,乘法累加处理器(MAC)直接访问该存储器***并且向存储器***写入。
修改型架构寄存器的优选实施例将分级组织方案用于单独的寄存器存储器位置。在优选实施例中,这是三层数据寻址和访问方案,该方案包括单独的寄存器的基础层、第二层(其中组合单独的寄存器存储器位置的配对用于用作称为配对寄存器(PR)的单元并且其中组合两个PR用于用作称为分组寄存器(GR)的单元)。图6从左到右示出了其中八个寄存器具有单独的地址(示意地标注为r0至r7)的示例、这些寄存器的连续配对如何组合成四个PR(示意地标注为p0至p3)并且最终如何——按照交替模式——将这四个PR分组成两个分组寄存器(GR)(示意地标注为g0和g1)。所示实施例示出了PR左边具有奇数索引寄存器而偶数索引寄存器在右边。
存在将PR组织成GR的两种模式。在左手模式中,偶数索引PR布局于左边而奇数索引PR布局于右边。在右手模式中,奇数索引PR布局于左边而偶数索引PR布局于右边。
利用这一分级寄存器组织方案,AG可以向存储器***并从存储器***移动值以允许增加在周期中执行的MAC操作数目,这可以克服在有存储器地址未对准时对冒泡周期的需要并且可以在操作流水线中维持平衡。
作为AG与GRF***一起操作的示例情况,假设寄存器宽度为32比特(即4字节)。也假设AG如图3中所示访问来自存储器的加倍宽度(64比特(即8字节))数据块。如果未检测到存储器未对准,则来自存储器的值可以存储于一个GR的一个PR中。来自存储器的第二数据块然后可以存储于GR的另一PR中。这在图7中图示。
但是如果检测到存储器地址未对准,则本发明的一个实施例通过首先让AG基于地址的未对准模式分配对准点来加载8字节数据块以移入寄存器。作为一个示例,如果地址的未对准是在(字节0至字节7中的)字节7,则对准点是在字节7与字节6之间的点。如图8中所示,这一点与目标分组寄存器的中点对准,从而字节0至字节6示意地对准至GR的中点右边而字节7示意地对准至中点左边。然后如图所示向目标GR中加载数据字节。注意填充寄存器r6中的四个可用字节中的仅一个字节而未填充寄存器r4的一个字节。注意在图6中,标注为g1的GR将GRF***的右手模式用于数据的第一次加载。
对于连续加载操作而言,如果先前段落的示例性右手模式加载操作已经用于一个加载操作,则在下一迭代中,加载的下一8字节块对于同一GR使用左手模式。图9示出了使用左手模式访问gr1中的寄存器如何允许向gr0的剩余分段中加载下一8个字节C和D。
当已经向一个gr1中加载信号数据并且将向另一gr1中加载更多信号数据时,有可能的是存储器未对准可能延迟将数据从寄存器移入MAC。在图8中示出了用于平衡数据吞吐量的修改型架构的实施例。注意不同于未修改架构,在这一实施例中现在有如下复用器,该复用器能够旁通在寄存器中加载数据而立即向MAC中直接加载数据值。
对于相关应用而言,数据值和系数均为滑动窗。未对准值布局方法首先向一个分组寄存器文件中加载数据值,然后从寄存器文件向MAC EX单元中读取数据值用于MAC操作。未对准值布局方法也向分组寄存器文件中加载系数。但是除了向寄存器文件中加载之外,在一些特殊未对准模式中,系数被旁通至MAC EX用于当前周期的操作。如图10中所示,在先前周期中加载寄存器6中的系数(值A),但是未对准值布局***使得寄存器6中有一些遗漏值。因而对寄存器6中的系数的MAC操作将暂停以等待遗漏系数;将在流水线中***冒泡周期。为了避免这一点,除了向寄存器文件中保存之外,还从AG经过新数据支路旁通当前周期中加载的系数。MUX 503选择器将存储器值的字节2下至字节0与r6中的值A的字节0组合。组合的新系数在当前周期中由MAC操作使用。省略冒泡周期并且再次平衡数据-路径吞吐量。在图11中示出了整个值流。
在这一实施例中,这一旁通操作用于的模式的组合是:(1)当系数的滑动窗引起的未对准地址指向字节7时,则将存储器值的字节2下至字节0与r6的字节0组合;(2)当未对准地址指向字节6时,则将存储器系数的字节1下至字节0与r6的字节1下至字0组合;并且(3)当未对准地址指向字节5时,则将字节0存储器系数与r6的字节2下至字节0组合。然而当未对准地址指向字节5以下的字节时,无需组合。r6的系数可以由MAC操作直接使用。
对于普通FIR操作(其中仅一个窗滑动),MUX可以被配置成工作而未组合来自AG的数据。这允许本发明的一个实施例作为图3的架构来工作。
尽管已经参照本发明的优选实施例具体示出和描述本发明,但是本领域技术人员将理解可以在形式和细节上进行各种其它改变而未脱离本发明的精神实质和范围。

Claims (20)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210251241.4A CN103543984B (zh) 2012-07-11 2012-07-11 用于特殊相关应用的修改型平衡吞吐量数据路径架构
US13/936,886 US9424033B2 (en) 2012-07-11 2013-07-08 Modified balanced throughput data-path architecture for special correlation applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210251241.4A CN103543984B (zh) 2012-07-11 2012-07-11 用于特殊相关应用的修改型平衡吞吐量数据路径架构

Publications (2)

Publication Number Publication Date
CN103543984A true CN103543984A (zh) 2014-01-29
CN103543984B CN103543984B (zh) 2016-08-10

Family

ID=49915019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210251241.4A Active CN103543984B (zh) 2012-07-11 2012-07-11 用于特殊相关应用的修改型平衡吞吐量数据路径架构

Country Status (2)

Country Link
US (1) US9424033B2 (zh)
CN (1) CN103543984B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103543983B (zh) * 2012-07-11 2016-08-24 世意法(北京)半导体研发有限责任公司 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
KR102325602B1 (ko) 2015-07-06 2021-11-12 삼성전자주식회사 데이터를 병렬적으로 처리하는 장치 및 방법
EP3844608A4 (en) 2018-08-31 2021-12-08 Flex Logix Technologies, Inc. MULTIPLICATOR ADDITION CIRCUIT, LOGICAL TILE ARCHITECTURE FOR MULTIPLICATION ADDITION AND IC WITH LOGICAL TILE MATRIX
US11194585B2 (en) * 2019-03-25 2021-12-07 Flex Logix Technologies, Inc. Multiplier-accumulator circuitry having processing pipelines and methods of operating same
US11314504B2 (en) 2019-04-09 2022-04-26 Flex Logix Technologies, Inc. Multiplier-accumulator processing pipelines and processing component, and methods of operating same
US11288076B2 (en) 2019-09-13 2022-03-29 Flex Logix Technologies, Inc. IC including logic tile, having reconfigurable MAC pipeline, and reconfigurable memory
US11455368B2 (en) 2019-10-02 2022-09-27 Flex Logix Technologies, Inc. MAC processing pipeline having conversion circuitry, and methods of operating same
US12015428B2 (en) 2019-11-05 2024-06-18 Flex Logix Technologies, Inc. MAC processing pipeline using filter weights having enhanced dynamic range, and methods of operating same
US11693625B2 (en) 2019-12-04 2023-07-04 Flex Logix Technologies, Inc. Logarithmic addition-accumulator circuitry, processing pipeline including same, and methods of operation
US11960856B1 (en) 2020-01-15 2024-04-16 Flex Logix Technologies, Inc. Multiplier-accumulator processing pipeline using filter weights having gaussian floating point data format
US11442881B2 (en) 2020-04-18 2022-09-13 Flex Logix Technologies, Inc. MAC processing pipelines, circuitry to control and configure same, and methods of operating same
CN111506520B (zh) * 2020-07-01 2020-09-22 腾讯科技(深圳)有限公司 一种地址生成的方法、相关装置以及存储介质
US11604645B2 (en) 2020-07-22 2023-03-14 Flex Logix Technologies, Inc. MAC processing pipelines having programmable granularity, and methods of operating same
CN111835886B (zh) * 2020-08-06 2021-08-17 南京航空航天大学 一种制造物联网网关中地址解析协议包的处理方法及装置

Citations (5)

* 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微体系结构的可编程数字信号处理器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7633789B2 (en) * 2007-12-04 2009-12-15 Unity Semiconductor Corporation Planar third dimensional memory with multi-port access
CN103543983B (zh) * 2012-07-11 2016-08-24 世意法(北京)半导体研发有限责任公司 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法

Patent Citations (5)

* 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 中国电子科技集团公司第三十八研究所 可重构数字信号处理器

Also Published As

Publication number Publication date
CN103543984B (zh) 2016-08-10
US20140019727A1 (en) 2014-01-16
US9424033B2 (en) 2016-08-23

Similar Documents

Publication Publication Date Title
CN103543984A (zh) 用于特殊相关应用的修改型平衡吞吐量数据路径架构
Wang et al. PipeCNN: An OpenCL-based open-source FPGA accelerator for convolution neural networks
KR101781057B1 (ko) 실행 유닛들과 벡터 데이터 메모리 사이에 병합 회로를 갖는 벡터 프로세싱 엔진, 및 관련된 방법
JP6373991B2 (ja) フィルタベクトル処理動作のためのタップ付き遅延線を利用するベクトル処理エンジンと、関連するベクトル処理システムおよび方法
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
CN103543983B (zh) 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
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
KR20160085335A (ko) 벡터 데이터 메모리와 실행 유닛들 사이의 데이터 흐름 경로들에서 재정렬 회로를 이용하는 벡터 프로세싱 엔진, 및 관련된 방법
CN102945224A (zh) 基于fpga的高速可变点fft处理器及其处理方法
CN116303111A (zh) 使用专用计算单元的硬件双缓存
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构***及其处理方法
CN102495721A (zh) 一种支持fft加速的simd向量处理器
CN203241983U (zh) 用于执行信号处理操作的装置
CN108762719A (zh) 一种并行广义内积重构控制器
Vandierendonck et al. Application-specific reconfigurable XOR-indexing to eliminate cache conflict misses
Shafiq et al. Exploiting memory customization in FPGA for 3D stencil computations
CN203217552U (zh) 用于执行信号处理操作的装置
CN104734668A (zh) 一种插值滤波器
Zhang et al. A VLSI architecture for a high-speed computation of the 1D discrete wavelet transform
Kamp et al. Multiply accumulate unit optimised for fast dot-product evaluation
Roohi et al. ReFACE: efficient design methodology for acceleration of digital filter implementations
US11132296B1 (en) Linear interpolator of tabulated functions
Mu et al. Study on the FPGA implementation algorithm of effictive FIR filter based on remainder theorem
RU2451987C1 (ru) Устройство для расчета порядковых номеров битов с высоким логическим уровнем в строке данных

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