CN117082014A - Clos网络、构建方法、传输方法、系统、设备和介质 - Google Patents

Clos网络、构建方法、传输方法、系统、设备和介质 Download PDF

Info

Publication number
CN117082014A
CN117082014A CN202311339029.8A CN202311339029A CN117082014A CN 117082014 A CN117082014 A CN 117082014A CN 202311339029 A CN202311339029 A CN 202311339029A CN 117082014 A CN117082014 A CN 117082014A
Authority
CN
China
Prior art keywords
node
routing
port
stage
routing node
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.)
Granted
Application number
CN202311339029.8A
Other languages
English (en)
Other versions
CN117082014B (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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311339029.8A priority Critical patent/CN117082014B/zh
Publication of CN117082014A publication Critical patent/CN117082014A/zh
Application granted granted Critical
Publication of CN117082014B publication Critical patent/CN117082014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/111Switch interfaces, e.g. port details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种CLOS网络、构建方法、传输方法、系统、设备和介质。所述方法包括:构建CLOS网络拓扑结构,形成三级CLOS网络拓扑结构;在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。采用本方法能够通过将共用同一组端口物理层的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的CLOS网络的路由节点的连线数量显著减少,利于后端布局布线。

Description

CLOS网络、构建方法、传输方法、系统、设备和介质
技术领域
本申请涉及片上网络技术领域,特别是涉及一种CLOS网络拓扑结构、构建CLOS网络拓扑结构方法、CLOS网络路由请求传输方法、系统、计算机设备和存储介质。
背景技术
针对片上系统在时延、时针同步、可扩展性、能耗、可重用性等方面的缺陷,一种新的片上系统结构“片上网络”,于世纪末被提了出来,它很好的克服了总线结构带来的种种局限,充分借鉴了现有计算机网络中的相关网络技术,并将之引入到片上系统中来开发利用,具有很好的发展前景。
CLOS网络是片上网络最常用的一种网络拓扑,最初的CLOS网络是一种经典的多级互连网络,由Charles Clos于1953年提出。CLOS网络的各级间的各个模块之间有且只有一条双向传输数据链路连接,但任意输入输出端口之间有多条路径可选择,所以CLOS网络具有多路径特点,多条等价路径在提供冗余的同时也可支持业务的负载均衡;CLOS网络每级的模块规模和结构一样,具有模块化的特点,有良好的可扩展性。但是当网络的规模增大时,CLOS网络的路由节点数和连线数量大大增加。
而且CLOS网络中在第一级路由节点对上挂8个端口节点(port节点),端口节点负责数据包的发送和收集,相互之间可以互发数据包;路由节点负责转发数据包。在实际应用中一般是很多不同宽度的端口节点共用一组PHY(端口物理层),对于共用同一组PHY的8个端口节点的使用情况不同,最少的时候将宽度为十六通道(X16)的端口当成一个端口在用,最多的时候所有的宽度为二通道(X2)的端口都分别在用。虽然共用同一组PHY的端口实际使用的数量不确定,但是总带宽是一致的,而为了满足十六通道(X16)端口的带宽,每条双向传输数据链路连线都是按照X16端口的带宽设置的,且所有端口都能作为二通道(X2)的端口使用,这就导致双向传输数据链路连线数量很多,且大部分的连线在实际使用时均是冗余状态。
发明内容
基于此,提供一种CLOS网络拓扑结构、构建CLOS网络拓扑结构方法、CLOS网络路由请求传输方法、系统、计算机设备和存储介质,能够解决目前不同宽度的端口节点共用一组PHY,每条双向传输数据链路连线都是按照X16端口的带宽设置的,导致双向传输数据链路连线数量很多,且大部分的连线在实际使用时均是冗余状态的技术问题。
一方面,提供一种构建CLOS网络拓扑结构方法,所述方法包括:
设置每一端口节点共用一组端口物理层,设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;
设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;
设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
在其中一个实施例中,所述方法还包括:
设置多个二级CLOS网络拓扑结构,设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在其中一个实施例中,所述设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口步骤包括:
设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的十六通道端口、四通道端口、二通道端口、二通道端口,所述第二端口组包括依次设置的八通道端口、四通道端口、二通道端口、二通道端口。
另一方面,还提供一种CLOS网络拓扑结构,所述CLOS网络拓扑结构包括多个端口节点、第一级路由节点对和第二级路由节点;每一端口节点共用一组端口物理层,所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;所述第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;所述第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
在其中一个实施例中,所述CLOS网络拓扑结构包括多个二级CLOS网络拓扑结构及多个第三级路由节点,所述多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在其中一个实施例中,所述第一端口组包括依次设置的十六通道端口、四通道端口、二通道端口、二通道端口,所述第二端口组包括依次设置的八通道端口、四通道端口、二通道端口、二通道端。
再一方面,提供一种CLOS网络路由请求传输方法,所述方法包括:
构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层,设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
在其中一个实施例中,在所述构建CLOS网络拓扑结构步骤中,所述端口节点的排序编号采用二进制编号方式设置,多个所述第一级路由节点对中的两个路由节点依次排序并按照所述端口节点的排序编号顺序采用二进制编号方式设置,所述第二级路由节点按照所述第一级路由节点对的排序编号顺序采用二进制编号方式设置,所述第三级路由节点按照所述第二级路由节点的排序编号顺序采用二进制编号方式设置。
在其中一个实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第一级路由节点对从源端口节点接收到路由请求时,判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点上,若否则将路由请求传输至所述第二级路由节点,若是则判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点下的第一级路由节点对的同一个一级路由节点上,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点,若是则控制路由请求向下传输至所述目标端口节点;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,判断所述第一级路由节点对中接收路由请求的当前一级路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,判断接收路由请求的路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求向上转发给第二级路由节点。
在其中一个实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第一级路由节点对从源端口节点接收到路由请求时,对S和D按照比特进行异或得到I,如果I的高三位不是000,则判定S和D不在同一个第二级路由节点,将路由请求直接向上转发给第二级路由节点,如果连接第二级路由节点的端口都被占用,则转发给另一个相连的一级路由节点上;如果I的高三位为000,则判定S和D在同一个第二级路由节点下,查看I的高四位,如果I的高四位是0001,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求转发到另一个相连的一级路由节点上,如果连接另一个相连的一级路由节点的两个端口都被占用,则可以选择向上转发给第二级路由节点;如果I的高四位是0000,则判定S和D是在同一个一级路由节点上连接的两个端口,按照D低两位向下对应的输出端口向下转发;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则转发给另一个相连接的一级路由节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则将路由请求向上转发给第二级路由节点。
在其中一个实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,判断所述第二级路由节点与所述目标端口节点是否连接,若是则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点,若否则将路由请求向上转发给第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,获取与所述目标端口节点直接相连的第一级路由节点对中的一个一级路由节点,将路由请求向下转发给所述第一级路由节点对中的一个一级路由节点,若该路由节点的端口都被占用,则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点。
在其中一个实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,查看D的高三位比特,如果D的高三位比特和当前第二级路由节点的编号相等,则将路由请求向下转发给另一个一级路由节点;如果不相等,则将路由请求向上转发第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,查看D低三位比特的最高位,如果是0,则判定D在第二级路由节点上连接的一个一级路由节点上,则将路由请求转给一个一级路由节点,如果连接一个一级路由节点的端口都被占用则转给另一个一级路由节点;如果是1,则判定D在第二级路由节点上连接的另一个一级路由节点上,则将路由请求转给另一个一级路由节点,如果当前一级路由节点的端口都被占用则转给另一个一级路由节点。
在其中一个实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,根据所述目标端口节点的排序编号确定与所述目标端口节点相连的第二级路由节点,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
在其中一个实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,获取D的高三位比特记为D所对应的输出端口,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
另一方面,提供了一种CLOS网络路由请求传输系统,所述系统包括:
构建CLOS网络拓扑结构模块,用于构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层,设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
路由请求传输节点管理模块,用于在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
路由请求路径控制模块,用于响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
上述CLOS网络拓扑结构、构建CLOS网络拓扑结构方法、CLOS网络路由请求传输方法、系统、计算机设备和存储介质,通过将共用同一组端口物理层(PHY)的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的CLOS网络的路由节点的连线数量显著减少,利于后端布局布线。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中双向两级CLOS网络的结构示意图;
图2为本申请一个实施例中构建CLOS网络拓扑结构方法的流程示意图;
图3为本申请一个实施例中根据共用同一组PHY的8个端口优化后的二级CLOS网络拓扑结构的结构示意图;
图4为本申请一个实施例中二级CLOS网络拓扑结构的对应表2的应用场景下的连线结构示意图;
图5为本申请一个实施例中二级CLOS网络拓扑结构的对应表3的应用场景下的连线结构示意图;
图6为本申请一个实施例中二级CLOS网络拓扑结构的对应表4的应用场景下的连线结构示意图;
图7为本申请一个实施例中二级CLOS网络拓扑结构的对应表5的应用场景下的连线结构示意图;
图8为本申请一个实施例中三级CLOS网络拓扑结构的结构示意图;
图9为本申请一个实施例中CLOS网络路由请求传输方法的流程示意图;
图10为本申请一个实施例中CLOS网络路由请求传输系统的结构框图;
图11为本申请一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如背景技术所述,片上网络的优势体现在:
(1)片上网络借鉴使用了计算机网络中的网络结构,整个网络由多条点到点的线路连接起来,相互之间不会产生干扰,可以满足多个用户通信的要求。
(2)与片上系统不同,片上网络采用全局异步,局部同步的方式来解决时钟同步问题。局部的网络工作在自己的时针频率下,这样就避免了时针的全局同步问题,解决了时针偏移问题,大大降低了网络的功耗。
(3)片上网络对带宽的利用率比较高。由于片上网络支持多点并行进行传输,同一时刻可以完成多种线路的数据传输,通信效率比较高。并且片上网络的寻址是在局部网络内完成的,网络规模的扩展对寻址的影响比较小,这样带宽中寻址所占用的位数便不会增多,带宽不会成为网络规模扩展的瓶颈。
(4)由于总线结构使用中央判决单元对线路的使用权进行统一管理,而片上网络使用随机仲裁机制,因此不存在较大时延问题。
(5)片上网络采用核思想,每个核随着网络规模的扩展,判决时延将会越来越大,对系统的性能产生较大影响。而片上网络采用局部判决策略,分布式地完成线路中一个独立的功能单元,具有很好的可重用性。同时,网络中路由设备也可以在多种环境中使用,可重用度很高。由于网络部件良好的可重用性,使得片上网络具有了高内聚的特点,可扩展性和可移植性很高,大大缩短了系统开发的时间,提高了开发的效率,在当前超大规模网络设计中显得尤为重要。
CLOS 网络的各级间的各个模块之间有且只有一条连接,但任意输入输出端口之间有多条路径可选择,所以 CLOS 交换网络具有多路径特点,多条等价路径在提供冗余的同时也可支持业务的负载均衡;CLOS交换网络每级的模块规模和结构一样,具有模块化的特点,有良好的可扩展性。但是当网络的规模增大时,CLOS交换网络的路由节点数和连线数量大大增加,如图1所示。
图1中每条链路都可以双向传输数据,即是全双工的;图中的方框是端口节点(port节点),共48个,圆圈是路由节点,一级路由节点有6个,二级路由节点有8个。一级路由节点上挂8个端口节点。源节点负责数据包的发送和收集,相互之间可以互发数据包;路由节点负责转发数据包。图1中的6个一级路由节点,每个都有16个输出的连线和16个输出的连线,对应于16个输入端口和16个输出端口;这种拓扑结构对于后端的布局布线是一个很大的挑战。且16个输入和16个输出的硬件实现逻辑复杂,导致路由节点面积过大,更增加了布局布线的难度。
但是,在我们现实项目当中一般是很多不同宽度的端口共享一组PHY,如表1所示,1个宽度为X16的端口、1个宽度为X8的端口、2个宽度为X4的端口和4个宽度为X2的端口共用4个X4的PHY,也就是说8个宽度不同的端口共用4个X4的PHY。
表1 8个宽度不同的端口共用4个X4的PHY
宽度为X16的端口可以当成2个宽度为X8的端口使用,但是此时第一个宽度为X8的端口会占用2个X4的PHY,第二个宽度为X8的端口使用时会占用剩余2个X4的PHY。如表2所示。
表2 宽度为X16的端口当成X16的端口使用
宽度为X16的端口可以当成2个宽度为X8的端口使用,但是此时第一个宽度为X8的端口会占用2个X4的PHY,第二个宽度为X8的端口使用时会占用剩余2个X4的PHY。如表3所示。
表3 两个X8的端口在使用
当然还存在其他使用的情况,如表4、表5(不完全)。
表4
表5
当8个端口都在用的时候是如表6所示,所有的宽度的端口都当成X2的端口在用。
表6 8个X2 端口的使用
综上所述,对于共用同一组PHY的8个端口的使用情况不同,最少的时候只有一个宽度为X16的端口当成X16的端口在用,最多的时候所有8个不同宽度的端口都当成X2的端口在用。虽然共用同一组PHY的端口实际使用的数量不确定,但是总带宽是一致的,而为了满足X16端口的带宽,网络中的任何每条连线都是按照X16端口的带宽设计的,所以连线数量可以优化的。图1的CLOS网络拓扑中的连线是按照所有端口都当成X2的端口在用的情况下设计的,这就导致大部分的连线都是冗余的。因此本发明提出了一种基于分组的改进的CLOS网络,将共用同一组PHY的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的网络的路由节点的连线数量显著减少,利于后端布局布线;且提出一种针对此网络的路由算法,算法简单,硬件实现逻辑简单。
实施例1
如图2所示,在实施例1中提供一种构建CLOS网络拓扑结构方法,所述方法包括:
S11、设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;
S12、设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;
S13、设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
其中,双向连接的方式包括采用双向数据链路连接,或者设置两个方向相反的单向数据链路连接。
如图2所示,在本实施例中,所述方法包括:
S14、设置多个二级CLOS网络拓扑结构,设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在本实施例中,所述设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口步骤包括:
设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口。
本申请通过将共用同一组端口物理层(PHY)的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的CLOS网络的路由节点的连线数量显著减少,利于后端布局布线。
实施例2
传统图1所示的CLOS网络,将所有宽度的端口同等对待,即认为所有端口的使用频率相同。但是在现实项目中,一个X16的端口和2个X8的端口的使用情况最为常见,如表2和表3所示这两种情况;其余使用的场景虽然也有,但是不常见,如表6。而本实施例更加关注的是表2和表3这两种使用场景下端口传输数据的性能,像表6所示使用场景端口传输数据的性能并不关注。因此本发明根据共用同一组PHY的8个端口的实际使用情况,对其连接拓扑进行优化,优化后的CLOS网络拓扑结构如图3所示。第一级路由节点对提升了端口物理层的端口传输数据的性能。
化之后的拓扑结构虽然增加了2个路由节点,但是所有路由节点的输入和输出的连线数量都显著减少,利于后端布局布线。优化之后的拓扑结构的瓶颈主要在一级路由节点,如图3所示,每组PHY上挂了8个端口,但是一级路由节点与第二级路由节点之间只有4个连线。但是虽然一级路由节点到第二级路由节点的连线数量减少了,像表2和表3甚至表4、5这几种使用最多的场景的端口的传输性能仍然能够保证。第一级路由节点对还提升了表2和表3这两种使用场景下端口传输数据的性能。
如图4、图5、图6和图7给出了表2、表3、表4、表5几种场景下会用到的连线,可以看出此时一级路由节点不再是瓶颈。这种改变即满足了项目对性能的要求,减少了各个几点之间的连线数、简化了各个路由节点的设计,利于后端实现。
具体的,如图8所示,本申请实施例2中提供一种CLOS网络拓扑结构,所述CLOS网络拓扑结构包括多个端口节点、第一级路由节点对和第二级路由节点;每一端口节点共用一组端口物理层(PHY),所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;所述第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;所述第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
在本实施例中,所述CLOS网络拓扑结构包括多个二级CLOS网络拓扑结构及多个第三级路由节点,所述多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在本实施例中,所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端。
其中,第一一级路由节点和第二一级路由节点之间设置两个双向传输数据链路,所述第一一级路由节点和所述第二一级路由节点与所述第二级路由节点之间均设置两个双向传输数据链路。
如图8所示,图中每条链路都可以双向传输数据,即是全双工的;图中的方框表示端口,共48个端口,可以用6比特的二进制数表示从000000(端口0)到101111(端口47);图中的圆圈是路由节点,其中一级路由节点有6个,向下连接4个端口,向上两条链路连接一个二级路由节点,通过两条连线与同一个第二级路由节点下的另一个一级路由节点相连;二级路由节点有6个,向下连接两个一级路由节点;第三级路由节点4个,向下连接6个二级路由节点。一级路由节点有12个,用4比特的二进制数表示;第二级路由节点6个,用3比特的二进数表示,第三级路由节点4个,由2比特的二进数表示。
如图8所示,是本发明提出的基于分组的改进的CLOS网络及各个宽度的端口所在的位置,可以看出与图1相比,优化之后的拓扑结构虽然增加了12个最底层的路由节点,但是所有路由节点的输入和输出的连线数量都显著减少,利于后端布局布线;而且虽然一级路由节点到第二级路由节点的连线数量减少了,但是能满足表2和表3甚至表4、表5这几种使用最多的场景,这种改变更加符合项目的实际使用场景。
本申请通过将共用同一组端口物理层(PHY)的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的CLOS网络的路由节点的连线数量显著减少,利于后端布局布线。
实施例3
如图9所示,在实施例3中,提供了一种CLOS网络路由请求传输方法,包括以下步骤:
S1,构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
S2,在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
S3,响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
在本实施例中,在所述构建CLOS网络拓扑结构步骤中,所述端口节点的排序编号采用二进制编号方式设置,多个所述第一级路由节点对中的两个路由节点依次排序并按照所述端口节点的排序编号顺序采用二进制编号方式设置,所述第二级路由节点按照所述第一级路由节点对的排序编号顺序采用二进制编号方式设置,所述第三级路由节点按照所述第二级路由节点的排序编号顺序采用二进制编号方式设置。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第一级路由节点对从源端口节点接收到路由请求时,判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点上,若否则将路由请求传输至所述第二级路由节点,若是则判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点下的第一级路由节点对的同一个一级路由节点上,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点,若是则控制路由请求向下传输至所述目标端口节点;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,判断所述第一级路由节点对中接收路由请求的当前一级路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,判断接收路由请求的路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求向上转发给第二级路由节点。
具体的,在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第一级路由节点对从源端口节点接收到路由请求时,对S和D按照比特进行异或得到I,如果I的高三位不是000,则判定S和D不在同一个第二级路由节点,将路由请求直接向上转发给第二级路由节点,如果连接第二级路由节点的端口都被占用,则转发给另一个相连的一级路由节点上;如果I的高三位为000,则判定S和D在同一个第二级路由节点下,查看I的高四位,如果I的高四位是0001,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求转发到另一个相连的一级路由节点上,如果连接另一个相连的一级路由节点的两个端口都被占用,则可以选择向上转发给第二级路由节点;如果I的高四位是0000,则判定S和D是在同一个一级路由节点上连接的两个端口,按照D低两位向下对应的输出端口向下转发;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则转发给另一个相连接的一级路由节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则将路由请求向上转发给第二级路由节点。
其中,当所述第一级路由节点对从源端口节点接收到路由请求时。
举例1:S是端口10,二进制数是001010,D是端口7,二进制数是000111,一级路由节点1收到端口10的路由请求之后,对S和D按照比特进行异或得到I=001101,I的高三位比特是001___,则判定S和D不在同一个第二级路由节点下,则将路由请求选择直接向上转发给第二级路由节点0,如果连接第二级路由节点0的两个端口都被占用,则可以选择转发给另一个相连的一级路由节点0上。
举例2:S是端口10,二进制数是001010,D是端口12,二进制数是001100,一级路由节点1收到端口10的路由请求之后,对S和D按照比特进行异或得到I=000110,I的高三位比特是000___,则判定S和D在同一个第二级路由节点下;查看I的高四位比特为0001__,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求选择转发到另一个相连的一级路由节点3上,如果连接另一个相连的一级路由节点3的两个端口都被占用,则可以选择向上转发给第二级路由节点1。
举例3:S是端口10,二进制数是001010,D是端口8,二进制数是001000,一级路由节点1收到端口10的路由请求之后,对S和D按照比特进行异或得到I=000010,I的高三位比特是000___,则判定S和D在同一个第二级路由节点下;查看I的高四位比特为0000__,则判定S和D是在同一个一级路由节点上,则按照D=001000的低两位比特,____00,从0号输出端口输出。
其中,当所述第一级路由节点对从第二级路由节点接收到路由请求时。
举例4:假设一级路由节点2(0010)收到第二级路由节点1的路由请求,请求的D是端口8,二进制数是001000,D的高四位0010__和一级路由节点的编号0010一致,则按照D的低两位____00,从一级路由节点2的向下的0号端口输出。
举例5:假设一级路由节点2(0010)收到第二级路由节点1的路由请求,请求的D是端口12,二进制数是001100,D的高四位0011__和一级路由节点的编号0010不一致,则转发给相连接的另一个第二级路由节点3。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,判断所述第二级路由节点与所述目标端口节点是否连接,若是则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点,若否则将路由请求向上转发给第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,获取与所述目标端口节点直接相连的第一级路由节点对中的一个一级路由节点,将路由请求向下转发给所述第一级路由节点对中的一个一级路由节点,若该路由节点的端口都被占用,则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点。
具体的,在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,查看D的高三位比特,如果D的高三位比特和当前第二级路由节点的编号相等,则将路由请求向下转发给另一个一级路由节点;如果不相等,则将路由请求向上转发第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,查看D低三位比特的最高位,如果是0,则判定D在第二级路由节点上连接的一个一级路由节点上,则将路由请求转给一个一级路由节点,如果连接一个一级路由节点的端口都被占用则转给另一个一级路由节点;如果是1,则判定D在第二级路由节点上连接的另一个一级路由节点上,则将路由请求转给另一个一级路由节点,如果当前一级路由节点的端口都被占用则转给另一个一级路由节点。
其中,当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时。
举例6:假设第二级路由节点1(001)从一级路由节点3收到的路由请求的D是端口8,二进制数是001000,D的高三位001___和第二级路由节点的编号001一致,则将路由请求向下转发给另一个一级路由节点2。
举例7:假设第二级路由节点1(001)从一级路由节点收到的路由请求的D是端口7,二进制数是000111,D的高三位000___和第二级路由节点的编号001不一致,则将路由请求向上转发第三级路由节点。
其中,当所述第二级路由节点从第三级路由节点接收到路由请求时。
举例8:假设第二级路由节点1(001)从三级级节点3收到的路由请求,请求的D是端口8,二进制数是001000,D的低三位比特是___000,最高位是___0__,则判定D在第二级路由节点1的左边的一级路由节点2上,则将路由请求转给左边的一级路由节点2,如果连接左边的一级路由节点2的端口都被占用则转给右边的一级路由节点3。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,根据所述目标端口节点的排序编号确定与所述目标端口节点相连的第二级路由节点,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
具体的,在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,获取D的高三位比特记为D所对应的输出端口,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
举例9:如D=101000,高三位比特为101,即D对应的输出端口是5号端口。
上述CLOS网络路由请求传输方法中,通过将共用同一组端口物理层(PHY)的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的CLOS网络的路由节点的连线数量显著减少,利于后端布局布线。
在一个实施例中,如图10所示,提供了一种CLOS网络路由请求传输系统10,包括:构建CLOS网络拓扑结构模块1、路由请求传输节点管理模块2、路由请求路径控制模块3。
所述构建CLOS网络拓扑结构模块1用于构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
所述路由请求传输节点管理模块2用于在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点。
所述路由请求路径控制模块3用于响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
在本实施例中,所述构建CLOS网络拓扑结构模块1用于:
设置多个二级CLOS网络拓扑结构,设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在本实施例中,所述设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口步骤包括:
设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口。
在一实施例中,还提供一种CLOS网络拓扑结构,所述CLOS网络拓扑结构包括多个端口节点、第一级路由节点对和第二级路由节点;每一端口节点共用一组端口物理层(PHY),所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;所述第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;所述第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
在本实施例中,所述CLOS网络拓扑结构包括多个二级CLOS网络拓扑结构及多个第三级路由节点,所述多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在本实施例中,所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端。
在本实施例中,在所述构建CLOS网络拓扑结构步骤中,所述端口节点的排序编号采用二进制编号方式设置,多个所述第一级路由节点对中的两个路由节点依次排序并按照所述端口节点的排序编号顺序采用二进制编号方式设置,所述第二级路由节点按照所述第一级路由节点对的排序编号顺序采用二进制编号方式设置,所述第三级路由节点按照所述第二级路由节点的排序编号顺序采用二进制编号方式设置。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第一级路由节点对从源端口节点接收到路由请求时,判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点上,若否则将路由请求传输至所述第二级路由节点,若是则判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点下的第一级路由节点对的同一个一级路由节点上,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点,若是则控制路由请求向下传输至所述目标端口节点;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,判断所述第一级路由节点对中接收路由请求的当前一级路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,判断接收路由请求的路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求向上转发给第二级路由节点。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第一级路由节点对从源端口节点接收到路由请求时,对S和D按照比特进行异或得到I,如果I的高三位不是000,则判定S和D不在同一个第二级路由节点,将路由请求直接向上转发给第二级路由节点,如果连接第二级路由节点的端口都被占用,则转发给另一个相连的一级路由节点上;如果I的高三位为000,则判定S和D在同一个第二级路由节点下,查看I的高四位,如果I的高四位是0001,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求转发到另一个相连的一级路由节点上,如果连接另一个相连的一级路由节点的两个端口都被占用,则可以选择向上转发给第二级路由节点;如果I的高四位是0000,则判定S和D是在同一个一级路由节点上连接的两个端口,按照D低两位向下对应的输出端口向下转发;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则转发给另一个相连接的一级路由节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则将路由请求向上转发给第二级路由节点。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,判断所述第二级路由节点与所述目标端口节点是否连接,若是则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点,若否则将路由请求向上转发给第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,获取与所述目标端口节点直接相连的第一级路由节点对中的一个一级路由节点,将路由请求向下转发给所述第一级路由节点对中的一个一级路由节点,若该路由节点的端口都被占用,则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,查看D的高三位比特,如果D的高三位比特和当前第二级路由节点的编号相等,则将路由请求向下转发给另一个一级路由节点;如果不相等,则将路由请求向上转发第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,查看D低三位比特的最高位,如果是0,则判定D在第二级路由节点上连接的一个一级路由节点上,则将路由请求转给一个一级路由节点,如果连接一个一级路由节点的端口都被占用则转给另一个一级路由节点;如果是1,则判定D在第二级路由节点上连接的另一个一级路由节点上,则将路由请求转给另一个一级路由节点,如果当前一级路由节点的端口都被占用则转给另一个一级路由节点。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,根据所述目标端口节点的排序编号确定与所述目标端口节点相连的第二级路由节点,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
在本实施例中,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,获取D的高三位比特记为D所对应的输出端口,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
上述CLOS网络路由请求传输系统中,通过将共用同一组端口物理层(PHY)的8个端口的连接拓扑根据实际使用情况进行优化,优化之后的CLOS网络的路由节点的连线数量显著减少,利于后端布局布线。
关于CLOS网络路由请求传输系统的具体限定可以参见上文中对于CLOS网络路由请求传输方法的限定,在此不再赘述。上述CLOS网络路由请求传输系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储CLOS网络路由请求传输数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种CLOS网络路由请求传输方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
设置多个二级CLOS网络拓扑结构,设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口步骤包括:
设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
一种CLOS网络拓扑结构,其特征在于,所述CLOS网络拓扑结构包括多个端口节点、第一级路由节点对和第二级路由节点;每一端口节点共用一组端口物理层(PHY),所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;所述第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;所述第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述CLOS网络拓扑结构包括多个二级CLOS网络拓扑结构及多个第三级路由节点,所述多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述构建CLOS网络拓扑结构步骤中,所述端口节点的排序编号采用二进制编号方式设置,多个所述第一级路由节点对中的两个路由节点依次排序并按照所述端口节点的排序编号顺序采用二进制编号方式设置,所述第二级路由节点按照所述第一级路由节点对的排序编号顺序采用二进制编号方式设置,所述第三级路由节点按照所述第二级路由节点的排序编号顺序采用二进制编号方式设置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第一级路由节点对从源端口节点接收到路由请求时,判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点上,若否则将路由请求传输至所述第二级路由节点,若是则判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点下的第一级路由节点对的同一个一级路由节点上,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点,若是则控制路由请求向下传输至所述目标端口节点;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,判断所述第一级路由节点对中接收路由请求的当前一级路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,判断接收路由请求的路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求向上转发给第二级路由节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第一级路由节点对从源端口节点接收到路由请求时,对S和D按照比特进行异或得到I,如果I的高三位不是000,则判定S和D不在同一个第二级路由节点,将路由请求直接向上转发给第二级路由节点,如果连接第二级路由节点的端口都被占用,则转发给另一个相连的一级路由节点上;如果I的高三位为000,则判定S和D在同一个第二级路由节点下,查看I的高四位,如果I的高四位是0001,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求转发到另一个相连的一级路由节点上,如果连接另一个相连的一级路由节点的两个端口都被占用,则可以选择向上转发给第二级路由节点;如果I的高四位是0000,则判定S和D是在同一个一级路由节点上连接的两个端口,按照D低两位向下对应的输出端口向下转发;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则转发给另一个相连接的一级路由节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则将路由请求向上转发给第二级路由节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,判断所述第二级路由节点与所述目标端口节点是否连接,若是则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点,若否则将路由请求向上转发给第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,获取与所述目标端口节点直接相连的第一级路由节点对中的一个一级路由节点,将路由请求向下转发给所述第一级路由节点对中的一个一级路由节点,若该路由节点的端口都被占用,则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,查看D的高三位比特,如果D的高三位比特和当前第二级路由节点的编号相等,则将路由请求向下转发给另一个一级路由节点;如果不相等,则将路由请求向上转发第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,查看D低三位比特的最高位,如果是0,则判定D在第二级路由节点上连接的一个一级路由节点上,则将路由请求转给一个一级路由节点,如果连接一个一级路由节点的端口都被占用则转给另一个一级路由节点;如果是1,则判定D在第二级路由节点上连接的另一个一级路由节点上,则将路由请求转给另一个一级路由节点,如果当前一级路由节点的端口都被占用则转给另一个一级路由节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,根据所述目标端口节点的排序编号确定与所述目标端口节点相连的第二级路由节点,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,获取D的高三位比特记为D所对应的输出端口,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
关于处理器执行计算机程序时实现步骤的具体限定可以参见上文中对于CLOS网络路由请求传输的方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层(PHY),设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
设置多个二级CLOS网络拓扑结构,设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口步骤包括:
设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
一种CLOS网络拓扑结构,其特征在于,所述CLOS网络拓扑结构包括多个端口节点、第一级路由节点对和第二级路由节点;每一端口节点共用一组端口物理层(PHY),所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;所述第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;所述第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述CLOS网络拓扑结构包括多个二级CLOS网络拓扑结构及多个第三级路由节点,所述多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述第一端口组包括依次设置的十六通道(X16)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端口,所述第二端口组包括依次设置的八通道(X8)端口、四通道(X4)端口、二通道(X2)端口、二通道(X2)端。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述构建CLOS网络拓扑结构步骤中,所述端口节点的排序编号采用二进制编号方式设置,多个所述第一级路由节点对中的两个路由节点依次排序并按照所述端口节点的排序编号顺序采用二进制编号方式设置,所述第二级路由节点按照所述第一级路由节点对的排序编号顺序采用二进制编号方式设置,所述第三级路由节点按照所述第二级路由节点的排序编号顺序采用二进制编号方式设置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第一级路由节点对从源端口节点接收到路由请求时,判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点上,若否则将路由请求传输至所述第二级路由节点,若是则判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点下的第一级路由节点对的同一个一级路由节点上,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点,若是则控制路由请求向下传输至所述目标端口节点;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,判断所述第一级路由节点对中接收路由请求的当前一级路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,判断接收路由请求的路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求向上转发给第二级路由节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第一级路由节点对从源端口节点接收到路由请求时,对S和D按照比特进行异或得到I,如果I的高三位不是000,则判定S和D不在同一个第二级路由节点,将路由请求直接向上转发给第二级路由节点,如果连接第二级路由节点的端口都被占用,则转发给另一个相连的一级路由节点上;如果I的高三位为000,则判定S和D在同一个第二级路由节点下,查看I的高四位,如果I的高四位是0001,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求转发到另一个相连的一级路由节点上,如果连接另一个相连的一级路由节点的两个端口都被占用,则可以选择向上转发给第二级路由节点;如果I的高四位是0000,则判定S和D是在同一个一级路由节点上连接的两个端口,按照D低两位向下对应的输出端口向下转发;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则转发给另一个相连接的一级路由节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则将路由请求向上转发给第二级路由节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,判断所述第二级路由节点与所述目标端口节点是否连接,若是则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点,若否则将路由请求向上转发给第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,获取与所述目标端口节点直接相连的第一级路由节点对中的一个一级路由节点,将路由请求向下转发给所述第一级路由节点对中的一个一级路由节点,若该路由节点的端口都被占用,则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,查看D的高三位比特,如果D的高三位比特和当前第二级路由节点的编号相等,则将路由请求向下转发给另一个一级路由节点;如果不相等,则将路由请求向上转发第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,查看D低三位比特的最高位,如果是0,则判定D在第二级路由节点上连接的一个一级路由节点上,则将路由请求转给一个一级路由节点,如果连接一个一级路由节点的端口都被占用则转给另一个一级路由节点;如果是1,则判定D在第二级路由节点上连接的另一个一级路由节点上,则将路由请求转给另一个一级路由节点,如果当前一级路由节点的端口都被占用则转给另一个一级路由节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,根据所述目标端口节点的排序编号确定与所述目标端口节点相连的第二级路由节点,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,获取D的高三位比特记为D所对应的输出端口,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
关于计算机程序被处理器执行时实现步骤的具体限定可以参见上文中对于CLOS网络路由请求传输的方法的限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (17)

1.一种构建CLOS网络拓扑结构方法,其特征在于,所述方法包括:
设置每一端口节点共用一组端口物理层,设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;
设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;
设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
2.根据权利要求1所述的构建CLOS网络拓扑结构方法,其特征在于,所述方法还包括:
设置多个二级CLOS网络拓扑结构,设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
3.根据权利要求1所述的构建CLOS网络拓扑结构方法,其特征在于,所述设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口步骤包括:
设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的十六通道端口、四通道端口、二通道端口、二通道端口,所述第二端口组包括依次设置的八通道端口、四通道端口、二通道端口、二通道端口。
4.一种CLOS网络拓扑结构,其特征在于,所述CLOS网络拓扑结构包括多个端口节点、第一级路由节点对和第二级路由节点;每一端口节点共用一组端口物理层,所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;所述第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;所述第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构。
5.根据权利要求4所述的CLOS网络拓扑结构,其特征在于,所述CLOS网络拓扑结构包括多个二级CLOS网络拓扑结构及多个第三级路由节点,所述多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构。
6.根据权利要求4所述的CLOS网络拓扑结构,其特征在于,所述第一端口组包括依次设置的十六通道端口、四通道端口、二通道端口、二通道端口,所述第二端口组包括依次设置的八通道端口、四通道端口、二通道端口、二通道端口。
7.一种CLOS网络路由请求传输方法,其特征在于,包括:
构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层,设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
8.根据权利要求7所述的CLOS网络路由请求传输方法,其特征在于,在所述构建CLOS网络拓扑结构步骤中,所述端口节点的排序编号采用二进制编号方式设置,多个所述第一级路由节点对中的两个路由节点依次排序并按照所述端口节点的排序编号顺序采用二进制编号方式设置,所述第二级路由节点按照所述第一级路由节点对的排序编号顺序采用二进制编号方式设置,所述第三级路由节点按照所述第二级路由节点的排序编号顺序采用二进制编号方式设置。
9.根据权利要求8所述的CLOS网络路由请求传输方法,其特征在于,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第一级路由节点对从源端口节点接收到路由请求时,判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点上,若否则将路由请求传输至所述第二级路由节点,若是则判断所述源端口节点与所述目标端口节点是否连接在同一个第二级路由节点下的第一级路由节点对的同一个一级路由节点上,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点,若是则控制路由请求向下传输至所述目标端口节点;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,判断所述第一级路由节点对中接收路由请求的当前一级路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求在所述第一级路由节点对内从当前一级路由节点转发至了另一个一级路由节点上并向下传输至所述目标端口节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,判断接收路由请求的路由节点与所述目标端口节点是否连接,若是则控制路由请求向下传输至所述目标端口节点,若否则将路由请求向上转发给第二级路由节点。
10.根据权利要求9所述的CLOS网络路由请求传输方法,其特征在于,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第一级路由节点对从源端口节点接收到路由请求时,对S和D按照比特进行异或得到I,如果I的高三位不是000,则判定S和D不在同一个第二级路由节点,将路由请求直接向上转发给第二级路由节点,如果连接第二级路由节点的端口都被占用,则转发给另一个相连的一级路由节点上;如果I的高三位为000,则判定S和D在同一个第二级路由节点下,查看I的高四位,如果I的高四位是0001,则判定S和D是在同一个第二级路由节点下的不同的一级路由节点上,则将路由请求转发到另一个相连的一级路由节点上,如果连接另一个相连的一级路由节点的两个端口都被占用,则可以选择向上转发给第二级路由节点;如果I的高四位是0000,则判定S和D是在同一个一级路由节点上连接的两个端口,按照D低两位向下对应的输出端口向下转发;
当所述第一级路由节点对从第二级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则转发给另一个相连接的一级路由节点;
当所述第一级路由节点对中的一个一级路由节点从另一个一级路由节点接收到路由请求时,查看D的高四位,如果和当前一级路由节点的编号相等,则按照D的低两位向下从对应的输出端口向下转发;如果不相等,则将路由请求向上转发给第二级路由节点。
11.根据权利要求8所述的CLOS网络路由请求传输方法,其特征在于,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,判断所述第二级路由节点与所述目标端口节点是否连接,若是则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点,若否则将路由请求向上转发给第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,获取与所述目标端口节点直接相连的第一级路由节点对中的一个一级路由节点,将路由请求向下转发给所述第一级路由节点对中的一个一级路由节点,若该路由节点的端口都被占用,则将路由请求向下转发给所述第一级路由节点对中的另一个一级路由节点。
12.根据权利要求11所述的CLOS网络路由请求传输方法,其特征在于,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
将源端口节点与目标端口节点的排序编号分别记为S和D;
当所述第二级路由节点从第一级路由节点对中的一个一级路由节点接收到路由请求时,查看D的高三位比特,如果D的高三位比特和当前第二级路由节点的编号相等,则将路由请求向下转发给另一个一级路由节点;如果不相等,则将路由请求向上转发第三级路由节点;
当所述第二级路由节点从第三级路由节点接收到路由请求时,查看D低三位比特的最高位,如果是0,则判定D在第二级路由节点上连接的一个一级路由节点上,则将路由请求转给一个一级路由节点,如果连接一个一级路由节点的端口都被占用则转给另一个一级路由节点;如果是1,则判定D在第二级路由节点上连接的另一个一级路由节点上,则将路由请求转给另一个一级路由节点,如果当前一级路由节点的端口都被占用则转给另一个一级路由节点。
13.根据权利要求8所述的CLOS网络路由请求传输方法,其特征在于,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,根据所述目标端口节点的排序编号确定与所述目标端口节点相连的第二级路由节点,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
14.根据权利要求13所述的CLOS网络路由请求传输方法,其特征在于,所述将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径步骤包括:
当所述第三级路由节点从第二级路由节点接收到路由请求时,获取D的高三位比特记为D所对应的输出端口,将路由请求向下转发给与所述目标端口节点相连的第二级路由节点。
15.一种CLOS网络路由请求传输系统,其特征在于,所述系统包括:
构建CLOS网络拓扑结构模块,用于构建CLOS网络拓扑结构,其包括设置每一端口节点共用一组端口物理层,设置所述端口物理层包括第一端口组和第二端口组,所述第一端口组包括依次设置的四个端口,所述第二端口组包括依次设置的四个端口;设置第一级路由节点对与每一端口节点对应双向连接,所述第一级路由节点对包括相互双向连接的第一一级路由节点和第二一级路由节点,所述第一一级路由节点与所述第一端口组中每一端口双向连接,所述第二一级路由节点与所述第二端口组中每一端口双向连接;设置第二级路由节点与所述第一级路由节点对的第一一级路由节点和第二一级路由节点分别双向连接形成二级CLOS网络拓扑结构;设置多个二级CLOS网络拓扑结构;设置多个第三级路由节点与每一二级CLOS网络拓扑结构的第二级路由节点双向连接形成三级CLOS网络拓扑结构;
路由请求传输节点管理模块,用于在所述端口节点间传输路由请求时,定义产生路由请求的端口节点为源端口节点,接收路由请求的端口节点为目标端口节点;
路由请求路径控制模块,用于响应于在源端口节点向目标端口节点发送路由请求时,将源端口节点与目标端口节点的排序编号进行对比,并根据第一级路由节点对和第二级路由节点获取路由请求的来源控制路由请求的传输路径。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至14中任一项所述方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7至14中任一项所述的方法的步骤。
CN202311339029.8A 2023-10-17 2023-10-17 Clos网络、构建方法、传输方法、系统、设备和介质 Active CN117082014B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311339029.8A CN117082014B (zh) 2023-10-17 2023-10-17 Clos网络、构建方法、传输方法、系统、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311339029.8A CN117082014B (zh) 2023-10-17 2023-10-17 Clos网络、构建方法、传输方法、系统、设备和介质

Publications (2)

Publication Number Publication Date
CN117082014A true CN117082014A (zh) 2023-11-17
CN117082014B CN117082014B (zh) 2024-01-23

Family

ID=88710160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311339029.8A Active CN117082014B (zh) 2023-10-17 2023-10-17 Clos网络、构建方法、传输方法、系统、设备和介质

Country Status (1)

Country Link
CN (1) CN117082014B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259352A (ja) * 2001-03-01 2002-09-13 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム装置
CN101631070A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 三级交换系统及其调度方法
US9225666B1 (en) * 2009-03-31 2015-12-29 Juniper Networks, Inc. Distributed multi-stage switch fabric
CN108123878A (zh) * 2016-11-30 2018-06-05 华为技术有限公司 一种路由方法、装置及数据转发设备
CN108337131A (zh) * 2018-01-25 2018-07-27 北京航天发射技术研究所 一种基于can网络拓扑结构的状态监测系统的实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259352A (ja) * 2001-03-01 2002-09-13 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム装置
CN101631070A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 三级交换系统及其调度方法
US9225666B1 (en) * 2009-03-31 2015-12-29 Juniper Networks, Inc. Distributed multi-stage switch fabric
CN108123878A (zh) * 2016-11-30 2018-06-05 华为技术有限公司 一种路由方法、装置及数据转发设备
CN108337131A (zh) * 2018-01-25 2018-07-27 北京航天发射技术研究所 一种基于can网络拓扑结构的状态监测系统的实现方法

Also Published As

Publication number Publication date
CN117082014B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
US9600440B2 (en) Network topology of hierarchical ring with recursive shortcuts
JP2012103926A (ja) 転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法
CN108259387B (zh) 一种通过交换机构建的交换系统及其路由方法
US5617413A (en) Scalable wrap-around shuffle exchange network with deflection routing
CN108337196B (zh) 一种通过交换芯片构建的交换系统及其路由算法
CN107959643B (zh) 一种通过交换芯片构建的交换系统及其路由算法
JP2008532408A (ja) ルータ、ルータを具えたネットワーク、及びネットワーク内のデータルーティング方法
CN106416158B (zh) 用于大规模数据中心网络的业务工程
US5852407A (en) Multistage interconnection network and parallel computer using the same
CN102546417B (zh) 基于网络信息的片上网络路由器调度方法
CN104247341A (zh) 分布式交换机的多播树层次结构的动态优化
US9529774B2 (en) Network topology of hierarchical ring with gray coding shortcuts
CN104022950A (zh) 一种可共享和自配置缓存的路由器结构
KR101942194B1 (ko) 토폴로지 및 라우팅 테이블을 위한 네트워크 토폴로지 시스템 및 생성 방법
CN117082014B (zh) Clos网络、构建方法、传输方法、系统、设备和介质
Robinson et al. Efficient collective data distribution in all-port wormhole-routed hypercubes
US9160649B2 (en) Method for routing traffic using traffic weighting factors
JP5404947B2 (ja) ストレージ装置
KR100454813B1 (ko) 분산 공유메모리 환경의 다단계 버스망을 위한 동적라우팅 방법
CN117097661B (zh) 数据包的转发方法及装置、存储介质、电子设备
CN117081975B (zh) 拓扑结构及构建方法、报文发送方法、装置、设备和介质
CN117278499B (zh) 一种网络链路创建方法、装置、设备及存储介质
US20230171206A1 (en) Large-scale network with high port utilization
WO2021063279A1 (zh) 用于交换系统的路由信息处理方法、装置及分组交换设备
Jurczyk et al. Interconnection networks for parallel computers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant