CN1255724C - 终止处理器中非必要处理的条件指令的方法与系统 - Google Patents
终止处理器中非必要处理的条件指令的方法与系统 Download PDFInfo
- Publication number
- CN1255724C CN1255724C CNB2004100026008A CN200410002600A CN1255724C CN 1255724 C CN1255724 C CN 1255724C CN B2004100026008 A CNB2004100026008 A CN B2004100026008A CN 200410002600 A CN200410002600 A CN 200410002600A CN 1255724 C CN1255724 C CN 1255724C
- Authority
- CN
- China
- Prior art keywords
- instruction
- conditional order
- stage
- decoding
- order
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000001514 detection method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 239000002699 waste material Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Abstract
本发明提供了一种用以终止处理器中一多时钟条件指令的非必要处理的方法与系统,当条件指令经由管线式程序来做处理时,管线至少包含一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段。本方法会视一个或多个条件是否成立,来确定条件指令是否为可执行的。如果条件指令于译码阶段和执行阶段中皆会被处理,且条件指令于执行阶段中不会被执行时,则条件指令于译码阶段时就会被终止,也有可能于中间处理阶段被终止。提早终止如此的条件指令有助于处理器节省处理资源以及降低能源消耗。
Description
技术领域
本发明是有关于一般的计算机,特别是有关于一种用来将某些必要之执行条件不成立的指令提早终止的方法与系统。
背景技术
如同我们所知,处理器经由一个顺序的处理阶段执行一个单独的指令,这个顺序基本上可能包含着将指令从内存中取出、将指令译码、从寄存器组中存取必要的操作数、处理操作数以得到结果或是一存储器地址、必要时存取存储器中的数据操作数以及将结果写回寄存器组内。现代的计算机处理器靠着执行许多的指令来实行计算作业,不同的作业可能会需要不同的元件以完成工作,为了增加处理器的效率,在目前的指令尚未完全处理完毕前就开始处理下一个指令是更为有效的方式,如此,在任何一时间里都有不同的指令在不同的阶段里被顺序地处理着,这就被称之为“管线”(pipelining),大部分计算机处理器的运作都是利用管线的方法来得到最大的计算能力。
更进一步地说,有一些指令是必须依靠某些先决条件成立才能执行的条件指令(conditional instruction),这些指令当中有一些是需要多时钟周期才得以完整执行的,就像其它的指令一样,条件指令也是和别的指令一同被管线式的处理着,当一个或多个从多时钟条件指令分出的部分往最后的执行阶段传递时,它们可以位于不同的中间处理阶段中。
在整个指令通过不同的处理阶段时,由于其先决条件可能不符合,所以许多条件指令无法执行的情况,事实上并不罕见。处理器是否察觉到一个不符合的条件可由条件状态码或处理器中关于某特定指令的信号反映出来。虽然已经确定这个指令于执行阶段时的执行条件需求不会符合,而一个需要多时钟来执行的指令,其可能会利用或是浪费其它阶段的资源。无论如何,在先前技术中,尽管已经确定条件指令不会为处理器所执行,但处理器不会停止剩余指令的执行,如此,处理这些非执行条件指令造成了系统资源大量的浪费。
在此所需要的是一种改进的方法及系统用以尽可能的提早终止那些条件不符合的条件指令来防止它们被执行,然后得以节省系统资源。
发明内容
本发明公开了一种用以终止处理器中一多时钟条件指令之非必要处理的方法与系统,当条件指令经由管线式程序来做处理时,此管线至少包含一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段。本方法会视一个或多个条件是否成立,来确定条件指令是否为可执行的。当条件指令到达执行阶段时,则可确定是否要执行或是略过这个条件指令,如执行阶段里所做出的确定是要略过指令的执行,则目前于译码阶段被处理的指令会被终止然后下一个指令会被送入译码阶段。
本发明的用以终止处理器中一多时钟条件指令之非必要处理的方法包括:确定该条件指令于该执行阶段是否会被执行,是依据一个或多个条件是否符合来确定的;确定该条件指令是否于该译码阶段中进行处理;确定位于解码阶段内的指令和执行阶段所判定的指令相同;以及终止该译码阶段中的该条件指令,是如果于该执行阶段中该条件指令被确定将不会被执行,以及该条件指令仍然于该译码阶段中被处理时,则终止该译码阶段中的该条件指令。
本发明提供了一个将多时钟条件的指令处理最优化的方法与系统,其降低了因为管线式指令所引发的非必要性数据前向延迟的可能性,通过在处理程序之中提早终止条件指令,可以提升处理器的生产率及节省处理资源。
附图说明
图1为指令处理程序的流程图。
图2为本发明具体实施例的条件指令处理流程图。
图3为本发明具体实施例的预测提早终止条件指令的流程图。
具体实施方式
本发明公开了一种改进的方法与系统,用以尽可能的提早终止某些不会被执行的条件指令来节省系统资源与系统能源。
计算机处理器能够依据一些已成立的条件来有条件地执行一些指令。图1表示了一个处理器通过三个主要处理阶段来执行一个指令的流程图100。可以知道的是有些先前的阶段例如用来取出指令的阶段并没有在图1中说明。当取出指令之后,一些额外的处理一般会被分为三个主要阶段,如译码阶段102、寄存器处理阶段104及执行阶段106。除此之外,还有结果写回数据存储器存取阶段(未显示),该阶段在执行阶段106之后。再者,上述的三个主要阶段的每一阶段都可由复数个较小的管线阶段组成,以致会占用一个或多个时钟周期。指令108被馈入处理器并经过至少这三个主要处理阶段后,产生一个输出结果110。在译码阶段期间,一个处理器的指令译码片段(decode section)假设此指令将会被执行,因为在指令到达执行阶段之前,用来确定执行或略过(skip)的状态需求都是未知的,然后,产生一个需要的微指令控制信号(Microinstruction Control Signal)或称微控制码111(micro-controls)。当微控制码产生后,可藉此来进一步确定执行某特定指令时所需的时钟周期数。在寄存器存取阶段104视指令需要产生数据112之后,从寄存器存取阶段104输出的微控制码114和数据112均一起输入执行阶段106去进行处理。执行阶段106依据使用接收到的数据112及微控制码114经过的计算和比较后,可确定此条件指令是否要适当地被执行或略过。在先前技术中,因为所有的指令都会完全地经过这三个主要阶段,而不论条件指令最后于执行阶段时是否将会被执行,那些实际上在最后被放弃或略过的条件指令,会大量地消耗了处理器时间及能量资源,这种系统资源的浪费在需要多时钟周期的操作情况下特别地严重。
图2表示了一个依据本发明的实施例所公开的处理流程图,其中当某些执行条件明显地不符合时,条件指令会提早被终止。类似图1所示,是假设输入指令202进入各个不同的处理阶段中,如译码阶段204、寄存器存取阶段206以及执行阶段208。指令202是一个需要符合一个或多个条件才能被执行的条件指令,其在经过处理阶段之后,会适当地产生一个结果210。需要注意的是,如果这个条件指令是一个多时钟指令,部分的指令会被处理器所处理,同时会依照“管线式”顺序地行进经过不同的处理阶段。
为了完成上述过程,本发明提供一种终止处理器中非必要处理的条件指令的处理器系统,该条件指令至少经由一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段所构成的处理管线来处理,此处理器系统包括:
用于执行条件探测的装置,其位于该处理器系统的执行阶段中,依据一个或多个条件是否符合来确定该条件指令于该执行阶段是否会被执行;
用于确定该条件指令是否于该译码阶段中进行处理的装置;以及
用于终止条件指令的译码的装置,其位于该处理器系统的译码阶段中,与用于执行条件探测的装置连接,当于该执行阶段中该条件指令被确定将不会被执行,以及该条件指令仍然于该译码阶段中被处理时,终止该译码阶段中的该条件指令。
对于本发明的目的,是在条件指令可能会和至少一个能确定其执行条件的先前指令相关联的原则上,条件指令本身可能就有多个部分会占用多个时钟周期在管线之中传递。当先前的指令完成其执行之后,才会影响条件指令是否能在管线之中彻底执行。依据先前的指令所处理的执行条件来看,先前的指令有可能改变处理器的条件状态。一般来说,处理器中与条件指令202有关的条件状态,会反映出处理器是否察觉条件指令202在执行的过程中其条件全程符合。当先前的指令改变了处理器中与条件指令202有关的条件状态时,一些和这个指令有关联的部分,可能会于译码阶段被终止。
举例来说,现在假设处理器具有12个寄存器和一个加载指令(loadinstruction),其在符合某些条件后,会更新全部的寄存器(这是一个多时钟条件指令),当如此的一个指令进入了译码阶段时,一个处理器中的译码器会发出12条微指令,用以转换给每一个寄存器。这12条微指令不论条件的符合与否,全都会以管线式的顺序通过寄存器存取阶段。从寄存器存取阶段行进到执行阶段的处理过程中,有一条数据线会输出数据211。另外,如图2所示,在译码阶段产生的微控制212会行进经过全部的阶段。
如果有一个执行条件没有符合,则整个指令将会被略过,尽管在执行阶段处理器会浪费资源在“推动(pushing)”部分指令(如12个微指令)以通过管线。如果译码阶段和中间阶段可以分辨出执行的指令将会被略过,以及如果它们可以分辨出这种指令的范围,则这个条件指令就可以在将全部的时钟周期分配去执行该条件指令之前被终止。即本发明的处理器系统,更包括一用于在该中间处理阶段中终止条件指令的装置。如此,系统资源得以节省以及能源消耗得以降低。
为了尽可能以最有效率的方式来执行条件指令,一项反馈机制已被实现。首先,一个指示或是一个控制信号214是最先从执行阶段产生的,其用来标明处理器是否确定条件指令202的一个或多个条件是不符合的。这个信号可作为一执行条件控制信号214,而这个执行条件控制信号214会反馈到译码阶段204,所以管线中的译码阶段204会被通知关于条件指令是否会于执行阶段被略过。反馈信号的第二种类型是一指令识别信号或卷标216,此反馈信号可从译码阶段204、执行阶段208以及中间处理阶段如寄存器处理阶段206中产生。该阶段包括通过用于执行条件探测的装置和用于确定该条件指令是否于该译码阶段中进行处理的装置进行。指令识别卷标216识别了正在经过管线的部分条件指令202。即本发明的处理器系统,其中该用于终止条件指令的译码的装置更包括自每一个处理阶段产生一指令识别信号的装置,用以确认于其中处理该条件指令的一部分。在执行阶段中指令识别卷标216确保了已确定要被略过的条件指令和会提早在译码阶段被终止的条件指令是同一个。必须要注意的是,如果需要的话,可以产生一个以上的指令识别卷标216,并且,尽管寄存器处理阶段可以用来代表译码阶段与执行阶段之间所有必须的中间处理阶段,在译码阶段与执行阶段之间也可以包括除了寄存器存取阶段以外的其它中间处理阶段。
利用具有执行条件控制信号和指令识别卷标的反馈机制,一旦译码阶段被通知有个特定的条件指令因为某条件不符合所以确定要被略过,处理器便停止译码这个条件指令。同样地,在中间处理阶段中,部分的条件指令也会被立即地终止。即通过用于终止条件指令的译码的装置,终止该译码阶段中的该条件指令。如此,如果指令已被执行,则译码阶段可以在不用产生所需求的全部微指令的情形下,终止条件指令202,并且目前产生的微指令码不必完全地行进至执行阶段。
下列的第一表是表示了符合先前技术的指令行进过程,其假设了指令[N-1]是一个在条件指令[N]之前改变处理器中状态寄存器的内容值的比较指令,其中指令[N]是一个需要8个时钟周期来完成的指令,N(a)到N(h)表示了指令在管线中的各个部分。接下来,指令[N+1]到指令[N+4]为接续指令[N]的后续指令,管线包括了如取出、译码、寄存器读取、执行以及寄存器写入等处理阶段。如第一表的说明,即使指令[N-1]的执行确定了指令[N]将不会被执行,指令[N+1]将不会被执行直到N(h)通过了管线,在这种情况下占用了11个时钟周期来将条件指令[N]处理完成。
时钟 | 取出 | 译码 | 寄存器读取 | 执行 | 寄存器写入 | 备注 |
1 | N+1 | N | N-1 | N-2 | N-3 | 开始执行指令[N] |
2 | N+1 | N | N(a) | N-1 | N-2 | 执行指令[N-1],改变状态寄存器 |
3 | N+1 | N | N(b) | N(a) | N-1 | 探测到指令[N]不会被执行 |
4 | N+1 | N | N(c) | N(b) | N(a) | 不执行 |
5 | N+1 | N | N(d) | N(c) | N(b) | 不执行 |
6 | N+1 | N | N(e) | N(d) | N(c) | 不执行 |
7 | N+1 | N | N(f) | N(e) | N(d) | 不执行 |
8 | N+1 | N | N(g) | N(f) | N(e) | 不执行 |
9 | N+2 | N+1 | N(h) | N(g) | N(f) | 不执行 |
10 | N+3 | N+2 | N+1 | N(h) | N(g) | 不执行 |
11 | N+4 | N+3 | N+2 | N+1 | N(h) | 评估指令[N+1]会被执行 |
第一表
第二表是表示了依据本发明的指令传递及终止条件指令的方法,如之前和下列的第二表所述,在管线式的处理器当中,多时钟指令的处理会被分割通过许多的处理阶段。指令[N]将会在指令[N-1]到达执行阶段以及将标示着指令[N]的执行条件的状态寄存器改变成为不符合之后被终止。在下一个时钟周期中,指令[N+1]不须等到N(h)传递通过管线即可立即移入译码阶段。如下表所示,现在时钟周期的总数量已由先前如第一表所示的11个时钟周期下降到6个。
时钟 | 取出 | 译码 | 寄存器读取 | 执行 | 寄存器写入 | 备注 |
1 | N+1 | N | N-1 | N-2 | N-3 | 开始执行指令[N] |
2 | N+1 | N | N(a) | N-1 | N-2 | 执行指令[N-1],改变状态寄存器 |
3 | N+1 | N | N(b) | N(a) | N-1 | 探测到指令[N]不会被执行 |
4 | N+2 | N+1 | N(c) | N(b) | N(a) | 译码指令[N+1] |
5 | N+3 | N+2 | N+1 | N(c) | N(b) | 传递指令 |
6 | N+4 | N+3 | N+2 | N+1 | N(c) | 评估指令[N+1]会被执行 |
第二表
当于译码阶段终止条件指令时,条件指令可能会被转换为一个无操作意义(meaningless operation)的微指令码,例如单时钟无操作指令。这个转换成为无操作指令(no-operation instruction)的操作防止了条件指令202更进一步地传递通过其它的处理阶段以及排除了利用额外处理资源的需要。此外,处理器可能需要识别条件指令的结尾,这样才可明白指令处于处理管线的何处。为达到这个要求,可以在任何的处理阶段产生一个指令结尾(end-of-instruction)消息或信号。即本发明的处理器系统,在用于终止条件指令的译码的装置中更包括自该处理管线产生一指令结尾信号的装置。
图3是表示一个依据本发明如何能提早终止条件指令的执行流程图300。首先,在步骤302里,依据一个或多个于执行前需要符合的条件,来确定处理器是否在执行阶段执行此条件指令。如果处理器已确定略过此条件指令,则步骤304会探测条件指令是否仍然在译码阶段中接受处理。如果条件指令仍然在译码阶段中接受处理,步骤306可以确保即将在译码阶段中被终止的指令和处理器决定要在执行阶段就略过的指令是相同的。这个过程可以利用实行前述的指令识别卷标来达成。接下来,在步骤308里,译码阶段中的条件指令会随即被终止。在步骤310中,于其它处理阶段里的条件指令也会被终止。在此要注意的是,如果发现一个条件指令在执行阶段将会被略过,即本发明的系统用于终止条件指令的译码的装置包括了一忽略装置,其忽略一个或多个移入到该执行阶段的部分条件指令。但是此条件指令已不再停留在译码阶段时,则这指令在处理管线里其它的处理阶段之中依然会被尽可能地终止。回到了步骤302,如果发现了全部的条件都符合时,则步骤312会执行该指令,之后下一个指令会被接受,然后在目前指令完成后(步骤314)被移入到译码阶段中。
本项发明提供了一种处理条件指令最优化的方法与系统,特别是用于多时钟的条件指令,它降低了因为管线式指令处理所引发的非必要性的数据前向延迟的可能性,藉由在处理程序之中提早终止条件指令,而自然能够提升处理器的生产率,因为能够避免额外的作业,所以处理器资源和能量的消耗才能够大量的降低,并且提升处理器的生产率。
本发明在上述的公开中,提出了多种不同的实施例以实现本发明中不同的特点,并且也说明了其组成具体例子和处理描述以帮助本项发明的阐述。然而,以上所述仅为本发明之具体实施例而已,并非用以限定本发明之申请专利范围;凡其它未脱离本发明所揭示之精神下所完成之等效改变或修饰,均应包含在所述的申请专利范围内。
Claims (13)
1.一种终止处理器中非必要处理的条件指令的方法,该条件指令至少经由一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段所构成的处理管线来处理,本方法包括:
确定该条件指令于该执行阶段是否会被执行,是依据一个或多个条件是否符合来确定的;
确定该条件指令是否于该译码阶段中进行处理;
确定位于解码阶段内的指令和执行阶段所判定的指令相同;以及
终止该译码阶段中的该条件指令,是如果于该执行阶段中该条件指令被确定将不会被执行,以及该条件指令仍然于该译码阶段中被处理时,则终止该译码阶段中的该条件指令。
2.如权利要求1所述的方法,其中确定该条件指令是否会被执行之步骤更包含自该执行阶段产生一控制信号反馈至该译码阶段以标明该条件指令是否将会被执行。
3.如权利要求1所述的方法,更包括于该中间处理阶段中终止该条件指令。
4.如权利要求1所述的方法,其中该终止操作更包括能确保终止该处理管线中该条件指令的一部分,即自每一个处理阶段产生一个指令识别信号,以确认于其中处理该条件指令的一部分。
5.如权利要求1所述的方法,其中该终止操作更包括自该译码阶段或任何该中间处理阶段产生一指令结尾信号。
6.如权利要求1所述的方法,其中该终止操作更包括在该译码阶段将该条件指令转换为一无意义的单时钟操作。
7.如权利要求1所述的方法更包括当该条件指令被终止时,将该条件指令之后的指令移入该译码阶段。
8.一种终止处理器中非必要处理的条件指令的处理器系统,该条件指令至少经由一译码阶段、一执行阶段以及在这两者之间的一个或多个中间处理阶段所构成的处理管线来处理,此处理器系统包括:
用于执行条件探测的装置,其位于该处理器系统的执行阶段中,依据一个或多个条件是否符合来确定该条件指令于该执行阶段是否会被执行,用于确定该条件指令是否于该译码阶段中进行处理的装置;以及
用于终止条件指令的译码的装置,其位于该处理器系统的译码阶段中,与用于执行条件探测的装置连接,当于该执行阶段中该条件指令被确定将不会被执行,以及该条件指令仍然于该译码阶段中被处理时,终止该译码阶段中的该条件指令。
9.如权利要求8所述的处理器系统,其中该用于执行条件探测的装置更包含一用于产生一控制信号自该执行阶段反馈至该译码阶段用以标明该条件指令是否会被执行的装置,该装置产生的控制信号被发送到用于终止条件指令的译码的装置。
10.如权利要求8所述的处理器系统,更包括一用于在该中间处理阶段中终止条件指令的装置。
11.如权利要求8所述的处理器系统,其中该用于终止条件指令的译码的装置更包括自每一个处理阶段产生一指令识别信号的装置,用以确认于其中处理该条件指令的一部分。
12.如权利要求8所述的处理器系统,其中该用于终止条件指令的译码的装置更包括自该处理管线产生一指令结尾信号的装置。
13.如权利要求8所述的处理器,其中该用于终止条件指令的译码的装置包括了一忽略装置,其忽略一个或多个移入到该执行阶段的部分条件指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/459,283 | 2003-06-11 | ||
US10/459,283 US20040255103A1 (en) | 2003-06-11 | 2003-06-11 | Method and system for terminating unnecessary processing of a conditional instruction in a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1523496A CN1523496A (zh) | 2004-08-25 |
CN1255724C true CN1255724C (zh) | 2006-05-10 |
Family
ID=33510785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100026008A Expired - Lifetime CN1255724C (zh) | 2003-06-11 | 2004-02-02 | 终止处理器中非必要处理的条件指令的方法与系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040255103A1 (zh) |
CN (1) | CN1255724C (zh) |
TW (1) | TWI237795B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200654A1 (en) * | 2005-03-04 | 2006-09-07 | Dieffenderfer James N | Stop waiting for source operand when conditional instruction will not execute |
US20110047357A1 (en) * | 2009-08-19 | 2011-02-24 | Qualcomm Incorporated | Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions |
US9710277B2 (en) * | 2010-09-24 | 2017-07-18 | Intel Corporation | Processor power management based on class and content of instructions |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9274795B2 (en) * | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
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 |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
EP2624126B1 (en) * | 2011-04-07 | 2016-11-02 | VIA Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5617574A (en) * | 1989-05-04 | 1997-04-01 | Texas Instruments Incorporated | Devices, systems and methods for conditional instructions |
US5692151A (en) * | 1994-11-14 | 1997-11-25 | International Business Machines Corporation | High performance/low cost access hazard detection in pipelined cache controller using comparators with a width shorter than and independent of total width of memory address |
US6449694B1 (en) * | 1999-07-27 | 2002-09-10 | Intel Corporation | Low power cache operation through the use of partial tag comparison |
US6453390B1 (en) * | 1999-12-10 | 2002-09-17 | International Business Machines Corporation | Processor cycle time independent pipeline cache and method for pipelining data from a cache |
US6662294B1 (en) * | 2000-09-28 | 2003-12-09 | International Business Machines Corporation | Converting short branches to predicated instructions |
-
2003
- 2003-06-11 US US10/459,283 patent/US20040255103A1/en not_active Abandoned
-
2004
- 2004-01-09 TW TW093100533A patent/TWI237795B/zh not_active IP Right Cessation
- 2004-02-02 CN CNB2004100026008A patent/CN1255724C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
TW200428289A (en) | 2004-12-16 |
US20040255103A1 (en) | 2004-12-16 |
TWI237795B (en) | 2005-08-11 |
CN1523496A (zh) | 2004-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1255724C (zh) | 终止处理器中非必要处理的条件指令的方法与系统 | |
KR950003552B1 (ko) | 프로그램 가능한 제어기 | |
US7366874B2 (en) | Apparatus and method for dispatching very long instruction word having variable length | |
JP2761956B2 (ja) | パイプライン式データ処理システム | |
AU618142B2 (en) | Tightly coupled multiprocessor instruction synchronization | |
JPH04367936A (ja) | スーパースカラープロセッサ | |
US5604878A (en) | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path | |
JPH11282679A (ja) | 演算処理装置 | |
US5274777A (en) | Digital data processor executing a conditional instruction within a single machine cycle | |
KR920004290B1 (ko) | 명령파이프라인방식의 마이크로프로세서 | |
US20050102659A1 (en) | Methods and apparatus for setting up hardware loops in a deeply pipelined processor | |
CN1257450C (zh) | 节省资源的硬件环路 | |
US20210042123A1 (en) | Reducing Operations of Sum-Of-Multiply-Accumulate (SOMAC) Instructions | |
US6453412B1 (en) | Method and apparatus for reissuing paired MMX instructions singly during exception handling | |
US7107478B2 (en) | Data processing system having a Cartesian Controller | |
JP3602801B2 (ja) | メモリデータアクセス構造およびその方法 | |
CN1318959C (zh) | 于处理器中预测条件指令执行状态的方法 | |
CN112579168B (zh) | 指令执行单元、处理器以及信号处理方法 | |
CN117348933B (zh) | 一种处理器及计算机系统 | |
US20220206799A1 (en) | Apparatus for Processor with Hardware Fence and Associated Methods | |
JPS63138427A (ja) | 配列に対する命令のスケジユ−リング処理方式 | |
JPH0279122A (ja) | 浮動小数点演算機構 | |
JPH0269825A (ja) | パイプライン制御方式 | |
Kreahling et al. | Reducing the cost of conditional transfers of control by using comparison specifications | |
JPH0594304A (ja) | 割込み制御装置 |
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20060510 |