串行SCSI深入技术分析和专题评测
串行接口的优势
串行技术更适应半导体技术的发展
![]() |
随着半导体技术的发展,晶体管尺寸越来越小,运行速度越来越快,所需要的电压也越来越低。现有的并行接口的信号电压相对较高,这就限制了处理并行信号的集成电路应用最新半导体技术,从而导致生成成本无法随之降低。现有的串行接口则更加适应新的半导体技术发展的趋势,上面的图表很形象的说明了这一点。
简化线缆和布线
并行线缆由几十根线缆组成,不但成本相对较高,而且在机箱中会阻碍气流的流通,串行线缆则不仅完全克服了这些缺点,还因为结构简单降低了故障率,从而提升了整个系统的可靠性。当然,点对点的拓朴结构本身就利于隔离故障,从而提升整个串行体系的可靠性和可用性。
在背板应用中,并行设备的布线是一项颇具挑战性的任务,它需要考虑电磁兼容及电磁干扰、串扰、信号延迟等多个方面的因素,比如一般会要求所有的布线都有相同的长度,以尽可能的降低信号扭曲,甚至有的背板需要预留通风的位置,这进一步加大了布线的难度——总之限制条件越多,难度就越高。相反,每个串行连接器仅有两对差分信号线,布线的难度大大的降低。
多发起者(initiator)和多链路(links)
通过多主机和/或多主机适配器访问磁盘驱动器最大优点是系统的可用性大大提高,即便是系统中某个设备出现故障。目前的问题是,即便是在并行体系中实现了多个发起者,依然会存在可能会造成无法访问特定的设备的单点故障(如下图所示)。
![]() |
在串行应用中,更加容易配置多发起者系统。如果所使用的设备支持双端口,那么可以构建无单点故障的高可用性系统(如上图所示)。
多路径(Multiple Pathways)
在SAS应用中,扩展器设备(expanders,可以将其看做是一个交换设备)被用于将多个设备连接到发起者(initiator)端口。发起者到扩展器连接可以是窄路(1链路宽度)也可以是宽路(多链路宽度,这是一个提升带宽的简单有效的方法)。
![]() |
结合上图,我们可以更加直观的了解SAS系统中多路径是如何运作的。左侧部分是一个具有6端口的主机,被配置为2端口链路和4端口链路(也可以认为它包括一个2路宽度的主机控制器和一个4路宽度的主机控制器),主机的6个端口通过扩展器连接到了两个硬盘驱动器(每个硬盘具有一个端口)和两个子系统上(每个子系统具有两个端口)。在主机和4个SAS设备之间并存6条通讯连接,它们可以同时传输数据而互不干扰。
半双工和全双工
并行总线采用了双向总线进行读取和写入操作。这意味着当两个设备在总线上进行通讯时,数据只能在单方向上流动,这也就是我们常说的半双工操作。PATA和SCSI总线都具有这样的属性。
![]() |
SAS支持全双工操作,也就是说数据可以同时在两个方向上传输,这将使得链路带宽倍增,实现了链路带宽最大化。
公平仲裁(Arbitration Fairness)
并行SCSI采用了基于设备ID的优先级体系在总线上实现仲裁。为了防止单个设备持续不断的占用总线资源,SCSI协议禁止某个设备在释放了总线占用权之后立刻再次使用总线。但是,这种体系并不适用于具有多个设备的系统,过多的设备会因争抢资源而导致系统性能下降。
SAS体系中,等待时间最长的设备被赋予最高的优先级,这被称为“最久未使用算法(Least Recently Used algorithm,LRU)”。同时结合防死锁算法(prevent deadlock)确保所有的设备可以公平的共享资源,避免拥塞。而且在具有多个设备的复杂系统中也能提供公平的仲裁,确保整个系统的性能。
连通性和可扩展性
因此并行架构采用了多分支结构(multi-drop)的共享总线,因此总线的长度和连通性都比较有限,进行系统扩展也非常的不方便。串行架构采用了交换设备连接设备和发起者,大大降低了配置大型系统的难度,同时系统也具有较好的扩展性。
比如,一个8链路宽度的SAS主机适配器峰值带宽可达4.8GB/sec,每条链路都可以同成百个驱动器连接。下图对比了均配置有两个发起者设备的SCSI U320和SAS体系。
![]() |
如上图所示,每个SAS发起者设备通过2链路宽度的接口连接至扩展器,扩展器之间也采用了2链路宽度的接口连接。工作负载为尽可能快的突发传输64KB的数据。可以看到,SCSI U320体系中总线成为了瓶颈,不同的发起者设备将数据传输给不同的设备时,需要轮流的等待拿到总线的控制权,这就导致了较长的延迟和系统拥塞。SAS体系则在极短的时间内很快的完成了所有的任务,多链路宽度端口、全双工以及良好的仲裁机制都发挥了积极的作用。
