指令执行方法、共享缓存、计算机系统及存储介质与流程

文档序号:33399469发布日期:2023-03-08 15:38阅读:81来源:国知局
指令执行方法、共享缓存、计算机系统及存储介质与流程

1.本技术涉及计算机技术领域,具体而言,本技术涉及一种指令执行方法、共享缓存、计算机系统及计算机可读存储介质。


背景技术:

2.在精简指令集计算机(reduced instruction set computer

five,risc-v)指令集中,读取保留(load-reserved,lr)指令和条件存储(store-conditional,sc)指令是对内存的独占访问指令,一般需要在高速缓存器(cache)以及双倍速率同步动态随机存储器(ddr)中设计监视器来实现这一指令对的功能。
3.由于sc指令有返回值,在现有方案的设计中,sc指令在早于自己的指令全部提交之后才发到cache中,因此会导致sc指令返回值写入物理寄存器的时间推后,从而影响sc指令之后的与sc指令写后读(raw)相关的指令,进而影响到中央处理器(central processing unit,简称cpu)的性能。
4.因此,为了提高cpu的性能,如何缩短sc指令提交时间是亟待解决的问题。


技术实现要素:

5.本技术提供了一种指令执行方法、共享缓存、计算机系统及计算机可读存储介质,旨在解决现有技术中的至少一个技术问题。
6.根据本技术实施例的第一方面,提供了一种指令执行方法,所述方法应用于共享缓存,所述共享缓存包括独占监视器和状态机,所述方法包括:
7.所述独占监视器响应来自处理器核的特定指令和表征所述特定指令执行状态的信号,确定所述特定指令的执行方式,其中,所述信号包括表征所述特定指令是否确定执行的第一信号和表征所述特定指令是否被取消的第二信号;
8.所述状态机响应所述特定指令的执行方式为推测执行,确定获得所述共享缓存的独占权限,以及响应所述特定指令的执行状态为确定执行,执行所述特定指令对应的针对标签和数据的写操作;
9.所述独占监视器响应所述特定指令执行完毕后向所述处理器核返回指令完成信号。
10.在一个可能的实现方式中,所述独占监视器通过如下方式之一确定所述特定指令的执行状态:
11.在接收到表征所述特定指令的执行方式为推测执行的第一信号和表征所述特定指令不被取消的第二信号时,确定所述特定指令的执行状态为推测执行;
12.在接收到表征所述特定指令的执行方式为确定执行的第一信号和表征所述特定指令不被取消的第二信号时,确定所述特定指令的执行状态为确定执行。
13.在又一个可能的实现方式中,所述方法还包括:
14.若所述监视器在向所述处理器核返回指令完成信号之前,接收到表征所述特定指
令的执行状态为推测执行的第一信号,确定所述特定指令处于推测执行状态,并向所述处理器核返回表征所述特定指令未执行完毕的第三信号。
15.在另一个可能的实现方式中,所述状态机响应所述特定指令的执行状态为确定执行,执行所述特定指令对应的针对标签和数据的写操作,包括:
16.所述状态机将所述特定指令对应的数据通过旁路方式写入所述共享缓存的存储单元中。
17.在另一个可能的实现方式中,所述方法还包括:
18.所述独占监视器在接收到表征所述特定指令的执行方式为推测执行的第一信号和表征所述特定指令被取消的第二信号时,确定由所述处理器核重新执行所述特定指令。
19.在另一个可能的实现方式中,所述方法还包括:
20.所述状态机响应所述特定指令的执行方式为确定执行,执行所述特定指令对应的标签和数据的写操作,并将所述特定指令对应的数据通过在数据缓存区排队的方式写入所述共享缓存的存储单元中。
21.在另一个可能的实现方式中,所述共享缓存为二级高速缓存,所述特定指令为sc指令。
22.根据本技术实施例的第二方面,提供了一种共享缓存,包括:独占监视器和状态机,其中,
23.独占监视器,其用于响应来自处理器核的特定指令和表征所述特定指令执行状态的信号,确定所述特定指令的执行方式,以及响应所述特定指令执行完毕后向所述处理器核返回指令完成信号,
24.其中,所述信号包括表征所述特定指令的执行方式的第一信号和表征所述特定指令是否被取消的第二信号;
25.状态机,其用于响应所述特定指令的执行状态为推测执行,确定获取所述共享缓存的独占权限,以及响应所述特定指令的执行状态为确定执行,则执行所述特定指令对应的针对标签和数据的写操作。
26.在一个可能的实现方式中,所述独占监视器,其通过如下方式之一确定所述特定指令的执行状态:
27.在接收到表征所述特定指令的执行方式为推测执行的第一信号和表征所述特定指令不被取消的第二信号时,确定所述特定指令的执行状态为推测执行;
28.在接收到表征所述特定指令的执行方式为确定执行的第一信号和表征所述特定指令不被取消的第二信号时,确定所述特定指令的执行状态为确定执行。
29.在另一个可能的实现方式中,所述独占监视器,其还用于在向所述处理器核返回指令完成信号之前,若接收到表征所述特定指令的执行状态为推测执行的第一信号,则确定所述特定指令处于推测执行状态,向所述处理器核返回表征所述特定指令未执行完毕的第三信号。
30.在另一个可能的实现方式中,所述独占监视器,其还用于在接收到表征所述特定指令的执行方式为推测执行的第一信号和表征所述特定指令被取消的第二信号时,确定由所述处理器核重新执行所述特定指令。
31.在另一个可能的实现方式中,所述状态机,其用于响应所述特定指令的执行方式
为确定执行,在执行所述特定指令对应的针对标签和数据的写操作的过程中,将所述特定指令对应的数据通过旁路方式写入所述共享缓存的存储单元中。
32.在另一个可能的实现方式中,所述状态机,其还用于响应所述特定指令的执行方式为确定执行,则执行所述特定指令对应的针对标签和数据的写操作,并将所述特定指令对应的数据通过在数据缓存区排队的方式写入所述共享缓存的存储单元中。
33.在另一个可能的实现方式中,所述共享缓存为二级高速缓存,所述特定指令为sc指令。
34.根据本技术实施例的第三方面,提供了一种计算机系统,包括:
35.处理器;
36.存储器,耦合于处理器,且在其中存储有计算机可执行指令,用于在由所述处理器执行时实现上述第一方面所示的指令执行方法的步骤。
37.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现上述第一方面所示的指令执行方法的步骤。
38.本技术实施例提供的技术方案带来的有益效果是:
39.通过独占监视器响应来自处理器核的特定指令和表征特定指令执行状态的信号,确定特定指令的执行方式,以及响应该特定指令执行完毕后向处理器核返回指令完成信号,状态机响应特定指令的执行方式为推测执行,确定获得共享缓存的独占权限,以及响应特定指令的执行状态为确定执行时,执行该特定指令对应的标签和数据的写操作。利用特定指令推测执行的方法提前获得共享缓存的独占权限,在特定指令没有被取消的场景下,能加快特定指令的提交时间,进而提高cpu的性能。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
41.图1为本技术实施例提供的一种共享缓存的结构示意图;
42.图2为本技术实施例提供的一种指令执行方法的流程示意图;
43.图3为本技术另一实施例提供的一种指令执行方法的流程示意图;
44.图4为本技术另一实施例提供的一种指令执行方法的流程示意图;
45.图5为本技术另一实施例提供的一种指令执行方法的流程示意图;
46.图6为本技术实施例提供的一种计算机系统的结构示意图。
具体实施方式
47.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
48.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
49.risc-v指令集中lr/sc指令需要通过在cache中设计一个监视器(exclusive monitor)来实现。一个最简单的流程包括:处理器核(core)下发lr指令,lr指令进入cache
时要在监视器中记录该指令的地址,并且将cache中的数据返回给core。如果lr指令的返回值和预期的值相等,那么core会下发sc指令来修改该地址对应的数据。sc指令到达cache时会先检查监视器中是否还标记该地址,如果是,则sc执行成功,此时core拿到内存(memory)的独占访问权限。否则,sc指令执行失败,core重新发起lr/sc指令。
50.例如:lr指令的返回值和预期的值均为0,则core下发sc指令将其修改为1,当sc指令到达cache时,若检查到监视器中标记了该地址,表征该地址可以被锁定;否则,core重新发起lr/sc指令。
51.如果lr指令的返回值和预期的值不相等,core重新发起lr/sc指令,直到lr指令的返回值和预期的值相等。
52.由于sc指令有返回值,在现有方案的设计中,sc指令在早于自己的指令全部提交之后才发到cache中,因此会导致sc指令返回值写入物理寄存器的时间推后,从而影响sc指令之后的与sc指令有写后读(raw)相关的指令,进而影响到中央处理器(central processing unit,简称cpu)的性能。
53.因此,为了提高cup的性能,如何缩短sc指令提交时间是亟待解决的问题。
54.针对现有技术中存在的上述技术问题,本技术实施例提供了一种指令执行方法、装置及计算机可读存储介质。
55.在本技术的方案中,sc指令无需等待前面指令全部提交,提前发给cache。如果在sc指令提交之前没有被其他core的监听(snoop)请求打断,以及没有出现中断或异常,那么sc指令提前执行的结果就是正确的。如果sc指令提交之前遇到了来自其他core针对该地址的snoop或者发生了中断或异常,那么就给cache发送取消(flush)信号,表示当前sc指令的执行结果是错误的,然后core重新发起sc指令给cache。
56.上述设计方案在sc指令没有被flush的情况下,能够大大提前sc指令提交的时间,能够提高cpu的性能。
57.下面,首先、对本技术实施例的相关技术进行描述。
58.1、cache
59.cache是位于cpu和dram(dynamic random access memory,动态随机存取存储器)主存之间的缓存存储器,其规模较小,但速度很高,通常由sram(static random access memory,静态存储器)组成。cache的功能是提高cpu数据输入输出的速率。cpu的通用寄存器的速度远高于主存,当cpu直接从主存中存取数据时要等待一定时间周期,而cache则可以保存cpu刚用过或循环使用的一部分数据,如果cpu需要再次使用该部分数据时可从cache中直接调用,这样就避免了重复存取数据,减少了cpu的等待时间,因而提高了系统的效率。
60.多级cache包括l1 cache(一级高速缓存器)和l2 cache(二级高速缓存器),以及l3 cache(三级高速缓存器),其中,l1 cache主要是集成在cpu内部,l2 cache集成在主板上或是cpu上。l1 cache包括l1i-cache(一级指令高速缓存器)和l1 d-cache(一级数据高速缓存器),其中,l1 i-cache负责存储指令,l1 d-cache负责存储数据。两者的区别是l1 d-cache中的数据可以写回,l1 i-cache中的数据是只读的。
61.2、risc-v指令集
62.risc-v是一个基于精简指令集(risc,reduced instruction set computer)原则的开源指令集架构。与大多数指令集相比,risc-v指令集的使用不受限制,其设计使其适用
于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。
63.riscv指令集中有两条特殊指令:lr(load-reserved)和sc(store-conditional),这两条指令用来实现不同进程之间的同步。lr指令从一个地址读取数据,数据大小可以为一个word或者两个word,并将存入目的寄存器,同时在这个地址范围上设置一个保留位。sc指令将数据写入一个地址,数据大小可以为一个word或者两个word,同时检查访问的地址范围上是不是有设置保留位,若没有,则返回非0的数据表示失败,若有,则返回0数据表示成功。若一个进程的sc指令成功了,它就可以执行接下来的程序,若sc失败了,则要重新执行lr/sc指令,直到sc成功才能执行接下来的程序。这就是不同进程间的抢锁机制。
64.其次,下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
65.图1为本技术实施例提供了一种共享缓存。如图1所示,共享缓存包括:独占监视器301和状态机302。其中,
66.独占监视器301,其用于响应来自处理器核的特定指令和表征特定指令执行状态的信号,确定特定指令的执行方式,以及响应特定指令执行完毕后向处理器核返回指令完成信号,其中,信号包括表征特定指令的执行方式的第一信号和表征特定指令是否被取消的第二信号。
67.状态机302,其用于响应独占监视器301确定的特定指令的执行状态为推测执行,确定获取共享缓存的独占权限,以及响应特定指令的执行状态为确定执行,则执行特定指令对应的针对标签和数据的写操作。
68.在一个可能的实现方式中,独占监视器301,其还用于在接收到表征特定指令的执行方式为推测执行的第一信号和表征特定指令被取消的第二信号时,确定由处理器核重新执行特定指令。
69.在另一个可能的实现方式中,独占监视器301,其还用于在向处理器核返回指令完成信号之前,若接收到表征特定指令的执行状态为推测执行的第一信号,则确定特定指令处于推测执行状态,向处理器核返回表征特定指令未执行完毕的第三信号。
70.在另一个可能的实现方式中,状态机302,其响应特定指令的执行方式为确定执行,在执行特定指令对应的针对标签和数据的写操作的过程中,将特定指令对应的数据通过旁路方式写入共享缓存的存储单元中。
71.在另一个可能的实现方式中,独占监视器301,其通过如下方式之一确定特定指令的执行状态:
72.在接收到表征特定指令的执行方式为推测执行的第一信号和表征特定指令不被取消的第二信号时,确定特定指令的执行状态为推测执行;
73.在接收到表征特定指令的执行方式为确定执行的第一信号和表征特定指令不被取消的第二信号时,确定特定指令的执行状态为确定执行。
74.在另一个可能的实现方式中,状态机302,其还用于响应特定指令的执行方式为确定执行,则执行特定指令对应的针对标签和数据的写操作,并将特定指令对应的数据通过在数据缓存区排队的方式写入共享缓存的存储单元中。
75.本技术实施例的装置可执行本技术实施例提供的指令执行方法,其实现原理和能够达到的效果相类似,本技术各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见下文中的指令执行方法中的描述,此处不再赘述。
76.图2为本技术实施例提供的一种指令执行方法的流程示意图。该方法应用于共享缓存,该共享缓存包括:独占监视器和状态机。如图2所示的方法包括:
77.s1、独占监视器响应来自处理器核的特定指令和表征该特定指令执行状态的信号,确定特定指令的执行方式,其中,信号包括表征特定指令是否确定执行的第一信号和表征特定指令是否被取消的第二信号。
78.s2、状态机响应特定指令的执行方式为推测执行,确定获得共享缓存的独占权限,以及响应特定指令的执行状态为确定执行,执行特定指令对应的针对标签和数据的写操作。
79.s3、独占监视器响应特定指令执行完毕后向处理器核返回指令完成信号。
80.具体的,在该实施例中,若独占监视器确定的特定指令的执行方式为推测执行时,状态机先获得共享缓存的独占权限,然后在确定的特定指令的执行方式为确定执行时,执行该指令对应的标签和数据的写操作,并在该指令执行完毕后由独占监视器向处理器核返回指令完成信号,由于利用特定指令推测执行的方法提前获得共享缓存的独占权限,因此可以加快特定指令的提交时间,从而提高cpu的性能。
81.在一个可能的实现方式中,独占监视器通过如下方式之一确定特定指令的执行状态:
82.在接收到表征特定指令的执行方式为推测执行的第一信号和表征特定指令不被取消的第二信号时,确定特定指令的执行状态为推测执行;
83.在接收到表征特定指令的执行方式为确定执行的第一信号和表征特定指令不被取消的第二信号时,确定特定指令的执行状态为确定执行。
84.在又一个可能的实现方式中,上述方法还可以包括:
85.若监视器在向处理器核返回指令完成信号之前,接收到表征特定指令的执行状态为推测执行的第一信号,确定特定指令处于推测执行状态,并向处理器核返回表征特定指令未执行完毕的第三信号。
86.在另一个可能的实现方式中,步骤s2中状态机响应特定指令的执行状态为确定执行,执行特定指令对应的针对标签和数据的写操作,包括:状态机将特定指令对应的数据通过旁路方式写入共享缓存的存储单元中。
87.具体的,在该实施例中,若独占监视器确定的特定指令的执行方式为推测执行时,状态机先获得共享缓存的独占权限,然后在确定的特定指令的执行方式为确定执行时,执行该指令对应的标签和数据的写操作,在将该指令对应的数据写入共享缓存的存储单元时,通过旁路方式写入,无需在数据缓存区排队。
88.在另一个可能的实现方式中,上述方法还可以包括:
89.独占监视器在接收到表征特定指令的执行方式为推测执行的第一信号和表征特定指令被取消的第二信号时,确定由处理器核重新执行特定指令。
90.在另一个可能的实现方式中,上述方法还可以包括:
91.状态机响应特定指令的执行方式为确定执行,执行特定指令对应的标签和数据的写操作,并将特定指令对应的数据通过在数据缓存区排队的方式写入共享缓存的存储单元中。
92.具体的,在该实施例中,若独占监视器确定的特定指令的执行方式为确定执行时,状态机就执行该指令对应的标签和数据的写操作,在将该指令对应的数据写入共享缓存的存储单元时,通过在数据缓存区排队的方式写入。
93.下面以共享缓存为二级高速缓存器l2 cache,特定指令为sc指令为例,结合图3至图5对本技术实施例提供的一种指令执行方法的技术方案进行详细的描述。
94.图3为本技术实施例提供的一种指令执行方法的流程示意图。该方法可以应用于二级高速缓存器l2 cache,该l2 cache包括独占监视器和状态机。如图3所示的方法包括:
95.s101、独占监视器基于来自处理器核的sc指令和表征sc指令执行状态的信号,确定sc指令的执行方式。
96.其中,信号包括表征sc指令是否确定执行的第一信号和表征sc指令是否被取消的第二信号。
97.s102、若状态机获取到sc指令的执行方式为推测执行,确定获得l2cache的独占权限。
98.s103、若独占监视器接收到表征sc指令确定执行的第一信号和表征sc指令没有被取消的第二信号,确定执行sc指令。
99.s104、若状态机获取到sc指令确定执行,则执行该sc指令对应的标签和数据的写操作,并在sc指令执行完毕后由独占监视器向处理器核返回指令完成信号。
100.在该实施例中,如果独占监视器基于接收到表征sc指令是否确定执行的第一信号和表征sc指令是否被取消的第二信号,确定出sc指令的执行方式为推测执行,当状态机获取到sc指令的执行方式为推测执行时,确定获得l2 cache的独占权限。然后,如果独占监视器接收到表征sc指令确定执行的第一信号和表征sc指令没有被取消的第二信号,确定执行sc指令,并在状态机获取到sc指令确定执行时,执行该sc指令对应的标签和数据的写操作,并在sc指令执行完毕后由独占监视器向处理器核返回指令完成信号。该方案利用sc指令推测执行的方法提前获得l2 cache的独占权限,在sc指令没有被取消的场景下,能加快sc指令的提交时间,进而提高cpu的性能。
101.需要说明的是,在该实施例中,第一信号可以记为proceed,若proceed=1,即:第一信号为高电平,则表征sc指令确定执行,若proceed=0,即:第一信号为低电平,则表征sc指令推测执行。第二信号可以记为flush,若flush=1,即:第二信号为高电平,则表征sc指令被取消,若flush=0,即:第二信号为低电平,则表征sc指令没有被取消。
102.在一些实施例中,步骤s101具体可以包括:若独占监视器接收到表征推测执行sc指令的第一信号和表征sc指令没有被取消的第二信号,确定sc指令的执行方式为推测执行;若独占监视器接收到表征sc指令确定执行的第一信号和表征sc指令没有被取消的第二信号,确定sc指令的执行方式为确定执行。
103.具体的,在该实施例中,如果第一信号proceed=0,第二信号flush=0,表示sc指令是推测执行;如果第一信号proceed=1,第二信号flush=0,表示sc指令已经在处理器核core中提交,确定执行。
104.本技术实施例中提供了一种可能的实现方式,如图4所示,在s102之后,上述方法还包括:
105.s105、若独占监视器接收到表征推测执行sc指令的第一信号和表征sc指令被取消的第二信号,确定由处理器核重新执行sc指令。
106.具体的,在该实施例中,如果独占监视器基于接收到表征sc指令是否确定执行的第一信号和表征sc指令是否被取消的第二信号,确定出sc指令的执行方式为推测执行,当状态机获取到sc指令的执行方式为推测执行时,确定获得l2 cache的独占权限。然后,如果独占监视器接收到表征推测执行sc指令的第一信号和表征sc指令被取消的第二信号,说明sc指令在提交之前被取消了,处理器核需要重新执行sc指令。
107.在一种可能的实现方案中,方法还包括:
108.s106(图中未示出)、独占监视器向处理器核返回sc指令反馈信号。
109.具体的,在该实施例中,如果独占监视器基于接收到表征sc指令是否确定执行的第一信号和表征sc指令是否被取消的第二信号,确定出sc指令的执行方式为推测执行,当状态机获取到sc指令的执行方式为推测执行时,确定获得l2 cache的独占权限,并由独占监视器向处理器核返回sc指令反馈信号,例如:返回resp valid=1,以表明sc指令反馈信息有效。还可以返回表征sc指令是否执行成功的第四信号,例如,将第四信号可以记为fail,如果sc指令执行成功,则fail=0,即:第四信号为低电平,如果sc指令执行失败,则fail=1,即:第四信号为高电平。
110.需要说明的是,当resp_valid=1时,complete可能是0或1,fail也可能是0或1。
111.1、如果fail=1,那么一定是失败了,处理器核需要重新发起lr指令,进而执行sc指令。
112.2、如果fail=0,complete=0,表示sc指令“没有失败”,处理器核可以继续“推测执行”后续的指令。
113.3、如果fail=0,complete=1,表示sc指令执行成功。这种情况对处理器核来说,是最终的,确定成功的。
114.然后,如果独占监视器接收到表征sc指令确定执行的第一信号和表征sc指令没有被取消的第二信号,确定执行sc指令,并在状态机获取到sc指令确定执行时,执行该sc指令对应的标签和数据的写操作,并在sc指令执行完毕后由独占监视器向处理器核返回指令完成信号。同时,还可以返回sc指令反馈信号,以及表征sc指令是否执行成功的第四信号。
115.如果独占监视器接收到表征推测执行sc指令的第一信号和表征sc指令被取消的第二信号,说明sc指令在提交之前被取消了,处理器核需要重新执行sc指令。同时,可以向处理器核返回sc指令反馈信号,以及表征sc指令是否执行成功的第四信号。
116.需要说明的是,sc指令执行失败的条件可以参见指令手册中的规定,为了描述的简洁,在此不再赘述。
117.本技术实施例中提供了一种可能的实现方式,方法还包括:
118.s107(图中未示出)、若独占监视器在向处理器核返回sc指令反馈信号之前,接收到的信号包括表征推测执行sc指令且sc指令没有被取消,确定sc指令处于推测执行状态,并向处理器核返回表征sc指令未执行完毕的第三信号。
119.具体的,在该实施例中,第三信号可以记为complete,若complete=1,即:第三信
号为高电平,则表征sc指令执行完毕,若complete=0,即:第三信号为低电平,则表征sc指令没有执行完毕。如果独占监视器基于接收到表征sc指令是否确定执行的第一信号和表征sc指令是否被取消的第二信号,确定出sc指令的执行方式为推测执行,当状态机获取到sc指令的执行方式为推测执行时,确定获得l2 cache的独占权限。如果独占监视器在向处理器核返回sc指令反馈信号之前,proceed和flush一直为0,说明sc指令一直处于推测执行的状态,此时complete=0,表示sc指令并没有真正执行完毕。
120.本技术实施例中提供了一种可能的实现方式,如图5,s104中,在执行所述sc指令对应的标签和数据的写操作的过程中将sc指令对应的数据通过旁路bypass方式写入l2 cache的存储单元中。
121.具体的,在该实施例中,如果sc指令从推测执行开始到确定执行的过程中,由于在推测执行阶段,sc data可能没准备好,需要等到sc指令提交后,sc data才会发到l2 cache中。此时bypass必须为1,这样sc data写到存储单元的过程中就不需要进数据缓冲区(data buffer)中排队,避免出现死锁。
122.本技术实施例中提供了另一种可能的实现方式,如图5所示,方法还包括:
123.s108、若状态机获取到sc指令的执行方式为确定执行,确定执行sc指令对应的标签和数据的写操作,并将sc指令对应的数据通过在数据缓存区排队的方式写入l2 cache的存储单元中。
124.具体的,在该实施例中,如果独占监视器基于接收到表征sc指令是否确定执行的第一信号和表征sc指令是否被取消的第二信号,确定出sc指令的执行方式为确定执行,则执行sc指令对应的标签和数据的写操作,并将sc指令对应的数据通过在数据缓存区排队的方式写入l2 cache的存储单元中。
125.例如:sc valid(表示当前请求为sc指令)指令到达l2 cache中的独占监视器(exclusive monitor),此时proceed=1,flush=0,表示sc指令已经在core中提交,确定执行。独占监视器返回resp valid=1,如果sc指令指示失败,则fail=1,否则,fail=0。由于sc指令确定执行,此时complete=1。由于sc指令确定执行,sc data和sc valid同时到达l2 cache中,此时数据按照普通存储数据(store data)来处理即可,bypass=0(表示当前sc data不需要bypass),即:当sc指令没有推测执行时就不需要bypass。
126.以上是sc指令没有提前执行的过程,这种场景是最理想的状态,cpu流水线没有阻塞。
127.而采用本技术实施例的方案,如果sc指令之前有其他指令没有顺利提交,那么排在后面sc指令就可以不必等待提交可以提前发给l2 cache。
128.sc指令推测执行的具体流程如下:
129.1、sc valid指令到达l2 cache中的独占监视器,此时proceed=0,flush=0,表示sc指令是推测执行。
130.2、独占监视器返回resp valid=1,如果sc指令fail,则fail=1。否则,fail=0。如果在返回resp valid之前proceed和flush一直为0,说明sc指令一直处于推测执行的状态,此时complete=0,表示sc指令并没有真正执行完毕。
131.3、如果随后独占监视器接收到proceed=1,flush=0,说明sc指令在提交之前没有被flush,确定执行。然后,独占监视器再次返回resp_valid=1,fali=0/1,complete=
1。
132.4、如果独占监视器接收到proceed=0,flush=1,说明sc指令在提交之前被flush掉了,core需要重新执行lr/sc。独占监视器返回resp_valid=1,fali=0/1,complete=1。
133.综上,本技术实施例中的方案,利用sc指令推测执行的方法提前获得l2 cache的独占权限,在sc指令没有被取消的场景下,能加快sc指令的提交时间,进而提高cpu的性能。
134.本技术实施例中还提供了一种计算机系统,包括:
135.处理器;
136.存储器,耦合于处理器,且在其中存储有计算机可执行指令,用于在由所述处理器执行时实现本技术实施例提供的指令执行方法的步骤,与现有技术相比可实现:通过独占监视器响应来自处理器核的特定指令和表征特定指令执行状态的信号,确定特定指令的执行方式,以及响应该特定指令执行完毕后向处理器核返回指令完成信号,状态机响应特定指令的执行方式为推测执行,确定获得共享缓存的独占权限,以及响应特定指令的执行状态为确定执行时,执行该特定指令对应的标签和数据的写操作。利用特定指令推测执行的方法提前获得共享缓存的独占权限,在特定指令没有被取消的场景下,能加快特定指令的提交时间,进而提高cpu的性能。
137.本技术实施例中提供的一种计算机系统,如图6所示该计算机系统400包括:处理器401和存储器403。其中,处理器401和存储器403相连,如通过总线402相连。
138.处理器401可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
139.总线402可包括一通路,在上述组件之间传送信息。总线402可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
140.存储器403可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
141.存储器403用于存储执行本技术实施例的计算机程序,并由处理器401来控制执行。处理器401用于执行存储器403中存储的计算机程序,以实现前述方法实施例所示的步骤。
142.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
143.处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
144.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
145.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
146.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1