一种发送清除报文的方法及装置与流程

专利查询5月前  46


一种发送清除报文的方法及装置
1.本技术要求于2020年09月07日提交国家知识产权局、申请号为202010930707.8、发明名称为“一种发送清除报文的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术实施例涉及计算机领域,尤其涉及一种发送清除报文的方法及装置。


背景技术:

3.目前,处理器核清除(flush)三级缓存中的数据时,可以每次清除一个缓存线(cacheline)。如果处理器核清除多个缓存线,由于处理器核无法并发清除报文而导致清除时间过长,并且耗费较多的处理器的资源。例如,假设主存的一个页的大小(page size)为4千字节(kilobyte,kb),一个缓存线的大小为64字节(byte,b),一个页由64个64b的缓存线组成。处理器核清除主存的一个页的数据时,要执行64条连续的清除指令,向三级缓存发送64个连续的清除报文。除此之外,处理器核也提供了一次性清除完所有三级缓存中缓存线的指令。但是,清除所有三级缓存中的缓存线可能导致清除其他处理器核需要的数据,影响其他进程的性能。因此,在处理器核清除三级缓存中的缓存线时如何提高清除缓存线的效率,以及降低占用处理器核的资源是一个亟待解决的问题。


技术实现要素:

4.本技术提供了一种发送清除报文的方法及装置,解决了处理器核清除三级缓存中的缓存线时,如何提高清除缓存线的效率,以及降低占用处理器内存资源的问题。
5.第一方面,本技术提供一种发送清除报文的方法,包括:请求设备采用广播方式向一组高速缓冲存储器发送清除报文,并接收来自所述一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。所述清除报文携带的物理地址的信息用于指示清除至少两个缓存线。一组高速缓冲存储器包括至少一个高速缓冲存储器。其中,请求设备包含但不限于以下设备:处理器核,外设,其他与总线相连接的设备。
6.相对于传统技术,请求设备每次发送一个清除报文清除一个缓存线的方案,本实施例提供的发送清除报文的方法,请求设备发送一个清除报文清除至少两个缓存线。在清除相同数量的缓存线的情况下,采用广播方式发送清除报文,减少了发送清除报文的次数,从而将原本串行处理的清除任务变成了并行处理,提高了清除效率,有效地降低了清除缓存线所占用处理器内部的资源。
7.相对于传统技术,请求设备清除所有三级缓存中的缓存线的方案,本实施例提供的发送清除报文的方法,请求设备发送的清除报文可以指示清除任意数量的缓存线。从而,避免清除其他核或设备正在使用的数据,避免影响其他进程的性能,提高了清除缓存线的准确度。
8.在一种可能的实现方式中,清除报文用于指示清除连续的至少两个缓存线。
9.其中,清除报文包括用于指示一段连续物理地址空间的物理地址的信息,至少两个缓存线包括一段连续物理地址空间的起始物理地址所在的缓存线到一段连续物理地址空间的结束物理地址所在的缓存线。可选的,连续物理地址空间为映射到主存的物理地址空间,清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且清除的连续物理地址空间为以缓存线的大小为单位的空间。
10.在另一种可能的实现方式中,请求设备以页的大小粒度清除高速缓冲存储器中的缓存线。清除报文可以指示清除与页内的所有连续的缓存线,从而一个或多个高速缓冲存储器根据清除报文的指示清除一个页包含的缓存线。
11.例如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址,清除报文还包括页类型,页类型用于描述页的大小。
12.又如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址和页的结束物理地址。
13.又如,一段连续物理地址空间的物理地址的信息包括至少一个页中的缓存线的物理地址,清除报文还包括每个页的页类型,页类型用于描述页的大小。
14.在另一种可能的实现方式中,请求设备以任意个数的缓存线的粒度清除高速缓冲存储器中的缓存线。清除报文可以指示清除一个页内的连续的缓存线或者多个页内的连续的缓存线。从而一个或多个高速缓冲存储器根据清除报文的指示清除一个页内的连续的缓存线或者多个页内的连续的缓存线。
15.又如,一段连续物理地址空间的物理地址的信息包括一个缓存线的物理地址和缓存线的个数。
16.又如,一段连续物理地址空间的物理地址的信息包括一个物理地址和立即数,立即数指示一个物理地址中低位的个数。
17.在另一种可能的实现方式中,清除报文用于指示清除非连续的至少两个缓存线。
18.第二方面,本技术提供一种清除缓存的方法,包括:高速缓冲存储器接收来自请求设备的清除报文,清除清除报文指示的至少两个缓存线中属于高速缓冲存储器管辖范围内的缓存线;并向请求设备发送清除完成报文。清除报文用于指示清除至少两个缓存线。其中,请求设备包含但不限于以下设备:处理器核,外设,其他与总线相连接的设备。
19.相对于传统技术,高速缓冲存储器每次清除一个缓存线的方案,本实施例提供的清除缓存的方法,根据清除指令清除任意数量的缓存线。从而,将原本串行处理的清除任务变成了并行处理,提高了清除效率,有效地降低了清除缓存线所占用处理器内部的资源。
20.相对于传统技术,高速缓冲存储器清除所有三级缓存中的缓存线的方案,本实施例提供的清除缓存的方法,根据清除指令清除任意数量的缓存线。从而,避免清除其他核或设备正在使用的数据,避免影响其他进程的性能,提高了清除缓存线的准确度。
21.在一种可能的实现方式中,清除报文用于指示清除连续的至少两个缓存线。
22.其中,清除报文包括用于指示一段连续物理地址空间的物理地址的信息,至少两个缓存线包括一段连续物理地址空间的起始物理地址所在的缓存线到一段连续物理地址空间的结束物理地址所在的缓存线。可选的,连续物理地址空间为映射到主存的物理地址空间,清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且清除的连续物理地址空间为以缓存线的大小为单位的空间。
23.例如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址,清除报文还包括页类型,页类型用于描述页的大小。
24.又如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址和页的结束物理地址。
25.又如,一段连续物理地址空间的物理地址的信息包括至少一个页中的缓存线的物理地址,清除报文还包括每个页的页类型,页类型用于描述页的大小。
26.又如,一段连续物理地址空间的物理地址的信息包括一个缓存线的物理地址和缓存线的个数。
27.又如,一段连续物理地址空间的物理地址的信息包括一个物理地址和立即数,立即数指示一个物理地址中低位的个数。
28.在另一种可能的实现方式中,清除报文用于指示清除非连续的至少两个缓存线。
29.其中,清除报文清除的所有缓存线存储于一组高速缓冲存储器,一组高速缓冲存储器包含至少一个高速缓冲存储器,高速缓冲存储器是一组高速缓冲存储器中任意一个高速缓冲存储器。可选的,一组高速缓冲存储器包含的高速缓冲存储器属于非一致性内存访问(non-uniform memory access,numa)系统中一个或多个numa节点。
30.第三方面,本技术提供一种发送清除报文的装置,有益效果可以参见第一方面的描述此处不再赘述。所述发送清除报文的装置具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述发送清除报文的装置包括:发送单元和接收单元。所述发送单元,用于采用广播方式向一组高速缓冲存储器发送清除报文,清除报文携带的物理地址的信息用于指示清除至少两个缓存线,一组高速缓冲存储器包括至少一个高速缓冲存储器。所述接收单元,用于接收来自一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。
31.在一种可能的实现方式中,清除报文用于指示清除连续的至少两个缓存线。
32.其中,清除报文包括用于指示一段连续物理地址空间的物理地址的信息,至少两个缓存线包括一段连续物理地址空间的起始物理地址所在的缓存线到一段连续物理地址空间的结束物理地址所在的缓存线。可选的,连续物理地址空间为映射到主存的物理地址空间,清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且清除的连续物理地址空间为以缓存线的大小为单位的空间。
33.例如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址,清除报文还包括页类型,页类型用于描述页的大小。
34.又如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址和页的结束物理地址。
35.又如,一段连续物理地址空间的物理地址的信息包括至少一个页中的缓存线的物理地址,清除报文还包括每个页的页类型,页类型用于描述页的大小。
36.又如,一段连续物理地址空间的物理地址的信息包括一个缓存线的物理地址和缓存线的个数。
37.又如,一段连续物理地址空间的物理地址的信息包括一个物理地址和立即数,立即数指示一个物理地址中低位的个数。
38.在另一种可能的实现方式中,清除报文用于指示清除非连续的至少两个缓存线。
39.这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
40.第四方面,本技术提供一种清除缓存的装置,有益效果可以参见第二方面的描述此处不再赘述。所述发送清除报文的装置具有实现上述第二方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述发送清除报文的装置包括:发送单元、处理单元和接收单元。所述接收单元,用于接收来自请求设备的清除报文,清除报文用于指示清除至少两个缓存线。所述处理单元,用于清除清除报文指示的至少两个缓存线中属于高速缓冲存储器管辖范围内的缓存线。所述发送单元,用于向请求设备发送清除完成报文。
41.在一种可能的实现方式中,清除报文用于指示清除连续的至少两个缓存线。
42.其中,清除报文包括用于指示一段连续物理地址空间的物理地址的信息,至少两个缓存线包括一段连续物理地址空间的起始物理地址所在的缓存线到一段连续物理地址空间的结束物理地址所在的缓存线。可选的,连续物理地址空间为映射到主存的物理地址空间,清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且清除的连续物理地址空间为以缓存线的大小为单位的空间。
43.例如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址,清除报文还包括页类型,页类型用于描述页的大小。
44.又如,一段连续物理地址空间的物理地址的信息包括页的起始物理地址和页的结束物理地址。
45.又如,一段连续物理地址空间的物理地址的信息包括至少一个页中的缓存线的物理地址,清除报文还包括每个页的页类型,页类型用于描述页的大小。
46.又如,一段连续物理地址空间的物理地址的信息包括一个缓存线的物理地址和缓存线的个数。
47.又如,一段连续物理地址空间的物理地址的信息包括一个物理地址和立即数,立即数指示一个物理地址中低位的个数。
48.在另一种可能的实现方式中,清除报文用于指示清除非连续的至少两个缓存线。
49.这些单元可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
50.第五方面,本技术提供一种处理器,所述处理器包括至少一个处理器核和至少一个高速缓冲存储器,当处理器核执行一组计算机指令时,实现上述如第一方面或第一方面可能的实现方式中任一项所述的方法,当高速缓冲存储器执行一组计算机指令时,实现上述如第二方面或第二方面可能的实现方式中任一项所述的方法。
51.在一种可能的实现方式中,所述处理器还包括环形总线、外设管理模块和内存管理器,处理器核、高速缓冲存储器、外设管理模块和所内存管理器通过所述环形总线连接。
52.在一种可能的实现方式中,所述处理器还包括网形总线、外设管理模块和内存管理器,处理器核、高速缓冲存储器、外设管理模块和所内存管理器通过所述网形总线连接。
53.第六方面,本技术提供一种计算设备,该计算设备可以包括处理器和外设,处理器
包括至少一个处理器核和高速缓冲存储器,当处理器核或外设执行一组计算机指令时,实现上述如第一方面或第一方面可能的实现方式中任一项所述的方法,当高速缓冲存储器执行一组计算机指令时,实现上述如第二方面或第二方面可能的实现方式中任一项所述的方法。
54.在一种可能的实现方式中,处理器还包含环形总线、外设管理模块和内存管理器,处理器核、高速缓冲存储器、外设管理模块和内存管理器通过环形总线连接。
55.在一种可能的实现方式中,处理器还包含网形总线、外设管理模块和内存管理器,处理器核、高速缓冲存储器、外设管理模块和内存管理器通过网形总线连接。
56.第七方面,本技术提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面可能的实现方式,或第二方面或第二方面可能的实现方式中任一项所述的方法。
57.第八方面,本技术提供一种计算机程序产品,当计算机程序产品在计算设备上运行时,使得计算设备执行如第一方面或第一方面可能的实现方式,或第二方面或第二方面可能的实现方式中任一项所述的目标用户锁定方法。
58.应当理解的是,本技术中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
59.图1为本技术实施例提供的一种计算设备的组成示意图;
60.图2为本技术实施例提供的一种发送清除报文和清除缓存的方法的流程图;
61.图3为本技术实施例提供的一种连续物理地址空间的组成示意图;
62.图4为本技术实施例提供的一种清除的缓存线的示意图;
63.图5为本技术实施例提供的一种清除的缓存线的示意图;
64.图6为本技术实施例提供的一种清除的缓存线的示意图;
65.图7为本技术实施例提供的一种清除的缓存线的示意图;
66.图8为本技术实施例提供的一种缓存线的结构示意图;
67.图9为本技术实施例提供的一种发送清除报文的装置的组成示意图;
68.图10为本技术实施例提供的一种清除缓存的装置的组成示意图;
69.图11为本技术实施例提供的一种计算设备的组成示意图;
70.图12为本技术实施例提供的一种计算设备的组成示意图。
具体实施方式
71.本技术说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用
于区别不同对象,而不是用于限定特定顺序。
72.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
73.下面将结合附图对本技术实施例的实施方式进行详细描述。
74.图1为本技术一实施例提供的计算设备的组成示意图,如图1所示,计算设备100包括处理器110、主存储器(main memory)(简称:主存)120和外设(external device)130。
75.下面结合图1对计算设备100的各个构成部件进行具体的介绍:
76.处理器110是计算设备100的控制中心。通常情况下,处理器110是一个中央处理器(central processing unit,cpu),包括一个处理器核(core)或多个处理器核。例如,图1中所示的处理器110包含的n个处理器核。
77.在计算机存储系统的层次结构中,距离cpu越近的存储器,读写的速度越快,存储器的容量也越小。依据距离cpu从近到远的顺序,存储器分为:寄存器,高速缓冲存储器(cache),主存储器,磁盘。高速缓冲存储器是介于cpu和主存储器之间的高速小容量存储器。高速缓冲存储器包括一级高速缓冲存储器(l1 cache)、二级高速缓冲存储器(l2 cache)和三级高速缓冲存储器(l3 cache)。通常,一级高速缓冲存储器设置于处理器核内部。二级高速缓冲存储器可以设置于处理器核内部或处理器核外部。一级高速缓冲存储器和二级高速缓冲存储器通常由其所在的处理器核独享(exclusive)。三级高速缓冲存储器一般设置在处理器核外部,由多个处理器核共享(shared)。通常,处理器可以包含多个三级高速缓冲存储器。例如,图1中所示的处理器110包含的多个高速缓冲存储器111。高速缓冲存储器111为处理器110中的三级高速缓冲存储器。高速缓冲存储器111用于存储处理器110中的处理器核可能多次访问的指令或数据。从而,提高处理器处理数据的速度,避免处理器频繁访问主存。
78.高速缓冲存储器111包括缓存管理器(cache unit)1111,缓存管理器1111连接一个缓存片(slice)1112。缓存线(cache line)是缓存片1112中的最小缓存单位。一个缓存线的大小(cache line size)可以为32字节(byte,b)、64字节、128字节或256字节等。假设缓存片1112的存储容量是512字节,缓存线的大小为64字节,缓存片1112的存储容量划分为8个缓存线。处理器110通过内存管理器(memory control,mc)113与主存储器120连接。
79.缓存管理器1111用于依据处理器核的指令管理缓存片1112中的缓存线。例如,缓存管理器1111依据处理器核的缓存线读取指令以及缓存片1112中缓存线的状态,决定是否从主存储器120中获取新的缓存线,或是反馈已经存在的缓存线给处理器核。又如,缓存管理器1111依据处理器核的指令清除缓存片1112中的缓存线。若缓存片1112中的缓存线处于已修改状态(modified),缓存管理器1111可以根据不同类型的清除指令将缓存片1112中的缓存线回写到主存储器120或直接丢弃。若缓存片1112中的缓存线处于未修改状态,缓存管理器1111可以将缓存片1112中的缓存线丢弃。例如,未修改状态包括专有态(exclusive,e)、共享态(shared,s)和无效态(invalid,i)。专有态是指该缓存线1112中的数据与主存储器内对应的缓存线的内容一致,但该缓存线1112只存储在一个numa域的一个高速缓冲存储器中。共享态是指该缓存线1112中的数据与主存储器内对应的缓存的内容一致,但该缓存
线1112有可能存储于多个numa域的一个高速缓冲存储器中。无效态是指本缓存片1112中没有缓存该缓存线。本实施例中,清除缓存线也可以替换描述为刷新缓存线。
80.处理器核通过总线112与高速缓冲存储器111连接,通过总线112访问高速缓冲存储器111。总线112可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线,或者是非标准体系的私有总线标准等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
81.处理器110可以通过运行或执行存储在主存储器120内的软件程序,以及调用存储在主存储器120内的数据,执行计算设备100的各种功能。
82.在本实施例中,处理器核采用广播方式向一组高速缓冲存储器111发送清除报文。可理解的,在广播地址范围内的所有高速缓冲存储器均可以接收到清除报文。清除报文携带的物理地址的信息用于指示清除至少两个缓存线。一组高速缓冲存储器包括至少一个高速缓冲存储器。进而,处理器核接收来自一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。
83.相对于传统技术,处理器核每次发送一个清除报文清除一个缓存线的方案,本实施例提供的发送清除报文的方法,处理器核发送一个清除报文清除至少两个缓存线。在清除相同数量的缓存线的情况下,采用广播方式发送清除报文,减少了发送清除报文的次数,从而将串行处理的清除任务变成了并行处理,提高了清除效率,有效地降低了清除缓存线所占用处理器内部的资源。
84.相对于传统技术,处理器核清除所有三级缓存中的缓存线的方案,本实施例提供的发送清除报文的方法,处理器核发送的清除报文可以指示清除任意数量的缓存线。从而,避免清除其他处理器核或设备正在使用的数据,避免影响其他进程的性能,提高了清除缓存线的准确度。
85.高速缓冲存储器111接收到清除报文,清除该清除报文指示的至少两个缓存线中属于该高速缓冲存储器管辖范围内的缓存线,并向处理器核发送清除完成报文。需要说明的是,若高速缓冲存储器111管辖范围内没有清除报文指示的缓存线,高速缓冲存储器111也向处理器核发送清除完成报文。
86.在物理形态上,高速缓冲存储器111可以是随机存取存储器(random access memory,ram)、静态随机存取存储器(static random-access memory,sram)、动态随机存储器(dynamic ram,dram),或可存储信息和指令的其他类型的存储设备。
87.在逻辑形态上,高速缓冲存储器111可以是三级缓存、一级缓存、二级缓存或者任意级别的缓存设备,只要该缓存设备为分布式的缓存设备,即缓存线会分布式存于多个同级的缓存设备中。
88.主存储器120可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)等。主存储器120还用于存储与本实施例相关的程序。
89.处理器110还可以包含外设管理模块114。外设管理模块114分别连接总线112和外设130。外设130可以是特定集成电路(application specific integrated circuit,asic)。例如:微处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga),或者,图形处理器(graphics processing unit,gpu),或者,神经网络处理器(neural-network processing unit,npu)。外设130也可以采用广播方式向一组高速缓冲存储器发送清除报文。关于外设130发送清除报文的具体的解释可以参考上述处理器核发送清除报文的描述。
90.处理器110还可以包含内部设备115。内部设备115包括连接在总线112上的逻辑网际互连协议(internet protocol,ip)单元和具备一定的逻辑管理功能模块。例如,逻辑管理功能模块包含但不限于:中断管理模块,numa管理模块(或numa节点管理器),内部集成输入输出(input and output,io)模块,内部加解密模块,内部直接存储器访问(direct memory access,dma)模块等。内部设备115也可以根据需要采用广播方式向一组高速缓冲存储器发送清除报文。需要说明的是,与总线相连接的模块或设备均可以采用广播方式向一组高速缓冲存储器发送清除报文。
91.图1中示出的设备结构并不构成对计算设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
92.接下来,结合图2,对本实施例提供的发送清除报文和清除缓存的方法进行详细说明。
93.s201、请求设备采用广播方式向一组高速缓冲存储器发送清除报文。
94.请求设备包含但不限于以下设备:处理器核,外设,其他与总线相连接的设备。例如,如图1中所示的处理器核0、处理器核1或外设130。其他与总线相连接的设备包括如图1中所示的内部设备115。
95.与总线相连的设备(如:处理器核)在获取到清除指令后,根据清除指令生成清除报文,采用广播方式向一组高速缓冲存储器发送清除报文。
96.若请求设备是外设,外设中的处理模块通过设置外设的寄存器控制外设发送清除指令或清除报文给外设管理模块。外设管理模块获取到清除指令或清除报文后,将清除指令或清除报文转换成总线类型的清除报文,并采用广播方式向一组高速缓冲存储器发送清除报文。
97.应理解,所谓广播方式是指一对多的方式。请求设备发送清除报文,清除报文包含广播地址,在广播地址范围内的所有高速缓冲存储器均可以接收到清除报文。也就是说,请求设备发送的清除报文的个数少于接收清除报文的高速缓冲存储器的个数。例如,请求设备采用广播方式向一组高速缓冲存储器发送一个清除报文,一组高速缓冲存储器中的每个高速缓冲存储器均可接收到来自请求设备的清除报文。又如,请求设备采用广播方式向一组高速缓冲存储器发送两个清除报文,一组高速缓冲存储器中的每个高速缓冲存储器均可接收到来自请求设备的清除报文。一组高速缓冲存储器包括至少一个高速缓冲存储器。
98.可选的,处理器中的任意一个处理器核可以根据哈希算法将处理器中的高速缓冲存储器划分为多个numa节点。在本实施例中,一组高速缓冲存储器包含的高速缓冲存储器可以属于numa系统中一个或多个numa节点。例如,图1中的多个高速缓冲存储器111可以属于一个或多个numa节点。处理器核或外设130可以向一个或多个numa节点内的高速缓冲存
储器111发送清除报文。
99.在一些实施例中,每个numa节点由一个numa节点管理器管理,numa节点管理器与总线112连接。若一组高速缓冲存储器包含的高速缓冲存储器属于第一numa节点,处理器核或外设130可向第一numa节点的numa节点管理器发送清除报文,由该numa节点管理器将清除报文发送至每个高速缓冲存储器。进而,一组高速缓冲存储器中的所有高速缓冲存储器在清除完清除报文指示的至少两个缓存线中属于自己管辖范围内的缓存线后,将清除完成报文发送给该numa节点管理器,由该numa节点管理器将清除完成报文发送至处理器核或外设130。
100.若一组高速缓冲存储器包含的高速缓冲存储器属于多个numa节点(如:第一numa节点、第二numa节点和第三numa节点)。第一numa节点由第一numa节点管理器管理。第二numa节点由第二numa节点管理器管理。第三numa节点由第三numa节点管理器管理。处理器核或外设130可向第一numa节点管理器发送清除报文,第一numa节点管理器因接受请求而升级为清除报文的主管理器。第一numa节点管理器将清除报文发送至第二numa节点管理器和第三numa节点管理器。由第一numa节点管理器将清除报文发送至第一numa节点内的每个高速缓冲存储器。由第二numa节点管理器将清除报文发送至第二numa节点内的每个高速缓冲存储器。由第三numa节点管理器将清除报文发送至第三numa节点内的每个高速缓冲存储器。进而,第二numa节点内的每个高速缓冲存储器将清除完成报文发送给第二numa节点管理器,第二numa节点管理器将清除完成报文发送给第一numa节点管理器。第三numa节点内的每个高速缓冲存储器将清除完成报文发送给第三numa节点管理器,第三numa节点管理器将清除完成报文发送给第一numa节点管理器。第一numa节点管理器将第二numa节点和第三numa节点内的每个高速缓冲存储器反馈的清除完成报文和第一numa节点内的每个高速缓冲存储器反馈的清除完成报文发送给处理器核或外设130。反馈的清除完成报文的计数功能可以在第一numa节点管理器、第二numa节点管理器内或第三numa节点管理器内部实现。例如,第二numa节点管理器收到所有管辖范围内的清除完成报文后,反馈一条清除完成报文给第一numa节点管理器。第一numa节点管理器只发一个反馈的清除完成报文给处理器核或外设130,也可以在处理器核或外设130内部实现,第一numa节点管理器将所有反馈的清除完成报文转发给处理器核或外设130。
101.目前技术中,如果请求设备是一个外部设备,并且设备上的内存可被当成主存使用。该外部设备访问设备上的内存中的一个缓存线,需要将读取请求通过外设管理模块114和总线112发给本numa域中的一个高速缓冲存储器。如果高速缓冲存储器内的缓存线未命中,高速缓冲存储器通过地址解析,需要再将读取请求发送给外部设备的内存控制器。外部设备的内存控制器读取相应的缓存线后,再反馈给高速缓冲存储器,高速缓冲存储器将缓存线缓存在缓存片1112后,再将缓存线反馈给外部设备。如果外部设备完全拥有一个页所有缓存线的所有权,外部设备将可以直接读取外部设备的内存而不需要通过高速缓冲器。外部设备可以根据本实施例提供的清除缓存的方法向一个或者多个numa域中的所有高速缓冲存储器发送清除报文,指示高速缓冲存储器清除一个页中所有的缓存线,至此,外部设备将独占上述页的缓存线,可以直接读写。直到有另外的处理器核或者设备请求上述页中的缓存线。
102.请求设备发送清除报文的触发条件还可以是高速缓冲存储器管理缓存线。例如,
高速缓冲存储器主动清除缓存线。
103.其中,清除报文携带的物理地址的信息用于指示清除至少两个缓存线。物理地址可以是由处理器核中的地址翻译(address translator)模块对清除指令指示的逻辑地址翻译得到的。
104.在一种可能的设计中,清除报文用于指示清除连续的至少两个缓存线。
105.具体的,清除报文包括用于指示一段连续物理地址空间的物理地址的信息。
106.在一些实施例中,连续物理地址空间可以为映射到主存的物理地址空间。可选的,连续物理地址空间为映射到主存的物理地址空间中的部分物理地址空间。或者,连续物理地址空间为映射到主存的物理地址空间的全部物理地址空间。应理解,操作系统是以页(page)为单位管理映射到主存的物理地址空间,以便于处理器核对映射到主存的物理地址空间的数据进行读写。因此,映射到主存的物理地址空间可以划分为多个页。每个页以缓存线的大小为单位进行划分。
107.计算机系统中的系统物理地址空间表示一个计算机实体所占用的内存大小。其中,系统物理地址空间包括映射到主存的物理地址空间和内存映射i/o(memory mapped i/o,mmio)的物理地址空间等。映射到主存的物理地址空间是计算机系统中的系统物理地址空间中的一部分空间。其他物理地址空间是计算机系统中的系统物理地址空间中的一部分空间。
108.在另一些实施例中,连续物理地址空间可以为系统物理地址空间中除了映射到主存的物理地址空间之外的其他物理地址空间。例如,其他物理地址空间是mmio的物理地址空间。可选的,连续物理地址空间为其他物理地址空间中的部分物理地址空间。或者,连续物理地址空间为其他物理地址空间的全部物理地址空间。
109.图3为连续物理地址空间的示意图。如图3中的(a)所示,假设系统物理地址空间的大小是2
46
。其中,一段连续物理地址空间为映射到主存的物理地址空间中的部分物理地址空间。一个缓存线的大小是64字节,一个页的大小是4kb。4kb的页包含64个连续的缓存线。物理地址0x000表示第一个页的起始地址。物理地址0x1000表示第二个页的起始地址。第一个页包含了物理地址0x000到0x1000之间的64个连续的缓存线。第二个页包含了物理地址0x1000到物理地址0x2000之间的64个连续的缓存线。
110.如图3中的(b)所示,一段连续物理地址空间为mmio的全部物理地址空间。物理地址0x2_0000_0000表示mmio的全部物理地址空间的起始地址。
111.可选的,一段连续物理地址空间包括映射到主存的物理地址空间和没有映射到主存的物理地址空间。例如,一段连续物理地址空间包括映射到主存的物理地址空间中的部分物理地址空间和没有映射到主存的物理地址空间中的部分物理地址空间。
112.本实施例所述的至少两个缓存线包括一段连续物理地址空间的起始物理地址所在的缓存线到一段连续物理地址空间的结束物理地址所在的缓存线。清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且清除的连续物理地址空间为以缓存线的大小为单位的空间。
113.一段连续物理地址空间的起始物理地址可以是mmio的物理地址空间中任意一个物理地址。一段连续物理地址空间的结束物理地址可以是mmio的物理地址空间中任意一个物理地址。
114.一段连续物理地址空间的起始物理地址可以是映射到主存的物理地址空间中任意一个物理地址。一段连续物理地址空间的结束物理地址可以是映射到主存的物理地址空间中任意一个物理地址。
115.下面以连续物理地址空间可以为映射到主存的物理地址空间,清除报文指示的至少两个缓存线为映射到主存的物理地址空间中的缓存线进行举例说明。一段连续物理地址空间的起始物理地址和结束物理地址为映射到主存的物理地址空间中的物理地址。
116.在一些实施例中,一段连续物理地址空间的起始物理地址可以是映射到主存的物理地址空间中两个缓存线的之间的任意一个物理地址。一段连续物理地址空间的结束物理地址可以是映射到主存的物理地址空间中两个缓存线的之间的任意一个物理地址。
117.示例的,如图4中的(a)所示,若一段连续物理地址空间为点a处的物理地址到点b处的物理地址之间的连续物理地址空间。清除报文指示清除点a处的物理地址所在的缓存线到点b处的物理地址所在的缓存线。点a处的物理地址所在的缓存线是第一个页的第63个缓存线,点b处的物理地址所在的缓存线是第二个页的第1个缓存线。清除报文指示清除第一个页的第63个缓存线、第一个页的第64个缓存线和第二个页的第1个缓存线。
118.在另一些实施例中,一段连续物理地址空间的起始物理地址或结束物理地址可以是映射到主存的物理地址空间中缓存线的物理地址。高速缓冲存储器可以清除该缓存线的物理地址指示的缓存线,或者,高速缓冲存储器可以不清除该缓存线的物理地址指示的缓存线。
119.如图4中的(b)所示,若一段连续物理地址空间为点a处的物理地址到点b’处的物理地址之间的连续物理地址空间。由于点b’处的物理地址是第二个页的第1个缓存线的物理地址,清除报文可以指示清除第一个页的第63个缓存线和第一个页的第64个缓存线,不清除第二个页的第1个缓存线。或者,清除报文指示清除第一个页的第63个缓存线、第一个页的第64个缓存线和第二个页的第1个缓存线。
120.在一些实施例中,请求设备以页的大小粒度清除高速缓冲存储器中的缓存线。清除报文可以指示清除与页内的所有连续的缓存线。
121.在第一种可能的实现方式中,一段连续物理地址空间的物理地址的信息包括页的起始物理地址。页的起始物理地址是任意一个物理地址的0到11的比特位为0的地址。清除报文还包括页类型,页类型用于描述页的大小。例如,x86架构中规定的页的大小包括4k、2m和1g。
122.例如,清除报文包括的页的起始物理地址为0x000,且页的大小为4k,一个缓存线的大小是64字节。如图5,清除报文指示清除第一个页中的64个缓存线,即物理地址0x000到物理地址0x1000之间的64个缓存线。
123.又如,假设页的起始物理地址为0x040,且页的大小为4k,一个缓存线的大小是64字节。清除报文指示清除物理地址0x040到物理地址0x1040之间的64个缓存线。
124.又如,如图6,假设页的起始物理地址为0x000,且页的大小为8k,一个缓存线的大小是64字节。清除报文指示清除物理地址0x040到物理地址0x200之间的128个缓存线。
125.示例的,可以预先在计算设备中预先设置清除指令。例如,pkflush指令用于清除4k的页。pmflush指令用于清除2m的页。pgflush指令用于清除1g的页。
126.以pkflush为例,指令格式可以写为但不仅限于:pkflush es:[esi]

32位模式,
或,pkflush[rsi]

64位模式。其中,es为存储数据段的段寄存器,esi和rsi是通用用途(general purpose)寄存器用来存储逻辑地址。
[0127]
例如,请求设备可以依据清除指令pkflush向一组高速缓冲存储器发送清除报文,指示清除4k的页。
[0128]
在第二种可能的实现方式中,一段连续物理地址空间的物理地址的信息包括页的起始物理地址和页的结束物理地址。
[0129]
例如,清除报文包括的页的起始物理地址为0x000,且页的结束物理地址为0x1000。如图5,清除报文指示清除第一个页中的64个缓存线,即物理地址0x000到物理地址0x1000之间的64个缓存线。
[0130]
又如,清除报文包括的页的起始物理地址为0x000,且页的结束物理地址为0x2000。如图6,清除报文指示清除第一个页中的64个缓存线和第二个页中的64个缓存线,即物理地址0x000到物理地址0x2000之间的128个缓存线。
[0131]
在第三种可能的实现方式中,一段连续物理地址空间的物理地址的信息包括页中的缓存线的物理地址。清除报文还包括页类型,页类型用于描述页的大小。页中的缓存线的物理地址可以是页中的任意一个缓存线的物理地址。
[0132]
例如,清除报文包括的页中的缓存线的物理地址0xfc0,且页的大小为4k。如图5,清除报文指示清除第一个页中的64个缓存线,即物理地址0x000到物理地址0x1000之间的64个缓存线。
[0133]
又如,清除报文包括的页中的缓存线的物理地址0xfc0和0x1040,且页的大小为4k。如图6,清除报文指示清除第一个页中的64个缓存线和第二个页中的64个缓存线,即物理地址0x000到物理地址0x2000之间的128个缓存线。
[0134]
在另一些实施例中,请求设备以任意个数的缓存线的粒度清除高速缓冲存储器中的缓存线。清除报文可以指示清除一个页内的连续的缓存线或者多个页内的连续的缓存线。
[0135]
在第四种可能的实现方式中,一段连续物理地址空间的物理地址的信息包括一个缓存线的物理地址和缓存线的个数。假设清除报文指示清除的缓存线的个数为n,清除报文指示从缓存线的物理地址开始清除连续的n个缓存线。
[0136]
在一些实施例中,可以从缓存线的物理地址开始沿着物理地址减小的方向,清除n个缓存线。如图7中的(a)所示,清除报文包括的缓存线的物理地址0x1000,且缓存线的个数为2。清除报文指示清除第一个页中的第64个缓存线和第63个缓存线。
[0137]
在另一些实施例中,可以从缓存线的物理地址开始沿着物理地址增加的方向,清除n个缓存线。如图7中的(b)所示,清除报文包括的缓存线的物理地址0x1000,且缓存线的个数为2。清除报文指示清除第一个页中的第64个缓存线和第二个页中的第1个缓存线。
[0138]
可选的,一段连续物理地址空间为mmio的物理地址空间。清除报文指示清除mmio的物理地址空间中从缓存线的物理地址开始清除连续的n个缓存线。需要说明的是,清除报文指示清除mmio的物理地址空间中的缓存线后,不允许将清除的缓存线写回到mmio。
[0139]
在第五种可能的实现方式中,一段连续物理地址空间的物理地址的信息包括一个物理地址和立即数。立即数指示一个物理地址中低位的个数。应理解,高速缓冲存储器可以根据立即数生成掩码,利用掩码和物理地址生成一个新的物理地址,利用新的物理地址清
除缓存线。利用新的物理地址清除缓存线的具体方法可以参考上述阐述的各种可能的实现方式,不予赘述。
[0140]
例如,清除报文指示清除以2为基数的区块。请求设备可以构建清除任意粒度的缓存线的清除指令,例如,rflush指令。指令格式可以写为:rflush es:[esi],imm8。
[0141]
其中,设置值imm8是从6到最大的物理地址的整数,例如6,7,8

51。当设置值超过物理地址的最大值时,rflush指令指示清除映射到主存的物理地址空间中所有的缓存线。当设置值小于6,rflush指令指示清除一个缓存线。
[0142]
当imm8在6到最大的物理地址之间的一个数值时,rflush指令指示清除2的任意次幂个数的缓存线。例如,设置值等于12时,相当于输入的物理地址与0x000进行与操作作为起始物理地址,输入的物理地址与0xfff进行或操作作为结束物理地址。例如输入的物理地址是0xabcde010,设置值等于12时,清除报文指示清除物理地址0xabcde000到物理地址0xabcdefff的物理地址空间内的所有的缓存线,设置值等于16,清除报文指示清除物理地址0xabcd0000到物理地址0xabcdffff的物理地址空间内的所有的缓存线。
[0143]
依据立即数可以删除物理地址中指示缓存线的物理地址,保留指示页的地址,或者,保留指示页的地址中的部分地址。清除报文可以包含指示页的地址或指示页的地址中的部分地址。
[0144]
可选的,一段连续物理地址空间的物理地址的信息包括一个物理地址和掩码。将掩码和物理地址进行或操作,删除了物理地址中低位的比特位,得到一个保留部分比特位的物理地址。例如,物理地址是0xabcde010,掩码为0xffff ffff ffff f000,保留部分比特位的物理地址为0xabcde。
[0145]
在另一种可能的设计中,清除报文用于指示清除非连续的至少两个缓存线。
[0146]
具体的,清除报文包括用于指示多个非连续缓存线的物理地址信息。其中,多个非连续缓存线的物理地址存在于一段连续的物理地址空间的范围内。一段连续的物理地址空间可以为映射到主存的物理地址空间,也可以为映射到其他存储空间的物理地址空间。可理解的,一段连续的物理地址空间可以为映射到主存的物理地址空间中的部分物理地址空间。一段连续物理地址空间的物理地址与缓存线的地址对齐,并且一段连续物理地址空间为以缓存线的大小为单位的空间。清除的非连续缓存线为一段连续物理地址空间中的缓存线。关于一段连续的物理地址空间的解释可以参考上述阐述。
[0147]
多个非连续缓存线的物理地址信息可以包括一段连续地址空间中奇数位的缓存线的物理地址。例如,假设一个缓存线的大小是64字节,一个页的大小是4kb。4kb的页包含64个连续的缓存线。清除报文用于指示清除第1个缓存线、第3个缓存线、第5个缓存线,至第63个缓存线。
[0148]
多个非连续缓存线的物理地址信息可以包括一段连续地址空间中偶数位的缓存线的物理地址。例如,假设一个缓存线的大小是64字节,一个页的大小是4kb。4kb的页包含64个连续的缓存线。清除报文用于指示清除第2个缓存线、第4个缓存线、第6个缓存线,至第64个缓存线。
[0149]
多个非连续缓存线的物理地址信息可以包括一段连续地址空间中以等差间隔排列缓存线的物理地址。多个非连续缓存线的物理地址信息可以包括其他非连续序列的缓存线的物理地址。
[0150]
应理解,上述实施例是以清除报文指示的至少两个缓存线为映射到主存的物理地址空间中的缓存线进行举例说明。如果连续物理地址空间为其他物理地址空间,上述清除报文指示的至少两个缓存线的说明同样适用于至少两个缓存线为其他物理地址空间中的缓存线的场景。
[0151]
s202、高速缓冲存储器接收来自请求设备的清除报文。
[0152]
s203、高速缓冲存储器清除清除报文指示的至少两个缓存线中属于高速缓冲存储器管辖范围内的缓存线。
[0153]
清除报文指示清除的所有缓存线存储于一组高速缓冲存储器,一组高速缓冲存储器包含至少一个高速缓冲存储器。该高速缓冲存储器是一组高速缓冲存储器中任意一个高速缓冲存储器。
[0154]
应理解,由于高速缓冲存储器中的缓存线包含不连续的物理地址,因此,清除报文指示清除的缓存线可能位于多个高速缓冲存储器中。每个高速缓冲存储器清除该清除报文指示的至少两个缓存线中属于高速缓冲存储器管辖范围内的缓存线。
[0155]
通常,每个缓存线包含标签域(tag)、状态域(statu)和数据域(data)。标签域用于指示物理地址。状态域用于指示缓存线的状态。数据域用于存储数据。
[0156]
例如,清除报文指示清除第一个页中的64个缓存线,即物理地址0x000到物理地址0x1000之间的64个缓存线。如图8所示,若高速缓冲存储器中缓存线包含物理地址0x000、物理地址0xfc0、物理地址0x1040和物理地址0x2000。由于清除报文指示的缓存线包含了物理地址0x000的缓存线和物理地址0xfc0的缓存线,该高速缓冲存储器清除包含0x000的缓存线和包含0xfc0的缓存线。
[0157]
其中,当缓存线处于已修改状态(modified,m),缓存管理器可以根据不同类型的清除指令将缓存片中的缓存线回写到主存储器或直接丢弃。当缓存线处于未修改状态,缓存管理器可以将缓存片中的缓存线丢弃。如图8,包含0x000的缓存线的状态为已修改状态,缓存管理器将包含0x000的缓存线回写到主存储器或直接丢弃。包含0xfc0的缓存线的状态为未修改状态(e/s/i),缓存管理器将包含0xfc0的缓存线丢弃。
[0158]
因此,接收到该清除报文的高速缓冲存储器,清除清除报文指示的页中的64个缓存线中属于高速缓冲存储器管辖范围内的缓存线。
[0159]
关于清除报文指示清除连续的至少两个缓存线的具体指示方式可以参考上述各种可能的实现方式的阐述,不予赘述。高速缓冲存储器清除清除报文指示的至少两个缓存线中属于高速缓冲存储器管辖范围内的缓存线。
[0160]
s204、高速缓冲存储器向请求设备发送清除完成报文。
[0161]
s205、请求设备接收来自一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。
[0162]
相对于传统技术,处理器核每次发送一个清除报文清除一个缓存线的方案,本实施例提供的清除缓存的方法,处理器核发送一个清除报文清除至少两个缓存线。在清除相同数量的缓存线的情况下,采用广播方式发送清除报文,减少了发送清除报文的次数,从而将串行处理的清除任务变成了并行处理,提高了清除效率,有效地降低了清除缓存线所占用处理器内部的资源。
[0163]
相对于传统技术,处理器核清除所有三级缓存中的缓存线的方案,本实施例提供
的清除缓存的方法,处理器核发送的清除报文可以指示清除任意数量的缓存线。从而,避免处理器核和其他设备清除其他核或设备正在使用的数据,避免影响其他进程的性能,提高了清除缓存线的准确度。
[0164]
此外,本实施例所述的清除也可以替换描述为刷新,清除报文也可以替换描述为刷新报文。
[0165]
可以理解的是,为了实现上述实施例中功能,处理器核和高速缓冲存储器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本技术中所公开的实施例描述的各示例的单元及方法步骤,本技术能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
[0166]
图9为本技术的实施例提供的可能的发送清除报文的装置的结构示意图。这些发送清除报文的装置可以用于实现上述方法实施例中处理器核的功能,因此也能实现上述方法实施例所具备的有益效果。在本技术的实施例中,该发送清除报文的装置可以是如图1所示的处理器核0至处理核n中任意一个,也可以是如图1所示的外设130,还可以是应用于处理器核或外设的模块(如芯片)。
[0167]
如图9所示,发送清除报文的装置900包括发送单元910和接收单元920。发送清除报文的装置900用于实现上述图2中所示的方法实施例中请求设备的功能。
[0168]
当发送清除报文的装置900用于实现图2所示的方法实施例中请求设备的功能时:发送单元910用于执行s201;接收单元920用于执行s205。
[0169]
有关上述发送单元910和接收单元920更详细的描述可以直接参考图2所示的方法实施例中相关描述直接得到,这里不加赘述。可理解的,发送单元910和接收单元920的功能也可以由图1中的处理器核或外设实现。
[0170]
如图10所示,清除缓存的装置1000包括发送单元1010、处理单元1020和接收单元1030。清除缓存的装置1000用于实现上述图2中所示的方法实施例中高速缓冲存储器的功能。
[0171]
当清除缓存的装置1000用于实现图2所示的方法实施例中高速缓冲存储器的功能时:接收单元1030用于执行s202;处理单元1020用于执行s203;发送单元1010用于执行s204。
[0172]
有关上述发送单元1010、处理单元1020和接收单元1030更详细的描述可以直接参考图2所示的方法实施例中相关描述直接得到,这里不加赘述。可理解的,发送单元1010、处理单元1020和接收单元1030的功能也可以由图1中的高速缓冲存储器实现。
[0173]
上述图1中所示的处理器核和高速缓冲存储器111的连接方式只是一种示意性说明。在一种可能的实现方式中,处理器核通过环形总线(ring bus)与高速缓冲存储器111连接,通过环形总线访问高速缓冲存储器111。如图11所示,计算设备100包括处理器110、主存储器120和外设130。处理器110包含处理器核、高速缓冲存储器111和环形总线116。环形总线116的环内设置有高速缓冲存储器111,高速缓冲存储器111连接环形总线116。环形总线116的环外设置有处理器核,处理器核连接环形总线116。可选的,处理器核设置在环形总线116的环内,处理器核连接环形总线116。高速缓冲存储器111设置在环形总线116的环外,高速缓冲存储器111连接环形总线116。
[0174]
另外,处理器110包含的内存管理器113、外设管理模块114和内部设备115分别与环形总线116连接。内存管理器113连接主存储器120。外设管理模块114连接外设130。
[0175]
在本实施例中,处理器核采用广播方式通过环形总线116向一组高速缓冲存储器111发送清除报文。可理解的,在广播地址范围内的所有高速缓冲存储器均可以接收到清除报文。清除报文携带的物理地址的信息用于指示清除至少两个缓存线。一组高速缓冲存储器包括至少一个高速缓冲存储器。进而,处理器核接收来自一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。
[0176]
相对于传统技术,处理器核每次发送一个清除报文清除一个缓存线的方案,本实施例提供的发送清除报文的方法,处理器核发送一个清除报文清除至少两个缓存线。在清除相同数量的缓存线的情况下,采用广播方式发送清除报文,减少了发送清除报文的次数,从而将串行处理的清除任务变成了并行处理,提高了清除效率,有效地降低了清除缓存线所占用处理器内部的资源。
[0177]
相对于传统技术,处理器核清除所有三级缓存中的缓存线的方案,本实施例提供的发送清除报文的方法,处理器核发送的清除报文可以指示清除任意数量的缓存线。从而,避免清除其他处理器核或设备正在使用的数据,避免影响其他进程的性能,提高了清除缓存线的准确度。
[0178]
高速缓冲存储器111接收到清除报文,清除该清除报文指示的至少两个缓存线中属于该高速缓冲存储器管辖范围内的缓存线,并向处理器核发送清除完成报文。需要说明的是,若高速缓冲存储器111管辖范围内没有清除报文指示的缓存线,高速缓冲存储器111也向处理器核发送清除完成报文。
[0179]
关于计算设备100包含的各个模块的解释,以及处理器核采用广播方式向一组高速缓冲存储器111发送清除报文的解释,可以参考上述各个实施例的阐述,不予赘述。
[0180]
在另一种可能的实现方式中,处理器核和高速缓冲存储器111通过网形总线(mesh bus)连接,处理器核通过网形总线访问高速缓冲存储器111。如图12所示,计算设备100包括处理器110、主存储器120和外设130。处理器110包含处理器核、高速缓冲存储器111、内存管理器113、外设管理模块114、内部设备115、网形总线117和中转模块118。处理器核、高速缓冲存储器111、内存管理器113、外设管理模块114和内部设备115通过中转模块118与网形总线117连接。处理器核、高速缓冲存储器111、内存管理器113、外设管理模块114和内部设备115通过中转模块118进行指令或数据传输。中转模块118与网形总线117的横向总线和纵向总线连接。中转模块118用于将横向总线的数据传输到纵向总线。中转模块118还用于将纵向总线的数据传输到横向总线。
[0181]
另外,处理器110包含的内存管理器113、外设管理模块114和内部设备115分别与网形总线117连接。内存管理器113连接主存储器120。外设管理模块114连接外设130。
[0182]
在本实施例中,处理器核采用广播方式通过网形总线117向一组高速缓冲存储器111发送清除报文。可理解的,在广播地址范围内的所有高速缓冲存储器均可以接收到清除报文。清除报文携带的物理地址的信息用于指示清除至少两个缓存线。一组高速缓冲存储器包括至少一个高速缓冲存储器。进而,处理器核接收来自一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。
[0183]
相对于传统技术,处理器核每次发送一个清除报文清除一个缓存线的方案,本实
施例提供的发送清除报文的方法,处理器核发送一个清除报文清除至少两个缓存线。在清除相同数量的缓存线的情况下,采用广播方式发送清除报文,减少了发送清除报文的次数,从而将串行处理的清除任务变成了并行处理,提高了清除效率,有效地降低了清除缓存线所占用处理器内部的资源。
[0184]
相对于传统技术,处理器核清除所有三级缓存中的缓存线的方案,本实施例提供的发送清除报文的方法,处理器核发送的清除报文可以指示清除任意数量的缓存线。从而,避免清除其他处理器核或设备正在使用的数据,避免影响其他进程的性能,提高了清除缓存线的准确度。
[0185]
高速缓冲存储器111接收到清除报文,清除该清除报文指示的至少两个缓存线中属于该高速缓冲存储器管辖范围内的缓存线,并向处理器核发送清除完成报文。需要说明的是,若高速缓冲存储器111管辖范围内没有清除报文指示的缓存线,高速缓冲存储器111也向处理器核发送清除完成报文。
[0186]
关于计算设备100包含的各个模块的解释,以及处理器核采用广播方式向一组高速缓冲存储器111发送清除报文的解释,可以参考上述各个实施例的阐述,不予赘述。
[0187]
本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
[0188]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,dvd);还可以是半导体介质,例如,固态硬盘(solid state drive,ssd)。
[0189]
在本技术的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
[0190]
本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。在本技术的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本技术的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
[0191]
可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

技术特征:
1.一种发送清除报文的方法,其特征在于,包括:请求设备采用广播方式向一组高速缓冲存储器发送清除报文,所述清除报文携带的物理地址的信息用于指示清除至少两个缓存线,所述一组高速缓冲存储器包括至少一个高速缓冲存储器;所述请求设备接收来自所述一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。2.根据权利要求1所述的方法,其特征在于,所述清除报文用于指示清除连续的所述至少两个缓存线。3.根据权利要求2所述的方法,其特征在于,所述清除报文包括用于指示一段连续物理地址空间的物理地址的信息,所述至少两个缓存线包括所述一段连续物理地址空间的起始物理地址所在的缓存线到所述一段连续物理地址空间的结束物理地址所在的缓存线。4.根据权利要求3所述的方法,其特征在于,所述连续物理地址空间为映射到主存的物理地址空间,清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且所述清除的连续物理地址空间为以缓存线的大小为单位的空间。5.根据权利要求3或4所述的方法,其特征在于,所述一段连续物理地址空间的物理地址的信息包括页的起始物理地址,所述清除报文还包括页类型,所述页类型用于描述所述页的大小。6.根据权利要求3或4所述的方法,其特征在于,所述一段连续物理地址空间的物理地址的信息包括页的起始物理地址和所述页的结束物理地址。7.根据权利要求3或4所述的方法,其特征在于,所述一段连续物理地址空间的物理地址的信息包括至少一个页中的缓存线的物理地址,所述清除报文还包括每个页的页类型,所述页类型用于描述所述页的大小。8.根据权利要求3或4所述的方法,其特征在于,所述一段连续物理地址空间的物理地址的信息包括一个缓存线的物理地址和缓存线的个数。9.根据权利要求3或4所述的方法,其特征在于,所述一段连续物理地址空间的物理地址的信息包括一个物理地址和立即数,所述立即数指示所述一个物理地址中低位的个数。10.根据权利要求1所述的方法,其特征在于,所述清除报文用于指示清除非连续的所述至少两个缓存线。11.根据权利要求1至10中任一项所述的方法,其特征在于,所述请求设备包含但不限于以下设备:处理器核,外设,其他与总线相连接的设备。12.一种清除缓存的方法,其特征在于,包括:高速缓冲存储器接收来自请求设备的清除报文,所述清除报文用于指示清除至少两个缓存线;所述高速缓冲存储器清除所述清除报文指示的至少两个缓存线中属于所述高速缓冲存储器管辖范围内的缓存线;所述高速缓冲存储器向所述请求设备发送清除完成报文。13.根据权利要求12所述的方法,其特征在于,所述清除报文用于指示清除连续的所述至少两个缓存线。14.根据权利要求12所述的方法,其特征在于,所述清除报文用于指示清除非连续的所
述至少两个缓存线。15.根据权利要求12至14中任一项所述的方法,其特征在于,所述请求设备包含但不限于以下设备:处理器核,外设,其他与总线相连接的设备。16.根据权利要求12至15中任一项所述的方法,其特征在于,所述清除报文清除的所有缓存线存储于一组高速缓冲存储器,所述一组高速缓冲存储器包含至少一个高速缓冲存储器,所述高速缓冲存储器是所述一组高速缓冲存储器中任意一个高速缓冲存储器。17.根据权利要求16所述的方法,其特征在于,所述一组高速缓冲存储器包含的高速缓冲存储器属于非一致性内存访问numa系统中一个或多个numa节点。18.一种处理器,其特征在于,包括至少一个处理器核和至少一个高速缓冲存储器,其中,所述处理器核,用于采用广播方式向一组高速缓冲存储器发送清除报文,所述清除报文携带的物理地址的信息用于指示清除至少两个缓存线,所述一组高速缓冲存储器包括至少一个高速缓冲存储器;所述高速缓冲存储器,用于接收来自所述处理器核的清除报文,所述清除报文用于指示清除至少两个缓存线;所述高速缓冲存储器,还用于清除所述清除报文指示的至少两个缓存线中属于所述高速缓冲存储器管辖范围内的缓存线;所述高速缓冲存储器,还用于向所述处理器核发送清除完成报文;所述处理器核,还用于接收来自所述一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。19.根据权利要求18所述的处理器,其特征在于,所述清除报文用于指示清除连续的所述至少两个缓存线。20.根据权利要求19所述的处理器,其特征在于,所述清除报文包括用于指示一段连续物理地址空间的物理地址的信息,所述至少两个缓存线包括所述一段连续物理地址空间的起始物理地址所在的缓存线到所述一段连续物理地址空间的结束物理地址所在的缓存线。21.根据权利要求20所述的处理器,其特征在于,所述连续物理地址空间为映射到主存的物理地址空间,清除的连续物理地址空间的物理地址与缓存线的物理地址对齐,并且所述清除的连续物理地址空间为以缓存线的大小为单位的空间。22.根据权利要求18所述的处理器,其特征在于,所述清除报文用于指示清除非连续的所述至少两个缓存线。23.根据权利要求18至22中任一项所述的处理器,其特征在于,所述清除报文清除的所有缓存线存储于一组高速缓冲存储器,所述高速缓冲存储器是所述一组高速缓冲存储器中任意一个高速缓冲存储器。24.根据权利要求18至23中任一项所述的处理器,其特征在于,所述一组高速缓冲存储器包含的高速缓冲存储器属于非一致性内存访问numa系统中一个或多个numa节点。25.一种计算设备,其特征在于,所述计算设备包括处理器和外设,所述处理器包括至少一个处理器核和高速缓冲存储器,当所述处理器核或外设执行一组计算机指令时,实现上述权利要求1至11中任一项所述的方法,当所述高速缓冲存储器执行所述一组计算机指令时,实现上述权利要求12至17中任一项所述的方法。
26.根据权利要求25所述的计算设备,其特征在于,所述处理器还包含环形总线、外设管理模块和内存管理器,所述处理器核、所述高速缓冲存储器、所述外设管理模块和所述内存管理器通过所述环形总线连接。27.根据权利要求25所述的计算设备,其特征在于,所述处理器还包含网形总线、外设管理模块和内存管理器,所述处理器核、所述高速缓冲存储器、所述外设管理模块和所述内存管理器通过所述网形总线连接。28.一种处理器,其特征在于,所述处理器包括至少一个处理器核、至少一个高速缓冲存储器、环形总线、外设管理模块和内存管理器,所述处理器核、所述高速缓冲存储器、所述外设管理模块和所述内存管理器通过所述环形总线连接,当所述处理器核执行一组计算机指令时,实现上述权利要求1至11中任一项所述的方法,当所述高速缓冲存储器执行所述一组计算机指令时,实现上述权利要求12至17中任一项所述的方法。29.一种处理器,其特征在于,所述处理器包括至少一个处理器核、至少一个高速缓冲存储器、网形总线、外设管理模块和内存管理器,所述处理器核、所述高速缓冲存储器、所述外设管理模块和所述内存管理器通过所述网形总线连接,当所述处理器核执行一组计算机指令时,实现上述权利要求1至11中任一项所述的方法,当所述高速缓冲存储器执行所述一组计算机指令时,实现上述权利要求12至17中任一项所述的方法。

技术总结
本申请公开了一种发送清除报文的方法及装置,涉及计算机领域,解决了计算机系统如何高效率地清除三级缓存中的缓存线,并降低占用处理器内部资源的问题。所述方法包括请求设备采用广播方式向一组高速缓冲存储器发送清除报文,并接收来自所述一组高速缓冲存储器中所有高速缓冲存储器的清除完成报文。所述清除报文携带的物理地址的信息用于指示清除至少两个缓存线。高速缓冲存储器接收来自请求设备的清除报文后,清除清除报文指示的至少两个缓存线中属于该高速缓冲存储器管辖范围内的缓存线,并向请求设备发送清除完成报文。一组高速缓冲存储器包括至少一个高速缓冲存储器。缓冲存储器包括至少一个高速缓冲存储器。缓冲存储器包括至少一个高速缓冲存储器。


技术研发人员:潘伟 吴峰光
受保护的技术使用者:华为技术有限公司
技术研发日:2020.09.28
技术公布日:2022/3/7

最新回复(0)