扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:存储时代——张广彬 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可谓占尽优势。
硬盘
对硬盘而言,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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。