交换结构-Crosspoint和Crossbar 我们现在所使用的交换机(不同于以前所说的交换机)在交换结构和方法的发展上有过三个阶段: 计算机内存交换 这种方式目前还能见到的产品主要是各种中低端的路由器产品它的数据交换完全依靠CPU的软件实现,处理瓶颈主要在接口总线(I/O Bus)和软件效率 共享总线式交换 这种方式目前还能见到的产品主要是各种基于电脑的接入服务器和代理服务器产品它的数据交换是在CPU的调度和控制下,由接口卡彼此交互完成,其处理瓶颈主要在共享总线的带宽 矩阵式交换 目前绝大多高端交换机产品都采用这种交换方式我们目前所说的Crosspoint和Crossbar交换结构都属于这种方式其中交换矩阵的内部原理,如同下图所示: 每一条输入线路与每个输出线路都有一个交叉点在交叉点处由一个半导体开关连接输入线路与输出线路当来自某个接口的输入线路需要交换到另一个接口的输出点时,在CPU或交换矩阵控制器的控制下,将交叉点的开关连接,数据就发送到另一个接口 这种交叉矩阵,一般是由大规模集成电路实现,由于集成电路在交叉点实现规模上存在限制,造成高端交换机在具体实现方式上有三种形式: Crossbar方式:完全依赖交换矩阵方式和芯片的实现方式。
存在两种情况: 1. 单Crossbar芯片方式:依赖单颗芯片实现的交叉矩阵,限制在于接口规模,目前市场上规模销售的交换机(华为S6506,港湾BigHammer400/800,实达5610,我们的DCS-6512)所使用的Crossbar芯片,多为8口、12口,单口带宽为2G到4G(也就是交换能力为16G到48G)芯片厂商现在已经开发出单端口20G的Crossbar芯片,相信不久就会进入市场,但端口规模仍然在8/12口的水平 2. 多Crossbar芯片方式:由于单Crossbar芯片端口规模受限,因此,希望扩大交换机端口数的交换机厂商就用多颗Crossbar芯片搭出完整的交换矩阵这种方式,使用的Crossbar芯片多且结构复杂,成本很高因此,这些厂商就退而求其次,在牺牲交换能力的前提下,采用不完全的交换矩阵方式――多级交换方式 Crossbar Slot1 Slot2 Slot3 Slot4 多级交换方式:如图, 多级交换在没有使用太多的Crossbar芯片的情况下,扩大了端口数量,但它带来了性能上的很大问题――阻塞和阻塞控制,它使得交换机在各种情况下的表现不平衡(不稳定),一些测试情况下性能表现很好,另一些情况下表现就很差。
在用户使用的角度看就是“认端口”华为S6506,港湾BigHammer400/800,实达5610就是使用这种结构 基于Crossbar结构的另一个问题就是HOL:线头阻塞(Head-of-Link Blocking):为了防止输入的信元丢失,所以输入的信元必须等待交换,这时它阻塞了后面信元的处理,即使后面的信元已可以交换这种效果称为线头阻塞这种现象是由于FIFO(先进先出)队列机制造成的,FIFO首先处理的是在队列中最靠前的数据,而这时队列后面的数据对应的出口缓存可能已空闲,但因为得不到时间片,队列中靠后的数据不能被背板交换出去,造成整个交换机吞吐量的下降(一般可下降40%),这就如同你在只有一条行车线的马路上右转,但你前面有直行车,虽然这时右行线已空闲,但你也只能等待 在Crossbar上解决这个问题的方法是增加一种叫虚拟输出队列(VOQ)的机制,即在输入缓存队列中为每一个输出缓存单独建立FIFO机制 在时间片到来时,输入缓存中的数据可直接进入输出缓存它带来的问题是转发时延增加,对广播、组播的处理能力不高,而且输入缓存不能无限大,端口解锁处理的要求很高,这些都增加了Crossbar芯片的复杂度。
解决这一问题的另一种方法就是使用Crosspoint交换方式 CrossbSlot1Slot2Slot3Slot4CrossbCrossbCrossb Crossb CrossbCrosspoint交换方式: 如图, Crosspoint在每个输入和输出之间建立“全网状”连接,这样各个端口之间可以“同时”地进行交换,各个端口之间不会相互影响,因此不会出现阻塞,也不会出现HOL对于广播、组播的处理也迎刃而解 Crosspoint的另一个优势在于交换冗余(交换备份) 交换备份: z Crosspoint在原理结构上就支持交换备份,某一局部的损害都不会影响其它部分的正常工作你不必为交换冗余和备份多付任何前,当然这不包括CPU z 在多级交换结构上做冗余备份的方法无外乎两种: 接口板规模不变,交换容量减半,性能下降一半 接口板规模和交换背板规模加倍,换一台新的。