CN101501634A - 使用标量/向量指令处理数据的系统和方法 - Google Patents

使用标量/向量指令处理数据的系统和方法 Download PDF

Info

Publication number
CN101501634A
CN101501634A CNA200780030183XA CN200780030183A CN101501634A CN 101501634 A CN101501634 A CN 101501634A CN A200780030183X A CNA200780030183X A CN A200780030183XA CN 200780030183 A CN200780030183 A CN 200780030183A CN 101501634 A CN101501634 A CN 101501634A
Authority
CN
China
Prior art keywords
instruction
scalar
register
processor
coupled
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
CNA200780030183XA
Other languages
English (en)
Other versions
CN101501634B (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Priority to CN201310139103.1A priority Critical patent/CN103207773B/zh
Publication of CN101501634A publication Critical patent/CN101501634A/zh
Application granted granted Critical
Publication of CN101501634B publication Critical patent/CN101501634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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
    • 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
    • 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, 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

本发明揭示一种处理器装置,其包含具有用于标量和向量操作的经组合条件码寄存器的寄存器堆。所述处理器装置利用所述经组合条件码寄存器来进行标量和向量操作。此外,比较操作可将所得位存储在所述经组合条件码寄存器中,且条件操作可利用所述经组合条件码寄存器位来评估条件。

Description

使用标量/向量指令处理数据的系统和方法
技术领域
本揭示案大体上涉及处理数据的系统和方法,且更特定来说,涉及处理向量和标量操作的系统和方法。
背景技术
科技上的进步产生更小且更强大的个人计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如较小、轻重量且易于由用户携带的便携式无线电话、个人数字助理(PDA)和寻呼装置。更具体来说,便携式无线电话(例如,蜂窝式电话和IP电话)可经由无线网络传送语音和数据包。此外,许多此类无线电话包含并入其中的其它类型装置。举例来说,无线电话还可包含数字静态相机、数字视频相机、数字记录器和音频文件播放器。而且,此类无线电话可包含可用于接入因特网的网络接口。因此,这些无线电话包含相当大的计算能力。
通常,随着这些装置变得更小且更强大,其变得越来越受资源约束。举例来说,屏幕尺寸、可用存储器和文件系统空间的量,以及输入和输出能力的量可能受到装置的较小尺寸的限制。此外,电池尺寸、由电池提供的功率量以及电池的寿命也受到限制。一种用以增加装置的电池寿命的方式是设计消耗较少功率的处理器。
某些类型的处理器使用用于向量处理的向量架构。具有向量架构的处理器提供对向量(即,线性数据阵列)起作用的高级操作。向量处理一次获取一个指令,且接着以不同的数据多次执行所述指令。此允许用以执行程序所需的能量得以减少,因为尤其是每一指令需要被较少次获取。另外,具有向量架构的处理器通常允许同时完成多个操作,从而在操作之间形成并行性。
另一方面,其它类型的处理器使用标量架构以用于标量处理。标量处理在每次执行指令时获取指令和数据。在执行需要多次执行一指令的循环中,具有标量架构的处理器将多次获取所述指令。
对于需要将要对较大的数据集合执行相同操作的任务来说,需要向量处理。然而,具有向量架构的处理器不考虑标量条件或产生标量结果。当处理器具有线性定标性能要求时(如在预期用以处置多个视频流的视频装置中),标量操作是有用的。出于此原因,现有的处理器使用标量架构来用于多媒体处理。由于缺乏并行性,此方法需要处理器运行得非常快,这在功率消耗方面是低效的。
因此,提供一种考虑到标量条件的处理向量操作的改进处理系统和方法将是有利的。
发明内容
本发明揭示一种处理器装置,且其包含:控制寄存器,其包含用于标量和向量操作的经组合条件码寄存器;以及至少一个指令执行单元,其用以执行标量和向量指令,所述标量和向量指令两者均利用所述经组合条件码寄存器。
在一特定实施例中,处理器装置包含存储器单元和响应于所述存储器单元的定序器。所述指令执行单元响应于所述定序器。此外,在又一特定实施例中,所述处理器装置包含存储器单元,所述存储器单元具有用于利用经组合条件码寄存器的标量操作的指令以及用于利用经组合条件码寄存器的向量操作的指令。在又一实施例中,所述处理器装置包含标量比较操作。在另一实施例中,所述处理器装置包含向量比较操作。
在又一实施例中,所述处理器装置包含基于经组合条件码寄存器而有条件地执行的标量操作。在另一实施例中,所述处理器装置包含将经组合条件码寄存器用作输入的标量操作。
在又一实施例中,所述处理器装置包含基于经组合条件码寄存器中的结果而有条件地执行的向量操作。在特定实施例中,所述处理器装置包含使用经组合条件码寄存器来存储向量比较操作的结果的向量比较操作。
在特定实施例中,所述处理器装置包含对字节、半字、字和双字执行操作的指令执行单元。
本文所揭示的实施例中的一者或一者以上的优点可包含实质上改进处理器装置的性能。另一优点可包含提供所述处理器装置的较低功率使用。
在检视整个申请案后,将明白本揭示案的其它方面、优点和特征,申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
通过参考结合附图而进行的以下详细描述,将更容易明白本文所描述的实施例的方面和优点。
图1是示范性数字信号处理器的方框图;
图2是示范性指令的概图;
图3是向量比较指令的概图;
图4是向量半字比较指令的概图;
图5是向量多路复用器指令的概图;
图6是执行标量操作的方法的流程图;
图7是执行标量条件操作的方法的流程图;
图8是执行向量操作的方法的流程图;
图9是执行向量条件操作的方法的流程图;
图10是并入数字信号处理器的便携式通信装置的方框图;
图11是并入数字信号处理器的示范性蜂窝式电话的方框图;
图12是并入数字信号处理器的示范性无线因特网协议电话的方框图;
图13是并入数字信号处理器的示范性便携式数字助理的方框图;以及
图14是并入数字信号处理器的示范性音频文件播放器的方框图。
具体实施方式
图1说明处理器100的示范性、非限制性实施例的方框图。在特定实施例中,处理器100为数字信号处理器(DSP),例如用于广泛多种信号、图像和视频处理应用中的高性能和低功率的通用DSP。
在特定实施例中,处理器100将标量指令集与面向DSP的指令集进行组合。在此实施例中,处理器100包含完整的且正交的标量指令集,类似于精简指令集计算机(RISC)指令集,其提供对定点数据的操作。所述标量指令经设计为正交的并如同RISC,以便实现较大的灵活度和性能。另外,处理器100包含用于提供多种DSP操作的向量指令集。所述组合提供用于信号处理应用的丰富的一组操作。
在特定实施例中,处理器100支持M型操作,包含对定点数据的操作、分数定标、饱和、舍入、单精度、双精度、复数、向量半字和向量字节操作。在特定实施例中,处理器100支持S型操作,包含标量移位、向量移位、改序、位操纵和断言操作。在特定实施例中,处理器100支持ALU64操作,包含算术逻辑单元(ALU)、改序、向量字节、向量半字和向量字操作。在特定实施例中,处理器100支持ALU32操作,包含加法、减法、对32位数据的不具有饱和的求反、标量32位比较、组合半字、组合字、移位半字、多路复用器(MUX)、空操作(Nop)、正负号和零扩展字节和半字,和转移立即数和寄存器。在特定实施例中,处理器100支持控制寄存器操作,例如控制寄存器转移指令。
如图1中所说明,处理器100包含存储器102,其经由总线106耦合到定序器104。在特定实施例中,存储器102为统一存储器模型。在特定实施例中,总线106为128位总线,且定序器104经配置以从具有32位长度的存储器102检索指令。定序器104耦合到第一指令执行单元136、第二指令执行单元138、第三指令执行单元140,和第四指令执行单元142。图1指示每一指令执行单元136、138、140、142可耦合到通用寄存器堆144。通用寄存器堆144还可耦合到控制寄存器堆110并耦合到存储器102。
在特定实施例中,通用寄存器堆144为单一统一寄存器堆,其保持三十二(32)个32位寄存器,其可被作为单一寄存器存取,或被作为对准的64位对来存取。在特定实施例中,通用寄存器堆144保持指针、标量、向量和累加器数据。通用寄存器144可用于通用的计算,包含地址产生、标量算术和向量算术。在特定实施例中,通用寄存器堆提供用于指令的操作数,包含用于加载/存储的地址、用于数字指令的数据操作数,和用于向量指令的向量操作数。
在特定实施例中,存储器102为具有单一32位地址空间的统一字节可寻址存储器,其保存数据和指令两者,且在小端模式(Little Endian Mode)中操作,其中,存储器中的最低地址字节被保存在寄存器的最低有效字节中。在操作期间,定序器104可从存储器102获取指令。
在处理器100的操作期间,指令由定序器104从存储器102获取,发送到指定的指令执行单元136、138、140、142,且在指令执行单元136、138、140、142处执行。所述指令可包含标量和向量指令,例如标量和向量比较操作、标量条件操作,和向量多路复用器操作。在特定实施例中,定序器104可一次获取四个32位指令,并将所述四个指令并行地发布到指令执行单元136、138、140、142。为了并行执行,可将指令分组为各种类型的一到四个指令的包。变化长度的包可自由混合于程序中。每一指令执行单元136、138、140、142的结果可被写入到通用寄存器堆144。在特定实施例中,处理器100支持在每一循环将两个64位双字从存储器移动到寄存器。
在特定实施例中,处理器100具有加载/存储架构,其特征为经裁剪为编译器需要和DSP应用需要两者的完整组的寻址模式。可支持线性、循环缓冲器,和位颠倒寻址。加载和存储可为带正负号或不带正负号的字节(8位)、半字(16位)、字(32位)和双字(64位)。在特定实施例中,处理器100支持两个并行的加载或并行的一个加载和一个存储。
在特定实施例中,指令执行单元136为向量移位/改序/算术逻辑单元(ALU)单元;指令执行138为向量乘法/ALU单元;指令执行140为加载/ALU单元;且指令执行单元142为加载/存储/ALU单元。
在特定实施例中,一组32位控制寄存器提供对专用特征的存取。可在逻辑上将控制寄存器分组为单一控制寄存器堆,例如控制寄存器堆110。这些控制寄存器可包含经组合断言寄存器,例如断言寄存器120,其可保存标量和向量操作的结果。断言寄存器与条件码寄存器同义。控制寄存器堆110还可包含循环寄存器112、114、116、118、变址寄存器124、126、用户状态寄存器(USR)128、程序计数器(PC)寄存器130,和用户通用指针寄存器132。在特定实施例中,控制寄存器堆110包含保留寄存器,例如保留寄存器122和134。在特定实施例中,指令对于控制寄存器堆110与通用寄存器堆144之间的转移寄存器来说是可用的。在特定实施例中,断言寄存器120为四个8位断言寄存器。
在特定实施例中,比较指令(如下文关于图6和图8所描述)可设置断言寄存器120中的位。比较指令可将比较操作的结果存储在断言寄存器120中。在特定实施例中,比较指令包含向量和标量比较指令。标量比较指令可用于与立即数比较(compare-to-immediate)和寄存器与寄存器比较(register-register compare)形式两者。
在特定实施例中,存储在断言寄存器120中的位可用于有条件地执行某些指令,如关于图7和图8所描述。在特定实施例中,比较指令的结果被存储在断言寄存器120中的一者中,且接着用作用于条件指令的条件位。举例来说,向量指令(例如,分支指令和多路复用器(MUX)指令)是断言寄存器120的主要消费者。然而,某些标量指令也可将存储在断言寄存器120中的位用作条件位。在特定实施例中,使用断言寄存器120的标量操作仅检验最低有效位,而向量操作检查更多位。
举例来说,在特定实施例中,例如“跳到地址”、“从寄存器跳到地址”、“调用子例行程序”和“从寄存器调用子例行程序”的指令使用存储在断言寄存器120中的位。“跳到地址”指令和“从寄存器跳到地址”指令用于改变程序流。“调用子例行程序”指令和“从寄存器调用子例行程序”指令用于将程序流改变为子例行程序。
在特定实施例中,处理器100具有用以操纵和移动断言寄存器120的一组指令。所述指令包含逻辑指令,包含与、或、非和异或。另外,所包含的其它指令为“对断言的逻辑精简”。第一“对断言的逻辑精简”指令在源断言寄存器中的低8位中的任一者被设置的情况下将断言目的地寄存器设置为0xff,否则所述目的地断言被设置为0x00。另一指令在源断言寄存器中的低8位中的全部被设置的情况下将断言目的地寄存器设置为0xff,否则所述目的地断言被设置为0x00。
在特定实施例中,处理器100支持零额外开销硬件循环。存在在使用上具有非常少的约束的两组可嵌套循环机。软件分支通过经断言分支机制而起作用。显性比较指令产生断言位。由条件分支指令使用所述产生的位。以PC相关和寄存器间接形式支持有条件和无条件跳跃以及子例行程序调用。
在特定实施例中,处理器100支持管线化,其中处理器100在已完成第一指令之前开始执行第二指令。
图2说明可由处理器100执行的示范性指令(向量精简乘法半字指令200)的图。如图2中所说明,第一64位向量202的半字(未图示)和第二64位向量204的半字(未图示)在206处相乘。中间乘积212接着在208处一起相加。全64位结果存储在目的地寄存器210中。在特定实施例中,存储在目的地寄存器210中的64位结果任选地在208处相加。可由指令执行单元138执行指令200。在特定实施例中,执行单元138为向量乘法累加器(MAC)单元,其支持对单精度(16×16)、双精度(32×32和32×16)、向量以及复数数据的操作。优选的是,执行单元138能够对标量和压缩的向量数据两者执行多种DSP操作。另外,执行单元138可执行支持自动定标、饱和以及舍入的指令形式。
图3说明可由处理器100执行的示范性指令(向量比较指令300)的图。如图3中所说明,第一64位向量302和第二64位向量304在306处进行比较。向量302和向量304中的每一元素经过比较,且产生真/假结果位向量308。真/假结果位向量308的每一位被设置为0或1,其取决于比较结果。在特定实施例中,真/假结果位向量308被存储在断言寄存器120中的一者中。
图4说明可由处理器100执行的示范性指令(向量半字比较指令400)的图。如图4中所说明,第一64位向量402的半字(未图示)和第二64位向量404的对应半字(未图示)在406处进行比较。向量402和向量404中的每一半字经过比较,且产生真/假结果位向量408。对于半字比较,真/假结果位向量408的两个位被设置为0或1,其取决于每一比较结果。以类似方式,对于字比较,结果向量的四个位被设置为0或1,其取决于每一比较结果。在特定实施例中,真/假结果位向量408被存储在断言寄存器120中的一者中。
图5说明可由处理器100执行的示范性指令(向量MUX指令500)的图。如图5中所说明,在506处有条件地选择第一64位向量502的每一元素和第二64位向量504的每一对应元素。对于向量502中的每一字节和向量504中的对应字节,对应位510用作条件位。在特定实施例中,位510被存储在断言寄存器120中的一者中。条件位510决定MUX操作的结果。MUX操作以从向量502或向量504选择字节的值,因此在两个向量之间执行逐元素的字节选择。向量MUX指令产生结果字节向量508。在特定实施例中,对于断言寄存器120中的一者的低8位中的每一者,如果所述位被设置,那么结果508的对应字节被设置为来自向量502的对应字节。否则,结果508的对应字节被设置为来自向量504的对应字节。在特定实施例中,结果字节向量508被存储在通用寄存器144中的目的地寄存器(未图示)中。
图6说明执行标量操作的方法的流程图。可由指令执行单元(例如,指令执行单元136、138、140、142中的一者)在602处接收标量指令。接着由指令执行单元在604处执行标量指令。接着在606处将来自指令执行的所得位设置在结果寄存器中。在特定实施例中,所得位被设置在断言寄存器120中的一者中。在特定实施例中,所述指令为标量比较指令,其中对于真比较,标量比较指令将断言寄存器120中的一者中的每一位设置为一(1),且对于假比较,将断言寄存器120中的一者中的每一位设置为零(0)。
图7说明执行标量条件操作的方法的流程图。可由指令执行单元(例如,指令执行单元136、138、140、142中的一者)在702处接收标量条件指令。在704处,指令执行单元确定是否应执行标量条件指令。在特定实施例中,在704处,通过检验断言寄存器120中的一者中的最低有效位来完成所述确定。如果所述确定是不执行,则在710处不执行标量条件操作。如果所述确定是执行,则在706处接着由指令执行单元执行所述标量条件指令。接着在708处将来自指令执行的所得位设置在结果寄存器中。
图8说明执行向量操作的方法的流程图。在特定实施例中,向量操作是向量比较操作。可由指令执行单元(例如,指令执行单元136、138、140、142中的一者)在802处接收向量指令。接着由指令执行单元在804处执行向量指令。接着在806处将来自指令执行的所得位设置在结果寄存器中。在特定实施例中,所得位被设置在断言寄存器120中的一者中。
在特定实施例中,处理器100支持三种比较操作形式,包含“相等比较”、“带正负号大于比较”和“不带正负号大于比较”。这三种形式足以产生带正负号和不带正负号的值的所有比较。每一比较的输出产生可用于任一意义上的真或假值。另外,寄存器操作数可经颠倒以产生另一比较。通过交换操作数并使用结果的两种意义,可执行带正负号和不带正负号的比较的完整的补。
图9说明执行向量条件操作的方法的流程图。在特定实施例中,向量条件操作为向量MUX操作。可由指令执行单元(例如,指令执行单元136、138、140、142)在902处接收向量条件指令。指令执行单元在904处获得一组条件位(例如,位510)。在特定实施例中,所获得的位是来自断言寄存器120中的一者。接着当由指令执行单元在906处执行向量条件指令时,使用所获得的位。接着在908处将来自指令执行的所得位设置在结果寄存器中。通过交换MUX指令的源操作数,可形成结果的两个意义。
举例来说,在向量MUX操作中,使用对应的条件位向量来有条件地选择第一向量中的每一字节和第二向量中的对应字节。在特定实施例中,条件位被存储在断言寄存器120中的一者中。MUX操作以从第一向量或第二向量选择字节的值,因此在两个向量之间执行逐元素的字节选择。向量MUX指令产生结果字节向量。在特定实施例中,对于断言寄存器120中的一者的低8位中的每一者,如果所述位被设置,那么结果的对应字节被设置为来自第一向量的对应字节。否则,结果的对应字节被设置为来自第二向量的对应字节。在特定实施例中,结果字节向量被存储在通用寄存器144中的目的地寄存器(未图示)中。
在特定实施例中,处理器100使用向量条件指令来向量化具有条件语句的循环。举例来说,在标量指令循环中,针对循环的每一连续迭代而获取且执行标量指令。在向量条件语句中,可使用向量条件操作取代所述循环,使得获取指令一次并对向量执行。举例来说,以下C代码循环八次获取指令和数据:for(i=0;i<8;i++){if(A[i]]){B[i]=C[i];}}。可由优选各获取一次指令和数据的两个向量操作来取代此C代码循环。为了向量化实例C代码循环,执行两个向量操作。首先,执行比较操作,其将向量A中的字节与零进行比较,且所得位被存储在寄存器中,优选存储在断言寄存器120中的一者中。其次,执行向量MUX操作,其将向量A比较的结果用作条件位以在向量B与向量C的字节之间进行选择。可将向量MUX操作的结果存储在寄存器中。因此,因为较少次地获取指令和数据,所以与具有条件语句的循环相比,向量条件操作允许处理器更快、更有效,且消耗较少的功率。
图10说明一般指定为1020的便携式通信装置的示范性、非限制性实施例。如图10中所说明,便携式通信装置包含芯片上系统1022,所述芯片上系统1022包含数字信号处理器1024。在特定实施例中,数字信号处理器1024为图1中所展示和本文所描述的处理器。如图10中所说明,DSP 1024包含用于标量操作和向量操作的经组合断言寄存器1090。在特定实施例中,比较操作将结果存储在经组合断言寄存器1090中,且条件操作(例如)在上文所描述的向量MUX指令中将所述存储的比较结果用作条件位。图10还展示耦合到数字信号处理器1024和显示器1028的显示器控制器1026。另外,输入装置1030耦合到数字信号处理器1024。如所示,存储器1032耦合到数字信号处理器1024。另外,编码器/解码器(CODEC)1034可耦合到数字信号处理器1024。扬声器1036和麦克风1038可耦合到CODEC 1030。
图10还指示无线控制器1040可耦合到数字信号处理器1024和无线天线1042。在特定实施例中,电源1044耦合到芯片上系统1002。另外,在特定实施例中,如图10中所说明,显示器1026、输入装置1030、扬声器1036、麦克风1038、无线天线1042和电源1044处于芯片上系统1022的外部。然而,每一者均耦合到芯片上系统1022的组件。
在特定实施例中,数字信号处理器1024利用交错的多线程来处理与程序线程相关联的指令,所述程序线程是执行由便携式通信装置1020的各种组件所需要的功能性和操作所必需的。举例来说,当经由无线天线建立无线通信会话时,用户可对麦克风1038讲话。表示用户语音的电子信号可被发送到CODEC 1034以进行编码。数字信号处理器1024可执行用于CODEC 1034编码来自麦克风的电子信号的数据处理。此外,可由无线控制器1040将经由无线天线1042接收到的传入信号发送到CODEC 1034以进行解码,并发送到扬声器1036。数字信号处理器1024也可在解码经由无线天线1042接收到的信号时执行用于CODEC 1034的数据处理。
此外,在无线通信会话之前、期间或之后,数字信号处理器1024可处理从输入装置1030接收到的输入。举例来说,在无线通信会话期间,用户可能正使用输入装置1030和显示器1028经由嵌入在便携式通信装置1020的存储器1032内的网络浏览器在因特网上冲浪。数字信号处理器1024可交错由输入装置1030、显示器控制器1026、显示器1028、CODEC 1034和无线控制器1040(如本文所描述)使用的各种程序线程,以有效地控制便携式通信装置1020和其中的各种组件的操作。与各种程序线程相关联的许多指令是在一个或一个以上时钟循环期间同时执行的。因此,实质上降低了由于浪费的时钟循环而引起的功率和能量消耗。
参看图11,其展示蜂窝式电话的示范性、非限制性实施例,且一般指定为1120。如所示,蜂窝式电话1120包含芯片上系统1122,芯片上系统1122包含耦合在一起的数字基带处理器1124和模拟基带处理器1126。在特定实施例中,数字基带处理器1124为数字信号处理器,例如图1中所展示和本文所描述的处理器。如图11中所说明,DSP1124包含用于标量操作和向量操作的经组合断言寄存器1190。在特定实施例中,比较操作将结果存储在经组合断言寄存器1190中,且条件操作(例如)在上文所描述的向量MUX指令中将所述存储的比较结果用作条件位。如图11中所指示,显示器控制器1128和触摸屏控制器1130耦合到数字基带处理器1124。处于芯片上系统1122外部的触摸屏显示器1132又耦合到显示器控制器1128和触摸屏控制器1130。
图11进一步指示视频编码器1134(例如,逐行倒相(PAL)编码器、顺序传送彩色与存储(SECAM)编码器,或美国国家电视系统委员会(NTSC)编码器)耦合到数字基带处理器1124。此外,视频放大器1136耦合到视频编码器1134和触摸屏显示器1132。而且,视频端口1138耦合到视频放大器1136。如图11中所描绘,通用串行总线(USB)控制器1140耦合到数字基带处理器1124。而且,USB端口1142耦合到USB控制器1140。存储器1144和订户身份模块(SIM)卡1146也可耦合到数字基带处理器1124。此外,如图11中所示,数码相机1148可耦合到数字基带处理器1124。在示范性实施例中,数码相机1148是电荷耦合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图11中进一步说明,立体声音频CODEC 1150可耦合到模拟基带处理器1126。另外,音频放大器1152可耦合到立体声音频CODEC 1150。在示范性实施例中,第一立体声扬声器1154和第二立体声扬声器1156耦合到音频放大器1152。图11展示麦克风放大器1158也可耦合到立体声音频CODEC 1150。另外,麦克风1160可耦合到麦克风放大器1158。在特定实施例中,调频(FM)收音机调谐器1162可耦合到立体声音频CODEC 1150。而且,FM天线1164耦合到FM收音机调谐器1162。此外,立体声耳机1166可耦合到立体声音频CODEC 1150。
图11进一步指示射频(RF)收发器1168可耦合到模拟基带处理器1126。RF开关1170可耦合到RF收发器1168和RF天线1172。如图11中所示,小键盘1174可耦合到模拟基带处理器1126。而且具有麦克风1176的单声道送受话器可耦合到模拟基带处理器1126。此外,振动器装置1178可耦合到模拟基带处理器1126。图11还展示电源1180可耦合到芯片上系统1122。在特定实施例中,电源1180是直流(DC)电源,其将功率提供给蜂窝式电话1120中需要功率的各种组件。此外,在特定实施例中,电源是可再充电DC电池或DC电源,其是从连接到AC电源的交流(AC)到DC变压器得到的。
在特定实施例中,如图11中所描绘,触摸屏显示器1132、视频端口1138、USB端口1142、相机1148、第一立体声扬声器1154、第二立体声扬声器1156、麦克风、FM天线1164、立体声耳机1166、RF开关1170、RF天线1172、小键盘1174、单声道送受话器1176、振动器1178和电源1180处于芯片上系统1122的外部。另外,在特定实施例中,数字基带处理器1124可使用本文所描述的交错多线程,以便处理与和蜂窝式电话1120相关联的不同组件中的一者或一者以上相关联的各种程序线程。
参看图12,展示无线因特网协议(IP)电话的示范性、非限制性实施例,且一般指定为1200。如所示,无线IP电话1200包含芯片上系统1202,所述芯片上系统1202包含数字信号处理器(DSP)1204。在特定实施例中,DSP 1204为图1中所展示和本文所描述的处理器。如图12中所说明,DSP 1204包含用于标量操作和向量操作的经组合断言寄存器1290。在特定实施例中,比较操作将结果存储在经组合断言寄存器1290中,且条件操作(例如)在上文所描述的向量MUX指令中将所述存储的比较结果用作条件位。如图12中所说明,显示器控制器1206耦合到DSP 1204,且显示器1208耦合到显示器控制器1206。在示范性实施例中,显示器1208为液晶显示器(LCD)。图12进一步展示小键盘1210可耦合到DSP 1204。
如图12中进一步描绘,快闪存储器1212可耦合到DSP 1204。同步动态随机存取存储器(SDRAM)1214、静态随机存取存储器(SRAM)1216和电可擦除可编程只读存储器(EEPROM)1218也可耦合到DSP 1204。图12还展示发光二极管(LED)1220可耦合到DSP 1204。另外,在特定实施例中,语音CODEC 1222可耦合到DSP 1204。放大器1224可耦合到语音CODEC 1222,且单声道扬声器1226可耦合到放大器1224。图12进一步指示单声道送受话器1228也可耦合到语音CODEC 1222。在特定实施例中,单声道送受话器1228包含麦克风。
图12还说明无线局域网(WLAN)基带处理器1230可耦合到DSP 1204。RF收发器1232可耦合到WLAN基带处理器1230,且RF天线1234可耦合到RF收发器1232。在特定实施例中,蓝牙控制器1236也可耦合到DSP 1204,且蓝牙天线1238可耦合到控制器1236。图12还展示USB端口1240也可耦合到DSP 1204。另外,电源1242耦合到芯片上系统1202,且经由芯片上系统1202向无线IP电话1200的各种组件提供功率。
在特定实施例中,如图12中所指示,显示器1208、小键盘1210、LED 1220、单声道扬声器1226、单声道送受话器1228、RF天线1234、蓝牙天线1238、USB端口1240和电源1242处于芯片上系统1202的外部。然而,这些组件中的每一者均耦合到芯片上系统的一个或一个以上组件。此外,在特定实施例中,数字信号处理器1204可使用如本文所描述的交错多线程,以便处理与和IP电话1200相关联的不同组件中的一者或一者以上相关联的各种程序线程。
图13说明一般指定为1300的便携式数字助理(PDA)的示范性、非限制性实施例。如所示,PDA 1300包含芯片上系统1302,所述芯片上系统1302包含数字信号处理器(DSP)1304。在特定实施例中,DSP 1304为图1中所展示和本文所描述的处理器。如图13中所说明,DSP 1304包含用于标量操作和向量操作的经组合断言寄存器1390。在特定实施例中,比较操作将结果存储在经组合断言寄存器1390中,且条件操作(例如)在上文所描述的向量MUX指令中将所述存储的比较结果用作条件位。如图13中所描绘,触摸屏控制器1306和显示器控制器1308耦合到DSP 1304。此外,触摸屏显示器耦合到触摸屏控制器1306且耦合到显示器控制器1308。图13还指示小键盘1312可耦合到DSP1304。
如图13中进一步描绘,快闪存储器1314可耦合到DSP 1304。而且,只读存储器(ROM)1316、动态随机存取存储器(DRAM)1318和电可擦除可编程只读存储器(EEPROM)1320可耦合到DSP 1304。图13还展示红外数据协会(IrDA)端口1322可耦合到DSP 1304。另外,在特定实施例中,数码相机1324可耦合到DSP 1304。
如图13中所展示,在特定实施例中,立体声音频CODEC 1326可耦合到DSP 1304。第一立体声放大器1328可耦合到立体声音频CODEC 1326,且第一立体声扬声器1330可耦合到第一立体声放大器1328。另外,麦克风放大器1332可耦合到立体声音频CODEC1326,且麦克风1334可耦合到麦克风放大器1332。图13进一步展示第二立体声放大器1336可耦合到立体声音频CODEC 1326,且第二立体声扬声器1338可耦合到第二立体声放大器1336。在特定实施例中,立体声耳机1340也可耦合到立体声音频CODEC 1326。
图13还说明802.11控制器1342可耦合到DSP 1304,且802.11天线1344可耦合到802.11控制器1342。另外,蓝牙控制器1346可耦合到DSP 1304,且蓝牙天线1348可耦合到蓝牙控制器1346。如图13中所描绘,USB控制器1350可耦合到DSP 1304,且USB端口1352可耦合到USB控制器1350。另外,智能卡1354(例如,多媒体卡(MMC)或安全数字卡(SD))可耦合到DSP 1304。此外,如图13中所展示,电源1356可耦合到芯片上系统1302,且可经由芯片上系统1302向PDA 1300的各种组件提供功率。
在特定实施例中,如图13中所指示,显示器1310、小键盘1312、IrDA端口1322、数码相机1324、第一立体声扬声器1330、麦克风1334、第二立体声扬声器1338、立体声耳机1340、802.11天线1344、蓝牙天线1348、USB端口1352和电源1350处于芯片上系统1302的外部。然而,这些组件中的每一者均耦合到芯片上系统上的一个或一个以上组件。另外,在特定实施例中,数字信号处理器1304可使用本文所描述的交错多线程,以便处理与和便携式数字助理1300相关联的不同组件中的一者或一者以上相关联的各种程序线程。
参看图14,其展示音频文件播放器(例如,移动图片专家组音频层-3(MP3)播放器)的示范性、非限制性实施例,且一般指定为1400。如所示,音频文件播放器1400包含芯片上系统1402,所述芯片上系统1402包含数字信号处理器(DSP)1404。在特定实施例中,DSP 1404为图1中所展示和本文所描述的处理器。如图14中所说明,DSP1404包含用于标量操作和向量操作的经组合断言寄存器1490。在特定实施例中,比较操作将结果存储在经组合断言寄存器1490中,且条件操作(例如)在上文所描述的向量MUX指令中将所述存储的比较结果用作条件位。如图14中所说明,显示器控制器1406耦合到DSP 1404,且显示器1408耦合到显示器控制器1406。在示范性实施例中,显示器1408为液晶显示器(LCD)。图14进一步展示小键盘1410可耦合到DSP 1404。
如在图14中进一步描绘,快闪存储器1412和只读存储器(ROM)1414可耦合到DSP 1404。另外,在特定实施例中,音频CODEC 1416可耦合到DSP 1404。放大器1418可耦合到音频CODEC 1416,且单声道扬声器1420可耦合到放大器1418。图14进一步指示麦克风输入1422和立体声输入1424也可耦合到音频CODEC 1416。在特定实施例中,立体声耳机1426也可耦合到音频CODEC 1416。
图14还指示USB端口1428和智能卡1430可耦合到DSP 1404。另外,电源1432可耦合到芯片上系统1402,且可经由芯片上系统1402向音频文件播放器1400的各种组件提供功率。
在特定实施例中,如图14中所指示,显示器1408、小键盘1410、单声道扬声器1420、麦克风输入1422、立体声输入1424、立体声耳机1426、USB端口1428和电源1432处于芯片上系统1402的外部。然而,这些组件中的每一者均耦合到芯片上系统上的一个或一个以上组件。而且,在特定实施例中,数字信号处理器1404可使用本文所描述的交错多线程,以便处理与和音频文件播放器1400相关联的不同组件中的一者或一者以上相关联的各种程序线程。
本文所描述的系统和方法提供减少的复杂性、成本和功率使用。举例来说,让相同的断言寄存器针对标量操作和向量操作两者进行操作即会通过减少所需断言寄存器的数目而减少处理器的成本和复杂性。而且,具有单独的断言寄存器堆而不是使用通用寄存器减少了处理器的成本、复杂性和所消耗的功率。另外,本文所描述的系统和方法提供改进的性能。
所属领域的技术人员将进一步了解,可将结合本文所揭示的实施例而描述的各种说明性逻辑区块、配置、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件和软件的此互换性,已根据其功能性在上文中大体上描述了各种说明性组件、区块、配置、模块、电路和步骤。将此功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。对于每一特定应用,所属领域的技术人员可以变化的方式实施所描述的功能性,但不应将此些实施方案解释为导致脱离本发明的范围。
结合本文所揭示的实施例而描述的方法或算法的步骤可直接包含在硬件中、由处理器执行的软件中,或两者的组合中。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体。处理器和存储媒体可驻留在ASIC中。ASIC可驻留于计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留于计算装置或用户终端中。
提供所揭示实施例的先前描述以使任何所属领域的技术人员能够制作或使用本揭示案。所属领域的技术人员将容易明白对这些实施例的各种修改,且在不脱离本揭示案的精神或范围的情况下,可将本文中所界定的一般原理应用于其它实施例。因此,并不希望将本揭示案限于本文中所示的实施例,而是,将赋予其与所附权利要求书所界定的原理和新颖特征一致的最广泛范围。

Claims (38)

1.一种处理器装置,其包括:
控制寄存器,其包含用于标量和向量操作的经组合条件码寄存器;以及
至少一个指令执行单元,其用以执行标量和向量指令,所述标量和向量指令两者均利用所述经组合条件码寄存器。
2.根据权利要求1所述的处理器,其进一步包括:
存储器单元;
定序器,其响应于所述存储器单元;且
其中所述至少一个指令执行单元响应于所述定序器。
3.根据权利要求2所述的处理器,其中所述存储器单元包含:
用于利用所述经组合条件码寄存器的标量操作的指令;以及
用于利用所述经组合条件码寄存器的向量操作的指令。
4.根据权利要求3所述的处理器,其中所述标量操作为标量比较操作。
5.根据权利要求3所述的处理器,其中所述向量操作为向量比较操作。
6.根据权利要求2所述的处理器,其进一步包括用于标量和向量操作的四个8位经组合条件码寄存器。
7.根据权利要求3所述的处理器,其中所述标量操作是基于所述经组合条件码寄存器而有条件地执行的。
8.根据权利要求3所述的处理器,其中所述标量操作将所述经组合条件码寄存器用作输入。
9.根据权利要求3所述的处理器,其中向量操作是基于所述经组合条件码寄存器而有条件地执行的。
10.根据权利要求1所述的处理器,其中向量比较操作使用所述经组合条件码寄存器来存储向量比较操作的结果。
11.根据权利要求10所述的处理器,其中所述向量操作为64位向量多路复用器指令,且所述经组合条件码寄存器为8位寄存器。
12.根据权利要求3所述的处理器,其中所述向量操作是将每一元素结果复制到四个经组合条件码寄存器位的字比较操作。
13.根据权利要求2所述的处理器,其中可使用用于向量操作的指令来取代循环算法。
14.根据权利要求1所述的处理器,其中所述控制寄存器包含循环寄存器、变址寄存器、用户状态寄存器、程序计数器寄存器,和用户通用指针寄存器。
15.根据权利要求6所述的处理器,其中利用多线程来处理与程序线程相关联的指令以执行并发操作。
16.根据权利要求6所述的处理器,其中利用管线化来处理指令。
17.根据权利要求6所述的处理器,其中所述至少一个指令执行单元对字节、半字、字和双字执行操作。
18.一种处理数据的方法,其包括:
使用经组合标量和向量条件码寄存器来执行用于比较操作的指令;以及
使用所述经组合标量和向量条件码寄存器来执行用于条件操作的指令。
19.根据权利要求18所述的方法,其中所述比较操作是标量比较操作。
20.根据权利要求19所述的方法,其进一步包括:
在指令执行单元处接收用于标量比较操作的指令;以及
将所述标量比较操作的结果存储在所述经组合标量和向量条件码寄存器中。
21.根据权利要求18所述的方法,其中所述条件操作是标量条件操作。
22.根据权利要求21所述的方法,其进一步包括:
在指令执行单元处接收用于标量条件操作的指令;
评估来自所述经组合标量和向量条件码寄存器的至少一个条件码位;
确定是否应执行所述用于所述标量条件操作的指令;以及
依据所述确定,将所述标量条件操作的结果存储在寄存器中。
23.根据权利要求18所述的方法,其中所述比较操作是向量比较操作。
24.根据权利要求23所述的方法,其进一步包括:
在指令执行单元处接收用于向量比较操作的指令;以及
将所述向量比较操作的结果存储在所述经组合标量和向量条件码寄存器中。
25.根据权利要求18所述的方法,其中所述条件操作是向量条件操作。
26.根据权利要求25所述的方法,其进一步包括:
在指令执行单元处接收用于向量条件操作的指令;
利用来自所述经组合标量和向量条件码寄存器的至少一个条件码位,其中在所述向量条件操作中使用所述利用的位;以及
将所述向量条件操作的结果存储在寄存器中。
27.根据权利要求19所述的方法,其中所述条件操作是向量条件操作。
28.一种用于处理器的指令集,其包括:
用于使用经组合条件码寄存器来执行标量操作的指令;以及
用于使用所述经组合条件码寄存器来执行向量操作的指令。
29.根据权利要求28所述的指令集,其中所述用于执行所述标量操作的指令是标量比较操作。
30.根据权利要求28所述的指令集,其中所述用于执行所述标量操作的指令是标量条件操作。
31.根据权利要求28所述的指令集,其中所述用于执行所述向量操作的指令是向量比较操作。
32.根据权利要求28所述的指令集,其中所述用于执行所述向量操作的指令是向量条件操作。
33.一种处理器,其包括:
经组合条件码寄存器,其用于标量和向量操作;以及
执行单元,其用以执行适合于标量和向量条件操作的向量多路复用器操作。
34.一种无线通信装置,其包括:
天线;
收发器,其可操作地连接到所述天线;
存储器单元;以及
数字信号处理器,其耦合到所述存储器单元且响应于所述收发器;
其中所述数字信号处理器包含:
控制寄存器,其包含用于标量和向量操作的经组合条件码寄存器;以及
至少一个指令执行单元,其用以执行标量和向量指令,所述标量和向量指令两者均利用所述经组合条件码寄存器。
35.根据权利要求34所述的便携式通信装置,其进一步包括:
语音编码器/解码器(CODEC),其耦合到所述数字信号处理器;
蓝牙控制器,其耦合到所述数字信号处理器;
蓝牙天线,其耦合到所述蓝牙控制器;
无线局域网媒体接入控制(WLAN MAC)基带处理器,其耦合到所述数字信号处理器。
36.根据权利要求34所述的便携式通信装置,其进一步包括:
立体声编码器/解码器(CODEC),其耦合到所述数字信号处理器;
802.11控制器,其耦合到所述数字信号处理器;
802.11天线,其耦合到所述802.11控制器;
蓝牙控制器,其耦合到所述数字信号处理器;
蓝牙天线,其耦合到所述蓝牙控制器;
通用串行总线(USB)控制器,其耦合到所述数字信号处理器;以及
USB端口,其耦合到所述USB控制器。
37.一种音频文件播放器,其包括:
数字信号处理器;
音频编码器/解码器(CODEC),其耦合到所述数字信号处理器;
多媒体卡,其耦合到所述数字信号处理器;
通用串行总线(USB)端口,其耦合到所述数字信号处理器;且
其中所述数字信号处理器包含:
控制寄存器,其包含用于标量和向量操作的经组合条件码寄存器;以及
至少一个指令执行单元,其用以执行标量和向量指令,所述标量和向量指令两者均利用所述经组合条件码寄存器。
38.一种处理器装置,其包括:
用于执行用于执行利用经组合条件码寄存器的标量操作的指令的装置;以及
用于执行用于执行利用所述经组合条件码寄存器的向量操作的指令的装置。
CN200780030183XA 2006-08-18 2007-08-15 使用标量/向量指令处理数据的系统和方法 Active CN101501634B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310139103.1A CN103207773B (zh) 2006-08-18 2007-08-15 使用标量/向量指令处理数据的系统和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/506,584 2006-08-18
US11/506,584 US7676647B2 (en) 2006-08-18 2006-08-18 System and method of processing data using scalar/vector instructions
PCT/US2007/076033 WO2008022217A1 (en) 2006-08-18 2007-08-15 System and method of processing data using scalar/vector instructions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310139103.1A Division CN103207773B (zh) 2006-08-18 2007-08-15 使用标量/向量指令处理数据的系统和方法

Publications (2)

Publication Number Publication Date
CN101501634A true CN101501634A (zh) 2009-08-05
CN101501634B CN101501634B (zh) 2013-05-29

Family

ID=38749041

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310139103.1A Active CN103207773B (zh) 2006-08-18 2007-08-15 使用标量/向量指令处理数据的系统和方法
CN200780030183XA Active CN101501634B (zh) 2006-08-18 2007-08-15 使用标量/向量指令处理数据的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310139103.1A Active CN103207773B (zh) 2006-08-18 2007-08-15 使用标量/向量指令处理数据的系统和方法

Country Status (6)

Country Link
US (2) US7676647B2 (zh)
EP (2) EP2273359B1 (zh)
JP (3) JP2010501937A (zh)
KR (1) KR101072707B1 (zh)
CN (2) CN103207773B (zh)
WO (1) WO2008022217A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115115A (zh) * 2011-12-19 2014-10-22 英特尔公司 用于多精度算术的simd整数乘法累加指令
CN105980980A (zh) * 2013-11-29 2016-09-28 三星电子株式会社 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质
CN108241504A (zh) * 2011-12-23 2018-07-03 英特尔公司 经改进的提取指令的装置和方法
CN109189473A (zh) * 2018-02-05 2019-01-11 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量交换指令的方法
CN115951936A (zh) * 2023-01-17 2023-04-11 上海燧原科技有限公司 向量化编译程序的芯片适配方法、装置、设备及介质

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676647B2 (en) * 2006-08-18 2010-03-09 Qualcomm Incorporated System and method of processing data using scalar/vector instructions
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US8191056B2 (en) * 2006-10-13 2012-05-29 International Business Machines Corporation Sparse vectorization without hardware gather/scatter
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
FR2935059B1 (fr) * 2008-08-12 2012-05-11 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede
US8745360B2 (en) * 2008-09-24 2014-06-03 Apple Inc. Generating predicate values based on conditional data dependency in vector processors
US9501286B2 (en) * 2009-08-07 2016-11-22 Via Technologies, Inc. Microprocessor with ALU integrated into load unit
US9141386B2 (en) * 2010-09-24 2015-09-22 Intel Corporation Vector logical reduction operation implemented using swizzling on a semiconductor chip
US9606802B2 (en) 2011-03-25 2017-03-28 Nxp Usa, Inc. Processor system with predicate register, computer system, method for managing predicates and computer program product
WO2012134532A1 (en) * 2011-04-01 2012-10-04 Intel Corporation Vector friendly instruction format and execution thereof
JP5864776B2 (ja) 2011-12-21 2016-02-17 ドルビー・インターナショナル・アーベー 並列アーキテクチャをもつオーディオ・エンコーダ
US9588766B2 (en) 2012-09-28 2017-03-07 Intel Corporation Accelerated interlane vector reduction instructions
US9557993B2 (en) 2012-10-23 2017-01-31 Analog Devices Global Processor architecture and method for simplifying programming single instruction, multiple data within a register
US9619229B2 (en) 2012-12-27 2017-04-11 Intel Corporation Collapsing of multiple nested loops, methods and instructions
US9804839B2 (en) * 2012-12-28 2017-10-31 Intel Corporation Instruction for determining histograms
US20140281418A1 (en) * 2013-03-14 2014-09-18 Shihjong J. Kuo Multiple Data Element-To-Multiple Data Element Comparison Processors, Methods, Systems, and Instructions
US9990202B2 (en) * 2013-06-28 2018-06-05 Intel Corporation Packed data element predication processors, methods, systems, and instructions
US9645820B2 (en) 2013-06-27 2017-05-09 Intel Corporation Apparatus and method to reserve and permute bits in a mask register
US9367309B2 (en) 2013-09-24 2016-06-14 Apple Inc. Predicate attribute tracker
US9390058B2 (en) * 2013-09-24 2016-07-12 Apple Inc. Dynamic attribute inference
GB2523823B (en) * 2014-03-07 2021-06-16 Advanced Risc Mach Ltd Data processing apparatus and method for processing vector operands
US10296489B2 (en) 2014-12-27 2019-05-21 Intel Corporation Method and apparatus for performing a vector bit shuffle
JP6616608B2 (ja) * 2015-07-16 2019-12-04 ルネサスエレクトロニクス株式会社 半導体装置
US10691463B2 (en) * 2015-07-30 2020-06-23 Futurewei Technologies, Inc. System and method for variable lane architecture
US10956439B2 (en) * 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
GB2548600B (en) 2016-03-23 2018-05-09 Advanced Risc Mach Ltd Vector predication instruction
US10572263B2 (en) 2016-03-31 2020-02-25 International Business Machines Corporation Executing a composite VLIW instruction having a scalar atom that indicates an iteration of execution
CN107315563B (zh) * 2016-04-26 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行向量比较运算的装置和方法
US10761979B2 (en) * 2016-07-01 2020-09-01 Intel Corporation Bit check processors, methods, systems, and instructions to check a bit with an indicated check bit value
WO2018022525A1 (en) * 2016-07-27 2018-02-01 Intel Corporation System and method for multiplexing vector mask matches
WO2018022528A1 (en) * 2016-07-27 2018-02-01 Intel Corporation System and method for multiplexing vector compare
US10162603B2 (en) * 2016-09-10 2018-12-25 Sap Se Loading data for iterative evaluation through SIMD registers
CN110050259B (zh) 2016-12-02 2023-08-11 三星电子株式会社 矢量处理器及其控制方法
US10705847B2 (en) 2017-08-01 2020-07-07 International Business Machines Corporation Wide vector execution in single thread mode for an out-of-order processor
US11409525B2 (en) * 2018-01-24 2022-08-09 Intel Corporation Apparatus and method for vector multiply and accumulate of packed words
US10871549B2 (en) * 2018-05-18 2020-12-22 Qualcomm Incorporated Proximity detection using adaptive mutual coupling cancellation
CN109032666B (zh) * 2018-07-03 2021-03-23 中国人民解放军国防科技大学 一种用于向量处理的确定断言活跃元素个数的方法和装置
US10908880B2 (en) * 2018-10-19 2021-02-02 Knowles Electronics, Llc Audio signal circuit with in-place bit-reversal
US11327862B2 (en) 2019-05-20 2022-05-10 Micron Technology, Inc. Multi-lane solutions for addressing vector elements using vector index registers
US11507374B2 (en) * 2019-05-20 2022-11-22 Micron Technology, Inc. True/false vector index registers and methods of populating thereof
US11340904B2 (en) 2019-05-20 2022-05-24 Micron Technology, Inc. Vector index registers
US11403256B2 (en) 2019-05-20 2022-08-02 Micron Technology, Inc. Conditional operations in a vector processor having true and false vector index registers
CN112256330B (zh) * 2020-11-03 2021-11-09 中国人民解放军军事科学院国防科技创新研究院 用于加速数字信号处理的risc-v指令集扩展方法
CN113590193B (zh) * 2021-07-12 2024-03-22 苏州仰思坪半导体有限公司 一种运算装置、方法、介质及计算设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US5086498A (en) * 1987-01-23 1992-02-04 Hitachi, Ltd. Parallel computer with asynchronous communication facility
JPS63198130A (ja) * 1987-02-13 1988-08-16 Nec Corp ル−プ最適命令列選択方式
JP2793342B2 (ja) * 1990-08-09 1998-09-03 株式会社東芝 演算処理装置
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
DE69519449T2 (de) 1994-05-05 2001-06-21 Conexant Systems Inc Raumzeigersdatenpfad
US5802375A (en) * 1994-11-23 1998-09-01 Cray Research, Inc. Outer loop vectorization
JPH09198374A (ja) 1996-01-23 1997-07-31 Hitachi Ltd ベクトル処理装置
US6035390A (en) * 1998-01-12 2000-03-07 International Business Machines Corporation Method and apparatus for generating and logically combining less than (LT), greater than (GT), and equal to (EQ) condition code bits concurrently with the execution of an arithmetic or logical operation
US6366998B1 (en) * 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
US6249861B1 (en) * 1998-12-03 2001-06-19 Sun Microsystems, Inc. Instruction fetch unit aligner for a non-power of two size VLIW instruction
US6237085B1 (en) * 1998-12-08 2001-05-22 International Business Machines Corporation Processor and method for generating less than (LT), Greater than (GT), and equal to (EQ) condition code bits concurrent with a logical or complex operation
JP3830683B2 (ja) * 1998-12-28 2006-10-04 富士通株式会社 Vliwプロセッサ
US6871298B1 (en) * 1999-11-12 2005-03-22 Obsidian Software, Inc. Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing
US6839828B2 (en) * 2001-08-14 2005-01-04 International Business Machines Corporation SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode
JP3656587B2 (ja) * 2001-10-01 2005-06-08 日本電気株式会社 並列演算プロセッサ、その演算制御方法及びプログラム
US7089402B2 (en) * 2001-12-12 2006-08-08 Canon Kabushiki Kaisha Instruction execution control for very long instruction words computing architecture based on the free state of the computing function units
KR100464406B1 (ko) * 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US20030167460A1 (en) * 2002-02-26 2003-09-04 Desai Vipul Anil Processor instruction set simulation power estimation method
US7263109B2 (en) * 2002-03-11 2007-08-28 Conexant, Inc. Clock skew compensation for a jitter buffer
EP1512100A2 (en) * 2002-05-24 2005-03-09 Koninklijke Philips Electronics N.V. A scalar/vector processor
US6963341B1 (en) * 2002-06-03 2005-11-08 Tibet MIMAR Fast and flexible scan conversion and matrix transpose in a SIMD processor
JP3958662B2 (ja) * 2002-09-25 2007-08-15 松下電器産業株式会社 プロセッサ
US7196708B2 (en) * 2004-03-31 2007-03-27 Sony Corporation Parallel vector processing
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US20060095732A1 (en) * 2004-08-30 2006-05-04 Tran Thang M Processes, circuits, devices, and systems for scoreboard and other processor improvements
US7676647B2 (en) * 2006-08-18 2010-03-09 Qualcomm Incorporated System and method of processing data using scalar/vector instructions

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115115A (zh) * 2011-12-19 2014-10-22 英特尔公司 用于多精度算术的simd整数乘法累加指令
CN104115115B (zh) * 2011-12-19 2017-06-13 英特尔公司 用于多精度算术的simd整数乘法累加指令
CN108241504A (zh) * 2011-12-23 2018-07-03 英特尔公司 经改进的提取指令的装置和方法
CN105980980A (zh) * 2013-11-29 2016-09-28 三星电子株式会社 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质
CN105980980B (zh) * 2013-11-29 2020-06-09 三星电子株式会社 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质
US10956159B2 (en) 2013-11-29 2021-03-23 Samsung Electronics Co., Ltd. Method and processor for implementing an instruction including encoding a stopbit in the instruction to indicate whether the instruction is executable in parallel with a current instruction, and recording medium therefor
CN109189473A (zh) * 2018-02-05 2019-01-11 上海寒武纪信息科技有限公司 神经网络处理装置及其执行向量交换指令的方法
US11836497B2 (en) 2018-02-05 2023-12-05 Shanghai Cambricon Information Technology Co., Ltd Operation module and method thereof
CN115951936A (zh) * 2023-01-17 2023-04-11 上海燧原科技有限公司 向量化编译程序的芯片适配方法、装置、设备及介质

Also Published As

Publication number Publication date
US7676647B2 (en) 2010-03-09
CN103207773A (zh) 2013-07-17
CN101501634B (zh) 2013-05-29
JP6073385B2 (ja) 2017-02-01
US8190854B2 (en) 2012-05-29
EP2062134B1 (en) 2016-02-10
US20080046683A1 (en) 2008-02-21
JP2015111428A (ja) 2015-06-18
US20100118852A1 (en) 2010-05-13
EP2273359B1 (en) 2015-11-11
JP5680697B2 (ja) 2015-03-04
EP2273359A1 (en) 2011-01-12
JP2013175218A (ja) 2013-09-05
KR20090042320A (ko) 2009-04-29
CN103207773B (zh) 2015-11-18
KR101072707B1 (ko) 2011-10-11
JP2010501937A (ja) 2010-01-21
WO2008022217A1 (en) 2008-02-21
EP2062134A1 (en) 2009-05-27

Similar Documents

Publication Publication Date Title
CN101501634B (zh) 使用标量/向量指令处理数据的系统和方法
EP1896919B1 (en) System and method of counting leading zeros and counting leading ones in a digital signal processor
CN101203830A (zh) 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆
CN101346694B (zh) 用于处理器中的算术逻辑和移位装置
MX2007012584A (es) Archivos de registro no divididos unificados para un procesador de senales digital que opera en un ambiente intercalado de multi-ejecucion.
US8379032B2 (en) System and method of mapping shader variables into physical registers
CN101258465B (zh) 控制多线程处理器内的多个程序线程的系统和方法
JP2011023013A (ja) デジタルシグナルプロセッサにおいて、2の補数演算を実行するシステム及び方法

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