CN101438236A - 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 - Google Patents

用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 Download PDF

Info

Publication number
CN101438236A
CN101438236A CNA2007800165248A CN200780016524A CN101438236A CN 101438236 A CN101438236 A CN 101438236A CN A2007800165248 A CNA2007800165248 A CN A2007800165248A CN 200780016524 A CN200780016524 A CN 200780016524A CN 101438236 A CN101438236 A CN 101438236A
Authority
CN
China
Prior art keywords
unit
register
units
word
instruction
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
CNA2007800165248A
Other languages
English (en)
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 CN201410348018.0A priority Critical patent/CN104133748B/zh
Publication of CN101438236A publication Critical patent/CN101438236A/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/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
    • 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/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

本发明描述一种用以在执行单个指令期间在微处理器,例如数字信号处理器内组合来自多个寄存器单元的对应半字单元的方法及系统。在处理单元内接收用以组合来自寄存器堆结构的预定的全异源寄存器单元的指令。接着执行所述指令以组合来自所述源寄存器单元的对应半字单元且将所述半字单元输入到所得目的地寄存器单元的相应部分中。在执行所述指令期间,识别所述预定的源寄存器单元且从所述经识别的寄存器单元中检索对应的最高有效半字单元及相关联的数据。进一步组合所述检索的半字单元并将其输入到所得目的地寄存器单元的相应最高有效部分中。类似地,从所述经识别的寄存器单元中检索对应的最低有效半字单元及相关联的数据。进一步组合所述检索的半字单元并将其输入到所得目的地寄存器单元的相应最低有效部分中。最终,将所述所得目的地寄存器单元存储到寄存器堆结构中以供进一步处理。

Description

用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统
技术领域
本发明通常涉及微处理器,且更具体来说,涉及一种在执行单个指令期间在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统。
背景技术
通常,计算机系统包括一个或一个以上微处理器装置,每一微处理器装置经配置以对存储于计算机系统的存储器内的值执行运算且管理计算机系统的整体操作。这些计算机系统还可包括各种多媒体装置,例如,声卡及/或视频卡,每一多媒体装置进一步包括一个或一个以上处理器,例如,在每一相应多媒体装置内执行复杂数学计算的数字信号处理器(DSP)。
数字信号处理器(DSP)通常包括:硬件执行单元,具体来说其经配置以执行所述数学计算,例如,一个或一个以上算术逻辑单元(ALU)、一个或一个以上乘法及累加单元(MAC);及其它功能单元,其经配置以在所述DSP内执行由指令集规定的运算。所述运算可包括(例如)算术运算、逻辑运算及其它数据处理运算,其每一者由相关联的指令集界定。
通常,所述DSP内的执行单元从耦合到存储器及执行单元的寄存器堆读取数据及操作数、执行指令运算且将结果存储到寄存器堆中。寄存器堆包括多个寄存器单元,每一寄存器单元可作为单个寄存器或作为排列成对的两个相邻寄存器单元来存取。然而,某些特定运算(例如,数据的加法运算或减法运算)需要对来自寄存器堆内的全异寄存器单元的数据进行适当排列以用于执行指令。因此,需要一种在执行单个指令期间在DSP内组合来自多个不相邻或全异寄存器单元的对应半字单元以便能够对存储于所述寄存器单元内的数据进行适当排列的方法及系统。
发明内容
描述一种在执行单个指令期间在微处理器(例如,数字信号处理器)内组合来自多个寄存器单元的对应半字单元的方法及系统。在一个实施例中,在处理单元内接收组合来自寄存器堆结构的预定的全异源寄存器单元的指令。接着执行所述指令以组合来自所述源寄存器单元的对应半字单元并将所述半字单元输入到所得目的地寄存器单元的相应部分中。
在一个实施例中,识别所述预定的源寄存器单元并从所述经识别寄存器单元中检索对应的最高有效半字单元及相关联的数据。进一步组合所述检索的半字单元并将其输入到所得目的地寄存器单元的相应最高有效部分中。类似地,从所述经识别寄存器单元中检索对应的最低有效半字单元及相关联的数据。进一步组合所述检索的半字单元并将其输入到所得目的地寄存器单元的相应最低有效部分中。最终,将所述所得目的地寄存器单元存储到寄存器堆结构中以供进一步处理。
附图说明
图1是其内可执行指令集的数字信号处理系统的框图;
图2是图解说明数字信号处理系统内的一般寄存器结构的一个实施例的框图;
图3是图解说明超长指令字(VLIW)数字信号处理系统架构的一个实施例的框图;
图4是流程图,其图解说明在数字信号处理系统内组合来自多个寄存器单元的对应半字单元的方法的一个实施例;
图5是图解说明结合图4所述的组合来自多个寄存器单元的对应半字单元的方法的框图;
图6是在数字信号处理系统内组合来自多个寄存器单元的对应半字单元的指令的一个实施例的框图。
具体实施方式
描述一种在执行单个指令期间在微处理器(例如,数字信号处理器)内组合来自多个寄存器单元的对应半字单元的方法及系统。尽管以下所述系统使数字信号处理器能够组合来自寄存器单元的对应半字单元,但应了解所述系统可使用微处理器装置或能够在执行单个指令期间将来自多个寄存器单元的所述对应半字单元组合到所得寄存器单元中的任何其它处理单元来实施。
在一个实施例中,在处理单元内接收组合来自寄存器堆结构的预定的全异源寄存器单元的指令。接着执行所述指令以组合来自所述源寄存器单元的对应半字单元并将所述半字单元输入到所得目的地寄存器单元的相应部分中。
在执行所述指令期间,识别所述预定的源寄存器单元并从所述经识别寄存器单元中检索对应的最高有效半字单元及相关联的数据。进一步组合所述检索的半字单元并将其输入到所得目的地寄存器单元的相应最高有效部分中。类似地,从所述经识别寄存器单元中检索对应的最低有效半字单元及相关联的数据。进一步组合所述检索的半字单元并将其输入到所得目的地寄存器单元的相应最低有效部分中。最终,将所述所得目的地寄存器单元存储到所述寄存器堆结构中以供进一步处理。
图1是其内可执行指令集的数字信号处理系统的框图。如图1中所图解说明,数字信号处理系统100包括处理单元110、存储器150及将处理单元110耦合到存储器150的一个或一个以上总线160。
存储器150存储例如由VLIW编译器产生的呈VLIW包形式的数据及指令,每一VLIW包包含一个或一个以上指令。包的每一指令通常呈预定宽度且在存储器150中具有特定地址,以使得包中的第一指令通常具有比所述包的最后一个指令低的存储器地址。存储器的寻址方案在此项技术中众所周知且此处不在加以详细论述。经由总线160将存储器150中的指令加载到处理单元110。
处理单元110进一步包含中央处理单元核心130,其经由一个或一个以上管线140耦合到一个或一个以上寄存器堆结构120。处理单元110可进一步包含一个或一个以上微处理器、数字信号处理器等等。
寄存器堆120进一步包含:一组一般寄存器单元,其支持一般目的计算且下文将结合图2更详细地加以论述;及一组控制寄存器单元,其支持特定目的功能度,例如,硬件循环、谓词及其它特定操作数。
图2是图解说明数字信号处理系统内的一般寄存器结构的一个实施例的框图。如图2中所图解说明,在一个实施例中,寄存器堆120内的一般寄存器堆结构200包括多个寄存器单元,例如,三十二个32-位宽寄存器单元210,每一寄存器单元可作为单个寄存器或作为排列成对220的两个相邻寄存器单元210来存取。
可基于适当指令以多个名字来指称一般寄存器单元210。例如,可将寄存器单元210个别地称为R0、R1、...、R30及R31。另外,寄存器单元R0与R1可形成称为R1:0的64-位寄存器对220。类似地,寄存器单元R2与R3可形成称为R3:2的64-位寄存器对220,寄存器单元R28与R29可形成称为R29:28的64-位寄存器对220且寄存器单元R30与R31可形成称为R31:30的64-位寄存器对220。
在一个实施例中,一般寄存器单元210用于一般计算目的(例如,地址产生、标量算术及向量算术)且提供用于指令的所有操作数,包括用于加载/存储指令的地址、用于数字指令的数据操作数及用于向量指令的向量操作数。每一寄存器单元210进一步包括:最高有效半字单元,其含有位于寄存器单元210的高部分中的数据;及最低有效半字单元,其含有位于寄存器单元210的低部分中的数据。假设例如是32-位宽寄存器单元210,那么寄存器单元210的最高有效半字单元及最低有效半字单元为两个16-位宽单元。
图3是图解说明超长指令字(VLIW)数字信号处理系统架构的一个实施例的框图。VLIW系统架构300包括存储器310,其经由指令加载总线320、数据加载总线322及数据加载/存储总线324耦合到数字信号处理器(DSP)330。
在一个实施例中,存储器310存储例如呈具有一个到四个指令的VLIW包形式的数据及指令。经由指令加载总线320将存储于存储器310内的指令加载到DSP 330。在一个实施例中,经由具有四字宽度的128-位指令加载总线320将具有32-位字宽度的每一指令加载到DSP 330。在一个实施例中,存储器310是统一字节可寻址存储器,其具有存储指令及数据两者的32-位地址空间且以前轻后重模式操作。
在一个实施例中,DSP 330包含定序器335、用于四个处理或执行单元345的四个管线340、一般寄存器堆结构350(其包含多个一般寄存器单元,例如,结合图2详细描述的一般寄存器堆结构200)及控制寄存器堆结构360。定序器335从存储器310接收指令包且使用所述指令内包含的信息针对每一所接收包的每一指令确定适当的管线340及相应的执行单元345。在针对包的每一指令进行此确定之后,定序器335将指令输入到适当管线340以供由适当执行单元345处理。
在一个实施例中,执行单元345进一步包含向量移位单元、向量MAC单元、加载单元及加载/存储单元。向量移位单元345执行例如S-类型、A64-类型、A32-类型、J-类型及CR-类型的指令。向量MAC单元345执行例如M-类型、A64-类型、A32-类型、J-类型及JR-类型的指令。加载单元345将数据从存储器310加载到一般寄存器堆结构350并执行例如加载-类型及A32-类型的指令。加载/存储单元345将数据从一般寄存器堆结构350加载及存储回到存储器310并执行例如加载-类型、存储-类型及A32-类型的指令。
接收指令的每一执行单元345使用由四个执行单元345共享的一般寄存器堆结构350来执行指令。经由64-位数据加载总线322将指令所需的数据加载到一般寄存器堆结构350。在执行单元345执行包的指令之后,经由64-位数据加载/存储总线324将所得数据存储到一般寄存器堆结构350且接着加载及存储到存储器310。在一个实施例中,对于RISC-型机器,例如,一个指令可从存储器加载数据、执行运算且接着将结果存储到存储器中。另一选择是,对于DSP单元,以上操作通常是分开的。通常,四个执行单元345在一个时钟循环中并行地执行包的一个到四个指令,其中在每一时钟循环内管线340接收及处理最多一个指令。
在一个实施例中,执行单元345还可使用控制寄存器堆结构360来执行对应的指令。控制寄存器堆结构360包含一组特定寄存器单元,例如,修饰词、状态及谓词寄存器单元。
图4是流程图,其图解说明在数字信号处理系统100内组合来自多个寄存器单元的对应半字单元的方法的一个实施例。如图4的实施例中所图解说明,在处理区块410处,接收在数字信号处理系统300内组合寄存器单元的指令。在一个实施例中,处理单元(例如,DSP 330内的执行单元345)接收指令并如下所述执行指令以组合来自存储于一般寄存器堆结构350内的预定源寄存器单元的对应半字单元。在一个实施例中,所述预定源寄存器单元是全异的,其不相邻地位于一般寄存器堆结构350内且因此,不可作为排列成对220的寄存器单元来存取。
在处理区块420处,识别预定的源寄存器单元,例如,第一32-位宽源寄存器单元及第二32-位宽寄存器单元。在一个实施例中,执行单元345与一般寄存器堆结构350通信且识别请求组合的源寄存器单元。在一个实施例中,存储器310接着经由64-位数据加载总线322及/或64-位数据加载/存储总线324将指令所需的数据加载到一般寄存器堆结构350。或者,数据可能已存储到经识别第一及第二源寄存器单元内。
在处理区块430处,检索经识别的源寄存器单元及相关联的数据。在一个实施例中,执行单元345从一般寄存器堆结构350中检索经识别的源寄存器单元及相关联的数据。
在处理区块440处,从经识别的源寄存器单元中检索对应的最高有效半字单元。在一个实施例中,执行单元345进一步执行以下操作:从第一源寄存器单元中检索半字单元,例如,16-位宽单元,在一个实施例中,所述半字单元是第一源寄存器单元的最高有效或高半字单元;及从第二源寄存器单元中检索半字单元,例如,16-位宽单元,在一个实施例中,所述半字单元是第二源寄存器单元的最高有效或高半字单元。
在处理区块450处,组合最高有效半字单元且进一步将其输入到所得目的地寄存器单元的最高有效或高部分中。在一个实施例中,执行单元345组合所检索的最高有效半字单元并将经组合的半字单元输入到所得目的地寄存器单元的最高有效或高部分中。
在处理区块460处,从经识别的源寄存器单元中检索对应的最低有效半字单元。在一个实施例中,执行单元345进一步执行以下操作:从第一源寄存器单元中检索半字单元,例如,16-位宽单元,在一个实施例中,所述半字单元可以是第一源寄存器单元的最低有效或低半字单元;及从第二源寄存器单元中检索半字单元,例如,16-位宽单元,在一个实施例中,所述半字单元可以是第二源寄存器单元的最低有效或低半字单元。
在处理区块470处,组合最低有效半字单元且进一步将其输入到所得目的地寄存器单元的最低有效或低部分中。在一个实施例中,执行单元345组合所检索的最低有效半字单元并将经组合的半字单元输入到所得目的地寄存器单元的最低有效或低部分中。
最终,在处理区块480处,存储所得目的地寄存器单元以供进一步处理。在一个实施例中,执行单元345将所得目的地寄存器单元输出到通用寄存器堆结构350并存储所得目的地寄存器单元以供进一步处理额外指令。
图5是图解说明结合图4所述的组合寄存器单元的方法的框图。如图5中所图解说明,从一般寄存器堆结构200中识别并检索源寄存器单元Rs 510及RT 520。
在一个实施例中,将源寄存器单元Rs 510及RT 520组合到所得目的地寄存器单元RD 530的指令是:
RD=packHL(Rs,RT)
其中RS及RT是具有相应最高有效或高半字单元H及最低有效或低半字单元L的源寄存器单元。
如图5中所示,在执行指令之后,组合源寄存器单元Rs 510的最高有效或高半字单元与源寄存器单元RT 520的最高有效或高半字单元RT1且进一步将其输入到目的地寄存器单元RD 530的高部分中。组合源寄存器单元Rs 510的最低有效或低半字单元Rs2与源寄存器单元RT 520的最低有效或低半字单元RT2且进一步将其输入到目的地寄存器单元RD 530的低部分中。例如,如果RS 510及RT 520是两个32-位宽寄存器单元,那么在一个实施例中,所得目的地寄存器单元RD 530是64-位宽寄存器。
图6是在数字信号处理系统内组合来自多个寄存器单元的对应半字单元的指令的一个实施例的框图。如图6中所图解说明,在一个实施例中,结合图5所述的指令包括多个字段,例如,字段610,其含有编码目的地寄存器单元RD所需的信息;空字段620,其保留用于未来编码;字段630,其含有编码源寄存器单元RT所需的信息;另一空字段640,其保留用于未来编码;字段650,其含有包/循环剖析位信息;字段660,其含有编码寄存器单元RS所需的信息;字段670,其含有操作码信息;字段680,其含有与源及目的地寄存器单元的寄存器类型相关的信息;及字段690,其含有指令分类信息。然而,另一选择是,在编码以上指令中还可包括其它额外字段,此并不违背本发明的范围。
所属领域的技术人员将了解,可使用各种不同技术及技法中的任一种技术及技法来表示信息及信号。例如,在以上整个说明中可能提及的数据、指令、命令、信息、信号、位、符号、及芯片可由电压、电流、电磁波、磁场或磁粒子、光场或光学粒子或其任一组合来表示。
所属领域的技术人员将进一步了解,结合本文所揭示实施例描述的各种说明性逻辑区块、模块、电路、及算法步骤可实施为电子硬件、计算机软件、或两者的组合。为清楚地图解说明硬件及软件的此种可互换性,上文就其功能度总体描述了各种说明性组件、区块、模块、电路及步骤。某一功能度实施为硬件还是软件取决于施加于整体系统上的特定应用及设计约束条件。所属领域的技术人员可针对每一特定应用以不同方法实施所述功能度,但是不应将所述实施方案决定解释为违背本发明的范围。
结合本文所揭示实施例描述的各种说明性逻辑区块、模块及电路均可由以下装置实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件、或其经设计用于执行本文所述功能的任何组合。通用处理器可以是微处理器,但另一选择为,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器与DSP核心的联合,或任一其它此类配置。
结合本文所揭示实施例描述的方法或算法的步骤可直接体现于硬件中、体现于由处理器执行的软件中、或体现于两者的组合中。应了解这些实施例可用作软件程序或用来支持软件程序,所述软件程序可在某种形式的处理器或处理核心(例如,计算机的CPU)上执行,或另外实施或实现于机器或计算机可读媒体上或其内。机器可读媒体包括用于存储或传输呈可由机器(例如,计算机)读取形式的信息的任何机构。例如,机器可读媒体包括RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬磁盘、可拆卸磁盘、CD-ROM、或此项技术中已知的任一其它形式的存储媒体。实例性存储媒体耦合到处理器,以使得处理器可从存储媒体读取信息及向存储媒体写入信息。另一选择为,存储媒体可与处理器成一体。处理器及存储媒体可驻存于ASIC中。ASIC可驻存于用户终端中。另一选择为,处理器及存储媒体可作为离散组件驻存于用户终端中。
提供上文对所揭示实施例的说明旨在使随所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将易知这些实施例的各种修改,且本文所定义的一般原理还可应用于其它实施例,此并未背离本发明的精神或范围。因此,本文并不打算将本发明限定为本文所示的实施例,而是打算赋予其与本文所揭示原理及新颖特征相一致的最宽广范围。

Claims (35)

1、一种计算机可读媒体,其包含:
包含在所述媒体内的多个可执行指令中的一指令,当在处理系统中执行时,所述指令致使所述处理系统组合来自寄存器堆结构内的至少两个源寄存器单元的对应半字单元且将所述对应半字单元输入到所得目的地寄存器单元的相应部分中。
2、如权利要求1所述的计算机可读媒体,其中每一源寄存器单元是32-位宽寄存器单元且所述所得目的地寄存器单元是64-位宽寄存器单元。
3、如权利要求2所述的计算机可读媒体,其中每一半字单元是16-位宽单元。
4、如权利要求1所述的计算机可读媒体,其中执行所述指令进一步致使所述处理系统将与来自所述至少两个全异源寄存器单元的所述对应半字单元相关联的数据组合到所述所得目的地寄存器单元的所述相应部分中。
5、如权利要求1所述的计算机可读媒体,其中执行所述指令进一步致使所述处理系统从存储器中检索与所述至少两个源寄存器单元相关联的数据、将所述数据存储在所述相应源寄存器单元内、从所述相应源寄存器单元中检索与所述对应半字单元相关联的数据及将与所述对应半字单元相关联的所述数据组合到所述所得目的地寄存器单元的所述相应部分中。
6、如权利要求1所述的计算机可读媒体,其中所述处理系统是数字信号处理器。
7、如权利要求1所述的计算机可读媒体,其中所述至少两个源寄存器单元是全异的。
8、如权利要求1所述的计算机可读媒体,其中执行所述指令进一步致使所述处理系统从所述至少两个源寄存器单元的每一者中检索最高有效半字单元并将所述最高有效半字单元输入到所述目的地寄存器单元的最高有效部分中。
9、如权利要求8所述的计算机可读媒体,其中执行所述指令进一步致使所述处理系统从所述至少两个源寄存器单元的每一者中检索最低有效半字单元并将所述最低有效半字单元输入到所述目的地寄存器单元的最低有效部分中。
10、一种方法,其包含:
接收可执行指令;及
执行所述指令以组合来自寄存器堆结构内的至少两个全异源寄存器单元的对应半字单元,且将所述对应半字单元输入到所得目的地寄存器单元的相应部分中。
11、如权利要求10所述的方法,其中每一源寄存器单元是32-位宽寄存器单元且所述所得目的地寄存器单元是64-位宽寄存器单元。
12、如权利要求11所述的方法,其中每一半字单元是16-位宽单元。
13、如权利要求10所述的方法,其中所述执行进一步包含将与来自所述至少两个全异源寄存器单元的所述对应半字单元相关联的数据组合到所述所得目的地寄存器单元的所述相应部分中。
14、如权利要求10所述的方法,其中所述执行进一步包含:
从存储器中检索与所述至少两个源寄存器单元相关联的数据;
将所述数据存储于所述相应源寄存器单元内;
从所述相应源寄存器单元中检索与所述对应半字单元相关联的数据;及
将与所述对应半字单元相关联的所述数据组合到所述所得目的地寄存器单元的所述相应部分中。
15、如权利要求10所述的方法,其中所述处理系统是数字信号处理器。
16、如权利要求10所述的方法,其中所述至少两个源寄存器单元是全异的。
17、如权利要求10所述的方法,其中所述执行进一步包含:
从所述至少两个源寄存器单元的每一者中检索最高有效半字单元;及
将所述最高有效半字单元输入到所述目的地寄存器单元的最高有效部分中。
18、如权利要求17所述的方法,其中所述执行进一步包含:
从所述至少两个源寄存器单元的每一者中检索最低有效半字单元;及
将所述最低有效半字单元输入到所述目的地寄存器单元的最低有效部分中。
19、一种设备,其包含:
存储器,其用以存储包含至少一个指令的包;及
处理器,其耦合到所述存储器,所述处理器进一步包含处理单元及耦合到所述处理单元的寄存器堆结构;
所述处理单元用以执行所述包内的指令,其组合来自所述寄存器堆结构内的至少两个源寄存器单元的对应半字单元且将所述对应半字单元输入到所得目的地寄存器单元的相应部分中。
20、如权利要求19所述的设备,其中每一源寄存器单元是32-位宽寄存器单元且所述所得目的地寄存器单元是64-位宽寄存器单元。
21、如权利要求20所述的设备,其中每一半字单元是16-位宽单元。
22、如权利要求19所述的设备,其中所述处理单元进一步将与来自所述至少两个全异源寄存器单元的所述对应半字单元相关联的数据组合到所述所得目的地寄存器单元的所述相应部分中。
23、如权利要求19所述的设备,其中所述处理单元进一步从所述存储器中检索与所述至少两个源寄存器单元相关联的数据、将所述数据存储于所述相应源寄存器单元内、从所述相应源寄存器单元中检索与所述对应半字单元相关联的数据及将与所述对应半字单元相关联的所述数据组合到所述所得目的地寄存器单元的所述相应部分中。
24、如权利要求19所述的设备,其中所述处理器是数字信号处理器。
25、如权利要求19所述的设备,其中所述至少两个源寄存器单元是全异的。
26、如权利要求19所述的设备,其中所述处理单元进一步从所述至少两个源寄存器单元的每一者中检索最高有效半字单元且将所述最高有效半字单元输入到所述目的地寄存器单元的最高有效部分中。
27、如权利要求26所述的设备,其中所述处理单元进一步从所述至少两个源寄存器单元的每一者中检索最低有效半字单元且将所述最低有效半字单元输入到所述目的地寄存器单元的最低有效部分中。
28、一种设备,其包含:
接收装置,其用于接收可执行指令;及
执行装置,其用于执行所述指令以组合来自寄存器堆结构内的至少两个全异源寄存器单元的对应半字单元且将所述对应半字单元输入到所得目的地寄存器单元的相应部分中。
29、如权利要求28所述的设备,其中每一源寄存器单元是32-位宽寄存器单元且所述所得目的地寄存器单元是64-位宽寄存器单元。
30、如权利要求29所述的设备,其中每一半字单元是16-位宽单元。
31、如权利要求28所述的设备,其进一步包含组合装置,所述组合装置用于将与来自所述至少两个全异源寄存器单元的所述对应半字单元相关联的数据组合到所述所得目的地寄存器单元的所述相应部分中。
32、如权利要求28所述的设备,其进一步包含:
检索装置,其用于从存储器中检索与所述至少两个源寄存器单元相关联的数据;
存储装置,其用于将所述数据存储于所述相应源寄存器单元内;
检索装置,其用于从所述相应源寄存器单元中检索与所述对应半字单元相关联的数据;及
组合装置,其用于将与所述对应半字单元相关联的所述数据组合到所述所得目的地寄存器单元的所述相应部分中。
33、如权利要求28所述的设备,其中所述至少两个源寄存器单元是全异的。
34、如权利要求28所述的设备,其进一步包含:
检索装置,其用于从所述至少两个源寄存器单元的每一者中检索最高有效半字单元;及
输入装置,其用于将所述最高有效半字单元输入到所述目的地寄存器单元的最高有效部分中。
35、如权利要求34所述的设备,其进一步包含:
检索装置,其用于从所述至少两个源寄存器单元的每一者中检索最低有效半字单元;及
输入装置,其用于将所述最低有效半字单元输入到所述目的地寄存器单元的最低有效部分中。
CNA2007800165248A 2006-05-10 2007-05-07 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 Pending CN101438236A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410348018.0A CN104133748B (zh) 2006-05-10 2007-05-07 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/431,300 US8127117B2 (en) 2006-05-10 2006-05-10 Method and system to combine corresponding half word units from multiple register units within a microprocessor
US11/431,300 2006-05-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201410348018.0A Division CN104133748B (zh) 2006-05-10 2007-05-07 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统

Publications (1)

Publication Number Publication Date
CN101438236A true CN101438236A (zh) 2009-05-20

Family

ID=38561190

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2007800165248A Pending CN101438236A (zh) 2006-05-10 2007-05-07 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统
CN201410348018.0A Active CN104133748B (zh) 2006-05-10 2007-05-07 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201410348018.0A Active CN104133748B (zh) 2006-05-10 2007-05-07 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统

Country Status (6)

Country Link
US (1) US8127117B2 (zh)
EP (1) EP2027533A2 (zh)
JP (4) JP2009536774A (zh)
KR (1) KR100988964B1 (zh)
CN (2) CN101438236A (zh)
WO (1) WO2007134013A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273095A (zh) * 2011-04-01 2017-10-20 英特尔公司 用于对齐寄存器的系统、装置和方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127117B2 (en) * 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
JP2011242995A (ja) * 2010-05-18 2011-12-01 Toshiba Corp 半導体装置
KR101783312B1 (ko) 2011-11-15 2017-10-10 삼성전자주식회사 클러스터 간의 통신으로 인한 오버헤드를 최소화하는 장치 및 방법
JP5701930B2 (ja) * 2013-04-22 2015-04-15 株式会社東芝 半導体装置
US11593117B2 (en) 2018-06-29 2023-02-28 Qualcomm Incorporated Combining load or store instructions
KR20200069544A (ko) 2018-12-07 2020-06-17 대우조선해양 주식회사 파이프 시편 절단용 지그기구
KR102663496B1 (ko) * 2022-08-02 2024-05-08 이화여자대학교 산학협력단 프로세서의 레지스터 캐시 인덱스 결정 방법 및 이를 수행하는 전자 장치

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7317545A (nl) * 1973-12-21 1975-06-24 Philips Nv Geheugensysteem met hoofd- en buffergeheugen.
JPH0415832A (ja) * 1990-05-09 1992-01-21 Nec Corp 障害処理方式
US5564056A (en) * 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
DE69524862T2 (de) 1995-05-16 2002-11-07 Oce Tech Bv Druckersystem, das ein Kommunikationssteuerungsgerät beinhaltet
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509988D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
EP0847551B1 (en) * 1995-08-31 2012-12-05 Intel Corporation A set of instructions for operating on packed data
EP0789870B1 (en) * 1995-09-01 2003-01-15 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6052522A (en) 1997-10-30 2000-04-18 Infineon Technologies North America Corporation Method and apparatus for extracting data stored in concatenated registers
EP1194835A2 (en) * 1999-05-13 2002-04-10 ARC International U.S. Holdings Inc. Method and apparatus for loose register encoding within a pipelined processor
US6463525B1 (en) * 1999-08-16 2002-10-08 Sun Microsystems, Inc. Merging single precision floating point operands
US6631460B1 (en) * 2000-04-27 2003-10-07 Institute For The Development Of Emerging Architectures, L.L.C. Advanced load address table entry invalidation based on register address wraparound
US7092526B2 (en) * 2000-05-05 2006-08-15 Teleputers, Llc Method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
US7228403B2 (en) 2000-12-23 2007-06-05 International Business Machines Corporation Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JP3776732B2 (ja) 2001-02-02 2006-05-17 株式会社東芝 プロセッサ装置
US7103756B2 (en) * 2002-09-30 2006-09-05 Hewlett-Packard Development Company, L.P. Data processor with individually writable register subword locations
US7689641B2 (en) * 2003-06-30 2010-03-30 Intel Corporation SIMD integer multiply high with round and shift
GB2409064B (en) 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
US7376813B2 (en) * 2004-03-04 2008-05-20 Texas Instruments Incorporated Register move instruction for section select of source operand
US7237096B1 (en) * 2004-04-05 2007-06-26 Sun Microsystems, Inc. Storing results of producer instructions to facilitate consumer instruction dependency tracking
US8621444B2 (en) * 2004-06-01 2013-12-31 The Regents Of The University Of California Retargetable instruction set simulators
US8127117B2 (en) * 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273095A (zh) * 2011-04-01 2017-10-20 英特尔公司 用于对齐寄存器的系统、装置和方法
CN107273095B (zh) * 2011-04-01 2020-12-29 英特尔公司 用于对齐寄存器的系统、装置和方法

Also Published As

Publication number Publication date
JP2016194929A (ja) 2016-11-17
US8127117B2 (en) 2012-02-28
CN104133748A (zh) 2014-11-05
JP6242615B2 (ja) 2017-12-06
WO2007134013A2 (en) 2007-11-22
CN104133748B (zh) 2018-10-19
JP2013242892A (ja) 2013-12-05
JP2018156672A (ja) 2018-10-04
JP2009536774A (ja) 2009-10-15
KR100988964B1 (ko) 2010-10-20
EP2027533A2 (en) 2009-02-25
KR20090009959A (ko) 2009-01-23
WO2007134013B1 (en) 2008-02-14
WO2007134013A3 (en) 2008-01-10
US20070266226A1 (en) 2007-11-15

Similar Documents

Publication Publication Date Title
CN101495959B (zh) 组合微处理器内的多个寄存器单元的方法和设备
US7558942B1 (en) Memory mapped register file and method for accessing the same
US8090931B2 (en) Microprocessor with fused store address/store data microinstruction
CN101438236A (zh) 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统
US7418575B2 (en) Long instruction word processing with instruction extensions
US9355061B2 (en) Data processing apparatus and method for performing scan operations
JP5607832B2 (ja) 汎用論理演算の方法および装置
JP2006502464A (ja) プロセッサに関するロード/移動及び複製命令
US9400656B2 (en) Chaining between exposed vector pipelines
JP2001500641A (ja) 並列データプロセッサにおけるアクティブ命令を回転させる方法および装置
KR101624786B1 (ko) 기입마스크 레지스터의 트레일링 최하위 마스킹 비트를 결정하는 시스템, 장치, 및 방법
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
JP2620511B2 (ja) データ・プロセッサ
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
Kiat et al. A comprehensive analysis on data hazard for RISC32 5-stage pipeline processor
US20050097299A1 (en) Processor with asymmetric SIMD functionality
US6944745B2 (en) Exception handling for single instructions with multiple data
JP5786719B2 (ja) ベクトルプロセッサ
TW202219746A (zh) 省電暫存器重取名
CN114968359A (zh) 指令执行方法、装置、电子设备及计算机可读存储介质
George et al. Design of Five Stage Pipelined Microprocessor with a 16K Cache Memory
US20050188183A1 (en) Digital signal processor having data address generator with speculative register file

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090520