在微型计算机中,存储设备总线主要用于连接微型计算机中的各种大规模存储设备,主要包括硬盘、光盘等。早期的微型计算机系统(IBM-PC/XT、AT)所使用的硬盘接口为ST-506和ESDI(Enhance Small Device Interface)接口,这种接口方式把硬盘控制器做在PC总线上(如ISA),而硬盘本身仅实现机械部分和模拟至数字变换部分。总线上的控制卡要完成较多的工作,包括发出各种硬盘的操作命令、磁盘附加数据(扇区索引、同步、CRC校验码等)的产生与编排,使得从控制卡到磁盘的数据与命令过于复杂,容易在较长的扁平连接电缆线上出现传输错误,同时也限制了接口总线带宽的提高。于是,设计者们把硬盘控制卡的大部分部件与磁盘有关的功能部件都移到硬盘上,用硬盘上带有的控制器(或CPU)来直接管理物理部件,同时将硬盘与总线的接口定位于更简单的总线信号上,即与在总线上设计普通的外设接口类似,从而形成了最早的存储设备总线接口:PATA(Parallel Advanced Technology Attachment,Parallel ATA),又称IDE(Integrated Drive Electronics)和E-IDE(Enhanced IDE)。
IDE最早在20世纪80年代中期由西部数据等几家公司共同开发并命名,后来被国际标准组织所接纳,成为ATAPI(AT Attachment Packet Interface)的基本组成部分。后来,ATA-PI进一步把IDE扩充为EIDE(Enhanced IDE),使其能支持非固定盘,如CD-ROM、DVD-ROM等磁盘类设备,成为一种通用的存储设备总线。IDE接口使用40针或80针排线连接主板与硬盘,其中包括16位数据线和少数地址线,还定义了一组中断、DMA相关信号。IDE接口通过片选信号访问硬盘的寄存器。
IDE规定了两种不同的传输方式,分别称为程序I/O(Programmed I/O)方式和DMA方式(包括单字DMA和多字DMA两种),其中程序I/O方式由于需要CPU干预数据的传输,对CPU的占用比较大,而DMA方式则占用CPU比较少。由于ISA总线的限制,这两种传输方式的传输率都比较低,最高不过16.66 MB/s。后来,随着PCI总线逐渐成为微型计算机系统总线的主流,提升IDE的传输速率成为必然。昆腾公司(Quantum,著名硬盘制造商,后被迈拓收购)Ultra DMA传输模式的出现解决了这个问题,这个最早出现在ATAPI-4中的新传输模式通过对猝发传输的支持大大提高了IDE硬盘的传输速率,从早期UDMA/33的33MB/s直到UDMA/133所规定的133 MB/s。当然,高速的UltraDMA传输要依赖于性能更好的80针扁平线缆,这种线缆在40针扁平缆的基础上增加了40根地线,保证每两根信号线之间都有地线相隔,以防止信号之间的串扰,提高传输尤其是高频率传输的可靠性。
由于ATA设定其寻址模式为28位寻址,其所能寻址的范围被限定为228个扇区。根据每个扇区512个字节计算,传统ATA的28位寻址所能支持的最大硬盘容量应该是137 GB。后来,随着硬盘容量的不断扩大,ATA-6将寻址模式从28位增加到48位,从而将这个限制值从137 GB提高到了257字节。但是,某些早期的操作系统(如SP1前的Windows XP和Windows 2000)由于禁止使用48位寻址的LBA模式,其单个逻辑硬盘规模仍被限制在137GB,但这已经不再是IDE的限制了。
从安装上来讲,大多数计算机主板上安装有两个IDE通道,分别被称作Primary IDE Channel和Secondary IDE Channel,而每个IDE接口上可以连接两个IDE设备,分别被称作Master设备(或主盘)和Slave设备(或从盘),它们通过同一根扁平电缆连接到主板上。早期的IDE硬盘或光驱大多使用跳线来指明该设备是Master还是Slave,如果一个IDE通道上连接的两个设备同时设定为了Master或同时设定为了Slave,则这两个设备都无法正常工作。这也给用户自行组装或扩充微型计算机带来了一定的麻烦,所以后期的IDE设备开始提供“Cable Select”模式,即根据连接到扁平电缆的哪个接头,来确定该设备是主盘还是从盘,从而避免用户错误设定带来的IDE设备无法使用的现象。
随着存储设备传输速率进一步提高的要求越来越迫切,传统的并行ATA技术(也就是我们常说的IDE)逐渐难以支持更高的传输率,高频率的数据传输经常会在扁平电缆的传输过程中被一些干扰信号所影响,传输的距离也随着传输率的提高而下降。于是,几乎和系统总线从并行的PCI向串行的PCI Express转移的同时,并行ATA也逐渐被串行ATA,即SA-TA所取代。
SATA,全称Serial Advanced Technology Attachment或Serial ATA,是将传统的PATA串行化之后形成的新一代存储设备总线技术。和PATA相比,SATA使用低电压的差分信号来传输数据,并通过8B/10B编码将时钟信号嵌入到数据和命令之中,从而增强了数据传输的抗干扰能力,减小数据传输的误码率。和PATA采用并行传输(一次传输16位)不同,SA-TA采用每次传输一个比特的串行传输方式,避免了并行传输带来的一系列问题,使得时钟频率能够进一步提高。依靠不断提高的时钟频率,SATA获得了远高于PATA的传输率,最早的SATA(俗称SATA-1)的传输率是1.5 Gbit/s,由于8b/10b编码的关系,这个传输率相当于150 MB/s。2004年推出的俗称SATA-2的第二代SATA标准传输率则加倍成了3Gbit/s和300 MB/s,而2009年推出的SATA 3.0则将这两个数字再次倍增为6 Gbit/s和600 MB/s。
由于使用串行差分信号传输,SATA不再使用PATA所使用的40/80针扁平电缆,而是改用有7条线的细扁平缆,这7条线由两对差分信号线和3根地线组成,地线将两对差分信号线隔开,从而最大限度地避免了信号之间的串扰现象。和PATA所使用的40/80针扁平电缆相比,SATA的7针扁平电缆更细更柔软,更加有利于减少对机箱内空间的占用,方便散热。同时SATA设备使用的电源线也和传统PATA设备使用的4针D型电源插头不同,SA-TA设备大多数采用一种15针扁平L型电源接口,这种接口提供3.3 V、5 V和12 V三种不同电压的电源供应,并保证满足硬盘热插拔的要求。
在与主板的连接上,SATA设备采用了一对一的连接方式,即主板上的一个SATA接口只能用来连接一个SATA设备(硬盘、光驱等),而不能向PATA那样将两个设备连接到主板上的一个接口上。但是,主板上提供的SATA接口比较多,一般在4~6个甚至更多,这也为SATA设备的安装提供了方便。
另外,为了支持机箱外的SATA存储设备连接,在SATA-1的基础上设计了一种面向外接存储器的SATA1.0扩展规格,被称作external SATA,或简称eSATA。eSATA可以支持最长2米的连接线和300 MB/s左右的传输率,性能指标并不逊色于机箱内的SATA-1设备,但是由于价格原因,eSATA设备在目前市场上并不多见。(www.xing528.com)
如果说IDE和SATA是台式机和笔记本计算机领域的存储设备总线的主流,那么在服务器领域则是SCSI和SAS(串行SCSI)占据统治地位(见图7-51)。SCSI(Small Com-puter System Interface)总线最早用于小型机的硬盘驱动器,随着微型计算机性能的提高及对其他方面的要求,SCSI接口逐渐应用于服务器或高档台式机和工作站。SCSI总线是一种高度智能化的接口,相对于IDE等接口来说它的价格要高得多,但性能却比IDE要优越许多。虽然在接口的数据传输宽度和传输时钟上与IDE相当,但SCSI的智能接口特性使它在传输过程中仅需5%的CPU干预,与IDE的大部分情况下95%的CPU干预度有着极大的差别,这意味着SCSI在几乎不用CPU干预的情况下完成数据传输,从而提高了整个系统的性能。
SCSI定义了一种用来支持计算机和外围设备互连的总线,它被设计成一种有效的外设总线,用来支持多个设备,允许包括多个主机。这样通过单一的SCSI接口,可使不同的磁盘、磁带、打印机和光驱能加入到主机系统中去,而不需要修改系统的硬件或软件。而且,SCSI总线上的设备连接不局限于箱内的连接,它允许SCSI设备处于机箱外,可有较长的连线,这与传统的IDE仅允许18英寸的连线及在机箱内相连不同。
在漫长的演化过程中,SCSI出现了一系列不同版本的标准规范。最早的SCSI标准(1986年)使用8位的传输宽度和5 MHz的传输频率,其传输带宽为5 MB/s。后来的SCSI-2和SCSI-3标准则逐渐将传输宽度增加到16位,并将传输频率从5 MHz提高到10 MHz、20 MHz、40 MHz、80 MHz直到使用DDR技术实现的160 MHz,从而在2003年推出的Ultra-640 SCSI(又叫Ultra-5)版本中将传输率提高到了640 MB/s。根据标准版本的不同,一个SCSI接口可以连接3、7或15个SCSI设备。
图7-51 SCSI与SAS的线缆和端口
对于SCSI的发展来讲,1992年制定的SCSI-3标准意义非常重大。这并不是因为SCSI-3在传输率、可用传输媒体、可连接设备数等方面的改进,而是因为SCSI-3第一次对SCSI协议各个层次予以分离,形成了一个完整的层次式的体系结构模型。SCSI-3定义了一套完整的SCSI指令集,包括基本指令集和特定协议层指令集,如:块命令(SBC:Block Command)中的硬盘接口命令、磁带设备的流命令(SSC)、RAID阵列的控制命令(SCC)、多媒体命令(MMC)、媒体切换命令(MCC:Media Changer Command)以及箱体服务命令(SES:enclosure services Command)。从此之后,SCSI-3所定义的SCSI指令集成了服务器存储设备的通用指令集,不仅仅在SCSI存储,而且在光纤通道(Fiber Channel)、IEEE1394火线等其他存储设备总线中都得到了广泛的使用,大大促进了存储技术的发展。
21世纪初,受到微型计算机系统中串行化潮流的影响,SCSI也开始向串行化的方向发展,并吸收SATA、InfiniBand等技术的优点,形成了串行SCSI技术,又称SAS(Serial Atta-ched SCSI)。SAS使用了点到点全双工传输技术,通过低电压的差分信号传输8b/10b编码的串行数据,并依靠高时钟频率来提高传输率。目前SAS提供150 MB/s、300 MB/s和600MB/s三种不同的点到点传输率,而且这种点到点传输率可以通过连接多个设备实现线性的累加,直到达到系统总线传输能力上限。和SAS相比,虽然Ultra-640 SCSI的最高传输率可以达到640 MB/s,但是其带宽被连接到系统中的所有存储设备所分享,而且在同一时刻只能沿某个方向单向传输(半双工)。这也是为什么SAS的最高传输率只有600 MB/s,但是在实际使用的时候SAS要比使用共享带宽的并行SCSI效果要好的原因。
和IDE使用40线扁平缆不同,SCSI使用的连接线缆更加多样和复杂。并行SCSI使用的连接线缆主要有50针、68针和80针三种不同的扁平线缆。SAS则更进一步,通过巧妙的设计使得SAS线缆能够兼容SATA硬盘,并通过协议上的兼容性允许用户使用性能稍差但是价格却低得多的SATA硬盘来构建低端服务器上使用的廉价存储系统。
虽然由于SCSI主要用于连接存储设备而被我们归到了“存储设备总线”,但是SCSI标准并没有将SCSI限制在连接存储设备,而是允许通过SCSI接口连接各种不同的外设,如扫描仪、打印机等。但是SCSI接口相对昂贵的价格使得SCSI接口的使用范围受到了很大的限制,目前除了存储系统之外,基本上很难见到SCSI的身影。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。