CN1991795A - 用于信息处理的系统和方法 - Google Patents
用于信息处理的系统和方法 Download PDFInfo
- Publication number
- CN1991795A CN1991795A CNA2006101393446A CN200610139344A CN1991795A CN 1991795 A CN1991795 A CN 1991795A CN A2006101393446 A CNA2006101393446 A CN A2006101393446A CN 200610139344 A CN200610139344 A CN 200610139344A CN 1991795 A CN1991795 A CN 1991795A
- Authority
- CN
- China
- Prior art keywords
- cache line
- request
- node controller
- state
- cache
- 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
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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
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
技术领域
本发明涉及一种用于缺省数据前送一致的高速缓存代理的系统和方法。更特别地,本发明涉及一种用于修改MESIF协议的“转发”状态控制以便有效地支持可缩放节点控制器计算机系统的系统和方法。
背景技术
高速缓存一致性是计算机系统的整体性要素,它是管理高速缓存使得数据不丢失或者重写的过程。例如,当数据在高速缓存中更新但是尚未传送到它的目标存储器或者盘时,出错的可能性很高。高速缓存一致性是使用对高速缓存保持跟踪的算法和协议来获得的。在对称多处理(SMP)系统中,高速缓存甚至更为关键,因为多个处理器共享同一存储器空间。
一种现存的高速缓存一致性协议是MESIF(修改、独占、共享、无效、前送)协议。当高速缓存线处于“修改”状态中时,高速缓存代理具有计算机系统中的唯一正确数据。当高速缓存线处于“独占”状态中时(数据尚未修改),高速缓存代理具有对高速缓存进行修改的独占控制。当高速缓存线处于“共享”状态中时,多个高速缓存代理可以使它们的高速缓存存储器中的高速缓存线进行读取,而且每个拷贝是正确的。当高速缓存代理处的高速缓存线处于“无效”状态时,高速缓存代理的拷贝不正确,因为另一处理器已经更新了对应的存储器位置或者具有高速缓存线的独占状态。
最后,当高速缓存代理具有高速缓存线“前送”状态控制时,高速缓存代理在它接收到高速缓存线请求时将高速缓存线前送到请求的高速缓存代理。该前送状态消除了本地高速缓存代理为了高速缓存线而访问主存储器的需要,这改进了整体系统性能。然而,发现的挑战是对于使用可缩放节点控制器的系统而言,该前送状态没有被优化。对于这些系统来说,依赖于前送状态管理,对远程处理器进行高速缓存访问所造成的等待可能是严重的。
因此需要一种为使用可缩放节点控制器的系统有效地管理MESIF协议的高速缓存线前送状态控制的系统和方法。
发明内容
已经发现使用一种用于仅允许节点控制器拥有MESIF协议中的高速缓存线前送状态控制的系统和方法来解决上述挑战。当节点控制器从本地高速缓存代理接收到请求时,节点控制器将对应高速缓存线发送到本地高速缓存代理,而始终维持高速缓存线前送状态控制。当节点控制器从远程节点控制器接收到请求时,节点控制器将高速缓存线随同高速缓存线前送状态控制一起发送到远程节点控制器。
节点控制器从本地高速缓存代理(本地处理器)或者从远程节点控制器接收高速缓存线请求。节点控制器基于高速缓存线请求的来源、请求类型和高速缓存线当前状态来执行特定动作。当节点控制器从本地高速缓存代理接收到共享请求而且对应高速缓存线的当前状态是共享时,节点控制器简单地将高速缓存线发送到本地高速缓存代理。例如,两个处理器可以共享(例如读取)特定高速缓存线,并且第三处理器希望读取同一高速缓存线。
当节点控制器从本地高速缓存代理接收到共享请求而且对应高速缓存线的当前状态是独占时,节点控制器先通知控制代理将它的状态降级到“共享”,其中该控制代理是具有处于独占状态中的高速缓存线的高速缓存代理。节点控制器然后将高速缓存线发送到本地高速缓存代理,继而将它的记录更新为高速缓存线处于共享状态中。
当节点控制器从本地高速缓存代理接收到独占请求时,高速缓存线的当前状态而言在一定程度上不是实质性的,因为节点控制器由于本地高速缓存代理要求独占访问而通知共享高速缓存代理以及控制代理将它们的状态降级到“无效”。一旦通知被发送,节点控制器将高速缓存线发送到本地高速缓存代理,继而更新它的记录以将本地高速缓存代理标识为高速缓存线的控制代理。
当节点控制器从远程节点控制器接收到远程共享请求并且高速缓存线的当前状态是共享时,节点控制器将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。节点控制器继而更新它的记录以标识出远程节点控制器现在具有对于特定高速缓存线的高速缓存线前送状态控制。
当节点控制器从远程节点控制器接收到远程共享请求并且对应高速缓存线的当前状态是独占时,节点控制器先通知控制代理将它的状态降级到共享。节点控制器然后将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。节点控制器继而更新它的记录以标识出远程节点控制器现在具有对于特定高速缓存线的高速缓存线前送状态控制。
最后,当节点控制器从远程节点控制器接收到远程独占请求时,高速缓存线的当前状态而言在一定程度上不是实质性的。节点控制器先通知共享高速缓存代理以及控制代理将它们的状态降级到“无效”。一旦该通知被发送,节点控制器将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。节点控制器继而更新它的记录以标识出远程节点控制器现在具有对于特定高速缓存线的前送状态控制。
上文是概要,因此必要地包含简化、概括和细节省略;因而,本领域技术人员将认识到,该概要仅仅是说明性的而不旨在于以任何方式加以限制。仅由权利要求书限定的本发明的其它方面、发明特征和优点将在下面阐述的非限制性的具体描述中变得明显。
附图说明
通过参照附图,可以更好地理解本发明,而且使得它的许多目的、特征和优点对于本领域技术人员变得明显。
图1是示出了在不具有这里描述的本发明的情况下处理器或者节点控制器将高速缓存线前送状态控制前送到远程节点处理器的图;
图2是示出了节点控制器将高速缓存线和高速缓存线前送状态控制前送到远程节点控制器的图;
图3是示出了基于高速缓存线请求类型和高速缓存线当前状态的节点控制器动作的表;
图4是示出了在处理器从节点控制器请求和接收高速缓存线时所采取的步骤的流程图;
图5是示出了在节点控制器处理高速缓存线请求时所采取的步骤的高级流程图;
图6是示出了在处理远程高速缓存线请求时的步骤的流程图;以及
图7是能实施本发明的计算设备的框图。
具体实施方式
下文旨在于提供对本发明的例子的具体描述,而不应当理解为限制本发明本身。实际上任何数目的变形可以落入于在基于说明书的权利要求书中限定的本发明范围之内。
图1是示出了在不具有这里描述的本发明的情况下遵循现存MESIF(修改、独占、共享、无效、前送)协议的计算机系统的图。图1中所示的每个处理器和节点包括请求和接收高速缓存线的高速缓存代理。处理器访问存储器映射以便确定特定高速缓存线的“归属节点”,也就是高速缓存线的物理位置。
图1中的例子从处理器A 100出于只读目的而请求高速缓存线开始。处理器A 100确定处理器D 115是特定高速缓存线的归属节点,并且将请求150发送到处理器D 115。此外,处理器A 100将“探听”152、154和156分别地发送到处理器B 105、处理器C 110和节点控制器Y 120。当归属节点高速缓存代理之外的高速缓存代理具有对所请求的高速缓存线的控制时,探听是向非归属节点的其它本地高速缓存代理请求处理状况的请求(见下文)。
在图1中所示的例子中,处理器C 110具有对特定高速缓存线的控制,也具有“高速缓存线前送状态控制”(基于现存MESIF协议)。具有高速缓存线前送状态控制的高速缓存代理负责将高速缓存线前送到本地高速缓存代理。同样,处理器C 110将高速缓存线以及高速缓存线前送状态控制前送到处理器A 100(前送160)。此外,处理器C 110将指示它的动作的探听响应162发送到处理器D 115(归属节点)。处理器B 105、处理器C 110和节点控制器Y 120也分别地将探听响应158、162和159发送到处理器D 115。
继续图1中的例子,处理器E 125(远程处理器)现在请求读取同一高速缓存线。同样,处理器E 125将请求170发送到节点控制器Z145,该节点控制器Z 145将请求170发送到节点控制器Y 120。在这一点,现有技术允许两种用于向处理器E 125提供高速缓存线的可选方式。
第一可选方式使节点控制器Y将高速缓存线随同高速缓存线前送状态控制一起发送到处理器E 125(前送N 175)。这一可选方式的缺点在于高速缓存线状态管理复杂,这可能造成处理器A 100和处理器E 125同时具有高速缓存线前送状态控制。
第二可选方式使处理器A 100通过节点控制器120将高速缓存线随同高速缓存线前送状态控制一起发送到处理器E 125(前送P 180)。这一可选方式的缺点在于数据等待显著增加,这使整体系统性能降级。因此,通过使用这里描述的本发明,将MESIF协议更改为仅使节点控制器拥有高速缓存线前送状态控制,就减少了系统复杂度和系统等待(关于进一步的细节,见图2-6和对应文字)。
图2是示出了计算机系统的图,该计算机系统遵循了使用这里描述的本发明所修改后的MESIF协议。修改后的MESIF协议仅允许节点控制器拥有高速缓存线前送状态控制。结果,节点控制器将高速缓存线发送到本地高速缓存代理,同时仍然维持高速缓存线前送状态控制。当节点控制器从远程节点控制器接收到请求时,节点控制器将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。处理器A 100、B 105、C 110、D 115以及节点控制器Y 120和Z 145与图1中所示相同。
与图1相似,图2中的例子从处理器A 100请求高速缓存线“共享请求”(只读目的)开始。处理器A 100确定处理器D 115是特定高速缓存线的归属节点,并且将请求200发送到处理器D 115。此外,处理器A 100分别地将“探听”202、204和206发送到处理器B 105、处理器C 110和节点控制器Y 120。
在一个实施例中,共享请求是“总线读取线”(BRL)请求。在这一实施例中,高速缓存代理不知道高速缓存线是否为共享的、独占的、无效的、企业层叠(tier)组件。如果高速缓存线在另一处理器或者节点控制器处使用,则作为BRL的结果,请求代理将该线高速缓存于共享状态中。
在图2中所示的例子中,处理器C 110具有对处理器A 100所请求的高速缓存线(独占状态)的控制。然而,使用这里描述的本发明,处理器C 110没有高速缓存线前送状态控制。实际上,节点控制器Y120具有高速缓存线前送状态控制。处理器B 105、处理器C 110和节点控制器Y 120分别地将探听响应208、210和212发送到处理器D115。
作为节点控制器Y 120具有高速缓存线前送状态控制的结果,节点控制器Y 120将消息220发送到处理器C 110,该消息命令处理器C110将它的状态降级到共享状态。继而,节点控制器Y 120将高速缓存线发送到处理器A 100(发送215),而始终维持高速缓存线前送状态控制。
继续图2中的例子,处理器E 125(远程控制器)现在请求读取同一高速缓存线。同样,处理器E 125将请求230发送到节点控制器Z145,该节点控制器Z 145将请求230发送到节点控制器Y 120。由于节点控制器Y 120具有高速缓存线前送状态控制,所以节点控制器Y120将高速缓存线随同高速缓存线前送状态控制一起发送到节点控制器Z 145(前送240)。在发送前送240之前,节点控制器Y 120可以将消息发送到一个或多个本地处理器(处理器A 100、处理器B 105、处理器C 110和处理器D 115),该消息通知它们将它们的状态降级。该消息是基于高速缓存线的当前状态和请求230的请求“类型”(共享或者独占)(关于状态降级的进一步细节,见图3和对应文字)。
一旦节点控制器Z 145接收到高速缓存线和高速缓存线前送状态控制,节点控制器Z 145保留高速缓存线前送状态控制而且将高速缓存线发送到处理器E 125(发送250)。结果,只有节点控制器Y 120和Z 145拥有高速缓存线前送状态控制。
图3是示出了基于高速缓存线请求类型和高速缓存线当前状态的节点控制器动作的表。高速缓存线请求类型可以是比如来自节点控制器所支持的处理器的本地请求,或者高速缓存线可以是比如来自远程节点控制器的远程请求。如果一个或多个高速缓存代理在读取高速缓存线,则高速缓存线当前状态可以是“共享”状态,或者如果高速缓存代理之一具有处于独占状态中的高速缓存线并且打算修改高速缓存线但是尚未修改高速缓存线,则高速缓存线当前状态可以是“独占”。
在一个实施例中,独占请求是“总线读取无效线”(BRIL)请求。在这一实施例中,高速缓存代理不知道高速缓存线是否当前为共享、独占、无效等。当高速缓存代理以修改高速缓存线内容的意图来请求读取高速缓存线时(BRIL请求),在当前使用高速缓存线的其它高速缓存代理处高速缓存线的状态被降级到“无效”。
表300包括列310至330。列310包括节点控制器从本地高速缓存代理或者远程节点控制器接收的各种请求类型。列320包括“共享”或者“独占”高速缓存线当前状态标识符,而列330包括基于列310中的请求类型和列320中的高速缓存线当前状态的动作。
行340至360示出了当节点控制器从本地高速缓存代理接收到高速缓存线请求时所采取的动作。行340示出了通过从本地高速缓存代理接收到共享请求并且对应高速缓存线的当前状态是共享,节点控制器简单地将高速缓存线发送到本地高速缓存代理。例如,两个处理器可以共享(例如读取)特定高速缓存线,而第三处理器希望读取同一高速缓存线。
行350示出了当节点控制器从本地高速缓存代理接收到共享请求而且对应高速缓存线的当前状态是独占时,节点控制器先通知控制代理(它是具有处于独占状态中的高速缓存线的高速缓存代理)将它的状态降级到“共享”。节点控制器然后将高速缓存线发送到本地高速缓存代理,继而节点控制器将它的记录更新为高速缓存线处于共享状态中。
行360示出了当节点控制器接收到独占请求类型时,高速缓存线的当前状态在一定程度上不是实质性的,因为节点控制器由于本地高速缓存代理正在请求独占访问而通知共享高速缓存代理以及控制代理将它们的状态降级到无效。一旦发送该通知,节点控制器将高速缓存线发送到本地高速缓存代理,继而节点控制器更新它的记录以将本地高速缓存代理标识为高速缓存线的控制代理。
行370至行390示出了当节点控制器从远程节点控制器接收到请求时所采取的动作。行370示出了当节点控制器接收到远程共享请求并且高速缓存线的当前状态是共享时,节点控制器将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。继而,节点控制器更新它的记录以标识出远程节点控制器现在具有对于特定高速缓存线的高速缓存线前送状态控制。
行380示出了当节点控制器接收到远程共享请求并且对应高速缓存线的当前状态是独占时,节点控制器先通知控制代理将它的状态降级到共享。节点控制器然后将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。继而,节点控制器更新它的记录以标识出远程节点控制器现在具有对于特定高速缓存线的高速缓存线前送状态控制。
行390示出了当节点控制器接收到远程独占请求类型时,高速缓存线的当前状态、比如行360中所示的当前状态在一定程度上不是实质性的。节点控制器先通知共享高速缓存代理以及控制代理将它们的状态降级到无效。一旦发送该通知,节点控制器将高速缓存线和高速缓存线前送状态控制发送到远程节点控制器。继而,节点控制器更新它的记录以标识出远程节点控制器现在具有对于特定高速缓存线的前送状态控制。
图4是示出了在高速缓存代理从节点控制器请求和接收到高速缓存线时所采取的步骤的流程图。高速缓存代理包含于处理器中,该处理器处理比如来自应用的高速缓存线请求。高速缓存线请求可以对应于内部高速缓存线(在处理器内部)或者外部高速缓存线(在处理器外部)。
高速缓冲器处理开始于400,由此高速缓存代理在步骤410从应用405接收存储器请求。例如,应用405可以计算数字值和要求存储在特定高速缓存线中的数字。在步骤420,高速缓存代理在存储器映射425中查找存储器位置以识别高速缓存线的“归属节点”,它是高速缓存线的物理处理器位置。存储器映射425可以存储于比如计算机存储器的易失性存储区上。
确定处理器本身是否为归属节点(判决430)。如果处理器本身是归属节点,则判决430转移到“是”分支432,由此高速缓存从本地存储器取回高速缓存线(步骤435)并且在步骤440将高速缓存线提供给应用405。高速缓存代理处理在445结束。
另一方面,如果所请求的高速缓存线的归属节点是在不同的处理器,则判决430转移到“否”分支438,由此高速缓存代理基于上面所识别的存储器映射位置来识别对应高速缓存线的归属节点(步骤450)。例如,在四个处理器的系统中,高速缓存代理可以识别出高速缓存线的归属节点是在第三处理器。
在步骤460,高速缓存代理将请求发送到归属节点处理器(包含于处理器465中),而且将“探听”发送到处理器465中的其它处理器以及节点控制器470。节点控制器470是控制高速缓存线前送的本地节点控制器。在步骤480,高速缓存代理从节点控制器470接收所请求的高速缓存线,并且在步骤485将高速缓存线提供到应用405。处理在490结束。
图5是示出了在节点控制器处理高速缓存线请求时所采取的步骤的高级流程图。节点控制器处理在500开始,由此节点控制器从包含于处理器515中的本地高速缓存代理或者从远程节点控制器520接收高速缓存线请求。
确定高速缓冲线请求是来自处理器515(本地请求)还是来自远程节点控制器(远程请求)(判决530)。如果高速缓存线请求是远程请求,则判决530转移到“是”分支532,由此节点控制器处理远程请求(预定义的过程块535,关于进一步细节,见图6和对应文字)。
另一方面,如果高速缓存线请求是本地请求,则判决530转移到“否”分支538,由此确定高速缓存线请求的“请求类型”。请求类型可以是“共享”请求(只读)或者请求类型可以是“独占”请求(打算修改)(判决540)。如果请求是独占请求,则判决540转移到“独占”分支542,由此该处理向具有处于共享状态或者独占状态中的对应高速缓存线的其它代理通知将它们的状态降级到“无效”状态,因为本地高速缓存代理正在请求对对应高速缓存线的独占状态(步骤545)。
在步骤550,节点控制器将高速缓存线发送到本地高速缓存代理,而始终维持高速缓存线的“前送状态控制”。这意味着即使节点控制器将高速缓存线发送到本地高速缓存代理,但是当高速缓存代理下次请求同一高速缓存线时,节点控制器仍然负责将高速缓存线发送到其它高速缓存代理。在步骤555,节点控制器更新记录,该记录将本地高速缓存代理标识为新的控制代理(归因于独占高速缓存线请求)。
另一方面,如果高速缓存线请求是共享请求(只读),则判决540转移到“共享”分支548,由此确定对应高速缓存线的当前状态,当前状态可以是共享或者独占(判决560)。如果高速缓存线当前状态是“共享”,则判决560转移到“共享”分支562,由此节点控制器在步骤565将高速缓存线发送到处理器515中的本地高速缓存代理。同样,节点控制器维持前送状态控制。
另一方面,如果高速缓存线当前状态是独占,则判决560转移到“独占”分支568,由此节点控制器在步骤570通知控制代理(即当前具有高速缓存线独占状态的代理)将它的状态降级到它的状态。在步骤575,节点控制器将高速缓存线前送到位于处理器515中的本地高速缓存代理。节点控制器在步骤580中记录:没有高速缓存代理当前是控制代理。
确定是否继续节点控制器处理(判决590)。如果节点控制器应当继续处理高速缓存线请求,则判决590转移到“是”分支592,该分支循环回到处理另一高速缓存线请求。这一循环继续到节点控制器应当终止为止,在这一点,判决590转移到“否”分支598,由此处理在599结束。
图6是示出了在处理远程高速缓存线请求时所采取的步骤的流程图。图6中的步骤类似于图5中的步骤,不同在于节点控制器将高速缓存线的“前送状态控制” 以及高速缓存线本身前送到远程节点控制器。处理在600开始,由此确定远程节点控制器的请求类型(判决610)。如果该请求是远程独占请求,则判决610转移到“远程独占”分支612,由此该处理向具有处于共享状态或者独占状态中的对应高速缓存线的其它代理通知将它们的状态降级到无效状态,因为本地高速缓存代理正在请求对对应高速缓存线的独占状态(步骤615)。
在步骤620,节点控制器将高速缓存线和前送状态控制发送到远程节点控制器。结果,远程节点控制器现在负责处理对于特定高速缓存线的后续请求。在步骤625,节点控制器更新它的记录,该记录标识出远程节点控制器具有高速缓存线的前送状态控制。
另一方面,如果高速缓存线请求是共享请求(只读),则判决610转移到“远程共享”分支618,由此确定对应高速缓存线的当前状态,当前状态可以是共享或者独占(判决630)。如果高速缓存线当前状态是“共享”,则判决630转移到“共享”分支632,由此节点控制器在步骤635将高速缓存线和前送状态控制发送到远程节点控制器。在步骤640,节点控制器更新它的记录,该记录标识出远程节点控制器具有高速缓存线的前送状态控制。
另一方面,如果高速缓存线当前状态是独占,则判决630转移到“独占”分支638,由此节点控制器在步骤645通知控制代理(即当前具有高速缓存线独占状态的代理)将它的状态降级到“共享”。在步骤650,节点控制器将高速缓存线和前送状态控制发送到远程节点控制器。节点控制器在步骤655记录:没有高速缓存代理是控制代理(独占控制)并且远程节点控制器具有高速缓存线的前送状态控制。处理在660返回。
图7图示了信息处理系统701,它是能执行这里所述计算操作的计算机系统的简化例子。计算机系统701包括耦合到主机总线702的处理器700。二级(L2)高速缓存存储器704也耦合到主机总线702。主机到PCI桥接器706耦合到主存储器708,包括高速缓存存储器和主存储器控制功能,而且提供总线控制以处理在PCI总线710、处理器700、L2高速缓存704、主存储器708和主机总线702之间的传送。主存储器708耦合到主机到PCI桥接器706以及主机总线702。仅由一个或多个主机处理器700所使用的设备,比如LAN卡730,耦合到PCI总线710。服务处理器接口和ISA访问通行712提供在PCI总线710和PCI总线714之间的接口。以这一方式,PCI总线714与PCI总线710相隔离。比如闪存718的设备耦合到PCI总线714。在一个实施中,闪存718包括BIOS代码,该代码结合了用于各种低级系统功能和系统引导功能的必要处理器可执行代码。
PCI总线714为一个或多个主机处理器700和服务处理器716所共享的各种设备(例如闪存718)提供接口。PCI到ISA桥接器735提供用以对于在PCI总线714与ISA总线740之间的传送进行处理的总线控制、通用串行总线(USB)功能745、电源管理功能755,而且可以包括未示出的其它功能单元,比如实时时钟(RTC)、DMA控制、中断支持和系统管理总线支持。非易失性RAM 720附接于ISA总线740。服务处理器716包括用于在初始化步骤期间与一个或多个处理器700通信的JTAG和I2C总线722。JTAG/I2C总线722也耦合到L2高速缓存704、主机到PCI桥接器706和主存储器708,提供在处理器、服务处理器、L2高速缓存、主机到PCI桥接器与主存储器之间的通信路径。服务处理器716也可以访问系统电源资源以使信息处理设备701断电。
外围设备和输入/输出(I/O)设备可以附接于各种接口,例如耦合到ISA总线740的并行接口762、串行接口764、键盘接口768和鼠标接口770。可选地,可以通过附接于ISA总线740的超级I/O控制器(未示出)来容纳许多I/O设备。
为了将计算机系统701附接到另一计算机系统以通过网络拷贝文件,LAN卡730耦合到PCI总线710。类似地,为了使用电话线连接将计算机系统701连接到ISP以连接到因特网,调制解调器775连接到串行端口和PCI到ISA桥接器735。
尽管图7示出了采用一个或多个处理器700的一个信息处理系统,但是信息处理系统可以采用许多形式。例如,信息处理系统701可以采用桌面型、服务器、便携式、膝上型、笔记本或者其它形式要素的计算机或者数据处理系统。信息处理系统701也可以采用其它形式要素,比如个人数字助理(PDA)、游戏设备、ATM机、便携电话设备、通信设备或者包括处理器和存储器的其它设备。
本发明的优选实施之一是客户机应用,即例如可以驻留于计算机随机存取存储器中的代码模块中的指令集(程序代码)。在被计算机需要之前,指令集可以存储于比如硬盘的另一计算机存储器中,或者比如光盘(用于最终用在CD ROM中)或软盘(用于最终用在软盘驱动中)的可移动存储器中或者经由因特网或其它计算机网络下载。因此,本发明可以实施成一种用于在计算机中使用的计算机程序产品。此外,尽管在通过软件有选择地激活或者配置的通用计算机中方便地实施所述各种方法,但是本领域普通技术人员也将认识到,可以在硬件中、在固件中或者在构造为执行所需方法步骤的更专业的装置中实现这样的方法。
尽管已经示出和描述了本发明的特定实施例,但是对于本领域技术人员将明显的是,基于这里的教学,在不脱离本发明及其更广泛的方面时可以做出变化和修改。因此,所附权利要求书旨在于在它们的范围之内涵盖在本发明的真实精神和范围之内的所有这样的变化和修改。另外,将理解到本发明仅由所附权利要求书限定。本领域技术人员将理解到,如果意图指出所引入权利要求要素的具体数字,则这样的意图将明确地记载于权利要求中,而在缺乏这样的记载时则没有这样的限制。对于非限制性例子,作为对理解的帮助,所附权利要求包含了引导短语“至少一个”和“一个或多个”的使用以引入权利要求要素。然而,这种短语的使用不应当理解为意味着,通过不定冠词“a”或“an”对权利要求要素的引入会把任何包含这样引入的权利要求要素的特定权利要求限制为仅包含一个这种元素的发明,而这一点即使在同一权利要求包括引导短语“一个或多个”或者“至少一个”和比如“a”或“an”的不定冠词时仍然成立;对于在权利要求书中使用定冠词也遵循同一原则。
Claims (13)
1.一种计算机实施的方法,包括:
在节点控制器检测高速缓存线请求;
在该节点控制器确定该高速缓存线请求是否对应于本地高速缓存代理;以及
响应于确定该高速缓存线请求对应于该本地高速缓存代理,将高速缓存线前送到该本地高速缓存代理,同时在该节点控制器保留高速缓存线前送状态控制,该高速缓存线对应于该高速缓存线请求并且该高速缓存线前送状态控制对应于该高速缓存线。
2.权利要求1的方法,还包括:
确定该高速缓存线请求对应于远程节点控制器;以及
响应于确定该高速缓存线请求对应于该远程节点控制器,将该高速缓存线和该高速缓存线前送状态控制前送到该远程节点控制器。
3.权利要求2的方法,其中该高速缓存线请求对应于该远程节点控制器,该方法还包括:
确定该高速缓存线请求是远程共享请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是远程共享请求和确定该高速缓存线当前状态是独占:
通知控制代理将它的状态降级到共享,其中该控制代理与该独占高速缓存线状态相关联;以及
响应于该通知,将记录更新为该远程节点控制器具有对于该高速缓存线的高速缓存线前送状态控制。
4.权利要求2的方法,其中该高速缓存线请求对应于该远程节点控制器,该方法还包括:
确定该高速缓存线请求是远程独占请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是远程独占请求和确定该高速缓存线当前状态是独占:
通知一个或多个其它本地高速缓存代理将它们的状态降级到无效;以及
响应于该通知,将记录更新为该远程节点控制器具有对于该高速缓存线的高速缓存线前送状态控制。
5.权利要求1的方法,还包括:
确定该高速缓存线请求是共享请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是共享请求和确定该高速缓存线当前状态是独占:
通知控制代理将它的状态降级到共享,其中该控制代理与该独占高速缓存线状态相关联;以及
响应于该通知,将记录更新为该控制代理不再具有对于该高速缓存线的独占高速缓存线状态。
6.权利要求1的方法,还包括:
确定该高速缓存线是独占请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是独占请求和确定该高速缓存线当前状态是独占:
通知控制代理将它的状态降级到无效,其中该控制代理与该独占高速缓存线状态相关联;以及
响应于该通知,将记录更新为该本地代理具有对于该高速缓存线的独占高速缓存线状态。
7.权利要求1的方法,其中该高速缓存线请求是从包括总线读取线请求和总线读取无效请求的组中所选择的。
8.一种信息处理系统,包括:
一个或多个处理器;
可由该处理器访问的存储器;
可由该处理器访问的一个或多个非易失性存储设备;以及
用于管理高速缓存线前送状态控制的高速缓存线管理工具,该高速缓存线管理工具有效地执行如下步骤:
在节点控制器检测通过计算机网络接收的高速缓存线请求;
在该节点控制器确定该高速缓存线请求是否对应于本地高速缓存代理;以及
响应于确定该高速缓存线请求对应于该本地高速缓存代理,通过该计算机网络将高速缓存线前送到该本地高速缓存代理,同时在该节点控制器保留高速缓存线前送状态控制,该高速缓存线对应于该高速缓存线请求而该高速缓存线前送状态控制对应于该高速缓存线。
9.权利要求8的信息处理系统,其中该高速缓存线管理工具还执行如下步骤:
确定该高速缓存线请求对应于远程节点控制器;以及
响应于确定该高速缓存线请求对应于该远程节点控制器,通过该计算机网络将该高速缓存线和该高速缓存线前送状态控制前送到该远程节点控制器。
10.权利要求9的信息处理系统,其中该高速缓存线请求对应于该远程节点控制器,该高速缓存线管理工具还执行如下步骤:
确定该高速缓存线请求是远程共享请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是远程共享请求和确定该高速缓存线当前状态是独占:
通过计算机网络通知控制代理将它的状态降级到共享,其中
该控制代理与该独占高速缓存线状态相关联;以及
响应于该通知,将位于该非易失性存储设备之一中的记录更新为该远程节点控制器具有对于该高速缓存线的高速缓存线前送状态控制。
11.权利要求9的信息处理系统,其中该高速缓存线请求对应于该远程节点控制器,该高速缓存线管理工具还执行如下步骤:
确定该高速缓存线请求是远程独占请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是远程独占请求和确定该高速缓存线当前状态是独占:
通过该计算机网络通知一个或多个其它本地高速缓存代理将它们的状态降级到无效;以及
响应于该通知,将包含于该非易失性存储设备之一中的记录更新为该远程节点控制器具有对于该高速缓存线的高速缓存线前送状态控制。
12.权利要求8的信息处理系统,其中该高速缓存线管理工具还执行如下步骤:
确定该高速缓存线请求是共享请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是共享请求和确定该高速缓存线当前状态是独占:
通过该计算机网络通知控制代理将它的状态降级到共享,其中该控制代理与该独占高速缓存线状态相关联;以及
响应于该通知,将位于该非易失性存储设备之一中的记录更新为该控制代理不再具有对于该高速缓存线的独占高速缓存线状态。
13.权利要求8的信息处理系统,其中该高速缓存线管理工具还执行如下步骤:
确定该高速缓存线是独占请求;
确定与该高速缓存线对应的高速缓存线当前状态是独占;以及
响应于确定该高速缓存线请求是独占请求和确定该高速缓存线当前状态是独占:
通过该计算机网络通知控制代理将它的状态降级到无效,其中该控制代理与该独占高速缓存线状态相关联;以及
响应于该通知,将位于该非易失性存储设备之一中的记录更新为该本地代理具有对于该高速缓存线的独占高速缓存线状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/320,075 US20070150664A1 (en) | 2005-12-28 | 2005-12-28 | System and method for default data forwarding coherent caching agent |
US11/320,075 | 2005-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1991795A true CN1991795A (zh) | 2007-07-04 |
CN100474270C CN100474270C (zh) | 2009-04-01 |
Family
ID=38195271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101393446A Expired - Fee Related CN100474270C (zh) | 2005-12-28 | 2006-09-26 | 用于信息处理的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070150664A1 (zh) |
JP (1) | JP5064753B2 (zh) |
CN (1) | CN100474270C (zh) |
TW (1) | TW200809497A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012119369A1 (zh) * | 2011-08-02 | 2012-09-13 | 华为技术有限公司 | 基于cc-numa的报文处理方法、装置和系统 |
CN103092807A (zh) * | 2012-12-24 | 2013-05-08 | 杭州华为数字技术有限公司 | 节点控制器、并行计算服务器系统以及路由方法 |
CN103119568A (zh) * | 2010-08-20 | 2013-05-22 | 英特尔公司 | 利用目录信息扩展高速缓存一致性监听广播协议 |
CN103294611A (zh) * | 2013-03-22 | 2013-09-11 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512742B2 (en) * | 2006-01-17 | 2009-03-31 | International Business Machines Corporation | Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope |
US7836144B2 (en) * | 2006-12-29 | 2010-11-16 | Intel Corporation | System and method for a 3-hop cache coherency protocol |
US8205045B2 (en) * | 2008-07-07 | 2012-06-19 | Intel Corporation | Satisfying memory ordering requirements between partial writes and non-snoop accesses |
US8799586B2 (en) * | 2009-09-30 | 2014-08-05 | Intel Corporation | Memory mirroring and migration at home agent |
US8438337B1 (en) | 2009-09-30 | 2013-05-07 | Netlogic Microsystems, Inc. | System and method for conditionally sending a request for data to a home node |
US8566533B1 (en) | 2009-09-30 | 2013-10-22 | Netlogic Microsystems, Inc. | System, method, and computer program product for conditionally sending a request for data to a node based on a determination |
US8984228B2 (en) * | 2011-12-13 | 2015-03-17 | Intel Corporation | Providing common caching agent for core and integrated input/output (IO) module |
US9170946B2 (en) * | 2012-12-21 | 2015-10-27 | Intel Corporation | Directory cache supporting non-atomic input/output operations |
CN103294612B (zh) * | 2013-03-22 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
US10339059B1 (en) * | 2013-04-08 | 2019-07-02 | Mellanoz Technologeis, Ltd. | Global socket to socket cache coherence architecture |
US9405687B2 (en) | 2013-11-04 | 2016-08-02 | Intel Corporation | Method, apparatus and system for handling cache misses in a processor |
US10713169B2 (en) | 2018-01-17 | 2020-07-14 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10579527B2 (en) | 2018-01-17 | 2020-03-03 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10387310B2 (en) | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10719248B2 (en) * | 2018-04-20 | 2020-07-21 | Micron Technology, Inc. | Apparatuses and methods for counter update operations |
US10915445B2 (en) | 2018-09-18 | 2021-02-09 | Nvidia Corporation | Coherent caching of data for high bandwidth scaling |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816474A (ja) * | 1994-06-29 | 1996-01-19 | Hitachi Ltd | マルチプロセッサシステム |
JPH09305489A (ja) * | 1996-05-14 | 1997-11-28 | Canon Inc | 情報処理システム及びその制御方法 |
US6282615B1 (en) * | 1999-11-09 | 2001-08-28 | International Business Machines Corporation | Multiprocessor system bus with a data-less castout mechanism |
US20030131201A1 (en) * | 2000-12-29 | 2003-07-10 | Manoj Khare | Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system |
JP2003216596A (ja) * | 2002-01-17 | 2003-07-31 | Hitachi Ltd | マルチプロセッサシステム及びノード装置 |
JP2003216597A (ja) * | 2002-01-23 | 2003-07-31 | Hitachi Ltd | マルチプロセッサシステム |
US6954829B2 (en) * | 2002-12-19 | 2005-10-11 | Intel Corporation | Non-speculative distributed conflict resolution for a cache coherency protocol |
US7111128B2 (en) * | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US7917646B2 (en) * | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
US7130969B2 (en) * | 2002-12-19 | 2006-10-31 | Intel Corporation | Hierarchical directories for cache coherency in a multiprocessor system |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
-
2005
- 2005-12-28 US US11/320,075 patent/US20070150664A1/en not_active Abandoned
-
2006
- 2006-09-26 CN CNB2006101393446A patent/CN100474270C/zh not_active Expired - Fee Related
- 2006-10-04 JP JP2006273480A patent/JP5064753B2/ja not_active Expired - Fee Related
- 2006-12-04 TW TW095145013A patent/TW200809497A/zh unknown
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103119568A (zh) * | 2010-08-20 | 2013-05-22 | 英特尔公司 | 利用目录信息扩展高速缓存一致性监听广播协议 |
US9298629B2 (en) | 2010-08-20 | 2016-03-29 | Intel Corporation | Extending a cache coherency snoop broadcast protocol with directory information |
CN103119568B (zh) * | 2010-08-20 | 2016-03-30 | 英特尔公司 | 利用目录信息扩展高速缓存一致性监听广播协议 |
WO2012119369A1 (zh) * | 2011-08-02 | 2012-09-13 | 华为技术有限公司 | 基于cc-numa的报文处理方法、装置和系统 |
CN103092807A (zh) * | 2012-12-24 | 2013-05-08 | 杭州华为数字技术有限公司 | 节点控制器、并行计算服务器系统以及路由方法 |
CN103294611A (zh) * | 2013-03-22 | 2013-09-11 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
CN103294611B (zh) * | 2013-03-22 | 2015-06-17 | 浪潮电子信息产业股份有限公司 | 一种基于有限数据一致性状态的服务器节点数据缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070150664A1 (en) | 2007-06-28 |
CN100474270C (zh) | 2009-04-01 |
JP2007179528A (ja) | 2007-07-12 |
TW200809497A (en) | 2008-02-16 |
JP5064753B2 (ja) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1991795A (zh) | 用于信息处理的系统和方法 | |
CN1277216C (zh) | 用于在共享存储器体系中可扩展的歧义消除的相干性的方法和设备 | |
CN1133933C (zh) | 混合numa/s-coma系统及方法 | |
CN1729458A (zh) | 供多处理器系统中的高速缓存同步中使用的转发状态 | |
CN100520738C (zh) | 更新无效一致状态的方法、数据处理系统和高速缓存系统 | |
CN1262942C (zh) | 利用无数据事务获得全局促进工具的方法、设备和系统 | |
CN1157659C (zh) | 非均匀存储器访问数据处理系统及其通信方法 | |
CN1272714C (zh) | 数据处理系统内分配和访问存储映像工具的方法、设备和系统 | |
KR100925572B1 (ko) | 상이한 길이의 캐시 위치 내의 캐시 코히어런시를 위한시스템, 방법, 프로세스 및 장치 | |
CN1873628A (zh) | 数据处理系统和方法 | |
CN101055545A (zh) | 数据处理系统中初始化存储块的方法、处理器、数据处理系统 | |
US7958314B2 (en) | Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
CN1866222A (zh) | 用于初始化存储器块的处理器、数据处理系统和方法 | |
CN1263312A (zh) | 具有共享干预支持的非均匀存储器访问数据处理系统 | |
US8140767B2 (en) | Cache management through delayed writeback | |
JPH1185710A (ja) | サーバ装置およびファイル管理方法 | |
CN101030171A (zh) | 减少无效一致状态的数据处理系统、高速缓存系统和方法 | |
TWI386810B (zh) | 多處理器系統以目錄為主之資料傳輸協定 | |
CN100338587C (zh) | 用于控制存储器系统的方法和设备 | |
CN103294612A (zh) | 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 | |
US20090157977A1 (en) | Data transfer to memory over an input/output (i/o) interconnect | |
CN101042678A (zh) | 数据处理的单元、系统和方法 | |
KR20070048797A (ko) | 프로세서 내의 dma 컨트롤러를 사용하여 프로세서캐시로 데이터를 전송하는 방법 | |
CN1869957A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090401 Termination date: 20100926 |