CN107368435B - 一种精简目录及利用该精简目录实现Cache一致性监听的方法 - Google Patents
一种精简目录及利用该精简目录实现Cache一致性监听的方法 Download PDFInfo
- Publication number
- CN107368435B CN107368435B CN201710590015.1A CN201710590015A CN107368435B CN 107368435 B CN107368435 B CN 107368435B CN 201710590015 A CN201710590015 A CN 201710590015A CN 107368435 B CN107368435 B CN 107368435B
- Authority
- CN
- China
- Prior art keywords
- state
- memory
- directory
- monitoring
- storage block
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000005055 memory storage Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims description 4
- 239000013598 vector Substances 0.000 description 10
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种精简目录及利用该精简目录实现Cache一致性监听的方法,精简目录包括内存表项和目录表项,所述内存表项的每项表示内存存储块,与目录表项的每项一一对应,所述目录表项的每项仅记录Cache块的状态信息。利用该精简目录进行Cache一致性监听的方法为,内存宿主查询精简目录的Cache状态后,判断需要进行监听广播时,通过监听扇出策略保证有且仅有1笔相关的监听报文在互连网络上传播。与现有技术相比,本发明的精简目录大幅度见笑了目录实现的存储开销,可扩展性良好,利用精简目录进行报文监听时,利用监听扇出原则,减少报文数量,保证互联网络带宽不受影响。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种精简目录及利用该精简目录实现Cache一致性监听的方法。
背景技术
随着芯片工艺和制造技术突飞猛进,处理器技术也随之不断发展和进步。几十个处理器计算核心甚至是一个完整的计算机***都能够被集成在一颗硅片上。共享内存架构得益于其相对集群架构在同等结点规模下更加紧凑,计算性能更高的优势,成为当前科学计算中主流的编程模型。在分布式共享内存多处理器***中,同一内存单元可能在多个处理器均有Cache(缓存)副本,带来Cache数据一致性问题。多处理器间的Cache一致性维护不仅关系到***正确性,也影响***的性能。
Cache一致性协议可采用源监听(Source Snooping)或目录监听(DirectorySnooping)的方式维护多处理器间Cache一致性。相比于源监听,目录监听适用于CA(Caching Agent,缓存代理)数目、规模更大的多处理器***,由于其以额外的存储器开销为代价,记录簇内各CA的Cache状态,因此避免了监听报文广播和不必要的总线传输协议处理开销,提供了更好的可扩展性。因此基于目录监听的一致性协议成为目前实现共享内存多处理器***的主流方法,减少Cache一致性目录实现的开销也变得愈发重要。
目录监听利用位向量目录,位向量目录的基本思想是内存中的每个存储器块对应一个目录表项,每个目录表项包含N个指针和状态,N指处理器的个数,这些指针通过位向量标识。位向量的每一位对应于一个处理器,用于指出该处理器中有无该存储器块的拷贝。由于每个内存宿主中都需要有一个占用大量自身存储器空间的完整目录,因此位向量目录主要应用于处理器数较少的***中。位向量目录的缺点是可扩展性较差。当***中的处理器个数越多,位向量宽度对应增加,对应的存储开销也就越大。
如图1所示,在常规的位向量目录实现方法中,目录表项和***的内存存储块为一一对应关系,每一个目录表项中都记录与其对应缓存块的共享状态和共享者列表,其中共享者列表(Presence Bit)的每一位对应于一个处理器。一般地,假设***中处理器数为N,每个结点的局部存储器中有M个存储块,则目录的存储开销为NxMxN=MN2,与***规模的平方成正比。显然,当***规模较大时,位向量目录的硬件代价将变得无法容忍。
发明内容
为克服上述现有技术存在的不足,本发明的目的在于提供一种扩展性良好、存储开销小的精简目录及利用该精简目录实现Cache一致性监听的方法。
本发明解决其技术问题所采用的技术方案是:一种精简目录,包括内存表项和目录表项,所述内存表项的每项表示内存存储块,与目录表项的每项一一对应,所述目录表项的每项仅记录与相应内存存储块对应的Cache块的状态信息。
优选地,所述Cache块的状态信息共2位。
优选地,2位状态信息表示为state[1]和state[0];state[0]用于指示远端处理器的Cache块是否有对应内存存储块的拷贝,state[1]用于指示远端处理器的Cache块的状态是否为独占。
优选地,所述state[0]的值为1或0,若state[0]的值为1,则指示远端处理器的Cache块有对应内存存储块的拷贝,否则指示远端处理器的Cache块没有对应内存存储块的拷贝;所述state[1]为1或0,若state[1]的值为1则指示远端处理器的Cache块状态为独占,否则指示远端处理器的Cache块状态为共享。
利用所述的精简目录实现Cache一致性监听的方法,包括以下步骤:
内存宿主根据接收的一致性报文获取对应内存存储块的位置;
内存控制器获取内存存储块对应的目录表项中Cache块的状态信息;
判断state[0]的值,若state[0]为0,则向内存控制器直接推送针对内存存储块的访问请求,使该内存存储块进行读写操作;若state[0]为1,则进一步判断state[1]的值及一致性报文的类型;
若state[1]的值为1,或者一致性报文的类型为独占读或失效,则内存宿主向***中所有处理器发起监听操作,若state[1]的值为0,且一致性报文的类型为独占读或失效时,内存控制器直接推送针内存存储块的访问请求,使该内存存储块进行读写操作。
优选地,在内存控制器获取内存存储块对应的目录表项中Cache块的状态信息失败时,内存宿主向***中所有处理器发起监听操作。
优选地,所述内存宿主向***中所有处理器发起监听操作时,根据监听扇出原则,内存宿主在每个端口上发出1笔监听报文,与内存宿主直连的处理器接收并处理该监听报文,并向下一级处理器传播该监听报文。
利用本发明的技术方案获得的有益效果是:
1、本发明将目录表项中的内容进行精简,使目录表项的每项仅记录Cache块的状态信息,大幅度减少了目录实现的存储开销,且存储开销与处理器个数呈线性关系,精简目录的可扩展性良好。
2、在内存控制器获取内存存储块对应的目录表项中Cache块的状态信息失败时,内存宿主向***中所有处理器发起监听操作,避免了目录和Cache块状态不一致的风险,保证处理器获取到的数据为最新数据。
3、内存宿主向***中所有处理器发起监听操作是,根据监听扇出原则,发出监听报文,避免目录精简后内存宿主不能精确指出哪些处理器拥有数据拷贝带来的不必要监听增多的问题,保证互联网络带宽性能不受影响。
附图说明
图1是现有技术中位向量目录的表项示意图。
图2是本发明精简目录的表项示意图。
图3是本发明的方法流程图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图2所示,本发明提供了一种实现Cache一致性的精简目录,精简目录包括内存表项和目录表项,其中内存表项的每项表示内存存储块,在数量上与目录表项的每项一一对应,目录表项的每项仅记录与相应内存存储块对应Cache块的状态信息。Cache块的状态信息有2位(2bit),用State[1:0]表示。
每位的编码信息具体为:
state[0]:用于指示任意远端处理器的Cache块是否有对应内存存储块的拷贝,若state[0]的值为0,则指示无,针对该内存存储块的访问请求被直接推送到内存控制器,进行相应的DRAM读/写操作;若state[0]的值为1,则指示有,需要进一步查询state[1]的信息,决定是否由内存宿主向***中的所有处理器发起监听操作。
state[1]:用于指示远端处理器的Cache块的状态是否为独占,若state[1]的值为0,则指示为共享,当且仅当针对该内存存储块的访问请求为独占读(RFO)或失效(INV)时,内存宿主向***中所由处理器发起监听操作,否则针对该内存存储块的访问请求被直接推送到内存控制器,进行相应的DRAM读/写操作;若state[1]的值为1,则指示为独占,任何针对该内存存储块的访问请求都会引起内存宿主向***中所有处理器发起监听操作。
利用上述精简目录,假设***中处理器的个数为N,每个结点的存储器包含M个存储块,每个目录项的存储开销为2bit,则精简目录的存储开销为2×M×N=2MN,针对每个结点,存储块的个数M是固定,因此精简目录的存储开销与处理器的个数呈线性关系,与位向量的存储开销与处理器个数呈平方关系相比,大幅度减小了目录实现的存储开销,且便于扩展。
如图3所示,本发明还提供了一种利用精简目录实现Cache一致性报文监听的方法,具体步骤为:
内存宿主接收到来自互联网的Cache一致性访存报文时,内存宿主根据Cache一致性访存报文中携带的物理地址索引,查询精简目录,得到目录表项所对应的内存存储块的位置。
内存控制器获取该内存存储块对应的目录信息,若目录信息获取失败,即访问目录所对应的内存存储块出现不可纠正的错误时,直接对***中所有处理器发起监听操作,避免目录和Cache块状态不一致的风险;若获取信息成功,根据state[0]的值,判断远端处理器的Cache块是否有该内存存储块的拷贝。
若state[0]的值为0,则向内存控制器直接托送针对该内存存储块的访问请求,进行相应的DRAM(Dynamic Random Access Memory,动态随机存取存储器,是最为常见的***内存)读/写操作。
若state[0]的值为1,则进一步判断state[1]的值以及Cache一致性报文的类型。
若state[1]的值为1,或Cache一致性报文的类型为RFO(Request For Ownership,独占读请求)或INV(Invalid,失效请求),内存宿主向***中所有处理器发起监听操作,根据监听扇出原则,内存宿主只在自身每个端口上发出一笔监听报文,与内存宿主端口直接连接的互联网中的处理器接收并处理该监听报文,并向互联网中的下一集处理器传播该监听报文。
若state[1]的值为0,且Cache一致性报文的类型为RFO或INV时,内存宿主向内存控制器直接推送对该内存存储块的访问请求,进行相应的DRAM读/写操作。
在内存控制器获取目录信息失败时,说明目录信息有错,举例来说:当某个处理器上的Cache块本身有数据副本,而内存宿主上的目录信息出错指示没有处理器的Cache块拥有该数据,那么当下一个处理器对内存相同位置进行访问时,内存宿主不会对拥有数据副本的处理器进行监听,而直接将内存中的数据直接发送给下一个处理器,导致该处理器拿到的数据有可能是陈旧的错误数据,真正的数据有可能已经被有数据副本的处理器在Cache块上修改了。因此当内存控制器获取目录信息失败时,为保证处理器获取到的数据为最新数据,同时避免了目录和Cache块状态不一致的风险,对***中所有处理器发起监听操作。
使用监听扇出原则进行报文监听和传播的好处在于:***中所有的处理器并不是互相直接连接的,因此当内存宿主需要向***所有的处理器发起监听报文时,内存宿主只向和它直连的处理器发出监听报文,对应具体操作是内存宿主只在自身每个端口上发出1笔监听报文,与内存宿主端口直接连接的互联网中的处理器接收并处理该监听报文,然后由和上述处理器直连的其他处理器对这笔报文进行下一级传播,这样能够有效的减少***中处理器互连网络中的监听报文数量,保证互连网络带宽性能不会受到影响。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (5)
1.一种精简目录,包括内存表项和目录表项,所述内存表项的每项表示内存存储块,与目录表项的每项一一对应,所述目录表项的每项仅记录与相应内存存储块对应的Cache块的状态信息;
所述Cache块的状态信息共2位;
2位状态信息表示为state[1]和state[0];state[0]用于指示远端处理器的Cache块是否有对应内存存储块的拷贝,state[1]用于指示远端处理器的Cache块的状态是否为独占。
2.根据权利要求1所述的一种精简目录,其特征是:所述state[0]的值为1或0,若state[0]的值为1,则指示远端处理器的Cache块有对应内存存储块的拷贝,否则指示远端处理器的Cache块没有对应内存存储块的拷贝;所述state[1]为1或0,若state[1]的值为1则指示远端处理器的Cache块状态为独占,否则指示远端处理器的Cache块状态为共享。
3.利用权利要求2所述的精简目录实现Cache一致性监听的方法,其特征是:包括以下步骤:
内存宿主根据接收的一致性报文获取对应内存存储块的位置;
内存控制器获取内存存储块对应的目录表项中Cache块的状态信息;
判断state[0]的值,若state[0]为0,则向内存控制器直接推送针对内存存储块的访问请求,使该内存存储块进行读写操作;若state[0]为1,则进一步判断state[1]的值及一致性报文的类型;
若state[1]的值为1,或者一致性报文的类型为独占读或失效,则内存宿主向***中所有处理器发起监听操作,若state[1]的值为0,且一致性报文的类型为独占读或失效时,则向内存控制器直接推送针内存存储块的访问请求,使该内存存储块进行读写操作。
4.根据权利要求3所述的方法,其特征是:在内存控制器获取内存存储块对应的目录表项中Cache块的状态信息失败时,内存宿主向***中所有处理器发起监听操作。
5.根据权利要求3或4所述的方法,其特征是:所述内存宿主向***中所有处理器发起监听操作时,根据监听扇出原则,内存宿主在每个端口上发出1笔监听报文,与内存宿主直连的处理器接收并处理该监听报文,并向下一级处理器传播该监听报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710590015.1A CN107368435B (zh) | 2017-07-19 | 2017-07-19 | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710590015.1A CN107368435B (zh) | 2017-07-19 | 2017-07-19 | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368435A CN107368435A (zh) | 2017-11-21 |
CN107368435B true CN107368435B (zh) | 2020-03-06 |
Family
ID=60306768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710590015.1A Active CN107368435B (zh) | 2017-07-19 | 2017-07-19 | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368435B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059026B (zh) * | 2018-01-19 | 2021-06-29 | 华为技术有限公司 | 一种目录处理方法、装置及存储*** |
US11620231B2 (en) | 2021-08-20 | 2023-04-04 | International Business Machines Corporation | Lateral persistence directory states |
US11487672B1 (en) * | 2021-08-20 | 2022-11-01 | International Business Machines Corporation | Multiple copy scoping bits for cache memory |
CN116962259B (zh) * | 2023-09-21 | 2024-02-13 | 中电科申泰信息科技有限公司 | 一种基于监听-目录两层协议的一致性处理方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970678A (zh) * | 2014-04-21 | 2014-08-06 | 华为技术有限公司 | 目录设计方法及装置 |
CN104408069A (zh) * | 2014-10-30 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于布隆过滤器思想的一致性目录设计方法 |
CN105045729A (zh) * | 2015-09-08 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与*** |
CN106843772A (zh) * | 2017-02-14 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种基于一致性总线扩展非易失内存的***及方法 |
-
2017
- 2017-07-19 CN CN201710590015.1A patent/CN107368435B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970678A (zh) * | 2014-04-21 | 2014-08-06 | 华为技术有限公司 | 目录设计方法及装置 |
CN104408069A (zh) * | 2014-10-30 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于布隆过滤器思想的一致性目录设计方法 |
CN105045729A (zh) * | 2015-09-08 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种远端代理带目录的缓存一致性处理方法与*** |
CN106843772A (zh) * | 2017-02-14 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种基于一致性总线扩展非易失内存的***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107368435A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
EP1310873B1 (en) | Error recovery | |
US8918592B2 (en) | Extending a cache coherency snoop broadcast protocol with directory information | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
US8392665B2 (en) | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines | |
CN107368435B (zh) | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 | |
US7913048B2 (en) | Data subscribe-and-publish mechanisms and methods for producer-consumer pre-fetch communications | |
US10078587B2 (en) | Mirroring a cache having a modified cache state | |
US20050198441A1 (en) | Multiprocessor system | |
GB2439650A (en) | Snoop filter that maintains data coherency information for caches in a multi-processor system by storing the exclusive ownership state of the data | |
US6721852B2 (en) | Computer system employing multiple board sets and coherence schemes | |
US7383398B2 (en) | Preselecting E/M line replacement technique for a snoop filter | |
US9465743B2 (en) | Method for accessing cache and pseudo cache agent | |
CN111611223A (zh) | 非易失性数据的访问方法、***、电子设备和介质 | |
US6961827B2 (en) | Victim invalidation | |
US8028130B1 (en) | Pipeline structure for a shared memory protocol | |
US20230185822A1 (en) | Distributed storage system | |
CN117724994A (zh) | 数据操作方法、服务器和cxl控制器 | |
CN116049031A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20030101280A1 (en) | Fast jump address algorithm |
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 |