CN104011675A - 用于数字信号处理器的向量执行单元 - Google Patents

用于数字信号处理器的向量执行单元 Download PDF

Info

Publication number
CN104011675A
CN104011675A CN201280063639.3A CN201280063639A CN104011675A CN 104011675 A CN104011675 A CN 104011675A CN 201280063639 A CN201280063639 A CN 201280063639A CN 104011675 A CN104011675 A CN 104011675A
Authority
CN
China
Prior art keywords
data
vector
performance element
vectorial
integer
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
CN201280063639.3A
Other languages
English (en)
Other versions
CN104011675B (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 CN104011675A publication Critical patent/CN104011675A/zh
Application granted granted Critical
Publication of CN104011675B publication Critical patent/CN104011675B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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
    • 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
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch

Landscapes

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

Abstract

本发明涉及一种用于数字信号处理器中的向量执行单元,该向量执行单元能够实现一组新的指令。该单元包括第一输入端口、指令解码器、向量输出端口和至少一个数据路径,其中该第一输入端口用于至少接收第一输入数据向量。指令解码单元设置用于对数据路径进行控制以执行与第一输入数据向量有关的比较,并且所述处理器包括设置为通过判定向量的形式向数字信号处理器中的存储器单元或功能单元输出比较结果的整数端口。备选或附加地,该整数端口还设置用于接收整数数据的判定向量,并且该指令解码单元用于控制数据路径从而依据整数数据的值来处理第一输入数据。

Description

用于数字信号处理器的向量执行单元
技术领域
本发明涉及一种如权利要求1前序部分所定义用于数字信号处理器中的执行单元。本发明还涉及一种适用于OFDM系统的数字信号处理器。
背景技术
为了提高性能和可靠性,许多移动终端目前使用一类称为基带处理器(BBP)的数字信号处理器DSP,以用于操控与接收的无线电信号的处理以及要发送的信号的准备相关联的许多信号处理功能。由于这些功能与时序高度相关并且可能需要实时操作系统,因此将这些功能从主处理器中分离出来是有利的。期望这种基带处理器应当尽可能地灵活,以适应不断发展的标准并允许硬件再利用。因此,已经研发出可编程基带处理器,即PBBP。
此类处理器中频繁执行的许多功能对大量的数据样本执行操作。因此,称为单指令多数据(SIMD)处理器的一类处理器较为有用,因为它能够使单个指令操作多个数据项,而不是一次仅操作一个数据项。多个数据项可设置在向量中,并且适于操作数据向量的处理单元在本文中将称为向量执行单元。
随着SIMD架构的进一步发展,已经研发出单指令流-多任务(SIMT)架构。通常,SIMT架构中已具有与作为内核处理器一部分的整数执行单元相关的一个或两个SIMD类向量执行单元。
国际专利申请WO2007/018467公开了一种根据SIMT架构的DSP,其具有包括整数处理器和程序存储器的处理器内核,以及与内核连接但未集成在内核中的两个向量执行单元。该向量执行单元可以为复杂算法逻辑单元(ComplexArithmetic Logic Units,CALU)或复杂乘法累加单元(CMAC,ComplexMultiply-Accumulate Units)。该内核具有向执行单元分配指令的程序存储器。在WO2007/018467专利文献中,每一向量执行单元具有单独的指令解码器。这可以有效地方式实现向量执行单元的使用在彼此之间独立,以及与处理器的其他部分之间独立。
现有技术的向量执行单元通常包括用于接收待处理数据的第一和第二数据输入端口。数据可以是复数数据或标量数据,并且通常可以为数据向量形式。向量执行单元还包括用于将处理结果馈送到DSP中的另一单元的输出端口。称为复杂算术逻辑单元(CALU)的特定类型的向量执行单元能够执行一组极为有限的乘法,在实际中是将数据项与±1±i相乘。为此目的,CALU还具有整数端口。该整数端口设置用于接收整数数据,以对乘法运算进行控制。
发明内容
本发明的一个目的是提供新的方式来使用SIMT型数字信号处理器,具体说增加了向量执行单元的功能性。
根据本发明第一实施例,该目的通过用于数字信号处理器中的向量执行单元来实现,所述向量执行单元包括:
·第一向量输入端口,其用于从所述数字信号处理器中的至少第一单元分别接收至少第一输入数据向量,
·指令解码单元,其设置用于对从所述数字信号处理器的程序存储器所接收的指令进行解码,
·向量输出端口,其用于将所述指令解码单元的结果馈送至所述数字信号处理器中的至少另一单元,
·至少一条数据路径。
所述向量执行单元的特征在于,所述指令解码单元设置为对所述数据路径进行控制,以执行与所述第一输入数据向量有关的比较,以及所述处理器包括整数端口,其设置为用于将比较的结果以判定向量的形式输出至数字信号处理器中的存储器单元或功能单元。
这表明所述向量执行单元的新型用途在于:所述整数端口用于输出整数数据。这相应地能够实现一种新型命令,即对两个或多个数据项进行比较以产生表示比较结果的整数输出。输出的整数数据可以存储在整数存储器中以供后续使用,或者可以直接用作针对DSP中另一单元的输入数据。
备选或附加地,向量执行单元的特征在于,整数端口设置成用于接收整数数据的判定向量,并且指令解码单元设置用于控制数据路径,从而依据所述整数数据的值来处理第一输入数据。
通过使用整数端口来接收判定数据将影响到数据项的处理,由此可以实现更大的灵活性。本实施例特别用于滤波功能,其中应当将表示噪音的值滤除,并且真实信号值应当保持不变。当然还可以设想到其他用途。
在一优选实施例中,向量执行单元设置为既可产生整数端口上输出的判定向量,又可将判定向量作为用于控制指令的执行的输入。
优选地,向量执行单元还包括用于从数字信号处理器中的第二单元接收第二输入数据向量的第二向量输入端口,指令解码器设置用于控制数据路径,以基于第一输入数据向量和第二输入数据向量来执行比较。
本发明的向量执行单元可以包括一个、两个或多个向量输入端口,这取决于所要执行的指令类型。如果仅接收到一个输入数据向量,向量执行单元则用于执行第一数据与常数之间的比较。
指令解码单元可以设置用于对数据路径进行控制,从而对第一和/或第二输入数据向量进行算术操作并在比较时使用该算术操作的结果。该算术操作可涉及向量输入端口上接收的一个或多个数据项。通过这种方式,可以例如对平方值或绝对值进行比较。
指令解码器设置用于控制所述数据路径,以对输入数据项执行两个或多个比较,并且判定向量具有可表示每次比较的结果的一个数据项。输出的判定向量可以具有由每次比较所产生的单独一个数据位或可表示输入数据的不同属性的多个比特位。作为非限制性示例,三个比特位可用于表明输入数据项是否大于某特定值、其绝对值是否大于零以及其平方值是否大于某个其他值。在此情况下,设置用于使用该判定向量的所述向量执行单元必须设置为可为每个整数数据项挑选正确的值以用作判定输入。
在一个实施例中,指令解码器用于对数据路径进行控制,从而可每次对来自每个输入端口的一个数据项执行比较,并且针对每次比较而输出具有一个或多个数据项的数据向量。通过这种方式,相同数据项的多次比较可以同时进行,并且可以使用由此产生的判定向量以例如控制不同功能。
现有技术中的典型向量执行单元具有四条数据路径。在具有两个或多个数据路径的向量执行单元中,指令解码单元可设置为用于控制数据路径,从而对从两个或多个数据路径上接收的输入数据执行算术操作,并在比较中使用其结果。一起处理两个数据路径上接收到的输入数据并一起处理其他两个数据路径上所接收的输入数据,并且可以对处理结果进行比较。如本领域技术人员所理解的那样,这可以扩展为任何数目的数据路径。
本发明还涉及一种数字信号处理器,其包括程序存储器和根据本发明的至少一个向量执行单元。
附图说明
图1示出了其中可使用根据本发明的向量执行单元的数字信号处理器。
图2示出了根据本发明实施例的向量执行单元。
图3示出了根据本发明第一实施例所涉及的单元之间的通信。
图4示出了根据本发明第二实施例所涉及的单元之间的通信。
具体实施方式
图1示出了使用了根据本发明的向量执行单元的数字信号处理器。图1示出了根据SIMT架构的基带处理器200的示例。处理器200包括控制器内核201以及第一向量执行单元203和第二向量执行单元205,这将在下文中进行更详细地讨论。如图1中所示的FEC单元206连接到片上网络。当然,在一具体实现中,FEC单元206可包括若干不同的单元。
主机接口单元207提供了与主机处理器(未示出)的连接。如果存在MAC处理器,则将MAC处理器连接在主机接口单元207与主机处理器之间。数字前端单元209以本领域公知的方式提供与ADC/DAC单元的连接。
如本领域中所常见的,控制器内核201包括程序存储器以及指令发布逻辑和用于支持多上下文(multi-context)的功能。
控制器内核201通常还包括整数执行单元212,该整数执行单元包括寄存器文件RF、内核整数存储器ICM、乘法单元MUL以及算术与逻辑/移位单元(ALSU)。这些单元在本领域均为已知的并且未在图1中示出。
在本示例中,每个第一向量执行单元203属于CMAC向量执行单元,而第二向量执行单元205属于CALU向量执行单元,其中每个执行单元均包括向量控制器213、向量加载/存储器单元215以及多个数据路径217。加载功能用于从与网络244相连的其他单元(如存储体)提取数据,存储功能用于将来自执行单元203,205的数据通过网络244存储于如存储器单元230,231中。也可以从其他向量执行单元获得数据,和/或可以将计算结果转发到其他向量执行单元以供进一步处理。每个向量执行单元还包括用于接收来自程序存储器211的指令的向量控制器213,223。
该第一向量执行单元的向量控制器经由发布逻辑连接到控制器内核201的程序存储器211上,以接收与来自程序存储器的指令有关的发布信号。在以上描述中,发布逻辑对指令字进行解码以获得发布信号,并将该发布信号作为单独信号发送给向量执行单元。也可以让向量执行单元的向量控制器在本地生成发布信号。在这种情况下,发布信号由向量控制器基于指令字以与其在发布逻辑中相同的方式来创建。
或者,向量执行单元203,205是一类本领域已知的CALU向量执行单元,其包括向量控制器223、向量加载/存储器单元225和多个数据路径227。该第二向量执行单元的向量控制器223还经由发布逻辑连接到控制器内核201的程序存储器211上,以接收与来自程序存储器的指令有关的发布信号。
向量执行单元203,205也可以是任何类型的向量执行单元。尽管示出并讨论了两个向量执行单元,但是本发明的方法可扩展为向三个或更多个向量执行单元发送相同指令。
除了图1所示的两个向量执行单元之外,还可以存在任意数目的向量执行单元。可以只有CMAC单元、只有CALU单元,或者每个类型各有合适数目。也可以存在不是CMAC和CALU的其他类型向量执行单元。如上所述,向量执行单元是能够处理向量指令的处理器,这意味着单个指令对多个数据单元执行相同功能。数据可以是复数或实数,并划分为字节或字封装到待由向量执行单元操作的向量中。在本文中,CALU和CMAC单元用作示例,但应当注意,向量执行单元可用于对数据向量执行任何合适的功能。
为了实现若干个同时的向量操作,处理器优选具有分布式存储器系统,其中存储器划分为若干存储体,如图1所示的存储体0230至存储体N231。每个存储体230,231分别具有自身的复数存储器232,233和地址生成单元AGU234,235。图1中的PBBP还包括一个或多个可选的整数存储体238,该整数存储体包括存储器239和地址生成单元240。
如本领域已知的那样,通常连接有多个加速器242,因为它们能够高效地实现某些基带功能,例如信道编码及交织。这种加速器是本领域所熟知的,因此这里将不再进行任何详细讨论。加速器可以配置为可由多种不同标准来重用。
片上网络244连接有控制器内核201、数字前端单元209、主机接口单元207、向量执行单元203,205、存储体230,232、整数存储体238和加速器242。
第一和第二向量执行单元203,205显示为具有可同时或单独运行四条复数数据路径的四路CMAC单元。四条复数数据路径包括乘法器、加法器和累加寄存器(均未在图1中示出)。因此,在本实施例中,CMAC203可称为四路CMAC数据路径。除了乘法和加法之外,如本领域已知的那样,CMAC203还可以执行舍入和缩放(scaling)操作并支持饱和。
图2是根据本发明实施例的向量执行单元300的简化示意图。向量执行单元可以是复杂乘法累加(CMAC)单元、复杂算术逻辑单元(CALU)或者能够接收并处理数据向量的任何其他类型的处理单元。本示例的向量执行单元包括经由片上网络来接收数据的第一输入端口302和第二数据输入端口304。经由片上网络244,可以从存储器单元、从另一执行单元或者从DSP中的任何其他合适的单元来接收数据。数据由向量执行单元中的数据路径306来处理。向量执行单元还具有经由片上网络将结果输出至另一单元的数据输出端口308。结果可以馈送至存储器单元、另一向量执行单元或DSP中的任何其他合适的单元。向量加载/存储器单元310布置在输入及输出端口302,304,308与数据路径306之间,从而能够实现与向量执行单元300的数据通信往来。
向量控制单元312设置为可控制从DSP内核(图2中未示出)接收的指令的执行。
在输入端口302,304上接收的数据和经由输出端口308输出的数据通常是以数据向量的形式,该数据向量可具有复数或标量数据。数据路径306设置为:通过一次对来自每个向量的一个数据项执行相同类型的功能,而对数据向量进行处理。
根据本发明,向量执行单元还具有整数端口314,在第一实施例中该整数端口314用于输出可表示由数据路径306执行的功能的结果的一个或多个比特位。例如,数据路径306可以用于执行比较,这将在下面进行讨论。比较的结果可以通过整数端口314上输出的一个或多个比特位来表示。输入向量中的每个输入数据项的比较结果均属于整数数据项的向量,每个整数数据项的向量包括一个或多个比特位。
将所得到的判定向量发送至要存储在那里的整数存储器单元。然后,稍后可以通过诸如执行单元或加速器的功能单元对判定向量进行检索,以用作该功能单元的判定输入数据。也可以直接将判定向量发送至功能单元,以影响功能单元的数据处理。
在第二实施例中,向量执行单元300设置为经由整数端口314来接收整数向量,并将该整数向量作为用于下一指令的控制数据。例如,向量执行单元设置为:如果整数数据项为1,则对输入数据执行特定功能,如果整数数据项为0,则执行另一功能。
当然,在实际中,第一和第二实施例可以通过相同的向量执行单元来实施。
图3示出了根据上述第一实施例所涉及的DSP中的单元,即第一和第二向量存储器单元230,231、整数存储器单元238、片上网络244和向量执行单元300。向量执行单元300用于从向量存储器单元230,231接收输入数据并对其进行处理,并且用于经由整数输出端口314以整数向量的形式向片上网络244输出处理结果。在本示例中,将所得到的整数向量写入整数存储器单元238中。也可以将所得到的整数向量直接馈送到诸如另一向量执行单元或加速器单元的功能单元中,以控制由该功能单元所执行的处理。
当然,向量执行单元300还可以包括如图2所示的数据输出端口。
图4示出了根据上述第二实施例所涉及的DSP中的单元,即第一和第二向量存储器单元230,231、整数存储器单元238、片上网络244和向量执行单元400。向量执行单元400用于从向量存储器单元230,231接收输入数据并对其进行处理,并用于以输出数据向量的形式输出处理结果。在本实施例中,第三向量存储器单元403用于接收输出数据向量,但输出数据向量也可以替代性地作为另一功能单元(图4中未示出)的输入数据而被输出至该功能单元中。
向量执行单元400还具有用于从整数存储器238接收整数向量的整数输入端口。向量执行单元的解码单元设置为使用整数向量来控制对在两个输入端口上所接收的输入数据的处理。通常,整数数据项的值将用于确定哪个功能应当对输入数据项进行操作。例如,该功能可以是:当整数数据项的值为0时,则输出数据项应当设置为0,而如果该整数数据项的值为1时,则输出数据项应当保持为该输入值或者作为该输入值的和、差或积。
正如将理解的那样,图3和4所示的具有两个输入数据端口的向量执行单元300,400可以仅具有一个数据端口,或者也可以具有多于两个的数据端口。此外,当本说明书中记载了从存储器单元读取或写入数据时,其表示可以替代性地从DSP中的任何合适单元(例如加速器或另一执行单元)中读取和写入数据。
根据第一实施例所执行的比较可以是两个数据向量A与B之间的直接比较,例如,如果向量A中的数据项的值大于向量B中相应数据项的值,则比较并返回值1。
例如,如果向量A具有以下顺序的数据项:
0 1 2 3 4 5 6 7
并且,向量B具有以下顺序的数据项:
3 3 3 3 4 4 4 4
根据“大于或等于”操作所得到的向量如下:
0 0 0 1 1 1 1
由于向量B中的前三个数据项大于向量A中的前三个数据项,因此返回0。两个向量中的第四和第五数据项相等,并且向量A中的其余数据项大于向量B中的其余数据项,由此,比较将返回1。当然,取代“大于或等于”和“小于”,可以使用“大于”和“小于或等于”。
一个输入数据向量也可以与常数进行比较,该常数可适当地选择为阈值。针对向量中大于或等于该常数的每个数据,将判定向量加1。针对小于该常数的数据项,将判定向量加0。这对滤除噪音极为有用。阈值可以设置成输入数据向量的最高值的某百分比。然后,判定向量将由功能单元使用在结合图4所描述的新操作中,以对数据向量进行处理。使用判定向量,可以将数据向量中小于阈值的所有数据项设为0。常数可以从向量执行单元中的任意累加器寄存器、常数寄存器或控制寄存器中提取。
还可以在比较之前对一个或两个数据项执行算术操作,例如对数据项求平方、求逆或者使用绝对值。而且,针对复数输入数据,可以在比较中仅使用实部或虚部。
非限制例举示例如下:
|A|>|B|
|A|<B
A>x,x为常数
Re{A}>Re{B}
Im{A}<y,y为常数
在具有多于一个数据路径的向量执行单元中,向量执行单元一次将读取多于一个的复数数据项,其中每个数据路径上一个数据项。根据本发明,在这种情况下,可以一起处理在两个或多个数据路径上接收的数据项,例如相乘、相减或相加,并且可以将结果用在比较中。这表示,在具有四条数据路径的典型向量执行单元中,可以一起处理在两个或多个数据路径上接收的数据项,可以一起处理在其余两个输入端上接收的数据项,以及可以将结果进行比较以产生判定向量。
还可以让指令解码器对每个输入数据项执行若干操作。例如,针对复数数据项,数据项的实部和虚部可以单独地比较,每次比较相应地返回判定数据项。备选地或附加地,在比较之前可以对数据项执行一个或多个算术操作,从而例如将平方值、绝对值或逆值用于比较中。而且,作为又一示例,判定数据项可用于表示两个值是否相同。每次比较将返回一个或多个比特位的判定数据项。由此,针对每个输入数据项,判定向量将包括多于一个的判定数据项,其中每个判定数据项表示输入数据项的一个属性。
在这种情况下,指令解码器用于选择出与输入数据项相关的判定数据项中的哪个判定数据项将用于确定该如何处理输入数据项。
作为示例,认为整数向量的每个值具有3个比特位,这通过向量A与B以减法A-B的比较来创建。各比特位如下:
比特位0:如果结果为负,即如果B>A,则负标志=1;
比特位1:如果结果为0,即如果A=B,则零标志=1;
比特位2:如果结果过大,即大于阈值,则溢出标志=1。
该整数向量可以用来执行例如“选择等于”指令:即如果设置了比特位1(即零标志位),则选择操作数A,而如果未设置比特位1,则选择操作数B。整数向量还可以用于执行“选择大于”指令:即如果比特位0的标志为0,则选择操作操作数A,而如果比特位0的标志为1,则选择操作数B。
将理解的是,这些仅旨在作为非限制性示例。本领域技术人员可以容易地将这些示例的一般性原理应用在为各种各样的情况中。

Claims (13)

1.一种用于数字信号处理器中的向量执行单元,所述向量执行单元包括:
·第一向量输入端口,其用于从所述数字信号处理器中的至少第一单元分别接收至少第一输入数据向量,
·指令解码单元,其设置为对从所述数字信号处理器的程序存储器接收的指令进行解码,并控制所述向量执行单元中的至少一个数据路径以执行所述指令;
·向量输出端口,其用于将所述指令解码单元的结果馈送至所述数字信号处理器中的至少另一单元,
·至少一个数据路径,
所述向量执行单元的特征在于,
所述指令解码单元设置为对所述数据路径进行控制,以执行与所述第一输入数据向量有关的比较,以及,
所述处理器包括整数端口,其设置为用于将比较的结果以判定向量的形式输出至所述数字信号处理器中的存储器单元或功能单元。
2.根据权利要求1所述的向量执行单元,其中,所述整数端口还设置为接收整数数据的判定向量,并且所述指令解码单元设置为用于控制所述数据路径从而依据所述整数数据的值来处理所述第一输入数据。
3.根据上述权利要求中任一项所述的向量执行单元,其中,还包括设置用以从所述数字信号处理器中的第二单元接收第二输入数据向量的第二向量输入端口,其中所述指令解码器设置为用于控制所述数据路径,从而基于所述第一输入数据向量和所述第二输入数据向量来执行比较。
4.根据上述权利要求中任一项所述的向量执行单元,其设置为执行所述第一数据向量与常数之间的比较。
5.根据上述权利要求中任一项所述的向量执行单元,其中,所述指令解码单元设置为对所述数据路径进行控制,从而对所述第一和/或第二输入数据向量进行算术操作并在比较时使用上述算术操作的结果。
6.根据权利要求5所述的向量执行单元,其中,所述指令解码单元设置为对所述数据路径进行控制,从而对所述输入数据项执行两次或多次比较,并且所述判定向量将具有表示每次比较的结果的一个数据项。
7.根据权利要求2或者引用权利要求2时的权利要求3-6中任一项所述的向量执行单元,其中,每个向量输入端口设置为接收数据向量,并且所述指令解码单元设置为控制所述数据路径,以在某时对来自每个输入端口的一个数据项执行比较,并且针对每次比较而输出具有一个或多个数据项的数据向量。
8.根据权利要求7所述的向量执行单元,其中,所述指令解码单元设置为对所述数据路径进行控制,以对所述第一和/或第二输入数据向量进行算术操作并在比较时使用所述算术操作的结果。
9.根据上述权利要求中任一项所述的向量执行单元,其具有第一和第二数据路径,其中所述指令解码单元设置为控制所述数据路径,以对所述第一和第二数据路径上所接收的输入数据进行算术操作并在比较时使用该结果。
10.一种用于数字信号处理器中的向量执行单元,所述向量执行单元包括:
·第一向量输入端口,其用于从所述数字信号处理器中的至少第一单元接收第一输入数据向量,
·指令解码单元,其设置为对从所述数字信号处理器的程序存储器接收的指令进行解码,并控制所述向量执行单元中的至少一个数据路径以执行所述指令;
·向量输出端口,其用于将所述指令解码单元的结果馈送至所述数字信号处理器中的另一单元,
·至少一个数据路径,
所述向量执行单元的特征在于,所述处理器包括设置用以接收整数数据的判定向量的整数端口,以及,
所述指令解码单元设置为对所述数据路径进行控制,从而依据所述整数数据的值来处理所述第一输入数据。
11.根据权利要求10所述的向量执行单元,其中,每个向量输入端口设置为接收各个输入数据,并且所述指令解码单元设置为可在某时对来自每个向量输入端口的一个数据项执行比较,并且针对每次比较而输出具有一个或多个数据项的数据向量。
12.根据权利要求10或11所述的向量执行单元,其中,所述整数端口设置为针对每个输入数据项而接收具有多于一个的整数数据项的判定向量,其中所述指令解码单元设置为针对对应的输入数据项来选择所述整数数据项中的一个数据项,并使用所选择的整数数据项来控制相应的整数数据项的处理。
13.一种数字信号处理器,包括程序存储器和至少第一向量执行单元,所述第一向量执行单元设置为接收并执行来自程序存储器的指令,其特征在于,至少第一向量执行单元是根据上述权利要求中任一项所述的向量执行单元。
CN201280063639.3A 2011-12-20 2012-11-28 用于数字信号处理器的向量执行单元 Expired - Fee Related CN104011675B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE1151232A SE535973C2 (sv) 2011-12-20 2011-12-20 Exekveringsenhet för digital signalprocessor
SE1151232-4 2011-12-20
PCT/SE2012/051322 WO2013095259A1 (en) 2011-12-20 2012-11-28 Vector execution unit for digital signal processor

Publications (2)

Publication Number Publication Date
CN104011675A true CN104011675A (zh) 2014-08-27
CN104011675B CN104011675B (zh) 2017-07-07

Family

ID=47594966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280063639.3A Expired - Fee Related CN104011675B (zh) 2011-12-20 2012-11-28 用于数字信号处理器的向量执行单元

Country Status (6)

Country Link
US (1) US20140372728A1 (zh)
EP (1) EP2751672A1 (zh)
KR (1) KR20140105547A (zh)
CN (1) CN104011675B (zh)
SE (1) SE535973C2 (zh)
WO (1) WO2013095259A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105278920A (zh) * 2014-07-09 2016-01-27 英特尔公司 用于实现具有迭代依赖条件的迭代的向量环路的指令
CN107315563A (zh) * 2016-04-26 2017-11-03 北京中科寒武纪科技有限公司 一种用于执行向量比较运算的装置和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302627B1 (en) * 2004-04-05 2007-11-27 Mimar Tibet Apparatus for efficient LFSR calculation in a SIMD processor
CN101238454A (zh) * 2005-08-11 2008-08-06 科莱索尼克公司 包括复数短乘法器和独立的矢量加载单元的具有集群式simd微体系结构的可编程数字信号处理器
US20110072236A1 (en) * 2009-09-20 2011-03-24 Mimar Tibet Method for efficient and parallel color space conversion in a programmable processor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793084B1 (en) * 2002-07-22 2010-09-07 Mimar Tibet Efficient handling of vector high-level language conditional constructs in a SIMD processor
US20080016320A1 (en) * 2006-06-27 2008-01-17 Amitabh Menon Vector Predicates for Sub-Word Parallel Operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302627B1 (en) * 2004-04-05 2007-11-27 Mimar Tibet Apparatus for efficient LFSR calculation in a SIMD processor
CN101238454A (zh) * 2005-08-11 2008-08-06 科莱索尼克公司 包括复数短乘法器和独立的矢量加载单元的具有集群式simd微体系结构的可编程数字信号处理器
US20110072236A1 (en) * 2009-09-20 2011-03-24 Mimar Tibet Method for efficient and parallel color space conversion in a programmable processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105278920A (zh) * 2014-07-09 2016-01-27 英特尔公司 用于实现具有迭代依赖条件的迭代的向量环路的指令
CN105278920B (zh) * 2014-07-09 2018-09-07 英特尔公司 用于实现具有迭代依赖条件的迭代的向量环路的指令
CN107315563A (zh) * 2016-04-26 2017-11-03 北京中科寒武纪科技有限公司 一种用于执行向量比较运算的装置和方法
CN107315563B (zh) * 2016-04-26 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行向量比较运算的装置和方法

Also Published As

Publication number Publication date
WO2013095259A1 (en) 2013-06-27
CN104011675B (zh) 2017-07-07
KR20140105547A (ko) 2014-09-01
US20140372728A1 (en) 2014-12-18
EP2751672A1 (en) 2014-07-09
SE1151232A1 (sv) 2013-03-12
SE535973C2 (sv) 2013-03-12

Similar Documents

Publication Publication Date Title
US9760373B2 (en) Functional unit having tree structure to support vector sorting algorithm and other algorithms
CN101495959B (zh) 组合微处理器内的多个寄存器单元的方法和设备
CN102385504B (zh) 改进的处理器架构
US20130246737A1 (en) SIMD Compare Instruction Using Permute Logic for Distributed Register Files
US11507531B2 (en) Apparatus and method to switch configurable logic units
CN101802779A (zh) 具有可重新组构的浮点单元的处理器
US11907158B2 (en) Vector processor with vector first and multiple lane configuration
CN107851007B (zh) 宽数据类型的比较的方法和装置
KR101016257B1 (ko) 프로세서 및 정보 처리 장치
CN108733412B (zh) 一种运算装置和方法
CN104011675A (zh) 用于数字信号处理器的向量执行单元
EP3295299A1 (en) Decoding information about a group of instructions including a size of the group of instructions
CN112074810B (zh) 并行处理设备
US11669344B2 (en) DSP execution slice array to provide operands to multiple logic units
CN107787480B (zh) 处理标头以解释关于指令组的信息
US9606798B2 (en) VLIW processor, instruction structure, and instruction execution method
CN104040493A (zh) 数字信号处理器和基带通信设备
EP2666082B1 (en) Integrated circuit device and method for calculating a predicate value
US20060271610A1 (en) Digital signal processor having reconfigurable data paths
CN104011674A (zh) 数字信号处理器
US20110099352A1 (en) Automatic control of multiple arithmetic/logic SIMD units
CN114008604A (zh) 具有专用寄存器的risc处理器
CN105844040A (zh) 一种支持多模式乘加器的数据运算方法
Liu et al. Exploration of Spatial Pipeline Computation for Heuristic Access Coarse-Grained Reconfigurable Cells

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170707

Termination date: 20191128