数据处理系统中初始化存储块的方法、处理器、数据处理系统的制作方法

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

发明内容
因此本发明提供了一种在数据处理系统中初始化存储块的方法、处理器以及数据处理系统。
在一个实施方式中,数据处理系统包括至少第一和第二一致域,每个包括至少一个处理器核和存储器。响应于指示将初始化目标存储块的处理器核的初始化操作,第一一致域中的高速缓冲存储器确定目标存储块相对于高速缓冲存储器的一致状态。响应于该确定,高速缓冲存储器选择识别目标存储块的初始化请求的广播范围。响应于第一一致状态的确定选择包括第一一致域并且不包括第二一致域的较窄范围,以及响应于第二一致状态的确定选择包括第一一致域和第二一致域的较宽范围。然后高速缓冲存储器以所选择的范围广播初始化请求。响应于初始化请求,目标存储块在数据处理系统的存储器内被初始化为初始值。
本发明的所有目的、特征和优点将在后面详细的书面描述中变得清楚。


被认为是本发明的特征的新颖特征在所附权利要求中阐述。然而,通过参照下面结合附图的说明性实施方式的详细描述将更好地理解本发明以及优选使用方式,其中图1是根据本发明的示范性数据处理系统的高级别框图;图2是根据本发明的处理单元的更详细框图;图3是图2所示的L2高速缓存阵列和目录的更详细框图;
图4是图1的数据处理系统的系统互连上示范性事务的时间-空间图;图5示出根据本发明优选实施方式的域指示器。
图6是根据本发明的方法的示范性实施方式的高级逻辑流程图,通过该方法,高速缓冲存储器对相关联的处理器核的存储器初始化操作提供服务;图7是根据本发明的通过监听存储器控制器来对存储器初始化请求提供服务的方法的示范性实施方式的高级逻辑流程图;图8是根据本发明的通过监听高速缓冲存储器来对存储器初始化请求提供服务的方法的示范性实施方式的高级逻辑流程图;图9A是根据本发明一个实施方式的示范性处理的高级逻辑流程图,通过该处理,部分响应分级地被积累;图9B是根据本发明的生成存储器初始化请求的组合响应的方法的示范性实施方式的高级逻辑流程图;以及图1 0是根据本发明的程序代码的框图。
具体实施例方式
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的部分响应被一个或多个响应逻辑实例21 0在逻辑上分阶段组合或一次全部组合,以确定对请求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,示出根据本发明的方法的示范性实施方式的高级逻辑流程图,通过该方法,高速缓冲存储器对从相关联的处理器核接收的存储器初始化操作提供服务。响应于L2高速缓存230的主控器232从其处理单元104内相关联的处理器核200之一接收到CPU操作,示出的处理在框600开始。然后处理进行至框602,其示出主控器232确定操作是否是例如响应于源处理器核200执行相应DCBN指令而接收的CPU DCBN(数据高速缓存块初始化)操作。
图10示出示范性DCBN指令1002,其形成至少部分地存储在系统存储器108内的计算机可用程序代码1000的一部分,并被处理器核200执行或处理。示范性DCBN指令优选地包括识别指令为DCBN指令的操作代码(在图10中由缩写“dcbn”表示),以及将被初始化的目标存储块的目标实际地址的指示。目标真实地址优选地通过一个或多个指令输入操作数op1、op2和op3以常规方式指示。输入操作数可以可选地指示附加信息,例如,将被初始化的目标存储块的地址范围的指示和/或目标存储块将被初始化为的初始值的指示(例如,全部0,全部1,或寄存器指定值)。如果没有明确指示初始值,则DCBN指令的操作代码可以意味着默认值(例如,全部0或全部1)。
在优选实施方式中,响应于DCBN指令的执行由处理器核200发送至主控器232的CPU DCBN操作类似地至少包括识别存储器访问操作为CPU DCBN操作的操作代码,以及将被初始化的目标存储块的目标实际地址的指示。CPU DCBN操作可以可选地指示附加信息,例如,将被初始化的目标存储块的地址范围的指示和/或目标存储块将被初始化为的初始值的指示(例如,全部0,全部1,或寄存器指定值)。如果没有明确指示初始值,则CPU DCBN操作的操作代码可以意味着默认值(例如,全部0或全部1)。
响应于在框602确定由主控器232接收的CPU操作不是CPUDCBN操作,处理进行至框604,其表示主控器232根据接收到的CPU操作的操作类型执行其他处理。然后处理在框650结束。
返回到框602,响应于确定接收的操作是CPU DCBN操作,在框606主控器232启动L2高速缓存目录302的查找,以确定记录在L2高速缓存目录302内的对于由CPU DCBN操作指定的目标地址的一致状态(如果有的话)。如果在框608 L2高速缓存目录302指示目标地址不与任何数据有效一致状态(例如,M、Me、T、Tn、Te、Ten、Sr或S)相关联,而是与数据无效一致状态(例如,I、Ig、Igp或In)相关联,则处理进行至框610,其示出主控器232基于从其L2高速缓存目录302读取的数据无效一致状态确定是否发出全局或本地范围的DCBN。即,如果用于目标地址的一致状态是Ig或Igp,指示目标地址的HPC可能驻留于不同一致域中(例如,处理节点104),则主控器232在其本地互连114和系统互连110上发出全局范围的DCBN请求,如框620所示。另一方面,如果一致状态是In或I,指示目标地址的HPC可能驻留于主控器232的本地一致域中,则主控器232在其本地互连114上发出本地范围的DCBN请求,如框612所示。尽管互连114、110不一定是总线互连,这些请求在此指定为总线DCBN请求,以将它们与由主控器232从处理器核200接收的CPU DCBN操作和处理器执行的DCBN指令区别开。
在优选实施方式中,由主控器232发出的总线DCBN请求至少包括识别请求为总线DCBN请求的请求矢量(vector),以及目标存储块的目标实际地址的指示。类似上述CPU DCBN操作,总线DCBN请求可以可选地指示附加信息,例如,将被初始化的目标存储块的地址范围的指示和/或目标存储块将被初始化为的初始值的指示(例如,全部0,全部1,或指定值)。如果没有明确指示初始值,则总线DCBN请求的请求矢量可以意味着默认值(例如,全部0或全部1)。
在框612发出本地总线DCBN请求之后,主控器232等待本地总线DCBN请求的组合响应(CR)。如框614、616和618所示,本地总线DCBN请求的CR可以是以下三种中任一种(1)重试本地(Retry_local),(2)成功(Success),或(3)重试全局(Retry_global)。如果组合响应(CR)指示Retry_local(框614),则主控器232再次发出本地总线DCBN请求,如处理从框614返回至框612所示。如果CR不是指示Retry_local,而是指示Success(例如,成功_HPC(Success_HPC)或成功非HPC(Success_No_HPC))(框616),则目标存储块的初始化成功,并且处理在框650结束。应该注意,当请求L2高速缓存230未保持CPU DCBN操作的目标存储块的拷贝时,则不需要请求L2高速缓存230为了对CPU DCBN操作提供服务而通过加载目标存储块的拷贝“污染”其L2高速缓存阵列300。代替地,请求L2高速缓存230通过仅发出一个或多个相应的总线DCBN请求直到接收到Success组合响应来对CPU DCBN操作提供服务。
参考框618,如果主控器232确定本地总线DCBN请求的CR指示Retry_global,则主控器232以全局范围重发总线DCBN请求,如处理转到框620所示。根据本发明的一个实施方式,全局总线DCBN请求的CR可以指示Retry_global或Success。如果全局总线DCBN请求的CR指示Retry_global,则处理返回至框620,并且主控器232重发全局总线DCBN请求。另一方面,如果全局总线DCBN请求的CR指示Success(例如,Success_HPC或Success_No_HPC),则处理从框618进行至框650并终止。
返回到框608,响应于主控器232确定目标地址以数据有效一致状态在L2高速缓存目录302中命中,处理转到框630和后面的框,并且主控器232根据目标存储块的一致状态对CPU DCBN操作提供服务。如果主控器232在框630确定目标存储块的一致状态是Mx(例如,M或Me),则主控器232仅通过用适当的初始值写入目标存储块来初始化目标存储块,如框648所示。如果尚未被设置为M,则将目标存储块的一致状态更新为M以指示目标存储块现在与系统存储器108中相应存储块不一致。此后,处理在框650结束。
现在参照框632,如果主控器232确定其L2高速缓存目录302中目标存储块的一致状态是Txn(例如,Tn或Ten),则主控器232在其本地互连114上发出本地范围的总线DCBN请求,如框634所示。框634之后,主控器232等待其本地总线DCBN请求的组合响应。响应于接收到CR,主控器232在框636确定CR是否指示Retry_local。如果是,则主控器232重发本地总线DCBN请求,如处理从框636返回至框634所示。以这种方式重发本地总线DCBN请求确保保持目标存储块拷贝的本地一致域中每个其他L2高速缓存230在由请求L2高速缓存230初始化目标存储块之前将其各自的目标存储块拷贝更新为数据无效状态。另一方面,如果主控器232在框636确定组合响应不指示Retry_local,而是指示Success,则主控器232通过用适当的初始值写入目标存储块来初始化目标存储块,如框648所示。主控器232还将其L2高速缓存目录302中目标高速缓存线的一致状态更新为M(尽管该更新对于维持Tn或Ten一致状态的目标存储块的一致是不需要的并且因此可以对于这样存储块被省略)。此后,处理在框650结束。
再次参照框632以及另外参照框640,如果主控器232确定其L2高速缓存目录302中目标存储块的一致状态不是Txn而是Tx(例如T或Te),则主控器232在其本地互连114和系统互连110上发出全局范围的总线DCBN请求,如框642所示。框642之后,主控器232等待其全局DCBN请求的组合响应。响应于接收到CR,主控器232在框644确定CR是否指示Retry_global。如果是,则主控器232重发全局总线DCBN请求,如处理从框644返回至框642所示。以这种方式重发全局总线DCBN请求确保保持目标存储块拷贝的每个其他L2高速缓存230在由请求L2高速缓存230初始化目标存储块之前将其各自的目标存储块拷贝更新为数据无效状态。另一方面,如果在框644主控器232确定组合响应不指示Retry_global,而是指示Success,则主控器232通过用适当的初始值写入目标存储块来初始化目标存储块,如框648所示。主控器232还将其L2高速缓存目录302中目标高速缓存线的一致状态更新为M(尽管该更新对于维持T或Te一致状态的目标存储块的一致是不需要的并且因此可以对于这样的存储块被省略)。此后,处理在框650结束。
再次参照框640,如果主控器232确定目标存储块的一致状态不是Mx或Tx(例如,一致状态是S或Sr),则主控器232将其L2高速缓存目录302内目标存储块的一致状态更新为I一致状态,如框646所示。此后,处理转到已经描述了的框612和后面的框。因此,如果请求L2高速缓存230保持非HPC数据有效一致状态的目标存储块,则请求L2高速缓存230优选地不扩展其资源和互连带宽获取许可到修改其目标存储块拷贝来对CPU DCBN操作提供服务。代替地,请求L2高速缓存230优选地仅通过使其目标存储块拷贝无效以及发出一个或多个相应总线DCBN请求直到收到不同于Retry的组合响应来对CPU DCBN操作提供服务。
现在参照图7,示出根据本发明的方法的示范性实施方式的高级逻辑流程图,通过该方法,诸如集成存储器控制器206的存储器控制器对存储器初始化请求提供服务。响应于由IMC 206接收到存储器访问请求,所示处理在框700开始。然后处理进行至框702,其示出IMC 206确定存储器访问请求是否是总线DCBN请求。如果是,则处理进行至框706,其在下面进行描述。如果不是,则处理转到框704,其示出IMC 206根据其请求类型处理请求。此后处理在框740终止。
现在参照框706,如果接收到的请求是总线DCBN请求,则IMC206通过参考BAR逻辑240确定其是否是由总线DCBN请求指定的目标地址的LPC。如果IMC 206确定其不是总线DCBN请求的目标地址的LPC,则处理仅在框740终止。然而,如果IMC 206确定其是总线DCBN请求的目标地址的LPC,则处理进行至框708,其示出IMC 206提供LPC_ack部分响应。在框710 IMC 206还确定其是否具有足够的资源可用于对总线DCBN请求提供服务。如果不是,则监听器222提供额外的Retry_LPC部分响应,如框712所示。此后,处理在框740终止。然而,如果IMC 206在框710确定其具有足够资源可用于对总线DCBN请求提供服务,则IMC 206分配监听器222等待接收总线DCBN请求的CR(框722)。如果CR指示Retry(例如,Retry_global或Retry_local),则IMC 206将分配给总线DCBN请求的监听器222解除分配,然后处理在框740终止。
如果在框724分配给总线DCBN请求的监听器222确定CR不指示Retry,则总线DCBN请求成功,并且处理转到框726。框726示出监听器222可选地确定总线DCBN请求的CR是否指示Success_HPC,意味着目标存储块的HPC具有目标存储块的高速缓存的拷贝。如果是,则处理可直接进行至框740并终止。可选地,在一些实施方式中,监听器222可以更新目标存储块的域指示器504并初始化在系统存储器108中的目标存储块。在这样的实施方式中,在框730监听器222例如通过确定存储器控制器本地至监听器(MCLS)信号是否在总线DCBN操作的CR内被断言来确定其是否在与目标存储块的HPC相同的一致域内。如果不是,则在框734监听器222重置目标存储块的域指示器504以指示全局,否则在框732设置域指示器504以指示本地。监听器222还可以可选地在相关联的系统存储器108中初始化目标存储块,如框736所示。该初始化是可选的,这是因为HPC将在其L2高速缓存阵列300内初始化存储块,如下面图8的框816和框827进一步描述的。框736之后,监听器222被解除分配,然后处理在框740终止。
返回到框726,响应于否定确定,意味着CR是Success_No_HPC而不是Success_HPC,处理转到框738,其示出监听器222将目标存储块的域指示器504设置为指示本地。此外,监听器222将系统存储器108中目标存储块初始化为适当的初始值(框739)。然后监听器222被解除分配,然后处理在框740终止。
现在参照图8,示出根据本发明的方法的示范性实施方式的高级逻辑流程图,通过该方法,高速缓冲存储器对在互连上监听到的存储器初始化请求提供服务。响应于L2高速缓存230的监听器236在其本地互连114上接收到请求,所示处理在框800开始。然后处理进行至框802,其示出监听器236确定接收到的操作是否是总线DCBN请求。如果不是,则处理进行至框804,其表示监听器236根据所接收请求的请求类型执行其他处理。然后处理在框850结束。
返回到框802,响应于确定所接收操作是总线DCBN请求,在框810监听器236确定其是否具有足够的资源可用于对总线DCBN请求提供服务。如果不是,则监听器236提供指示Retry的部分响应,如框812所示。此后,处理在框850终止。然而,如果在框810监听器236确定其具有足够资源可用于对总线DCBN请求提供服务,则监听器236在框812启动其L2高速缓存目录302的查找以确定对于由总线DCBN请求指定的目标地址记录的一致状态(如果有的话)。如果如框814所示L2高速缓存目录302指示目标地址与Mx一致状态(例如,M或Me)相关联,则监听器236在其L2高速缓存阵列230中初始化目标存储块为适当的初始值,如框816所示,并提供HPC_Ack_M部分响应,如框818所示。此后,处理在框850结束。
如果目标存储块的一致状态不是Mx,则处理从框814进行至框820和828,其示出监听器236确定在其L2高速缓存目录302中用于目标地址的一致状态是否是Txn(例如,Tn或Ten)或Tx(例如,T或Te)。如果是,则监听器236提供HPC_Ack_Txn部分响应(框822)或HPC_Ack_Tx部分响应(框830)。此后,监听器236在框824等候接收总线DCBN请求的CR。如框826所示,如果组合响应不指示Retry,意味着目标存储块的每个其他高速缓存的拷贝(如果有的话)已被无效,监听器236初始化目标存储块为适当的初始值,如框827所示。此后,处理在框850终止。然而,如果监听器236在框826接收到指示Retry(例如,Retry_local或Retry_global)的组合响应,则监听器236不初始化目标存储块,并且处理在框850结束直到重新发出总线DCBN请求。
现在参照框840,如果监听器236确定目标存储块在其L2高速缓存目录302中不与Txn或Tx一致状态相关联,则监听器236确定目标存储块的一致状态是否是Sx(例如,S或Sr)。如果不是,则处理在框850终止。然而,如果目标存储块在其L2高速缓存目录302中与Sx一致状态相关联,则监听器236通过在L2高速缓存目录302中更新其一致状态为I来使目标存储块的Sx拷贝无效(框844)。此后,处理在框850结束。
现在参照图9A,示出了根据本发明的示范性方法的高级逻辑流程图,通过该方法,独占访问操作的部分响应被生成和积累。在示出的实施方式中,部分响应被逐个节点顺序地或并行地积累,直到获得单个完全部分响应。
如图所示,在框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终止。
现在参照图9B,示出根据本发明优选实施方式的示范性方法的的高级逻辑流程图,通过该方法,响应逻辑210生成总线DCBN请求的组合响应。如图所示,处理在框930开始然后进行至框932,其示出响应逻辑210(例如,包含启动请求的主控器232的处理单元104的响应逻辑210)确定操作是否是总线DCBN操作。如果不是,则响应逻辑210在框934执行其他处理。此后,处理在框960结束。然而,如果操作是总线DCBN操作,则响应逻辑210在框936还确定所累积的部分响应是否包括HPC_Ack_M部分响应由监听器236之一生成的指示。如果是,则处理转到框946,其示出响应逻辑210生成并在与总线DCBN请求的范围匹配的范围传输指示Success_HPC的CR。此后,处理在框960结束。然而,如果响应逻辑210在框936确定未收到HPC_Ack_M的部分响应,则处理转到框940。
框940示出响应逻辑210确定其是否从L2高速缓存监听器236或IMC 206接收到指示Retry的部分响应。如果不是,则处理转到框944,其在下面描述。如果是,则响应逻辑210在框942还确定操作是否是全局总线DCBN操作。如果是,则响应逻辑210在框954生成并传输(以全局范围)指示Retry_global的CR。此后,处理在框960结束。如果响应逻辑210在框942确定操作不是全局总线DCBN操作,则响应逻辑210在框943确定所累积的部分响应是否指示L2高速缓存监听器236提供了HPC_Ack_Txn部分响应。如果是,则响应逻辑210生成Retry_local部分响应,如框952所示,否则生成Retry_global部分响应,如框954所示。框952或954之后,处理在框960结束。
现在参照框944,响应逻辑210确定所累积的部分响应是否包括L2高速缓存监听器236提供了HPC_Ack_Txn或HPC_Ack_Tn部分响应的指示。如果是,则处理转到框946,其已进行过描述。如果不是,则响应逻辑210生成并以与总线DCBN请求匹配的范围传输指示Success_No_HPC的CR(框948)。此后,处理在框960终止。
如上所述,本发明提供了一种初始化存储块的方法、处理单元和数据处理系统。有利地,本发明允许存储块被初始化,而不要求请求高速缓冲存储器在初始化之前或之后保持目标存储块的有效拷贝。此外,在所选操作模式下,目标存储块可以被初始化,而不用更新在系统存储器中保持的目标存储块的拷贝。
尽管已经参照优选实施方式具体地描述了本发明,本领域技术人员应该理解,在不背离本发明的精神和范围的情况下,可以在此作出各种形式和细节上的改变。例如,尽管相对于指导本发明的功能的计算机系统执行程序代码描述了本发明的各方面,应该理解,本发明可选地可作为用于数据处理系统的程序产品来实现。定义本发明的功能的程序代码可以通过各种信号承载介质传递至数据处理系统,这些介质包括但不限于不可写存储介质(例如,CD-ROM)、可写存储介质(例如,软盘或硬盘驱动器)、以及通信介质,例如数字和模拟网络。因此,应该理解,这种信号承载介质当携带或编码指导本发明功能的计算机可读指令时代表本发明的可选实施方式。
权利要求
1.一种包括至少第一和第二一致域的数据处理系统中的数据处理方法,其中所述第一和第二一致域的每个包括至少一个处理器核和存储器,所述方法包括以下步骤响应于处理器核的初始化操作,所述初始化操作指示将被初始化的目标存储块,所述第一一致域中的高速缓冲存储器确定所述目标存储块相对于所述高速缓冲存储器的一致状态;响应于所述确定,所述高速缓冲存储器选择识别所述目标存储块的初始化请求的广播范围,其中所述选择包括响应于第一一致状态的确定,选择包括所述第一一致域并且不包括所述第二一致域的较窄范围;以及响应于第二一致状态的确定,选择包括所述第一一致域和所述第二一致域的较宽范围;所述高速缓冲存储器以所述选择的范围广播初始化请求;以及响应于所述初始化请求,将所述目标存储块在数据处理系统的存储器内初始化为初始值。
2.根据权利要求1的方法,其中所述初始化包括在所述高速缓冲存储器未保持所述目标存储块的数据有效拷贝的情况下初始化所述目标存储块。
3.根据权利要求1的方法,进一步包括响应于接收到所述较窄范围的初始化请求不成功的指示,所述高速缓冲存储器以所述较宽范围发出所述初始化请求。
4.根据权利要求1的方法,其中所述第一一致域包括用于所述目标存储块的域指示器,其中所述域指示器指示所述目标存储块是否完全仅在所述第一一致域内被高速缓存;以及所述方法进一步包括响应于没有所述目标存储块的数据有效拷贝在所述第一一致域外部保持高速缓存的指示,更新所述域指示器。
5.根据权利要求1的方法,其中所述高速缓冲存储器包括第一高速缓冲存储器;以及所述初始化包括在没有在底层系统存储器中初始化所述目标存储块的情况下在第二高速缓冲存储器中将所述目标存储块初始化为所述初始值。
6.根据权利要求1的方法,其中所述初始化包括响应于接收到没有与另一处理器核相关联的其他高速缓冲存储器将保持所述目标存储块的数据有效拷贝的指示,在所述高速缓冲存储器中将所述目标存储块初始化为所述初始值。
7.一种用于包括至少第一和第二一致域的数据处理系统的处理单元,其中所述第一一致域包括所述处理单元并且所述第二一致域包括另一处理单元,所述处理单元包括至少一个处理器核;以及高速缓冲存储器,连接至所述处理器核,其中所述高速缓冲存储器响应于从处理器核接收到指示将初始化目标存储块的初始化操作,确定所述目标存储块相对于所述高速缓冲存储器的一致状态,并且响应于所述确定,这样选择识别所述目标存储块的初始化请求的广播范围,所述高速缓冲存储器响应于第一一致状态的确定,选择包括所述第一一致域并且不包括所述第二一致域的较窄范围,以及响应于第二一致状态的确定,选择包括所述第一一致域和所述第二一致域的较宽范围,以及其中所述高速缓冲存储器以所述选择的范围广播初始化请求,使得目标存储块在数据处理系统的存储器内被初始化为初始值。
8.根据权利要求7的处理单元,其中所述目标存储块在所述高速缓冲存储器未保持所述目标存储块的数据有效拷贝的情况下被初始化。
9.根据权利要求7的处理单元,其中所述高速缓冲存储器响应于接收到所述较窄范围的初始化请求不成功的指示,以所述较宽范围发出所述初始化请求。
10.根据权利要求7的处理单元,其中所述处理单元包括存储器控制器,其保持用于所述目标存储块的域指示器,其中所述域指示器指示所述目标存储块是否完全仅在所述第一一致域内被高速缓存;以及所述存储器控制器响应于没有所述目标存储块的数据有效拷贝在所述第一一致域外部保持高速缓存的指示,更新所述域指示器。
11.根据权利要求7的处理单元,其中所述高速缓冲存储器包括数据阵列,所述高速缓冲存储器响应于接收到响应于所述初始化请求的没有与另一处理器核相关联的其他高速缓冲存储器将保持所述目标存储块的数据有效拷贝的指示,在所述数据阵列中将所述目标存储块初始化为所述初始值。
12.一种数据处理系统,包括根据权利要求7的处理单元;所述第二一致域;互连结构,连接所述处理单元和所述第二一致域;其中,响应于所述初始化请求,所述另一高速缓冲存储器将所述目标存储块初始化为所述初始值。
13.根据权利要求12的数据处理系统,进一步包括保持所述目标存储块的系统存储器,其中所述另一高速缓冲存储器响应于在所述互连上监听到所述初始化请求,在未在所述系统存储器中初始化所述目标存储块的情况下将所述目标存储块初始化为所述初始值。
全文摘要
一种数据处理系统包括至少第一和第二一致域,每个包括至少一个处理器核和存储器。响应于指示将初始化目标存储块的处理器核初始化操作,第一一致域中的高速缓冲存储器确定目标存储块相对于该高速缓冲存储器的一致状态。响应于该确定,高速缓冲存储器选择识别目标存储块的初始化请求的广播范围。响应于第一一致状态的确定选择包括第一一致域并且不包括第二一致域的较窄范围,以及响应于第二一致状态的确定选择包括第一一致域和第二一致域的较宽范围。然后高速缓冲存储器以所选择的范围广播初始化请求。响应于初始化请求,目标存储块在数据处理系统的存储器内被初始化为初始值。
文档编号G06F12/08GK101055545SQ20071013590
公开日2007年10月17日 申请日期2007年3月9日 优先权日2006年3月23日
发明者D·E·威廉斯, R·K·阿里米利, W·J·斯塔克, G·L·格思里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1