片上网络中缓存一致性的维护方法和片上网络路由的制作方法

文档序号:7895505阅读:239来源:国知局
专利名称:片上网络中缓存一致性的维护方法和片上网络路由的制作方法
技术领域
本发明涉及片上多处理器、片上系统和缓存系统技术领域,特别是涉及一种片上网络中缓存一致性的维护方法和一种片上网络路由。
背景技术
随着片上处理器中计算核心数量的不断增长,片上网络(NoC,Network on Chip)逐渐成为片上多处理器(CMP, Chip Multiprocessors)片上通信的重要介质和方法。随着CMP规模的增大,需要片上存储系统为其提供大量的数据。目前CMP通常采用共享缓存(Cache)上的片上存储系统。由于处理器核中通常包含私有缓存,在CMP中,必须使用缓存一致性协议来维护私有缓存中数据的一致性和完整性。·
缓存一致性维护是指在源数据被更新,而同时又有用户请求缓存数据时,维护源数据与缓存拷贝之间的一致性。设计缓存一致性维护机制的共同目标是以最低的代价(包括通信开销、功率消耗、响应延迟等)满足用户对缓存一致性的需求。传统的缓存一致性协议主要有两种,分别是基于监听的缓存一致性协议(Snooping-based cache coherence protocol)和基于目录的缓存一致性协议(Directory-based cache coherence protocol);其中,基于监听的缓存一致性协议由于其自身算法的可扩展性有限并不适合大规模的片上网络实现;在这种情况下,基于目录的缓存一致性策略协议由于其高度可扩展而变得非常重要,并且在大规模的片上系统设计中被寄予了很大的期望。然而,传统基于目录的缓存一致性协议直接实现在片上网络上的通信代价是非常大的,由此会给缓存的访问带来较长延迟,使得处理器总体性能受到影响。总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够降低上述情形下访问缓存的延迟。

发明内容
本发明所要解决的技术问题是提供一种片上网络中缓存一致性的维护方法和一种片上网络路由,能够降低片上多处理器和片上系统的MESI协议中出现的延迟问题、功率消耗问题以及低扩展问题。为了解决上述问题,本发明公开了一种片上网络中缓存一致性的维护方法,包括通过在片上网络中分别传输数据包和命令包,来执行基于目录的缓存一致性协议。 优选的,所述基于目录的缓存一致性协议为MESI协议,所述MESI协议包括读中间态和写中间态;所述执行MESI协议的步骤,包括在片上网络路由中,针对不同命令类型的命令包,执行相应的MESI协议,所述命
权利要求
1.ー种片上网络中缓存一致性的维护方法,其特征在于,包括 通过在片上网络中分别传输数据包和命令包,来执行基于目录的缓存一致性协议。
2.如权利要求I所述的方法,其特征在于,所述基于目录的缓存一致性协议为MESI协议,所述MESI协议包括读中间态和写中间态; 所述执行MESI协议的步骤,包括 在片上网络路由中,针对不同命令类型的命令包,执行相应的MESI协议,所述命令类型包括片上网络读请求、片上网络写请求或者片上网络确认信息。
3.如权利要求2所述的方法,其特征在于,在片上网络路由中,针对片上网络读请求的命令包,执行相应的MESI协议的步骤,包括 如果当前结点为读请求发送结点,CPU将片上网络读请求发送结点重定向到目录结点,并将缓存块的状态置为读中间态,等待返回数据和确认信息。
4.如权利要求2所述的方法,其特征在于,在片上网络路由中,针对片上网络写请求的命令包,执行相应的MESI协议的步骤,包括 如果当前结点为写请求发送结点,并且该写请求发送结点的缓存块的状态处于共享态或无效态,CPU将写请求发送结点重定向到目录结点,并将缓存块的状态置为写中间态; 开始写入数据,等待网络返回确认信息。
5.如权利要求3所述的方法,其特征在于,在片上网络路由中,针对片上网络消息确认的命令包,执行相应的MESI协议的步骤,包括 如果确认信息类型为读请求共享确认信息,并且此确认信息的缓存块处于读中间态,CPU将此确认信息的状态置为共享态;如果确信信息的类型为读请求共享确认信息,并且此确认信息的缓存块处于写中间态,CPU以写穿的方式向缓存写入数据,并将此信息的缓存块置为独占态; 如果确认信息类型为读请求无共享的确认信息,并且此确认信息的缓存块处于读中间态,CPU将访问ニ级缓存,获取数据;如果确认信息类型为读请求无共享的确认信息,并且此确认信息的缓存块处于写中间态,CPU以写穿的方式向缓存写入数据,并将此确认信息的缓存块置为独占态。
6.如权利要求I所述的方法,其特征在干,所述命令包为单片包,所述数据包为多片包。
7.如权利要求I或6所述的方法,其特征在于,所述命令包的结构,包括 RI、SN、Type、Address, RI、SN、Type、Address 的总长度为 128 位;其中, 所述RI用来记录路由信息; 所述SN为序列号,其长度为2位,用来区分通信网络包的类型及用来区别当前通信网络包是头片或者是尾片;当SN为11时,命令包为单片命令包,既是头片,又是尾片;所述Type用于指示命令的类型,长度为3位; 所述Address用来显示地址信息,长度为64或32位。
8.如权利要求I或6所述的方法,其特征在于,所述数据包的结构,包括 一片头片、一个缓存块的4个数据片、I片尾片,三者的总长度为768位; 其中, 所述头片包括RI、SN,头片用来记录全部路由信息,所述SN是序列号,长度为2位,用来区分通信网络包的类型及用来区分当前通信网络包是头片或者是尾片;,当SN为OO时,通信网络包的类型为数据包;SN为01时,此片为该数据包头片;SN为10吋,此片为该数据包尾片; 所述数据包包括ー个缓存块的4个数据片,其中每个缓存块的大小为64字节大小,以128位为一片。
9.一种片上网络路由,其特征在于,包括在其电路上布置命令线和数据线;其中, 所述命令线,用于传输命令包; 所述数据线,用于传输数据包。
10.如权利要求9所述的片上网络路由,其特征在于,还包括入端端ロ、入端选择电路、输入缓冲区、交叉开关、输出缓冲区、出端选择电路、出端端ロ ;其中, 所述入端选择电路同时连接所述命令线和数据线,用于接收传入的命令包和/或数据包,并从中选择ー者,将其通过所述入端端ロ送入所述输入缓冲区;其中,入端选择电路模式为先到先服务; 所述输入缓冲区,包括 入端缓冲区,用于缓存所述入端端ロ传入的命令包和/或数据包 '及 输入状态控制单元,用于控制入端缓冲区中命令包和/或数据包的状态; 所述输出缓冲区,包括 出端缓冲区,用于缓存所述交叉开关输出的命令包和/或数据包,以及,将命令包和/或数据包输出至所述出端端ロ ;及 输出状态控制单元,用于控制出端缓冲区中命令包和/或数据包的状态; 所述出端选择电路,用于接收所述出端端ロ传入的命令包和/或数据包,并将其通过相应的线输出;其中,出端选择信号由头片SN的两个比特位决定,如果是11则进入命令线,如果是其它则进入数据线。
11.如权利要求9所述的片上网络路由,其特征在于,还包括 路由计算单元,与所述输入缓冲区相连,用于对所述输入缓冲区中的命令包和/或数据包进行路由计算,并依据所述基于MESI的并行缓存一致性协议,对所述输入缓冲区中命令包和/或数据包对应缓存块的状态进行修改,其中,所述MESI协议的缓存状态包括读中间态和与中间态; 其中,完成路由计算的命令包和/或数据包输出至所述交叉开关。
全文摘要
本发明提供了一种片上网络中缓存一致性的维护方法和一种片上网络路由,其中的片上网络中缓存一致性的维护方法具体包括通过在片上网络中分别传输数据包和命令包,来执行基于目录的缓存一致性协议。本发明能够降低片上多处理器和片上系统的MESI协议中出现的延迟问题、功率消耗问题以及低扩展问题。
文档编号H04L12/56GK102801600SQ201110136049
公开日2012年11月28日 申请日期2011年5月24日 优先权日2011年5月24日
发明者曾富涔, 乔林 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1