CN1449520A - 用于重放转换的指令的方法和装置 - Google Patents

用于重放转换的指令的方法和装置 Download PDF

Info

Publication number
CN1449520A
CN1449520A CN01814866A CN01814866A CN1449520A CN 1449520 A CN1449520 A CN 1449520A CN 01814866 A CN01814866 A CN 01814866A CN 01814866 A CN01814866 A CN 01814866A CN 1449520 A CN1449520 A CN 1449520A
Authority
CN
China
Prior art keywords
instruction
playback system
playback
changed
presumptive
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
Application number
CN01814866A
Other languages
English (en)
Other versions
CN1322415C (zh
Inventor
K·梅内泽斯
D·萨格尔
T·托尔
D·卡梅安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1449520A publication Critical patent/CN1449520A/zh
Application granted granted Critical
Publication of CN1322415C publication Critical patent/CN1322415C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Abstract

重放指令转化。所公开的装置包括用于执行指令的执行单元。如果该执行单元没有正确地执行指令,则重放系统就重放该指令的变更了的指令。

Description

用于重放转换的指令的方法和装置
技术领域
本公开内容涉及处理器领域。更具体地讲,本公开内容涉及这样的处理器,该处理器在一次或多次初始尝试执行指令过程中碰到困难时,它可以变更、转换、变异,换句话说即“转化”上述指令。
背景技术
对计算机或其它处理系统的性能的改进总的来讲提高了总吞吐量并且/或提供更好的用户体验。这种改进的系统性能的实现方法可以通过增加处理器处理系统的指令的速度。因此,理想的情形是,产生具有改进的指令吞吐量的高级处理器。
然而,持续提高处理器的性能的任务是困难的。现有技术的处理器已经使用了分支预测、预测执行、乱序(OOO)执行的技术。此外,这种处理器通常包括多个并行执行单元,以便并行地处理大量的指令。随着所应用的并行硬件的量的增加,由于可被抽取的有限指令级的并行度或由于指令当前对许多现有软件程序的依赖,提供足够多的指令以便保持硬件处于繁忙越来越困难。
多线程是一种可以用于减少并行执行单元的空闲时间的技术。多线程允许多个程序或线程来共享硬件资源。由于执行的是独立的程序序列,所以指令相关性不太可能会严重降低指令单元的应用。只要多线程能够被抽取或者是显式地由正在执行的软件提供,这种多线程机固然会受益于由于执行多线程而产生的额外的并行度。
因此,在设计现代处理器中大量的精力重点一直都用在这种指令调度技术上。这些技术至少部分地设法增加了向有意执行单元进行调度的指令数目。然而,有时在调度之后会碰到重要的导致延迟的问题(例如,故障、数字计算问题、超高速缓存未命中等等)。在现有技术处理器中,一旦向执行单元调度了指令,执行单元总体上是与它获得的指令“粘”在一起的。
指令译码是一种在处理器接收指令后所出现的指令改变的类型。然而,指令的译码通常涉及要把一条指令扩张为微指令,或者把指令的编码改变成供执行单元执行的一种更便利的形式或另一种指令集。一般来讲,指令的译码并不超出从所输入的指令到或者个别信号或者个别微指令的特定映射。此外,指令译码在处理系统中是固有的前端操作,并且指令译码缺少在遍及执行指令中引入所收集的信息的能力。
因此,现有技术的处理器一般并不把原始指令转化为这样的变更的指令,即一旦出现尝试执行,与原始指令相比,这些变更的指令会得到更有效或者更不相同的执行。
                      附图说明
本发明通过示例方式进行阐述,但并不限制于附图中的图形。
图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。根据已知的页处理技术,系统在TLB470中存储一些页表项。当在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 (35)

1.一种装置,它包括:
用于执行指令的执行单元;
用于在该执行单元没有正确地执行指令的情况下重放变更了的指令的重放系统。
2.权利要求1的装置,其中重放系统包括:
用于在第一条件下重复指令的重放回路;以及
用于在第二条件下重放所述变更了的指令的指令转化电路。
3.权利要求1的装置,其中重放系统包括:
用于在该指令是第一指令的情况下重放该指令的重放回路;以及
用于在该指令是第二指令的情况下重放变更了的指令的指令转化电路。
4.权利要求3的装置,其中第一指令是多条不可修改的指令之一,并且第二指令是多条可修改的指令之一。
5.权利要求4的装置,其中多条可修改的指令仅在它们初始执行出现故障的情况下进行转化。
6.权利要求1的装置,其中所述重放系统跟踪允许进行指令变更的至少一个额外的比特。
7.权利要求1的装置,其中所述装置包括低级高速缓存器和较高级的高速缓存器,其中重放系统变更已经在较高级的高速缓存中未命中的加载指令,以便其后仅访问低级高速缓存器。
8.权利要求1的装置,其中所述装置包括用于处理导致页故障的指令的页未命中处理器,其中该指令是导致页故障的存储器访问,以及其中重放系统把存储器访问变成一次或多次存储器访问以便处理页故障。
9.权利要求8的装置,其中重放系统用页描述符读出来替换存储器访问,接着用页表项读出替换所述页描述符读出,然后恢复存储器访问。
10.权利要求1的装置,其中所述指令是相关指令,该指令与前一条指令的结果相关,并且其中重放系统变更该相关指令,以便在前一条指令得到成功执行之前,通过重放系统避免执行进一步的迭代。
11.权利要求10的装置,其中重放系统通过设置用于指示该指令无效的相关指令的有效位来变更相关指令。
12.权利要求10的装置,其中当所述前一条指令退出时,重放系统把相关指令变更回为可执行的形式。
13.权利要求11的装置,其中当任何指令退出时,重放系统复位有效位。
14.权利要求10的装置,其中重放系统跟踪前一条指令的序列号,并且其中当所述前一条指令结束时,重放系统把相关指令返回为可执行的形式。
15.权利要求10的装置,其中该装置还包括高速缓存器,并且其中当出现对该高速缓存器的写操作时,重放系统把相关指令返回为可执行的形式。
16.权利要求1的装置,其中所述指令是高精确度的指令,并且所述重放系统生成第一结果,然后执行变更了的指令以便根据第一结果生成最终结果。
17.权利要求1的装置,其中所述执行单元是数字执行单元,并且其中所述重放系统检测指令的与数据相关的条件,并提供变更了的指令以便获得完全相同的结果。
18.权利要求17的装置,其中指令是舍入指令,而变更了的指令是加指令。
19.权利要求17的装置,其中数字执行单元缺少用于计算一个或多个相对稀少的数字情况的硬件,并且其中这种相对稀少的数字情况代之以通过重放系统注入变更了的指令以便获得有效的完全相同的结果而实施。
20.一种处理器,它包括:
用于调度原始指令的调度器;
用于尝试执行原始指令的执行单元;
用于判定原始指令是否正确执行的检验器;
一个重放系统,它包括:
用于重放原始指令的重放回路;
用于把原始指令变为变更了的指令并重放该变更了的指令的重放电路。
21.权利要求20的处理器,其中,连接所述重放系统以便当第一条件出现时重放原始指令,并且当第二条件出现时,重放变更了的指令。
22.权利要求20的处理器,其中,连接所述重放系统以便当原始指令是第一指令时重放原始指令,并且当原始指令是第二指令时,重放变更了的指令。
23.权利要求22的处理器,其中所述第一指令是多条不可变更的指令之一,并且其中所述第二指令是多条可变更的指令之一。
24.一种方法,它包括:
执行原始指令;
判定第一条件是否出现;
如果所述第一条件出现,则转化所述原始以便形成转化了的指令;以及
执行所述转化指令。
25.权利要求24的方法,其中对第一条件是否出现的判定还包括:
判定原始指令是否得到正确的执行。
26.权利要求24的方法,它还包括:
判定是否出现第二条件;
如果所述第二条件出现,则重放所述原始指令以便执行。
27.权利要求24的方法,其中转化包括:
变更已经在较高级的高速缓存器中未命中的加载指令,以便在其后仅访问较低级高速缓存器。
28.权利要求24的方法,其中转化包括:
变更产生页故障的指令,以便执行用于处理页故障的一条或多条其它指令。
29.一种包括用于存储表示集成电路的数据的机器可读介质的物品,它包括:
用于执行指令的执行单元;
用于在执行单元没有正确地执行指令的情况下重放变更了的指令的重放系统。
30.权利要求29的还存储表示集成电路的数据的物品,它还包括:
用于在第一条件下重放指令的重放回路;以及
用于在第二条件下重放变更了的指令的指令转化电路。
31.权利要求29的物品,其中表示集成电路的数据包括集成电路的功能性描述。
32.权利要求29的物品,其中表示集成电路的数据包括硬件描述语言代码。
33.权利要求29的物品,其中表示集成电路的数据包括表示多个掩膜层的串物理数据的数据,该物理数据表示在所述多个掩膜层的每个的各种位置的材料的存在或缺失。
34.一种包括已在其上存储了数据的机器可读载体介质的物品,当结合仿真例程把该数据加载到计算机系统存储器中时,该数据提供模型的功能,该模型包括:
用于执行指令的执行单元;
用于在执行单元没有正确地执行指令时重放变更了的指令的重放系统。
35.权利要求34的物品,其中模型还包括:
用于在第一条件下重放指令的重放回路;以及
用于在第二条件下重放变更了的指令的指令转化电路。
CNB018148662A 2000-06-30 2001-06-21 用于重放转换的指令的方法和装置 Expired - Fee Related CN1322415C (zh)

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 true CN1449520A (zh) 2003-10-15
CN1322415C 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)

* Cited by examiner, † Cited by third party
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
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
US7603664B2 (en) * 2002-10-22 2009-10-13 Sun Microsystems, Inc. System and method for marking software code
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

Family Cites Families (20)

* Cited by examiner, † Cited by third party
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
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
US6212626B1 (en) * 1996-11-13 2001-04-03 Intel Corporation Computer processor having a checker
US5966544A (en) * 1996-11-13 1999-10-12 Intel Corporation Data speculatable processor having reply architecture
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
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

Also Published As

Publication number Publication date
US20050172107A1 (en) 2005-08-04
GB2381623B (en) 2005-02-09
CN1322415C (zh) 2007-06-20
GB0301570D0 (en) 2003-02-26
US6880069B1 (en) 2005-04-12
US8347066B2 (en) 2013-01-01
GB2381623A (en) 2003-05-07
WO2002003200A3 (en) 2002-10-10
WO2002003200A2 (en) 2002-01-10
AU2001272973A1 (en) 2002-01-14

Similar Documents

Publication Publication Date Title
US7506139B2 (en) Method and apparatus for register renaming using multiple physical register files and avoiding associative search
Melnik et al. Dremel: interactive analysis of web-scale datasets
CN1230740C (zh) 数字信号处理装置
CN1429361B (zh) 用于在一个多线程处理器内在多个线程之间划分资源的方法和装置
CN1279441C (zh) 用于确定热门的调用者-被调用者关系和对应的调用者/被调用者对的方法
CN1294484C (zh) 利用重新调度的重放队列中断处理器中的重放依赖关系循环
TWI507980B (zh) 最佳化暫存器初始化操作
US20130227194A1 (en) Active non-volatile memory post-processing
Ge et al. Speculative distributed CSV data parsing for big data analytics
CN1252594C (zh) 使能跟踪重复指令的方法和系统
CN101329638A (zh) 程序代码的并行性的分析方法和系统
CN103238133A (zh) 用于多地址矢量载入的矢量收集缓冲器
CN101432692A (zh) 预解码可变长度指令
US7958336B2 (en) System and method for reservation station load dependency matrix
CN1641612A (zh) 按照类型对中断计数的方法和装置
WO2003058435A1 (en) Dependence-chain processors
CN101933002A (zh) 包含用于逻辑错误保护的混合冗余的处理器
CN101661481A (zh) 存储xml数据的方法、执行xml查询的方法及其装置
CN101228507A (zh) 用于管理微处理器的指令管线中的指令冲刷的方法及设备
US9354888B2 (en) Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching
KR20130084599A (ko) 레코드들의 컬럼형 스토리지 표현
CN111221575A (zh) 一种乱序高性能处理器的寄存器重命名方法及系统
US8032706B2 (en) Method and apparatus for detecting a data access violation
CN1449520A (zh) 用于重放转换的指令的方法和装置
US6279102B1 (en) Method and apparatus employing a single table for renaming more than one class of register

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