一种方法,包括:从第一对等节点向多节点系统中的多个节点发送对数据块副本的请求;通过所述第一对等节点从第二对等节点接收对数据块副本的请求;确定所接收的请求是否与所发送的请求有冲突;以及如果所接收的请求与所发送的 请求有冲突,则向归属节点发送关于所述数据块的消息,指明存在冲突。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
【国外来华专利技术】相关申请本美国专利申请涉及以下同时提交的美国专利申请(1)申请号10/XXXXXX(备案号P13983),2002年提交,标题为“用于多节点系统中的高速缓存相干的转发状态”;(2)申请号10/XXXXXX(备案号P13984),2002年提交,标题为“用于多处理器系统中高速缓存相干的分级目录”;(3)申请号10/XXXXXX(备案号P13985),2002年提交,标题为“多处理器系统中高速缓存分级结构的分级虚拟模型”;(4)申请号10/XXXXXX(备案号P13986),2002年提交,标题为“用于高速缓存相干协议的非推测分布式冲突解决”。领域本专利技术涉及高速缓冲存储器。更具体来说,本专利技术涉及多高速缓存多处理器系统中的分布式冲突解决。背景当电子系统包括多个高速缓冲存储器时,必须保持可供使用的数据的有效性。这通常通过根据高速缓存相干协议处理数据来实现。随着高速缓存和/或处理器数量的增加,保持高速缓存相干性的复杂度也增加。当多个组件(例如高速缓冲存储器、处理器)请求相同数据块时,多个组件之间的冲突必须以保持数据有效性的方式来解决。当前的高速缓存相干协议通常具有负责冲突解决的单个组件。但是,随着系统的复杂度增加,对用于冲突解决的单一组件的依赖性会降低整体系统性能。附图说明图1a到1e提供多节点系统中的冲突状况的概念说明。节点110、120和130是对等节点,它们可在高速缓冲存储器中存储所请求数据(例如高速缓存行)的副本。归属节点140为所请求数据的归属(H)节点。在图1a到1e的实例中,对等节点110和120存储所请求数据的无效副本或者没有存储副本,对等节点130存储没有回写到存储器的所请求数据的已修改副本。归属节点在存储器中存储数据的原始副本或者在修改回写到存储器时存储数据的已修改版本。如图1a所示,对等节点120发送“数据请求”消息以请求数据块、例如高速缓存行的副本。“数据请求”消息被发送到对等节点110和对等节点130。但是,送往对等节点130的“数据请求”消息被延迟。延迟可能例如由于缺乏可用带宽、缓冲考虑等而引起。对等节点110以“无有效副本”消息来响应来自对等节点120的“数据请求”消息,它向对等节点120表明,对等节点110没有所请求数据的有效副本。在对等节点120发送“数据请求”消息之后的某个时间,对等节点110向对等节点120和130发送“数据请求”消息,如图1c所示,请求与对等节点120所请求的数据相同的数据。对等节点120响应“数据请求”消息而向对等节点110提供“无有效副本”消息。对等节点130向对等节点110提供所请求数据。由对等节点130保持的数据副本(如果有的话)被标记为无效,以及由对等节点110存储的数据副本被标记为“已修改”。在对等节点130已经响应来自对等节点110的“数据请求”并使数据副本无效之后的某个时间,对等节点130接收来自对等节点120的延迟“数据请求”消息,如图1c所示。响应“数据请求”消息,对等节点130向对等节点120提供“无有效副本”消息。注意,由对等节点130存储的数据的状态从原始“数据请求”消息的时间改变为对等节点130响应“数据请求”消息的时间。由于对等节点110和130以“无有效副本”消息响应来自对等节点120的“数据请求”消息,因此对等节点120在发现没有所请求数据的有效高速缓存副本时向归属节点140请求数据副本。这样,如图1d所示,对等节点向归属节点140发送“读取”消息。归属节点140从存储器检索所请求数据,并向对等节点120提供该数据。对等节点120则以“独占”状态存储所请求数据。如图1e所示,图1a到1e所示的消息序列得到数据行的两个不兼容副本。在所提供的实例中,对等节点110以“已修改”状态存储数据副本,对等节点120以“独占”状态存储数据副本。但是,由对等节点120存储的副本不是对等节点120专有的。这样,多节点系统在某些情况下可能产生数据的不兼容副本,除非提供一种机制来解决高速缓存冲突。附图概述在附图中通过举例而不是限制的方式对本专利技术进行说明,附图中,同样的参考标号表示类似的元件。图1a到1e提供多节点系统中的冲突状况的概念说明。图2a到2d提供共享行冲突的概念说明。图3a到3d提供由接近同时发出的请求所引起的共享行冲突的概念说明。图4a到4d提供由多个请求中一个的延迟所引起的共享行冲突的概念说明。图5a到5d提供无效行冲突的概念说明。图6a到6d提供由多个请求中一个的延迟所引起的无效行冲突的概念说明。图7是节点的一个实施例的框图。图8是多处理器系统的一个实施例。详细说明描述多节点系统中分布式高速缓存相干性冲突解决的技术。为了便于说明,以下说明中提出了大量具体细节,以便透彻地理解本专利技术。然而,本领域的技术人员十分清楚,即使没有这些具体细节,也可以实施本专利技术。另一方面,结构和装置以框图形式来表示,以免使本专利技术含糊不清。请求消息以下消息是来自请求节点的对数据/动作的请求。这些消息对系统的所有节点广播。“端口读取行”(PRL)这是对数据段、例如高速缓存行的副本的请求。“端口读取无效行”(PRIL)这是在提供方节点的数据副本无效的情况下对数据段的副本的请求。这个消息也可称作“对所有权的请求”。“端口写入行”(PWL)这个消息使数据(例如已修改高速缓存行)被写入存储器。这个消息也可称作“脏驱逐”。“端口无效行”(PIL)这个消息使指定数据的状态从“共享”改变为“独占”。“端口写入无效行”(PWIL)这个消息使数据被写入存储器,以及使数据的目标副本无效。响应消息以下消息是响应上述请求而从对等(即非归属)节点发送到请求节点的消息。“无效状态确认”(IACK)这个消息是当发送响应的节点具有所请求数据的无效副本或者没有所请求数据的副本时对请求(PRL、PRIL、PWL、PIL、PWIL)的响应。“共享状态确认”(SACK)这个消息是当发送响应的节点具有处于“共享”状态的所请求数据的副本时对请求的响应。“所接收数据的确认”(DACK)这个消息由请求节点发送到请求节点从其接收了数据的节点。它是在请求节点已经向归属节点发送READ或CNCL消息并接收到来自归属节点的XFR/XFRI消息或ACK消息之后发送的。“冲突”这个消息表明对于所请求的高速缓存行存在共同未决的请求。到归属节点的消息这些消息由对等节点发送到归属节点。“读取(冲突)”这个消息向归属节点请求数据并列出冲突(如果有的话)。在所有响应由对等节点接收到之后,如果没有所接收消息是DATA(数据)消息,则发送这个消息。“CNCL(冲突)”这个消息响应对等节点中的命中而发送到归属节点并列出冲突(如果有的话)。这个消息取消归属节点的预取操作。在所有响应由对等节点接收到并且其中之一为DATA消息之后,发送这个消息。“数据”这个消息用来回写PWL和PWIL请求的数据。来自归属节点的消息这些消息从归属节点发送到对等和/或请求节点。“数据”这个消息包括所请求数据,并且可表明要由请求节点使用的数据的状态(M/E/F/S)。“传输”(XFR)这个消息使接收节点向消息中指明的节点传输数据。当通知归属节点关于要求数据的当前拥有者将该数据传输给目标节点的冲突状况时,归属节点把这个消息发送给所请求数据的当前拥有本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:H·胡姆,J·古德曼,R·比尔斯,G·拉尼斯,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。