CN113254082B - 条件分支指令处理方法及系统、cpu、芯片 - Google Patents
条件分支指令处理方法及系统、cpu、芯片 Download PDFInfo
- Publication number
- CN113254082B CN113254082B CN202110699799.8A CN202110699799A CN113254082B CN 113254082 B CN113254082 B CN 113254082B CN 202110699799 A CN202110699799 A CN 202110699799A CN 113254082 B CN113254082 B CN 113254082B
- Authority
- CN
- China
- Prior art keywords
- instruction
- conditional branch
- branch instruction
- stage
- jump
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012790 confirmation Methods 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 239000002699 waste material Substances 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
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
本发明涉及处理器领域,提供一种条件分支指令处理方法及系统、CPU、芯片。所述条件分支指令处理方法包括:译码级对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令的目标地址;译码级在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令的目标地址发送至取指级;取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据。本发明基于流水线结构实现条件分支指令处理,无需同时取顺序地址和目标地址的数据,降低功耗浪费,条件分支不跳转时流水线也不会停顿,提升系统性能。
Description
技术领域
本发明涉及处理器领域,具体地涉及一种条件分支指令处理方法、一种条件分支指令处理系统、一种CPU、一种芯片以及一种存储介质。
背景技术
在CPU(central processing unit,中央处理器,简称CPU)的流水线中,条件分支指令之后的执行指令与条件分支指令之间存在控制相关性,需要在条件分支指令的条件码确认后才知道之后要执行的指令。在执行到分支指令时流水线会暂停,等待计算条件码的指令完成后确定分支指令是否跳转,来确定是取顺序地址还是分支目标地址,取回指令后,流水线才能继续执行指令,因此流水线中会出现气泡。
现有的处理器系统采用了分支预测技术,通过预测分支是否跳转,预取顺序地址或跳转目标地址的指令,如果跳转方向预测正确,可以消除气泡。在硬件设计中,但是,分支预测的方式需要设计一个分支预测处理单元的硬件结构,通常,分支预测处理单元中需要通过硬件逻辑记录分支指令的地址和跳转的历史信息,根据记录的地址识别分支指令识别到分支指令后,根据跳转历史信息决定是否跳转,分支预测处理单元的硬件结构相对复杂,分支处理的功耗较大。另外一种分支预测处理单元只记录分支指令的地址,不记录分支跳转的历史信息,根据地址识别到分支指令后,同时取顺序地址和目标地址的指令,根据分支的执行结果选择目标地址或顺序地址返回的数据到流水线执行。这种分支预测处理单元要求存储指令的系统有两个读端口,对访存的带宽要求较高,在确定分支是否跳转之前需要两个缓冲区分别存储顺序地址和目标地址取回的指令,硬件实现更复杂,功耗更大。
发明内容
本发明实施方式的目的是提供一种条件分支指令处理方法及系统,以解决上述的条件分支指令处理功耗大、系统硬件结构复杂的问题。
为了实现上述目的,本发明一方面提供一种条件分支指令处理方法,所述方法包括:
译码级对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令的目标地址;
译码级在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令的目标地址发送至取指级;
取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据。
进一步地,执行级在执行所述译码后的指令时,判断下一时钟周期是否可继续执行指令,在确认可继续执行的情况下,发送下一时钟周期可继续执行指令的确认信号到译码级。
进一步地,所述执行级在执行所述条件分支指令时判断条件分支指令是否发生跳转,在判断发生跳转时发送条件分支指令跳转确认信号到取指级。
进一步地,所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据,包括:取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令的目标地址返回的数据,清空预取的顺序地址的数据。
进一步地,所述方法还包括:取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,拒绝接收从所述条件分支指令的目标地址返回的数据,发送禁止写入的使能信号。
进一步地,所述方法还包括:取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,预取顺序地址的数据。
进一步地,所述方法还包括:取指级缓存预取的顺序地址的数据。
本发明另一方面提供一种条件分支指令处理系统,所述系统包括:
取指级,用于读取指令,将读取的指令发送到译码级;
译码级,用于对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令的目标地址;
执行级,用于执行译码后的指令;
所述译码级还用于在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令的目标地址发送至取指级;
所述取指级还用于在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据。
进一步地,所述执行级还用于在执行所述译码后的指令时,判断下一时钟周期是否可继续执行指令,在确认可继续执行的情况下,发送所述下一时钟周期可继续执行指令的确认信号到译码级。
进一步地,所述执行级还用于在执行所述条件分支指令时判断条件分支指令是否发生跳转,在判断发生跳转时发送所述条件分支指令跳转确认信号到取指级。
进一步地,所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据,包括:
所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令的目标地址返回的数据,清空预取的顺序地址的数据。
进一步地,所述取指级还用于在未接收到来自执行级的条件分支指令跳转确认信号的情况下,拒绝接收从所述条件分支指令的目标地址返回的数据,发送禁止写入的使能信号。
进一步地,所述取指级还用于在未接收到来自执行级的条件分支指令跳转确认信号的情况下,预取顺序地址的数据。
进一步地,所述取指级还用于缓存预取的顺序地址的数据。
本发明还提供一种CPU,所述CPU包括上述的条件分支指令处理系统。
本发明还提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行上述的条件分支指令处理方法,或者,所述芯片包括上述的条件分支指令处理系统。
本发明还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的条件分支指令处理方法。
本发明的条件分支指令处理方法及系统,在译码级解码出条件分支指令的目标地址且在接收到执行级反馈的下一周期可继续执行的确认信号时才会将该目标地址发送到取指级,即在确认执行级不忙的情况下才会向取指级请求预取条件分支的目标地址。在执行级判定条件分支指令发生跳转的情况下,取指级才会接收从目标地址返回的数据,这种条件下预取的目标地址数据是有效的,不会造成功耗浪费;若条件分支指令不跳转,取指级只是在错误分支上进行一次取指请求,并未接收目标地址返回的数据,错误分支上的指令数据不会进入流水线,降低功耗浪费,而且本方法实现条件分支指令处理的逻辑简单,硬件上容易实现。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明实施例提供的条件分支指令处理方法的流程图;
图2是本发明实施例提供的条件分支指令处理系统的框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明实施方式提供一种提供条件分支指令处理方法,所述方法包括:译码级对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令的目标地址;译码级在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令的目标地址发送至取指级;取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据。其中,执行级在执行所述译码后的指令时,判断下一时钟周期是否可继续执行指令,在确认可继续执行的情况下,发送下一时钟周期可继续执行指令的确认信号到译码级。所述执行级在执行所述条件分支指令时判断条件分支指令是否发生跳转,在判断发生跳转时发送条件分支指令跳转确认信号到取指级。取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令的目标地址返回的数据,清空预取的顺序地址的数据。取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,拒绝接收从所述条件分支指令的目标地址返回的数据,发送禁止写入的使能信号。而且,取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,预取顺序地址的数据,并缓存预取的顺序地址的数据。
图1是本发明实施例提供的条件分支指令处理方法的流程图。如图1所示,本实施例的条件分支指令处理方法包括以下步骤:取指级读取指令后,译码级解码出指令中的条件分支指令并计算其目标地址;执行级确定下一周期是否可继续执行条件分支指令,若是,则向译码级反馈确认信号(即通过译码级监测执行级在下一时钟周期是否可以执行指令)。译码级发送条件分支指令的目标地址到取指级,取指级将该目标地址发送到总线。执行级在执行所述条件分支指令时判断是否发生跳转,若发生跳转,执行级将跳转确认信号反馈到取指级,取指级接收从所述目标地址返回的数据并清空缓存的顺序地址的数据;若不跳转,执行级不发送跳转确认信号,取指级未接收到跳转确认信号的情况下拒绝接收从所述目标地址返回的数据,取指级预取顺序地址的数据。在上述过程中,如果流水线停顿不能执行指令(例如执行模块忙),则将按顺序取指取回的指令数据缓存,待流水线可以继续执行时将缓存的指令数据取出送到流水线执行。
本发明实施方式提供的条件分支指令处理方法,在译码级解码出条件分支指令的目标地址且在接收到执行级反馈的下一周期可继续执行的确认信号时才会将该目标地址发送到取指级,即在确认执行级不忙的情况下才会向取指级请求预取条件分支的目标地址。在执行级判定条件分支指令发生跳转的情况下,取指级才会接收从目标地址返回的数据,这种条件下预取的目标地址数据是有效的,不会造成功耗浪费;若条件分支指令不跳转,取指级只是在错误分支上进行一次取指请求,并未接收目标地址返回的数据,错误分支上的指令数据不会进入流水线,降低功耗浪费。而且,本方法基于流水线结构,实现条件分支指令处理的逻辑简单,硬件上容易实现。
此外,本条件分支指令处理方法无需同时取顺序地址和目标地址的数据,若条件分支不跳转,则将缓存的指令发到流水线上执行,流水线不会停顿,掩盖预取指令带来的气泡,提升系统性能。
本发明实施方式还提供一种条件分支指令处理系统,所述系统包括:取指级,用于读取指令,将读取的指令发送到译码级;译码级,用于对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令的目标地址;执行级,用于执行译码后的指令。所述译码级还用于在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令的目标地址发送至取指级;所述取指级还用于在接收到来自执行级的条件分支指令跳转确认信号的情况下,预取所述条件分支指令的目标地址的数据。
进一步地,所述执行级还用于在执行所述译码后的指令时,判断下一时钟周期是否可继续执行指令,在确认可继续执行的情况下,发送所述下一时钟周期可继续执行指令的确认信号到译码级。所述执行级还用于在执行所述条件分支指令时判断条件分支指令是否发生跳转,在判断发生跳转时发送所述条件分支指令跳转确认信号到取指级。
进一步地,所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令的目标地址返回的数据,清空预取的顺序地址的数据。所述取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,拒绝接收从所述条件分支指令的目标地址返回的数据,发送禁止写入的使能信号。进一步地,所述取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,预取顺序地址的数据,并缓存预取的顺序地址的数据。
图2是本发明实施例提供的条件分支指令处理系统的框图。如图2所示,本实施例的条件分支指令处理系统包括存储模块、取指模块(即取指级)、译码模块(即译码级)及执行模块(即执行级)。所述存储模块用于存储指令和数据,通过总线与所述取指模块进行通信。所述取指模块用于读取指令并发送读取到的指令。所述译码模块用于对所述取指模块发送的指令进行译码并解码出所述指令中的条件分支指令,计算得到所述条件分支指令的目标地址,以及发送译码后的指令。所述执行模块用于执行所述译码后的指令并向所述译码模块反馈下一周期可继续执行的确认信号,在执行所述译码后的指令中的条件分支指令时判断是否发生跳转,以及在确认发生跳转时将跳转确认信号反馈到所述取指模块。所述译码模块还用于在接收到所述执行模块反馈的下一周期可继续执行的确认信号时将所述条件分支指令的目标地址发送到所述取指模块;所述取指模块还用于在接收到所述条件分支指令的目标地址且接收到所述跳转确认信号时预取所述目标地址的数据。
本实施例中,所述取指模块包括仲裁单元和一个缓存单元;所述仲裁单元用于判定是否预取所述条件分支指令的目标地址的数据;所述缓存单元用于在未预取所述条件分支指令的目标地址的数据时缓存预取的顺序地址的数据。具体为,所述仲裁单元在取指模块接收到所述条件分支指令的目标地址时判定发送所述目标地址,在取指模块接收到所述执行模块反馈的跳转确认信号时判定接收从所述目标地址返回的数据并清空所述缓存单元中缓存的顺序地址的数据;在所述取指模块下一周期未接收到所述执行模块反馈的跳转确认信号时判定拒绝接收从所述目标地址返回的数据,并发送禁止写入的使能信号到所述缓存单元。
如图2所示,取指模块从存储模块取指令并将指令发送给译码模块。取指模块接收到译码模块解码出的条件分支指令的目标地址后,仲裁单元在下一时钟周期判断是否发生跳转,若发生跳转说明预取与跳转的方向一致,接收总线返回的目标地址的数据,清空缓存单元中缓存的数据;若不跳转则不接收或丢掉总线返回的目标地址的数据,缓冲单元缓存顺序地址的数据。译码模块对指令进行译码若解码出条件分支指令,则计算条件分支指令的目标地址,监测执行模块在下一时钟周期是否能执行该条件分支指令,若可以则将条件分支指令的目标地址发送给取指模块。执行模块根据译码模块发送的操作数和控制信号执行条件分支指令并确认是否发生跳转,若发生跳转将跳转确认信号发送到取指模块;若下一时钟周期可以执行条件分支指令,发送下一周期可继续执行的信号到译码模块,若下一时钟周期不能执行条件分支指令(例如有其它多周期指令正在执行占用了执行模块的硬件资源),发送下一周期不可继续执行的信号到译码模块。在没有条件分支指令的情况下,取指模块顺序取指,如果流水线停顿不能执行指令(例如执行模块忙),则将按顺序取指取回的指令数据存入缓存单元,待流水线可以继续执行时将缓存单元中缓存的指令取出送到流水线执行。
本实施例中,条件分支指令在流水线的执行过程为:译码模块解码出条件分支指令时计算条件分支指令跳转的目标地址,并监测执行模块在下一时钟周期是否可以执行指令,若可以则将目标地址发送到取指模块。取指模块将目标地址发送到总线同时记录顺序地址的下一个地址。执行模块在执行该条件分支指令时判断该条件分支指令是否发生跳转,若确认发生跳转(说明预取的指令是有效的),则将跳转确认信号发送给取指模块。取指模块接收总线返回的目标地址的数据,同时清空缓存单元的指令,将目标地址的下一个地址发送到总线。在不跳转(说明预取的指令是无效的)的情况,将缓存单元写使能设为0(禁止写入),缓存单元不接收预取回来的指令数据,取指模块将记录的顺序地址的下一个地址发送给存储模块;如果此时缓存单元中缓存有指令,则将缓存的指令发到流水线上执行,无需等待存储模块返回顺序地址的指令就可重启流水线,流水线不会停顿,避免了预取目标地址造成的气泡。
本实施例提供的条件分支指令处理系统,译码模块解码出条件分支指令的目标地址且在接收到执行模块反馈的下一周期可继续执行的确认信号时才会将该目标地址发送到取指模块,即在确认执行模块不忙的情况下才会向取指模块请求预取条件分支的目标地址。在执行模块判定条件分支指令发生跳转的情况下,取指模块才会接收从目标地址返回的数据,这种条件下预取的目标地址数据是有效的,不会造成功耗浪费;若条件分支指令不跳转,取指模块只是在错误分支上进行一次取指请求,并未接收目标地址返回的数据,错误分支上的指令数据不会进入流水线,降低功耗浪费。而且,本系统基于流水线结构,无需分支预测处理单元的硬件结构即可实现条件分支指令处理,逻辑简单,硬件上容易实现。
此外,本实施例的条件分支指令处理系统,无需同时取顺序地址和目标地址的数据,仅采用一个缓存单元缓存取回的顺序地址的数据,节省空间,降低功耗;若条件分支不跳转,则将缓存单元中缓存的指令发到流水线上执行,流水线不会停顿,掩盖预取指令带来的气泡,提升系统性能。
本发明实施方式还提供一种CPU,所述CPU包括上述的条件分支指令处理系统。
本发明实施方式还提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行上述的条件分支指令处理方法,或者,所述芯片包括上述的条件分支指令处理系统。
本发明实施方式还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的条件分支指令处理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、系统和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (15)
1.一种条件分支指令处理方法,其特征在于,所述方法包括:
译码级对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令跳转的目标地址;
译码级在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令跳转的目标地址发送至取指级;
取指级在接收到所述条件分支指令跳转的目标地址时预取该目标地址的数据,在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令跳转的目标地址预取的数据;
其中,执行级在执行所述译码后的指令时,判断下一时钟周期是否可继续执行指令,在确认可继续执行的情况下,发送下一时钟周期可继续执行指令的确认信号到译码级。
2.根据权利要求1所述的条件分支指令处理方法,其特征在于,所述执行级在执行所述条件分支指令时判断条件分支指令是否发生跳转,在判断发生跳转时发送条件分支指令跳转确认信号到取指级。
3.根据权利要求1所述的条件分支指令处理方法,其特征在于,所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令跳转的目标地址预取的数据,包括:
取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令跳转的目标地址返回的数据,清空预取的顺序地址的数据。
4.根据权利要求1所述的条件分支指令处理方法,其特征在于,所述方法还包括:
取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,拒绝接收从所述条件分支指令跳转的目标地址返回的数据,发送禁止写入的使能信号。
5.根据权利要求4所述的条件分支指令处理方法,其特征在于,所述方法还包括:
取指级在未接收到来自执行级的条件分支指令跳转确认信号的情况下,预取顺序地址的数据。
6.根据权利要求5所述的条件分支指令处理方法,其特征在于,所述方法还包括:取指级缓存预取的顺序地址的数据。
7.一种条件分支指令处理系统,其特征在于,所述系统包括:
取指级,用于读取指令,将读取的指令发送到译码级;
译码级,用于对接收自取指级的指令进行译码,并将译码后的指令发送至执行级,其中译码后的指令包含条件分支指令以及条件分支指令跳转的目标地址;
执行级,用于执行译码后的指令;
所述译码级还用于在接收到反馈自执行级的下一时钟周期可继续执行指令的确认信号的情况下,将条件分支指令跳转的目标地址发送至取指级;
所述取指级还用于在接收到所述条件分支指令跳转的目标地址时预取该目标地址的数据,在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令跳转的目标地址预取的数据;
所述执行级还用于在执行所述译码后的指令时,判断下一时钟周期是否可继续执行指令,在确认可继续执行的情况下,发送所述下一时钟周期可继续执行指令的确认信号到译码级。
8.根据权利要求7所述的条件分支指令处理系统,其特征在于,所述执行级还用于在执行所述条件分支指令时判断条件分支指令是否发生跳转,在判断发生跳转时发送所述条件分支指令跳转确认信号到取指级。
9.根据权利要求8所述的条件分支指令处理系统,其特征在于,所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令跳转的目标地址预取的数据,包括:
所述取指级在接收到来自执行级的条件分支指令跳转确认信号的情况下,接收从所述条件分支指令跳转的目标地址返回的数据,清空预取的顺序地址的数据。
10.根据权利要求8所述的条件分支指令处理系统,其特征在于,所述取指级还用于在未接收到来自执行级的条件分支指令跳转确认信号的情况下,拒绝接收从所述条件分支指令跳转的目标地址返回的数据,发送禁止写入的使能信号。
11.根据权利要求10所述的条件分支指令处理系统,其特征在于,所述取指级还用于在未接收到来自执行级的条件分支指令跳转确认信号的情况下,预取顺序地址的数据。
12.根据权利要求11所述的条件分支指令处理系统,其特征在于,所述取指级还用于缓存预取的顺序地址的数据。
13.一种CPU,其特征在于,所述CPU包括权利要求7-12中任一项权利要求所述的条件分支指令处理系统。
14.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如权利要求1-6中任一项权利要求所述的条件分支指令处理方法,或者,所述芯片包括权利要求7-12中任一项权利要求所述的条件分支指令处理系统。
15.一种存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被执行时实现权利要求1-6中任一项权利要求所述的条件分支指令处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699799.8A CN113254082B (zh) | 2021-06-23 | 2021-06-23 | 条件分支指令处理方法及系统、cpu、芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699799.8A CN113254082B (zh) | 2021-06-23 | 2021-06-23 | 条件分支指令处理方法及系统、cpu、芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254082A CN113254082A (zh) | 2021-08-13 |
CN113254082B true CN113254082B (zh) | 2021-10-08 |
Family
ID=77189282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110699799.8A Active CN113254082B (zh) | 2021-06-23 | 2021-06-23 | 条件分支指令处理方法及系统、cpu、芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254082B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946540B (zh) * | 2021-10-09 | 2024-03-22 | 深圳市创成微电子有限公司 | 一种dsp处理器及其判断跳转指令的处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7114063B1 (en) * | 2000-12-01 | 2006-09-26 | Unisys Corporation | Condition indicator for use by a conditional branch instruction |
CN102508641A (zh) * | 2011-11-04 | 2012-06-20 | 杭州中天微系统有限公司 | 低成本的程序计数器数据传输装置 |
CN105718241A (zh) * | 2016-01-18 | 2016-06-29 | 北京时代民芯科技有限公司 | 一种基于sparc v8体系结构的分类式混合分支预测系统 |
CN112256633A (zh) * | 2020-10-14 | 2021-01-22 | 浙江大学 | 一种指令驱动的商用密码专用处理器系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2402510A (en) * | 2003-06-05 | 2004-12-08 | Advanced Risc Mach Ltd | Predication instruction within a data processing system |
-
2021
- 2021-06-23 CN CN202110699799.8A patent/CN113254082B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7114063B1 (en) * | 2000-12-01 | 2006-09-26 | Unisys Corporation | Condition indicator for use by a conditional branch instruction |
CN102508641A (zh) * | 2011-11-04 | 2012-06-20 | 杭州中天微系统有限公司 | 低成本的程序计数器数据传输装置 |
CN105718241A (zh) * | 2016-01-18 | 2016-06-29 | 北京时代民芯科技有限公司 | 一种基于sparc v8体系结构的分类式混合分支预测系统 |
CN112256633A (zh) * | 2020-10-14 | 2021-01-22 | 浙江大学 | 一种指令驱动的商用密码专用处理器系统 |
Non-Patent Citations (2)
Title |
---|
基于VHDL故障注入的处理器敏感性分析;吴振平等;《微电子学与计算机》;20121031(第10期);第51-54页 * |
面向Boom处理器的Gem5模拟器适配与误差分析;高维;《中国优秀硕士学位论文全文数据库 信息科技辑》;20210115(第01期);第9-28页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254082A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6978350B2 (en) | Methods and apparatus for improving throughput of cache-based embedded processors | |
JP5323936B2 (ja) | 推論的割込みベクトルプリフェッチのための装置および方法 | |
JP5137948B2 (ja) | ローカル及びグローバル分岐予測情報の格納 | |
CN100407134C (zh) | 处置在基于跟踪缓存的处理器中的异常指令的系统及方法 | |
CN100487642C (zh) | D缓存缺失预测和调度的方法和装置 | |
CN105074655A (zh) | 用于取消对循环的数据预取请求的方法和设备 | |
US20160357559A1 (en) | Systems and methods for load canceling in a processor that is connected to an external interconnect fabric | |
US8850123B2 (en) | Cache prefetch learning | |
US9547358B2 (en) | Branch prediction power reduction | |
US9552032B2 (en) | Branch prediction power reduction | |
TW201337572A (zh) | 推測式快取修改技術 | |
CN113254082B (zh) | 条件分支指令处理方法及系统、cpu、芯片 | |
US7051195B2 (en) | Method of optimization of CPU and chipset performance by support of optional reads by CPU and chipset | |
US9817763B2 (en) | Method of establishing pre-fetch control information from an executable code and an associated NVM controller, a device, a processor system and computer program products | |
CN116991479B (zh) | 超长指令字缓存标签体的前瞻执行-旁路纠错方法及装置 | |
US7555609B2 (en) | Systems and method for improved data retrieval from memory on behalf of bus masters | |
CN112559048B (zh) | 一种指令处理装置、处理器及其处理方法 | |
CN116048627B (zh) | 指令缓冲方法、装置、处理器、电子设备及可读存储介质 | |
CN117311814A (zh) | 取指单元、指令读取方法及芯片 | |
CN116483743A (zh) | 数据高速缓存预取装置、方法及处理器 | |
JP2008015668A (ja) | タスク管理装置 | |
CN111782272B (zh) | 一种vliw处理器中重复程序的执行控制方法及装置 | |
CN110727463B (zh) | 一种基于动态信用的零级指令循环缓冲预取方法及装置 | |
JPS6240555A (ja) | プリフエツチ制御方式 | |
CN115167921A (zh) | 根据分支预测结果减少指令存储器访问次数的方法与系统 |
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 |