CN108664417B - 一种目录更新方法及装置 - Google Patents

一种目录更新方法及装置 Download PDF

Info

Publication number
CN108664417B
CN108664417B CN201710208859.5A CN201710208859A CN108664417B CN 108664417 B CN108664417 B CN 108664417B CN 201710208859 A CN201710208859 A CN 201710208859A CN 108664417 B CN108664417 B CN 108664417B
Authority
CN
China
Prior art keywords
directory
cas
preset
updating
field
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
Application number
CN201710208859.5A
Other languages
English (en)
Other versions
CN108664417A (zh
Inventor
信恒超
曾红义
夏晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710208859.5A priority Critical patent/CN108664417B/zh
Priority to PCT/CN2018/079822 priority patent/WO2018177176A1/zh
Publication of CN108664417A publication Critical patent/CN108664417A/zh
Application granted granted Critical
Publication of CN108664417B publication Critical patent/CN108664417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1012Design facilitation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种目录更新方法及装置。方法包括:确定当前***所适用的目录更新策略;获取访问目标数据地址的CA的数量和所述CA的位置;根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。本发明实施例根据不同的目录更新策略更新所述第一预设目录,有利于提升目录结构的灵活性。

Description

一种目录更新方法及装置
技术领域
本发明涉及通信技术领域,具体涉及一种目录更新方法及装置。
背景技术
随着通信技术的快速发展,计算机对处理器的要求也越来越高,因此,处理器的芯片核数在不断的增加,这导致处理器中维护数据一致性的模块(Home Agent,HA)需要记录的包括高速缓冲存储器Cache的模块(Cache Agent,CA)的数量也越来越多,因此,HA的目录结构如何设计,成为了一个难题。
目前,HA通常采用向量的方式记录CA,向量的宽度与CA的数量相等,当CA的数量大到一定程度时,向量的开销非常大,为了解决这个问题,可以将部分纠错码(ErrorCorrecting Code)空间用来存放HA目录,但是由于受ECC空间的影响,每个目录项的开销不能太大,这会导致记录的目录比较模糊,在回收CA对数据的读取权限时存在较多的多余侦听,对***的性能有负面影响,另外,可以使用精确目录的稀疏Sparse结构,根据CA与其所访问的数据地址的一一映射关系,将目录存储在静态随机存储器(Static Random AccessMemory,SRAM)上,虽然减少了多余侦听的数量,但是目录结构单一,每个目录项的开销非常大。
发明内容
本发明实施例提供一种目录更新方法及装置,提升了目录结构的灵活性。
第一方面,本发明实施例提供一种目录更新方法,方法包括:
确定当前***所适用的目录更新策略;
获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;
根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。
由上可见,计算机设备首先确定当前***所适用的目录更新策略,其次,获取访问目标数据地址的CA的数量和所述CA的位置,最后,根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。可见,所述计算机设备可以根据目录更新策略以及所述CA的数量和所述CA的位置更新所述第一预设目录为不同目录结构的所述第二目录,提升了目录结构的灵活性。
在一个可能的设计中,所述目录更新策略为第一目录更新策略,所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,包括:
当所述CA的数量小于或等于预设阈值时,根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;
当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值。
由上可见,本可能的设计中公开的目录更新方法,除了提升目录结构的灵活性之外,在所述CA的数量较少时精确记录数目和位置,所述CA的数量较多时只记录数量,降低了硬件开销,且同时最大限度的保持了目录的精确性。
在这个可能的设计中,所述当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值,包括:
当所述CA的数量大于所述预设阈值时,根据所述CA的位置确定位于至少一个预设分区的CA的数量;
根据所述至少一个预设分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
由上可见,本可能的设计中公开的目录更新方法,除了提升目录结构的灵活性之外,当所述CA的数量大于所述预设阈值只记录CA的数量时,使用了分区记录CA的数量的方式,可以减少当需要回收CA对所述目标数据地址的读取权限时存在的多余侦听,进一步提升了目录的精确度。
在一个可能的设计中,所述目录更新策略为第二目录更新策略,所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,包括:
根据所述CA的位置确定所述CA中属于至少一个目标区域的CA;
根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
由上可见,本可能的设计中公开的目录更新方法,除了提升目录结构的灵活性之外,通过第二目录更新策略,对于位于所述至少一个目标区域的所述CA记录所述CA的位置,不在所述至少一个目标区域的所述CA只记录所述CA的数量,降低了硬件开销,减少了多余侦听,并最大限度的保持了目录的精确性。
在一个可能的设计中,所述访问目标数据地址的CA的数量包括:读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量。
第二方面,本发明实施例公开一种目录更新装置,该目录更新装置具有实现上述方法设计中目录更新装置的行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
该目录更新装置包括处理单元,所述处理单元用于确定当前***所适用的目录更新策略;以及用于获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;以及用于根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。
在一个可能的设计中,所述目录更新策略为第一目录更新策略,在所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录方面,所述处理单元具体用于:当所述CA的数量小于或等于预设阈值时,根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;以及用于当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值。
在一个可能的设计中,在所述当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值方面,所述处理单元具体用于:当所述CA的数量大于所述预设阈值时,根据所述CA的位置确定位于至少一个预设分区的CA的数量;以及用于根据所述至少一个分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
在一个可能的设计中,所述目录更新策略为第二目录更新策略,在所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录方面,所述处理单元具体用于:根据所述CA的位置确定所述CA中属于至少一个目标区域的CA;以及用于根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
在一个可能的设计中,所述访问目标数据地址的CA的数量包括:读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量。
第三方面,本发明实施例提供了一种计算机设备,所述计算机设备包括处理器、存储器、收发器和总线;
所述处理器通过所述总线与所述存储器、所述收发器相互通信;
所述存储器存储可执行程序代码,所述处理器用于调用所述存储中的可执行程序代码,执行如本发明实施例第一方面任一方法中所描述的部分或全部步骤。
第四方面,本发明实施例公开一种计算机可读存储介质,其中,所述计算机可读存储介质存储有用于计算机设备执行的程序代码,该程序代码具体包括执行指令,所述执行指令用于执行本发明实施例第一方面任一方法中所描述的部分或全部步骤。
由上可见,计算机设备首先确定当前***所适用的目录更新策略,其次,获取访问目标数据地址的CA的数量和所述CA的位置,最后,根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。可见,所述计算机设备可以根据目录更新策略以及所述CA的数量和所述CA的位置更新所述第一预设目录为不同目录结构的所述第二目录,提升了目录结构的灵活性。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是本发明实施例公开的一种处理器中HA与CA的分层结构示意图;
图2是本发明实施例公开的一种计算机设备的结构示意图;
图3A是本发明实施例提供的一种目录更新方法的流程示意图;
图3B是本发明实施例提供的一种HA记录访问目标数据地址的CA信息的目录结构示意图;
图3C是本发明实施例提供的另一种HA记录访问目标数据地址的CA信息的目录结构示意图;
图4是本发明实施例提供的一种目录更新方法的流程示意图;
图5是本发明实施例提供的一种目录更新方法的流程示意图;
图6是本发明实施例公开的一种目录更新装置的结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
请参阅图1,图1是本发明实施例公开的一种处理器中维护数据一致性的模块(Home Agent,HA)与包含高速缓存处理器Cache的模块(Cache Agent,CA)的分层结构示意图,如图所示,L1为第一级CA,L2为第二级CA,L3为第三级CA,所述维护数据一致性为HA使用目录记录处理器中的数据地址被CA中Cache持有的情况,包括持有数据地址的CA的位置和被持有的数据地址的状态,所述数据一致性的维护方式可以为分层维护的方式,在此不做限定,例如,L2维护与其对应的多个L1之间的数据一致性,L3维护与其对应的多个L2之间的数据一致性,而HA则负责维护与其对应的多个L3之间的数据一致性。
请参阅图2,图2是本发明实施例公开的一种计算机设备的结构示意图,如图所示,所述计算机设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线连接并完成相互间的通信,所述存储器存储有可执行程序代码,所述通信接口用于无线通信,所述处理器用于调用所述存储器中的所述可执行程序代码,执行下述实施例所示的目录更新方法,所述处理器中包括所述HA和所述CA。
请参阅图3A,图3A是本发明实施例公开的一种目录更新方法的流程示意图,如图所示,本目录更新方法包括:
S301,计算机设备确定当前***所适用的目录更新策略;
其中,所述目录更新策略包括第一目录更新策略和第二目录更新策略。
其中,所述目录更新策略为适用于所述HA目录的更新策略,所述HA目录为所述计算机设备处理器中记录数据地址被所述CA访问情况的目录。
其中,所述计算机设备确定当前***所适用的目录更新策略的具体实现方式可以是通过查询***设置或接收用户的设置信息。
举例而言,***设置标识位,当所述计算机设备查询到当前***设置的标识位为1时,表示当前***所适用的目录更新策略为第一目录更新策略,当所述计算机设备查询到当前***设置的标识位为0时,表示当前***所适用的目录更新策略为第二目录更新策略。
S302,所述计算机设备获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;
其中,所述访问目标数据地址的CA的数量包括:读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量。
其中,获取所述访问目标数据地址的CA的数量的具体实现方式可以是:
获取读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量;
根据所述读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量,确定所述访问目标数据地址的CA的数量。
举例而言,当读取所述目标数据地址的所述CA的数量为5,回写所述目标数据地址的所述CA的数量为3时,则所述访问目标数据地址的所述CA的数量为2。
在一个可能的示例中,所述计算机设备获取访问目标数据地址的CA的数量,包括:
当访问所述目标数据地址的第i个CA请求读取的所述目标数据地址的数据状态为独享状态(Exclusive状态,E态)时,根据预设广播侦听策略回收除所述第i个CA之外的访问所述目标数据地址的CA的读取权限,则获取所述访问目标数据地址的CA的数量为1,i为正整数。
其中,所述目标数据地址的数据状态包括E态和共享状态(Shared,S态)。
其中,所述CA的位置位于***的多个分区,每个分区的CA的数量不同,且每个分区的CA的数量存在饱和值。
在一个可能的示例中,所述计算机设备获取访问目标数据地址的CA的数量,包括:
当第k个分区访问所述目标数据地址的CA的数量达到饱和后,所述计算机设备当检测到所述第j个CA访问所述目标数据地址时,通过预设广播侦听策略回收所述除所述第j个CA之外的所述第k个分区的访问所述目标数据地址的CA的读取权限,获取所述访问目标数据地址的CA的数量,k、j分别为正整数;或,
当所述第k个分区访问所述目标数据地址的CA的数量达到饱和后,所述计算机设备当检测到所述第j个CA访问所述目标数据地址时,通过预设广播侦听策略回收所述除所述第j个CA之外的访问所述目标数据地址的所有CA的读取权限,获取所述访问目标数据地址的CA的数量。
举例而言,当所述第k个分区的访问所述目标数据地址的CA的饱和数量为6个,当第七个CA对所述目标数据地址进行读取操作时,回收所述第k个分区的前六个CA对所述目标数据地址的读取权限,允许所述第七个CA对所述目标数据地址的读取访问,此时获取所述访问目标数据地址的CA的数量为第k个分区的1个CA和其他分区的多个CA的数量总和,或者根据***协议需求,当第七个CA对所述目标数据地址进行读取操作时,回收除所述第七个CA之外的访问所述目标数据地址的每个分区的所有CA的读取权限,此时获取所述访问目标数据地址的CA的数量为1,即所述第七个CA。
S303,所述计算机设备根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构;
其中,所述第一预设目录为所述HA目录,所述第一预设目录为稀疏Sparse结构,存储在静态随机存取存储器(Static Random Access Memory,SRAM)上。
在一个可能的示例中,所述目录更新策略为第一目录更新策略,所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,包括:
当所述CA的数量小于或等于预设阈值时,根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;
当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值。
在这个可能的示例中,所述当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值,包括:
当所述CA的数量大于所述预设阈值时,根据所述CA的位置确定位于至少一个预设分区的CA的数量;
根据所述至少一个预设分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
其中,当CA的数量为0时,所述目录为无效目录。
举例而言,所述预设阈值为2,所述HA记录访问目标数据地址的CA信息的目录结构如图3B所示,所述第一预设目录为11bit位的目录结构,所述第一字段为0-8bit位,所述第一字段的第一部分为0-2bit位,所述第一字段的第二部分为3-8bit位,所述第二字段为9-10bit位,当所述CA的数量为0时,则更新第二字段为第二预设值即所述9bit位和10bit位上均为0,该条目录为无效目录;当所述CA的数量为1小于所述预设阈值时,更新所述第一预设目录的第二字段为9bit位为1和10bit位为0来表示CA的数量为1,所述第一字段的第二部分3-8bit位更新为所述1个CA的位置,第一字段的第一部分可以更新为目标数据地址的状态;当所述CA的数量为2等于所述第一预设阈值时,更新所述第一预设目录的第二字段9bit位为0和10bit位为1来表示CA的数量为2,第一字段中6-8bit位更新为2个CA中第一个CA的位置,0-5bit位更新为第二个CA的位置;当所述CA的数量大于2时,所述第二字段更新为所述第一预设值即所述9bit位和10bit位上均为1,0-8bit位均来表示CA的数量,且0-8bit位可以分为0bit位和1bit位,2bit位和3bit位,4bit位和5bit位,6-8bit位四个部分,这四个部分可以分别记录四个不同的预设分区中访问所述目标数据地址的CA的数量。
在又一个可能的示例中,所述目录更新策略为第二目录更新策略,所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,包括:
根据所述CA的位置确定所述CA中属于至少一个目标区域的CA;
根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
举例而言,所述至少一个目标区域,例如可以是本地local区域等,所述至少一个目标区域的数量可以为一个或者多个。
举例而言,HA记录访问目标数据地址的CA信息的目录结构如图3C所示,所述第一预设目录为11bit位的目录结构,所述第一字段为0-8bit位,所述第一字段的第一部分为5-8bit位,所述第一字段的第二部分为0-4bit位,所述第二字段为9-10bit位,所述至少一个目标区域的数量为2个,分别为第一目标区域和第二目标区域;
当访问所述目标数据地址的所述CA中属于第一目标区域的CA的数量为1,属于第二目标区域的CA的数量为0时,更新第二字段为第二预设值即所述9bit位为1和10bit位为0表示所述第一目标区域,更新第一字段的第一部分5-8bit位为位于所述第一目标区域的1个CA的位置,更新第一字段的第二部分0-4bit位为不在所述第一目标区域的访问所述目标数据地址的CA的数量;
当访问所述目标数据地址的所述CA中属于第二目标区域的CA的数量为1,属于第一目标区域的CA的数量为0时,更新第二字段为第二预设值即所述9bit位为0和10bit位为1表示所述第二目标区域,更新第一字段的第一部分5-8bit位为位于所述第二目标区域的1个CA的位置,更新第一字段的第二部分0-4bit位为不在所述第二目标区域的访问所述目标数据地址的CA的数量;
当访问所述目标数据地址的所述CA中属于所述第一目标区域的CA的数量为1,属于所述第二目标区域的CA的数量为2时,更新第二字段为第二预设值即所述9bit位为1和10bit位为1表示所述第一目标区域和所述第二目标区域,更新第一字段的第一部分7-8bit位为所述第一目标区域中访问所述目标数据地址的1个CA位置,更新第一字段的第一部分5-6bit位为所述第二目标区域中访问所述目标数据地址的2个所述CA的位置,更新第一字段的第二部分0-4bit位为不在所述第一目标区域以及不在所述第二目标区域的访问所述目标数据地址的CA的数量。
由上可见,计算机设备首先确定当前***所适用的目录更新策略,其次,获取访问目标数据地址的CA的数量和所述CA的位置,最后,根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。可见,所述计算机设备可以根据目录更新策略以及所述CA的数量和所述CA的所述位置更新所述第一预设目录为不同目录结构的所述第二目录,提升了目录结构的灵活性。
与图3A所示的目录更新方法一致的,请参阅图4,图4是本发明实施例提供的另一种目录更新方法的流程示意图,如图所示,本目录更新方法包括:
S401,计算机设备确定当前***所适用的目录更新策略为第一目录更新策略;
S402,所述计算机设备获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;
S403,当所述CA的数量小于或等于预设阈值时,所述计算机设备根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;
S404,当所述CA的数量大于所述预设阈值时,所述计算机设备根据所述CA的位置确定位于至少一个预设分区的CA的数量;
S405,所述计算机设备根据所述至少一个预设分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
由上可见,本发明实施例公开的目录更新方法,计算机设备首先确定当前***所适用的目录更新策略为第一目录更新策略,其次,获取访问目标数据地址的CA的数量和所述CA的位置,最后,当所述CA的数量小于或等于预设阈值时,所述HA根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段,当所述CA的数量大于所述预设阈值时,确定所述CA的位置中位于至少一个预设分区的数量,并根据所述至少一个预设分区的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。可见,所述计算机设备根据所述第一目录更新策略,在访问次数较少时精确记录数目和位置,访问次数较多时只记录数量,并且在访问数量较多时根据不同的预设分区记录CA的数量,提升了目录灵活性的同时降低了硬件开销,且最大限度的保持了目录的精确性,同时分区记录数量有利于减少当需要回收CA对所述目标数据地址的读取权限时存在的多余侦听。
与图3A所示的目录更新方法一致的,请参阅图5,图5是本发明实施例提供的另一种目录更新方法的流程示意图,如图所示,本目录更新方法包括:
S501,计算机设备确定当前***所适用的目录更新策略为第二目录更新策略;
S502,所述计算机设备获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;
S503,所述计算机设备根据所述CA的位置确定所述CA中属于至少一个目标区域的CA,根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
由上可见,本发明实施例公开的目录更新方法,计算机设备首先确定当前***所适用的目录更新策略为第二目录更新策略,其次,获取访问目标数据地址的CA的数量M和所述CA的位置,最后,所述计算机设备确定所述CA中属于至少一个目标区域的CA,根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。可见,所述计算机设备通过第二目录更新策略,对于位于至少一个目标区域的CA记录所述CA的位置,不在所述至少一个目标区域的CA只记录所述CA的数量,提升了目录结构灵活性,降低了硬件开销,减少了当需要回收CA对所述目标数据地址的读取权限时存在的多余侦听,并最大限度的保持了目录的精确性。
上述主要从方法侧执行过程的角度对本发明实施例的方案进行了介绍。可以理解的是,目录更新装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本发明实施例可以根据上述方法示例对目录更新装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的目录更新装置的一种可能的结构示意图。目录更新装置600包括:处理单元602和通信单元603。处理单元602用于对目录更新装置的动作进行控制管理,例如,处理单元602用于支持目录更新装置执行图3A中的步骤S301至303,图4中的步骤S401至S405以及图5中的步骤S501至S503,和/或用于本文所描述的技术的其它过程。通信单元603用于支持目录更新装置与其他设备之间的通信。目录更新装置还可以包括存储单元601,用于存储目录更新装置的程序代码和数据。
其中,处理单元602可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元603可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储单元601可以是存储器。
其中处理单元601用于确定当前***所适用的目录更新策略;以及用于获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;以及用于根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构。
在一个可能的示例中,所述目录更新策略为第一目录更新策略,在所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录方面,所述处理单元具体用于:当所述CA的数量小于或等于预设阈值时,根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;以及用于当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值。
在一个可能的示例中,在所述当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值方面,所述处理单元具体用于:当所述CA的数量大于所述预设阈值时,根据所述CA的位置确定位于至少一个预设分区的CA的数量;以及用于根据所述至少一个分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
在一个可能的示例中,所述目录更新策略为第二目录更新策略,在所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录方面,所述处理单元具体用于:根据所述CA的位置确定所述CA中属于至少一个目标区域的CA;以及用于根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
在一个可能的示例中,所述访问目标数据地址的CA的数量包括:读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量。
当处理单元602为处理器,通信单元603为通信接口,存储单元601为存储器时,本发明实施例所涉及的目录更新装置可以为图2所示的计算机设备。
参阅图2所示,该计算机设备210包括:处理器212、通信接口213、存储器211、LED液晶显示屏214。可选的,计算机设备210还可以包括总线215。其中,通信接口213、处理器212、存储器211以及LED液晶显示屏214可以通过总线215相互连接;总线215可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线215可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图6所示的目录更新装置或图2所示的计算机设备也可以理解为一种用于计算机设备的装置,本发明实施例不限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件、或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种目录更新方法,其特征在于,包括:
确定当前***所适用的目录更新策略;
获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;
根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构;
所述目录更新策略为第一目录更新策略,所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,包括:
当所述CA的数量小于或等于预设阈值时,根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;
当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值。
2.根据权利要求1所述的方法,其特征在于,所述当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值,包括:
当所述CA的数量大于所述预设阈值时,根据所述CA的位置确定位于至少一个预设分区的CA的数量;
根据所述至少一个预设分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
3.根据权利要求1所述的方法,其特征在于,所述目录更新策略为第二目录更新策略,所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,包括:
根据所述CA的位置确定所述CA中属于至少一个目标区域的CA;
根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述访问目标数据地址的CA的数量包括:读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量。
5.一种目录更新装置,其特征在于,包括处理单元,
所述处理单元用于确定当前***所适用的目录更新策略;以及用于获取访问目标数据地址的包含高速缓存处理器的模块CA的数量和所述CA的位置;以及用于根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录,所述第二目录包括至少一种目录结构;
所述目录更新策略为第一目录更新策略,在所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录方面,所述处理单元具体用于:当所述CA的数量小于或等于预设阈值时,根据所述CA的位置更新第一预设目录的第一字段,根据所述CA的数量更新所述第一预设目录的第二字段;以及用于当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值。
6.根据权利要求5所述的装置,其特征在于,在所述当所述CA的数量大于所述预设阈值时,根据所述CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为第一预设值方面,所述处理单元具体用于:当所述CA的数量大于所述预设阈值时,根据所述CA的位置确定位于至少一个预设分区的CA的数量;以及用于根据所述至少一个分区的CA的数量更新所述第一预设目录的所述第一字段,更新所述第一预设目录的所述第二字段为所述第一预设值。
7.根据权利要求5所述的装置,其特征在于,所述目录更新策略为第二目录更新策略,在所述根据所述目录更新策略以及所述CA的数量和所述CA的位置,更新第一预设目录为第二目录方面,所述处理单元具体用于:根据所述CA的位置确定所述CA中属于至少一个目标区域的CA;以及用于根据所述至少一个目标区域的CA的位置更新所述第一预设目录第一字段的第一部分,根据所述CA中除所述至少一个目标区域的CA之外的CA的数量更新所述第一预设目录第一字段的第二部分,根据所述至少一个目标区域更新所述第一预设目录的第二字段为第二预设值。
8.根据权利要求5至7任一项所述的装置,其特征在于,所述访问目标数据地址的CA的数量包括:读取所述目标数据地址的CA的数量和回写所述目标数据地址的CA的数量。
9.一种计算机设备,其特征在于,包括:
处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线连接并完成相互间的通信;
所述存储器存储有可执行程序代码,所述通信接口用于无线通信;
所述处理器用于调用所述存储器中的所述可执行程序代码,执行如权利要求1-4任一项所描述的方法。
10.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-4中任一项所述的方法。
CN201710208859.5A 2017-03-31 2017-03-31 一种目录更新方法及装置 Active CN108664417B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710208859.5A CN108664417B (zh) 2017-03-31 2017-03-31 一种目录更新方法及装置
PCT/CN2018/079822 WO2018177176A1 (zh) 2017-03-31 2018-03-21 一种目录更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710208859.5A CN108664417B (zh) 2017-03-31 2017-03-31 一种目录更新方法及装置

Publications (2)

Publication Number Publication Date
CN108664417A CN108664417A (zh) 2018-10-16
CN108664417B true CN108664417B (zh) 2022-10-25

Family

ID=63675171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710208859.5A Active CN108664417B (zh) 2017-03-31 2017-03-31 一种目录更新方法及装置

Country Status (2)

Country Link
CN (1) CN108664417B (zh)
WO (1) WO2018177176A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115587051B (zh) * 2022-10-28 2023-06-16 海光信息技术股份有限公司 缓存目录更新方法、数据处理方法、相关装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1230721A (zh) * 1998-02-17 1999-10-06 国际商业机器公司 具有指令和数据的悬停(h)状态的高速缓存相关协议
CN104106061A (zh) * 2012-02-08 2014-10-15 国际商业机器公司 在偏好加载的***中存在加载竞争的情况下用于存储的前进机制

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307169A1 (en) * 2007-06-06 2008-12-11 Duane Arlyn Averill Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
US8392665B2 (en) * 2010-09-25 2013-03-05 Intel Corporation Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines
CN102346714B (zh) * 2011-10-09 2014-07-02 西安交通大学 用于多核处理器的一致性维护装置及一致***互方法
CN103970678B (zh) * 2014-04-21 2017-01-25 华为技术有限公司 目录设计方法及装置
US9639276B2 (en) * 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
CN106406745B (zh) * 2015-07-27 2020-06-09 华为技术有限公司 根据目录信息维护Cache数据一致性的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1230721A (zh) * 1998-02-17 1999-10-06 国际商业机器公司 具有指令和数据的悬停(h)状态的高速缓存相关协议
CN104106061A (zh) * 2012-02-08 2014-10-15 国际商业机器公司 在偏好加载的***中存在加载竞争的情况下用于存储的前进机制

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Demand-Based FTL Scheme Using Dualistic Approach on Data Blocks and Translation Blocks;Sehwan Lee;《 2011 IEEE 17th International Conference on Embedded and Real-Time Computing Systems and Applications》;IEEE;20110929;第167-175页 *
多核实时操作***关键技术研究;张轶;《中国博士学位论文全文数据库(电子期刊)》;20160315(第3期);第I138-48页 *

Also Published As

Publication number Publication date
CN108664417A (zh) 2018-10-16
WO2018177176A1 (zh) 2018-10-04

Similar Documents

Publication Publication Date Title
CN105677580A (zh) 访问缓存的方法和装置
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US20150189039A1 (en) Memory Data Access Method and Apparatus, and System
US10691601B2 (en) Cache coherence management method and node controller
EP2919120B1 (en) Memory monitoring method and related device
KR20170130388A (ko) 비대칭 세트 결합된 캐시
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US10949289B1 (en) System and method for maintaining data integrity of data on a storage device
TW201729214A (zh) 用於解決動態隨機存取記憶體缺陷之系統,方法及電腦程式
US20230289295A1 (en) Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses
US9063667B2 (en) Dynamic memory relocation
CN107368435B (zh) 一种精简目录及利用该精简目录实现Cache一致性监听的方法
EP3296880B1 (en) Access system and method for data storage
US20220107752A1 (en) Data access method and apparatus
WO2016131175A1 (zh) 多核***中数据访问者目录的访问方法及设备
CN105653539A (zh) 索引分布式存储的实现方法和装置
US20140297957A1 (en) Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus
JP6339697B2 (ja) 無効化動作後のキャッシュメモリ内の有効インジケータにおけるビットフリップを検出するためのキャッシュメモリエラー検出回路、ならびに関連する方法およびプロセッサベースのシステム
WO2019140885A1 (zh) 一种目录处理方法、装置及存储***
KR102457671B1 (ko) 동적 랜덤 액세스 메모리(dram) 캐시 태그들을 위한 공간 효율적인 저장소의 제공
CN108664417B (zh) 一种目录更新方法及装置
CN107003932B (zh) 多核处理器***的缓存目录处理方法和目录控制器
US9891863B2 (en) Handling shingled magnetic recording (SMR) drives in a tiered storage system
US8447934B2 (en) Reducing cache probe traffic resulting from false data sharing

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