CN100461136C - 多处理器系统中维持数据一致性的方法和系统 - Google Patents

多处理器系统中维持数据一致性的方法和系统 Download PDF

Info

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
Application number
CNB2006101373137A
Other languages
English (en)
Other versions
CN1991794A (zh
Inventor
克里斯·多布罗夫斯基
加恩·N.·法姆
马库斯·L.·考尔尼盖伊
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.)
Lenovo International Ltd
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1991794A publication Critical patent/CN1991794A/zh
Application granted granted Critical
Publication of CN100461136C publication Critical patent/CN100461136C/zh
Expired - Fee Related 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

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所述的系统,其中,所述目录中的项目包括存储地址、最新近的数据保持设备、以及行状态。
CNB2006101373137A 2005-12-30 2006-10-17 多处理器系统中维持数据一致性的方法和系统 Expired - Fee Related CN100461136C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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