CN1135798C - 数据网络中的分组交换设备和方法 - Google Patents

数据网络中的分组交换设备和方法 Download PDF

Info

Publication number
CN1135798C
CN1135798C CNB001183133A CN00118313A CN1135798C CN 1135798 C CN1135798 C CN 1135798C CN B001183133 A CNB001183133 A CN B001183133A CN 00118313 A CN00118313 A CN 00118313A CN 1135798 C CN1135798 C CN 1135798C
Authority
CN
China
Prior art keywords
port
transmission
control section
reception control
packet
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
CNB001183133A
Other languages
English (en)
Other versions
CN1277508A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1277508A publication Critical patent/CN1277508A/zh
Application granted granted Critical
Publication of CN1135798C publication Critical patent/CN1135798C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/107ATM switching elements using shared medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Abstract

数据网络中的分组交换设备包括多个负责输入/输出分组发送/接收命令和数据分组的端口;多个响应分组发送/接收命令访问分成组的信息资源和在分组存储器中存储相应数据分组或向相应端口发送这些数据分组的发送/接收控制部分;多个成组地存储分组交换所需信息并向发送/接收控制部分提供所存储信息的信息资源;和多个与各信息资源相连、用于调度对发送/接收控制部分的访问的信息资源调度器。

Description

数据网络中的分组交换设备和方法
本发明涉及数据网络中的分组交换系统,更具体而言涉及以并行方式交换分组的设备和方法。
在各种网络(不包括点对点网络)中都存在数据采集和分配设备。其中最好的例子是交换机和路由器。通常这类设备至少有两个端口。设备通过这些端口接收数据,执行必要的数据处理,然后通过一个或多个的端口输出处理后的数据。在这些过程中,肯定会发生拥塞,并且这将引起数据传输等待。在产生拥塞的各种原因中最重要的一个原因是数据处理需要时间。
在分组交换系统中传统的分组处理方法如下所述:首先在步骤1:某个端口接收数据分组,接着在步骤2:先进先出(FIFO)部分暂存输入数据分组,步骤3:输入数据分组等待对先前输入的数据分组的处理,步骤4:数据分组处理部分对存储在FIFO中的输入数据分组执行必要的处理。这时,数据处理需要复杂的确定过程,以及这种确定需要在一个确定执行者(即控制器)和一个信息资源之间传递信息。步骤5:分组处理结束后,数据分组处理部分检查在相应的输出端口是否有其它先前处理过的分组。步骤6:如果有先前处理过的分组,数据分组处理部分就在缓冲区中存储处理过的分组。步骤7:如果先前处理过的分组全部输出了,则数据分组处理部分向输出端口发送存储在缓冲区中的处理过的分组。
根据传统的数据分组处理方法,由于一个数据分组处理部分控制多个端口,并且在一个时刻只能处理一个分组,因此可以用简单的结构实现它。
但是,如果与数据处理时间相比输入的分组数较大时(实际上,大部分分组交换机和路由器有这个特点),数据线实际处于空闲状态,即经过数据线并没有传送数据,而分组处理延时发生在数据分组处理部分。尤其在严重时可能产生数据丢失。
同时,在分组处理中可以考虑两个单元。即:一个用于控制和判断整个处理过程的控制部分,和一个用于存储和提供控制部分进行判断所需的信息的信息资源。在多数情况下,信息资源为寄存器和存储器的形式。这时,在分组交换系统中为何传统分组数据处理方法在一个时刻只处理一个分组的原因是采用单个存储器实现该资源。
因此,为了解决在相关技术中所涉及的问题和提供快速分组处理,应该把在资源中存储的信息分成组,以便各信息组存储在不同的资源中,并且应该分配多个发送/接收控制部分(大于各个相应组的资源数)以减少输入数据分组的控制开销。也可以把发送/接收控制部分分配给各端口。发送/接收控制部分通过同时访问各个组的信息资源就能够减少控制开销和加速分组处理。
同时,发送/接收控制部分应当能够共享信息资源。因此判优器和调度器应当使各发送/接收控制部分在一个时刻访问一个资源。如果发送/接收控制部分过多地访问一个指定信息资源,应通过重新调整各个组来保持访问负荷平衡。
图1表示了一个传统分组交换设备实施方案的结构。参看图1,主机100控制分组交换设备的全部操作。主机100负责最高层,并执行向分组交换设备输入的命令。第一MAC端口110至第nMAC端口1n0可被连接到另一个分组交换设备、路由器或PC,并执行标准MAC控制以便把数据分组发送/接收命令输出到发送/接收控制部分120。数据交换部分130在发送/接收控制部分120的控制下确定在主机100、第一MAC端口110至第n端口1n0、和分组存储器150之间的数据和控制信号的路径。数据交换部分130可以用复用器/解复用器来实现。
搜索存储器140存储用于判断与接收到的分组的目的地址相对应的输出MAC端口的信息,从而使注册过的MAC地址能够被找出。分组存储器150具有多个信息资源,例如地址表152,端口表154和分组描述符156。分组存储器150存储输入的数据分组。地址表152存储有关MAC地址的信息,端口表154存储状态信息、使能信息和关于完成接收操作的信息。分组描述符156存储有关存储在分组存储器150中各个分组的信息(如分组连接信息)。
发送/接收控制部分120根据分组发送/接收命令控制经第一MAC端口至第nMAC端口1n0输入/输出的分组的发送/接收。特别地,发送/接收控制部分120暂存接收的数据分组,通过访问搜索存储器140检查接收到的分组头的目的地址是否是已注册的地址,并且找出已注册的MAC地址信息存储在地址表152的位置。然后发送/接收控制部分120确定接收到的分组输出的MAC端口。
发送/接收控制部分120还通过访问地址表152、端口表154和分组描述符156将接收的数据分组存储在分组存储器150中。在分组发送期间,通过访问地址表152、端口表154和分组描述符156,发送/接收控制部分120经相应输出端口发送存储在分组存储器150中的分组数据。
图2表示了另一个传统分组交换设备实施方案的结构。参看图2,总线接口212从主机总线210接收一个数据分组,并把该数据分组输出到第一MAC端口211到第n个MAC端口21n。总线接口212还向主机总线210输出从MAC端口发送来的数据分组。第一MAC端口211到第n个MAC端口21n执行标准MAC控制并且向发送/接收控制部分120输出数据分组发送/接收命令。MAC端口接口238是各MAC端口和发送/接收控制部分228之间的接口。MAC端口接口238为每个MAC端口提供发送/接收FIFO,并且暂存子分组。
复用器224在从MAC端口接口238输出的各端口的数据分组中选择相应的数据分组,并向发送/接收控制部分228输出相应的数据分组。解复用器226解复用从发送/接收控制部分228输出的数据分组,并向相应端口输出解复用的数据分组。
搜索存储器236存储用于判断与接收到的分组的目的地址相对应的输出MAC端口的信息。分组存储器234具有多个信息资源如地址表、端口表和分组描述符。分组存储器234存储输入的数据分组。
发送/接收控制部分228根据分组发送/接收命令控制经第一MAC端口到第n个MAC端口21n输入/输出的分组的发送/接收。特别地,发送/接收控制部分228暂存接收的数据分组,通过访问搜索存储器236检查接收到的分组头的目的地址是否是已注册的地址,并且找出已注册的MAC地址信息存储在分组存储器234中地址表(未说明)的位置。然后发送/接收控制部分238确定接收分组输出的MAC端口。
发送/接收控制部分228还通过访问分组存储器234中的地址表,端口表和分组描述符(未说明)把接收的数据分组存储在分组存储器234中。在分组发送期间,通过访问地址表、端口表和分组描述符,发送/接收控制部分228经相应的输出端口发送存储在分组存储器234中的分组数据。
如图1和2所示,根据传统的分组交换设备,由于单个发送/接收控制部分从多个端口接收数据分组发送/接收命令,并且各种信息资源如地址表、端口表等都存储在一个分组存储器中,可知在一个时刻只处理一个分组。因此,尽管数据线实际处于空闲状态,但是在数据分组处理期间会产生分组时延。例如,如果发送/接收控制部分正在执行从某一端口来的命令,从另一端口来的分组就应该等待直到执行命令完成。
图3为说明在传统分组交换系统中的接收控制状态流程图。图1和3中,‘Rx控制’含义是基于在发送/接收控制部分120的搜索操作之后得到的信息所执行的一系列操作。特别地,图3说明发送/接收控制部分120从第一MAC端口110到第n个MAC端口1n0接收数据分组并将接收到的数据分组存储在分组存储器150中的一系列控制操作。除了处理各种错误、地址不匹配和滤波等以外,图3是一个最简单的状态图。假设发送/接收控制部分120以频率50MHz工作,在图3中的每个状态标明了处理64字节分组所需的时间。如图3所示,可知从空闲状态300到分组存储器150发送实际数据分组发送的分组发送(Xfer_pkt)状态332之间总共有多个控制状态。
下面的表1表示由图3的传统分组交换方法控制的各状态在接收期间执行的操作。表1还表示在相应状态下发送/接收控制部分120将会经由数据交换部分130访问分组存储器150、地址表152和端口表154中的哪一个,以及特别是当发送/接收控制部分以频率50MHz工作并接收64字节分组时,各状态的数据处理时间。
                   表1状态           操作                资源      时间取得Rx信息     读接收端口表信息    端口表    420nsstc查找        读地址表(源地址)    地址表    300nsdst查找        读地址表(源地址)    地址表    320ns取得pkt计数读ATM端口表分组计数     端口表    40ns
           可跳入以太网操作DeQ EB          使空缓冲器散列            端口表      220ns初始化desc      初始化分组描述符          分组存储器  200ns取得当前地址    确定写数据的地址          端口表      20ns取得pkt长度     从分组描述符读各种信息    分组存储器60ns更新scrAT       在源地址表中更新统计值    地址表80ns更新dst AT      在目的地址表中更新统计值  地址表120nsXfer pkt        传递分组(子分组)          分组存储器460nsDeQ Rx          使Rx队列散列              端口表40nsEnQ Tx          使Rx队列排队              端口表80ns
如表1所示,可知根据传统的分组交换方法,发送/接收控制部分120需要大量的时间以便通过访问端口表154和地址表152来发送/接收信息,除此之外它还需要有用于在分组存储器150中实际存储数据分组的时间。
在一个接收周期期间,各状态访问端口表154、地址表152和分组存储器150所需的各时间总结如下:如果实际采用图1的传统分组交换设备以50MHz的频率进行工作,并接收64字节的数据分组,则访问端口表154所需的时间总共是820ns,访问分组存储器所需的时间是720ns,及访问地址表152所需的时间总共是820ns。
因此,例如如果第一MAC端口110至第n个MAC端口1n0的发送/接收控制部分120是各自独立的,及各MAC端口的端口表分布在各自的发送/接收控制部分120中,则端口表访问时间将大大减少。实际上,整个接收控制周期所需的时间将减小到820ns左右(基于地址表152的访问时间)。
如果地址表152与分组存储器150分开,且各发送/接收控制部分可同时访问地址152和/或分组存储器150,则不同端口的发送/接收控制部分就能够同时访问地址表152和分组存储器150。因此,可以减小分组传输的时延,并使数据有效地传输。特别是,如果保证地址表152和各端口的发送/接收控制部分设置在同一芯片内,并且对地址表152的访问是32比特或更多,则访问地址表152所需的时间将会小于820ns。因此,在整个接收控制周期内,瓶颈将是访问分组存储器所需的时间(720ns)。换言之,接收控制周期所需的时间将减小到720ns以下。
下面的表2表示:假设采用图1的传统分组交换设备执行发送控制时在各状态执行的操作。
表2空闲  读端口表  读pkt desc   Pkt Xfer    更新pkt desc  空闲
  端口表    分组描述符   分组存储器  Pkt desc
  220ns     300ns        540ns       160ns
在表2中,在读端口状态可以执行以下操作。发送/接收控制部分120通过访问端口表154来读当前发送地址指针。如果待发送的分组是分组开始(SOP),发送/接收控制部分120就初始化端口表154的发送字节,并通过访问分组描述符156来读分组数据指针。如果待发送的分组是多址传送的,就读多址传送数据指针。
表2中在分组发送(Xfer_pkt)状态还可执行以下操作。发送/接收控制部分120通过访问分组存储器150读待发送的子分组。如果待发送的分组是分组开始(SOP),发送/接收控制部分120就使分组存储器150中的发送缓冲区散列,并使一个空缓冲区排队。然后发送/接收控制部分120减小当前分组计数。如果当前分组计数是‘0’,发送/接收控制部分120就禁止相应的端口队列。
同时假设图1的分组交换设备执行发送控制操作,与实际数据分组的发送操作相比,控制开销并没有那么大。但是如果以和接收控制操作同样的方式来将控制操作和发送操作相互分开,则能够减小处理数据分组的时间。例如如果在各端口发送/接收控制部分的发送块中提供分组描述符156,则能够减少整个发送周期所需时间。
图4为一定时图,说明图2的传统分组交换设备中在MAC接口和发送/接收控制部分之间发送和接收分组的情形。在图2中,发送和接收的各分组的长度为64字节,这样一个分组就成为SOP或EOP。工作频率也是50MHz,时钟频率为1/20ns。
发送/接收部分228处理来自先前在数据接收状态424搜索到的指定MAC端口的分组。在搜索和发送状态426,对下一个将处理的分组执行搜索操作(该分组例如是从另一个MAC端口输出、而不是从上面的MAC端口输出的分组),并且执行向相应MAC端口发送当前待发送的分组的操作。如果搜索和发送状态426结束,发送/接收控制部分228就进入发送状态428,并执行分组发送。然后在发送状态428结束之后,一个分组处理周期就结束。这时,数据接收状态424的时间段是1480ns,增加的搜索和发送状态及发送状态的时间段是1520ns。
图4中,接收(Rx)控制开销由下式给出:
[等式1]
(1-320/2480)=87%
这里‘2480’表示数据接收状态424的时间段,‘320’表示发送/接收控制部分228把从相应的MAC端口实际接收的数据分组存储在分组存储器150中所需的时间。
图4中发送(Tx)控制开销由下式给出:
[等式2]
(1-320/1520)=79%
这里‘1520’表示增加的搜索和发送状态426及发送状态428附加的时间段,‘320’表示发送/接收控制部分228向相应的MAC端口发送来自分组存储器234的实际发送数据分组所需的时间。
图4中整个控制开销由下式给出:
[等式3]
(1-640/4000)=84%
这里‘4000’表示一个分组处理周期的时间。‘640’表示通过发送/接收控制部分228访问分组存储器234发送实际数据分组所需的时间。
从等式3可知如果图2的传统分组交换设备的分组长度是64字节,则控制开销是84%。具体地,输出、处理和然后输出一个数据分组所需时间的84%被用于控制操作,其余的16%用于实际数据发送。
因此,本发明致力于解决相关技术中的问题,本发明的目的是提供一种在数据网络中通过减小控制开销来执行高速分组交换的设备。
本发明的另一个目的是提供一种在数据网络中快速处理分组的设备,其中控制开销的减小是通过把信息资源分成组、存储多个不同的资源组、并分别通过多个发送/接收控制部分独立地访问这些信息资源而实现的。
本发明的还有一个目的是提供一种在数据网络中快速处理分组的设备,其中控制开销的减小是通过把信息资源分成组、存储多个不同的资源组、并分别通过多个端口发送/接收控制部分独立地访问这些信息资源而实现的。
本发明还有另一个目的是提供一种在数据网络中执行高速分组交换的设备和方法,这是通过把分组交换所需的信息资源例如分组描述符、端口表、链路存储器、地址表等分成组;并通过调度多个发送/接收控制部分的操作来并行地访问这些信息资源而实现的。
为了达到以上目的,根据本发明,数据网络中的一种分组交换设备包括多个负责输入/输出分组发送/接收命令和数据分组的端口;多个用于根据分组发送/接收命令来访问分成组的信息资源、和把相应的数据分组存储在分组存储器中或向相应的端口发送存储在分组存储器中的相应的数据分组的发送/接收控制部分;多个用于成组地存储分组交换所需的信息并向发送/接收控制部分提供所存储信息的信息资源;和多个与各信息资源相连的、用于调度对发送/接收控制部分的访问的信息资源调度器。
根据本发明的另一方面,提供了一种在数据网络中的分组交换方法,它包括:第一步骤:多个发送/接收控制部分向分成组的信息资源调度器输出相应的访问信号以便访问各信息资源,第二步骤:各信息资源调度器执行对访问信号的调度,以便多个发送/接收控制部分能够一次访问其中一个信息资源,第三步骤:多个发送/接收控制部分存储接收到的数据分组,或如果访问路径被连接,就发送相对于相应的信息资源所存储的数据分组。
参考以下附图详细描述本发明的优选实施方案,本发明的上述目的和优势将更加明显:
图1为一个传统分组交换设备实施方案的方框图;
图2为另一个传统分组交换设备实施方案的方框图;
图3说明传统分组交换设备中接收控制状态的流程图;
图4为一定时图,说明图2的传统分组交换设备中在MAC接口和发送/接收控制部分之间发送和接收分组的情形;
图5为根据本发明的第一个实施方案的数据网络中的分组交换设备的方框图;
图6为根据本发明的第二个实施方案的数据网络中的分组交换设备的方框图;
图7A到图7C为说明根据本发明的一个实施方案的分组交换设备的整个接收控制操作流程图。
图8为说明根据本发明的一个实施方案的分组交换设备的整个发送控制操作流程图。
图9为根据本发明的第三个实施方案的数据网络中的分组交换设备的方框图;
图10为根据本发明的第四个实施方案的数据网络中的分组交换设备的方框图;及
图11为根据本发明的第五个实施方案的数据网络中的分组交换设备的方框图。
现在将更详细地讨论本发明的优选实施方案。在以下本发明的描述中,将忽略这里合并的已知功能和结构的详细描述,因为它可能使本发明的主题模糊。以下我们参考附图解释本发明。
图5表示根据本发明的第一个实施方案的数据网络中分组交换设备。
第一MAC端口512至第n个MAC端口5n2可以分别连接到不同的分组交换设备、路由器或PC上。第一MAC端口512至第n个MAC端口5n2执行标准MAC控制,并向分别与之相连接的第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6输出相应的分组发送/接收命令。MAC端口还向分别与之相连接的发送/接收控制部分发送所接收到的数据分组,并从相应的发送/接收控制部分向相应的协议控制部分输出数据分组。协议控制部分可由其它分组交换设备、路由器或PC提供。
第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6根据从相应的MAC端口输出的分组发送/接收命令来执行分组发送/接收控制。
第一数据交换部分518至第n个数据交换部分5n8在相应的端口发送/接收控制部分的控制之下提供数据分组和控制信号路径。第一端口表514至第n个端口表5n4存储关于相应MAC端口的信息,并在各端口上进行分配。有关各MAC端口的信息相互独立,不需要其它端口分享这些信息。图5中第一端口表514至第n个端口表5n4与相应端口发送/接收控制部分相连。
应当认为当第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6对相应的端口执行分组的发送/接收控制时,信息资源被分成组。根据图5的实施方案,这些组是第一端口表514至第n个端口表5n4和搜索存储器524、地址表534、以及控制队列管理器535和分组存储器544。第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6通过独立地访问搜索存储器524、地址表534、控制队列管理员535、和分组存储器544,从而将接收到的分组存储在分组存储器150中或者把存储在分组存储器150中的数据分组通过相应的输出端口进行发送。也即,为了执行分组接收/发送控制,各端口发送/接收控制部分在分开的信息资源中访问除了相应的端口表之外的四个调度器。各调度器可以采用循环(Round-Robin)系统。
搜索调度器520使得第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6能够共享搜索存储器524。也即,搜索调度器520在某个时刻只使能一个端口发送/接收控制部分访问搜索存储器524。采用与搜索调度520同样的方式,地址表调度530和分组存储器调度540也使得第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6能够共享地址表534和分组存储器544。控制队列管理器535使得第一端口发送/接收控制部分516至第n个端口发送/接收控制部分5n6共享其本身。控制队列管理器535还存储对于分组存储器544的排队操作的各队列的指针信息,并且根据排队操作更新指针信息。控制队列管理器535还向所选的相应端口发送/接收控制部分输出指针信息,以便端口发送/接收控制部分执行排队操作。
同时,图5的结构除了分组存储器544之外可以被制成一个芯片。分组描述符546可以从分组存储器544中分离出来以便各端口发送/接收控制部分能共享它,并且各端口发送/接收控制部分能够通过创建多个任务来执行发送/接收控制。
现在,我们将解释上面建造的根据本发明实施方案的分组交换设备的操作。各端口发送/接收控制部分暂存所接收到的数据分组。各端口发送/接收控制部分还检查所接收到的分组头的目的地址是否是已注册的地址,并经搜索调度器520访问搜索存储器524从而找出注册的MAC地址信息被存储在地址表534中的位置。然后,各端口发送/接收控制部分确定接收到的分组将输出到哪个MAC端口。
各端口发送/接收控制部分通过经地址表调度器530访问地址表534来检查接收到的分组的源地址和目的地址。之后,各端口发送/接收控制部分通过访问与其本身直接相连的相应端口表来检查端口信息,并且通过经地址表调度器530和分组存储器调度器540访问地址表534和分组描述符540来检查MAC地址信息和分组信息。然后各端口发送/接收控制部分把暂存的分组存储在分组存储器546中。在分组发送时,各端口发送/接收控制部分根据与其本身相连的相应地址表,通过经由地址表调度器530和分组存储器调度器530访问地址表534和分组描述符546,从而经相应的输出端口发送存储在分组存储器544中的数据分组。
之后各端口发送/接收控制部分执行错误检测操作。特别地,如果相对于分组出现了MAC错误、未知的源地址、地址变动和目的地址,则各端口发送/接收控制部分作出舍弃、广播或向主机发送的判定。
同时我们将解释各端口发送/接收控制部分把数据分组存储在分组存储器544中、并向相应的MAC端口输出存储在分组存储器544中的数据分组这一过程的例子。
如果接收到分组,当各端口发送/接收控制部分访问相应的端口表时就存储接收到的分组,并根据控制队列管理器535的指针信息使空缓冲区散列并使接收队列排队。然后各端口发送/接收控制部分通过访问相应的端口表并根据控制队列管理器535的指针信息执行排队操作,从而利用该指针连接存储在分组存储器中的分组。分组的信息存储在分组描述符546中。当从相应端口接收到分组时,如果当前处理的分组是EOP,各端口发送/接收控制部分根据控制队列管理器535的指针信息使接收(Rx)队列排队。如果当前处理的分组是EOP,端口发送/接收控制部分根据控制队列管理器535的指针信息使接收队列散列,并使在分组存储器544中提供的发送(Tx)队列排队。
在分组发送时,各发送/接收控制部分通过访问分组描述符546查阅分组信息,并且向输出端口的MAC发送存储在分组存储器中的相应分组。这时各端口发送/接收控制部分访问相应的端口表,根据控制队列管理器535的指针信息使发送(Tx)队列散列并使空缓冲器排队。
图6表示根据本发明第二个实施方案的数据网络中的分组交换设备。
图6的分组交换设备可以经总线接口600连接到一个主机(未示出)和多个分组交换设备(未示出)。图6的分组交换设备还可以经总线接口600连接到路由器或PC。
第一MAC端口604至第n个MAC端口606执行标准的MAC控制,并输出分组发送/接收命令。各MAC端口负责数据分组的输入/输出。尤其是,各MAC端口向与之连接的发送/接收控制部分发送接收到的数据分组,并从相应的发送/接收控制部分向相应的协议控制部分输出数据分组。各MAC端口能够执行全双工操作或半双工操作。各MAC端口安置在分组交换设备之外。
第一MAC接口部分608至第n个接口部分614分别作为MAC端口和端口发送/接收控制部分之间的接口,并负责子分组发送。各MAC接口部分具有发送和接收FIFO,并能暂存子分组。当能够发送或接收时,各MAC接口部分向相应的端口发送/接收控制部分输出分组发送/接收命令。
第一端口发送/接收控制部分620至第n个端口发送/接收控制部分624可以提供给每个MAC端口。各端口发送/接收控制部分有第一端口表622至第n个端口表626。如果输入分组发送/接收命令,各端口发送/接收控制部分通过访问所提供的端口表执行地址搜索操作。各端口发送/接收控制部分还向分组存储器调度器628、地址表调度器630或搜索调度器632输出连接请求信号,以便访问地址存储器642、地址表644或搜索存储器646。如果完成与所需信息资源的连接,则各端口发送/接收控制部分执行子分组发送、各子分组的SOP处理和EOP处理、分组排队和分组散列。各端口发送/接收控制部分还更新有关源/目的地址的统计信息。
分组存储器调度器628被连接到各端口发送/接收控制部分。地址表调度器630通过从各端口发送/接收控制部分调度连接请求信号而将所选的相应端口发送/接收控制部分连接到地址表644。在本发明的实施方案中,分组存储器调度628可以控制控制队列管理器634提供的空队列、‘0’和‘1’的主机队列和多址传送队列。分组存储器调度器628还可以控制对控制队列管理器634的队列(例如接收(Rx)队列、发送(Tx)队列等)的排队和散列操作。
控制队列管理器634与各端口发送/接收控制部分相连,并通过调度从各端口发送/接收控制部分来的连接请求信号而执行对例如Rx队列、Tx队列等队列的排队和散列操作。队列管理器634具有空队列、多址传送队列、0’和‘1’的主机队列和扩充队列。如果主机(未示出)与总线接口600相连,则扩充队列就包括主机队列。
地址表调度器630与各端口发送/接收控制部分相连。地址表调度630通过调度来自各端口发送/接收控制部分的连接请求信号而将所选的相应端口发送/接收控制部分与地址表644相连接。
搜索调度器632与各端口发送/接收控制部分相连。搜索调度器632通过调度来自各端口发送/接收控制部分的连接请求信号而将所选的相应端口发送/接收控制部分与搜索存储器646相连。
分组存储器接口636是分组存储器调度器628和分组存储器642之间的接口。地址表接口638为地址表调度器630和地址表644之间的接口。搜索存储器接口640为搜索调度器632和搜索存储器646之间的接口。
第一端口表622至第n个端口表626中存储状态信息、使能信息和有关各MAC端口完成接收操作的信息。分组存储器642中存储子分组,及分组描述符648中存储有关各子分组的信息。地址表644中存储已注册分组的目的MAC地址的源MAC地址信息。并且,搜索存储器646存储用于判断与接收到的分组的目的地址对应的输出MAC端口。
下面我们将解释图6所示的根据本发明实施方案的分组交换设备的操作。接收控制指的是把在各端口的MAC接口部分中存储的子分组存储在分组存储器642中的过程。如果接收到的子分组被输入到FIFO中去,则相应的MAC接口部分输出相应的分组接收命令。如果输入该命令,则端口发送/接收控制部分就检查接收到的子分组的头信息以获得所需的信息。
如果接收到的子分组与SOP一致,端口发送/接收控制部分就通过经由搜索调度器632访问搜索存储器而执行搜索操作。这时,在本发明的实施方案中,当执行搜索操作时,如果输入分组发送命令与搜索操作不一致,则端口发送/接收控制部分可以部分地执行分组发送命令。
端口发送/接收控制部分基于从搜索操作、地址表644和相应端口表获得的信息来运行状态机并因此传递所需的判断。接收到的子分组存储在分组存储器646中。
同时,各状态向分组存储器628、地址表调度器630和队列管理器634输出各自所需的命令,并且如果相应的命令被调度器所选择,就通过访问分组描述符648和地址表644而获得所需的信息。端口发送/接收控制部分通过向分组存储器调度器628请求分组发送(Xfer_pkt)命令而把相应的MAC接口中存储的子分组存储在分组存储器642中的。如果接收到的子分组与EOP一致,即如果整个帧(例如以太网帧)的分组存储完成,端口发送/接收控制部分就对目的MAC端口使接收(Rx)队列散列,并使发送(Tx)队列排队。
同时,如果完成对于整帧子分组的接收,相应的发送/接收控制部分根据相应目的MAC端口的命令而执行分组发送控制。这时,在子分组单元中执行分组发送,并且发送期间所需的信息从分组描述符648和相应端口表中获得。
图7A至7C为说明根据本发明实施方案的分组交换设备的全部接收控制操作的流程图。这里所示的各个过程与分组交换系统中的一般数据分组过程一致。
图8为说明根据本发明实施方案的分组交换设备所执行的全部发送控制过程流程图。这里所示的各个过程与分组交换系统中的一般数据分组过程一致。
图9说明根据本发明的第三个实施方案的数据网络中的分组交换设备的结构。图9的设备结构与图5的设备结构相似,但是根据图9的设备,在图5的分组存储器544中的信息资源即分组连接信息是分开的。明确地说,链路存储器934与分组存储器944分开,并且其中存储分组连接信息。分组连接信息可以由下一个描述符和发送队列指针组成。各下一描述符与分组存储器944的各空间对应,并且可以具有下一个链接空间的地址信息。发送队列指针可以含有一个头、尾信息和有关相应队列的当前空间数的信息。
控制队列管理器930使得第一端口发送/接收控制部分916至第n个端口发送/接收控制部分能共享其本身。控制队列管理器930通过访问链路存储器934而咨询和更新分组连接信息,存储用于对分组存储器944的进行排队操作的各队列的指针信息,并根据排队操作更新指针信息。控制队列管理器930还向所选的相应端口发送/接收控制部分输出指针信息,并且这使得该端口发送/接收控制部分执行排队操作。
再看图9,搜索存储器924包括了图5的地址表534。根据图9的结构,各端口发送/接收控制部分通过访问搜索调度器920来获得地址信息。
图10说明根据本发明的第四个实施方案的数据网络中的分组交换设备的结构。图10的设备结构与图6的类似,但是根据图10的设备,在图6的分组存储器642中提供的分组信息资源即分组连接信息是分开的。明确地说,链路存储器1044与分组存储器1042分开,并且其中存储分组连接信息。分组连接信息可以由下一个描述符和发送队列指针组成。各下一描述符与分组存储器1042的各空间对应并且具有下一个链接空间的地址信息。发送队列指针可以含有一个头、尾信息和有关相应队列的当前空间号码的信息。
控制队列管理器1030使得第一端口发送/接收控制部分916至第n个端口发送/接收控制部分1024共享其本身。控制队列管理器1030与各端口发送/接收控制部分相连。控制队列管理器1030从各端口发送/接收控制部分调度连接请求信号,并执行对各队列(如接收(Rx)队列、发送(Tx)队列等)的排队和散列操作。
控制队列管理器1030还通过访问链路存储器1044来咨询和更新分组连接信息,存储用于对分组存储器1044进行的排队操作的各队列的指针信息,并根据排队操作更新指针信息。
再看图10,搜索存储器1046包括了图6的地址表644。根据图10的结构,各端口发送/接收控制部分通过访问搜索调度器1032获得地址信息。
同时,分组交换设备的性能可以由各种因素评估,其中最重要一个因素是吞吐量。这里吞吐量指的是每单位时间所能处理的数据量。由于可变分组(例如以太网分组)的长度,64字节长度分组的处理能力(这是最低的吞吐量)可以一般地表达分组交换设备的性能。特别地,当64字节单点传送分组输入到所有端口并且然后从不同于输入端口的端口输出时,如果输入速率与输出速率相等时,则分组交换机支持线路速率。
下面的表3说明具有图10结构的分组交换设备对单个标准单点传送分组的发送/接收处理的例子。
表3
                 接收控制操作状态            描述        所需时钟       处理块DeQ EB,    在空缓冲区中      14            COMEnQ Rx      提取一个空间
          以便在其中存
          储接收到的分组Inin Desc   存储描述符,   Lclk[1clk(调度   PMI
        它是各分组的信息+3clk(在PCU和
                        PMI之间交换信号)
                        +4clk(数据Xfer)
                        +3clk(预充电SGRAM)]Xfer分组   在分组存储器中  23(1+3+16+3)      PMI
         存储实际数据DeQ Rx     在Tx队列中存储      17            CQMEnQ Tx     完成接收的空间
                      接收控制操作状态            描述            所需时钟            处理块读Des     待发送的分组信息  12clk[1clk(调度)+         PMI
                          4clk(信号交换)+
                          4clk(数据Xfer)+
                          3clk(预充电SQGAM)]Xfer分组  读待发送数据      24(1+4+16+4)              PMIDeQ Rx    使空缓冲区中的         20                   CQMEnQ Tx    完成发送空间排
        队以便将其再次
        用作为空的空间
表3中,‘CQM’是控制队列管理器的缩写,及‘PMI’是分组存储器接口的缩写。另外,‘PCU’是端口控制单元的缩写,它指的是端口发送/接收控制部分。
从表3中可知,分组存储器接口处理单个单点传送分组所需的时间总共是70个时钟,控制队列管理器所需的时间总共是51个时钟。因此整个处理中的瓶颈是PMI,结果发送/接收64字节分组所需的时间总共是70个时钟。同时,假设是64字节的以太网分组,各单点传送分组包括一个12字节的帧间间歇和8字节的分组头,这样就包括672比特(=84×8比特)。
因此,如果图10的设备的MAC端口数是8,则66MHz频率的672比特分组的吞吐量可以表达为
[等式4]
(672比特×66Mclk每秒/70clk)×2(包括Rx和Tx)=1.267Gbps
在等式4中,假设MAC端口数是8,图10的分组交换设备的处理速率应当为1.6Gbps以便支持线路速率。
图11说明根据本发明的第五个实施方案的数据网络中的分组交换设备。图11设备的结构与图10的类似,但是根据图11的设备,在图10的分组存储器1042中的信息资源即分组描述符1048是分开的。也即,增加了一个单独存储分组描述符的存储器。这个增加的存储器可在芯片的内部或外部,这使得分组存储器1144的负荷降低,在图10的分组存储器1042中的信息资源即分组描述符1048是分开的。也即,增加了一个单独存储分组描述符的存储器。这个增加的存储器可在芯片的内部或外部,这使得分组存储器1144的负荷降低,因此减小了发送/接收控制时间。存储在分组描述符存储器1146的各分组信息能够以一对一的方式映射到实际存储在分组存储器1144中的各分组上。这样如果知道在存储器中的地址,也总是能知道另一个地址。
看图11,分组描述符存储器1146与分组存储器1144分开,其中存储各分组的信息。分组描述符存储器调度器1130与各端口发送/接收控制部分相连。分组描述符存储器调度器1130从各端口发送/接收控制部分调度连接请求信号,并访问存储在分组描述符存储器1146中各分组的信息。
图11的分组交换设备对单点传送分组的发送/接收处理所需的时间如下:在分组发送(Tx)和接收(Rx)期间,分组描述符存储器接口1138单纯传输分组需要47个时钟,及分组描述符存储器接口1138初始化和访问分组描述符存储器1146需要23个时钟。如上所述,控制队列管理器1132也需要51个时钟。图11的拥塞瓶颈是控制队列管理器1132,并且这时吞吐量可以表达为
[等式5]
(672比特×66Mclk每秒/51clk)×2(包括Rx和Tx)=1.74Gbps
在等式5中假设8个MAC端口,图11的对单点传送分组的分组交换设备处理速率等于或大于1.6Gbps,这样,它可支持线路速率。
如上所述,根据本发明的分组交换设备和方法,将分组交换所需的信息资源(例如分组描述符、端口表、链路存储器、地址表等分成组,通过调度多个发送/接收控制部分而并行地访问信息资源,从而可以减小控制开销。因此利用结构上修改的传统分组交换设备,本发明能够进行高速分组交换。
虽然已经结合当前被认为是最实际和优选的实施方案描述本发明,但是应该理解可以在不偏离本发明范围的情况下对其作其它的修改。因此本发明不应当局限于所发表的实施方案,而应当由附加的权利要求和其等同物所定义。

Claims (8)

1.数据网络中的一种分组交换设备包括:
负责输入/输出分组发送/接收命令和数据分组的多个端口;
用于响应分组发送/接收命令来访问分成组的信息资源、和把相应的数据分组存储在分组存储器中或向相应的端口发送存储在分组存储器中的相应的数据分组的多个发送/接收控制部分,所述多个发送/接收控制部分被映射到所述多个端口中的每一个;
多个用于成组地存储分组交换所需的信息并向发送/接收控制部分提供所存储信息的信息资源;和
多个与各信息资源相连的、用于调度对发送/接收控制部分的访问的信息资源调度器。
2.权利要求1所要求的分组交换设备,其特征在于,其中所述多个发送/接收控制部分被配置成用于映射到所述多个端口中的每一个端口。
3.权利要求1所要求的分组交换设备,其特征在于,其中多个信息资源是分组描述符、链路存储器、搜索存储器和端口表。
4.权利要求3所要求的分组交换设备,其特征在于,其中所述端口表被配置成用于映射到所述多个端口中的每一个。
5.数据网络中的分组交换方法,包括:
第一步骤:多个发送/接收控制部分向分成组的信息资源调度器输出相应的访问信号以便访问各信息资源;
第二步骤:各信息资源调度器执行对访问信号的调度,以便多个发送/接收控制部分能够一次访问其中一个信息资源;以及
第三步骤:多个发送/接收控制部分存储接收到的数据分组,或如果访问路径被连接,就发送相对于相应的信息资源所存储的数据分组。
6.权利要求5所要求的分组交换方法,其特征在于,将多个发送/接收控制部分提供给各个端口。
7.权利要求5所要求的分组交换方法,其特征在于,其中多个信息资源是分组描述符、链路存储器、搜索存储器和端口表。
8.权利要求7所要求的分组交换方法,其特征在于,其中将端口表提供给各个端口。
CNB001183133A 1999-06-12 2000-06-12 数据网络中的分组交换设备和方法 Expired - Fee Related CN1135798C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR21940/1999 1999-06-12
KR19990021940 1999-06-12
KR60235/1999 1999-12-22
KR19990060235 1999-12-22

Publications (2)

Publication Number Publication Date
CN1277508A CN1277508A (zh) 2000-12-20
CN1135798C true CN1135798C (zh) 2004-01-21

Family

ID=26635410

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001183133A Expired - Fee Related CN1135798C (zh) 1999-06-12 2000-06-12 数据网络中的分组交换设备和方法

Country Status (4)

Country Link
US (1) US6754222B1 (zh)
CN (1) CN1135798C (zh)
CA (1) CA2310909C (zh)
GB (1) GB2355619B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
JP3400772B2 (ja) * 2000-04-25 2003-04-28 松下電器産業株式会社 パケット送受信処理装置
US6963535B2 (en) * 2000-12-28 2005-11-08 Intel Corporation MAC bus interface
US7006495B2 (en) * 2001-08-31 2006-02-28 Intel Corporation Transmitting multicast data packets
US7221678B1 (en) 2001-10-01 2007-05-22 Advanced Micro Devices, Inc. Method and apparatus for routing packets
US7295563B2 (en) * 2001-10-01 2007-11-13 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have ordering requirements
US7274692B1 (en) 2001-10-01 2007-09-25 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have multiple destinations
US7649882B2 (en) * 2002-07-15 2010-01-19 Alcatel-Lucent Usa Inc. Multicast scheduling and replication in switches
KR100503422B1 (ko) * 2003-06-13 2005-07-22 한국전자통신연구원 이더넷 스위치, 포트다중화장치 및 방법
US7570593B1 (en) * 2003-06-30 2009-08-04 Hrl Laboratories, Llc Interference-resilient joint MAC and routing scheme for wireless ad-hoc networks
US7237170B2 (en) * 2004-10-06 2007-06-26 Motorola, Inc. Packet transmission redundancy selection apparatus and method
US7765405B2 (en) * 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
US9185036B2 (en) * 2005-03-23 2015-11-10 Alcatel Lucent Method and apparatus for flow control of data in a network
CA2562634A1 (en) * 2005-11-28 2007-05-28 Tundra Semiconductor Corporation Method and switch for broadcasting packets
JP2007266850A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd 伝送装置
KR100934227B1 (ko) * 2007-09-21 2009-12-29 한국전자통신연구원 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
US9628382B2 (en) * 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
US10707939B2 (en) * 2017-10-03 2020-07-07 Mediatek Inc. Codebook-based uplink transmission in wireless communications
US11275632B2 (en) 2018-09-14 2022-03-15 Advanced Micro Devices, Inc. Broadcast command and response
CN113010173A (zh) 2019-12-19 2021-06-22 超威半导体(上海)有限公司 并行处理中矩阵数据广播的方法
CN113094099A (zh) 2019-12-23 2021-07-09 超威半导体(上海)有限公司 矩阵数据广播架构
US11403221B2 (en) 2020-09-24 2022-08-02 Advanced Micro Devices, Inc. Memory access response merging in a memory hierarchy

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295133A (en) 1992-02-12 1994-03-15 Sprint International Communications Corp. System administration in a flat distributed packet switch architecture
US5802052A (en) 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric
GB2316573B (en) * 1996-08-14 2001-04-18 Fujitsu Ltd Switching apparatus
US6356546B1 (en) * 1998-08-11 2002-03-12 Nortel Networks Limited Universal transfer method and network with distributed switch
JP3732989B2 (ja) * 2000-01-12 2006-01-11 富士通株式会社 パケットスイッチ装置及びスケジューリング制御方法

Also Published As

Publication number Publication date
GB2355619B (en) 2002-03-20
US6754222B1 (en) 2004-06-22
CA2310909C (en) 2005-05-24
GB0014232D0 (en) 2000-08-02
GB2355619A (en) 2001-04-25
CA2310909A1 (en) 2000-12-12
CN1277508A (zh) 2000-12-20

Similar Documents

Publication Publication Date Title
CN1135798C (zh) 数据网络中的分组交换设备和方法
JP5640234B2 (ja) マネージド・ネットワークでのレイヤ2のパケット集約及び断片化
CN1191698C (zh) 用于多线程数据包处理的千兆位数据包分配的方法和设备
US6967951B2 (en) System for reordering sequenced based packets in a switching network
US7676597B2 (en) Handling multiple network transport service levels with hardware and software arbitration
CN1219384C (zh) 多播传输的方法及设备
US8259738B2 (en) Channel service manager with priority queuing
JP3448067B2 (ja) ネットワークアダプタのためのネットワークコントローラ
EP2507951B1 (en) An apparatus and a method of receiving and storing data packets controlled by a central controller
US7349398B1 (en) Method and apparatus for out-of-order processing of packets
CN101069170A (zh) 数据包队列、调度和排序
CN1642172A (zh) 为多层网络接口控制器操作传输调度的方法和系统
CN100339832C (zh) 帧和协议分类的方法和系统
CN1969509A (zh) 用于集中分组处理的网络设备体系结构
CN1146804C (zh) 快速16位分离事务i/o总线
CN1442027A (zh) 没有回声消除的ip语音通信
CN1488104A (zh) 控制数据处理系统间经由存储器的数据流的方法和装置
CN101046786A (zh) 一种实现高效dma传输的dma控制器及传输方法
CN1498374A (zh) 有效地共享网络处理器中的存储器带宽的设备和方法
CN102763381A (zh) 在通过控制对队列填充级别进行更新来节省带宽的同时接收并存储数据的组件和方法
JP2003527755A (ja) ディジタル通信プロセッサ
WO2013064603A1 (en) Device for efficient use of packet buffering and bandwidth resources at the network edge
CN111352657B (zh) FPGA高速高效流水读取x86数据的方法
US7020712B1 (en) Reducing CPU overhead in the forwarding process in an inbound/outbound controller for a router
CN1638357A (zh) 具有链表处理器的存储器管理系统

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
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: 20040121

Termination date: 20170612