更新无效一致状态的方法、数据处理系统和高速缓存系统的制作方法

文档序号:6611156阅读:183来源:国知局
专利名称:更新无效一致状态的方法、数据处理系统和高速缓存系统的制作方法
技术领域
本发明主要涉及数据处理,尤其涉及在高速缓存一致数据处理系统中的数据处理。
背景技术
诸如服务器计算机系统的常规对称多处理器(SMP)计算机系统包括全部连接至系统互连的多个处理单元,系统互连典型地包括一条或多条地址、数据和控制总线。系统存储器连接至系统互连,其代表多处理器计算机系统中易失性存储器的最低级别并且其通常可由所有处理单元进行读写访问。为了减少对驻留于系统存储器中的指令和数据的访问等待时间,每个处理单元典型地还被各自的多级高速缓存层级所支持,其较低级别可以被一个或多个处理器核所共享。
因为多处理器核可以请求对数据的相同高速缓存线的写访问,以及因为被修改的高速缓存线不立即与系统存储器同步,所以多处理器计算机系统的高速缓存层级典型地采用高速缓存一致协议来至少确保在系统存储器内容的多个处理器核的“查看”之间一致的最小级别。特别地,高速缓存一致要求至少在处理单元访问了存储块的拷贝并随后访问了该存储块的更新拷贝之后,处理单元不能再次访问该存储块的旧拷贝。
高速缓存一致协议典型地定义一组与每个高速缓存层级的高速缓存线相关联地存储的一致状态,以及一组用于在高速缓存层级之间传递高速缓存状态信息的一致消息。在典型实现中,一致状态信息采用公知的MESI(修改、独占、共享、无效)协议或其变型,并且一致消息指示请求者和/或存储器访问请求的接受者的高速缓存层级中的协议定义的一致状态转换。
在一些高速缓存一致协议中,一个或多个一致状态响应于随后的操作不精确地形成和/或更新。因此,这些一致状态不可能准确地反映相关联的存储块的系统范围一致状态。本发明考虑到不精确或不准确一致状态的存在即使不造成一致错误,也可以导致系统操作被执行,而如果不精确一致状态被减少或消除,那些系统操作是不需要的。

发明内容
考虑到以上所述,本发明提供了一种改进的高速缓存一致数据处理系统、高速缓存系统和高速缓存一致数据处理系统中的数据处理方法。
在一个实施方式中,高速缓存一致数据处理系统包括至少第一和第二一致域。在数据处理系统的第一一致域内的第一高速缓冲存储器中,与存储位置和地址标记相关的一致状态字段被设置为第一数据无效一致状态,其指示地址标记是有效的以及存储位置不包含有效数据。响应于监听到独占访问操作,其中独占访问请求指定与地址标记匹配的目标地址并指示启动该独占访问操作的请求者的相对位置,第一高速缓冲存储器将一致状态字段从第一数据无效一致状态更新为第二数据无效一致状态,其指示地址标记是有效的、存储位置不包含有效数据、以及基于请求者的相对位置成功完成独占访问操作时,与地址标记相关的目标存储块是否在第一一致域内被高速缓存。通过更新数据无效一致状态,增强了由数据无效一致状态提供的提示信息的精确性,改进了后续数据访问操作的广播范围的选择。
本发明的所有目的、特征和优点将在后面详细的书面描述中变得清楚。


被认为是本发明的特征的新颖特征在所附权利要求中阐述。然而,通过参照下面结合附图的说明性实施方式的详细描述将更好地理解本发明以及优选使用方式,其中图1是根据本发明的示范性数据处理系统的高级别框图;图2是根据本发明的处理单元的更详细框图;图3是图2所示的L2高速缓存阵列和目录的更详细框图;图4是图1的数据处理系统的系统互连上示范性事务的时间-空间图;图5示出根据本发明优选实施方式的域指示器。
图6是根据本发明的示范性方法的高级逻辑流程图,通过该方法,高速缓冲存储器对接收于数据处理系统中处理器核的操作进行服务;以及图7A-7C一起形成根据本发明的示范性方法的高级逻辑流程图,通过该方法,高速缓存处理监听到的存储修改操作;图8是根据本发明的示范性方法的高级逻辑流程图,通过该方法,存储器控制器处理监听到的存储修改操作;图9是根据本发明一个实施方式的示范性处理的高级逻辑流程图,通过该处理,部分响应分级地被积累;以及图10是根据本发明一个实施方式的示范性处理的高级逻辑流程图,通过该处理,生成用于存储修改操作的组合响应。
具体实施例方式
I.示范性数据处理系统现在参照附图,特别地,参照图1,示出了根据本发明的高速缓存一致对称多处理器(SMP)数据处理系统的示范性实施方式的高级别框图。如图所示,数据处理系统100包括多个处理节点102a、102b,用于处理数据和指令。处理节点102a、102b连接至用于传送地址、数据和控制信息的系统互连110。系统互连110可以实施为例如总线互连、交换互连或混合互连。
在所示实施方式中,每个处理节点102实现为包含四个处理单元104a-104d的多芯片模块(MCM),每个处理单元优选地实现为分别的集成电路。每个处理节点102内的处理单元104a-104d被本地互连114连接用于进行通信,本地互连类似于系统互连110,可以用一个或多个总线和/或交换机来实施。
连接至每个本地互连114的设备不仅包括处理单元104,还包括一个或多个系统存储器108a-108d。驻留于系统存储器108中的数据和指令通常可以被数据处理系统100的任何处理节点102中任何处理单元104中的处理器核访问和修改。在本发明的替换实施方式中,一个或多个系统存储器108可以连接至系统互连110而不是本地互连114。
本领域技术人员应该理解,SMP数据处理系统100可以包括许多另外的未示出的组件,例如互连桥、非易失性存储器、用于连接至网络或附属设备的端口等。因为对于理解本发明这些另外的组件不是必需的,所以它们未在图1中示出或在此进一步描述。然而,应该理解,由本发明提供的增强适用于多种体系架构的高速缓存一致数据处理系统,并且决不限制于图1所示的一般化数据处理系统体系架构。
现在参照图2,示出了根据本发明的示范性处理单元104的更详细框图。在示出的实施方式中,每个处理单元104包括两个处理器核200a、200b,用于独立地处理指令和数据。每个处理器核200至少包括用于取和排序执行用指令的指令排序单元(ISU)208以及用于执行指令的一个或多个执行单元224。如下进一步描述,执行单元224优选地包括引用存储块的用于执行存储器访问指令的加载存储单元(LSU)228,或者引起引用存储块的操作的生成。
每个处理器核200的操作由多级易失性存储器层级所支持,在其低级别具有共享的系统存储器108a-108d,以及在其高级别具有一级或多级高速缓冲存储器。在所示实施方式中,每个处理单元104包括集成存储器控制器(IMC)206,其响应于从处理器核200a-200b接收的请求和由本地互连114上监听器(S)222监听的操作,控制其处理节点102内各个系统存储器108a-108d的读写访问。IMC 206包括基地址寄存器(BAR)逻辑240,其包括定义IMC 206负责的地址的范围寄存器。
在说明性实施方式中,处理单元104的高速缓冲存储器层级包括每个处理器核200内的贯穿存储(store-through)一级(L1)高速缓存226以及由处理单元104的所有处理器核200a、200b共享的二级(L2)高速缓存230。L2高速缓存230包括L2阵列和目录234以及包括主控器(master)232和监听器(snooper)236的高速缓存控制器。主控器232响应于从相关联的处理器核200a-200b接收的存储器访问(和其他)请求在本地互连114和系统互连110上启动事务并访问L2阵列和目录234。监听器236监听本地互连114上的操作,提供适当的响应,以及执行操作所要求的对L2阵列和目录234的任何访问。
尽管示出的高速缓存层级仅包括两级高速缓存,但本领域技术人员应该理解,替换实施方式可以包括额外的级(L3、L4、L5等)片上或片外直插或后备高速缓存,其可能全包括、部分包括或不包括上级高速缓存的内容。
每个处理单元104还包括响应逻辑实例210,其实现数据处理系统100内维持高速缓存一致的分布式一致信令机制的一部分。此外,每个处理单元104包括互连逻辑实例212,用于选择性地在其本地互连114与系统互连110之间转发通信。最后,每个处理单元104包括集成的I/O(输入/输出)控制器214,支持诸如I/O设备216的一个或多个I/O设备的附加。I/O控制器214可以响应于I/O设备216的请求在本地互连114和/或系统互连110上发出操作。
现在参照图3,示出了L2阵列和目录234的示范性实施方式的更详细框图。如图所示,L2阵列和目录234包括组相连(setassociative)L2高速缓存阵列300以及L2高速缓存阵列300的内容的L2高速缓存目录302。如在传统组相连高速缓存中,系统存储器108中存储位置利用系统存储器(实际)地址内预定变址位被映射到高速缓存阵列300内的特定同余类。存储在高速缓存阵列300内的特定高速缓存线被记录在高速缓存目录302中,高速缓存目录针对高速缓存阵列300中每个高速缓存线包括一个目录项。本领域技术人员可以理解,高速缓存目录302中的每个目录项至少包括标记字段304、状态字段306、和LRU(最近最少使用)字段308,其中,标记字段利用相应实际地址的标记部分指定存储在高速缓存阵列300中的特定高速缓存线,状态字段指示高速缓存线的一致状态,LRU字段指示高速缓存线相对于同一同余类中其他高速缓存线的替换顺序。
II.示范性操作现在参照图4,示出了图1的数据处理系统100的本地互连114或系统互连110上示范性操作的时间-空间图。当L2高速缓存230的主控器232(或诸如I/O控制器214的其他主控器)在本地互连114和/或系统互连110上发出请求402时,操作开始。请求402优选地包括指示期望访问类型的事务类型以及指示将被请求访问的资源的资源标识符(例如,实际地址)。请求的通用类型优选地包括以下表I中给出的那些。
表I

请求402被L2高速缓存230的监听器236以及存储器控制器206的监听器222(图1)接收到。通常(有所例外),在与请求402的主控器232在同一L2高速缓存230中的监听器236不监听请求402(即,通常不自监听),这是因为只有当请求402不能被处理单元104内部地服务时,请求402才传输到本地互连114和/或系统互连110上。接收到请求402的每个监听器222、236可提供各自的部分响应406,用于表示至少该监听器对请求402的响应。存储器控制器206内的监听器222基于例如监听器222是否为请求地址负责以及其是否具有可用于为请求服务的资源来确定部分响应406。L2高速缓存230的监听器236可以基于例如其L2高速缓存目录302的可用性、监听器236内用于处理请求的监听逻辑实例的可用性、以及与L2高速缓存目录302中请求地址相关联的一致状态来确定其部分响应406。
监听器222和236的部分响应被一个或多个响应逻辑实例210在逻辑上分阶段组合或一次全部组合,以确定对请求402的系统范围组合响应(CR)410。受到下面所述的范围限制,响应逻辑210经由其本地互连114和/或系统互连110向主控器232和监听器222、236提供组合响应410,以指示对请求402的系统范围响应(例如,成功、失败、重试等)。如果CR 410指示请求402成功,CR 410可以指示例如所请求的存储块的数据源、所请求的存储块将被主控器232高速缓存的高速缓存状态、以及是否要求使一个或多个L2高速缓存230中所请求的存储块无效的“清除”(例如,KILL)操作。
响应于接收组合响应410,主控器232和监听器222、236中的一个或多个典型地执行一个或多个操作,用于为请求402服务。这些操作可以包括向主控器232提供数据、使在一个或多个L2高速缓存230中高速缓存的数据的一致状态无效或更新、执行驱逐(castout)操作、向系统存储器108写回数据等。如果被请求402请求,则可以在由响应逻辑210生成组合响应410之前或之后,向或从主控器232传输所请求的或目标存储块。
在以下描述中,监听器222、236对请求的部分响应以及由监听器响应于请求和/或其组合响应所执行的操作将参照监听器相对于由请求指定的请求地址是一致性最高点(HPC)、一致性最低点(LPC)、或都不是而描述。LPC在此定义为存储器设备或I/O设备,其作用为存储块存储库的控制点。在没有存储块的HPC的情况下,LPC控制对保持存储块真实映像的存储器的访问以及具有同意或拒绝生成存储块额外高速缓存的拷贝的请求的授权。对于图1和2的数据处理系统实施方式中的典型请求,LPC可以是用于保持所引用的存储块的系统存储器108的存储器控制器206。HPC在此定义为高速缓存存储块的真实映像(其可以与或可以不与在LPC的相应存储块一致)的唯一识别的设备以及具有同意或拒绝修改存储块的请求的授权。描述性地,HPC也可响应于不修改存储块的操作向请求者提供存储块的拷贝。因此,对于在图1和2的数据处理系统实施方式中的典型请求,如果有的话HPC可以是L2高速缓存230。尽管可以采用其他指示器来指定用于存储块的HPC,本发明的优选实施方式采用L2高速缓存230的L2高速缓存目录302内选择的高速缓存一致状态来指定用于存储块的HPC(如果有的话),如下面参照表II进一步描述的。
仍然参照图4,用于在请求402中引用的存储块的HPC(如果有的话)或者在没有HPC的情况下存储块的LPC优选地具有在保护窗口404a期间保护响应于请求402存储块所有权转移的责任。在图4所示示范性情况中,作为由请求402的请求地址指定的存储块的HPC的监听器236在保护窗口404a期间保护所请求的存储块的所有权向主控器232的转移,该保护窗口从监听器236确定其部分响应406的时间延伸至监听器236接收到组合响应410。在保护窗口404a期间,监听器236通过向指定相同请求地址的其他请求提供部分响应406来保护所有权的转移,这些部分响应在所有权被成功转移至主控器232之前防止其他主控器获得所有权。主控器232同样在接收到组合响应410之后启动保护窗口404b,以保护其在请求402中请求的存储块的所有权。
因为监听器222、236都具有用于处理上述CPU和I/O请求的有限资源,所以部分响应和相应CR的多个不同级别是可能的。例如,如果对所请求的存储块负责的存储器控制器206内的监听器222具有队列可用于处理请求,则监听器222可以以指示其能够作为请求的LPC的部分响应来作出响应。另一方面,如果监听器222没有队列可用于处理请求,则监听器222可以以指示其是存储块的LPC但当前不能为请求服务的部分响应来作出响应。
同样,L2高速缓存230中的监听器236可以要求监听逻辑的可用实例以及对L2高速缓存目录302的访问以处理请求。缺少对这些资源(二者之一或二者)的访问导致信令通知由于缺少所需资源而当前不能对请求进行服务的部分响应(和相应CR)。
此后,提供指示该监听器具有当前为请求提供服务(如果需要的话)所需的可用的所有内部资源的部分响应的监听器222、236被称为“确认”该请求。对于监听器236,确认监听到的操作的部分响应优选地指示在该监听器236处所请求的或目标存储块的高速缓存状态。提供指示该监听器不具有当前为请求提供服务所需的可用的所有内部资源的部分响应的监听器222、236可以被称为“可能隐藏”或“不能”为请求提供服务。这种监听器236是“可能隐藏”或“不能”为请求提供服务,原因是由于缺少监听逻辑的可用实例或对L2高速缓存目录302的当前访问,监听器236不能以上面定义的意义“确认”请求,并且从其他主控器232和监听器222、236来看具有未知的一致状态。
III.数据传递域传统基于广播的数据处理系统通过广播通信处理高速缓存一致和数据传递,其在传统系统中在系统互连上传送至系统中的至少所有存储器控制器和高速缓存层级。与可替换体系结构和相似规模的系统进行比较,基于广播的系统倾向于提供共享存储块的减少的访问等待时间以及更好的数据处理和一致管理。
随着基于广播的系统规模增大,系统互连上的业务量加倍,意味着系统成本随着系统规模急剧增加,原因是为了在系统互连上进行通信需更多带宽。即,具有m个每个具有n个事务的平均业务量的处理器核的系统具有m×n的业务量,意味着基于广播的系统中的业务量规模是乘性的而不是加性的。除了对于实质上变大的互连带宽的需求,系统大小的增加具有增加一些访问等待时间的次生效应。例如,在最坏的情况下,读数据的访问等待时间被最远离的低级高速缓存的组合响应等待时间所限制,该低级高速缓存保持所请求的数据可以来源于其的共享一致状态的所请求的存储块。
为了减少系统互连带宽需求和访问等待时间,同时仍保持基于广播的系统的优点,遍布数据处理系统100的多个L2高速缓存230被允许保持“特殊”共享一致状态的相同存储块的拷贝,该状态允许这些高速缓存使用高速缓存-高速缓存介入(intervention)将存储块提供至请求的L2高速缓存230。为了实现诸如数据处理系统100的SMP数据处理系统中共享存储块的多个并发和分布源,必须解决两个问题。首先,必须实现管理前述“特殊”共享一致状态中存储块拷贝创建的规则。其次,必须存在一个规则,管理例如响应于总线读操作或总线RWITM操作,哪个监听的L2高速缓存230(如果有的话)向请求的L2高速缓存230提供共享存储块。
根据本发明,这两个问题都通过实施数据源化域而解决。特别地,SMP数据处理系统内的每个域被允许每次仅包括一个保持“特殊”共享一致状态中特定存储块的高速缓存层级,其中域被限定为包括参与响应数据请求的一个或多个低级(例如L2)高速缓存。该高速缓存层级如果当总线读类型(例如,读或RWITM)操作被在相同域中请求的低级高速缓存启动时存在,则对将请求的存储块源化到请求的低级高速缓存负责。尽管可以定义许多不同域大小,在图1的数据处理系统100中,将每个处理节点102(即,MCM)认为是数据源化域是方便的。这种“特殊”共享状态(即,Sr)的一个实例将在下面参照表II进行描述。
IV.一致域尽管如上所述数据传递域的实现改进了数据访问等待时间,但是该增强没有解决随着系统规模增加业务量的m×n倍增的问题。为了减少业务量同时仍保持基于广播的一致机制,本发明的优选实施方式附加地实现了一致域,其类似上文所述的数据传递域,能够通过每个处理节点102形成单独的一致域来方便地(但不必须是)实现。数据传递域和一致域可以是但不必须是同延的,并且为了说明目的,以下将假定数据处理系统100的示范性操作具有由处理节点102限定的界限。
通过在请求可以由少于所有一致域参与提供服务的情况下,限制在系统互连110上的域间广播通信,一致域的实现减少了系统业务量。例如,如果处理节点102a的处理单元104a具有总线读操作要发出,则处理单元104a可以选择首先向其自己的一致域(例如,处理节点102a)内所有参与者广播总线读操作,但不向其他一致域(例如,处理节点102b)中的参与者广播。仅传输到与操作的主控器相同的一致域内的那些参与者的广播操作在此称为“本地操作”。如果本地总线读操作可以在处理单元104a的一致域内被服务,则不再执行总线读操作的广播。然而,如果对本地总线读操作的部分响应和组合响应指示总线读操作不能在处理节点102a的一致域内单独地被服务,则广播的范围可以扩展为除了本地一致域,还包括一个或多个另外的一致域。
在基本实现中,采用两个广播范围“本地”范围,仅包括本地一致域;以及“全局”范围,包括在SMP数据处理系统中的所有其他一致域。因此传送至SMP数据处理系统中所有一致域的操作在此定义为“全局操作”。重要地,不论是否采用本地操作或更扩展范围的操作(例如,全局操作)来对操作进行服务,跨越SMP数据处理系统中所有一致域保持高速缓存一致。本地和全局操作的实例在美国专利申请公开No.US2006-0179252A1中进行了详细描述,其全部内容通过参考并入到这里。
在优选实施方式中,操作的范围在总线操作中通过本地/全局范围指示器(信号)来指示,在一个实施方式中其可以包括1位标记。处理单元104内的转发逻辑212优选地基于操作中本地/全局范围指示器(信号)的设置确定是否将经由本地互连114接收的操作转发到系统互连110上。
在本描述中,如果一致域(或处理节点)包括存储块的LPC,一致域被称作存储块的“归属”一致域(或“归属”节点)。
V.域指示器为了限制发出不需要的本地操作从而减少操作的等待时间以及保存本地互连上的额外带宽,本发明优选地实现每个存储块一个域指示器,其指示相关联的存储块的拷贝是否在本地一致域外部被高速缓存。例如,图5示出根据本发明的域指示器的第一示范性实现。如图5所示,可以以动态随机存取存储器(DRAM)实现的系统存储器108存储多个存储块500。系统存储器108与每个存储块500相关联地存储相关联的纠错码(ECC)502,用于校正在存储块500中的错误(如果有的话),和域指示器504。尽管在本发明的一些实施方式中,域指示器504可以识别具体一致域(即,指定一致域或节点ID),以下假定域指示器504是1位指示器,如果相关联的存储块500完全仅在与用作存储块500的LPC的存储器控制器206相同的一致域内被高速缓存,则其被设置(例如,为“1”以指示“本地”)。否则域指示器504被重置(例如,为“0”以指示“全局”)。域指示器504指示“本地”的设置可以被不精确的执行,这是因为“全局”的错误设置不会引起任何一致错误,但是可能造成操作的不需要的全局广播。
响应于操作源化存储块的存储器控制器206(和L2高速缓存230)优选地结合所请求的存储块传送相关联的域指示器504。
VI.示范性一致协议本发明优选地实现设计用来帮助如上所述数据传递和一致域的实施的高速缓存一致协议。在优选实施方式中,协议内的高速缓存一致状态除了提供(1)高速缓存是否是存储块的HPC的指示,还指示(2)高速缓存的拷贝在位于该存储器层级级别的高速缓存之间是否是唯一的(即,是系统范围唯一高速缓存的拷贝),(3)高速缓存是否以及何时可以向请求存储块的主控器提供存储块的拷贝,(4)存储块的高速缓存的映像是否与在LPC(系统存储器)的对应存储块一致,以及(5)在远程一致域(可能地)中另一高速缓存是否保持具有匹配地址的高速缓存项。例如,这五种属性可以以在以下表II中总结的公知MESI(修改、独占、共享、无效)协议的示范性变型表示。
表II

A.Ig状态为了避免不得不访问LPC来确定存储块是否已知完全仅在本地被高速缓存,使用Ig(无效全局)一致状态来在没有存储块的拷贝在一致域中保持高速缓存的情况下维持域指示。Ig状态在此定义为指示以下内容的高速缓存一致状态(1)高速缓存阵列中相关联的存储块是无效的,(2)高速缓存目录中的地址标记是有效的,以及(3)由地址标记识别的存储块的拷贝可能在不同于归属一致域的一致域中高速缓存。Ig指示优选地是不精确的,意味着其可以在没有违反一致的情况下是不正确的。
响应于高速缓存响应独占访问请求(例如,总线RWITM操作)而提供请求的存储块到另一一致域中的请求者,Ig状态在归属一致域中的低级高速缓存中形成。
因为包括Ig状态的高速缓存目录项携带潜在有用的信息,所以期望在至少一些实现中,优先于I状态的项保留Ig状态的项(例如,通过修改用来选择用于替换的牺牲高速缓存项的最近最少使用(LRU)算法)。由于Ig目录项保留在高速缓存中,一些Ig项随着时间可能变成“过时”的,这是因为其独占访问请求造成Ig状态形成的高速缓存可能解除分配或写回其存储块的拷贝,而没有通知到保持Ig状态的存储块的地址标记的高速缓存。在这些情况下,“过时”Ig状态,其不正确地指示需要代替本地操作发出全局操作,将不会造成任何一致错误,而是仅仅造成一些操作(其本来可以采用本地操作来服务)作为全局操作被发出。这种低效率的发生将通过“过时”Ig高速缓存项的最终替换而在持续时间上得到限制。
一些规则管理Ig高速缓存项的选择和替换。第一,如果高速缓存选择Ig项作为替换的牺牲者,则执行Ig项的驱逐(不同于I、In或Ipg项被选择的情况)以更新系统存储器108中的相应域指示器504。第二,如果造成存储块加载到高速缓存中的请求命中在该相同高速缓存中的Ig高速缓存项,则高速缓存将Ig命中当作高速缓存丢失,并执行将该Ig项作为选择的牺牲者的驱逐操作。因此高速缓存避免了在高速缓存目录中放置相同地址标记的两个拷贝。第三,Ig状态的驱逐优选地执行为限制在到本地一致域的范围中的仅本地操作。第四,Ig状态的驱逐优选地执行为无数据仅地址操作,其中域指示被写回至LPC中的域指示器504。
通过即使当没有存储块的有效拷贝在归属一致域中保持高速缓存时,在归属一致域中维持存储块的高速缓存的域指示器,根据本发明的Ig状态的实现提高了通信效率。如下所述,由Ig状态提供的高速缓存域指示可以为将相关联的存储块作为目标的操作预测在互连结构上的全局广播范围。
B.Igp状态Igp(无效全局仅预测)一致状态用来在没有存储块的拷贝在非归属一致域中保持高速缓存的情况下维持高速缓存的域指示。Igp状态在此定义为指示以下内容的高速缓存一致状态(1)高速缓存阵列中相关联的存储块是无效的,(2)高速缓存目录中的地址标记是有效的,(3)当前一致域不是归属一致域,以及(4)由地址标记识别的存储块的拷贝可能在不同于当前非归属一致域的一致域中高速缓存。尽管精确地形成,Igp指示优选地被不精确地维持,意味着其可以在没有违反一致的情况下是不正确的。
响应于高速缓存响应独占访问请求(例如,RWITM、DClaim、DCBZ、Kill、Write或Partial Write请求)而提供请求的存储块的一致所有权到另一一致域中的请求者,Igp状态在非归属一致域中的低级高速缓存中形成。
因为包括Igp状态的高速缓存目录项携带潜在有用的信息,所以期望在至少一些实现中,优先于I状态的项(如果有的话)保留Igp状态的项(例如,通过修改用来选择用于替换的牺牲高速缓存项的最近最少使用(LRU)算法)。由于Igp目录项保留在高速缓存中,一些Igp项可能随着时间变成“过时”的,这是因为存储块的拷贝可能返回至一致域,而没有被保持Igp状态的存储块的地址标记的高速缓存监听。在这种情况下,“过时”Igp状态,其不正确地指示需要代替本地操作发出全局操作,将不会造成任何一致错误,而是仅仅造成一些操作(其本来可以采用本地操作来服务)作为全局操作被发出。这种低效率的发生将通过“过时”Igp高速缓存项的最终替换而在持续时间上进行限制。
与Ig项的处理不同,响应于例如根据替换算法(例如,LRU)或因为造成存储块加载到高速缓存中的请求命中在该相同高速缓存中的Igp高速缓存项,选择Igp项作为替换的牺牲者,不执行Igp项的驱逐。取而代之,简单地解除分配Igp项。不执行驱逐是因为Igp项不维持潜在域指示器504的高速缓存的和可能修改的拷贝。
通过即使当没有存储块的有效拷贝在非归属一致域中保持高速缓存时,出于范围预测目的,在非归属一致域中维持存储块的高速缓存的域指示器,根据本发明的Igp状态的实现提高了通信效率。
C.In状态In状态在此定义为指示以下内容的高速缓存一致状态(1)高速缓存阵列中相关联的存储块是无效的,(2)高速缓存目录中的地址标记是有效的,以及(3)通过地址标记识别的存储块的拷贝可能完全仅被本地一致域内的一个或多个其他高速缓存层级高速缓存。In指示优选地是不精确的,意味着其可以在没有违反一致的情况下是不正确的。响应于高速缓存响应独占访问请求(例如,总线RWITM操作)而提供请求的存储块到相同一致域中的请求者,In状态在低级高速缓存中形成。
因为包括In状态的高速缓存目录项携带潜在有用的信息,所以期望在至少一些实现,优先于I状态的项保留In状态的项(例如,通过修改用来选择用于替换的牺牲高速缓存项的最近最少使用(LRU)算法)。由于In目录项保留在高速缓存中,一些In项可能随着时间变成“过时”的,这是因为其独占访问请求造成In状态形成的高速缓存可能本身提供存储块的共享拷贝给远程一致域,而没有通知到保持In状态的存储块的地址标记的高速缓存。在这些情况下,“过时”In状态,其不正确地指示需要代替全局操作发出本地操作,将不会造成任何一致错误,而是仅仅造成一些操作错误地首先作为本地操作而不是全局操作发出。这种低效率的发生将通过“过时”In高速缓存项的最终替换而在持续时间上进行限制。在优选实施方式中,In一致状态的高速缓存项不进行驱逐,而代替地仅被替换。因此,不像Ig高速缓存项,In高速缓存项不用于更新系统存储器108中的域指示器504。
通过维持可能被主控器查阅以选择用于其操作中的一个的本地范围的存储块的高速缓存的域指示器,根据本发明的In状态的实现提高了通信效率。结果,保存了在其他一致域中的本地互连114和系统互连110上的带宽。
D.Sr状态在下述操作中,能够确定保持Sr一致状态的共享的所请求的存储块的低级高速缓存是否位于与请求主控器相同的域内是有用的。在一个实施方式中,在与请求主控器相同的域内的“本地”Sr监听器的存在可以通过在保持Sr一致状态的所请求的存储块的低级高速缓存的监听器的响应行为来指示。例如,假定每个总线操作包括指示总线操作是否越过了域边界的范围指示器(例如,主控器的显式域标识符和单一本地/非本地范围位),保持Sr一致状态的共享的存储块的低级高速缓存能够仅为相同数据源化域内的主控器的请求提供确认Sr状态的请求的部分响应以及为所有其他请求提供指示S状态的部分响应。在这些实施方式中,响应行为可以总结为表III中所示,其中,’符号用来指示可能不同于存储块的实际高速缓存状态的部分响应。
表III

假定以上表III中给出的响应行为,共享数据的平均数据等待时间可以通过增加可能用作数据源的SMP数据处理系统内分布的存储块的共享拷贝的数量来显著降低。
VII.示范性独占访问操作首先参照图6,示出了根据本发明的数据处理系统中为处理器(CPU)独占访问(或存储修改)请求提供服务的示范性方法的高级逻辑流程图。与在此呈现的其他逻辑流程图一样,图6中示出的至少一些步骤可以以不同于示出的顺序来执行或可以并发执行。
图6的处理开始于框600,其表示L2高速缓存230中的主控器232从其处理单元104中相关联的处理器核200接收CPU独占访问请求(例如,CPU数据存储请求或CPU杀死请求等)。响应于CPU请求的接收,在框602主控器232确定由目标地址在CPU独占访问请求内识别的目标存储块是否以允许CPU独占访问请求不在互连结构上发出总线操作而被服务的一致状态保持在L2高速缓存目录302中。例如,如果L2高速缓存目录302指示目标存储块的一致状态是M或Me状态中之一,则CPU数据存储请求可以不在互连结构上发出总线操作而被服务。如果在框602主控器232确定CPU独占访问请求可以不在互连结构上发出总线操作而被服务,则主控器232在对CPU请求提供服务来说是需要的情况下访问L2高速缓存阵列300,如框632所示。例如,主控器232可以将CPU数据存储请求中提供的数据存储到L2高速缓存阵列300中。框632之后,处理在框634终止。
返回至框602,如果目标存储块未以以允许CPU独占访问请求不在互连结构上发出总线操作而被服务的一致状态保持在L2目录302中,则在框604还确定是否需要现存高速缓存线的驱逐以在L2高速缓存230中容纳目标存储块。在一个实施方式中,如果存储块响应于CPU独占访问请求被选择用于从请求处理器的L2高速缓存230中逐出并在L2目录302中被标记为M、T、Te、Tn和Ig一致状态中任何一种,则在框604需要驱逐操作。响应于在框604确定需要驱逐,执行高速缓存驱逐操作,如框606所示。同时,在框610主控器232确定用于对CPU独占访问请求提供服务的总线操作的发出范围。例如,在一个实施方式中,在框610主控器232确定作为限制在单个处理节点102范围内的本地操作还是作为包含数据处理系统100中所有处理节点102的全局操作广播总线操作。
在第一实施方式中,其中每个总线操作初始作为本地操作发出并且仅一次作为本地操作发出,在框610示出的确定可以简单地表示主控器确定总线操作之前是否已作为本地总线操作发出。在第二替换实施方式中,其中本地总线操作可以在本地范围重试,在框610示出的确定可以表示主控器确定总线操作之前是否已被发出多于阈值的次数。在第三替换实施方式中,在框610作出的确定可以是基于主控器232对于在不与其他一致域中的处理节点通信的情况下本地总线操作是否可以成功解决目标存储块的一致的预测。例如,如果相关联的L2高速缓存目录302以In一致状态与目标地址相关联,则主控器232可以选择本地总线操作,而如果相关联的L2高速缓存目录302以Ig或Igp一致状态与目标地址相关联,则可以选择全局总线操作。如果操作已被不成功地发出(即,接收到重试组合响应),则在框610示出的确定可以进一步考虑从未成功操作的组合响应中获得的信息,例如,关于在本地一致域中Ig或Igp一致状态的高速缓存线的存在的指示。
响应于在框610的确定,主控器232或者发出仅在包括主控器232的本地一致域(例如,处理节点102)内广播的本地总线独占访问操作(框612)或者发出在数据处理系统100中所有一致域中广播的全局总线独占访问操作(框620)。独占访问操作至少包括事务类型(Ttype),其识别独占访问操作的类型(RWITM、DCliam、DCBZ、Kill、Write或Partial Write);以及目标地址,其识别目标存储块。然后主控器232等待接收操作的组合响应,如框622和624所示。
为了当前描述目的,组合响应可以是至少三种通用中的任何一种成功(Success)、成功清除(Success with cleanup)和重试(Retry)。如果组合响应指示重试,则主控器232未能通过框612或620发出的独占访问操作获得目标存储块的一致所有权,并且操作必须被重新发出(可能以扩展的广播范围)。因此,处理从框622返回至已描述过的框610。如果主控器232未接收到指示重试的CR,而是接收到指示成功清除的CR,则主控器232已被授予目标存储块的一致所有权,并且必须使在其他高速缓冲存储器230中保持的目标存储块的任何剩余高速缓存的拷贝无效。为了这么做,主控器232启动选择的范围(例如,本地或全局)的后台杀死(BK)操作,如框626所示。在至少一些实施方式中,主控器232可以基于在独占访问操作的CR中包含的信息来选择范围。框626之后,在框624测试后台杀死操作的CR。响应于在框624确定独占访问操作的CR或后台杀死操作的CR指示成功,主控器232已经成功地获得了对目标存储块的独占访问。随后在框630主控器232更新用来进行所述范围选择的预测器(例如,基于一致状态或历史的预测器)。此外主控器232为CPU请求提供服务,如框632所示。此后,在框634处理结束。
因此,假定在相同一致域内处理以及它们数据之间的相似性,CPU请求可以频繁采用限制在请求主控器的一致域范围中或比完整全局范围小的其他受限范围的广播通信来被服务。因此通过限制广播通信的范围,如上所述的数据传递域与一致域的组合不仅改善了数据访问等待时间,而且减少了系统互连(和其他本地互连)上的业务量。
现在参照图7A-7C,示出了根据本发明的示范性方法的高级逻辑流程图,通过该方法,诸如L2高速缓存监听器236的高速缓存监听器处理独占访问操作(也称为存储修改操作)。独占访问请求包括上面描述了的RWITM、DClaim、DCBZ、Kill、Write和Partial Write操作。
如图所示,响应于L2高速缓存监听器236在其本地互连114上接收到请求,处理开始于图7A的框700。响应于请求的接收,在框702监听器236例如通过参考请求内的事务类型(Ttype)字段确定请求是否是独占访问操作。如果不是,则监听器236执行其他处理,如框704所示,然后在框740处理结束。然而,如果在框702监听器236确定请求是独占访问操作,则在框706监听器236进一步确定当前是否能够实质上响应独占访问操作(例如,是否有监听逻辑的可用实例或对其L2高速缓存目录302的当前访问)。如果监听器236当前不能实质上响应域查询请求,则如框708所示监听器236提供指示“重试其他”的部分响应(PR),然后在框740独占访问操作的处理结束。
假定监听器236能够实质上响应独占访问操作,在框710监听器236确定相关联的L2高速缓存目录302是否指示包含目标地址的存储块的标记有效、数据无效一致状态(例如,In、Ig、Igp、I)。如果是,则处理通过页连接符A到图7B,其将在下面详细描述。然而,如果相关联的L2高速缓存目录302指示数据有效一致状态(Mx、Tx、或Sx),则处理分叉,并且并列地进行至框712和后面的框,其表示由监听器236执行的一致状态更新;以及经由页连接符B至图7C,其示出监听器236的数据传递和保护活动(如果有的话)。
首先参照框712,监听器236通过参考从其L2高速缓存目录302读取的一致状态确定其是否位于由监听到的请求的目标地址识别的目标存储块的HPC。如果不是,则在框714监听器236可选地确定监听到的请求的Ttype是否指示监听到的请求是后台杀死请求。如果不是,则处理转到框720,其将在下面描述。
响应于在框714的肯定确定,监听器被允许(但不是必须)基于监听器236是否驻留于与最初发出后台杀死请求的设备(例如,L2高速缓存230)相同的一致域内,在接收到组合响应之前更新在其L2高速缓存目录302中目标地址的一致状态(框716)。例如,监听器236可以通过检验包含在后台杀死请求中的范围位来作出框716示出的确定。如果在框716监听器236确定其在与启动后台杀死请求的设备相同的一致域内,则监听器236在其L2高速缓存目录302中更新后台杀死请求的目标地址的一致状态为In一致状态(框724)。如上所述,In一致状态提供不精确的指示存储块的HPC驻留于本地(不一定是归属)一致域中,并且请求存储块的随后本地操作可能成功。另一方面,如果在框716监听器236确定其不在与启动后台杀死请求的设备相同的一致域内,则处理转到框734。框734示出了监听器236在其L2高速缓存目录302中更新目标地址的一致状态为Igp。如上所述,Igp一致状态提供不精确的指示目标存储块的HPC位于远程一致域中,并且请求目标存储块的随后操作应当是全局的。在框724或框734之后,在框740处理结束。
现在参照框720,如果在可选框714作出否定确定或者如果未执行在框714示出的确定,则监听器236等待接收独占访问请求的组合响应。响应于在框720接收到组合响应,在框726监听器236确定独占访问请求的组合响应是否指示重试。如果不是,则独占访问请求成功获得成功或成功清除CR,然后处理转到已经描述了的框716。然而,如果独占访问请求的组合响应指示重试(即,独占访问请求不成功),则监听器236简单地在其L2高速缓存目录302中更新目标地址的一致状态为I,如框728所示。采用I一致状态代替Ig、Igp或In状态是因为目标地址的HPC相对监听器236的位置未被未成功的独占访问操作的组合响应指示。框728之后,在框740处理终止。
返回至框712,响应于监听器236确定其位于目标地址的HPC,监听器236等待接收独占访问请求的组合响应,如框718所示。响应于监听器236接收到组合响应,处理进行至框722。框722示出了监听器236确定其是否驻留于与最初发出独占访问请求的设备(例如,L2高速缓存230)相同的一致域内。如上所述,监听器236可以通过检验包含在独占访问请求中的范围位来作出框722示出的确定。如果在框722监听器236确定其在与启动独占访问请求的设备相同的一致域内,则监听器236在其L2高速缓存目录302中更新目标地址的一致状态为In一致状态(框724)。如上所述,In一致状态提供不精确的指示存储块的HPC驻留于本地(不一定是归属)一致域中,并且请求存储块的随后本地操作可能成功。另一方面,如果在框722监听器236确定其不在与启动独占访问请求的设备相同的一致域内,则监听器236基于监听器236是否驻留于与目标地址的归属系统存储器108相同的一致域中,在其L2高速缓存目录302中更新目标地址的一致状态(框730)。在一个优选实施方式中,基于CR内的存储器控制器本地到监听器(MCLS)字段的状态作出框730示出的确定。CR的MCLS字段的状态可以根据图10示出的并在后面描述的方法进行设置。
响应于框730的确定CR的MCLS字段未断言,意味着监听器236未驻留于与目标地址的归属系统存储器108相同的一致域中,监听器236在其L2高速缓存目录302中更新目标地址的一致状态为Igp(框734)。否则,监听器236更新目标地址的一致状态为Ig(框732)。Igp和Ig状态都提供不精确的指示目标存储块的HPC驻留于远程一致域中,并且请求目标存储块的随后操作应当是全局的。然而,Igp一致状态不进行随后对系统存储器108的驱逐,而仅仅被解除分配。框732或框734之后,在框740处理结束。
现在参照图7B,示出了监听器236对具有这样的目标地址的独占访问请求的响应,对于该目标地址监听器236在其L2高速缓存目录302中具有数据无效一致状态(例如,In、Ig、Igp或I)。处理从图7A经由页连接符A继续然后进行至框742,其示出监听器236提供对独占访问请求的适当的部分响应。在一些实施方式中,在框742提供的部分响应可以对除了Ig以外的所有Ix一致状态是空(Null),以指示包含监听器236的L2高速缓存230未保持目标存储块的数据有效拷贝。对于Ig一致状态,部分响应是重试形式,指示目标地址的HPC可能驻留于包含监听器236的一致域之外。在其他实施方式中,在框742对于非Ig一致状态生成的部分响应可以附加地提供反映由本地一致状态(Igp或In)指示的范围信息的范围提示。框742之后,处理在框744分叉,如果目标地址的本地一致状态是Ig则进行至框746,否则进行至框750。
在框746,监听器236可选地确定监听到的请求的Ttype是否指示监听到的请求是后台杀死请求。如果不是(或如果未进行可选确定),则处理转到框747,其将在下面进行描述。如果在选择框746确定监听到的请求是后台杀死请求,则在框749进一步确定监听器236是否驻留于与最初发出后台杀死请求的设备(例如,L2高速缓存230)相同的一致域内(框749)。例如,监听器236可以通过检验包含在后台杀死请求中的范围位来作出框749示出的确定。如果在框749监听器236确定其在与启动后台杀死请求的设备相同的一致域内,则处理通过页连接符D转到框757,其示出了监听器236在其L2高速缓存目录302中更新后台杀死请求的目标地址的一致状态为In一致状态。如上所述,In一致状态提供不精确的指示存储块的HPC驻留于本地(不一定是归属)一致域中,并且请求存储块的随后本地操作可能成功。然后在框760处理终止。另一方面,如果在框749监听器236确定其不在与启动后台杀死请求的设备相同的一致域内,则处理转到框747。
框747示出了监听器236等待接收监听到的请求的组合响应。响应于接收到监听到的请求的组合响应,在框748确定组合响应是否指示重试。如果是,则监听到的操作不成功,并且监听器236不更新其关于目标地址的一致状态。因此,处理通过页连接符C并在框760结束。然而,如果监听到的请求的组合响应不指示重试,则在框758监听器236通过参考包含在监听到的请求中的范围位来确定其是否在与发出监听到的请求的主控器232相同的一致域(例如,处理节点102)内。如果是,则监听器236在其L2高速缓存目录302中更新后台杀死请求的目标地址的一致状态为In一致状态(框757)。此后,在框760处理结束。
返回至框758,响应于监听器236确定其不在与发出监听到的请求的主控器232相同的一致域,监听器236确定其是否驻留于与目标地址的归属系统存储器108相同的一致域中(框759)。在一个优选实施方式中,基于CR内的存储器控制器本地到监听器(MCLS)字段的状态作出框759示出的确定。如果在框759监听器236确定其在与目标地址的归属系统存储器108相同的一致域内,则监听器236不在其L2高速缓存目录302中对Ig一致状态进行更新,然后在框760处理终止。在这种情况下不进行一致状态更新是因为Ig一致状态对于更新系统存储器108中相关联的域指示器504的状态可能是需要的。然而,如果在框759监听器236作出否定确定,则监听器236在其L2高速缓存目录302中更新后台杀死请求的目标地址的一致状态为Igp一致状态(框756)。如果一致状态已经是Igp,则一致状态更新可以执行或可以不执行,无论怎样都取决于监听器236的实现的复杂性。如上所述,Igp状态提供不精确的指示目标存储块的HPC驻留于远程一致域中,并且请求目标存储块的随后操作应当是全局的。框756之后,在框760处理结束。
现在参照框750,如果监听到的请求的目标地址的本地一致状态不是Ig,则监听器236可以可选地在其L2高速缓存目录302中更新目标地址的Ix一致状态,而不参考监听到的请求的CR,以减少监听器236分配到监听到的请求的占有期。可选地,监听器236可响应于CR在其L2高速缓存目录302中更新目标地址的Ix一致状态。等待CR以执行更新代表占有期持续时间对改进的精确性的性能折衷,这是因为监听器236在接收到CR之前不能确定监听到的请求的主控器232是否成功获得目标地址的一致所有权。如果使监听器236执行更新Ix一致状态而不参考CR,则处理直接转到框755,其在后面进行描述。然而,如果使监听器236执行为通过参考监听到的请求的CR来更新Ix一致状态,则处理进行至框751,其表示监听器236通过参考监听到的请求的Ttype来选择性地确定监听到的请求是否是后台杀死请求。如果是,则处理进行至框755,其在下面进行描述。如果在框751监听器236确定监听到的请求不是后台杀死请求,则在框752监听器236等待接收监听到的请求的CR。
响应于接收到组合响应,在框753监听器236确定独占访问请求的组合响应是否指示重试。如果不是,则独占访问请求成功获得成功或成功清除CR,然后处理转到框755。然而,如果独占访问请求的组合响应指示重试(即,独占访问请求未成功),则监听器236简单地可选地在其L2高速缓存目录302中更新目标地址的一致状态为I,如框754所示。采用I一致状态代替Ig、Igp或In状态是因为目标地址的HPC相对监听器236的位置未被不成功的独占访问操作指示。在框753的肯定确定或可选框754之后,在框760处理终止。
现在参照框755,监听器236基于监听器236是否驻留于与最初发出监听到的请求的设备(例如,L2高速缓存230)相同的一致域内来在其L2高速缓存目录302中更新目标地址的Ix一致状态。例如,监听器236可以通过检验包含在监听到的请求中的范围位来作出框755示出的确定。如果在框755监听器236确定其在与启动监听到的请求的设备相同的一致域内,则监听器236在其L2高速缓存目录302中更新监听到的请求的目标地址的一致状态为In一致状态(框757)。另一方面,如果在框755监听器236确定其不在与启动监听到的请求的设备相同的一致域内,则监听器236在其L2高速缓存目录302中更新目标地址的一致状态为Igp(框756)。如果在框757一致状态已经是In或者在框756一致状态已经是Igp,则更新可以执行或可以不执行,无论怎样都取决于监听器236的实现的复杂性。框756或框757之后,在框760处理结束。
现在参照图7C,示出了保持目标存储块的数据有效高速缓存的拷贝的L2高速缓存230的监听器236的数据传递和保护活动(如果有的话)。如图所示,在框761监听器236例如通过检验由监听到的请求指定的Ttype确定监听到的独占访问操作是否是RWITM操作。如上面表I所示,RWITM操作是一种独占访问操作,其中启动者从其他参与者请求存储块的映像的唯一拷贝以对其进行更新(修改)。如果在框761确定独占访问操作是RWITM操作,则处理转到框770,其在下面进行描述。如果不是,则处理进行至框762,其示出监听器236例如通过参考相关联的L2高速缓存目录302中目标存储块的一致状态来确定其是否位于目标存储块的HPC。响应于在框762确定监听器236不位于独占访问操作的目标存储块的HPC,监听器236生成或引起生成“空”部分响应(框764)。然而,响应于在框762确定监听器236驻留于HPC,监听器236提供(或引起提供)“HPC_ack”部分响应,确认独占访问操作的启动者已被选择作为目标存储块的新HPC,并延长一个保护窗口404a以防止其他请求者获得存储块的一致所有权(框766)。
现在参照框770和后面的框,监听器236基于在其相关联的L2高速缓存目录302中目标存储块的一致状态对RWITM操作作出响应。特别地,如果L2高速缓存目录302中目标存储块的一致状态是Mx(例如,M或Me),则延长一个保护窗口404a以防止其他请求者获得目标存储块的一致所有权,提供“HPC_ack”部分响应,以及源化存储块的拷贝到请求者,如框770和772所示。
可选地,如果L2高速缓存目录302中目标存储块的一致状态是Sr并且监听器236在与请求者相同的数据源化域(例如,处理节点102)内,则监听器236延长一个保护窗口404a,提供“共享的”部分响应,以及源化存储块的拷贝到请求者,如框774和776所示。可选地,如框780所示,如果L2高速缓存目录302中目标存储块的一致状态是Tx(例如,T、Te或Ten),则监听器236延长一个保护窗口404a以防止其他请求者获得目标存储块的所有权并提供“HPC_ack”部分响应,如框782所示。此外,如框784和786所示,监听器236可以基于从响应逻辑210接收的组合响应来源化目标存储块的拷贝到请求者。即,如果组合响应指示该监听器236负责源化目标存储块的拷贝(例如,没有监听器236在与保持Sr状态的目标存储块的请求者相同的一致域中),则监听器236将目标存储块的拷贝传送至请求者,如框786所示。
再次参照780,响应于否定确定,监听器236简单地提供“空”部分响应,如框790所示。框766、764、772、776、784、786和790中任一个之后,在框792处理结束。
通过参考上述专利申请,应该理解,对于本地范围的独占访问请求,IMC 206在每个CR指示IMC 206有责任这么做的情况下可以能够或者可以不能够源化所请求的存储块到请求主控器232。因此,在一些实施中,在框726、748和753示出的CR是否指示重试的确定还可以悲观地认为指示IMC 206负责源化目标存储块的CR为重试CR,其目的是在监听L2高速缓冲存储器230的旁观者处更新目标地址的一致状态。
现在参照图8,示出了根据本发明的示范性处理的高级逻辑流程图,通过该处理,IMC 18对监听到的请求作出响应。如图所示,在框800处理开始,并且此后进行至框802,其示出了通过参考BAR逻辑240,IMC 18确定其是否对监听到的请求内指定的目标地址负责。如果不是,则IMC 18不将监听器222分配到监听到的请求,并且在框830处理简单终止。另一方面,如果在框802IMC 18确定其对目标地址负责,则在框832IMC 18生成LPC_Ack部分响应。接着,在框803IMC 18通过参考监听到的请求的Ttype确定请求是否是独占访问请求。如果不是,则IMC执行其他处理,如框804所示。此后,在框830处理结束。
返回至框803,响应于确定监听到的请求是独占访问请求,在框810和820IMC 18进一步确定其监听器222之一是否对监听到的请求的目标地址活跃以及监听器222之一是否可用于调度。如果IMC18在框810确定其监听器222之一已对监听到的请求的目标地址活跃或在框820确定其不具有监听器222可用于调度,则处理进行至框812,其示出IMC 18发送对监听到的请求的Retry_LPC部分响应。此后,在框830处理结束。
如果IMC 18在框810确定没有其监听器222对监听到的请求的目标地址活跃并且在框820确定其具有监听器222可用于调度,则处理进行至框822和824,其示出IMC 18调度监听器222来等待接收对监听到的请求的组合响应。响应于接收到组合响应,调度的监听器222在必要时从系统存储器108源化请求的数据,并且在必要时更新系统存储器108中的域指示器504(框826)。此后,监听器被解除分配,并且在框830处理结束。
现在参照图9,示出了根据本发明的示范性方法的高级逻辑流程图,通过该方法,独占访问操作的部分响应被生成和积累。在示出的实施方式中,部分响应被逐个节点顺序地或并行地积累,直到获得单个完全部分响应。
如图所示,在框900处理开始,然后进行至框902,其示出第一处理节点102内的处理单元104初始化部分响应内的所有位字段为0。接着,在框910处理单元104中的每个监听器222、236执行其个体的部分响应与积累的部分响应的逻辑OR。然后在框912处理节点102内的响应逻辑210确定HPC_ack部分响应和LPC_ack部分响应是否在当前处理节点102内被L2高速缓存监听器236和存储器控制器监听器222分别断言。如果是,则目标存储块的前HPC和目标存储块的归属系统存储器108都存在于该处理节点102中。因此,响应逻辑210执行断言的MCLS位与积累的部分响应内相应的MCLS位的逻辑OR操作,如框914所示。
接着,在框916,当前处理节点102的响应逻辑210确定当前处理节点102是否是对于其积累部分响应的最后一个处理节点102(例如,包含启动独占访问请求的主控器232的处理节点102)。如果不是,则响应逻辑210向下一处理节点102发送积累的部分响应以进行处理,如框918所示。此后,部分响应在该下一个处理节点102被积累,如框910和后面的框所示。另一方面,如果响应逻辑210确定当前处理节点102是对其积累部分响应的最后一个处理节点102,则处理转到框920,其示出向包含启动独占访问操作的主控器232的处理单元104的响应逻辑210提供积累的部分响应。此后,图9中示出的处理在框922终止。
现在参照图10,示出了根据本发明的示范性方法的高级逻辑流程图,通过该方法,响应逻辑210在存在Ix L2高速缓存监听器236的情况下生成独占访问操作的组合响应。(关于其他一致状态的组合响应的生成的更多细节可以在上述共同未决申请中找到)。在一个优选实施方式中,生成独占访问操作的组合响应的响应逻辑210是包含启动独占访问操作的主控器232的处理单元104的响应逻辑210。
如图所示,响应于接收到积累的部分响应,处理在框1000开始,并且此后进行至框1002,其示出确定独占访问操作是否是全局操作以及积累的部分响应是否包括来自存储器控制器206的LPC_ack部分响应。如果在框1002响应逻辑210确定独占访问操作是全局操作并且积累的部分响应不包括LPC_ack部分响应,则处理在框1004以错误条件停止,原因是没有目标地址的LPC被定位。
另一方面,如果在框1002响应逻辑210作出否定确定,则在框1006响应逻辑210确定独占访问操作是否具有本地范围以及积累的部分响应是否指示没有LPC_ack部分响应或没有HPC_ack部分响应被接收。在框1006的肯定确定指示独占访问请求的范围应当被增加,原因是目标地址的LPC不在本地一致域内并且HPC可能不在本地一致域内。因此,响应于在框1006的肯定确定,处理转到框1009,其示出响应逻辑210生成指示重试的组合响应(并且可选地还指示请求应当以增加的范围再发出)。如上参照图6的框622和610所述,响应于在图10的框1001或框1002的肯定确定生成的重试CR使得主控器232再发出独占访问请求,可能具有增加的广播范围。然后处理转到框1022,其在下面进行描述。
再次参照框1006,响应于否定确定,处理转到框1008。框1008示出响应逻辑210确定积累的部分响应是否包括来自L2高速缓存监听器236的HPC_ack部分响应或者不包括来自IMC 206的Retry_LPC部分响应。响应于在框1008的否定确定,处理转到框1009,其示出响应逻辑210生成指示重试的组合响应。然后处理转到框1022。
返回至框1008,如果响应逻辑210作出肯定确定,则处理从框1008进行至框1010,其示出响应逻辑210确定积累的部分响应是否指示存在Retry_other或共享部分响应。如果是,则启动主控器232可以被授予独占访问请求的目标存储块的一致所有权,但至少一个非HPC L2高速缓冲存储器230可以保留目标存储块的高速缓存的数据有效拷贝。因此,响应逻辑210生成成功清除组合响应,例如Addr_ack_BK。如上所述,成功清除CR将使得启动主控器232发出后台杀死请求,如图6的框626所示。此后,处理转到框1022,其在下面进行描述。
再次参照框1010,响应于响应逻辑210确定积累的部分响应不指示接收到Retry_other或共享部分响应,处理转到框1020,其示出响应逻辑210生成指示成功的组合响应,诸如Addr_ack组合响应。然后处理进行至框1022,其示出响应逻辑210确定MCLS字段是否在积累的部分响应内被断言,如前参照图9的框912和914所述。如果不是,则处理直接进行至框1026。另一方面,如果在框1022作出肯定确定,则在框1024响应逻辑210断言组合响应内的MCLS字段。然后处理转到框1026。
框1026示出响应逻辑210传送组合响应,其广播范围匹配原始独占访问请求的范围(框1026)。此后,在框1030处理终止。
如上所述,本发明提供了一种改进的数据处理系统、处理单元、高速缓存层级和数据处理方法,其提供关于存储块是否可能在一致域内部或外部被高速缓存的指示。根据本发明,可以由一致状态提供的指示可以响应于对独占访问操作的组合响应来建立和/和更新。
尽管本发明已经参考优选实施方式特别示出,本领域技术人员应该明白,各种形式和细节上的改变都可以在不脱离本发明的精神和范围的情况下作出。
权利要求
1.一种在至少包括第一和第二一致域的高速缓存一致数据处理系统中数据处理的方法,所述方法包括在所述数据处理系统的所述第一一致域内的第一高速缓冲存储器中,将与存储位置和地址标记相关的一致状态字段设置为第一数据无效一致状态,其指示所述地址标记是有效的以及所述存储位置不包含有效数据;以及响应于监听到独占访问操作,其中所述独占访问请求指定与所述地址标记匹配的目标地址并指示启动所述独占访问操作的请求者的相对域位置,所述第一高速缓冲存储器将所述一致状态字段从所述第一数据无效一致状态更新为第二数据无效一致状态,其指示所述地址标记是有效的、所述存储位置不包含有效数据、以及当基于所述请求者的所述相对域位置成功完成所述独占访问操作时,与所述地址标记相关的目标存储块是否在所述第一一致域内被高速缓存。
2.根据权利要求1的方法,其中所述独占访问操作包括第一独占访问操作;以及所述设置包括响应于由所述数据处理系统的第二高速缓冲存储器启动的第二独占访问操作将所述一致状态字段设置为所述第一数据无效一致状态。
3.根据权利要求1的方法,其中所述独占访问操作包括后台杀死操作;所述方法进一步包括第二高速缓冲存储器响应于所述第二高速缓冲存储器已经获得所述目标存储块的独占一致所有权的指示发出所述后台杀死操作。
4.根据权利要求1的方法,进一步包括所述第一高速缓冲存储器通过参考所述一致状态字段预测将所述存储块作为目标的数据访问请求进行广播传输的范围。
5.根据权利要求1的方法,其中所述独占访问操作包括独占访问请求和指示对所述独占访问请求的系统范围响应的组合响应;以及所述更新包括所述第一高速缓冲存储器响应于指示所述请求者已获得所述目标存储块的独占一致所有权的所述独占访问操作的所述组合响应更新所述一致状态字段。
6.根据权利要求5的方法,其中所述第一数据无效一致状态指示与所述地址标记相关联的目标存储块是否可能在所述第一一致域内被高速缓存;以及所述方法进一步包括响应于指示所述请求者未成功获得所述目标存储块的独占一致所有权的所述组合响应,将所述一致状态字段从所述第一数据无效一致状态更新为第三数据无效一致状态,其指示所述数据存储位置不包含有效数据并且不提供关于高速缓存所述目标存储块拷贝的位置的指示。
7.一种用于包括至少第一和第二一致域的高速缓存一致数据处理系统的高速缓冲存储器,其中每个一致域包括至少一个处理单元,所述第一一致域包括所述高速缓冲存储器,所述第二一致域包括另一一致高速缓冲存储器,所述高速缓冲存储器包括高速缓存控制器;数据阵列,包括用于高速缓存存储块的数据存储位置;以及高速缓存目录,包括标记字段,用于存储与所述存储块相关联的地址标记;一致状态字段,与所述标记字段和所述数据存储位置相关联,其中所述一致状态字段具有多个可能的一致状态,包括第一和第二数据无效一致状态,其中所述第一数据无效一致状态指示所述地址标记是有效的以及所述存储位置不包含有效数据,以及所述第二数据无效一致状态指示所述地址标记是有效的、所述存储位置不包含有效数据、以及与所述地址标记相关联的目标存储块是否可能在所述第一一致域内被高速缓存;其中响应于监听到指定与所述地址标记匹配的目标地址以及包含启动独占访问操作的请求者的相对域位置的指示的所述独占访问操作,所述高速缓存控制器将所述一致状态字段从所述第一数据无效一致状态更新为所述第二数据无效一致状态。
8.根据权利要求7的高速缓冲存储器,其中所述高速缓存控制器响应于由所述数据处理系统的第二高速缓冲存储器启动的第二独占访问操作将所述一致状态字段设置为所述第一数据无效一致状态。
9.根据权利要求7的高速缓冲存储器,其中所述独占访问操作包括由所述数据处理系统的第二高速缓冲存储器发出的后台杀死操作。
10.根据权利要求7的高速缓冲存储器,其中所述高速缓存控制器通过参考所述一致状态字段预测将所述目标存储块作为目标的数据访问请求进行广播传输的范围。
11.根据权利要求7的高速缓冲存储器,其中所述独占访问操作包括独占访问请求和指示对所述独占访问请求的系统范围响应的组合响应;以及所述高速缓存控制器响应于指示所述请求者已获得所述目标存储块的独占一致所有权的所述独占访问操作的所述组合响应来更新所述一致状态字段。
12.根据权利要求11的高速缓冲存储器,其中所述第一数据无效一致状态指示与所述地址标记相关联的目标存储块是否可能在所述第一一致域内被高速缓存;以及所述高速缓存控制器响应于指示所述请求者未成功获得所述目标存储块的独占一致所有权的所述组合响应,将所述一致状态字段从所述第一数据无效一致状态更新为第三数据无效一致状态,其指示所述数据存储位置不包含有效数据并且不提供关于高速缓存所述目标存储块拷贝的域位置的指示。
13.一种处理单元,包括至少一个处理器核;以及根据权利要求7的高速缓冲存储器。
14.一种高速缓存一致数据处理系统,包括互连结构;通过所述互连结构连接的第一和第二一致域,其中所述第一一致域至少包括由第一高速缓冲存储器支持的第一处理单元以及所述第二一致域包括由一致第二高速缓冲存储器支持的第二处理单元,其中在所述数据处理系统的所述第一一致域内的所述第一高速缓冲存储器包括高速缓存目录,包括标记字段,用于存储与所述存储块相关联的地址标记;一致状态字段,与所述标记字段和所述数据存储位置相关联,其中所述一致状态字段具有多个可能的一致状态,包括第一和第二数据无效一致状态,其中所述第一数据无效一致状态指示所述地址标记是有效的以及所述存储位置不包含有效数据,以及所述第二数据无效一致状态指示所述地址标记是有效的、所述存储位置不包含有效数据、以及与所述地址标记相关联的目标存储块是否可能在所述第一一致域内被高速缓存;其中响应于监听到指定与所述地址标记匹配的目标地址以及包含启动独占访问操作的请求者的相对域位置的指示的所述独占访问操作,所述高速缓存控制器将所述一致状态字段从所述第一数据无效一致状态更新为所述第二数据无效一致状态。
15.根据权利要求14的高速缓存一致数据处理系统,其中所述高速缓存控制器响应于由所述数据处理系统的第二高速缓冲存储器启动的第二独占访问操作将所述一致状态字段设置为所述第一数据无效一致状态。
16.根据权利要求14的高速缓存一致数据处理系统,其中所述独占访问操作包括由所述数据处理系统的第二高速缓冲存储器发出的后台杀死操作。
17.根据权利要求14的高速缓存一致数据处理系统,其中所述高速缓存控制器通过参考所述一致状态字段预测将所述目标存储块作为目标的数据访问请求进行广播传输的范围。
18.根据权利要求14的高速缓存一致数据处理系统,其中所述独占访问操作包括独占访问请求和指示对所述独占访问请求的系统范围响应的组合响应;以及所述高速缓存控制器响应于指示所述请求者已获得所述目标存储块的独占一致所有权的所述独占访问操作的所述组合响应来更新所述一致状态字段。
19.根据权利要求14的高速缓存一致数据处理系统,其中所述第一数据无效一致状态指示与所述地址标记相关联的目标存储块是否可能在所述第一一致域内被高速缓存;以及所述高速缓存控制器响应于指示所述请求者未成功获得所述目标存储块的独占一致所有权的所述组合响应,将所述一致状态字段从所述第一数据无效一致状态更新为第三数据无效一致状态,其指示所述数据存储位置不包含有效数据并且不提供关于高速缓存所述目标存储块拷贝的域位置的指示。
全文摘要
一种高速缓存一致数据处理系统包括至少第一和第二一致域。在数据处理系统的第一一致域内的第一高速缓冲存储器中,与存储位置和地址标记相关的一致状态字段被设置为第一数据无效一致状态,其指示地址标记是有效的以及存储位置不包含有效数据。响应于监听到独占访问操作,其中独占访问请求指定与地址标记匹配的目标地址并指示启动该独占访问操作的请求者的相对域位置,第一高速缓冲存储器将一致状态字段从第一数据无效一致状态更新为第二数据无效一致状态,其指示地址标记是有效的、存储位置不包含有效数据、以及当基于请求者的相对位置成功完成独占访问操作时,与地址标记相关的目标存储块是否在第一一致域内被高速缓存。
文档编号G06F12/08GK101042680SQ200710135928
公开日2007年9月26日 申请日期2007年3月13日 优先权日2006年3月23日
发明者G·L·格思里, W·J·斯塔克, D·E·威廉斯, J·A·施蒂赫利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1