一种双层自适应重配置环簇片上网络硬件结构转让专利

申请号 : CN202110657539.4

文献号 : CN113490293B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩军樊志恒

申请人 : 复旦大学

摘要 :

本发明公开了一种双层自适应重配置环簇片上网络硬件结构。其网络由基于包交换的8X8 Mesh网络层以及拥有自适应调整能力的可配置环状网络层两个部分组成,数据包可选择通过Mesh网络或者通过周期性重配置的Ring网络进行传输。片上网络硬件结构具体包括:Mesh网络层路由器模块、Ring网络层普通节点模块、Ring网络层远程节点模块、Ring网络层可配置链路模块、Bypass仲裁模块;Ring网络层普通节点模块和Ring网络层远程节点模块共同组成Ring网络层;双层网络同时结合两种网络的优势,利用自适应重配置的方式在为片上通信提供足够高传输带宽的同时降低片上通信的总体延时。

权利要求 :

1. 一种双层自适应重配置环簇片上网络硬件结构,其特征在于,双层自适应重配置环簇片上网络由基于包交换的8X8 Mesh网络层以及拥有自适应调整能力的可配置环状网络层两个部分组成,数据包可选择通过Mesh网络或者通过周期性重配置的Ring网络进行传输;具体来说,片上网络硬件结构包括:Mesh网络层路由器模块、Ring网络层普通节点模块、Ring网络层远程节点模块、Ring网络层可配置链路模块、Bypass仲裁模块;其中:所述Mesh网络层路由器模块,是一个七端口的路由器,其中,东、西、南、北方向的端口分别连接其它路由节点,组成8X8的Mesh结构,其它3个端口为本地端口,分别连接本地的处理器核、缓存等组件;各个节点间采用包交换的方式进行数据传输;数据先在网络接口中被打包成数据包,然后利用包头中的各种信息在各个路由节点上以一跳一跳的方式进行传输,直至到达目标节点;其中每个路由节点的延时为三个时钟周期;Mesh互连网络层采用固定X‑Y的路由方式,即数据包在通过Mesh层进行传输时,先沿X方向到达X方向的目标节点,然后才转向Y方向进行传输,并最终到达目标节点;同时采用虚拟网络和虚拟通道的方式来避免协议级死锁以及降低头阻塞的发生,每个路由端口虚拟通道数量为5,虚拟网络数量为

3;

所述Ring网络层普通节点模块和Ring网络层远程节点模块共同组成Ring网络层;在Mesh网络的基础上,把64个节点划分为5个环簇;其中,每个环簇内部的节点相互连接形成局部的环网,每个环簇均为双向环,即各节点间可根据目标节点位置选择沿顺时针方向或者逆时针方向进行数据传输;各环簇之间通过Ring网络层可配置链路模块相互连接;其中,所述Ring网络层普通节点模块用于进行环内数据传输,所述Ring网络层远程节点模块除用于进行环内数据的传输外,还兼顾环间数据的传输;环状网络节点间的传输延时为一个周期;

所述Ring网络层可配置链路模块,由可配置的转换开关组成,用于建立各个环簇间的链路连接,这些转换开关根据当前网络中的通信状况被周期性重配置,以此来改变各环簇的连接方式;

所述Bypass仲裁单元,用于对环内的Bypass请求进行仲裁;每个环簇内包含两个所述Bypass仲裁单元分别负责两个半环的Bypass请求仲裁;由于离远程节点越远的节点通过Bypass通路传输收益越大,所以仲裁单元采用固定优先级的方式进行仲裁,离远程节点距离越远,优先级越高;每个时钟周期各个节点在将数据包注入片上网络前会解析包头信息决定是否向所述Bypass仲裁单元申请链路建立,所述Bypass仲裁单元按照固定的优先级顺序完成仲裁后会重配置出一条胜出节点到目标远程节点的链路,并在该节点完成整个数据包的传输后进行新的请求仲裁;

所述Mesh网络层路由器模块中,数据包在Mesh网络中的传输流程如下:(1)数据包首先以Flit为单位被写入相应的虚拟通道,每个端口拥有5个虚拟通道;在数据包的包头写入虚拟通道后由路由计算单元Route Compute对每个虚拟通道的数据包进行路由计算;Mesh网络使用固定X‑Y路由,路由计算单元通过解析包头中的目标节点并和当前节点的位置进行比较确定该数据包的输出方向;在完成路由方向的计算后使用寄存器保存计算结果,以便于后续的包体和包尾能够利用该信息进行正确方向的数据传输;

(2)在各个输入端口虚拟通道完成路由计算后,向各个输出端口的虚拟通道进行输出请求,输出端口的路由仲裁单元Router arbiter对各个端口虚拟通道的请求进行仲裁,在确认优胜者后,相应数据包的Flit通过交叉开关Crossbar到达对应的输出端口;路由计算单元使用的是轮询调度的仲裁机制保证负载的均衡性;

(3)在各个端口完成路由仲裁后,输出仲裁单元Outputarbiter对5个虚拟通道进行仲裁选择一个虚拟道的数据包Flit进行发送,仲裁方式同样使用轮询调度机制;在完成输出仲裁后,其中一个虚拟通道的数据包Flit经过路由节点间的连线到达下一路由节点并写入对应的虚拟通道缓冲区中;

在Ring网络层,环状网络的通路包括顺时针环通路、逆时针环状通路以及Bypass通路三个部分;首先数据包Flit根据包头路由信息选择顺时针、逆时针或者通过Bypass通路直接到达远程节点;顺时针通路和逆时针通路,由保存Flit的缓冲区和一些多路选择器组成;

当本地端口和相邻环状网络端口同时有数据注入时,相邻环状网络端口拥有更高优先级,数据包选择Mesh网络进行发送;数据包在进行跨环传输时,使用快速链路Express link快速Bypass到相应的远程节点;快速链路Express link通过所述Bypass仲裁单元被预先配置形成某个节点到远程节点的直接链路连接,数据包借由该链路实现单周期多跳的传输;数据包在环内沿顺时针或逆时针传递时,所述Ring网络层普通节点模块通过对比包头中的目标节点信息与该节点是否匹配来确定数据包是否到达目标节点,如果数据包到达目标节点且目标节点可以接收数据,则数据包离开环状网络传输进入目标节点;如果数据包未到达目标节点或者目标节点处于繁忙状态,则数据包进行绕环,等待下一次再次到达该节点;

所述Ring网络层远程节点模块环内传输方式与所述Ring网络普通程节点模块一致,下面主要对所述Ring网络层远程节点模块的跨环传输机制进行介绍;在数据包由相邻节点或者快速链路传输至所述Ring网络层远程节点模块后,其先依据包头中的目标节点信息确认是否将数据包进行跨环传输;在数据包需要跨环传输和远程环簇缓冲区空闲的情况下,将数据包通过预先配置的链路传输至远程环簇;同样如果远程环簇不可用时,仍然使用绕环的方式等待下次到达该节点时再次进行传输请求;在数据到达目标环簇后,需要经过环簇内的路由表确定新的传输方向,然后将数据包注入相应方向的远程缓冲区中;远程缓冲区内的数据包相较于网络中的数据包优先级较低,必须等待相邻节点无数据包注入时才能进行传输,防止因远程数据包的注入导致原环状网络数据传输发生停顿并最终造成死锁。

说明书 :

一种双层自适应重配置环簇片上网络硬件结构

技术领域

[0001] 本发明属于集成电路设计技术领域,具体涉及一种双层自适应重配置环簇片上网络硬件结构。

背景技术

[0002] 由于单核处理器在性能和功耗方面的限制,现代处理器大多采用多核甚至众核的组织方式。近些年来,伴随着半导体工艺的不断地进步和处理器单核心架构向多核心架构
的演进,设计师们倾向于在单个芯片上集成越来越多的核心数量以增强处理器的并行处理
能力和满足用户多任务的需求。人们虽然可以利用不断增加核数的方式来提升处理器的并
行能力,进而增强处理器性能,但随着处理器核数的增加,多核处理器相关的一系列问题也
逐渐涌现,其中多核心间的互联问题逐渐成为了制约多核处理器性能的重要因素。传统的
片内互连通常采用总线或者交叉开关的结构,这两种互连结构在4‑8核的处理器中占据主
流。因为总线结构和交叉开关结构在带宽和可扩展性方面的限制且现代众核处理器核数多
大数十甚至上百,基于总线或者交叉开关的互连网络结构显然无法满足数量众多核心间的
通信需求。在这种情况下,片上网络由于其较高的带宽和良好的可扩展性迅速替代了总线
和交叉开关结构,成为了多核处理器中普遍采用的互连结构。虽然片上网络相较于传统总
线或者交叉开关结构能够提供更高的通信带宽,然而现在较为常用的Mesh结构包交换片上
网络,由于需要复杂的路由结构通常会有较高的数据传输延时,从而影响整个多核处理器
的性能。

发明内容

[0003] 为了克服现有技术的不足,本发明提出一种具有较高传输带宽以及较低传输延时的双层自适应重配置环簇片上网络硬件结构。
[0004] 本发明中,双层自适应重配置环簇片上网络由基于包交换的8X8 Mesh网络层以及拥有自适应调整能力的可配置环状网络层两个部分组成,数据包可选择通过Mesh网络或者
通过周期性重配置的Ring网络进行传输。具体来说,片上网络硬件结构包括:Mesh网络层路
由器模块、Ring网络层普通节点模块、Ring网络层远程节点模块、Ring网络层可配置链路模
块、Bypass仲裁模块;Ring网络层普通节点模块和Ring网络层远程节点模块共同组成Ring
网络层;双层网络同时结合两种网络的优势,利用自适应重配置的方式在为片上通信提供
足够高传输带宽的同时降低片上通信的总体延时。
[0005] 本发明采用双层网络结构,利用Mesh网络高带宽、高吞吐量,以及Ring网络低复杂度、低延时的优势,为多核片上通信提供较高的传输带宽以及较低的传输延时。
[0006] 本发明提供的双层自适应重配置环簇片上网络硬件结构,其包括:Mesh网络层路由器模块,Ring网络层普通节点模块,Ring网络层远程节点模块,Ring网络层可配置链路模
块,Bypass仲裁单元;其中:
[0007] 所述Mesh网络层路由器模块,是一个七端口的路由器,东、西、南、北方向端口分别连接其它路由节点,组成8X8的Mesh结构,其它3个端口为本地端口,分别连接本地的处理器
核、缓存等组件。各个节点间采用包交换的方式进行数据传输。数据先在网络接口中被打包
成数据包,然后利用包头中的各种信息在各个路由节点上以一跳一跳的方式进行传输,直
至到达目标节点;其中每个路由节点的延时为三个时钟周期。Mesh互连网络层采用固定X‑Y
的路由方式,即数据包在通过Mesh层进行传输时,会先沿X方向到达X方向的目标节点然后
才能转向Y方向进行传输并最终到达目标节点。固定X‑Y的路由方式不仅能够简化路由器设
计而且能够避免死锁的产生。同时本设计采用虚拟网络和虚拟通道的方式来避免协议级死
锁以及降低头阻塞的发生,每个路由端口虚拟通道数量为5,虚拟网络数量为3。
[0008] 进一步地,数据包在Mesh网络中的传输流程如下:
[0009] (1)数据包首先以Flit为单位被写入相应的虚拟通道,每个端口拥有5个虚拟通道。在数据包的包头写入虚拟通道后由路由计算单元Route Compute对每个虚拟通道的数
据包进行路由计算。Mesh网络使用的是固定X‑Y路由,路由计算单元通过解析包头中的目标
节点并和当前节点的位置进行比较确定该数据包的输出方向。在完成路由方向的计算后需
要使用寄存器保存计算结果以便于后续的包体和包尾能够利用该信息进行正确方向的数
据传输。
[0010] (2)在各个输入端口虚拟通道完成路由计算后会向各个输出端口的虚拟通道进行输出请求,输出端口的路由仲裁单元Router arbiter对各个端口虚拟通道的请求进行仲
裁,在确认优胜者后,相应数据包的Flit通过交叉开关Crossbar到达对应的输出端口。路由
计算单元使用的是轮询调度的仲裁机制保证负载的均衡性。
[0011] (3)在各个端口完成路由仲裁后,输出仲裁单元Outputarbiter对5个虚拟通道进行仲裁选择一个虚拟道的数据包Flit进行发送,仲裁方式同样使用的是轮询调度机制。在
完成输出仲裁后,其中一个虚拟通道的数据包Flit经过路由节点间的连线到达下一路由节
点并写入对应的虚拟通道缓冲区中。
[0012] 所述Ring网络层普通节点模块和Ring网络层远程节点模块共同组成Ring网络层。在Mesh网络的基础上,64个节点被划分为5个环簇;其中,每个环簇内部的节点相互连接形
成局部的环网,每个环簇均为双向环,即各节点间可根据目标节点位置选择沿顺时针方向
或者逆时针方向进行数据传输。各环簇之间通过Ring网络层可配置链路模块相互连接。其
中,Ring网络层普通节点模块用于进行环内数据传输,Ring网络层远程节点模块除了进行
环内数据的传输外还要兼顾环间数据的传输。由于环状网络方向较为单一,不像Mesh网络
一样需要复杂的路由仲裁单元,因此传输延时较低。环状网络节点间的传输延时为一个周
期。
[0013] 进一步地,在Ring网络层中,总体来说,环状网络的通路包括顺时针环通路,逆时针环状通路以及Bypass通路三个部分。首先数据包Flit根据包头路由信息选择顺时针,逆
时针或者通过Bypass通路直接到达远程节点。由于环状网络传输方向较为单一因此顺逆时
针通路较为简单,由保存Flit的缓冲区和一些多路选择器组成。当本地端口和相邻环状网
络端口同时有数据注入时,相邻环状网络端口拥有更高优先级,数据包会选择Mesh网络进
行发送。数据包在进行跨环传输时可以使用快速链路Express link快速Bypass到相应的远
程节点。快速链路Express link会通过所述Bypass仲裁单元被预先配置形成某个节点到远
程节点的直接链路连接,数据包可借由该链路实现单周期多跳的传输。
[0014] 数据包在环内沿顺、逆时针传递时,所述Ring网络层普通节点模块通过对比包头中的目标节点信息与该节点是否匹配来确定数据包是否到达目标节点,如果数据包到达目
标节点且目标节点可以接收数据,则数据包会离开环状网络传输进入目标节点;如果数据
包未到达目标节点或者目标节点处于繁忙状态,则数据包会进行绕环,等待下一次再次到
达该节点。
[0015] Ring网络层远程节点模块除了进行环内传输外还需负责跨环的数据传输因此结构相对复杂一些。所述Ring网络层远程节点模块环内传输方式与所述Ring网络普通程节点
模块一致,因此我们主要对所述Ring网络层远程节点模块的跨环传输机制进行介绍。在数
据包由相邻节点或者快速链路传输至所述Ring网络层远程节点模块后,其会先依据包头中
的目标节点信息确认是否将数据包进行跨环传输,在数据包需要跨环传输和远程环簇缓冲
区空闲的情况下将数据包通过预先配置的链路传输至远程环簇,同样如果远程环簇不可用
时,仍然使用绕环的方式等待下次到达该节点时再次进行传输请求。在数据到达目标环簇
后,需要经过环簇内的路由表确定新的传输方向,然后将数据包注入相应方向的远程缓冲
区中。远程缓冲区内的数据包相较于网络中的数据包优先级较低,必须等待相邻节点无数
据包注入时才能进行传输,防止因远程数据包的注入导致原环状网络数据传输发生停顿并
最终造成死锁。
[0016] 所述Ring网络层可配置链路模块,由可配置的转换开关组成,用于建立各个环簇间的链路连接,这些转换开关会根据当前网络中的通信状况被周期性重配置,以此来改变
各环簇的连接方式;
[0017] 所述Bypass仲裁单元,用于对环内的Bypass请求进行仲裁;每个环簇内包含两个所述Bypass仲裁单元分别负责两个半环的Bypass请求仲裁;由于离远程节点越远的节点通
过Bypass通路传输收益越大,所以仲裁单元采用固定优先级的方式进行仲裁,离远程节点
距离越远,优先级越高;每个时钟周期各个节点在将数据包注入片上网络前会解析包头信
息决定是否向所述Bypass仲裁单元申请链路建立,所述Bypass仲裁单元按照固定的优先级
顺序完成仲裁后会重配置出一条胜出节点到目标远程节点的链路,并在该节点完成整个数
据包的传输后进行新的请求仲裁。
[0018] 与现有技术相比,本发明的有益技术效果体现在:
[0019] (1)设计了Mesh + Ring的双层片上网络架构,利用现在较为常用的包交换Mesh网络作为基础传输层,可配置Ring网络作为快速传输层,通过重配置Ring网络层来加速网络
中的关键节点以此来达到降低通信延时,提升网络吞吐量的目的。该网络充分结合了Mesh
网络高带宽,高吞吐量以及Ring网络低复杂度,低延时的优势。而且通过将网络中的所有节
点划分为5个环簇,大大降低了对网络中通信状况监测以及对网络进行重配置互连的复杂
度。
[0020] (2)在Ring网络中实现了Bypass机制,通过在环内设置仲裁器对想要进行跨环传输的节点进行仲裁,直接将需要跨环传输的数据包Bypass到环内的互连节点处,以此来实
现网络的单周期多跳,进一步降低环间传输的延时。

附图说明

[0021] 图1为双层自适应重配置环簇片上网络的结构框图。
[0022] 图2为Mesh网络路由器模块的结构框图。
[0023] 图3为Ring网络普通节点模块的结构图。
[0024] 图4为Ring网络远程节点模块的结构图。
[0025] 图5为Ring网络可配置链路模块结构图。
[0026] 图6为环簇网络的Bypass机制示意图。

具体实施方式

[0027] 本发明中,双层自适应重配置环簇片上网络的结构如图1所示。片上互连网络采用Mesh+Ring双层网络结构,Mesh网络是一个8X8的包交换网络,连接各个处理器核,一级缓
存,二级缓存和主存储。整个处理器核,一级缓存,二级缓存,主存储器又被划分为5个环簇,
形成了5个局部环,用环状网络进行互连。每个局部环内包含两组环间互连节点,各个局部
环通过环间互连节点进行可配置互连。
[0028] Mesh网络由64个路由节点相互连接组成,如图2是一个Mesh网络的路由节点。其是一个七端口的路由器,东East,西West,南South,北North方向分别连接其它路由节点组成
8X8的Mesh结构,其它3个端口为本地端口,分别连接一级缓存L1Cache,二级缓存L2Cache和
主存储器Main Memory。路由器中各个端口结构完全一致,文中设计的路由器包含3个流水
线阶段,因此每个flit在路由节点上进行一跳的延时是三个时钟周期。下面是对路由器中
每个流水线阶段进行介绍。
[0029] 数据包首先以flit为单位被写入相应的虚拟通道,虚拟通道和虚拟网络的划分前文已经进行了介绍。第一个流水线阶段是对每个虚拟通道的数据包进行路由计算。由于
Mesh网络使用的是固定X‑Y路由,因此路由计算较为简单。通过解析包头中的目标节点并和
当前节点的位置进行比较确定该数据包的输出方向。在完成路由方向的计算后需要使用寄
存器保存计算结果以便于后续的包体和包尾能够利用该信息进行正确方向的数据传输。
[0030] 第二个流水线阶段主要是输出端口对各个输入端口请求的仲裁。在各个输入端口虚拟通道完成路由计算后会向各个输出端口的虚拟通道进行输出请求,因此输出端口需要
设置路由仲裁单元对各个端口虚拟通道的请求进行仲裁,在确认优胜者后,相应数据包的
flit通过交叉开关到达对应的输出端口。路由计算单元使用的是轮询调度的仲裁机制保证
负载的均衡性。即各端口的优先级会在一次成功的仲裁后以轮询的方式变动。举例来说,假
如7个端口的优先级按照东,西,南,北,一级缓存, 二级缓存, 主存储器的顺序排列,如果
前一次发送了东边输入端口的数据包,则下次发送时其后面一位即西边端口的数据包就有
最高优先级被发送,后序的优先级的排序依次是,南,北,一级缓存, 二级缓存, 主存储器,
东。
[0031] 第三个流水线阶段是对5个虚拟通道进行仲裁选择一个虚拟道的数据包Flit进行发送。仲裁方式同样使用的是轮询调度机制。由于虚拟通道的存在,Outputarbiter单元还
需要对虚拟通道进行选择,保证相应的数据包进入对应的虚拟网络和虚拟通道,并利用多
个虚拟通道解决头阻塞问题。在完成输出仲裁后,其中一个虚拟通道的数据包Flit经过路
由节点间的连线到达下一路由节点并写入对应的虚拟通道Buffer中。
[0032] 整个环状网络由5个小的环簇网络组成。每个环簇内包含两种类型的节点:用于环内传输的普通网络节点和兼顾环内传输和环间传输的远程节点。同时环内还包括用于
Bypass仲裁的仲裁单元。5个环簇间通过可配置互连的链路节点进行连接。
[0033] 如图3是环状网络普通节点的结构示意图,环状网络的通路包括顺时针环通路Clockwise ring,逆时针环状通路Counter‑clockwise ring以及Bypass通路Express link
三个部分。环状网络由于传输方向单一,一跳传输的延时是一个时钟周期。首先数据包Flit
经过网络接口选择后进入环状网络节点处,选择顺时针,逆时针或者通过Bypass通路直接
到达远程节点。由于环状网络传输方向较为单一因此顺逆时针通路较为简单,由保存Flit
的FIFO和一些Mux组成。当本地端口和相邻环状网络端口同时有数据注入时,相邻环状网络
端口拥有更高优先级,数据包会选择Mesh网络进行发送。数据包在进行跨环传输时可以使
用快速链路Express link快速Bypass到相应的远程节点。Express link会通过Bypass仲裁
单元被预先配置形成某个节点到远程节点的直接链路连接,数据包可借由该链路实现单周
期多跳的传输。
[0034] 在数据到达环状网络的目标节点时如果目标节点网络接口处于Busy状态,无法接收此数据包,则数据包会进行绕环等待下一次再次到达该节点。这样做是因为如果在缓冲
区中保存该数据包信息,直至网络接口的Busy状态解除,会导致环状网络数据传输的停顿,
最终导致死锁的发生。
[0035] 图4是远程传输节点的结构图,相较于普通节点,远程节点还需负责跨环的数据传输因此结构相对复杂一些。远程节点环内传输方式与普通节点一致,因此我们主要对远程
节点的跨环传输机制进行介绍。
[0036] 在数据包到达目标远程节点后,远程节点通过包头中的信息确定是否需要将该数据包传输至该节点相连的远程环簇中,在数据包需要跨环传输和远程环簇缓冲区空闲的情
况下将数据包通过预先配置的链路传输至远程环簇,同样如果远程环簇不可用时,不能进
行等待,仍然使用绕环的方式等待下次到达该节点时再次进行传输请求。
[0037] 在数据到达目标环簇后,需要经过环簇内的路由表routing table确定新的传输方向,然后将数据包注入相应方向的远程缓冲区中去。远程缓冲区内的数据包相较于网络
中的数据包优先级较低,必须等待相邻节点无数据包注入时才能进行传输,防止因远程数
据包的注入导致原环状网络数据传输发生停顿并最终造成死锁。
[0038] 图5中展示了用于5个环簇互连的可配置链路的结构,其结构较为简单主要由可配置的转换开关组成。重配置单元通过周期性的对这些转换开关进行重配置来改变各环簇的
连接方式。
[0039] 图6为一个环簇的结构,我们结合该图对环簇网络的Bypass传输机制进行解释。每个环簇内包含两个Bypass仲裁单元分别负责两个半环的Bypass请求仲裁。节点3和节点11
为两个远程节点。Bypass arbiter 1负责节点0,1,2,11,12,13,14,15的Bypass请求仲裁,
Bypass arbiter 2负责节点3,4,5,6,7,8,9,10的Bypass请求仲裁。由于离远程节点越远的
节点通过Bypass通路传输收益越大,所以仲裁器采用固定优先级的方式进行仲裁,离远程
节点距离越远,优先级越高。仲裁器在完成仲裁后会重配置出一条胜出节点到目标远程节
点的链路,并在该节点完成整个数据包的传输后进行新的请求仲裁。