串行ATA技术深入剖析
整机外设
一、台式机硬盘接口技术历史回顾
硬盘最早是由“蓝色巨人”IBM公司研发的,基于其“温彻斯特/Winchester”技术。这一技术在1968年就已经确立了,但是因为成本的关系,真正地将硬盘用于台式机已是上世纪80年代以后的事情了。台式机的硬盘接口也经历了几代标准:
1.ST506/412
最早的台式机硬盘接口应该是ST-506/412接口。它是希捷开发的一种硬盘接口,用于PC/XT和PC/AT机器的硬盘。它支持的传输速度低于5MB/s,到了1987年左右这种接口就基本上被淘汰了,采用该接口的老式硬盘容量一般都低于200MB。
2.ESDI接口
由于ST506接口的速度太低,迈拓于1983年开发了ESDI(Enhanced Small Drive Interface)接口。它的理论传输速度是ST506的2~4倍,一般可达10MB/s,但是由于成本等原因并没有得到广泛应用。
3.IDE/EIDE接口
IDE(Integrated Drive Electronics)的本意实际上是指把控制器与盘体集成在一起的硬盘驱动器,我们常说的IDE接口,也叫ATA(Advanced Technology Attachment)接口,ATA接口最早是在1986年由CDC、康柏和西部数据共同开发的,使用40芯的扁平电缆。 ATA接口的一大特点是成本低廉,因此很快得到大家的认同,从20世纪80年代末期开始就逐渐取代了其他老式接口,第一代的IDE/ATA硬盘的标准叫ATA-1,1990年后生产的PC机已经普遍采用的是ATA接口了。
目前在市场上常见的所谓IDE接口硬盘实际上应该是EIDE接口硬盘。EIDE(Enhanced IDE,增强型IDE)标准是在ATA-2和ATAPI基础上开发的,能够兼容原有的ATA(IDE)、Fast-ATA和ATAPI(ATA Packet Interface)标准中的数据传输模式。EIDE接口是Pentium以上级别的主板的标准接口。在Pentium以上级别的主板中,一般都提供两个EIDE接口以连接IDE标准的硬盘以及CD-ROM、CD-R/W、DVD-ROM等ATAPI设备。这一点和486以前的主板有很大的区别,在486以前的时代,硬盘一般都要用单独的I/O界面卡(也称为“多功能卡”)来连接到主板上。
EIDE的标准也已经由过去的ATA、ATA-2、ATA-3发展到今天的Ultra ATA。Ultra ATA(也叫Ultra DMA)是由Intel和Quantum公司共同提出的硬盘接口标准,Ultra ATA的外部数据传输率经过多次革新,目前已经提高到了133MB/s。有一点要注意的是从Ultra DMA66标准开始,IDE硬盘线必须使用新式的80芯的线。下表是Ultra ATA标准所支持的各种传输模式的规格(其中最大外部传输速率为理论值):
4.SCSI接口
SCSI(Small Computer System Interface)是与IDE接口标准同时发展起来的另一种接口标准,但是它不是专门为硬盘设计的。它是一种总线型的系统接口,每个SCSI总线上可以连接包括SCSI控制卡在内的8个SCSI设备。SCSI接口的标准非常复杂,目前的最高标准是Ultra Wide SCSI-320,最大外部数据传输率为320MB/s。SCSI接口的速度比IDE要快,而且在降低CPU占用率等方面有较大的优势。但是由于的SCSI设备生产成本比较高,例如相同容量的SCSI硬盘的价格往往是IDE硬盘的3倍以上,因此SCSI接口没有像IDE接口那样得到普及,一般只用于服务器和工作站。
二、串行ATA接口标准的确立
1.并行ATA的局限
传统的ATA硬盘都是采用并行方式工作的,当并行ATA硬盘发展到了Ultra ATA100和Ultra ATA133的标准的时候,这一技术似乎己经走到了尽头。以Ultra ATA100为例,虽然理论最大传输速率是100MB/s,但是在实际使用中是无法达到最大值的,实际传输速率大约在50~70MB/s之间。而Ultra ATA133标准的性能在这一基础上提高甚少,测试的数据表明不过是2%~3%,因此,在主流硬盘厂商中只有Maxtor(迈拓)公司承认Ultra ATA133这一标准,而芯片组厂商中占据市场份额最大的Intel也并不承认Ultra ATA133标准。
究其原因,还必须提到硬盘的DMA工作模式。DMA(直接存储器存取)是一种快速传送数据技术,其重要性在于存取数据时不需要CPU的干预,可提高系统执行应用程序的效率。这一项技术从Ultra ATA33开始全面用于硬盘接口技术,已经经过了好几代的改进。
在数据传输中,两个连续的数据传输周期之间,有一个时间间隔,间隔时间为半个时钟周期,但在另外半个时钟周期中包括调整期、保持期和最大限度的数据传输时间。保持期是指数据需要在传输完成后保持一个特定的时间,而在两次数据传输中还有一个调整时间,在这段时间内,要做好传输数据的准备,ATAPI-6协议中规定调整期和保持期的时间都为4.8ns,而剩下的时间就是最大的数据传输时间。要增加传输速度就要减少等待时间(包括两个连续的时钟之间的时间间隔、调整期和保持期),最简单的方法就是缩短整个传输周期,所以Ultra ATA133标准将时钟频率提高到33.3MHz。
传统的并行ATA由于采用并行方式传输数据,所以在每个系统时钟周期内可传输多位数据,但是它的一个很重要的缺点就是每个通道需要的用到信号针脚就高达26只,这就存在着信号串扰问题。为了减少干扰,从Ultra ATA66开始,IDE硬盘线增加了40根线用于抗干扰,但是到了现在,这一方法的潜力已经完全被榨干了,时钟频率已经很难提升了。另外,并行ATA工作时需要5V的电压,这显然也不符合业界推行的不断降低系统部件电压以减小能耗的要求。要想进一步提高性能就只能寄望于新的技术来改善硬盘的接口速度,这一新技术也就是串行ATA技术。
2.串行ATA的原理
串行ATA以连续串行的方式传送数据,在每个系统时钟周期内只会传送一位数据。既然并行ATA一次可传输4个字节(4×8位)的数据,而串行ATA每次传输的数据只有1位,那么为什么在高速传输过程中却要使用串行ATA呢?其主要原因就是串行传输没有信号传输串扰的问题。从理论上说,串行传输的工作频率可以无限提高,串行ATA就是通过提高工作频率来提升接口传输速率的。因此串行ATA可以实现更高的传输速率,而并行ATA在没有有效地解决信号干扰问题之前,则很难达到这样高的传输速率。这也是为什么新的硬盘接口标准会采用串行传输的原因。
至于为什么串行ATA能够达到那么高的频率,原因就在于串行ATA和并行ATA依赖的外部时钟信号不同,串行ATA有一个植入式的时钟,可以在处理信号和数据时使用。这种植入式的时钟实际上是将数据本身作为时钟信号一样进行处理。这样处理的潜在问题就是当没有数据传输时,系统和存储器上的数据就不一定是同步的了。目前的解决办法是在空闲时发送虚拟信号(Dummy Singal)来保持两者的同步。由于不存在并行设备,信号肯定是一致的。所以串行ATA要想提高传输速度的话,只需要提高控制芯片的工作频率即可。
串行ATA一代的时钟频率为150MHz,通过150MHz的时钟频率可以轻易地算出半个传输周期只有0.333ns(1个周期=1/150M),当然传输过程中的等待和数据调整时间也会相应地减少,因此大大提高了传输速度。而且0.333ns只是串行ATA开始,将来还有很大的发展潜力。
另外,串行ATA能有效减少ATA接口的针脚数目,使连接电缆数目变少,效率也会更高。实际上,串行ATA仅用很少的针脚就能完成所有的工作。这样的架构有助于降低系统的能耗和减小系统的复杂性。
3.串行ATA标准的确立
2000年2月Intel在IDF(Intel Developer Forum-Intel开发者论坛)上,首次提出了串行ATA的技术构想,并专门成立了串行ATA标准的官方工作组(Serial ATA Working Group)。除了Intel之外,该工作组还包括了业内众多有影响的公司,如IBM、Dell、APT、Maxtor、Quantum(其硬盘部门已与Maxtor公司合并)和Seagate公司。2000年12月18日,串行ATA工作组公布了串行ATA草案1.0版。
2001年8月,Seagate在IDF Fall 2001大会上宣布了串行ATA 1.0标准,串行ATA规范正式确立。在1.0版规范中规定的串行ATA数据传输速度为150MB/s。而且随着未来后续版本的发展,其接口速率还可扩展到2×和4×(300MB/s和600MB/s)。从其发展计划来看,未来串行ATA也将通过提升时钟频率来提高接口传输速率。
串行ATA采用的是点对点传输协议,每一个硬盘与主机通信时都独占一个通道,系统中所有的硬盘都是对等的,因此,在串行ATA中将不存在“主盘”和“从盘”的概念,用户也不用再费事去设置硬盘的相关跳线了。串行ATA的点对点传输模式的另一个好处是,每一个硬盘都可以独享通道带宽,这对于提高性能是有好处的。
另外,串行ATA的数据线可以长达一米,支持热拔插;而传统的并行ATA数据线只支持40cm的传输距离,不支持热拔插。
三、当前已发布和即将发布的串行ATA产品
1.串行ATA接口的硬盘
串行ATA接口的硬盘一向是雷声大、雨点小,到了2002年底才刚刚有少量的产品上市:Seagate的酷鱼5代和Maxtor的金钻9代都有串行ATA接口的版本,另外,Fujitsu的 2.5英寸硬盘也有了串行ATA接口的版本:WD、Samsung等公司的串行ATA硬盘也将在近期发布。
2.当前主流串行ATA控制器
目前主板的控制芯片组都还没有集成串行ATA功能,所以要实现串行ATA必须使用集成了串行ATA控制芯片的主板或者使用基于串行ATA控制芯片的PCI接口串行ATA适配卡。以下的几种控制芯片是常见的:
①Silicon Image Sil3112(图1)
这款芯片支持两个SATA150接口,并且支持RAID0/1。目前很多高档主板都集成此芯片以实现对串行ATA的支持。
②Promise 20375 / 20376(图2)
这是老牌I/O控制芯片厂商Promise设计的SATA150芯片,支持2个SATA150接口和1个ATA133接口,20375和20376的区别是20376还支持RAID0/1。通过集成Promise的这两款芯片来实现对串行ATA支持的主板也不少,另外也有不少PCI接口的串行ATA卡使用这两款芯片。
③Marvell 80i8030(图3)
图中的两块小芯片才是M88i8030,这款芯片比较特殊,它是配合HighPoint公司的HPT372或者HPT374芯片使用的,可以把HPT372/374的ATA133接口转化为SATA150接口,例如ABIT的AT7-MAX2和IT7-MAX2主板就采用了这款芯片。
3.主板芯片组集成的串行ATA控制器
各家主板芯片组厂商的新一代南桥芯片都将集成串行ATA功能,其代表性的产品有Intel ICH5、VIA VT8237和SiS964,这几种芯片的上市日期已经非常近了,而其他芯片组厂商如Ali、NVIDIA等也必将迅速跟进。
4.串行ATA转普通IDE的转接盒(图4)
这个有趣的东西是Highpoint公司的SATA控制卡和升技公司的带SATA功能的主板搭配的转接盒,能够把普通的IDE硬盘通过这种转接盒接在SATA口上,让人们在SATA硬盘还没上市的时候便可以提前享受SATA技术。
四、串行ATA系统的实际性能
串行ATA控制器和硬盘虽然逐渐上市,但是多方测试的结果比较出人意料之外:较之于ATA133系统而言串行ATA系统的性能提升很小,甚至在某些测试项目中还败给了ATA133!
究其原因,很重要的一点是现在的硬盘的最大内部传输率也就在65MB/s左右,连ATA100的能力都没有完全发挥,提高硬盘外部接口的速率只能提高传输速度的峰值,对于持续的传输速率几乎没什么影响。要提高硬盘的整体性能必须从多方面着手,例如提高转速、新式的轴承、使用新的盘片技术、更大的缓存等等,这些又取决于电机技术、材料技术等的革新,只是单纯提高硬盘的外部接口速率对硬盘性能的影响很有限。其实这些改进一直在持续进行中,典型的如WD热衷于提高缓存容量;而IBM尝试使用玻璃盘片技术(这一尝试实际上是失败了);Seagate的酷鱼系列则是从SCSI硬盘移植来的技术(这一尝试直到酷鱼4代才算基本成功);Maxtor采用了新的液态轴承技术。以上种种改进中的曲折确实令人感慨,真可谓任重而道远。
此外串行ATA的点对点传输模式也存在着一定的缺陷:虽然从理论上说每一个硬盘都可以独享通道带宽,但实际情况却并非如此。目前PCI总线的带宽为133MB/s,而单个串行ATA控制器的带宽就已经达到了150MB/s。如果系统要支持超过两个串行ATA设备的话,芯片组的南桥就必须集成两个串行ATA控制器,才能提供300MB/s的带宽。要知道,目前Intel南北桥之间的Hub-Link总线和VIA的V-Link总线的带宽都只有266MB/s(编注:VIA近期推出的芯片组采用了带宽达到533MB/s的V-Link总线),而此时两个串行ATA控制器提供的300MB/s带宽已经超过了芯片组南北桥之间的传输速率,很显然此时串行ATA与整机系统速度是不匹配的。在实际应用中,硬盘与控制器之间的数据传输速率是不可能超过南北桥之间的数据传输速率的,系统总线成为瓶颈。不过目前SiS MuTIOL(妙渠)技术已经达到了533MB/s和1.06GB/s的传输速率,而Intel和VIA支持串行ATA的新芯片组中Hub-Link和V-Link的带宽都将达到533MB/s。这样看来,串行ATA的扩展性问题应该能够很快得到解决。但是,PCI总线的瓶颈问题就只能寄希望于未来极高带宽的PCI Express总线了。
五、串行ATA技术的前景和展望
虽然目前的测试还看不出串行ATA技术的优势,但是这一技术是用来替代已经很陈旧的并行ATA技术的,是为未来PC性能全面提升而准备的技术。在相当长的一段时间内(1年以上),并行ATA还会是硬盘接口的主流。当新技术大量运用在新型号的串行ATA硬盘上并且PCI Express总线正式开始取代传统的PCI总线时,那才会是串行ATA硬盘完全发挥其实力的时候(图5为Intel的基于PCI Express总线的串行ATA控制卡样品)。也就是说串行ATA会经历一段比较尴尬的过渡时间才会正式成为主流产品。
不过,创新的脚步有时候总是出人意料的迅速。就在前几天,WD发布了10000rpm、8MB缓存的新型号SATA硬盘,这是第一款10000rpm的ATA硬盘,性能应有比较明显的提升。此外,因串行ATA支持热拔插,可能会有一些外置的串行ATA设备问世。
至于与SCSI接口竞争方面,串行ATA对SCSI的威胁极小,只可能影响很小一部分最低端的SCSI硬盘的市场。倒是使用串行技术的SCSI标准──SAS(Serial Attached SCSI)已经开始提上了议事日程,这一标准的第一代传输速率定为600MB/s,足以威胁现在顶级的光纤通道(Fiber Channel)技术。





