5月中旬,西部数据(WD)公司推出了一款名为Caviar(鱼子酱)SE16的SATA硬盘。这款硬盘的缓存容量高达16MB(SE16即由此得名),并且支持300MB/s(3.0Gb/s)的接口传输率和本机命令排队(Native Command Queuing,NCQ)功能。现有的Caviar SE虽然缓存容量仍为8MB,但也增加了支持3.0Gb/s和NCQ的版本。
WD是第一个批量出货SATAⅡ 300MB/s的硬盘厂商。为了简单起见,WD将300MB/s的SATA接口称为SATA Ⅱ 300,相应地现在普遍使用的的SATA接口就是SATA 1 150——或者干脆就叫SATA 1。在SATA 1 150和SATA 1之间划等号是完全正确的,因为Serial ATA 1.0规范的接口传输率就是150MB/s(1.5Gb/s),“SATA 1”后面有没有那个“150”都不会产生歧义,可SATA Ⅱ就不同了,因为它不是一个单一的规范,而是一组规范的集合——否则为何不叫Serial ATA 2.0?
由于需要实现的功能太多,SATA Ⅱ的开发工作被分为两个阶段进行。第一阶段是在Serial ATA 1.0的基础上增加服务器和网络存储设备所需功能,只有一个规范即“Serial ATA Ⅱ: Extensions to Serial ATA 1.0”(简称Extensions to SATA 1.0),里面包含的功能不少,但与硬盘性能有关的就是一个NCQ;第二阶段的主要目标是将信号速率翻倍为3.0Gb/s,其他的几个规范基本上都与硬盘无关。因此,SATA Ⅱ 300和SATA Ⅱ可不是一个概念。
负责SATA Ⅱ开发的官方机构——从原来的SATA Ⅱ工作组到今天的SATA国际组织(Serial ATA International Organization,SATA-IO)——不希望以“SATA 1.0”或“SATA Ⅱ”来定义某款具体的产品,部分原因在于很难定义具备了哪几项功能才可以叫“SATA Ⅱ”。作为替代方案,他们推荐“SATA 1.5 Gb/s”或“SATA 3.0 Gb/s”这样的前缀,理由是可以避免引起混淆。举例来说,支持NCQ的硬盘应该被称为“SATA 1.5 Gb/s product xxx supports SATA Extensions NCQ”,支持300MB/s传输率的硬盘则相对简单些——“SATA 3.0 Gb/s product xxx”就可以了。想想看,这像个可以商品化的名字么?当然是“SATA Ⅱ”更为合适。因此,今天各种自我标榜“SATA Ⅱ”的产品大行其道,SATA-IO(SATA Ⅱ工作组)是有一定责任的。
现在让我们回过头来看看300MB/s和NCQ。作为两项比较新的功能,它们都需要所谓的“生态环境”,即仅仅硬盘具备是不够的,还必须有主机控制器(包括芯片组集成)等相关支持才能发挥作用。作为SATA Ⅱ第一阶段的产物,NCQ问世相对较早,主机控制器方面已经有了一定的基础(如Intel ICH6R),这是其较300MB/s占优的地方。不过,NCQ面临的问题也是很明显的,即作为一项软件功能,除主机控制器及其驱动程序之外,还需要上层软件的支持,换句话说,目前PC环境下的应用软件,在编写时大都没有考虑排队功能的需要,这导致NCQ在PC用户的真实使用环境中表现不出任何性能提升,甚至可能由于种种原因而有一定程度的性能下降。当然,NCQ对改善RAID的性能是有帮助的,可在PC用户中,玩RAID的又有多少呢?
反观300MB/s,这是一个相对底层的功能,只要硬盘和主机控制器都支持,双方协商完成后就可以铺好一条带宽两倍于SATA 1.0的阳光大道了。不过,300MB/s也并非没有烦恼——众所周知,现在的15000RPM硬盘内部传输率也就是100MB/s的水平,7200RPM硬盘能到70MB/s的都不多,按理说SATA 1.0的150MB/s还没到成为瓶颈的时候。因此,要想从300MB/s中获得一些实在的好处(而不是满足于数字指标的倍增),提高缓存容量是个不错的办法,譬如Caviar SE16就在16MB缓存的协助下获得了18%的性能提升(Business Winbench,参照物是8MB缓存、SATA 1接口的Caviar SE)。
基于以上原因,WD认为“SATA Ⅱ 300”对普通PC用户更为实用,但同时也为真正能从NCQ中获益的客户提供相应功能。面对这个两全其美的方案,我们要做的不过是各取所需而已。