CN104133748A - 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 - Google Patents
用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 Download PDFInfo
- Publication number
- CN104133748A CN104133748A CN201410348018.0A CN201410348018A CN104133748A CN 104133748 A CN104133748 A CN 104133748A CN 201410348018 A CN201410348018 A CN 201410348018A CN 104133748 A CN104133748 A CN 104133748A
- Authority
- CN
- China
- Prior art keywords
- unit
- register
- word
- units
- adjacent source
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012856 packing Methods 0.000 claims 12
- 239000003550 marker Substances 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 12
- 230000010365 information processing Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address 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
分案申请的相关信息
本案是分案申请。该分案的母案是申请日为2007年5月7日、申请号为200780016524.8、发明名称为“用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统”的发明专利申请案。
技术领域
本发明通常涉及微处理器,且更具体来说,涉及一种在执行单个指令期间在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统。
背景技术
通常,计算机系统包括一个或一个以上微处理器装置,每一微处理器装置经配置以对存储于计算机系统的存储器内的值执行运算且管理计算机系统的整体操作。这些计算机系统还可包括各种多媒体装置,例如,声卡及/或视频卡,每一多媒体装置进一步包括一个或一个以上处理器,例如,在每一相应多媒体装置内执行复杂数学计算的数字信号处理器(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内的指令加载到DSP330。在一个实施例中,经由具有四字宽度的128-位指令加载总线320将具有32-位字宽度的每一指令加载到DSP330。在一个实施例中,存储器310是统一字节可寻址存储器,其具有存储指令及数据两者的32-位地址空间且以前轻后重模式操作。
在一个实施例中,DSP330包含定序器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内组合寄存器单元的指令。在一个实施例中,处理单元(例如,DSP330内的执行单元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中识别并检索源寄存器单元Rs510及RT520。
在一个实施例中,将源寄存器单元Rs510及RT520组合到所得目的地寄存器单元RD530的指令是:
RD=packHL(Rs,RT)
其中Rs及RT是具有相应最高有效或高半字单元H及最低有效或低半字单元L的源寄存器单元。
如图5中所示,在执行指令之后,组合源寄存器单元Rs510的最高有效或高半字单元与源寄存器单元RT520的最高有效或高半字单元RT1且进一步将其输入到目的地寄存器单元RD530的高部分中。组合源寄存器单元Rs510的最低有效或低半字单元Rs2与源寄存器单元RT520的最低有效或低半字单元RT2且进一步将其输入到目的地寄存器单元RD530的低部分中。例如,如果RS510及RT520是两个32-位宽寄存器单元,那么在一个实施例中,所得目的地寄存器单元RD530是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 (33)
1.一种非易失性计算机可读媒体,其包含:
打包指令,其操作于非邻近源寄存器之上,其中,当在处理系统中执行时,所述打包指令致使所述处理系统:
确定寄存器堆结构中的两个非相邻源寄存器单元的相应大小;
使用所确定的所述两个非相邻源寄存器单元的相应大小来标识所述两个非相邻源寄存器单元的对应的最高有效半字单元的相应宽度,组合所述对应的最高有效半字单元以产生组合最高有效字单元;
将所述组合最高有效字单元输入到目的地寄存器单元的最高有效部分中,其中,所述目的地寄存器单元大于所述两个非相邻源寄存器单元中的任一者,且其中,所述目的地寄存器单元包括单个双字目的地寄存器单元或排列成对的寄存器单元;
组合自所述两个非相邻源寄存器单元的对应的最低有效半字单元以产生组合最低有效字单元;
将所述组合最低有效字单元输入到所述目的地寄存器单元的最低有效部分中;以及
将所述目的地寄存器单元存储在所述寄存器堆结构中。
2.如权利要求1所述的非易失性计算机可读媒体,其中所述两个非相邻源寄存器单元中的每一非相邻源寄存器单元是32-位宽寄存器单元且所述目的地寄存器单元是64-位宽寄存器单元,其中,使得所述目的地寄存器单元的大小为存储四个半字单元。
3.如权利要求2所述的非易失性计算机可读媒体,其中所述最高有效半字单元中的每一最高半字单元是16-位宽单元,并且所述最低有效半字单元中的每一最低有效半字单元是16-位宽单元。
4.如权利要求1所述的非易失性计算机可读媒体,其中执行所述指令进一步致使所述处理系统:
检索与来自存储器的所述两个非相邻源寄存器单元相关联的数据并将所述数据存储在所述两个非相邻源寄存器单元中,
检索与来自所述两个非相邻源寄存器单元的所述最高有效半字单元相关联的数据,并将与所述最高有效半字单元相关联的该数据存储在所述目的地寄存器单元的所述最高有效部分中。
5.如权利要求1所述的非易失性计算机可读媒体,其中将来自所述两个非相邻源寄存器单元的所述最高有效半字单元连接至处理器的所述寄存器堆结构中所述目的地寄存器单元的所述最高有效部分。
6.如权利要求1所述的非易失性计算机可读媒体,其中所述两个非相邻源寄存器单元作为排列成对的寄存器单元是不可访问的。
7.如权利要求1所述的非易失性计算机可读媒体,其中执行所述指令进一步致使所述处理系统连接所述最低有效半字单元以产生组合最低有效字单元。
8.如权利要求7所述的非易失性计算机可读媒体,其中执行所述指令进一步致使所述处理系统连接所述最高效半字单元以产生组合最高有效字单元。
9.如权利要求1所述的非易失性计算机可读媒体,其中,所述打包指令包括:
目的地寄存器字段,其包含用于编码所述目的地寄存器单元的信息;
第一源-寄存器字段,其包含用于编码第一源寄存器单元的信息;以及
第二源-寄存器字段,其包含用于编码第二源寄存器单元的信息。
10.一种方法,其包含:
接收可执行打包指令,其操作于非邻近源寄存器之上;及
执行所述打包指令以:
确定寄存器堆结构中的两个非相邻源寄存器单元的相应大小;
使用所确定的所述两个非相邻源寄存器单元的相应大小来标识寄存器堆结构中所述两个非相邻源寄存器单元的对应的最高有效半字单元的相应宽度;
组合所述对应的最高有效半字单元以产生组合最高有效字单元;
将所述组合最高有效字单元输入到目的地寄存器单元的最高有效部分中,其中,所述目的地寄存器单元大于所述两个非相邻源寄存器单元中的任一者,且其中,所述目的地寄存器单元包括单个双字目的地寄存器单元或排列成对的寄存器单元;
组合自所述两个非相邻源寄存器单元的对应的最低有效半字单元以产生组合最低有效字单元;
将所述组合最低有效字单元输入到所述目的地寄存器单元的最低有效部分中;以及
将所述目的地寄存器单元存储在所述寄存器堆结构中。
11.如权利要求10所述的方法,其中所述两个非相邻源寄存器单元中的每一非相邻源寄存器单元是32-位宽寄存器单元且所述目的地寄存器单元是64-位宽寄存器单元,其中,使得所述目的地寄存器单元的大小为存储四个半字单元。
12.如权利要求11所述的方法,其中所述最高有效半字单元中的每一最高半字单元是16-位宽单元,并且所述最低有效半字单元中的每一最低有效半字单元是16-位宽单元。
13.如权利要求10所述的方法,其中执行所述指令进一步包括:
检索与来自存储器的所述两个非相邻源寄存器单元相关联的数据;
将所述数据存储在所述两个非相邻源寄存器单元中;
检索与来自所述两个非相邻源寄存器单元的相应的所述最高有效半字单元相关联的数据;以及
将与所述最高有效半字单元相关联的数据组合至所述目的地寄存器单元的所述最高有效部分中。
14.如权利要求10所述的方法,其中将来自所述两个非相邻源寄存器单元的所述最高有效半字单元连接至处理器的所述寄存器堆结构中所述目的地寄存器单元的所述最高有效部分。
15.如权利要求10所述的方法,其中所述两个非相邻源寄存器单元作为排列成对的寄存器单元是不可访问的。
16.如权利要求10所述的方法,进一步包括:
连接所述最低有效半字单元以产生组合最低有效字单元。
17.如权利要求10所述的方法,进一步包含:
连接所述最高效半字单元以产生组合最高有效字单元。
18.如权利要求10所述的方法,其中所述可执行打包指令包含:
目的地寄存器字段,其包含用于编码所述目的地寄存器单元的信息;
第一源-寄存器字段,其包含用于编码第一源寄存器单元的信息;
第二源-寄存器字段,其包含用于编码第二源寄存器单元的信息;以及
寄存器-类型字段,其包含与所述源寄存器单元和所述目的地寄存器单元的寄存器类型相关联的信息。
19.一种设备,其包含:
存储器,其用以存储包含操作于非邻近源寄存器之上的打包指令的数据;及
处理器,其耦合到所述存储器,所述处理器进一步包含处理单元及耦合到所述处理单元的寄存器堆结构;
所述处理单元适于执行所述打包指令以:
确定寄存器堆结构中的两个非相邻源寄存器单元的相应大小;
使用所确定的所述两个非相邻源寄存器单元的相应大小来标识寄存器堆结构中所述两个非相邻源寄存器单元的对应的最高有效半字单元的相应宽度;
组合所述对应的最高有效半字单元以产生组合最高有效字单元;
将所述组合最高有效字单元存储到目的地寄存器单元的最高有效部分中,其中,所述目的地寄存器单元大于所述两个非相邻源寄存器单元中的任一者,且其中,所述目的地寄存器单元包括单个双字目的地寄存器单元或排列成对的寄存器单元;
组合自所述两个非相邻源寄存器单元的对应的最低有效半字单元以产生组合最低有效字单元;
将所述组合最低有效字单元存储到所述目的地寄存器单元的最低有效部分中;以及
将所述目的地寄存器单元存储在所述寄存器堆结构中。
20.如权利要求19所述的设备,其中所述两个非相邻源寄存器单元中的每一非相邻源寄存器单元是32-位宽寄存器单元且所述目的地寄存器单元是64-位宽寄存器单元,其中,使得所述目的地寄存器单元的大小为存储四个半字单元。
21.如权利要求20所述的设备,其中所述最高有效半字单元中的每一最高半字单元是16-位宽单元,并且所述最低有效半字单元中的每一最低有效半字单元是16-位宽单元。
22.如权利要求19所述的设备,所述方法进一步包括:
检索与来自存储器的所述两个非相邻源寄存器单元相关联的数据;
将所述数据存储在所述两个非相邻源寄存器单元中;
检索与来自所述两个非相邻源寄存器单元的所述最低有效半字单元相关联的数据;以及
组合与所述最低有效半字单元相关联的数据将将其存储至所述目的地寄存器单元的所述最低有效部分中。
23.如权利要求19所述的设备,来自所述两个非相邻源寄存器单元的所述最高有效半字单元被连接至处理器的所述寄存器堆结构中所述目的地寄存器单元的所述最高有效部分。
24.如权利要求19所述的设备,其中所述两个非相邻源寄存器单元作为排列成对的寄存器单元是不可访问的。
25.如权利要求19所述的设备,其中所述处理器连接所述最低有效半字单元以产生组合最低有效字单元。
26.如权利要求19所述的设备,其中所述处理器连接所述最高效半字单元以产生组合最高有效字单元。
27.如权利要求26所述的设备,其中,所述打包指令包括:
目的地寄存器字段,其包含用于编码所述目的地寄存器单元的信息;
第一源-寄存器字段,其包含用于编码第一源寄存器单元的信息;
第二源-寄存器字段,其包含用于编码第二源寄存器单元的信息;以及
指令数据字段,其包含指令分类信息。
28.一种设备,其包含:
接收装置,其用于接收操作于非邻近源寄存器之上的打包指令;及
执行装置,其用于执行所述打包指令以:
确定寄存器堆结构中的两个非相邻源寄存器单元的相应大小;
使用所确定的所述两个非相邻源寄存器单元的相应大小来标识寄存器堆结构中所述两个非相邻源寄存器单元的对应的最高有效半字单元的相应宽度;
组合所述对应的最高有效半字单元以产生组合最高有效字单元;
将所述组合最高有效字单元存储到目的地寄存器单元的最高有效部分中,其中,所述目的地寄存器单元大于所述两个非相邻源寄存器单元中的任一者,且其中,所述目的地寄存器单元包括单个双字目的地寄存器单元或排列成对的寄存器单元;
组合自所述两个非相邻源寄存器单元的对应的最低有效半字单元以产生组合最低有效字单元;
将所述组合最低有效字单元输入到所述目的地寄存器单元的最低有效部分中;以及
将所述目的地寄存器单元存储在所述寄存器堆结构中。
29.如权利要求28所述的设备,其中所述两个非相邻源寄存器单元中的每一非相邻源寄存器单元是32-位宽寄存器单元且所述目的地寄存器单元是64-位宽寄存器单元,其中,使得所述目的地寄存器单元的大小为存储四个半字单元。
30.如权利要求29所述的设备,其中所述最高有效半字单元中的每一最高半字单元是16-位宽单元,并且所述最低有效半字单元中的每一最低有效半字单元是16-位宽单元。
31.如权利要求28所述的设备,其进一步包含:
用于检索与来自存储器的所述两个非相邻源寄存器单元相关联的数据的装置;
用于将所述数据存储在所述两个非相邻源寄存器单元中的装置;
用于检索与来自所述两个非相邻源寄存器单元的所述最低有效半字单元相关联的数据的装置;以及
用于组合与所述最低有效半字单元相关联的数据至所述目的地寄存器单元的所述最低有效部分中的装置。
32.如权利要求28所述的设备,其中所述两个非相邻源寄存器单元作为排列成对的寄存器单元是不可访问的。
33.如权利要求28所述的设备,所述打包指令包括:
目的地寄存器字段,其包含用于编码所述目的地寄存器单元的信息;
第一源-寄存器字段,其包含用于编码第一源寄存器单元的信息;
第二源-寄存器字段,其包含用于编码第二源寄存器单元的信息;以及
寄存器-类型字段,其包含与所述源寄存器单元和所述目的地寄存器单元的寄存器类型相关联的信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/431,300 | 2006-05-10 | ||
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 |
CNA2007800165248A CN101438236A (zh) | 2006-05-10 | 2007-05-07 | 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800165248A Division CN101438236A (zh) | 2006-05-10 | 2007-05-07 | 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133748A true CN104133748A (zh) | 2014-11-05 |
CN104133748B CN104133748B (zh) | 2018-10-19 |
Family
ID=38561190
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410348018.0A Active CN104133748B (zh) | 2006-05-10 | 2007-05-07 | 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 |
CNA2007800165248A Pending CN101438236A (zh) | 2006-05-10 | 2007-05-07 | 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800165248A Pending CN101438236A (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) | CN104133748B (zh) |
WO (1) | WO2007134013A2 (zh) |
Families Citing this family (9)
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 | 半導体装置 |
US20120254589A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | System, apparatus, and method for aligning registers |
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 |
KR102685097B1 (ko) | 2018-12-07 | 2024-07-16 | 한화오션 주식회사 | 파이프 시편 절단용 지그기구 |
KR102663496B1 (ko) * | 2022-08-02 | 2024-05-08 | 이화여자대학교 산학협력단 | 프로세서의 레지스터 캐시 인덱스 결정 방법 및 이를 수행하는 전자 장치 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3986171A (en) * | 1973-12-21 | 1976-10-12 | U.S. Philips Corporation | Storage system comprising a main store and a buffer store |
JPH0415832A (ja) * | 1990-05-09 | 1992-01-21 | Nec Corp | 障害処理方式 |
EP0743592A1 (en) * | 1995-05-17 | 1996-11-20 | STMicroelectronics Limited | Manipulation of data |
CN1173931A (zh) * | 1995-09-01 | 1998-02-18 | 菲利浦电子北美公司 | 处理器的定制的基本操作的方法与设备 |
CN1384934A (zh) * | 1999-05-13 | 2002-12-11 | Arc国际美国控股公司 | 流水线处理器内用于松散寄存器编码的方法和装置 |
CN1577257A (zh) * | 2003-06-30 | 2005-02-09 | 英特尔公司 | 具有取整和移位的单指令多数据整数高位乘法 |
US20050125640A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Data processing apparatus and method for moving data between registers and memory |
JP2005174293A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
EP0743591B1 (en) | 1995-05-16 | 2002-01-02 | Océ-Technologies B.V. | Printing system comprising a communication control apparatus |
GB9509988D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
CN1252587C (zh) * | 1995-08-31 | 2006-04-19 | 英特尔公司 | 移位分组数据的方法、装置和处理数字音频信号的系统 |
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 |
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 |
WO2001086431A1 (en) * | 2000-05-05 | 2001-11-15 | Lee Ruby B | A 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 |
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 |
-
2006
- 2006-05-10 US US11/431,300 patent/US8127117B2/en active Active
-
2007
- 2007-05-07 JP JP2009510126A patent/JP2009536774A/ja not_active Withdrawn
- 2007-05-07 CN CN201410348018.0A patent/CN104133748B/zh active Active
- 2007-05-07 EP EP07761978A patent/EP2027533A2/en not_active Ceased
- 2007-05-07 CN CNA2007800165248A patent/CN101438236A/zh active Pending
- 2007-05-07 WO PCT/US2007/068394 patent/WO2007134013A2/en active Application Filing
- 2007-05-07 KR KR1020087029921A patent/KR100988964B1/ko active IP Right Grant
-
2013
- 2013-07-05 JP JP2013142053A patent/JP6242615B2/ja active Active
-
2016
- 2016-05-19 JP JP2016100520A patent/JP2016194929A/ja active Pending
-
2018
- 2018-05-09 JP JP2018090567A patent/JP2018156672A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3986171A (en) * | 1973-12-21 | 1976-10-12 | U.S. Philips Corporation | Storage system comprising a main store and a buffer store |
JPH0415832A (ja) * | 1990-05-09 | 1992-01-21 | Nec Corp | 障害処理方式 |
EP0743592A1 (en) * | 1995-05-17 | 1996-11-20 | STMicroelectronics Limited | Manipulation of data |
CN1173931A (zh) * | 1995-09-01 | 1998-02-18 | 菲利浦电子北美公司 | 处理器的定制的基本操作的方法与设备 |
CN1384934A (zh) * | 1999-05-13 | 2002-12-11 | Arc国际美国控股公司 | 流水线处理器内用于松散寄存器编码的方法和装置 |
CN1577257A (zh) * | 2003-06-30 | 2005-02-09 | 英特尔公司 | 具有取整和移位的单指令多数据整数高位乘法 |
US20050125640A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Data processing apparatus and method for moving data between registers and memory |
JP2005174293A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101438236A (zh) | 2009-05-20 |
CN104133748B (zh) | 2018-10-19 |
US20070266226A1 (en) | 2007-11-15 |
WO2007134013A3 (en) | 2008-01-10 |
JP2013242892A (ja) | 2013-12-05 |
JP6242615B2 (ja) | 2017-12-06 |
KR20090009959A (ko) | 2009-01-23 |
JP2016194929A (ja) | 2016-11-17 |
EP2027533A2 (en) | 2009-02-25 |
JP2009536774A (ja) | 2009-10-15 |
WO2007134013B1 (en) | 2008-02-14 |
WO2007134013A2 (en) | 2007-11-22 |
KR100988964B1 (ko) | 2010-10-20 |
JP2018156672A (ja) | 2018-10-04 |
US8127117B2 (en) | 2012-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408103B (zh) | 配置成使用一个或多个复数算术指令对可变长度向量进行操作的向量处理器 | |
CN101495959B (zh) | 组合微处理器内的多个寄存器单元的方法和设备 | |
TWI841041B (zh) | 用於融合乘加運算的系統、裝置及方法 | |
CN104133748A (zh) | 用以在微处理器内组合来自多个寄存器单元的对应半字单元的方法及系统 | |
US8412917B2 (en) | Data exchange and communication between execution units in a parallel processor | |
JP3792200B2 (ja) | 電力管理のための性能抑制機構を採用するマイクロプロセッサ | |
TWI506539B (zh) | 十進位浮點資料邏輯提取的方法與設備 | |
TW201820125A (zh) | 執行複數的熔合乘-加指令的系統與方法 | |
US20100070741A1 (en) | Microprocessor with fused store address/store data microinstruction | |
US8631224B2 (en) | SIMD dot product operations with overlapped operands | |
US5053986A (en) | Circuit for preservation of sign information in operations for comparison of the absolute value of operands | |
TW201738733A (zh) | 執行指令以排列遮罩的系統及方法 | |
US5119324A (en) | Apparatus and method for performing arithmetic functions in a computer system | |
CN101907984B (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
KR20140113555A (ko) | 기입마스크 레지스터의 트레일링 최하위 마스킹 비트를 결정하는 시스템, 장치, 및 방법 | |
CN101944012B (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
US6275925B1 (en) | Program execution method and program execution device | |
US7949701B2 (en) | Method and system to perform shifting and rounding operations within a microprocessor | |
WO2022067510A1 (zh) | 一种处理器、处理方法及相关设备 |
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 |