存储 频道

并行与串行的争斗 网络磁盘存储技术

  升华:交换和路由

  与SATA一样,SAS也可以让主机端口与设备端口点对点直接相连,但不同的是,后者从设计之初就引入了类似于Port Multiplier的中间设备,以达成大量设备连接能力并实现更为复杂的拓扑结构。

  这个中间设备叫做扩展器(Expander),不过与并行SCSI中的同名设备不是一个概念。如果把SATA的Port Multiplier比做Hub,那么SAS的扩展器就是交换机(Edge Expander,边沿扩展器)和路由器(Fanout Expander,扇出扩展器)。

  扩展器利用可多达128个的PHY(发送器和接收器各一、能够接受1个物理链接的最小单元,譬如1个4宽度端口即由4个PHY组成)连接主机/设备或其他扩展器,组成星形拓扑架构。SAS还引入了“域”的概念,扇出扩展器是SAS域的核心,一个SAS域只能有一个扇出扩展器,它可以随意连接边沿扩展器;一个边沿扩展器只能连接到一个扇出扩展器上,而在没有扇出扩展器的情况下最多仅允许两个边沿扩展器互连;在不超过数目上限的前提下,扩展器可以随意连接发起者/目标设备。也就是说,在一个SAS域中,任意两点(主机或设备)之间最多可以有3个扩展器。

  SAS制订初期的目标是每个扩展器可连接64个设备,一个SAS域最多4096个(64×64)设备;后来规范制订者们意识到没有必要把扩展器的端口数目限制在64个,于是便改为每个扩展器能够寻址128个PHY,整个SAS域形成一个物理连接数目可达16K(128×128=16384)的点对点交换式拓扑架构。

  扩展器强大的连接能力不仅是为设备数量服务的,它还可以用多达4个的物理链接组成宽链接来获得成倍的带宽。以4宽度内部串行附属连接器为例,SATA只能通过4根相互间没有逻辑联系的线缆获得4个独立的SATA链接,SAS却可以得到一个4宽度链接(在一个扩展器上)、两个2宽度链接(在两个扩展器上)、四个1宽度链接(在四个独立的扩展器或设备上),甚至还能够是一个3宽度链接和一个1宽度链接……性能与灵活度都远胜于SATA。

  不过,扩展器引入的复杂度也不尽是优点,譬如它将原本直接相连的两个设备分隔开就隐藏着潜在的风险。为此,SAS在链路层引入了速率匹配(rate matching)的概念,即在高速连接一侧(视需要)降低实际数据速率,维持扩展器吞吐量的平衡。这一功能对SAS主机控制器(3.0Gbps)通过扩展器连接SATA外围设备(1.5Gbps)的应用显得尤为重要。

  说到SAS主机控制器连接SATA外围设备,我们还得颇费些口舌。SAS支持3种协议,分别是串行SCSI协议(Serial SCSI Protocol,SSP),全双工,让SCSI运行在增强的SATA物理层上;串行ATA隧道协议(Serial ATA Tunneled Protocol,STP),为SATA增加多目标寻址和多发起者访问,以适应SAS环境的需要;串行管理协议(Serial Management Protocol,SMP),用于发现和管理扩展器。’

  扩展器把SATA的点对点连接扩展至SAS的多发起者/多目标,然而SATA协议仅支持单发起者/单目标,STP的任务就是让发起者能够通过扩展器访问SATA目标。STP在发起者与最远的、也就是连接SATA设备的扩展器端口(STP目标端口)之间建立起一条通路(隧道),传输标准的SATA 1.0帧,因此在SATA设备看来,自己连接的就是SATA主机适配器。如果发起者端口识别出与其直接相连的是一台SATA设备,则只使用SATA协议通信。

  那么SAS主机控制器端口怎么知道自己连接的是SATA设备还是SAS设备呢?这就要借助于带外(Out of band,OOB)信号来识别了。在连接初始化时,主机控制器端口送出OOB慢速脉冲信号,检测目标对COMSAS脉冲的响应情况——如果目标也返回COMSAS脉冲,就是SAS设备,反之即为SATA设备。需要注意的是,由于在SAS协议中发起者和目标是对等的,外围设备也可以主动送出COMSAS脉冲,向主机适配器表明自己的身份。以硬盘为例,能否生成COMSAS脉冲即是辨别SAS与SATA的依据。

  STP发起者端口经过OOB协商确认与自己相连的是SATA设备后即进入SATA模式,严格遵循SATA主机适配器的行为规范。STP并不关心SATA FIS(Frame Information Structure,帧信息结构)的内容,SATA命令排队可以在FIS中传输——前提当然是STP发起者端口和SATA设备必须支持命令排队功能。

  传输完成后由SAS主机适配器或扩展器决定是否用STP断开与SATA设备的连接,以后需要时再重新连接。整个过程中该SATA设备始终以为自己通过正常的流控机制直接连在某个SATA主机适配器上,实际情况却是SAS主机适配器进行了SATA“翻译”工作。在Windows操作系统中,这个SAS主机适配器将与使用Miniport驱动程序的SATA主机适配器一样被归类为SCSI控制器。

0
相关文章