三、I/O子系统
I/O子系统负责在服务器内存和外部世界之间搬运数据,传统上,它是通过服务器主板上兼容PCI标准的I/O总线实现的,开发PCI的目的就是让计算机系统的外围设备实现互联,PCI的历史非常悠久,现在最新的进化版叫做PCI-Express。
外围组件互联特殊兴趣小组(Peripheral Component Interconnect Special Interest Group ,PCI-SIG)负责开发和增强PCI标准。
PCI Express
PCI Express(PCIe)是一个计算机扩展接口卡格式,旨在替代PCI,PCI-X和AGP。
它消除了整个所有I/O引起的限制,如服务器总线缺少I/O带宽,目前所有的操作系统都支持PCI Express。
上一代基于总线拓扑的PCI和PCI-X已经被点到点连接取代,由此产生的拓扑结构是一个单根联合体的树形结构,根联合体负责系统配置,枚举PCIe资源,管理中断和PCIe树的错误。根联合体和它的端点共享一个地址空间,通过内存读写和中断进行通信。
PCIe使用点到点链接连接两个组件,链接由N个通道组成,每个通道包含两对电路,一对用于传输,另一对用于接收。
南桥(也叫做ICH:I/O Controller Hub)通常会提供多个PCIe通道实现根联合体的功能。
每个通道连接到一个PCI Express端点,一个PCI Express Switch,一个PCIe或一个PCIe桥,如下图所示。
图 21 PCI Express根联合体
根据通道编号使用不同的连接器,下图显示了四个不同的连接器,及单/双向时的速度。
图 22 PCI Express连接器
在PCIe 1.1中,通道运行在2.5Gbps,可同时部署16条通道,如下图所示,可支持的速度从2Gbps(1x)到32Gbps(16x),由于协议开销,支持10GE接口需要8x。
图 23 PCI Express通道
PCIe 2.0(也叫第二代PCIe)带宽提升了一倍,从2Gbit/s提高到4Gbit/s,通道数量也扩大到了32x,PCIe 4x就足以支持10GE了。
PCIe 3.0将会再增加一倍带宽,最终的PCIe 3.0规范预计会在2010年年中发布,到2011年就可看到支持PCIe 3.0的产品,PCIe 3.0能有效地支持40GE(下一代以太网标准)。
目前所有的PCI Express产品都是单根的(Single Root,SR),如控制多个端点的单I/O控制器中枢(ICH)。
多根(Multi Root,MR)也发展了一段时间,但目前还未见到曙光,由于缺少元件和关注,目前还有诸多问题。
SR-IOV(Single Root I/O Virtualization,单根I/O虚拟化)是PCI-SIG开发的另一个相关标准,主要用于连接虚拟机和Hypervisor。