9.1 IDE概述
IDE/ATA定义
IDE(Integrated Drive Electronic),集成驱动器电路,是指把控制器与设备集成在一起的驱动器电路。我们常说的IDE接口,也叫ATA(Advanced Technology Attachment,AT嵌入式)接口。IDE接口最初是专为硬盘而设计的,现在PC机使用的硬盘大多数都是IDE兼容的,只需用一根电缆将它们与主板或接口卡连起来就可以了。后来,由于IDE接口的低成本和易用性,包括光驱、磁带机等也逐步使用了IDE接口。
|
|
|
IDE/ATA硬盘
|
SATA硬盘
|
ATA/ATAPI DVD-ROM
|
IDE接口连接成本低、兼容性好、容易安装使用,成为最为普及的磁盘接口。IDE/ATA接口发展到今,已经存在的几个标准版本有:ATA-1、ATA-2、ATA-3、ATA-4、ATA-5、ATA-6、Serial ATA。
I/O连接器
ATA接口连接器是一种40针连接器,针脚间距0.1英寸(2.54mm),通常有键控以防止安装时颠倒方向,如图所示。
40针IDE/ATA接口连接器的引脚信号定义。
I/O电缆
下图显示了带有40针连接器的40/80线ATA电缆的尺寸和外观。
40线带状电缆专门用于承载总线适配器电路和驱动器(连接器)之间的信号。为了尽量确保信号完整并消除部分同步和噪声问题,电缆的长度不能超过0.46米(18英寸)。
支持高速传输模式的ATA驱动器特别容易受到电缆故障和过长电缆的影响。如果电缆过长,用户就会遇到数据中断和其他令人恼火的错误,这些错误在读写驱动器时都会遇到。另外,任何使用UDMA模式4(66MB/S)或模式5(100MB/S)的驱动器必须使用一种特殊的高质量80线电缆。
9.2 IDE/ATA标准
ATA-1
ATA-1定义了原始AT嵌入式接口,它是处于磁盘驱动器和基于ISA总线的主机系统之间的一种集成总线接口。ATA-1规范中引入的主要内容有:
1. 40/44针连接器和电缆;
2. 主/从或电缆选择选项;
3. 用于基本PIO(可编程I/O)的信号同步以及DMA模式;
4. CHS(检查头扇区)和LBA(逻辑块地址)驱动器参数转换,驱动器支持容量达2的28次方-2的20次方=(267 386 880)个扇区,约136.9GB。
ATA-l被官方公布为ANSI X3.221-1994,用于磁盘驱动器的AT嵌入式接口,其后于1999年8月6日被官方撤消。ATA-2及以后版本成为向后兼容的替代物。
尽管ATA-1理论上支持136.9GB,但BIOS只能访问528MB(1024×16×63=1 032 192个扇区)。这是因为当时没有超过528MB容量的硬盘,对于以后的ATA版本,该BIOS的限制条件就很容易突破。
其他标准:ATA-2、ATA-3、ATA-4、ATA-5、ATA-6、SERIAL ATA
ATA-2
产生于1996年的ATA-2(带扩展的AT嵌入式接口)是对原始ATA标准的主要升级版本。ATA-2重新定义了主机系统与一般的存储器设备而不只是定义磁盘驱动器之间的接口。
ATA-2最重要的特点在于引进了对快速PIO和DMA模式的支持,同时BIOS支持容量达8.4GB。该容量的BIOS支持是必要的,因为即使ATA-1可以支持的容量达136.9GB,但最初的PC BIOS只允许528MB的容量。现在的BIOS具备了参数传输能力,支持的容量可以达到8.4GB或更高。
ATA-2还引进了识别驱动器命令(Identify Drive command),它使驱动器能够向软件报告其有关特性,而这对于即插即用(Plug and Play,PnP)以及未来标准的兼容都是至关重要的。
ATA-2还存在非官方的俗语,如快速ATA或快速ATA-2(希捷(Seagate)公司/昆腾(Quantum)公司)以及EIDE(扩展IDE,Western Digital)。ATA-2被官方公布为ANSI X3.279-1996带扩展的AT嵌人式接口。
其他标准:ATA-1、ATA-3、ATA-4、ATA-5、ATA-6、SERIAL ATA
ATA-3
最早发布于1997年的ATA-3是先前ATA-2的相对微缩的版本。它包括了更加纯粹的规范并且具有几乎最小的说明和修改。
ATA-3基于ATA-2,并增加了改良的可靠性,特别是以较快的模式4传输时的可靠性。ATA-3没有定义任何快速模式。ATA-3还增加了一种简单的基于口令的安全方案,以及更理性化的电源管理和自监控、分析、报告技术(S.M.A.R.T)。它允许驱动器保留可能引起错误的问题轨迹,从而可避免数据丢失。S.M.A.R.T是最早由IBM开发出来的可靠性预报技术。
其他标准:ATA-1、ATA-2、ATA-4、ATA-5、ATA-6、SERIAL ATA
ATA-4
ATA-4包含了许多重要的对标准添加的附件,包括了称为AT附加分组接口(ATAPI)的分组命令特性。ATA-4还添加了称为Ultra-DMA或Ultra-ATA的33MB/sec传输模式。ATA-4向后兼容ATA-3,是ATAPI较早的定义。ATA-4已公布为ANSI NCITS 317-1998,带分组接口扩展的ATA-4。
系统支持的ATA速度和级别主要由主板芯片组决定。多数主板芯片组都有一个South Bridge或I/O Controler Hub的部件,该部件提供系统中的ATA接口。
ATA-4使ATAPI真正成为ATA标准的一部分,从此ATAPI不再是一个对ATA的辅助接口,而是完全溶入了ATA之内,提高了ATA作为接口用于更多其他类型的设备的能力。
ATA-4还增加了新的支持更快数据传输的Ultra-DMA模式。除了较高的数据传输率外,由于UDMA模式减轻了处理器的负载,因此可以获得更高的性能。
ATA-4还包括对排队命令的支持,这与SCSI-2所提供的排队命令相似,允许更好的多任务处理,如同多个程序处理IDE传输请求一样。
其他标准:ATA-1、ATA-2、ATA-3、ATA-5、ATA-6、SERIAL ATA
ATA-5
ATA-5包括Ultra-ATA/66,它通过降低安装时间和提高时钟频率,使Ultra-ATA分组传输率翻了一番。更快的时钟频率增加了干扰,使用ATA和Ultra-ATA所用的标准40线电缆会产生问题。为了消除噪声和干扰,开发了一种新型的40针80线电缆。
为了能够使用UDMA/33或UDMA/66模式,ATA接口驱动器、BIOS和电缆都必须能够支持要使用的模式,操作系统也必须能够处理直接存储器访问(DMA)。Windows 97 以上版本、Windows 98/Me和Windows 2000/XP都可以直接支持,但老版本的Windows 95和WIN NT(SP3之前的)则需要附加或升级驱动器才能充分利用这些较快的模式。
考虑到可靠性因素,Ultra-DMA模式中包含了一种众所周知的检错机制--循环冗余检验(CRC)。CRC是一种通过计算数据流中的校验和来检验错误的算法。主机(控制器)和驱动器为每个Ultra-DMA传输计算一个CRC值,数据发送后,驱动器计算一个CRC值并与先前主机计算的CRC值作比较。如果发现不同,那么驱动器则可能被要求选择一种较慢的传输模式并重试原始的数据请求。
其他标准:ATA-1、ATA-2、ATA-3、ATA-4、ATA-6、SERIAL ATA
ATA-6
ATA-6基于ATA-5,开发于2001年。该版本主要添加了以下特性:
1. Ultra-DMA(UDMA)传输模式达到Mode 5,速率为100MB/Sec(称为UDMA/100、Ultra-ATA/100或者ATA/l00)。
2. LBA寻址扩展到2的48次方(281 474 976 710 656)个扇区,容量支持达到144.12PB(1PB=10的15次方字节)。
ATA-6包括Ultra-ATA/100(也称Ultra-DMA/100或UDMA/l00),通过减少建立次数、增加时钟频率来提高Ultra-ATA突发传输速率;与ATA-5一样,它也需要80线电缆。另外,要使用这种新的ATA/l00模式,也要有驱动器和主板接口的支持。
除了增加了100MB/sec UDMA Mode 5传输速率的特性以外,ATA-6也极大扩展了其驱动器容量。ATA-5及其早期版本支持的驱动器容量只有136.9GB,随着越来越大容量磁盘的出现,这已逐渐成为一种限制。目前已有不少公司推出了一种容量超过136.9GB的3.5英寸磁盘,但由于ATA的这种容量限制,该磁盘只能支持SCSI接口。
这种磁盘容量限制问题在ATA-6中将得到解决;在ATA-6标准中,磁盘容量限制已经从(2的28次方-2的20次方)个扇区扩展到了2的48次方个扇区,也就是说,过去28位的逻辑块寻址(Logical Block Addressing)现在已经变成了48位寻址。每一个扇区有512字节,这样ATA-6支持的最大容量就可以达到144.12PB,即144.12×10的15次方个字节!
其他标准:ATA-1、ATA-2、ATA-3、ATA-4、ATA-5、SERIAL ATA
9.3 IDE/ATA特性
双驱动器配置
ATA标准提供了一种在AT总线上使用两个菊花链配置的控制器的选项。主要的驱动器(驱动器0)被称为主驱动器,而次要驱动器(驱动器1)被称为从驱动器。用户设置某一驱动器为主驱动器或从驱动器时,可以通过设置驱动器上的跳线或开关,或者在接口上被称为电缆选择(CSEL)引脚上使用一种特殊导线,或者可以设置驱动器上的CS跳线。
在ATA IDE规范出现之前,一直没有用于驱动器配置的通用工具。有些驱动器厂家甚至对不同型号的驱动器使用不同的主/从设置方法。由于这些不兼容性,有些驱动器在一起工作时只能按特定的主/从或从/主顺序。这种情况在ATA规范出现之前影响着几乎所有的老式IDE驱动器。
如果只安装了一个驱动器,其控制器将响应来自系统的所有命令。如果安装了两个驱动器(因此有两个控制器),那么两个控制器都接收到来自系统的所有命令,因此每个控制器必须设置为只响应针对自己的命令。这种情况下,一个控制器必须指定为主控制器,而另外一个为从控制器。当系统对某驱动器发出一个命令时,被选中的控制器和驱动器工作而另外一个驱动器必须保持不动。设置跳线为主或从时,可通过设置命令块的Drive/Head寄存器中的一个特殊位置(DRV位)就可区分两个控制器。
配置IDE驱动器可能很简单,就如同大多数单驱动器安装一样,或者也可能很麻烦,特别是涉及到在同一电缆上安装来自不同制造商的两个驱动器混用的情况时。
大多数IDE驱动器配置有4种可能的设置:
主驱动器(单驱动器)
主驱动器(双驱动器)
从驱动器(双驱动器)
电缆选择
ATA命令
IDE/ATA接口提供了一个扩展命令集。ATA IDE接口是在IBM将WD1003控制器用于最初的AT系统之后才建立起来的。所有的ATA IDE驱动器都必须支持最初的WD命令集(8个命令),这也是IDE驱动器之所以很容易地就可以安装于现在系统中的原因。所有IBM的兼容系统都有嵌人式支持WD1003的ROM BIOS,它们实质上也支持IDE/ATA。
除了支持所有WD1003命令外,ATA规范又增加了许多其他命令以扩展其性能和能力。
最重要的命令可能是"识别驱动器"命令。该命令使驱动器传送一个512字节的数据块,提供了该驱动器的全部细节。通过该命令,所有程序(包括系统BIOS)都可以发现所连接的驱动器的类型,包括驱动器制造商、型号、操作参数甚至驱动器的序列号。
另外两个比较重要的命令是"读复用"和"写复用"命令。这些命令允许多扇区数据传输,并且当与系统中的块模式可编程I/O(PIO)能力相结合时,可能会使数据传输率比单扇区PIO传输快很多倍。
还有很多其他的扩展命令,包括为特定驱动器制造商实现称为厂家特色命令提供了空间。这些命令通常仅由某一厂家实现,用于标志其独特的特性。一般来说,诸如低级格式化程序和故障管理器等特性都由这些厂家特色命令控制。这也就是之所以低级格式化程序要具体至某一特定制造商的IDE驱动器以及之所以许多制造商提供自己的LLF(Low Level Format)程序的原因。
高速数据传输模式
ATA-2/EIDE和ATA-3定义了一些用于与驱动器传送或接收数据的高性能模式PIO和DMA模式。这些快速模式是新规范的主要组成部分,也是最初开发它们的主要原因。
1. PIO模式
PIO模式即可编程I/O模式,它决定了系统与驱动器进行数据传送或接收的速率。最低的模式是PIO模式0,数据循环周期不能超过600纳秒(us)。一个循环内,16位数据从驱动器传出或输入使得PIO模式0(600ns每循环周期)的理论传输率为3.3MB/sec。今天,大多数高性能ATA-2(EIDE)驱动器可支持PIO模式4,它可提供16.6MB/S的传输率。
PIO模式和传输速率一览表
要运行在PIO模式3或PIO模式4下,则需要系统上的IDE端口是一个本地总线端口。这意味着它必须通过VLBus或PCI总线连接才能工作。大多数带ATA-2/EIDE支持的主板都有双IDE连接器,而且现在大部分主板允许完全吞吐率。大多数主板芯片组在其South Bridge部件上包括ATA接口,现在的子系统中该部件连接在PCI总线上。
当使用"识别驱动器"命令询问时,硬盘会返回有关其能够使用的PIO和DMA模式的信息。大多数扩展BIOS可自动地设置正确的模式以匹配驱动器的能力。如果设置的模式比驱动器能够支持的速率快,就会导致数据中断。
2. DMA传输模式
ATA-2及新型驱动器还可支持DMA传输。有两种截然不同的直接内存访问方式:单字(8bit)和多字(16bit)DMA。ATA-2以后的版本已不再支持单字DMA模式。一般的DMA都倚靠主板上的传统DMA(Legacy DMA)控制器来进行一些诸如仲裁、抢占系统总线和传输数据等复杂的任务,而对于总线控制DMA,这些任务是通过宿主适配器接口(也在主板上)上的高速逻辑芯片来完成的。
双字DMA也称为总线控制DMA模式。不过,即使是最快的双字DMA模式2也只有与PIO模式4一样的16.67MB/S的传输率。但是,尽管DMA的传输率与PIO相同,但由于DMA减少了处理器大部分传输工作,因而系统整体性能会更高。双字DMA模式现在已被ATA-4兼容设备所支持的新型Ultra-DMA模式所取代。
下表所示为现在ATA-4至ATA-6规范中支持的Ultra-DMA模式。
Ultra DMA模式
|
总线宽度 (bits) |
总线周期 (ns) |
总线速率 (MHz) |
总线周期/时钟周期
|
传输速率 (MB/S) |
ATA规范
|
0
|
16
|
240
|
4.17
|
2
|
16.67
|
ATA-4
|
1
|
16
|
160
|
6.25
|
2
|
25.00
|
ATA-4
|
2
|
16
|
120
|
8.33
|
2
|
33.33
|
ATA-4
|
3
|
16
|
90
|
11.11
|
2
|
44.44
|
ATA-5
|
4
|
16
|
60
|
16.67
|
2
|
66.67
|
ATA-5
|
5
|
16
|
40
|
25.00
|
2
|
100.00
|
ATA-6
|
ATAPI
ATAPI(AT附加分组接口)是一种设计用来向插入一般ATA(IDE)连接器的设备(如CD-ROM和磁带驱动器)提供所需命令的标准。ATAPI硬件的主要优点是它很便宜而且可工作于用户当前所使用的适配器上。对CD-ROM而言,它比所有的适配器有更低的CPU利用率,但没有另外的性能增加。对磁带驱动器而言,ATAPI比磁带设备上带的通用软控制器具有更优的性能和可靠性。ATAPI也可用于其他可移动存储设备,例如LS-120超级磁盘驱动器及内部Iomega Zip和Jaz驱动器。
尽管ATAPI CD-ROM使用硬盘接口,但这并不意味着它们看起来就像是普通的磁盘,恰恰相反,从软件的角度来看,它们是一种完全不同类型的东西。它们实际上更类似于SCSI设备。所有现代的IDE CD-ROM都支持ATAPI协议,并且一般其术语是同义的。换而言之,ATAPI CD-ROM是IDE CD-ROM,反之亦然。
在许多系统的BIOS中是没有ATAPI支持的。BIOS中没有ATAPI支持的系统无法从ATAPI CD-ROM引导,并且用户必须加载一个驱动程序以在DOS或Wndows下使用ATAPI。
Windows 95/98/Me和Windows NT/2000/XP都具备自带的ATAPI支持,并且带有ATAPI支持的BIOS的新型系统现在也已出现,它们允许从ATAPI CD-ROM引导系统。
一般地推荐用户在各自独立的通道上使用不同类型的IDE设备。有些老式芯片组不支持为不同的设备设置不同的传输率,也即通道必须设置其速率为最低速率。由于大多数CD-ROM和磁带驱动器运行于较低的IDE模式的速率下,但如果硬盘与其共享同一根电缆,那么硬盘工作也会较慢。即使芯片组支持在同一通道(电缆)上为设备单独设置速率,仍然推荐用户使它们保持相互独立,因为IDE一般不能支持重叠访问,如SCSI。换而言之,当一个设备正在工作时,其他设备就不能被访问。将CD-ROM和硬盘用于各自独立的电缆上,用户才能更高效地在其中重叠访问。
9.4 串行ATA技术
SATA概念
SATA(Serial ATA)即串行ATA,它是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而得名。
并行ATA使用带状的并行电缆,虽然数据传输速率可达100MB/sec,但也产生了信号定时、电磁接口(Electromagnetic Interface,EMI)以及电缆完整性等各种问题。这些问题在一种称为串行ATA(Serial ATA)的新ATA接口得到了很好的解决;这种新接口标准对于并行ATA物理接口保持向后兼容。
串行ATA使用的电缆非常细,而且只有7针,这样,PC系统中路由变得很容易,而且可以很容易地插入到更小的电缆连接器中。接口芯片的针脚数也减少了,使用的电压也降低了。这些改进都是针对在设计并行ATA时遇到的问题而进行的。
第一个串行ATA规范1对版本于2000年11月发布,可以从串行ATA工作组网站http://www.serialata.org下载。
SATA标准的三个版本
串行ATA一次只传输一位数据。数据线缆只有7线,而且非常细,两端的键控式连接器只有14mm(0.55英寸)宽,这大大减少了并行ATA中的空气流动问题。每一根电缆只在两端有连接器,可以直接将设备连接到宿主适配器(通常在主板上)上。因为每条电缆只支持一个单独的设备,所以也没有主l从设置。电缆两端是可以互换的,即主板上的连接器与设备的连接器是相同的,电缆的两端也是完全相同的。SATA电缆的最大长度是1米(3.37英寸),比并行ATA的最大长度(18英寸)要长很多。
SATA技术
串行ATA对在电缆上传输的数据使用了一种称为8B/l0B的特殊编码/解码方法。8B/10B传输码最初由IBM在80年代发明(专利也属于IBM),主要用于高速数据通信。现在,这种编码方法也用于多种高速数据传输标准中,如Gigabit以太网、光纤通道、Firewire等等。8B/l0B编码方法的主要目的是要保证不能传输连续4位0(或1),这是一种称为RLLO,4的运行有限长度(Run Length Limited)编码方式,其中0代表编码字符中连续0的最小个数,而4代表连续0的最大个数。
SATA使用一种称为差分NRZ(Non-Return to Zero,非归零)的物理传输方式。这种方法使用一对线路,每一根都携带+0.25V或-0.25V电压,信号按照不同的方式发送:如果一根线路使用+0.25V电压,另一根则使用-0.25V,两根线路的电压差始终保持为0.5V。这意味着如果给定一根线路的电压波形,则另一根的电压波形将与此相反。这种差分传输方式最大程度地减少了电磁辐射,接收端很容易读取到信号。
除了可以通过工业标准的4针设备电源连接器支持5V和12V电压以外,SATA还提供了一种能够支持3.3V的15针电源电缆和连接器。尽管这种新的电源连接器有15针,但其宽度只有24mm(0.945英寸);其中3针分别是3.3V、5V和12V电源引脚,每一级电压都可以提供4.5安培的电流,这对于最耗电的驱动器来说都是足够的。为了与现有电源设备兼容,SATA驱动器既可以做成最初标准的4针设备电源连接器,也可以做成新的15针SATA电源连接器或者两者都做。
数据连接器引脚一览表
可选电源连接器引脚一览表