首页> 中国专利> 片上网络中缓存一致性的维护方法和片上网络路由

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

摘要

本发明提供了一种片上网络中缓存一致性的维护方法和一种片上网络路由,其中的片上网络中缓存一致性的维护方法具体包括:通过在片上网络中分别传输数据包和命令包,来执行基于目录的缓存一致性协议。本发明能够降低片上多处理器和片上系统的MESI协议中出现的延迟问题、功率消耗问题以及低扩展问题。

著录项

  • 公开/公告号CN102801600A

    专利类型发明专利

  • 公开/公告日2012-11-28

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201110136049.6

  • 发明设计人 曾富涔;乔林;

    申请日2011-05-24

  • 分类号H04L12/56(20060101);

  • 代理机构11319 北京润泽恒知识产权代理有限公司;

  • 代理人苏培华

  • 地址 100084 北京市海淀区清华园一号

  • 入库时间 2023-12-18 07:31:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-20

    授权

    授权

  • 2013-01-23

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20110524

    实质审查的生效

  • 2012-11-28

    公开

    公开

说明书

技术领域

本发明涉及片上多处理器、片上系统和缓存系统技术领域,特别是涉及 一种片上网络中缓存一致性的维护方法和一种片上网络路由。

背景技术

随着片上处理器中计算核心数量的不断增长,片上网络(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协 议,所述命令类型包括:片上网络读请求、片上网络写请求或者片上网络确 认信息。

优选的,在片上网络路由中,针对片上网络读请求的命令包,执行相应 的MESI协议的步骤,包括:

如果当前结点为读请求发送结点,CPU将片上网络读请求发送结点重定 向到目录结点,并将缓存块的状态置为读中间态,等待返回数据和确认信息。

优选的,在片上网络路由中,针对片上网络写请求的命令包,执行相应 的MESI协议的步骤,包括:

如果当前结点为写请求发送结点,并且该写请求发送结点的缓存块的状 态处于共享态或无效态,CPU将写请求发送结点重定向到目录结点,并将缓 存块的状态置为写中间态;

开始写入数据,等待网络返回确认信息。

优选的,在片上网络路由中,针对片上网络消息确认的命令包,执行相 应的MESI协议的步骤,包括:

如果确认信息类型为读请求共享确认信息,并且此确认信息的缓存块处 于读中间态,CPU将此确认信息的状态置为共享态;如果确信信息的类型为 读请求共享确认信息,并且此确认信息的缓存块处于写中间态,CPU以写穿 的方式向缓存写入数据,并将此信息的缓存块置为独占态;

如果确认信息类型为读请求无共享的确认信息,并且此确认信息的缓存 块处于读中间态,CPU将访问二级缓存,获取数据;如果确认信息类型为读 请求无共享的确认信息,并且此确认信息的缓存块处于写中间态,CPU以写 穿的方式向缓存写入数据,并将此确认信息的缓存块置为独占态。

优选的,所述命令包为单片包,所述数据包为多片包。

优选的,所述命令包的结构,包括:

RI、SN、Type、Address,RI、SN、Type、Address的总长度为128位; 其中,

所述RI用来记录路由信息;

所述SN为序列号,其长度为2位,用来区分通信网络包的类型及用来 区别当前通信网络包是头片或者是尾片;当SN为11时,命令包为单片命令 包,既是头片,又是尾片;所述Type用于指示命令的类型,长度为3位;

所述Address用来显示地址信息,长度为64或32位。

优选的,所述数据包的结构,包括:

一片头片、一个缓存块的4个数据片、1片尾片,三者的总长度为768 位;

其中,

所述头片包括RI、SN,头片用来记录全部路由信息,

所述SN是序列号,长度为2位,用来区分通信网络包的类型及用来区 分当前通信网络包是头片或者是尾片;,当SN为00时,通信网络包的类型 为数据包;SN为01时,此片为该数据包头片;SN为10时,此片为该数据 包尾片;

所述数据包包括一个缓存块的4个数据片,其中每个缓存块的大小为64 字节大小,以128位为一片。

另一方面,本发明还公开了一种片上网络路由,包括:在其电路上布置 命令线和数据线;其中,

所述命令线,用于传输命令包;

所述数据线,用于传输数据包。

优选的,片上网络路由还包括:入端端口、入端选择电路、输入缓冲区、 交叉开关、输出缓冲区、出端选择电路、出端端口;其中,

所述入端选择电路同时连接所述命令线和数据线,用于接收传入的命令 包和/或数据包,并从中选择一者,将其通过所述入端端口送入所述输入缓冲 区;其中,入端选择电路模式为先到先服务;

所述输入缓冲区,包括:

入端缓冲区,用于缓存所述入端端口传入的命令包和/或数据包;及

输入状态控制单元,用于控制入端缓冲区中命令包和/或数据包的状 态;

所述输出缓冲区,包括:

出端缓冲区,用于缓存所述交叉开关输出的命令包和/或数据包,以 及,将命令包和/或数据包输出至所述出端端口;及

输出状态控制单元,用于控制出端缓冲区中命令包和/或数据包的状 态;

所述出端选择电路,用于接收所述出端端口传入的命令包和/或数据包, 并将其通过相应的线输出;其中,出端选择信号由头片SN的两个比特位决 定,如果是11则进入命令线,如果是其它则进入数据线。

优选的,片上网络路由还包括:

路由计算单元,与所述输入缓冲区相连,用于对所述输入缓冲区中的命 令包和/或数据包进行路由计算,并依据所述基于MESI的并行缓存一致性协 议,对所述输入缓冲区中命令包和/或数据包对应缓存块的状态进行修改,其 中,所述MESI协议的缓存状态包括读中间态和写中间态;

其中,完成路由计算的命令包和/或数据包输出至所述交叉开关。

与现有技术相比,本发明具有以下优点:

首先,本发明基于目录的缓存一致性协议的并行缓存一致性协议,将片 上网络上的通信包分为数据包和命令包,分别传输数据包和命名包;因此, 相对于现有技术中,传统的基于目录的缓存一致性协议的实现过程中,片上 网络上串行的通信包传输,在缓存一致性的一次操作中,数据包不再等待命 令包的通信,可以提前处理,并且可以通过片上网络不同的路由通道进行传 输,因此,能够降低片上多处理器和片上系统的基于目录的缓存一致性协议 中出现的延迟。

其次,本发明还可以使用MESI协议来执行所述基于目录的缓存一致性 协议,并且,在原有MESI协议的基础上,还可以增加读中间态和写中间态, 可以避免重复书写相同的数据,因此,能够在保证缓存一致性的前提下,大 大加快数据的读写过程,降低片上多处理器和片上系统的MESI协议中出现 的延迟,从而能够提高数据传输速度。

再者,相对于现有技术中,传统的基于目录的缓存一致性协议的实现过 程中,相邻链路采用单布线的方法,即同一个方向使用一条线路;本发明中 在传统的基于目录的缓存一致性协议的实现过程做了改进:相邻链路采用双 线系统的双布线的方法,即同一个方向使用两条路线,一个为命令线,一个 为数据线;命令线用于快速地传输各类控制命令,能够降低片上多处理器和 片上系统的MESI协议中出现的延迟问题;数据线用于传输数据,调整计算 模型,使得在某种计算模型下,数据线的功耗是最低的,来降低这种并行缓 存一致性协议中的功率消耗。

另外,本发明的片上网络的拓扑结构为2D-Mesh的网格结构,片上网 络路由之间的结点之间能够容易地进行网络的拓扑结构扩展,通过这种方式 来获得高扩展的片上网络系统。

总之,这种基于MESI协议的并行缓存一致性协议和这种片上网络路由 结构框架的设计,能够有利于降低片上多处理器和片上系统的MESI协议中 出现的延迟问题、功率消耗问题以及低扩展问题。

附图说明

图1是本发明一种片上网络中缓存一致性的维护方法实施例1的流程 图;

图2是本发明一种数据包和命令包在不同路由上同时传输的示意图;

图3是本发明一种数据包的格式示意图;

图4是本发明一种命令包的格式示意图;

图5是本发明一种片上网络中缓存一致性的维护方法实施例2的流程 图;

图6是本发明一种基于MESI的并行缓存一致性协议状态转换示意图;

图7是本发明一种片上网络路由应用示例的结构示意图;

图8是本发明另一种片上网络路由应用示例的结构示意图;

图9是本发明另一种片上网络路由应用示例的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图 和具体实施方式对本发明作进一步详细的说明。

本发明的核心构思之一在于,通过在片上网络中分别传输数据包和命令 包,来执行基于目录的缓存一致性协议。由于在执行基于目录的缓存一致性 协议的一次操作中,数据包不再等待命令包的通信,确认信息后才能传输数 据,而是提前传输数据或通过片上网络不同的路由途径进行传输数据,有利 于降低片上多处理器和片上系统的在执行基于目录的缓存一致性协议中出 现的延迟。

参照图1,示出了本发明片上网络中缓存一致性的维护方法实施例1的 流程图,具体可以包括:

步骤101、通过在片上网络中分别传输数据包和命令包,来执行基于目 录的缓存一致性协议。

片上网络上的网络通信包被分为数据包和命令包,在片上网络上数据包 和命令包分别传输。在缓存一致性的一次操作中,数据包不再等待命令包的 通信,提前处理或者通过片上网络不同的路由进行传输,有利于降低了片上 多处理器和片上系统在执行基于目录的缓存一致性协议中出现的延迟问题。

参照图2,在本发明的一种应用示例中,数据包和命令包在不同路由上 同时传输。

对于传统的片上网络的通信包,没有把通信包分为命令包和数据包,这 样在不同路由器中传输数据的方向是单一的,只能从路由器的输入端口到路 由器的输出端口;在路由器中传输数据的路径也是单一的。

从图2中,可以看出:数据包和命令包是分别传输的;而且数据包和命 令包在不同路由上可以同时传输;其中,命令包在不同路由的传输方向以双 箭头来示意,数据包在不同路由的传输方向以单箭头来示意。

相对于传统的通过在片上网络中的通信包,来执行基于目录的缓存一致 性协议的过程,本发明在执行基于目录的缓存一致性协议的一次操作过程 中,数据包不再等待命令包的通信,提前处理数据,有利于在一定程度上解 决片上多处理器和片上系统在执行基于目录的缓存一致性协议中出现的延 迟问题;或者在执行缓存一致性协议的一次操作过程中,数据包和命令包通 过片上网络不同的路由同时进行传输,相对于传统的基于目录的缓存一致性 协议,在路由器上传输的路径是多条路径,因而有利于降低片上多处理器和 片上系统在执行基于目录的缓存一致性协议中出现的延迟。

参照图3,示出了本发明一种数据包的格式示例,可以看出:数据包总 共有6片,其具体可以包括一片头片、一个缓存块的4个数据片、1片尾片, 每个数据包的总长度为768位;数据包中的头片包括RI、SN组成,头片用 来记录全部路由信息,其中,数据包头片的SN是序列号,长度为2位,用 来区分通信网络包的类型及用来区分当前通信网络包是头片或者是尾片;当 SN为00时,通信网络包的类型为数据包;SN为01时,此片为该数据包头 片;SN为10时,此片为该数据包尾片数据包包括一个缓存块的4个数据片, 其中每个缓存块的大小为64字节大小,以128位为一片。

参照图4,示出了本发明一种命令包的格式示例,可以看出:命令包是 单片包,此片既是头片,也是尾片;具体可以包括RI、SN、Type、Address, 命令包的总长度为128位;其中,

命令包中的RI可用来记录路由信息;命令包中的SN是序列号,长度 为2位,可用来区分通信网络包的类型及用来区分当前通信网络包是头片或 者是尾片;当SN为11,此时,命令包为单片命令包,既是头片,又是尾片; 命令包中的Type用于指示命令的类型,长度为3位;命令包中的Address 用来显示地址信息,长度为64/32位。

总之,通过在片上网络中分别传输数据包和命令包,来执行基于目录的 缓存一致性协议,此种方式有利于降低片上多处理器和片上系统的在执行基 于目录的缓存一致性协议中出现的延迟。

参照图5,示出了本发明片上网络中缓存一致性的维护方法实施例2的 流程图,具体可以包括:

步骤501、通过在片上网络中分别传输数据包和命令包,来执行基于目 录的缓存一致性协议。其中,所述执行基于目录的缓存一致性协议具体可以 包括:

子步骤511、通过引入读中间态和写中间态,来执行基于MESI协议的 并行缓存一致性协议;

子步骤512、在片上网络路由中,针对不同命令类型的命令包,执行相 应的MESI协议,所述命令类型具体可以包括:片上网络读请求、片上网络 写请求或者片上网络确认信息。

MESI(modified exclusive shared invalid,修改、独占、共享、无效)协议 是一种采用写-无效方式的协议,它要求每个Cache行有两个状态位,用于 描述该行当前是处于修改态(M)、独占态(E)、共享态(S)、无效态(I) 中的哪种状态,从而决定读/写操作行为。其中M是修改态,处于这一状态 的数据只在本CPU中有缓存,且其数据已被修改,没有更新到内存中;E 态指独占态,处于这一状态的数据只在本CPU中有缓存,且其数据没有被 修改,与内存一致;S态是共享态,处于这一状态的数据在多个CPU中有缓 存,及该数据没有被修改,与内存一致;I指无效态,表明此CPU中的缓存 已经无效。

传统的MESI协议的通信包的传输是串行的,但是,本实施例中通信包 的传输采用并行,会有两种情况:

情况1、在连续写多个数据的时候,当第一个数据写到一半的时候,又 收到新的读请求命令时,如果直接执行读请求命令时,此时得到的数据仅仅 是全部数据的一半数据,是不完整的,是错误的;

情况2、在连续写多个数据的时候,又有新的读请求命令时,即使第一 个数据的部分数据在低级缓存的数据库中有现成的部分,书写数据的时候, 仍然需要从第一个数据开始书写。

针对上述两种情况,本实施例在原有MESI协议的4种状态的基础上, 增加了两种状态:读中间态和写中间态。

其中,

针对情况1,在连续写多个数据的时候,当第一个数据写到一半的时候, 又收到新的读请求命令时,不需要把第一个写到一半的数据的缓存状态修改 为无效态;如果此时的缓存状态修改为无效态时,就需要重新书写数据,之 前写的一半数据全部无效;这时,只需要先不执行读请求的命令,而是将此 读请求的命令的缓存状态置为读中间态,等待第一个写请求命令的全部完 成;只有等到第一个写请求的命令执行完,全部的数据全部书写完成后,才 开始执行新来的读请求的命令,这样的方式可以避免片上系统的延迟问题的 出现,提高数据传输的速度,实现了转换状态和书写数据的同步进行;同时 也确保了数据的正确性,只有完成完整的写请求的命令后,才会去执行读请 求命令。

通过引入读中间态,在未完成写的命令时,即使又有读的命令需要执行 时,通过将读的命令请求置为读中间态,等待写的命令全部执行完之后,才 去执行读的命令请求,可以避免重复书写没有完整书写完的数据,起到保护 未书写完的数据的作用,这样将能够大大加快数据的读写过程,降低片上多 处理器和片上系统的MESI协议中出现的延迟问题,从而能够提高数据传输 速度。

情况2、对同一块缓存块,在写请求连续到达的时候,如果前面的写操 作尚未完成,可以立即放弃没写完的部分,直接执行下一次写操作。根据 MESI协议,写操作发生在无效态的时候,需要先将有效数据装载到缓存中 变成共享或者独占态。写操作发生的时候一定是处于写中间态,这时候的读 操作将被拥塞;而如果是连续的写操作,由于已知处于写中间态,可以放弃 当前未完成的写操作,直接响应下一次的写操作,从而将这一部分时间节省, 达到降低响应时间的目的。

通过引入写中间态,由于是写直达型的协议,对于连续的写请求,将大 量的未写完数据写到低级缓存的时间节省起来。因为连续的写请求中,真正 起到作用的是最后一次写操作。这样将能够大大加快数据的读写过程,降低 片上多处理器和片上系统的MESI协议中出现的延迟,从而能够提高数据传 输速度。

参照图6,示出了本发明基于MESI的并行缓存一致性协议状态转换示 意图。

本发明在原有MESI协议的基础上,增加了两种新的状态:Tr_r、Tr_w。 相比传统的MESI协议,本发明的协议一共有6种状态:M、E、S、I、Tr_r、 Tr_w;其中,M、E、S、I这四种状态跟传统的MESI协议中的状态是相同 的,仅仅新增加了两种状态,Tr_r、和Tr_w;其中,Tr_r是读中间态,处于 这一状态的数据暂时不执行读的命令,而是等写的命令执行完成之后,才去 执行读的状态;Tr_w是写中间态,处于这一状态的数据暂时不执行写的命 令,而是等读的命令执行完成之后,才去执行写的状态。

当片上路由器接收到相应命令请求的时候,主要步骤可以为:网络包按 照虫蚀寻径的方法分片进入路由器,通过路由器内部的流水线,其中虫蚀寻 径的方法是指把数据包进一步分成更小的片;同时在与结点相连的硬件的寻 径器中设置有片缓冲区;当消息从源结点传送到目的结点时,需要经过一系 列寻径器,才能最终把信息传输给目的结点;计算路由的同时按照不同请求 类型执行相应的一致性步骤;将网络包放入出端缓冲区转发网络包。其中, 片上网络命令类型主要包含三类:读请求、写请求、确认消息。

在本发明的一种优选实施例中,在当前结点为读请求发送结点时,所述 处理读请求的步骤具体可以包括:

将读请求重定向到目录结点;

将缓存块置为读中间态,等待返回数据和确认信息;

以上是对于读请求发送结点的情形,当然,所述当前结点还可能是其他 类型:

例如,目录结点,此时,所述处理读请求的步骤具体可以包括:

查找目录,将目录转发到离请求结点最近的含有有效数据块的结点,等 待确认消息返回;

如果查找结果不包含任何有效结点,则向读请求结点发送读请求无共享 的确认消息,请求结点访问二级缓存获取有效数据。

又如,目的结点,此时,所述处理读请求的步骤具体可以包括:

向请求结点发送相应数据块,同时向目录结点发送读请求共享确认消 息;

将读请求共享确认消息缓存块置为共享态;如果此缓存块处于修改态, 先将数据写回下级缓存。

再如,其它结点,此时,所述处理读请求的步骤具体可以包括:

通过路由器直接将此结点转发到下一个结点。

在本发明的一种优选实施例中,在当前结点为写请求发送结点,并且其 相应的缓存块处于共享态或无效态时,所述处理写请求的步骤具体可以包 括:

将写请求重定向到目录结点,并将缓存块置为写中间态;

开始写入数据,等待网络返回确认信息;

以上是对于写请求发送结点并且其相应的缓存块处于共享态或无效态 的情形,当然,所述当前结点还可能是其他类型:

例如,目录结点,相应地,所述处理写请求的步骤具体可以包括:

让离请求结点最近的共享结点将数据点对点地发送给写请求结点(为保 证数据一致性,MESI协议规定当写请求发生在处于无效态的缓存块时,必 须先将当前有效数据装载到缓存中变成共享态或者独占态);

向所有该缓存块的共享结点发送无效命令,等待网络返回置无效确认消 息;

在收集到全部共享结点的置无效确认消息后,向请求结点发送一个写确 认消息。

又如,其它结点,相应地,所述处理写请求的步骤具体可以包括:

通过路由器直接将该结点转发到下一个结点。

在本发明的一种优选实施例中,在当前结点为目录结点时,所述处理确 认信息的步骤具体可以包括:

如果确认消息为读确认消息,向请求结点发送读请求共享确认消息;

如果确认消息为无效确认信息,收集此类消息直到所有的共享结点都返 回无效确认消息后,向请求结点发送写请求确认写确认消息。

以上是对于处理确认信息目录结点的情形,当然,所述当前结点还可能 是其他类型:

例如,请求结点,相应地,所述处理确认信息的步骤具体可以包括:

如果确认消息类型为读请求共享确认信息,并且此读请求共享确认信息 的缓存块处于读中间态,将此读请求共享确认信息的缓存块的状态置为共享 态;如果确认消息类型为读请求共享确认信息,并且此读请求共享确认信息 的缓存块处于写中间态,以写穿的方式向缓存写入数据,并将此读请求共享 确认信息的缓存块的状态置为独占态;

如果确认消息类型为读请求无共享的确认信息,并且此读请求无共享的 确认信息的缓存块处于读中间态,CPU将访问二级缓存获取数据;如果确认 消息类型为读请求无共享的确认信息,并且此读请求无共享的确认信息的缓 存块处于写中间态,以写穿方式向缓存写入数据,将此读请求无共享确认信 息的缓存块的状态置为独占态;

如果确认消息类型为写确认信息,将写确认信息的缓存块置为独占态。

又如,其它结点,相应地,所述处理确认信息的步骤具体可以包括:

通过路由器直接将该结点转发到下一个结点。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动 作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的 限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次, 本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例, 所涉及的动作和模块并不一定是本发明所必须的。

本发明还提供了一种片上网络路由实施例,可以在其电路上布置命令线 和数据线的双线系统;其中,

所述命令线,可用于传输命令包;

所述数据线,可用于传输数据包。

通过在片上网络路由的电路上布置上述的命令线、数据线,实现了在片 上网络上部署双线系统;在形成的片上网络的双线系统中,对各条线路的具 体属性不做限制,可以支持任意属规格的线路。在这种双线系统中,线的粗 细、占用芯片面积、功耗和延迟均是可以计算的;可以通过调整计算模型, 使得在某种计算模型下,命令线、数据线的粗线、占用芯片面积、功耗和延 迟中的若干项指标达到优化。

在具体实现中,所述命令线,可以用于传输各类控制命令,具体可以包 括缓存一致性命令等;命令线的功能是用于高效、快速地传输控制命令。在 这种双线系统中,命令线的粗细、占用芯片面积、功耗和延迟均是可以计算 的;通过调整计算模型,使得在某种计算模型下,命令线的粗线、占用芯片 面积、功耗和延迟中的若干项指标达到优化,实现了降低片上多处理器和片 上系统的MESI协议中出现的延迟问题、功率消耗问题。

所述数据线,可用于传输数据包,传输数据。在这种双线系统中,数据 线的粗细、占用芯片面积、功耗和延迟均是可以计算的;通过调整计算模型, 使得在某种计算模型下,数据线的粗线、占用芯片面积、功耗和延迟中的若 干项指标达到优化,实现了降低片上多处理器和片上系统的MESI协议中出 现的延迟问题、功率消耗问题。

在本发明的一种优选实施例中,所述片上网络路由还可以包括:入端端 口、入端选择电路、输入缓冲区、交叉开关、输出缓冲区、出端选择电路、 出端端口;其中,

所述入端选择电路同时连接所述命令线和数据线,用于接收传入的命令 包和/或数据包,并从中选择一者,将其通过所述入端端口送入所述输入缓冲 区;其中,入端选择电路模式为先到先服务;

所述输入缓冲区,具体可以包括:

入端缓冲区,用于缓存所述入端端口传入的命令包和/或数据包;及

输入状态控制单元,用于控制入端缓冲区中命令包和/或数据包的状 态;

所述输出缓冲区,具体可以包括:

出端缓冲区,用于缓存所述交叉开关输出的命令包和/或数据包,以 及,将命令包和/或数据包输出至所述出端端口;及

输出状态控制单元,用于控制出端缓冲区中命令包和/或数据包的状 态;

所述出端选择电路,可用于接收所述出端端口传入的命令包和/或数据 包,并将其通过相应的线输出;其中,出端选择信号由头片SN的两个比特 位决定,如果是11则进入命令线,如果是其它则进入数据线。

更为优选的是,所述片上网络路由还可以包括:

路由计算单元,与所述输入缓冲区相连,用于对所述输入缓冲区中的命 令包和/或数据包进行路由计算,并依据所述基于MESI的并行缓存一致性协 议,对所述输入缓冲区中命令包和/或数据包的缓存状态进行修改,其中,所 述MESI协议的缓存状态包括读中间态和写中间态;

其中,完成路由计算的命令包和/或数据包输出至所述交叉开关。

参照图7,示出了本发明一种片上网络路由应用示例的结构示意图,其 采用2D-Mesh网格为片上网络的拓扑结构,每个路由器将连接东、南、西、 北和本地5个相邻结点,内置5x5交叉开关,其命令包只会在命令线上传输, 数据包只会在数据线上传输,可由出入端口控制。

参照图8,示出了本发明另一种片上网络路由应用示例的结构示意图, 可以在其电路上布置命令线和数据线;其中,

所述命令线,用于传输命令包;

所述数据线,用于传输数据包。

从图8中可以看出:

命令线和数据线是双向传输的,这样可以提高数据传输的速度;

每一个入端端口是两个,同时每一个出端端口也是两个;

入端端口选择电路,同时连接所述命令线和数据线,用于接收传入的命 令包和/或数据包,并从中选择一者,将其通过所述入端端口送入所述输入缓 冲区;其中,入端选择电路模式为先到先服务。

所述出端选择电路,用于接收所述出端端口传入的命令包和/或数据包, 并将其通过相应的线输出;其中,出端选择信号由头片SN的两个比特位决 定,如果是11则进入命令线,如果是其它则进入数据线。

在路由器入端端口和出端端口的结构设计上采用了片上网络的拓扑结 构-2D-Mesh网格结构;其中每个路由器连接东、南、西、北和本地5个相 邻结点,这样一个路由器可以有东、南、西、北和本地5个端口;由于在相 邻两个结点之间不允许同时使用命令线和数据线,在路由器入端端口处和出 端端口处分别设置二过一门电路;以上这些结构的设计可以使得数据包和命 令包在不同路由上同时传输,降低了片上系统上传输数据的过程中出现的数 据延迟问题。

路由器内置的开关是5x5的交叉开关;

综上所述,数据包和命令包双向传输,路由器入端端口和出端端口的结 构设计以及路由器内置交叉开关的结构设计,都使数据传输的路径相对传统 的单一传输的路径多了,这样可以使数据传输的速度大大提高。

参照图9,示出了本发明另一种片上网络路由应用示例的结构示意图, 可以在其电路上布置命令线和数据线;其中,

所述命令线,用于传输命令包;

所述数据线,用于传输数据包;

所述入端选择电路同时连接所述命令线和数据线,用于接收传入的命令 包和/或数据包,并从中选择一者,将其通过所述入端端口送入所述输入缓冲 区;其中,入端选择电路模式为先到先服务。

在入端端口的结构设计上采用了片上网络的拓扑结构-2D-Mesh网格 结构;其中每个路由器连接东、南、西、北和本地5个相邻结点,这样一个 路由器可以有东、南、西、北和本地5个端口;由于在相邻两个结点之间不 允许同时使用命令线和数据线,在路由器入端端口设置二过一门电路;以上 这些结构的设计可以使得数据包和命令包在不同路由上同时传输,降低了片 上系统上传输数据的过程中出现的数据延迟问题。

所述输入缓冲区,具体可以包括:

入端缓冲区,用于缓存所述入端端口传入的命令包和/或数据包;及

输入状态控制单元,用于控制入端缓冲区中命令包和/或数据包的状态; 其中,由于命令包为单片包,只需要在路由器中为其设置很小的输入缓冲区 即可。

所述输出缓冲区,具体可以包括:

出端缓冲区,用于缓存所述交叉开关输出的命令包和/或数据包,以 及,将命令包和/或数据包输出至所述出端端口;及

输出状态控制单元,用于控制出端缓冲区中命令包和/或数据包的状态; 其中,由于命令包为单片包,只需要在路由器中为其设置很小的输出缓冲区 即可。

所述出端选择电路,用于接收所述出端端口传入的命令包和/或数据包, 并将其通过相应的线输出;其中,出端选择信号由头片SN的两个比特位决 定,如果是11则进入命令线,如果是其它则进入数据线。

在出端端口的结构设计上采用了片上网络的拓扑结构-2D-Mesh网格 结构;其中每个路由器连接东、南、西、北和本地5个相邻结点,这样一个 路由器可以有东、南、西、北和本地5个端口;由于在相邻两个结点之间不 允许同时使用命令线和数据线,在路由器出端端口设置二过一门电路;以上 这些结构的设计可以使得数据包和命令包在不同路由上同时传输,能够降低 片上系统上传输数据的过程中出现的数据延迟。

本发明的片上网络路由不受网络拓扑结构的限制,可以应用于互联网网 络通信,所述互联网既可以是家庭、学校以及小型会议办公场所等组建小型 的局域网络,也可以是远程广域网。

以上对本发明所提供的一种片上网络中缓存一致性的维护方法和一种 片上网络路由,进行了详细介绍,本文中应用了具体个例对本发明的原理及 实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及 其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具 体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理 解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号