CN101674250A - 一种端口带宽保证的包交换芯片及实现方法 - Google Patents
一种端口带宽保证的包交换芯片及实现方法 Download PDFInfo
- Publication number
- CN101674250A CN101674250A CN200910210761A CN200910210761A CN101674250A CN 101674250 A CN101674250 A CN 101674250A CN 200910210761 A CN200910210761 A CN 200910210761A CN 200910210761 A CN200910210761 A CN 200910210761A CN 101674250 A CN101674250 A CN 101674250A
- Authority
- CN
- China
- Prior art keywords
- port
- packet switching
- schedule
- switching chip
- subclauses
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种端口带宽保证的包交换芯片以及在包交换芯片中实现端口带宽保证的方法,其采用类似电路交换系统中分时复用的机制,根据不同端口带宽的大小分配相应数量的时间分片,使得不同速率的多个端口一旦开始突发传送数据,其带宽可以得到严格的保证,可以避免使用复杂的调度机制,大大降低了设计难度。同时可以根据端口速率和端口数量的组合变化,只需要通过软件配置,相应改变时间分片的配置,大大提高了灵活性。此外,这种设计方法还可以降低对端口发送缓存的要求,进一步节约芯片的面积。
Description
技术领域
本发明涉及数据通信领域,尤其涉及包交换芯片中实现端口带宽保证的的技术。
背景技术
包交换芯片中的端口例如以太网端口都有这样的特性,一旦开始发送报文头,需要内部的调度单元以端口同样的速率,持续不断的调度这个报文的剩余部分数据,传送给这个端口,一旦内部的调度速率跟不上,端口就会发生下溢的错误,导致一个完整的报文被分割成2个或者2个以上的报文,在对端设备接收的时候被丢弃。
进一步的,当有多个不同速率的端口时,而且这些不同速率的端口有多种组合方式,例如对于一个交换容量为88Gbps的包交换芯片上,只要能容纳88Gbps的交换容量的端口组合都是可行的,如可以有48个千兆端口和4个万兆端口的组合,也可以组合成4个万兆加4个万兆的模式,需要保证不同组合方式下每个端口的带宽。
在传统的包交换芯片中,一种办法是通过设计特定的MMU(存储器管理单元)来实现端口的带宽保证,实现起来非常复杂,而且只能根据某种特定的端口组合方式设计特定的MMU,如果端口组合方式发生变化,需要另外设计MMU,或者说需要重新设计一个芯片,例如专利US 6335932B2的设计方法。
另外一种办法是每一个端口对应一个调度器来保证端口的带宽,这种方式会导致芯片的面积随着端口数的增加而呈线性增加,导致芯片面积大大增加和芯片的成本增加。
专利US 6732199 B1采用的也是类似时分复用的机制,但是一方面这个专利是基于整个数据包的调度,粒度太大,不适合作为端口级的调度,另一方面更重要的是调度器需要一个高速查找逻辑来及时更新Calendar中的内容和状态,此外对不同的队列或者端口需要额外的寄存器配置该队列或者端口占用的时隙顺序和个数。
发明内容
本发明的目的在于提供一种端口带宽保证的包交换芯片以及在包交换芯片中实现端口带宽保证的方法,它采用类似电路交换系统中分时复用的机制,根据不同端口带宽的大小分配相应数量的时间分片,使得不同速率的多个端口一旦开始突发传送数据,其带宽可以得到严格的保证,可以避免采用复杂的调度机制,大大降低了设计难度。同时可以根据端口速率和端口数量的组合变化,只需要通过软件配置,相应改变时间分片的配置,大大提高了灵活性。
为实现上述发明目的,本发明提出了一种端口带宽保证的包交换芯片,该芯片中配置有与端口相对应的日程(calendar),以及对该日程进行扫描的更新指针(Update Pointer);所述日程中包括复数个条目,每一条目表示一定的物理带宽,且该每一条目的内容包括有效位及与该有效位相对应的端口号。
其中,所述日程中的每一条目代表一个时间片,该时间片所表示的物理带宽可根据端口容量进行配置。
所述日程条目的有效位为“1”时表示有效,为“0”时表示无效。
所述更新指针设置有初始指向日程条目的开始指针位及结束时指向日程条目的结束指针位。
所述端口在日程中的配置是通过软件进行计算后,把计算结果配置到日程的每个条目中完成的。
所述日程只有在包交换芯片端口模式发生变化时才改变。
本发明还提出了一种在包交换芯片中实现端口带宽保证的方法,其端口的报文数据调度过程为:
1)包交换芯片中的更新指针首先指向日程条目中的初始指针位,每隔固定的时间周期就加1,使更新指针移到日程的下一个条目;
2)当更新指针指向日程的某个条目的有效位为无效时,则不做任何事情,日程空转一个时间周期;
3)当更新指针指向日程的某个条目有效位为有效时,则取出该有效位对应的端口号,根据端口号到相应的包缓存读取对应端口的报文数据;
4)更新指针一直扫描到结束指针位指向的日程条目,当再次加1时,更新指针就翻转回开始指针位。
其中,所述过程3)中包缓存可以是芯片内的包缓存,也可以是芯片外的包缓存。
所述过程3)中每次读取对应端口的报文数据量是固定的,多于该固定值的数据量要等到下一次更新指针再次扫描到这个端口再读取。
所述日程对应端口的配置在保证端口带宽的同时,还要兼顾到每个端口在日程表中配置的均匀分布。
通过这种方式来实现端口带宽保证,第一可以使得update pointer在扫描Calendar的时候,就起到了调度器的作用,硬件实现非常简单;第二,每个端口在Calendar中的配置是依靠软件来做复杂计算并把计算结果配置到Calendar的每个条目中去,Calendar一旦配置完毕,就不会改变,除非芯片的端口组合模式发生变化,这样非常灵活,可以满足任意端口组合方式,并同时满足端口的带宽需求;第三,Calendar中对每个端口的配置可以做到尽量均匀,根据端口的实际带宽大小,在保证带宽的前提下,一次突发传送尽量少的报文数据,减小端口的发送缓存,进一步减少芯片的面积。
附图说明
图1为本发明在包交换芯片中实现端口带宽保证方法的模块图;
图2(a)为本发明第一实施例的模块图;
图2(b)为本发明第一实施例的另一模块图;
图3为本发明第二实施例的模块图。
具体实施方式
本发明所揭示的端口带宽保证的包交换芯片及在包交换芯片中实现端口带宽保证的方法,其包含控制面和数据面两个层面,在控制面,即芯片的配置上,软件根据芯片实际的端口配置模式,配置图1中的Calendar(日程),Calendar中的每一个条目代表一个时间片,时间片所代表的物理带宽可以灵活变化,既可以代表1Gbps也可以代表10Gbps。Calendar中的每一个条目的内容包含两个部分,一部分为有效位(Valid Bit)号,表示该条目是否为有效位,当其为“1”时代表有效,为“0”时代表无效,另一个部分代表端口号,表明与该条目相对应的端口,如图1中端口号3,指向第三个端口。
在数据层面,即实现端口带宽保证的端口报文数据调度过程如下:
1)包交换芯片中的Update Pointer(更新指针)的初始值设置为StartPointer(开始指针位),其指向Calendar的一个条目,每隔固定的时间周期就加1,Update Pointer移到Calendar的下一个条目;
2)当update pointer指向Calendar的某个条目时,如果该条目无效,则不做任何事情,Calendar空转一个时间周期;
3)如果该条目有效,则取出对应的端口号,根据端口号到相应的包缓存(可以是芯片内的包缓存,也可以是芯片外的包缓存)读取对应端口的报文数据,每次读取的数据量是固定的,例如64字节。等到下一次Update pointer再次扫描到这个端口时,再读取数据包的下一个64字节;
4)Update pointer一直扫描到End pointer(结束指针位)指向的条目,当再次加1的时候,就翻转回Start Pointer。
Calendar的配置首先要保证端口的带宽,同时要兼顾到每个端口分布的均匀性。
本发明在包交换芯片中实现端口带宽保证的方法,同样适用于基于包作为基本单元的调度器,即扫描到每个条目时,调度的数据量可以是固定字节数,也可以是一个完整的变长报文。此外,这种方法不仅适用于端口发送报文时的调度,同样适用于端口接收报文时的调度,配置方式和调度过程可以完全对称。
下面分别以实施例一及实施例二对本发明在包交换芯片中实现端口带宽保证的方法做进一步的说明。
实施例一
当包交换芯片的端口组合配置为48个千兆端口(编号为{G1,G2,G3,......,G48})加4个万兆端口(编号为{X1,X2,X3,X4})时,其在Calendar中的配置可以是如图2(a)所示的方式。从图2(a)中可以看到,Calendar中总共有88个条目,每个条目相当于一个千兆口的带宽,每个千兆端口在Calendar中占一个条目,而一个万兆端口在Calendar中占据10个条目。这四个万兆端口{X1,X2,X3,X4}所占的条目穿插在从第一个千兆端口的条目G1开始的千兆端口的条目间,直到第40个千兆端口的条目G40;而从第41个千兆端口的条目G41开始则连续排列到第48个千兆端口的条目G48,如此使得万兆端口在Calendar中的分布间距相差较大,而增加了万兆口的发送间隔时间和对发送缓存的需求。
为了使万兆端口在Calendar中的分布更加均匀,可以调整图2(a)中Calendar最后8个千兆条目,均匀插入到每个万兆口条目的前面,形成如图2(b)所示的配置方式,这样同一个万兆口相邻两个条目最大间距为9个条目,这样可以进一步减少万兆口的发送缓存需求,而使得每个端口分布的更加均匀。
实施例二
当芯片的端口组合配置为8个万兆端口(编号为{X1,X2,X3,X4,X5,X6,X7,X8})时,其在Calendar中的配置如图3所示。从图3中可以看到,Calendar中的每个条目相当于一个万兆口的带宽,每个万兆端口在Calendar中占一个条目,且如此的配置使得万兆端口的分布也是均匀的。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种端口带宽保证的包交换芯片,其特征在于:该芯片中配置有与端口相对应的日程(calendar),以及对该日程进行扫描的更新指针;所述日程中包括复数个条目,每一条目表示一个时间分片,且该每一条目的内容包括有效位及与该有效位相对应的端口号。
2.如权利要求1所述的端口带宽保证的包交换芯片,其特征在于:所述日程中的时间片所表示的物理带宽可根据端口容量进行配置。
3.如权利要求1所述的端口带宽保证的包交换芯片,其特征在于:所述日程条目的有效位为“1”时表示有效,为“0”时表示无效。
4.如权利要求1所述的一种端口带宽保证的包交换芯片,其特征在于:所述更新指针设置有初始指向日程条目的开始指针位及结束时指向日程条目的结束指针位。
5.如权利要求1至4任意一项所述的端口带宽保证的包交换芯片,其特征在于:所述端口在日程中的配置是通过软件进行计算后,把计算结果配置到日程的每个条目中完成的。
6.如权利要求5所述的端口带宽保证的包交换芯片,其特征在于:所述日程只有在包交换芯片端口模式发生变化时才改变。
7.一种如权利要求1所述的在包交换芯片中实现端口带宽保证的方法,其特征在于:端口的报文数据调度过程为:
1)包交换芯片中的更新指针首先指向日程条目中的初始指针位,每隔固定的时间周期就加1,使更新指针移到日程的下一个条目;
2)当更新指针指向日程的某个条目的有效位为无效时,则不做任何事情,日程空转一个时间周期;
3)当更新指针指向日程的某个条目有效位为有效时,则取出该有效位对应的端口号,根据端口号到相应的包缓存读取对应端口的报文数据;
4)更新指针一直扫描到结束指针位指向的日程条目,当再次加1时,更新指针就翻转回开始指针位。
8.如权利要求7所述的在包交换芯片中实现端口带宽保证的方法,其特征在于:所述过程3)中包缓存可以是芯片内的包缓存,也可以是芯片外的包缓存。
9.如权利要求7所述的在包交换芯片中实现端口带宽保证的方法,其特征在于:所述过程3)中每次读取对应端口的报文数据量是固定的,多于该固定值的数据量要等到下一次更新指针再次扫描到这个端口再读取。
10.如权利要求7至9任意一项所述的在包交换芯片中实现端口带宽保证的方法,其特征在于:所述日程对应端口的配置在保证端口带宽的同时,还要兼顾到每个端口在日程表中配置的均匀分布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102107619A CN101674250B (zh) | 2009-11-09 | 2009-11-09 | 一种端口带宽保证的包交换芯片及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102107619A CN101674250B (zh) | 2009-11-09 | 2009-11-09 | 一种端口带宽保证的包交换芯片及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101674250A true CN101674250A (zh) | 2010-03-17 |
CN101674250B CN101674250B (zh) | 2012-05-02 |
Family
ID=42021244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102107619A Active CN101674250B (zh) | 2009-11-09 | 2009-11-09 | 一种端口带宽保证的包交换芯片及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101674250B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868644A (zh) * | 2012-09-03 | 2013-01-09 | 盛科网络(苏州)有限公司 | 交换机数据传输模式动态切换的方法及系统 |
CN102891813A (zh) * | 2012-09-05 | 2013-01-23 | 盛科网络(苏州)有限公司 | 支持多传输模式的以太网端口架构 |
CN105721339A (zh) * | 2014-12-05 | 2016-06-29 | 中兴通讯股份有限公司 | 一种业务带宽配置的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU4848499A (en) * | 1998-07-08 | 2000-02-01 | Broadcom Corporation | Network switch utilizing packet based per head-of-line blocking prevention |
US6732199B1 (en) * | 1998-12-17 | 2004-05-04 | Watchguard Technologies, Inc. | Software programmable calendar queue cache |
CN100550833C (zh) * | 2005-11-24 | 2009-10-14 | 武汉烽火网络有限责任公司 | 以太网交换缓存及调度的方法和装置 |
-
2009
- 2009-11-09 CN CN2009102107619A patent/CN101674250B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102868644A (zh) * | 2012-09-03 | 2013-01-09 | 盛科网络(苏州)有限公司 | 交换机数据传输模式动态切换的方法及系统 |
CN102891813A (zh) * | 2012-09-05 | 2013-01-23 | 盛科网络(苏州)有限公司 | 支持多传输模式的以太网端口架构 |
CN102891813B (zh) * | 2012-09-05 | 2015-09-23 | 盛科网络(苏州)有限公司 | 支持多传输模式的以太网端口架构 |
CN105721339A (zh) * | 2014-12-05 | 2016-06-29 | 中兴通讯股份有限公司 | 一种业务带宽配置的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101674250B (zh) | 2012-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6987775B1 (en) | Variable size First In First Out (FIFO) memory with head and tail caching | |
US6226338B1 (en) | Multiple channel data communication buffer with single transmit and receive memories | |
CN100445975C (zh) | 数据传输控制装置、图像处理装置和数据传输控制方法 | |
US6594714B1 (en) | Reconfigurable FIFO interface to support multiple channels in bundled agent configurations | |
CN102377682A (zh) | 基于定长单元存储变长分组的队列管理方法及设备 | |
CN101674250B (zh) | 一种端口带宽保证的包交换芯片及实现方法 | |
CN105656807B (zh) | 一种网络芯片多通道数据传输方法及传输装置 | |
CN103858393A (zh) | 网络包的并行处理 | |
US10055365B2 (en) | Shared buffer arbitration for packet-based switching | |
JP6513235B2 (ja) | 映像表示装置、映像データ伝送方法、及びプログラム | |
CN101546300B (zh) | 存储器控制装置、存储器控制方法和信息处理系统 | |
US7568074B1 (en) | Time based data storage for shared network memory switch | |
CN103927125B (zh) | 分时缓冲器存取系统及存储器控制器 | |
CN104054065B (zh) | 片上网络中的流管理 | |
CN1841978B (zh) | 实现多路信号再定时的方法及装置 | |
CN101656586B (zh) | 提高同步数字体系虚级联延时补偿缓存效率的方法及装置 | |
CN102118304A (zh) | 一种信元交换方法和装置 | |
US6891863B1 (en) | Device and methods for processing channels in a data stream | |
DE60115010T2 (de) | Bus-brücke und system für mehrkanalübertragung von daten- und steuerinformationen | |
CN111930650B (zh) | 一种网络流量转发方法及设备 | |
KR100226539B1 (ko) | Atm 스위치의 어드레스 생성 회로 | |
US7447199B2 (en) | Switching matrix for a telecommunication network element | |
US8527677B1 (en) | Serial communications links with bonded first-in-first-out buffer circuitry | |
EP0446335B1 (en) | Packet/fast packet switch for voice and data | |
CN110875754B (zh) | 可提升数据传输效能的无线通信电路 |
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 | ||
CP03 | Change of name, title or address |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CP03 | Change of name, title or address |