数据处理系统和方法

文档序号:6560285阅读:136来源:国知局
专利名称:数据处理系统和方法
技术领域
本发明一般涉及数据处理,尤其涉及数据处理系统的数据处理中的读操作。
背景技术
诸如服务器计算机系统之类的传统的对称多处理器(SMP)计算机系统包括多个全都耦接到系统互连的处理单元,该系统互连通常包括一个或多个地址、数据和控制总线。系统存储器耦接到系统互连,该系统存储器代表多处理器计算机系统中最低级别的易失性存储器,并且一般可由所有处理单元访问以便进行读和写访问。为了减小对驻留在系统存储器中的指令和数据的访问延迟,每个处理单元通常还由相应的多级高速缓存分级结构支持,该分级结构中的较低级别(多个)可以由一个或多个处理器核心共享。
因为多个处理器核心可以请求对数据的相同高速缓存线的写访问,并且因为已修改的高速缓存线不立即与系统存储器同步,所以多处理器计算机系统的高速缓存分级结构通常实现了高速缓存相干性(coherency)协议,以至少确保在各个处理器核心对系统存储器内容的“视图”之间的最低级别的相干性。特别地,高速缓存相干性至少需要,在处理单元访问存储块的副本之后,接着访问存储块的更新副本,该处理单元不能再次访问该存储块的旧副本。
相干性协议通常定义了与每个高速缓存分级结构的高速缓存线相关联地存储的一组高速缓存状态,以及用来在高速缓存分级结构以及诸如系统存储器之类的其它参与者之间传递状态信息的一组相干性消息。在典型的实现中,高速缓存状态信息采取公知的MESI(修改、独占、共享、无效)协议或其变体的形式,并且相干性消息指示在存储器访问请求的请求者和/或接受者的高速缓存分级结构中的、协议定义的相干性状态转变和/或数据更新。

发明内容
在传统的相干性协议中,从向系统存储器控制器分配为读取操作服务的责任的时间开始直至将所读取数据递送给请求者为止,负责为读取操作服务的系统存储器控制器必须保护为读取操作目标的数据,以防其例如被后续的写入操作修改。传统的系统存储器控制器通过分配包括地址寄存器和地址比较器内的读取队列条目来保护数据。因为现代的数据处理系统通常使用大(例如,40-50位)的地址,因此每个单独的读取队列条目在包含系统存储器控制器的集成电路之内具有大“占用面积”,并且因此在可购得的系统中,通常仅仅实例化了少量的读取队列条目。少量的读取队列条目、以及读取队列条目中的读取操作的占有期的持续时间限制了读取操作可由系统存储器控制器服务的速率。
鉴于本技术领域的上述及其它缺点,本发明提供一种改进的数据处理系统、以及数据处理系统中的数据处理方法。在一个实施例中,数据处理系统包括多个请求者、以及用于系统存储器的存储器控制器。响应于从请求者接收到以系统存储器中的存储块为目标的读取类型请求,存储器控制器保护该存储块以防修改,并且响应于存储器控制器负责为该读取类型请求服务的指示,存储器控制器将该存储块传送到请求者。在由请求者接收存储块之前,存储器控制器结束防止修改存储块的保护,并且请求者开始保护该存储块以防修改。响应于存储块的接收,请求者结束其防止修改存储块的保护。
在下面详细的书面描述中,本发明的所有目的、特征和优点将变得清楚。


在所附权利要求中阐述了被认为是本发明特性的新颖特征。然而,通过参考下面结合附图阅读的、对说明性实施例的详细描述,将会更好地理解本发明以及优选使用模式。
图1是根据本发明的示范数据处理系统的高级框图;图2是根据本发明的处理单元的更详细框图;图3是图2所述的L2高速缓存阵列和目录的更详细框图;图4是图2所述的存储器控制器的更详细框图;图5A-5B是在存储器控制器和请求者保护所读取的数据以防修改期间的示范操作的时空图;图6是根据本发明、系统存储器控制器为读取请求服务的示范方法的高级逻辑流程图;以及图7是根据本发明的、高速缓冲存储器为处理器加载操作服务的示范方法的高级逻辑流程图。
具体实施例方式
现在参考附图,特别是参考图1,其中说明了根据本发明的高速缓存相干对称多处理器(SMP)数据处理系统的示范实施例的高级框图。如所示,数据处理系统100包括多个处理节点102a、102b,用于处理数据和指令。处理节点102a、102b耦接到用于传送地址、数据和控制信息的系统互连110。例如,系统互连110可以被实现为总线互连、交换互连或混合互连。
在所述实施例中,每个处理节点102被实现为多芯片模块(MCM),其包含四个处理单元104a-104d,每个处理单元优选为被实现为各自的集成电路。每个处理节点102之内的处理单元104a-104d通过本地互连114耦接以进行通信,其中类似于系统互连110,本地互连114可以使用一个或多个总线和/或交换器来实现。
耦接到每个本地互连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执行的指令包括请求对存储块的访问或者导致生成对存储块的访问请求的指令。
每个处理器核心200的操作由多级易失性存储器分级结构支持,该分级结构在其最低级别具有共享的系统存储器108a-108d,并且在其较高级别具有一或多级高速缓冲存储器。在所述实施例中,每个处理单元104包括集成的存储器控制器(IMC)206,其响应于从处理器核心200a-200b接收的请求和在本地互连114上探听的操作,控制对其处理节点102内的系统存储器108a-108d中的相应一个的读和写访问。
在说明性实施例中,处理单元104的高速缓冲存储器分级结构包括每个处理器核心200内的贯穿存储(store-through)一级(L1)高速缓存226、以及由处理单元104中的所有处理器核心200a、200b共享的二级(L2)高速缓存230。L2高速缓存230包括L2阵列和目录234、主设备(master)232以及探听器236。响应于从相关联的处理器核心200a-200b接收的存储器访问(以及其它)请求,主设备232启动在本地互连114和系统互连110上的事务,并且访问L2阵列和目录234。探听器236探听本地互连114上的操作,提供适当的响应,并且执行该操作所需的、对L2阵列和目录234的任何访问。
虽然所示高速缓存分级结构仅仅包括两级高速缓存,但是本领域的技术人员应当理解,可选实施例可以包括附加级别(L3、L4等)的芯片内或芯片外、内联或后备高速缓存,其可以全部包括、部分包括、或不包括较高级高速缓存的内容。
每个处理单元104还包括响应逻辑210的实例,如下面进一步讨论的那样,其实现了在数据处理系统100内维持高速缓存相干性的分布式相干性信令机制的一部分。另外,每个处理单元104包括转发逻辑212的实例,用于选择性地转发其本地互连114和系统互连110之间的通信。最后,每个处理单元104包括集成I/O(输入/输出)控制器214,其支持诸如I/O设备216之类的一个或多个I/O装置的附连。如下进一步所述,响应于I/O设备216的请求,I/O控制器214可以在本地互连114和/或系统互连110上发布操作。
现在参考图3,其中示出了L2阵列和目录234的示范实施例的更详细框图。如所示,L2阵列和目录234包括设置关联的L2高速缓存阵列300、以及L2高速缓存阵列300的内容的L2高速缓存目录302。如同在传统的设置关联高速缓存中一样,利用系统存储器(真实)地址之内的预定索引位,将系统存储器108中的存储器位置映射到高速缓存阵列300之内的特定同余类别(congruence class)。将存储在高速缓存阵列300内的特定高速缓存线记录在高速缓存目录302中,其中对于高速缓存阵列300中的每个高速缓存线,高速缓存目录302包含一个目录条目。如本领域的技术人员所理解的那样,高速缓存目录302中的每个目录条目至少包括标记字段304,其利用对应的真实地址的标记部分来指定存储在高速缓存阵列300中的特定高速缓存线;状态字段306,其指示高速缓存线的相干性状态;以及LRU(最近最少使用)字段308,其指示相对于相同同余类别中的其它高速缓存线,该高速缓存线的替换次序。
现在参考图4,其中描述了图1中的集成存储器控制器(IMC)206的更详细框图。如所示,IMC 206包括分派逻辑400、用于为读请求服务的读单元402、以及用于为写请求服务的写单元404。分派逻辑400接收在本地互连114上探听的请求,并且基于事务类型(Ttype)将请求分派到读单元402和写单元404。也就是,分派逻辑400将读类型请求分派到读单元402,并且将写请求分派到写单元404。
如图4进一步所示,读单元402包括主队列410,其包含多个主队列条目412a-412m。每个主队列条目412分别具有Ttype字段414,用于存储读类型请求的Ttype;地址字段416,用于至少存储相关联读目标地址的高位;以及地址比较器418,用于检测与地址字段416中的读目标地址相冲突的写操作。
读单元420还包括从队列420,其包含多个从队列条目422a-422n,每个条目具有标记字段424,用于存储标识读请求的主设备(master)的主设备标记;以及数据字段426,用于缓冲由读请求所请求的读数据。由于从队列条目422a-422n缺少地址字段416和地址比较器418的事实,所以从队列条目422在物理上小于主队列条目412,因此可以在集成电路的给定区域之内以更大的数目实例化。
现在参考图5A-5B,其中描述了在图1的数据处理系统100的互连构造上的示范操作的时空图,其分别示出了由LPC探听器以及操作的获取主设备对目标存储块的保护。如所示,当获胜主设备(WM)500(例如,L2高速缓存230的主设备232)在互连构造上发布请求502(例如,读请求)时,操作开始。请求502优选为至少包括事务类型(Ttype),表示期望访问的类型;以及资源标识符(例如,实际地址),指示该请求所要访问的资源。一般的请求类型优选为包括下面在表1中阐述的那些类型。
表1

通过引用在此并入的共同未决美国专利申请第11/055,305号中可以找到关于这些操作以及便于这些操作的高效处理的示范高速缓存相干性协议的更多详情。
由遍及数据处理系统100分布的探听器504,例如L2高速缓存230和IMC 206中的探听器236接收请求502。通常,除一些例外之外,在与请求502的主设备232相同的L2高速缓存110中的探听器236不探听请求502(即,一般不存在自我探听),这是因为只有当请求502不能由处理单元104内部服务时,才在互连构造上传送该请求502。接收和处理请求502的探听器504a-504n每个都提供至少表示该探听器504对请求502的响应的、各自的部分响应506。例如,基于如基地址寄存器逻辑240所指示的那样、IMC 206是否负责该请求地址、以及基于它是否具有可用于为请求服务的资源,IMC206确定要提供的部分响应506。例如,L2高速缓存230中的探听器236可以基于其L2高速缓存目录302的可用性、处理请求的探听器236内的探听逻辑实例的可用性、以及与L2高速缓存目录302中的请求地址相关联的相干性状态,确定其部分响应506。
由响应逻辑210的一个或多个实例分阶段或同时逻辑组合探听器504a-504n的部分响应506,以确定对请求502的组合响应(CR)510。在下文将假定的一个优选实施例中,负责生成组合响应510的响应逻辑210的实例位于包含发布了请求502的获胜主设备500的处理单元104中。响应逻辑210经由互连构造将组合响应510提供给获胜主设备500和探听器504,以指示对请求502的响应(例如,成功、失败、重试等)。如果CR 510指示请求502成功,则例如,CR 510可以指示所请求存储块的数据源、所请求的存储块要被获胜主设备500缓存的缓存状态、以及是否需要使所请求的存储块在一个或多个L2高速缓存230中无效的“清除”操作。
响应于组合响应510的接收,获胜主设备500和探听器504中的一个或多个通常执行一个或多个操作,以便为请求502服务。这些操作可以包括将数据提供给获胜主设备500,无效或相反更新在一个或多个L2高速缓存230中缓存的数据的相干性状态,执行抛出操作,将数据写回到系统存储器108,等等。如果请求502要求,则在由响应逻辑210生成组合响应510前后,往还于获胜主设备500传送所请求的或目标存储块。
可以参考探听器相对于由请求指定的地址是相干性最高点(HPC)、相干性最低点(LPC)、还是两者都不是,来描述响应于请求502的探听器504的行为。这里将LPC定义为用作存储块仓库(repository)的存储器设备或I/O设备。在没有用于存储块的HPC的情况下,LPC保存存储块的真实映像,并且具有同意或拒绝生成存储块的附加缓存副本的请求的权力。对于图1和2的数据处理系统实施例中的典型请求,LPC将是用于保持所引用的存储块的系统存储器108的存储器控制器206。这里将HPC定义为唯一标识的设备,其缓存存储块的真实映像(其可以或可以不与LPC处的对应存储块相一致),并且具有同意或拒绝修改存储块的请求的权力。说明性地,HPC还可以响应于不修改存储块的操作而将存储块副本提供给请求者。因此,对于图1和2的数据处理系统实施例中的典型请求(若有的话),HPC将会是L2高速缓存230。虽然可以利用其它指示符来指定存储块的HPC,但是本发明的优选实施例利用在L2高速缓存230的L2高速缓存目录302内的选定高速缓存相干性状态(多个),来指定存储块的HPC。
仍然参考图5A,在请求502中所引用的存储块的HPC(若有的话)或存储块的LPC(在没有HPC的情况下)优选地具有响应于请求502而在必要时保护存储块的责任。在图5A所示的示例场景中,在从探听器504n确定其部分响应506的时间开始延伸直至探听器504n接收组合响应510为止的保护窗口512a期间,以及在超出探听器504n对组合响应510的接收长达拓扑结构相关的时间的后继窗口扩展512b期间,由请求502的请求地址指定的存储块的LPC探听器504n(例如,存储器控制器206)为获胜主设备500保护所请求的存储块。在保护窗口512a和窗口扩展512b期间,LPC探听器504n通过向指定相同请求地址的另一竞争请求522(当在获胜主设备500处接收时,将单个竞争请求522标注为522a,并且当在LPC探听器504n处接收时,将其标注为522b)提供重试部分响应506,来保护请求502的目标存储块。应当注意,在获胜主设备500处生成组合响应510之前的时段内,获胜主设备500不能响应于竞争请求522a而保护所请求的存储块,这是因为尚未向获胜主设备500通知其已经被选择为相对于竞争所请求存储块所有权的其它竞争主设备(一个或多个)的“获胜者”。因此,LPC探听器504n通过向任何冲突请求522b提供重试部分响应来保护所请求存储块,直至窗口扩展512b。在窗口扩展512b的结束处,根据本发明,将保护责任转移到主设备500。
应当理解,在传统的数据处理系统中,负责为读操作服务的系统存储器控制器必须从该系统存储器控制器被分配了为该读操作服务的责任的时间开始直至将所读数据递送给请求者为止,保护为读操作目标的数据以防其被后续的写操作修改。如上所述,通过包括地址寄存器和地址比较器的、系统存储器控制器处的物理上大的读队列条目,来强制实行这样的保护。然而,本发明理解,获胜主设备500还将包括地址和地址比较器的队列条目分配给读操作,并且响应于读操作的完成(即,响应于所请求存储块的接收),释放获胜主设备的队列条目。因此,有可能在获胜主设备500接收所请求的存储块之前,将保护读操作的目标存储块的责任从系统存储器控制器转移到获胜主设备500(并且释放分配给该读请求的主读取队列条目412)。根据本发明的实施例,一旦由获胜主设备500接收到组合响应,就进行保护责任的这一转移。
图5B相应地描述了获胜主设备500启动保护窗口514,以在接收组合响应510之后直至数据阶段结束为止,保护在请求502中所请求的存储块以防冲突的存储器访问请求522a。对于读类型的请求,一旦获胜主设备500接收到所请求的数据,保护窗口514就结束。如所示,获胜主设备500通过向指定相同请求地址的冲突请求522a提供重试部分响应506来保护目标存储块。应当注意,LPC探听器504n在窗口扩展512b的结束之后接收冲突请求522b,因此不能通过提供重试部分响应来保护所请求的存储块。
保护窗口512a和窗口扩展512b一起必须具有足够的持续时间,以在存在竞争主设备(CM)520的竞争请求522的情况下,保护从探听器504n到获胜主设备(WM)500的所请求存储块的相干性所有权和/或保护责任的转移。为了确保保护窗口512a和窗口扩展512b具有足够的持续时间,以保护从探听器504n到获胜主设备500的所请求存储块的相干性所有权和/或保护责任的转移,优选为这样限制处理单元104之间的通信延迟,以使得满足下面条件A_lat(CM_S)≤A_lat(CM_WM)+C_lat(WM_S)+ε,其中A_lat(CM_S)是任何竞争主设备(CM)520到拥有所请求存储块的相干性的探听器(S)504n的地址延迟,A_lat(CM_WM)是任何竞争主设备(CM)520到由探听器504n授予相干性所有权的“获胜”主设备(WM)500的地址延迟,C_lat(WM_S)是从由获胜主设备(WM)500处的响应逻辑210形成组合响应的时间到由拥有所请求存储块的探听器(S)504n接收到该组合响应的时间的组合响应延迟,以及厄普西隆(ε)是窗口扩展512b的持续时间。
如果不满足可应用于任意拓扑结构的系统的前述定时约束,则可以(1)在获胜主设备500取得相干性所有权和/或启动保护窗口514之前由获胜主设备500,以及(2)在保护窗口512a和窗口扩展512b结束之后由探听器504n,接收竞争主设备520的请求522。在这样的情况下,获胜主设备500和探听器504n都将不提供对竞争请求522的部分响应,这防止竞争主设备520取得存储块的相干性所有权并且错误地读或写系统存储器中的数据。然而,为了避免该相干性错误,可以可编程地将窗口扩展512b设置(例如,通过配置寄存器的适当设置)为任意长度(ε)以补偿延迟变化或物理实现的缺陷,否则该物理实现可能不能满足维持相干性必须满足的定时约束。这样,通过求解上面方程以得到ε,可以确定用于任何实现的窗口扩展512b的理想长度。
参考图6,其中示出了根据本发明、存储器控制器206的读单元402为读类型请求服务的示范方法的高级逻辑流程图。该处理从块600开始,然后前进到块602,其说明了读单元402在块602处循环,直至经由本地互连114和分派单元400从L2主设备232接收到读类型请求为止。响应于读类型请求的接收,读单元402在块604处确定主读取队列条目412是否可用于分配。如果否,则读单元402在块606处向该读类型请求提供重试部分响应(PR),然后处理返回到块602。
响应于在块604处确定主读取队列条目412可用,读单元402将主读取队列条目412分配给读类型请求(开始图5A-5B的占有期530),并且将在该读类型请求中指定的Ttype和目标地址分别放置在所分配主读取队列条目412的字段414和416内。然后,所分配的主读队列条目412开始利用地址比较器418保护读目标地址,以防任何冲突的写类型操作。
处理从块610前进到块612,其描述了读单元402为该读类型请求提供适当的部分响应,并且在本地互连114上传送该部分响应。接下来,响应于读单元402对读类型请求的组合响应的接收,处理前进到块614。如果组合响应指示读单元402负责提供由该读类型请求所请求的数据(即,组合响应是LPC成功组合响应),则处理进入到下述块620。然而,如果组合响应不是LPC成功组合响应,则读单元402释放分配给该读类型请求的主读队列条目412,并且处理返回到上述块602。
现在参考块620,接下来,读单元402将从读取队列条目422分配给该读类型请求(开始图5A-5B的占有期532),并且将标识发起了读类型操作的主设备232的数据标记放置在所分配的从读取队列条目422的标记字段424内。另外,读单元402利用在地址字段416内指定的读目标地址启动对系统存储器108的读访问。如图5A所示,在LPC成功组合响应的接收与长度为厄普西隆(ε)的窗口扩展512b的结束之间的间隔期间,主读取队列条目412保护由读目标地址标识的目标存储块,以防否则将修改该目标存储块的冲突写操作。因此,如块622所示,在保护窗口512a和窗口扩展512b期间,主读取队列条目206的地址比较器418将由IMC 206接收的每个写类型请求的目标地址与该读类型请求的读目标地址进行比较。如块624所述,如果地址比较器418确定该写类型请求的目标地址与地址字段416内的读目标地址相匹配(相冲突),则读单元402对该写类型请求提供重试部分响应。
如块626和图5A所示,继续对该读类型请求的目标存储块的保护直至时间厄普西隆已经流逝了且窗口扩展512b已经结束为止。此后,在块628处,读单元402释放分配给该读类型请求的主读取队列条目412,以结束图5A-5B的占有期530。同时,如块630所示,分配给该读类型请求的从读取队列条目422等待其数据字段426内的目标存储块的接收。如块632所示,响应于数据字段426内的目标存储块的接收,从读取队列条目422利用包含在标记字段424内的数据标记,将目标存储块传送到请求主设备232。此后,在块634处,读单元402释放分配给该读类型请求的从读取队列条目422,结束占有期532并且在块636处结束处理。
现在参考图7,其中描述了根据本发明,主设备232为相关处理器核心200的加载操作服务的示范处理的高级逻辑流程图。如所示,响应于由主设备232从由包含该主设备232的L2高速缓存230所支持的处理器核心200之一接收加载操作,处理从块700开始。响应于处理器加载操作的接收,主设备232在其L2高速缓存目录302内执行目标地址的查询,以确定所请求存储块是否已经保持在L2高速缓存阵列300内(块702)。如果加载操作的目标地址以数据有效相干性状态在L2高速缓存目录302中命中,则处理前进到块732,其描述了主设备232将所请求存储块提供给请求处理器核心200。此后,处理在块734结束。
返回到块704,响应于由主设备232确定该加载操作的目标地址在L2高速缓存目录302中未命中,则主设备232在本地互连114上发步读类型请求,该请求包括Ttype、目标地址、以及标识主设备232的数据标记(块706)。然后,主设备232等待该读类型请求的组合响应(CR)。如果组合响应是重试组合响应(块710),则如通过返回到块706的处理所示那样,主设备232重新发布请求。然而,如果组合响应是指示将由IMC 206通过引用系统存储器108来提供该读类型请求的目标存储块(块712)的LPC成功组合响应,则处理前进到下述块714。如果组合响应不是重试或LPC成功,而是指示将由目标存储块的HPC提供目标存储块(块712)的HPC成功组合响应,则处理前进到块730,其描述了主设备232等待接收所请求的存储块。响应于所请求存储块的接收,主设备232可选地将该存储块缓存在L2阵列和目录234之内,并且将所请求存储块提供给请求处理器核心200(块732)。此后,处理在块734结束。
现在参考块714,响应于LPC成功组合响应的接收,主设备232打开保护窗口514(图5B),并且开始保护所请求的存储块以防其被写类型操作修改。因此,如块716-718和图5B所示,如果包含主设备232的L2高速缓存230探听到以该读操作的目标存储器地址作为目标的写类型操作,则该主设备232通过导致提供重试部分响应而保护目标存储块以防修改。如块720-722所示,主设备232如块716-718所示继续保护目标存储块,直至从LPC(即,存储器控制器206)接收到目标存储块为止,此后关闭保护窗口514。响应于所请求存储块的接收,主设备232可选地将该存储块缓存在L2阵列和目录234之内,并且将所请求存储块提供给请求处理器核心200(块732)。此后,处理在块734结束。
如上所述,本发明提供了一种改进的数据处理系统、以及在数据处理系统中执行读操作的方法。根据本发明,当读类型(例如,READ)操作由LPC(例如,存储器控制器)服务时,由LPC和随后的请求主设备保护所请求存储块以防修改。通过将保护所请求存储块的责任从LPC转移到请求主设备,LPC能够在将所请求存储块递送到请求主设备之前,释放负责保护所请求存储块的主读取队列条目。因此,主读取队列条目可用于分配给另一个读类型请求,从而改进了读类型请求可以由LPC服务的速率。
虽然已经如参考优选实施例所述具体示出了本发明,但是本领域的技术人员应当理解,可以对其进行形式和细节上的各种修改而不背离本发明的精神和范围。
权利要求
1.一种数据处理系统中的数据处理方法,所述数据处理系统包括请求者和用于系统存储器的存储器控制器,所述方法包括响应于从请求者接收以系统存储器中的存储块作为目标的读类型请求,存储器控制器保护所述存储块以防修改;响应于所述存储器控制器负责为所述读类型请求服务的指示,所述存储器控制器将所述存储块传送到所述请求者;在由所述请求者接收所述存储块之前,所述存储器控制器结束防止修改所述存储块的保护,并且所述请求者开始保护所述存储块以防修改;以及响应于所述存储块的接收,所述请求者结束其防止修改所述存储块的保护。
2.如权利要求1所述的方法,其中保护所述存储块以防修改包括对以所述存储块作为目标的写类型请求提供响应。
3.如权利要求1所述的方法,其中所述存储器控制器负责为所述读类型请求服务的所述指示包括对所述读类型请求的数据处理系统的组合响应。
4.如权利要求3所述的方法,其中所述请求者开始对所述存储块的保护包括所述请求者响应于所述组合响应的接收而开始对所述存储块的保护。
5.如权利要求3所述的方法,其中所述存储器控制器结束对所述存储块的保护包括,在紧接着由所述存储器控制器对所述组合响应的接收之后过去了一时间间隔之后,所述存储器控制器结束对所述存储块的保护。
6.如权利要求1所述的方法,其中存储器控制器保护所述存储块以防修改包括,在接收所述存储器控制器负责为所述读类型请求服务的所述指示之前,存储器控制器开始对所述存储块的保护。
7.如权利要求1所述的方法,其中所述存储器控制器包括分配给所述读类型请求的主读取队列条目,以及所述存储器控制器结束对所述存储块的保护包括释放分配给所述读类型请求的所述主取读队列条目。
8.一种数据处理系统,包括包括请求者在内的多个请求者;系统存储器;存储器控制器,耦接到所述系统存储器,其中所述存储器控制器响应于从请求者接收以所述系统存储器中的存储块作为目标的读类型请求、保护所述存储块以防修改,并且响应于所述存储器控制器负责为所述读类型请求服务的指示、将所述存储块传送到所述请求者;其中在所述请求者接收所述存储块之前,所述存储器控制器结束防止修改所述存储块的保护,并且所述请求者开始保护所述存储块以防修改;以及其中响应于所述存储块的接收,所述请求者结束其防止所述多个请求者中的另一个修改所述存储块的保护。
9.如权利要求8所述的数据处理系统,其中所述存储器控制器和所述请求者之一通过对以所述存储块作为目标的任何写类型请求提供响应,来保护所述存储块以防修改。
10.如权利要求8所述的数据处理系统,其中所述存储器控制器负责为所述读类型请求服务的所述指示包括对所述读类型请求的数据处理系统的组合响应。
11.如权利要求10所述的数据处理系统,其中响应于所述组合响应的接收,所述请求者开始对所述存储块的保护。
12.如权利要求10所述的数据处理系统,其中在紧接着所述存储器控制器对所述组合响应的接收之后过去了一时间间隔之后,所述存储器控制器结束对所述存储块的保护。
13.如权利要求8所述的数据处理系统,其中在接收所述存储器控制器负责为所述读类型请求服务的所述指示之前,所述存储器控制器开始对所述存储块的保护。
14.如权利要求8所述的数据处理系统,其中所述存储器控制器包括分配给所述读类型请求的主读取队列条目,以及一旦释放分配给所述读类型请求的所述主读取队列条目,所述存储器控制器就结束对所述存储块的保护。
15.一种处理单元,包括至少一个处理器核心;以及高速缓存,耦接到所述至少一个处理器核心,其中所述高速缓存响应于其读类型请求将由系统存储器的存储器控制器服务的指示的接收,开始保护为所述读类型请求的目标的存储块以防修改,而且其中响应于所述存储块的接收,所述高速缓存结束其防止修改所述存储块的保护。
16.如权利要求15所述的处理单元,其中所述存储器控制器负责为所述读类型请求服务的所述指示包括包含所述处理单元的数据处理系统对所述读类型请求的组合响应。
17.如权利要求16所述的处理单元,其中响应于所述组合响应的接收,所述请求者开始对所述存储块的保护。
18.如权利要求15所述的处理单元,还包括所述存储器控制器,其中所述存储器控制器,响应于以所述系统存储器中的存储块作为目标的读类型请求的接收,保护所述存储块以防修改,并且响应于所述存储器控制器负责为所述读类型请求服务的指示,将所述存储块传送到请求者;以及在由所述请求者接收所述存储块之前,所述存储器控制器结束防止修改所述存储块的保护。
19.如权利要求18所述的处理单元,其中在接收所述存储器控制器负责为所述读类型请求服务的所述指示之前,所述存储器控制器开始对所述存储块的保护;以及在紧接着所述存储器控制器对所述指示的接收之后过去了一时间间隔之后,所述存储器控制器结束对所述存储块的保护。
20.如权利要求18所述的处理单元,其中所述存储器控制器包括分配给所述读类型请求的主读取队列条目,以及一旦释放了分配给所述读类型请求的所述主读取队列条目,所述存储器控制器就结束对所述存储块的保护。
全文摘要
一种数据处理系统包括多个请求者、以及用于系统存储器的存储器控制器。响应于从请求者接收到以系统存储器中的存储块为目标的读类型请求,存储器控制器保护存储块以防修改,并且响应于存储器控制器负责为读类型请求服务的指示,存储器控制器将存储块传送到请求者。在由请求者接收存储块之前,存储器控制器结束防止修改存储块的保护,并且请求者开始保护存储块以防修改。响应于存储块的接收,请求者结束其防止修改存储块的保护。
文档编号G06F12/08GK1949192SQ20061010588
公开日2007年4月18日 申请日期2006年7月13日 优先权日2005年10月13日
发明者小约翰·T·霍拉韦, 小詹姆斯·S·菲尔兹, 德里克·E·威廉斯, 盖伊·L·格思里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1