CN100377075C - 使浮点格式实现指令级规格的设备及方法 - Google Patents

使浮点格式实现指令级规格的设备及方法 Download PDF

Info

Publication number
CN100377075C
CN100377075C CNB2006100653018A CN200610065301A CN100377075C CN 100377075 C CN100377075 C CN 100377075C CN B2006100653018 A CNB2006100653018 A CN B2006100653018A CN 200610065301 A CN200610065301 A CN 200610065301A CN 100377075 C CN100377075 C CN 100377075C
Authority
CN
China
Prior art keywords
floating
order
point
prefix
expansion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2006100653018A
Other languages
English (en)
Other versions
CN1834899A (zh
Inventor
葛伦·亨利
劳德利·虎克
泰利·派克
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1834899A publication Critical patent/CN1834899A/zh
Application granted granted Critical
Publication of CN100377075C publication Critical patent/CN100377075C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明涉及一种使浮点格式实现指令级规格的设备及方法,及具有超出其现有能力而提供浮点格式规格的设备。该设备包含转换逻辑电路及扩充执行逻辑电路,其中转换逻辑电路将一扩充指令转换为对应微指令,扩充指令则具有一扩充前缀及一扩充前缀卷标。扩充前缀用以确定浮点格式,扩充前缀卷标则指出该扩充前缀,其中该扩充前缀卷标为一微处理器所用的一指令集中在结构上确定的操作码。扩充执行逻辑电路耦接至转换逻辑电路,并接收对应微指令,且依据该扩充前缀中确定的浮点格式执行相关浮点运算。本发明可保证兼容性的同时,使浮点格式实现指令级规格。

Description

使浮点格式实现指令级规格的设备及方法
技术领域
本发明涉及微电子领域,特别是涉及一种将指令级浮点格式规格应用于现有微处理器指令集结构中的技术。
背景技术
本案对应的美国案主张2004年3月18日提出美国临时申请案60/554299为优先权,在此将其并入本案以供参阅。
微处理器自70年代早期问世后,已逐渐获得推广,其应用领域已由原本的科技界扩增至商业消费界。其中商业消费界的产品包含桌上及膝上型计算机、视讯游戏控制器及其它诸多家用及商用装置。
随着微处理器使用的爆炸性增长,愈来愈多的产品面临技术上的更高要求,如速度要求、寻址能力要求、快速内存存取能力要求、大操作数要求、一般功能运算种类提升的要求(如浮点、单指令多数据流(SIMD)及条件式移动等)及附加特殊目的运算能力要求(如数字信号处理功能及其它多媒体运算等)。由于这些要求的推动,微处理器设计已使用了相当多的改进技术,如强力管线、超标量结构、高速缓存结构、失绪处理、猝发处理机制、分支预测及臆测执行等。相对于三十年前的产品而言,今天的微处理器实际上已是一相当复杂且功能强大的机器。
与其它产品不同的是,微处理器结构的进展仍有一项重要的受限因素,且该项因素持续对微处理器造成影响。这项因素即是前后代兼容性问题,也是目前的微处理器具有相当复杂度的主因之一。基于市场因素影响,许多制造商在新推出结构中加以新设计时都选择维持其所有性能以使与原有版本兼容。
如今,前后代兼容性问题已相对x86兼容微处理器发展时代明显许多。众所周知,现今虚拟模式32/16位x86微处理器仍可执行80年代所制造的8位实模式应用程序。该种结构仍大量沿用于x86结构中,其目的只是为维持前后代应用及操作模式的兼容性。不过,虽然过去已经将新开发出的结构特征加至现有指令集结构上,但该特征实现所依赖的可程序化指令却变得相当少了。详细的说,目前某些指令集中并无闲置未用的指令可供设计者将较新的特征加入现有结构中。
以x86指令集结构而言,并无另外可用的未定义一位操作码,一位x86操作码中的全部256个操作码皆已为现有指令所用。故现今x86微处理器设计者必须选择加入新特征或维持前后代兼容性。若选择加入新的可程序化特征,那么这些特征必须被指定以操作码值,以使程序设计者运用这些特征。若有闲置操作码值未存于现有指令集结构中,则部份现有操作码值必须重新定义,以达到提供新特征的规格,然而新特征的加入却会使前后代兼容性受到影响。
程序设计者希望在现今的计算机中加入许多特征,但却因为上述原因而不具备可能性,其中一项特征就是对于指令级浮点格式规格的加入。
综上所述,本案发明人已了解到程序设计者在指令级指明浮点运算执行时所用的精度及/或舍入模式的需要,其中该浮点运算为一对应指令所激活。然而,本领域的普通技术人员皆知现有微处理器结构并无该种规格,其一般包含一执行浮点运算的浮点单元,且浮点运算时浮点单元所用的精度及舍入模式在浮点运算相关指令被执行前即先预定于一或多个相关硬件缓存器中。这些相关硬件缓存器在x86兼容微处理器中称作浮点控制字组,故x86兼容微处理器中浮点单元所执行的所有后续运算所用的浮点格式(即精度及舍入模式)为浮点控制字组中各不同字段值所确定。此外,欲对x86结构中浮点单元的精度及/或舍入模式加以改变时,需在一程序流中执行一特殊指令FLDCW。
由于浮点运算本身并非完全准确,故浮点操作数所用及结果所需的精度及/或舍入模式规格对于浮点算法的正确执行有着相当重要的影响,也因此算法中需加入兼容法则以确保能得到正确结果。例如,x86浮点控制字组可受程序化以确定单精度运算等,并使其舍入模式得到的舍入结果最接近但不小于无限准确值。此种在一浮点控制字组中确定的特殊浮点格式固足以真正为一些浮点算法所用,但对于需要不同精度或舍入模式的其它算法却是完全不够的,如程序语言JAVA通常都严格规定需使用单精度操作数,此为熟习该项技术者皆知者。此外,本领域的普通技术亦知现有编译器一般对浮点控制字组加以设定以确定双精度为浮点运算的预定精度。再者,虽然典型指令集结构都能提供令微处理器自内存加载一新浮点控制字组以改变浮点格式的指令,但该项指令的执行速度非常慢,此乃因为微处理器中所有运算皆需在浮点控制字组改变之前受同步化。在实际使用时,微处理器中运算的同步化指微处理器必须被停止动作,浮点控制字组自内存中加载,且微处理器重新动作,此时该种运算的性能会有一严重性能瓶颈,甚至在只有一个浮点格式改变也是这样。实际上,本案发明人已注意到许多JAVA编译器利用间接确定新浮点格式的方式(其实上较快)避开这种性能瓶颈,即在双精度运算格式的浮点单元中执行单精度运算时,编译器利用使浮点单元在双精度模式下执行该等运算以进行该单精度运算、并接着利用储存该结果为所需精度形式及/或舍入模式的方式而将运算结果做舍入处理成单精度者,其中该结果储存于一内存中(多数指令集结构能在内存加载及储存动作进行时使浮点精度及/或舍入模式受到明确指明)。最后,该结果自内存(以所需精度储存)中被载至浮点单元中,以进行后续的运算动作。
上述浮点格式规格“workaround”的说明可见于Takeshi Ogasawara等人发表的论文”Optimizing Precision Overhead for x86 Processors”,截自“Proceedings of the 2nd JavaTM Virtual Machine Research andTechnology Symposium,”August 1-2,2002,Useix:San Francisco.此外,技术人员熟知,虽然将一浮点结果写出至内存、并接着将之读回至一浮点单元中的速度不会与执行一指令以加载一新浮点控制字组一般慢,但该种方式仍然会有性能瓶颈产生。
因此,本案发明人已注意到一种使浮点格式规格用于一不需运算同步化却不会有性能变差的浮点运算中的较佳技术确有提出的必要。
因此,需有多个加载浮点控制字组可被设定以指明多个所需浮点格式、并使程序设计者选择该等浮点控制字组之一者以为一相关浮点指令所确定的运算所用,其中相关浮点指令本身即确定了对该等浮点控制字组的一者的选择方式。此外,程序设计者需可直接确定一相关浮点运算的浮点格式,即浮点运算与运算执行时所用的浮点格式皆确定于一单一指令中。不过,虽然该等需求已被述明,但许多指令集结构(包含目前的x86指令集结构)皆无在不牺牲一些现有操作数操作性的条件下提供所需特征的手段或装置。
基于上述需求,一种能将浮点格式特征规格加至一具有完全完整的操作码集的暨存微处理器结构的设备及方法是目前所需求的,其中浮点格式规格特征的加入使得一兼容微处理器得维持执行前后代应用程序的能力,并同时能使程序设计者与编译器具有在指令级上控制浮点格式及相关浮点运算规格的能力。
发明内容
本发明所要解决的问题在于克服上述及其它问题,并用以改善现有技术的缺点。
为实现上述目的,本发明提出一种使微处理器指令集具有超出其现有能力而能提供浮点格式规格。在一实施例中,所提出的一种微处理器设备用以确定一浮点格式在一相关浮点运算执行期间的使用,其包含转换逻辑电路及扩充执行逻辑电路,其中转换逻辑电路将一扩充指令转换为对应微指令,扩充指令则具有一扩充前缀及一扩充前缀卷标。扩充前缀用以确定浮点格式,所述扩充前缀还包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述扩充前缀还具有浮点例外屏蔽掩码,以阻止浮点例外的发生。扩充前缀卷标则指出该扩充前缀,其中该扩充前缀卷标为一微处理器所用的一指令集中在结构上以其它方式确定的操作码。转换逻辑电路包含逃脱指令检测逻辑电路、扩充前缀译码逻辑电路以及指令译码逻辑电路。逃脱指令检测逻辑电路用以检测该扩充前缀卷标。扩充前缀译码逻辑电路耦接至该逃脱指令检测逻辑电路,用以转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式。指令译码逻辑电路,用以设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算。扩充执行逻辑电路耦接至转换逻辑电路,并接收对应微指令,且依据该扩充前缀中确定的浮点格式执行相关浮点运算。
本发明公开了一扩充机制,用以对一现有微处理器指令集加以浮点格式规格特征,并具有一扩充指令及一转换器。扩充指令令微处理器根据一浮点格式执行一相关浮点运算,其中该扩充指令包含在该现有微处理器指令集中一被选出的操作码及尾随的一n位扩充前缀。该被选出的操作码指出该扩充指令,而该n位元扩充前缀则指出该浮点格式,所述扩充前缀还包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所达扩充前缀还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;该转换器接收该扩充指令,并产生一微指令序列,用以令该微处理器依据该浮点格式执行该相关浮点运算。该转换器还包含逃脱指令检测逻辑电路、扩充前缀译码逻辑电路以及指令译码逻辑电路。逃脱指令检测逻辑电路用以检测该扩充前缀卷标。扩充前缀译码逻辑电路耦接至该逃脱指令检测逻辑电路,用以转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式。指令译码逻辑电路,用以设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算。
本发明的还公开一种指令集扩充设备,用以提供现有微处理器指令集以指令级浮点格式规格能力,并包含一转换逻辑电路,用以接收逃脱卷标,并用以指出一对应指令的伴随部份用于指定一为微处理器执行的一扩充运算,其中该逃脱卷标为微处理器指令集中一第一操作码部份;该逃脱卷标耦接至一浮点格式确定字段,该浮点格式确定字段为该伴随部份之一,用以指定一待于该扩充运算执行期间所用的一浮点格式,所述浮点格式确定字段包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述逃脱卷标还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;及扩充浮点执行逻辑电路。该转换逻辑电路包含逃脱指令检测逻辑电路、扩充前缀译码逻辑电路以及指令译码逻辑电路。逃脱指令检测逻辑电路用以检测该扩充前缀卷标。扩充前缀译码逻辑电路耦接至该逃脱指令检测逻辑电路,用以转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式。指令译码逻辑电路,用以设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算。
本发明的还公开了一种扩充一微处理器指令集以提供一浮点格式指令级规格的方法,其包含下列步骤:提供一扩充指令,该扩充指令包含一扩充卷标及一扩充前缀,其中该扩充卷标为该微处理器指令集中的一第一操作码,所述扩充前缀还包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述扩充前缀还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;检测该扩充前缀卷标;转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式;设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算;通过该扩充前缀及该扩充指令的其余部份指定一待执行运算,其中该指定步骤包含先确定该运算所用的精度格式与舍入格式;及根据该确定动作执行该运算。
本发明可保证兼容性的同时,使浮点格式实现指令级规格。
附图说明
图1为一现有微处理指令格式的方块图;
图2为一指令集结构中指令映像至图1指令格式中一8位操作码字节的位逻辑电路状态的方式的表格;
图3为本发明的扩充指令格式的方块图;
图4为本发明的扩充结构特征映像至一8位扩充前缀实施例的逻辑状态的方式的表格;
图5为本发明中浮点格式加以规格化所用的管线微处理器的方块图;
图6为本发明中对浮点格式加以规格化所用的一扩充前缀实施例的方块图;
图7为本发明中对浮点格式加以规格化所用的扩充前缀另一实施例的方块图;
图8为图5的微处理器内转换级逻辑电路的方块图;
图9为图5微处理器中扩充执行逻辑电路的方块图;
图10为图5微处理器中扩充执行逻辑电路另一实施例的方块图;以及
图11为本发明的转换及执行指令的方法的流程图,且该方法用以对指令级浮点格式加以规格化。
其中,附图标记:
100  微处理器指令格式    101  前缀
102  操作码              103  地址确定码
200  8位操作码地图       201  指令码
202  操作码              300  扩充指令格式
301   前缀                      302   操作码
303   地址确定码                304   逃脱卷标
305   扩充浮点格式确定字段前缀  400   扩充前缀地图
401   浮点格式确定字段          501   提取逻辑电路
500   具浮点格式规格的微处理器  502   指令高速缓存
503   指令贮列                  504   转换逻辑电路
505   扩充转换逻辑电路          506   微指令贮列
507   执行逻辑电路              508   扩充执行逻辑电路
600   扩充前缀                  602   浮点控制字组字段
603   闲置字段                  604   浮点控制字组1
605   浮点控制字组              2606  浮点控制字组3
607   浮点控制字组              4700  扩充前缀
701   舍入码字段                702   精度码字段
703   闲置字段                  704   浮点控制字组
800   转换级逻辑电路            801   电源开启状态
802   机器确定缓存器            803   扩充特征字段
804   指令缓冲器                805   转换逻辑电路
806   转换控制器                807   关闭信号
808   逃脱指令检测器            809   扩充前缀译码器
810   指令译码器                811   只读存储器
812   微指令缓冲器              813   操作码扩充字段
814   微操作码字段              815   目的字段
816   来源字段                  817   取代字段
900   扩充执行逻辑电路          901   运算位
902   微指令缓存器              903   操作码扩充字段
904   微操作码字段              905   运算位
906   浮点控制字组              910   浮点结果缓冲器
909   扩充浮点执行逻辑电路      1001  运算位1
1000  扩充执行逻辑电路          1002  微指令缓存器
1003  操作码扩充字段            1004  微操作码字段
1005  运算位2                   1006  浮点控制字组
1009  扩充浮点执行逻辑电路    1010  浮点结果缓冲器
1100  浮点格式的指令级规格    1011  总线
步骤S1102  开始
步骤S1104  提取下一指令
步骤S1106  判断扩充逃脱码
步骤S1108  译码扩充前缀中浮点格式确定字段
步骤S1110  指定微指令序列中扩充字段浮点格式
步骤S1112  译码/转换前缀、操作码及地址确定码字段
步骤S1114  设定微指令序列中微操作码及操作数字段
步骤S1116  提供微指令序列至贮列中以为执行所用
步骤S1118  取得执行用的扩充微指令
步骤S1120  根据指定的浮点格式执行预定运算并产生结果
步骤S1122  完成
具体实施方式
通过以下说明可使本领域的普通技术人员借之制造及使用本发明。以下介绍将针对一特定应用及其需求进行说明,不过本领域的普通技术人员可轻易对该实施例进行各种变更,该变更仍以本发明公开的内容为基本原理,并因此得到其它的实施例。因此,本发明的范围不仅限于所述实施例,而应以其原理及技术特征所对应的最大范围来确定。
鉴于背景技术一节对于现有微处理器用以扩充结构特征至具有超出原本相关指令集能力的技术的讨论,以下将通过图1及图2所示的现有技术中的范例进行说明,并特别针对现今微处理器设计者常碰到的问题加以说明。一方面,该二图相关说明希望将近期发展的结构特征加入微处理设计当中;另一方面,市场因素又要求该技术必须能应用于前后代应用程序中。在图1及图2中,完整定义的操作码地图的提出使得结构不需再定义新操作码,因此设计者只能选择加入新特征及牺牲一定程度的兼容性,或放弃研发出的结构改进,以确保执行较早期的应用程序。在现有技术的探讨后,以下配合图3至图11介绍本发明。通过将现存但已老式的操作数作为扩充指令的前缀卷标,使使用者克服完全完整指令集结构的限制,并使其能对浮点格式加以规格化,且同时使该指令前后兼容性较高。
请参阅图1,其所示为一相关现有微处理器指令格式100的方块图。该相关现有微处理器指令格式100具有一数目可变的指令部份101-103,且各被设以一特定值,共同构成微处理器的一特定微处理器指令格式100。特定微处理器指令格式100可使微处理器执行特定运算,如对二运算相加或将操作数移至一内部寄存器中。最典型的是,微处理器指令格式100的操作码102部份用于指定待执行的特定运算,而可选择的地址确定码103部份则跟随在前缀101后,其中前缀101用于指定关于特定运算的其它数据,如运算执行方式及运算所置放处等等数据。微处理器指令格式100还使得程序设计者得以前缀101部份取代操作码102为用,前缀101使该已确定的结构特征在操作码102所指定的运算期间得以执行。一般说来,该结构特征可使用于指令集中操作码102所对应的多数运算上。如现有微处理器中前缀101使运算可在使用不同位数(如8位及32位)条件下执行,故该处理器被设为一预定操作数大小(如32位),且前缀101被设计于其对应指令集当中,以令使用者得以逐项指令的方式改变该预定操作数大小(如执行16位运算),不过运算位数可选择只是构成现有微处理器中操作码102对应的众多运算(如加法、减法、乘法及布尔逻辑等)的结构特征的一例。
图1所示为熟识的x86微处理器指令格式100,其可应用于所有现有x86兼容的微处理器上。详细的说,x86微处理器指令格式100(x86指令集结构)使用8位前缀101、8位操作码102及8位地址确定码103字段。x86微处理器指令格式100同样具有多个前缀101,且其中二个改变了x86微处理器的预定地址/数据位数(即操作码状态66H及67H),另一个使微处理器依据不同的转换规则(即前缀值0FH,其使转换依所谓的2位操作码规则进行)解译一后续操作码102,其它前缀101则使相关运算重复进行直至重复条件满足为止(即REP码:F0H、F2H及F3H)。
现请参阅图2,其为一说明指令集结构中指令映像至图1指令格式中一8位操作码字节的位逻辑电路状态的方式的表格。该表格显示一8位操作码地图200范例,其与一8位操作码102部份的256个值相关,其中该8位操作码102部份具有微处理器指令码201。8位操作码地图200将一操作码102部份的特定值(如02H)映像成一指令码201(即指令I 02及201),此时技术人员皆知操作码值14H映像为x86进位加法(ADC)指令操作码,并令一8位中间操作码加至结构寄存器AL的内容中。熟习该项技术者都知道,前文提到的x86前缀101(即66H、67H、0FH、F0H”F2H及F3H)买际上是为确定下一操作码102部份指定的运算所加的特定结构的内容扩充,如前一操作码14H(一般而言为上述的进位加法操作码)在前文为0FH时构成一执行一UNPCKLPS运算而非进位加法的x86处理器,此乃因x86处理器在遇上前缀0FH时会有不同转换规则的缘故。由于微处理器中指令转换/译码逻辑电路依序对微处理器指令格式100的部份101-103加以解译,故上述x86范例等特征会部份被激活。因此,定操作码值作为指令集结构中的前缀101已令微处理器设计者将相当数量的最先进结构特征加至一兼容微处理器设计中,同时不会使不利用该特定操作码状态的较早期程序的执行受阻。例如,一不使用x86操作码的早期程序0FH仍能在现有x86微处理器上执行,且新一代应用程序可利用将x86操作码0FH当作前缀101而被近期已加至结构中的相当数量的x86结构特征所执行,如此得执行单指令多数据流(SIMD)运算及条件移动运算。
过去,最新结构特征的加入已通过将可用/闲置指令码201当作前缀101(也称为结构特征卷标/指示器或逃脱指令)的方式实现,然而许多微处理器指令格式100在提升上已再无更多的指令集资源可用,其相当直接的理由即为所有的可用/闲置操作码状态皆已受利用。即,8位操作码地图200中的所有的操作码值在结构中皆已受到预定的使用,且当所有的可用操作码值已被指定为操作码102部份或前缀101部份时,已再无操作码值可接受新特征的加入。此项大问题是现今微处理器结构所共有的,并使设计者必须在于设计中加入结构特征及维持与较旧程序的兼容性之间做出选择。
图2所示的指令码201为广义方式(即I24及I86)而非特定方式(即加法进位、减法或互斥),这是因为完全被指定的8位操作码地图200目前不接受更多最新结构的加入之故。另,虽图2所示例中提及8位操作码102部份,但本领域的技术人员都知道操作码102的位数是无关的,该8位大小只是为教示全8位操作码地图200所用。因此,完全填满的6位操作码地图具有64个结构上定义的指令码201(前缀),并无法提供现有/闲置操作码值以供扩充用。
然而,本案发明人已观察到操作码全部被使用的8位操作码地图200中特定指令码201在多种执行于兼容微处理器上的应用程序中皆得到应用,他们还持续指出一些非结构上定义的操作码202并未使用在能为微处理器执行的应用程序中。图2中指令IF1操作码202即为此种特殊范例。事实上,非常相同的操作码202值(即F1H)映像于目前所有应用程序均未使用过的x86指令集结构中的一有效操作码202,而未使用过的x86操作码202虽为一可令x86微处理器执行一特定结构的运算的有效x86操作码202,但其未被可在现有x86微处理器上执行的应用程序所使用。该特殊x86操作码202,被称作内部电路仿真断点(即ICE BKPT,操作码值F1H),其在早期专门使用于目前已不存在的微处理器仿真设备中。ICE BKPT操作码202在过去从未用于内部电路仿真器外的应用程序中,而早期使用ICE BKPT操作码202的内部电路仿真设备形式已淘汰。因此,本案发明人已确认一种在x86系列中指令完全受到预先指定的8位操作码地图200内的一种机制,藉由该种机制本案发明人可开发一种有效但已淘汰的操作码202来让最新的结构特征加入至一微处理器设计中,同时不牺牲前后代兼容性。在一指令已完全受预用的8位操作码地图200中,本发明以一结构上确定但仍未使用过的操作码202当作一为下一n位前缀所用的指示卷标,故能让微处理器设计者加入高达2n个最新开发出结构特征至一现有微处理器设计中,同时能维持所有前后代软件的完全兼容性。
本案发明人利用了前缀卷标/扩充前缀观念,其方式为提供一n位元浮点格式确定字段前缀,借以令程序设计者能通过微处理器预定执行一传统运算(如加法、减法、布尔运算、操作数处理等),并利用同一指令确定待于下一浮点运算(若与该n位前缀相关的指令预定执行非浮点运算时)或另一浮点运算期间所当使用的浮点格式,其中该另一浮点运算指包含该n位前缀的相同指令所定义的浮点运算工作。在其它实施例中,还具有程序设计者可经由该n位前缀直接确定浮点格式、或确定多个浮点控制自组之一者的特点,其中该多个浮点控制字组之一者确定一浮点格式。以下,本发明的说明将配合图3至图11的配合说明继续说明如下。
请参阅图3,其为本发明的扩充指令格式的方块图。与图1中微处理器指令格式100非常相近的是,扩充指令格式300具有指令部份301-305,其位数可变,且每一部分皆被设定为一特定值,以共同构成微处理器之一特定扩充指令格式300。该特定扩充指令格式300可使微处理器执行诸如两操作码的相加或将一操作码移至微处理器中之一寄存器中之类特定处理动作。典型的,扩充指令格式300中一操作码302部份用于指定该欲执行的特定处理动作,且选择性地址确定码303部份跟随预定的其它与该特定处理动作相关的信息出现,其中该其它信息可为该处理动作的执行方式及操作数位置等。扩充指令格式300令程序设计者得以在前缀301部份加以一操作码,以在由操作码302所指定的特定处理动作执行期间将现存结构特征加入。
不过,本发明的扩充指令格式300为图1中微处理器指令格式100的一超集(superset),其具有两个外加部份304,305。该二外加部份304,305具有可选择性,其作为一指令扩充部而取代一经格式化的扩充指令格式300的所有其它部份301-303,其目的在于让一待使用的浮点格式的规格在一或多个浮点运算执行期间得到使用,并用以加入指令级浮点规格特征,这是一全部指令都已被使用的指令集结构所没有提供的。选择性部份304,305为一逃脱卷标304及一扩充浮点格式确定字段前缀305,其中扩充浮点格式确定字段前缀305是以另一种方式在微处理器指令集结构中确定的操作码。在一x86实施例中,逃脱卷标304(或称扩充指令卷标)为操作码状态F1H,并为先前所使用的内部电路仿真断点。逃脱卷标304向微处理器逻辑电路指出,后续会出现扩充浮点格式确定字段前缀305或扩充特征确定字段,此时扩充浮点格式确定字段前缀305用于指定在一或多相关浮点运算执行期间当中使用的浮点格式。在一实施例中,逃脱卷标304指出一对应扩充指令格式300的伴随部份301-303,305预定一有待被微处理器执行的扩充运算。n位经扩充浮点格式确定字段前缀305(或称浮点格式确定字段),在一实施例中为多个浮点控制字组中之一,此时该每个浮点控制字组皆预定一种有待于一浮点运算执行期间使用的浮点格式,其中该浮点运算包括可由扩充指令格式300所确定或由一下一指令所确定。在一不同实施例中,该n位扩充浮点格式确定字段前缀305直接指出一有待于扩充指令格式300或一下一指令确定的浮点运算执行期间所使用的浮点格式。
为对本发明的浮点格式规格技术做详细说明,取一现存指令集结构的一个逃脱卷标304及一扩充浮点格式确定字段前缀305构成一指令扩充部。其中该选出操作码系指令作为一逃脱卷标304,而扩充指令格式300为一扩充特征指令(即,其预定微处理器结构的扩充部份),而扩充浮点格式确定字段前缀305用于确定一在相关浮点运算执行期间所当用的浮点格式,其中扩充浮点格式确定字段前缀305在一实施例中为8位。
现请参阅图4,其为本发明的浮点格式规格扩充部份特征映像至一8位扩充前缀实施例的逻辑状态的方式的表格。与图2讨论的8位操作码地图200相当,图4的扩充前缀地图400显示一8位浮点格式确定字段扩充前缀地图400,该扩充前缀地图400与一具对应浮点格式确定字段401的8位扩充浮点格式确定字段前缀305部份的256个值相关(如E 34及E4D等)。其中该浮点格式确定字段401将会在一相关浮点运算执行期间被使用到。在x 86例中,本发明的8位扩充浮点格式确定字段前缀305系用以为浮点格式确定字段401(即E00-EFF)所用,但其未为现今x86指令集结构所提供。
图4中扩充浮点格式确定字段401的特征绘示以较上位概念而非较明确的方式,因为本发明的技术可用于多种不同结构的浮点格式确定字段401部及特定指令集结构中。本领域的普通技术人员皆能了解许多上述及其它不同结构特征的浮点格式确定字段401,可将本案的逃脱卷标304/扩充浮点格式确定字段前缀305技术增添至一现存指令集。图4的8位前缀实施例提供256个不同特征的浮点格式确定字段401,而一n位前缀实施例可对2n个不同特征的浮点格式确定字段401加以程序化。
在对应现有微处理器所共享的浮点格式规格及表示法的实施例中,格式结合可确定操作数及结果精度等参数,如单精度、双精度、扩充精度及舍入模式等,其中舍入模式可为舍至最近者、往下舍去(往负无限大方向舍去)、往上舍去(往正无限大方向舍去)及舍至零(截尾)。不过,上述特定浮点格式规格参数并不限定本发明的范围为一特定浮点格式确定字段组,而仅用以作为本发明的扩充浮点格式确定字段前缀305的编码方式。普通技术人员将能了解一特定扩充浮点格式确定字段前缀305的设计是依对应浮点格式规格的表示及在一对应微处理中的存储方式而定。
现请参阅图5,其为本发明的管线微处理器的方块图。具浮点格式规格的微处理器500具有三个主要操作级,即提取、转换及执行,其中提取级具有提取逻辑电路501,其自一指令高速缓存502或外部内存取得指令,所取得的指令经一指令贮列503送至转换级;转换级具有转换逻辑电路504,该转换逻辑电路耦接至一微指令贮列506,并包含扩充转换逻辑电路505;执行级具有执行逻辑电路507,执行逻辑电路507中具有扩充执行逻辑电路508。
在实际操作时,提取逻辑电路501从指令高速缓存502/外部内存提取到的具本发明的格式的指令,并将这些指令以执行次序置于该指令贮列503中。接着,上述指令可自指令贮列503中取得,并被送至转换逻辑电路504里,具浮点格式规格的微处理器500执行上述指令所指定的运算或动作。转换逻辑电路504转换/译码每一上述指令并生成一对应微指令序列,用以令具浮点格式
规格的微处理器500执行上述指令所指定的运算或动作。经扩充转换逻辑电路505检测上述具一本发明的扩充前缀卷标的指令,并提供对对应浮点格式确定字段前缀的转换/译码。在一x86实施例中,扩充转换逻辑电路505被设计为用以检测一值为F1H的扩充前缀卷标,其为x86内部电路仿真断点(ICD BKPT)操作码。微指令字段设于微指令贮列506,用以确定一应当于一相关浮点运算期间使用的浮点格式。
微指令自微指令贮列506送至执行逻辑电路507,其中该扩充执行逻辑电路508检测具浮点格式规格的微指令,且该特征能否启动由微指令字段指出。扩充执行逻辑电路508建立由该微指令所指定的浮点格式,并执行该微指令所指定的运算或动作,以产生一对应结果。若微指令所指定的运算或动作为一浮点运算,则扩充执行逻辑电路508执行该浮点运算,并根据该微指令指定的浮点格式产生对应结果。
本领域的普通技术人员将能了解图5所描述的具浮点格式规格的微处理器500为现今管线微处理器的一种简化代表形式,实际上现今具浮点格式规格的微处理器500包含至20-30个管线级,不过这些管线级一般可分作如图5所示的的三级群,故图5的方块图的提出用以教示本发明上述实施例的必要组件,具浮点格式规格的微处理器500中其它不属本发明讨论的范围的部分则未添加图标,以求图面的简洁。
现请参阅图6,其为本发明中对浮点格式加以规格化所用的一扩充前缀实施例的方块图。该扩充前缀600为一8位扩充前缀600,并具有一浮点控制字组字段(FPSEL)602,该浮点控制字组字段602包含第0、1位及一闲置字段(SPARE)603,该闲置字段(SPARE)603包含第2至7位。根据浮点控制字组字段602,该四浮点控制字组604-607中之一将用于一相关浮点运算的执行,且每个浮点控制字组(604-607)都包含用以利用上述的方式确定的一对应浮点式的字段(未显示)。在另一实施例中,并未提供闲置字段603,且浮点控制字组字段602为8位,故任意数目的浮点控制字组变为多至最大数目256。除确定浮点格式(精度及舍入模式)外,上述每个浮点控制字组皆额外有浮点例外屏蔽掩码,用以阻止典型浮点例外的发生,该等例外包含精度例外、下溢、零除、不正常操作数、不成立运算及现有微处理器中的种种例外。
图7为本发明中对浮点格式规格加以规格化所用的扩充前缀另一实施例的方块图。该扩充前缀700具有2位精度码字段(PC)702、一2位舍入码字段(RC)701及4位闲置字段703。根据舍入码字段701及精度码字段702的值,四种精度格式之一及四种舍入模式之一可被直接确定用于一相关浮点运算执行,其中该直接确定的精度格式及舍入模式在实际操作中取代处理器一浮点控制字组704目前所确定的舍入模式及精度格式,不过其它数据(如浮点例外屏蔽位)为该浮点格式字组所提供。字段701-702的位数可交替增加,以根据所提供的一特定指令集结构而可容置另增的舍入模式及精度。
现请参阅图8,其为图5的微处理器内转换级逻辑电路详细的方块图。该转换级逻辑电路800具有一指令缓冲器804,该指令缓冲器804提供一本发明的扩充指令至转换逻辑电路805,并被耦接至一机器确定缓存器802中。其中该机器确定缓存器802具有一扩充特征字段803。转换逻辑电路805具有一转换控制器806,该转换控制器806提供一关闭信号807至一逃脱指令检测器808及一扩充前缀译码器809,其中逃脱指令检测器808被耦接至扩充前缀译码器809及一指令译码器810,扩充前缀译码器809及指令译码器810对应一控制只读存储器(ROM)811,其中该只读存储器811存储对应部份的上述扩充指令的微指令序列样本。转换逻辑电路805还具有一微指令缓冲器812,该微指令缓冲器812具有一操作码扩充字段813、一微操作码字段814、一目的字段815、一来源字段816及一取代字段817。
在实际操作中,在微处理器被供以验源期间,机器确定缓存器802中扩充特征字段803的状态是经由电源开启状态801所控制,以指出该特定微处理器是否能根据本发明的方式转换及执行扩充指令。在一实施例中,电源开启状态801由一特征控制缓存器(未显示)控制,其中该缓存器读取一熔线阵列(未显示)或读取在该部份制造前间设定的类似组件。机器确定缓存器802提供扩充特征字段803的状态至转换控制器806,转换控制逻辑电路根据浮点格式规格转换规则,对是否对指令缓冲器804送出的指令加以转换进行控制。该种控制特征的存在使得监督应用程序(如BIOS)得以启动/关闭微处理器的扩充执行特征;若扩充特征被关闭,则具被选择为扩充特征卷标的运算状态的指令将依照现有转换规则转换。在一操作码状态F1H被选为卷标的x86实施例中,以现有转换方式所得到的F1H可能会形成不合理的指令例外,而卷标在扩充转换规则的处理下则会为逃脱指令检测器808所检测。此时,逃脱指令检测器808会在下一扩充浮点格式确定字段前缀期间利用扩充前缀译码器809关闭指令译码器810的动作,并使指令译码器810以转换/译码该扩充指令的其它部份。欲获取对应的微指令序列样本时,只要以数个特定指令即可通过存取控制只读存储器811实现。微指令缓冲器812的操作码扩充字段813由扩充前缀译码器809所设定,用以指定浮点格式确定字段前缀所确定的浮点格式。在一实施例中,该操作码扩充字段813用于确定该浮点控制字组。在另一不同实施例中,该操作码扩充字段813则直接用于确定浮点格式。其余缓冲器字段814-817用于确定对应运算或处理动作,并为指令译码器810所设定。经设定的微指令缓冲器812被送至一微指令贮列(未显示)中,用于执行微处理器进行的后续动作。
现请参阅图9,其为图5微处理器中扩充执行逻辑电路的方块图。扩充执行逻辑电路900具有扩充浮点执行逻辑电路909,该扩充浮点执行逻辑电路909耦接至多个浮点控制字组906及一浮点结果缓冲器910。二操作数OPERAND1及OPERAND2由扩充浮点执行逻辑电路909所取得,其在一实施例中用以确定一包含相关浮点运算执行期间所用的浮点操作数的扩充浮点执行逻辑电路909的浮点寄存器(未显示)。一微指令缓存器902提供一微指令至扩充浮点执行逻辑电路909,并具有一操作码扩充字段903及一微操作码字段904。
在实际操作中,扩充微指令在一使用浮点格式规格特征的扩充指令被依本发明的方式转换成一微指令序列时,被送至扩充执行逻辑电路900,且于缓存器中可使用的运算位901及905(或运算位寄存器确定字段)一起经由微指令缓存器902送至扩充执行逻辑电路900中。操作码扩充字段903确定该多个浮点控制字组906中的一特定者在一相关浮点运算执行期间被使用。在一实施例中,该相关浮点运算被微操作码字段904所确定。因此,扩充浮点执行逻辑电路909执行相关浮点运算,并根据该多个浮点控制字组906的该特定者确定的浮点格式以产生浮点结果,所产生的浮点结果则被送至浮点结果缓冲器910。在另一实施例中,该相关浮点运算不为微操作码字段904所确定。因此,扩充浮点执行逻辑电路909选择一为该多个浮点控制字组906的该特定者确定的浮点格式,并使用该特定者确定的浮点格式,并使用该格式以执行后续所需进行的浮点运算。
现请参阅图10,其为图5微处理器中扩充执行逻辑电路另一实施例的方块图。扩充执行逻辑电路1000具有扩充浮点执行逻辑电路1009,该扩充浮点执行逻辑电路1009被耦接至一浮点控制字组1006及一浮点结果缓冲器1010。二操作数OPERAND1及OPERAND2为扩充浮点执行逻辑电路1009自运算位1001,1005缓存器取得。在一实施例中,运算位1001,1005缓存器可确定包含一相关浮点运算执行期间所需使用的浮点操作数的扩充浮点执行逻辑电路1009内的浮点缓存器(未显示)。一微指令缓存器1002提供一微指令至扩充浮点执行逻辑电路1009,并具有一操作码扩充字段1003及一微操作码字段1004。
在实际操作中,扩充指令在一使用浮点格式规特征的扩充指令被转换成为一微指令序列时,扩充微指令被送至扩充执行逻辑电路1000,且与缓存器中可使用的运算位1001及1005(或运算位存器确定字段)一起经由微指令缓存器1002送至扩充执行逻辑电路1000中。操作码扩充字段1003用于直接确定一相关浮点运算执行期间所使用的浮点格式。在一浮点格式包含浮点精度及舍入模式的实施例中,其它为一相关浮点运算执行所需的规格参数(如浮点例外屏蔽)为浮点控制字组1006经由总线1011送至扩充浮点执行逻辑电路1009。在一仅浮点精度为操作码扩充字段1003部所确定的不同实施例中,当时为一相关浮点运算执行所需的舍入模式及其它格式参数为浮点控制字组1006经由总线1011送至扩充浮点执行逻辑电路1009。其它实施例则利用操作码扩充字段1003构成的联合浮点格式参数规格及利用浮点控制字组1006而提供其它格式参数。在一实施例中,该相关浮点运算为微操作码字段1004所确定,故扩充浮点执行逻辑电路1009执行相关浮点运算,并根据操作码扩充字段1003及浮点控制字组1006直接确定的浮点格式产生浮点结果(必要时),且该浮点结果被送至浮点结果缓冲器1010。在另一实施例中,该相关浮点运算不为微操作码字段1004所确定,故扩充浮点执行逻辑电路1009选择一为操作码扩充字段1003及浮点控制字组1006所确定的浮点格式(必要时),并利用该格式执行后续需进行的浮点运算。
现请参阅图11,其为本发明的转换及执行指令的方法的流程图,且该方法用以对指令级的浮点格式进行规格化。该流程始于开始(步骤S1102),其中一为具浮点格式规格特征的扩充指令程序被送至一微处理器。接着,提取下一指令(步骤S1104)。
在步骤S1104处,一下一指令自高速缓存/内存中被提出,接着判断扩充逃脱码(步骤S1106)。
在步骤S1106处,于提取下一指令(步骤S1104)所提得的该下一指令被用以判定其中是否包含一扩充逃脱卷标/码。若否,则行进译码/转换前缀、操作码及地址确定码字段(步骤S1112);若是,译码该扩充前缀中的浮点格式确定字段(步骤S1108)。
在步骤S1108处,由于一扩充逃脱卷标已在步骤S1106时被检测得,故一扩充确定字段前缀被执行以转换/译码工作,以判定一有待于一相关浮点运算执行期间得到使用的浮点格式。接着,指定微指令序列中扩充字段浮点格式(步骤S1110)。
在步骤S1110处,一微指令序列的对应字段被设定以指出该扩充前缀所指定的浮点格式。接着,进行译码/转换前缀、操作码及地址确定码字段(步骤S1112)。
在步骤S1112处,指令的其它部份(如前缀部份、操作码及地址确定码字段)被加转换/译码,以判定该待执行运算或动作及相关的操作数属性。接着,设定微指令序列中微操作码及操作数字段(步骤S1114)。
在步骤S1114处,对一微指令序列的其它字段进行设定以指定该经确定运算或动作及其操作数规格。接着,提供微指令序列至贮列中以为执行所用(步骤S1116)。
在步骤S1116处,微指令序列(包含步骤S1110处设定的操作码扩充字段及步骤S1114内设定的其它字段)被送至一微指令贮列中,以为微处理器所执行。接着,取得执行用的扩充微指令(步骤S1118)。
在步骤S1118处,微指令序列为本发明的扩充执行逻辑电路所取得。接着,流程行进至根据指定的浮点格式执行预定运算并产生结果(步骤S1120)。
在步骤S1120处,扩充执行逻辑电路执行预定的运算或动作,并依据1110指定的浮点格式产生结果。接着,流程行进至完成(步骤S1122)。
在步骤S1122处,本发明的方法完全执行完毕。
虽然本发明的目的、特征及优点已详述如上,但本发明还包含其它实施例。例如,本发明在一完全指定的指令集结构中使用一单一、未使用操作码状态作为一卷标、以指出一下一扩充特征前缀的技术已说明于上,本发明在任何一方面的范围皆不限于完全指令的指令集结构、或未使用的指令或独立卷标。相反地,本发明可适用于未被完全指定的指令集、具有已使用操作码的实施例及使用过一指令卷标的实施例。对不存在未使用操作码状态的指令集结构而言,本发明的一实施例包含选择一目前被用作为逃脱卷标的操作码状态的步骤,其中该选择标准由市场因素所决定;另一不同实施例则包含使用一特定操作码组合为该卷标的步骤,其中特定操作码组合可为连续出现的操作码7FH组合等。因此,本发明的基本特性体现了一后续有一n位扩充前缀的卷标序列的使用,以令程序设计者可排除对对应一扩充指令的其它部份所确定的运算或动作执行的结果加以回写的可能性,其中该结果的回写会于符合一特定标准时成立。
此外,本发明的技术已通过一具有单一精度、双精度、双扩充精度及上述舍入模式等的常用浮点格式确定字段组的微处理器说明如上,因该种微处理器为现今普遍使用者,但不代表本发明仅能用于上述字段种类。
再者,虽然上述通过一种微处理器的设定公开本发明及其目的、特征及优点,但本领域的普通技术人员皆了解其范围超越微处理器结构的界线,应包含所有形式的可程序化装置,如信号处理器、工业控制器、阵列处理机等。
本领域的普通技术人员可轻易以上述内容作为基础,进行进一步设计或修改,该改变及代换皆不脱离发明附于后文的权利要求书所定义的范围。

Claims (14)

1.一种微处理器设备,用以实现一浮点格式在一相关浮点运算执行期间的使用,其特征在于,包含:
转换逻辑电路,将一扩充指令转换为对应微指令,其中该扩充指令包含:
一扩充前缀,以确定该浮点格式,所述扩充前缀还包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述扩充前缀还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;
一扩充前缀卷标,用以指出该扩充前缀,并且是微处理器所用的一指令集在结构上以其它方式确定的操作码;
该转换逻辑电路包含:
逃脱指令检测逻辑电路,用以检测该扩充前缀卷标;
扩充前缀译码逻辑电路,耦接至该逃脱指令检测逻辑电路,用以转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式;
指令译码逻辑电路,用以设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算;以及
扩充浮点执行逻辑电路,耦接至该转换逻辑电路,并用以接收对应微指令,且依据该扩充前缀中确定的浮点格式执行该相关浮点运算。
2.如权利要求1所述的微处理器设备,其特征在于,该扩充指令还包含,根据该指令集所在结构确定的部分。
3.如权利要求2所述的微处理器设备,其特征在于,该所在结构确定的部分包含一操作码部分,用以确定该相关浮点运算。
4.如权利要求1所述的微处理器设备,其特征在于,当该指令集包含一x86指令集时,该扩充前缀卷标包含该x86指令集的内部电路仿真断点操作码。
5.一种扩充装置,用以对一现存微处理器指令集增加浮点格式掩码特征,其特征在于,包含:
一指令扩充器,用以令一微处理器根据一浮点格式执行一相关浮点运算,其中该扩充指令包含在该现存微处理器指令集之一选出操作码,其中现存微处理器指令集之后有一n位扩充前缀,该经选出的操作码指出该扩充指令,且该n位扩充前缀指出该浮点格式,所述扩充前缀包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述扩充前缀还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;以及
一转换器,用以接收该扩充指令,并用以产生一微指令序列,以令该微处理器根据该浮点格式执行该相关浮点运算;
该转换器还包含:
逃脱指令检测逻辑电路,用以检测扩充前缀卷标;
扩充前缀译码逻辑电路,耦接至该逃脱指令检测逻辑电路,用以转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式;
指令译码逻辑电路,用以设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算。
6.如权利要求5所述的扩充装置,其特征在于,该扩充指令还包含根据该指令集所在结构确定的部分,用以指定该相关浮点运算。
7.如权利要求5所述的扩充装置,其特征在于,当该现存微处理器指令集为x86微处理器指令集,该选出的操作码包含该x86微处理器指令集中的内部电路仿真断点操作码。
8.一指令集扩充设备,用以对一现存微处理器指令集提供以指令级浮点格式掩码能力,其特征在于,该指令集扩充设备包含:
一转换逻辑电路,用以接收逃脱卷标,并用以指出一对应指令的伴随部分指定一为微处理器执行的一扩充运算,其中该逃脱卷标为该现存微处理器指令集中一第一操作码部分;该逃脱卷标耦接至一浮点格式确定字段,该浮点格式确定字段为该伴随部分之一,用以指定一待于该扩充运算执行期间所用的一浮点格式,所述浮点格式确定字段包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述逃脱卷标还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;
该转换逻辑电路包含:
逃脱指令检测逻辑电路,用以检测扩充前缀卷标;
扩充前缀译码逻辑电路,耦接至该逃脱指令检测逻辑电路,用以转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式;
指令译码逻辑电路,用以设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算;以及
扩充浮点执行逻辑电路,耦接至该转换逻辑电路,用以根据该浮点格式执行该扩充运算。
9.如权利要求8所述的指令集扩充设备,其特征在于,该伴随部分的其余者包含一第二操作码部分及一选择性多个地址确定码字段部分。
10.如权利要求8所述的指令集扩充设备,其特征在于,当该现存微处理器指令集为x86微处理器指令集,该第一操作码部分包含该x86微处理器指令集中的内部电路仿真断点操作码部分。
11.一种扩充一微处理器指令集以提供一浮点格式指令集掩码的方法,其特征在于,该方法包含下列步骤:
提供一扩充指令,该扩充指令包含一扩充卷标及一扩充前缀,其中该扩充卷标为该微处理器指令集中的一第一操作码,所述扩充前缀还包括一精度码字段以及一舍入码字段,以分别确定一精度格式以及一舍入格式,所述扩充前缀还具有浮点例外屏蔽掩码,以阻止浮点例外的发生;
检测该扩充前缀卷标;
转换该扩充前缀,并用以设定上述对应微指令中的一微操作码扩充字段,其中该微操作码扩充字段用于指定该浮点格式;
设定上述对应微指令中的其它字段,其中该其它字段用以确定该相关浮点运算;
通过该扩充前缀及该扩充指令的其余部分指定一待执行运算,其中该指定步骤包含下列步骤:
第一确定步骤,用以确定该运算所用的精度格式及舍入格式;以及
根据该确定动作执行该运算。
12.如权利要求11所述的扩充一微处理器指令集以提供一浮点格式指令集掩码的方法,其特征在于,该指定步骤还包含下列步骤:
第二确定步骤,用以确定该运算,其中该第二确定步骤包含使用该微处理器指应集中一第二操作码的步骤。
13.如权利要求12所述的扩充一微处理器指令集以提供一浮点格式指令集掩码的方法,其特征在于,该提供步骤包含自x86微处理器指令集中选出该第一操作码的步骤。
14.如权利要求13所述的扩充一微处理器指令集以提供一浮点格式指令集掩码的方法,其特征在于,该选出步骤包含选择x86内部电路仿真断点为该扩充卷标的步骤。
CNB2006100653018A 2005-03-18 2006-03-17 使浮点格式实现指令级规格的设备及方法 Active CN100377075C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/083,543 US7529912B2 (en) 2002-02-12 2005-03-18 Apparatus and method for instruction-level specification of floating point format
US11/083,543 2005-03-18

Publications (2)

Publication Number Publication Date
CN1834899A CN1834899A (zh) 2006-09-20
CN100377075C true CN100377075C (zh) 2008-03-26

Family

ID=36577520

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100653018A Active CN100377075C (zh) 2005-03-18 2006-03-17 使浮点格式实现指令级规格的设备及方法

Country Status (4)

Country Link
US (1) US7529912B2 (zh)
EP (1) EP1703374A3 (zh)
CN (1) CN100377075C (zh)
TW (1) TWI314284B (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US7302551B2 (en) * 2002-04-02 2007-11-27 Ip-First, Llc Suppression of store checking
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
US8719837B2 (en) 2004-05-19 2014-05-06 Synopsys, Inc. Microprocessor architecture having extendible logic
US20070073925A1 (en) 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
US8005885B1 (en) * 2005-10-14 2011-08-23 Nvidia Corporation Encoded rounding control to emulate directed rounding during arithmetic operations
US8732226B2 (en) * 2006-06-06 2014-05-20 Intel Corporation Integer rounding operation
US9223751B2 (en) 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
GB2447968B (en) * 2007-03-30 2010-07-07 Transitive Ltd Improvements in and relating to floating point operations
CN100535851C (zh) * 2007-11-16 2009-09-02 中国科学院计算技术研究所 一种浮点数据转换装置和方法
US8103858B2 (en) * 2008-06-30 2012-01-24 Intel Corporation Efficient parallel floating point exception handling in a processor
US8412760B2 (en) * 2008-07-22 2013-04-02 International Business Machines Corporation Dynamic range adjusting floating point execution unit
US8028153B2 (en) * 2008-08-14 2011-09-27 International Business Machines Corporation Data dependent instruction decode
US8386755B2 (en) * 2009-07-28 2013-02-26 Via Technologies, Inc. Non-atomic scheduling of micro-operations to perform round instruction
US20110060892A1 (en) * 2009-09-09 2011-03-10 Via Technologies, Inc. Speculative forwarding of non-architected data format floating point results
CN101916182B (zh) * 2009-09-09 2014-08-20 威盛电子股份有限公司 使用非架构的数据格式的快速浮点结果的转送
GB2486739B (en) * 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
PL3422178T3 (pl) 2011-04-01 2023-06-26 Intel Corporation Przyjazny dla wektorów format instrukcji i jego wykonanie
CN104137058B (zh) * 2011-12-23 2017-03-22 英特尔公司 用于十进制浮点数据逻辑提取的方法和装置
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
CN104915180B (zh) * 2014-03-10 2017-12-22 华为技术有限公司 一种数据操作的方法和设备
US9785435B1 (en) * 2016-10-27 2017-10-10 International Business Machines Corporation Floating point instruction with selectable comparison attributes
US10379851B2 (en) 2017-06-23 2019-08-13 International Business Machines Corporation Fine-grained management of exception enablement of floating point controls
US10310814B2 (en) 2017-06-23 2019-06-04 International Business Machines Corporation Read and set floating point control register instruction
US10725739B2 (en) 2017-06-23 2020-07-28 International Business Machines Corporation Compiler controls for program language constructs
US10481908B2 (en) 2017-06-23 2019-11-19 International Business Machines Corporation Predicted null updated
US10514913B2 (en) 2017-06-23 2019-12-24 International Business Machines Corporation Compiler controls for program regions
US10740067B2 (en) 2017-06-23 2020-08-11 International Business Machines Corporation Selective updating of floating point controls
US10684852B2 (en) 2017-06-23 2020-06-16 International Business Machines Corporation Employing prefixes to control floating point operations
KR20210085461A (ko) 2019-12-30 2021-07-08 삼성전자주식회사 프로세싱 장치 및 프로세싱 장치에서 부동 소수점 연산을 처리하는 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1177138A (zh) * 1996-09-13 1998-03-25 三洋电机株式会社 程序执行方法和程序执行装置
US6014735A (en) * 1998-03-31 2000-01-11 Intel Corporation Instruction set extension using prefixes
CN1326566A (zh) * 1998-11-20 2001-12-12 Arm有限公司 对多个带符号的数据值执行算术运算的数据处理系统和方法
CN1431584A (zh) * 2002-08-22 2003-07-23 智慧第一公司 延伸微处理器数据模式的装置及方法
CN1512324A (zh) * 2002-12-26 2004-07-14 英特尔公司 扩展精度的整数除算法

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US608512A (en) * 1898-08-02 dixon
US587342A (en) * 1897-08-03 Lubricated bullet
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
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
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
JP3644959B2 (ja) * 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
EP0651320B1 (en) * 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superscalar instruction decoder
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
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
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
US7380103B2 (en) * 2002-04-02 2008-05-27 Ip-First, Llc Apparatus and method for selective control of results write back
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1177138A (zh) * 1996-09-13 1998-03-25 三洋电机株式会社 程序执行方法和程序执行装置
US6014735A (en) * 1998-03-31 2000-01-11 Intel Corporation Instruction set extension using prefixes
CN1326566A (zh) * 1998-11-20 2001-12-12 Arm有限公司 对多个带符号的数据值执行算术运算的数据处理系统和方法
CN1431584A (zh) * 2002-08-22 2003-07-23 智慧第一公司 延伸微处理器数据模式的装置及方法
CN1512324A (zh) * 2002-12-26 2004-07-14 英特尔公司 扩展精度的整数除算法

Also Published As

Publication number Publication date
TW200634617A (en) 2006-10-01
US20050188179A1 (en) 2005-08-25
EP1703374A2 (en) 2006-09-20
CN1834899A (zh) 2006-09-20
US7529912B2 (en) 2009-05-05
TWI314284B (en) 2009-09-01
EP1703374A3 (en) 2008-07-02

Similar Documents

Publication Publication Date Title
CN100377075C (zh) 使浮点格式实现指令级规格的设备及方法
CN1414468B (zh) 延伸微处理器指令集的装置及方法
JP4101659B2 (ja) 入力/出力能力を有するマルチスレッド内蔵プロセッサ
EP2569694B1 (en) Conditional compare instruction
US4079451A (en) Word, byte and bit indexed addressing in a data processing system
JP6849274B2 (ja) 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック
TWI659356B (zh) 用以提供向量水平式多數決投票功能之指令與邏輯(二)
CA1256216A (en) Program switching with vector registers
JP5808348B2 (ja) マシン状態に基づいた命令の分割
CN1218243C (zh) 延伸微处理器数据模式的装置及方法
US20020066004A1 (en) Storing stack operands in registers
JP2021108102A (ja) 行列演算アクセラレータの命令のための装置、方法、およびシステム
CN104881270A (zh) 具有条件指令的微处理器及其处理方法
US4954943A (en) Data processing system
CN107003845B (zh) 用于在掩码寄存器和向量寄存器之间可变地扩展的方法和装置
US4047247A (en) Address formation in a microprogrammed data processing system
CN101133409A (zh) 处理器中的可再配置逻辑
JP3781519B2 (ja) プロセッサの命令制御機構
KR20040086462A (ko) 컴퓨터 명령들의 멀티프로세싱 실행을 위한 방법들 및 장치
KR20170097015A (ko) 마스크를 마스크 값들의 벡터로 확장하기 위한 방법 및 장치
US5771366A (en) Method and system for interchanging operands during complex instruction execution in a data processing system
KR100374401B1 (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
US5930495A (en) Method and system for processing a first instruction in a first processing environment in response to intiating processing of a second instruction in a emulation environment
US7543135B2 (en) Processor and method for selectively processing instruction to be read using instruction code already in pipeline or already stored in prefetch buffer
JPH03141434A (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