CN102591620A - 预解码可变长度指令 - Google Patents

预解码可变长度指令 Download PDF

Info

Publication number
CN102591620A
CN102591620A CN2011103786703A CN201110378670A CN102591620A CN 102591620 A CN102591620 A CN 102591620A CN 2011103786703 A CN2011103786703 A CN 2011103786703A CN 201110378670 A CN201110378670 A CN 201110378670A CN 102591620 A CN102591620 A CN 102591620A
Authority
CN
China
Prior art keywords
instruction
bit
cache
length
decode bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103786703A
Other languages
English (en)
Other versions
CN102591620B (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102591620A publication Critical patent/CN102591620A/zh
Application granted granted Critical
Publication of CN102591620B publication Critical patent/CN102591620B/zh
Expired - Fee Related 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

本发明涉及预解码可变长度指令。可变指令长度处理器中的预解码器指示与指令一起存储在指令高速缓冲存储器中的预解码位中的指令的性质。当定义了与一个长度指令相关联的预解码位的所有编码时,可通过以下方式来指示所述长度的指令的性质:更改所述指令以模拟不同长度的指令;以及在与所述不同长度的指令相关联的所述预解码位中编码所述性质。可如此指示的性质的一个实例是未定义指令。

Description

预解码可变长度指令
分案申请的相关信息
本申请为发明名称为“预解码可变长度指令”的原中国发明专利申请的分案申请。原申请的申请号为200780015631.9;原申请的申请日为2007年4月20日;原发明专利申请案的优先权日为2006年5月4日。
技术领域
本发明大体上涉及处理器领域,且确切地说,涉及一种预解码可变长度指令以便识别未定义指令的方法。
背景技术
可变长度指令集架构在此项技术中是已知的。举例来说,当将Thumb(16位)扩展添加到ARM(32位)指令集时,所得的混合可视为可变长度指令集。作为另一实例,可执行Java代码包括一系列字节码,其中每个指令的长度的范围在2与256字节之间。一般来说,可变长度指令集包括具有基础尺寸的指令以及整数倍的基础尺寸的较长指令。
处理器架构及指令集随着时间而进化。确切地说,随着半导体技术的进步,可在硬件中呈现原来需要扩展性软件例行程序来实现的功能性。为了有效地利用高级硬件结构,将新指令添加到指令集。然而,稳定的处理器架构的一个特征是向后兼容性。也就是说,针对一个处理器架构编写的软件应当可在符合所述架构的较老式的处理器上执行,即使所述较老式的处理器并未实施最近的功能性或直接执行最近的指令。因此,常见的处理器架构包含产生异常的“未定义”指令,且在软件中执行与未定义的指令相关联的功能。
用来优化指令解码的常规高性能处理器的一种常见方法是预解码。预解码器是在于指令高速缓冲存储器(I-cache)中存储指令之前检查并部分地解码从存储器获取的指令的逻辑电路。预解码器产生少数预解码位,所述预解码位与每个指令一起存储在I-cache中。一旦从高速缓冲存储器获取指令,管线解码器便可利用预解码位来简化指令解码任务。预解码位可例如识别分支指令、识别可变长度指令架构中的指令的长度等。预解码位也可用来识别未定义的指令。
在实施预解码的可变长度指令集处理器中,少数预解码器位可与最短或基础指令长度相关联。已知的指令高速缓冲存储器实施方案是使此数目的预解码位与每个I-cache存储位置(其每一者对应于基础指令长度)相关联。占据整数倍的I-cache存储位置的较长指令与较大数目的预解码位对应地相关联。因此,可编码成与指令相关联的预解码位的离散性质的数目是基础指令长度的最小值。如果以其它方式定义对基础指令长度的可用预解码位编码,则利用预解码位来识别未定义的基础长度指令将需要增加与基础指令长度相关联的预解码位的数目。此技术又将增加与每个存储位置一起存储在I-cache中的预解码位的数目。由于很少遇到未定义的指令,且比基础长度长的指令具有充裕的预解码位编码空间,所以添加预解码位以识别未定义的基础长度指令可浪费昂贵的I-cache存储空间。
发明内容
根据本文所描述的一个或一个以上实施例,预解码器可在与指令长度相关联的预解码位编码空间完全定义时指示指令的性质。通过更改指令以模拟不同长度的指令,预解码器可利用与不同长度指令相关联的预解码位的可用编码来指示性质。
一个实施例涉及一种在处理器中预解码指令的方法。识别第一指令的性质。更改第一指令以模拟第二指令。产生用于第二指令的识别第一指令的性质的预解码位。
另一实施例涉及一种经操作以从存储器中读取指令的处理器。所述处理器包含存储从存储器中读取的指令以及与每个指令相关联的预解码位的指令高速缓冲存储器。处理器也包含介于存储器与指令高速缓冲存储器之间的预解码器,所述预解码器经操作以识别第一指令的性质;更改第一指令以模拟第二指令;产生用于第二指令的识别第一指令的性质的预解码位;并将用于第二指令的预解码位写入到指令高速缓冲存储器。
附图说明
图1是处理器的功能方框图。
图2是描绘将可变长度指令从存储器映射到指令高速缓冲存储器的功能方框图。
图3是描绘将未定义指令从存储器映射到指令高速缓冲存储器的功能方框图。
图4描绘根据一个实施例的预解码指令的方法。
具体实施方式
图1是处理器10的功能方框图。处理器10根据控制逻辑14在指令执行管线12中执行指令。管线12可以是超标量设计,具有多个并行管线,如12a和12b。每个管线12a、12b包含组织成管级的各种寄存器或锁存器16,以及一个或一个以上算术逻辑单元(ALU)18。管级寄存器或锁存器16及ALU 18可从通用寄存器堆28中的寄存器读取运算数,且/或将结果写入到所述寄存器。
管线12a、12b从指令高速缓冲存储器(I-Ccache或I$)20获取指令,其中由指令侧翻译旁视缓冲器(ITLB)22管理存储器寻址和准许。从数据高速缓冲存储器(D-Cache或D$)24存取数据,其中由主翻译旁视缓冲器(TLB)26管理存储器寻址和准许。在各种实施例中,ITLB 22可包括TLB 26的一部分的副本。或者,ITLB 22和TLB 26可经整合。类似地,在处理器10的各种实施例中,I-cache 20和D-cache 24可经整合或合并。I-cache 20和/或D-cache 24中的未命中导致在存储器接口34的控制下存取主(芯片外)存储器36。
从存储器获取的指令在存储在I-Cache 20中之前在预解码器电路37中经处理。预解码器37部分地解码指令,并附加预解码位,所述预解码位与指令一起存储在I-Cache20中。当从I-Cache 20获取指令时,预解码位提供关于每个指令的信息,管线12a和12b内的解码管级可使用所述信息来更快速且/或更有效地解码指令。举例来说,预解码位可识别可变长度指令集架构中的指令的长度、识别分支指令等。
处理器10可包含输入/输出(I/O)接口38,其控制对各种外围装置40、42的存取。所属领域的技术人员将认识到,处理器10的多种变化形式是可能的。举例来说,处理器10可包含用于I高速缓冲存储器和D高速缓冲存储器中的任一者或两者的二级(L2)高速缓冲存储器。此外,可从特定实施例中省略在处理器10中描绘的功能块中的一者或一者以上。
图2是描绘用于一个说明性的且非限制性的实施方案的通过预解码器37将指令从存储器36映射到I-cache 20中的线的功能方框图。指令A是16位指令(对于此实例是基础指令长度)。一旦从存储器获取指令A,预解码器37便附加两个预解码位PA,将所述预解码位与指令A一起存储在I-cache 20中。指令B是32位指令,其在存储器36中存储为B0和B1。预解码器37附加四个预解码位,其在I-cache 20中存储为PB0和PB1。指令C是16位指令,且与两个预解码位PC一起存储在I-cache 20中。
如图2的表所指示,每一者具有两个预解码位的指令A和C具有四的预解码位编码空间。也就是说,可将四个离散性质-例如指令长度、指令是否为分支等-编码成用于指令A和C的预解码位。具有四个预解码位的指令B具有16的预解码位编码空间。如果架构支持,则48位指令将具有六个预解码位以用于64的编码空间,依此类推。
假设在给定实施方案中定义了用于如A和C的16位指令的全部四个预解码位编码,则可将额外的预解码位添加到I-cache 20中的每个16位存储位置,以利用预解码位来指示未定义的16位指令。这将导致I-cache 20中的每个存储位置具有三个相关联的预解码位。16位指令接着将具有八的预解码编码空间-只将利用其中的五个。另外,32位指令将具有64的预解码编码空间;48位指令将具有512的预解码编码空间。由于这远远超过了关于预解码器可指示的指令的离散性质的数目,从而增加用于16位指令长度的预解码位的数目导致大量浪费昂贵的I-cache 20存储空间。
根据一个实施例,可更改此实例中的未定义的16位指令以模拟32位指令。将所述指令实际上是16位的未定义指令的性质编码成与32位指令相关联的16预解码编码中的一者。在图3中,指令D是16位未定义指令。一旦将指令D写入到I-cache 20,便将其更改以模拟32位指令,包括D0和D1。写入预解码位PD0和PD1,从而指示指令D实际上是16位的未定义指令。
在一个实施例中,其中管线12只需要16位未定义指令的事实,预解码器37可只将预解码位PD0和PD1写入到I-cache 20,放弃指令D。在另一实施例中,例如其中指令的位字段内的数据对于引导软件陷阱是常见或有帮助的,可将指令D写入到D0或D1或这两者,以及将预解码位PD0和PD1写入到I-cache 20。在又一实施例中,预解码器37可将指令D写入到D0或D1中的一者,且可将额外的信息写入到另一16位I-cache 20存储位置,以及写入预解码位PD0和PD1。在任何情况下,正是预解码位PD0和PD1两者在模拟32位指令(使得读取所有预解码位)并指示指令实际上是16位未定义指令。以此方式,预解码器37可指示基础尺寸的未定义指令,而不扩展与基础尺寸指令相关联的预解码位,因此避免了低效的存储器利用。
在图3描绘的实施例中,指令E及F均未经预解码或加载到I-cache 20中。由于线中的指令的有效长度已在存储器36与I-cache 20之间更改,所以高速缓冲存储器线的其余部分无法含有对应存储器空间中的所有剩余指令(例如,E与F两者)。预解码器37可将高速缓冲存储器线的其余部分标记成未使用或无效,或者可简单地在适当的位位置中插入无效或未定义的预解码位。在正常执行中,处理器将在执行未定义指令后便陷入到软件,且将很可能更换高速缓冲存储器线。利用软件异常处置程序来处置未定义指令所引起的陷阱允许软件模拟在处理器(例如处理器10)固定在硅或其它半导体材料中时未曾预期的指令。如果其它代码恰好分支到高速缓冲存储器线中,则其将遇到不正确的预解码且/或不认识既定指令,从而引起高速缓冲存储器线重新加载或可能引起异常。由于假设很少遇到未定义指令,所以因更改的未定义指令模拟不同长度的指令而对受破坏的I-cache线引起的性能影响不是太大的问题。
本文所揭示的方法不限于上述具有基础指令长度的未定义指令。一般来说,对于一般可经由预解码位来指示但其中完全定义了用于相关联的指令长度的预解码位编码空间的任何指令性质,可通过更改指令以模拟不同长度的指令并利用对不同长度指令的可用预解码位编码来指示所述性质。举例来说,假设先前实例中与32位指令相关联的四个预解码位的全部16个编码均被定义,但只定义了与16位指令相关联的两个预解码位的四个编码中的三个或更少的编码。在此情况下,可通过以下方式来指示在32位指令预解码位中未定义的32位指令的特定性质:更改32位指令以模拟16位指令,并在与16位指令相关联的两个预解码位的可用预解码位编码中编码相关性质。在此情况下,丢掉32位指令位字段中的一半,因此正被编码的性质优选是与指令位字段无关的性质(例如指令未被定义的事实,但这并不是可如此指示的唯一性质)。
图4描绘根据一个实施例对指令进行预解码的方法。一旦在I-cache 20中未命中,存储器接口34便从存储器36获取至少第一指令(方框50)。预解码器37检查第一指令,并识别第一指令的性质(方框52),例如第一指令未经定义。预解码器37更改第一指令以模拟第二指令(方框54),例如不同长度的第二指令。预解码器37另外产生用于第二指令的识别第一指令的性质的预解码位(方框56)。也就是说,将与第二指令长度相关联的预解码位的可用编码中的一者分配给第一指令的相关性质。预解码器37将第二指令及相关联的预解码位写入到I-cache 20(方框58)。当管线12从I-cache 20获取第二指令及其预解码位时,解码管级中的逻辑检查预解码位以识别第一指令的性质(方框60),例如第一指令未经定义的事实。管线12接着采取适当行动,例如引起异常以在软件中处置未定义指令。
根据本文所描述的一个或一个以上实施例,预解码器37可在与指令长度相关联的预解码位编码空间被完全定义时指示所述指令的性质。通过更改指令以模拟不同长度的指令,预解码器37可利用与不同长度指令相关联的预解码位的可用编码来指示性质。当在较长指令的预解码位编码中指示较短指令的性质时,将从I-cache线中转移一个或一个以上指令或一指令的多个部分。当在较短指令的预解码位编码中指示较长指令的性质时,丢掉一些指令位字段。因此,一般采用本文所揭示的指令性质指示技术来指示引起异常的指令性质,例如指令未经定义的事实,但并不限于此些情况。
虽然已在本文中相对于本发明的特定特征、方面和实施例描述了本发明,但将明白,在本发明的广泛范围内可能有许多更改、修改和其它实施例,且因此将所有更改、修改和实施例视为属于本发明的范围。因此,应在所有方面将当前实施例理解为说明性而非限制性,且希望其中包含属于所附权利要求书的意义和等效范围内的所有变化。

Claims (1)

1.一种在处理器中执行指令的方法,其包括:
从高速缓冲存储器获取具有第一格式的第一指令,所述第一格式包括第一指令部分和第一组预解码位;
将所述获取的第一指令识别为具有第二指令的性质,所述第二指令的格式的长度不同于所述第一格式的长度,所述第二指令的性质由所述第一组预解码位识别;以及
基于所述第二指令的性质执行所述获取的第一指令,其中所述第一指令是所述第二指令的编码;其中,具有所述第一格式的所述第一指令在获取后进行执行时将产生异常;以及
其中,所述第二指令是未定义指令。
CN201110378670.3A 2006-05-04 2007-04-20 预解码可变长度指令 Expired - Fee Related CN102591620B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/381,545 US7962725B2 (en) 2006-05-04 2006-05-04 Pre-decoding variable length instructions
US11/381,545 2006-05-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2007800156319A Division CN101432692B (zh) 2006-05-04 2007-04-20 预解码指令方法及其处理器

Publications (2)

Publication Number Publication Date
CN102591620A true CN102591620A (zh) 2012-07-18
CN102591620B CN102591620B (zh) 2015-02-11

Family

ID=38335641

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201110378670.3A Expired - Fee Related CN102591620B (zh) 2006-05-04 2007-04-20 预解码可变长度指令
CN2007800156319A Expired - Fee Related CN101432692B (zh) 2006-05-04 2007-04-20 预解码指令方法及其处理器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007800156319A Expired - Fee Related CN101432692B (zh) 2006-05-04 2007-04-20 预解码指令方法及其处理器

Country Status (12)

Country Link
US (1) US7962725B2 (zh)
EP (1) EP2018609B1 (zh)
JP (2) JP5340919B2 (zh)
KR (1) KR101019347B1 (zh)
CN (2) CN102591620B (zh)
AT (1) ATE493702T1 (zh)
BR (1) BRPI0711165A2 (zh)
CA (1) CA2649675A1 (zh)
DE (1) DE602007011596D1 (zh)
MX (1) MX2008014048A (zh)
RU (1) RU2412464C2 (zh)
WO (1) WO2007130798A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625419A (zh) * 2022-05-16 2022-06-14 西安芯瞳半导体技术有限公司 一种可变长指令的缓存结构、方法及介质

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769983B2 (en) 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US7962725B2 (en) * 2006-05-04 2011-06-14 Qualcomm Incorporated Pre-decoding variable length instructions
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US8347067B2 (en) * 2008-01-23 2013-01-01 Arm Limited Instruction pre-decoding of multiple instruction sets
US7925867B2 (en) * 2008-01-23 2011-04-12 Arm Limited Pre-decode checking for pre-decoded instructions that cross cache line boundaries
US7917735B2 (en) * 2008-01-23 2011-03-29 Arm Limited Data processing apparatus and method for pre-decoding instructions
US9075622B2 (en) * 2008-01-23 2015-07-07 Arm Limited Reducing errors in pre-decode caches
US8037286B2 (en) * 2008-01-23 2011-10-11 Arm Limited Data processing apparatus and method for instruction pre-decoding
US7925866B2 (en) * 2008-01-23 2011-04-12 Arm Limited Data processing apparatus and method for handling instructions to be executed by processing circuitry
US7747839B2 (en) 2008-01-23 2010-06-29 Arm Limited Data processing apparatus and method for handling instructions to be executed by processing circuitry
GB2466984B (en) 2009-01-16 2011-07-27 Imagination Tech Ltd Multi-threaded data processing system
CN101853148B (zh) * 2009-05-19 2014-04-23 威盛电子股份有限公司 适用于微处理器的装置及方法
US10698859B2 (en) 2009-09-18 2020-06-30 The Board Of Regents Of The University Of Texas System Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture
US10223204B2 (en) * 2011-12-22 2019-03-05 Intel Corporation Apparatus and method for detecting and recovering from data fetch errors
US9354888B2 (en) * 2012-03-28 2016-05-31 International Business Machines Corporation Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching
US9348598B2 (en) 2013-04-23 2016-05-24 Arm Limited Data processing apparatus and method for pre-decoding instructions to be executed by processing circuitry
US10678544B2 (en) 2015-09-19 2020-06-09 Microsoft Technology Licensing, Llc Initiating instruction block execution using a register access instruction
US10776115B2 (en) 2015-09-19 2020-09-15 Microsoft Technology Licensing, Llc Debug support for block-based processor
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US11977891B2 (en) 2015-09-19 2024-05-07 Microsoft Technology Licensing, Llc Implicit program order
US10768936B2 (en) 2015-09-19 2020-09-08 Microsoft Technology Licensing, Llc Block-based processor including topology and control registers to indicate resource sharing and size of logical processor
US20170083341A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Segmented instruction block
US10871967B2 (en) 2015-09-19 2020-12-22 Microsoft Technology Licensing, Llc Register read/write ordering
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings
US10180840B2 (en) 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions
US10719321B2 (en) 2015-09-19 2020-07-21 Microsoft Technology Licensing, Llc Prefetching instruction blocks
US10198263B2 (en) 2015-09-19 2019-02-05 Microsoft Technology Licensing, Llc Write nullification
US10157164B2 (en) * 2016-09-20 2018-12-18 Qualcomm Incorporated Hierarchical synthesis of computer machine instructions
WO2019046716A1 (en) * 2017-08-31 2019-03-07 MIPS Tech, LLC CONTROLLED INSTRUMENT PROCESSING BY POINTER SIZE
CN108415729A (zh) * 2017-12-29 2018-08-17 北京智芯微电子科技有限公司 一种cpu指令异常的处理方法及装置
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator
US20220100516A1 (en) * 2020-09-26 2022-03-31 Intel Corporation Circuitry and methods for power efficient generation of length markers for a variable length instruction set

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423774A (zh) * 2000-01-14 2003-06-11 先进微装置公司 用于64位寻址的调用选通扩充
CN1450450A (zh) * 2003-05-15 2003-10-22 复旦大学 采用双指令集的32位嵌入式微处理器
US20050262329A1 (en) * 1999-10-01 2005-11-24 Hitachi, Ltd. Processor architecture for executing two different fixed-length instruction sets

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4013A (en) * 1845-04-26 Machine fqe making match-splihts and arranging them in dipping
US5026A (en) * 1847-03-20 Cut-off valve
JPH03168836A (ja) * 1989-11-29 1991-07-22 Toshiba Corp エミュレーションプロセッサ
US5619408A (en) 1995-02-10 1997-04-08 International Business Machines Corporation Method and system for recoding noneffective instructions within a data processing system
KR100495779B1 (ko) 1997-03-21 2005-06-17 까날 + (쏘시에떼 아노님) 전송된 데이터 스트림으로부터 데이터 섹션들을 추출 및 저장하는 방법 및 그의 장치
US6269384B1 (en) 1998-03-27 2001-07-31 Advanced Micro Devices, Inc. Method and apparatus for rounding and normalizing results within a multiplier
JP3867427B2 (ja) * 1999-01-11 2007-01-10 ソニー株式会社 プロセッサ装置および集積回路
US6804799B2 (en) 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache
WO2003046715A1 (fr) * 2001-11-29 2003-06-05 Fujitsu Limited Dispositif central de traitement et programme de fonctionnement
US6816962B2 (en) * 2002-02-25 2004-11-09 International Business Machines Corporation Re-encoding illegal OP codes into a single illegal OP code to accommodate the extra bits associated with pre-decoded instructions
US6968430B1 (en) * 2002-10-22 2005-11-22 Lsi Logic Corporation Circuit and method for improving instruction fetch time from a cache memory device
US6952754B2 (en) * 2003-01-03 2005-10-04 Intel Corporation Predecode apparatus, systems, and methods
US7962725B2 (en) * 2006-05-04 2011-06-14 Qualcomm Incorporated Pre-decoding variable length instructions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262329A1 (en) * 1999-10-01 2005-11-24 Hitachi, Ltd. Processor architecture for executing two different fixed-length instruction sets
CN1423774A (zh) * 2000-01-14 2003-06-11 先进微装置公司 用于64位寻址的调用选通扩充
CN1450450A (zh) * 2003-05-15 2003-10-22 复旦大学 采用双指令集的32位嵌入式微处理器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114625419A (zh) * 2022-05-16 2022-06-14 西安芯瞳半导体技术有限公司 一种可变长指令的缓存结构、方法及介质

Also Published As

Publication number Publication date
EP2018609A1 (en) 2009-01-28
RU2412464C2 (ru) 2011-02-20
BRPI0711165A2 (pt) 2011-08-23
JP5340919B2 (ja) 2013-11-13
JP2009535744A (ja) 2009-10-01
KR101019347B1 (ko) 2011-03-07
RU2008147711A (ru) 2010-06-10
WO2007130798A1 (en) 2007-11-15
CN101432692A (zh) 2009-05-13
US20070260854A1 (en) 2007-11-08
US7962725B2 (en) 2011-06-14
DE602007011596D1 (de) 2011-02-10
CN101432692B (zh) 2012-01-18
CA2649675A1 (en) 2007-11-15
ATE493702T1 (de) 2011-01-15
EP2018609B1 (en) 2010-12-29
MX2008014048A (es) 2008-11-14
JP2012185843A (ja) 2012-09-27
CN102591620B (zh) 2015-02-11
KR20090007629A (ko) 2009-01-19
JP5653963B2 (ja) 2015-01-14

Similar Documents

Publication Publication Date Title
CN101432692B (zh) 预解码指令方法及其处理器
JP5313228B2 (ja) 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア
KR101005633B1 (ko) 일정한 개수의 가변 길이 명령을 가진 명령 캐시
CN101627366B (zh) 预加载指令的方法及装置
US7836285B2 (en) Implementation of variable length instruction encoding using alias addressing
TWI507980B (zh) 最佳化暫存器初始化操作
US6275927B2 (en) Compressing variable-length instruction prefix bytes
US6460116B1 (en) Using separate caches for variable and generated fixed-length instructions
CN104615408A (zh) 微处理器、集成电路与提供微码指令储存空间的方法
CN1961285B (zh) Tlb相关分支预测器及其使用方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150211

Termination date: 20210420

CF01 Termination of patent right due to non-payment of annual fee