科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网存储频道从SASI到SAS:SCSI走过25年

从SASI到SAS:SCSI走过25年

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

2006年是SCSI诞生25周年,本站以此专题回顾整个SCSI的发展史,供所有对SCSI技术感兴趣的读者参考,聊作纪念。

作者:存储时代——张广彬 2006年7月28日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共11页)

SCSI vs. ATA:不平等的较量

在硬盘接口的层面上,SCSI与ATA孰优孰劣多年来一直是各自的拥护者热衷讨论的话题。虽然两种技术具有很强的互补性,彼此不能完全替代,但在二者重叠的中间区域(譬如低端SCSI硬盘与高端IDE硬盘),还是经常会有究竟哪个更好的疑问。

最早的SASI规格书只有短短20页,以现在的标准来看当然是非常简陋,但与几年后AT接口问世时的“偷工减料”(据说当初WD仅用三天时间就完成了接口规范的设计)相比还是显得完善许多。从缔造者的初衷来看这并不难理解——前者定位于高性能的系统级接口,后者则以降低硬盘系统成本为首要目标。

SCSI从一开始就采用了独立的总线设计,而不仅是硬盘的接口;最初的ATA则仅有基本的总线逻辑——简单的取自ISA总线,直到更为复杂的PCI总线出现之后才逐渐丰富起来,但其接口特性仍无法与同期的SCSI相提并论——尤其是SCSI在SCSI-3推出后更上层楼,所涉及的范围已远非ATA能够比拟。不过,如果将讨论范围限制在机内(In-box)存储的硬盘级接口,Ultra ATA与并行SCSI(SPI)还是具有一定可比性的。

接口

在接口的层面上SCSI可谓占尽优势。

  • 连接能力 进入Ultra3时代之后,作为硬盘接口的SCSI总线宽度固定为16位,单一通道所能连接的设备数量也达到了15个;而ATA接口的位宽虽然从一开始就是16位,但每通道所能连接的设备只有2个——这意味着即便是双通道的ATA也无法与单通道的SCSI相提并论,双通道SCSI的30个设备更是想也不敢想的。 此外,ATA的连接距离不足半米,尚不及SCSI的十分之一。
  • 适配器 最初的ATA采用PIO(Programmed Input Output,可编程输入输出)传输模式,每一个I/O操作都要在CPU控制下进行,CPU占用率极高——在硬盘读写数据时整个系统几乎停止响应;而Ultra ATA的出现不仅提高了接口传输率,还标志着DMA(Direct Memory Access,直接内存访问)模式一统天下——系统通过DMA控制器与接口设备沟通,从而大幅度降低了对CPU的占用。相比之下SCSI得益于总线控制能力较强的适配器,对CPU的依赖程度始终很小。
  • 线缆 很多技术都是SCSI首先采用,但ATA也有走在前面的时候,双沿传输和CRC校验就是一例——1997年的Ultra ATA/33比1998年的Ultra160 SCSI整整早了一年。不过,后来的事实表明如果不使用双沿传输,在传统的40线ATA电缆上基本上得不到33MB/s的传输速率,而最终运行频率提高至16.6MHz的Ultra ATA/66还是改用了增加40根地线的设计;反观SCSI,运行频率很轻易地就能达到40MHz,应付80MB/s的传输速率根本无需双沿传输,归根结底还是LVD线缆的潜力更大。至于CRC校验,也是出于保证数据传输完整性考虑的设计 (Ultra ATA出错的风险较大,所以先采用)。

硬盘

对硬盘而言,SCSI和ATA不过是两种接口逻辑而已,与决定其性能表现的HDA(磁头/盘片组件)和控制器设计没有必然联系。

在1998年以前,很多硬盘产品都有ATA和SCSI两个版本——HDA和控制器是一样的,只是接口逻辑(电路)不同而已。由于ATA的接口逻辑明显比SCSI来得简单,因此就单个硬盘的性能表现而言,ATA版本通常要好过SCSI版本。

不过,性能最高的硬盘始终出自SCSI一方,再好的ATA硬盘也只能在低端SCSI硬盘面前耍耍威风,这是因为SCSI硬盘(整体上)总是拥有更高的主轴转速、更短的寻道时间和更大容量的缓存,也就是说优势仍然来自于HDA和控制器。而之所以会出现这样的情况,根源仍然在于SCSI是以性能为主要导向,高端用户愿意为一流的性能付出相应的代价;比较而言,ATA首要考虑的则是成本,即以尽可能低的价格获得够用的性能。从这个层面上说,就算我们把最快的硬盘(目前是15000RPM)改造成ATA接口并证明这样做能获得更好的单机性能,也不会有多少人买账(因为顶级转速对应的顶级价格与ATA接口的低成本特性是相背离的)。

多工能力

在DMA传输模式得到广泛应用之后,SCSI设备在CPU占用率上的优势基本不复存在,但ATA设备在很多情况下仍然表现出对系统性能的拖累,而且与存储设备本身的速度没有太大关系。

这就涉及到接口的多工操作能力。顾名思义,多工操作能力就是多个(至少2个)设备共同工作的能力。虽说PC这样的个人系统对多工操作能力的要求不算苛刻,但在光驱早已必不可少的前提下,硬盘和光驱各一台显然是存储子系统的最小配置,而在中高级用户中拥有第二光驱(譬如刻录机)或硬盘者也不在少数——如果这3或4个设备都采用ATA接口且系统中仅有一个标准的双通道控制器(通常都是如此),那就必然要面对单通道容纳2个设备的情况。

问题在于ATA通道是独占式的,一条通道内主(Primary)设备具有优先使用权,但不论哪个设备占据通道,在其完成操作并释放通道控制权之前,另一个设备都不能访问——如果你希望一个ATA设备处于随时可投入使用的状态,那么它所在的通道就不要有其他设备(这也是我们一再强调ATA设备所在的是“通道”而非“总线”的原因)。

让我们举一个例子来说明SCSI和ATA在多工操作时的区别。上图左侧是连接到主机上的一条并行数据线,这条总线(SCSI)或通道(ATA)串联着两块硬盘,在主机的控制下从其中一块读取数据,再写入到另一块。数据从源盘的盘片上读入缓存,沿总线或通道传输至主机的内存,然后再沿总线或通道传输至目标盘的缓存并写入其盘片。

由于盘片到缓存的速度明显低于缓存(沿总线或通道)至主机的速度,因此这两个设备都不可能在总线上形成持续的数据流。就SCSI而言,源盘把缓存中的数据一次性传送至主机后,总线就被释放出来,在源盘等待缓存被填满的时候,已被读入主机内存的数据就可以通过总线进入目标盘的缓存,而当目标盘将这些数据写入盘片的时候,总线又被释放出来供源盘使用。因为有了这种调度功能,基本上杜绝了总线空闲但其他设备又不能使用的浪费现象。

ATA就不同了:源盘一旦接到传输一批数据的指令,就会完全占有通道直至将这批数据全部读入至主机内存,即使通道因缓存正等待填满而空闲,也不能释放出来供目标盘使用;而到了向目标盘写入数据时,通道也被独占,源盘虽然无所事事但却无法响应主机的其他请求。这种低效率使用公共资源的方式不仅延长了整个传输的时间,也使主机在此期间表现迟缓(目前的操作系统对硬盘的依赖程度很高),也就是在很多情况下性能指标较低的SCSI硬盘在实际使用中表现好过ATA硬盘的主要原因。

当两块硬盘各自占有一条总线或通道时,就形成了附图右侧的星形点对点连接模型,这种拓扑方式显然要优于共享总线或通道,因为读和写可以同时进行。不过纵然如此,也还是SCSI的表现更好——ATA硬盘在传输数据时,即使通道暂时处于空闲状态,主机仍然不能向其发送请求。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章