CN100461136C - 多处理器系统中维持数据一致性的方法和系统 - Google Patents
多处理器系统中维持数据一致性的方法和系统 Download PDFInfo
- Publication number
- CN100461136C CN100461136C CNB2006101373137A CN200610137313A CN100461136C CN 100461136 C CN100461136 C CN 100461136C CN B2006101373137 A CNB2006101373137 A CN B2006101373137A CN 200610137313 A CN200610137313 A CN 200610137313A CN 100461136 C CN100461136 C CN 100461136C
- Authority
- CN
- China
- Prior art keywords
- processor
- catalogue
- data line
- address
- project
- 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.)
- Expired - Fee Related
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种在多处理器系统中维持数据一致性的系统,包括具有高速缓存和目录的第一处理器,具有目录的第二处理器,以及至少一个具有目录并独立于所述第一和第二处理器的附加处理器。该第一处理器被配置为确定是否未在所述第一处理器的高速缓存中找到数据行,并且转发关于该数据行的请求至所述第二处理器。该第二处理器被配置为从第二处理器转发数据行至第一处理器,更新第二处理器的目录以反映出该数据行被转发至第一处理器,并转发目录更新消息至所述至少一个附加处理器以反映出该数据行被转发至第一处理器。目录中的项目包括存储地址、最新近的数据保持设备、以及行状态。
Description
技术领域
本发明通常涉及多处理器计算机系统,更具体地涉及在多处理器计算机系统中维持数据一致性的方法和系统。
背景技术
当数据遍及多处理器计算机系统地被分布时,存在数据一致性的问题。如果多处理器系统中多于一个的节点/处理器试图在几乎同一时刻或在重叠的时段之内存取和/或修改特定数据片,数据一致性就成为了问题。已经使用了许多不同的方法来保证数据一致性,并且这些方法通常都是通过使用多处理器系统中的从请求方处理器至其它处理器的、以及其它处理器之间的大量请求来保证数据一致性。例如,如果在特定处理器的高速缓冲存储器(cache,简称高速缓存)中没有找到数据行,该处理器可以发送请求至多处理器系统中的每个其它处理器以确定该数据行是否在这些其它处理器的高速缓存之一中被找到。这些处理事务(transaction)/命令往来(traffic)消耗了处理器/系统资源,作为结果,增加了多处理器系统内部的等待时间。因此,需要能够有效地维持多处理器内部的数据一致性同时也减少处理事务并因而减少系统内部等待时间的系统和方法。
发明内容
本发明的实施例致力于现有技术中关于多处理器系统的缺陷并提供了新颖的和非显而易见的系统和方法以维持多处理器系统内部的数据一致性。该多处理器系统包括具有高速缓存和目录的第一处理器,具有目录的第二处理器,以及至少一个具有目录并独立于第一和第二处理器的附加处理器。第一处理器被配置为确定在第一处理器的高速缓存中是否未找到数据行并为该数据行转发请求至第二处理器。第二处理器被配置为从第二处理器转发该数据行至第一处理器,更新第二处理器的目录以反映出该数据行被转发给第一处理器,并且转发目录更新消息给至少一个附加处理器以反映出该数据行被转发给第一处理器。该目录中的项目(entry)包括存储地址、最近的数据保持设备,以及行状态。
在某些方面,如果第一处理器确定具有数据行地址的项目未在第一处理器的目录中被找到,则被发送以请求的第二处理器作为该数据行的归属代理(home agent)。如果第一处理器确定关于数据行地址的项目在第一处理器的目录中被找到,则请求被发送给作为数据保持设备的第二处理器。同样,第一处理器被配置为在第一处理器接收到来自第二处理器的数据行后使与第一处理器目录中的数据行地址有关的项目无效。至少一个附加处理器被配置为响应所述至少一个附加处理器接收到所述目录更新消息,而更新所述至少一个附加处理器的目录以反映出所述数据行被转发给所述第一处理器。
本发明的其它发明将在以下描述中部分地被阐明,并且从该描述部分地变得清楚,或者可以通过本发明的实践来了解。本发明的各方面将通过所附的权利要求中具体指出的元件和组合被实现和达到。需要理解的是以上一般说明和以下详细说明只是示范性和解释性的,而不是对本发明如后附的保护范围一样进行限制。
附图说明
附图被加入并组成了该说明书的一部分,阐明了本发明的实施例,并与说明一起,解释了本发明的原则。这里阐明的实施例目前是优选的,然而需要了解本发明并不限于所示的具体布局和实现方式,其中:
图1为表示依据本发明的维持多处理器计算机系统中的数据一致性的方法的流程图;以及
图2A和2B分别为实现不同的数据一致性维持方法的多处理器计算机系统的结构图。
具体实施方式
如图2A和2B中所阐明的,多处理器系统中的每个处理器10、11、12、13包括存储数据行的数据高速缓存和目录。目录是显示数据行如何流经多处理器系统的存储资料库(storage repository)。虽然不限于如下方式,但数据行的各目录项目可以包括该数据行的存储地址、最近的数据保持设备、以及数据行状态。作为示例,行状态可以是处理器具有数据行的独占权、数据行只读、或数据行已被修改。
图1中阐明了多处理器系统中的数据一致性维持方法的实例。在步骤110中,处理器10已经搜索了在程序执行中所用的数据行的最后一级高速缓存并且确定数据行未出现在处理器10的最后一级高速缓存中。在可与步骤110同时发生的步骤120中,处理器10在处理器10中的目录中搜索数据行地址。
如果数据行的地址在处理器10的目录中被找到,则该方法进入将随后针对图2B讨论的步骤230-290。然而,如果数据行的地址未在处理器10的目录中被找到,该方法继续进入如图2A所示的步骤130-180。在步骤130中,处理器10经由地址路由表发送请求至作为该数据行的占有者的归属代理(即处理器12)。该地址路由表映射有存储地址关于与各处理器相联系的存储器在哪里起始和终止。
在步骤140中,处理器12从存储器中检索该数据行并发送数据行至请求处理器10。在可能与步骤140同时发生的步骤150中,处理器12更新其自身的目录以反映出该数据行被发送至请求处理器10。在步骤160中,处理器12转发目录更新消息至多处理器系统内部的其它处理器11、13。在步骤170中,这些其它处理器11、13也更新它们的目录以反映出该数据行被发送至请求处理器10。在步骤180中,请求处理器10从处理器12接收该数据行,并且请求处理器10将该数据置于其自身的高速缓存中。虽然不限于此方式,可以不要求请求处理器10更新其自身的目录以反映出该数据行被发送至请求处理器10因为该数据行当前驻留于请求处理器10的高速缓存中。
如果数据行的地址在处理器10的目录中被找到,则在步骤230中,处理器10基于在处理器10的目录中找到的地址,发送请求至数据保持设备(即处理器11)。在步骤240中,处理器11从存储器中检索该数据行并发送该数据行至请求处理器10。在可能与步骤240同时发生的步骤250中,处理器11更新其自身的目录以反映出该数据行被发送至请求处理器10。在步骤260中,处理器11转发目录更新消息至多处理器系统内部的其它处理器12、13。在步骤270中,这些其它处理器12、13也更新它们的目录以反映出该数据行被发送至请求处理器10。在步骤280中,请求处理器10从处理器11接收数据行,并且请求处理器10将该数据置于其自身的高速缓存中。在步骤290中,请求处理器10使其自身目录中的该数据行项目无效,因为该项目不再准确。
硬件和软件的典型结合可以是带有计算机程序的通用计算机系统,当该计算机程序被加载和执行时,控制该计算机系统执行这里说明的方法。本发明也可以被嵌入计算机程序产品中,该产品包含所有能够实现这里所说明方法的特征,并且当被加载到计算机系统中时能够执行这些方法。
计算机程序或应用程序在当前的上下文中指的是任何表达形式,以任何语言、代码或符号表示的指令集,使得具有信息处理能力的系统直接地或在以下的任一步或两步操作后执行特定的功能:a)转换为另一种语言、代码或符号;b)以不同的物质形式再现。值得注意的是,本发明可以在不背离其精神或本质属性的条件下以其它具体形式来实现,并且相应地,应参照以下指出的本发明的保护范围,而不是上述的说明书。
Claims (20)
1.一种在多处理器系统中维持数据一致性的方法,包括如下步骤:
确定未在第一处理器的高速缓存中找到数据行;
在第一处理器的目录中查找所述数据行的地址;
根据在第一处理器的目录中的查找结果,转发关于所述数据行的请求至第二处理器;
从所述第二处理器转发所述数据行至所述第一处理器;
更新所述第二处理器的目录以反映出所述数据行被转发至所述第一处理器;以及
转发目录更新消息至独立于所述第一和第二处理器的至少一个附加处理器,由所述附加处理器响应该目录更新消息以更新目录,从而反映出所述数据行被转发至所述第一处理器。
2.权利要求1所述的方法,进一步包括:确定未在所述第一处理器的目录中找到具有所述数据行的地址的项目的步骤。
3.权利要求2所述的方法,其中,所述第一处理器的目录中的项目包括存储地址、最近的数据保持设备、以及行状态。
4.权利要求2所述的方法,其中,所述第二处理器为所述数据行的归属代理。
5.权利要求1所述的方法,进一步包括:确定在所述第一处理器的目录中找到关于所述数据行的地址的项目的步骤。
6.权利要求5所述的方法,其中,所述第一处理器的目录中的项目包括存储地址、最近的数据保持设备、以及行状态。
7.权利要求5所述的方法,其中,所述数据行的地址表明所述第二处理器为数据保持设备。
8.权利要求5所述的方法,进一步包括:在所述第一处理器接收到来自所述第二处理器的所述数据行后使所述第一处理器的目录中关于所述数据行的地址的所述项目无效的步骤。
9.权利要求1所述的方法,进一步包括:响应所述至少一个附加处理器接收到所述目录更新消息,而更新所述至少一个附加处理器的目录以反映出所述数据行被转发给所述第一处理器的步骤。
10.权利要求1所述的方法,其中,所述目录中的项目包括存储地址、最近的数据保持设备、以及行状态。
11.一种在多处理器系统中维持数据一致性的系统,包括:
具有高速缓存和目录的第一处理器;
具有目录的第二处理器;以及
至少一个具有目录并独立于所述第一和第二处理器的附加处理器,其中,
所述第一处理器被配置为:
确定是否未在所述第一处理器的高速缓存中找到数据行;
当确定未在所述第一处理器的高速缓存中找到所述数据行时,在所述第一处理器的目录中查找所述数据行的地址;以及
根据在所述第一处理器的目录中的查找结果,转发关于所述数据行的请求至所述第二处理器,以及
所述第二处理器被配置为:
从所述第二处理器转发所述数据行至所述第一处理器;
更新所述第二处理器的目录以反映出所述数据行被转发至所述第一处理器;以及
转发目录更新消息至所述至少一个附加处理器,由所述附加处理器响应该目录更新消息以更新目录,从而反映出所述数据行被转发至所述第一处理器。
12.权利要求11所述的系统,其中,所述第一处理器确定未在所述第一处理器的目录中找到具有所述数据行地址的项目。
13.权利要求12所述的系统,其中,所述第一处理器的目录中的项目包括存储地址、最新近的数据保持设备、以及行状态。
14.权利要求12所述的系统,其中,所述第二处理器为所述数据行的归属代理。
15.权利要求11所述的系统,其中,所述第一处理器确定在所述第一处理器的目录中找到关于所述数据行地址的项目。
16.权利要求15所述的系统,其中,所述第一处理器的目录中的项目包括存储地址、最新近的数据保持设备、以及行状态。
17.权利要求15所述的系统,其中,所述数据行的地址表明所述第二处理器为数据保持设备。
18.权利要求15所述的系统,其中,所述第一处理器被配置为在所述第一处理器接收到来自所述第二处理器的所述数据行后使所述第一处理器的目录中关于所述数据行地址的所述项目无效。
19.权利要求11所述的系统,其中,所述至少一个附加处理器被配置为响应所述至少一个附加处理器接收到所述目录更新消息,而更新所述至少一个附加处理器的目录以反映出所述数据行被转发给所述第一处理器。
20.权利要求11所述的系统,其中,所述目录中的项目包括存储地址、最新近的数据保持设备、以及行状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/322,955 | 2005-12-30 | ||
US11/322,955 US7404045B2 (en) | 2005-12-30 | 2005-12-30 | Directory-based data transfer protocol for multiprocessor system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991794A CN1991794A (zh) | 2007-07-04 |
CN100461136C true CN100461136C (zh) | 2009-02-11 |
Family
ID=38214060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101373137A Expired - Fee Related CN100461136C (zh) | 2005-12-30 | 2006-10-17 | 多处理器系统中维持数据一致性的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7404045B2 (zh) |
JP (1) | JP4959279B2 (zh) |
CN (1) | CN100461136C (zh) |
TW (1) | TWI386810B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7404045B2 (en) * | 2005-12-30 | 2008-07-22 | International Business Machines Corporation | Directory-based data transfer protocol for multiprocessor system |
CN101470669B (zh) * | 2007-12-28 | 2011-02-16 | 无锡江南计算技术研究所 | 多缓存数据一致性的处理方法及主存处理机 |
CN101794271B (zh) * | 2010-03-31 | 2012-05-23 | 华为技术有限公司 | 多核内存一致性的实现方法和装置 |
US9274955B2 (en) * | 2012-08-17 | 2016-03-01 | Futurewei Technologies, Inc. | Reduced scalable cache directory |
US9292444B2 (en) | 2013-09-26 | 2016-03-22 | International Business Machines Corporation | Multi-granular cache management in multi-processor computing environments |
US9086974B2 (en) | 2013-09-26 | 2015-07-21 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
US9298623B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Identifying high-conflict cache lines in transactional memory computing environments |
US9329890B2 (en) | 2013-09-26 | 2016-05-03 | Globalfoundries Inc. | Managing high-coherence-miss cache lines in multi-processor computing environments |
US9298626B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Managing high-conflict cache lines in transactional memory computing environments |
US9582251B2 (en) | 2014-11-14 | 2017-02-28 | Cavium, Inc. | Algorithm to achieve optimal layout of decision logic elements for programmable network devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
US20010037419A1 (en) * | 1996-07-01 | 2001-11-01 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient block copy operations |
CN1110752C (zh) * | 1997-03-05 | 2003-06-04 | 国际商业机器公司 | 实现高速缓存一致性机制的方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09305489A (ja) * | 1996-05-14 | 1997-11-28 | Canon Inc | 情報処理システム及びその制御方法 |
US6052762A (en) | 1996-12-02 | 2000-04-18 | International Business Machines Corp. | Method and apparatus for reducing system snoop latency |
US6078997A (en) * | 1996-12-09 | 2000-06-20 | Intel Corporation | Directory-based coherency system for maintaining coherency in a dual-ported memory system |
JPH11102321A (ja) * | 1997-09-26 | 1999-04-13 | Nec Corp | 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式 |
EP0908825B1 (en) * | 1997-10-10 | 2002-09-04 | Bull S.A. | A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory |
JP4689783B2 (ja) * | 1999-09-28 | 2011-05-25 | 富士通株式会社 | 分散共有メモリ型並列計算機 |
US7096323B1 (en) * | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US20040199727A1 (en) * | 2003-04-02 | 2004-10-07 | Narad Charles E. | Cache allocation |
US7310724B2 (en) * | 2003-06-30 | 2007-12-18 | Intel Corporation | Parallel execution of enhanced EFI based BIOS drivers on a multi-processor or hyper-threading enabled platform |
US7249224B2 (en) * | 2003-08-05 | 2007-07-24 | Newisys, Inc. | Methods and apparatus for providing early responses from a remote data cache |
JP4362454B2 (ja) * | 2005-04-07 | 2009-11-11 | 富士通株式会社 | キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法 |
US7404045B2 (en) * | 2005-12-30 | 2008-07-22 | International Business Machines Corporation | Directory-based data transfer protocol for multiprocessor system |
-
2005
- 2005-12-30 US US11/322,955 patent/US7404045B2/en active Active
-
2006
- 2006-10-04 JP JP2006273451A patent/JP4959279B2/ja active Active
- 2006-10-17 CN CNB2006101373137A patent/CN100461136C/zh not_active Expired - Fee Related
- 2006-12-04 TW TW095145022A patent/TWI386810B/zh active
-
2008
- 2008-06-12 US US12/137,618 patent/US7925838B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5564035A (en) * | 1994-03-23 | 1996-10-08 | Intel Corporation | Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein |
US20010037419A1 (en) * | 1996-07-01 | 2001-11-01 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient block copy operations |
CN1110752C (zh) * | 1997-03-05 | 2003-06-04 | 国际商业机器公司 | 实现高速缓存一致性机制的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
TW200736919A (en) | 2007-10-01 |
CN1991794A (zh) | 2007-07-04 |
US20070156970A1 (en) | 2007-07-05 |
US7925838B2 (en) | 2011-04-12 |
US7404045B2 (en) | 2008-07-22 |
JP2007183915A (ja) | 2007-07-19 |
JP4959279B2 (ja) | 2012-06-20 |
TWI386810B (zh) | 2013-02-21 |
US20080313427A1 (en) | 2008-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100461136C (zh) | 多处理器系统中维持数据一致性的方法和系统 | |
KR101644666B1 (ko) | 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델 | |
CN100495361C (zh) | 维护存储器一致性的方法和系统 | |
US11055085B2 (en) | Method, apparatus, and system for hot-deploying application | |
US20140081927A1 (en) | Data node fencing in a distributed file system | |
JP2005018787A (ja) | キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し | |
CN110263275A (zh) | 一种访问网页的方法、装置、移动终端和存储介质 | |
US7363435B1 (en) | System and method for coherence prediction | |
US7647490B2 (en) | Method and apparatus for providing updated system locality information during runtime | |
CN112214247B (zh) | 一种系统启动方法以及相关设备 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN100514311C (zh) | 用于实现组合式数据/相关性高速缓存的方法和装置 | |
CN104978283A (zh) | 一种内存访问控制方法,及装置 | |
US9317432B2 (en) | Methods and systems for consistently replicating data | |
US20030115243A1 (en) | Distributed process execution system and method | |
US20030084095A1 (en) | Method to preserve web page links using registration and notification | |
US6282616B1 (en) | Caching managing method for network and terminal for data retrieving | |
CN103544117A (zh) | 一种数据读取方法及装置 | |
CN111367921A (zh) | 数据对象的刷新方法及装置 | |
JP5929420B2 (ja) | 演算処理装置、演算処理装置の制御方法及び情報処理装置 | |
CN117014504B (zh) | 数据传输方法、装置、设备、介质及产品 | |
CN102314505A (zh) | 基于偏序关系的缓冲区版本产生方法 | |
US7454740B1 (en) | Method and apparatus for caching predicates in a tracing framework | |
CN115202746A (zh) | 硬件访问方法、装置、机器人和存储介质 | |
CN116302710A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170712 Address after: Hongkong, China Patentee after: Lenovo International Ltd Address before: American New York Patentee before: International Business Machines Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090211 Termination date: 20171017 |
|
CF01 | Termination of patent right due to non-payment of annual fee |