CN104657110A - 具有固定数量的可变长度指令的指令高速缓存器 - Google Patents

具有固定数量的可变长度指令的指令高速缓存器 Download PDF

Info

Publication number
CN104657110A
CN104657110A CN201510049939.1A CN201510049939A CN104657110A CN 104657110 A CN104657110 A CN 104657110A CN 201510049939 A CN201510049939 A CN 201510049939A CN 104657110 A CN104657110 A CN 104657110A
Authority
CN
China
Prior art keywords
instruction
cache
cache line
length
address
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
CN201510049939.1A
Other languages
English (en)
Other versions
CN104657110B (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 CN104657110A publication Critical patent/CN104657110A/zh
Application granted granted Critical
Publication of CN104657110B publication Critical patent/CN104657110B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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 or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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 or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本申请涉及具有固定数量的可变长度指令的指令高速缓存器。固定数量的可变长度指令存储在指令高速缓存器的每一线中。所述可变长度指令沿预定的边界对准。由于所述线中的每一指令的长度是未知的,且因此所述指令占据的存储器的范围是未知的,所以计算出下一紧随指令的地址并用高速缓存线对其进行存储。在将所述指令放置在高速缓存器中之前,在预解码器中执行确定指令边界、对准指令及计算下一提取地址。

Description

具有固定数量的可变长度指令的指令高速缓存器
本申请为发明名称为“具有固定数量的可变长度指令的指令高速缓存器”的原中国发明专利申请的分案申请。原申请的中国申请号为200680034364.5;原申请的申请日为2006年7月26日,其国际申请号为PCT/US2006/029523。
技术领域
本发明一般来说涉及处理器领域,且特定来说涉及具有指令高速缓存器的处理器,所述指令高速缓存器存储固定数量的可变长度指令。
背景技术
微处理器在各种各样的应用中执行计算任务,其中包含便携式电子装置。在许多情形中,使处理器性能最大化是主要设计目标,以准许在便携式电子装置及其他应用中实施额外的功能及特征。另外,功率消耗是具有有限电池容量的便携式电子装置中令人特别关心的问题。因此,所需要的是提高性能且降低功率消耗的处理器设计。
多数现代处理器采用一个或多个指令执行管线,其中对许多多步序列指令的执行经重叠以改善总体处理器性能。利用多数程序的空间和时间局部性特性,将最近执行的指令存储在高速缓存器(一种高速、通常芯片上存储器)中以供执行管线随时存取。
许多处理器指令集体系结构(ISA)包含可变长度指令。也就是说,从存储器读取的指令操作码并不都占据相同的空间量。这可由随算术或逻辑指令包含操作数、将多个操作合并到一个超长指令字(VLIW)或其他体系结构特征中而引起。可变长度指令的一个缺点是,在从指令高速缓存器中提取指令时,处理器必须确定每一指令的边界,这是一项消耗功率且降低性能的计算任务。
所属技术领域中已知的一种在可变长度指令存在时改善指令高速缓存器存取的方法是:在将指令存储到高速缓存器之前先对其进行“预解码”,且另外地将一些指令边界信息连同所述指令一起存储到高速缓存线中。这会降低但不会消除施加到解码任务上的确定指令边界带来的额外计算负担。
同样,通过以从存储器中读取指令的相同压缩形式将所述指令装入高速缓存器中,有时候指令是未对准的,其中指令的一部分被存储在一个高速缓存线的末端处且剩余部分被存储在连续高速缓存线的开始处。提取这个指令需要两次高速缓存器存取,从而进一步降低性能且增加功率消耗,尤其是每次执行所述指令都需要所述两次存取时。
图1绘示存储可变长度指令(I1-I9)的现有技术指令高速缓存器的两个线100、140的代表图。在这个代表性实例中,每一高速缓存线均包括十六个字节,且采用32位字大小。多数指令为一个字宽或四个字节。某些指令为半个字宽,包括两个字节。第一高速缓存线100及相关联的标签字段120含有指令I1到I4,及指令I5的一半。第二高速缓存线140及其相关联标签字段160含有指令I5的另一半,及指令I6到I9。指令长度及其地址汇总在下表中:
指令 大小 地址 对准
I1 0×1A0 在字边界上对准
I2 0×1A4 在字边界上对准
I3 半字 0×1A8 在字边界上对准
I4 0×1AA 跨越字边界未对准
I5 0×1AE 跨越高速缓存线未对准
I6 0×1B2 跨越字边界未对准
I7 0×1B6 跨越字边界未对准
I8 半字 0×1BA 在字边界上未对准
I9 0×1BC 在字边界上对准
表1:现有技术高速缓存器中的可变长度指令
为从高速缓存线100、140中读取这些指令,处理器必须以功率消耗和延迟为代价花费额外的计算工作来确定指令边界。虽然可通过对指令进行预解码且存储高速缓存线100、140中或与其相关联的边界信息来辅助这项任务,但是未免除所述额外计算。另外,对指令I5的提取将需要两次高速缓存器存取。这种从高速缓存器中提取未对准指令的双存取可导致额外的功率消耗及处理器延迟。
发明内容
固定数量的可变长度指令存储在指令高速缓存器的每一线中。所述可变长度指令沿预定边界对准。由于所述线中每一指令的长度是未知的,且因此所述指令占据的存储器的范围是未知的,所以计算出下一紧随指令的地址并用高速缓存线对其进行存储。在将指令放置在高速缓存器中之前,在预解码器中执行确定指令边界、对准指令及计算出下一提取地址。
在一个实施例中,一种在具有可变指令长度的处理器中进行高速缓存器管理的方法包括每一高速缓存线存储固定数量的指令。
在另一实施例中,处理器包含:指令执行管线,其操作以执行具有可变长度的指令;及指令高速缓存器,其操作以每一高速缓存线存储固定数量的可变长度指令。所述处理器另外包含预解码器,其操作以在将可变长度指令写入高速缓存线中之前沿预定边界对准所述指令。
附图说明
图1是存储可变长度指令的现有技术指令高速缓存器的图式。
图2是处理器的功能框图。
图3是存储固定数量的沿预定边界对准的可变长度指令的指令高速缓存器的图式。
具体实施方式
图2绘示采用管线化体系结构及分级存储器结构两者的代表性处理器10的功能框图。处理器10根据控制逻辑14执行指令执行管线12中的指令。所述管线包含组织成管级的各种寄存器或锁存器16,以及一个或多个算术逻辑单元(ALU)18。通用寄存器(GPR)堆20提供构成存储器层级的顶层的寄存器。
所述管线从指令高速缓存器(I-高速缓存器)22提取指令,其中存储器寻址和许可由指令侧转换后备缓冲器(ITLB)24来管理。预解码器21在将指令存储到I-高速缓存器22中之前检查从存储器中提取的指令。如下所述,预解码器21确定指令边界、对准指令,并计算出下一提取地址,所述提取地址随所述指令一起存储在I-高速缓存器22中。
从数据高速缓存器26存取数据,其中存储器寻址和许可由主转换后备缓冲器(TLB)28来管理。在各种实施例中,ITLB 24可包括TLB 28的一部分的副本。或者,可整合ITLB 24及TLB 28。类似地,在处理器10的各种实施例中,可整合或联合I-高速缓存器22和D-高速缓存器26。在存储器接口30的控制下,I-高速缓存器22及/或D-高速缓存器26中的未命中导致对主(芯片外)存储器32的存取。
处理器10可包含输入/输出(I/O)接口34,其控制对各种外围装置36的存取。所属技术领域的技术人员将认识到,处理器10的多种变化是可能的。例如,处理器10可包含二级(L2)高速缓存器以用于I-高速缓存器22及D-高速缓存器26的任一者或两者。另外,可从特定实施例中省去处理器10中所绘示的一个或多个所述功能块。
根据本文中揭示的一个或多个实施例,处理器10将固定数量的可变长度指令存储在每一高速缓存线中。所述指令优选地沿预定边界(例如字边界)对准。这将减轻解码管级计算指令边界的必要性,从而允许更高速度的操作且因此改善处理器性能。以这种方式将指令存储在I-高速缓存器22中还通过一次性执行指令长度检测和对准操作而降低了功率消耗。由于I-高速缓存器22命中率通常高达90%,所以通过消除每次从I-高速缓存22执行指令时均需确定指令边界可实现大量的功率节省。
预解码器21包括安插在主存储器32和I-高速缓存器22之间的路径中的逻辑。预解码器21逻辑检查从存储器中检索的数据,并确定指令的数量和长度。预解码器沿预定边界(例如,字边界)对准指令,随后将对准的指令传递到高速缓存器以存储在高速缓存线中。
图3绘示I-高速缓存器22的两个代表性线200、260,其中每一代表性线含有来自图1的固定数量的可变长度指令(在这个实例中,每一高速缓存线200、260中存储有四个指令)。高速缓存线200、260为16字节。字边界由虚线表示,半字边界由点线表示。所述指令沿字边界对准(也就是说,每一指令均在字地址处开始)。当管线12从I-高速缓存器22提取指令时,解码管级可仅对来自高速缓存线200、260的相关字进行多路复用且然后立即开始对操作码进行解码。在半字指令(例如,13和18)的情况下,高速缓存线200、260中分别有一个半字的空间未被使用,如图3中通过加阴影所示。
应注意,与图1中绘示的现有技术高速缓存器相比较,图3的高速缓存器22仅将八个指令(而不是九个)存储在两个高速缓存线中。对应于I9的长度的字空间(偏移0×0A和0×1E处的半字)没有被利用。图3中所绘示的高速缓存器利用的简单性、改善的处理器功率及较低的功率消耗是以这种将指令存储在高速缓存器22中的效率减小为代价的。
另外,通过向高速缓存线200、260分配固定数量的可变长度指令并沿预定边界对准所述指令,不会跨越高速缓存线未对准地存储指令,例如图1中的I5。因此,完全消除了由高速缓存器22两次存取以提取单个指令所导致的性能损失和过度功率消耗。
因为存储固定数量的可变长度指令而不是具有已知总长度(高速缓存线的长度)的可变数量的指令,所以通过简单地依据一个高速缓存线200的存储器大小来增加高速缓存线200的标签220不能确定下一序列指令的地址。因此,在一个实施例中,当指令已对准时,由预解码器21计算出下一提取地址(在将所述指令存储到I-高速缓存器22中之前),且将所述下一提取地址连同高速缓存线200一起存储在字段240中。
根据一个实施例,作为计算及存储下一提取地址的替代方案,可计算出距标签220的偏移并将其连同高速缓存线200一起存储进去,例如存储到偏移字段240中。然后,可通过将所述偏移添加到标签地址来容易地计算出下一提取地址。在连续的地址提取每一次跨越高速缓存线时,这个实施例均招致执行此添加所带来的处理延迟及功率消耗。在其它实施例中,可存储其它信息来辅助计算下一提取地址。例如,可存储等于高速缓存线240中所述固定数量的指令的一组位,其中(例如)以“一”表示存储在对应的指令“时隙”中的全字长指令且以“零”表示存储在对应的指令“时隙”中的半字长指令。然后可根据这个信息计算出存储器中指令的地址,且因此计算出下一序列指令的地址。所属技术领域的技术人员将容易地认识到,可构想出并存储额外的下一地址计算辅助程序以计算所述下一指令提取地址。
虽然本文中已针对包含字和半字指令长度的代表性ISA说明了各种实施例,但本发明并不限于这些实施例。一般来说,任何可变长度指令均可以固定数量有利地存储在指令高速缓存器22中,所述指令沿预定边界对准。另外,在各种实施例的实践中可利用与本文中绘示的高速缓存线不同大小的高速缓存线240、300。
虽然在本文中已针对本发明的特定特征、方面和实施例描述了本发明的实施例,但是显而易见的是,在本发明的广泛范围内可实现大量的变化、修改和其他实施例,且因此,所有的变化、修改和实施例均视为在本发明的范围内。因此,在所有方面中均应将本发明实施例解释为说明性而非限制性,且随附权利要求书的含义和等效范围内的所有改变均打算包含在随附权利要求书范围内。

Claims (14)

1.一种在具有可变指令长度的处理器中进行高速缓存器管理的方法,所述包括:
在高速缓存器的第一高速缓存线中存储包括固定数量的指令的第一多个指令,所述第一多个指令包括第一指令和第二指令,其中,所述第一指令具有第一指令长度,所述第二指令具有不同于所述第一指令长度的第二指令长度,其中,所述固定数量是不会使得跨越所述第一高速缓存线未对准地存储指令的数量;
在所述高速缓存器的第二高速缓存线中存储包括所述固定数量的指令的第二多个指令;及
在所述高速缓存器中紧邻所述第一高速缓存线之后存储下列之一:
下一提取地址;或
偏移,所述偏移在被添加到与所述第一高速缓存线相关的高速缓存线标签地址时产生所述下一提取地址。
2.如权利要求1所述的方法,其进一步包括:
检查所述第一多个指令中的每个指令,以确定所述每个指令的相应的长度;及
沿预定边界将所述第一多个指令中的每个指令对准。
3.如权利要求1所述的方法,其进一步包括在将所述第一多个指令放置在所述第一高速缓存线中之前,确定下列中的至少一个:
所述下一提取地址;或
所述偏移。
4.一种处理器,其包括:
指令高速缓存器,包括:
第一高速缓存线,用以存储包括第一指令和第二指令的固定数量的指令,其中,所述第一指令具有第一指令长度,所述第二指令具有不同于所述第一指令长度的第二指令长度,其中,所述固定数量是不会使得跨越所述第一高速缓存线未对准地存储指令的数量;及
第二高速缓存线,用以存储所述固定数量的指令;其中,所述第一高速缓存线进一步用以存储下列之一:
下一提取地址;及
偏移,所述偏移在被添加到与所述第一高速缓存线相关的高速缓存线标签地址时,产生所述下一提取地址。
5.如权利要求4所述的处理器,其进一步包括:
预解码器,用以将所述第一指令与所述第二指令中的每一者与所述第一高速缓存线的相应的预定边界对准。
6.如权利要求5所述的处理器,其中所述预解码器用以:
计算紧跟在写入到高速缓存线的最后一个指令后的下一指令的所述下一提取地
址;及
在所述第一高速缓存线中存储所述下一指令的所述下一提取地址和所述偏
移中中的一者。
7.如权利要求4所述的处理器,其进一步包括:
指令执行管线,用以执行具有可变长度的指令。
8.一种在具有可变指令长度的处理器中进行高速缓存器管理的方法,所述方法包括:
在高速缓存器的第一高速缓存线中存储包括固定数量的指令的多个指令,所述多个指令包括第一指令和第二指令,其中,所述第一指令具有第一指令长度,所述第二指令具有不同于所述第一指令长度的第二指令长度,其中,所述固定数量大于1,且其中,其中,所述固定数量是不会使得跨越所述第一高速缓存线未对准地存储指令的数量。
9.如权利要求8所述的方法,其进一步包括:
检查所述多个指令中的每个指令,以确定其长度;及
在将所述多个指令放置在所述高速缓存器中之前,将所述多个指令中的每个指令沿着相应的预定边界对准。
10.如权利要求8所述的方法,其中,所述多个指令中的每个指令具有相应的指令长度,所述指令长度最大是字长度。
11.如权利要求9所述的方法,其中,至少一个预定边界是字边界。。
12.如权利要求8所述的方法,其进一步包括:
在所述高速缓存器中紧邻所述第一高速缓存线之后存储下一提取地址。
13.如权利要求12所述的方法,其进一步包括:
在将所述多个指令存储在所述第一高速缓存线中之前,确定所述下一提取地址。
14.如权利要求8所述的方法,其进一步包括:
在所述高速缓存器中紧邻所述第一高速缓存线之后存储一偏移,所述偏移在被添加到与所述第一高速缓存线相关的高速缓存线标签地址时产生下一提取地址。
CN201510049939.1A 2005-07-29 2006-07-26 具有固定数量的可变长度指令的指令高速缓存器 Expired - Fee Related CN104657110B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/193,547 2005-07-29
US11/193,547 US7568070B2 (en) 2005-07-29 2005-07-29 Instruction cache having fixed number of variable length instructions
CNA2006800343645A CN101268440A (zh) 2005-07-29 2006-07-26 具有固定数量的可变长度指令的指令高速缓存器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800343645A Division CN101268440A (zh) 2005-07-29 2006-07-26 具有固定数量的可变长度指令的指令高速缓存器

Publications (2)

Publication Number Publication Date
CN104657110A true CN104657110A (zh) 2015-05-27
CN104657110B CN104657110B (zh) 2020-08-18

Family

ID=37451109

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510049939.1A Expired - Fee Related CN104657110B (zh) 2005-07-29 2006-07-26 具有固定数量的可变长度指令的指令高速缓存器
CNA2006800343645A Pending CN101268440A (zh) 2005-07-29 2006-07-26 具有固定数量的可变长度指令的指令高速缓存器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNA2006800343645A Pending CN101268440A (zh) 2005-07-29 2006-07-26 具有固定数量的可变长度指令的指令高速缓存器

Country Status (6)

Country Link
US (1) US7568070B2 (zh)
EP (1) EP1910919A2 (zh)
JP (2) JP4927840B2 (zh)
KR (1) KR101005633B1 (zh)
CN (2) CN104657110B (zh)
WO (1) WO2007016393A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528450A (zh) * 2016-10-27 2017-03-22 上海兆芯集成电路有限公司 数据预先提取方法及使用此方法的装置
CN108415729A (zh) * 2017-12-29 2018-08-17 北京智芯微电子科技有限公司 一种cpu指令异常的处理方法及装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337272B2 (en) * 2006-05-01 2008-02-26 Qualcomm Incorporated Method and apparatus for caching variable length instructions
US8898437B2 (en) * 2007-11-02 2014-11-25 Qualcomm Incorporated Predecode repair cache for instructions that cross an instruction cache line
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
JP5968693B2 (ja) * 2012-06-25 2016-08-10 ルネサスエレクトロニクス株式会社 半導体装置
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US10853074B2 (en) * 2014-05-01 2020-12-01 Netronome Systems, Inc. Table fetch processor instruction using table number to base address translation
BR112017001981B1 (pt) * 2014-07-30 2023-05-02 Movidius Limited Método para gerenciar buffer de instruções, sistema e memória legível por computador relacionados
US9916251B2 (en) 2014-12-01 2018-03-13 Samsung Electronics Co., Ltd. Display driving apparatus and cache managing method thereof
CN110750303B (zh) * 2019-09-25 2020-10-20 支付宝(杭州)信息技术有限公司 基于fpga的流水线式指令读取方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
EP0498654B1 (en) * 1991-02-08 2000-05-10 Fujitsu Limited Cache memory processing instruction data and data processor including the same
JP2828219B2 (ja) * 1995-03-23 1998-11-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン オブジェクト・コード互換性を与える方法、オブジェクト・コード互換性並びにスカラ・プロセッサ及びスーパスカラ・プロセッサとの互換性を与える方法、ツリー命令を実行するための方法、データ処理システム
EP0843848B1 (en) * 1996-05-15 2004-04-07 Koninklijke Philips Electronics N.V. Vliw processor which processes compressed instruction format
TW357318B (en) 1997-03-18 1999-05-01 Ind Tech Res Inst Branching forecast and reading device for unspecified command length extra-purity pipeline processor
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
US6253287B1 (en) 1998-09-09 2001-06-26 Advanced Micro Devices, Inc. Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions
US6253309B1 (en) 1998-09-21 2001-06-26 Advanced Micro Devices, Inc. Forcing regularity into a CISC instruction set by padding instructions
JP3490007B2 (ja) * 1998-12-17 2004-01-26 富士通株式会社 命令制御装置
EP1224539A1 (en) * 1999-10-14 2002-07-24 Advanced Micro Devices, Inc. Apparatus and method for caching alignment information
US6779100B1 (en) * 1999-12-17 2004-08-17 Hewlett-Packard Development Company, L.P. Method and device for address translation for compressed instructions
JP2003131945A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd キャッシュメモリ装置
US7133969B2 (en) * 2003-10-01 2006-11-07 Advanced Micro Devices, Inc. System and method for handling exceptional instructions in a trace cache based processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528450A (zh) * 2016-10-27 2017-03-22 上海兆芯集成电路有限公司 数据预先提取方法及使用此方法的装置
CN106528450B (zh) * 2016-10-27 2019-09-17 上海兆芯集成电路有限公司 数据预先提取方法及使用此方法的装置
CN108415729A (zh) * 2017-12-29 2018-08-17 北京智芯微电子科技有限公司 一种cpu指令异常的处理方法及装置

Also Published As

Publication number Publication date
CN104657110B (zh) 2020-08-18
US20070028050A1 (en) 2007-02-01
WO2007016393A2 (en) 2007-02-08
JP4927840B2 (ja) 2012-05-09
JP2012074046A (ja) 2012-04-12
WO2007016393A3 (en) 2007-06-28
KR101005633B1 (ko) 2011-01-05
JP2009503700A (ja) 2009-01-29
EP1910919A2 (en) 2008-04-16
JP5341163B2 (ja) 2013-11-13
CN101268440A (zh) 2008-09-17
KR20080031981A (ko) 2008-04-11
US7568070B2 (en) 2009-07-28

Similar Documents

Publication Publication Date Title
CN104657110A (zh) 具有固定数量的可变长度指令的指令高速缓存器
US7406569B2 (en) Instruction cache way prediction for jump targets
CN101627366B (zh) 预加载指令的方法及装置
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
US5761712A (en) Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
CN102841865B (zh) 高性能缓存系统和方法
US7565510B2 (en) Microprocessor with a register selectively storing unaligned load instructions and control method thereof
US6081873A (en) In-line bank conflict detection and resolution in a multi-ported non-blocking cache
US6175898B1 (en) Method for prefetching data using a micro-TLB
CN101375245B (zh) 翻译旁视缓冲器操纵方法和装置
RU2435204C2 (ru) Способ и устройство для кэширования команд переменной длины
US20070033385A1 (en) Call return stack way prediction repair
US6240506B1 (en) Expanding instructions with variable-length operands to a fixed length
US5930819A (en) Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache
CN101646999A (zh) 以适当的预解码预载来自可变长度指令集的指令的系统、方法和软件
CN101111819A (zh) 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制
CN103365627A (zh) 执行单元内的数据转发系统和方法
US9600418B2 (en) Systems and methods for improving processor efficiency through caching
CN101460922A (zh) 滑动窗口、基于区块的分支目标地址高速缓冲存储器
US5737749A (en) Method and system for dynamically sharing cache capacity in a microprocessor
US5787474A (en) Dependency checking structure for a pair of caches which are accessed from different pipeline stages of an instruction processing pipeline
US20180203703A1 (en) Implementation of register renaming, call-return prediction and prefetch
Hines et al. Guaranteeing hits to improve the efficiency of a small instruction cache
US5813033A (en) Superscalar microprocessor including a cache configured to detect dependencies between accesses to the cache and another cache
JP3824657B2 (ja) 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200818

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