计算机I/O技术在高性能计算技术的发展中始终是一个十分重要的关键技术。其技术特性决定了计算机I/O的处理能力,进而决定了计算机的整体性能以及应用环境。近年来随着高端计算市场的日益活跃,看似平静的高性能I/O技术之争也愈演愈烈。尤其是当计算机主机速率与总线速率的矛盾日益突出时,新的总线技术便应运而生,计算机I/O技术的发展开始让我们眼花缭乱。如PCI Express、InfiniBand、HyperTransport、RapidIO等高性能I/O技术的发展令人注目。而广泛应用于网络存储、高性能集群及并行计算系统的I/O技术,如Fibre Channel、SCSI Parallel Interface(SPI)、Serial Attached SCSI(SAS)、iSCSI等,更使计算机总线技术远远超出“连接功能部件”的范畴。
(1)PCI Express
PCI Express(3GIO)是一种新型串行Point-to-Point I/O总线体系。其基本目标有两个:一是提供chip-to-chip级互联的局部总线,二是以较低的开销升级现有的PCI架构性能。这一串行总线的根本动机就是通过少许引脚来实现高带宽数据传输,而不是像并行PCI或PCI-X那样。据PCI-SIG(Special Interest Group)最新公布的数据,PCI Express目前可以达到的单路单向速率是2.5Gb/s。也就是说可提供高达200MB/s的带宽,近乎是典型PCI2.2速率的2倍。今后随着硅片技术的不断发展,单路单向的数据传输速率可望突破10Gb/s,几乎达到铜介质数据传输率的极限值。此外,PCI Express通过增加信号线对还可组成X1、X2、X4、X8、X16、X32等多路I/O总线,这样一来其所能达到的峰值带宽简直是无法想像的。在提供了更高带宽的同时,PCI Express还提供了对PCI和PCI-X软件的兼容支持, 和对chip-to-chip级、I/O适配器之间以及对IEEE 1394、USB 2.0等附属接口的支持。PCI Express的兼容特性在很大程度上维护了投资者的利益,其高性能又大大刺激了投资者的热情。由此可见,PCI Express技术必将有着更为广阔的发展空间。
(2)InfiniBand
InfiniBand是一种致力于服务器端而不是PC端的高性能I/O技术。随着对称多处理器(SMP)、集群计算、网格计算以及远程备份的广泛应用,基于PCI架构(主要指PCI、PCI-X)的I/O技术的缺陷日益突出,而一旦InfiniBand完全建立起来,它将会使大规模水平伸缩性和集群节点之间I/O的透明共享成为可能。
InfiniBand 从根本上区别于PCI-X的原因在于,后者是严格意义上的局部总线互连技术,而InfiniBand则是一种把网络技术引入I/O体系之中的高级互连技术,它主要用于连接服务器、网络设备和存储设备。InfiniBand用高带宽的交换式网络布局取代基于总线的PCI,并把I/O控制的责任从处理器移到了智能的I/O引擎。其目标不是用来升级现有的PCI总线结构,而是要充分发掘现有PCI-X或PCI Express总线的带宽性能。
InfiniBand所支持的关键特性决定了这种I/O技术远胜过基于局部互连的PCI-X或PCI Express等技术。InfiniBand在硬件中提供了高可靠的传输层级别的数据传输,在导线上支持消息传递和主存语义,且基于I/O通路共享机制的InfiniBand从根本上提供了一种连接计算机的新途径。通过InfiniBand连接大量的服务器可以达到各种存储设备的共享。InfiniBand必将成为服务器领域的首选I/O架构。也正因为InfiniBand的卓越性能,使它得到了Dell、HP、IBM、Intel、Microsoft和Sun等世界著名计算机公司的大力支持。
(3)Fibre Channel
Fibre Channel(光纤通道,FC)是一种高速度、高可靠、低延迟、高吞吐量的串行数据传输接口,它可广泛应用于高性能存储、大规模数据库、存储备份与恢复、集群系统、网络存储系统和数字视频网络等领域。Fibre Channel被称为多种高层数据协议的传输载体,其中尤以传输SCSI和IP数据为主。它作为载体传输高层数据协议的过程,实际上就是一个把高层数据协议映射到FC物理层传输服务的过程。Fibre Channel仅定义了连接外部设备和传输数据信号的物理方面,实现了数据分发与数据内容的有效分离。也就是说,它只关心数据的传输,这就为其传输多种数据类型提供了便利。
(4)HyperTransport
HyperTransport是一种为主板上集成电路互联而设计的高性能总线,它主要定位于硅器件的连接技术,用于在离散的硅器件之间提高可靠性和连接速度,以便为内存控制器、硬盘控制器以及PCI总线控制器之间开拓出更大的带宽。HyperTransport最初由AMD公司研制,主要是面向IT业和电信行业,但对任何需要速度快、响应时间短的应用都适用。它的设计目标是提供比目前的技术更高的带宽和更短的反应时间,并与标准的PCI总线相兼容。HyperTransport的峰值带宽可以达到51.2GB/s,这种速度极快的总线技术与现有的PCI和正在兴起的InfiniBand形成很好的互补关系。有人认为,HyperTransport必将在下一代服务器和一些通信设备内部互连方面占有一席之地。
(5)RapidIO
RapidIO是基于数据包交换结构的下一代互连技术,它能在同一协议下同时进行一般情况下的多进程I/O处理和分布式I/O处理,主要定位于超高性能系统中的芯片之间和模块之间的互连。RapidIO将软件透明度、可升级性和芯片尺寸最小化放在优先考虑的位置。RapidIO支持所有的微处理器和I/O配置,其所用的低电压差分信号传输(LVDS)技术能够达到几千兆Hz的速度,并且总线宽度高达16位乃至更多。由于RapidIO协议是由硬件实现的,因此实现了高带宽、低延迟,它可在8位字宽的数据通道上提供10Gb/s的总带宽。RapidIO 在向单板子系统之间的内部通信提供高速机制方面与HyperTransport技术相似,只是HyperTransport技术能提供更大范围的灵活性和更大的总线带宽。
(6)SPI
我们通常所说的SPI(SCSI Parallel Interface)是指并行SCSI,它是SCSI-3协议族中的一员。目前已投入应用的最高版本是SPI的第四代(SPI-4),即商业领域统称的Ultra320 SCSI。目前,SPI的第五代也在不断完善之中。
SPI标准是从最初的SPI-1不断发展起来的。最初的SPI-1只定义了20MHz的总线信号,可提供40MB/s的速率,它在1996年就被SPI-2替代了。SPI-2除了将信号频率由20MHz提升到40MHz外,还定义了一些新的特性,包括低电压差分信号传输、多模式操作和高密度连接器等。1998年推出的SPI-3又在SPI-2的基础上,将信号频率由40MHz提升到80MHz,并定义了循环冗余校验(CRC)、域确认机制、快速仲裁选择(QAS)和包封装SCSI机制。
2001年问世的SPI-4进一步将SPI-3的信号频率由80MHz提升到160MHz,同时增加了读写数据流和流控制机制。
20多年来,SCSI应用的广度和深度都在不断拓展,被誉为总线界的长青树。目前,无论是SPI-4还是SPI-5,在充分继承SCSI传统优势和不断提高信号频率的同时,广泛采用了CRC、包封装SCSI、QAS和流控制等一系列新技术,使并行SCSI的整体性能得到大幅度提高,且更加安全可靠,为并行SCSI更好的应用奠定了坚实的基础。
(7)SAS
SAS(Serial Attached SCSI)是新近问世的一种备受业界关注的高性能串行存储接口技术,它将SATA高效的串行电气接口、光纤通道快速的交换架构和并行SCSI完善的指令系统集于一身。近年来,随着并行存储接口的复杂性不断增加、可扩展性有限、速率很难提高等问题的不断加剧,存储接口的串行化已成为未来高性能I/O技术的大趋势。事实上SAS的多级交换架构也明显地优于并行SCSI、SATA和FC-AL。
基于串行接口的SAS实现了对现有并行SCSI的有效逻辑兼容,其域、设备及端口完全继承了SCSI的相应概念,但将点对点连接的距离延长至10米,而连接对象也不再局限于启动设备或目标设备。在一个SAS域中,任意两个设备之间最多可以有3个扩展器, 每个扩展器可连接64台设备,一个SAS域最多可连接4096台(64×64)设备。同时SAS还允许两个设备间建立基于多条物理连接的所谓宽物理连接,为服务器和网络存储等领域提供了大数量设备、高带宽和可扩展性支持。
(8)iSCSI
iSCSI是随着因特网技术不断发展应运而生的一种,可利用TCP/IP网络传送SCSI命令和数据的,基于网络结构的I/O技术。iSCSI既因特网SCSI可帮助用户无需花费FC那样的高代价就能构建高速存储网络。iSCSI规定了软件在互联网上传送SCSI包和在长距离上管理存储时,如何处理SCSI数据包以及如何在TCP/IP命令中封装它们。由于IP网络的灵活性,iSCSI可以在局域网、广域网或Internet上传输数据。
iSCSI的工作原理与SCSI大体类似,只是在使用iSCSI协议时,要用iSCSI启动器对文件系统解析出的SCSI命令进行封装,再打上TCP/IP报头,然后通过以太网传输到iSCSI目标器。iSCSI目标器在收到数据包后按照相反的方向进行解包,拆分出SCSI命令,并通过iSCSI主机总线适配器访问SCSI磁盘。iSCSI协议对数据的封装与TCP/IP协议对数据的封装区别不大,惟一的区别只是在数据域之前增加了一层封装,这种封装就是iSCSI封装。
此外,为了保证iSCSI协议在IP网络上的可靠传输,iSCSI还定义了命名机制、会话管理、差错处理和安全保证等功能组件。其中命名机制用于规定iSCSI节点的命名方法,以便地将IP地址与TCP端口进行绑定;会话管理用于通过登录过程来建立或中断TCP连接;差错处理用于在发生数据传输错误时可以恢复原来的数据;安全保证用于定义一些安全传输方法,如iSCSI登录阶段就提供了终端设备之间都支持的握手协议的文本域。如果握手成功,iSCSI设备之间的PDUs交换将按照适当的安全要求格式实现。
(9)SATA
SATA(Serial ATA)是一种完全不同于并行ATA的新型接口,由Intel和希捷公司共同研发推出,已于2001年8月29日,正式发布了SATA 1.0规范,目前SATA规范正在迈向更进步的Serial ATAⅡ标准。SATA 1.0定义的数据传输率可达150MB/s,而下一代SATA 标准的数据传输率将达到300MB/s,其最终将实现600MB/s的最高数据传输率。这种新型接口采用串行点对点连接,并采用了一种新的星形拓扑结构,使每个设备可独享全部带宽,从而避免了总线仲裁/冲突的开销,大大提高了传输速率。SATA的最大特点在于其信号线和引脚的数量极少,仅有2对数据线和3根地线共7个引脚。此外,SATA还具备热插拔能力,成本也比并行ATA更低。
为了加速SATA标准的开发,2002年Intel成立了SATA Ⅱ工作组。其主要任务是开发SATA Ⅱ规范,以增强SATA在服务器和网络存储市场的竞争力并提供更高的信号传输率。SATA Ⅱ在SATA 1.0基础上进行的诸多扩展中,除本机命令队列和识别设备/设置功能外,都是专门为子系统服务的。同时通过对智能输入/输出和智能平台管理总线技术的支持,进一步完善了SATA的可管理性。SATA Ⅱ规范的制定分两个阶段实施,第一阶段(2002年6月至2003年6月)主要是改进SATA 1.0以适应服务器和网络存储的要求;第二阶段(2003年6月至2004年)主要是针对更高端网络存储市场需求定义第二代信号传输率,最终实现传输速率翻番,达到3Gbps。