CN110737474B - 一种指令地址压缩存储方法 - Google Patents

一种指令地址压缩存储方法 Download PDF

Info

Publication number
CN110737474B
CN110737474B CN201910933053.1A CN201910933053A CN110737474B CN 110737474 B CN110737474 B CN 110737474B CN 201910933053 A CN201910933053 A CN 201910933053A CN 110737474 B CN110737474 B CN 110737474B
Authority
CN
China
Prior art keywords
instruction
address
buffer
cache line
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910933053.1A
Other languages
English (en)
Other versions
CN110737474A (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.)
SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER
Original Assignee
SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER
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 SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER filed Critical SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER
Priority to CN201910933053.1A priority Critical patent/CN110737474B/zh
Publication of CN110737474A publication Critical patent/CN110737474A/zh
Application granted granted Critical
Publication of CN110737474B publication Critical patent/CN110737474B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种指令地址压缩存储方法,每当取到一个新的指令缓存行时,分配一个地址压缩缓冲条目,并记录该缓存行基址和起始位置;每当遇到缓存行末尾或者指令流改道时,登记该缓存行终止位置,并将头指针循环指向下一位置;完成地址压缩的指令携带分配的地址压缩缓冲指针以及自身在缓存行的偏移值流向后续站台,当需要地址信息时,使用其携带的地址索引指针查询地址压缩缓冲,得到指令地址;当一个地址压缩缓冲条目对应的所有指令都退出时,回收该地址压缩缓冲条目,同时更新尾指针。本发明能够降低指令地址存储开销。

Description

一种指令地址压缩存储方法
技术领域
本发明涉及现代微处理器设计技术领域,特别是涉及一种指令地址压缩存储方法。
背景技术
现代微处理器采用深流水、宽发射的基础结构以及推测执行技术提升核心性能,支持异常、中断处理。当发生如分支预测失败、Load-Store冲突自陷等误推测事件时,需要获取引发误推测指令的断点地址,以便解决误推测后继续运行。当响应中断或者处理异常时,要将中断或异常进入时的断点地址保存起来,以便中断或异常处理完毕后可以回到断点处继续取指执行。为了实现推测执行技术并支持异常、中断处理,现代处理器需要记录所有已取指令的地址,在误预测、异常、中断等特殊事件发生时,获取并记录断点地址,以保证处理完这些事件后仍可以回到原指令流轨迹继续取指执行。
由于指令地址通常较宽,将飞行中的指令地址全都保存下来需要花费不小的存储开销。此外,指令携带地址在流水线站台间流动时,不仅需要额外的触发器储存地址,且流水站台间的地址连线会十分庞杂,不利于物理设计和实现。
发明内容
本发明所要解决的技术问题是提供一种指令地址压缩存储方法,能够降低指令地址存储开销。
本发明解决其技术问题所采用的技术方案是:提供一种指令地址压缩存储方法,采用循环队列进行地址压缩管理,分别使用头尾指针控制指令地址的登记和退出;指令地址压缩的基本单位为一个指令缓存行,一个地址压缩缓冲条目存储有指令缓存行的基址、起始位置和终止位置;包括以下步骤:
每当取到一个新的指令缓存行时,分配一个地址压缩缓冲条目,并记录该缓存行基址和起始位置;
每当遇到缓存行末尾或者指令流改道时,登记该缓存行终止位置,并将头指针循环指向下一位置;
完成地址压缩的指令携带分配的地址压缩缓冲指针以及自身在缓存行的偏移值流向后续站台,当需要地址信息时,使用其携带的地址索引指针查询地址压缩缓冲,得到指令地址;
当一个地址压缩缓冲条目对应的所有指令都退出时,回收该地址压缩缓冲条目,同时更新尾指针。
所述使用头尾指针控制指令地址的登记时,登记方法如下:
(a)若当前头指针指向的压缩缓冲条目无效,则说明该指令缓存行首次登记地址,将本次取指地址中的缓存行基址、起始位置以及终止位置摘出,登记到头指针所指压缩缓冲条目中;其中,缓存行起始位置对应当前取指最年老指令的缓存行内偏移,终止位置对应当前取指最年轻指令的缓存行内偏移;
(b)若当前头指针指向的压缩缓冲条目有效,说明该指令缓存行已被登记,此时只需要更新该缓存行已登记的终止位置;
(c)若本次取指已到达缓存行末尾,则该缓存行自然终止;若本次取指遇到指令流改道,则该缓存行提前终止;终止时标记该压缩缓冲条目为关闭状态,等待退出,将压缩缓冲头指针循环加1,指向下一个登记的条目位置;
(d)若本次取指遇到分支预测跳转导致地址缓冲头指针所指条目提前终止,则将分支预测目标地址提前登记到压缩缓冲头指针所指的下一位置处,以便判断分支预测是否成功时获取分支预测目标地址。
所述使用头尾指针控制指令地址的退出时,包括如下方式:
(A)最年轻指令的缓冲索引指针和压缩缓冲尾指针重合,且指令缓存行内偏移位置和条目终止不同,说明该压缩缓冲条目中登记的指令尚未全部退出,不做任何操作;
(B)最年轻指令的缓冲索引指针和压缩缓冲尾指针重合,指令缓存行内偏移位置和条目终止位置相同,且缓冲索引指针所指条目已经处于关闭状态,说明该压缩缓冲条目中登记的指令已全部退出,则回收该压缩缓冲条目,将压缩缓冲尾指针循环加1,指向下一个要释放的条目位置;
(C)最年轻指令的缓冲索引指针和压缩缓冲尾指针不重合,且指令缓存行内偏移位置和条目终止位置不同,说明最年轻指令所在缓冲条目中尚有未退出的指令,则释放缓冲尾指针到该指令缓冲索引指针之间的条目,将缓冲尾指针指向最年轻退出指令的缓冲索引指针;
(D)最年轻指令的缓冲索引指针和压缩缓冲尾指针不重合,且指令缓存行内偏移位置和条目终止位置相同,说明缓冲尾指针到退出指令缓冲索引指针之间的条目均可以回收,则一次释放多个压缩缓冲条目,同时将缓冲尾指针指向最年轻退出指令缓冲索引指针的下一个位置。
当出现误推测情况时,涉及推测路径的状态回卷,根据引起误推测指令携带的地址索引指针回收误推测路径上已分配的地址压缩缓冲条目,同时更新地址压缩缓冲状态。
若引发误推测指令所在的压缩缓冲条目整个被回卷,该压缩缓冲条目要被回收,同时将压缩缓冲头指针指向引发误推测指令所写携带的缓冲指针处;若引发误推测指令所在的压缩缓冲条目中还有其他正常指令,则将该压缩缓冲条目中的终止位置更新为引发误推测指令的缓存行内偏移值,将该地址压缩缓冲条目置为关闭状态,等待退出,同时将压缩缓冲头指针指向该缓冲条目的顺序下一位置。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明按照指令Cache行粒度的方式对指令地址进行集中压缩存储,一个条目最多可以表示一个指令Cache行的地址,压缩效率高,节约存储所带来的收益明显。指令不用携带地址流向后续站台,而只需要携带短小的地址索引指针,节省了流水线站台中的地址存储单元,减少了站台间的存储连线,对处理器面积、功耗均有好处。另外,获取指令地址的方法简单,且不用对分支指令做特殊的发射、执行限制。
附图说明
图1为本实施方式中地址压缩缓冲结构示意图;
图2为处理器流水线站台划分以及地址压缩缓冲地址登记和条目释放时机示意图;
图3为地址压缩缓冲头指针所指条目首次登记地址时的状态变化图;
图4为地址压缩缓冲头指针所指条目继续登记地址时的状态变化图;
图5为遇到引起指令流改道的指令后地址缓冲条目提前终止的示意图;
图6为遇到指令Cache末尾后地址缓冲条目自然终止的示意图;
图7为获取指令地址以及分支预测目标地址的示意图;
图8为地址压缩缓冲尾指针所指条目释放的状态变化图;
图9为地址压缩缓冲多个条目同时释放但退出的最年轻指令所在缓冲条目不能释放的状态变化图;
图10为地址压缩缓冲多个条目同时释放的状态变化图;
图11为特殊误推测情形下地址压缩缓冲的状态变化图;
图12为一般误推测情形下地址压缩缓冲的状态变化图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种指令地址压缩存储方法。现代处理器在取指时一次会取多条指令,这些指令都是顺序的,且地址高位相同。本实施方式按照指令Cache行的粒度对指令地址进行压缩存储,压缩缓冲条目不需要存储每一条指令的完整地址,只需要记录Cache行基址、起始位置和终止位置。如图1所示,本实施方式中的指令地址压缩缓冲采用循环队列进行地址压缩管理,分别使用头尾指针控制指令地址的登记和退出;指令地址压缩的基本单位为一个指令缓存行,一个地址压缩缓冲条目存储有指令缓存行的基址、起始位置和终止位置。一个Cache行中的多条指令共享相同的Cache行基址,起始位置用于生成分支指令的目标地址并配合地址压缩缓冲条目的状态回卷,终止位置则配合地址压缩缓冲条目的释放。这种指令地址集中压缩存储方式可以有效降低地址存储开销。
指令地址压缩缓冲包含了所有飞行指令的地址,容纳的指令数不小于重排序缓冲ROB的指令窗口。由于遇到程序改道时会终止当前地址压缩缓冲条目,存在缓冲条目中登记的指令不满一个Cache行的情况。因此,地址压缩缓冲的条目数应不小于ROB的条目数,以防止地址压缩缓冲成为瓶颈。
示例处理器流水线站台划分如图2所示,假设取指宽度为4条指令,指令编码长度和指令地址宽度均为32位,指令Cache行大小为128B,包含32条指令,则指令地址[31:7]指示指令Cache行地址。
取得指令后,在预测分析站台对指令进行简单译码,识别其中引起指令流改道的指令(例如分支指令、特殊控制指令等),结合分支预测器结果对本次取指进行分析和仲裁,以检查当前取得的指令是否会引起指令流改道,将完成预测分析的指令地址登记到地址压缩缓冲中。
指令地址压缩缓冲循环队列采用头尾指针分别控制指令地址的登记和退出,初始时头尾指针均指向0位置,所有缓冲条目均无效。当有指令地址要写入时,按照以下规则进行:
1)若当前头指针指向的压缩缓冲条目无效,则说明该指令Cache行首次登记地址,将本次取指地址中的Cache行基址、起始位置以及终止位置摘出,登记到头指针所指缓冲条目中。其中,Cache行起始位置对应当前取指最年老指令的Cache行内偏移,终止位置对应当前取指最年轻指令的Cache行内偏移,登记后条目有效,如图3所示;
2)若当前头指针指向的压缩缓冲条目有效,说明该指令Cache行已被登记,此时只需要更新该Cache行已登记的终止位置,如图4所示,终止位置由5’b00011更新为5’b00111,表示当前缓冲条目已登记了8条指令地址;
3)若本次取指已到达Cache行末尾,则该Cache行自然终止,如图6所示,表示该Cache行的指令地址都已登记完毕;若本次取指遇到指令流改道情况(如分支预测改道),则该Cache行提前终止,如图5所示遇到一条跳转的bne指令且预测为跳转。此时标记该压缩缓冲条目为关闭状态,等待退出,将压缩缓冲头指针循环加1,指向下一个可以登记的条目位置;
4)若本次取指遇到分支预测跳转导致地址缓冲头指针所指条目提前终止,则将分支预测目标地址(按照Cache行基址和Cache行起始位置)提前登记到压缩缓冲头指针所指的下一位置处,如图5所示,以便判断分支预测是否成功时获取分支预测目标地址。分支预测改道后迟早会从分支目标地址处重取进而将地址登记到压缩缓冲中,但可能存在执行分支指令时,其目标地址处的指令尚未取回且地址也未登记到压缩缓冲中的情况,故要提前登记分支目标地址。
完成地址登记的指令,将地址压缩时对应的压缩缓冲头指针以及自身在Cache行内的偏移位置拼接成地址索引指针,并携带流向后续站台。如图7所示,示例中的bne指令登记地址携带的缓冲指针为3’b000,其在Cache行内的偏移值为5’b01010,所以bne携带的地址索引指针为8’b00001010。
当需要获取指令地址时,使用指令携带的地址索引指针查询地址压缩缓冲,取得Cache行基址后再拼接自身在Cache行内偏移位置即为指令地址。如图7所示,示例中的bne使用携带的地址缓冲指针3’b000查询地址压缩缓冲后获得的Cache行基址为25’h1ffe000,拼接上bne在Cache行内的偏移5’b01010,以及最低2位的2’b00,即得到bne的指令地址32’hfff00028。
当要获取分支指令目标地址时,使用分支指令所携带地址缓冲指针顺序加1的值查询地址压缩缓冲,获取的Cache行基址和Cache行起始地址拼接起来即分支指令目标地址。如图7所示,示例中bne的地址缓冲指针3’b000加1后为3’b001,使用该指针查询地址压缩缓冲得到的Cache行基址和Cache起始位置分别为25’h1ffe001和5’b11110,拼接上最低2位0,即可得到bne的预测目标地址32’hfff000f8。
当指令顺序退出时,使用最年轻指令的地址索引指针查询地址压缩缓冲,取得其对应压缩缓冲条目中的终止位置,并与自身的Cache行内偏移进行比较,包括以下几种情况:
1)最年轻指令的缓冲索引指针和压缩缓冲尾指针重合,且指令Cache行内偏移位置和条目终止不同,说明该压缩缓冲条目中登记的指令尚未全部退出,不做任何操作;
2)最年轻指令的缓冲索引指针和压缩缓冲尾指针重合,指令Cache行内偏移位置和条目终止位置相同,且缓冲索引指针所指条目已经处于关闭状态,说明该压缩缓冲条目中登记的指令已全部退出,此时回收该压缩缓冲条目,将压缩缓冲尾指针循环加1,指向下一个要释放的条目位置。如图8所示,有3条指令同时退出,此时使用最年轻指令携带的地址索引指针8’b00001010查询地址压缩缓冲,获得条目中的终止位置为5’b01010,和该指令偏移位置相同,且该条目处于关闭状态,所以可以退出,尾指针循环加1指向下一个条目;
3)最年轻指令的缓冲索引指针和压缩缓冲尾指针不重合,且指令Cache行内偏移位置和条目终止位置不同,说明最年轻指令所在缓冲条目中尚有未退出的指令,此时释放缓冲尾指针到该指令缓冲索引指针之间的条目,将缓冲尾指针指向最年轻退出指令的缓冲索引指针。如图9所示,有3条指令同时退出,最年轻指令携带的地址索引指针为8’b00111110,和压缩缓冲尾指针不同,第1个条目中的终止位置和最年轻指令偏移值也不相同,此时第0个条目可以回收,回收后尾指针指向第1个条目,因为其中尚有未退出指令;
4)最年轻指令的缓冲索引指针和压缩缓冲尾指针不重合,且指令Cache行内偏移位置和条目终止位置相同,说明缓冲尾指针到退出指令缓冲索引指针之间的条目均可以回收,一次释放多个压缩缓冲条目,同时将缓冲尾指针指向最年轻退出指令缓冲索引指针的下一个位置。如图10所示,有3条指令同时退出,最年轻指令携带的地址索引指针为8’b00111111,其Cache行偏移和所指条目终止位置相同,且所指条目已经关闭,此时条目0和条目1均可退出,退出后缓冲尾指针指向条目2。
当出现异常、分支预测失败、Load-Store乱序冲突等特殊事件时,涉及推测路径的状态回卷。此时回收引发误推测指令所携带的地址缓冲索引指针下一位置与地址压缩缓冲头指针之间的条目,包含以下两种情况:
1)若引发误推测指令所在的压缩缓冲条目整个被回卷,这种情况较为特殊。此时最年轻的指令处于压缩缓冲条目起始位置且其自身也要被清除,则该压缩缓冲条目也要回收,同时将压缩缓冲头指针指向引发误推测指令所写携带的缓冲指针处。如图11所示,发生自陷或者异常的指令携带的地址索引指针为8’b00111110,处于所指条目起始位置,其自身也要被清除,因此整个缓冲条目都要回收。此时条目1和条目2都要释放,释放后缓冲头指针指向条目1;
2)若引发误推测指令所在的压缩缓冲条目中还有其他正常指令,则将该压缩缓冲条目中的终止位置更新为引发误推测指令的Cache行内偏移值,将该条目置为关闭状态,等待退出,同时将压缩缓冲头指针指向该缓冲条目的顺序下一位置。如图12所示,发生预测失败或者异常的指令携带的地址索引指针为8’b00111110,由于其本身不被清除,所以将其对应的缓冲条目终止位置更新为8’b11110,同时将缓冲头指针指向条目2。
由于遇到跳转的分支指令会引发当前地址压缩缓冲条目的关闭,因此一些核心状态信息(例如返回地址栈指针、分支预测历史模式等)可以在地址压缩做备份,当预测失败时,使用分支指令携带的地址缓冲指针获取备份的信息做状态恢复。

Claims (5)

1.一种指令地址压缩存储方法,其特征在于,采用循环队列进行地址压缩管理,分别使用头尾指针控制指令地址的登记和退出;指令地址压缩的基本单位为一个指令缓存行,一个地址压缩缓冲条目存储有指令缓存行的基址、起始位置和终止位置;包括以下步骤:
每当取到一个新的指令缓存行时,分配一个地址压缩缓冲条目,并记录该缓存行基址和起始位置;
每当遇到缓存行末尾或者指令流改道时,登记该缓存行终止位置,并将头指针循环指向下一位置;
完成地址压缩的指令携带分配的地址压缩缓冲指针以及自身在缓存行的偏移值流向后续站台,当需要地址信息时,使用其携带的地址索引指针查询地址压缩缓冲,得到指令地址;
当一个地址压缩缓冲条目对应的所有指令都退出时,回收该地址压缩缓冲条目,同时更新尾指针。
2.根据权利要求1所述的指令地址压缩存储方法,其特征在于,所述使用头尾指针控制指令地址的登记时,登记方法如下:
(a)若当前头指针指向的压缩缓冲条目无效,则说明该指令缓存行首次登记地址,将本次取指地址中的缓存行基址、起始位置以及终止位置摘出,登记到头指针所指压缩缓冲条目中;其中,缓存行起始位置对应当前取指最年老指令的缓存行内偏移,终止位置对应当前取指最年轻指令的缓存行内偏移;
(b)若当前头指针指向的压缩缓冲条目有效,说明该指令缓存行已被登记,此时只需要更新该缓存行已登记的终止位置;
(c)若本次取指已到达缓存行末尾,则该缓存行自然终止;若本次取指遇到指令流改道,则该缓存行提前终止;终止时标记该压缩缓冲条目为关闭状态,等待退出,将压缩缓冲头指针循环加1,指向下一个登记的条目位置;
(d)若本次取指遇到分支预测跳转导致地址缓冲头指针所指条目提前终止,则将分支预测目标地址提前登记到压缩缓冲头指针所指的下一位置处,以便判断分支预测是否成功时获取分支预测目标地址。
3.根据权利要求1所述的指令地址压缩存储方法,其特征在于,所述使用头尾指针控制指令地址的退出时,包括如下方式:
(A)最年轻指令的缓冲索引指针和压缩缓冲尾指针重合,且指令缓存行内偏移位置和条目终止不同,说明该压缩缓冲条目中登记的指令尚未全部退出,不做任何操作;
(B)最年轻指令的缓冲索引指针和压缩缓冲尾指针重合,指令缓存行内偏移位置和条目终止位置相同,且缓冲索引指针所指条目已经处于关闭状态,说明该压缩缓冲条目中登记的指令已全部退出,则回收该压缩缓冲条目,将压缩缓冲尾指针循环加1,指向下一个要释放的条目位置;
(C)最年轻指令的缓冲索引指针和压缩缓冲尾指针不重合,且指令缓存行内偏移位置和条目终止位置不同,说明最年轻指令所在缓冲条目中尚有未退出的指令,则释放缓冲尾指针到该指令缓冲索引指针之间的条目,将缓冲尾指针指向最年轻退出指令的缓冲索引指针;
(D)最年轻指令的缓冲索引指针和压缩缓冲尾指针不重合,且指令缓存行内偏移位置和条目终止位置相同,说明缓冲尾指针到退出指令缓冲索引指针之间的条目均可以回收,则一次释放多个压缩缓冲条目,同时将缓冲尾指针指向最年轻退出指令缓冲索引指针的下一个位置。
4.根据权利要求1所述的指令地址压缩存储方法,其特征在于,当出现误推测情况时,涉及推测路径的状态回卷,根据引起误推测指令携带的地址索引指针回收误推测路径上已分配的地址压缩缓冲条目,同时更新地址压缩缓冲状态。
5.根据权利要求4所述的指令地址压缩存储方法,其特征在于,若引发误推测指令所在的压缩缓冲条目整个被回卷,该压缩缓冲条目要被回收,同时将压缩缓冲头指针指向引发误推测指令所写携带的缓冲指针处;若引发误推测指令所在的压缩缓冲条目中还有其他正常指令,则将该压缩缓冲条目中的终止位置更新为引发误推测指令的缓存行内偏移值,将该地址压缩缓冲条目置为关闭状态,等待退出,同时将压缩缓冲头指针指向该缓冲条目的顺序下一位置。
CN201910933053.1A 2019-09-29 2019-09-29 一种指令地址压缩存储方法 Active CN110737474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910933053.1A CN110737474B (zh) 2019-09-29 2019-09-29 一种指令地址压缩存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910933053.1A CN110737474B (zh) 2019-09-29 2019-09-29 一种指令地址压缩存储方法

Publications (2)

Publication Number Publication Date
CN110737474A CN110737474A (zh) 2020-01-31
CN110737474B true CN110737474B (zh) 2023-03-14

Family

ID=69268259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910933053.1A Active CN110737474B (zh) 2019-09-29 2019-09-29 一种指令地址压缩存储方法

Country Status (1)

Country Link
CN (1) CN110737474B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003511789A (ja) * 1999-10-14 2003-03-25 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 整列情報をキャッシュするための装置および方法
GB2516999B (en) * 2014-01-31 2015-07-22 Imagination Tech Ltd An improved return stack buffer
CN104391680B (zh) * 2014-11-25 2017-04-19 上海高性能集成电路设计中心 一种超标量微处理器中实现存储指令流水提交方法

Also Published As

Publication number Publication date
CN110737474A (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
US6898699B2 (en) Return address stack including speculative return address buffer with back pointers
US6697932B1 (en) System and method for early resolution of low confidence branches and safe data cache accesses
US7685410B2 (en) Redirect recovery cache that receives branch misprediction redirects and caches instructions to be dispatched in response to the redirects
US7062638B2 (en) Prediction of issued silent store operations for allowing subsequently issued loads to bypass unexecuted silent stores and confirming the bypass upon execution of the stores
US20040128448A1 (en) Apparatus for memory communication during runahead execution
US7155574B2 (en) Look ahead LRU array update scheme to minimize clobber in sequentially accessed memory
US20060149931A1 (en) Runahead execution in a central processing unit
US10013255B2 (en) Hardware-based run-time mitigation of conditional branches
KR100472346B1 (ko) 명령어 리플레이를 포함하는 프로세서 파이프라인
CN103383642A (zh) 用于从超前运行重新进入的设检查点的缓冲区
JP5301554B2 (ja) プロシージャリターンシーケンスを加速するための方法およびシステム
US7093111B2 (en) Recovery of global history vector in the event of a non-branch flush
CN114579312A (zh) 一种指令处理方法、处理器、芯片和电子设备
CN110737474B (zh) 一种指令地址压缩存储方法
US6898696B1 (en) Method and system for efficiently restoring a processor's execution state following an interrupt caused by an interruptible instruction
CN115629806B (zh) 一种处理指令的方法、系统、设备和存储介质
CN109634666B (zh) 一种预取机制下融合btb的方法
US10613866B2 (en) Method of detecting repetition of an out-of-order execution schedule, apparatus and computer-readable medium
US10620960B2 (en) Apparatus and method for performing branch prediction
US9823931B2 (en) Queued instruction re-dispatch after runahead
US7065635B1 (en) Method for handling condition code modifiers in an out-of-order multi-issue multi-stranded processor
US6550003B1 (en) Not reported jump buffer
US20240118900A1 (en) Arithmetic processing device and arithmetic processing method
CN115617402B (zh) 一种适用于通用处理器的解耦合分支预测方法及装置
US6490653B1 (en) Method and system for optimally issuing dependent instructions based on speculative L2 cache hit in a data processing system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant