CN104360981A - 面向多核多处理器平台的Cache一致性协议的设计方法 - Google Patents
面向多核多处理器平台的Cache一致性协议的设计方法 Download PDFInfo
- Publication number
- CN104360981A CN104360981A CN201410645855.XA CN201410645855A CN104360981A CN 104360981 A CN104360981 A CN 104360981A CN 201410645855 A CN201410645855 A CN 201410645855A CN 104360981 A CN104360981 A CN 104360981A
- Authority
- CN
- China
- Prior art keywords
- cache
- processor
- state
- shared
- message
- 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.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种面向多核多处理器平台的高速缓存(Cache)一致性协议的设计方法,其中,位于两个Cache一致性同步域的Cache行具有两种共享态,所述两种共享态分别用于指示所述Cache行在两个Cache一致性同步域中的共享情况。本发明公开的面向多核多处理器平台的Cache一致性协议的设计方法,能够减少部分写操作及无效操作引起的数据同步消息数量,降低数据同步消息延迟,从而提升协议的数据同步效率。
Description
技术领域
本发明涉及计算机系统结构领域,尤其涉及一种面向多核多处理器平台的高速缓存(Cache)一致性协议的设计方法。
背景技术
多核多处理器平台已经成为一种常见的计算机结构。在此结构中,多核多处理器系统由多个处理器构成,且每个处理器具有至少两个处理器核。在处理器内部,每个处理器核通常具有私有的数据/指令Cache,并可能共享最后一级Cache。举例而言,如图1所示,多核多处理器系统包括两个处理器(处理器0及处理器1),且每个处理器具有两个处理器核,每个处理器核具有私有分立的数据/指令L1 Cache,同时处理器内部的两个处理器核共享一个统一的L2 Cache。
在上述系统中,于处理器内部,多个处理器核的私有Cache可能共享数据,需要维护数据一致性,同时,不同处理器之间同样可能共享数据,也需要维护数据一致性。因此,多核多处理器系统具有两个Cache一致性同步域:处理器内及处理器间。这种处理器内及处理器间的Cache一致性需要维护两级一致性。如图1所示,斜线阴影标示区域为处理器内同步域;点划线标示区域为处理器间同步域,可见,L2 Cache同时位于处理器内及处理器间两个同步域,处理器内同步域针对处理器内部各个处理器核的Cache内容的一致性进行同步;处理器间同步域进行处理器间的Cache一致性维护。
图2所示为传统单共享态(即:S态)的Cache一致性同步过程示意图。其中,写操作引起的无效操作除了需要在处理器内同步域内广播无效消息外,还需发往下层目录,并根据目录记录的数据共享信息向其它具有数据副本的处理器发送无效消息。可见,传统的Cache一致性协议(如MESI协议)使用单一的共享态(即:S态),由于无法区分数据是在一个同步域内共享抑或为多个同步域同时共享,因此,为了保证Cache一致性,在进行数据同步时,需要发送一些非必需的同步消息,从而增加了系统通信负担,降低协议的性能。
发明内容
本发明提供一种面向多核多处理器平台的Cache一致性协议的设计方法,用来减少部分写操作及无效操作引起的数据同步消息数量,降低数据同步消息延迟,从而提升协议的数据同步效率。
为了解决上述技术问题,本发明提供一种面向多核多处理器平台的高速缓存(Cache)一致性协议的设计方法,包括以下内容:位于两个Cache一致性同步域的Cache行具有两种共享态,所述两种共享态分别用于指示所述Cache行在两个Cache一致性同步域中的共享情况。
进一步地,所述两个共享态为第一共享态及第二共享态,所述第一共享态指示数据在多个处理器上的共享状态,所述第二共享态指示数据在一个处理器的至少一个处理器核上的共享状态。
进一步地,当执行数据写操作或无效操作时,处于第二共享态的Cache行的同步消息只在处理器内部传播,而处于第一共享态的Cache行的同步消息在处理器内部及多个处理器之间传播。
本发明通过设置两种共享态,更准确地记录了同时位于两个Cache一致性同步域的Cache行的共享信息,可简化部分由写操作或无效操作引起的同步消息的处理,降低同步消息响应延迟。当处于第二共享态(即:SS态)的Cache行收到无效消息时,仅向属于同一处理器的、其它具有数据副本的私有Cache发送无效消息,此外,如果数据被修改过(即dirty位被置位),则回写Cache行;当Cache行处于第一共享态(即:S态)时,不仅需要向同一处理器的、其它具有数据副本的私有Cache发送无效消息,还需根据目录记录的共享信息,向其它处理器发送无效消息。与现有技术中只设置一种共享态相比,本发明使用双共享态可减少部分发往上层目录的消息,减小消息同步延迟,从而提升Cache一致性协议的同步效率。
附图说明
图1所示为多核多处理器平台中两层Cache一致性同步域的示意图;
图2所示为传统单一共享态的Cache一致性同步过程示意图;
图3所示为本发明较佳实施例中第一共享态(即S态)与第二共享态(即SS态)的示意图;
图4所示为本发明较佳实施例中第二共享态(即SS态)的Cache一致性同步过程示意图;
图5所示为本发明较佳实施例中第一共享态(即S态)的Cache一致性同步过程示意图;
图6所示为本发明较佳实施例中Cache行处于SS态时写操作引起的协议处理流程示意图;
图7所示为本发明较佳实施例中Cache行处于S态时写操作引起的协议处理流程示意图;
图8所示为本发明较佳实施例的S态及SS态的相互转换条件示意图。
具体实施方式
下面结合附图对本发明进行进一步的详细说明。
根据实现方式的不同,处理器内部可使用基于总线监听或基于目录的Cache一致性协议实现。本发明的实施方式说明以总线监听为例进行说明,在处理器之间使用目录记录共享信息。
于本实施例中,以图1所示的多核多处理器结构为例说明处于S及SS态的Cache行的同步过程以及SS与S两个共享态的相互转换。为说明简洁准确,使用(处理器编号,处理核编号)表示一个处理器核。例如,(0,1)表示处理器0的编号为1的处理器核,(1,0)表示处理器1的编号为0的处理器核,以此类推。dL1表示处理器核私有的数据L1 Cache。处理器核对应的dL1表示与该处理器核直接相连的数据L1 Cache。请求者指发起数据同步消息的处理器核。本地L2 Cache指当前处理器私有的L2 Cache,远端L2 Cache指属于其它处理器私有的L2 Cache。
如图3所示,数据X在处理器0的本地L2 Cache中的Cache行处于SS状态;数据Y在处理器1的L2 Cache中处于S态。关于S态及SS态的一致性同步过程如下详述。
如图4所示,数据X在处理器0的本地L2 Cache中的Cache行处于SS状态,只在处理器0上具有只读副本。此时,写操作引起的无效消息只在本处理器内部广播,无需发往下层目录。具体处理步骤如图6所示,其中,图6中(a)对应处理器核(0,0)具有X的副本的情况,图6中(b)对应处理器核(0,0)没有X副本的情况,MT态表示数据在私有L1中可能被修改过,L2中的对应副本可能过时。上述过程详细描述如下:
步骤1:处理器核(0,0)发出对数据地址X的写请求,若X在dL1中的Cache行的状态为S,向处理器0的L2 Cache发送Upgrade消息,请求写权限(升级后的状态为M);若X在dL1中无副本,则向处理器0的L2 Cache发送GETX消息,请求数据行及写权限(升级后的状态为M);
步骤2:处理器0的L2 Cache收到Upgrade/GETX消息后,向位于本处理器的所有其它处理器核(于此,为处理器核(0,1))发送无效消息(即Inv消息);
步骤3:处理器核(0,1)接收到该无效消息后,查找本地dL1,如果存在X的副本则无效,并返回应答消息(即Ack消息);否则直接返回应答消息;
步骤4:本地L2 Cache收集到所有无效消息应答后,根据请求者消息类型(Upgrade/GETX)向请求者dL1发送写权限(及数据)应答消息,同时将对应Cache行的状态修改为独占(对应MESI协议的M态),消息处理过程完成。
如图5所示,数据X在处理器0的L2 Cache中处于S态,同时在处理器0及处理器1上具有只读副本。此时,写操作引起的无效消息只在本处理器内部广播,无需发往目录。具体处理过程如图7所示,其中,图7中(a)对应处理器核(0,0)具有X的副本的情况,图7中(b)对应处理器核(0,0)没有X副本的情况。MT态表示数据在私有L1中可能被修改过,L2中的对应副本可能过时。上述过程详细描述如下:
步骤1:处理器核(0,0)发出对数据地址X的写请求,若X在dL1中的Cache行的状态为S态,向处理器0的L2 Cache发送Upgrade消息,请求写权限(升级后的状态为M);若X在dL1中无副本,则向处理器0的L2 Cache发送GETX消息,请求数据行及写权限(升级后的状态为M);
步骤2:处理器0的L2 Cache收到Upgrade/GETX消息后,向位于本处理器的所有其它处理器核(于此,为处理器核(0,1))发送无效消息(即Inv消息);同时向目录发送Upgrade消息;
步骤3.1:处理器核(0,1)接收到该无效消息后,查找本地dL1,如果存在X的副本则无效,并返回应答消息(即Ack消息);否则直接返回应答消息;
步骤3.2:目录接收到该Upgrade消息后,根据其记载的X所在Cache行的共享状态,向所有其它处理器(于此,为处理器1)发送无效消息;
步骤4:处理器1接收到无效消息后,查找X所在Cache行共享信息,并向处理器核(1,0)发送无效消息,待其返回应答消息后,向目录返回无效应答消息;更新目录(删除处理器1对于X的共享记录),向请求者所在的处理器返回写权限应答消息;
步骤5:本地L2 Cache收集到所有来自本地其它dL1的无效应答消息及来自目录的写权限应答消息后,根据请求者消息类型(Upgrade/GETX)向请求者dL1发送写权限(及数据)应答消息,同时将对应Cache行的状态修改为独占(对应MESI协议的M态),消息处理过程完成。
与传统Cache一致性协议,如MESI协议相比,如图8所示,本发明的双共享态Cache一致性协议设计方法增加两个共享状态(S态及SS态)的相互转换。当所有远端副本失效时,L2对应行状态从S态转换为SS态;当远端请求只读副本时,L2对应行状态从SS态转换为S态。需要注意的是,图8仅仅给出了S态与SS态转换的条件,在具体协议实现中,两种状态的相互转换可能会经历其它的状态,如修改态等。
综上所述,本发明为同时处于两个Cache一致性同步域的Cache行设置两种具有不同权限的共享态。当数据在多个处理器中存在副本时,设置共享态S态。共享态S态指示数据自加载至Cache中后未进行修改,因此,数据与内存对应内容一致,不允许直接修改。另一方面,当数据仅在一个处理器的一个或以上个处理器核上具有只读副本时,设置共享态SS态。共享态SS态同样不允许直接对数据进行修改,但是数据与内存对应内容可能不一致。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (3)
1.一种面向多核多处理器平台的高速缓存(Cache)一致性协议的设计方法,其特征在于:位于两个Cache一致性同步域的Cache行具有两种共享态,所述两种共享态分别用于指示所述Cache行在两个Cache一致性同步域中的共享情况。
2.如权利要求1所述的面向多核多处理器平台的Cache一致性协议的设计方法,其特征在于:所述两个共享态为第一共享态及第二共享态,所述第一共享态指示数据在多个处理器上的共享状态,所述第二共享态指示数据在一个处理器的至少一个处理器核上的共享状态。
3.如权利要求2所述的面向多核多处理器平台的Cache一致性协议的设计方法,其特征在于:当执行数据写操作或无效操作时,处于第二共享态的Cache行的同步消息只在处理器内部传播,而处于第一共享态的Cache行的同步消息在处理器内部及多个处理器之间传播。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410645855.XA CN104360981B (zh) | 2014-11-12 | 2014-11-12 | 面向多核多处理器平台的Cache一致性协议的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410645855.XA CN104360981B (zh) | 2014-11-12 | 2014-11-12 | 面向多核多处理器平台的Cache一致性协议的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104360981A true CN104360981A (zh) | 2015-02-18 |
CN104360981B CN104360981B (zh) | 2017-09-29 |
Family
ID=52528244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410645855.XA Active CN104360981B (zh) | 2014-11-12 | 2014-11-12 | 面向多核多处理器平台的Cache一致性协议的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104360981B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488012A (zh) * | 2015-12-09 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种基于独占数据的一致性协议设计方法 |
CN105912415A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
WO2018077123A1 (zh) * | 2016-10-26 | 2018-05-03 | 华为技术有限公司 | 内存访问方法及多处理器系统 |
CN108804348A (zh) * | 2017-05-02 | 2018-11-13 | 迈络思科技有限公司 | 并行处理环境中的计算 |
TWI643125B (zh) * | 2016-04-18 | 2018-12-01 | 聯發科技股份有限公司 | 多處理器系統及快取共用方法 |
US10409723B2 (en) | 2014-12-10 | 2019-09-10 | Alibaba Group Holding Limited | Multi-core processor supporting cache consistency, method, apparatus and system for data reading and writing by use thereof |
CN112055054A (zh) * | 2020-08-07 | 2020-12-08 | 之江实验室 | 基于多种一致性协议的多边缘集群数据同步的方法及系统 |
CN113792006A (zh) * | 2020-08-14 | 2021-12-14 | 阿里巴巴集团控股有限公司 | 具有高速缓存一致性的设备间处理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102103568A (zh) * | 2011-01-30 | 2011-06-22 | 中国科学院计算技术研究所 | 片上多核处理器系统的高速缓存一致性协议的实现方法 |
CN102819498A (zh) * | 2012-08-15 | 2012-12-12 | 上海交通大学 | 构建Cache一致性协议的方法、众核处理器及网络接口单元 |
CN103440223A (zh) * | 2013-08-29 | 2013-12-11 | 西安电子科技大学 | 一种实现高速缓存一致性协议的分层系统及其方法 |
-
2014
- 2014-11-12 CN CN201410645855.XA patent/CN104360981B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102103568A (zh) * | 2011-01-30 | 2011-06-22 | 中国科学院计算技术研究所 | 片上多核处理器系统的高速缓存一致性协议的实现方法 |
CN102819498A (zh) * | 2012-08-15 | 2012-12-12 | 上海交通大学 | 构建Cache一致性协议的方法、众核处理器及网络接口单元 |
CN103440223A (zh) * | 2013-08-29 | 2013-12-11 | 西安电子科技大学 | 一种实现高速缓存一致性协议的分层系统及其方法 |
Non-Patent Citations (3)
Title |
---|
ABHIK SARKAR 等: "Push-Assisted Migration of Real-Time Tasks in Multi-Core Processors", 《ACM SIGPLAN NOTICES》 * |
甘小伟 等: "两级Cache—致性域扩展协议在混合验证系统中的可视化方法", 《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集》 * |
陈李维 等: "用于多核同步优化的cache一致性协议设计", 《高技术通讯》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10409723B2 (en) | 2014-12-10 | 2019-09-10 | Alibaba Group Holding Limited | Multi-core processor supporting cache consistency, method, apparatus and system for data reading and writing by use thereof |
CN105488012A (zh) * | 2015-12-09 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种基于独占数据的一致性协议设计方法 |
CN105488012B (zh) * | 2015-12-09 | 2021-05-18 | 浪潮电子信息产业股份有限公司 | 一种基于独占数据的一致性协议设计方法 |
CN105912415A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
CN105912415B (zh) * | 2016-04-05 | 2017-12-29 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
TWI643125B (zh) * | 2016-04-18 | 2018-12-01 | 聯發科技股份有限公司 | 多處理器系統及快取共用方法 |
WO2018077123A1 (zh) * | 2016-10-26 | 2018-05-03 | 华为技术有限公司 | 内存访问方法及多处理器系统 |
CN108804348A (zh) * | 2017-05-02 | 2018-11-13 | 迈络思科技有限公司 | 并行处理环境中的计算 |
CN108804348B (zh) * | 2017-05-02 | 2023-07-21 | 迈络思科技有限公司 | 并行处理环境中的计算 |
CN112055054A (zh) * | 2020-08-07 | 2020-12-08 | 之江实验室 | 基于多种一致性协议的多边缘集群数据同步的方法及系统 |
CN112055054B (zh) * | 2020-08-07 | 2023-04-07 | 之江实验室 | 基于多种一致性协议的多边缘集群数据同步的方法及系统 |
CN113792006A (zh) * | 2020-08-14 | 2021-12-14 | 阿里巴巴集团控股有限公司 | 具有高速缓存一致性的设备间处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104360981B (zh) | 2017-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104360981A (zh) | 面向多核多处理器平台的Cache一致性协议的设计方法 | |
CN108885583B (zh) | 高速缓存存储器访问 | |
US9594924B2 (en) | Managing global cache coherency in a distributed shared caching for clustered file systems | |
JP4123621B2 (ja) | 主記憶共有型マルチプロセッサシステム及びその共有領域設定方法 | |
US8782323B2 (en) | Data storage management using a distributed cache scheme | |
JP4730742B2 (ja) | 共有メモリの直接メモリ・アクセスのアトミック更新のための装置、及びその方法 | |
CN102387204B (zh) | 维护集群缓存一致性的方法及系统 | |
CN106575238B (zh) | 支持页面隐式锁的共享存储架构中的并发控制 | |
CN101625664B (zh) | 满足部分写和非监听存取之间的存储器排序要求 | |
US20150058570A1 (en) | Method of constructing share-f state in local domain of multi-level cache coherency domain system | |
CN111274310A (zh) | 一种分布式数据缓存方法及系统 | |
US20140032854A1 (en) | Coherence Management Using a Coherent Domain Table | |
US20150189039A1 (en) | Memory Data Access Method and Apparatus, and System | |
JP2021507412A (ja) | マルチノードシステムの低電力管理 | |
CN106844048A (zh) | 基于硬件特性的分布式共享内存方法及系统 | |
US20190340147A1 (en) | High-performance streaming of ordered write stashes to enable optimized data sharing between i/o masters and cpus | |
CN115080277B (zh) | 一种多核系统的核间通信系统 | |
CN108170544B (zh) | 面向数据无冲突程序的共享数据动态更新方法 | |
JP5549694B2 (ja) | 超並列計算機、同期方法、同期プログラム | |
US8972663B2 (en) | Broadcast cache coherence on partially-ordered network | |
JP2018049406A (ja) | 複数プロセッサ間のタスク連携装置 | |
CN117271657A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |