CN103890718B - 数字信号处理器及基带通信设备 - Google Patents

数字信号处理器及基带通信设备 Download PDF

Info

Publication number
CN103890718B
CN103890718B CN201280051515.3A CN201280051515A CN103890718B CN 103890718 B CN103890718 B CN 103890718B CN 201280051515 A CN201280051515 A CN 201280051515A CN 103890718 B CN103890718 B CN 103890718B
Authority
CN
China
Prior art keywords
instruction
vector
execution unit
queue
control
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.)
Expired - Fee Related
Application number
CN201280051515.3A
Other languages
English (en)
Other versions
CN103890718A (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.)
MediaTek Sweden AB
Original Assignee
MediaTek Sweden AB
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 MediaTek Sweden AB filed Critical MediaTek Sweden AB
Publication of CN103890718A publication Critical patent/CN103890718A/zh
Application granted granted Critical
Publication of CN103890718B publication Critical patent/CN103890718B/zh
Expired - Fee Related 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/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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

为了提高效率,数字信号处理器(200)包括向量执行单元(203,205),其设置为用以执行要对向量形式的多个数据进行操作的指令,所述向量执行单元包括向量控制器(720),其设置为用以判断指令是否为向量指令,若是,则通知设置为用以保存向量长度的计数寄存器(732),所述向量控制器进一步设置为用以接收发出信号并基于该发出信号控制指令的执行,所述向量执行单元的特征在于,其包括本地队列(730),其中本地队列设置为用以从程序存储器接收指令并在本地队列中保存该指令,直到满足预定条件为止;向量控制器包括设置为用以控制所述本地队列的队列控制装置(732,721)。

Description

数字信号处理器及基带通信设备
技术领域
本发明涉及基于SIMT的数字信号处理器。
背景技术
多数移动通信设备使用包括一个或多个数字处理器(DSP)的射频收发器。
目前,为了提高性能和可靠性,多数移动终端使用一种称为基带处理器(BBP)的DSP,其用于执行与处理接收的无线电信号和准备用于发射的信号相关的多种信号处理功能。有利的是将这些功能与主处理器分开,因为这种功能具有高度的定时依赖性,并且可能需要实时操作系统。所希望地是,这种基带处理器要尽可能的灵活以适应不断发展的标准并使硬件能重复使用。基于此,已开发了可编程基带处理器PBBP。
这种处理器中频繁执行的多数功能是针对大量采样数据而完成的。因此,采用一种称为单指令多数据流(Single Instruction Multiple Data,SIMD)处理器的处理器,因为它可以实现单个指令操作多个数据项,而不是一次操作一个数据项。
作为SIMD架构的进一步改进,已经开发出单指令流多任务流(SingleInstruction Multiple Tasks,SIMT)架构。通常,SIMT架构中已具有与作为内核处理器一部分的整数执行单元相关的一个或两个SIMD类向量执行单元。
国际专利申请WO2007/018467公开了一种根据SIMT架构的DSP,其具有包括整数处理器和程序存储器的处理器内核,以及与内核连接但未集成在内核中的两个向量执行单元。该向量执行单元可以为复杂算法逻辑单元(ComplexArithmetic Logic Units,CALU)或复杂乘法累加单元(CMAC,ComplexMultiply-Accumulate Units)。该内核具有向执行单元分配指令的程序存储器。在WO 2007/018467专利文献中,每一向量执行单元具有单独的指令解码器。这可以有效地方式实现向量执行单元的使用在彼此之间独立,以及与处理器的其他部分之间独立。
用于SIMT处理器的指令集架构通常可包括三类混合指令。
-RISC指令,其操作16位整数操作数。RISC指令类包括大多数面向控制的指令,并可在处理器内核的整数执行单元中执行。
-DSP指令,其处理具有实部和虚部的复值数据。该DSP指令可在一个或多个SIMD集群上执行。
-向量指令。向量指令可视为DSP指令的扩展,因为其操作大数据集并使用先进的寻址模式和向量支持。
因此,SIMT架构在提供任务级和SIMD向量计算的性能的同时还具有足够的RISC控制灵活性。
因此,在SIMT架构中具有若干执行单元。通常每个时钟周期里,可由程序存储器向执行单元中的一个单元发出一条指令。由于向量运算通常处理大向量,因此,在一个时钟周期里一个向量执行单元中接收的指令将要花费数个时钟周期来进行处理。因此,在随后的时钟周期里,可向处理器的其他计算单元发出指令。由于向量指令运行在长向量上,因此许多RISC指令可与向量操作同时执行。
多种基带算法可分解为更小的基带任务链,其中在任务之间几乎没有后向依赖性。该属性不仅容许在向量执行单元上并行执行不同任务,它也可通过使用上述指令集架构而加以利用。
为提供控制流同步并控制该数据流,“空”指令通常可用于中止控制流直到给定的向量操作完成。“空”指令将中止进一步的指令提取直到满足特定条件。该条件可以是向量执行单元中的向量指令的完成。
DSP任务通常包括具有一至十条指令的序列,下文将对其进行更详细地讨论。这表明向量执行单元将接收向量指令来进行运算,并在提供的数据向量上执行该向量指令直到整个向量完成为止。下一条指令将是处理该结果并将其存储在存储器中,理论上这可在对整个向量执行计算后随即发生。然而,向量执行单元通常得等待几个时钟周期才能得到它的下一条指令,因为处理器内核忙于等待其他向量单元完成操作,这导致向量执行单元的低效利用。随着系统中向量执行单元数量的增长,向量执行单元处于非活动状态的可能性增大。
发明内容
本发明的目的在于使SIMT架构中的向量指令的处理更有效率。
根据本发明通过在数字信号处理器中使用向量执行单元来实现所述发明目的,所述向量执行单元设置为用以执行包括针对向量形式的多数据进行操作的向量指令的指令,其中,向量执行单元包括向量控制器,其设置为用以判断指令是否为向量指令,若是,通知用以保存该向量长度的计数寄存器,所述向量控制器进一步设置为用以控制指令的执行,所述向量执行单元的特征在于其包括设置为用以接收来自程序存储器的至少第一指令和第二指令的本地队列,并在本地队列中保存第二指令直到预定条件满足为止,并且该向量控制器包括设置为用以控制本地队列的队列控制装置。
优选的是,向量控制器基于从内核接收的发出信号来控制指令的执行。或者,该发出信号可由向量执行单元本身在本地处理。
由于为各个向量执行单元提供本地队列,因此可同时为向量单元提供针对一个向量单元的包括数条指令的一批指令。为使本地队列中的指令与向量指令的执行同步,提供称为SYNC指令的指令,其将暂停从本地队列读取指令直到满足条件为止,该条件通常为数据通路准备好接收并执行另一指令。这两个特征共同使得指令序列能够即刻发送到指令执行单元,存储在本地队列中,并在向量执行单元中依序处理,以使得向量执行单元一旦完成一条指令就能开始下一条指令。采用这种方式,每一向量执行单元可在最少的非活动时间情况下工作。
由于向量执行单元可彼此更加独立地工作,因此通过增加处理器的并行性,可使根据本发明的数据处理更有效。本发明基于如下认知:现有技术中已完成向量指令的向量执行单元通常不能立即接收下一指令,因为全部向量执行单元从同一队列(即处理器内核中的程序存储器)中接收其命令。当向量执行单元准备好接收新指令而程序存储器中的第一条命令用于另一处于繁忙状态的向量执行单元时,上述情况将会发生。在此情况下,没有一个向量执行单元能接收新命令直到其他向量执行单元准备好接收其下一命令为止。
在一优选实施例中,向量执行单元进一步包括:
-指令寄存器,设置为用以接收和存储指令;
-指令解码器,设置为用以对存储在指令寄存器中的指令进行解码;
-由指令解码器控制的多个数据通路。
本地队列优选配置为暂停指令的读取直到数据通路准备好接收并执行另一指令。这将优化向量指令中的队列处理,以及该向量执行单元所属的处理器中的指令的整体处理。
队列控制装置优选包括设置为用以保存涉及队列的状态信息(例如队列的排满程度)的队列控制器,并控制从本地队列到向量执行单元的指令的发送以便执行。队列控制器也可设置为用以在新指令发送到队列且队列是排满的情况下产生错误信息。
队列控制装置可设置为用以发出特定信号,该特定信号命令本地队列暂停从本地队列读取指令直到特定条件例如数据通路准备好接收新指令这一条件满足为止。
向量控制器优选设置为用以使得要发送至数字信号处理器的程序流控制单元的信号来指示该单元准备好接收新指令。该信号的发送可基于从指令解码器发送到向量控制器的关于任意给定时刻执行的指令的信息。该信号也可基于当前队列中指令的数量,例如,队列中是否还存在用于更多指令的空间。
本发明还涉及一种数字信号处理器,包括:
-处理器内核,包括配置为用以执行整数指令的整数执行单元;以及
-与处理器内核分开并与之耦合的至少第一和第二向量执行单元,其中,每一向量执行单元分别为如上所述的向量执行单元;
-所述数字信号处理器包括程序存储器和发出逻辑,其中,程序存储器设置为用以保存用于第一和第二向量执行单元的指令,发出逻辑用于向第一和第二向量执行单元发出包括向量指令的指令。
如上所述,该数字处理器能够使其向量执行单元实现更多的并发使用。
通常,程序存储器设置在处理器内核中,并设置为用以为整数执行单元保存指令。
本发明还涉及一种适于多模有线和无线通信的基带通信设备,包括:
-前端单元,设置为用以发送和/或接收通信信号;
-耦合至模拟前端单元的可编程数字信号处理器,其中可编程数字信号处理器为如上所述的数字信号处理器。
在优选的实施例中,本文通篇提及的向量执行单元为SIMD类向量执行单元或者为用以操作向量数据的可编程协处理器。
本地队列可以为具有期望长度如4至8条指令的先入先出(FIFO)队列。它也可以为任意其他类型的合适队列。
根据本发明实施例的处理器对于数字信号处理器尤其是基带处理器而言特别有用。前端单元可以为模拟前端单元,其设置为用以发送和/或接收射频或基带信号。
这种处理器广泛用于不同类型的通信设备中,例如移动电话、电视接收器和线缆调制解调器。因此,基带通信设备可设置用于蜂窝通信网络的通信,例如作为移动电话或者移动数据通信设备。基带通信设备也可设置用于根据其他无线标准例如蓝牙或者WiFi的通信。它也可以为电视接收器、线缆调制解调器、WiFi调制解调器,或者能够向其处理器发送基带信号的任意其他类型的通信设备。应该理解术语“基带”仅指处理器内部处理的信号。实际接收和/或发送的通信信号可以为在有线或无线连接上接收的任意合适类型的通信信号。这些通信信号通过该设备的前端单元以适当的方式转换为基带信号。
附图说明
以下通过举例并参照附图对本发明进行更详细的说明。
图1为包括基带处理器的典型移动终端的系统概图;
图2显示了SIMT架构的示例;
图3为根据本发明实施例的基带处理器的框图;
图4为显示图2中处理器内核的一个实施例的指令发出管线的示意图;
图5显示了SIMT处理器内的指令发出逻辑;
图6显示了根据现有技术的SIMT单元;
图7显示了具有本发明总体实施例的附加特征的SIMT单元;
图8显示了根据本发明优选实施例的SIMT单元;
图9显示了根据本发明实施例的本地队列的工作原理。
具体实施方式
图1显示了包括将作为本发明主题的基带处理器3的示例性移动终端1。如本领域常见的,终端1包括用于接收和发射通信信号的装置。在本示例中,该装置包括连接到模拟前端单元7上的天线5,该模拟前端单元7包括针对接收方向的模数转换器ADC,以及针对发射方向的数模转换器DAC。模拟前端单元7连接到基带处理器3上。如本领域常见的,基带处理器3通常包括(但不是必需)前向纠错(FEC)处理器9,以实现诸如交织、维特比解码等纠错功能。基带处理器3通常又连接到MAC单元11上,而该MAC单元11又连接到应用处理器13上。
终端1通常具有(但不必需)将基带处理器、MAC单元11和应用处理器13进行互连的总线和存储子系统15。该终端还包括用于用户输入/输出的外围接口17,通常包括键盘、摄像头接口以及用于连接到其他单元的接口如USB接口。
如本领域技术人员将会理解的,所述模拟前端可设置为用以处理包括射频信号、基带信号以及其他信号的任意类型的输入和输出信号,并向基带处理器3提供基带信号。
图2显示了根据SIMT架构的基带处理器200的示例。处理器200包括控制器内核201、第一向量执行单元203以及第二向量执行单元205,以下将对其详细讨论。如图1中描述的FEC单元206连接至片上网络。当然,在具体实现中FEC单元206可包括几个不同的单元。
主机接口单元207提供到图1所示的主机处理器的连接(图2未示出)。如果MAC处理器按图1所示那样提供,那么将该MAC处理器连接在主机接口单元207与主机处理器之间。数字前端单元209以现有技术公知的方式提供到图1所示的ADC/DAC单元的连接。
如本领域常见的,控制器内核201包括程序存储器211以及指令发出逻辑和多环境支持功能。针对各个支持的执行环境或者线程,其包括程序计数器、堆栈指针和寄存器文件(在图2中未明确示出)。通常支持2-3个线程。
控制器核心201也包括整数执行单元212,该整数执行单元包括寄存器文件RF、内核整数存储器ICM、乘法器单元MUL以及算术逻辑/移位单元(ALSU,Arithmetic and Logic/Shift Unit)。ALSU也可实现为两个单元,算术单元(ArithmeticUnit)和逻辑移位单元(Logic and Shift Unit)。这些单元是本领域中已知的,因此未在图2中示出。
本示例中的第一向量执行单元203为CMAC向量执行单元,包括向量控制器213、向量载入/存储单元215以及多个数据通路217。第一向量执行单元的向量控制器通过发出逻辑连接至控制器内核201的程序存储器211,以接收与来自程序存储器的指令相关的发出信号。如上所述,发出逻辑对指令字解码以获得发出信号并将该发出信号做为单独的信号发送至向量执行单元。也可使向量执行单元的向量控制器在本地生成发出信号。在本示例中,发出信号是由向量控制器基于指令字以与发布逻辑中相同的方式而产生的。
第二向量执行单元205为包括向量控制器223、向量载入/存储单元225以及多个数据通路227的CALU向量执行单元。第二向量执行单元的向量控制器223也通过发出逻辑连接至控制器内核201的程序存储器211,以接收与来自程序存储器的指令相关的发出信号。
数据通路217,227和向量载入/存储单元215,225的功能将在下文中讨论。
向量执行单元可设置为任意数量,包括仅CMAC单元、仅CALU单元或者适当数量的各种类型单元。也可具有除了CALU和CMAC之外的其他类型的向量执行单元。如上所述,向量执行单元是能够处理向量指令的处理器,这意味着单个指令完成对多个数据单元的同一功能。数据可以为复数或实数,并且其被分组为字节或字,进而封装为由向量执行单元操作的向量。在本文中,虽然CALU和CMAC用作示例,但应注意的是向量执行单元可用于针对数据向量完成任合合适的功能。
为使多个向量操作同时发生,处理器优选具有分布式存储系统,其中存储器分为多个存储体,在图2中表示为第0存储体230至第N存储体231。各个存储体230,231分别具有各自的复数存储器232,233,以及地址生成单元AGU234,235。由于可并行进行多地址计算,因此这种设置结合片上网络提高了存储系统的功效和处理器的处理容量。图2中的PBBP也包括一个或多个整数存储体238,其包括存储器239和地址生成单元240。
如本领域已知的,通常可连接若干加速器242,因为其能有效实施诸如信道编码和交织的某些基带功能。这种加速器在本领域中是公知的,因此这里不再赘述。加速器是可配置的以根据多种不同标准重复使用。
片上网络244连接控制器内核201、数字前端单元209、主机接口单元207、向量执行单元203,205、存储体230,232、整数存储体238和加速器242。
各个向量执行单元203,205包括向量载入/存储单元215,225,其设置为用作网络端口和向量执行单元的数据通路之间的接口。执行单元203,205通常通过网络244连接至存储体230,231,但是也可支持到其他单元如加速器242和其他向量执行单元的连接。载入功能用于从连接到网络244的其他单元(例如从存储体)提取数据,而存储功能用于通过网络244将数据从执行单元203,205存储到例如存储单元230,231中。数据也可从其他向量执行单元获取,和/或计算结果可转发至其他向量执行单元以进行进一步处理。各个向量执行单元还包括向量控制器213,223,其设置为用以接收来自程序存储器PM211的指令。向量载入单元215,225可采用两种不同模式载入数据。在第一种模式中,如上所述,可从多个存储体230,232或其他来源加载多个数据项。在另一种模式中,一次可加载一个数据项,然后分发至给定执行单元中的SIMD数据通路。后一模式可在执行单元处理连续数据时用于减少访问存储器的次数。
在图示的实施例中,如本领域常见的,第二向量执行单元205显示为包括四条独立的数据通路227的四路复杂ALU,每条通路具有复杂短乘法器-累加器(CSMAC,complex short multiplier-accumulator)。CALU205可执行向量指令,在下文中将作更详细的描述。在一个实施例中,CALU205尤其适于执行复向量指令。CALU205的独立数据通路227中的每个通路还可同时执行复向量指令。
第一向量执行单元203显示为具有可同时运行或分别运行的四条复数据通路的四路CMAC。四条复数据通路包括乘法器、加法器和累加寄存器(图2中未全部示出)。因此,在本实施例中,CMAC203可称为四路CMAC数据通路。除乘法和加法外,CMAC203还可执行取整和比例操作并支持饱和度,如本领域中已知的那样。
在一个实施例中,CAMC203操作可划分为多个管线步骤。另外,四条复数据通路217中的各条通路可在一个时钟周期内计算复数乘法和累加。CMAC203(即四条数据通路一起)可在N/4时钟周期内执行N元向量的操作,以支持复向量计算(例如复卷积、共轭复卷积和复向量的点积)。进一步地,CMAC203也可支持对累加器寄存器中存储的复数值的操作(例如复数加法、减法、共轭等)。例如,CMAC203可在一个时钟周期内计算诸如(AR+JAI)*(BR+JBI)的复数乘法以及在一个时钟周期内计算复数累加,并支持复向量计算(例如复数卷积、共轭复数卷积和复向量的点积)。
在一个实施例中,针对处理器内核201的指令集架构可包括三类复合指令。第一类指令为RISC指令,其对16位整数操作数进行操作。RISC指令类包括大多数面向控制的指令,并且可在处理器内核201的整数执行单元212中执行。下一类指令为DSP指令,其处理具有实数部分和虚数部分的复值数据。该DSP指令可在一个或多个向量执行单元203,205上执行。第三类指令为向量指令。向量指令可认为是DSP指令的扩展,因为其操作大数据集并使用先进的寻址模式和向量支持。向量指令可处理复数或实数数据类型。
图3为根据本发明的实施例的基带处理器PBBP200的框图。PBBP200包括处理器内核,其包括RISC类型的执行单元,并用RISC数据通路510表示。PBBP还具有多个向量执行单元520,530,各个单元分别包括向量控制单元275和SIMD数据通路525,535。如本领域常见的,各条数据通路525,535可包括若干数据通路。例如,数据通路535通常可具有四条并行的CMAC数据通路,它们共同构成数据通路525。
为了对多个向量执行单元进行控制,内核硬件500包括耦合至程序计数器502的程序流控制单元501,该程序计数器502又耦合至程序存储器(PM)503。PM503耦合至复用器504、单元字段提取器508。复用器504耦合至指令寄存器505,其耦合至指令解码器506。指令解码器506进一步耦合至控制信号寄存器(CSR)507,其又耦合至RISC数据通路510的剩余部分。
类似的,向量执行单元520和530中的每一个还设置为用以接收来自位于内核的程序存储器503的指令。向量执行单元包括各自的向量长度寄存器521,531、指令寄存器522,532、指令解码器523,533以及CSR524,534,它们耦合至各自的数据通路525和535。以下结合图5将会更详细地就与本发明相关的方面说明这些单元及其功能。
图4为现有技术中处理从程序存储器到不同向量执行单元的指令的示例,用以说明本发明的基本问题。图4左列表示时间(单位为执行时钟周期)。其余列从左向右依次表示第一和第二向量执行单元(更确切地说是CMAC203和CALU205的数据通路)和整数执行单元的执行管线以及发到此处的指令。更具体地说,在第一时钟周期内,复向量指令(如CMAC256)被发到CMAC203。如图所示,向量指令需要多个周期来完成。在下一时钟周期里,向量指令被发到CALU205。在下一时钟周期里,整数指令被发到整数执行单元510。在随后的几个周期内,当执行向量指令时,可将任意数量的整数指令发到整数执行单元510。要注意的是,尽管图中未示出,其余向量执行单元也可以相似的方式同时执行指令。
在某些情况下,“空闲(idle)”指令可包括在指令序列中,以阻止内核程序流控制器从程序存储器提取指令。例如,为了使程序流与向量指令的完成同步,“空闲”指令可用于将指令的提取挂起直到特定条件已满足为止。该条件通常是涉及的向量执行单元已执行完在先的向量指令并能接收新的指令。在此情况下,涉及的向量执行单元520,530的向量控制器275向程序流控制器501发送诸如标志的指示,表示该向量执行单元准备好接收另一指令。
空闲指令可在同一时刻用于多个向量执行单元。在此情况下,不再从程序存储器503发送进一步的指令,直到涉及的向量执行单元520,530中的每一个单元已发送了指示其准备好接收新指令的标志为止。
在图4的示例中,“空闲”指令在上述整数指令之后发出。在本示例中,空闲指令用于中止控制流直到由CMAC203执行的向量操作完成为止。
接下来将基于具有任意数量的执行单元的SIMT DSP来讨论随后的示例。为简单起见,本示例中假设全部单元为CMAC向量执行单元,但实际上不同类型的单元可混合并一起使用。
在许多基带处理算法和程序中,算法可分解为若干DSP任务,分别包括“前言(prolog)”、向量操作和“结语(epilog)”。前言主要用于在向量操作可执行之前清空累加器、设定寻址模式和指针以及类似操作。当向量操作已完成时,向量操作的结果可进一步由任务中“结语”部分的代码处理。在SIMT处理器中,通常只需要一条向量指令来完成向量操作。
以下通过根据现有技术的示例性任务来举例说明一个DSP任务的典型布局:
本示例中的代码片段执行超过512个复数数值的复数点积运算,然后再次将结果存储到存储器中。该例程要求由处理器内核提取如下指令。
在上述示例中,将setcmvl、cmac和star指令发到CMAC向量执行单元,并在CMAC向量执行单元中执行,而ld、out和idle指令在整数内核(“内核”)中执行。
向量指令的向量长度指示向量执行单元应当操作多少数据字(采样)。向量长度可以任意适合的方式例如下列其中之一的方式来设定:
1)通过专用指令设定,例如上文中的setcmvl.123
2)在指令本身中携带,例如,根据如图4所示的形式:cmac.123
3)由控制寄存器设定,例如根据out r0、cmac_vector_length的形式
指令idle#cmac0命令内核程序流控制器停止提取新指令直到CMAC0单元完成其向量操作为止。在空闲功能释放并允许提取新指令之后,提取“明星”指令并将其分发至CMAC0向量执行单元。明星指令命令CMAC向量执行单元将累加结果存储至存储器。
在下一示例中,还是说明现有技术,其中使用两个向量执行单元。与第一向量执行单元相关的指令序列与上文相同:
在此情况下,第二向量执行单元被命令以执行长度为2048的向量操作,这花费的时间将为第一向量执行单元中长度为512的操作的时间的4倍。因此,第一向量执行单元将在第二向量执行单元之前结束操作。由于通过idle#cmac1指令命令程序存储器保持下一指令直到第二向量执行单元结束操作为止,因此直到第二向量执行单元结束操作,它才能向第一向量执行单元发送新的指令。由于具有与第二向量执行单元相关的空闲指令,因此对于超过1000个的时钟周期而言第一向量执行单元将是非活动的。
上述示例采用两个向量执行单元。将会理解,由于与一个特定的向量执行单元相关的空闲指令将潜在地影响更多数量的其他向量执行单元,因此向量执行单元的数量越多,问题更大。根据本发明,可通过为每一向量执行单元提供本地队列来减小该问题。本地队列设置为用以从处理器内核的程序存储器接收针对其向量执行单元的要连续执行的一条或多条指令,并向该向量执行单元一次转发一条指令。
同时,引入命令本地队列保持下一条指令直到特定条件满足的命令。该条件可以为例如向量执行单元已完成前一命令或数据通路准备好接收新的指令。为简单起见,在本文中新命令称为SYNC。该条件可在发送到SYNC指令的指令字中规定,或者可从控制寄存器文件或其他来源读取。
下文给出采用新SYNC命令的指令序列的示例:
与现有技术相反,两个命令序列中的每一个可发送至与同一指令相关的向量执行单元的本地队列,并存储于此,同时等待发送一条命令到向量执行单元内部的指令解码器。如上文所述,sync命令用于中止本地队列直到向量执行单元结束cmac命令操作,其中该cmac命令为向量指令,并因此需要几个时钟周期来执行。
图5显示了现有技术中基带处理器700的指令发出逻辑,其可用做本发明的起点。基带处理器包括含有程序存储器PM702的RISC内核701和RISC程序流控制单元703,其中该存储器为处理器中的不同执行单元保存指令。从程序存储器702提取指令发送至发出逻辑单元705,该逻辑单元对于全部指令单元而言是常见的,并设置为用以控制向哪里发送各个特定指令。发出逻辑705对应于图3中的单元字段提取器508和发出控制器509这些单元。在此情况下,发出逻辑连接至若干向量执行单元710,712,714,并通过复用器715耦合至RISC内核和数据通路单元716,后者为RISC内核的一部分,对应于图3中的505,506,507和510表示的单元。如上文所述,在一个实施例中包括实际指令的指令字发送至全部执行单元,而与特定指令对应的发出信号仅发送至将要执行该指令的执行单元。在备选实施例中,发出信号由各个向量执行单元在本地处理。
图6显示了根据现有技术的向量执行单元710,其可以为图5中向量执行单元710,712,714中的一种。向量执行单元710具有向量控制器720、向量长度计数器721、指令寄存器722和指令解码单元723。与图5相同,图6中的向量执行单元710接收来自程序存储器702的指令,不过图6进行了简化。指令字为实际指令,其被接收到指令寄存器722中并转发至指令解码器723。经由发出逻辑单元705在向量控制器中接收发出信号,并将其用于控制指令字的执行。如果发出信号是活动的,则将指令载入到指令寄存器中解码并执行,否则将其丢弃。向量控制器720还管理向量长度计数器721和系统中使用的其他控制信号,这将在下文中讨论。
传统上,可在每个时钟周期内从程序存储器702中提取用于执行单元中的一个的一条指令。指令字中的单元字段可从指令字中提取,并用于控制将指令分发到哪个控制单元。例如,如果单元字段为“000”,则可将指令分发至RISC数据通路。这可能导致发出逻辑705允许命令字通过复用器715而进入RISC内核716(图6中未示出),然而在本周期内并没有新的指令要载入到向量执行单元。然而,如果单元字段保存任意其他值,那么发出逻辑705可使对应的指令向所针对的向量执行单元发出信号。然后,所选择的向量执行单元中的向量控制器720使指令字通过,并进入所述向量执行单元的指令寄存器722。在此情况下,NOP指令将被发送至RISC内核716中的RISC数据通路指令寄存器。
当将指令分发到向量执行单元时,为处理向量指令,可从指令字提取向量长度字段并存储在计数寄存器721中。该计数寄存器可用于记录相应的向量指令中的向量的长度,以及发送表示该向量执行单元已做好准备以接收另一指令的标志的时间。当相应的向量执行单元已完成向量操作时,向量控制器720可产生发送至程序流控制703(图6中未示出)的信号(标志),以表示该单元做好准备接受新指令。此外,每一向量执行单元520,530(参考图3)的向量控制器720可在执行单元内部生成用于前言和结语声明的控制信号。例如,这种控制信号可控制用于向量操作的VLU和VSU,并且也可管理奇向量长度。
当发出逻辑705通过解码单元字段判定应当发送特定指令到特定向量执行单元时,将指令字从程序存储器702载入至指令寄存器722。而且,如果(通过向量控制器)确定该指令携带向量长度字段,则将该值载入至计数寄存器721作为向量长度值。向量控制器720对部分指令字解码,以判断该指令是否为向量指令以及是否携带向量长度信息。若是,则向量控制器720为计数寄存器721激活信号,以将表示向量长度的数值载入到计数寄存器721中。向量控制器720也命令指令解码器单元723开始对该指令解码,并开始向数据通路724发送控制信号。指令寄存器722中的指令随后通过指令解码器723来进行解码,其控制信号在发送至数据通路之前保存在控制信号寄存器724中。计数寄存器721以常用的方式记录指令应重复的次数,也就是向量长度。
图7显示了根据本发明的向量执行单元810。向量执行单元包括图6所示的现有技术的向量执行单元的全部组件,其采用相同的附图标记。此外,根据本发明的向量执行单元具有本地队列730,其设置为用以保存从程序存储器接收的若干条指令。设置为用以控制本地队列730的队列控制器732设置在向量控制单元720中。队列730和队列控制器732彼此连接以交换信息和命令。例如,队列控制器732可包括设置为用以记录队列730中的指令数量的计数器。作为备选,队列可记录其自身的状态,并发送表示队列是排满的、或空的、或将要排满或者将要变空的信息到队列控制器732。因此,队列控制器732保存关于本地队列730的状态信息,并且可发送控制信号以开始、中止或清空本地队列730。指令解码器723设置为用以通知向量控制器730目前正在执行哪一条指令。
如上所述,许多DSP任务可实现为指令序列,例如前言(prolog)、向量指令和结语(epilog)。向量指令将运行多个时钟周期,在此期间不再提取新指令。在此情况下,如上所述,新SYNC指令用于使本地队列保存下一指令直到满足特定条件。当队列控制器732被通知指令解码器723已经解码“sync”指令时,将在队列控制器732中设定一种用以停止本地队列730直到满足条件的模式。这通常采用其余的向量长度信息以及来自向量解码器的与当前指令相关的信息来实现。也可使用从数据通路724发送到队列控制器732的标志。该条件通常为向量指令的处理已结束,使得指令执行单元中的指令解码器723准备好处理下一条指令。
本地队列730可以为适用于保存所期望指令数量的任意类型队列。在一个实施例中,其为能够保存适当数量的指令(例如8条指令)的FIFO序列。
图8显示了根据本发明优选实施例的向量执行单元910。图8所示的向量执行单元包括与图7相同的单元,它们以相同方式互连。但是,在本实施例中,本地队列740为适于重复的特定数量的指令的循环队列。在同一指令序列要执行很多次的实施方式中,这将非常有益。有时执行次数可超过1000次。在此情况下,由于不必每次将要处理的相同指令从内核单元向向量执行单元再次发送,因此可节省控制通路中的大量带宽。
如图7所示,在向量控制器720’中设置队列控制器732。在图8所示的实施例中,还具有设置为用以记录要重复的指令以及指令应重复的次数的缓冲器管理器744。为此,设置由向量控制器720控制的两个寄存器:用于存储指令重复次数的重复寄存器746和设置为用以保存将要重复的指令的数量的指令计数寄存器748。
由于发至向量执行单元全部指令均通过队列740即循环缓冲器,该缓冲器将存储最后的N条(通常为8-16条)指令。重复寄存器746配置为用以保存要执行的重复次数。重复寄存器746可通过控制寄存器文件而装载,或者通过发向向量执行单元的指令字或者其他方法来读取。
指令计数存储器748配置为保存用以表示循环缓冲器740中应有多少条指令包括在重复循环中的数量。指令计数寄存器可通过控制寄存器文件而装载,或者通过发向向量执行单元的指令字或者其他方法来读取。
当将“重复”指令或具有“重复标志”的指令集发向向量执行单元时,指令解码器723连同向量控制器720一起命令队列控制器732将指令从循环缓冲器740中分发到指令寄存器722。
如图7所示,当指令解码器723遇到“sync”指令时,指令解码器命令队列控制器732停止从本地队列、循环队列中提取指令,直到预定条件出现为止。该条件通常为从队列中提取的在先指令已经完成,使得解码器准备好接收新指令。
尽管本文将本地队列730,740和指令寄存器722显示为单独的实体,但是它们也可以组合到一个单元中。例如,向量寄存器722可被集成为本地队列的最后一个组件。
缓冲管理器744监管本地缓冲器740的操作,并管理当前存储在循环缓冲器中的指令的重复,其中,队列控制器732管理从循环缓冲器/队列740中分发的指令的开始/停止。
缓冲管理器744进一步管理重复寄存器746,并记录已执行的重复数量。当重复寄存器746中指定的重复次数完成时,向向量控制器720’发送信号,该信号随后可发送至程序流控制703(图8未示出)以指示操作完成。
当请求的重复次数已完成时,循环缓冲器740的行为默认返回到队列功能,以存储最后发出的指令从而使得可以开始新的重复指令。
图9显示了根据本发明实施例的本地队列的工作原理。水平线901表示队列本身。第一垂直箭头表示写指针903,其指示新指令当前被写入队列的位置。相应的水平箭头905表示写指针移动的方向,其为朝向图的右侧。
第二垂直箭头表示读指针907,其指示当前要从中读取待执行指令在队列中的位置。相应的水平箭头909表示读指针的移动方向,其与写入指针907的方向相同。写指针903与读指针907之间的距离为队列的当前长度,即,当前队列中指令的数量。
在图9所示的示例中,将要重复多次的指令序列写入该队列中。序列的开始和序列的结束由与水平线901相交的第一垂直线911和第二垂直线913表示。向后指向的箭头915表示当读取指针907到达由第二垂直线913表示的命令序列的末尾时,读指针将循环回到由第一垂直线911表示的命令序列的开始。该操作将重复直到指令序列已执行指定的次数为止。
控制逻辑(未示出)设置为用以记录序列中要被重复的指令数量,以及这些指令在序列中的位置。这包括,例如:
·要重复的指令序列的起始位置911
·要重复的指令序列的末尾位置913
·要重复的指令序列的重复次数
可将序列的起始位置或者末尾位置(而不是序列的起始和结束)连同序列的长度(即序列中包括的指令的数量)一起存储。

Claims (18)

1.一种用于数字信号处理器(200)的向量执行单元(203,205,520,530),其中,所述数字信号处理器具有处理器内核、设置为用以为多个执行单元保存指令的程序存储器以及设置为用以保存由所述向量执行单元使用的数据的多个数据存储单元,其中,所述内核、所述向量执行单元和数据存储单元通过网络互连,所述向量执行单元设置为用以执行指令,所述指令包括要对向量形式的多个数据进行操作的向量指令,所述向量执行单元包括设置为用以接收并存储指令的指令寄存器(722)、设置为用以解码存储在所述指令寄存器中的指令的指令解码器(723)以及由所述指令解码器控制的至少一条数据通路,所述向量执行单元还包括向量控制器(720,720’)和计数寄存器(721),所述向量控制器设置为用以判断指令是否为向量指令,若是,通知设置为用以保存向量长度的计数寄存器(721),所述向量控制器(720,720’)进一步设置为用以控制指令的执行,
所述向量执行单元的特征在于
-其包括本地队列(730),所述本地队列设置为用以从所述程序存储器接收至少第一指令和第二指令,从而向所述指令寄存器(722)提供所述第一指令,并在本地队列(730)中保存所述第二指令直到满足预定条件,以及
-所述向量控制器(720,720’)包括设置为用以控制所述本地队列的队列控制装置(732,721)。
2.根据权利要求1所述的向量执行单元,其中,所述向量执行单元进一步设置为用以接收发出信号并基于所述发出信号控制指令的执行。
3.根据权利要求1或2所述的向量执行单元,其中,所述至少一条数据通路进一步包括由所述指令解码器控制的多条数据通路。
4.根据权利要求1或2所述的向量执行单元,其中,所述本地队列(730)设置为用以暂停指令的读取直到所述数据通路准备好接收并执行另一指令为止。
5.根据权利要求1或2所述的向量执行单元,其中,所述队列控制装置(732)包括队列控制器,其设置为用以保存与队列相关的如本地队列(730)的排满程度的状态信息,并用以控制从本地队列(730)到向量执行单元(203,205,520,530)的指令的发送以便执行。
6.根据权利要求5所述的向量执行单元,其中,所述队列控制器设置为,如果新指令发送至该队列并且该队列是排满的,则生成错误信息。
7.根据权利要求6所述的向量执行单元,其中,所述队列控制装置(732)设置为用以发出特定信号,该特定信号指示本地队列暂停从本地队列中读取指令直到满足条件为止。
8.根据权利要求1或2所述的向量执行单元,其中,所述向量控制器(720,720’)设置为用以产生将要发送至所述数字信号处理器的程序流控制器(703)的信号,以指示该单元准备好接收新的指令。
9.根据权利要求1或2所述的向量执行单元,其中,所述指令解码器(723)设置为用以向所述向量控制器(720,720’)通知任意给定时刻正在执行的指令。
10.根据权利要求1或2所述的向量执行单元,其中,本地队列(730)为先进先出队列。
11.一种数字信号处理器(200),其中,包括:
-处理器内核(201),包括配置为用以执行整数指令的整数执行单元(212);以及
-与处理器内核(201)分开并与其连接的至少第一和第二向量执行单元(203,205,520,530),其中每个向量执行单元(203,205)为根据以上任一项权利要求所述的向量执行单元;
-片上网络(244),其设置为用以提供所述处理器内核与第一和第二向量执行单元(203,205,520,530)之间的连接;
-所述数字信号处理器包括程序存储器(211)和发出逻辑,其中,程序存储器配置为用以保存用于第一和第二向量执行单元(203,205)的指令,发出逻辑用于向所述第一和第二向量执行单元发出包括向量指令的指令。
12.根据权利要求11所述的数字信号处理器,其中,所述程序存储器(211)还设置为用以为所述整数执行单元(212)保存指令。
13.根据权利要求11所述的数字信号处理器,其中,所述程序存储器(211)设置在所述处理器内核(201)中。
14.一种适用于多模有线和无线通信的基带通信设备,包括
-配置为发送和/或接收通信信号的前端单元(7);
-耦合至所述前端单元的可编程数字信号处理器(3),其中所述可编程数字信号处理器为如权利要求11-13中任一项所述的数字信号处理器。
15.根据权利要求14所述的基带通信设备,其中,前端单元(7)为模拟前端单元,其设置为用以发送和/或接收射频或基带信号。
16.根据权利要求14所述的基带通信设备,其中,所述基带通信设备用于在如蜂窝通信网络的无线通信网络中的通信。
17.根据权利要求14所述的基带通信设备,其中,所述基带通信设备为电视接收器。
18.根据权利要求14所述的基带通信设备,其中,所述基带通信设备为线缆调制解调器。
CN201280051515.3A 2011-10-18 2012-09-17 数字信号处理器及基带通信设备 Expired - Fee Related CN103890718B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE1150966-8 2011-10-18
SE1150966A SE536462C2 (sv) 2011-10-18 2011-10-18 Digital signalprocessor och basbandskommunikationsanordning
PCT/SE2012/050979 WO2013058695A1 (en) 2011-10-18 2012-09-17 Digital signal processor and baseband communication device

Publications (2)

Publication Number Publication Date
CN103890718A CN103890718A (zh) 2014-06-25
CN103890718B true CN103890718B (zh) 2016-08-24

Family

ID=47148883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280051515.3A Expired - Fee Related CN103890718B (zh) 2011-10-18 2012-09-17 数字信号处理器及基带通信设备

Country Status (7)

Country Link
US (1) US20140244970A1 (zh)
EP (1) EP2751668B1 (zh)
KR (1) KR20140078717A (zh)
CN (1) CN103890718B (zh)
ES (1) ES2688603T3 (zh)
SE (1) SE536462C2 (zh)
WO (1) WO2013058695A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160226544A1 (en) * 2015-02-04 2016-08-04 GM Global Technology Operations LLC Adaptive wireless baseband interface
EP3125108A1 (en) * 2015-07-31 2017-02-01 ARM Limited Vector processing using loops of dynamic vector length
CN111651202B (zh) 2016-04-26 2023-09-22 中科寒武纪科技股份有限公司 一种用于执行向量逻辑运算的装置
CN108268941B (zh) * 2017-01-04 2022-05-31 意法半导体股份有限公司 深度卷积网络异构架构
JPWO2018234919A1 (ja) * 2017-06-21 2020-07-16 株式会社半導体エネルギー研究所 ニューラルネットワークを有する半導体装置
WO2019136454A1 (en) * 2018-01-08 2019-07-11 Atlazo, Inc. Compact arithmetic accelerator for data processing devices, systems and methods

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0042442A1 (en) * 1979-12-29 1981-12-30 Fujitsu Limited Information processing system
US6658556B1 (en) * 1999-07-30 2003-12-02 International Business Machines Corporation Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction
CN1783822A (zh) * 2004-11-09 2006-06-07 美国博通公司 通过宽带接入网关提供增强型广域网支持的系统及方法
CN101095285A (zh) * 2004-04-13 2007-12-26 天工方案公司 直流偏移校正系统和方法
CN101203846A (zh) * 2005-05-24 2008-06-18 科莱索尼克公司 具有可编程网络的数字信号处理器
US7424598B2 (en) * 1988-11-11 2008-09-09 Renesas Technology Corp. Data processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179530A (en) * 1989-11-03 1993-01-12 Zoran Corporation Architecture for integrated concurrent vector signal processor
US7543119B2 (en) * 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US7299342B2 (en) * 2005-05-24 2007-11-20 Coresonic Ab Complex vector executing clustered SIMD micro-architecture DSP with accelerator coupled complex ALU paths each further including short multiplier/accumulator using two's complement
US20070198815A1 (en) 2005-08-11 2007-08-23 Coresonic Ab Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit
US20130185538A1 (en) * 2011-07-14 2013-07-18 Texas Instruments Incorporated Processor with inter-processing path communication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0042442A1 (en) * 1979-12-29 1981-12-30 Fujitsu Limited Information processing system
US7424598B2 (en) * 1988-11-11 2008-09-09 Renesas Technology Corp. Data processor
US6658556B1 (en) * 1999-07-30 2003-12-02 International Business Machines Corporation Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction
CN101095285A (zh) * 2004-04-13 2007-12-26 天工方案公司 直流偏移校正系统和方法
CN1783822A (zh) * 2004-11-09 2006-06-07 美国博通公司 通过宽带接入网关提供增强型广域网支持的系统及方法
CN101203846A (zh) * 2005-05-24 2008-06-18 科莱索尼克公司 具有可编程网络的数字信号处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
The CRAY- 1 Computer System;Richard M. Russell;《Communications of the ACM》;19780131;第21卷(第1期);正文第68页第2栏第2段 *

Also Published As

Publication number Publication date
EP2751668A1 (en) 2014-07-09
WO2013058695A1 (en) 2013-04-25
CN103890718A (zh) 2014-06-25
SE1150966A1 (sv) 2013-04-19
KR20140078717A (ko) 2014-06-25
SE536462C2 (sv) 2013-11-26
EP2751668B1 (en) 2018-08-01
US20140244970A1 (en) 2014-08-28
ES2688603T3 (es) 2018-11-05

Similar Documents

Publication Publication Date Title
CN103890718B (zh) 数字信号处理器及基带通信设备
CN114168526B (zh) 可重构并行处理
CN103890719B (zh) 数字信号处理器以及基带通信设备
CN111095242A (zh) 向量计算单元
US7788468B1 (en) Synchronization of threads in a cooperative thread array
US7159099B2 (en) Streaming vector processor with reconfigurable interconnection switch
CN109074260A (zh) 乱序的基于块的处理器和指令调度器
US20110072249A1 (en) Unanimous branch instructions in a parallel thread processor
US9170816B2 (en) Enhancing processing efficiency in large instruction width processors
CN110073329A (zh) 访存设备、计算设备和应用于卷积神经网络运算的设备
JP2014501009A (ja) データを移動させるための方法及び装置
GB2458556A (en) Indirect function calls in a synchronous parallel thread processor
US8572355B2 (en) Support for non-local returns in parallel thread SIMD engine
TWI533210B (zh) 串流資料處理器
EP2352082B1 (en) Data processing device for performing a plurality of calculation processes in parallel
WO2022182573A1 (en) Time-multiplexed use of reconfigurable hardware
JPWO2009110497A1 (ja) Simd型プロセッサアレイシステム及びそのデータ転送方法
KR100639146B1 (ko) 카테시안 제어기를 갖는 데이터 처리 시스템
KR20140105805A (ko) 디지털 신호 프로세서 및 베이스밴드 통신 디바이스
Garzia et al. Control techniques for coupling a coarse-grain reconfigurable array with a generic RISC core
CN115454506A (zh) 指令调度装置、方法、芯片和计算机可读存储介质
CN104011674A (zh) 数字信号处理器
WO1988008568A1 (en) Parallel-processing system employing a horizontal architecture comprising multiple processing elements and interconnect circuit with delay memory elements to provide data paths between the processing elements

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160824

Termination date: 20200917

CF01 Termination of patent right due to non-payment of annual fee