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

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

Info

Publication number
CN102801600B
CN102801600B CN201110136049.6A CN201110136049A CN102801600B CN 102801600 B CN102801600 B CN 102801600B CN 201110136049 A CN201110136049 A CN 201110136049A CN 102801600 B CN102801600 B CN 102801600B
Authority
CN
China
Prior art keywords
network
chip
bag
packet
order
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110136049.6A
Other languages
English (en)
Other versions
CN102801600A (zh
Inventor
曾富涔
乔林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201110136049.6A priority Critical patent/CN102801600B/zh
Publication of CN102801600A publication Critical patent/CN102801600A/zh
Application granted granted Critical
Publication of CN102801600B publication Critical patent/CN102801600B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

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

Description

片上网络中缓存一致性的维护方法和片上网络路由
技术领域
本发明涉及片上多处理器、片上系统和缓存系统技术领域,特别是涉及一种片上网络中缓存一致性的维护方法和一种片上网络路由。
背景技术
随着片上处理器中计算核心数量的不断增长,片上网络(NoC,NetworkonChip)逐渐成为片上多处理器(CMP,ChipMultiprocessors)片上通信的重要介质和方法。
随着CMP规模的增大,需要片上存储系统为其提供大量的数据。目前CMP通常采用共享缓存(Cache)上的片上存储系统。由于处理器核中通常包含私有缓存,在CMP中,必须使用缓存一致性协议来维护私有缓存中数据的一致性和完整性。
缓存一致性维护是指在源数据被更新,而同时又有用户请求缓存数据时,维护源数据与缓存拷贝之间的一致性。设计缓存一致性维护机制的共同目标是以最低的代价(包括通信开销、功率消耗、响应延迟等)满足用户对缓存一致性的需求。
传统的缓存一致性协议主要有两种,分别是基于监听的缓存一致性协议(Snooping-basedcachecoherenceprotocol)和基于目录的缓存一致性协议(Directory-basedcachecoherenceprotocol);其中,基于监听的缓存一致性协议由于其自身算法的可扩展性有限并不适合大规模的片上网络实现;在这种情况下,基于目录的缓存一致性策略协议由于其高度可扩展而变得非常重要,并且在大规模的片上系统设计中被寄予了很大的期望。
然而,传统基于目录的缓存一致性协议直接实现在片上网络上的通信代价是非常大的,由此会给缓存的访问带来较长延迟,使得处理器总体性能受到影响。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够降低上述情形下访问缓存的延迟。
发明内容
本发明所要解决的技术问题是提供一种片上网络中缓存一致性的维护方法和一种片上网络路由,能够降低片上多处理器和片上系统的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(modifiedexclusivesharedinvalid,修改、独占、共享、无效)协议是一种采用写-无效方式的协议,它要求每个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个端口;由于在相邻两个结点之间不允许同时使用命令线和数据线,在路由器出端端口设置二过一门电路;以上这些结构的设计可以使得数据包和命令包在不同路由上同时传输,能够降低片上系统上传输数据的过程中出现的数据延迟。
本发明的片上网络路由不受网络拓扑结构的限制,可以应用于互联网网络通信,所述互联网既可以是家庭、学校以及小型会议办公场所等组建小型的局域网络,也可以是远程广域网。
以上对本发明所提供的一种片上网络中缓存一致性的维护方法和一种片上网络路由,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

1.一种片上网络中缓存一致性的维护方法,其特征在于,包括:
通过在片上网络中分别传输数据包和命令包,来执行基于目录的缓存一致性协议;
其中,所述基于目录的缓存一致性协议为MESI协议,所述MESI协议包括读中间态和写中间态;
所述执行MESI协议的步骤,包括:
在片上网络路由中,针对不同命令类型的命令包,执行相应的MESI协议,所述命令类型包括:片上网络读请求、片上网络写请求或者片上网络确认信息;
其中,在片上网络路由中,针对片上网络读请求的命令包,执行相应的MESI协议的步骤,包括:
如果当前结点为读请求发送结点,CPU将片上网络读请求发送结点重定向到目录结点,并将缓存块的状态置为读中间态,等待返回数据和确认信息。
2.如权利要求1所述的方法,其特征在于,在片上网络路由中,针对片上网络确认信息的命令包,执行相应的MESI协议的步骤,包括:
如果确认信息类型为读请求共享确认信息,并且此确认信息的缓存块处于读中间态,CPU将此确认信息的状态置为共享态;如果确认信息类型为读请求共享确认信息,并且此确认信息的缓存块处于写中间态,CPU以写穿的方式向缓存写入数据,并将此信息的缓存块置为独占态;
如果确认信息类型为读请求无共享的确认信息,并且此确认信息的缓存块处于读中间态,CPU将访问二级缓存,获取数据;如果确认信息类型为读请求无共享的确认信息,并且此确认信息的缓存块处于写中间态,CPU以写穿的方式向缓存写入数据,并将此确认信息的缓存块置为独占态。
3.如权利要求1所述的方法,其特征在于,所述命令包为单片包,所述数据包为多片包。
4.如权利要求1或3所述的方法,其特征在于,所述命令包的结构,包括:
RI、SN、Type、Address,RI、SN、Type、Address的总长度为128位;其中,
所述RI用来记录路由信息;
所述SN为序列号,其长度为2位,用来区分通信网络包的类型及用来区别当前通信网络包是头片或者是尾片;当SN为11时,命令包为单片命令包,既是头片,又是尾片;所述Type用于指示命令的类型,长度为3位;
所述Address用来显示地址信息,长度为64或32位。
5.如权利要求1或3所述的方法,其特征在于,所述数据包的结构,包括:
一片头片、一个缓存块的4个数据片、1片尾片,三者的总长度为768位;
其中,
所述头片包括RI、SN,头片用来记录全部路由信息,
所述SN是序列号,长度为2位,用来区分通信网络包的类型及用来区分当前通信网络包是头片或者是尾片;当SN为00时,通信网络包的类型为数据包;SN为01时,此片为该数据包头片;SN为10时,此片为该数据包尾片;
所述数据包包括一个缓存块的4个数据片,其中每个缓存块的大小为64字节大小,以128位为一片。
6.一种片上网络中缓存一致性的维护方法,其特征在于,包括:
通过在片上网络中分别传输数据包和命令包,来执行基于目录的缓存一致性协议;
其中,所述基于目录的缓存一致性协议为MESI协议,所述MESI协议包括读中间态和写中间态;
所述执行MESI协议的步骤,包括:
在片上网络路由中,针对不同命令类型的命令包,执行相应的MESI协议,所述命令类型包括:片上网络读请求、片上网络写请求或者片上网络确认信息;
其中,在片上网络路由中,针对片上网络写请求的命令包,执行相应的MESI协议的步骤,包括:
如果当前结点为写请求发送结点,并且该写请求发送结点的缓存块的状态处于共享态或无效态,CPU将写请求发送结点重定向到目录结点,并将缓存块的状态置为写中间态;开始写入数据,等待网络返回确认信息。
7.如权利要求6所述的方法,其特征在于,所述命令包为单片包,所述数据包为多片包。
8.如权利要求6或7所述的方法,其特征在于,所述命令包的结构,包括:
RI、SN、Type、Address,RI、SN、Type、Address的总长度为128位;其中,
所述RI用来记录路由信息;
所述SN为序列号,其长度为2位,用来区分通信网络包的类型及用来区别当前通信网络包是头片或者是尾片;当SN为11时,命令包为单片命令包,既是头片,又是尾片;所述Type用于指示命令的类型,长度为3位;
所述Address用来显示地址信息,长度为64或32位。
9.如权利要求6或7所述的方法,其特征在于,所述数据包的结构,包括:
一片头片、一个缓存块的4个数据片、1片尾片,三者的总长度为768位;
其中,
所述头片包括RI、SN,头片用来记录全部路由信息,
所述SN是序列号,长度为2位,用来区分通信网络包的类型及用来区分当前通信网络包是头片或者是尾片;当SN为00时,通信网络包的类型为数据包;SN为01时,此片为该数据包头片;SN为10时,此片为该数据包尾片;
所述数据包包括一个缓存块的4个数据片,其中每个缓存块的大小为64字节大小,以128位为一片。
10.一种片上网络路由装置,其特征在于,包括:在其电路上布置命令线和数据线;入端端口、入端选择电路、输入缓冲区、交叉开关、输出缓冲区、出端选择电路、出端端口;其中,
所述命令线,用于传输命令包;
所述数据线,用于传输数据包;
所述入端选择电路同时连接所述命令线和数据线,用于接收传入的命令包和/或数据包,并从中选择一者,将其通过所述入端端口送入所述输入缓冲区;其中,入端选择电路模式为先到先服务;
所述输入缓冲区,包括:
入端缓冲区,用于缓存所述入端端口传入的命令包和/或数据包;及
输入状态控制单元,用于控制入端缓冲区中命令包和/或数据包的状态;
所述输出缓冲区,包括:
出端缓冲区,用于缓存所述交叉开关输出的命令包和/或数据包,以及,将命令包和/或数据包输出至所述出端端口;及
输出状态控制单元,用于控制出端缓冲区中命令包和/或数据包的状态;
所述出端选择电路,用于接收所述出端端口传入的命令包和/或数据包,并将其通过相应的线输出;其中,出端选择信号由头片SN的两个比特位决定,如果是11则进入命令线,如果是其它则进入数据线。
11.如权利要求10所述的片上网络路由装置,其特征在于,还包括:
路由计算单元,与所述输入缓冲区相连,用于对所述输入缓冲区中的命令包和/或数据包进行路由计算,并依据基于MESI的并行缓存一致性协议,对所述输入缓冲区中命令包和/或数据包对应缓存块的状态进行修改,其中,所述MESI协议的缓存状态包括读中间态和写中间态;
其中,完成路由计算的命令包和/或数据包输出至所述交叉开关。
CN201110136049.6A 2011-05-24 2011-05-24 片上网络中缓存一致性的维护方法和片上网络路由 Active CN102801600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110136049.6A CN102801600B (zh) 2011-05-24 2011-05-24 片上网络中缓存一致性的维护方法和片上网络路由

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110136049.6A CN102801600B (zh) 2011-05-24 2011-05-24 片上网络中缓存一致性的维护方法和片上网络路由

Publications (2)

Publication Number Publication Date
CN102801600A CN102801600A (zh) 2012-11-28
CN102801600B true CN102801600B (zh) 2016-04-20

Family

ID=47200571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110136049.6A Active CN102801600B (zh) 2011-05-24 2011-05-24 片上网络中缓存一致性的维护方法和片上网络路由

Country Status (1)

Country Link
CN (1) CN102801600B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733529A (zh) * 2017-04-19 2018-11-02 龙芯中科技术有限公司 Axi交叉开关的间插功能的验证方法与装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111080510B (zh) * 2019-12-11 2021-02-12 海光信息技术股份有限公司 数据处理装置、方法、芯片、处理器、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488922A (zh) * 2009-01-08 2009-07-22 浙江大学 具备自适应路由能力的片上网络路由器及其实现方法
CN101593159A (zh) * 2008-05-30 2009-12-02 英特尔公司 使用关键度信息来路由高速缓存一致性通信

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593159A (zh) * 2008-05-30 2009-12-02 英特尔公司 使用关键度信息来路由高速缓存一致性通信
CN101488922A (zh) * 2009-01-08 2009-07-22 浙江大学 具备自适应路由能力的片上网络路由器及其实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733529A (zh) * 2017-04-19 2018-11-02 龙芯中科技术有限公司 Axi交叉开关的间插功能的验证方法与装置
CN108733529B (zh) * 2017-04-19 2021-08-10 龙芯中科技术股份有限公司 Axi交叉开关的间插功能的验证方法与装置

Also Published As

Publication number Publication date
CN102801600A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN111104775B (zh) 一种片上网络拓扑结构及其实现方法
US9680770B2 (en) System and method for using a multi-protocol fabric module across a distributed server interconnect fabric
CN101739241A (zh) 一种片上多核dsp簇和应用扩展方法
US7971029B2 (en) Barrier synchronization method, device, and multi-core processor
CN103440223A (zh) 一种实现高速缓存一致性协议的分层系统及其方法
CN101477512B (zh) 一种处理器系统及其访存方法
CN105874758B (zh) 内存访问方法、交换机及多处理器系统
US20120185633A1 (en) On-chip router and multi-core system using the same
JPH0776942B2 (ja) マルチプロセッサ・システムおよびそのデータ伝送装置
CN108400880A (zh) 片上网络、数据传输方法和第一交换节点
CN105183662A (zh) 一种无cache一致性协议的分布式共享片上存储架构
CN103106173A (zh) 多核处理器核间互联的方法
Alimi et al. Network-on-chip topologies: Potentials, technical challenges, recent advances and research direction
CN114338824A (zh) 用于数据处理系统的消息协议
US9830283B2 (en) Multi-mode agent
CN108563501A (zh) 动态可重构高速串行总线的中断请求方法及装置
CN106844263B (zh) 一种基于可配置的多处理器计算机系统及实现方法
CN114153775B (zh) 一种基于AXI总线的FlexRay控制器
CN102801600B (zh) 片上网络中缓存一致性的维护方法和片上网络路由
CN103222286A (zh) 路由交换装置、网络交换系统和路由交换方法
CN105718349B (zh) 跨管芯接口监听或全局观察消息排序
CN102013984A (zh) 二维网状片上网络系统
CN112506824A (zh) 一种芯片和数据交互方法
Alimi et al. Network-on-Chip Topologies: Potentials, Technical Challenges, Recent Advances and Research Direction
CN113544658A (zh) 置换环形网络互联的计算架构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant