CN113760366B - 一种条件跳转指令的处理方法、系统及相关装置 - Google Patents

一种条件跳转指令的处理方法、系统及相关装置 Download PDF

Info

Publication number
CN113760366B
CN113760366B CN202110875861.4A CN202110875861A CN113760366B CN 113760366 B CN113760366 B CN 113760366B CN 202110875861 A CN202110875861 A CN 202110875861A CN 113760366 B CN113760366 B CN 113760366B
Authority
CN
China
Prior art keywords
instruction
jump
conditional jump
address
cache
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
CN202110875861.4A
Other languages
English (en)
Other versions
CN113760366A (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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202110875861.4A priority Critical patent/CN113760366B/zh
Publication of CN113760366A publication Critical patent/CN113760366A/zh
Application granted granted Critical
Publication of CN113760366B publication Critical patent/CN113760366B/zh
Active 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control 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/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种条件跳转指令的处理方法、系统及相关装置
技术领域
本申请涉及电子设备通信领域,特别涉及一种条件跳转指令的处理方法、系统及相关装置。
背景技术
RISC-V(Reduced Instruction Set Computing-Five,第五代精简指令集),是在指令不断发展和成熟的基础上建立的全新指令集,具备了后发优势,结构清晰而简单,模块化的设计可根据需要随意搭配,灵活方便,可移植性强,具备完整的工具链。然而,大多数指令设计还是遵循传统的指令流水线,对于分支指令的处理采用动态预测的BHT、BTB模式。指令预测失败时,需要刷新流水线,重新取指,严重影响处理器效率。
发明内容
本申请的目的是提供一种条件跳转指令的处理方法、处理系统、计算机可读存储介质和电子设备,能够维持指令流水线,提高处理器的处理效率。
为解决上述技术问题,本申请提供一种条件跳转指令的处理方法,具体技术方案如下:
确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;
解析所述目标指令,得到指令类型;
若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;
在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;
在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存。
可选的,确定取指地址包括:
以复位地址为首地址,长度为当前PC地址加预设值。
可选的,根据所述取指地址从指令缓存中取出目标指令之后,还包括:
对所述目标指令执行对齐处理,并解析得到所述目标指令的完整指令。
可选的,根据预设跳转规则对所述条件跳转指令进行跳转之后,还包括:
输出所述条件跳转指令的预测地址、非预测地址和分支标记;
则所述将对应的指令信息发送至第二缓存包括:
按照所述非预测地址和所述分支标记将对应的指令信息发送至第二缓存。
可选的,所述第二缓存为FIFO缓存,并包含至少一个位宽的拓宽数据位;所述拓宽数据位作为数据使能位,用于区分前后两次有条件调整转指令对应的信息。
可选的,将对应的指令信息发送至第二缓存之后,还包括:
根据所述分支标记和所述非预测地址读取所述条件跳转指令至预设缓存,并反馈所述条件跳转指令对应的取指地址,以便重新处理所述条件跳转指令。
可选的,反馈所述条件跳转指令对应的取指地址之后,还包括:
判断所述预设跳转规则是否设置错误;
若否,继续流水线执行,刷新指令执行记分板的缓存,清除预取指令,并获取下一组预取指令;
若是,切换下一条发射指令为指令执行记分板的预取指令,并继续流水线执行。
本申请还提供一种条件跳转指令的处理系统,包括:
前端模块,用于确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;
指令扫描模块,用于解析所述目标指令,得到指令类型;若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;
分支控制模块,用于在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
本申请提供一种条件跳转指令的处理方法,包括:确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;解析所述目标指令,得到指令类型;若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存。
本申请通过预设跳转规则,即采用静态预测方法,在尽量提高预测成功率的同时,能够解决动态预测方法容易受算法、资源、编译器和应用适配影响的问题。同时,对条件跳转指令未正常跳转的非预测分支指令进行预取解析,使其成为流水线中的缓冲点,在静态预测失败,刷新冗余指令的同时,可以维持指令流水线继续执行,从而提高处理器的指令执行效率。
本申请还提供一种条件跳转指令的处理系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种条件跳转指令的处理方法的流程图;
图2为本申请实施例所提供的一种条件跳转指令的处理系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种条件跳转指令的处理方法的流程图,
S101:确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;
本步骤旨在执行取指,其取指地址为当前PC地址加预设值。若为初次取指,则当前PC地址可以为默认地址,若非初次取指,取指地址也可以为上一次取指后的地址。在此对于预设值不做具体限定,根据指令长度进行相应的设定。需要说明的是,每次取指长度最少为一个指令长度,也可以超过一个指令长度。例如可以采用64位取指位宽,可同时取出两条32位指令进行处理,而解码过程每次只能解析一条32位指令,因此能够实现指令的预取处理。
此外,从指令缓存中取出目标指令之后,可以对目标指令执行对齐处理,并解析得到所述目标指令的完整指令。因为存在16位压缩指令,通过执行对齐处理解压缩,以得到完整指令。但步骤S102中的目标指令默认指可解析的指令。
S102:解析所述目标指令,得到指令类型;
指令类型可以分为返回指令、无条件跳转指令和有条件跳转指令,本实施例仅针对有条件跳转指令进行优化。因此,对于返回指令和无条件跳转指令,可以仍沿用RAS和BTB的方式进行预测取指。
S103:若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;
对于有条件跳转指令,本实施例取消了BHT的动态预测,而通过预设跳转规则,即采用静态预测的方式,输出预测执行的指令地址进行取指。在此对于预设跳转规则不作具体限定,其可以为所有条件跳转指令全部跳转,或者全部不跳转,或者按照时间段、或者按照指令先后顺序等决定是否执行跳转。通过设置预设跳转规则,使得每个条件跳转指令是否发生跳转可控。
此外,作为优选的执行方式,在执行本步骤时,还可以同时输出非预测地址和分支标记。利用高速的取指带宽在正常取指过程中,随之取出N条基于非预测地址的指令,标记输出,N取值随处理器指令流水线级数而定,默认为预测失败时刷新流水线的级数。所谓非预测地址,指条件跳转指令未正常跳转时对应的地址。而分支标记,则用于对条件跳转指令进行标记,以区分哪些条件跳转指令在预设跳转规则下未正常跳转。
S104:在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;
S105:在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存。
步骤S104和S105需要对条件跳转指令进行分支控制,即区分正常执行的条件跳转指令和未正常跳转的条件跳转指令,需要确保无论是否正常跳转,均实现了流水线的正常运行。
若根据预设跳转规则对条件跳转指令进行跳转之后,还输出了条件跳转指令的预测地址、非预测地址和分支标记,则可以按照非预测地址和分支标记将对应的指令信息发送至第二缓存。在此对于第一缓存和第二缓存不作具体限定。优选的,第二缓存可以为FIFO缓存,并包含至少一个位宽的拓宽数据位;拓宽数据位作为数据使能位,用于区分前后两次有条件调整转指令对应的信息。
为了更清楚的描述本申请实施例所提供的一种条件跳转指令的处理方法,下文分阶段描述条件跳转指令的处理过程,下文实施例中所示的相关参数例如取值地址等均为本实施例提供的一种具体应用:
Frontend阶段对应步骤S101,其主要功能是取指。下一指令地址选择模块按优先级选定下一个取指地址,从指令缓存中取指。下一个取指地址从复位地址开始,默认为当前PC地址加8。本实施例采用64位取指位宽,可同时取出两条32位指令进行处理,而指令解码模块每次解析一条32位指令,因此能够实现指令的预取处理。因为16位压缩指令的存在,取出的指令需要经过对齐处理,解析出完整指令。解析出的指令同时发往指令扫描模块和分支控制模块:
指令扫描模块可以解析出指令类型。对于返回指令和无条件跳转指令,仍沿用RAS和BTB的方式进行预测取指;对于有条件跳转指令,本文取消了BHT的动态预测,在分支预取模块(Bra_Prefetch)中采用静态预测的方式,输出预测执行的指令地址进行取指,同时输出非预测地址和分支标记。下一指令地址选择模块利用高速的取指带宽,在正常取指过程中,随之取出N条基于非预测地址的指令,标记输出。
分支控制模块根据pref_flag标记位,将正常执行顺序的指令信息,发往指令队列缓存,作为取值与解码阶段的解耦模块;将预取的非预测指令信息,发往分支队列缓存。分支队列缓存是FIFO缓存,为了区分前后两次条件跳转指令对应的信息,本文拓展一位FIFO数据位宽作为使能位intv_flag(比如正常指令信息32位,FIFO数据位宽则为33位),置每次条件跳转的第一个预取指令对应的使能位为1,其他指令的使能位为0。
为保证指令流水线高效,本文设计了两条解码通路,分别对应指令队列和分支队列两个指令缓存队列,当缓存中有指令信息时,根据RISC-V指令特点解码,具体过程不做描述。
指令发射控制模块用于将指令发射到各个功能模块执行,并跟踪和推进指令执行,具体过程不做描述。其中,记分板是指令执行状态的维护和控制模块,其可以为追踪所有解码、派发、提交指令的存储器。记分板根据其缓存状态获取指令队列的指令解码信息,是指令流水线中常用的功能模块,正常跟踪和更新指令执行状态。此外,还包括Scoreboard_br模块,对应分支队列的指令信息,其中指令是预测错误时才会执行的预取指令,不是即时更新执行的,根据intv_flag标记位,可每次读取一组(上述N)指令信息到Scoreboard_br缓存,同时反馈其最后一条指令的取指地址到Frontend阶段。当功能模块执行条件跳转指令时,即可明确其静态预测是否正确。
若静态预测正确,则指令流水线正常进行,同时置bflush_flag标记位为高,刷新Scoreboard_br模块的缓存,清除已执行条件指令的预取指令信息,并获取下一组预取指令;
若静态预测错误,则置flush_flag标记位为高,切换下一条发射指令为Scoreboard_bra的预取指令,继续流水线执行,同时,刷新Frontend阶段的取指过程(包含指令队列和分支队列),刷新指令解码以及指令发射控制模块中未发射的指令相关信息,并从返回的sPC地址开始重新取指执行。当Scoreboard_bra中指令发射完成时,可返回指令队列对应的指令发射流程,此时,重新取指的指令流水线已执行到此处,同时,随着相应指令在功能模块执行完成和反馈提交,逐步更新Scoreboard_bra为新一组预取指令,从而实现了指令流水线的有序衔接。
下面对本申请实施例提供的一种条件跳转指令的处理系统进行介绍,下文描述的条件跳转指令的处理系统与上文描述的条件跳转指令的处理方法可相互对应参照。
参见图2,图2为本申请实施例所提供的一种条件跳转指令的处理系统结构示意图,本申请还提供一种条件跳转指令的处理系统,包括:
前端模块100,用于确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;
指令扫描模块200,用于解析所述目标指令,得到指令类型;若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;
分支控制模块300,用于在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存。
基于上述实施例,作为优选的实施例,前端模块100包括:
取值单元,用于以复位地址为首地址,长度为当前PC地址加预设值。
基于上述实施例,作为优选的实施例,还包括:
指令处理模块,用于对所述目标指令执行对齐处理,并解析得到所述目标指令的完整指令。
基于上述实施例,作为优选的实施例,还包括:
输出模块,用于输出所述条件跳转指令的预测地址、非预测地址和分支标记;
基于上述实施例,作为优选的实施例,还包括:
反馈模块,用于根据所述分支标记和所述非预测地址读取所述条件跳转指令至预设缓存,并反馈所述条件跳转指令对应的取指地址,以便重新处理所述条件跳转指令。
基于上述实施例,作为优选的实施例,还包括:
规则校验模块,用于判断所述预设跳转规则是否设置错误;若否,继续流水线执行,刷新指令执行记分板的缓存,清除预取指令,并获取下一组预取指令;若是,切换下一条发射指令为指令执行记分板的预取指令,并继续流水线执行。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (8)

1.一种条件跳转指令的处理方法,其特征在于,包括:
确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;
解析所述目标指令,得到指令类型;
若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;
在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;
在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存;
其中,根据预设跳转规则对所述条件跳转指令进行跳转之后,还包括:
输出所述条件跳转指令的预测地址、非预测地址和分支标记;
则所述将对应的指令信息发送至第二缓存包括:
按照所述非预测地址和所述分支标记将对应的指令信息发送至第二缓存;
其中,所述第二缓存为FIFO缓存,并包含至少一个位宽的拓宽数据位;所述拓宽数据位作为数据使能位,用于区分前后两次有条件调整转指令对应的信息。
2.根据权利要求1所述的处理方法,其特征在于,确定取指地址包括:
以复位地址为首地址,长度为当前PC地址加预设值。
3.根据权利要求1所述的处理方法,其特征在于,根据所述取指地址从指令缓存中取出目标指令之后,还包括:
对所述目标指令执行对齐处理,并解析得到所述目标指令的完整指令。
4.根据权利要求1所述的处理方法,其特征在于,将对应的指令信息发送至第二缓存之后,还包括:
根据所述分支标记和所述非预测地址读取所述条件跳转指令至预设缓存,并反馈所述条件跳转指令对应的取指地址,以便重新处理所述条件跳转指令。
5.根据权利要求4所述的处理方法,其特征在于,反馈所述条件跳转指令对应的取指地址之后,还包括:
判断所述预设跳转规则是否设置错误;
若否,继续流水线执行,刷新指令执行记分板的缓存,清除预取指令,并获取下一组预取指令;
若是,切换下一条发射指令为指令执行记分板的预取指令,并继续流水线执行。
6.一种条件跳转指令的处理系统,其特征在于,包括:
前端模块,用于确定取指地址,并根据所述取指地址从指令缓存中取出目标指令;
指令扫描模块,用于解析所述目标指令,得到指令类型;若所述指令类型为条件跳转指令,根据预设跳转规则对所述条件跳转指令进行跳转;
分支控制模块,用于在所述条件跳转指令按照所述预设跳转规则正常跳转时,将对应的指令信息发送至第一缓存;在所述条件跳转指令未按照所述预设跳转规则异常跳转时,将对应的指令信息发送至第二缓存;
其中,所述条件跳转指令的处理系统,还包括:
输出模块,用于输出所述条件跳转指令的预测地址、非预测地址和分支标记;
相应的,所述分支控制模块,具体用于按照所述非预测地址和所述分支标记将对应的指令信息发送至第二缓存;
其中,所述第二缓存为FIFO缓存,并包含至少一个位宽的拓宽数据位;所述拓宽数据位作为数据使能位,用于区分前后两次有条件调整转指令对应的信息。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的条件跳转指令的处理方法的步骤。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-5任一项所述的条件跳转指令的处理方法的步骤。
CN202110875861.4A 2021-07-30 2021-07-30 一种条件跳转指令的处理方法、系统及相关装置 Active CN113760366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110875861.4A CN113760366B (zh) 2021-07-30 2021-07-30 一种条件跳转指令的处理方法、系统及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110875861.4A CN113760366B (zh) 2021-07-30 2021-07-30 一种条件跳转指令的处理方法、系统及相关装置

Publications (2)

Publication Number Publication Date
CN113760366A CN113760366A (zh) 2021-12-07
CN113760366B true CN113760366B (zh) 2024-02-09

Family

ID=78788318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110875861.4A Active CN113760366B (zh) 2021-07-30 2021-07-30 一种条件跳转指令的处理方法、系统及相关装置

Country Status (1)

Country Link
CN (1) CN113760366B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528025B (zh) * 2022-02-25 2022-11-15 深圳市航顺芯片技术研发有限公司 指令处理方法、装置、微控制器及可读存储介质
CN115437695B (zh) * 2022-07-01 2024-01-23 无锡芯领域微电子有限公司 一种分支延时槽处理方法及装置
CN115225572B (zh) * 2022-07-13 2023-05-26 阿里巴巴(中国)有限公司 路由信息的处理方法、装置、电子设备和存储介质
CN116719561B (zh) * 2023-08-09 2023-10-31 芯砺智能科技(上海)有限公司 一种条件分支指令的处理系统和方法
CN117806979B (zh) * 2024-03-01 2024-05-17 芯来智融半导体科技(上海)有限公司 指令执行时间一致性测试方法、系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934704A (ja) * 1995-07-19 1997-02-07 Fujitsu Ltd 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ
US6230261B1 (en) * 1998-12-02 2001-05-08 I. P. First, L.L.C. Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type
US6330664B1 (en) * 1996-05-03 2001-12-11 Telefonaktiebolaget Lm Ericsson (Publ) Method relating to handling of conditional jumps in a multi-stage pipeline arrangement
CN104793921A (zh) * 2015-04-29 2015-07-22 深圳芯邦科技股份有限公司 一种指令分支预测方法与系统
CN109508536A (zh) * 2017-09-15 2019-03-22 华为技术有限公司 一种篡改程序流攻击的检测方法和装置
CN112230992A (zh) * 2019-07-15 2021-01-15 杭州中天微系统有限公司 一种包含分支预测循环的指令处理装置、处理器及其处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540792A (zh) * 2019-09-23 2021-03-23 阿里巴巴集团控股有限公司 指令处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934704A (ja) * 1995-07-19 1997-02-07 Fujitsu Ltd 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ
US6330664B1 (en) * 1996-05-03 2001-12-11 Telefonaktiebolaget Lm Ericsson (Publ) Method relating to handling of conditional jumps in a multi-stage pipeline arrangement
US6230261B1 (en) * 1998-12-02 2001-05-08 I. P. First, L.L.C. Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type
CN104793921A (zh) * 2015-04-29 2015-07-22 深圳芯邦科技股份有限公司 一种指令分支预测方法与系统
CN109508536A (zh) * 2017-09-15 2019-03-22 华为技术有限公司 一种篡改程序流攻击的检测方法和装置
CN112230992A (zh) * 2019-07-15 2021-01-15 杭州中天微系统有限公司 一种包含分支预测循环的指令处理装置、处理器及其处理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Value Based BTB Indexing for Indirect Jump Prediction;Farooq, M.U. 等;2010 IEEE 16th International Symposium on High Performance Computer Architecture (HPCA);全文 *
三级流水线RISC-V处理器设计与验证;折如义;李炳辉;姜佩贺;;电子技术应用(第05期);全文 *
基于跳跃访问控制的低功耗分支目标缓冲器设计;喻明艳;张祥建;杨兵;;计算机辅助设计与图形学学报(第04期);全文 *
嵌入式微处理器分支预测的设计与实现;陈海民;李峥;王瑞蛟;;计算机应用(第07期);全文 *

Also Published As

Publication number Publication date
CN113760366A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN113760366B (zh) 一种条件跳转指令的处理方法、系统及相关装置
KR101459536B1 (ko) 사전 통지 기법들을 사용하여 프로그램의 순차적 흐름을 변경하기 위한 방법들 및 장치
US10248570B2 (en) Methods, systems and apparatus for predicting the way of a set associative cache
JP4027620B2 (ja) 分岐予測装置、プロセッサ、及び分岐予測方法
US8943300B2 (en) Method and apparatus for generating return address predictions for implicit and explicit subroutine calls using predecode information
EP2864868B1 (en) Methods and apparatus to extend software branch target hints
US10353710B2 (en) Techniques for predicting a target address of an indirect branch instruction
US9122486B2 (en) Bimodal branch predictor encoded in a branch instruction
US10275249B1 (en) Method and apparatus for predicting end of loop
JP2019526873A (ja) 分岐ターゲットバッファの圧縮
KR20230025409A (ko) 명령어 주소 변환 및 명령어 선인출 엔진
CN102349051A (zh) 用于在数字处理器中执行跳转操作的方法和设备
US7913064B2 (en) Operation frame filtering, building, and execution
US7913068B2 (en) System and method for providing asynchronous dynamic millicode entry prediction
US11567771B2 (en) Method and apparatus for back end gather/scatter memory coalescing
US20030204705A1 (en) Prediction of branch instructions in a data processing apparatus
US11567767B2 (en) Method and apparatus for front end gather/scatter memory coalescing
US6862680B2 (en) Microprocessor processing specified instructions as operands
US8578134B1 (en) System and method for aligning change-of-flow instructions in an instruction buffer
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
US20100082948A1 (en) Channel command word pre-fetching apparatus
KR20080000944A (ko) 파이프라인 구조를 갖는 프로세서 및 그 제어방법

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