CN105391610B - Gpgpu网络请求报文无冲突发送方法 - Google Patents
Gpgpu网络请求报文无冲突发送方法 Download PDFInfo
- Publication number
- CN105391610B CN105391610B CN201510736872.9A CN201510736872A CN105391610B CN 105391610 B CN105391610 B CN 105391610B CN 201510736872 A CN201510736872 A CN 201510736872A CN 105391610 B CN105391610 B CN 105391610B
- Authority
- CN
- China
- Prior art keywords
- router
- mesh
- bit
- message
- register
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/4013—Management of data rate on the bus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种GPGPU网络请求报文无冲突发送方法,目的是利用简单的路由器来高效的传输请求报文。技术方案是先将数据链路带宽为b bit的n*n的mesh网络划分成n个相互独立的Mesh子网;然后简化Meshy中路由器的微体系结构;计算结点Ci通过与其相连的Meshy将请求报文传输给目的节点Mj。采用本发明可无冲突地发送请求报文,且硬件开销小,功耗消耗低,降低了片上网络的硬件开销和功耗开销。
Description
技术领域:本发明涉及GPGPU(General-Purpose Grahpic-Processs-Unit,通用图形处理器)对请求报文的发送方法,尤其涉及GPGPU请求网络只利用低硬件开销与低功耗开销来传递请求报文的无冲突发送方法。
背景技术:根据摩尔定律的预测,每18个月单位面积晶体管的数目将翻一翻。越来越多的晶体管资源在给处理器带来巨大计算能力的同时也给处理器体系结构的设计带来了巨大的挑战。随着晶体管数量的不断增加,增加流水线的深度所带来的频率提升面临着功耗和物理极限等方面的挑战,因此单核的计算能力已经达到极限。从2005年起,Intel和AMD公司开始争相推出多核处理器,利用多个计算能力较弱的小核来替换单个计算能力很强的大核以获得整体性能的提升。
为了协同计算,处理器中不同核之间需要进行通信来完成数据的交换,最初的多核片内***采取了基于总线的通信结构。所有的核连接到一个中央总线,总线仲裁采取集中控制的方式。但是总线结构的可扩展性极差,随着片上核数的不断增加,总线互连在功耗、延迟、时钟同步、信号完整性以及带宽等方面已不能满足新的需求,片上网络逐渐成为多核互连通信的新范式。在CMP(Chip Multiprocessor,片上多核)***中,mesh网络是最流行的片上网络设计,因为它具有结构简单,扩展性,通用性较好等优点(文献《Principlesand Practices of Interconnection Networks》)。
图1是计算节点、存储节点通过mesh网络进行通信的示意图。散布全芯片的相邻路由器(共n2个)之间通过带宽为b bit的数据链路相连构成n*n的mesh网络(n行路由器,n列路由器),计算核、存储核通过网络接口NI(Network Interface)分别与一个路由器相连,n2-n个计算核、n个存储核之间通过mesh网络传递消息报文。计算核和网络接口组合在一起统称为计算节点,图1中简写为Ci,i为计算节点的编号(0≤i≤n2-n-1);存储核和网络接口组合在一起统称为存储节点,简写为Mj,j为存储节点的编号(0≤j≤n-1)。路由器简写为Rk,其中k为路由器的编号(0≤k≤n2-1)。在mesh网络中,每一列仅有一个路由器与存储节点相连,其余路由器均与计算节点相连,例如在图1中,第一列中路由器R0,R1到Rn-2分别与计算节点C0,C1到Cn-2相连,Rn-1与存储节点M0相连。因此,mesh网络的每列连有n-1个计算节点,连有1个存储节点。每一个计算节点、存储节点中都存有一张mesh网络中的路由器的编号与计算节点编号和存储节点编号的连接映射表,在得知计算节点、存储节点编号的情况下均可以查询出与之相连的路由器的编号。当发送报文时,计算核和存储核根据目的节点的编号查询出与之相连的路由器的编号,然后将路由器编号写入报文头部,接着将产生的报文放到与该核相连接的网络接口的发送报文缓存队列中,然后由与该网络接口相连的路由器取出后开始在mesh网络中进行传输。报文在mesh网络的传输过程中,接收到报文的路由器根据报文头部中存储的路由器编号计算出该报文所对应的输出端口,如果输出端口为0,则说明当前路由器为该报文的目的路由器,该路由器通过0号输出端口将报文存储至与该路由器相连的网络接口的接收报文缓存队列中;如果输出端口为1到4,则该路由器通过相应的输出端口将报文传递给下一跳的路由器。接收报文时,计算核和存储核从与该核相连接的网络接口的接收报文缓存队列中取出报文进行处理。为了解决发送速度过快而接收速度过慢时接收报文缓存队列溢出的问题,传统的路由器一般采取基于输入端口缓存的流控机制对发送报文的速度进行调节。
如图2所示,传统的路由器的微体系结构由输入端口,路由计算模块,虚拟通道分配器,交叉开关分配器,交叉开关和输出端口组成。输入端口和输出端口分别有五个,编号从0到4,其中0号端口对应本地端口,与网络接口相连,其余端口分别与mesh网络中临近的路由器相连,组成mesh网络。输入端口主要由多个缓存队列组成,这些队列被称作虚拟通道(Channel)。输出端口由大小为mesh网络带宽的寄存器组成,缓存即将进入下一个路由器输入端口的报文切片。输入端口经过交叉开关与输出端口相连,虚拟通道分配器与输入端口相连,交叉开关分配器与输入端口和交叉开关相连。路由计算模块根据报文中存储的目标地址进行路由计算,得到下一跳的路由器以及相应的输出端口。当不同报文在mesh网络中使用XY路由算法(文献《Principles and Practices of Interconnection Networks》)进行传输时,它们可能会因为竞争同一资源产生冲突,例如不同输入端口的报文可能会竞争同一输出端口。如图3中4*4的mesh网络所示,当使用XY路由算法时,计算结点C1发往M3的请求报文与C2发往M3的请求报文在路由器R13处的下一跳路由器都是R12,因此这两个请求报文如果在同一时刻到达R13处,则会因为竞争R13与R12相连的上端口而发生冲突。由于冲突的存在,mesh网络中的路由器必须在输入端口中设置缓存队列来缓存竞争失败的报文,并通过虚拟通道分配器和交叉开关分配器来分配资源、处理冲突,这些处理冲突的机制一方面影响了片上网络的运行频率,另一方面带来了巨大的硬件开销和功耗开销。总体而言,mesh网络的开销主要由两部分组成,分别是路由器的开销和连接路由器的数据链路的开销,其中路由器的开销又主要由虚拟通道和交叉开关两部分组成。虚拟通道,交叉开关,数据链路的开销与链路带宽息息相关。例如,虚拟通道的面积开销,数据链路的面积开销与链路带宽成正比关系,交叉开关的面积开销与链路带宽的平方成正比关系(文献《Principles andPractices of Interconnection Networks》)。
近几年兴起的GPGPU采用了大量的简单处理器核,通过同时处理大量的数据获得高吞吐率,通过在大量任务之间的切换来掩藏片下访存带来的访问延迟。为了解决GPGPU中不同核之间的通信问题,人们自然而然的把CMP***中已经成熟的mesh片上网络结构引入到了GPGPU中,同时使用了两个mesh网络(请求网络,响应网络)分别传输请求报文和响应报文以避免协议级的报文死锁。这种设计虽然解决了GPGPU中不同核之间的通信问题,但是它忽视了GPGPU自身的通信特点,带来了很多不必要的开销。
在传统的CMP***中,由于Cache一致性的要求,计算节点与计算节点之间,计算节点与存储节点之间都存在通信,mesh片上网络也是针对这种通信特点所设计的。文献《Throughput-effective on-chipnetworks for manycore accelerators》(发表在Micro2011上)首次指出了GPGPU等众核加速器独有的通信模式,多数的计算节点向少数的存储节点发送请求报文,存储节点处理完请求后将响应报文返回给计算节点,这种通信模式被称为“many-to-few-to-many”,在这种通信模式中,报文传递仅存在于计算节点和存储节点之间。针对GPGPU特有的通信模式,该文章提出了mesh网络中的棋盘路由方法,采用该方法通过使用简化的路由器降低了片上网络的开销。但是,这种方法并没有解决请求报文传输过程中的冲突问题,因此由于请求报文冲突引起的路由器开销仍然存在,并且在片上网络开销中占据了很大的比例。如何消除请求报文传输过程中的冲突是采用低硬件开销,低功耗的片上网络传输报文的关键,目前尚未有公开文献解决这个问题。
发明内容:本发明针对当前GPGPU片上网络中请求报文传输需要复杂的路由器处理报文冲突,设计成本和硬件开销高等问题,提供了一种GPGPU网络请求报文无冲突发送方法,利用简单的路由器来高效的传输请求报文。为GPGPU提供一种硬件开销小,功耗消耗低,实现简单的请求报文无冲突发送方法,降低了片上网络的硬件开销和功耗开销。
本发明的技术方案是:
第一步,将数据链路带宽为b bit的n*n的mesh网络划分成n个相互独立的Mesh子网。
1.1 将数据链路带宽为b bit的n*n的mesh网络划分成n个数据链路带宽为b/nbit的相互独立的Mesh子网。每一个Mesh子网均是一个数据链路带宽为b/n bit的mesh网络(也具有n行路由器,n列路由器)。第y个Mesh子网记为Meshy,0≤y≤n-1,y为第y个Mesh子网的编号。与原始的mesh网络相比,Meshy中路由器的数目,编号以及路由器之间的连接关系都没有发生变化。但是Meshy中路由器的微体系结构进行了简化,并且在n2个路由器中只有n-1个路由器与计算节点相连,n个路由器与存储节点相连,剩余的n2-2n+1个路由器既不与计算节点相连,也不与存储节点相连,仅负责报文在Meshy中的传递。
1.2 按照计算节点在数据链路带宽为b bit的mesh网络中所处的列将计算节点划分为n组,每组n-1个计算节点,第y组计算节点简写为Groupy。对于n组共计n2-n个计算节点而言,Groupy中的n-1个计算节点只与Meshy相连,即Groupy中的n-1个计算节点通过Meshy对n个存储节点进行访问。Groupy中的n-1个计算节点与Meshy中的第y列路由器相连,如图5所示。
1.3 n个存储节点与每一个Mesh子网均相连。将n个存储节点中的网络接口均由1个增加至n个,每一个存储节点通过第y个网络接口与Meshy中的路由器相连。
1.4 在Meshy中,每一列仅有一个路由器与存储节点相连,如图5所示。在Meshy中,在位于第y列的每一个路由器的内部设置2个n bit的寄存器,使用大小为n bit的数据链路将相邻路由器内部的n bit的寄存器依次相连构成一个环网。每一个n比特寄存器中的n个比特位分别与n个存储节点相对应,例如某路由器内部n比特寄存器中的第j位与存储节点Mj相对应,该比特位存储1则表示当前路由器可向Mj发送请求报文,存储0则表示当前路由器不可向Mj发送请求报文。
第二步,简化Meshy中路由器的微体系结构。与计算节点相连的路由器经改进后由5个输入端口寄存器、交叉开关、交叉开关分配器、路由计算模块、本地端口控制器、5个输出端口、2个n bit的寄存器组成。与图2相比,图8减少了输入端口缓存队列、虚拟通道分配器;增加了输入端口寄存器、本地端口控制器、2个n bit的寄存器。每一个输入端口有一个输入端口寄存器,输入端口寄存器与本地端口控制器以及路由计算模块相连,该输入端口寄存器用于缓存正在mesh网络中传输的报文,输入端口寄存器大小等于mesh网络的带宽。本地端口控制器与该路由器内部所设置的2个n比特寄存器、输入端口寄存器、网络接口中的发送报文缓存队列相连。本地端口控制器读取发送报文缓存队列中头报文存储的信息,确定该报文的目的节点Mj。本地端口控制器读取2个n比特寄存器中存储的数值,判断2个n比特寄存器中第j位是否有一个为1(若都为0,则跳过该时钟周期,并在下一时钟周期继续判断),有一个为1则将从与该路由器相连的网络接口的发送报文缓存队列中收到的头报文取至本路由器的输入端口寄存器,并将第j位为1的n比特寄存器中该位置0;发送报文结束后,本地端口控制器将发送报文时置0的n比特寄存器中第j位重新置1。如图6所示,路由器中的2个n比特寄存器与同一列的上下路由器中的2个n比特相连,因此当某一路由器中的本地端口控制器将n比特寄存器的某一位置1后,该值会随着时钟的变化逐渐传递到同一列的其它路由器中的n比特寄存器的相应位。路由计算模块与输入端口寄存器以及交叉开关分配器相连,路由计算模块读取输入端口寄存器中存储的报文信息,根据当前路由器编号以及报文的目的路由器编号计算出该报文对应的输出端口,并将输出端口编号传递给交叉开关分配器。交叉开关分配器与路由计算模块以及交叉开关相连,交叉开关分配器接收到路由计算模块提供的输出端口编号,控制交叉开关,使输入端口寄存器中存储的报文可以通过交叉开关到达相应的输出端口,从而传递给下一跳的路由器。交叉开关与五个输入端口寄存器、五个输出端口、以及交叉开关分配器相连,交叉开关受交叉开关分配器的控制,为存储在输入端口寄存器中的报文提供传输至相应的输出端口的数据通路。五个输出端口与交叉开关相连,将从交叉开关收到的报文传递给下一跳的路由器。
不与计算节点相连的路由器经简化后由5个输入端口寄存器,交叉开关,交叉开关分配器,路由计算模块,5个输出端口组成。与与计算节点相连的路由器相比,不与计算节点相连的路由器减少了2个n比特寄存器以及本地端口控制器,且输入端口寄存器仅与路由计算模块、输入端口、交叉开关相连,不再与本地端口控制器相连;
第三步,计算结点Ci通过与其相连的Meshy将请求报文传输给目的节点Mj。
3.1 ***通电初始化,Meshy中只有Ryn中1个n比特寄存器置全1,Ryn中另一个n比特寄存器以及其余路由器中的n比特寄存器均置全0,n比特寄存器中的值会随着时钟的变化逐渐传递到同一列的其它路由器中的n比特寄存器的相应位。Ryn中的yn表示y与n的乘积。
3.2 Ci根据其内部存储的连接映射表(连接映射表是存贮mesh网络中的路由器编号、计算节点编号、存储节点编号的的数据结构)查询出与目的节点Mj相连的目的路由器编号为m(目的路由器为Rm),0≤m≤n2-1。将Rm的编号m写入请求报文头部,并将请求报文放入Ci的网络接口中的发送报文缓存队列中。
3.3 在Meshy中,与Ci相连的路由器Rk中的本地端口控制器从Ci的网络接口中的发送报文缓存队列获得请求报文,根据请求报文的头部内容得到该报文的目的路由器为Rm,以及目标节点为Mj。
3.4 Rk中的本地端口控制器读取2个n比特寄存器中存储的数值,本地端口控制器判断2个n比特寄存器中第j位是否有一个为1,有一个为1则将从与Rk相连的网络接口发送报文缓存队列中收到的头报文通过输入端口0取至本路由器的输入端口寄存器,并将第j位为1的n比特寄存器中该位置0,转3.5;若2个n比特寄存器中第j位都为0,则重复3.4步。
3.5 Rk中的路由计算模块根据输入端口寄存器中存储的请求报文的目的路由器编号m计算出输出端口编号,交叉开关分配器将请求报文通过输出端口编号对应的输出端口传递至下一跳的路由器Rl,0≤l≤n2-1,且l≠k。本地端口控制器将3.4步置0的n比特寄存器中第j位重新置1。
3.6 Rl中的路由计算模块根据输入端口寄存器中存储的请求报文的目的路由器编号m计算出输出端口编号,若输出端口编号为1~4(说明此时Rl不是Rm)则通过交叉开关分配器的控制将报文通过相应的输出端口传递至下一跳的路由器Rll,0≤ll≤n2-1,且ll≠l,令l=ll,转3.6;若输出端口编号为0,则说明当前路由器即为路由器Rm,通过交叉开关分配器的控制将报文通过输出端口0发送至与该路由器相连的网络接口的输出报文缓存队列中,由Mj取出。
本发明是在GPGPU片上网络中仅使用少量的硬件开销和功耗开销即可完成请求报文无冲突传输的方法。采用本发明可以达到以下技术效果:
1.采用本发明可无冲突地发送请求报文。按列划分的不同组的计算节点使用相互独立的数据链路带宽为b/n bit的n*n个Mesh子网进行报文传输,因此不同组的计算节点之间不存在报文冲突。同一组的计算节点向不同存储节点发送报文时,报文的传输路径没有重叠,因此计算节点发送的请求报文之间没有资源竞争,报文冲突不存在。由于与计算节点相连的路由器内部的本地端口控制器再将发送报文缓存队列中存储的请求报文取至本地端口寄存器进行发送时要判断2个n bit寄存器中存储的值,而同一时刻针对于同一存储节点Mj,图6中至多只有1个n bit寄存器的第j位为1,因此针对同一个存储节点,同一组内同一时刻只能有一个计算节点发送请求报文,该请求报文在传输中不可能与其它请求报文竞争同一资源,因此报文冲突不存在。
2.面积和功耗少,使芯片上宝贵的硬件资源可以用到存储或者计算部件,进一步提升芯片的性能。mesh网络的开销主要由两部分组成,分别是路由器的开销和连接路由器的数据链路的开销,其中路由器的开销又主要由虚拟通道和交叉开关两部分组成。虚拟通道,交叉开关,数据链路的开销与链路带宽相关。针对数据链路开销而言,n个Mesh子网的数据链路带宽为b/n bit,它们的总数据链路开销与1个数据链路带宽为n bit的n*n的mesh网络的数据链路开销相同。针对虚拟通道而言,Mesh子网中的路由器中去除了虚拟通道分配器,因此它的开销在Mesh子网中并不存在。针对交叉开关而言,由于交叉开关的面积开销与链路带宽的平方成正比关系,因此n个数据链路带宽为b/n bit的Mesh子网中全部路由器的交叉开关总开销为1个数据链路带宽为n bit的mesh网络中交叉开关总开销的1/n。
附图说明:
图1是背景技术文献《Principles and Practices of InterconnectionNetworks》公布的目前常用的mesh网络结构图;
图2是图1中的路由器微体系结构图;
图3是背景技术所述4*4的mesh网络中请求报文传输中的冲突示意图;
图4是本发明总体流程图;
图5是本发明第一步对图1所述的mesh网络进行划分后与计算结点、存储结点的连接示意图;
图6是本发明第一步对图1所述的mesh网络进行划分后,计算节点、存储节点与Meshy中的路由器的连接示意图;
图7是Meshy的结构示意图;
图8是第二步与计算节点相连的路由器改进后的微体系结构图;
图9是第二步不与计算节点相连的路由器改进后的微体系结构图。
具体实施方式:
图4是本发明总体流程图;
第一步,将数据链路带宽为b bit的n*n的mesh网络划分成n个相互独立的Mesh子网。
第二步,简化Meshy中路由器的微体系结构。
第三步,计算结点Ci通过与其相连的Meshy将请求报文传输给目的节点Mj。
图5是本发明第一步对图1所述的mesh网络进行划分后与计算结点、存储结点的连接示意图。
将数据链路带宽为b bit的n*n的mesh网络划分成n个数据链路带宽为b/n bit的相互独立的Mesh子网。每一个Mesh子网均是一个数据链路带宽为b/n bit的mesh网络(也具有n行路由器,n列路由器)。第y个Mesh子网记为Meshy,0≤y≤n-1,y为第y个Mesh子网的编号。与原始的mesh网络相比,Meshy中路由器的数目,编号以及路由器之间的连接关系都没有发生变化。但是Meshy中路由器的微体系结构进行了简化,并且在n2个路由器中只有n-1个路由器与计算节点相连,n个路由器与存储节点相连,剩余的n2-2n+1个路由器既不与计算节点相连,也不与存储节点相连,仅负责报文在Meshy中的传递。
按照计算节点在数据链路带宽为b bit的mesh网络中所处的列将计算节点划分为n组,每组n-1个计算节点,第y组计算节点简写为Groupy。对于n组共计n2-n个计算节点而言,Groupy中的n-1个计算节点只与Meshy相连,即Groupy中的n-1个计算节点通过Meshy对n个存储节点进行访问。Groupy中的n-1个计算节点与Meshy中的第y列路由器相连。
n个存储节点与每一个Mesh子网均相连。将n个存储节点中的网络接口均由1个增加至n个,每一个存储节点通过第y个网络接口与Meshy中的路由器相连。
图6是Meshy中的路由器与Groupy中的n-1个计算节点以及n个存储节点的连接示意图。
与原始的mesh网络相比,Meshy中路由器的数目,编号以及路由器之间的连接关系都没有发生变化。但是Meshy中路由器的微体系结构进行了简化,并且在n2个路由器中只有n-1个路由器与计算节点相连,n个路由器与存储节点相连,剩余的n2-2n+1个路由器既不与计算节点相连,也不与存储节点相连,仅负责报文在Meshy中的传递。Groupy中的n-1个计算节点以及n个存储节点的编号与Meshy中相连路由器的编号之间的对应关系与图1中mesh网络的编号对应关系一致。
图7是Meshy的结构图。
在Meshy中,在位于第y列的每一个路由器的内部设置2个n bit的寄存器,使用大小为n bit的数据链路将相邻路由器内部的n bit的寄存器依次相连构成一个环网。每一个n比特寄存器中的n个比特位分别与n个存储节点相对应,例如某路由器内部n比特寄存器中的第j位与存储节点Mj相对应,该比特位存储1则表示当前路由器可向Mj发送请求报文,存储0则表示当前路由器不可向Mj发送请求报文。***通电初始化,Meshy中只有Ryn中1个n比特寄存器置全1,Ryn中另一个n比特寄存器以及其余路由器中的n比特寄存器均置全0,n比特寄存器中的值会随着时钟的变化逐渐传递到同一列的其它路由器中的n比特寄存器的相应位。Ryn中的yn表示y与n的乘积。
图8是与计算节点相连的路由器微体系结构图。
与计算节点相连的路由器经改进后由5个输入端口寄存器、交叉开关、交叉开关分配器、路由计算模块、本地端口控制器、5个输出端口、2个n bit的寄存器组成。与图2相比,图8减少了输入端口缓存队列、虚拟通道分配器;增加了输入端口寄存器、本地端口控制器、2个n bit的寄存器。每一个输入端口有一个输入端口寄存器,输入端口寄存器与本地端口控制器以及路由计算模块相连,该输入端口寄存器用于缓存正在mesh网络中传输的报文,输入端口寄存器大小等于mesh网络的带宽。本地端口控制器与该路由器内部所设置的2个n比特寄存器、输入端口寄存器、网络接口中的发送报文缓存队列相连。本地端口控制器读取发送报文缓存队列中头报文存储的信息,确定该报文的目的节点Mj。本地端口控制器读取2个n比特寄存器中存储的数值,判断2个n比特寄存器中第j位是否有一个为1(若都为0,则跳过该时钟周期,并在下一时钟周期继续判断),有一个为1则将从与该路由器相连的网络接口的发送报文缓存队列中收到的头报文取至本路由器的输入端口寄存器,并将第j位为1的n比特寄存器中该位置0;发送报文结束后,本地端口控制器将发送报文时置0的n比特寄存器中第j位重新置1。如图6所示,路由器中的2个n比特寄存器与同一列的上下路由器中的2个n比特相连,因此当某一路由器中的本地端口控制器将n比特寄存器的某一位置1后,该值会随着时钟的变化逐渐传递到同一列的其它路由器中的n比特寄存器的相应位。路由计算模块与输入端口寄存器以及交叉开关分配器相连,路由计算模块读取输入端口寄存器中存储的报文信息,根据当前路由器编号以及报文的目的路由器编号计算出该报文对应的输出端口,并将输出端口编号传递给交叉开关分配器。交叉开关分配器与路由计算模块以及交叉开关相连,交叉开关分配器接收到路由计算模块提供的输出端口编号,控制交叉开关,使输入端口寄存器中存储的报文可以通过交叉开关到达相应的输出端口,从而传递给下一跳的路由器。交叉开关与五个输入端口寄存器、五个输出端口、以及交叉开关分配器相连,交叉开关受交叉开关分配器的控制,为存储在输入端口寄存器中的报文提供传输至相应的输出端口的数据通路。五个输出端口与交叉开关相连,将从交叉开关收到的报文传递给下一跳的路由器。
图9是不与计算节点相连的路由器微体系结构图。
不与计算节点相连的路由器经简化后由5个输入端口寄存器,交叉开关,交叉开关分配器,路由计算模块,5个输出端口组成。与与计算节点相连的路由器相比,不与计算节点相连的路由器减少了2个n比特寄存器以及本地端口控制器,且输入端口寄存器仅与路由计算模块、输入端口、交叉开关相连,不再与本地端口控制器相连。
Claims (2)
1.一种GPGPU网络请求报文无冲突发送方法,其特征在于包括以下步骤:
第一步,将数据链路带宽为b bit的n*n的mesh网络划分成n个相互独立的Mesh子网:
1.1将数据链路带宽为b bit的n*n的mesh网络划分成n个数据链路带宽为b/n bit的相互独立的Mesh子网;每一个Mesh子网均是一个具有n行路由器、n列路由器且数据链路带宽为b/n bit的mesh网络;第y个Mesh子网记为Meshy,0≤y≤n-1,y为第y个Mesh子网的编号;在n2个路由器中有n-1个路由器与计算节点相连,n个路由器与存储节点相连,剩余的n2-2n+1个路由器既不与计算节点相连,也不与存储节点相连,仅负责报文在Meshy中的传递;
1.2按照计算节点在数据链路带宽为b bit的mesh网络中所处的列将计算节点划分为n组,每组n-1个计算节点,第y组计算节点简写为Groupy;对于这n组共n2-n个计算节点而言,Groupy中的n-1个计算节点与Meshy中的第y列路由器相连;
1.3 n个存储节点与每一个Mesh子网均相连,将n个存储节点中的网络接口均由1个增加至n个,每一个存储节点通过第y个网络接口与Meshy中的路由器相连;
1.4 Meshy的每一列仅有一个路由器与存储节点相连,在Meshy中位于第y列的每一个路由器的内部设置2个n bit的寄存器,使用大小为n bit的数据链路将相邻路由器内部的nbit的寄存器依次相连构成一个环网;每一个n比特寄存器中的n个比特位分别与n个存储节点相对应,某路由器内部n比特寄存器中的第j位存储1表示当前路由器可向目的节点Mj发送请求报文,存储0表示当前路由器不可向Mj发送请求报文;
第二步,简化Meshy中路由器的微体系结构:与计算节点相连的路由器经改进后由5个输入端口寄存器、交叉开关、交叉开关分配器、路由计算模块、本地端口控制器、5个输出端口、2个n bit的寄存器组成;每一个输入端口有一个输入端口寄存器,输入端口寄存器与本地端口控制器以及路由计算模块相连,该输入端口寄存器缓存正在mesh网络中传输的报文;本地端口控制器与该路由器内部所设置的2个n比特寄存器、输入端口寄存器、网络接口中的发送报文缓存队列相连;本地端口控制器读取发送报文缓存队列中头报文存储的信息,确定该报文的目的节点Mj;本地端口控制器读取2个n比特寄存器中存储的数值,判断2个n比特寄存器中第j位是否有一个为1,有一个为1则将从与该路由器相连的网络接口的发送报文缓存队列中收到的头报文取至本路由器的输入端口寄存器,并将第j位为1的n比特寄存器中该位置0;发送报文结束后,本地端口控制器将发送报文时置0的n比特寄存器中第j位重新置1;路由器中的2个n比特寄存器与同一列的上下路由器中的2个n比特相连,当某一路由器中的本地端口控制器将n比特寄存器的某一位置1后,该值会随着时钟的变化逐渐传递到同一列的其它路由器中的n比特寄存器的相应位;路由计算模块与输入端口寄存器以及交叉开关分配器相连,路由计算模块读取输入端口寄存器中存储的报文信息,根据当前路由器编号以及报文的目的路由器编号计算出该报文对应的输出端口,并将输出端口编号传递给交叉开关分配器;交叉开关分配器与路由计算模块以及交叉开关相连,交叉开关分配器接收到路由计算模块提供的输出端口编号,控制交叉开关,使输入端口寄存器中存储的报文可以通过交叉开关到达相应的输出端口,从而传递给下一跳的路由器;交叉开关与五个输入端口寄存器、五个输出端口、以及交叉开关分配器相连,交叉开关受交叉开关分配器的控制,为存储在输入端口寄存器中的报文提供传输至相应的输出端口的数据通路;五个输出端口与交叉开关相连,将从交叉开关收到的报文传递给下一跳的路由器;
不与计算节点相连的路由器经简化后由5个输入端口寄存器,交叉开关,交叉开关分配器,路由计算模块,5个输出端口组成;与与计算节点相连的路由器的区别是,不与计算节点相连的路由器减少了2个n比特寄存器以及本地端口控制器,输入端口寄存器仅与路由计算模块、输入端口、交叉开关相连;
第三步,计算节点Ci通过与其相连的Meshy将请求报文传输给目的节点Mj;
3.1***通电初始化,Meshy中Ryn中1个n比特寄存器置全1,Ryn中另一个n比特寄存器以及其余路由器中的n比特寄存器均置全0,n比特寄存器中的值会随着时钟的变化逐渐传递到同一列的其它路由器中的n比特寄存器的相应位,Ryn中的yn表示y与n的乘积,Ryn为Meshy中第y列的首个路由器;
3.2 Ci根据其内部存储的连接映射表查询出与目的节点Mj相连的目的路由器Rm编号为m,0≤m≤n2-1,将Rm的编号m写入请求报文头部,并将请求报文放入Ci的网络接口中的发送报文缓存队列中;
3.3在Meshy中,与Ci相连的路由器Rk中的本地端口控制器从Ci的网络接口中的发送报文缓存队列获得请求报文,根据请求报文的头部内容得到该报文的目的路由器为Rm,以及目标节点为Mj;
3.4 Rk中的本地端口控制器读取2个n比特寄存器中存储的数值,本地端口控制器判断2个n比特寄存器中第j位是否有一个为1,有一个为1则将从与Rk相连的网络接口发送报文缓存队列中收到的头报文通过输入端口0取至本路由器的输入端口寄存器,并将第j位为1的n比特寄存器中该位置0,转3.5;若2个n比特寄存器中第j位都为0,则重复3.4步;
3.5 Rk中的路由计算模块根据输入端口寄存器中存储的请求报文的目的路由器编号m计算出输出端口编号,交叉开关分配器将请求报文通过输出端口编号对应的输出端口传递至下一跳的路由器Rl,0≤l≤n2-1,且l≠k;本地端口控制器将3.4步置0的n比特寄存器中第j位重新置1;
3.6 Rl中的路由计算模块根据输入端口寄存器中存储的请求报文的目的路由器编号m计算出输出端口编号,若输出端口编号为1~4,说明此时Rl不是Rm,则通过交叉开关分配器的控制将报文通过相应的输出端口传递至下一跳的路由器Rll,0≤ll≤n2-1,且ll≠l,令l=ll,转3.6;若输出端口编号为0,则说明当前路由器即为路由器Rm,通过交叉开关分配器的控制将报文通过输出端口0发送至与该路由器相连的网络接口的输出报文缓存队列中,由Mj取出。
2.如权利要求1所述的GPGPU网络请求报文无冲突发送方法,其特征在于所述输入端口寄存器大小等于mesh网络的带宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510736872.9A CN105391610B (zh) | 2015-11-02 | 2015-11-02 | Gpgpu网络请求报文无冲突发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510736872.9A CN105391610B (zh) | 2015-11-02 | 2015-11-02 | Gpgpu网络请求报文无冲突发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105391610A CN105391610A (zh) | 2016-03-09 |
CN105391610B true CN105391610B (zh) | 2018-08-31 |
Family
ID=55423462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510736872.9A Active CN105391610B (zh) | 2015-11-02 | 2015-11-02 | Gpgpu网络请求报文无冲突发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105391610B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841420A (zh) * | 2010-05-24 | 2010-09-22 | 中国人民解放军国防科学技术大学 | 面向片上网络的低延迟路由器结构 |
CN104158738A (zh) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | 一种低缓冲区片上网络路由器及路由方法 |
-
2015
- 2015-11-02 CN CN201510736872.9A patent/CN105391610B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841420A (zh) * | 2010-05-24 | 2010-09-22 | 中国人民解放军国防科学技术大学 | 面向片上网络的低延迟路由器结构 |
CN104158738A (zh) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | 一种低缓冲区片上网络路由器及路由方法 |
Non-Patent Citations (3)
Title |
---|
Bandwidth-efficient on-chip interconnect designs for GPGPUs;Hyunjun Jang等;《IEEE》;20150612;全文 * |
Cache一致性片上网络路由算法和流控机制优化关键技术研究;马胜;《中国博士学位论文数据库 信息科技辑》;20141115;全文 * |
Providing cost-effective on-chip network bandwidth in GPGPUs;Hanjoon Kim等;《IEEE》;20121003;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105391610A (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104158738B (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
CN101841420B (zh) | 面向片上网络的低延迟路由器结构 | |
Jerger et al. | Virtual circuit tree multicasting: A case for on-chip hardware multicast support | |
CN103647807B (zh) | 一种信息缓存方法、装置和通信设备 | |
CN102629913B (zh) | 适用于全局异步局部同步片上互连网络的路由器装置 | |
Tran et al. | RoShaQ: High-performance on-chip router with shared queues | |
CN109302357B (zh) | 一种面向深度学习可重构处理器的片上互联结构 | |
CN102685017A (zh) | 一种基于fpga的片上网络路由器 | |
CN103729331A (zh) | 片上网络通信死锁避免方法、路由器及通信网络 | |
Kao et al. | CNoC: high-radix clos network-on-chip | |
CN105740199B (zh) | 芯片上网络的时序功率估算装置与方法 | |
Hu et al. | DMesh: a diagonally-linked mesh network-on-chip architecture | |
CN102185751A (zh) | 一种基于快速通道技术的单周期片上路由器 | |
Gharan et al. | A novel virtual channel implementation technique for multi-core on-chip communication | |
Liu et al. | A dynamic adaptive arbiter for Network-on-Chip | |
Escudero-Sahuquillo et al. | OBQA: Smart and cost-efficient queue scheme for Head-of-Line blocking elimination in fat-trees | |
Banerjee et al. | Flow-aware allocation for on-chip networks | |
CN105391610B (zh) | Gpgpu网络请求报文无冲突发送方法 | |
CN107276920A (zh) | 一种应用于混合三维片上网络的分布式流控***及机制 | |
CN103914429B (zh) | 用于粗粒度动态可重构阵列的多模式数据传输互连器 | |
Kwa et al. | Small virtual channel routers on FPGAs through block RAM sharing | |
Lee et al. | Design of a feasible on-chip interconnection network for a chip multiprocessor (cmp) | |
Chen et al. | Express virtual channels with taps (EVC-T): A flow control technique for network-on-chip (NoC) in manycore systems | |
Latif et al. | Enhancing performance of noc-based architectures using heuristic virtual-channel sharing approach | |
Modarressi et al. | Performance and power efficient on-chip communication using adaptive virtual point-to-point connections |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |