CN113841134A - 具有向量变换执行的处理装置 - Google Patents

具有向量变换执行的处理装置 Download PDF

Info

Publication number
CN113841134A
CN113841134A CN202080036614.9A CN202080036614A CN113841134A CN 113841134 A CN113841134 A CN 113841134A CN 202080036614 A CN202080036614 A CN 202080036614A CN 113841134 A CN113841134 A CN 113841134A
Authority
CN
China
Prior art keywords
vector
instruction
operand
natural order
integrated circuit
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.)
Pending
Application number
CN202080036614.9A
Other languages
English (en)
Inventor
M·拉赫曼
T·D·安德森
J·兹比奇克
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN113841134A publication Critical patent/CN113841134A/zh
Pending legal-status Critical Current

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/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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/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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)

Abstract

一种集成电路(102),其包括指令流水线(108),所述指令流水线包含指令取出阶段电路系统(110)、指令解码阶段电路系统(112)及指令执行电路系统(114)。所述指令执行电路系统包含用于接收交错对偶向量操作数作为输入且输出包含来自所述交错对偶向量操作数的第一组数据值的第一自然顺序向量及包含来自所述交错对偶向量操作数的第二组数据值的第二自然顺序向量的变换电路系统。

Description

具有向量变换执行的处理装置
背景技术
一些实例实施例涉及一种可被形成为集成电路的部分,包含在系统芯片(SoC)上的处理装置,例如微处理器或数字信号处理器。更具体来说,实施例涉及具有向量数据处理的处理装置,例如单指令、多数据(SIMD)处理器。
SIMD处理可涉及作为执行周期的部分同时对向量数据的相应部分进行操作的数个函数单元。响应于单个SIMD指令,每一函数单元取决于所要执行操作而接收相应操作数作为一或两个输入向量的一部分,且在执行时所述函数单元输出其结果作为输出向量的一部分。所述函数单元通常是复制硬件,例如算术逻辑单元(ALU)硬件。例如,SIMD处理器可包含八个ALU函数单元,每一ALU函数单元可对64位操作数进行操作。所有八个ALU单元共同从输入向量同时输入总共512位(8个单元*64位=512位)(或双操作数指令中的两倍),然后进行ALU运算且将512位输出到输出向量。在一些处理器中,每一函数单元的输入/输出数据路径被称为通道。通道是有时也由硬件配置强加的逻辑构造,且其定义每一ALU函数单元数据路径使得将输入及输出限制在同一通道中。因此,对于先前实例,如果将512位数据向量VB0与512位数据向量VB1相加,那么在八个通道当中均分每一数据向量,其中每一通道具有64位。此外,在每一数据向量的同一相应通道中输入及输出位,因此例如将VB0的最低有效通道(被称为VB0[L0])与VB1的最低有效通道(被称为VB1[L0])相加,且将结果输出到输出数据向量VB2中的相应通道,其中那个通道被称为VB2[L0]。因此,在这同一个实例中,针对62位的所有8个通道各自同时相加及输出每一数据向量的每一相应较高有效通道,其中VB2[L1]=VB0[L1]+VB1[L1],VB2[L2]=VB0[L2]+VB1[L2],依此类推直到VB2[L7]=VB0[L7]+VB1[L7]。输出数据向量VB2由此保持输入向量的对准,从而提供有时被称为自然顺序向量的东西。
SIMD处理器操作的前述实施方案特别是针对某些类型的数据处理可提供相当大的好处,例如计算速度、存储器带宽及处理器调度,其中需要跨可累加到向量中的多个独立数据值进行相同操作。此数据的实例可为传感器、视频、语音、雷达、生物医学等。然而,一些数学运算可能要求操作数或算术输出在相应通道之外进行重新排列,由此提供不是自然顺序向量的向量。例如,共同拥有的2019年12月12日公开的第16/551,587号美国专利申请案,即,U.S.2019/0377690以引用的方式完全并入本文中且结合此类考虑描述用于向量置换的各种方法及设备。那些方法及设备提供众多好处,但也可能需要相当大的复杂性。
因此,在本文献中提供可改进某些以上概念的实例实施例,如下文进一步详述。
发明内容
一个实施例包含一种集成电路,其包括指令流水线,所述指令流水线包含指令取出阶段电路系统、指令解码阶段电路系统及指令执行电路系统。所述指令执行电路系统包含用于接收交错对偶向量操作数作为输入且输出包含来自所述交错对偶向量操作数的第一组数据值的第一自然顺序向量及包含来自所述交错对偶向量操作数的第二组数据值的第二自然顺序向量的变换电路系统。
还描述及主张其它方面。
附图说明
图1说明处理装置的框图。
图2A说明两个自然顺序向量VB0及VB1的四个最低有效16位元素。
图2B说明图1的EX阶段114的选定方面的框图。
图2C展示交错输出到向量VB2及VB3,从而形成对偶向量DV0的图2B乘积。
图3A说明图1的函数单元块206中的额外函数单元块的实例。
图3B说明图3A的PTU 206_1的两个额外块。
图4A说明来自图1的函数单元块206中的另一额外函数单元块的实例。
图4B说明图4B的PTU 206_2的两个额外块。
具体实施方式
图1说明可被形成为集成电路的部分,包含在SoC上的处理装置100的框图,所述处理装置例如微处理器或数字信号处理器。例如,处理装置100可结合可从德州仪器公司商购的各种处理器,包含其TMS3207x处理器或作为对其的修改来实施。处理装置100以简化形式进行说明,以便提供对实例实施例的理解。如可包含在处理装置100中的处理器的额外细节也可在上述并入的第16/551,587号美国专利申请案(U.S.2019/0377690)中找到。
处理装置100包含中央处理单元(CPU)核心102,所述CPU核心可表示一或多个CPU核心。CPU核心102经耦合到程序存储器(P_MEM)块104及数据存储器(D_MEM)块106。P_MEM块104及D_MEM块106中的每一者可且很可能表示分层存储器,包含存取一或多个存储器层级(例如,经由高速缓存)的一或多个控制器,其中此存储器可包含内部存储器及外部存储器两者。通常,P_MEM块104将程序指令提供到CPU核心102,且D_MEM块106可由CPU核心102来读取或写入。另外且举例来说,此类存储器的某些方面可在共同拥有的2020年5月14日申请的第16/874,436号美国专利申请案及2020年5月14日申请的第16/874,516号美国专利申请案中找到,所述美国专利申请案以引用的方式完全并入本文中。
CPU核心102包含共同提供响应于时钟振荡器(例如,晶体振荡器,内部或外部且未单独地展示)而操作的指令流水线108的数个阶段。为了举例起见,且为了简化潜在地减少总阶段数,图1说明包含三个阶段的流水线108,所述阶段中的每一者可包含数个阶段(未单独地展示)。那三个阶段是指令取出(IF)阶段110、指令分派及解码(DDE)阶段112及执行(EX)阶段114。而且,DDE阶段112与两个潜在数据源,即,寄存器文件116及流引擎118协作。每一流水线阶段表示关于程序指令采取的一或若干连续动作。
通常,IF阶段110包含连接性及硬件(例如,(若干)寄存器)以将指令从P_MEM块104取出到存储装置中,随后可从所述存储装置解码及分派指令。响应于程序计数器(PC)120而指示或确定经取出指令的地址。IF阶段110可包含三个阶段,包含程序地址产生、程序存储器存取及程序指令接收。还应注意,如本文中所使用,“指令”可包含数个位,所述位整体上包含数个指令。例如,取出可为可表示单个可执行指令或可被细分成单独指令(例如多达16个单独指令,每一单独指令由32位形成)的512位指令包。例如,可实施此实例,其中处理装置100被实施为包含并行执行单元的SIMD处理器,每一并行执行单元可操作以同时执行作为较大指令包的部分取出的相应指令。
接下来,由DDE阶段112分派及解码经取出指令。DDE阶段112可包含三个阶段,包含缓冲指令包且基于所述包是否包含多个指令来潜在地拆分所述包的分派阶段,然后是对指令包进行解码(那时其可从分派拆分成单独指令)的第一及第二指令解码阶段。同样在完成DDE阶段112时,对经解码指令的数据操作可源自寄存器文件116或流引擎118,其中流引擎118是可在某些情况下例如结合某些指令循环流式传输数据的单独机构。源数据可呈标量或数据向量形式,其中数据向量形式与本文献中所描述的改进显著有关。作为参考实例,除非另有陈述,否则假设单个数据向量提供总共八个操作数,其中每一操作数具有64位(每个数据向量总共512位)。同样作为参考,字节被定义为8位,字被定义为32位,且双字(“Dword”)被定义为64位;因此,一个实例数据向量提供八个Dword。然而,在提供单个值的定量量度或指示的意义上,数据向量的本质是其位不一定,且实际上也不可能表示整个512位连续值,而是在512位内是相等的位大小部分,每一部分表示不同且可分开的数据值,使得可分割每一值以与那同一个数据向量中的其它值区分开而进行操作。例如,早前背景描述64位(两个字,或换句话说,一个Dword)的SIMD通道,因此512位数据向量可被视为具有八个通道,每一通道一个Dword宽。而且,在一些例子中,在通道内,可例如关于本文中被称为元素的16位量发生更小位大小的量操作。因此,根据早前约定,数据向量VB0的处理器最低有效通道(64位)是那个向量的64个最低有效位(被指示为VB0[L0]),而数据向量VB0的次最高有效通道是那个向量的64个次最高有效位(被指示为VB0[L1]),依此类推直到数据向量VB0的处理器最高有效通道是那个向量的64个最高有效位(被指示为VB0[L7])。因此,可对第一向量VB0的通道VB0[L0],仅在那个操作数上(或内)(例如,常量的加法)或相对于第二向量VB1的可比较定位通道VB1[L0](例如,沿着所述通道将第一向量与第二向量相加)执行函数单元操作。最后,DDE阶段112还识别执行指令的函数单元及存储指令结果的位置。
在DDE阶段112之后,将经解码指令(包)提交给EX阶段114且由EX阶段114执行经解码指令(包)。EX阶段114结合来自寄存器文件116或流引擎118的一或多个操作数而发生,其中操作数可为标量,或再次应注意,此类操作数可呈一或多个数据向量的形式。EX阶段114可包含数个(例如,五个)执行阶段,所述执行阶段还可包含存储器读取及写入,使得本身不一定存在单独回写阶段。此外,所述执行阶段中的一或多者涉及并行操作的一或多个函数单元的操作。实际上,针对数据向量指令执行,函数单元可包含数个复制硬件结构,其中每一结构可操作以在数据向量的通道上执行其函数。对于早前所描述的实例,接着函数单元的一个实例是具有八个通道的加法器(或包含加法功能的较大算术逻辑单元)或各自具有相应通道的八个单独加法器,其中在任一情况下每一通道可操作以将来自第一数据向量的64位部分与来自第二数据向量的可比较定位64位部分相加。也如上文所述及下文进一步展示,在一些例子中对向量通道的操作可将跨所述通道的数据进一步划分成更小、相等大小分区;例如,跨64位通道,函数单元操作可发生在64位通道内的可比较定位16位元素中。例如,可针对第一向量VB0的通道VB0[L0]中的最低有效十六位相对于第二向量VB1的通道VB1[L0]中的可比较定位最低有效十六位,依此类推跨第一及第二数据向量两者的所有类似定位16位元素执行函数单元操作。
核心CPU 102还包含分支预测器(BP)块124,所述BP块可包含额外方面,例如退出历史表、微分支目标缓冲器及分支目标缓冲器。共同地,BP块124执行分支预测,所述分支预测可包含预测是否采用(或未采用)分支指令及如果采用分支指令那么预测分支指令的目标地址中的一者或两者。在这点上,BP块124接收提供程序计数器(PC)120的当前指令地址指示符值(或那个值的某个部分)的输入124_IN,BP块124从所述PC提供关于预测是否采用分支指令,包含引起循环的指令的各种选项。
图2A说明两个自然顺序向量VB0及VB1的四个最低有效16位元素,以示范可由处理装置100处理的某些数据向量之间的关系的实例。因此,每个向量的四个元素的集合是单个Dword,且两个向量VB0及VB1中的每一者的相应Dword在通道中相对于另一者对准以用于类似定位元素的函数单元执行。因此,可实现函数单元操作,其中每一相应元素作为操作数,由此跨越整个通道,但对经对准元素的每一操作独立于所述通道中的其它位置中的元素。例如,函数单元操作可使用最低有效元素VB0(E0)及VB1(E0)作为操作数来执行。同时,且独立于E0定位元素的执行,同一函数单元可使用次较高有效元素VB0(E1)及VB1(E1)作为操作数来执行,同时也可使用次较高有效元素VB0(E2)及VB1(E2)作为操作数来独立执行,且最后同时也使用次较高有效元素VB0(E3)及VB1(E3)作为操作数来独立执行。基于替代加法指令类型,饱和(在给定二进制算术的情况下达到最大值)可能会或可能不会发生,但在任一情况下,进位均不会从两个元素的加法传播到次最高有效元素对的加法。最后,应注意,为了简化起见,图2A仅说明由64位组成的单个通道;然而,如果向量VB0及VB1是512位向量,那么图2A的对准及约定适用于每一向量的其它位,由此跨八个相应通道对准每一向量的全部八个Dword。
图2B说明来自图1的EX阶段114的选定方面的框图。EX阶段114包含函数单元控制器202,所述函数单元控制器向EX阶段114的函数单元提供操作控制,例如使得(若干)恰当函数单元被启用,以在(若干)适当时钟周期期间输入操作数并执行且产生其执行输出。在这点上,函数单元控制器202包含总共N+1(例如,N=7)个乘法函数单元,但为了简化所述图,仅展示最低有效乘法函数单元204_0及直到204_N的最高有效乘法函数(例如,N=7),而所有N+1个单元被包含在EX阶段114中,且每一乘法函数单元通常可操作以沿着其相应通道输出64位。此外,每一此乘法函数单元例如通过函数单元控制器202中的一或多个控制寄存器中的状态而受控,以当由处理单元100正在处理的当前程序指令是乘法指令(例如如紧接在DDE阶段112之前的阶段中处理)时执行乘法。函数单元控制器202也被展示为控制其它函数单元块206。块206经简化使得未展示但预期可包含的其它函数单元的各种细节,包含但不限于早前结合图1及其EX阶段114所描述的那些细节;然而,稍后将结合某些向量变换描述此类函数单元中的额外函数单元。EX阶段114还包含向量操作数选择块208,所述向量操作数选择块可从图1的寄存器文件116及/或流引擎118接收数据且将例如操作数数据的数据路由到其它函数单元块206或乘法函数单元204_0到204_N中的任一者。标量数据也可用于EX阶段114中,但为了简化说明而未在图2B中进行展示。
为了维持M位乘M位二进制乘法的精度,需要2*M位输出。在这点上,由于每一乘法函数单元204_0到204_N输出64位通道,那么针对N=7,可跨所有N+1个函数单元一次输出总共512位((N+1)*64=512)。相关地,VB0及VB1的乘法是512位乘512位乘法,由此需要总共2*512=1,024个输出位,因此函数单元通道总共需要输出2*512位,其是集体512位通道容量的两倍及单个512位数据向量容量的两倍。为了适应乘法精度的数据宽度的加倍,接着乘法函数单元204_0到204_N通过如下进一步详述那样选择性地路由乘法函数单元输出来共同产生两个不同512位数据向量(例如,向量VB2及VB3)的输出作为两个512位输入数据向量(例如,VB0及VB1)的乘积。
图2B进一步说明乘法函数单元204_0到204_N(例如,N=7)的输入及输出(为了简化所述图,一些被去除)。乘法函数单元204_0到204_N的内部结构相同,但各自接收不同的第一组相应向量数据输入操作数且基于所述单元的相应乘法来输出一组相应向量数据输出。如所展示及现在所描述,每一乘法函数单元包含四个乘法器,所述乘法器中的前两者各自乘以来自VB0及VB1的64位部分的不太有效位置的两个相应16位元素(半字)并产生相应32位乘积到输出数据向量VB2中,且同时所述乘法器中的后两者各自乘以来自VB0及VB1的64位部分的较高有效位置的两个相应16位元素并产生相应32位乘积到输出数据向量VB3中。
图2B的功能块204_0说明上文所介绍的四个乘法器的实例,且图2C说明作为来自VB0及VB1的元素的操作数的选择对准,其中所得乘积输出在向量VB2及VB3中,由此形成对偶向量DV0(DV0=VB3:VB2)。具体来说,功能块204_0包含四个16位乘法器210_0、212_0、214_0及216_0,每一乘法器从向量操作数选择块208接收操作数。四个乘法器中的每一者输入类似定位元素对,使得乘法器210_0输入最低有效元素VB0(E0)及VB1(E0),乘法器212_0输入次较高有效元素VB0(E1)及VB1(E1),乘法器214_0输入次较高有效元素VB0(E2)及VB1(E2),且乘法器216_0输入次较高有效元素VB0(E3)及VB1(E3)。然而,因为每一乘法器输出32位乘积,那么两个较低有效乘法器输出到向量VB2,且两个较高有效乘法器输出到向量VB3。具体来说,乘法器210_0输出VB0(E0)及VB1(E0)的32位乘积作为输出数据向量VB2的最低有效两个元素(或一个字)(被展示为VB2(E1:E0)),且乘法器212_0输出VB0(E1)及VB1(E1)的32位乘积作为输出数据向量VB2的次较高有效两个元素(或一个字)(被展示为VB2(E2:E1))。因此,乘法器210_0及212_0的集体输出提供输出数据向量VB2的最低有效64位Dword。乘法器214_0及216_0关于来自VB0及VB1的次较高有效元素类似地操作,然而对于VB3也是如此,而对于VB2并非如此。具体来说,乘法器214_0输出VB0(E2)及VB1(E2)的32位乘积作为输出数据向量VB3的最低有效两个元素(或一个字)(被展示为VB3(E1:E0)),且乘法器216_0输出VB0(E3)及VB1(E3)的32位乘积作为输出数据向量VB3的次较高有效两个元素(或一个字)(被展示为VB3(E2:E1))。因此,乘法器214_0及216_0的集体输出提供输出数据向量VB3的最低有效64位Dword。
对乘法函数单元204_0的前文描述,针对来自VB0及VB1的四个元素的每一越来越有效集,可比较地适用于剩余乘法函数单元204_1到204_N。因此,作为另一实例,乘法函数单元204_N包含四个乘法器210_N、212_N、214_N及216_N。乘法器210_N输出VB0(E28)及VB1(E28)的32位乘积作为输出数据向量VB2的最高有效Dword的最低有效两个元素(或一个字)(被展示为VB2(E29:E28)),且乘法器212_N输出VB0(E29)及VB1(E29)的32位乘积作为输出数据向量VB2的最高有效Dword的最高有效两个元素(或一个字)(被展示为VB2(E31:E30))。类似地,但关于输出向量VB3,乘法器214_N输出VB0(E30)及VB1(E31)的32位乘积作为输出数据向量VB3的最高有效Dword的最低有效两个元素(或一个字)(被展示为VB3(E29:E28)),且乘法器216_N输出VB0(E31)及VB1(E31)的32位乘积作为输出数据向量VB3的最高有效Dword的最高有效两个元素(或一个字)(被展示为VB3(E31:E30))。在图2C中展示且所属领域的技术人员也将理解图2B中未明确地展示的乘法函数单元的剩余实例。
鉴于前文,图2B及2C说明每一乘法函数单元将来自VB0及VB1中的类似位置的16位元素操作数相乘以产生输出到向量VB2及VB3的32位乘积。此外,所述乘法跨四个乘法器,使得两个不太有效乘法器的输出形成输出到一个输出向量(VB2)的Dword,而两个较高有效乘法器的输出形成输出到另一输出向量(VB3)的Dword。因此,从最低到最高有效性位置,所述输出使得每隔一个输出Dword在输出数据向量VB2与VB3之间交替。应注意,可以各种方式实现此类输出的路由。作为一个实例,在乘法函数单元204_0到204_N同时操作时,其它函数单元块206的另一执行单元可被暂时锁定而不能接收相应指令,在所述情况下其输出总线可与乘法函数单元204_0到204_N的输出共享,使得适当数据路由可针对所有1,024个输出位同时发生。在任何情况下,结果均将乘积输出交错到两个512位数据向量中的每一者中。换句话说,输出数据向量VB2具有与输入数据向量VB0及VB1中的偶数定位字(字位置0、2、4、6、...、2N)相关的Dword,而输出数据向量VB3具有与输入数据向量VB0及VB1中的奇数定位字(字位置1、3、5、7、...、2N+1)相关的Dword。因此,当N=7时,跨N+1个乘法函数单元中的所有乘法器,输入是两个自然顺序512位输入数据向量(例如,VB0及VB1),且为了维持精度,输出是两个512位向量(例如,VB2及VB3),其共同提供总共16个Dword(64位)乘积,总共1,024个乘积位。因此,两个输出向量可被特性化为循序地由两个512位(或8Dword)输出向量(例如,再次是VB2及VB3)组成的单个对偶向量DV0。因此,针对本文献中的约定,对偶向量DV0可被表示为VB3:VB2,其中那个约定建议与具有较高有效位置Dword的VB3及具有不太有效位置Dwords的VB2的Dword对准。且,跨整个对偶向量DV0=VB3:VB2,维持上述交错,借此来自每一64位通道的最低有效两个连续输入数据向量元素的乘积经输出到输出向量VB2中的连续偶数Dword,而来自每一64位通道的次最高有效两个连续输入数据向量元素的乘积经输出到输出向量VB3中的连续Dword。
图3A及3B说明来自图1的函数单元块206中的额外函数单元块的实例,其输入对偶向量(例如,DV0=VB3:VB2)且通过将Dword从输入向量重新排列为输出向量来输出两个经变换单向量。图3A说明从对偶向量到第一输出向量(例如,VB4)的部分变换的第一部分,且图3B说明从对偶向量到第二输出向量(例如,VB5)的部分变换的第二部分。此外,在一个实例实施例中,图3A及图3B两者的操作可例如通过响应于相同指令的执行而同时发生。在替代实例实施例中,图3A的操作可通过响应于第一指令的执行而发生,而图3B的操作可通过响应于第二指令的执行而发生,其中所述指令指示对偶向量到两个输出向量中的一者的部分变换。在任一情况下,下文进一步详述图3A及3B中的每一者。
图3A说明来自图1的函数单元块206中的一者包含部分变换单元(PTU)206_1。PTU206_1包含下偶数半部PTU 302及下奇数半部PTU 304。下偶数半部PTU 302及下奇数半部PTU 304中的每一者通常包含用于从源向量中的位置选择Dword且将其输出到目的地向量中的位置的切换或路由电路系统(例如,多路复用器)。这些PTU及下文所描述的其它PTU的命名约定是指PTU从中选择经输出的数据的向量数据位置,如下文进一步展示。而且,作为函数单元的PTU 302及304与其它EX阶段114函数单元共存且可响应于由IF阶段110取出并由DDE阶段解码及分派的指令而独立地且同时地操作。具体来说,在一个实施例中,处理装置100在其指令集中包含对偶向量到成对单向量(DVTPSV)指令,所述DVTPSV指令在被取出及被解码时指定1,204位(例如,交错)对偶向量作为操作数,且在被执行时,产生一对单512位数据向量。举例来说,图3A说明作为早前所描述的对偶向量DV0=VB3:VB2的DVTPSV指令操作数。此外,回想到对偶向量DV0被描述为交错,且因此图3A说明提供偶数编号Dword的八个最低有效DV0 Dword(VB2),例如来自早前所计算的16位乘16位乘法的相应乘积,而且相关地图3A说明提供奇数编号Dword,也作为相应乘积的八个最高有效DV0 Dword(VB3)。如下文所详述,响应于DVTPSV指令正被执行,PTU 302及304将来自输入对偶向量的元素部分地变换成两个单独自然顺序向量(例如,VB4及VB5)中的一者,其中图3A说明那两个自然顺序向量中的第一者(例如,VB4)。
响应于DVTPSV指令的PTU 302及304中的每一者的执行操作现在进行描述,且被展示为将对偶向量输入的部分变换成两个单独自然顺序向量。下偶数半部PTU 302选择(如被展示为穿过其的第一组虚线)对偶向量DV0中的四个最低有效偶数定位Dword,所述Dword由于交错而存储在形成对偶向量的两个向量中的第一向量(例如,VB2)的下半部中。此外,四个选定Dword经输出到第一自然顺序向量(例如,VB4)中的四个偶数定位Dword位置。同时,下奇数半部PTU 304选择(如由穿过其的第二组虚线所展示)对偶向量DV0中的四个最低有效奇数定位Dword,所述Dword由于交错而存储在形成对偶向量的两个向量中的第二向量(例如,VB3)的下半部中。此外,四个选定Dword经输出到第一自然顺序向量(例如,VB4)中的四个奇数定位Dword位置。鉴于图3A的前述及结果说明,对偶向量(DV0=VB3:VB2)交错元素的一半在VB4中恢复为自然顺序,如由VB4中的最低有效位置处的Dword_0到VB4中的最高有效位置处的Dword_7的序列所展示。
图3B说明第一PTU 206_1的两个额外块,即,上偶数半部PTU 306及上奇数半部PTU308。上偶数半部PTU 306及上奇数半部PTU 308中的每一者通常也是与其它EX阶段114函数单元共存且响应于DVTPSV指令(再次在图3B中被展示为对偶向量DV0=VB3:VB2)而操作的切换或路由电路系统。然而,如下文所详述,响应于正在执行DVTPSV指令,PTU 306及308将来自输入对偶向量的元素部分地变换成两个单独自然顺序向量(例如,VB4及VB5)中的第二者,其中图3B说明那两个自然顺序向量中的第二者(例如,VB5)。
响应于DVTPSV指令的PTU 306及308中的每一者的执行操作现在进行描述,且可与图3A的PTU 302及304进行比较,但关于形成对偶向量输入操作数的两个向量的上半部进行操作且将元素输出到第二自然顺序输出向量VB5。因此,PTU 306及308还将对偶向量输入的部分变换成两个单独自然顺序向量。上偶数半部PTU 304选择(如被展示为穿过其的第一组虚线)对偶向量DV0中的四个最高有效偶数定位Dword中的每一者,所述Dword由于交错而存储在第一向量(VB2)的上半部中。此外,四个选定Dword经输出到第二自然顺序向量(例如,VB5)中的四个偶数定位Dword位置。同时,上奇数半部PTU 308选择(如由穿过其的第二组虚线所展示)对偶向量DV0中的四个最高有效奇数定位Dword,所述Dword由于交错而存储在形成对偶向量的两个向量中的第二向量(VB3)的上半部中。此外,四个选定Dword经输出到第二自然顺序向量(例如,VB5)中的四个奇数定位Dword位置。鉴于图3B的前述及结果说明,形成对偶向量交错元素的每一向量的上半部在VB5中恢复为自然顺序,如由VB5中的最低有效位置处的Dword_8到VB5中的最高有效位置处的Dword_F的序列所展示。
图4A及4B说明来自图1的函数单元块206中的额外函数单元块的实例,且一起输入两个不同(例如,自然顺序)数据向量(例如,VB4,VB5)并通过将Dword从输入向量重新排列为输出向量来输出经变换交错对偶向量(例如,DV0=VB3:VB2)。图4A说明从两个向量到对偶向量的第一半部(VB2)的部分变换的第一部分,且图4B说明从两个向量到对偶向量的第二半部(VB3)的部分变换的第二部分。与图3A及3B的以上描述类似,替代实施例可实施图4A及4B的结构,使得在一个实施例中,图4A及4B两者的操作可例如通过响应于相同指令的执行而同时发生。在替代实例实施例中,图4A的操作可通过响应于第一指令的执行而发生,而图4B的操作可通过响应于第二指令的执行而发生,其中所述指令指示两个自然顺序输入向量的部分部分地变换成对偶向量输出的对应部分。在任一情况下,下文进一步详述图4A及4B。
图4A说明来自图1的函数单元块206中的一者包含内含第一向量偶数Dword PTU402及第二向量偶数Dword PTU 404的PTU 206_2。第一向量偶数Dword PTU 402及第二向量偶数Dword PTU 404中的每一者通常也是作为函数单元与其它EX阶段114函数单元共存且可响应于由IF阶段110取出并由DDE阶段解码及分派的指令而操作的切换或路由电路系统。具体来说,处理装置100在其指令集中包含成对单向量到对偶向量(PSVTDV)指令,所述PSVTDV指令在被取出及被解码时指定两个512位向量(例如,自然顺序向量)作为操作数且将那些向量变换为被展示为上文所介绍的DV0=VB3:VB2的1,204位(例如,交错)对偶向量,其中那个对偶向量的最低有效512位在图4A中被展示为VB2且那个对偶向量的最高有效512位在图4B中被展示为VB3。如下文所详述,响应于PSVTDV指令正被执行,PTU 402及404将来自两个输入向量的元素部分地变换成一起形成对偶向量DV0的两个向量中的每一者的交错顺序。因此,如果输入向量(例如,VB4及VB5)是自然顺序向量,那么所得对偶向量输出是交错的,如早前所描述。
响应于PSVTDV指令的PTU 402及404中的每一者的执行操作现在进行描述,且被展示为将两个输入向量的部分变换成对偶向量输出中的第一向量。第一向量偶数Dword PTU402选择(如由穿过其的第一组虚线所展示)第一向量(例如,VB4)的每个偶数定位Dword(被指示为Dword_0、Dword_2、Dword_4及Dword_6)。此外,第一向量偶数Dword PTU 402将其选定偶数定位Dword输出到输出对偶向量(例如,DV0)中的不太有效向量(例如,VB2)中的四个最低有效Dword。同时,第二向量偶数Dword PTU 404选择(如由穿过其的第二组虚线所展示)第二向量(例如,VB5)的每个偶数定位Dword(被指示为Dword_8、Dword_A、Dword_C及Dword_E)。此外,第二向量偶数Dword PTU 404将其选定偶数定位Dword输出到输出对偶向量(例如,DV0)中的不太有效向量(例如,VB2)中的四个最高有效Dword。鉴于图4A的前述及结果说明,选择及输出两个不同向量(例如,VB4及VB5)的偶数定位Dword以形成交错Dword作为对偶向量DV0=VB5:VB4中的最低有效向量,如由VB2中的最低有效位置处的Dword_0,然后是VB2中的次最高有效位置处的Dword_2,并继续到VB2中的最高有效位置处的Dword_E的序列所展示。
图4B说明PTU 206_2的两个额外块,即,第一向量奇数Dword PTU 406及第二向量奇数Dword PTU 408,再次两者通常包含与其它EX阶段114函数单元共存且响应于PSVTDV指令而操作(再次在图4B中结合两个输入向量操作数VB4及VB5所展示)的切换或路由电路系统。与经连接以选择及输出偶数定位Dword的PTU 402及404类似,响应于PSVTDV指令,PTU406及408经连接以,但代替地选择及输出奇数定位Dword,其中PTU 406及408的输出提供对偶向量DV0=VB3:VB2的Dword的较高有效半部。特定来说,第一向量奇数Dword PTU 406选择(如被展示为穿过其的第一组虚线)第一向量(例如,VB4)的每隔一个奇数定位Dword,且同时,第二向量奇数Dword PTU 408选择(如由穿过其的第二组虚线所展示)第二向量(例如,VB5)的每隔一个奇数定位Dword。鉴于图4B的前述及结果说明,两个不同向量(例如VB4及VB5)的奇数定位Dword被选择输出以形成交错Dword作为对偶向量DV0=VB5:VB4的最高有效半部,如由VB3中的最低有效位置处的Dword_1,然后是VB3中的次最高有效位置处的Dword_3,并继续到VB3中的最高有效位置处的Dword_F的序列所展示。
从上文,所属领域的技术人员应明白,实例实施例包含具有指令流水线的处理装置,所述指令流水线包含响应于特定向量变换指令的一或若干阶段。在实例实施例中,所述流水线包含例如响应于取出对偶向量到成对单向量(DVTPSV)指令而对所述指令进行解码并执行以变换交错对偶向量操作数且响应性地输出一对单正常顺序向量的结构。在一种方法中,所述结构响应于单个指令而例如同时输出所述一对单正常顺序向量。在替代实施例中,所述结构可例如在两个不同时间响应于两个不同指令,其中此类指令中的第一者在被执行时仅将第一部分(例如,奇数对偶向量位置位置)变换成相应单正常顺序向量,而此类指令中的第二者在被执行时仅将第二部分(例如,偶数对偶向量位置位置)变换成相应单正常顺序向量。在例如一次仅需要第一或第二部分用于进一步处理的情况下,这个后一实施例可能是期望的。另外,此结构可作为与其它函数单元分开的函数单元来操作,使得那些其它函数单元中的一或多者可同时执行其它相应函数,在所述情况下变换不会增加额外时延,因为其可与其它执行单元(例如,进行算术运算的那些执行单元)并行执行。在相同或不同实施例中,流水线包含例如响应于取出成对单向量到对偶向量(PSVTDV)指令,对所述指令进行解码并执行以变换两个512位向量(例如,自然顺序向量)作为操作数且响应性地输出1,204位(例如,交错)对偶向量的结构。在一个实例中,对偶向量的第一半部(例如,最低有效半部)响应于第一指令而在一个时间输出,且对偶向量的第二半部(例如,最高有效半部)响应于第二指令而在另一时间输出。例如,为了减少总植入硬件,且在一次仅需要输出对偶向量的一部分(例如,半部)的情况下,这后一种方法可能是期望的。
本文中已以实例的方式提供向量大小,但也预期其它大小。此外,虽然组合地展示上述属性,但本发明范围包含其它实施例中的一或多个特征的子集。更进一步,还预期函数分区的改变等,其中前文仅提供一些实例,而其它实例可由所属领域的技术人员根据本文中的教示确定。因此,在所描述实施例中额外修改是可能的,且在所附权利要求书的范围内其它实施例也是可能的。

Claims (22)

1.一种集成电路,其包括:
指令流水线,其包含:
指令取出阶段电路系统;
指令解码阶段电路系统;及
指令执行电路系统,其包含用于接收交错对偶向量操作数作为输入且输出包含来自所述交错对偶向量操作数的第一组数据值的第一自然顺序向量及包含来自所述交错对偶向量操作数的第二组数据值的第二自然顺序向量的变换电路系统。
2.根据权利要求1所述的集成电路,其中所述指令执行电路系统在第一时间段期间输出所述第一自然顺序向量且在与所述第一时间段不同的第二时间段期间输出所述第二自然顺序向量。
3.根据权利要求1所述的集成电路,其中所述指令执行电路系统在同一时间段内输出所述第一自然顺序向量及所述第二自然顺序向量。
4.根据权利要求1所述的集成电路,其中所述指令执行电路系统响应于所述指令流水线的指令集中的指令而接收所述交错对偶向量操作数且输出所述第一自然顺序向量及所述第二自然顺序向量。
5.根据权利要求1所述的集成电路,其中所述指令执行电路系统进一步包含用于输出所述交错对偶向量操作数的乘法器电路系统。
6.根据权利要求5所述的集成电路,其中所述乘法器电路系统输出所述对偶向量操作数作为从来自第一向量与第二向量的类似定位值的乘法得到的相应乘积。
7.根据权利要求6所述的集成电路:
其中所述类似定位值中的每一者由M位组成;且
其中所述相应乘积中的每一者由2*M位组成。
8.根据权利要求7所述的集成电路,其中M等于16且所述第一向量及第二向量中的每一者由512位组成。
9.根据权利要求7所述的集成电路:
其中所述相应乘积中的第一相应乘积是来自所述第一向量的第一M位值与来自所述第二向量的第一M位值的乘积;
其中所述相应乘积中的第二相应乘积是来自所述第一向量的第二M位值与来自所述第二向量的第二M位值的乘积;
其中来自所述第一向量的所述第二M位值是相对于来自所述第一向量的所述第一M位值的次最高有效值;
其中来自所述第二向量的所述第二M位值是相对于来自所述第二向量的所述第一M位值的次最高有效值;且
其中所述第一相应乘积及所述第二相应乘积在所述对偶向量操作数中的偶数4*M位位置中的一者中作为越来越有效值输出。
10.根据权利要求9所述的集成电路:
其中所述相应乘积中的第三相应乘积是来自所述第一向量的第三M位值与来自所述第二向量的第三M位值的乘积;
其中所述相应乘积中的第四相应乘积是来自所述第一向量的第四M位值与来自所述第二向量的第四M位值的乘积;
其中来自所述第一向量的所述第四M位值是相对于来自所述第一向量的所述第三M位值的次最高有效值;
其中来自所述第一向量的所述第三M位值是相对于来自所述第一向量的所述第二M位值的次最高有效值;
其中来自所述第二向量的所述第四M位值是相对于来自所述第二向量的所述第三M位值的次最高有效值;
其中来自所述第二向量的所述第三M位值是相对于来自所述第二向量的所述第二M位值的次最高有效值;且
其中所述第三相应乘积及所述第四相应乘积在所述对偶向量操作数中的奇数4*M位位置中的一者中作为越来越有效值输出。
11.根据权利要求1所述的集成电路,其中所述交错对偶向量操作数由整数2*M位组成且所述第一自然顺序向量及所述第二自然顺序向量中的每一者由M位组成。
12.根据权利要求1所述的集成电路,其中所述指令执行电路系统进一步包含用于接收作为第一操作数的第一自然顺序向量及作为第二操作数的第二自然顺序向量且输出包含相对于来自所述第二自然顺序向量的一组数据值交错的来自所述第一自然顺序向量的一组数据值的交错对偶向量操作数的额外变换电路系统。
13.根据权利要求12所述的集成电路,其中所述额外变换电路系统在第一时间段期间输出所述交错对偶向量操作数的第一部分且在与所述第一时间段不同的第二时间段期间输出所述交错对偶向量操作数的第二部分。
14.根据权利要求12所述的集成电路,其中所述额外变换电路系统在同一时间段内输出整个所述交错对偶向量操作数。
15.根据权利要求1所述的集成电路,其中所述指令流水线在单指令、多数据(SIMD)处理器中。
16.一种集成电路,其包括:
指令流水线,其包含:
指令取出阶段电路系统;
指令解码阶段电路系统;及
指令执行电路系统,其包含用于接收作为第一操作数的第一自然顺序向量及作为第二操作数的第二自然顺序向量且输出包含相对于来自所述第二自然顺序向量的一组数据值交错的来自所述第一自然顺序向量的一组数据值的交错对偶向量操作数的变换电路系统。
17.根据权利要求16所述的集成电路,其中所述指令执行电路系统进一步包含可操作以与所述变换电路系统输出交错对偶向量操作数同时对至少一个操作数执行算术运算的算术运算电路系统。
18.一种操作包含指令流水线的集成电路的方法,所述方法包括:
将指令取出到所述指令流水线中;
在所述指令流水线中对所述指令进行解码;及
响应于所述解码而在所述指令流水线中执行,所述执行将作为输入的交错对偶向量操作数变换成包含来自所述交错对偶向量操作数的第一组数据值的第一自然顺序向量及包含来自所述交错对偶向量操作数的第二组数据值的第二自然顺序向量。
19.根据权利要求18所述的方法,其中所述指令包含第一指令,且所述方法进一步包括:
将第二指令取出到所述指令流水线中;
在所述指令流水线中对所述第二指令进行解码;及
响应于所述解码,在所述指令流水线中执行所述第二指令,乘法函数输出所述交错对偶向量操作数。
20.根据权利要求19所述的方法,其中所述执行所述第二指令输出所述交错对偶向量操作数以包含在所述交错对偶向量操作数的偶数间隔4*M位位置中具有2*M位值的第一组乘积及在所述交错对偶向量操作数的奇数间隔4*M位位置中具有2*M位值的第二组乘积。
21.根据权利要求18所述的方法,其中所述指令包含第一指令,且所述方法进一步包括:
将第二指令取出到所述指令流水线中;
在所述指令流水线中对所述第二指令进行解码;及
将作为第一操作数的第三自然顺序向量及作为第二操作数的第四自然顺序向量变换成包含相对于来自所述第四自然顺序向量的一组数据值交错的来自所述第三自然顺序向量的一组数据值的交错对偶向量操作数。
22.根据权利要求18所述的方法,其中所述指令流水线包括单指令、多数据指令流水线。
CN202080036614.9A 2019-05-24 2020-05-26 具有向量变换执行的处理装置 Pending CN113841134A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962852619P 2019-05-24 2019-05-24
US62/852,619 2019-05-24
US16/881,327 2020-05-22
US16/881,327 US11327761B2 (en) 2019-05-24 2020-05-22 Processing device with vector transformation execution
PCT/US2020/034554 WO2020243092A1 (en) 2019-05-24 2020-05-26 Processing device with vector transformation execution

Publications (1)

Publication Number Publication Date
CN113841134A true CN113841134A (zh) 2021-12-24

Family

ID=73457065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080036614.9A Pending CN113841134A (zh) 2019-05-24 2020-05-26 具有向量变换执行的处理装置

Country Status (3)

Country Link
US (3) US11327761B2 (zh)
CN (1) CN113841134A (zh)
WO (1) WO2020243092A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327761B2 (en) * 2019-05-24 2022-05-10 Texas Instruments Incorporated Processing device with vector transformation execution

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814303B2 (en) 2008-10-23 2010-10-12 International Business Machines Corporation Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively
CN107092465B (zh) * 2011-12-23 2021-06-29 英特尔公司 用于提供向量混合和置换功能的指令和逻辑
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
JP2016057831A (ja) * 2014-09-09 2016-04-21 株式会社東芝 浮動小数点演算装置、及び情報処理システム
US20190079903A1 (en) * 2017-09-14 2019-03-14 Qualcomm Incorporated Providing matrix multiplication using vector registers in processor-based devices
US10970078B2 (en) * 2018-04-05 2021-04-06 Apple Inc. Computation engine with upsize/interleave and downsize/deinterleave options
US11237905B2 (en) 2019-05-24 2022-02-01 Texas Instruments Incorporated Pipelined read-modify-write operations in cache memory
US11327761B2 (en) * 2019-05-24 2022-05-10 Texas Instruments Incorporated Processing device with vector transformation execution

Also Published As

Publication number Publication date
US11768685B2 (en) 2023-09-26
US20240004663A1 (en) 2024-01-04
WO2020243092A1 (en) 2020-12-03
US20200371808A1 (en) 2020-11-26
US20220261251A1 (en) 2022-08-18
US11327761B2 (en) 2022-05-10

Similar Documents

Publication Publication Date Title
US8521997B2 (en) Conditional execution with multiple destination stores
US7062526B1 (en) Microprocessor with rounding multiply instructions
JP3547139B2 (ja) プロセッサ
US6986025B2 (en) Conditional execution per lane
US7017032B2 (en) Setting execution conditions
US8281113B2 (en) Processor having ALU with dynamically transparent pipeline stages
US9350584B2 (en) Element selection unit and a method therein
US20240004663A1 (en) Processing device with vector transformation execution
US6999985B2 (en) Single instruction multiple data processing
EP1267255A2 (en) Conditional branch execution in a processor with multiple data paths
US6332188B1 (en) Digital signal processor with bit FIFO
EP1634163B1 (en) Result partitioning within simd data processing systems
JP2014164659A (ja) プロセッサ
US20230129750A1 (en) Performing a floating-point multiply-add operation in a computer implemented environment
CN114365110A (zh) 重复使用相邻simd单元用于快速宽结果生成
JP5701930B2 (ja) 半導体装置
US20110289339A1 (en) Semiconductor device
JPH087082A (ja) バレル回転子及びマスク発生器を有する3入力算術論理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination