一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种处理器预测访存相关性的实现方法与流程

2022-04-14 01:06:12 来源:中国专利 TAG:


1.本发明涉及处理器技术领域,尤其涉及一种处理器预测访存相关性的实现方法。


背景技术:

2.在处理器中,通常采用乱序处理提高指令执行的并行度,从而提高处理器的性能,但是乱序处理会带来相关性问题,特别是在访存指令中。通常在处理器流水线使用replay机制来解决相关性的问题,replay机制在检查到load-store等指令集时,会在依赖性失败的时候冲刷相关的部分流水线,然后让处理器的后端流水按照修正过的指令顺序执行之前使用错误数值的部分,由此,相比于冲刷整条流水线而言,可有效降低整个流水线的冲刷成本。
3.但是,replay机制部分流水线仍具有一定的时延成本,会造成处理器的性能损失,且其实现方式需要大量的硬件成本。比如现在大部分处理器,当接收到replay信号时,只需要恢复流水线后端包含dispatch、issue、execution和memory的部分,通常会在dispatch或issue阶段实现一个和发射槽容量基本相同的保留槽,用于在需要replay时恢复错误执行的指令并重新执行。可是在指令真正的完成提交前,保留槽的指令会一直保留,而保留槽的实现是需要大量的寄存器,大大的提高了整个流水线的硬件成本。


技术实现要素:

4.本发明所要解决的技术问题在于,提供一种处理器预测访存相关性的实现方法,能够减少lsu指令在发生访存相关性失败时回滚操作的概率,从而提高处理器的流水线执行效率。
5.为了解决上述技术问题,本发明第一方面公开了一种处理器预测访存相关性的实现方法,所述方法包括:为处理器的流水线中每个物理寄存器条目定义两个用于判断相关性的标志位;在发射流水线的唤醒阶段,根据预置的判断条件判断所述物理寄存器条目的状态并生成状态信息;将所述状态信息下发至流水线中的其他工作单元。
6.在一些实施方式中,所述为处理器的流水线中每个物理寄存器条目定义两个用于判断相关性的标志位,包括:基于两位格雷码在所述物理寄存器条目上添加两个标志位,其中,所述标志位包括可能使用的标志位和最近更新的标志位。
7.在一些实施方式中,所述标志位为可能使用的标志位,所述可能使用的标志位实现为:使用格雷码00定义所述可能使用的标志位状态为最近一段时间无使用;使用格雷码01定义所述可能使用的标志位状态为最近使用过当前物理寄存器且使用频率增加;使用格雷码11定义所述可能使用的标志位状态为使用当前物理寄存器频繁;使用格雷码10定义所述可能使用的标志位状态为最近使用过当前物理寄存器且使用频率下降。
8.在一些实施方式中,所述标志位为最近更新的标志位,所述最近更新的标志位实现为:使用格雷码00定义所述最近更新的标志位状态为最近一段时间无更新;使用格雷码01定义所述最近更新的标志位状态为最近更新过当前物理寄存器且更新频率增加;使用格
雷码11定义所述最近更新的标志位状态为更新当前物理寄存器频繁;使用格雷码10定义所述最近更新的标志位状态为最近更新过当前物理寄存器且更新频率下降。
9.在一些实施方式中,根据预置的判断条件判断所述物理寄存器条目的状态并生成状态信息,包括:获取每个物理寄存器条目的标志位;根据标志位的格雷码和预置的判断条件对所述物理寄存器条目进行逻辑关系检查;根据所述逻辑关系检查生成状态信息;其中,所述状态信息包括直接采用标志位状态信息、检查lsu指令流水线状态信息和检查store指令状态信息。
10.在一些实施方式中,所述根据标志位的格雷码和预置的判断条件对所述物理寄存器条目进行逻辑关系检查,包括:若可能使用的标志位的格雷码与最近更新的标志位的格雷码为和的逻辑关系,且所述可能使用的标志位的格雷码为00、01或10,所述最近更新的标志位的格雷码为00,则判断所述状态信息为直接采用标志位状态信息。
11.在一些实施方式中,根据标志位的格雷码和预置的判断条件对所述物理寄存器条目进行逻辑关系检查,包括:若可能使用的标志位的格雷码与最近更新的标志位的格雷码为和的逻辑关系,且所述可能使用的标志位的格雷码为01或10,所述最近更新的标志位的格雷码为01、11或10,则判断所述状态信息为检查store指令状态信息。
12.在一些实施方式中,根据标志位的格雷码和预置的判断条件对所述物理寄存器条目进行逻辑关系检查,包括:若可能使用的标志位的格雷码与最近更新的标志位的格雷码为和的逻辑关系,且所述可能使用的标志位的格雷码为11,所述最近更新的标志位的格雷码为11,则判断所述状态信息为检查lsu指令流水线状态信息。
13.本发明的第二个方面公开了一种处理器预测访存相关性的装置,所述装置包括: 存储有可执行程序代码的存储器;与所述存储器耦合的执行器;所述执行器调用所述存储器中存储的所述可执行程序代码,执行如上述的处理器预测访存相关性的实现方法。
14.本发明的第三个方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如上述的处理器预测访存相关性的实现方法。
15.与现有技术相比,本发明的有益效果在于:实施本发明是从访存指令依赖性的角度出发,对乱序执行的处理器进行改进的方法,通过对物理寄存器进行条目的优化更改,巧妙的将当前的寄存器状态利用格雷码得到更新状态下和使用状态下的标志位,再通过自主创新设计的判断条件,在流水线唤醒阶段就提前进行相关性检查,从而能够大大降低流水线replay指令的概率,而且能降低保留槽的硬件成本。仅通过较少的寄存器和逻辑判断就可以减少大容量的restore 指令的深度,且由于提前检查了访存指令的相关性,降低了其他单元使用错误寄存器值的概率,降低了流水线replay的概率,从而提高处理器的流水线执行效率。
附图说明
16.图1为本发明实施例公开的一种现有的处理器流水线处理结构示意图;图2为本发明实施例公开的一种处理器预测访存相关性的实现方法的流程示意图;图3为本发明实施例公开的一种标志位的状态机应用图;
图4为本发明实施例公开的又一种标志位的状态机应用图;图5为本发明实施例公开的一种应用处理器预测访存相关性的实现方法的应用场景示意图;图6为本发明实施例公开的一种处理器预测访存相关性的实现装置结构示意图。
具体实施方式
17.为了更好地理解和实施,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
19.在现有的处理器流水线中,特别是乱序处理的流水线,如图1所示,在该流水线上存在着多个物理寄存器,当接收到replay指令信号时,需要恢复流水线后端包含的dispatch、issue、execution(exu)和memory(mem)的部分,通常会在dispatch或issue阶段实现一个比发射槽容量差不多的保留槽queue,如果在exu中某个计算单元还在执行当前指令的时候,使用了某个物理寄存器的值,而lsu指令恰好执行完了使用同一个物理寄存器的store指令,那么此时lsu指令向mem阶段提交的物理寄存器值是错误的,即不是当前流水线所需要或最新的寄存器值。
20.本发明实施例在此基础上,公开了一种处理器预测访存相关性的实现方法,从访存指令依赖性的角度出发,对乱序执行的处理器进行改进的方法,通过对物理寄存器进行条目的优化更改,巧妙的将当前的寄存器状态利用格雷码得到更新状态下和使用状态下的标志位,再通过自主创新设计的判断条件,在流水线唤醒阶段就提前进行相关性检查,从而能够大大降低流水线replay指令的概率,而且能降低保留槽的硬件成本。仅通过较少的寄存器和逻辑判断就可以减少大容量的restore 指令的深度,且由于提前检查了访存指令的相关性,降低了其他单元使用错误寄存器值的概率,降低了流水线replay的概率,从而提高处理器的流水线执行效率。
21.实施例一请参阅图2,图2为本发明实施例公开的一种处理器预测访存相关性的实现方法的流程示意图。其中,该处理器预测访存相关性的实现方法可以应用在处理器中,对于该方法的具体应用本发明实施例不做限制。如图2所示,该处理器预测访存相关性的实现方法可以包括以下操作:101、为处理器的流水线中每个物理寄存器条目定义两个用于判断相关性的标志位。
22.为了降低整个处理器硬件的成本,发明人构思从物理寄存器入手,基于两位格雷码在每个物理寄存器条目上添加两个标志位,之所以采用格雷码是基于处理器的硬件资源和功耗的平衡需求。其中,标志位包括可能使用的标志位命名为mlu(most likely ues)和
最近更新的标志位命名为rud(recent update),示例性地,可以以如下的方式在物理寄存器条目组成:其中,reg表示为当前物理寄存器的具体内容,如tag或content等信息。需要说明的是,对于上述物理寄存器条目的组成方式本实施例并不对标志位的组成顺序进行设定。
23.具体地,可能使用的标志位实现为如下定义的表格:即使用格雷码00定义可能使用的标志位状态为最近一段时间无使用;使用格雷码01定义可能使用的标志位状态为最近使用过当前物理寄存器且使用频率增加;使用格雷码11定义可能使用的标志位状态为使用当前物理寄存器频繁;使用格雷码10定义可能使用的标志位状态为最近使用过当前物理寄存器且使用频率下降,通过格雷码对可能使用的标志位的状态定义可以组成为如图3所示得可能使用的标志位的状态机fsm。
24.具体地,最近更新的标志位实现为如下定义的表格:即使用格雷码01定义最近更新的标志位状态为最近更新过当前物理寄存器且更新频率增加;使用格雷码11定义最近更新的标志位状态为更新当前物理寄存器频繁;使用格雷码10定义最近更新的标志位状态为最近更新过当前物理寄存器且更新频率下降,通过格雷码对最近更新的标志位的状态定义可以组成为如图4所示得最近更新的标志位的状态
机fsm。
25.102、在发射流水线的唤醒阶段,根据预置的判断条件判断物理寄存器条目的状态并生成状态信息。
26.在利用标志位对物理寄存器的条目完成优化后,就可以根据预置的判断条件在发射流水线的唤醒阶段进行预先的相关性判断。首先,获取每个物理寄存器条目的标志位,可以利用之前的命名规则进行解压缩,之后再根据标志位的格雷码和预置的判断条件对物理寄存器条目进行逻辑关系检查,再根据逻辑关系检查生成状态信息,其中,状态信息包括直接采用标志位状态信息、检查lsu指令流水线状态信息和检查store指令状态信息。
27.具体地,预置的判断条件可以以如下表格的形成存储于处理器中的逻辑判断模块中:即若可能使用的标志位的格雷码与最近更新的标志位的格雷码为和的逻辑关系,且可能使用的标志位的格雷码为00、01或10,最近更新的标志位的格雷码为00,则判断状态信息为直接采用标志位状态信息。
28.若可能使用的标志位的格雷码与最近更新的标志位的格雷码为和的逻辑关系,且可能使用的标志位的格雷码为01或10,最近更新的标志位的格雷码为01、11或10,则判断状态信息为检查store指令状态信息。
29.若可能使用的标志位的格雷码与最近更新的标志位的格雷码为和的逻辑关系,且可能使用的标志位的格雷码为11,最近更新的标志位的格雷码为11,则判断状态信息为检查lsu指令流水线状态信息。
30.103、将状态信息下发至流水线中的其他工作单元。
31.之后将上述判断得到的状态信息下发到流水中的其他工作单元,其他单元就会结合状态信息的结果继续执行流水,而且这个状态信息的结果并不会像现有技术那样影响lsu指令在load-store依赖性检查的判断和结果输出。
32.具体地,为了更加详细的解释上述实施例,在此给出一种应用例如图5所示,为一种对rs1,rs2,rs3进行加法操作的流水线,首先,在处理器的发射流水线的唤醒阶段即如图所示的step1,会由赋予了上述判断条件的相关性判断逻辑模块同时检查3个物理寄存器的mlu和rud,然后得出判断结果,即直接采用标志位状态信息、检查lsu指令流水线状态信息和检查store指令状态信息如图所示的step2,随后相关性判断逻辑模块会将状态信息的结果通知到其他工作单元如图所示的step3。这样其他工作单元会结合这个状态信息的结果继续执行流水,从而使得该状态信息的结果不会影响lsu在load-store依赖性检查的判断和结果输出。
33.需要说明的是,本实施例的整体发明构思并未要完全取代 发射槽queue/restore queue等硬件的作用。而且利用相关性判断逻辑模块进行了再一次的相关性判断,所以能够减少restore queue的深度即硬件成本。
34.实施例二请参阅图6,图6是本发明实施例公开的一种处理器预测访存相关性的实现装置的结构示意图。其中,图6所描述的装置可以应用在处理器,对于该处理器预测访存相关性的实现装置的应用系统本发明实施例不做限制。如图6所示,该装置可以包括:存储有可执行程序代码的存储器601;与存储器601耦合的处理器602;处理器602调用存储器601中存储的可执行程序代码,用于执行实施例一所描述的处理器预测访存相关性的实现方法。
35.实施例三本发明实施例公开了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一所描述的处理器预测访存相关性的实现方法。
36.实施例四本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一中所描述的处理器预测访存相关性的实现方法。
37.以上所描述的实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
38.通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
39.最后应说明的是:本发明实施例公开的一种处理器预测访存相关性的实现方法所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献