CN115514772B - 一种实现缓存一致性的方法、装置、设备及可读介质 - Google Patents
一种实现缓存一致性的方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN115514772B CN115514772B CN202211422073.0A CN202211422073A CN115514772B CN 115514772 B CN115514772 B CN 115514772B CN 202211422073 A CN202211422073 A CN 202211422073A CN 115514772 B CN115514772 B CN 115514772B
- Authority
- CN
- China
- Prior art keywords
- node
- directory
- node server
- module
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种实现缓存一致性的方法、装置、设备及可读介质,方法包括:将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。通过使用本发明的方案,能够大幅降低一致性目录的硬件资源开销,能够有效提升目录资源利用率,保障目录的可靠运行。本发明涉及计算机领域。
Description
技术领域
本发明涉及计算机领域,并且更具体地涉及一种实现缓存一致性的方法、装置、设备及可读介质。
背景技术
数据处理量的爆炸增长和大数据、人工智能等数据密集型应用快速发展给内存容量带来了全新的挑战,基于多节点服务器的大规模内存池化系统受到了广泛关注。该系统可以将每个节点服务器的内存进行统一编址,使得系统的内存容量得到成倍提升。但是多节点系统以及高达百TB甚至更高的内存容量给维护系统的缓存一致性带来了巨大挑战。一方面,每个节点服务器内可配置多路处理器,因此节点内的缓存一致性需要维护;另一方面,由于整个系统包含众多节点服务器,节点间的缓存一致性同样需要维护。另外,传统的目录设计方法需要记录整个系统内存地址在所有节点内的共享状态,系统内存容量巨大导致维护缓存一致性的目录硬件资源开销过大,目录查询耗时过长,严重影响处理器的访存速度,系统性能下降严重。
发明内容
有鉴于此,本发明实施例的目的在于提出一种实现缓存一致性的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够大幅降低一致性目录的硬件资源开销,能够有效提升目录资源利用率,保障目录的可靠运行。
基于上述目的,本发明的实施例的一个方面提供了一种实现缓存一致性的方法,包括以下步骤:
将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;
在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;
在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;
响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。
根据本发明的一个实施例,将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码包括:
获取节点服务器的数量,并根据节点服务器的数据计算每个节点服务器的节点编码;
将每个节点服务器的节点编码存储到路由设备中。
根据本发明的一个实施例,获取节点服务器的数量,并根据节点服务器的数据计算每个节点服务器的节点编码包括:
使用公式n=log2m计算节点编码的位数,其中m为节点服务器的数量,n为节点编码的位数;
将每个节点服务器的内存地址的前n位设置为节点服务器的编码。
根据本发明的一个实施例,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
使用公式行数=(b×c)/d计算第一目录的行数,其中b为节点服务器内处理器的数目,c为处理器缓存容量,d为缓存行的大小。
根据本发明的一个实施例,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
在第一目录中的每一行的头部记录内存地址;
使用公式个数=b×e计算第一目录中每一行中状态码的个数,其中b为节点服务器内处理器的数目,e为处理器内CA(Cache Agent)数目,状态码依次记录在内存地址的后面。
根据本发明的一个实施例,在第一目录中的每一行的头部记录内存地址包括:
在第一目录中的每一行的头部记录的内存地址为忽略低log2d位后的内存地址,其中d为缓存行的大小。
根据本发明的一个实施例,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
使用公式行数=h/d计算第二目录的行数,其中h为计算系统内所有处理器缓存容量的总和,d为缓存行的大小。
根据本发明的一个实施例,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
在第二目录中的每一行的头部记录内存地址;
状态码依次记录在内存地址的后面,第二目录中每一行的状态码为m个,m为节点服务器数量。
根据本发明的一个实施例,在第二目录中的每一行的头部记录内存地址包括:
在第二目录中的每一行的头部记录的内存地址为忽略低log2d位和忽略高log2m位后的内存地址,其中d为缓存行的大小,m为节点服务器数量。
根据本发明的一个实施例,还包括:
在每个节点服务器发送的读请求包中添加拟调换掉的缓存数据对应的内存地址编码和有效位。
根据本发明的一个实施例,还包括:
响应于发起请求的节点服务器的处理器缓存资源全部用尽,将有效位置1。
根据本发明的一个实施例,还包括:
响应于节点服务器中的协议处理设备收到有效位置1的请求,根据内存地址编码信息将目录中对应内存地址的共享状态全部置为无效,回收对应行目录资源用于填充新的内存地址的共享信息。
本发明的实施例的另一个方面,还提供了一种实现缓存一致性的装置,装置包括:
记录模块,记录模块配置为将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;
第一创建模块,第一创建模块配置为在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;
第二创建模块,第二创建模块配置为在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;
传输模块,传输模块配置为响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。
本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
本发明具有以下有益技术效果:本发明实施例提供的实现缓存一致性的方法,通过将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器的技术方案,能够大幅降低一致性目录的硬件资源开销,能够有效提升目录资源利用率,保障目录的可靠运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的实现缓存一致性的方法的示意性流程图;
图2为根据本发明一个实施例的节点服务器与路由设备连接的示意图;
图3为根据本发明一个实施例的第一目录的示意图;
图4为根据本发明一个实施例的第二目录的示意图;
图5为根据本发明一个实施例的内存地址编码及有效位的示意图;
图6为根据本发明一个实施例的实现缓存一致性的装置的示意图;
图7为根据本发明一个实施例的计算机设备的示意图;
图8为根据本发明一个实施例的计算机可读存储介质的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种实现缓存一致性的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码。如图2所示,将路由设备以及每个节点服务器内的协议处理设备连接在一起,其中路由设备负责转发节点间的各类请求,协议处理设备负责维护缓存一致性。路由设备记录每个节点服务器的节点号,若共有m个节点服务器,则内存地址的前log2m=n(进一取整)位对应节点服务器编码,例如共有64个节点服务器,则内存地址的前log264=6位对应这64个节点的编码,路由设备通过解析请求数据包中的地址编码前n位将请求向目标节点节点服务器进行转发。
S2在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录。
S3在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录。协议处理设备主要由两部分构成,即负责节点内缓存一致性的第一模块和负责节点间缓存一致性的第二模块,第一模块中包含用于记录本节点内每个处理器节点缓存状态的第一目录,第二模块中包含用于记录本服务器所负责的内存地址共享状态的第二目录。第一目录和第二目录分别根据每个节点服务器内处理器缓存容量总和以及整个系统内所有处理器缓存容量总和设计,可大幅降低目录硬件开销。
S4响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。
通过使用本发明的技术方案,能够大幅降低一致性目录的硬件资源开销,能够有效提升目录资源利用率,保障目录的可靠运行。
在本发明的一个优选实施例中,将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码包括:
获取节点服务器的数量,并根据节点服务器的数据计算每个节点服务器的节点编码;
将每个节点服务器的节点编码存储到路由设备中。
在本发明的一个优选实施例中,获取节点服务器的数量,并根据节点服务器的数据计算每个节点服务器的节点编码包括:
使用公式n=log2m计算节点编码的位数,其中m为节点服务器的数量,n为节点编码的位数;
将每个节点服务器的内存地址的前n位设置为节点服务器的编码。例如共有64个节点服务器,则内存地址的前log264=6位对应这64个节点的编码,路由设备通过解析请求数据包中的地址编码前n位将请求向目标节点节点服务器进行转发。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
使用公式行数=(b×c)/d计算第一目录的行数,其中b为节点服务器内处理器的数目,c为处理器缓存容量,d为缓存行的大小。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
在第一目录中的每一行的头部记录内存地址;
使用公式个数=b×e计算第一目录中每一行中状态码的个数,其中b为节点服务器内处理器的数目,e为处理器内CA(Cache Agent)数目,状态码依次记录在内存地址的后面。
在本发明的一个优选实施例中,在第一目录中的每一行的头部记录内存地址包括:
在第一目录中的每一行的头部记录的内存地址为忽略低log2d位后的内存地址,其中d为缓存行的大小。协议处理设备的第一模块中的第一目录设计与系统地址编码长度abit、节点内处理器数目b、处理器缓存容量c Byte、cacheline(缓存行)大小d Byte、处理器内CA(Cache Agent)数目e以及cacheline状态编码长度f bit有关,具体设计如图3所示,其中,由于内存与缓存之间进行数据交换是以cacheline的长度d Byte为最小粒度进行的,因此第一目录中对于内存地址的记录可忽略低log2d位,b×e个状态码是记录同行的内存地址所对应的缓存数据在节点服务器内所有CA中的状态,整个节点服务器内的所有处理器缓存的容量总和为b×c Byte,因此目录的行数为(总缓存容量/cacheline大小),即(b×c)/d,因此,第一目录的硬件资源开销为:C1=(a-log2d+b×e×f)×(b×c)/d bit,该设计方法可大幅降低第一目录的硬件资源开销。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
使用公式行数=h/d计算第二目录的行数,其中h为计算系统内所有处理器缓存容量的总和,d为缓存行的大小。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
在第二目录中的每一行的头部记录内存地址;
状态码依次记录在内存地址的后面,第二目录中每一行的状态码为m个,m为节点服务器数量。
在本发明的一个优选实施例中,在第二目录中的每一行的头部记录内存地址包括:
在第二目录中的每一行的头部记录的内存地址为忽略低log2d位和忽略高log2m位后的内存地址,其中d为缓存行的大小,m为节点服务器数量。协议处理设备的第二模块中的第二目录设计与系统地址编码长度a bit、系统内节点服务器数量m、系统内所有处理器缓存容量总和h Byte、cacheline大小d Byte以及cacheline状态编码长度f bit有关,具体设计如图4所示,其中,由于内存与缓存之间进行数据交换是以cacheline的长度d Byte为最小粒度进行的,因此第二目录中对于内存地址的记录可忽略低log2d位,由于每个节点服务器只需维护本服务器内的物理内存,由路由设备转发至该节点服务器的请求中的内存地址前n(n=log2m)位均相同,因此第二目录中对于内存地址的记录还可忽略高n位,m个状态码是记录同行的内存地址所对应的缓存数据在节点服务器内所有节点中的状态,整个系统内的所有处理器缓存的容量总和为h Byte,因此目录的行数为(总缓存容量/cacheline大小),即h/d,因此,第二目录的硬件资源开销为:C2=(a-n-log2d+m×f)×h/d bit,该设计方法可大幅降低第二目录的硬件资源开销。
在本发明的一个优选实施例中,还包括:
在每个节点服务器发送的读请求包中添加拟调换掉的缓存数据对应的内存地址编码和有效位。
在本发明的一个优选实施例中,还包括:
响应于发起请求的节点服务器的处理器缓存资源全部用尽,将有效位置1。
在本发明的一个优选实施例中,还包括:
响应于节点服务器中的协议处理设备收到有效位置1的请求,根据内存地址编码信息将目录中对应内存地址的共享状态全部置为无效,回收对应行目录资源用于填充新的内存地址的共享信息。为了保障缓存一致性维护系统在此有限目录资源情况下的可靠运行,提出了一种携带缓存数据失效信息的访存方法,该方法是在读请求包中添加拟调换掉的缓存数据对应的内存地址编码以及有效位,如图5所示,考虑到协议处理设备对请求数据包的解析效率,R-valid位(有效位)只有在发起请求的处理器缓存资源全部用尽的情况下置1,当协议处理设备收到R-valid位置1的请求时,可根据R-addr(内存地址编码)信息将目录中对应内存地址的共享状态全部置无效,回收该行目录资源用于填充新的内存地址的共享信息,该方法可有效提升目录资源利用率,保障目录模块的可靠运行。
实施例
某计算系统由64个节点服务器构成,每个节点服务器配备4路处理器及2 TB内存,每个处理器拥有32 MB的缓存容量以及32个CA,cacheline大小为64 Byte。系统缓存容量共8192 MB,内存容量共128 TB,内存地址编码共47位,其中高6位对应64个节点,整个系统的内存地址进行统一编码。任意节点服务器中的任意处理器核均可向任意一个内存地址发起请求,缓存一致性的维护工作由节点服务器中的协议处理设备完成。
协议处理设备中的第一模块负责维护节点服务器内部的缓存一致性,其中的第一目录记录了本地服务器中4个处理器共128个CA中的cacheline的状态信息,由于从内存向缓存迁移数据都是按照cacheline大小为单位替换的,因此第一目录中无需记录内存地址的后6位。Cacheline的状态可分为独占、分享和无效状态,因此状态编码长度为2。根据上述第一目录设计方法可知当节点服务器内的处理器缓存被不同内存地址的数据全部填充时,第一目录的资源刚好也被全部占用。此种目录设计方法的硬件资源开销根据公式计算可得为74.3 MB。
每个节点服务器只需维护自身配备的2 TB内存部分即可,例如第一节点服务器只负责维护内存地址为47’h000000000000 ~ 47’h01ffffffffff的部分内存,第二节点服务器只负责维护内存地址为47’h020000000000 ~ 47’h03ffffffffff的部分内存,……第64节点服务器只负责维护内存地址为47’h7e0000000000 ~ 47’h7fffffffffff的部分内存,因此通过路由设备转发至本地服务器的请求中内存地址的前6位均相同,无需记录。根据上述第二目录设计方法可知当系统内所有节点服务器内的处理器缓存被不同内存地址的数据全部填充时,第二目录的资源刚好也被全部占用,此种目录设计方法的硬件资源开销根据公式计算可得为2.55 GB。
存在一种极限情况,系统中所有的处理器缓存中的数据都来自同一个节点服务器维护的内存地址段中的不同地址的数据拷贝,此时该节点服务器中的第二目录资源已被全部占据,此时一处理器核发起了对该节点服务器维护的内存地址段中的另外一个内存地址的访问请求,第二目录中已无空间记录新的内存地址的数据共享状态,携带缓存数据失效信息的访存方法便可同时将可替换的内存地址编码发送至该节点服务器的协议处理设备,可替换的内存地址共享状态便可被新的内存地址数据共享状态替换掉,以维护缓存一致性系统在此极限情况下的可靠运行。在其它情况下,携带缓存数据失效信息的访存方法可及时将缓存行在该处理器中的失效信息传递给相应协议处理设备,以便及时回收该行目录资源用于填充新的内存地址的共享信息,有效提升目录资源利用率。
该方法可应用于大规模多服务器节点的内存统一编制的计算系统,目录设计方法可有效维护节点内及节点间的缓存一致性,大幅降低了一致性目录的硬件资源开销,携带缓存数据失效信息的访存方法可有效提升目录资源利用率,保障目录模块的可靠运行。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU 执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU 执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种实现缓存一致性的装置,如图6所示,装置200包括:
记录模块,记录模块配置为将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;
第一创建模块,第一创建模块配置为在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;
第二创建模块,第二创建模块配置为在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;
传输模块,传输模块配置为响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图7示出的是本发明提供的计算机设备的实施例的示意图。如图7所示,本发明实施例包括如下装置:至少一个处理器21;以及存储器22,存储器22存储有可在处理器上运行的计算机指令23,指令由处理器执行时实现以下方法:
将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;
在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;
在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;
响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。
在本发明的一个优选实施例中,将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码包括:
获取节点服务器的数量,并根据节点服务器的数据计算每个节点服务器的节点编码;
将每个节点服务器的节点编码存储到路由设备中。
在本发明的一个优选实施例中,获取节点服务器的数量,并根据节点服务器的数据计算每个节点服务器的节点编码包括:
使用公式n=log2m计算节点编码的位数,其中m为节点服务器的数量,n为节点编码的位数;
将每个节点服务器的内存地址的前n位设置为节点服务器的编码。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
使用公式行数=(b×c)/d计算第一目录的行数,其中b为节点服务器内处理器的数目,c为处理器缓存容量,d为缓存行的大小。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
在第一目录中的每一行的头部记录内存地址;
使用公式个数=b×c计算第一目录中每一行中状态码的个数,其中b为节点服务器内处理器的数目,c为处理器缓存容量,状态码依次记录在内存地址的后面。
在本发明的一个优选实施例中,在第一目录中的每一行的头部记录内存地址包括:
在第一目录中的每一行的头部记录的内存地址为忽略低log2d位后的内存地址,其中d为缓存行的大小。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
使用公式行数=h/d计算第二目录的行数,其中h为计算系统内所有处理器缓存容量的总和,d为缓存行的大小。
在本发明的一个优选实施例中,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
在第二目录中的每一行的头部记录内存地址;
状态码依次记录在内存地址的后面,第二目录中每一行的状态码为m个,m为节点服务器数量。
在本发明的一个优选实施例中,在第二目录中的每一行的头部记录内存地址包括:
在第二目录中的每一行的头部记录的内存地址为忽略低log2d位和忽略高log2m位后的内存地址,其中d为缓存行的大小,m为节点服务器数量。
在本发明的一个优选实施例中,还包括:
在每个节点服务器发送的读请求包中添加拟调换掉的缓存数据对应的内存地址编码和有效位。
在本发明的一个优选实施例中,还包括:
响应于发起请求的节点服务器的处理器缓存资源全部用尽,将有效位置1。
在本发明的一个优选实施例中,还包括:
响应于节点服务器中的协议处理设备收到有效位置1的请求,根据内存地址编码信息将目录中对应内存地址的共享状态全部置为无效,回收对应行目录资源用于填充新的内存地址的共享信息。
基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图8示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图8所示,计算机可读存储介质31存储有被处理器执行时执行如上方法的计算机程序32。
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (15)
1.一种实现缓存一致性的方法,其特征在于,包括以下步骤:
将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;
在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;
在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;
响应于路由设备接收到请求数据包,经由路由设备将请求数据包转发到相应的节点服务器。
2.根据权利要求1所述的方法,其特征在于,将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码包括:
获取节点服务器的数量,并根据节点服务器的数量计算每个节点服务器的节点编码;
将每个节点服务器的节点编码存储到路由设备中。
3.根据权利要求2所述的方法,其特征在于,获取节点服务器的数量,并根据节点服务器的数量计算每个节点服务器的节点编码包括:
使用公式n=log2m计算节点编码的位数,其中m为节点服务器的数量,n为节点编码的位数;
将每个节点服务器的内存地址的前n位设置为节点服务器的编码。
4.根据权利要求1所述的方法,其特征在于,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
使用公式行数=(b×c)/d计算第一目录的行数,其中b为节点服务器内处理器的数目,c为处理器缓存容量,d为缓存行的大小。
5.根据权利要求1所述的方法,其特征在于,在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录包括:
在第一目录中的每一行的头部记录内存地址;
使用公式个数=b×e计算第一目录中每一行中状态码的个数,其中b为节点服务器内处理器的数目,e为处理器内CA数目,状态码依次记录在内存地址的后面。
6.根据权利要求5所述的方法,其特征在于,在第一目录中的每一行的头部记录内存地址包括:
在第一目录中的每一行的头部记录的内存地址为忽略低log2d位后的内存地址,其中d为缓存行的大小。
7.根据权利要求1所述的方法,其特征在于,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
使用公式行数=h/d计算第二目录的行数,其中h为计算系统内所有处理器缓存容量的总和,d为缓存行的大小。
8.根据权利要求1所述的方法,其特征在于,在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录包括:
在第二目录中的每一行的头部记录内存地址;
状态码依次记录在内存地址的后面,第二目录中每一行的状态码为m个,m为节点服务器数量。
9.根据权利要求8所述的方法,其特征在于,在第二目录中的每一行的头部记录内存地址包括:
在第二目录中的每一行的头部记录的内存地址为忽略低log2d位和忽略高log2m位后的内存地址,其中d为缓存行的大小,m为节点服务器数量。
10.根据权利要求1所述的方法,其特征在于,还包括:
在每个节点服务器发送的读请求包中添加拟调换掉的缓存数据对应的内存地址编码和有效位。
11.根据权利要求10所述的方法,其特征在于,还包括:
响应于发起请求的节点服务器的处理器缓存资源全部用尽,将有效位置1。
12.根据权利要求11所述的方法,其特征在于,还包括:
响应于节点服务器中的协议处理设备收到有效位置1的请求,根据内存地址编码信息将目录中对应内存地址的共享状态全部置为无效,回收对应行目录资源用于填充新的内存地址的共享信息。
13.一种实现缓存一致性的装置,其特征在于,所述装置包括:
记录模块,所述记录模块配置为将计算系统内的每个节点服务器中的协议处理设备连接到路由设备,并在路由设备中记录每个节点服务器的节点编码;
第一创建模块,所述第一创建模块配置为在每个节点服务器中的协议处理设备中创建负责节点内缓存一致性的第一模块,并在第一模块中创建记录节点服务器内每个处理器节点缓存状态的第一目录;
第二创建模块,所述第二创建模块配置为在每个节点服务器中的协议处理设备中创建负责节点间缓存一致性的第二模块,并在第二模块中创建记录节点服务器负责的内存地址共享状态的第二目录;
传输模块,所述传输模块配置为响应于路由设备接收到请求数据包,经由所述路由设备将请求数据包转发到相应的节点服务器。
14. 一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-12任意一项所述方法的步骤。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-12任意一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211422073.0A CN115514772B (zh) | 2022-11-15 | 2022-11-15 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
PCT/CN2023/115891 WO2024103907A1 (zh) | 2022-11-15 | 2023-08-30 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211422073.0A CN115514772B (zh) | 2022-11-15 | 2022-11-15 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115514772A CN115514772A (zh) | 2022-12-23 |
CN115514772B true CN115514772B (zh) | 2023-03-10 |
Family
ID=84514040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211422073.0A Active CN115514772B (zh) | 2022-11-15 | 2022-11-15 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115514772B (zh) |
WO (1) | WO2024103907A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115514772B (zh) * | 2022-11-15 | 2023-03-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN105959176A (zh) * | 2016-04-25 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 基于Gem5模拟器的一致性协议测试方法和系统 |
CN107315694A (zh) * | 2016-04-22 | 2017-11-03 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
CN114153602A (zh) * | 2021-11-20 | 2022-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于硬件numa的一致性维护系统和一致性维护服务器 |
CN115203071A (zh) * | 2021-04-14 | 2022-10-18 | 慧与发展有限责任合伙企业 | 默认共享状态缓存一致性协议的应用 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920485B2 (en) * | 2001-10-04 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Packet processing in shared memory multi-computer systems |
US7082500B2 (en) * | 2003-02-18 | 2006-07-25 | Cray, Inc. | Optimized high bandwidth cache coherence mechanism |
US9235519B2 (en) * | 2012-07-30 | 2016-01-12 | Futurewei Technologies, Inc. | Method for peer to peer cache forwarding |
CN103294612B (zh) * | 2013-03-22 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
CN103294611B (zh) * | 2013-03-22 | 2015-06-17 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
US20150254182A1 (en) * | 2014-03-07 | 2015-09-10 | Cavium, Inc. | Multi-core network processor interconnect with multi-node connection |
US11169921B2 (en) * | 2019-05-09 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Ternary content addressable memory-enhanced cache coherency acceleration |
CN115514772B (zh) * | 2022-11-15 | 2023-03-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
-
2022
- 2022-11-15 CN CN202211422073.0A patent/CN115514772B/zh active Active
-
2023
- 2023-08-30 WO PCT/CN2023/115891 patent/WO2024103907A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN107315694A (zh) * | 2016-04-22 | 2017-11-03 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
CN105959176A (zh) * | 2016-04-25 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 基于Gem5模拟器的一致性协议测试方法和系统 |
CN115203071A (zh) * | 2021-04-14 | 2022-10-18 | 慧与发展有限责任合伙企业 | 默认共享状态缓存一致性协议的应用 |
CN114153602A (zh) * | 2021-11-20 | 2022-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于硬件numa的一致性维护系统和一致性维护服务器 |
Non-Patent Citations (2)
Title |
---|
Godson-T缓存一致性协议的Murphi建模和验证;周琰;《计算机系统应用》;20131015(第10期);全文 * |
一种基于共享转发态的多级缓存一致性协议;陈继承等;《计算机研究与发展》;20170415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115514772A (zh) | 2022-12-23 |
WO2024103907A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150058570A1 (en) | Method of constructing share-f state in local domain of multi-level cache coherency domain system | |
Monga et al. | ElfStore: A resilient data storage service for federated edge and fog resources | |
CN115514772B (zh) | 一种实现缓存一致性的方法、装置、设备及可读介质 | |
CN107229593B (zh) | 多片多核处理器的缓存一致性操作方法及多片多核处理器 | |
WO2015135385A1 (zh) | 服务器及数据访问方法 | |
JP2012530294A (ja) | ガベージコレクション中の分散キャッシュの可用性 | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
US20190057032A1 (en) | Cache Coherence Management Method and Node Controller | |
CN114625762A (zh) | 一种元数据获取方法、网络设备及系统 | |
CN117591038B (zh) | 一种数据访问方法、装置、分布式存储系统及设备和介质 | |
CN112256604A (zh) | 直接存储器访问系统和方法 | |
CN106164874B (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
CN107368435B (zh) | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 | |
US6795900B1 (en) | Method and system for storing data at input/output (I/O) interfaces for a multiprocessor system | |
Shu et al. | Binary reed-solomon coding based distributed storage scheme in information-centric fog networks | |
CN115858409A (zh) | 一种数据预取方法、计算节点和存储系统 | |
CN116414563A (zh) | 内存控制装置、缓存一致性系统和缓存一致性方法 | |
CN117827706A (zh) | 数据处理方法、数据处理装置、电子设备和存储介质 | |
CN101377788A (zh) | 一种机群文件系统中缓存管理的方法及系统 | |
US11726788B2 (en) | Tuple checkout with notify in coordination namespace system | |
US7114031B2 (en) | Structure and method of cache memory data update | |
CN113626369A (zh) | 一种多节点集群环形通信的方法、装置、设备及可读介质 | |
US11947418B2 (en) | Remote access array | |
KR102338756B1 (ko) | 블록 데이터를 공유하는 블록체인 네트워크의 시뮬레이션 방법 및 이를 이용하는 시스템 | |
US6981101B1 (en) | Method and system for maintaining data at input/output (I/O) interfaces for a multiprocessor system |
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 |