CN1414468B - 延伸微处理器指令集的装置及方法 - Google Patents
延伸微处理器指令集的装置及方法 Download PDFInfo
- Publication number
- CN1414468B CN1414468B CN02142691.0A CN02142691A CN1414468B CN 1414468 B CN1414468 B CN 1414468B CN 02142691 A CN02142691 A CN 02142691A CN 1414468 B CN1414468 B CN 1414468B
- Authority
- CN
- China
- Prior art keywords
- extension
- instruction
- microprocessor
- instruction set
- computing
- 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
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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
Abstract
本发明涉及一种延伸微处理器指令集的装置及方法。该装置包括一转译逻辑电路与一延伸执行逻辑电路。转译逻辑电路将一延伸指令转译为对应的微指令。该延伸指令具有一延伸前置码与一延伸指令标志。该延伸前置码用以指示于该延伸指令所指定的运算执行时,需使用一架构延伸项。该延伸指令标志则用以指出该延伸指令前置码,其中延伸指令标志是该微处理器指令集内另一架构化地指定的运算码。延伸执行逻辑电路耦接至转译逻辑电路,用以接收该对应的微指令,并于该运算执行时使用该架构延伸项。
Description
与相关申请的对照
本发明是依据以下美国在先申请(Provisional Application)主张优先权:案号60/356420,申请日为2002年2月2日,专利名称为“延伸微处理器指令集的装置及方法”。
本发明与下列同在申请中的美国专利申请有关,其申请日与本发明相同,且具有相同的申请人与发明人。
序列号 | 标签号 | 专利名称 |
CNTR:2186 | 执行条件指令的装置及方法 | |
CNTR:2188 | 选择性地控制条件码回写的装置及方法 | |
CNTR:2189 | 增加微处理器的缓存器数量的装置 | |
CNTR:2198 | 选择性地控制结果回写的装置及方法 |
技术领域
本发明涉及微电子领域,尤指一种能将微处理器指令集架构所未提供的架构特征,纳入该架构的技术。
背景技术
自70年代初以来,微处理器的使用即呈指数般成长。从最早应用于科学与技术领域,到如今已从那些特殊领域引进商业的消费者领域,如桌上型与膝上型(laptop)计算机、视频游戏控制器以及许多其它常见的家用与商用装置等产品。
随着过去三十年来使用上的爆炸性成长,在技术上也历经一相对应的提升,其特征在于对下列项目有着日益升高的要求:更快的速度、更强的寻址能力、更快的内存存取,更大的操作数、更多种运算(如浮点运算、单一指令多重数据(SIMD)、条件移动等)以及附加的特殊运算(如多媒体运算),如此造就了该领域惊人的技术进展,且都已应用于微处理器的设计,像扩充管线化(extensive pipelining)、超纯量架构(super-scalar architecture)、快取结构、乱序处理(out-of-order processing)、爆发式存取(burst access)、分支预测(branchpredication)以及假想执行(speculative execution)。直言之,现在的微处理器比起30年前刚出现时,呈现出惊人的复杂度,且具备了强大的能力。
(0006)但与许多其它产品不同的是,有另一非常重要的因素已限制了,并持续限制着微处理器架构的演进。现今微处理器会如此复杂,一大部分得归因于这项因素,即旧有软件的兼容性。在市场考量下,所多制造商选择将新的架构特征纳入最新的微处理器设计中,但同时在这些新的产品中,又保留了所有为确保兼容于较旧的,即所谓“旧有”(legacy)应用程序所必需的能力。
(0007)这种旧有软件兼容性的负担,没有其它地方,会比在x86-兼容的微处理器的发展史中更加显而易见。大家都知道,现在的32/16位的虚拟模式(virtual-mode)x86微处理器,仍可执行1980年代所撰写的8位真实模式(real-mode)的应用程序。而熟悉此领域技术者也承认,有不少相关的架构“包袱”堆在x86架构中,只为了支持与旧有应用程序及运作模式的兼容性。虽然在过去,研发者可将新开发的架构特征加入既有的指令集架构,但如今使用这些特征所凭借的工具,即可编程的指令,却变得相当稀少。更简单他说,在某些重要的指令集中,已没有“多余”的指令,让设计者可藉以将更新的特征纳入一既有的架构中。
(0008)例如,在x86指令集架构中,已经没有任何一未定义的一字节大小的运算码状态,是尚未被使用的。在主要的一字节大小的x86运算码图中,全部256个运算码状态都已被既有的指令占用了。结果是,x86微处理器的设计者现在必须在提供新特征与放弃旧有软件兼容性两者间作抉择。若要提供新的可编程特征,则必须分派运算码状态给这些特征。若既有的指令集架构没有多余的运算码状态,则某些既存的运算码状态必须重新定义,以提供给新的特征。因此,为了提供新的特征,就得牺牲旧有软件兼容性了。
(0009)所以,我们所需要的是,一种允许将新的架构特征纳入既有微处理器指令集架构的技术,其中该指令集架构具有已完全占用的运算码结构,而该技术则仍保留旧有应用软件的兼容性。
发明内容
(0010)本发明如同前述其它申请案,是针对上述及其它公知技术的问题与缺点加以克服。本发明提供一种更好的技术,用以扩充微处理器的指令集,使其超越现有的能力。在一具体实施例中,提供了用于扩充微处理器指令集的装置。该装置包括一转译逻辑电路(translation logic)与一延伸执行逻辑电路(extended execution logic)。该转译逻辑电路将一延伸指令转译成对应的微指令(micro instruction)。该延伸指令具一延伸前置码(extended prefix)与一延伸指令标志(extended instruction tag)。该延伸前置码是指示在该延伸指令所指定运算的执行过程中,要使用一架构延伸项(architectural extension)。该延伸指令标志则指出该延伸指令前置码,其中延伸指令标志是微处理器指令集内另一架构化地指定的运算码。该延伸执行逻辑电路耦接至转译逻辑电路,接收该对应的微指令,并于执行该运算时使用该架构延伸项。
(0011)本发明的一个目的在于提出一种用于微处理器的指令延伸装置(mechanism)。该装置具有一指令延伸项(instruction extension)与一转译器(translator)。该指令延伸项指示该微处理器于一指定运算执行时,使用一延伸架构特征,其中该指令延伸项是包括一指令集架构其中一指令,其后则接着一n位的延伸特征前置码(extended features prefix),该指令指出该指令延伸项,而该n位的延伸特征前置码则指出该延伸架构特征。该转译器接收该指令延伸项,并产生一微指令序列。该序列指示一延伸执行逻辑电路于该指定运算执行时,应用该延伸架构特征。
(0012)本发明的另一目的在于提供一种指令集延伸模块的处理方法。由一微处理器的转译器接收指令集延伸模块,该指令集延伸模块包括一逸出标志(escape tag)与一延伸特征指定元(extended features specifier)。其中,该逸出标志指出一对应指令的附随部分是指定了一微处理器所要执行的一延伸运算,且该逸出标志为一微处理器指令集内的一既有指令。该延伸特征指定元耦接至该逸出标志,且为该附随部分其中之一,用以指定该延伸运算的补充部份。该补充部分是补充由该微处理器指令集所提供的部分;以及由该微处理器的转译器将该逸出标记与该附随部分转译成对应的微指令,该对应的微指令指示一延伸执行逻辑电路去执行该延伸运算。
(0013)本发明的再一目的在于提供一种延伸微处理器指令集的方法。该方法包括提供一延伸指令,该延伸指令包括一延伸标志及一延伸前置码,其中该延伸标志是该微处理器指令集其中一指令;通过该延伸前置码与该延伸指令的其余部分指定所要执行的一延伸运算,其中该延伸运算使用了微处理器的一架构特征(architectural features),且该架构特征不能由该微处理器指令集的指令来加以指定;以及在该延伸运算执行中应用该架构特征。
附图说明
(0014)本发明的前述与其它目的、特征及优点,在配合下列说明及附图后,将可获得更好的理解:
(0015)图1为一相关技术的微处理器指令格式的方块图;
(0016)图2为一表格,其描述一指令集架构的指令,如何对应至图1指令格式内一运算码字节的位逻辑状态;
(0017)图3为本发明的延伸指令格式的方块图;
(0018)图4为一表格,其显示依据本发明,延伸架构特征如何对应至一8位延伸前置码实施例中位的逻辑状态;
(0019)图5为解说本发明用以执行延伸指令的管线化微处理器方块图;
(0020)图6为图5微处理器内转译阶段逻辑电路的细部的方块图。
(0021)图7为本发明用以转译与执行延伸指令的方法的运作流程图。
具体实施方式
(0022)以下的说明,是在一特定实施例及其必要条件的脉络下而提供,可使一般熟悉此项技术者能够利用本发明。然而,各种对该较佳实施例所作的修改,对熟悉此项技术者而言是显而易见的,并且,在此所讨论的一般原理,亦可应用至其它实施例。因此,本发明并不限于此处所展示与叙述的特定实施例,而是具有与此处所公开的原理与特征相符的最大范围。
(0023)前文已针对现在微处理器内,如何扩充其架构特征,以超越相关指令集能力的技术,作了背景的讨论。有鉴于此,在图1与图2,将讨论一相关技术的例子。此处的讨论强调了微处理器设计者所一直面对的两难问题(dilemma),即一方面,他们想将最新开发的架构特征纳入微处理器的设计中,但另一方面,他们又要保留执行旧有应用程序的能力。在图1至2的例子中,一完全占用的运算码图,已把增加新运算码至该范例架构的可能性排除,因而迫使设计者要不就选择将新特征纳入,而牺牲某种程度的旧有软件兼容性,要不就将架构上的最新进展一并放弃,以便维持微处理器与旧有应用程序的兼容性。在相关技术的讨论后,于图3至6,将提供对本发明的讨论。通过确认与利用一既有但未使用的运算码作为一延伸指令的前置码标志,本发明可让微处理器设计者克服已完全使用的指令集架构的限制,在允许他们提供延伸架构特征的同时,也能保留与旧有应用程序的兼容性。
(0024)请参阅图1,其是一相关技术的微处理器指令格式100的方块图。该相关技术的指令100具有数量可变的数据项101-103,每一项目皆设定成一特定值,合在一起便组成微处理器的一特定指令100。该特定指令100指示微处理器执行一特定运算,例如将两操作数相加,或是将一操作数从内存搬移至微处理器内的缓存器。一般而言,指令100内的运算码项目102指定了所要执行的特定运算,而选用(optional)的地址指定元项目103位于运算码102之后,以指定关于该特定运算的附加信息,像是如何执行该运算,操作数位于何处等等。指令格式100并允许程序员在一运算码102前加上前置码项目101。在运算码102所指定的特定运算执行时,前置码101用以指示是否使用特定的架构特征。一般而言,这些架构特征的应用范围涵盖指令集中任何运算码102所指定的运算。例如,现今前置码101存在于一些能使用不同大小操作数(如8位、16位、32位)执行运算的微处理器中。而当许多此类处理器被程序化为一预设的操作数大小时(比如32位),在其个别指令集中所提供的前置码101,仍能使程序员依据各个指令,选择性地取代(override)该预设的操作数大小(如为了执行16位运算)。可选择的操作数大小仅是架构特征的一例,在许多现代的微处理器中,这些架构特征能应用于众多可由运算码102加以指定的运算(如加、减、乘、布尔逻辑等)。
(0025)图1所示的指令格式100,有一为业界所熟知的范例,此即x86指令格式100,其为所有现代的x86-兼容微处理器所采用。更具体他说,x86指令格式100(也称为x86指令集架构100)使用了8位前置码101、8位运算码102以及8位地址指定元103。x86架构100亦具有数个前置码101,其中两个取代了x86微处理器所预设的地址/数据大小(即运算码状态66H与67H),另一个则指示微处理器依据不同的转译规则来解译其后的运算码字节102(即前置码值0FH,其使得转译动作是依据所谓的二字节运算码规则来进行),其它的前置码101则使特殊运算重复执行,直至某条件满足为止(即REP运算码:F0H、F2H及F3H)。
(0026)现请参阅图2,其显示一表格200,用以描述一指令集架构的指令201如何对应至图1指令格式内一运算码字节102的位逻辑状态。表格200呈现了一示范性的8位运算码图200,其将一8位运算码项目102所具有的最多256个值,关联到对应的微处理器运算码指令201。表格200将运算码项目102的一特定值,譬如02H,映像至一对应的运算码指令201(即指令I02)。在x86运算码图的例子中,为此领域中人所熟知的是,运算码值14H是映像至x86的进位累加(Add With Carry,ADC)指令,此指令将一8位的直接(immediate)操作数加至架构缓存器AL的内含值。熟悉此领域技术者也将发现,上文提及的x86前置码101(亦即66H、67H、0FH、F0H、F2H及F3H)是实际的运算码值201,其在不同脉络下,指定要将特定的架构延伸项应用于随后的运算码项目102所指定的运算。例如,在运算码14H(正常情况下,是前述的ADC运算码)前加上前置码0FH,会使得x86处理器执行一“解压缩与插入低压缩的单精度浮点值”(Unpack and Interleave Low PackedSingle-precision Floating-Point Values)运算,而非原本的ADC运算。诸如此x86例子所述的特征,在现代的微处理器中是部分地致能(enabled),此因微处理器内的指令转译/译码逻辑电路是依序解译一指令100的项目101-103。所以在过去,于指令集架构中使用特定运算码值作为前置码101,可允许微处理器设计者将不少先进的架构特征纳入兼容旧有软件的微处理器的设计中,而不会对未使用那些特定运算码状态的旧有程序,带来执行上的负面冲击。例如,一未曾使用x86运算码0FH的旧有程序,仍可在今日的x86微处理器上执行。而一较新的应用程序,借着运用x86运算码0FH作为前置码101,就能使用许多x86架构特征,如单一指令多重数据(SIMD)运算,条件移动运算等等。
(0027)尽管过去已通过指定可用/多余的运算码值201作为前置码101(也称为架构特征标志/指针101或逸出指令101),来提供架构特征,但许多指令集架构100在提供功能上的强化时,仍会因为一非常直接的理由,而碰到阻碍:所有可用/多余的运算码值已被用完,也就是,运算码图200中的全部运算码值已被架构化地指定。当所有可用的值被分派为运算码项目102或前置码项目101时,就没有剩余的运算码值可作为纳入新特征之用。这个严重的问题存在于现在的许多微处理器架构中,因而迫使设计者得在增添架构特征与保留旧有程序的兼容性两者间作抉择。
(0028)值得注意的是,图2所示的指令201是以一般性的方式表示(亦即I24、I86),而非具体指涉实际的运算(如进位累加、减,异或)。这是因为,在一些不同的微处理器架构中,完全占用的运算码图200在架构上,已将纳入较新进展的可能性排除。虽然图2例子所提到的,是8位的运算码项目102,熟悉此领域技术者仍将发现,运算码102的特定大小,除了作为一特殊情况来讨论完全占用的运算码结构200所造成的问题外,其它方面与问题本身并不相干。因此,一完全占用的6位运算码图将有64个可架构化地指定的运算码/前置码201,并将无法提供可用/多余的运算码值作为扩充之用。
(0029)另一种做法,则并非将原有指令集废弃,以一新的格式100与运算码图200取代,而是只针对一部份既有的运算码201,以新的指令意含取代,如图2的运算码40H至4FH。以这种混合的技术,符合旧有规格的微处理器就可以兼容旧有软件模式运作,其中运算码40H,4FH是依旧有规则来解译,或者以加强模式(enhanced mode)运作,其中运算码40H-4FH是依加强的架构规则来解译。此项技术确能允许设计者将新特征纳入设计,然而,当符合旧有规格的微处理器于加强模式运作时,缺点仍旧存在,因为微处理器不能执行任何使用运算码40H、4FH的应用程序。因此,站在保留旧有软件兼容性的立场,兼容旧有软件/加强模式的技术,还是无法接受的。
(0030)然而,对于运算码空间已完全占用的指令集200,且该空间涵盖所有于符合旧有规格的微处理器上执行的应用程序的情形,本发明已注意到其中运算码201的使用状况,且观察出,虽然有些指令202是架构化地指定,但未用于能被微处理器执行的应用程序中。图2所述的指令IF1 202即为此现象的一例。事实上,相同的运算码值202(亦即F1H)是映像至未用于x86指令集架构的一有效指令202。虽然该未使用的x86指令202是有效的x86指令202,其指示要在x86微处理器上执行一架构化地指定的运算,但它却未使用于任何能在现代x86微处理器上执行的应用程序。这个特殊的x86指令202被称为电路内仿真断点(In Circuit Emulation Breakpoint)(亦即ICE BKPT,运算码值为F1H),之前都是专门使用于一种现在已不存在的微处理器仿真设备中。ICEBKPT 202从未用于电路内仿真器的外的应用程序中,并且先前使用ICE BKPT202的电路内仿真设备已不复存在。因此,在x86的情形下,本发明已在一完全占用的指令集架构200内发现一样工具,借着利用一有效但未使用的运算码202,以允许在微处理器的设计中纳入先进的架构特征,而不需牺牲旧有软件的兼容性。在一完全占用的指令集架构200中,本发明利用一架构化地指定但未使用的运算码202,作为一指针标志,以指出其后的一n位前置码,因此允许微处理器设计者可将最多2n个最新发展的架构特征,纳入微处理器的设计中,同时保留与所有旧有软件完全的兼容性。本发明现将参照图3至6进行讨论。
(0031)现请参阅图3,其为本发明的延伸指令格式300的方块图。与图1所讨论的格式100非常近似,该延伸指令格式300具有数量可变的数据项301-305,每一项目设定为一特定值,集合起来便组成微处理器的一特定指令300。该特定指令300指示微处理器执行一特定运算,像是将两操作数相加,或是将一操作数从内存搬移至微处理器的缓存器内。一般而言,指令300的运算码项目302指定了所要执行的特定运算,而选用的地址指定元项目303则位于运算码302后,以指定该特定运算的相关附加信息,像是如何执行该运算,操作数位于何处等等。指令格式300亦允许程序员在一运算码302前加上前置码项目301。在运算码302所指定的特定运算执行时,前置码项目301是用来指示是否要使用既有的架构特征。
(0032)然而,本发明的延伸指令300是前述图1指令格式100的一超集(superset),其具有两个附加项目304与305,可被选择性作为指令延伸项,并置于一格式化延伸指令300中所有其余项目301-303之前。这两个附加项目304与305用以致能/除能(enable/disable)数个架构特征,其中这些特征并无法在一完全占用的指令集架构内加以指定。选用项目304与305是一延伸指令标志304与一延伸前置码305。该延伸指令标志304是一微处理器指令集内另一架构化地指定的运算码。在一x86的实施例中,该延伸指令标志304,或称逸出标志304,是用运算码状态FIH,其为早先使用的ICE BKPT指令。逸出标志304向微处理器逻辑电路指出,该延伸前置码305,或称延伸特征指定元305是跟随在后,其中延伸特征指定元305用以指示在延伸指令300所指定的运算执行时,要使用一架构延伸项。在一具体实施例中,延伸指令标志304指出,一对应延伸指令300的附随部分301-303及305指定了微处理器所要执行的延伸运算。延伸前置码305则指定了该延伸运算的补充部分。也就是,于该运算中该微处理器指令集所未提供的部分。
(0033)此处将本发明的指令延伸技术作个概述。一指令延伸项是以一既有指令集架构其中一运算码/指令304与一n位延伸特征前置码进行配置。所选取的运算码指令作为一指针304,以指出指令300是一延伸指令300(亦即,其指定了微处理器架构延伸项),而该n位特征前置码305则指定一延伸架构特征,于该延伸指令300执行时使用。在一具体实施例中,延伸前置码305具八位大小,最多可指定256个不同的架构附加项,加入一既有指令集中现有指令的处理过程。n位前置码的实施例,则最多可指定2n个不同的附加特征,于一特定运算执行时使用。
(0034)现请参阅图4,一表格400显示依据本发明,延伸架构特征如何映像至一8位延伸前置码实施例的位逻辑状态。类似于图2所讨论的运算码图200,图4的表格400呈现一示范性的8位前置码图400,其将一8位前置码项目305的最多256个值,关联到一符合旧有规格微处理器的对应架构特征401(如E34、E4D等),或称架构强化功能(architectural enhancement)401。在x86的具体实施例中,本发明的8位延伸特征前置码305是在现行x86指令集架构所提供的特征外,提供给上述架构延伸项401(亦即E00-EFF)使用。在一具体实施例中,延伸前置码305被映像到致能条件指令执行的特征401。另一具体实施例则可增加微处理器中架构缓存器的数量,如从16个变成32个。其它的实施例致能了架构特征401,诸如条件码回写(write back)的选择性控制、依据每一指令选择性地控制内存属性(如写入保护、回写、写入结合(write combine))。延伸地址大小(即64位、128位、256位)、延伸操作数大小(即64位、128位、256位)、储存检查的禁止、中断禁止以及结果回写的选择性控制。就如图1与图2所述的前置码101,本发明的延伸前置码305使一指定架构特征401能像上文所述般,应用于运算码项目302所指定运算的执行时。本发明所提供的双运算码(dual-opcode)的实施例,则选取一特定前置码状态401,以指出随后的运算码项目302具有一全新的转译含义。这样的实施例是应用于双架构的微处理器设计,以执行不只一个指令集。
(0035)图4所示的延伸特征401是以一般性的方式表示,而非具体指涉实际的特征,此因本发明的技术可应用于各种不同的架构延伸项401与特定的指令集架构。熟悉此领域技术者将发现,许多不同的架构特征401,其中一些已于上文提及,可依此处所述的逸出标志304/延伸前置码305技术将其纳入一既有的指令集。图4的8位前置码实施例提供了最多256个不同的特征401,而一n位前置码实施例则具有最多2n个不同特征401的程序化选择。
(0036)现请参阅图5,其为解说本发明用以执行延伸指令300的管线化微处理器500的方块图。微处理器500具有三个明显的阶段类型:提取、转译及执行。提取阶段具有提取逻辑电路501,可从指令高速缓存502或外部内存502提取指令。所提取的指令经由指令队列503送至转译阶段。转译阶段具有转译逻辑电路504,耦接至一微指令队列506。转译逻辑电路504包括延伸转译逻辑电路505。执行阶段则有执行逻辑电路507,其内具有延伸执行逻辑电路508。
(0037)依据本发明,于运作时,提取逻辑电路501从指令高速缓存/外部内存502提取格式化指令,并将这些指令依其执行顺序放入指令队列503中。接着从指令队列503提取这些指令,送至转译逻辑电路504。转译逻辑电路504将每一送入的指令转译/译码为一对应的微指令序列,以指示微处理器500执行这些指令所指定的运算。依本发明,延伸转译逻辑电路505监测那些具有延伸前置码标志的指令,以进行对应延伸前置码的转译/译码。在一x86的实施例中,延伸转译逻辑电路505配置为监测其值为FIH的延伸前置码标志,其是x86的ICE BKPT运算码。微指令字段则提供于微指令队列506中,以致能/除能延伸指令中所指定的架构特征。
(0038)微指令从微指令队列506被送至执行逻辑电路507,由延伸执行逻辑电路508监测具有依微指令字段指示而致能的架构特征的微指令,并于微指令所指定的运算执行时,应用这些架构特征。
(0039)熟悉此领域技术者将发现,图5所示的微处理器500是现代的管线化微处理器500经过简化的结果。事实上,现代的管线化微处理器500最多可包括有20至30个不同的管线阶段。然而,这些阶段可概括地归类为方块图所示的三个阶段,因此,图5的方块图500可用以点明前述本发明实施例所需的必要组件。为了简明起见,微处理器500中无关的组件并未显示出来。例如,在一实施例中,增加微处理器500的架构缓存器(图中未显示)至超过既有指令集架构所提供的数量,如此则必须提供一延伸缓存器档案(未显示)及对应的读/写逻辑电路(未显示)、作为延伸执行逻辑电路508的一部份。至于可处理不同大小的延伸地址/操作数的实施例,则包括计算延伸地址、移动延伸操作数及在延伸操作数上执行运算等所需的延伸组件。
(0040)现请参阅图6,其为图5的微处理器内转译阶段逻辑电路600的细部的方块图。转译阶段逻辑电路600具有一指令缓冲器604,依本发明,其提供延伸指令至转译逻辑电路605。转译逻辑电路605是耦接至一具有一延伸特征字段603的机器特定缓存器(machine specific register)602。转译逻辑电路605具一转译控制器606,其提供一除能讯号607至一逸出指令监测器608及一延伸前置码译码器609。逸出指令监测器608耦接至延伸前置码译码器609及一指令译码器610。延伸前置码译码器609与指令译码逻辑电路610存取一控制只读存储器(ROM)611,其中储存了对应至某些延伸指令的样板(template)微指令序列。转译逻辑电路605亦包括一微指令缓冲器612,其具有一运算码延伸项字段613。一微运算码字段614,一目的字段615、一来源字段616以及一位移字段617。
(0041)运作上,在微处理器通电激活期间,机器特定缓存器602的延伸字段603的状态是通过讯号激活状态(signal power-up state)601决定,以指出该特定微处理器是否能转译与执行本发明的延伸指令。在一具体实施例中,讯号601从一特征控制缓存器(图上未显示)导出,该特征控制缓存器则读取一于制造时即已配置的熔丝数组(fuse array)(未显示)。机器特定缓存器602将延伸特征字段603的状态送至转译控制器606。转译控制逻辑电路606则控制从指令缓冲器604所提取的指令,要依照延伸指令规则或是既有指令规则进行解译。提供这样的控制特征,可允许监督应用程序(如BIOS)致能/除能微处理器的延伸执行特征。若延伸执行被除能,则具有被选为延伸特征标志的运算码状态的指令,将依既有转译规则进行转译。在一x86的具体实施例中,选取运算码状态F1H作为标志,则在常用的转译规则下,遇到F1H将造成不合法的指令异常(exception)。然而,在延伸转译规则下,若遇到标志,则会被逸出指令监测器608监测出来。逸出指令监测器608因而于延伸前置码译码器609转译/译码标志之后的延伸前置码时,除能指令译码器610的运作,并于转译/译码该延伸指令的剩余部分时,致能指令译码器610。某些特定指令将导致对控制ROM 611的存取,以获取对应的微指令序列样板。微指令缓冲器612的运算码延伸项字段613由前置码译码器609进行配置,而其它缓冲器字段614-617则由指令译码器610来进行配置。经过配置的微指令612被送至一微指令队列(未显示于图中),由处理器进行后续执行。
(0042)现请参阅图7,其为描述本发明用以转译与执行延伸指令的方法的运作流程图700。流程开始于方块702,其中一个以延伸指令进行配置后的程序被送至微处理器。流程接着进行至方块704。
(0043)于方块704中,下一个指令是从高速缓存/内存提取。流程接着进行至判断方块706。
(0044)于判断方块706中,对在方块704中所提取的下个指令进行检查,以判断是否包括一延伸逸出标志/码。若否,则流程进行至方块712。若监测到该延伸逸出码,则流程进行至方块708。
(0045)于方块708中,转译/译码是在一于方块706所监测逸出码后的延伸特征前置码上执行。流程接着进行到方块710。
(0046)于方块710中,一微指令序列的对应字段被配置为指出该延伸前置码指定为致能/除能的延伸架构特征。流程接着进行至方块712。
(0047)于方块712中,该指令的其余部分(如前置码项目、运算码、地址指定元)被转译/译码,以判断所要执行的运算及关联操作数的属性。流程接着进行至方块714。
(0048)于方块714中,一微指令序列的其余字段被配置为指定所指定的运算及其操作数属性。流程接着进行至方块716。
(0049)于方块716中,该微指令序列,其包括方块710所配置的运算码延伸项字段以及方块714所配置的其余字段,被送至一微指令队列,由微处理器执行。流程接着进行至方块718。
(0050)于方块718中,本方法完成。
(0051)虽然本发明及其目的,特征与优点已详细叙述,其它实施例亦可包括在本发明的范围内。例如,本发明已就如下的技术加以叙述:利用已完全占用的指令集架构内的单一、未使用的运算码状态作为标志,以指出其后的延伸特征前置码。但本发明的范围就任一方面来看,并不限于已完全占用的指令集架构,或未使用的指令,或是单一标志。相反地,本发明涵盖了未完全映像的指令集、具已使用运算码的实施例以及使用一个以上的指令标志的实施例。例如,考虑一没有未使用运算码状态的指令集架构。本发明的一具体实施例包括了选取一作为逸出标志的运算码状态,其中选取标准是依市场因素而决定。另一具体实施例则包括使用运算码的一特殊组合作为标志,如运算码状态7FH的连续出现。因此,本发明的本质是在于使用一标志序列,其后则为n位的延伸项前置码,可使延伸架构特征被应用于延伸指令所指定的运算中。
(0052)此外,虽然上文是利用微处理器为例来解说本发明及其特征和优点,熟悉此领域技术者仍可察觉,本发明的范围并不限于微处理器的架构,而可涵盖所有形式的可编程装置,如信号处理器、工业用控制器(industrialcontroller)、数组处理机及其它同类装置。
总之,以上所述仅为本发明的较佳实施例而已,当不能以此限定本发明所实施的范围。大凡依本发明权利要求所作的等效变化与修饰,皆应仍属于本发明专利涵盖的范围内。
Claims (29)
1.一种延伸微处理器指令集的装置,其特征在于,它包括:
一转译逻辑电路,用以将一延伸指令转译成对应的微指令,其中该延伸指令包括:一延伸前置码,用以指示在该延伸指令所指定的一运算执行时,要使用一架构延伸项;以及一延伸指令标志,用以指出该延伸前置码,其中该延伸指令标志是该微处理器指令集内另一架构化地指定的运算码,且所述的延伸指令标志包括x86指令集的运算码F1,亦即ICE BKPT指令;以及
一延伸执行逻辑电路,耦接至该转译逻辑电路,用于接收该对应的微指令,并于执行该运算时使用该架构延伸项。
2.如权利要求1所述的延伸微处理器指令集的装置,其特征在于,所述的延伸指令还包括依据该微处理器指令集所架构化地指定的数个数据项。
3.如权利要求2所述的延伸微处理器指令集的装置,其特征在于,所述的此架构化地指定的数据项包括一运算项目,用以指定该运算。
4.如权利要求3所述的延伸微处理器指令集的装置,其特征在于,所述的延伸前置码指定了使用该架构延伸项于该运算的执行时,所必需的信息。
5.如权利要求2所述的延伸微处理器指令集的装置,其特征在于,所述的延伸前置码包括数个位,且其中这些位的逻辑状态指定了该微处理器指令集的数个架构延伸项。
6.如权利要求1所述的延伸微处理器指令集的装置,其特征在于,所述的延伸前置码包括8位。
7.如权利要求1所述的延伸微处理器指令集的装置,其特征在于,所述的微处理器指令集包括x86指令集。
8.如权利要求1所述的延伸微处理器指令集的装置,其特征在于,所述的对应的微指令包括一微运算码字段与一微运算码延伸项字段。
9.如权利要求8所述的延伸微处理器指令集的装置,其特征在于,所述的延伸执行逻辑电路使用该微运算码延伸项字段,以决定该架构延伸项,且其中该延伸执行逻辑电路使用该微运算码字段以决定该运算。
10.如权利要求1所述的延伸微处理器指令集的装置,其特征在于,所述的转译逻辑电路包括:
一逸出指令监测逻辑电路,用于监测该延伸指令标志;以及
一延伸前置码译码逻辑电路,耦接至该逸出指令监测逻辑电路,用以转译该延伸前置码,并对该对应微指令内的一微运算码延伸项字段进行配置,该微运算码延伸项字段指定了该架构延伸项。
11.如权利要求10所述的延伸微处理器指令集的装置,其特征在于,所述的转译逻辑电路还包括:
一指令译码逻辑电路,用以配置该对应微指令内的其它字段,该其它字段依据该微处理器指令集指定该运算。
12.一种用于微处理器中的指令延伸装置,其特征在于,它包括:
一延伸指令提供电路,配置为提供一延伸指令,该延伸指令指示该微处理器于一指定运算执行时,可使用一延伸架构特征,其中该延伸指令包括一指令集架构其中的一指令,该指令后则接着一n位延伸特征前置码,该指令指出该延伸指令包括x86指令集架构的ICE BKPT指令,亦即运算码F1,而该n位延伸特征前置码则指出该延伸架构特征;以及
一转译器,配置为接收该延伸指令,并产生一微指令序列,该序列指示一延伸执行逻辑电路于执行该指定运算时,应用该延伸架构特征。
13.如权利要求12所述的指令延伸装置,其特征在于,还包括:
数个指令部分,耦接至该指令延伸装置,配置为指定该指定运算。
14.如权利要求12所述的指令延伸装置,其特征在于,所述的n位延伸特征前置码的值是映像至数个补充该指令集架构的延伸架构特征。
15.如权利要求12所述的指令延伸装置,其特征在于,所述的指令集架构是x86指令集架构。
16.如权利要求12所述的指令延伸装置,其特征在于,所述的微指令序列包括一微运算码字段与一微运算码延伸项字段。
17.如权利要求12所述的指令延伸装置,其特征在于,所述的转译器包括:
一逸出指令监测器,用以监测该指令;以及
一延伸前置码译码器,耦接至该逸出指令监测器,用以转译该n位延伸特征前置码,并产生该微指令序列内一微运算码延伸项字段。
18.一种指令集延伸模块的处理方法,其特征在于,它包括:
由一微处理器的转译器接收一指令集延伸模块,该指令集延伸模块包含一逸出标志(304)以及一延伸特征指定元(305),其中,该逸出标志(304)指出一对应延伸指令的附随部分(301;302;303;305)是指定了一微处理器所要执行的一延伸运算,且该逸出标志(304)为一微处理器指令集内一既有指令;该延伸特征指定元(305),耦接至该逸出标志(304),且为该附随部分其中之一,用以指定该延伸运算的一补充部分,该补充部分是补充由该微处理器指令集所提供的部分;以及
由该微处理器的转译器将该逸出标记与该附随部分转译成对应的微指令,该对应的微指令指示一延伸执行逻辑电路去执行该延伸运算。
19.如权利要求18所述的指令集延伸模块的处理方法,其特征在于,所述的附随部分的剩余者(301;302;303)是依据该微处理器指令集,配置为指定该延伸运算的一基本部分,且其中该基本部分与该补充部分一起指定该延伸运算。
20.如权利要求19所述的指令集延伸模块的处理方法,其特征在于,所述的附随部分的剩余者包括一运算码字节与选用的地址指定元字节。
21.如权利要求18所述的指令集延伸模块的处理方法,其特征在于,所述的微处理器指令集是x86微处理器指令集。
22.如权利要求21所述的指令集延伸模块的处理方法,其特征在于,所述的既有指令包括x86指令集架构的ICE BKPT指令,亦即运算码F1。
23.如权利要求18所述的指令集延伸模块的处理方法,其特征在于,所述的微处理器转译器包括:
一逸出标志监测逻辑电路,用以监测该逸出标志,并指示该附随部分的转译动作需依据延伸转译常规;以及
一译码逻辑电路,耦接至该逸出标志监测逻辑电路,用以依据该延伸转译常规执行该附随部分的转译动作,以致能该延伸运算。
24.一种延伸微处理器指令集的方法,其特征在于,它包括:
提供一延伸指令,该延伸指令包括一延伸标志以及一延伸前置码,其中该延伸标志是该微处理器指令集的其中之一指令;
通过该延伸前置码与该延伸指令的其余部分指定所要执行的一延伸运算,其中该延伸运算使用了一不能由该微处理器指令集中的指令来加以指定的微处理器的一架构特征;以及
在该延伸运算的执行中应用该架构特征。
25.如权利要求24所述的延伸微处理器指令集的方法,其特征在于,所述的指定所要执行的该延伸运算的动作包括:
首先指定该延伸运算的一常用部分,该首先指定的动作使用了该微处理器指令集中另一个指令;以及
其次指定该延伸运算的一补充部分,该其次指定的动作使用了该延伸前置码。
26.如权利要求24所述的延伸微处理器指令集的方法,其特征在于,所述的提供延伸指令的动作包括使用x86微处理器指令集其中一指令作为该延伸标志。
27.如权利要求26所述的延伸微处理器指令集的方法,其特征在于,所述的使用x86微处理器指令集的该指令的动作包括选取x86 ICE BKPT指令亦即运算码F1作为该延伸标志。
28.如权利要求24所述的延伸微处理器指令集的方法,其特征在于,所述的应用该架构特征的动作包括:
将该延伸指令转译为指示该微处理器执行该延伸运算的微指令;以及
于一延伸执行逻辑电路内,执行该微指令以进行该延伸运算。
29.如权利要求28所述的延伸微处理器指令集的方法,其特征在于,所述的转译延伸指令的动作包括:
于一转译逻辑电路内,监测该延伸标志;以及
依照延伸转译规则译码该延伸前置码与该延伸指令的其余部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US35642002P | 2002-02-12 | 2002-02-12 | |
US10/144,595 US7181596B2 (en) | 2002-02-12 | 2002-05-09 | Apparatus and method for extending a microprocessor instruction set |
US10/144,595 | 2002-05-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1414468A CN1414468A (zh) | 2003-04-30 |
CN1414468B true CN1414468B (zh) | 2010-04-21 |
Family
ID=27616187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02142691.0A Expired - Lifetime CN1414468B (zh) | 2002-02-12 | 2002-09-17 | 延伸微处理器指令集的装置及方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7181596B2 (zh) |
EP (1) | EP1335279B1 (zh) |
CN (1) | CN1414468B (zh) |
TW (1) | TW591527B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
AU2001243463A1 (en) | 2000-03-10 | 2001-09-24 | Arc International Plc | Memory interface and method of interfacing between functional entities |
US7529912B2 (en) * | 2002-02-12 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for instruction-level specification of floating point format |
US7181596B2 (en) * | 2002-02-12 | 2007-02-20 | Ip-First, Llc | Apparatus and method for extending a microprocessor instruction set |
US7315921B2 (en) * | 2002-02-19 | 2008-01-01 | Ip-First, Llc | Apparatus and method for selective memory attribute control |
US7328328B2 (en) * | 2002-02-19 | 2008-02-05 | Ip-First, Llc | Non-temporal memory reference control mechanism |
US7395412B2 (en) * | 2002-03-08 | 2008-07-01 | Ip-First, Llc | Apparatus and method for extending data modes in a microprocessor |
US7546446B2 (en) | 2002-03-08 | 2009-06-09 | Ip-First, Llc | Selective interrupt suppression |
US7302551B2 (en) * | 2002-04-02 | 2007-11-27 | Ip-First, Llc | Suppression of store checking |
US7185180B2 (en) | 2002-04-02 | 2007-02-27 | Ip-First, Llc | Apparatus and method for selective control of condition code write back |
US7155598B2 (en) * | 2002-04-02 | 2006-12-26 | Ip-First, Llc | Apparatus and method for conditional instruction execution |
US7380103B2 (en) | 2002-04-02 | 2008-05-27 | Ip-First, Llc | Apparatus and method for selective control of results write back |
US7373483B2 (en) * | 2002-04-02 | 2008-05-13 | Ip-First, Llc | Mechanism for extending the number of registers in a microprocessor |
US7380109B2 (en) * | 2002-04-15 | 2008-05-27 | Ip-First, Llc | Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor |
US7917734B2 (en) * | 2003-06-30 | 2011-03-29 | Intel Corporation | Determining length of instruction with multiple byte escape code based on information from other than opcode byte |
US7340588B2 (en) * | 2003-11-24 | 2008-03-04 | International Business Machines Corporation | Extending the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code |
US20050278517A1 (en) | 2004-05-19 | 2005-12-15 | Kar-Lik Wong | Systems and methods for performing branch prediction in a variable length instruction set microprocessor |
US7493474B1 (en) * | 2004-11-10 | 2009-02-17 | Altera Corporation | Methods and apparatus for transforming, loading, and executing super-set instructions |
US7971042B2 (en) * | 2005-09-28 | 2011-06-28 | Synopsys, Inc. | Microprocessor system and method for instruction-initiated recording and execution of instruction sequences in a dynamically decoupleable extended instruction pipeline |
US7873641B2 (en) * | 2006-07-14 | 2011-01-18 | Bea Systems, Inc. | Using tags in an enterprise search system |
US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
US7529909B2 (en) * | 2006-12-28 | 2009-05-05 | Microsoft Corporation | Security verified reconfiguration of execution datapath in extensible microcomputer |
US8095917B2 (en) * | 2007-06-04 | 2012-01-10 | Microsoft Corporation | Debugger for virtual intermediate language operations |
US7941641B1 (en) | 2007-10-01 | 2011-05-10 | Yong-Kyu Jung | Retargetable instruction decoder for a computer processor |
US20100023733A1 (en) * | 2008-04-15 | 2010-01-28 | Vns Portfolio Llc | Microprocessor Extended Instruction Set Precision Mode |
US8041896B2 (en) * | 2008-04-30 | 2011-10-18 | Hewlett-Packard Development Company, L.P. | Virtualization platform with dedicated cache access |
US9588845B2 (en) * | 2014-02-10 | 2017-03-07 | Via Alliance Semiconductor Co., Ltd. | Processor that recovers from excessive approximate computing error |
US9448939B2 (en) | 2014-06-30 | 2016-09-20 | International Business Machines Corporation | Collecting memory operand access characteristics during transactional execution |
US9710271B2 (en) | 2014-06-30 | 2017-07-18 | International Business Machines Corporation | Collecting transactional execution characteristics during transactional execution |
US9600286B2 (en) | 2014-06-30 | 2017-03-21 | International Business Machines Corporation | Latent modification instruction for transactional execution |
US9336047B2 (en) | 2014-06-30 | 2016-05-10 | International Business Machines Corporation | Prefetching of discontiguous storage locations in anticipation of transactional execution |
US9348643B2 (en) | 2014-06-30 | 2016-05-24 | International Business Machines Corporation | Prefetching of discontiguous storage locations as part of transactional execution |
US11803918B2 (en) | 2015-07-07 | 2023-10-31 | Oracle International Corporation | System and method for identifying experts on arbitrary topics in an enterprise social network |
US10338943B1 (en) * | 2015-09-17 | 2019-07-02 | Symantec Corporation | Techniques for emulating microprocessor instructions |
US9870305B2 (en) | 2015-09-30 | 2018-01-16 | International Business Machines Corporation | Debugging of prefixed code |
US10394568B2 (en) | 2015-09-30 | 2019-08-27 | International Business Machines Corporation | Exception handling for applications with prefix instructions |
US10761852B2 (en) | 2015-09-30 | 2020-09-01 | International Business Machines Corporation | Extending data range addressing |
US10877759B2 (en) | 2015-09-30 | 2020-12-29 | International Business Machines Corporation | Managing the capture of information in applications with prefix instructions |
US11119777B1 (en) | 2020-04-22 | 2021-09-14 | International Business Machines Corporation | Extended prefix including routing bit for extended instruction format |
US11687338B2 (en) * | 2021-04-30 | 2023-06-27 | Seagate Technology Llc | Computational storage with pre-programmed slots using dedicated processor core |
US20230251980A1 (en) * | 2022-02-10 | 2023-08-10 | Mellanox Technologies, Ltd. | Devices, methods, and systems for disaggregated memory resources in a computing environment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6009510A (en) * | 1998-02-06 | 1999-12-28 | Ip First Llc | Method and apparatus for improved aligned/misaligned data load from cache |
US6014736A (en) * | 1998-03-26 | 2000-01-11 | Ip First Llc | Apparatus and method for improved floating point exchange |
CN1242546A (zh) * | 1998-03-31 | 2000-01-26 | 英特尔公司 | 用于处理不精确异常的一种方法和装置 |
US6167505A (en) * | 1995-12-20 | 2000-12-26 | Seiko Epson Corporation | Data processing circuit with target instruction and prefix instruction |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3657705A (en) | 1969-11-12 | 1972-04-18 | Honeywell Inc | Instruction translation control with extended address prefix decoding |
US4064554A (en) | 1976-08-16 | 1977-12-20 | Texas Instruments Incorporated | Microcomputer with code conversion |
US4217638A (en) | 1977-05-19 | 1980-08-12 | Tokyo Shibaura Electric Co., Ltd. | Data-processing apparatus and method |
JPS57157362A (en) | 1981-03-25 | 1982-09-28 | Hitachi Ltd | Method and apparatus of execution path career data pickup for architecture program |
US4547849A (en) | 1981-12-09 | 1985-10-15 | Glenn Louie | Interface between a microprocessor and a coprocessor |
US4851995A (en) | 1987-06-19 | 1989-07-25 | International Business Machines Corporation | Programmable variable-cycle clock circuit for skew-tolerant array processor architecture |
JPS6491228A (en) | 1987-09-30 | 1989-04-10 | Takeshi Sakamura | Data processor |
US5218712A (en) | 1987-07-01 | 1993-06-08 | Digital Equipment Corporation | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption |
US5448744A (en) | 1989-11-06 | 1995-09-05 | Motorola, Inc. | Integrated circuit microprocessor with programmable chip select logic |
US5765011A (en) | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
JPH04306735A (ja) | 1991-04-04 | 1992-10-29 | Toshiba Corp | 非同期割込み禁止機構 |
EP0550289A3 (en) | 1992-01-02 | 1993-11-10 | Amdahl Corp | A mechanism to detect stores into the instruction stream |
DE69329778T2 (de) | 1992-09-29 | 2001-04-26 | Seiko Epson Corp | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
DE69427265T2 (de) | 1993-10-29 | 2002-05-02 | Advanced Micro Devices Inc | Superskalarbefehlsdekoder |
US5481684A (en) | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5687338A (en) | 1994-03-01 | 1997-11-11 | Intel Corporation | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor |
ZA954460B (en) | 1994-09-30 | 1996-02-05 | Intel Corp | Method and apparatus for processing memory-type information within a microprocessor |
KR100374803B1 (ko) * | 1995-05-25 | 2003-05-12 | 삼성전자주식회사 | 튜닝포크형자이로스코프 |
US5822778A (en) | 1995-06-07 | 1998-10-13 | Advanced Micro Devices, Inc. | Microprocessor and method of using a segment override prefix instruction field to expand the register file |
US5768574A (en) | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor |
WO1997022922A1 (en) | 1995-12-15 | 1997-06-26 | Intel Corporation | Instruction encoding techniques for microcontroller architecture |
US5826089A (en) | 1996-01-04 | 1998-10-20 | Advanced Micro Devices, Inc. | Instruction translation unit configured to translate from a first instruction set to a second instruction set |
JP3663710B2 (ja) | 1996-01-17 | 2005-06-22 | ヤマハ株式会社 | プログラムの生成方法およびプロセッサの割込制御方法 |
US5857103A (en) | 1996-06-14 | 1999-01-05 | Sun Microsystems, Inc. | Method and apparatus for addressing extended registers on a processor in a computer system |
US5778220A (en) | 1996-11-18 | 1998-07-07 | Intel Corporation | Method and apparatus for disabling interrupts in a highly pipelined processor |
JPH10161871A (ja) | 1996-11-28 | 1998-06-19 | Toshiba Corp | プロセッサ |
US5937199A (en) | 1997-06-03 | 1999-08-10 | International Business Machines Corporation | User programmable interrupt mask with timeout for enhanced resource locking efficiency |
US5875342A (en) | 1997-06-03 | 1999-02-23 | International Business Machines Corporation | User programmable interrupt mask with timeout |
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 |
US5913049A (en) | 1997-07-31 | 1999-06-15 | Texas Instruments Incorporated | Multi-stream complex instruction set microprocessor |
US6230259B1 (en) * | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US6157996A (en) | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
US6463522B1 (en) | 1997-12-16 | 2002-10-08 | Intel Corporation | Memory system for ordering load and store instructions in a processor that performs multithread execution |
EP0942359B1 (en) | 1998-02-19 | 2012-07-04 | Lantiq Deutschland GmbH | An apparatus for executing instructions of a program |
EP0942357A3 (en) | 1998-03-11 | 2000-03-22 | Matsushita Electric Industrial Co., Ltd. | Data processor compatible with a plurality of instruction formats |
US6085312A (en) | 1998-03-31 | 2000-07-04 | Intel Corporation | Method and apparatus for handling imprecise exceptions |
US6356270B2 (en) | 1998-03-31 | 2002-03-12 | Intel Corporation | Efficient utilization of write-combining buffers |
US6014735A (en) | 1998-03-31 | 2000-01-11 | Intel Corporation | Instruction set extension using prefixes |
US6581154B1 (en) | 1999-02-17 | 2003-06-17 | Intel Corporation | Expanding microcode associated with full and partial width macroinstructions |
US6405305B1 (en) | 1999-09-10 | 2002-06-11 | Advanced Micro Devices, Inc. | Rapid execution of floating point load control word instructions |
US6542985B1 (en) | 1999-09-23 | 2003-04-01 | Unisys Corporation | Event counter |
WO2001025900A1 (en) | 1999-10-06 | 2001-04-12 | Cradle Technologies | Risc processor using register codes for expanded instruction set |
US6751737B1 (en) | 1999-10-07 | 2004-06-15 | Advanced Micro Devices | Multiple protected mode execution environments using multiple register sets and meta-protected instructions |
US6456891B1 (en) * | 1999-10-27 | 2002-09-24 | Advanced Micro Devices, Inc. | System and method for transparent handling of extended register states |
JP3669884B2 (ja) | 1999-11-11 | 2005-07-13 | 富士通株式会社 | 処理装置 |
US6560694B1 (en) | 2000-01-14 | 2003-05-06 | Advanced Micro Devices, Inc. | Double prefix overrides to provide 16-bit operand size in a 32/64 operating mode |
US6779103B1 (en) | 2000-09-29 | 2004-08-17 | Intel Corporation | Control word register renaming |
JP2002175261A (ja) | 2000-12-05 | 2002-06-21 | Oki Electric Ind Co Ltd | データ転送制御回路 |
US7181596B2 (en) | 2002-02-12 | 2007-02-20 | Ip-First, Llc | Apparatus and method for extending a microprocessor instruction set |
US7529912B2 (en) | 2002-02-12 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for instruction-level specification of floating point format |
US7315921B2 (en) | 2002-02-19 | 2008-01-01 | Ip-First, Llc | Apparatus and method for selective memory attribute control |
US7328328B2 (en) | 2002-02-19 | 2008-02-05 | Ip-First, Llc | Non-temporal memory reference control mechanism |
US6823414B2 (en) | 2002-03-01 | 2004-11-23 | Intel Corporation | Interrupt disabling apparatus, system, and method |
US7395412B2 (en) | 2002-03-08 | 2008-07-01 | Ip-First, Llc | Apparatus and method for extending data modes in a microprocessor |
US7546446B2 (en) | 2002-03-08 | 2009-06-09 | Ip-First, Llc | Selective interrupt suppression |
US7302551B2 (en) | 2002-04-02 | 2007-11-27 | Ip-First, Llc | Suppression of store checking |
US7185180B2 (en) | 2002-04-02 | 2007-02-27 | Ip-First, Llc | Apparatus and method for selective control of condition code write back |
US7380103B2 (en) | 2002-04-02 | 2008-05-27 | Ip-First, Llc | Apparatus and method for selective control of results write back |
US7155598B2 (en) | 2002-04-02 | 2006-12-26 | Ip-First, Llc | Apparatus and method for conditional instruction execution |
US7373483B2 (en) | 2002-04-02 | 2008-05-13 | Ip-First, Llc | Mechanism for extending the number of registers in a microprocessor |
US7380109B2 (en) | 2002-04-15 | 2008-05-27 | Ip-First, Llc | Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor |
TWI282066B (en) | 2002-08-22 | 2007-06-01 | Ip First Llc | Apparatus and method for extending data modes in a microprocessor |
US7917734B2 (en) | 2003-06-30 | 2011-03-29 | Intel Corporation | Determining length of instruction with multiple byte escape code based on information from other than opcode byte |
-
2002
- 2002-05-09 US US10/144,595 patent/US7181596B2/en not_active Expired - Lifetime
- 2002-07-30 TW TW091116957A patent/TW591527B/zh not_active IP Right Cessation
- 2002-09-17 CN CN02142691.0A patent/CN1414468B/zh not_active Expired - Lifetime
-
2003
- 2003-02-12 EP EP03250916.8A patent/EP1335279B1/en not_active Expired - Lifetime
-
2004
- 2004-12-01 US US11/001,212 patent/US7543134B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167505A (en) * | 1995-12-20 | 2000-12-26 | Seiko Epson Corporation | Data processing circuit with target instruction and prefix instruction |
US6009510A (en) * | 1998-02-06 | 1999-12-28 | Ip First Llc | Method and apparatus for improved aligned/misaligned data load from cache |
US6014736A (en) * | 1998-03-26 | 2000-01-11 | Ip First Llc | Apparatus and method for improved floating point exchange |
CN1242546A (zh) * | 1998-03-31 | 2000-01-26 | 英特尔公司 | 用于处理不精确异常的一种方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
TW591527B (en) | 2004-06-11 |
EP1335279A2 (en) | 2003-08-13 |
US7181596B2 (en) | 2007-02-20 |
US20030154359A1 (en) | 2003-08-14 |
US7543134B2 (en) | 2009-06-02 |
US20050102492A1 (en) | 2005-05-12 |
CN1414468A (zh) | 2003-04-30 |
EP1335279B1 (en) | 2019-04-24 |
EP1335279A3 (en) | 2005-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1414468B (zh) | 延伸微处理器指令集的装置及方法 | |
CN1218243C (zh) | 延伸微处理器数据模式的装置及方法 | |
CN100377075C (zh) | 使浮点格式实现指令级规格的设备及方法 | |
US5630083A (en) | Decoder for decoding multiple instructions in parallel | |
US5586277A (en) | Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders | |
US5537629A (en) | Decoder for single cycle decoding of single prefixes in variable length instructions | |
US5600806A (en) | Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer | |
EP1351130B1 (en) | Apparatus and method for conditional instruction execution | |
US4897787A (en) | Data processing system | |
CN102707988B (zh) | 微处理器及其操作方法 | |
US20020083302A1 (en) | Hardware instruction translation within a processor pipeline | |
EP1336918B1 (en) | Apparatus and method for selective memory attribute control | |
EP1351135B1 (en) | Microprocessor and method for selective control of condition code write back | |
JPH0810428B2 (ja) | データ処理装置 | |
US5961632A (en) | Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes | |
CN100578442C (zh) | 选择性地控制结果回写的装置及方法 | |
EP0397414B1 (en) | Control device having a function of modifying a microinstruction | |
CN100590591C (zh) | 选择性地控制条件码回写的装置及方法 | |
CN1414464B (zh) | 增加微处理器的寄存器数量的装置及方法 | |
CN1212566C (zh) | 执行条件指令的装置及方法 | |
CN1308813C (zh) | 非临时存储器参量的控制装置、结构和方法 | |
US5187782A (en) | Data processing system | |
CN1237441C (zh) | 选择性控制存储器属性的装置及方法 | |
CN1211731C (zh) | 延伸微处理器地址模式的装置及方法 | |
TWI224284B (en) | Selective interrupt suppression |
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: 20100421 |