CN100377075C - 使浮点格式实现指令级规格的设备及方法 - Google Patents
使浮点格式实现指令级规格的设备及方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000006243 chemical reaction Methods 0.000 claims description 39
- 230000000875 corresponding effect Effects 0.000 claims description 39
- 230000009471 action Effects 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 12
- 230000002596 correlated effect Effects 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 7
- 239000012141 concentrate Substances 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 24
- 238000003860 storage Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 230000003190 augmentative effect Effects 0.000 description 9
- 238000007792 addition Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- NHDHVHZZCFYRSB-UHFFFAOYSA-N pyriproxyfen Chemical compound C=1C=CC=NC=1OC(C)COC(C=C1)=CC=C1OC1=CC=CC=C1 NHDHVHZZCFYRSB-UHFFFAOYSA-N 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000155 isotopic effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution 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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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
-
- 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
-
- 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/30189—Instruction 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内部电路仿真断点为该扩充卷标的步骤。
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)
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)
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)
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 |
-
2005
- 2005-03-18 US US11/083,543 patent/US7529912B2/en not_active Expired - Lifetime
- 2005-05-18 EP EP05253039A patent/EP1703374A3/en not_active Withdrawn
-
2006
- 2006-03-10 TW TW095108269A patent/TWI314284B/zh active
- 2006-03-17 CN CNB2006100653018A patent/CN100377075C/zh active Active
Patent Citations (5)
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 |