CN1322415C - 用于重放转换的指令的方法和装置 - Google Patents
用于重放转换的指令的方法和装置 Download PDFInfo
- Publication number
- CN1322415C CN1322415C CNB018148662A CN01814866A CN1322415C CN 1322415 C CN1322415 C CN 1322415C CN B018148662 A CNB018148662 A CN B018148662A CN 01814866 A CN01814866 A CN 01814866A CN 1322415 C CN1322415 C CN 1322415C
- Authority
- CN
- China
- Prior art keywords
- instruction
- presumptive
- playback system
- presumptive instruction
- performance element
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 230000001419 dependent effect Effects 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 32
- 238000013461 design Methods 0.000 description 12
- 238000003860 storage Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- XXUZFRDUEGQHOV-UHFFFAOYSA-J strontium ranelate Chemical compound [Sr+2].[Sr+2].[O-]C(=O)CN(CC([O-])=O)C=1SC(C([O-])=O)=C(CC([O-])=O)C=1C#N XXUZFRDUEGQHOV-UHFFFAOYSA-J 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 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 or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
重放指令转化。所公开的装置包括用于执行指令的执行单元。如果该执行单元没有正确地执行指令,则重放系统就重放该指令的变更了的指令。
Description
技术领域
本公开内容涉及处理器领域。更具体地讲,本公开内容涉及这样的处理器,该处理器在一次或多次初始尝试执行指令过程中碰到困难时,它可以变更、转换、变异,换句话说即“转化”上述指令。
背景技术
对计算机或其它处理系统的性能的改进总的来讲提高了总吞吐量并且/或提供更好的用户体验。这种改进的系统性能的实现方法可以通过增加处理器处理系统的指令的速度。因此,理想的情形是,产生具有改进的指令吞吐量的高级处理器。
然而,持续提高处理器的性能的任务是困难的。现有技术的处理器已经使用了分支预测、预测执行、无序(000)执行的技术。此外,这种处理器通常包括多个并行执行单元,以便并行地处理大量的指令。随着所应用的并行硬件的量的增加,由于可被抽取的有限指令级的并行度或由于指令当前对许多现有软件程序的依赖,提供足够多的指令以便保持硬件处于繁忙越来越困难。
多线程是一种可以用于减少并行执行单元的空闲时间的技术。多线程允许多个程序或线程来共享硬件资源。由于执行的是独立的程序序列,所以指令相关性不太可能会严重降低指令单元的应用。只要多线程能够被抽取或者是显式地由正在执行的软件提供,这种多线程机固然会受益于由于执行多线程而产生的额外的并行度。
因此,在设计现代处理器中大量的精力重点一直都用在这种指令调度技术上。这些技术至少部分地设法增加了向有意执行单元进行调度的指令数目。然而,有时在调度之后会碰到重要的导致延迟的问题(例如,故障、数字计算问题、超高速缓存未命中等等)。在现有技术处理器中,一旦向执行单元调度了指令,执行单元总体上是与它获得的指令“粘”在一起的。
指令译码是一种在处理器接收指令后所出现的指令改变的类型。然而,指令的译码通常涉及要把一条指令扩张为微指令,或者把指令的编码改变成供执行单元执行的一种更便利的形式或另一种指令集。一般来讲,指令的译码并不超出从所输入的指令到或者个别信号或者个别微指令的特定映射。此外,指令译码在处理系统中是固有的前端操作,并且指令译码缺少在遍及执行指令中引入所收集的信息的能力。
因此,现有技术的处理器一般并不把原始指令转化为这样的变更的指令,即一旦出现尝试执行,与原始指令相比,这些变更的指令会得到更有效或者更不相同的执行。
附图说明
本发明通过示例方式进行阐述,但并不限制于附图中的图形。
图1a展示的是应用指令转化电路的处理器的一种实施方案。
图1b展示的是可用于由图1a的系统所应用的指令转化技术。
图2展示的是在高速缓存(cache)存储器中出现高速缓存未命中时用于转化加载指令的技术的一种实施方案。
图3a-3d展示的是用于使用指令转化来处理指令相关性的技术的各种实施方案。
图4展示的是使用公开的指令转化技术的系统的另一种实施方案。
图5展示的是用于使用指令转化来处理页故障的技术的一种实施方案。
图6展示的是用于使用指令转化来处理诸如间接加载指令的间接指令的技术的一种实施方案。
图7展示的是结合数字处理使用指令转化的系统的一种实施方案。
图8展示的是用于处理与某些极少数据相关的数学运算的技术的一种实施方案。
图9展示的是用于使用公开的技术进行设计的模拟、仿真以及制造的各种设计表示和格式。
具体实施方式
下面的描述实现重放指令转化。为了实现对本发明有更加彻底的理解,在下面的描述中,阐述了大量具体细节诸如原始和转化的指令的类型、可能适合转化的环境、可能体现转化的系统环境、执行单元和转化电路的相互作用以及逻辑划分/集成的选择。然而,应该理解的是,对于一位本领域的熟练技术人员来说,在没有上述具体细节的情况下本发明是可以实现的。在其它情况下,为了不使本发明晦涩难懂,就没有详细表示控制结构和门级电路。本领域的一般技术人员使用所包含的描述在无需过分实验的情况下将能够实现合适的逻辑电路。
当前所公开的指令转化技术可以有利地允许更高效地在处理系统中执行指令。当特定硬件不可用时或正确完成被视为当前是不可能的时,通过转化某些指令,处理器可以释放用于执行其它任务的资源。
图1a表示的是执行指令转化的处理器的一种实施方案。图1a的处理器包括从多路复用器115接收指令的执行单元125。检验器150与执行单元125相耦合,它判定指令是否是已经得到正确执行。在一些实施方案中可以添加附件的检验器和/或执行单元。此外,分级(staging)队列(未示出)可以从多路复用器115接收指令并向检验器150传递这些指令,以便及时地检验。转发得到正确执行的指令以便退出,而把没有得到正确执行的指令反馈给复用器115,以便重新执行。
用于从检验器150把指令反馈给执行单元125的方式有两种。耦合的转化逻辑120用于从检验器150接收原始指令,并且它可以检测用于保证指令转化的条件。然而,在一些情况下,转化是不适当的。因此,转化逻辑120可以向多路复用器115返回原始指令或者转化了的指令。在一些实施方案中,某些类型的指令或专用指令可以由转化逻辑120自动进行转化。在其它实施方案中,某些条件可以促使转化逻辑120来执行转化操作。在指令返回到执行单元125之前,可能会引入各种延迟或对各种延迟进行条件测试。
图1b展示的是可用于由图1a的系统所应用的指令转化的两种技术。在块160,处理器尝试原始指令的执行。原始指令是从多路复用器115的接收的指令输入端接收的,然后被传递到执行单元,以便实现在块160中所指示的执行。接收的指令可以从各种译码、高速缓存、或者其它前端处理逻辑中加以接收。
如在块165所指示的,对阻碍原始指令本次成功执行的问题进行检测。在图1a的实施方案中,该检测是由检验器150实现的。如果指令和/或条件表明,该指令应在不作变更的情况下进行重放,则转化逻辑120可以把该指令返回给多路复用器115而不对其进行改变。
如果指令和/或条件表明,应该转化该指令,则转化逻辑120如在块170中所指示的那样变更该指令,从而使该指令得到更高效或至少不同的执行。将在下面论述具体转化操作的各种实施方案。如在块175中所指示的,然后执行该转化了的指令。
在一些情况下,转化了的指令是有意用于替换原始指令的。在这种情况下,如在块180中所指示的那样,转化了的指令的退出结束了原始指令所期望的执行。在这种情况下,转化的指令是与原始指令产生同样结果的代用指令;然而,在当时已经感知转化的指令是达到那些结果的更好的或更高效的途径。
在其它情况下,可以转化指令以便满足原始指令成功执行的前置条件。例如,存储器访问可能导致页故障的发生。正确执行存储器访问的前置条件是页故障已得到解决。特殊前置条件可能需要大量的转化操作以便得到满足。因此,如在块185中所指示的那样,处理器进行检验以便判定前置条件是否由转化指令的执行满足。如果不满足,如返回到块170所指示的那样执行进一步的转化。如果前置条件是满足的,如在块190中所指示的那样可以恢复原始指令。然后,如在块195中所指示的那样退出原始指令。在一些情况下,一旦前置条件已经得到满足,则可以执行原始指令的指令替换。
图2展示的是在高速缓存存储器中出现高速缓存未命中时用于转化加载指令的技术的一种实施方案。如在块200中所指示的,处理器判定在第二级或以上的高速缓存器未命中的加载指令。到第二级,意味着第二最低层次式高速缓存器,而不论其特殊标记。在图1a的实施方案中,检验器150从最低级高速缓存器接收未命中信号,因此判定加载指令未正确执行。转化逻辑120接收这样的信号(未示出),这些信号表明较高级高速缓存器也经历过高速缓存器未命中。
在这些条件下,随着加载指令通过重放回路的循环运行,连续测试较高级高速缓存器可能是不经济的,其原因是当检索时,所需要的数据将会写在较高级高速缓存器和最低级高速缓存器这两者中。因此,可以节省较高级高速缓存器的带宽,其方法是在较高级高速缓存器未命中之后仅尝试从最低级高速缓存器中检索数据。从而,如在块210中所表示的,可以转化加载以便在后续的迭代中仅在最低级的高速缓存器中执行查询。
如果在最低级高速缓存器中找到了有效数据(如在块215中所测试的),则该加载将得到正确的执行。如在块225中所指示的那样,当检验器检测到转化的加载正确执行时,然后就可以退出原始加载。如果在最低级高速缓存器中没有找到有效数据,则如在块220中所展示的那样重放转化的加载指令。尽管可以继续加载从而不成功地执行多次,然而在该过程中,至少它没有不经济地消耗较高级高速缓存器的带宽。
图3a展示的是用于使用指令转化来处理指令相关性的技术的一种实施方案。如在块300所指示的,标识相关指令和与其相关的前一条指令。在块310中,检测当前缺乏执行前一条指令的能力。在图1a的实施方案中,可以由检验器150实现块310,以便检测前一条指令的错误执行。
因为与相关指令相关的指令不能够得到正确的执行,因此,相关指令当前是不能够得到正确执行的。因此,继续试图执行相关指令可能是不经济的。从而,如块320所指示的,可以通过标记相关指令为“不良(poisoned)”来阻止继续执行该相关指令。具有“不良”标记的指令是用这种简单的方式标记的,从而使重放系统和/或执行单元认识到不应该试图执行该指令。例如,可以抑制一有效位,从而使该指令表现为无效并因此将不被执行。这种技术可以方便地降低在执行相关指令时不成功尝试的次数。
如块330所指示的,检测不良清除事件(poison-clearingevent)。不良清除事件专门指示相关性已经得到解决,或者不良清除事件是一个可能会使相关性得到解决的事件。在一些实施方案中,在对将使每个独特的相关性得以解决的确切条件的跟踪上的开销可能会十分昂贵。因此,可以使特定相关性得以解决的公用事件用于清除一条或多条指令的不良指示符。如块330所指示的,把该相关指令标记为安全(非不良),以便尝试执行。
图3b展示的是在图3a的块330所执行的操作的一种实施方案。在这种实施方案中,在332检测任何退出的指令。作为检测任何指令退出的结果,如块334所指示的,复位全部不良指令从而将再次尝试执行。这种实施方案在用于实施所需求的硬件方面相对低廉;然而,在相关性还没有清除的地方,它可能会导致相关指令的一些不希望的执行。
图3c展示的是在图3a的块330所执行的操作的另一种实施方案。在这种实施方案中,在块336检测对最低级高速缓存器的写操作。如块334再次指示的那样,对该写操作的检测使指令的全部不良位得以复位。这种技术在所需要的硬件的量上也是便利的,但是也可能会导致相关指令一些不成功的执行。
图3d展示的是用于通过使用指令转化来处理指令相关性的另一种实施方案。图3d与图3a共享块300、310和320。然而,在块300标识了相关指令和与其相关的前一条指令后,图3d的实施方案包括一个附加的操作。如块305所指示的,使用用于指示与相关指令相关的前一条指令的标识符给相关指令加上标签。标识符可以是指令的序列号或者是用于标识前一条指令的任何其它值。值得注意的是,在块305执行的加标签操作可以按照不同于在图3d中所表示的确切序列的顺序来执行。例如,可以不给相关指令加标签直到经过块310和320中的一个块或两个块为止。
在块336,检测指令的退出。因为较早地就用与相关指令相关的指令的标识符给相关指令加上了标签,所以可以执行指令专用的不良清除。换句话说,当指令退出时,可以复位仅用于与退出的指令相关的那些指令的不良指示符,方法是通过比较任何加标签的相关指令的指示符和用于退出中的指令的对应值。因此,如块338所指示的,清除用于那些相关指令的不良指示,该相关指令具有指示已清除退出的指令的指示符。在由于与相关指令相关的指令还没有结束而妨碍它们得到正确执行时,这种技术可以非常有利地在很大程度上降低相关指令不成功的执行。
图4展示的是应用指令转化技术的系统的另一种实施方案。图4的实施方案包括执行逻辑425,它接收来自多路复用器415的指令。此外,分级队列410接收来自多路复用器415的指令。分级队列410存储向执行逻辑425进行调度的指令,并把这些指令传递到也与执行逻辑425相耦合的检验器450,以便判定执行逻辑425是否已经正确地执行了指令。如在图1a的实施方案中的情况下,检验器重放没有得到正确执行的指令。转化逻辑420可以依赖于特定指令和/或指令不正确执行的条件来转化这样的指令。
图4还展示的是页未命中处理器(PMH)460、变换后备缓冲区(translation lookaside buffer(TLB))470以及存储器480。根据已知的页处理技术,系统在TLB 470中存储一些页表项。当在TLB470中找不到页表项时,通过页未命中处理器460执行页移动,以便从存储器中检索页描述符项(PDE)以及接着的页表项(PTE)。
图5展示的是用于处理在图4的系统中的页故障的技术的一种实施方案。如块500所指示的,标识产生页故障的指令。这可以由转化逻辑420使用来自执行逻辑425和/或检验器450的输入来执行。如块510所指示的,然后,转化逻辑420把产生页故障的指令转化为对导致故障的该页的页描述符项进行的加载。如果指令转化没有被用于把页描述符项加载引入到该重放系统,则可能会阻碍另一条指令的执行。
例如,替代使转化逻辑420执行用于检索页描述符项的转化操作,页未命中处理器通过虚线连接465能把页描述符项插入到执行流中。该新添加的指令会置换另一条指令,从而在得到执行该被置换指令的机会之前,使它通过重放系统再次得以循环。相反,因为已知产生页故障的指令不能够被成功执行,所以在过渡时期,与置换另一个潜在地可能会成功得以执行的指令相比,转化那条指令可能是更高效的。
相似地,在完成页描述符项的加载之后,如块520所指示的,可以把页描述符项的加载转化为页表项的加载(块530)。这种转化技术再次避免置换另一条指令。如块540所指示的,完成页表项的加载,并且可以把该指令转化回为原始页故障产生的指令(块550)。因为在重放系统中,随着在没有置换其它操作的情况下使页故障得到解决,现在该指令就可以在不产生页故障的情况下得到执行。
图6展示的是用于处理间接指令的技术的一种实施方案。诸如MOVEBX,MEM[EAX]这样的间接指令涉及两级检索。首先,必须检索EAX的值,以便查找请求要加载到EBX中的数据的地址。其次,执行对所请求的数据的地址(EAX的内容)的实际存储器的访问。如果把该指令译码为多个微操作,则就消耗额外的资源。因此,不把间接指令译码为多个微操作,而转化为执行适当的操作可能是有利的。
因此,图6表示的这种技术可以用于允许单个微操作实现间接寻址。在块600,标识间接存储器引用指令。间接存储器引用技术和指令是众所周知的,在此就不作进一步的论述了。这种技术可以用于多种间接的或相似的寻址技术,它们隐式地需要多次存储器或寄存器的访问或者存储器和寄存器访问的组合。
在块610,把指令转化为用于加载所请求数据的地址的变更指令。在上面的示例(MOV EBX,MEM[EAX])中,可以对EAX的值进行加载,并如块620所指示的由存储器执行单元来接收它。下一步,如块630所指示的,把指令转化为对所请求数据的加载,并且执行对由EAX寄存器所指示的存储器单元的加载。因此,可以使用单指令槽来执行间接或相似的存储器访问技术。
图7展示的是用于处理数值计算的重放指令转化的一种实施方案。在图7的实施方案中,重放系统尤其要处理的是过于精确或高精确的情况。过于精确或高精确的情况可能是需要附加的周期或硬件来计算达到预期精度结果的指令或与特定数据相关的情况。因此,对附加的资源的需要可能是由于指令或者涉及的特定数字所请求的精度。
在块700,检测过于精确或高精确的情况。在块710,执行单元不尝试计算最终结果,而是计算中间结果。如块715所指示的那样转化指令,然后为其加上过于精确重放的标签。下一步,如块720所指示的那样,执行使用了中间结果的转化或变更的指令。如块725所指示的那样,把最终结果放置在适当的目的存储单元。
仅计算中间结果是有利的,这可能具有几个原因。在一些情况下,使用更简单的硬件也许是可行的,该更简单的硬件不能够以相同的周期数计算所有输入数据的结果。通常,一些极少的情况需要添加大量硬件,以确保用与其它数字同样的时间系统进行合适的处理。在这种情况下,通过重放可以获得正确的最终结果,并且可以节省硬件。此外,一些不同的较高精度指令可以用与较低精度指令相似的方式方便地加以处理,除非要通过重放系统把它们回送,以便计算最终的和足够准确的结果。
相似地,图8展示的是用于处理某些极少的与数据相关的数学运算技术的一种实施方案。在图8的实施方案中,可以执行指令和/或操作数的代替物,以便方便地简化硬件。可以再次去除在处理困难的和极少的情况所需要的某些方面的硬件,从而导致对性能仅有极少的影响而更紧凑的部件。
如块800所指示的,检测与数据相关的在计算上密集或硬件密集的数学运算。例如,某些舍入指令在计算上就很密集,因此需要大量的硬件。在块810,把指令转化为硬件和/或计算密集性较低的运算。例如,可以把舍入运算转化为加法指令或减法指令,这要取决于所涉及的确切操作数。
最后,如图820所指示的,执行替代运算以便产生完全相同的结果。该结果与用户的是“完全”相同的,其原因在于数字执行单元所产生的达到所请求精度的结果与如果执行了原始指令而产生的结果是一模一样的。因此,用户可能没有意识到,执行的是加法而不是舍入,但是执行单元本身可以加以简化从而它就不必处理稀少和困难的情况了。
图9展示的是用于使用所公开的技术进行设计的模拟、仿真以及制造的各种设计表示或格式。代表设计的数据可以用非常多的方式来代表设计。首先,如在仿真中应用的那样,硬件可以使用硬件描述语言或另一种功能性描述语言来代表,硬件描述语言或另一种功能性描述语言基本上提供所设计硬件预期要如何加以执行的计算机化的模型。硬件模型910可以存储在诸如计算机存储器的存储介质900中,从而可以使用仿真软件920来仿真该模型,该仿真软件把特定的测试套件930施加在硬件模型910上,以便判定它是否确实按预期发挥了作用。在一些实施方案中,并不把该仿真软件记录、捕获、或保留在该介质中。
此外,在设计过程的一些阶段,可以生成具有逻辑和/或晶体管门的电路级模型。这种模型有时可以通过使用可编程逻辑形成该模型的专用硬件仿真器来相似地加以仿真。这种仿真类型在一定程度上还可以是一种模拟技术。在任何情况下,可重新配置的硬件是另一种实施方案,它可以涉及一种存储应用了所公开的技术的模型的机器可读介质。
此外,多数设计在有些阶段会达到代表各种器件在硬件模型中的物理布置的数据级别。在应用常规半导体制造技术的情况下,代表硬件模型的数据可以是这样的数据,该数据指定在用于生成集成电路的掩膜的不同掩膜层上各种特征的存在或缺失。这种代表集成电路的数据还体现所公开的技术,原因在于,在该数据中的电路或逻辑能够加以仿真或制造以便执行这些技术。
在该设计的任何表示中,数据可以存储在任何形式的计算机可读介质中。这种介质可以是经过调制的或以其它方式产生的用于传送上述信息的光或电波960、存储器950、或者诸如盘的磁或光存储装置940。描述该设计或该设计的特定部分的比特组可以是为了其它进一步设计或制造而销售或使用的物品。
至此,公开了重放指令转化。尽管已经对某些示例实施方案加以描述并在附图中加以表示,但是可以理解,上述实施方案仅是对本发明广义的说明而不是限制;由于那些熟悉本领域的普通技术人员通过对公开内容的学习可以想到各种其它的修改方案,所以本发明并不局限于所表示和描述的专门的结构和安排。
Claims (23)
1.一种用于处理指令的装置,它包括:
一个调度器,用于调度原始指令;
和所述调度器连接的执行单元,用于从所述调度器接收所述原始指令并且执行原始指令;
一个检验器,和所述执行单元相连接,用于确定所述原始指令是否被正确地执行;
一个重放系统,和所述检验器相连接,包括一个指令转化电路,用于在该执行单元错误地执行原始指令的情况下,重放根据改变所述原始指令而形成的变更了的指令。
2.权利要求1的装置,其中重放系统还包括:
在原始指令是多个不可修改指令之一时,用于重放原始指令的重放回路。
3.权利要求1的装置,其中只有原始指令是多条可修改的指令之一,并且执行单元错误地执行了原始指令时,才修改原始指令。
4.权利要求1的装置,其中所述重放系统跟踪允许进行指令变更的至少一个额外的比特。
5.权利要求1的装置,其中所述装置包括和执行单元相连接的低级高速缓存器,如果原始指令是多个加载指令之一,所述低级高速缓存器将被访问;和与低级高速缓存器相连接的高级高速缓存器,如果原始指令在低级高速缓存器中未被命中,则高级高速缓存器将被访问,其中如果原始指令在高级高速缓存器中未被命中,重放系统将变更原始指令,以便其后仅访问低级高速缓存器。
6.权利要求1的装置,其中所述装置包括和所述重放系统相连接的页未命中处理器,用于处理导致页故障的指令,其中该原始指令是导致页故障的多个存储器访问指令之一,以及其中重放系统把原始指令变成处理页故障的一次或多次存储器访问指令。
7.权利要求6的装置,其中重放系统用装载页描述符项指令来替换原始指令,接着用装载页表项指令替换所述装载页描述符项指令,然后恢复存储器访问。
8.权利要求1的装置,其中所述原始指令是相关指令,该相关指令与前一条指令的结果相关,并且其中重放系统变更该相关指令,以便在前一条指令得到成功执行之前,通过重放系统避免执行进一步的迭代。
9.权利要求8的装置,其中重放系统通过设置用于指示该相关指令无效的相关指令的有效位来变更相关指令。
10.权利要求8的装置,其中当所述前一条指令退出时,重放系统把相关指令变更为可执行的形式。
11.权利要求9的装置,其中当任何指令退出时,重放系统复位有效位,其中有效位将指示相关指令是否有效。
12.权利要求8的装置,其中重放系统跟踪前一条指令的序列号,并且其中当所述前一条指令结束时,重放系统把相关指令返回为可执行的形式。
13.权利要求8的装置,其中该装置还包括连接到执行单元的高速缓存器,当相关指令被执行时所述高速缓存器被访问,并且其中当出现对该高速缓存器的写操作时,重放系统把相关指令返回为可执行的形式。
14.权利要求1的装置,其中所述原始指令是高精确度的指令,并且所述执行单元生成第一结果,然后由所述执行单元执行变更了的指令,以便根据第一结果生成最终结果。
15.权利要求1的装置,其中所述执行单元是数字执行单元,并且其中所述重放系统检测原始指令计算复杂度并提供计算上减少复杂度的指令作为变更了的指令,以便获得完全相同的结果。
16.权利要求15的装置,其中所述原始指令是舍入指令,而变更了的指令是加指令。
17.权利要求15的装置,其中数字执行单元缺少用于执行原始指令的硬件。
18.一种处理器,它包括:
用于调度原始指令的调度器;
和调度器相连接,用于接收原始指令和执行原始指令的执行单元;
和所述执行单元相连接,用于判定原始指令是否被正确执行的检验器;
用于和所述检验器相连接的一个重放系统,它包括:
用于重放原始指令的重放回路;
用于把原始指令变为变更了的指令并重放该变更了的指令的转化电路。
19.权利要求18的处理器,其中,当原始指令是多个不可改变指令之一时,所述重放系统将重放原始指令,并且当原始指令是多个可变指令之一时,重放变更了的指令。
20.一种执行指令的方法,它包括:
执行原始指令;
判定是否错误地执行了原始指令;
如果原始指令被错误地执行,则
转化所述原始指令,以便形成转化了的指令;以及
执行所述 转化了的指令。
21.权利要求20的方法,它还包括:
判定原始指令是否是多个不可改变指令之一;
如果原始指令是多个不可改变指令之一,则重放用于执行的所述原始指令,而不是执行所述转化了的指令。
22.权利要求20的方法,其中转化包括:
变更已经在较高级的高速缓存器中未命中的加载指令,以便在其后仅访问较低级高速缓存器。
23.权利要求20的方法,其中转化包括:
变更产生页故障的指令,以便执行用于处理页故障的一条或多条其它指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/608,567 | 2000-06-30 | ||
US09/608,567 US6880069B1 (en) | 2000-06-30 | 2000-06-30 | Replay instruction morphing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1449520A CN1449520A (zh) | 2003-10-15 |
CN1322415C true CN1322415C (zh) | 2007-06-20 |
Family
ID=24437062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018148662A Expired - Fee Related CN1322415C (zh) | 2000-06-30 | 2001-06-21 | 用于重放转换的指令的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US6880069B1 (zh) |
CN (1) | CN1322415C (zh) |
AU (1) | AU2001272973A1 (zh) |
GB (1) | GB2381623B (zh) |
WO (1) | WO2002003200A2 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625756B1 (en) * | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
US6880069B1 (en) | 2000-06-30 | 2005-04-12 | Intel Corporation | Replay instruction morphing |
US7076640B2 (en) * | 2002-02-05 | 2006-07-11 | Sun Microsystems, Inc. | Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions |
US7603664B2 (en) * | 2002-10-22 | 2009-10-13 | Sun Microsystems, Inc. | System and method for marking software code |
US7222218B2 (en) * | 2002-10-22 | 2007-05-22 | Sun Microsystems, Inc. | System and method for goal-based scheduling of blocks of code for concurrent execution |
US7346902B2 (en) * | 2002-10-22 | 2008-03-18 | Sun Microsystems, Inc. | System and method for block-based concurrentization of software code |
US7475232B2 (en) * | 2005-07-19 | 2009-01-06 | International Business Machines Corporation | Performance of an in-order processor by no longer requiring a uniform completion point across different execution pipelines |
US8122308B2 (en) * | 2008-06-25 | 2012-02-21 | Intel Corporation | Securely clearing an error indicator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4920477A (en) * | 1987-04-20 | 1990-04-24 | Multiflow Computer, Inc. | Virtual address table look aside buffer miss recovery method and apparatus |
US5966544A (en) * | 1996-11-13 | 1999-10-12 | Intel Corporation | Data speculatable processor having reply architecture |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5958061A (en) | 1996-07-24 | 1999-09-28 | Transmeta Corporation | Host microprocessor with apparatus for temporarily holding target processor state |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5870607A (en) * | 1996-09-11 | 1999-02-09 | Brown University Research Foundation | Method and apparatus for selective replay of computer programs |
US6163838A (en) * | 1996-11-13 | 2000-12-19 | Intel Corporation | Computer processor with a replay system |
US5828868A (en) | 1996-11-13 | 1998-10-27 | Intel Corporation | Processor having execution core sections operating at different clock rates |
US6212626B1 (en) * | 1996-11-13 | 2001-04-03 | Intel Corporation | Computer processor having a checker |
US6058472A (en) | 1997-06-25 | 2000-05-02 | Sun Microsystems, Inc. | Apparatus for maintaining program correctness while allowing loads to be boosted past stores in an out-of-order machine |
US6052775A (en) * | 1997-06-25 | 2000-04-18 | Sun Microsystems, Inc. | Method for non-intrusive cache fills and handling of load misses |
US6240509B1 (en) * | 1997-12-16 | 2001-05-29 | Intel Corporation | Out-of-pipeline trace buffer for holding instructions that may be re-executed following misspeculation |
US6625756B1 (en) * | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
US6047370A (en) * | 1997-12-19 | 2000-04-04 | Intel Corporation | Control of processor pipeline movement through replay queue and pointer backup |
US6076153A (en) * | 1997-12-24 | 2000-06-13 | Intel Corporation | Processor pipeline including partial replay |
US6330711B1 (en) * | 1998-07-30 | 2001-12-11 | International Business Machines Corporation | Method and apparatus for dynamic application and maintenance of programs |
US6094717A (en) * | 1998-07-31 | 2000-07-25 | Intel Corp. | Computer processor with a replay system having a plurality of checkers |
US6513110B1 (en) * | 1999-12-15 | 2003-01-28 | Transmeta Corporation | Check instruction and method |
US6662361B1 (en) * | 2000-01-14 | 2003-12-09 | International Business Machines Corporation | Method, system, program, and data structures for transforming an instruction in a first bit architecture to an instruction in a second bit architecture |
US6594821B1 (en) * | 2000-03-30 | 2003-07-15 | Transmeta Corporation | Translation consistency checking for modified target instructions by comparing to original copy |
US6880069B1 (en) | 2000-06-30 | 2005-04-12 | Intel Corporation | Replay instruction morphing |
-
2000
- 2000-06-30 US US09/608,567 patent/US6880069B1/en not_active Expired - Fee Related
-
2001
- 2001-06-21 GB GB0301570A patent/GB2381623B/en not_active Expired - Fee Related
- 2001-06-21 CN CNB018148662A patent/CN1322415C/zh not_active Expired - Fee Related
- 2001-06-21 WO PCT/US2001/019914 patent/WO2002003200A2/en active Application Filing
- 2001-06-21 AU AU2001272973A patent/AU2001272973A1/en not_active Abandoned
-
2005
- 2005-02-28 US US11/069,004 patent/US8347066B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4920477A (en) * | 1987-04-20 | 1990-04-24 | Multiflow Computer, Inc. | Virtual address table look aside buffer miss recovery method and apparatus |
US5966544A (en) * | 1996-11-13 | 1999-10-12 | Intel Corporation | Data speculatable processor having reply architecture |
Also Published As
Publication number | Publication date |
---|---|
US6880069B1 (en) | 2005-04-12 |
GB0301570D0 (en) | 2003-02-26 |
US8347066B2 (en) | 2013-01-01 |
AU2001272973A1 (en) | 2002-01-14 |
WO2002003200A3 (en) | 2002-10-10 |
GB2381623A (en) | 2003-05-07 |
GB2381623B (en) | 2005-02-09 |
US20050172107A1 (en) | 2005-08-04 |
WO2002003200A2 (en) | 2002-01-10 |
CN1449520A (zh) | 2003-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101329638B (zh) | 程序代码的并行性的分析方法和系统 | |
US7506139B2 (en) | Method and apparatus for register renaming using multiple physical register files and avoiding associative search | |
US6772322B1 (en) | Method and apparatus to monitor the performance of a processor | |
CN106997286B (zh) | 用于循环分支的分支历史寄存器 | |
CN101432692B (zh) | 预解码指令方法及其处理器 | |
US20140380024A1 (en) | Dependent instruction suppression | |
US20020144101A1 (en) | Caching DAG traces | |
Ge et al. | Speculative distributed CSV data parsing for big data analytics | |
CN101449238A (zh) | 本地和全局分支预测信息存储 | |
CN101933002A (zh) | 包含用于逻辑错误保护的混合冗余的处理器 | |
US9354888B2 (en) | Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching | |
CN103513964A (zh) | 循环缓冲器打包 | |
CN101535951A (zh) | 用于辨识子例程调用的方法及设备 | |
US9740557B2 (en) | Pipelined ECC-protected memory access | |
Sembrant et al. | Long term parking (ltp) criticality-aware resource allocation in ooo processors | |
WO2017114472A1 (en) | Method and apparatus for data mining from core traces | |
CN111078295B (zh) | 一种乱序高性能核的混合分支预测装置及方法 | |
CN1322415C (zh) | 用于重放转换的指令的方法和装置 | |
CN100524202C (zh) | 利用改进指令目的地标记的数据处理系统、处理器和方法 | |
CN111221575A (zh) | 一种乱序高性能处理器的寄存器重命名方法及系统 | |
CN102890624A (zh) | 用于管理无序毫码控制操作的方法和系统 | |
US20040268333A1 (en) | Building inter-block streams from a dynamic execution trace for a program | |
US11567771B2 (en) | Method and apparatus for back end gather/scatter memory coalescing | |
US20220035632A1 (en) | Method and Apparatus for Front End Gather/Scatter Memory Coalescing | |
US20150026436A1 (en) | Hybrid tag scheduler |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070620 Termination date: 20110621 |