CN104364755B - 用于通过中间阶层运算的并行计算来加速计算的方法和装置 - Google Patents

用于通过中间阶层运算的并行计算来加速计算的方法和装置 Download PDF

Info

Publication number
CN104364755B
CN104364755B CN201380026108.1A CN201380026108A CN104364755B CN 104364755 B CN104364755 B CN 104364755B CN 201380026108 A CN201380026108 A CN 201380026108A CN 104364755 B CN104364755 B CN 104364755B
Authority
CN
China
Prior art keywords
data
local
address
storage
interface
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
CN201380026108.1A
Other languages
English (en)
Other versions
CN104364755A (zh
Inventor
维努·坎达戴
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CN104364755A publication Critical patent/CN104364755A/zh
Application granted granted Critical
Publication of CN104364755B publication Critical patent/CN104364755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明构成一种用于实现中间运算的并行计算的方法和设备,这些中间运算在给定应用中的许多算法中为通用的并且还包括大多数计算密集型运算。该方法包括:设计适合于预先定义的应用的一组中间级函数,从处理器获得对应于中间级运算的指令,计算运算对象和结果的地址,执行多个中间级运算中所涉及的计算。在一示例性实施例中,设备由本地数据地址生成器、可编程计算单元和本地存储器接口构成,该本地数据地址生成器计算多个运算对象和结果的地址,该可编程计算单元执行中间级运算的并行计算,该本地存储器接口接口到在多个块中被组织的本地存储器中。本地数据地址生成器和可编程计算单元可配置成覆盖需要大量计算的任意域。

Description

用于通过中间阶层运算的并行计算来加速计算的方法和装置
技术领域
本发明中所设计的方法和装置总体涉及高性能计算领域并且具体地涉及使用硬件加速器对不同的应用加速。本发明特别是涉及使用为不同的应用专门设计的运算的并行计算来设计集成电路的架构。
背景技术
存在对高性能计算的日益增长的需求。常常,高计算能力的要求也与低功耗的竞争要求相关联。例如,多媒体计算为一个这样的情况,其中,朝高分辨率和高清晰度应用的要求针对大多数通过蓄电池工作的装置。对于这样的装置,存在严格的功率和性能要求。存在用来在尝试消耗较少能量的同时增加计算功率的多项技术。
高性能处理器(RISC和DSP处理器)的设计,处理器的扩展,诸如单指令多数据(SIMD)、多指令多数据(MIMD)、协处理器等等,为对处理器的现有改型以实现更好的计算能力。还尝试了类似于多议题、VLIW(非常长的指令字)或更一般超标量架构的具有面向性能架构的处理器,但是,由于它们的大回路规模和功率消耗,成功率更低。
处理器架构的扩展的SIMD和MIMD型尝试在单个处理器循环中执行多项运算来实现较高的计算速度。适当设计的寄存器组被用来为多个运算提供运算对象以及存储那些运算的结果。
处理器的SIMD和类似的扩展需要以特定方式组织数据,并且因此仅在这样的数据组织容易得到且无需重排的先前步骤的情况下提供优点。此外,由于SIMD技术涉及仅基础数学运算, 所以在处于基础数学级的计算的顺序次序为必须的情况下,SIMD不能被用于算法的部分。因此,这些类型的扩展提供有限的计算加速,在计算类似视频解码的完全算法所需的周期上,最好的情况提供至多40%的缩短。因此这些类型的扩展由于所需的附加电路而产生更少的功率优点。
存在用来实现高性能的其它创新途径,诸如向量处理发动机、可配置加速器等。关于用于浮点运算[Nil]、可适应算术节点[N2]和可配置算术单元[E4]的可重配置阵列处理器的工作试图使用向量处理和可配置性来实现执行数学运算上的效率。
实现上文描述的较高计算能力的方法均在于更加有效地执行基础数学运算。DSP处理器执行诸如相乘和累加(MAC)的运算,这些运算为在基础数学运算之上的步骤。尽管这些算法为在不同应用的不同算法中产生的通用基本算法,但是出于上文陈述的原因,在该基础运算级下加速能够在计算中提供有限的加速。
另一方面,多芯架构被广阔地用来加快计算。在个人计算机、膝上型计算机和平板计算机以及甚至在高端移动电话中使用这些架构。精细功率管理方案用来最小化因多核心而产生的功率消耗。
多芯架构通过对算法的并行处理实现较高的计算能力。因此,算法对于并行处理(多线程)、对于将有效的多芯架构应是服从的。因此,除了因多个核心的存在而产生的较高功率消耗之外,在多芯处理器中可达到的计算加速也受到限制。
被用来对计算加速的不同的途径是构建实施整个算法或其需要大量计算的一部分的电路(硬件加速器)。通常设计硬件加速器来对算法的计算最昂贵的部分加速(音频编解码器中的傅里叶变换、视频编解码器中的去块滤波器等)。常常构建硬件加速器用于类似视频解码器的完全算法。该途径提供极好的算法加速。在这种情况下,功率要求也是最小的,因为回路具体地针对给定的计算设计。
然而,在计算流程中的任意改变使得现有硬件加速器无用并且需要新回路的结构。存在一些可配置硬件加速器,但是它们可配置的程度通常用于几个模式或几个紧密相关的算法。
使用硬件加速器来加速算法的仅一部分部分地克服上述问题,因为不在硬件加速器中的部分的流动(并且因此在通用处理器上运行)在整个算法上能够是有意义的性能改善,并且仍然留下算法的部分不加速,因此限制整体性能。
总之,在实现高性能计算即以低功耗计算的高速率的当前技术能够分类为三个类型:(A)使用向量处理、超标量架构的基础数学运算的并行计算,(B)并行/多芯处理器,和(C)计算整个算法或算法的部分的专用线路。A型技术产生有限的加速,主要因为基础运算在算法中能够被并行化的有限的范围。B型技术也产生有限的加速,主要由于算法能够为多线程的范围。C型技术产生良好的加速,但是具有极有限的灵活性。
本发明试图通过对在基础运算级之上但是在整个算法之下的计算和包含大多数计算密集部分但是在几个算法中公共的共用部分提出不同级的加速来消除上文所讨论的限制(中间阶层运算为中间级运算)。
发明内容
下面提出对本公开的简要总结以便提供对读取器的基础理解。该总结不是本公开的广泛概述,并且它不识别本发明的关键/重要元件或描绘本发明的范围。其唯一目的为以简要形式提出本文公开的一些概念,作为稍后提供的更多详细描述的序幕。
本发明的更多完全领悟及其范围能够从下文简要总结的附图和目前优选实施例的下列详细描述获得。
公开了用于实现计算系统中的多个应用中的中间阶层运算的并行计算的方法和设备(通用多功能加速器)。
本发明的示例性实施例为实现并行计算以对诸如多媒 体、通信、图形、数据安全性、金融、其它工程和科学以及一般计算的多个应用加速。
本发明的示例性实施例支持用于对不同的应用加速的最佳设计指令。最佳设计指令处于在基础数学运算之上的等级并且将充分共性维持为算法独立的(中间级或中间阶层运算)。
本发明的示例性实施例支持用于多媒体应用的多个数字式信号处理器指令。
本发明的示例性目的为通过对中间运算加速来实现不同类型计算中的高性能计算。
根据本发明的非限制示例性方面,通用多功能加速器,对诸如基-2、基-4等的傅里叶变换运算的各种计算加速。
根据非限制示例性方面,对例如基-2的运算的选择允许该方法为算法独立的。
本发明的示例性实施例为提供多条指令以对诸如散列法、加密、解密等的多个数据安全性算法加速。
本发明的示例性实施例支持对应的指令以覆盖不同的应用。
根据非限制示例性方面,通用多功能加速器通过在通用多功能加速器的本地存储器中存在的一组数据上的一个处理器循环中执行多个数学运算来提供对计算的高度加速。
根据本发明的第一方面,该方法包括传递指令至指令解码器,因而指令解码器执行对指令的解码运算并且传递多个所需的控制信号至本地数据地址生成器。该方法进一步包括从处理器接收指令的步骤。
根据第一方面,该方法包括传递将被执行的运算所需的多个运算对象的起始地址并且传递这些结果的初始目的地址至本地数据地址生成器。
根据第一方面,该方法包括通过本地数据地址生成器判定数据的源地址和目的地址,因而本地数据地址生成器计算对应 于执行指令的计算运算所需的多个数据点的位置的地址和多个结果将被存储的位置的地址。
根据第一方面,该方法包括执行由可编程计算单元中的指令指定的多项计算运算,因而多项计算运算包括基础数学运算和基础逻辑运算的预先定义的一组组合。
根据第一方面,该方法包括通过本地存储器接口从多个存储器块访问多个数据点,其中,对应于多个数据点的位置的地址由可编程本地数据地址生成器产生。
根据第一方面,该方法包括实现作为系统存储器接口中的计算系统的单个存储单元的多个存储器块的可视化,因而系统存储器接口实现对标准数据传递运算和直接存储器存取传递运算的使用。
根据第一方面,该方法包括通过系统数据地址生成器将从系统总线接收的系统地址转换成本地地址。
根据第一方面,该方法进一步包括将通用多功能加速器与主处理器的紧耦合存储器端口或紧密耦合存储器端口接口的步骤。
根据第一方面,该方法进一步包括用于执行计算运算的指令中的运算码的步骤。
根据第一方面,该方法进一步包括将多个存储器块与本地存储器接口接口以访问多个数据点的步骤。
根据第一方面,该方法进一步包括基于指令执行多项计算运算的步骤。
根据第一方面,该方法进一步包括在指令中包括配置参数以配置通用多功能加速器的步骤。
根据第一方面,该方法进一步包括基于配置参数计算多个运算对象的地址和结果的地址的步骤。
根据第一方面,该方法进一步包括基于配置参数执行多项计算运算的步骤。
根据本发明的第二方面,通用多功能加速器包括被配置成判定指令的源地址和目的地址的可编程本地数据地址生成器。
根据本发明的第二方面,通用多功能加速器包括用于执行指令中指定的多项计算运算的可编程计算单元,因而多项计算运算包括基础数学运算和基础逻辑运算的预先定义的一组组合。
根据本发明的第二方面,通用多功能加速器包括用于从计算指令所需的多个存储器块访问多个数据点的步骤的本地存储器接口,因而对应于多个数据点的位置的地址通过可编程本地数据地址生成器产生。包括多个存储器块的本地存储单元接口到本地存储器接口。本地存储器接口将多个运算对象提供给可编程计算单元。
根据本发明的第二方面,通用多功能加速器包括系统存储器接口。系统总线在系统存储器接口与计算系统之间通信。
根据本发明的第二方面,通用多功能加速器包括被配置成将从系统总线接收的系统地址转换成本地存储器地址的系统数据地址生成器。系统数据地址生成器实现作为计算系统的单个存储单元的多个本地存储器块的可视化。
根据本发明的第二方面,通用多功能加速器进一步被配置成对指令中的多个中间运算加速。
根据本发明的第二方面,通用多功能加速器进一步包括用以对来自主处理器的指令解码的指令解码器。指令解码器进一步被配置成传输多个控制信号至本地数据地址生成器。
根据本发明的第二方面,通用多功能加速器进一步包括用于对主处理器的紧耦合存储器端口接口的处理器接口。处理器接口进一步与主处理器的紧密耦合存储器端口接口。
附图说明
图1为描绘用于使用处理器计算基础数学运算的现有技术系统的图示。
图2为描绘用于通过构建专属电路(硬件加速器)对 算法的计算加速的现有技术系统的图示。
图3为描绘涉及通用多功能加速器的系统的概略图的图示。
图4为描绘执行基-2两个中间阶层运算的并行计算的示例性实施例的图示。
图5为描绘通用多功能加速器连同本地存储器的概略图的图示。
图6为描绘通用多功能加速器中的指令结构的图示。
图7为描绘通用多功能加速器与本地存储器之间的连接性的概略图的图示。
图8为描绘通用多功能加速器的本地数据地址生成器与本地存储器接口之间的连接性的概略图的图示。
图9为描绘通用多功能加速器的可编程计算单元与本地存储器接口之间的连接性的概略图的图示。
图10为描绘通用多功能加速器的系统数据地址生成器与带本地存储器接口的系统存储器接口之间的连接性的概略图的图示。
图11为描绘通用多功能加速器的指令解码器与本地数据地址生成器之间的连接性的概略图的图示。
图12为描绘通用多功能加速器的指令解码器与可编程计算单元之间的连接性的概略图的图示。
具体实施方式
应当理解的是,本发明在其应用上并不限于下列说明书中所阐明的或下列图纸中所示的部件的结构和布置的细节。本公开能够涵盖其它实施例并且可以各种方式实践或实施。另外,需理解的是,本文所使用的措辞和术语是出于说明目的,并且不应被视为限制性的。
此处对“包含”、“包括”或“具有”和其变型的使用意味着 笼括其后列出的项目和其等同物以及另外的项目。本文的术语“一”和“一个”不指示对数量的限制,而是指示所引用的项目中的至少一个的存在。此外,对本文中的术语“第一”、“第二”、和“第三”等的使用不指示任意顺序、数量、或重要性,而是用来区别一个元件与另一个元件。
参照图1,图1为描绘用于计算基础数学运算的现有技术系统的图示100。系统包括处理器核心(典型地多芯处理器)102、连接到系统总线106以传输数据或指令用于执行基础数学运算的存储器104。处理器核心102连接到系统总线106用于将诸如加、减、乘等的计算数学运算传输至存储器104。处理器核心102和存储器104使用双向通信过程连同系统总线106来传输和接收数据。
参照图2,图2为描绘用于通过构建专用线路(硬件加速器)对算法加速的系统的现有技术的图示200。系统包括连接到系统总线206以便对完全算法加速以执行特定计算的处理器202、存储器204和硬件加速器208。
连接到系统总线206的处理器202控制硬件加速器208。硬件加速器208通常设计成计算特定算法或算法的计算昂贵部分。存储器204存储将被计算的或已经计算的数据。
参照图3,图3为描绘使用通用多功能加速器的计算系统的概略图的图示300。根据本主题的非限制示例性实施例,该系统包括:处理器302、存储器304和通用多功能加速器308,各自连接到系统总线306;和本地存储器310。通用多功能加速器308通过连接部312从处理器接收对应于将被执行的中间级运算的这些指令。
根据本主题的非限制示例性实施,连接到系统总线306的处理器302使用互连部312将这些指令传输至通用多功能加速器308以执行存储在本地存储器310中的数据上的预先定义的中间阶层运算。本地存储器312通过专用接口314连接到通用多功能加速器308。
参照图4,图4为描绘基-2计算的非限制示例性中间运算的图示400。图示400描绘两个基-2运算402和404。根据本主题的非限制示例性实施例,该过程描述两个基-2运算402和404的并行计算。
根据本主题的非限制示例性实施,诸如基-2、基-4等的并行计算运算由通用多功能加速器支持。这样的指令在加速傅里叶变换、其任意规模和变化的逆傅里叶变换中是有用的。
根据本主题的非限制示例性实施,诸如FIR滤波器、基运算、开窗函数、量化等的多个中间阶层运算在通用多功能加速器中被设计和实施以对所有多媒体应用加速。
参照图5,图5为描绘通用多个函数加速器的概略图的图示500。根据本主题的非限制示例性实施例,通用多功能加速器包括处理器接口502、指令解码器504、本地数据地址生成器506、可编程计算单元508、系统数据地址生成器510和系统接口512、连接到本地存储器516的本地存储器接口514。
根据本主题的非限制示例性实施例,这些指令被如此设计成包括执行作为用以对预先定义的应用的不同的算法加速所需的数学运算和逻辑运算的组合的中间阶层运算的信息。所设计的指令还包括运算对象的起始地址、结果的目的的起始地址和模式或配置参数。因此多个运算对象的地址基于嵌入在指令中的运算对象的起始地址来判定,并且基于这些地址获得的多个运算对象基于嵌入在指令中的信息来执行由中间阶层函数指定的多个运算。同样地,多个结果的目的地址的基于嵌入在指令中的结果的初始目的地址而判定并且将结果传递至这些地址位置。
参照图6,图6为描绘关于通用多功能加速器中的指令结构的图示600。根据本主题的非限制示例性实施例,指令包括运算码602和两个地址或配置参数604a和604b。运算码602指定将被执行的中间级运算的类型。在一个非限制示例性实施例中,指令的其它两个域604a和604b可以包含两个地址。两个地址可以是两 个运算对象或一个运算对象和一个结果的初始地址。在另一个非限制示例性实施例中,两个域604a和604b中的一个或两个可以包含配置参数。
根据本主题的非限制示例性实施,参照图5,处理器接口502从处理器的紧耦合存储器或紧密耦合存储器端口接收特定应用的预先设计的指令并且将它们传递至指令解码器504。指令解码器504对从处理器接口502接收的这些指令解码并且产生必需的控制信号并且将它们传递至通用多功能加速器500的诸如本地数据地址生成器506和可编程计算单元508的不同部分。在通用多功能加速器500中的本地数据地址生成器506判定执行给定的指令和结果的运算所需的多个数据点的源地址和目的地址。
根据本主题的非限制示例性实施例,通用多功能加速器500的可编程计算单元508在从本地存储器516获得的多个数据上执行诸如图4中描绘的两个基-2运算400的中间运算的并行计算。对于通用多功能加速器500支持的每个运算,可编程计算单元508从指令解码器504接收控制信号,通过适当地挑选如由控制信号指定的基础数学运算和逻辑运算的组合而在多个数据点上执行算术和逻辑运算以产生多个结果。
根据本主题的非限制示例性实施例,通用多功能加速器500的系统数据地址生成器510将系统地址转换成本地存储器516中的数据的位置的地址。通用多功能加速器500中的本地存储器接口514从本地存储器516中配置的一组存储器块访问多条指令中的每一条的数据点,所述多条指令的地址由本地数据地址生成器506计算。通用多功能加速器还进一步被配置成具有系统接口512,其中,所有的本地存储器块作为单个存储单元对系统是可见的,使得加载或存储或执行直接存储器存取传递运算对于将数据传递到本地存储器516中和从本地存储器516传递出来是足够的。
在非限制示例性实施例中,规模16kb的本地存储器516接口到通用多功能加速器500并且每一个进一步被组织成lkb的几 个块。
根据本主题的非限制示例性实施例,必要的运算将在其上执行的原始数据被传递至通用多功能加速器的本地存储器516。同时,本地存储器接口514将本地存储器516配置为供应多个运算对象至可编程计算单元508的几个存储器块,系统存储器接口使得本地存储器516作为单个存储器块呈现给计算系统。
参照图7,图7为描绘通用多功能加速器与本地存储器之间的连接性的概略图的图示700。根据本主题的非限制示例性实施例,该系统包括接口到各组存储器块704a和704b的通用多功能加速器的本地存储器接口702。
根据本主题的非限制示例性实施,在通用多功能加速器中配置的本地存储器接口702从本地存储器704a中的一组多个块访问多个运算对象并且将多个结果存储在本地存储器704b中一组多个块中。本地存储器接口702接口到本地存储器块704a的组-I和16kb本地存储器的本地存储器块704b的组-Ⅱ中的中的每一个以将数据独立地传递至被包括在组-I704a和组-Ⅱ 704b中的每个存储器块以及以从被包括在组-I 704a和组-Ⅱ 704b中的每个存储器块独立地接收数据。
参照图8,图8为描绘通用多功能加速器的本地数据地址生成器与本地存储器接口之间的连接性的概略图的图示800。根据本主题的非限制示例性实施例,该系统包括被配置成通过数据总线806与本地存储器接口804通信的本地数据地址生成器802。
根据本主题的非限制示例性实施,本地数据地址生成器802通过数据总线806计算本地存储器接口804的多个运算对象的多个地址,其中,执行由指令指定的运算所需的多个运算对象的多个地址由本地数据地址生成器802计算。
参照图9,图9为描绘通用多功能加速器的可编程计算单元与本地存储器接口之间的连接性的概略图的图示900。根据本主题的非限制示例性实施例,该系统包括被配置成通过数据总线 906与本地存储器接口904通信的可编程计算单元902。
根据本主题的非限制示例性实施,在通用多功能加速器中配置的可编程计算单元902执行由多条指令指定的多项计算。本地存储器接口904被配置成将从多个本地存储器块接收的多个运算对象通过数据总线906传递至可编程计算单元902。本地存储器接口902还进一步被配置成通过数据总线906接收由通用多功能加速器的可编程计算单元902产生的多个结果。
参照图10,图10描绘系统数据地址生成器与带本地存储器接口的系统存储器接口之间的连接性的概略图的图示1000。根据本主题的非限制示例性实施例,该系统包括系统数据地址生成器1002和系统存储器接口1004,所述系统数据地址生成器1002和系统存储器接口1004被配置成通过地址数据总线1008和数据总线1010与本地存储器接口1006通信。
根据本主题的非限制示例性实施例,系统数据地址生成器1002被配置成计算本地存储器中的位置的对应于系统总线上的地址的地址。系统数据地址生成器1002将该本地地址通过地址总线1008传递至本地存储器接口1006。接口到多个本地存储器块的本地存储器接口1006使用该地址存储从通用多功能加速器的系统存储器接口1004通过数据总线1010接收的数据。在通过系统传递以便从本地存储器读取的情况下,本地存储器接口1006通过数据总线1010将从本地存储器接收的数据传递至系统存储器接口1004。因此,系统数据地址生成器1002通过将系统存储器地址转换成本地存储器地址促进与本地存储器接口1006接口的所有本地存储器块作为存储器的一个单元呈现给系统总线。
参照图11,图11为描绘指令解码器与本地数据地址生成器之间的连接性的概略图的图示1100。根据本主题的非限制示例性实施例,该系统包括指令解码器1102,该指令解码器1102被配置成通过控制总线1106和1110、通过地址总线1108与本地数据地址生成器1104通信。
根据本主题的非限制示例性实施,通用多功能加速器被配置成基于指令中的运算码执行中间阶层运算。指令解码器1102计算控制信号并且将控制信号通过控制总线1106传递至本地数据地址生成器1104。本地数据地址生成器1104基于该控制信号计算指令所需的多个运算对象的地址和结果的地址。通用多功能加速器进一步被配置成将运算对象的起始地址和结果的起始地址从指令解码器1102通过地址总线1108传递至本地数据地址生成器1104。本地数据地址生成器1104基于这些初始地址计算指令所需的多个运算对象的地址和结果的地址。指令解码器进一步被配置成通过指令解码器1102将基于指令中的配置参数的模式信号通过模式信号数据总线1110传递至本地数据地址生成器1104和可编程计算单元。本地数据地址生成器1104基于该模式信号计算指令所需的多个运算对象的地址和结果的地址。因此,本地数据地址生成器1104使用对应于运算码的控制信号、运算对象的初始地址和结果的初始地址以及对应于配置参数的模式信号。
根据非限制示例性实施,对应于两个基运算的计算的指令,本地数据地址生成器1104计算多个运算对象的地址(四个复杂的输入因子和两个复杂旋转因子的地址)。这些地址基于傅里叶变换的规模和在FFT(快速傅利叶变换)算法中正被计算的基的等级隔开。在本发明的非限制示例性实施例中,FFT计算的规模和等级的值放置在指令的配置域中。
参照图12,图12为描绘指令解码器与可编程计算单元之间的连接性的概略图的图示1200。根据本主题的非限制示例性实施例,系统包括被配置成通过控制总线1206和1208与可编程计算单元1204通信的指令解码器1202。
根据本主题的非限制示例性实施,通用多功能加速器的可编程计算单元1202执行多个中间阶层运算的计算,所述多个中间阶层运算为如由指令指定的算术运算和逻辑运算的组合。可编程计算单元1202通过来自指令解码器1204的控制信号获得关于将被 执行的中间阶层运算的类型信息。然而,对于给定的运算码(以及因此控制信号),将被执行的计算的组合取决于配置参数。指令解码器1204产生基于配置参数的模式信号并且将这些模式信号通过控制总线1208传递至可编程计算单元1202。非限制示例性配置参数为FIR滤波器中抽头的数量,可编程计算单元1202被配置成基于该数量执行所需乘加次数。
虽然已经示出并且详细地描述了本发明的特定实施例来说明发明原理,但是应理解,本发明原本可以在不脱离这样的原理的情况下实现。

Claims (14)

1.一种处理中间阶层运算的系统,包括:
通用多功能加速器,其连接到所述系统的系统总线,所述系统总线被配置为将通用多功能加速器连接到所述系统的各种部件,所述通用多功能加速器被配置为接收来自所述系统中的主处理器的应用的预先设计的指令;
系统存储器,其被配置为包含应用的数据,所述系统存储器经由所述系统总线连接到所述通用多功能加速器;以及
本地存储器,其通过专用接口连接到所述通用多功能加速器,所述本地存储器被配置为从所述系统存储器接收所述数据并且在本地存储所述数据,所述数据是所述通用多功能加速器执行所述中间阶层运算的数据集。
2.根据权利要求1所述的系统,其中所述通用多功能加速器还包括:
系统接口,其被配置为经由所述系统总线从所述系统存储器接收具有系统存储器地址的所述数据;
系统数据地址生成器,其被配置为计算本地地址,所述本地地址是与所述系统总线上接收的所述系统存储器地址相对应的所述本地存储器中的位置;
本地存储器接口,其被配置为经由数据总线将所述数据存储在所述本地存储器中的所述本地地址位置中;
处理器接口,其被配置为经由所述主处理器的密切耦合的端口从所述主处理器接收所述应用的预先设计的指令;
指令解码器,其被配置为从所述主处理器接口接收所述指令,所述指令解码器进一步被配置为解码所述指令并且生成多个控制信号以供未来使用;
本地数据地址生成器,其被配置为经由多个控制总线和第二地址总线从所述指令解码器接收所述多个控制信号中的一些控制信号,所述本地数据地址生成器进一步被配置为确定包含所述数据的所述本地地址位置的源数据地址数据和被配置为将计算结果存储在所述数据上的目的地数据地址,其中所述本地存储器接口被配置为从所述本地数据地址生成器接收所述源数据地址和目的地数据地址,所述本地存储器接口进一步被配置为在源地址处访问所述本地存储器中的数据并且将所述数据传送到可编程计算单元,以经由第二数据总线执行所述中间阶层运算;以及
所述可编程计算单元被配置为从所述本地存储器接口接收数据,所述可编程计算单元进一步被配置为从所述指令解码器接收所述多个控制信号中的一些控制信号,所述可编程计算单元进一步被配置为对所述数据执行所述中间阶层运算,并且产生所述结果,其中所述结果经由所述本地存储器接口被存储在所述本地存储器中的所述目的地数据地址处,其中所述系统数据地址生成器进一步被配置为接收存储所述结果的第二系统存储器地址,并且此后计算与所述目的地数据地址相对应的第二本地存储器地址,其中所述结果在经由所述本地存储器接口被传送到所述系统接口之前被访问,其中与所述结果相对应的所述数据和所述第二系统存储器地址最终经由所述系统总线被传送到所述系统存储器。
3.根据权利要求1所述的系统,其中所述中间阶层运算包括算术运算和逻辑运算的组合以及需要由所述算术运算和逻辑运算的组合执行的数据访问,并且其中所述中间阶层运算在预先设计的指令中被指定。
4.根据权利要求2所述的系统,其中所述系统接口被配置为使得所述本地存储器中的所有本地存储器块作为单个存储器块向所述系统呈现,使得加载或存储直接存储器访问传送操作足以将数据传送到所述本地存储器中并且从所述本地存储器传送出去。
5.根据权利要求2所述的系统,其中所述本地存储器接口被配置为将所述数据存储在所述本地存储器的几个对应块中,并且被配置为将所述结果存储在所述本地存储器的几个对应块中。
6.根据权利要求2所述的系统,其中所述指令解码器进一步被配置为通过模式信号数据总线将基于所述预先设计的指令中的配置参数的模式信号传送到所述本地数据地址生成器和所述可编程计算单元。
7.根据权利要求6所述的系统,其中所述配置参数配置所述中间阶层运算的算术运算和逻辑运算的组合,基于所述组合,所述可编程计算单元被配置为执行所需数目的乘法和加法。
8.一种用于处理中间阶层运算的方法,其包括:
通用多功能加速器被设计为执行中间阶层操作;
将通用多功能加速器连接到计算系统中的处理器并从所述处理器接收预先设计的指令给所述通用多功能加速器;
将系统存储器和本地存储器连接到所述通用多功能加速器,其中所述系统存储器被配置为包含应用的数据,并且其中所述本地存储器被配置为从所述系统存储器接收所述数据以便在本地存储所述数据;以及
对所述数据执行所述中间阶层运算,其中所述通用多功能加速器对所述本地存储的数据执行所述中间阶层运算。
9.根据权利要求8所述的方法,其还包括:
经由系统接口从所述系统存储器接收具有系统存储器地址的所述数据;
计算用于所述数据的本地地址,所述本地地址由系统数据地址发生器计算,所述地址是所述本地存储器中与所述系统存储器地址相对应的位置;
将所述数据存储在所述本地存储器中的所述本地地址位置中,所述存储经由数据总线由本地存储器接口执行;
经由所述处理器的密切耦合的端口,通过处理器接口从所述处理器接收应用的预先设计的指令;
从所述处理器接口接收所述指令,所述指令由指令解码器接收,所述指令解码器解码所述指令并且多个控制信号以供未来使用;
通过本地数据地址发生器经由多个控制总线和第二地址总线从所述指令解码器接收所述多个控制信号中的一些控制信号,所述本地数据地址发生器确定包含所述数据的所述本地地址位置的源数据地址和包含用于存储对所述数据的计算结果的地址的目的地数据地址;
从所述本地数据地址发生器接收所述源数据地址和目的地数据地址,所述本地存储器接口执行所述接收步骤,所述本地存储器接口此后在所述源数据地址处访问所述本地存储器中的数据,并且将所述数据传送到可编程计算单元以供经由第二数据总线执行所述中间阶层运算;
通过所述可编程计算单元从所述本地存储器接口接收所述数据,所述可编程计算单元进一步从所述指令解码器接收所述多个控制信号中的一些控制信号,所述可编程计算单元此后对所述数据执行所述中间阶层运算,并且产生所述结果;
经由所述本地存储器接口将所述结果存储在所述本地存储器中的所述目的地数据地址处;
通过其中最终存储所述结果的所述系统数据地址发生器接收第二系统存储器地址;
通过系统数据地址发生器计算第二本地存储器地址,所述第二本地存储器地址与所述目的地数据地址相对应,并且所述第二本地存储器地址是所述本地存储器中所述结果被所述系统数据地址发生器访问的位置;
通过所述系统数据地址发生器经由所述本地存储器接口将与所述结果相对应的数据传送到所述系统接口;以及
通过所述系统接口将与所述结果相对应的所述数据和所述系统存储器地址传送到所述系统存储器。
10.根据权利要求8所述的方法,其中所述中间阶层运算包括算术运算和逻辑运算的组合以及需要由所述算术运算和逻辑运算的组合执行的数据访问,并且在所述预先设计的指令中指定所述中间阶层运算。
11.根据权利要求9所述的方法,进一步包括:使所述本地存储器中的所有本地存储器块作为单个存储器块呈现,使得加载或存储直接存储器访问传送操作足以将数据传送到所述本地存储器中并且从所述本地存储器传送出去。
12.根据权利要求9所述的方法,进一步包括:配置所述本地存储器接口以将所述数据和结果存储在所述本地存储器的几个对应块中。
13.根据权利要求9所述的方法,进一步包括:通过模式信号数据总线将基于所述预先设计的指令中的配置参数的模式信号传送到所述本地数据地址发生器和所述可编程计算单元。
14.根据权利要求13所述的方法,其中所述配置参数配置所述中间阶层运算的算术运算和逻辑运算的组合,基于所述组合,所述可编程计算单元被配置为执行所需数目的乘法和加法。
CN201380026108.1A 2012-05-19 2013-05-07 用于通过中间阶层运算的并行计算来加速计算的方法和装置 Active CN104364755B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN1989/CHE/2012 2012-05-19
IN1989CH2012 2012-05-19
PCT/IN2013/000300 WO2013175501A2 (en) 2012-05-19 2013-05-07 Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations

Publications (2)

Publication Number Publication Date
CN104364755A CN104364755A (zh) 2015-02-18
CN104364755B true CN104364755B (zh) 2019-04-02

Family

ID=48877302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380026108.1A Active CN104364755B (zh) 2012-05-19 2013-05-07 用于通过中间阶层运算的并行计算来加速计算的方法和装置

Country Status (6)

Country Link
US (3) US20130311753A1 (zh)
EP (1) EP2850516A2 (zh)
JP (1) JP2015520450A (zh)
KR (2) KR20210158871A (zh)
CN (1) CN104364755B (zh)
WO (1) WO2013175501A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209663B (zh) * 2015-04-23 2020-03-10 华为技术有限公司 数据格式转换装置、缓冲芯片及方法
CN109189715B (zh) * 2018-08-16 2022-03-15 北京算能科技有限公司 可编程人工智能加速器执行单元及人工智能加速方法
US11467834B2 (en) * 2020-04-01 2022-10-11 Samsung Electronics Co., Ltd. In-memory computing with cache coherent protocol
US11347652B2 (en) * 2020-08-31 2022-05-31 Microsoft Technology Licensing, Llc Banked memory architecture for multiple parallel datapath channels in an accelerator
US20230176863A1 (en) * 2021-12-03 2023-06-08 Taiwan Semiconductor Manufacturing Company, Ltd. Memory interface

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963891B1 (en) * 1999-04-08 2005-11-08 Texas Instruments Incorporated Fast fourier transform

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091875A (en) * 1990-03-23 1992-02-25 Texas Instruments Incorporated Fast fourier transform (FFT) addressing apparatus and method
FR2719926B1 (fr) * 1994-05-10 1996-06-07 Sgs Thomson Microelectronics Circuit électronique et procédé d'utilisation d'un coprocesseur.
US6507898B1 (en) * 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
JP3749022B2 (ja) * 1997-09-12 2006-02-22 シャープ株式会社 高速フーリエ変換を用いて短い待ち時間でアレイ処理を行う並列システム
EP0935189B1 (en) * 1998-02-04 2005-09-07 Texas Instruments Incorporated Reconfigurable co-processor with multiple multiply-accumulate units
US6209077B1 (en) * 1998-12-21 2001-03-27 Sandia Corporation General purpose programmable accelerator board
US6397240B1 (en) * 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system
US6848074B2 (en) * 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
JP2003016051A (ja) * 2001-06-29 2003-01-17 Nec Corp 複素ベクトル演算プロセッサ
KR100437697B1 (ko) * 2001-07-19 2004-06-26 스프레드텔레콤(주) 다수준 격자부호변조방식의 복호 방법 및 장치
US20040003017A1 (en) * 2002-06-26 2004-01-01 Amit Dagan Method for performing complex number multiplication and fast fourier
US7164723B2 (en) * 2002-06-27 2007-01-16 Samsung Electronics Co., Ltd. Modulation apparatus using mixed-radix fast fourier transform
US6823430B2 (en) * 2002-10-10 2004-11-23 International Business Machines Corporation Directoryless L0 cache for stall reduction
US7921300B2 (en) * 2003-10-10 2011-04-05 Via Technologies, Inc. Apparatus and method for secure hash algorithm
US7721069B2 (en) * 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7496618B2 (en) * 2004-11-01 2009-02-24 Metanoia Technologies, Inc. System and method for a fast fourier transform architecture in a multicarrier transceiver
US7925213B2 (en) * 2005-10-12 2011-04-12 Broadcom Corporation Method and system for audio signal processing for Bluetooth wireless headsets using a hardware accelerator
US20080071851A1 (en) * 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US8082418B2 (en) * 2007-12-17 2011-12-20 Intel Corporation Method and apparatus for coherent device initialization and access
US8295381B2 (en) * 2008-04-21 2012-10-23 The Regents Of The University Of California Signal decoder with general purpose calculation engine
US20100332798A1 (en) * 2009-06-29 2010-12-30 International Business Machines Corporation Digital Processor and Method
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963891B1 (en) * 1999-04-08 2005-11-08 Texas Instruments Incorporated Fast fourier transform

Also Published As

Publication number Publication date
JP2015520450A (ja) 2015-07-16
KR20210158871A (ko) 2021-12-31
KR20150012311A (ko) 2015-02-03
WO2013175501A2 (en) 2013-11-28
EP2850516A2 (en) 2015-03-25
WO2013175501A3 (en) 2014-03-06
US20130311753A1 (en) 2013-11-21
US20180067750A1 (en) 2018-03-08
CN104364755A (zh) 2015-02-18
US20200334042A1 (en) 2020-10-22

Similar Documents

Publication Publication Date Title
US10445234B2 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
US20190004878A1 (en) Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
CN104364755B (zh) 用于通过中间阶层运算的并行计算来加速计算的方法和装置
US20150012723A1 (en) Processor using mini-cores
US10713059B2 (en) Heterogeneous graphics processing unit for scheduling thread groups for execution on variable width SIMD units
CN110622134A (zh) 专用神经网络训练芯片
CN108228137A (zh) 蒙哥马利乘法处理器、方法、系统和指令
TW201802668A (zh) 可中斷及可重啟矩陣乘法指令、處理器、方法和系統
CN103649932B (zh) 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
CN107092573A (zh) 异构计算系统中的工作窃取
CN102640131A (zh) 并行线程处理器中的一致分支指令
CN104395876B (zh) 没有算术和逻辑单元的计算机处理器和系统
CN104657210A (zh) 针对具有多个功能单元的处理器调度循环的方法
US20150039855A1 (en) Methods and apparatus for signal flow graph pipelining that reduce storage of temporary variables
CN112799726A (zh) 数据处理装置、方法及相关产品
CN113312303B (zh) 处理器微架构系统、SoC芯片及低功耗智能设备
CN105814538A (zh) 用于仿真共享内存架构的支持浮点的流水线
US20140025930A1 (en) Multi-core processor sharing li cache and method of operating same
CN111860805B (zh) 分形计算装置、方法、集成电路及板卡
Yan et al. A reconfigurable processor architecture combining multi-core and reconfigurable processing unit
CN112686379A (zh) 集成电路装置、电子设备、板卡和计算方法
Chang et al. A reconfigurable neural network processor with tile-grained multicore pipeline for object detection on FPGA
Gottlieb et al. Clustered programmable-reconfigurable processors
US10620958B1 (en) Crossbar between clients and a cache

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant