支持高速缓存一致的片上网络系统及数据请求方法

文档序号:7760896阅读:198来源:国知局
专利名称:支持高速缓存一致的片上网络系统及数据请求方法
技术领域
本发明涉及计算机系统结构技术领域,特别涉及一种支持高速缓存一致的片上网 络系统及数据请求方法。
背景技术
进入单芯片十亿晶体管的时代后,体系结构研究的重点已从如何利用有限资源实 现所需功能逐步转向如何充分利用不断增长的晶体管资源设计满足高性能、低功耗等要求 的处理器。多核处理器(Multicore processors)为有效利用这些晶体管资源提供了一种 高效、可扩展的方案,受到了学术界和工业界的热捧。一颗芯片上将集成多个(Multic0re) 或众多个(Manyc0re)处理器核,即大规模多核处理器。大规模多核处理器面临的主要挑战 是设计复杂性、扩展性和存储访问延迟等。随着多核处理器规模的增大,需要片上存储系统为其提供大量的数据。出于降低 存储访问延迟以及降低编程复杂性的考虑,多核处理器通常采用共享Cache的片上存储系 统。由于处理器核中通常包含私有Cache,在多核处理器中,必须使用Cache —致性协议来 维护私有Cache中数据的一致性和完整性。随着多核处理器规模的扩大,总线结构以及基 于总线的侦听一致性协议已无法满足扩展性的要求。为了解决这个问题,片上网络和目录 的一致性协议被用来替代总线和侦听协议。目录一致性协议是多核处理器的一种基本的通讯机制,保证了多核处理器中数据 的一致性和完整性,其实现与多个部件有关1、处理器核在处理器核中维护私有Cache的一致性状态;2、共享Cache 在共享Cache中保存和维护目录信息;3、片上网络片上网络为一致性操作提供传输服务。由于目录一致性协议与处理器、共享Cache和片上网络都紧密相关,增加了多核 处理器设计的难度。异构多核处理器由于性能和功耗的优势,在工业界得到了广泛应用,如IBM公司 的Cell处理器,AMD公司的Bulldozer处理器等。但是异构多核处理器中不同处理器核之 间存在一致性协议的不兼容问题,有的支持一致性协议,有的不支持一致性协议。如IBM公 司的 PowerPC 755 处理器支持MEI (modified,exclusive,and invalid)协议,INTEL 公司的 IA-32 系列处理器支持 MESI (modified, exclusive, shared, and invalid)协议,SUN 公司的 Ultrasparc 处理器支持MOESI (exclusive modified, shared modified, exclusive clean, shared clean, andinvalid)协议,AMD 64 系列支持 MOESI (modified, owned, exclusive, shared,and invalid)协议,但与Ultrasparc处理器所支持的MOESI协议有很大差异。TI 公司的DSP提供了维护处理器与二级缓存之间一致性的简单功能。一些嵌入式处理器如 MIPS 4K系列,ARM 7系列等处理器虽然包含私有Cache,但不支持一致性协议。大部分专 用处理器和硬件加速部件也不支持一致性协议。不兼容的一致性协议使异构多核处理器设 计异常困难。
由于一致性协议与处理器、共享Cache以及片上网络都紧密相关,特别是异构多 核处理器中不兼容的一致性协议,使得在设计新的多核处理器时,各个部件都需要为维护 一致性而重新设计,降低了部件的可重用性,增加了设计的难度。随着多核处理器规模的扩大,目录一致性协议存在严重的扩展性问题。在基于目 录的一致性协议中,目录的存储会占用一部分片上资源。以全目录一致性协议为例,当数据 块的大小为64B时,16核多核处理器中目录的存储开销占二级缓存存储开销的3%;增加到 64核时,目录存储开销的比例增加到12. 5%;增加到512核时,目录存储开销的比例增加到 50%。目录一致性协议中的目录存储开销不仅增加芯片面积和成本,还增加了系统的功耗, 严重影响了多核处理器的扩展性。在目录一致性协议中,目录通常保存在最后一级Cache (如两级Cache结构中的二 级缓存)中,二级缓存中的每一个数据块都维护一个目录向量,用以跟踪缓存该数据块的 处理器。处理器的所有缺失请求都需要到宿主节点的二级缓存中查找目录信息,并执行相 应的一致性操作。随着处理器规模的扩大,对目录的访问延迟也随之增大,严重影响多核处 理器的性能。目录一致性协议也是大规模多核处理器的性能瓶颈。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是多核处理器中一致性协议所带来的设计复杂、目录难 以扩展以及访问延迟较大的问题(二)技术方案为解决上述技术问题,本发明提供了一种支持高速缓存一致的片上网络系统,包 括网络接口部件,所述网络接口部件连接路由器,并连接多核处理器和二级缓存,在所述 网络接口部件中增设有与多核处理器相连的一致性状态缓存,所述一致性状态缓存用于保 存并维护多核处理器的每个核的一级缓存中数据块的一致性状态。其中,所述一致性状态缓存包括一致性状态存储器,具有与所述一级缓存相同的存储行,用于保存所述一级缓存 中数据块的一致性状态;处理器接口,连接所述多核处理器,用于从不同类型处理器核的总线请求中分离 出一致性状态缓存所需要的请求信号,并把一致性状态缓存对多核处理器的回应或请求信 号转换成多核处理器可以识别的信号;一致性协议控制器,用于当多核处理器的一级缓存访问缺失请求或回应消息经过 网络接口部件时,通过所述处理器接口获取该访问缺失请求或回应消息,从中分离出地址 标签,并维护相应的一致性状态。其中,所述网络接口部件中还增设有与二级缓存相连的活跃目录缓存,用于缓存 和维护二级缓存中经常被所述一级缓存访问的数据块的目录信息。其中,所述活跃目录缓存包括目录存储器,用于缓存二级缓存中经常被所述一级缓存访问的数据块的目录信 息包括所述数据块的地址标签、目录状态和目录向量;二级缓存接口,连接二级缓存,用于将多核处理器的访问缺失请求发送给所述二级缓存,或将二级缓存的回应信号返回给活跃目录缓存;目录控制器,用于通过二级缓存接口获取多核处理器对二级缓存的访问请求,并 查找目录存储器中的目录信息,然后根据请求的类型决定是否向本地二级缓存发送该访问 请求。本发明还提供了一种利用上述的系统的数据请求方法,包括以下步骤Sl 请求节点的一致性协议控制器捕获所述请求节点处理器的一级缓存访问缺失 请求,S2:所述请求节点的一致性协议控制器在一致性状态存储器中查找所述缺失请求 的地址标签,并根据相应的一致性状态向宿主节点的二级缓存发出数据请求;S3:所述宿主节点路由器的网络接口部件中活跃目录缓存的目录控制器捕获所述 数据请求,并在该目录存储器中查找所述数据请求对应的目录信息,然后根据请求类型决 定是否向该宿主节点的二级缓存发送所述数据请求;S4:所述宿主节点的二级缓存根据所述数据请求向请求节点处理器返回消息,在 经过请求节点的路由器时,该路由器的一致性协议控制器捕获该消息,并根据消息类型改 变或保持一致性状态缓存中所述地址标签的地址中存储数据的一致性状态,并把消息中包 含的请求数据返回给请求节点处理器。其中,所述步骤S2具体包括当所述缺失请求为读请求操作在请求节点的一致性状态缓存的一致性状态存储器中为该请求地址 分配一个缓存行,并把一致性状态设为临时状态IS,同时向宿主节点的二级缓存转发该请 求,所述临时状态IS表示读请求还没有完成,等待该二级缓存的数据回应;写请求操作如果请求节点的一致性状态缓存不命中,则为该地址分配一个缓存 行,并把一致性状态设为临时状态IM,并向宿主节点的二级缓存转发该写请求,所述临时状 态IM表示写请求还没有完成,等待该二级缓存的写回应;如果请求节点的一致性状态缓存 命中且处于共享状态,则把一致性状态设为IM状态,并向宿主节点的二级缓存发送写更新 请求;如果请求节点的一致性状态缓存命中且处于修改状态,则直接向请求节点处理器返 回写回应信号,一致性状态缓存中的状态不改变;更新请求操作将请求节点的一致性状态缓存中的一致性状态设为IM状态,然后 向宿主节点发送更新请求;替换和写回请求操作请求节点的一致性状态缓存直接把该请求转发给宿主节点 的二级缓存;替换操作当请求节点的一致性状态缓存由于容量冲突发生替换操作时,则向请 求节点处理器发出无效信号,请求节点处理器的私有一级缓存则会根据其状态向宿主节点 发出无效回应或写回消息,请求节点的一致性状态缓存接收到请求节点处理器的无效回应 或写回消息后,向宿主节点的二级缓存发出替换或写回请求,等到收到宿主节点的替换回 应或写回回应消息后,把该缓存行从请求节点的一致性状态缓存中删除。其中,所述步骤S3具体包括当所述缺失请求为读请求操作如果宿主节点的活跃目录缓存命中,在活跃目录信息的目录向量中 加入请求节点的位置,如果目录状态处于共享状态,则向该宿主节点的二级缓存发出读数 据请求,得到二级缓存的数据回应后,把该数据转发给请求节点的处理器;如果目录状态处于修改状态,则向拥有该数据的共享节点发出降级写回请求,目录控制器接收到写回的数 据时,把写回的数据转发给请求节点的处理器,并把该数据写回该宿主节点的二级缓存,目 录状态变为共享状态;如果宿主节点的活跃目录缓存缺失,则在活跃目录缓存中添加目录 项,然后向该宿主节点的二级缓存发出读请求,得到缓存的数据回应后,把请求的数据转发 给请求节点的处理器,目录状态变为共享状态;写请求操作如果宿主节点的活跃目录缓存命中且处于共享状态,则向所有共享 节点的处理器发出无效信号,并向该宿主节点的二级缓存发出读请求,目录控制器收集到 所有的无效回应消息后,将相应的共享节点的位置从目录向量中删除,把从二级缓存返回 的数据回应转发给请求节点的处理器,把宿主节点的活跃目录缓存的目录状态改变为修改 状态,在目录向量中加入请求节点的位置;如果宿主节点的活跃目录缓存处于修改状态,则 向共享节点的处理器发出无效并写回请求,目录控制器收到写回的数据时,相应的节点位 置从目录向量中删除,把数据转发给请求节点,在目录向量中加入请求节点的位置;如果宿 主节点的活跃目录缓存不命中,则在活跃目录缓存中添加目录项,向该宿主节点的二级缓 存发出读请求,得到二级缓存的数据回应后,把请求的数据转发给请求节点,目录状态变为 修改状态,在目录向量中加入请求节点的位置;替换请求操作将待替换的请求节点位置从宿主节点的目录向量中删除,并向该 请求节点返回替换回应信号,如果是唯一的共享节点,则把该目录向量从宿主节点的活跃 目录缓存中删除;写回请求操作将节点位置从宿主节点的目录向量中删除,把数据写回到该宿主 节点的二级缓存,并向请求节点返回写回回应信号,把该目录向量从宿主节点的活跃目录 缓存中删除;替换操作宿主节点的活跃目录缓存由于容量冲突而发生替换时,向所有共享节 点发出无效请求,如果该目录存储器的目录状态处于共享状态,则目录控制器收集到所有 的无效回应后,把该目录向量从活跃目录缓存中删除;如果该目录存储器目录状态处于修 改状态,则目录控制器收到写回的数据后,把该数据写回到该宿主节点的二级缓存中,然后 删除该数据对应的目录向量;接收到宿主节点的二级缓存的无效请求时,如果该节点的活跃目录缓存不命中, 则直接向二级缓存返回无效回应信号,如果活跃目录缓存命中,则进行活跃目录缓存的替 换操作,替换操作完成后,向二级缓存返回无效回应信号或写回信号,把目录向量从活跃目 录缓存中删除。其中,所述步骤S4具体包括当所述缺失请求对应的回应操作为读回应操作将请求节点的一致性状态缓存的IS状态改变为共享状态,并向请求 节点处理器返回数据;写回应和更新回应操作将请求节点的一致性状态缓存的IM状态改变为修改状 态,并向请求节点处理器返回写回应或更新回应;替换回应和写回回应操作删除请求节点的一致性状态缓存中该地址所在的缓存 行,并把回应信号转发给请求节点处理器;无效请求操作请求节点的一致性状态缓存接收到来自宿主节点二级缓存的无效 请求时,直接转发给请求节点处理器;
8
无效回应操作请求节点的一致性状态缓存接收到来自请求节点处理器的无效回 应信号时,删除对应的缓存行,并把无效回应信号转发宿主节点。(三)有益效果本发明提出的支持高速缓存一致的片上网络系统通过在片上网络的网络接口部 件中集成一致性状态缓存和活跃目录缓存,把一致性维护工作从处理器中分离出来,把目 录维护工作从二级缓存中分离出来,并且取消了二级缓存中的目录结构,简化了多核处理 器的设计和验证过程,降低了芯片的存储及延时开销,提高了多核处理器的性能。


图1是本发明实施例的支持高速缓存一致的片上网络系统结构示意图;图2是本发明实施例的支持高速缓存一致的片上网络系统中一致性状态缓存结 构示意图;图3是本发明实施例的支持高速缓存一致的片上网络系统中活跃目录缓存的结 构示意图;图4是本发明实施例的利用上述的系统的数据请求方法流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。在多核处理器中,缓存一致性协议的操作是通过片上网络传输的。多核处理器的 私有缓存(一级缓存)缺失请求通过网络接口部件发送到片上网络中,回应信息也通过片 上网络传输给请求节点的路由器,再通过网络接口部件返回给多核处理器。对共享二级缓 存中目录以及数据的访问也是通过网络接口部件传输的。共享二级缓存对多核处理器的回 应消息以及对私有缓存的无效消息通过网络接口部件注入到片上网络,传输给相应的多核 处理器。网络接口部件可以获取系统中的所有一致性协议操作,并做出进一步的处理。为了把一致性状态维护工作从处理器中分离出来,本发明在网络接口部件中增加 了一个一致性状态缓存,如图1所示,所述一致性状态缓存用于保存并维护本地私有一级 缓存中数据块的一致性状态,而多核处理器的一级缓存按自己的方式工作,不必关心一致 性维护工作。通过一致性状态缓存,实现了一致性协议与处理器的分离,兼容具有不同一致 性协议的多核处理器。如图2所示,上述一致性状态缓存包括一致性状态存储器,具有与所述一级缓存相同的存储行,存储行中的存储有一级 缓存的地址标签和一致性状态,用于保存所述一级缓存中数据块的一致性状态。处理器接口,连接所述多核处理器,用于从不同类型处理器核的总线请求中分离 出一致性状态缓存所需要的请求信号,并把一致性状态缓存对多核处理器的回应或请求信 号转换成多核处理器可以识别的信号。一致性协议控制器,用于当多核处理器的一级缓存访问缺失请求或回应消息经过 网络接口部件时,通过所述处理器接口获取该访问请求或回应消息,从中分离出地址标签, 并维护相应的一致性状态。
为了把目录存储和维护工作从二级缓存中分离出来,网络接口部件中还增设有与 二级缓存相连的活跃目录缓存,如图1所示,活跃目录缓存用于缓存和维护二级缓存中经 常被一级缓存访问的数据块的目录信息。同时取消二级缓存中的目录存储空间和目录维护 工作。活跃目录缓存降低了目录存储开销,实现了一致性协议与二级缓存的分离。活跃目 录缓存也降低了目录访问延迟,使系统的性能有所提高。如图3所示,上述活跃目录缓存包括目录存储器,用于缓存二级缓存中经常被所述一级缓存访问的数据块的目录信 息,每个存储行由所述数据块的地址标签、目录状态和目录向量等组成。目录向量的目的是 跟踪缓存该地址的一级缓存的位置。目录向量中为每一个包含私有一级缓存的处理器核保 留一个共享位。二级缓存接口,连接二级缓存,多核处理器的缺失请求在访问活跃目录缓存后,用 于将多核处理器的访问缺失请求发送给所述二级缓存,或将二级缓存的回应信号返回给活 跃目录缓存。目录控制器,用于通过二级缓存接口获取多核处理器对二级缓存的访问请求,并 查找目录存储器中的目录信息,然后根据请求的类型决定是否向本地二级缓存发送该访问 请求。相对于传统的片上网络,在支持高速缓存一致的片上网络系统结构中增加了一致 性状态缓存和活跃目录缓存。它们都实现在片上网络的网络接口部件中。一致性状态缓 存是路由器与处理器的接口,活跃目录缓存是路由器与二级缓存的接口。一致性状态维护 和目录维护工作分别由一致性状态缓存和活跃目录缓存完成。网络接口部件的主要功能是 对发送的数据进行打包以及对接收的数据进行解包处理。一致性状态缓存和活跃目录缓存 与网络接口的打包和解包部件并行工作,掩藏了一致性状态缓存和活跃目录缓存的访问延 迟。这样的设计没有改变路由器的结构,对拓扑结构和路由算法都没有影响,增加了支持高 速缓存一致的片上网络结构的适应性和灵活性。本发明支持多核处理器和二级缓存通过支 持高速缓存一致的片上网络结构直接连接到片上网络中,实现多核处理器的无缝集成,一 致性协议对多核处理器和二级缓存是透明的。本发明还公开了一种利用上述的系统的数据请求方法,该方法可以使请求节点的 处理器向网络上的宿主节点的二级缓存请求数据,所述请求节点是指发出数据请求的处理 器所在的计算机节点,所述宿主节点是指保存该数据的二级缓存所在的网络上的计算机节 点。如图4所示,包括步骤S401,所述请求节点的一致性协议控制器捕获所述请求节点处理器的一级缓 存访问缺失请求。步骤S402,所述请求节点的一致性协议控制器在一致性状态存储器中查找所述缺 失请求的地址标签,并根据相应的一致性状态向宿主节点的二级缓存发出数据请求。步骤S403,所述宿主节点路由器的网络接口部件中活跃目录缓存的目录控制器捕 获所述数据请求,并在所述目录存储器中查找所述数据请求对应的目录信息,然后根据请 求类型决定是否向该宿主节点的二级缓存发送所述数据请求。步骤S404,所述宿主节点的二级缓存根据所述数据请求向所述请求节点处理器返 回消息,在经过请求节点的路由器时,该路由器的一致性协议控制器捕获该消息,并根据消息类型改变或保持一致性状态缓存中所述地址标签的地址中存储数据的一致性状态,并把 消息中包含的请求数据返回给请求节点处理器。本发明的片上网系统工作原理如下上述支持高速缓存一致的片上网络系统中,处理器的存储访问缺失请求经过网络 接口部件时,进入一致性状态缓存。一致性协议控制器首先在一致性状态缓存中查找一级 缓存请求地址的地址标签,并根据相应的一致性状态信息,向宿主节点的二级缓存发出请 求。如果一致性状态缓存中没有该地址标签,则添加该地址标签。二级缓存返回给该多核 处理器的回应消息被一致性协议控制器截获,一致性协议控制器根据回应消息的类型,改 变或维持一致性状态缓存中的一致性状态,同时,把请求的数据转发给多核处理器,完成一 次处理器缺失访问操作。二级缓存对多核处理器的数据块无效请求以及多核处理器的无效 回应消息也被一致性协议控制器截获,并对一致性状态进行相应的改变。具体的一致性协 议操作如下读请求操作在请求节点的一致性状态缓存的一致性状态存储器中为该请求地址 分配一个缓存行,并把一致性状态设为IS状态(IS是一种临时状态,表示读请求还没有完 成,等待该二级缓存的数据回应),并向宿主节点的二级缓存转发该请求。写请求操作如果请求节点的一致性状态缓存不命中,则为该地址分配一个缓存 行,并把一致性状态设为IM状态(IM也是一种临时状态,表示写请求还没有完成,等待该 二级缓存的写回应),并向宿主节点的二级缓存转发该写请求;如果请求节点的一致性状 态缓存命中且处于共享(S)状态,则把一致性状态设为IM状态,并向宿主节点发送写更新 (Update)请求;如果请求节点的一致性状态缓存命中且处于修改(M)状态,则直接向请求 节点处理器返回写回应信号,一致性状态缓存中的状态不改变。更新请求操作将请求节点的一致性状态缓存中的一致性状态设为IM状态,然后 向宿主节点发送更新请求。当接收到多核处理器的更新请求时,一致性状态缓存应处于共 享⑶状态。替换和写回请求操作请求节点的一致性状态缓存直接把该请求转发给宿主节点 的二级缓存。当接收到多核处理器的替换请求时,一致性状态缓存应处于共享(S)状态。当 接收到多核处理器的写回请求时,一致性状态缓存应处于修改(M)状态。读回应操作将请求节点的一致性状态缓存的IS状态改变为共享(S)状态,并向 请求节点处理器返回数据。写回应和更新回应操作将请求节点的一致性状态缓存的IM状态改变为修改(M) 状态,并向请求节点处理器返回写回应或更新回应。替换回应和写回回应操作删除请求节点的一致性状态缓存中该地址所在的缓存 行,并把回应信号转发给请求节点处理器。无效请求操作请求节点的一致性状态缓存接收到来自宿主节点二级缓存的无效 请求时,直接转发给请求节点处理器。无效回应操作请求节点的一致性状态缓存接收到来自多核处理器的无效回应信 号时,删除对应的缓存行,并把无效回应信号转发宿主节点。替换操作当请求节点的一致性状态缓存由于容量冲突发生替换操作时,则向请 求节点处理器发出无效信号,请求节点处理器的私有一级缓存则会根据其状态向宿主节点
11发出无效回应或写回消息。请求节点的一致性状态缓存接收到请求节点处理器的无效回应 或写回消息后,向宿主节点发出替换或写回请求。等到收到宿主节点的替换回应或写回回 应消息后,把该缓存行从请求节点的一致性状态缓存中删除。上述支持高速缓存一致的片上网络系统中,活跃目录缓存保存最近经常访问的数 据的目录信息。所有多核处理器的读写缺失请求都会引发对宿主节点二级缓存的访问,这 些访问被网络接口上的活跃目录缓存捕获。活跃目录缓存中的目录控制器首先查找活跃目 录缓存的目录存储器中目录信息,然后根据请求的类型决定是否向本地二级缓存发送读写 请求。其工作过程如下读请求操作如果宿主节点的活跃目录缓存命中,在目录向量中加入请求节点的 位置,如果目录状态处于共享(S)状态,则向该宿主节点的二级缓存发出读数据请求,得到 二级缓存的数据回应后,把该数据转发给请求节点的处理器,完成读操作。如果目录状态处 于修改(M)状态,则向拥有该数据的共享节点发出降级写回请求,目录控制器接收到写回 的数据时,把写回的数据转发给请求节点的处理器,并把该数据写回该宿主节点的二级缓 存,目录状态变为共享(S)状态。如果该宿主节点的活跃目录缓存缺失,则在活跃目录缓存 中添加目录项,然后向该宿主节点的二级缓存发出读请求,得到缓存的数据回应后,把请求 的数据转发给请求节点的处理器,目录状态变为共享(S)状态。写请求操作如果宿主节点的活跃目录缓存命中且处于共享(S)状态,则向所有 共享节点的处理器发出无效信号,并向该宿主节点的二级缓存发出读请求。写请求实际上 也是一个读操作,这是因为写指令是针对一个字的,而读写请求都是针对一个Cache行的, 在进行写请求时,需要把Cache行的数据全部读出,送到请求节点,与写入的内容合并为一 个新的Cache行。目录控制器收集到所有的无效回应消息后,相应的共享节点位置从目录 向量中删除,把从二级缓存返回的数据回应转发给请求节点的处理器,把宿主节点的活跃 目录缓存的目录的状态改变为修改(M)状态,在目录向量中加入请求节点的位置。如果宿 主节点的活跃目录缓存处于修改(M)状态,则向共享节点的处理器发出无效并写回请求, 因为这时共享节点的保存的副本是唯一正确的副本,需要写回。目录控制器收到写回的数 据时,相应的节点位置从目录向量中删除,把数据转发给请求节点,在目录向量中加入请求 节点的位置。如果宿主节点的活跃目录缓存不命中,则在活跃目录缓存中添加目录项,向该 宿主节点的二级缓存发出读请求,得到二级缓存的数据回应后,把请求的数据转发给请求 节点,目录状态变为修改(M)状态,在目录向量中加入请求节点的位置。替换请求操作将待替换的请求节点位置从目录向量中删除,并向请求节点返回 替换回应信号。如果是唯一的共享节点,则把该目录向量从宿主节点的活跃目录缓存中删 除。写回请求操作将节点位置从宿主节点的目录向量中删除,把数据写回到该宿主 节点的二级缓存,并向请求节点返回写回回应信号,则把该目录向量从宿主节点的活跃目 录缓存中删除。替换操作宿主节点的活跃目录缓存由于容量冲突而发生替换时,向所有共享节 点发出无效请求。如果该目录存储器的目录状态处于共享(S)状态,则目录控制器收集到 所有的无效回应后,把该目录向量从活跃目录缓存中删除。如果该目录存储器的目录状态 处于修改(M)状态,则目录控制器收到写回的数据后,把该数据写回到该宿主节点的二级
12缓存中,然后删除该数据对应的目录向量。接收到宿主节点的二级缓存的无效请求时,如果该节点活跃目录缓存不命中,则 直接向二级缓存返回无效回应信号。如果活跃目录缓存命中,则进行活跃目录缓存的替换 操作,替换操作完成后,向二级缓存返回无效回应信号或写回信号,把目录向量从活跃目录 缓存中删除。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
一种支持高速缓存一致的片上网络系统,包括网络接口部件,所述网络接口部件连接路由器,并连接多核处理器和二级缓存,其特征在于,在所述网络接口部件中增设有与多核处理器相连的一致性状态缓存,所述一致性状态缓存用于保存并维护多核处理器的每个核的一级缓存中数据块的一致性状态。
2.如权利要求1所述的支持高速缓存一致的片上网络系统,其特征在于,所述一致性 状态缓存包括一致性状态存储器,具有与所述一级缓存相同的存储行,用于保存所述一级缓存中数 据块的一致性状态;处理器接口,连接所述多核处理器,用于从不同类型处理器核的总线请求中分离出一 致性状态缓存所需要的请求信号,并把一致性状态缓存对多核处理器的回应或请求信号转 换成多核处理器可以识别的信号;一致性协议控制器,用于当多核处理器的一级缓存访问缺失请求或回应消息经过网络 接口部件时,通过所述处理器接口获取该访问缺失请求或回应消息,从中分离出地址标签, 并维护相应的一致性状态。
3.如权利要求2所述的支持高速缓存一致的片上网络系统,其特征在于,所述网络接 口部件中还增设有与二级缓存相连的活跃目录缓存,用于缓存和维护二级缓存中经常被所 述一级缓存访问的数据块的目录信息。
4.如权利要求3所述的支持高速缓存一致的片上网络系统,其特征在于,所述活跃目 录缓存包括目录存储器,用于缓存二级缓存中经常被所述一级缓存访问的数据块的目录信息包 括所述数据块的地址标签、目录状态和目录向量;二级缓存接口,连接二级缓存,用于将多核处理器的访问缺失请求发送给所述二级缓 存,或将二级缓存的回应信号返回给活跃目录缓存;目录控制器,用于通过二级缓存接口获取多核处理器对二级缓存的访问请求,并查找 目录存储器中的目录信息,然后根据请求的类型决定是否向本地二级缓存发送该访问请 求。
5.一种利用权利要求4所述的系统的数据请求方法,其特征在于,包括以下步骤Sl 请求节点的一致性协议控制器捕获所述请求节点处理器的一级缓存访问缺失请求,S2:所述请求节点的一致性协议控制器在一致性状态存储器中查找所述缺失请求的地 址标签,并根据相应的一致性状态向宿主节点的二级缓存发出数据请求;S3:所述宿主节点路由器的网络接口部件中活跃目录缓存的目录控制器捕获所述数据 请求,并在该目录存储器中查找所述数据请求对应的目录信息,然后根据请求类型决定是 否向该宿主节点的二级缓存发送所述数据请求;S4:所述宿主节点的二级缓存根据所述数据请求向请求节点处理器返回消息,在经过 请求节点的路由器时,该路由器的一致性协议控制器捕获该消息,并根据消息类型改变或 保持一致性状态缓存中所述地址标签的地址中存储数据的一致性状态,并把消息中包含的 请求数据返回给请求节点处理器。
6.如权利要求5所述的数据请求方法,其特征在于,所述步骤S2具体包括当所述缺失请求为读请求操作在请求节点的一致性状态缓存的一致性状态存储器中为该请求地址分配 一个缓存行,并把一致性状态设为临时状态IS,同时向宿主节点的二级缓存转发该请求,所 述临时状态IS表示读请求还没有完成,等待该二级缓存的数据回应;写请求操作如果请求节点的一致性状态缓存不命中,则为该地址分配一个缓存行, 并把一致性状态设为临时状态IM,并向宿主节点的二级缓存转发该写请求,所述临时状态 IM表示写请求还没有完成,等待该二级缓存的写回应;如果请求节点的一致性状态缓存命 中且处于共享状态,则把一致性状态设为IM状态,并向宿主节点的二级缓存发送写更新请 求;如果请求节点的一致性状态缓存命中且处于修改状态,则直接向请求节点处理器返回 写回应信号,一致性状态缓存中的状态不改变;更新请求操作将请求节点的一致性状态缓存中的一致性状态设为IM状态,然后向宿 主节点发送更新请求;替换和写回请求操作请求节点的一致性状态缓存直接把该请求转发给宿主节点的二 级缓存;替换操作当请求节点的一致性状态缓存由于容量冲突发生替换操作时,则向请求节 点处理器发出无效信号,请求节点处理器的私有一级缓存则会根据其状态向宿主节点发出 无效回应或写回消息,请求节点的一致性状态缓存接收到请求节点处理器的无效回应或写 回消息后,向宿主节点的二级缓存发出替换或写回请求,等到收到宿主节点的替换回应或 写回回应消息后,把该缓存行从请求节点的一致性状态缓存中删除。
7.如权利要求5所述的数据请求方法,其特征在于,所述步骤S3具体包括当所述缺 失请求为读请求操作如果宿主节点的活跃目录缓存命中,在活跃目录信息的目录向量中加入 请求节点的位置,如果目录状态处于共享状态,则向该宿主节点的二级缓存发出读数据请 求,得到二级缓存的数据回应后,把该数据转发给请求节点的处理器;如果目录状态处于修 改状态,则向拥有该数据的共享节点发出降级写回请求,目录控制器接收到写回的数据时, 把写回的数据转发给请求节点的处理器,并把该数据写回该宿主节点的二级缓存,目录状 态变为共享状态;如果宿主节点的活跃目录缓存缺失,则在活跃目录缓存中添加目录项,然 后向该宿主节点的二级缓存发出读请求,得到缓存的数据回应后,把请求的数据转发给请 求节点的处理器,目录状态变为共享状态;写请求操作如果宿主节点的活跃目录缓存命中且处于共享状态,则向所有共享节点 的处理器发出无效信号,并向该宿主节点的二级缓存发出读请求,目录控制器收集到所有 的无效回应消息后,将相应的共享节点的位置从目录向量中删除,把从二级缓存返回的数 据回应转发给请求节点的处理器,把宿主节点的活跃目录缓存的目录状态改变为修改状 态,在目录向量中加入请求节点的位置;如果宿主节点的活跃目录缓存处于修改状态,则向 共享节点的处理器发出无效并写回请求,目录控制器收到写回的数据时,相应的节点位置 从目录向量中删除,把数据转发给请求节点,在目录向量中加入请求节点的位置;如果宿主 节点的活跃目录缓存不命中,则在活跃目录缓存中添加目录项,向该宿主节点的二级缓存 发出读请求,得到二级缓存的数据回应后,把请求的数据转发给请求节点,目录状态变为修 改状态,在目录向量中加入请求节点的位置;替换请求操作将待替换的请求节点位置从宿主节点的目录向量中删除,并向该请求 节点返回替换回应信号,如果是唯一的共享节点,则把该目录向量从宿主节点的活跃目录 缓存中删除;写回请求操作将节点位置从宿主节点的目录向量中删除,把数据写回到该宿主节点 的二级缓存,并向请求节点返回写回回应信号,把该目录向量从宿主节点的活跃目录缓存 中删除;替换操作宿主节点的活跃目录缓存由于容量冲突而发生替换时,向所有共享节点发 出无效请求,如果该目录存储器的目录状态处于共享状态,则目录控制器收集到所有的无 效回应后,把该目录向量从活跃目录缓存中删除;如果该目录存储器目录状态处于修改状 态,则目录控制器收到写回的数据后,把该数据写回到该宿主节点的二级缓存中,然后删除 该数据对应的目录向量;接收到宿主节点的二级缓存的无效请求时,如果该节点的活跃目录缓存不命中,则直 接向二级缓存返回无效回应信号,如果活跃目录缓存命中,则进行活跃目录缓存的替换操 作,替换操作完成后,向二级缓存返回无效回应信号或写回信号,把目录向量从活跃目录缓 存中删除。
8.如权利要求5所述的数据请求方法,其特征在于,所述步骤S4具体包括当所述缺 失请求对应的回应操作为读回应操作将请求节点的一致性状态缓存的IS状态改变为共享状态,并向请求节点 处理器返回数据;写回应和更新回应操作将请求节点的一致性状态缓存的IM状态改变为修改状态,并 向请求节点处理器返回写回应或更新回应;替换回应和写回回应操作删除请求节点的一致性状态缓存中该地址所在的缓存行, 并把回应信号转发给请求节点处理器;无效请求操作请求节点的一致性状态缓存接收到来自宿主节点二级缓存的无效请求 时,直接转发给请求节点处理器;无效回应操作请求节点的一致性状态缓存接收到来自请求节点处理器的无效回应信 号时,删除对应的缓存行,并把无效回应信号转发宿主节点。
全文摘要
本发明公开了一种支持高速缓存一致的片上网络系统,包括网络接口部件和路由器,所述网络接口部件连接所述路由器,并连接多核处理器和二级缓存,在所述网络接口部件中增设有与多核处理器相连的一致性状态缓存,所述一致性状态缓存用于保存并维护多核处理器的一级缓存中数据块的一致性状态;所述网络接口部件中还增设有与二级缓存相连的活跃目录缓存,用于缓存和维护二级缓存中经常被所述一级缓存访问的数据块的目录信息。把一致性维护工作从处理器中分离出来,把目录维护工作从二级缓存中分离出来,并且取消了二级缓存中的目录结构,简化了多核处理器的设计和验证过程,降低了芯片的存储开销,提高了多核处理器的性能。本发明还公开了该系统的数据请求方法。
文档编号H04L12/56GK101958834SQ20101029401
公开日2011年1月26日 申请日期2010年9月27日 优先权日2010年9月27日
发明者汪东升, 王惊雷 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1