• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2025机器人产业趋势论坛报名
传感器

InfiniBand: 系统设计之外的思考

  2001年12月30日  

InfiniBand标准有效地解决了PCI等传统I/O结构产生的通信传输瓶颈。该标准采用点到点的交换结构提高了容错性能和扩展性,用硬件来实现10Gbps的数据传输、采用虚通道方式实现QoS,通过采用循环冗余检测来保证信号的完整性。本文将详细了解InfiniBand标准以及该标准对通信设计过程的影响。

随着通信速率的持续增加,设计工程师必须不停地去发现和解决系统结构的瓶颈。但是他们可能会忽略系统之外的一些问题。构建出数据速率达到10Gb的结构具有很大的挑战性,但是真正的挑战是这个结构不仅要能产生10Gb的数据流,而且在各系统之间的数据传输率也必须达到10Gb。

这个要求对于目前的I/O结构,如PCI、以太网和光纤通道(fiber channel)等来说是不可能实现。因此,我们需要一种新的I/O方法,该方法用硬件实现高性能可靠传输。而InfiniBand就是能满足这种要求的技术。

InfiniBand结构为解决当今系统间通信问题而设计,该标准得到了戴尔,惠普,IBM,英特尔,微软和Sun等公司的支持。由于该标准采用交换结构并支持10Gb传输速率,越来越多的人开始关注这个标准。

InfiniBand结构的组成

在了解InfiniBand标准的优点之前,先介绍构建InfiniBand子网的基本要素。为使InfiniBand有效地工作,InfiniBand标准定义了一套用于系统通信的多种设备,包括信道适配器、交换机、路由器和子网管理器(见图1)。需要特别提出的是,在一个子网内必须至少有一个子网管理器来进行结构的初始化以及相应的维护。

信道适配器。信道适配器用于InfiniBand结构同其他设备的连接。InfiniBand标准中有两种类型的信道适配器:一种是主信道适配器(HCA),另外一种是目标信道适配器(TCA)。

HCA提供了一个对Web server等主CPU和存储器子系统的接口,并支持InfiniBand结构所定义的所有软件动词(Verb)。这里所说的软件动词是对客户方软件和HCA功能之间接口的一种抽象定义。软件动词并不为操作系统指定API,但它定义了操作系统厂商可能用来开发适用应用程序接口(API)的操作。

而TCA提供InfiniBand到I/O设备的连接。这种I/O卡可能是一种网络接口卡(NIC),它包含了每种设备特定操作所必需的部分功能。

交换机。交换机是InfiniBand结构中的基本组件。一个交换机中的InfiniBand端口不止一个,它能根据本地路由器包头中所含的第二层地址(本地ID/LID)将数据包从其一个端口送到另外一个端口。交换机只是对数据包进行管理,并不生成或使用数据包。同信道适配器一样,交换机也需要实现子网管理代理(SMA)以响应子网管理数据包。交换机可通过配置来实现数据包的点播或组播。

路由器。InfiniBand路由器用于将数据包从一个子网传送到另一子网,其间数据包的数量不会变化。与交换机不同,路由器读出第三层的全局路由头(GRH)并根据其Ipv6网络层地址来进行数据包发送。

子网管理器。子网管理器对本地子网进行配置并确保能连续运行。所有的信道适配器和交换机都必须实现一个SMA,该SMA与子网管理器一起实现对通信的处理。每个子网必须至少有一个子网管理器来进行初始化管理以及在链路连接或断开时对子网进行重新配置。

通过仲裁机制来选择一个子网管理器作为主子网管理器,而其他子网管理器工作于待机模式(每个待机模式下的子网管理器都会备份此子网的拓扑信息,并检验此子网是否能够运行)。若主子网管理器发生故障,一个待机子网管理器接管子网的管理以确保不间断运行。

InfiniBand的关键

InfiniBand结构的关键在于通过采用点到点的交换结构解决共享总线的瓶颈问题,这种交换结构专门用于解决容错性和可扩展性问题(见图2)。共享总线结构中多个设备与总线之间是被动连接,而InfiniBand的点到点交换机采用了与共享总线结构不同的连接方式,它通过一个带有有源元件的结构与各个设备连接。所有的连接都是点到点的连接,一个设备对应一个终端。因此,同传统的PCI总线结构不同,InfiniBand结构中链路的建立和终止得到很好的控制。所以,采用此结构后,通信系统的性能得以优化,可在高出很多的频率下运行。

下面进行更进一步的探讨。以往采用共享总线结构的系统一次只能有一个主控设备,并需要进行总线仲裁,这降低了系统结构中数据传输速率。而在InfiniBand结构中,可利用无阻塞交换机将各端点连接起来,每个交换机可以同时有多条链路进行数据发送和接收。因此,多个端点可以同时进行相互间通信。此外,仅需添加一些交换机即可实现扩展。随着交换机数目增加,系统的总带宽也会相应增加。

分层结构

InfiniBand结构是一种多层结构,其中每一层的运行都是相互独立的。InfiniBand的多层结构划分为:物理层、链路层、网络层和传输层以及一些更高的其他层。

在物理层上,InfiniBand标准定义了三种链路速率,分别为:1X、4X和12X(见图3)。此标准也定义了包括铜导线和光纤在内的物理介质。此外,它还定义了用于光纤和铜导线的标准连接器和电缆,以及用于机架系统的背板连接器。

铜缆上的1X链路采用四线差分信令(每个方向两线),可提供2.5Gbps的全双工连接。其他链路速率都建立于1X链路的基本结构上,如图3所示。

一条InfiniBand 1X链路的理论带宽是2.5Gbps。但实际数据速率为2Gbps(因为链路数据采用8b/10b编码)。由于链路具有双向性,所以全双工数据速率为4Gbps。相应的,4X和12X链路的规定带宽为10Gbps和30Gbps。

与物理层不同,链路层提供基本的子网连接,并确保数据的完整性。子网内的数据包传送是在链路层进行。一个子网内的所有设备都有一个由子网管理器赋予的16位LID,而子网内的所有数据包都采用LID寻址方式进行发送。

链路级的交换将数据包转发到由数据包内本地路由头(LRH)中目标LID指定的设备上。规定所有的数据包都必须带有LRH。

数据包是保证数据完整性的基本链路层单元。链路层数据包有两种类型,一是管理包,一是数据包。管理包用于链路的配置和维护,数据包则可承载高达4,000字节的净载荷。

网络层

InfiniBand子网间的数据包在网络层上进行路由。为实现互连,InfiniBand结构中引进了一个可选GRH,它采用128位Ipv6地址,使得InfiniBand结构可直接同基于IP的网络互连。

传输层是对网络层的一个补充。这一层负责数据包的按顺序发送、分割、信道复用,并提供传输业务,如可靠连接、可靠数据报、不可靠连接、不可靠数据报、初始数据报等。传输层也在发送时进行数据的分段,在接收时进行数据重组。

根据通道所能传送的最大传送单元大小,传输层将数据分割成大小合适的包。接收端再根据基本传输头(BTH)将数据包重组起来,基本传输头中包含目的队列对和数据包序号。接收端发送一个数据包接收应答到发送端,发送端接到应答后根据运行状态修改完成队列(completion queue)的运行状态。

质量问题

在网络中采用任何新协议或新标准都会使人们产生这样一个疑问:此协议如何实现QoS?InfiniBand为支持QoS性能进行了专门的设计。支持InfiniBand的系统将采用虚通道(VL)方式来实现QoS,虚通道是一些共享一条物理链接的相互分立的逻辑通信链路。每条物理链接可支持多达15条的标准虚通道和一条管理通道(VL15)。

那么虚通道是如何实现QoS的呢?当数据包穿过子网时,它会根据QoS等级来定义一个服务等级(SL)。路径上的每条链路可以提供不同的虚通道数,而服务等级会确定每条链路相应的优先级。每个交换机/路由器都有一个服务级别与虚通道的映射表,这个映射表由子网管理器设置并根据每条链路所支持的虚通道数来保持链路相应的优先级。

除QoS外,InfiniBand标准还保证了数据的完整性。InfiniBand的链路层对每个数据包实现两种循环冗余检测(CRC),即可变CRC(VCRC)和固定CRC(ICRC)。这两种检测机制确保了数据的完整性。

16位VCRC涵盖了数据包中的所有域,并在数据包的每次转发时都进行重新计算。32位ICRC仅包括那些转发时不发生变化的域。VCRC提供了两次转发间链路级的数据完整性,而ICRC提供了端到端的数据完整性。在某些协议中,如以太网协议只定义了一个CRC值,当采用这种协议的设备发生错误时,由于会重新计算此CRC值,因此即使数据已经被破坏,下一次转发检测时会认为此CRC值依然有效,因此错误在转发时不能别发现。而InfiniBand采用了ICRC方式,因此当有一个比特错误产生时,错误总是会被检测出来。

接口结构

通信系统行业的许多设计工程师都热衷于虚接口结构(VIA)。VIA是一种分布式通信技术,它独立于硬件并且与当前的网络连接兼容。这种结构提供了一种API,可用于群集应用中对等网之间的高速、低延迟通信。

在开发InfiniBand时考虑到了VIA结构。它采用基于信道的执行队列从主机软件客户端去除了数据流控制。这些称为工作队列的执行队列是由主机CPU创建的,然后由InfiniBand硬件进行管理。

设备之间的每个通信信道的一端都安排了一个工作队列对(WQP,发送和接收队列)。主机将处理事务放到工作队列中(工作队列项),然后此事务在发送队列中由信道适配器进行处理,再发送到远端设备。当远端设备响应后,信道适配器通过完成队列或事件将处理状态返回给主机(见图4)。

主机可以放置多个工作队列项,而信道适配器硬件会对这其中的每个通信请求进行处理。信道适配器会根据适当的优先次序对每个张贴的工作队列项进行处理,然后产生一个完成队列项(CQE)来表明完成状态。VIA将主机CPU同信道适配器分隔开来,使得主机在事务得到处理的同时能够继续进行其他工作。

发展中的InfiniBand

毫无疑问,当今通信网络的传输速率会继续增长。但为满足这种速率的要求,设计人员对系统内外都必须加以认真考虑才能实现通信网络中数据速率的真正增加。

InfiniBand受到业界广泛支持,逐渐成为网络中高速信号传输的重要新技术。现在关键是要建立起支持这些结构的系统。目前已经有了InfiniBand的硅解决方案。硅方案的应用、系统级参考设计以及软件的完善意味着开发InfiniBand方案的所有基本组件都已实现,这使得该标准的大规模应用成为可能。

Michael Kagan

副总裁

Mellanox公司

michael@


最新视频
伊顿Bussmann:百年品牌 以创新驱动发展   
欧姆龙光电传感器E3AS | 角度特性演示:高反光不锈钢工件稳定检出   
研祥金码
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
优傲机器人新品巡展 NVITATION 邀请函
优傲机器人新品巡展 NVITATION 邀请函

优傲机器人将于2025年6月5日在北京亦庄举办新品巡展活动。届时,您将有机会近距离品鉴优傲新品成为首批见证 UR15 中

2025中国智能制造发展论坛报名邀请函
2025中国智能制造发展论坛报名邀请函

6月4日,2025中国智能制造发展论坛聚焦“数智创新赋能产业升级”与“绿色低碳构建可持续生态”双核议题,汇聚政府机构、全

在线会议
热门标签

社区