CN103049392B - 缓存目录的实现方法及装置 - Google Patents
缓存目录的实现方法及装置 Download PDFInfo
- Publication number
- CN103049392B CN103049392B CN201210395299.6A CN201210395299A CN103049392B CN 103049392 B CN103049392 B CN 103049392B CN 201210395299 A CN201210395299 A CN 201210395299A CN 103049392 B CN103049392 B CN 103049392B
- Authority
- CN
- China
- Prior art keywords
- data
- directory
- publicly
- owned
- target data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种缓存目录的实现方法及装置,涉及通信领域,用于解决现有技术中缓存目录的访问速度慢且存储使用率较低的问题。本发明提供的方法包括:创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息;当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据;根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息。本发明适用于通信领域,用于记录多处理器***中数据的数据块信息。
Description
技术领域
本发明涉及通信领域,尤其涉及一种缓存目录的实现方法及装置。
背景技术
处理器(CPU)是终端设备和服务器设备中必不可少的重要部件。随着终端设备和服务器设备性能的不断提高,多核处理器***逐渐成为主流,例如常见的UMA(UniformMemoryAccess,统一内存访问)***和NUMA(Non-UniformMemoryAccess,非统一内存访问)***等,均包括多个处理器模块。在多核处理器***中,由于读写速度的差异,当CPU进行存储器访问时,会优先从本地cache查找并获取目标数据;若该CPU的本地高速缓冲存储器(cache)中没有存储目标数据,则从其他CPU的cache中查找并获取目标数据;若其他CPU的本地cache中没有存储目标数据,则从内存中查找并获取目标数据。
根据上述CPU查找及获取目标用户的方法,需要对cache和内存中的数据进行缓存一致性处理,以对处理器***中存储的数据进行统计。一种实现方法是通过建立缓存目录、以目录的方式记录多CPU***中的缓存数据和共享数据的位置和状态。一种较为常见的缓存目录是全映射目录,该目录完整的存储了处理器***中所有地址空间(包括内存和cache)的数据信息,包括所有的共享数据在各处理器cache中的缓存信息。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:由于处理器***中的地址空间较大、处理器数量较多,所以全映射目录所占的存储空间较大,使得全映射目录的访问速度慢且存储使用率较低。
发明内容
本发明的实施例提供一种缓存目录的实现方法及装置,能够解决现有技术中缓存目录的访问速度慢且存储使用率较低的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种缓存目录的实现方法,所述方法包括:
创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息;
当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据;
根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息。
在一种可能的实现方式中,所述方法还包括:
接收第一处理器发送的读写请求,所述读写请求包括目标数据的物理地址;
所述当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,包括:根据所述读写请求确定目标数据的物理地址,检测所述缓存目录中是否记录有所述目标数据的物理地址。
在一种可能的情况下:
如果所述缓存目录中没有记录所述目标数据的物理地址,则确定所述目标数据的数据类型为私有数据;
则所述根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息,包括:在所述私有数据目录中记录所述目标数据的数据块信息,包括所述目标数据的物理地址以及对所述目标数据块进行读写操作的处理器标识,即第一处理器的标识。
在另一种可能的情况下:
如果所述缓存目录中记录有所述目标数据的物理地址,所述确定该读写请求对应的目标数据的数据类型,包括:
(1)当所述目标数据的物理地址记录于所述缓存目录中的私有数据目录中时,检测所述私有数据目录中该物理地址对应的处理器标识与第一处理器的标识是否相同;若是,则确定所述目标数据的数据类型为私有数据;若否,则确定所述目标数据的数据类型为公有数据;则所述根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息,包括:如果确定所述目标数据的数据类型为私有数据,则根据所述读写请求在所述私有数据目录中更新所述目标数据的数据块信息,所述数据块信息包括所述目标数据的读写次数、读写时间;如果确定所述目标数据的数据类型为公有数据,则将所述目标数据的数据块信息记录于所述公有数据目录中,将所述目标数据在所述私有数据目录中的目录项置为无效。
(2)当所述目标数据的物理地址记录于所述缓存目录中的公有数据目录中时,所述确定该读写请求对应的目标数据的数据类型,包括:确定所述目标数据的数据类型为公有数据;则所述根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息,包括:在所述缓存目录中的公有数据目录中对所述目标数据的位向量标识进行修改,在所述位向量标识中增加第一处理器的信息。
第二方面,本发明实施例还提供了一种缓存目录的实现装置,所述装置包括:
建立单元,用于创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息;
确定单元,用于当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据;
记录单元,用于根据所述确定单元确定的数据类型,在所述建立单元创建的缓存目录中记录所述目标数据的数据块信息。
在一种可能的实现方式中,所述装置还包括:
接收单元,用于接收第一处理器发送的读写请求,所述读写请求包括目标数据的物理地址。
所述确定单元包括:检测模块,用于根据所述读写请求确定目标数据的物理地址,检测所述缓存目录中是否记录有所述目标数据的物理地址;
在一种可能的情况下:
所述确定单元用于当所述检测模块检测缓存目录中没有记录所述目标数据的物理地址时,确定所述目标数据的数据类型为私有数据;
所述记录单元具体用于在所述私有数据目录中记录所述目标数据的数据块信息,包括所述目标数据的物理地址以及对所述目标数据块进行读写操作的处理器标识,即第一处理器的标识。
在另一种可能的情况下:
当所述检测模块确定所述缓存目录中记录有所述目标数据的物理地址时,所述检测模块还用于进一步确定所述目标数据的在所述缓存目录中的具***置,所述具***置包括私有数据目录和公有数据目录;
(1)所述检测模块还用于当确定所述目标数据的物理地址记录于所述缓存目录中的私有数据目录时,检测所述私有数据目录中该物理地址对应的处理器标识与第一处理器的标识是否相同;若是,则所述确定单元确定所述目标数据的数据类型为私有数据;若否,则所述确定单元确定所述目标数据的数据类型为公有数据;
所述记录单元具体用于当确定所述目标数据的数据类型为私有数据时,根据所述读写请求在所述私有数据目录中更新所述目标数据的数据块信息,所述数据块信息包括所述目标数据的读写次数、读写时间;以及
所述记录单元具体用于当确定所述目标数据的数据类型为公有数据时,将所述目标数据的数据块信息记录于所述公有数据目录中,将所述目标数据在所述私有数据目录中的目录项置为无效。
(2)所述确定单元用于当所述检测模块确定所述目标数据的物理地址记录于所述公有数据目录中时,确定所述目标数据的数据类型为公有数据;
所述记录单元用于在所述缓存目录中的公有数据目录中对所述目标数据的位向量标识进行修改,在所述位向量标识中增加第一处理器的信息。
本发明实施例提供的缓存目录的实现方法及装置,建立缓存目录、并将缓存目录划分为私有数据目录和公有数据目录,通过私有数据目录记录处理器***中各处理器的私有数据的数据块信息,通过公有数据目录记录处理器***中多个处理器共享数据的数据块信息。一方面,由于处理器***的cache容量有限,所以能够节省所述缓存目录占用的存储空间;另一方面,由于私有数据仅被唯一的处理器访问,无需记录其他处理器的访问信息,能够有效的提升缓存目录的使用效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的缓存目录的实现方法的流程示意图;
图2为本发明实施例二提供的缓存目录的实现方法的流程示意图;
图3为本发明实施例二提供的私有数据目录的逻辑结构图;
图4、图5、图6为本发明实施例三提供的缓存目录的实现装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种缓存目录的实现方法,如图1所示,所述方法包括:
101、目录缓存控制器创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息。
值得说明的是,本实施例缓存目录用于记录处理器模块的cache中缓存数据的数据块信息,所述处理器模块包括多个处理器,所述cache供所述多个处理器公用。缓存目录的目录项的项数取决于cache中缓存数据的数据量,由于cache的存储空间有限、且cache的存储空间通常远小于处理器模块内存的存储空间,所以本实施例中缓存目录的目录项的项数远小于现有技术中的全映射目录。由于缓存目录的容量较小,所以本实施例中缓存目录的访问速度能够得到较大的提升。
102、当接收到第一处理器发送的读写请求时,所述目录缓存控制器确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据。
103、所述目录缓存控制器根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息。
值得说明的是,由于私有数据仅被唯一的处理器访问,所以在记录私有数据时,无需对私有数据进行缓存一致性处理,仅记录所述私有数据对应的处理器标识,能够有效的节省缓存目录所占用的存储空间,同时还可以记录更多的公有数据的数据块信息,提高缓存目录的使用效率。
本发明实施例提供的缓存目录的实现方法,缓存目录仅记录cache中缓存数据的数据块信息(无需记录内存中数据的数据块信息),所以本实施例中的缓存目录的容量较小,访问速度能够得到较大的提升;另一方面,通过识别私有数据、并在私有数据目录中记录私有数据的数据块信息,由于私有数据目录占用的存储空间较少,所以能够有效的提升缓存目录的使用效率。
实施例二
本发明实施例提供了一种缓存目录的实现方法,如图2所示,所述方法包括:
201、目录缓存控制器创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息。
值得说明的是,与现有技术中的全映射目录不同,本实施例中的缓存目录用于记录处理器***中缓存数据的数据块信息。其中,所述公有数据的数据块信息包括缓存数据的物理地址与位向量标识的对应关系,所述位向量标识包括N个指针,用于表征所述公有数据对应的处理器,所述N是处理器的个数;所述私有数据的数据信息包括缓存数据的物理地址以及该缓存数据对应的处理器标识。
202、所述目录缓存控制器接收第一处理器发送的读写请求,所述读写请求包括目标数据的物理地址。
本实施例提供的方法适用于多核处理器***中的处理器模块,该处理器模块包括多个处理器、cache、以及内存,其中,所述cache和内存供所述多个处理器共用。
203、所述目录缓存控制器根据所述读写请求确定目标数据的物理地址,检测所述缓存目录中是否记录有所述目标数据的物理地址;若否,则执行204,若是,则执行205。
204、所述目录缓存控制器确定所述目标数据的数据类型为私有数据,在所述私有数据目录中记录所述目标数据的数据块信息,包括所述目标数据的物理地址以及对所述目标数据块进行读写操作的处理器标识,即第一处理器的标识。
也就是说,本实施例提供的缓存目录的实现方法,在对所有的数据进行初始记录时,均作为私有数据进行处理。如果后续存在其他处理器对某一数据进行读写操作,则将该数据的数据类型修改为公有数据。
205、所述目录缓存控制器进一步检测所述目标数据的物理地址在所述缓存目录中的具***置;如果所述目标数据的物理地址记录于所述缓存目录中的公有数据目录中,执行206;如果所述目标数据的物理地址记录于所述缓存目录中的私有数据目录中,执行207。
206、所述目录缓存控制器确定所述目标数据的数据类型为公有数据;在所述缓存目录中的公有数据目录中对所述目标数据的位向量标识进行修改,在所述位向量标识中增加第一处理器的信息。
由于公有数据会被多个处理器进行读写操作,所以公有数据目录中的每个目录项包括N个指针(N是当前处理器模块中处理器的个数),这些指针构成位向量标识,每个位向量标识所占用的存储空间为N比特。
207、所述目录缓存控制器检测所述目标数据的物理地址对应的处理器标识与第一处理器的标识是否相同;若是,则执行208;若否,则执行209。
208、所述目录缓存控制器确定所述目标数据的数据类型为私有数据,根据所述读写请求在所述私有数据目录中更新所述目标数据的数据块信息,所述数据块信息包括所述目标数据的读写次数、读写时间。
具体的,为了便于理解,本发明实施例提供了一种私有数目目录的逻辑结构图,如图3所示,所述私有数据目录项包括物理地址位(Block_Address表示私有数据的物理地址)、处理器标识位(n表示私有数据对应的处理器标识)、有效位(1表示当前目录项有效,0表示当前目录项无效)。其中,物理地址位的长度取决于处理器模块中地址线的长度,处理器标识位的长度取决于处理器的个数,有效位的长度固定为1比特。具体的,如果当前处理器模块由N个处理器构成,则处理器标识位的长度为LogN比特。由此可见,与公有数据目录中的位向量标识相比,记录一个物理地址的数据块信息能够节省(N-LogN-1)比特,所以从目标数据中识别出私有数据能够有效的节省存储空间。以包括N=64个处理器的处理器模块为例,记录一个私有数据比记录一个公有数据能够节省N-LogN-1=57比特。
值得说明的是,在多处理器***,私有数据的数据量是很大的,例如:TPC-H程序中的私有数据量约为20%-25%,OLTP(On-LineTransactionProcessing,联机事务处理***)Oracle数据库中的私有数据量约为35%科学计算程序为80%以上。所以,在多处理器***中采用本实施例提供的方法,能够有效提升缓存目录的使用效率。
209、所述目录缓存控制器确定所述目标数据的数据类型为公有数据,将所述目标数据的数据块信息记录于所述公有数据目录中,并将所述目标数据在所述私有数据目录中的目录项置为无效。
优选的,当所述公有数据目录和私有数据目录中没有空闲目录项时,所述方法还包括:所述目录缓存控制器在所述公有数据目录和私有数据目录中确定指定目录项作为可替换目录项,对该指定目录项进行替换,以记录所述目标数据的数据块信息。
例如,所述目录缓存控制器可以为所述公有数据目录和私有数据目录分别设定时间阈值,将超过预设时间阈值还没有被访问的目录项确定为可替换目录项。
可选的,如果所述超过预设时间阈值还没有被访问的目录项为零,则所述目录缓存控制器可以在所述公有数据目录和私有数据目录中查找使用次数最少的目标项,确定该目录项为可替换目录项。
需要特别强调的是,本发明实施例提供的缓存目录的实现方法,只需修改目录缓存结构即可识别出私有数据,无需对多处理器***中的硬件或软件进行任何修改,便于实现。
本发明实施例提供的缓存目录的实现方法,缓存目录仅记录cache中缓存数据的数据块信息(无需记录内存中数据的数据块信息),所以本实施例中的缓存目录的容量较小,访问速度能够得到较大的提升;另一方面通过识别出私有数据并在所述私有数据目录中对所述私有数据进行记录,能够有效的提升缓存目录的使用效率。
实施例三
本发明实施例提供了一种缓存目录的实现装置,能够实现上述方法实施例,如图4所示,所述装置包括:
建立单元41,用于创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息;
确定单元42,用于当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据;
记录单元43,用于根据所述确定单元42确定的数据类型,在所述建立单元41创建的缓存目录中记录所述目标数据的数据块信息。
具体的,所述建立单元41创建的缓存目录用于记录处理器***中缓存数据的数据块信息;其中,所述公有数据的数据块信息包括缓存数据的物理地址与位向量标识的对应关系,所述位向量标识包括N个指针,用于表征所述公有数据对应的处理器,所述N是处理器的个数;所述私有数据的数据信息包括缓存数据的物理地址以及该缓存数据对应的处理器标识。
进一步的,如图5所示,所述装置还包括:
接收单元44,用于接收第一处理器发送的读写请求,所述读写请求包括目标数据的物理地址。
具体的,如图5所示,所述确定单元42包括检测模块421,用于根据所述读写请求确定目标数据的物理地址,检测所述缓存目录中是否记录有所述目标数据的物理地址;
一方面,所述确定单元42用于当所述检测模块421检测缓存目录中没有记录所述目标数据的物理地址时,确定所述目标数据的数据类型为私有数据;
所述记录单元43具体用于在所述私有数据目录中记录所述目标数据的数据块信息,包括所述目标数据的物理地址以及对所述目标数据块进行读写操作的处理器标识,即第一处理器的标识。
另一方面,当所述检测模块421确定所述缓存目录中记录有所述目标数据的物理地址时,所述检测模块421还用于进一步确定所述目标数据的在所述缓存目录中的具***置,所述具***置包括私有数据目录和公有数据目录;
具体的,所述检测模块421还用于当确定所述目标数据的物理地址记录于所述缓存目录中的私有数据目录时,检测所述私有数据目录中该物理地址对应的处理器标识与第一处理器的标识是否相同;若是,则所述确定单元42确定所述目标数据的数据类型为私有数据;若否,则所述确定单元42确定所述目标数据的数据类型为公有数据;
所述记录单元43具体用于当确定所述目标数据的数据类型为私有数据时,根据所述读写请求在所述私有数据目录中更新所述目标数据的数据块信息,所述数据块信息包括所述目标数据的读写次数、读写时间;以及
所述记录单元43具体还用于当确定所述目标数据的数据类型为公有数据时,将所述目标数据的数据块信息记录于所述公有数据目录中,将所述目标数据在所述私有数据目录中的目录项置为无效。
再一方面,所述确定单元42用于当所述检测模块421确定所述目标数据的物理地址记录于所述公有数据目录中时,确定所述目标数据的数据类型为公有数据;
所述记录单元43用于在所述缓存目录中的公有数据目录中对所述目标数据的位向量标识进行修改,在所述位向量标识中增加第一处理器的信息。
可选的,如图6所示,所述装置还包括替换单元45,用于当所述公有数据目录和私有数据目录中没有空闲目录项时,在所述公有数据目录和私有数据目录中确定指定目录项作为可替换目录项,对该指定目录项进行替换,以记录所述目标数据的数据块信息。
具体的,如图6所示,所述替换单元45包括阈值设定模块451,用于为所述公有数据目录和私有数据目录分别设定时间阈值,以使得所述替换单元45将超过预设时间阈值还没有被访问的目录项确定为可替换目录项。
可选的,如图6所示,所述替换单元45还包括统计模块452,用于当所述阈值设定模块451确定的超过预设时间阈值还没有被访问的目录项为零时,在所述公有数据目录和私有数据目录中查找使用次数最少的目标项,确定该目录项为可替换目录项。
本发明实施例提供的缓存目录的实现装置,建立单元41建立的缓存目录仅记录cache中缓存数据的数据块信息(无需记录内存中数据的数据块信息),所以本实施例中的缓存目录的容量较小,访问速度能够得到较大的提升;另一方面本实施例中的缓存目录的实现装置能够通过识别出私有数据并在所述私有数据目录中对所述私有数据进行记录,从而有效的提升缓存目录的使用效率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种缓存目录的实现方法,其特征在于,包括:
创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息;
当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据;
根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息。
2.根据权利要求1所述的方法,其特征在于,所述缓存目录用于记录处理器***中缓存数据的数据块信息;
其中,所述公有数据的数据块信息包括缓存数据的物理地址与位向量标识的对应关系,所述位向量标识包括N个指针,用于表征所述公有数据对应的处理器,所述N是处理器的个数;所述私有数据的数据块信息包括缓存数据的物理地址以及该缓存数据对应的处理器标识。
3.根据权利要求1或2所述的方法,其特征在于,所述当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型之前,包括:
接收第一处理器发送的读写请求,所述读写请求包括目标数据的物理地址。
4.根据权利要求3所述的方法,其特征在于,所述当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,包括:
根据所述读写请求确定目标数据的物理地址,检测所述缓存目录中是否记录有所述目标数据的物理地址;
如果所述缓存目录中没有记录所述目标数据的物理地址,则确定所述目标数据的数据类型为私有数据;
则所述根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息,包括:
在所述私有数据目录中记录所述目标数据的数据块信息,包括所述目标数据的物理地址以及对所述目标数据块进行读写操作的处理器标识,即第一处理器的标识。
5.根据权利要求4所述的方法,其特征在于,如果所述缓存目录中记录有所述目标数据的物理地址,所述确定该读写请求对应的目标数据的数据类型,包括:
当所述目标数据的物理地址记录于所述缓存目录中的私有数据目录中时,检测所述私有数据目录中该物理地址对应的处理器标识与第一处理器的标识是否相同;若是,则确定所述目标数据的数据类型为私有数据;若否,则确定所述目标数据的数据类型为公有数据;
则所述根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息,包括:
如果确定所述目标数据的数据类型为私有数据,则根据所述读写请求在所述私有数据目录中更新所述目标数据的数据块信息,所述数据块信息包括所述目标数据的读写次数、读写时间;
如果确定所述目标数据的数据类型为公有数据,则将所述目标数据的数据块信息记录于所述公有数据目录中,将所述目标数据在所述私有数据目录中的目录项置为无效。
6.根据权利要求5所述的方法,其特征在于,当所述目标数据的物理地址记录于所述缓存目录中的公有数据目录中时,所述确定该读写请求对应的目标数据的数据类型,包括:
确定所述目标数据的数据类型为公有数据;
则所述根据所述数据类型,在所述缓存目录中记录所述目标数据的数据块信息,包括:
在所述缓存目录中的公有数据目录中对所述目标数据的位向量标识进行修改,在所述位向量标识中增加第一处理器的信息。
7.根据权利要求1所述的方法,其特征在于,当所述公有数据目录和私有数据目录中没有空闲目录项时,所述当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型之后,还包括:
在所述公有数据目录和私有数据目录中确定指定目录项作为可替换目录项,对该指定目录项进行替换,以记录所述目标数据的数据块信息。
8.根据权利要求7所述的方法,其特征在于,所述在所述公有数据目录和私有数据目录中确定指定目录项作为可替换目录项,包括:
为所述公有数据目录和私有数据目录分别设定时间阈值,将超过预设时间阈值还没有被访问的目录项确定为可替换目录项。
9.根据权利要求8所述的方法,其特征在于,当所述超过预设时间阈值还没有被访问的目录项为零时,所述在所述公有数据目录和私有数据目录中确定指定目录项作为可替换目录项,还包括:
在所述公有数据目录和私有数据目录中查找使用次数最少的目标项,确定该目录项为可替换目录项。
10.一种缓存目录的实现装置,其特征在于,包括:
建立单元,用于创建缓存目录,所述缓存目录包括公有数据目录和私有数据目录,所述公有数据目录用于记录公有数据的数据块信息,所述私有数据目录用于记录私有数据的数据块信息;
确定单元,用于当接收到第一处理器发送的读写请求时,确定该读写请求对应的目标数据的数据类型,所述数据类型包括私有数据、或公有数据;
记录单元,用于根据所述确定单元确定的数据类型,在所述建立单元创建的缓存目录中记录所述目标数据的数据块信息。
11.根据权利要求10所述的装置,其特征在于,所述建立单元创建的缓存目录用于记录处理器***中缓存数据的数据块信息;
其中,所述公有数据的数据块信息包括缓存数据的物理地址与位向量标识的对应关系,所述位向量标识包括N个指针,用于表征所述公有数据对应的处理器,所述N是处理器的个数;所述私有数据的数据块信息包括缓存数据的物理地址以及该缓存数据对应的处理器标识。
12.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收第一处理器发送的读写请求,所述读写请求包括目标数据的物理地址。
13.根据权利要求12所述的装置,其特征在于,所述确定单元包括:
检测模块,用于根据所述读写请求确定目标数据的物理地址,检测所述缓存目录中是否记录有所述目标数据的物理地址;
所述确定单元用于当所述检测模块检测缓存目录中没有记录所述目标数据的物理地址时,确定所述目标数据的数据类型为私有数据;
所述记录单元具体用于在所述私有数据目录中记录所述目标数据的数据块信息,包括所述目标数据的物理地址以及对所述目标数据块进行读写操作的处理器标识,即第一处理器的标识。
14.根据权利要求13所述的装置,其特征在于,当所述检测模块确定所述缓存目录中记录有所述目标数据的物理地址时,所述检测模块还用于进一步检测所述目标数据的在所述缓存目录中的具***置,所述具***置包括私有数据目录和公有数据目录;
所述检测模块具体用于当确定所述目标数据的物理地址记录于所述缓存目录中的私有数据目录时,检测所述私有数据目录中该物理地址对应的处理器标识与第一处理器的标识是否相同;若是,则所述确定单元确定所述目标数据的数据类型为私有数据;若否,则所述确定单元确定所述目标数据的数据类型为公有数据;
所述记录单元具体用于当确定所述目标数据的数据类型为私有数据时,根据所述读写请求在所述私有数据目录中更新所述目标数据的数据块信息,所述数据块信息包括所述目标数据的读写次数、读写时间;以及
所述记录单元具体用于当确定所述目标数据的数据类型为公有数据时,将所述目标数据的数据块信息记录于所述公有数据目录中,将所述目标数据在所述私有数据目录中的目录项置为无效。
15.根据权利要求14所述的装置,其特征在于,所述确定单元具体用于当所述检测模块确定所述目标数据的物理地址记录于所述公有数据目录中时,确定所述目标数据的数据类型为公有数据;
所述记录单元用于在所述缓存目录中的公有数据目录中对所述目标数据的位向量标识进行修改,在所述位向量标识中增加第一处理器的信息。
16.根据权利要求10所述的装置,其特征在于,所述装置还包括:
替换单元,用于当所述公有数据目录和私有数据目录中没有空闲目录项时,在所述公有数据目录和私有数据目录中确定指定目录项作为可替换目录项,对该指定目录项进行替换,以记录所述目标数据的数据块信息。
17.根据权利要求16所述的装置,其特征在于,所述替换单元包括阈值设定模块,用于为所述公有数据目录和私有数据目录分别设定时间阈值,以使得所述替换单元将超过预设时间阈值还没有被访问的目录项确定为可替换目录项。
18.根据权利要求17所述的装置,其特征在于,所述替换单元还包括统计模块,用于当所述阈值设定模块确定的超过预设时间阈值还没有被访问的目录项为零时,在所述公有数据目录和私有数据目录中查找使用次数最少的目标项,确定该目录项为可替换目录项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210395299.6A CN103049392B (zh) | 2012-10-17 | 2012-10-17 | 缓存目录的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210395299.6A CN103049392B (zh) | 2012-10-17 | 2012-10-17 | 缓存目录的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049392A CN103049392A (zh) | 2013-04-17 |
CN103049392B true CN103049392B (zh) | 2016-04-06 |
Family
ID=48062039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210395299.6A Active CN103049392B (zh) | 2012-10-17 | 2012-10-17 | 缓存目录的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049392B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279575A (zh) * | 2013-06-20 | 2013-09-04 | 福建伊时代信息科技股份有限公司 | 文件信息处理方法及装置 |
CN107003932B (zh) | 2014-09-29 | 2020-01-10 | 华为技术有限公司 | 多核处理器***的缓存目录处理方法和目录控制器 |
WO2016049808A1 (zh) * | 2014-09-29 | 2016-04-07 | 华为技术有限公司 | 多核处理器***的缓存目录处理方法和目录控制器 |
CN104461932B (zh) * | 2014-11-04 | 2017-05-10 | 浪潮电子信息产业股份有限公司 | 一种面向大数据应用的目录缓存管理方法 |
WO2016202393A1 (en) * | 2015-06-18 | 2016-12-22 | Huawei Technologies Co., Ltd. | Systems and methods for directory based cache coherence |
CN106326143B (zh) * | 2015-06-18 | 2019-08-27 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及*** |
CN108108402B (zh) * | 2017-12-07 | 2020-07-17 | 泰康保险集团股份有限公司 | 数据项释义更新方法和装置 |
CN108280355A (zh) * | 2017-12-26 | 2018-07-13 | 山东浪潮云服务信息科技有限公司 | 一种数据脱敏方法及装置 |
CN114978665A (zh) * | 2022-05-17 | 2022-08-30 | 中原银行股份有限公司 | 一种基于Redis分布式缓存平台的数据校验方法及数据隔离*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265232A (en) * | 1991-04-03 | 1993-11-23 | International Business Machines Corporation | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致***互方法 |
-
2012
- 2012-10-17 CN CN201210395299.6A patent/CN103049392B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265232A (en) * | 1991-04-03 | 1993-11-23 | International Business Machines Corporation | Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致***互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103049392A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049392B (zh) | 缓存目录的实现方法及装置 | |
US11960726B2 (en) | Method and apparatus for SSD storage access | |
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
US9904473B2 (en) | Memory and processor affinity in a deduplicated environment | |
TWI627536B (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
JP6310061B2 (ja) | システムメモリから不揮発性データストレージに移行されるアプリケーションプログラムデータの選択的保持 | |
CN102111448B (zh) | 分布式哈希表dht存储***的数据预取方法、节点和*** | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US20190340132A1 (en) | Flushing pages from solid-state storage device | |
WO2017041570A1 (zh) | 向缓存写入数据的方法及装置 | |
KR20190052546A (ko) | 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 | |
KR20110134840A (ko) | 프로세서 주 메모리용 영구 메모리 | |
WO2017201984A1 (zh) | 一种数据处理的方法、相关设备及存储*** | |
WO2015043376A1 (zh) | 一种页的访问方法和页的访问装置、服务器 | |
TW201432446A (zh) | 一種基於行進策略的平均磨損方法 | |
US10705977B2 (en) | Method of dirty cache line eviction | |
CN112346647A (zh) | 数据存储方法、装置、设备和介质 | |
EP3249539B1 (en) | Method and device for accessing data visitor directory in multi-core system | |
CN107003932B (zh) | 多核处理器***的缓存目录处理方法和目录控制器 | |
CN113138851B (zh) | 一种数据管理方法、相关装置及*** | |
US10268594B2 (en) | Implementing paging device selection based on wear-level data | |
Liu et al. | Efficient wear leveling for PCM/DRAM-based hybrid memory | |
CN111796757B (zh) | 一种固态硬盘缓存区管理方法和装置 | |
CN115793957A (zh) | 写数据的方法、装置及计算机存储介质 | |
CN107145305B (zh) | 一种分布式物理磁盘的使用方法及虚拟机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |