CN101907984B - 指令处理方法以及其所适用的超纯量管线微处理器 - Google Patents
指令处理方法以及其所适用的超纯量管线微处理器 Download PDFInfo
- Publication number
- CN101907984B CN101907984B CN201010243213.9A CN201010243213A CN101907984B CN 101907984 B CN101907984 B CN 101907984B CN 201010243213 A CN201010243213 A CN 201010243213A CN 101907984 B CN101907984 B CN 101907984B
- Authority
- CN
- China
- Prior art keywords
- instruction
- source operand
- mentioned
- result
- unit
- 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.)
- Active
Links
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种超纯量管线微处理器及指令处理方法,该超纯量管线微处理器具有由该超纯量管线微处理器的指令集架构所界定的寄存器集合、高速缓存、执行单元、以及耦接至高速缓存的加载单元。加载单元不同于超纯量管线微处理器的其它执行单元,且加载单元包括算术逻辑单元。加载单元接收第一指令,第一指令指定了第一来源操作数的第一存储器地址、在第一来源操作数上执行并产生结果的运算、以及寄存器集合中用以储存结果的第一目的寄存器。加载单元自高速缓存读取第一来源操作数。算术逻辑单元在第一来源操作数上执行运算以产生结果,而非将第一来源操作数转送至其它执行单元的任一者以在第一来源操作数上执行运算以产生结果。加载单元更输出结果以供后续引退至第一目的寄存器之用。
Description
技术领域
本发明主要关于微处理器的技术领域,特别是有关于一种微处理器的微处理器架构(microarchitecture)。
背景技术
精简指令集架构处理器的一个典型是这种处理器会使用一种加载/储存架构,也就是说,这种处理器包括了一加载指令,用以将一操作数从存储器中加载至该处理器的一寄存器,这种处理器还包括一储存指令,用以将该处理器的一寄存器中的一操作数储存到存储器里。在一般范例中,上述加载指令与储存指令是唯一会存取存储器的指令,而执行算术/逻辑运算的其它指令则从寄存器中接收各自的操作数并将结果写入寄存器,意即,非加载或储存的指令不被允许指定在存储器中的操作数,这使得大部分的非加载或储存的指令可在单一频率周期执行完毕,相较之下,一个加载指令则需要占用数个频率周期以存取存储器(即高速缓存或系统存储器)。因此,一般的指令序列可能包括有一个加载指令,用以从存储器中提取(fetch)一操作数至一第一寄存器,该加载指令其后则接着一算术逻辑(arithmetic/logical)指令,用以在第一寄存器中的操作数上执行一算术逻辑运算(即加法运算、减法运算、增量运算、乘法运算、移位/回转(shirt/rotate)运算、布尔和(Boolean AND)运算、布尔或(Boolean OR)运算、布尔反(Boolean NOT)运算等等)并且将结果写入一第二寄存器,该算术逻辑指令其后再接着一储存指令,用以将第二寄存器中的结果写入存储器。上述加载/储存架构的典型范例的优点是众所周知的。
然而,加载/储存架构所产生的结果是许多处理器包括了不同的加载/储存单元,分离于执行算术逻辑运算的执行单元,也就是说,一加载单元仅执行从存储器中将数据加载至一寄存器,一储存单元仅执行将数据从一寄存器储存至存储器,而算术逻辑单元(Arithmetic/Logical Unit,ALU)则对来自来源寄存器的操作数执行算术逻辑运算并将结果写入一目的寄存器。于是,以上述的指令序列范例而言,加载单元会执行加载指令以自存储器中提取操作数至第一寄存器,一算术逻辑单元会执行算术逻辑指令以对第一寄存器中的操作数执行算术逻辑运算(或许使用另一寄存器中的第二操作数来进行)并将结果写入第二寄存器,最后,储存单元会执行将第二寄存器中的结果写入存储器的储存指令。
使用不同加载/储存单元以及算术逻辑单元的优点是架构简单且速度快,然而,缺点是将结果通过寄存器在各个单元间所做的转送动作会耗用许多时间,这个问题的一部分可藉由转送总线而获得解决,转送总线会把一结果从一执行单元直接转送至另一执行单元而不需经由寄存器,但是,这仍然有时间被耗用的问题,意即转送过程中所发生的延迟(delay)情形。所被耗用的时间主要是取决于距离与阻容电路(RC circuit)时间常数的一函数,该距离是指信号在转送总线上来去不同执行单元之间所需的距离,而阻容电路时间常数是指关于该信号传输线(signal trace)的阻容电路时间常数。关于转送结果的延迟时间总计可达一或多个频率周期,视已知设计中执行单元的布设(layout)与所使用的制程技术而定。
发明内容
本发明的一实施例提供了一种超纯量(superscalar)管线(pipelined)微处理器。该超纯量管线微处理器包括了由该超纯量管线微处理器的一指令集架构所界定(define)的一寄存器集合、一高速缓存、多个执行单元、以及耦接至上述高速缓存的一加载单元。上述加载单元是不同于该超纯量管线微处理器的其它执行单元,且上述加载单元包括一算术逻辑单元。上述加载单元是用以接收一第一指令,上述第一指令是指定(specify)一第一来源操作数的一第一存储器地址、在上述第一来源操作数上执行并产生一结果的一运算、以及上述寄存器集合中用以储存上述结果的一第一目的寄存器。上述加载单元亦用以自上述高速缓存读取上述第一来源操作数。上述算术逻辑单元是用以在上述第一来源操作数上执行上述运算以产生上述结果,而非将上述第一来源操作数转送(forward)至该超纯量管线微处理器的其它执行单元的任一者以在上述第一来源操作数上执行上述运算以产生上述结果。上述加载单元更用以输出上述结果以供后续引退(retirement)至上述第一目的寄存器的用。
本发明的另一实施例提供了一种指令处理方法,适用于一超纯量管线微处理器,该超纯量管线微处理器具有由该超纯量管线微处理器的一指令集架构所界定的一寄存器集合、一高速缓存、多个执行单元、以及不同于该超纯量管线微处理器的其它执行单元的一加载单元。上述指令处理方法包括:由上述加载单元接收一第一指令,上述第一指令是指定一第一来源操作数的一第一存储器地址、在上述第一来源操作数上执行并产生一结果的一运算、以及上述寄存器集合中用以储存上述结果的一第一目的寄存器;由上述加载单元自上述高速缓存读取上述第一来源操作数;由上述算术逻辑单元在上述第一来源操作数上执行上述运算以产生上述结果,而非将上述第一来源操作数转送至该超纯量管线微处理器的其它执行单元的任一者以在上述第一来源操作数上执行上述运算以产生上述结果;以及由上述加载单元输出上述结果以供后续引退至上述第一目的寄存器之用。
附图说明
图1是根据本发明所述的超纯量管线微处理器的方块图。
图2是根据本发明如图1所示的加载单元124的方块图。
图3是根据本发明如图1所示的超纯量管线微处理器100的运作流程图。
图4是显示比对本发明所述的超纯量管线微处理器100的传统微处理器运作流程图。
图5是根据本发明一实施例所述的效果的时间图。
图6是根据本发明另一实施例所示的加载单元的方块图。
图7是根据本发明另一实施例所述的加载单元的方块图。
图8是根据本发明另一实施例所述的效果的时间图。
图9是根据本发明如图1所示的储存单元126的方块图。
图10是根据本发明如图1所示的超纯量管线微处理器100的运作流程图。
图11是显示比对本发明所述的超纯量管线微处理器100的传统微处理器运作流程图。
图12是根据本发明另一实施例所述的效益的时间图。
【主要组件符号说明】
100~超纯量管线微处理器;
102~指令高速缓存;
104~指令转译器;
106~寄存器别名表;
108~保留站;
112~通用寄存器集合;
114~重排缓冲器;
116~存储器子系统;
122~其它执行单元;
124~加载单元;
126~储存单元;
132~宏指令;
134~微指令;
142、162~算术逻辑单元;
144、146~总线;
148~转送总线;
152~结果总线;
154、156~算术逻辑单元结果;
202~地址产生器;
204~转译后备缓冲器;
206~快取卷标矩阵;
208~快取数据矩阵;
212~控制逻辑;
214~多工器;
222~虚拟加载地址;
224~实体地址;
226~状态;
228~快取线;
232~加载数据;
234~命中/未命中;
652、952~第二操作数;
662~储存区;
946~储存数据
具体实施方式
本发明的发明人发现在一管线流加载单元设计中,最后一个阶段中可能会有一部份的频率周期不会被使用到,也就是说,加载单元最后一个阶段的电路所产生的延迟时间只是频率周期时间的一小部分而已。因此,本发明有利地在实施例中将一算术逻辑单元整合到加载单元的最后一个阶段中,使加载单元能够在将从存储器所提取出的加载数据加载到目的寄存器之前,先在加载数据上执行算术逻辑运算。通过此一有利的设计,使得将加载数据转送至另一算术逻辑执行单元以执行算术逻辑运算时所需耗用的时间能够节省下来。本发明的微处理器使用了一加载/储存的微处理器架构,该微处理器架构所实现的是处理器的非加载/储存x86架构(或处理器的宏架构)。指令转译器产生特别类型的加载微指令(此后以1dalu微指令称之),用以指示加载单元执行从存储器的加载以及在加载数据上执行适当的算术逻辑单元运算。这使得该微处理器得以实现复杂的宏指令,该宏指令所需要的存储器的读取以及一算术逻辑单元运算皆位于执行单元中,所以不需要另一执行单元来执行该算术逻辑单元运算,从而避免结果转送所造成的时间延迟。
图1是根据本发明所述的超纯量管线微处理器的方块图。超纯量管线微处理器100包括一指令高速缓存102,用以快取一指令集架构(例如:x86指令集架构)的宏指令。宏指令132所包括的指令需要一存储器存取与一算术逻辑单元运算功能,举例来说,一x86MOVZX reg/mem(零值延伸搬移)指令,用以指示超纯量管线微处理器100将存储器中的来源操作数的内容复制到目的寄存器并且将该值进行零值延伸。当目的寄存器的尺寸大小要比存储器操作数的有效大小来的大时,零值延伸是很重要的一项运作。其它的例子则包括了x86指令,该x86指令涉及(involve)一存储器操作数以及一算术逻辑单元功能,例如:加法(ADD)、减法(SUB)、增量(INC)、减量(DEC)、乘法(MUL)、移位(SAL/SAR/SHL/SHR)、回转(RCL/RCR/ROL/ROR)、与(AND)、或(OR)、反(NOT)、异或(XOR)等功能。
超纯量管线微处理器100包括耦接至指令高速缓存102的一指令转译器104,该指令转译器104将宏指令132转译为例如ldalu微指令的微指令134,该ldalu微指令指示加载单元124(将于后续段落作进一步说明)加载存储器中的数据并且于加载的数据上执行算术逻辑单元运算。在另一实施例中,指令转译器104将宏指令132转译为例如stalu微指令的微指令134,该stalu微指令指示储存单元126(将于后续段落作进一步说明)于储存数据上执行算术逻辑单元运算并且将该数据储存于存储器中。
超纯量管线微处理器100包括一寄存器别名表(Register Alias Table,RAT)106,寄存器别名表106产生微指令相依性并且以程序顺序将微指令134发送(dispatch)至保留站108,保留站108再将微指令134送到(issue)执行单元(即为加载单元124、储存单元126、以及其它执行单元122)执行。在一实施例中,保留站108不以程序顺序送出微码指令134。举例来说,其它执行单元122可包括整数算术逻辑单元、浮点单元、以及单指令多数据(Single Instruction Multiple Data,SIMD)执行单元(例如:多媒体延伸(MultiMedia eXtension,MMX)单元或单指令多数据串流延伸(Streaming SIMDExtensions,SSE)单元)。执行单元122/142/162各自将其结果152/154/156提供至一重排缓冲器(Reorder Buffer,ROB)114,重排缓冲器114能确保按顺序将指令引退(retirement)至架构状态(architectural state)。超纯量管线微处理器100亦包括耦接至加载单元124与储存单元126的一存储器子系统116,存储器子系统116包括了高速缓存、加载缓冲器、储存缓冲器、以及一总线接口单元。
执行单元122/142/162接收来自一通用寄存器集合(General PurposeRegister,GPR)112的操作数。执行单元122/142/162亦互相接收来自对方的结果152/154/156以当作转送总线148上的操作数。尤其是加载单元124接收一总线144上的操作数,而储存单元126接收一总线146上的操作数。加载单元124包括一算术逻辑单元142,储存单元126包括一算术逻辑单元162,其相关的运算将于后续作进一步说明。
将算术逻辑单元功能整合至加载指令中
图2是根据本发明如图1所示的加载单元124的方块图。加载单元124包括一地址产生器202,地址产生器202使用如图1所示的来源操作数144以产生虚拟加载地址222(也就是将自该处加载数据的存储器地址)。加载单元124存取存储器子系统116的一转译后备缓冲器(Translation LookasideBuffer,TLB)204,转译后备缓冲器204负责查找虚拟位置222以提供转译后的实体地址224。一快取卷标矩阵(cache tag array)206查找实体地址224的一卷标部分并且为高速缓存的每一路(way)提供状态226。实体地址224的索引(index)部分为一快取数据矩阵208的索引,而快取数据矩阵208则针对高速缓存的每一路输出一快取线(cache line)228。控制逻辑212检查状态226以决定实体地址224是否为高速缓存的一命中/未命中(hit/miss)234。此外,控制逻辑212控制一多工器214,而多工器214选择从数据矩阵208所输出的适合的快取线228以及加载指令或ldalu微指令所指定的快取线中的数据,该数据可为根据实施例的不同而为1、2、4、8、16、32、或64位,且被提供作为加载数据232。
在一传统的加载单元124中,加载数据232将被提供当作一传统加载指令的结果,然而,本发明的加载单元124有利地,亦包括了如图1所示的算术逻辑单元142,算术逻辑单元142接收加载数据232以及选择性地在加载数据232上执行一算术逻辑单元运算以产生一算术逻辑单元结果(alu-result)154。(如果该指令为一正规加载指令,则算术逻辑单元142只是让加载数据232当作算术逻辑单元结果154通过。)算术逻辑单元142是用以根据不同实施例执行不同的各式运算。
在一实施例中,算术逻辑单元142执行一零值延伸(zero-extend)运算,并且包括多个与门(AND gate)以遮除掉(mask off)加载数据232中不被由ldalu微指令指定的存储器操作数所包括的较高位。
在其它实施例中,算术逻辑单元142是用以额外执行一或多个单一(single)操作数运算,包括、但不限定于以下运算:
1.布尔(Boolean)反(NOT)运算:算术逻辑单元结果154使加载数据232的每一位被反向(invert)。
2.不等门(NE GATE)运算:算术逻辑单元结果154为加载数据232的二补码负位(two’s complement negation)。
3.增量(increment)运算:算术逻辑单元结果154为加载数据232再加1。
4.减量(decrement)运算:算术逻辑单元结果154为加载数据232再减1。
5.符号延伸(sign-extend)运算:算术逻辑单元结果154为符号延伸后的加载数据232。
6.零值侦测运算:若加载数据232为零时,算术逻辑单元结果154的值为真(true);反之,若加载数据232不为零时,算术逻辑单元结果154的值则为假(false)。
7.壹值侦测运算:若加载数据232的所有位皆为二进制的壹(1)值时,算术逻辑单元结果154的值为真;反之,若加载数据232的所有位并非全为二进制的壹值时,算术逻辑单元结果154的值则为假。
8.数据格式转换运算:算术逻辑单元结果154为格式化成一指定数据格式的加载数据232,该指定数据格式可为例如一浮点格式、或单指令多数据格式。
在图6所示的另一实施例中,算术逻辑单元142是用以接收一第二操作数652,以及用以在第二操作数652与加载数据232上执行一双操作数的算术逻辑单元功能。算术逻辑单元142可用以另外再执行一或多个双操作数运算,包括但不限定于以下运算:
9.布尔逻辑(AND、OR、XOR、NOR)运算:算术逻辑单元142在第二操作数652与加载数据232上执行指定的布尔逻辑运算,以产生算术逻辑单元结果154。
10.算术(ADD、SUB、MUL)运算:算术逻辑单元142在第二操作数652与加载数据232上执行指定的算术运算,以产生算术逻辑单元结果154。
在图6所示的另一实施例中,加载单元124包括了储存区662,储存区662用以于加载地址不存在数据高速缓存时储存第二操作数652,而当加载地址不存在数据高速缓存时会使得必须从系统存储器提取加载数据且ldalu微指令必须在加载单元124中重新执行。
图3是根据本发明如图1所示的超纯量管线微处理器100的运作流程图。流程从方块302开始进行。
在方块302,指令转译器104译码一宏指令132并将之转译为单一ldalu微指令134,宏指令132所指定的运算是用以产生自该处提取数据的一存储器地址。宏指令132也指定了将于存储器中提取出的数据上执行的一算术逻辑单元运算以产生一结果。宏指令132还指定了作为该结果的目的寄存器的一通用寄存器112。ldalu微指令与宏指令132指定了相同的地址操作数。而且,ldalu微指令还与宏指令132指定了相同的算术逻辑单元运算。最后,ldalu微指令更与宏指令132针对目的操作数指定了相同的通用寄存器112。举例来说,宏指令132可为一x86MOVZX reg/mem指令或一PMOVZX reg/mem指令,在此例子中,指令转译器104再将宏指令132转译为指定了零值延伸为其算术逻辑单元运算的一单一ldalu微指令。流程继续进行到方块304。
在方块304,保留站112将ldalu微指令送到加载单元124,流程继续进行到方块306。
在方块306,加载单元124根据由ldalu微指令所指定的来源操作数144而产生虚拟加载地址222,流程继续进行到方块308。
在方块308,加载单元124在转译后备缓冲器204中查找虚拟加载地址222以取得实体加载地址224,流程继续进行到方块312。
在方块312,加载单元124以实体加载地址224依序存取快取卷标矩阵206与快取数据矩阵208以取得状态226与快取线228,而多工器214选择了由ldalu微指令所指定的加载数据232,流程继续进行到方块322。
在方块322,加载单元124在加载数据232上执行由ldalu微指令所指定的算术逻辑单元运算,以产生算术逻辑单元结果154,流程继续进行到方块324。
在方块324,加载单元124将算术逻辑单元结果154输出到其结果总线上,事实上,算术逻辑单元142执行所需的算术逻辑单元运算有利地减轻了将加载数据232转送至另一执行单元122以执行算术逻辑单元运算的需求以及转送运算所伴随的延迟。流程继续进行到方块326。
在方块326,重排缓冲器114从加载单元的结果总线接收并储存算术逻辑单元结果154,流程继续进行到方块328。
在方块328,重排缓冲器114将其所储存的算术逻辑单元结果154引退至目的通用寄存器112,流程结束。
图4是显示传统微处理器的运作流程,用以比对本发明所述的超纯量管线微处理器100的运作。虽然图1所示的超纯量管线微处理器100中的组件亦存在于图4的描述中,但必须了解的是图4所述的微处理器中的加载单元并不包括用以在加载数据上执行算术逻辑单元运算的一算术逻辑单元,且指令转译器并不会针对加载数据产生特别的ldalu微指令。流程从方块402开始进行。
在方块402,指令转译器104译码一宏指令132并将之转译为二个微指令134,一为加载指令,一为alu微指令。举例来说,宏指令132可为一x86MOVZX reg/mem指令或一PMOVZX reg/mem指令,在此范例中,指令转译器104会将宏指令132转译为一加载微指令以及指定零值延伸为其算术逻辑单元函数的一alu微指令。接着,寄存器别名表116在加载微指令上针对alu微指令产生一相依性。流程继续进行到方块404。
在方块404,保留站112将加载指令送到加载单元124,流程继续进行到方块406。
在方块406,加载单元124根据由加载指令所指定的来源操作数144产生虚拟加载地址222,流程继续进行到方块408。
在方块408,加载单元124在转译后备缓冲器中查找虚拟加载地址222以取得实体加载地址224,流程继续进行到方块412。
在方块412,加载单元124以实体加载地址224依序存取快取卷标矩阵206与快取数据矩阵208以取得状态226与快取线228,而多工器214选择了由加载指令所指定的加载数据232,流程继续进行到方块414与方块416。
在方块414,加载单元124将所提取的加载数据232输出到其结果总线上,流程继续进行到方块418。
在方块416,既然加载数据222目前已可取用为一来源操作数,则保留站112将alu微指令送到一执行单元122(例如一整数单元),流程继续进行到方块418。
在方块418,整数单元112从加载单元124的结果总线接收加载数据232作为一来源操作数,流程继续进行到方块422。
在方块422,整数单元112在接收自加载单元124的加载数据232上执行由alu微指令所指定的算术逻辑单元运算,以产生一算术逻辑单元结果。流程继续进行到方块424。
在方块424,整数单元112将算术逻辑单元结果输出到其结果总线152上,流程继续进行到方块426。
在方块426,重排缓冲器114从整数单元122的结果总线152接收并储存算术逻辑单元结果,流程继续进行到方块428。
在方块428,重排缓冲器114将其所储存的算术逻辑单元结果引退至目的通用寄存器112,流程结束。
比较图3与图4可发现,指令转译器104产生一单一ldalu微指令、以及加载单元124包括一算术逻辑单元142以执行由ldalu微指令所指定的算术逻辑单元运算,有利地避免了由传统微处理器所引起的转送运作,如图5所示。
图5是根据本发明一实施例所述的效果的时间图。图中展示了六个频率周期,图左侧所示为传统微处理器中由寄存器区隔的管线流阶段,图右侧所示为本发明一实施例的超纯量管线微处理器100中由寄存器区隔的管线流阶段。在图5所示的范例中,假设了加载单元124包括有四个管线流阶段,各自被标示为A、B、C、以及D。然而,需要注意的是在其它实施例中,加载单元124可具有不同数量的管线流阶段。而在图5所示的范例中,假设了传统微处理器中的整数算术逻辑单元包括单一阶段。
在传统微处理器中,一加载指令接在加载单元124分别对应到频率周期1、2、3、4的管线流阶段A、B、C、以及D之后进行。然后加载数据被转送至整数单元,整数单元于频率周期5在加载数据上执行一算术逻辑单元运算,最后,于频率周期6,由整数单元所产生的算术逻辑单元结果被写入至重排缓冲器114并且被转送至其它执行单元122。
在如图1所示的超纯量管线微处理器100中,相似于传统微处理器一般,一ldalu指令接在加载单元124分别对应到频率周期1、2、3、4的管线流阶段A、B、C、以及D之后进行。然而,不同于传统微处理器,在加载单元124于频率周期4的管线流阶段D中,算术逻辑单元142在加载数据232上执行了由ldalu微指令所指定的算术逻辑单元运算以产生算术逻辑单元结果154。在频率周期5中,由加载单元124所产生的算术逻辑单元结果154被写入至重排缓冲器114并且被转送至其它执行单元122。因此可见,如图1所示的超纯量管线微处理器100至少在比传统微处理器更早一频率周期时,即产生了算术逻辑单元结果154并且让其它指令可取得算术逻辑单元结果154。而如上述所言,当信号在转送总线上来去不同执行单元之间所需的距离、以及该信号传输线的阻容电路时间常数增加时,意即转送延迟增加时,那么本发明所能省下的时间也就跟着提升了。
图7是根据本发明另一实施例所述的加载单元的方块图。本图中的加载单元124类似于图1所示的加载单元124,然而,图7的加载单元124在内部将算术逻辑单元结果154转送回给自己当作一来源操作数144,以供计算出一后续加载指令(或ldalu微指令)的一加载地址222。在某些设计中,此内部转送的路径可能比传统微处理器中来自其它执行单元的外部转送路径来的短,该其它执行单元会执行算术逻辑单元运算且结果会被当作一来源操作数144从该处被转送至加载单元124。有关内部转送的路径的优点将于图8中绘示。
图8为一相似于图5所示的时间图。然而,图8所示的范例假设了在传统微处理器中,一加载指令接在alu微指令之后并且使用alu微指令的算术逻辑单元结果当作一来源操作数以计算加载地址。同样地,第八图中假设了在超纯量管线微处理器100中,一加载指令接在alu微指令之后并且使用alu微指令的算术逻辑单元结果154当作一来源操作数以计算加载地址。此外,图8所示的范例假设传统微处理器(以及超纯量管线微处理器100)分别在频率周期5与7中,需要一额外的频率周期以将结果自加载单元124转送至整数单元122,以及另一额外的频率周期将结果自整数单元122转送至加载单元124。如图8所示,本发明的加载单元124在频率周期4的管线流阶段D中执行由ldalu微指令所指定的算术逻辑单元运算,并且在频率周期5中将算术逻辑单元结果154内部转送回给自己使得加载单元124能够使用算术逻辑单元结果154,以产生加载地址222,而非使一算术逻辑单元结果自其它执行单元被转送至加载单元124。因此,在此范例中,具有如图7所示的加载单元124的超纯量管线微处理器100可有利地在以少于传统微处理器三个频率周期的情况下,即处理完ldalu微指令或加载微指令序列。
图9是根据本发明如图1所示的储存单元126的方块图。储存单元126包括了图1中的算术逻辑单元162,算术逻辑单元162所接收的储存数据946是经由总线146来自通用寄存器集合112的、或经由转送总线148来自执行单元122/124/126。算术逻辑单元162在储存数据946上执行一算术逻辑单元运算以产生一算术逻辑单元结果156,而算术逻辑单元结果156被提供至存储器子系统116中的一储存缓冲器、被提供至重排缓冲器114、以及经由转送总线148被提供至执行单元122/124/126。储存缓冲器最终将算术逻辑单元结果156写入至存储器。该算术逻辑单元运算可为如图2所述由加载单元124所执行的任一单来源操作数的算术逻辑单元运算。另外,在一实施例中,算术逻辑单元162可接收一第二操作数952以致该算术逻辑单元运算可为如图6所述由加载单元124所执行的任一双来源操作数的算术逻辑单元运算。
如下于第10~12图所述,通过将算术逻辑单元162整合至储存单元126以于将储存数据946写入存储器前先在储存数据946上执行算术逻辑单元运算,即可有利地避免掉传统微处理器所会发生的转送延迟。
在一实施例中,超纯量管线微处理器100将储存运算拆解为两个不同的微指令-储存地址微指令以及储存数据微指令。而超纯量管线微处理器100包括了两个单独的单元-储存地址单元以及储存数据单元,分别用以执行该储存地址微指令以及储存数据微指令。储存地址单元包括一地址产生器(类似于加载单元124的地址产生器202),用以从储存地址微指令所指定的来源操作数产生一虚拟储存地址。然后储存地址单元于转译后备缓冲器204中查找虚拟储存地址以取得一转译后的实体储存地址,该实体储存地址即为储存地址单元写入至存储器子系统116的一储存缓冲器的数据,且该储存缓冲器是被配置予此储存运算。储存缓冲器中的实体储存地址最后被写入到快取卷标矩阵206与快取数据矩阵208、或被写入到系统存储器中。在一传统微处理器中,储存单元仅接收储存数据(不会有储存单元之外的其它执行单元在储存数据上执行一算术逻辑单元运算)、以及将储存数据写入至储存缓冲器。储存缓冲器最后将储存数据从储存数据单元写入至由储存地址单元所产生的存储器地址。在一实施例中,储存地址单元并未被绘示出,而储存数据单元则为图9所示的储存单元126。
图10是根据本发明如图1所示的超纯量管线微处理器100的运作流程图。流程从方块1002开始进行。
在方块1002,指令转译器104译码一宏指令132并将其转译为单一stalu微指令134。宏指令132指定了容纳(hold)一操作数的一通用寄存器112,一算术逻辑单元运算即执行于该操作数上以产生一结果并将结果写入存储器中。stalu微指令针对其来源操作数指定了与宏指令132所指定的相同的通用寄存器112。再者,stalu微指令亦指定了与宏指令132所指定的相同的算术逻辑单元运算。流程继续进行到方块1004。
在方块1004,保留站112将stalu微指令送到储存单元126,流程继续进行到方块1006。
在方块1006,储存单元126从由stalu微指令所指定的通用寄存器112(或者从转送总线148)接收储存数据946。如果stalu微指令指定的是一双操作数的算术逻辑单元运算,则储存单元126再接收来自于一第二通用寄存器112(或转送总线148)的第二操作数952。储存单元126的算术逻辑单元162在储存数据946上(以及于指定时,亦包括在第二操作数952上)执行由stalu微指令所指定的算术逻辑单元运算,以产生算术逻辑单元结果156。流程继续进行到方块1008。
在方块1008,储存单元126将算术逻辑单元结果156写入存储器子系统116的一储存缓冲器。如上所述,在一实施例中,算术逻辑单元结果156将被写入到的物理存储器地址亦被储存地址单元写入至该储存缓冲器,以因应一储存地址微指令。流程继续进行到方块1012。
在方块1012,储存缓冲器将算术逻辑单元结果156写入存储器,流程结束。
图11显示传统微处理器的运作流程,用以比对本发明所述的超纯量管线微处理器100的运作。虽然图1所示的超纯量管线微处理器100中的组件亦存在于图11的描述中,但必须了解的是传统微处理器中的储存单元并不包括用以在储存数据上执行算术逻辑单元运算的一算术逻辑单元,且指令转译器并不会针对储存数据产生特别的stalu微指令。流程从方块1102开始进行。
在方块1102,指令转译器104译码一宏指令132并将的转译为二个微指令134,宏指令132指定了容纳一操作数的一通用寄存器112,一算术逻辑单元运算即执行于该操作数上以产生一结果并将结果写入存储器中。第一个转译后的微指令为一算术逻辑单元指令,该算术逻辑单元指令针对其来源操作数指定了与宏指令132所指定的相同的通用寄存器112,且该算术逻辑单元指令亦指定了与宏指令132所指定的相同的算术逻辑单元运算。该算术逻辑单元指令针对其目的操作数指定了一临时寄存器。第二个转译后的微指令为一储存微指令,该储存微指令针对其来源操作数(意即针对其储存数据)指定了上述临时寄存器。流程继续进行到方块1104。
在方块1104,保留站112将alu微指令送到整数单元122,流程继续进行到方块1106。
在方块1106,整数单元122从alu微指令所指定的通用寄存器112接收来源操作数,并且在来源操作数上执行由alu微指令所指定的算术逻辑单元运算以产生一结果。流程继续进行到方块1108与方块1112。
在方块1108,整数单元122将结果输出到结果总线152上,流程继续进行到方块1114。
在方块1112,保留站108将储存微指令送到储存单元126,流程继续进行到方块1114。
在方块1114,储存单元126通过结果总线152从整数单元112接收结果,流程继续进行到方块1116。
在方块1116,储存单元126将结果写入储存缓冲器,流程继续进行到方块1118。
在方块1118,储存缓冲器将结果写入存储器,流程结束。
比较图10与图11可发现,指令转译器104产生一单一stalu微指令,且储存单元126包括一算术逻辑单元162以执行由stalu微指令所指定的算术逻辑单元运算,此有利地避免了由传统微处理器所引起的转送运作,如图12所示。
图12是根据本发明一实施例所述的效果的时间图。图中展示了三个频率周期,图左侧所示为传统微处理器中由寄存器区隔的管线流阶段,图右侧所示为本发明一实施例的超纯量管线微处理器100中由寄存器区隔的管线流阶段。在图12所示的范例中,假设了储存单元126包括单一管线流阶段。然而,需要注意的是在其它实施例中,储存单元126可具有不同数量的管线流阶段。而在图12所示的范例中,假设了传统微处理器中的整数算术逻辑单元包括单一阶段。
在传统微处理器中,一alu微指令接在整数单元122用以执行指定算术逻辑单元运算的管线流阶段之后进行,该指定的算术逻辑单元运算是用以于频率周期1内产生一结果。然后该结果通过转送总线148从整数单元被转送至储存单元,而储存单元于频率周期2内接收该结果为储存数据。最后在频率周期3,储存数据被写入储存缓冲器。
在如图1所示的超纯量管线微处理器100中,一stalu指令接在储存单元126于频率周期1的管线流阶段之后进行。相较于传统的微处理器,在频率周期1,储存单元126中的算术逻辑单元162在储存数据946上(以及于指定时,亦包括在第二操作数952上)执行由stalu微指令所指定的算术逻辑单元运算,以产生算术逻辑单元结果156。在频率周期2,由储存单元126所产生的算术逻辑单元结果156被写入储存缓冲器。因此可见,如图1所示的超纯量管线微处理器100至少在比传统微处理器更早一频率周期时,即产生了算术逻辑单元结果156并且让储存缓冲器与其它指令可取得算术逻辑单元结果156。而如上述所言,当信号在转送总线上来去不同执行单元之间所需的距离、以及该信号传输线的阻容电路时间常数增加时,意即转送延迟增加时,那么本发明所能省下的时间也就跟着提升了。
需要注意的是,虽然在图10所述的实施例中,宏指令132指定了用以容纳一操作数的通用寄存器112,且一算术逻辑单元运算在该操作数上执行以产生一结果而该结果将被写入存储器,但指令转译器104可产生一stalu微指令以及其它微指令(包括ldalu微指令)以实作其它宏指令。举例来说,某些宏指令132于一存储器操作数上指定了读取、修改、或写入类型的运算,也就是说,宏指令指定了一算术逻辑单元运算以及一存储器地址,且该存储器地址为该算术逻辑单元运算所执行其上的操作数的地址,而该结果将被写回该存储器地址。针对这样的宏指令,本发明的指令转译器104可产生其后接着一stalu微指令的一传统的加载微指令,或者其后接着一传统的储存微指令的一ldalu微指令。
本发明的另一优点是通过将加载微指令与alu(alu与储存)微指令合并至单一ldalu(stalu)微指令,在超纯量管线微处理器100中,一次仅会耗用一个指令槽(instruction slot)而非两个指令槽。举例来说,ldalu(stalu)微指令仅分别占用寄存器别名表116、保留站108、以及重排缓冲器114中的一个项目(entry)而已,而非如加载微指令与alu(alu与储存)微指令会分别占用寄存器别名表116、保留站108、以及重排缓冲器114中的两个项目。特别是通过整理出重排缓冲器114中的更多空间给更多微指令使用,ldalu微指令可能创造出用以送出指令到执行单元122/124/126的一较大的微指令集用池(pool)或窗口,因而可能增加超纯量管线微处理器100的前视(lookahead)能力,使更加充分利用程序执行时的指令级平行化,并且可提升执行单元122/124/126的使用状况。再者,单一ldalu微指令只会产生两次对通用寄存器112的存取(读取来源操作数、以及写入结果),而加载与alu微指令序列则产生四次存取。因此,本发明可降低通用寄存器112的拥塞状况,并且可使超纯量管线微处理器100的设计包括较小、较快、耗用较低功率、以及较不复杂的通用寄存器112。最后,指令转译器104每个频率周期可产生的微指令数量是有限的(该数量在一实施例中为3,在另一实施例中则为4)。另根据一实施例,为了降低指令转译器104的复杂度,指令转译器104必须在同一个频率周期内产生实作一已知宏指令所需的所有微指令,这使得部分的有限数量指令槽在某些频率周期时是空着的,因此,让指令转译器104能够少产生一微指令以实作某些宏指令,可使指令转译器104充分利用有限数量指令槽并以较快的速率转译宏指令。
纵然上述实施例是针对x86架构的微处理器,但本发明并不只限定于x86架构的微处理器。反之,将一或多个算术逻辑单元并入超纯量管线微处理器中的管线加载以及/或储存单元,此一概念亦可运用于其它架构的微处理器中。
另外,虽然上述实施例所描述的指令转译器产生ldalu微指令(或stalu微指令),例如图3中的方块302,以因应一复杂的宏指令需要从存储器进行读取与一算术逻辑单元运算(或者需要一算术逻辑单元运算与进行写入存储器),但在其它实施例中,指令转译器可辨识一宏指令序列,该宏指令序列中的第一个宏指令将一操作数从存储器搬移至一寄存器,其后该宏指令序列中的第二个宏指令在该寄存器中的该操作数上执行一算术逻辑单元运算并将该操作数写入一目的寄存器(或者该宏指令序列中的第一个宏指令在寄存器中的操作数上执行一算术逻辑单元运算并将该操作数写入一目的寄存器,其后该宏指令序列中的第二个宏指令再将该操作数从目的寄存器搬移至存储器)。指令转译器将这两个宏指令整合至一单一ldalu微指令,该单一ldalu微指令指示加载单元在将加载数据写入目的寄存器的前,于加载数据上执行算术逻辑单元运算(或者整合至一单一stalu微指令,该单一stalu微指令只是储存单元在将储存数据写入存储器的前,于储存数据上执行算术逻辑单元运算),从而避免掉结果转送延迟。换言之,ldalu微指令与stalu微指令可运用在各式情况中并带来效益,不止是因应转译单一宏指令。在另一范例的一实施例中,超纯量管线微处理器100包括一微码单元与一微序列发生器(microsequencer),微码单元所包括的微码例程的微码指令是储存于一微码存储器,而微序列发生器则将微指令定序于超纯量管线微处理器100的管线流中。该微码可供指令转译器104使用以实作复杂的宏指令、或执行其它功能,例如:内建自我测试(Built-In Self-Test,BIST)或超纯量管线微处理器100的其它初始化功能。该微码可有利地随时视需求使用ldalu微指令与stalu微指令以降低程序于超纯量管线微处理器100上的执行时间以及/或程序代码大小。
此外,上述实施例所描述位于加载单元或储存单元中的算术逻辑单元需要少于一个频率周期以执行算术逻辑单元运算(意即算术逻辑单元运算是执行于加载单元或储存单元的最后管线流阶段所对应的频率周期的一部份),使得执行所有加载/储存指令所需的频率周期数量都是相同的,不论加载/储存指令为正规的加载/储存指令或为算术逻辑单元整合加载/储存指令,虽然如此,但在其它实施例中,算术逻辑单元运算所占用的时间多于加载单元或储存单元的最后管线流阶段的可用时间,因此视运算逻辑单元运算的复杂度而定,将造成算术逻辑单元整合加载/储存指令比常规加载/储存指令占用更多频率周期,以及/或造成某些算术逻辑单元整合加载/储存指令比其它算术逻辑单元整合加载/储存指令占用更多频率周期。在此实施例中,保留站中的指令排序器(scheduler)则必须考虑执行一加载/储存指令所需的频率周期的可变量量。
本发明虽以各种实施例揭露如上,然而其仅为范例参考而非用以限定本发明的范围,任何熟习此项技艺者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰。举例来说,软件可实现相关于本发明的装置与方法的功能、制造、模块化(modeling)、模拟(simulation)、描述(description)、以及/或测试等等。该软件可使用一般程序设计语言(如:C、C++)、硬件描述语言(如:Verilog HDL、VHDL等等)、或其它可得的程序来实作。且该软件可配置于任何公知的计算机可使用媒体中,例如:半导体、磁盘、或光盘(如只读记忆光盘(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc Read-Only Memory,DVD-ROM)等等)。本发明所述的装置与方法的实施例可包括于一半导体智财核心(semiconductorintellectual property core)中,例如:微处理器核心(如:嵌入于硬件描述语言中),再进一步转换为硬件的集成电路产品。另外,本发明所述的装置与方法可以硬件与软件的一组合方式嵌入。因此,上述实施例并非用以限定本发明的范围,本发明的保护范围当视后附的权利要求所界定者为准。特别是,本发明可实作于一微处理器装置,且该微处理器装置可使用于一般用途的计算机。最后,熟习此项技艺者应当可理解在不脱离本发明的精神和范围内,以上述所揭露的实施例与概念设计出与本发明相同目的的其它架构。
Claims (17)
1.一种超纯量管线微处理器,包括:
一寄存器集合,由该超纯量管线微处理器的一指令集架构所界定;
一高速缓存;
多个执行单元;
一指令转译器,用以将由上述指令集架构所界定的宏指令序列转译为一单一微指令,其中该宏指令序列包括一执行加载的宏指令和一执行算术逻辑单元运算的宏指令、或一执行算术逻辑单元运算的宏指令和一执行储存的宏指令;以及
一加载单元,耦接至上述高速缓存,上述加载单元是不同于该超纯量管线微处理器的其它执行单元,且上述加载单元包括一算术逻辑单元,
其中上述加载单元是用以接收一第一指令,上述第一指令是指定一第一来源操作数的一第一存储器地址、在上述第一来源操作数上执行并产生一结果的一运算、以及上述寄存器集合中用以储存上述结果的一第一目的寄存器,
其中上述加载单元是用以自上述高速缓存读取上述第一来源操作数,
其中上述算术逻辑单元是用以在上述第一来源操作数上执行上述运算以产生上述结果,而非将上述第一来源操作数转送至该超纯量管线微处理器的其它执行单元的任一者以在上述第一来源操作数上执行上述运算以产生上述结果,
其中上述加载单元更用以输出上述结果以供后续引退至上述第一目的寄存器之用。
2.如权利要求1所述的超纯量管线微处理器,其中上述加载单元更用以接收一第二指令,上述第二指令是指定一第二来源操作数的一第二存储器地址、以及上述寄存器集合中用以储存上述第二来源操作数的一第二目的寄存器,而上述第二来源操作数的储存并不需要在上述第二来源操作数上执行一第二运算,其中上述加载单元以相同数量的频率周期执行上述第一指令与上述第二指令。
3.如权利要求1所述的超纯量管线微处理器,其中上述加载单元更包括:
一地址产生器;以及
一总线,耦接至上述地址产生器,上述总线是用以将上述第一指令的上述结果转送至上述地址产生器的一输入端,其中上述地址产生器是用以使用转送的上述结果产生一存储器位置以使上述加载单元自上述高速缓存中读取一后续加载指令。
4.如权利要求1所述的超纯量管线微处理器,其中该超纯量管线微处理器的其它执行单元皆未用以读取上述高速缓存。
5.如权利要求1所述的超纯量管线微处理器,其中该超纯量管线微处理器的其它执行单元的至少一者具有另一算术逻辑单元,上述另一算术逻辑单元是用以执行上述第一指令所指定的上述运算,而上述加载单元并未将上述第一来源操作数转送至上述其它执行单元的至少一者并在上述第一来源操作数上执行上述运算以产生上述结果。
6.如权利要求1所述的超纯量管线微处理器,其中上述加载单元是用以执行从上述高速缓存所读取的所有指令,而上述其它执行单元并未执行从上述高速缓存所读取的任何指令。
7.如权利要求1所述的超纯量管线微处理器,其中上述运算是执行于上述第一来源操作数与一第二来源操作数上,以产生上述结果,其中上述第二来源操作数是由上述寄存器集合的一寄存器提供至上述加载单元。
8.如权利要求1所述的超纯量管线微处理器,其中上述加载单元仅需对上述寄存器集合进行两次存取以执行上述第一指令。
9.如权利要求1所述的超纯量管线微处理器,其中上述指令转译器用以将一第一宏指令转译为由上述加载单元所执行的上述第一指令,其中上述第一宏指令是由上述指令集架构所界定。
10.如权利要求9所述的超纯量管线微处理器,其中上述指令转译器更用以将由上述指令集架构所界定的一第二宏指令转译为一对指令,上述对指令包括上述第一指令与一第二指令,其中上述第二指令是由上述其它执行单元之一者所执行,且上述其它执行单元之一者自上述加载单元接收上述第一指令的上述结果并将上述结果写入上述高速缓存。
11.如权利要求1所述的超纯量管线微处理器,其中上述运算包括以下运算的至少一者:
一零值延伸运算,上述零值延伸运算将上述第一来源操作数进行零值延伸至上述第一目的寄存器的一大小;
一布尔反运算,上述布尔反运算将上述第一来源操作数的每个位反向;
一不等门运算,上述不等门运算产生上述第一来源操作数的一二补码负位;
一增量运算,上述增量运算将上述第一来源操作数增量;
一减量运算,上述减量运算将上述第一来源操作数减量;
一符号延伸运算,上述符号延伸运算将上述第一来源操作数进行符号延伸;
一零值侦测运算,上述零值侦测运算于上述第一来源操作数为零时,产生上述结果的值为真,而于上述第一来源操作数为非零时,产生上述结果的值为假;
一壹值侦测运算,上述壹值侦测运算于上述第一来源操作数的所有位皆为二进制的壹值时,产生上述结果的值为真,反之则产生上述结果的值为假;
一数据格式转换运算,上述数据格式转换运算将上述第一来源操作数格式化为一数据格式,且上述数据格式不同于上述第一来源操作数自上述高速缓存被读出时的数据格式,其中上述第一指令指定上述数据格式;
一布尔逻辑运算,其中上述算术逻辑单元在上述第一来源操作数与一第二来源操作数上执行上述布尔逻辑运算以产生上述结果;以及
一算术运算,其中上述算术逻辑单元在上述第一来源操作数与一第二来源操作数上执行上述算术运算以产生上述结果。
12.一种指令处理方法,适用于一超纯量管线微处理器,该超纯量管线微处理器具有由该超纯量管线微处理器的一指令集架构所界定的一寄存器集合、一高速缓存、多个执行单元、以及不同于该超纯量管线微处理器的其它执行单元的一加载单元,且上述加载单元包括一算术逻辑单元,上述指令处理方法包括:
将由上述指令集架构所界定的宏指令序列转译为一单一微指令,其中该宏指令序列包括一执行加载的宏指令和一执行算术逻辑单元运算的宏指令、或一执行算术逻辑单元运算的宏指令和一执行储存的宏指令;
由上述加载单元接收一第一指令,上述第一指令是指定一第一来源操作数的一第一存储器地址、在上述第一来源操作数上执行并产生一结果的一运算、以及上述寄存器集合中用以储存上述结果的一第一目的寄存器;
由上述加载单元自上述高速缓存读取上述第一来源操作数;
由上述算术逻辑单元在上述第一来源操作数上执行上述运算以产生上述结果,而非将上述第一来源操作数转送至该超纯量管线微处理器的其它执行单元的任一者以在上述第一来源操作数上执行上述运算以产生上述结果;以及
由上述加载单元输出上述结果以供后续引退至上述第一目的寄存器使用。
13.如权利要求12所述的指令处理方法,更包括由上述加载单元接收一第二指令,上述第二指令是指定一第二来源操作数的一第二存储器地址、以及上述寄存器集合中用以储存上述第二来源操作数的一第二目的寄存器,而上述第二来源操作数的储存并不需要在上述第二来源操作数上执行一第二运算,
其中上述第一指令与上述第二指令是由上述加载单元以相同数量的频率周期数执行。
14.如权利要求第12项所述的指令处理方法,更包括由上述加载单元执行以下步骤:
接收上述第一指令后续的一第二指令,其中上述第二指令是指定上述第一目的寄存器为一来源寄存器;
将上述第一指令的上述结果转送至上述加载单元;
使用上述转送的结果产生上述第二指令的一第二存储器地址;以及
使用上述第二存储器地址读取上述高速缓存。
15.如权利要求12所述的指令处理方法,更包括:
将一第一宏指令转译为由上述加载单元所执行的上述第一指令,其中上述第一宏指令是由上述指令集架构所界定。
16.如权利要求15所述的指令处理方法,更包括:
将由上述指令集架构所界定的一第二宏指令转译为上述第一指令与一第二指令,其中上述第二指令是由上述其它执行单元之一者所执行,且上述其它执行单元之一者自上述加载单元接收上述第一指令的上述结果并将上述结果写入上述高速缓存。
17.如权利要求12所述的指令处理方法,其中上述运算包括以下运算的至少一者:
一零值延伸运算,上述零值延伸运算将上述第一来源操作数进行零值延伸至上述第一目的寄存器的一大小;
一布尔反运算,上述布尔反运算将上述第一来源操作数的每个位反向;
一不等门运算,上述不等门运算产生上述第一来源操作数的一二补码负位;
一增量运算,上述增量运算将上述第一来源操作数增量;
一减量运算,上述减量运算将上述第一来源操作数减量;
一符号延伸运算,上述符号延伸运算将上述第一来源操作数进行符号延伸;
一零值侦测运算,上述零值侦测运算于上述第一来源操作数为零时,产生上述结果的值为真,而于上述第一来源操作数为非零时,产生上述结果的值为假;
一壹值侦测运算,上述壹值侦测运算于上述第一来源操作数的所有位皆为二进制的壹值时,产生上述结果的值为真,反之则产生上述结果的值为假;
一数据格式转换运算,上述数据格式转换运算将上述第一来源操作数格式化为一数据格式,且上述数据格式不同于上述第一来源操作数自上述高速缓存被读出时的数据格式,其中上述第一指令指定上述数据格式;
一布尔逻辑运算,其中上述算术逻辑单元在上述第一来源操作数与一第二来源操作数上执行上述布尔逻辑运算以产生上述结果;以及
一算术运算,其中上述算术逻辑单元在上述第一来源操作数与一第二来源操作数上执行上述算术运算以产生上述结果。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23225409P | 2009-08-07 | 2009-08-07 | |
US61/232,254 | 2009-08-07 | ||
US12/609,169 | 2009-10-30 | ||
US12/609,169 US9501286B2 (en) | 2009-08-07 | 2009-10-30 | Microprocessor with ALU integrated into load unit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101907984A CN101907984A (zh) | 2010-12-08 |
CN101907984B true CN101907984B (zh) | 2014-10-29 |
Family
ID=43263453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010243213.9A Active CN101907984B (zh) | 2009-08-07 | 2010-07-28 | 指令处理方法以及其所适用的超纯量管线微处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101907984B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
CN104011664B (zh) * | 2011-12-23 | 2016-12-28 | 英特尔公司 | 使用三个标量项的超级乘加(超级madd)指令 |
US9250916B2 (en) * | 2013-03-12 | 2016-02-02 | International Business Machines Corporation | Chaining between exposed vector pipelines |
US10275217B2 (en) * | 2017-03-14 | 2019-04-30 | Samsung Electronics Co., Ltd. | Memory load and arithmetic load unit (ALU) fusing |
CN107276745B (zh) * | 2017-06-23 | 2020-08-04 | 上海兆芯集成电路有限公司 | 实施安全哈希算法的处理器以及数字信号处理方法 |
WO2022174542A1 (zh) * | 2021-02-19 | 2022-08-25 | 华为技术有限公司 | 一种数据处理的方法、装置、处理器和计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021779A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 一种针对流处理器的指令控制方法 |
CN101329622A (zh) * | 2008-02-08 | 2008-12-24 | 威盛电子股份有限公司 | 微处理器以及宏指令执行方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330657B1 (en) * | 1999-05-18 | 2001-12-11 | Ip-First, L.L.C. | Pairing of micro instructions in the instruction queue |
US7536560B2 (en) * | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7415597B2 (en) * | 2004-09-08 | 2008-08-19 | Advanced Micro Devices, Inc. | Processor with dependence mechanism to predict whether a load is dependent on older store |
-
2010
- 2010-07-28 CN CN201010243213.9A patent/CN101907984B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021779A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 一种针对流处理器的指令控制方法 |
CN101329622A (zh) * | 2008-02-08 | 2008-12-24 | 威盛电子股份有限公司 | 微处理器以及宏指令执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101907984A (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI423127B (zh) | 指令處理方法以及其所適用之超純量管線微處理器 | |
US10387319B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features | |
CN107077321B (zh) | 用于执行融合的单个周期递增-比较-跳转的指令和逻辑 | |
US10515049B1 (en) | Memory circuits and methods for distributed memory hazard detection and error recovery | |
CN104881270B (zh) | 具有条件指令的微处理器及其处理方法 | |
US8386755B2 (en) | Non-atomic scheduling of micro-operations to perform round instruction | |
US6279100B1 (en) | Local stall control method and structure in a microprocessor | |
WO2019194916A1 (en) | Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator | |
US5675758A (en) | Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations | |
CN103218203B (zh) | 具有条件指令的微处理器及其处理方法 | |
US9513908B2 (en) | Streaming memory transpose operations | |
CN101907984B (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
US9367314B2 (en) | Converting conditional short forward branches to computationally equivalent predicated instructions | |
US9141362B2 (en) | Method and apparatus to schedule store instructions across atomic regions in binary translation | |
US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
CN101944012A (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
US6115730A (en) | Reloadable floating point unit | |
Shum et al. | Design and microarchitecture of the IBM System z10 microprocessor | |
US7991816B2 (en) | Inverting data on result bus to prepare for instruction in the next cycle for high frequency execution units | |
US7783692B1 (en) | Fast flag generation | |
Jaya et al. | Design of RISCV Processor using Verilog | |
JP2001142694A (ja) | データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム | |
Jeong et al. | In order issue out-of-order execution floating-point coprocessor for CalmRISC32 | |
Jung | A Hardware/Software Co-reconfigurable Multimedia Architecture |
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 |