CN101873253B - 带缓冲的纵横式交换机系统 - Google Patents

带缓冲的纵横式交换机系统 Download PDF

Info

Publication number
CN101873253B
CN101873253B CN200910208256.0A CN200910208256A CN101873253B CN 101873253 B CN101873253 B CN 101873253B CN 200910208256 A CN200910208256 A CN 200910208256A CN 101873253 B CN101873253 B CN 101873253B
Authority
CN
China
Prior art keywords
data
crosspoint
switch
buffer
module
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.)
Expired - Fee Related
Application number
CN200910208256.0A
Other languages
English (en)
Other versions
CN101873253A (zh
Inventor
E·吴
T·周
S·波洛克
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.)
Intel Corp
Original Assignee
LSI Corp
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 LSI Corp filed Critical LSI Corp
Publication of CN101873253A publication Critical patent/CN101873253A/zh
Application granted granted Critical
Publication of CN101873253B publication Critical patent/CN101873253B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/508Head of Line Blocking Avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0004Selecting arrangements using crossbar selectors in the switching stages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1302Relay switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1304Coordinate switches, crossbar, 4/2 with relays, coupling field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13076Distributing frame, MDF, cross-connect switch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13322Integrated circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

所述实施例用来在数据模块之间传递数据。采用至少两个纵横式交换器,其中每个纵横式交换机的输入节点和输出节点耦合于相应的数据模块。第i个纵横式交换机具有Ni输入乘以Mi输出的交换机架构,其中Ni和Mi各自为大于1的正整数。每个纵横式交换机包括:在每个输入节点处的一个输入缓冲器;在交换机架构的每个交叉点处的交叉点缓冲器;以及在每个输出节点处的输出缓冲器。输入缓冲器具有根据第一调度算法从输入缓冲器读取数据分组的判优器。判优器根据第二调度算法从交叉点缓冲器队列读取数据分组。输出节点接收从一个或多个相应交叉点缓冲器提供的数据分组的分段。

Description

带缓冲的纵横式交换机系统
技术领域
本发明涉及在通信系统中的多个模块之间互连的带缓冲的纵横式交换机。
背景技术
纵横式交换机(又名“交叉点式交换机”或“矩阵交换机”)将多个输入端口和输出端口彼此互连。具有P个输入和Q个输出的纵横式交换机具有带P×Q个交叉点的交换机架构阵列,在这些交叉点作出输入端口和输出端口之间的连接。因此,到达输入端口之一的数据分组可路由至一个或多个特定的输出端口。例如,数据分组可仅路由至一个特定的输出端口(单播),路由至所有输出端口(广播)或路由至多个特定的输出端口(多播)。
无缓冲的纵横式交换机频繁地使用于多处理器计算机系统以使处理器链接于其它资源,例如存储器或其它子系统,或链接于内部交换机或其它高性能通信网络。然而,无缓冲的纵横式交换机一般需要交换机架构提速,这表示交换机的内部数据率必须高于链路的数据率。这些纵横式交换机一般需要高复杂度中央控制的调度算法以获得100%的吞吐量,例如并行迭代匹配(PIM)和iSLIP算法。
在带缓冲的纵横式交换机中,纵横式交换机中包含缓冲器以暂存无法立即路由至特定输出端口的数据分组(即受阻的数据分组)。例如,可为纵横式交换机的每个输入端口、每个输出端口、每个交叉连接点或其某种组合提供缓冲器。可采用中央控制的调度算法以允许输入和输出数据流有效地访问交换机架构。
发明内容
在一示例性实施例中,本发明提供数据模块之间的数据传递。每个数据模块为数据处理模块和数据存储模块中的至少一个。采用至少两个耦合的纵横式交换机并且纵横式交换机中的每个输入节点和输出节点耦合于相应数据模块。第i个纵横式交换机具有Ni输入节点乘以Mi输出节点的交换机架构,其中Ni和Mi各自为大于1的正整数。每个纵横式交换机包括:在每个输入节点处的一个输入缓冲器;在交换机架构的每个交叉点处的交叉点缓冲器;以及在每个输出节点处的输出缓冲器。输入缓冲器具有输入判优器,它根据第一调度算法从输入缓冲器中读取数据分组。交叉点缓冲器提供一队列,该队列具有根据第二调度算法从交叉点缓冲队列读取数据分组的输出判优器。输出节点接收从一个或多个相应交叉点缓冲器提供的数据分组的分段。
附图说明
本发明的其它方面、特征和优点将从下面的详细说明,所附权利要求书和附图中变得更为易懂,在附图中相同附图标记表示相同或相类似的部分。
图1示出根据本发明示例性实施例工作的、带缓冲的纵横式交换机系统的方框图;
图2示出根据本发明一个实施例的、带缓冲的纵横式交换机的方框图;
图3示出图2的带缓冲的纵横式交换机的进一步细节;
图4示出根据本发明示例性实施例工作的另一带缓冲的纵横式交换机系统;以及
图5示出根据本发明示例性实施例工作的另一带缓冲的纵横式交换机系统。
具体实施方式
根据本发明的实施例,提供一种带缓冲的纵横式交换机系统以在通信系统中的多个数据模块之间实现高吞吐量的互连。例如,通过纵横式交换机中的分布式缓冲和调度算法,本发明的实施例可用来创建并行虚拟管线以使多核处理器互连于存储器子系统。本发明的实施例可代替地用作例如客户机-服务机交换机、互联网路由器、共享存储器系统或网络交换机。本发明的实施例可获得100%的吞吐量而无需提速。
图1示出示例性带缓冲的纵横式交换机系统100的方框图。如图所示,带缓冲的纵横式交换机系统100包括处理单元102、带缓冲的纵横式交换机103和104以及存储器单元105。带缓冲的纵横式交换机103、104各自与处理单元102和存储器单元105电气通信。因此,如图所示,带缓冲的纵横式交换机103、104可配置成在处理单元102和存储器单元105中的多个数据模块之间实现高吞吐量互连。在一些实施例中,带缓冲的纵横式交换机103、104可位于一块或多块芯片上,所述芯片经由光纤与处理单元102和存储器单元105通信。
在一些实施例中,处理单元102可以是多核处理器。例如,处理单元102可包括N个处理器,其中N是大于或等于1的整数。如图1所示,处理单元102包括处理器120(1)、处理器120(2)等,乃至第N个处理器120(N)。处理器可例如实现为通用处理器,例如PowerPC或ARM处理器,或者处理器可例如实现为例如数字信号处理或安全协议处理的专用功能的加速器。处理单元102还包括判优器122(1)、判优器122(2)等,乃至至第N个判优器122(N)。如图1所示,处理器120(1)与判优器122(1)电气通信,处理器120(2)与判优器122(2)电气通信等,乃至处理器120(N)与判优器122(N)电气通信。每个判优器122(1)-122(N)各自具有与处理器120(1)-120(N)通信的至少一个输入端口和一个输出端口。
在一些实施例中,存储器单元105可采用存储器控制器以与存储器协调读和写操作。存储器可包括例如至少一个RAM缓冲器。因此,如示例性实施例所示,存储器单元105可包括M个存储器控制器以协调从一个或多个RAM缓冲器中读取信息或将信息写入,其中M是大于或等于1的整数。N和M的值可以相等,但不一定相等。存储器不仅限于RAM缓冲器,而是可以用例如闪存的一种或多种其它类型存储器来实现。存储器单元105包括存储器控制器152(1)至存储器控制器152(M)。存储器单元105还包括判优器150(1)至判优器150(M)。如图1所示,存储器控制器152(1)与判优器150(1)电气通信,存储器控制器152(2)与判优器150(2)电气通信等,乃至存储器控制器152(M)与判优器150(M)电气通信。每个判优器150(1)-150(M)具有各自与存储器控制器152(1)-152(M)通信的至少一个输入端口和一个输出端口。本发明的实施例可替代地包括用于输出判优的中央判优器。本发明的其它实施例可包括本地判优器和中央判优器的组合形式。
带缓冲的纵横式交换机103、104包括配置成允许至交换机的任何输入传递至交换机的任何一个或多个输出的交换机架构。在示例性实施例中,带缓冲的纵横式交换机103具有N个输入端口和M个输出端口,而带缓冲的纵横式交换机104具有M个输入端口和N个输出端口,其中N是处理器的数目而M是存储器控制器的数目。如图1所示,带缓冲的纵横式交换机103具有图示为132(1)-132(N)的N个输入端口,以及图示为138(1)-138(M)的M个输出端口。带缓冲的纵横式交换机104具有图示为148(1)-148(M)的M个输入端口,以及图示为142(1)-142(N)的N个输出端口。尽管在图1中示出两个带缓冲的纵横式交换机,然而本发明不局限于此,且因此带缓冲的纵横式交换机系统100可包括高达B个带缓冲的纵横式交换机,其中B是大于或等于1的整数。
例如,本发明的一个示例性实施例可包括五个带缓冲的纵横式交换机:一个交换机(未示出)将地址从处理单元102送至存储器单元105,一个交换机(图示为带缓冲的纵横式交换机103)将数据从处理单元102送至存储器单元105,一个交换机(未示出)将地址从存储器单元105送至处理单元102,一个交换机(图示为带缓冲的纵横式交换机104)将数据从存储器单元105送至处理单元102,另外一个交换机(未示出)将响应从存储器发送至处理器。
如图1所示,带缓冲的纵横式交换机103配置成切换从处理单元102发送至存储器单元105的数据,而带缓冲的纵横式交换机104配置成切换从存储器单元105发送至处理单元102的数据。因此,带缓冲的纵横式交换机103、104可用来设定处理单元102中的N个处理器的哪些与存储器单元105的M个存储器控制器中的哪些通信。例如,从处理单元102的处理器120(1)提供的数据可提供给带缓冲的纵横式交换机103的输入端口132(1)。判优器122(1)控制处理器120(1)将什么数据提供给带缓冲的纵横式交换机103的输入端口132(1)。如虚线箭头134所示,带缓冲的纵横式交换机103可配置成将该数据提供给带缓冲的纵横式交换机103的输出端口138(2)。判优器150(2)控制哪个交叉点缓冲器被送至带缓冲的纵横式交换机103的输出端口138(2)。因此,带缓冲的纵横式交换机103将该数据提供给存储器单元105的存储器控制器152(2)。类似地,虚线箭头135、136表示带缓冲的纵横式交换机103的其它示例性数据路径设定。带缓冲的纵横式交换机103也可设定成从一个输入端口向多个输出端口提供数据。同样,来自存储器单元105的存储器控制器152(1)的数据可在输入端口148(2)提供给带缓冲的纵横式交换机104。判优器150(1)控制存储器控制器152(1)将什么数据提供给带缓冲的纵横式交换机104的输入端口148(2)。如虚线箭头145所示,带缓冲的纵横式交换机104可设定为将该数据提供给一个输出,在本例中为输出端口142(2),它将数据提供给处理单元102的处理器120(2)。判优器122(2)控制将哪个交叉点缓冲器传至带缓冲的纵横式交换机104的输出端口142(2)。类似地,虚线144、146表示带缓冲的纵横式交换机104的另一示例性数据路径设定。
图2示出根据本发明一个实施例的带缓冲的纵横式交换机系统200的方框图。如图所示,带缓冲的纵横式交换机系统200包括带缓冲的纵横式交换机226和虚拟输出队列(VOQ)202、204和206。带缓冲的纵横式交换机226具有图示为输入端口220、222和224的三个输入端口以及图示为输出端口246、248和250的三个输出端口。因此,如图2所示,N=M=3。输入端口220与VOQ 202电气通信,输入端口222与VOQ 204电气通信,且输入端口224与VOQ 206电气通信。输出端口246与输出队列1252电气通信,输出端口248与输出队列2254电气通信,输出端口250与输出队列M 256电气通信。本发明的一些实施例可不包括输出队列252、254和256。带缓冲的纵横式交换机226在3×3交换机矩阵的每个交叉点处包括FIFO缓冲器。因此,在示例性实施例中,N×M交换机具有N×M个缓冲器。这些FIFO缓冲器在图2中表示为交叉点队列228、230、232、234、236、238、240、242和244。交叉点队列在向各输出端口发送数据前暂存数据。交叉点队列允许交换机架构几乎同时在多个输入端口无阻地接收数据。
VOQ 202、204和206可各自包括一个或多个虚拟的先入先出(FIFO)缓冲器。例如,VOQ 202可包括三个FIFO,在图2中表示为FIFO 202a、202b和202c;然而,本发明不局限于此并且可采用更多或更少的FIFO。每个VOQ缓冲器与判优器电气通信,该判优器调度通过VOQ对带缓冲的纵横式交换机226的交换机架构的访问。如图2所示,VOQ 202与判优器214电气通信,VOQ 204与判优器216电气通信且VOQ 206与判优器218电气通信。尽管图2中示出为VOQ,然而本发明的实施例也可采用其它类型的输入缓冲。
发送至VOQ 202、204和206的数据分组根据该数据分组的目的地址存储在FIFO中。数据分组一般为可变长度的,因此本发明的实施例在提供给交换机构架前将数据分组分段成“单元”。一个单元是固定数目的位以使不同大小的数据分组被分段成若干个固定大小的单元,如有必要再加上填补位。交叉点队列在单元传至相应输出队列前暂存数据单元。每个交叉点队列与判优器电气通信,该判优器调度交叉点队列对带缓冲的纵横式交换机226的输出端口的访问。如图所示,交叉点队列228、230和232与判优器225电气通信,交叉点队列234、236和238与判优器227电气通信,而交叉点队列240、242和244与判优器229电气通信。再次参见图1,判优器214、216和218对应于判优器122(1)-122(N),而判优器225、227和229对应于判优器150(1)-150(M),其中N=M=3。
本发明的一些实施例包括输出队列252、254和256,可将数据单元重组成数据分组。在将数据分组直接送至交换机构架(即不将数据分组分割成单元)的实施例中,不需要输出队列252、254和256,因为不需要数据分组重组。
本发明的一些实施例规定每个交叉点队列的尺寸(例如队列深度)可变。因此,每个交叉点队列的深度可基于例如数据经过图1带缓冲的纵横式交换机103、104的往返程时间而改变。例如,具有长往返程时间的数据路径可能需要较大的交叉点缓冲器以在数据分组往返传递期间存储数据单元。因此,本发明的实施例提供变化深度的交叉点队列以支持不同的往返程时间。
往返程时间是电头(credit)返回输入判优器所需的时间和将数据发送至交叉点缓冲器所需的时间。最初,所有交叉点缓冲器是空的。带缓冲的纵横式交换机的每个输入判优器可跟踪对每个交叉点缓冲器有多少个电头可用。例如,在交叉点缓冲器i,j处的每个输入端口i可用的电头数目C可表示为C(i,j)。电头的数目最初等于交叉点缓冲器i,j的深度。对于从输入端口i送至交叉点缓冲器i,j的每个数据单元,电头数目C递减。当C(i,j)为零时,输入端口i必须停止发送数据单元,否则交叉点缓冲器i,j将会溢出。当输出j处的输出判优器从交叉点缓冲器(i,j)拉出一单元时,C(i,j)递增1(“返回一个电头”)。例如,在花费两个周期将输入写至交叉点缓冲器并花费三个周期返回电头的系统中,往返程时间为5个周期。通过较深的交叉点缓冲器,输入可保持发送单元至交叉点缓冲器而不会消耗其电头。在本发明的示例性实施例中,交叉点缓冲器的深度可随电头返回等待时间而增加,并因此随往返程时间而增加。
由于N输入FIFO缓冲器202、204和206中的每一个具有一个判优器,因此输入判优器214、216和218是分布式判优器。由于分布式判优器可具有比集中式判优器更小的物理尺寸,输入判优器不彼此电气通信,由此利于带缓冲的纵横式交换机226的可升级性。同样,由于M输出队列252、254和256中的每一个具有一个判优器,因此输出判优器225、227和229也是分布式判优器。
判优器214、216、218、225、227和229在示例性实施例中实现为“循环”调度器,其采用循环算法:缓冲器以上升或下降顺序处理,并且过程在序列中的最后一个缓冲器被服务后返回到序列中的第一个缓冲器。例如,随着非空VOQ 202a、202b和202c中的每一个被判优器214服务,已服务的缓冲器中的数据单元被提供给交换机架构,直到当前服务的VOQ为空或该VOQ的时隙结束。任一这样的事件使判优器214前进至序列中的下一个VOQ。判优器214跳过空的VOQ以对下一个非空VOQ服务。判优器216、218、225、227和229与判优器214相同方式地运作。尽管描述了循环调度算法,然而本发明不局限于此,可采用其它调度算法,例如最长队列优先调度,其中对保留数据最长时间的队列给予调度优先级。此外,本发明的实施例提供不一定要采用相同调度算法和可采用多种调度算法的组合的输入和输出判优器。
一般来说,判优如上所述地执行。因此,如果带缓冲的纵横式交换机226具有相等数目N的输入和输出,则由Z个单元(其中Z为整数)构成的数据分组可能花费N×Z个时钟周期到达目的输出队列。本发明的示例性实施例提供单元优先级。例如,可以处理器为基础分配优先级,其中处理单元102中的某些处理器可分配予比其它处理器更高的优先级,以使关联的判优器在Z个周期内连续传递一个数据分组的所有Z个单元。作为代替,可以数据分组为基础分配优先级,其中例如某些类型的数据分组可分配予比其它类型数据分组更高的优先级。
非均匀输出因重复访问带缓冲的纵横式交换机226的某一特定输出端口而发生。由于对输出端口的访问受输出判优器的控制,非均匀输出可能限制带缓冲的纵横式交换机226的最大吞吐量。例如,如图1所示,带缓冲的纵横式交换机226的每个输出端口对应于存储器单元105中的特定存储器控制器。典型地,具有连续地址的存储区的数据传输受一个存储器控制器管理。目的存储器地址确定带缓冲的纵横式交换机226的哪路输出被访问。因此,连续存储器访问可能致使不均匀输出情况发生,这会限制带缓冲的纵横式交换机226的最大吞吐量。本发明的一些实施例在这些地址的数据通过带缓冲的纵横式交换机226前对存储器地址进行扰乱。对存储器地址的扰乱将连续的存储器访问转化成使输出端口访问具有更均匀分布的访问。
图3示出图2的带缓冲的纵横式交换机系统的另一详图。如图3所示,带缓冲的纵横式交换机301的示例性实施例另外包括图示为302、304和306的M个多路复用器,其中M是纵横式交换机的输出的数目。如图3所示,N=M=3。对具有N个输入和M个输出的交换机来说,带缓冲的纵横式交换机301的交换机架构可包括M个“N-1”多路复用器。如图所示,判优器225和交叉点队列228、230和232与多路复用器302电气通信。判优器225控制多路复用器302声明将哪个交叉点队列送至输出端口246,由此访问输出队列252。同样,交叉点队列234、236和238与多路复用器304电气通信。判优器227控制多路复用器304声明将哪个交叉点队列送至输出端口248,由此访问输出队列254。交叉点队列240、242和244与多路复用器306电气通信。判优器229控制多路复用器306声明将哪个交叉点队列送至输出端口250,由此访问输出队列256。
尽管上面的描述实现为单块芯片,然而本发明不局限于此。例如,如图4所示,每个带缓冲的纵横式交换机可占据其本身的电路板,图示为交换机卡406(1)-406(L)。多个交换机卡可占据一个板架,图示为404(1)-404(K)的多个板架形成交换机机架400。同样,处理器和存储器可位于布线机架402上。线路机架402可包括图示为板架409(1)-409(K)的多个板架,每个板架包括多个线路卡,图示为线路卡410(1)-410(L)。每个线路卡可包含例如存储器或处理器的器件,它们通过交换机卡通信。线路机架一般通过电缆或图示为412、414、416和418的光链路与交换机机架通信。
图5示出根据本发明示例性实施例运作的另一带缓冲的纵横式交换机系统。如图5所示,表示为500的一个或多个带缓冲的纵横式交换机可用来构成处理器102和存储模块105的链,其中一个存储模块可充当两个处理器的缓冲器以使其彼此通信。带缓冲的纵横式交换机500如图1所述地运作。带缓冲的纵横式交换机500也可与桥接器502电气通信,由此沿链形成分支。桥接器500可具有与带缓冲的纵横式交换机500通信的一个高带宽端口以及与图示为处理器504和存储模块506、508的较慢或旧有的数据模块通信的较低带宽端口。因此,本发明的实施例提供一种较慢数据模块与较快数据模块通信而不限制较快数据模块的可用系统带宽的方法。桥接器502可采用如上所述的带缓冲的纵横式交换机,或采用不使用带缓冲的纵横式交换机的设计。
进一步可以理解,本领域内技术人员可作出已描述和阐述以解释本发明性质的部件的细节、材料和配置方面的各种变化,而不脱离下列权利要求书中表达的本发明的范围。
本文中引述的“一个实施例”或“一实施例”表示结合该实施例描述的具体特征、结构或特性可包括在本发明的至少一个实施例中。本说明书中各处出现的短语“在一个实施例中”不一定指同一实施例,也不一定是与其它实施例相互排斥的单独或代替性实施例。这同样适用于术语“实现”。
尽管已结合电路处理——包括可能实现为单个集成式电路、多芯片模块、单卡或多卡电路组件——对本发明的示例性实施例进行了说明,然而本发明不局限于此。如本领域内技术人员所理解的那样,电路元件的各种功能也可在软件程序中实现为处理程序块。该软件可实现在例如数字信号处理器、微控制器或通用计算机中。
本发明可以方法和用以实现这些方法的装置的形式体现。本发明也可以内嵌在有形介质中的程序代码的形式体现,所述有形介质例如为磁记录介质、光学记录介质、固态存储器、软盘、CD-ROM、硬驱或任何其它机器可读存储介质,其中,当程序代码被加载入例如计算机的机器并由其执行时,该机器成为实现本发明的装置。本发明也可以例如存储在存储介质中、加载入机器和/或由其执行或在一些传输介质或载体上(例如在电线或电缆上)通过光纤或电磁辐射传输的程序代码的形式出现,其中当程序代码被加载入例如计算机的机器并由其执行时,机器成为用于实现本发明的装置。当在通用处理器上执行时,程序代码段与处理器结合以提供与特定逻辑电路类似地运作的独特设备。本发明还可以比特流或以电学或光学方式通过介质传输的其它信号值序列、磁记录介质中存储的磁场变化等方式体现,只要它们是使用本发明的方法和/或装置产生的。
应当理解,本文中描述的示例性方法的步骤不一定要以所描述的顺序执行,且这些方法的步骤顺序应当理解成仅为示例性的。同样,在本发明各实施例构成的方法中,这些方法中可包括附加步骤,并可省去或组合某些步骤。
本文中参见部件和标准使用的术语“可兼容的”表示该部件与其它部件以完全或部分地由该标准规定的方式通信,并可由其它部件识别为足以能够与其它部件以该标准规定的方式通信。可兼容的部件不需要以该标准规定的方式在内部运作。
同样针对本说明书,术语“耦合”、“结合”、“耦合的”、“电气通信”、“连接”、“相连”或“连接的”表示业内已知或日后研发的允许在两个或更多个部件之间传递能量的任何方式,并且可考虑插入一个或多个附加部件,就算不需要也好。相反,术语“直接耦合”、“直接连接”等意味着不存在这些附加部件。信号和相应的节点或端口可由同一名称表示并因此是可互换的。

Claims (13)

1.用于在数据模块之间传递数据的装置,每个所述数据模块是数据处理模块和数据存储模块中的至少一个,所述装置包括:
至少一对纵横式交换机,其中每个纵横式交换机的输入节点和输出节点耦合于数据模块中对应的各个,第一个纵横式交换机具有N输入节点乘M输出节点的交换机织构,而第二个纵横式交换机具有M输入节点乘N输出节点的交换机织构,其中N和M各自为大于1的正整数,其中N和M不相等,并且其中每个纵横式交换机包括:
在具有输入判优器的每个输入节点处的输入缓冲器,所述输入判优器配置成根据第一调度算法从每个输入缓冲器读取数据分组,其中对于每个交叉点缓冲器队列,所述队列的深度根据数据通过所述至少一个纵横式交换机中的一个传输的往返程时间而改变;
在交换机织构的每个交叉点处的交叉点缓冲器,所述交叉点缓冲器提供队列,所述队列具有配置成根据第二调度算法从交叉点缓冲器队列读取数据分组的输出判优器;以及
配置成接收从一个或多个相应交叉点缓冲器提供的数据分组的分段的输出节点,
其中当数据存储模块采用存储器中的连续位置寻址时,在使数据通过所述至少一个纵横式交换机前存储器中的位置的地址被扰乱,并且
其中所述第一个纵横式交换机将数据从第一组数据模块引至第二组数据模块,而所述第二个纵横式交换机将数据从第二组数据模块引至第一组数据模块,并且其中第一组数据模块中的每一个是数据处理模块而第二组数据模块中的每一个是数据存储模块。
2.如权利要求1所述的装置,其特征在于,还包括在每个输出节点处的输出缓冲器,所述输出缓冲器配置成存储从一个或多个相应交叉点缓冲器提供的数据分组的分段。
3.如权利要求1所述的装置,其特征在于,在每个输入节点处的输入缓冲器还包括下列其中之一:先入先出(FIFO)缓冲器、虚拟输出队列(VOQ)、或压入先出缓冲器(PIFO)。
4.如权利要求1所述的装置,其特征在于,所述第一调度算法和第二调度算法中的至少一个使用循环调度算法。
5.如权利要求4所述的装置,其特征在于,第一调度算法和第二调度算法中的至少一个的所述循环调度算法对一个或多个数据处理模块采用优先级传递。
6.如权利要求1所述的装置,其特征在于,至少一个N输入节点乘M输出节点的交换机织构包括M个互耦的N到1多路复用器。
7.如权利要求1所述的装置,其特征在于,提供给所述输入缓冲器的所述数据分组被分割成等长度的单元。
8.如权利要求7所述的装置,其特征在于,所述输入缓冲器是先入先出(FIFO)缓冲器。
9.如权利要求1所述的装置,其特征在于,所述装置实现在单块集成电路芯片上。
10.如权利要求1所述的装置,其特征在于,所述装置包括至少五个纵横式交换机:第一纵横式交换机用于将地址数据从数据处理模块传至数据存储模块,第二纵横式交换机用于将用户数据从数据处理模块传至数据存储模块,第三纵横式交换机用于将地址数据从数据存储模块传至数据处理模块,第四纵横式交换机用于将用户数据从数据存储模块传至数据处理模块,而第五纵横式交换机用于将响应从数据存储模块传至数据处理模块。
11.一种在数据模块之间传递数据的方法,每个所述数据模块是数据处理模块和数据存储模块中的至少一个,所述方法包括:
当数据存储模块采用存储器中的连续位置寻址时,对存储器中的位置地址进行寻址;
使所述数据通过至少一对纵横式交换机,其中每个纵横式交换机的输入节点和输出节点耦合于所述数据模块中相应的各个,第一个纵横式交换机具有N输入节点乘M输出节点的交换机织构,而第二个纵横式交换机具有M输入节点乘N输出节点的交换机织构,其中N和M各自为大于1的正整数,其中N和M不相等,
由所述第一个纵横式交换机将数据从第一组数据模块引至第二组数据模块,并且由所述第二个纵横式交换机将数据从第二组数据模块引至第一组数据模块,并且其中第一组数据模块中的每一个是数据处理模块而第二组数据模块中的每一个是数据存储模块;
其中每个纵横式交换机包括:
根据第一调度算法从具有输入判优器的每个输入节点处的输入缓冲器读取来自每个输入缓冲器的数据分组;
根据第二调度算法从所述交换机织构的每个交叉点处的交叉点缓冲器的输出判优器读取来自所述交叉点缓冲器队列的数据分组,所述交叉点缓冲器具有带输出判优器的队列;
根据数据通过所述至少一个交叉点交换机中的一个传输的往返程时间对每个交叉点缓冲器队列改变所述队列的深度;以及
在输出节点处接收来自一个或多个相应交叉点缓冲器的数据分组的分段。
12.如权利要求11所述的方法,其特征在于,还包括将提供给输入缓冲器的数据分组分割成等长度的单元。
13.一种用于在数据模块之间传递数据的设备,每个所述数据模块是数据处理模块和数据存储模块中的至少一个,所述设备包括以下步骤:
用于当数据存储模块采用存储器中的连续位置寻址时对存储器中的位置地址进行寻址的装置;
用于使数据通过至少一对纵横式交换机的装置,其中每个纵横式交换机的输入节点和输出节点耦合于所述数据模块中的相应各个,第一个纵横式交换机具有N输入节点乘M输出节点的交换机织构,而第二个纵横式交换机具有M输入节点乘N输出节点的交换机织构,其中N和M各自为大于1的正整数,其中N和M不相等,
用于由所述第一个纵横式交换机将数据从第一组数据模块引至第二组数据模块并且由所述第二个纵横式交换机将数据从第二组数据模块引至第一组数据模块的装置,并且其中第一组数据模块中的每一个是数据处理模块而第二组数据模块中的每一个是数据存储模块;
其中每个纵横式交换机包括:
用于根据第一调度算法从具有输入判优器的每个输入节点处的输入缓冲器读取来自每个输入缓冲器的数据分组的装置;
用于根据第二调度算法从所述交换机织构的每个交叉点处的交叉点缓冲器的输出判优器读取来自交叉点缓冲器队列的数据分组的装置,所述交叉点缓冲器具有带输出判优器的队列;
用于根据数据通过所述至少一个交叉点交换机中的一个传输的往返程时间对每个交叉点缓冲器队列改变所述队列的深度的装置;以及
用于在输出节点处接收来自一个或多个相应交叉点缓冲器的数据分组的分段的装置。
CN200910208256.0A 2009-04-27 2009-10-23 带缓冲的纵横式交换机系统 Expired - Fee Related CN101873253B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/430,438 2009-04-27
US12/430,438 US8352669B2 (en) 2009-04-27 2009-04-27 Buffered crossbar switch system

Publications (2)

Publication Number Publication Date
CN101873253A CN101873253A (zh) 2010-10-27
CN101873253B true CN101873253B (zh) 2014-06-04

Family

ID=42536429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910208256.0A Expired - Fee Related CN101873253B (zh) 2009-04-27 2009-10-23 带缓冲的纵横式交换机系统

Country Status (6)

Country Link
US (1) US8352669B2 (zh)
EP (1) EP2247040B1 (zh)
JP (1) JP5537956B2 (zh)
KR (1) KR101639438B1 (zh)
CN (1) CN101873253B (zh)
TW (1) TWI390913B (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965705B2 (en) * 2009-03-19 2011-06-21 Oracle America, Inc. Fast and fair arbitration on a data link
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
CN101631081B (zh) * 2009-08-12 2011-06-08 华为技术有限公司 一种多级交换网
US8687629B1 (en) * 2009-11-18 2014-04-01 Juniper Networks, Inc. Fabric virtualization for packet and circuit switching
FR2955992B1 (fr) * 2010-01-29 2012-04-20 Inst Nat Rech Inf Automat Dispositif de commutation ou de routage modulable
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US20130141442A1 (en) * 2011-12-06 2013-06-06 John W. Brothers Method and apparatus for multi-chip processing
US8868672B2 (en) 2012-05-14 2014-10-21 Advanced Micro Devices, Inc. Server node interconnect devices and methods
US9137173B2 (en) 2012-06-19 2015-09-15 Advanced Micro Devices, Inc. Devices and methods for interconnecting server nodes
US8930595B2 (en) * 2012-06-21 2015-01-06 Advanced Micro Devices, Inc. Memory switch for interconnecting server nodes
US9253287B2 (en) 2012-08-20 2016-02-02 Advanced Micro Devices, Inc. Speculation based approach for reliable message communications
US8984206B2 (en) 2012-10-31 2015-03-17 International Business Machines Corporation Weightage-based scheduling for hierarchical switching fabrics
US8875256B2 (en) 2012-11-13 2014-10-28 Advanced Micro Devices, Inc. Data flow processing in a network environment
US9594714B2 (en) * 2012-11-15 2017-03-14 Empire Technology Development Llc Multi-channel storage system supporting a multi-command protocol
US8902899B2 (en) 2013-02-08 2014-12-02 International Business Machines Corporation Input buffered switching device including bypass logic
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
CN104125171A (zh) * 2013-04-26 2014-10-29 联发科技股份有限公司 交换机结构以及入口流量处理方法
US9336169B2 (en) * 2013-10-02 2016-05-10 International Business Machines Corporation Facilitating resource use in multicycle arbitration for single cycle data transfer
GB2526018B (en) 2013-10-31 2018-11-14 Silicon Tailor Ltd Multistage switch
CN104734873B (zh) * 2013-12-20 2018-04-13 深圳市国微电子有限公司 一种交换系统及其交换设备中缓冲器的管理方法、系统
US9678906B2 (en) * 2014-03-26 2017-06-13 International Business Machines Corporation Oldest link first arbitration between links grouped as single arbitration elements
US9467396B2 (en) 2014-04-11 2016-10-11 International Business Machines Corporation Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
US9846661B2 (en) * 2014-07-17 2017-12-19 Empire Technology Development Llc Utilization of solid state memory devices
US10560383B2 (en) * 2016-11-10 2020-02-11 Futurewei Technologies, Inc. Network latency scheduling
KR102269068B1 (ko) * 2017-03-10 2021-06-24 한국전자통신연구원 스위칭을 위한 스케줄링 방법 및 스케줄러
US10769080B2 (en) * 2017-03-30 2020-09-08 Futurewei Technologies, Inc. Distributed and shared memory controller
US10938751B2 (en) 2018-04-18 2021-03-02 Hewlett Packard Enterprise Development Lp Hierarchical switching devices
TWI756444B (zh) * 2018-06-29 2022-03-01 智邦科技股份有限公司 避免在箱型交換機內形成迴圈之網路介面卡、交換卡、及線路卡
US10757038B2 (en) * 2018-07-06 2020-08-25 Hewlett Packard Enterprise Development Lp Reservation-based switching devices
US11520713B2 (en) * 2018-08-03 2022-12-06 International Business Machines Corporation Distributed bus arbiter for one-cycle channel selection using inter-channel ordering constraints in a disaggregated memory system
US11855913B2 (en) 2018-10-31 2023-12-26 Hewlett Packard Enterprise Development Lp Hierarchical switching device with deadlockable storage and storage partitions
US11706163B2 (en) * 2019-12-20 2023-07-18 The Board Of Trustees Of The University Of Illinois Accelerating distributed reinforcement learning with in-switch computing
US11563687B2 (en) * 2021-02-04 2023-01-24 Ciena Corporation Controlling distributed buffers in a network to manage data packets
CN114968861B (zh) * 2022-05-25 2024-03-08 中国科学院计算技术研究所 一种两写两读的数据传输结构以及片上多通道交互网络

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1414252A2 (en) * 2002-10-23 2004-04-28 Northrop Grumman Corporation Cross point switch fabric and switch fabric slice
US6888841B1 (en) * 1999-11-10 2005-05-03 Nec Corporation Pipelined scheduling technique
US7234018B1 (en) * 2001-07-11 2007-06-19 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2447652A1 (fr) * 1979-01-24 1980-08-22 Materiel Telephonique Operateur pour reseau de commutation de donnees numeriques par paquets
US4982187A (en) * 1989-11-28 1991-01-01 International Business Machines Corporation Low-end high-performance switch subsystem architecture
US5623698A (en) * 1993-04-30 1997-04-22 Cray Research, Inc. Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett Packard Co Anordnung mit Duplikat des Cache-Etikettenspeichers
US5892766A (en) * 1996-02-22 1999-04-06 Fujitsu, Ltd. Method and apparatus for coordinating access to an output of a routing device in a packet switching network
US6195335B1 (en) * 1997-06-27 2001-02-27 International Business Machines Corporation Data switch
US5943283A (en) * 1997-12-05 1999-08-24 Invox Technology Address scrambling in a semiconductor memory
US6636932B1 (en) * 1998-05-27 2003-10-21 Micron Technology, Inc. Crossbar switch and control for data networks switching
JP3736338B2 (ja) * 2000-11-13 2006-01-18 株式会社日立製作所 パケットスイッチ
US7154885B2 (en) * 2001-12-31 2006-12-26 Stmicroelectronics Ltd. Apparatus for switching data in high-speed networks and method of operation
US7349388B1 (en) * 2002-01-03 2008-03-25 International Business Machines Corporation Buffered crossbar switch and its method of operation
US7089346B2 (en) * 2002-06-03 2006-08-08 International Business Machines Corporation Method of operating a crossbar switch
JP4002210B2 (ja) * 2003-05-13 2007-10-31 日本電信電話株式会社 入力・クロスポイントバッファ型スイッチおよびそのスケジューリング方法
US6954821B2 (en) * 2003-07-31 2005-10-11 Freescale Semiconductor, Inc. Crossbar switch that supports a multi-port slave device and method of operation
US7492782B2 (en) * 2003-12-27 2009-02-17 Electronics And Telecommunications Research Institute Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US7499464B2 (en) * 2005-04-06 2009-03-03 Robert Ayrapetian Buffered crossbar switch with a linear buffer to port relationship that supports cells and packets of variable size
US7596142B1 (en) * 2006-05-12 2009-09-29 Integrated Device Technology, Inc Packet processing in a packet switch with improved output data distribution
JP2008042504A (ja) * 2006-08-04 2008-02-21 Nec Corp スイッチ装置、スイッチ方法、及びプログラム
US8995456B2 (en) * 2009-04-08 2015-03-31 Empire Technology Development Llc Space-space-memory (SSM) Clos-network packet switch

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6888841B1 (en) * 1999-11-10 2005-05-03 Nec Corporation Pipelined scheduling technique
US7234018B1 (en) * 2001-07-11 2007-06-19 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
EP1414252A2 (en) * 2002-10-23 2004-04-28 Northrop Grumman Corporation Cross point switch fabric and switch fabric slice

Also Published As

Publication number Publication date
EP2247040B1 (en) 2017-08-16
EP2247040A3 (en) 2011-12-07
CN101873253A (zh) 2010-10-27
KR20100118054A (ko) 2010-11-04
TW201108668A (en) 2011-03-01
KR101639438B1 (ko) 2016-07-13
US8352669B2 (en) 2013-01-08
JP5537956B2 (ja) 2014-07-02
US20100272117A1 (en) 2010-10-28
EP2247040A2 (en) 2010-11-03
TWI390913B (zh) 2013-03-21
JP2010259045A (ja) 2010-11-11

Similar Documents

Publication Publication Date Title
CN101873253B (zh) 带缓冲的纵横式交换机系统
Tamir et al. High-performance multi-queue buffers for VLSI communications switches
US7433363B2 (en) Low latency switch architecture for high-performance packet-switched networks
US5894481A (en) Fiber channel switch employing distributed queuing
US7330927B1 (en) Apparatus and methodology for a pointer manager
EP1034686A1 (en) A low latency shared memory switch architecture
CN104641608A (zh) 超低延时网络缓冲存储
US11677676B1 (en) Shared traffic manager
CN112073336A (zh) 基于AXI4 Stream接口协议的高性能数据交换系统及方法
US20080212577A1 (en) Chip circuit for combined and data compressed fifo arbitration for a non-blocking switch
US10846225B1 (en) Buffer read optimizations in a network device
CN100539538C (zh) 具有链表处理器的存储器管理系统
CN104333516A (zh) 用于组合输入交叉点缓存交换结构的旋转轮训调度方法
JP2007532052A (ja) 演算及びデータ貯蔵の管理のためのスケーラブルネットワーク
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
US8670454B2 (en) Dynamic assignment of data to switch-ingress buffers
US10742558B1 (en) Traffic manager resource sharing
US7965705B2 (en) Fast and fair arbitration on a data link
US7272151B2 (en) Centralized switching fabric scheduler supporting simultaneous updates
CN103685078A (zh) 基于光纤延时线的全光共享缓存路由器及其工作方法
CN103384225A (zh) 基于输入交叉点缓存快速分组交换网络的流量控制方法
Ejlali et al. Design and implementation of a shared memory switch fabric
Simos et al. Building an FoC using large, buffered crossbar cores
CN103067309B (zh) 具有时空分离特性的afdx网络交换机
Pan et al. CQPPS: A scalable multi‐path switch fabric without back pressure

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
C56 Change in the name or address of the patentee

Owner name: INFINEON TECHNOLOGIES CORP.

Free format text: FORMER NAME: LSI CORP.

CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: LSI Corp.

Address before: California, USA

Patentee before: LSI Corporation

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20161208

Address after: California, USA

Patentee after: INTEL Corp.

Address before: California, USA

Patentee before: LSI Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140604

Termination date: 20191023