CN104657110A - 具有固定数量的可变长度指令的指令高速缓存器 - Google Patents
具有固定数量的可变长度指令的指令高速缓存器 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 11
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined 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所述的方法,其进一步包括:
在所述高速缓存器中紧邻所述第一高速缓存线之后存储一偏移,所述偏移在被添加到与所述第一高速缓存线相关的高速缓存线标签地址时产生下一提取地址。
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)
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)
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)
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 |
-
2005
- 2005-07-29 US US11/193,547 patent/US7568070B2/en active Active
-
2006
- 2006-07-26 CN CN201510049939.1A patent/CN104657110B/zh not_active Expired - Fee Related
- 2006-07-26 KR KR1020087004751A patent/KR101005633B1/ko active IP Right Grant
- 2006-07-26 EP EP06788854A patent/EP1910919A2/en not_active Ceased
- 2006-07-26 JP JP2008524216A patent/JP4927840B2/ja not_active Expired - Fee Related
- 2006-07-26 WO PCT/US2006/029523 patent/WO2007016393A2/en active Application Filing
- 2006-07-26 CN CNA2006800343645A patent/CN101268440A/zh active Pending
-
2011
- 2011-10-28 JP JP2011237313A patent/JP5341163B2/ja not_active Expired - Fee Related
Cited By (3)
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 |