《存储技术基础》课件第3章_第1页
《存储技术基础》课件第3章_第2页
《存储技术基础》课件第3章_第3页
《存储技术基础》课件第3章_第4页
《存储技术基础》课件第3章_第5页
已阅读5页,还剩216页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章磁介质存储器与光存储器3.1磁介质存储技术概述

3.2硬盘驱动器基本结构

3.3硬盘驱动器IDE接口

3.4磁带存储系统

3.5光存储器

3.6ATAPI接口

小结 3.1磁介质存储技术概述

3.1.1磁介质存储器的基本原理

磁介质存储器利用某些能够均匀地涂在金属铝或塑料表面作载体的磁性材料进行信息存储。我们常见的磁介质存储器有磁盘存储器和磁带存储器。磁介质存储器因具有存储容量大,单位价格低,可以重复读/写以及保存期长久等显著特点而成为计算机外部存储器的主要设备。但是磁介质存储器与半导体存储器相比,其读/写速度较慢、机械结构复杂、操作环境要求比较高等不利方面限制了其在某些应用场合使用。接下来,将首先介绍磁性材料存储的物理原理,然后说明相应的记录方式,使得用户对磁介质存储器有初步认识。磁介质材料是一种具有矩形磁滞回线的磁性材料。图3.1给出了磁滞回线的示意,相应坐标为磁感应强度B与外加磁场H。从该磁滞回线可以看出,磁性材料被磁化后,工作点始终处于磁滞回线上。当外加的正向脉冲电流(外加磁场)幅度足够大时,那么在电流消失后磁感应强度B并不为零,而处在 +Br状态,即正剩磁状态。相反,当外加负向脉冲电流时,磁感应强度B将处于-Br状态,即负剩磁状态。这样,当磁性材料被磁化后,会形成两个稳定的剩磁状态,可以利用这两个状态表示二进制代码0和1。例如,将正剩磁状态 +Br定义为1,负剩磁状态-Br定义为0,那么施加正向脉冲电流可以存储1,负向脉冲电流则存储0。磁性材料呈现剩磁状态的位置即可形成一个磁化元或存储元作为记录最小二进制信息单位。虽然掌握了磁性材料存储物理原理是基于磁滞回线上剩磁状态的,但是实际上记录的信息是通过不同的调制方式实现的。主要的磁记录方式包括不归零制、见“1”就翻不归零制、调相制、调频制、改进调频制等。这些记录方式实际上就是对二进制位串变换成磁层中磁化元状态的编码方式。在具体操作时,通过调制可得到电流的幅度、相位及频率。图3.2给出了各种记录方式的编码波形。图3.1磁滞回线图3.2各种记录方式的编码波形

(1)不归零制(NRZ0):在磁头线圈中始终有电流,或者为正向电流(表示1),或者为反向电流(表示0),这种方式具有较好的抗干扰能力。

(2)见“1”就翻不归零制(NRZ1):这种方式磁头线圈仍然始终有电流,在记录“0”时电流方向保持不变,而记录“1”时电流方向发生变化。

(3)调相制(PM):在这种方式下,一个位周期的中间位置,电流由负变化到正表示“1”,由正变化到负表示“0”,是通过电流相位变换进行写“1”和写“0”的,那么通过磁头中的电流方向一定会改变一次。这种方式记录“1”和“0”的信号相位不同,抗干扰能力较强,并且这种方式读出信号经分离电路可提取自同步定时脉冲,因此具有自同步能力。广泛使用于磁带存储器。

(4)调频制(FM):在这种方式,无论记录的代码为“1”或“0”,或者连续写“1”或写“0”,在相邻存储元交界处电流切换一次方向。当记录为“1”时,电流一定要在位周期中间改变方向,因此写“1”电流的频率是写“0”电流频率的2倍,也称为倍频记录法。FM的特点是记录密度高,具有自同步能力。FM可以使用在单密度磁盘存储器中。

(5)改进调频制(MFM):MFM与FM制的区别在于,只有连续记录两个或两个以上“0”时,在位周期的起始位置翻转一次,其余情况不翻转。这样可以提高记录密度,用于双密度磁盘存储器中。3.1.2磁盘的基本结构、读/写过程及信息记录方式

磁盘是在一个由非磁性材料制成的圆盘,并在上面涂了一层磁性材料的物体。该圆盘通常称为衬底,一般采用铝或铝合金材料构成。最新的衬底则采用玻璃制成,使其具有如下优点:

(1)改善了磁层表面的均匀性,提高了磁盘可靠性;

(2)显著减少了整个表面的缺陷,有助于读/写错误的减少;

(3)使得磁头距离更加接近磁盘面;

(4)更好的机械性能如刚度、耐冲击和耐损的方面。对磁盘表面进行数据的读/写是通过磁头实现的,而磁头则是一个导电线圈构成的机械装置。目前多数系统用两个磁头分别负责读操作和写操作。在读/写操作期间,磁头静止不动,磁盘则在磁头下方高速旋转。

写操作基于电流通过线圈时产生磁场的效应。脉冲电流送入写磁头,就在其下的磁盘表面上记录下一种磁化样式,正负电流产生不同的样式使得二进制信息被有效记录。写磁头本身就是由易磁化材料制成的矩形环,一边开有缝隙,相对的一边则绕有导线。线圈中的电流在缝隙间感应出磁场,该磁场在记录介质上磁化出一个小区域;不同的电流方向相应区域的磁化方向也不同。传统的读机制基于磁盘相对线圈运动时在线圈中产生电流的效应。当磁盘面在磁头下方时,会产生一个与数据记录电流极性相同的电流。这种方式的读磁头结构与写磁头一致,所以称为单一磁头结构,被使用在软盘或旧式硬盘系统中。

目前的硬盘系统中采用新的读机制,并使用新的单独磁头负责读操作。该读磁头在物理位置上与写磁头紧靠一起,由一部分被屏蔽的磁阻(MR)式敏感器组成。MR材料的电阻大小由在其下面运动的介质磁化方向确定。当电流通过MR敏感器时,电阻的变化作为电压信号经检测放大即可读出信息。MR方式可以进行更高频度的操作,使得存储密度和速

度得以提高。为了提高读取的效率,在磁阻式敏感器MR技术基础上,巨磁阻(GMR)方式读磁头的出现使得对高密度信息读取的分辨率进一步提升,因此记录面密度可以提升至

100Gb/si(位/平方英寸)。具体读过程可以简化为如下描述。

当磁头经过磁介质存储单元时,由于磁头内含有导磁材料铁芯,因此存储单元的磁力线很容易通过磁头而形成闭合磁通回路。不同极性的存储单元在铁芯的方向不同。当磁头对磁介质进行相对运动时,由于磁头铁芯中磁通的变化,使读出线圈中感应电动势E的方向随存储单元的信息不同而不同。接着,不同方向的感应电动势经读出放大器放大鉴别,就可以区分出存储的信息为“1”或“0”。磁层上的存储元磁化后,可以提供多次读出而信息保持的能力。当不需要相应信息时,可以通过磁头将磁层上所记录的信息擦除,即写入全“0”。从以上读/写过程可见,磁盘存储通过一系列的电磁变换实现数据的读/写。当进行写过程时,通过电—磁变换利用磁头写线圈中的脉冲电流,将单位二进制代码转换成磁介质的不同剩磁状态;当进行读过程中,通过磁—电变换,利用磁头读出线圈,将存储单元的不同剩磁状态表示的二进制代码转换成电信号输出。

在磁盘上记录数据的方式有两种:水平方式和垂直方式。水平方式是传统的记录方式,也就是在磁盘表面上,由外而内螺旋状地组织成固定大小数据区域。数据区域的组成方式一直都是水平的即平行散布在整面盘片上的。这种方法持续将数据区域微缩化,最后会造成“超顺磁现象”,这时每个被磁化的储存单位都会互相影响,甚至有时候会产生极性反转的现象。这种现象是无法回复的,将造成先前存放数据的消失。为了避免这种信息破坏情况的发生,水平方式的信息记录密度就很难提高,因而限制了存储容量。随着垂直磁性记录技术的出现,存储容量和密度都有了显著提高。顾名思义,这项技术就是把磁粒在盘片上垂直排列,大幅度提高了数据密度,据理论分析垂直记录方式面密度可达1Tb/si。这种方式使得总容量为1TB的3.5英寸硬盘以及20GB的1英寸微型硬盘(MicroDrives)成为可能。图3.3形象地说明了这两种记录方式的原理。图3.3水平和垂直记录方式3.1.3磁盘的数据组织和格式化

磁头是一种较小的装置,能从旋转的盘片上获取数据或向盘片写入数据。因此,磁盘表面的数据组织呈现出一组同心圆环。每个环则称为磁道,其中磁头和磁道同宽,每个磁盘表面上可以有上千个磁道。图3.4描述了磁盘的数据分布情况。在相邻的磁道间有一定的间隙(gap)可以防止磁头未对准或因其他干扰引起的错误。对于数据则是以扇区(sector)为单位进行输入/输出操作的。通常每个磁道有上百个扇区,扇区的长度可以固定也可以变化。目前,多数系统采用固定512字节大小的扇区,扇区间同样存在一定间隙。图3.4磁盘数据分布情况对于旋转的磁盘而言,越靠近中心位置其相对磁头的速率越慢。为了获得较为平稳的数据读出速率,可以通过改变各个磁道信息分布的方式解决,将靠外的磁道信息位间隔拉大使得在恒定角速度(ConstantAngularVelocity,CAV)旋转磁盘情况下磁头输出的信息速率一致。图3.5(a)给出了CAV的磁盘扇区分布,磁盘表面被分成一串同心圆磁道和多个扇区。在CAV情况下,可以通过磁道号和扇区号进行直接寻址数据块。在具体读/写时,首先将磁头从当前位置沿径向移动到目的磁道,然后等待指定的扇区旋转到磁头下实现数据的寻址过程。但是在CAV情况下,外圈的长磁道上存储信息容量和内圈短磁道上一样,造成了一定程度上的容量浪费。也就是说,信息存储的线性密度(单位长度上比特位数,位数/英寸)随磁道由外向内逐渐增加。磁盘总的容量受到了最内圈线性密度的直接限制。为了提高密度,当前的磁盘系统已经不采用CAV方式了,而是采用称为多带式记录(multiplezonerecording)技术实现数据存储。在这种方式下,磁盘表面被划分为多个带(如16带),每个带中的磁道的位数固定,远离中心的带要比靠近中心的带容纳更多的位,即具有更多的扇区。当磁头由一个带移动到另一个带时,存储位容量的改变将通过特殊的读写时序电路进行处理以适应不同的输出速率。图3.5(b)为多带式记录的一种磁盘布局。图3.5磁盘扇区布局3.1.4磁盘的物理特性

表3.1给出了各种磁盘的主要物理特性。首先,磁头在磁盘的径向上既可以是固定的也可以是移动的。在固定头磁盘(FixedHeadDisk)中,每一个磁道上有一个读/写磁头,所有磁头安装在跨越所有磁道的金属支架上。在可移动磁头磁盘(MovableHeadDisk)中,只有一个读/写磁头,磁头被固定在支架上,但支架能伸缩,以使磁头能定位在目的磁道上。表3.1磁盘主要物理特性磁盘本身安装在磁盘驱动器内,而驱动器由支架、带动盘片旋转的主轴和用于二进制数据输入/输出的电路组成。不可更换磁盘(NonremovableDisk)则永久安装在磁盘驱动器内,而可更换磁盘(RemovableDisk)可从磁盘驱动器内取出并换上其他磁盘。这样,在容量有限的磁盘系统中,可更换磁盘系统的容量容易扩充,并在不同系统中能够兼容操作,如软盘、ZIP盒式磁盘等。

对于每一个磁盘而言,大多数都是两面有可磁化的涂层,即双面(DoubleSided)磁盘;而一些低成本的磁盘系统则采用单面(SingleSided)磁盘。通常磁盘驱动器内都会垂直安装有多个盘片(MultiplePlatter),盘间相隔约1英寸,同时具有多个支架。多盘片磁盘每面都有一个可以移动的读/写磁头,所有这些磁头与圆心等距离固定在各个支架上移动。于是,任何时刻各磁头都位于等圆心距离的各面磁道上,那么具有相同圆心距离的一组磁道被称为一个柱面(Cylinder)。图3.6给出了磁盘的逻辑

结构。图3.6磁盘的逻辑结构对于磁盘系统分类,可以依据磁头机制将磁盘划分为三大类:第一类,读/写磁头固定在盘上固定的位置,允许有一个气隙;第二类,读/写磁头在工作时接触磁表面,通常用于容量小、使用灵活和价格便宜的软盘(FloppyDisk);第三类,就是常见的温彻斯特磁盘(Winchester),这种盘解决了磁盘数据密度与磁头气隙间存在的矛盾,即如果磁头越窄,离盘面越近则越能获得较大的数据密度;但是磁头离盘面越近(气隙越小),由磁盘介质不纯引起的错误率越高。温盘将磁盘磁头封装到一个几乎没有污染的密封装置中,其磁头较普通金属磁头更加贴近磁盘表面,所以数据密度更大。当磁盘不动时,以气垫的形式使磁头轻停于磁盘表面。由磁盘旋转产生的气压使气垫升高而将磁头与磁盘分离。这样使得温盘具有非接触更窄的磁头,并能以更接近磁面的方式进行读/写数据,获得更高的数据密度。因此目前多数磁盘系统都采用温盘的结构。图3.7是硬盘的物理结构图,图3.8为硬盘的实物照片。图3.7硬盘物理结构图3.8硬盘实物照片计算机磁盘系统的性能由多个方面决定,如中央处理器性能、操作系统性能、I/O通道特性和磁盘控制器硬件性能。而这里我们主要考察磁盘物理上读/写性能的内容。图3.9给出了磁盘读/写操作时序的逻辑模型。图3.9磁盘读/写时序的逻辑模型整个磁盘读/写时序包括等待设备、等待磁道、寻道、旋转延迟、数据传输等五个阶段。在系统无操作时,磁盘处于等待设备阶段。当磁盘驱动器操作时,磁盘主轴电机带动盘片以恒定的速度旋转。读/写操作时,磁头必须精确定位在所含数据的磁道和该磁道上目的扇区的起始处。磁道选择包括在移动磁头系统中移动磁头或在固定磁头系统中选择特定磁头。在可移动磁头系统中,磁头定位到该磁道所花费的时间称为寻道时间(seektime)。一旦磁道选定后,磁盘控制器将处于等待状态,直到相关的扇区旋转到磁头下可读/写的位置,这段等待时间称为旋转延迟(rotationaldelay)。寻道时间与旋转延迟之和称为存取时间(accesstime),即定位到真正读/写位置的时间。当磁头定位后,即可进行读/写操作,完成数据的传输过程,这段时间则称为传送时间(transfertime)。 3.2硬盘驱动器基本结构

3.2.1硬盘简介

硬盘驱动器接口的相关标准很早便已出台。自1975年开始,直径为14英寸和8英寸的硬盘采用SMD接口,即CDC公司的存储模块驱动技术(StorageModuleDrives,SMD)。直至20世纪80年代,SMD已经成为8英寸高性能驱动器的通用标准。最终版本SMD-E的速率可达24MHz,但是由于8英寸驱动器的电缆问题,最终SMD标准和8英寸驱动器于1990年以后逐渐退出市场。在SMD推出5年后,Seagate公司也推出了5MB的5.25英寸硬盘,由于其价格较低,可以应用于一些性能要求不高的场合。5.25英寸硬盘的驱动器采用称为ST506的新型接口,其传输速率可达625kB/s。但是随着计算机对传输速率要求的不断提高,自IDE和SCSI在1991年推出后,就逐渐不再应用ST506接口。与ST506接口同时期的还有Maxtor公司提出的ESDI(EnhancedSmallDeviceInterface)接口,ESDI使用与ST506一样的电缆,但速率可达2.4MB/s。ESDI具有新的特殊命令,如寻道命令。在此之后,IDE和SCSI接口的出现及其不断发展已经占据了硬盘接口的很大份额。对于IDE接口的描述,我们首先从硬盘驱动器模型开始。硬盘驱动器把信息存储在一套旋转的磁盘上。信息能被读/写任意次,并且具有掉电不易失性。普通意义上讲,硬盘驱动器是指用不可移动介质制成的驱动器。这里的硬盘含义是相对于软盘中使用的较为柔软的介质

而言的。3.2.2硬盘驱动器组织结构

硬盘驱动器的磁盘由一定的可写表面组成,每个磁盘上均有一系列被称为磁道的同心圆,数据就存储在这些磁道上。每一个磁道又进一步划分为扇区,扇区是硬盘的最小读/写单元。所有对硬盘数据的读/写访问都会将读写磁头定位到正确的磁道上,然后等待目的扇区转到读/写磁头下面后开始数据的交换。注意在读/写扇区时以位的方式串行进行。图3.6给出了硬盘驱动器的逻辑模型。从图可见,硬盘驱动器通常包括2~8个磁盘,每一个磁盘为双面可读/写。每一个盘面具有一个读/写磁头,在同一时间只有一个磁道可以进行读/写,磁头定位在磁道上,磁道上能由磁头访问的位置称为柱面。因此,驱动器的扇区可以由柱面、磁头和扇区号唯一寻址定位。

1.扇区格式

硬盘通常采用名为Index的信号标识磁道的起始位置。当磁头到达磁道的起始位置后,Index信号发出一个脉冲,以此表示磁道的第一个扇区开始。对于其他扇区的起始位置,则通过Sector信号发出相应的脉冲,如果Sector信号由硬件电路产生,那么这种驱动器称为硬分区的驱动器;如果扇区的开始由磁头从存储介质中获取,那么称为软分区的驱动器。由于计算机以字节进行数据交换,而扇区则是以位进行数据读/写,硬盘驱动器内部采用一个名为磁盘格式器的芯片负责数据的并串与串并转换。在读/写磁头和格式器之间则采用数据分割器用以在读/写数据时产生同步时钟。在进行对磁盘读/写的时候,还需要放大器将磁头的模拟信号放大处理以完成数据的转换与传输。扇区作为基本读/写单位,内部信息具有特定的格式,由不同区段组成扇区格式。首先,第一个区段用以同步数据分割器,第二个区段则是地址段,地址段包含柱面、磁头和扇区序号的信息以准确定位到读/写位置。在地址段以后是循环冗余校验码(CRC)字段,它用于检查读地址是否正确。以上三个区段合起来称为头标。接下来为数据段内容。在数据开始位置是同步段,然后才是实际数据。在数据段内,通常有纠错码字段(ECC)以在一定范围内纠正传输引起的误码。在扇区结束部分通常会有一部分间隔(gap)以缓冲磁盘旋转速度。每一个扇区上的数据字节的数量与其格式化容量相匹配。典型格式化扇区的大小有512B、1024B和4096B。图3.10给出了扇区的格式。图3.10扇区格式

2.格式化的基本概念

驱动器介质只有在已经被格式化之后,才能用于数据读/写存储。格式化不仅包括在扇区内写入头标,还包括写入数据段,任何一种数据形式通常采用ECC码保护。虽然软分区允许单个磁道格式化,硬分区允许对单个扇区格式化,但是一般整个驱动器仅格式化一次。需要注意的是,地址上连续的扇区在磁盘物理介质上很可能不连续,这样方便某些时候的读/写操作。

对数据的读是通过扇区的操作完成的,这一过程为磁头首先定位在正确的柱面上,然后对应盘面上磁头与分离器芯片工作寻找头标,直到适合的地址段出现,最后在此头标后的数据就是需要的数据读出。对数据的写相对较为复杂,在正确的位置(头标)找到之前,与读的过程一致。在此后,放大电路就从读状态切换到写状态。新的数据经过ECC编码后才可以写入。通常在头标和数据段之间保留一个写入切换位置,以缓冲打开写电路时间。

3.交叉区

较早的驱动器控制器中会保留一个规模很小的本地缓冲区,如仅一个扇区的大小。在这种情况下,控制器必须在读下一个扇区前将当前的数据传送给主机。如果不能及时完成数据传输,磁头会忽略扇区间的间隔,控制器就必须等待磁盘旋转一周才能重新读写目的扇区。这样的时间延迟约17ms。为了避免这样的延迟,在磁道格式中安排交叉区的方式保证有充足的时间进行下一个扇区的读/写操作。采用在两个扇区间插入交叉区后,地址上连续的扇区在物理位置上却是分离的。交叉区必然使得磁盘的数据密度降低,损失了存储容量。因此,当前的磁盘已经不再使用交叉区方式,而是采用更大的数据缓冲区以解决速度匹配的问题,这些缓冲区大小可以达到整个磁道的容量。

4.磁道与柱面偏移

当进行大量数据读/写时,为了获得更高的吞吐量,控制器或操作系统通常将数据安排在一个磁道上。如果数据占用了多个磁道空间,那么就安排在位于同一柱面的下一个磁头所在的磁道上,如此安排直到整个柱面写满。这样的优点就是切换磁头所需要的时间要远远小于磁道间的切换。当整个柱面都使用后,磁头才必须转到下一个磁道。但是切换磁头同样存在时延,从而导致错过一个扇区。尤其是在磁道的最后扇区读写后,磁头进行换道操作所引起的延迟可能会错过新磁道的第一个扇区。为了不等待多余的旋转,可采用将第一个扇区地址偏移一个或数个物理扇区的方法实现,通常称为磁道偏移(螺旋偏移)。当前技术水平已经可以做到0磁道偏移。图3.11给出了扇区安排的实例。图3.11交错因子和磁道偏移3.2.3硬盘驱动器主要技术指标

1.容量

硬盘驱动器的容量通常采用两种方式表示,未格式化容量和格式化容量。未格式化容量是指每个磁道位数目、柱面数目和磁头数目的乘积,以字节为单位表示。格式化容量则与采用的扇区格式相关,其值为扇区尺寸、每磁道扇区数目和磁头数目的乘积。通常格式化容量小于未格式化容量。

2.平均访问时间

平均访问时间包含两方面因素,即平均寻道时间和旋转等待时间。平均寻道时间是指磁头放到指定柱面上所需要的时间,而旋转等待时间则是目标扇区到达磁头的时间,一般可以认为旋转等待时间平均为旋转半圈的时间。可以通过磁盘的转速来确定相应的旋转等待时间。对于寻道时间具体完成的动作就是利用移动支架使磁头对准所要求的目的磁道的时间。寻道时间可以由两个主要部分组成:初始启动时间和支架加速到指定速度后还需跨越若干磁道所需时间。然而这两个参数都很难用磁道数进行简单线性建模,其中跨越时间还包括启动时间和磁头定位到目的磁道后至磁道标识被证实的沉淀时间。当然减少寻道时间的方法可以通过使用更小、更轻的盘实现,如较早前的盘直径为36cm,而目前的盘直径已经达到8.9cm,这样可以减少支架需要跨越的距离,使得平均寻道时间不超过10ms。而旋转延迟方面,根据硬盘的转速不同,应用从3600r/m(转/分钟)到15000r/m不等。对于15000r/m而言,旋转一周的时间是4ms,那么平均旋转延迟则是2ms。对于软盘系统,转速在300~600r/m之间,平均旋转延迟则是在50~100ms以内。

3.传输率和吞吐量

传输率指串行化的每位由磁头读/写到磁盘上的速度,是每个磁道上位的数量和磁盘每秒旋转圈数的乘积,用Mb/s或者MHz表示。

吞吐量表示驱动器在接口上可以传送的数据量,可以先用传输率除以8(得到每秒传送的字节数),然后除以读完一个磁道所需要的旋转次数并乘以0.9进行估计。吞吐量综合了读/写扇区和格式化的因素,相对来讲是比较合适的速度描述。以上是对整个硬盘吞吐量的经验表示,还可以通过下面的计算公式得到较为精确的磁盘吞吐率。假设一次从硬盘读取数据为L字节,硬盘驱动器转速为r转/秒,硬盘各磁道容量相同均为N字节,那么读取这些数据所需时间(秒)为

总的平均传送时间Ta(秒)由平均寻道时间Ts、旋转等待时间和上式给出的读取时间求和确定,即至此,可得吞吐量为L/Ta(字节/秒)。

为了加强对技术指标参数的认识,表3.2给出了五款典型硬盘驱动器系统的指标参数。表3.2典型硬盘驱动器系统的指标参数下面以一个硬盘接口实例来具体说明有关技术指标的计算。假设一硬盘组由8个磁盘构成,每个磁盘具有2个记录面,其中最上和最下面的盘面不记录数据。存储区域内径为22cm,外径为33cm,磁道密度为60道/cm,内层数据位密度为400位/cm,磁盘转速为3600r/m。计算:

(1)该磁盘的柱面数;

(2)存储总容量;

(3)数据传输率;

(4)当文件长度超过了一个磁道的容量,该如何存储。

解:(1)根据内径和外径指标,有效存储区域的长度为(33/2)-(22/2) = 5.5cm,而磁道密度为60道/cm,那么有效磁道数为5.5cm×60道/cm=330道,有效磁道数就是磁盘的柱面数,即330个柱面。

(2)根据内层直径22cm,可得内层磁道周长为22cm×3.14 = 69.08cm,而内层数据位密度为400位/cm,则内层存储容量为400位/cm×69.08cm = 27632位 = 3454B。因为磁盘每磁道数据容量相同,所以单面磁盘容量为330×3454B = 1139820B,可使用磁盘面为14,那么总容量就是14×1139820B = 15957480B = 15.22MB。

(3)数据传输率可以用转速 × 磁道数据求得,即3600转/分×3454B/转 = 11.86MB/分 = 202.38kB/s。

(4)为了快速进行数据读/写,文件应首先存储到同一个盘面的相同磁道上的不同扇区,如果单个磁道容量不够时,那么就应当在其他盘面的相同磁道上继续存储,即在同一柱面上记录,这样做可以避免磁头寻道的机械运动时间,加快读/写速度。如果所有磁盘上相同柱面都已经存储满时,那么就可以通过移动磁头到邻近的下一个柱面进行存储,直至所有的磁盘均已写满。这样对一个磁盘的地址编排就应该是如下格式:3.2.4硬盘接口整体模型

硬盘存储器可以看做一个较为复杂的机械电子系统,驱动器的机械装置包括介质、磁头、模拟电子设备、磁头定位电子设备组成,接着是数据分离器,用以将模拟信号数字化,而格式器用以并行操作数据(可以认为是串/并转换),控制器负责控制读/写操作,主机适配器则管理控制器与主机间的联系。具体框图可见图3.12。图3.12硬盘接口结构物理上,接口是负责连接驱动器设备与计算机间的电缆,而逻辑上,接口是符合一定规范的数据交互协议。根据其功能不同采用不同的符号进行区别表示。

ST506接口位于模拟数据电子设备与数据分离器间,由控制器决定数据写到驱动器上的方式。在ST506接口之后,ESDI接口则将数据分离器集成到驱动器内,而SCSI又把格式器和控制器集成到驱动器内。IDE接口则几乎完全将所有接口电路集成到自身的电路板上。IDE的做法使得与IBMPC兼容机方便连接,适应市场的需求。为了简单起见,我们这里仅对IDE接口进行重点描述,而ST506方面的细节请参看相应资料。 3.3硬盘驱动器IDE接口

3.3.1IDE接口概述

IDE(IntegratedDiskElectronics,集成磁盘电路设备)也可以称为AT总线接口,这是因为其驱动器的电子接口方面模拟了IBMAT计算机的硬盘控制器而来。因此为了避免和IBMAT总线混淆,IDE接口的正式名称为AT-Attachment(ATA)。ATA是由ANSI协会X3T9.2工作组完成制定和管理以及发布的。目前,IDE接口仍被广泛应用于PC的硬盘接口中。

IDE接口开始应用于1984年,在Compaq公司的努力推动下得到了较快发展。在Compaq和西部数据(WesternDigital)联合研发情况下,IDE控制器可以实现直接安装到硬盘驱动器上,在物理上采用40针的电缆与系统总线连接。1985年,CDC公司在其硬盘驱动器中实现了IDE接口,并直接安装到Compaq的计算机中,这就是第一个IDE磁盘驱动器。接着,1988年10月,ANSI协会X3T9.2工作组开始标准化工作,IDE因此有了新的名称ATA,标准化的规范就是X3.221-1994标准。1995年制定了ATA-2标准,该标准提出了更高的数据传输速率,并制定了一些新的命令。它使用一个40芯电缆与主板进行连接,最初的设计只能支持两个硬盘,最大容量也被限制在504MB之内。与此同时,ATAPI标准也完成了制定。ATAPI的最初目的是为了对设备进行操作而不是在硬盘中应用IDE接口。ATAPI使用IDE作为其物理接口,但命令采用SCSI形式。目前,CDROM驱动器中主要采用ATAPI接口。在ATA-2之后又出现了ATA-3。ATA-3标准并没有提高数据传输速率,而是增加了一些新的命令和程序。下面给出ATA标准发展的基本历程。

ATA接口从诞生至今,共推出了7个不同的版本,分别是:ATA-1(IDE)、ATA-2(EIDEEnhancedIDE/FastATA)、ATA-3(FastATA-2)、ATA-4(ATA33)、ATA-5(ATA66)、ATA-6(ATA100)、ATA-7(ATA133)。

1. ATA-1

ATA-1在主板上有一个插口,支持一个主设备和一个从设备,每个设备的最大容量为504MB,支持的PIO-0模式传输速率只有3.3MB/s。ATA-1支持PIO模式包括有PIO-0和PIO-1、PIO-2模式,另外还支持四种DMA模式(没有得到实际应用)。ATA-1接口的硬盘大小为5英寸,而不是现在主流的3.5英寸。

2. ATA-2

ATA-2是对ATA-1的扩展,习惯上也称为EIDE(EnhancedIDE)或FastATA。它在ATA的基础上增加了两种PIO和两种DMA模式(PIO-3),它不仅将硬盘的最高传输率提高到16.6MB/s,同时还引进LBA地址转换方式,突破了固有的504MB的限制,可以支持最高达8.1GB的硬盘。在支持ATA-2的电脑的BIOS设置中,一般可以见到LBA(LogicalBlockAddress)和CHS(CylinderHeadSector)的设置,同时在EIDE接口的主板一般有两个EIDE插口,它们也可以分别连接一个主设备和一个从设备,这样一块主板就可以支持四个EIDE设备,这两个EDIE接口一般称为IDE1和IDE2。

3. ATA-3

ATA-3在传输速率上并没有任何的提升,其最高速率仍为16.6MB/s。它只在电源管理方案方面进行了修改,引入了简单的密码保护的安全方案。但ATA-3引入了一个划时代的技术,即S.M.A.R.T(Self-MonitoringAnalysisandReportingTechnology,自监测、分析和报告技术)。这项技术会及时对包括磁头、盘片、电机、电路等硬盘部件进行监测,通过检测电路和主机上的监测软件对被监测对象进行检测,把其运行状况和历史记录同预设的安全值进行分析、比较,当记录数值超出了安全值的范围时,系统会自动向用户发出警告,进而对硬盘潜在故障做出有效预测,提高了数据存储的安全性。

4. ATA-4

从ATA-4接口标准开始,ATA接口正式支持UltraDMA数据传输模式,因此也习惯称ATA-4为UltraDMA33或ATA33。在ATA接口中首次采用了DoubleDataRate(双倍数据传输)技术,让接口在一个时钟周期内传输数据两次,时钟上升和下降期各有一次数据传输,这样数据传输率从16MB/s提升至33MB/s。UltraDMA33还引入了一个新技术,即冗余校验计术(CRC)。该技术的设计方针是系统与硬盘在进行传输的过程中,随数据发送循环的冗余校验码,对方在收取的时候也对该校验码进行检验,只有在完全核对正确的情况下才接收并处理得到的数据,这对于高速传输数据的安全性有着极有力的保障。

5. ATA-5

ATA-5就是“UltraDMA66”,也叫ATA66,是建立在UltraDMA33硬盘接口的基础上的,它同样采用了UDMA技术。UltraDMA66让主机接收/发送数据速率达到66.6MB/s,是U-DMA/33的两倍。保留了上代UltraDMA33的核心技术冗余校验计术(CRC)。在工作频率提成的同时,电磁干扰问题存在于ATA接口中,为保障数据传输的准确性,防止电磁干扰,UltraDMA66接口开始使用40针脚80芯的电缆,40针脚是为了兼容以往的ATA插槽,从而减小成本的增加。80芯中新增的都是地线,与原有的数据线一一对应,这种设计可以降低相邻信号线之间的电磁干扰。

6. ATA-6

ATA100接口和数据线与ATA66一样,也是使用40针80芯的数据传输电缆,并且ATA100接口完全向下兼容,支持ATA33、ATA66接口的设备完全可以继续在ATA100接口中使用。ATA100规范可以轻松应付目前ATA33和ATA66接口所棘手的难题。ATA100可以让硬盘的外部传输率达到100MB/s,它提高了硬盘数据的完整性与数据传输率,对桌面系统的磁盘子系统性能有较大的提升作用,而CRC技术更有效地提高了高速传输中数据的完整性和可靠性。

7. ATA-7

ATA-7是ATA接口的最后一个版本,也叫ATA133。迈拓公司是目前唯一一家推出ATA133接口标准硬盘的制造商,这也是第一种在接口速率上超过100MB/s的IDE硬盘。其他IDE硬盘厂商则停止了对IDE接口的开发,转而生产SerialATA接口标准的硬盘。ATA133接口支持133MB/s数据传输速率,在ATA接口发展到ATA100的时候,这种并行接口的电缆属性、连接器和信号协议都表现出了很大的技术瓶颈,而在技术上突破这些瓶颈则存在相当大的难度。新型的硬盘接口标准的产生也就在所难免。以上所讲都是传统的并行ATA传输方式,现在又出现了串行ATA(SerialATA,SATA),其最大数据传输速率更进一步提高到了150MB/s,将来还会提高到300MB/s,而且其接口非常小巧,排线也很细,这有利于机箱内部空气流动从而加强散热效果,也使机箱内部显得不太凌乱。与并行ATA相比,SATA还支持热插拔。3.3.2IDE适配器

图3.12给出了IDE设备的结构图。IDE接口并不是一个单纯的I/O总线,不能像I/O总线一样具有对各种不同的设备单元进行寻址访问的通用方式。IDE接口仅能在一两台硬盘驱动器中使用,并只允许一台主机对其进行访问。

IDE接口可以采用多种配置,这里主要说明其常用的两种配置。首先图3.13给出了标准配置,由一块接口板(IDE适配器)和一台具有ISA或EISA总线的主机组成。其中,两个磁盘驱动器直接和IDE适配器连接。这种配置情况下,由于受到ISA总线的约束,IDE接口仅能工作在不超过8.3MB/s的速度。图3.13包含ISA总线的IDE标准配置图3.14则表示了IDE接口的第二种配置。该配置通过IDE接口在一台采用了任何系统总线的计算机上为硬盘安装一块主机适配器。在该配置情况下,使用地址“0”的设备是主驱动器,使用地址“1”的设备是从驱动器。在一般情况下,这两个驱动器相互独立,其主从关系仅在特定时刻体现,比如系统启动、复位。但是因为这两个驱动器均有独立的控制器,所以当信号同时到达控制器时,需要依靠各自驱动器的寄存器中寻址位的数值来决定具体选中的驱动器。图3.14不包含ISA总线的IDE标准配置3.3.3IDE物理接口

1.电气接口

1)信号电缆和连接器

IDE接口使用40针的带状电缆,通常电缆长度不超过46cm(18英寸)。电缆连接器通常安装在带状电缆的两端用来连接主机和硬盘驱动器。表3.3中给出了ATA-2标准的信号电气规范。在ATA-2中大部分信号都采用TTL电平,少数信号如DASP、PDIAG、IOCS16、SPSYNC及PSEL没有采用TTL电平。在2.5英寸硬盘驱动器中,采用44针的电缆完成信号及供电电压的所有连接。在硬盘驱动器的末端采用一个50管脚的Dupont连接器。多出的6个管脚中的两个用于完成编码,其余则用来为驱动器的编号进行跳线。

由于ATA-2标准与PCMCIA接口具有相同的68针连接,故ATA-2信号排列和PCMCIA几乎一致。表3.3IDE电缆参数

2)电源电压

在磁盘驱动器中所采用的电源电压符合ATA标准。采用4个管脚的AMP连接器。表3.4给出具体数值。表3.4IDE驱动器管脚电压

2.信号安排

在ATA标准中,可以采用信号的名字或者缩写表示,具体信号列表见表3.5。带有 # 表示信号为低电平有效。数据流的方向是相对于磁盘驱动器而言的,IN表示进入磁盘驱动器,OUT表示从磁盘驱动器中出来,I/O表示双向传输。表3.5IDE管脚信号定义续表以下是对表中信号的解释:

(1) CS0#:该信号用于选通命令寄存器组。当地址在1F0h~1FFh内某端口访问时,将由IDE总线适配器从ISA总线中寻址产生该信号。在ATA-1标准中,该信号称为CS1FX#。

(2) CS1#:该信号用于选通控制寄存器组。当地址在3F0h~3FFh内某端口访问时,将由IDE总线适配器从ISA总线中寻址产生该信号。在ATA-1标准中,该信号称为CS3FX#。

由于采用这两个信号,IDE磁盘驱动器必须使用适配器来与使用ISA总线的接口进行连接。当然,也可以在IDE电缆中加入ISA总线地址线,但是将超出40针电缆容量。

(3) DA0~DA2:分别选通命令和控制寄存器组中的一个寄存器。这些信号可由ISA总线直接产生获得。

(4) DASP#:该信号可完成两个独立的功能。当启动系统或进行复位后,1号磁盘驱动器会立即插入该信号表示其自身存在。当系统正常工作时,该信号表明选通的磁盘驱动器正在工作,同时也会表示磁盘驱动器的工作状态。

(5) DD0~DD15:用于向寄存器组和磁盘驱动器传输数据,可以直接从ISA总线的数据线中获得。

(6) DIOR#、DIOW#:这两个信号是对磁盘驱动器的寄存器进行读/写时的问答握手信号,可以认为是读/写使能信号。

(7) DMARQ和DMACK#:这两个信号是在主机和磁盘驱动器之间传输数据时的一对握手信号。如果不采用DMA方式工作,则这两个信号不起作用。

(8) INTRQ:主机产生的中端触发信号。

(9)  IOCS16#:该信号用于表示主机将要进行16位数据的传输;否则,将要进行8位数据的传输,使用DD0~DD7数据线。该信号仅适用于寄存器到数据寄存器的访问,不适用于访问其他的寄存器及DMA传输模式。

(10) IORDY:可选信号。如果不使用该信号,则应置为高阻状态;如果使用该信号,表明此时控制器不能访问寄存器,即没有准备就绪。主机将延迟其访问周期。

(11) PDIAG:该信号是启动协议的一部分。当从驱动器完成自检过程后,可以通过该信号通知主驱动器。

(12) RESET#:该信号来自主机,用于对主从驱动器进行复位。

(13) SPSYNC和CSEL:仅一根信号线。其功能可选,但不能同时使用。其中,SPSYNC由厂家确定,用于决定正在通信的两个磁盘驱动器是否因为同步而等同。但是,在该信号产生时,主驱动器是信息的提供方,从驱动器则是接收方。CSEL信号允许磁盘驱动器改变自己的编号。如果把该信号接到磁盘驱动器的接口上,那么该磁盘驱动器就是主磁盘驱动器,并且编号为“0”;否则为从磁盘驱动器,并且编号为“1”。

3.时序特点

采用IDE接口数据传输可以有两种方式:可编程的I/O(PIO)方式和DMA方式。下面是有关时序的一些基本说明:ATA标准为PIO和DMA定义了多种操作模式。模式0为最慢的正常模式。表3.6说明了各种操作模式的循环周期和所能到达的数据传输速率。表3.6各种操作模式的循环时间和数据传输速率

4. PIO数据传输

对控制寄存器进行获取必须通过PIO模式。这包括读取状态、显示错误信息、参数设定和写入命令等操作。PIO模式在每一次访问操作时必须分别进行编程。图3.15给出了简化的PIO访问时序图。图3.15PIO数据传输时序

PIO进行数据传输,首先主机必须把传输需要的地址信号发送到地址线上,包括CS1FX、CS3FX和DA0~DA2等信号,然后等待70ns。对于读操作将会产生DIOR#信号,而对于写操作将会产生DIOW#信号。同时,产生IOCS16#信号决定传输8位还是16位数据。对于写操作而言,主机会把要写入的数据发送到数据总线上;对于读操作,控制器将会把需要的数据发送到数据线上。在数据传输过程中,在DIOR#或DIOW#信号取消之前,数据必须保持有效。接着根据数据传输的方向,由主机或控制器把数据线上的数据记录下来。最后,地址、数据和IOCS16#信号去除,完成一次循环周期。整个周期在正常情况下将持续600ns,而速度比较快的传输方式仅需要240ns。

5.单字DMA

图3.16给出了一个简化的单字DMA时序图。图3.16单字DMA时序

6.多数据DMA

在多数据DMA情况下,CPU仅需要一个传输请求信号就可以完成对一个数据序列的DMA传输控制。图3.17描述了使用多数据DMA传输的时序图。多数据DMA传输的触发与单字DMA传输几乎一致,直到第一个数据传输结束数据线空闲为止。与单数据DMA不同,多数据DMA传输不释放DMARQ信号,而且相应的DMACK信号也会保持高电平。主机释放DIOR信号约200ns后,该信号再次产生,开始新的数据传输周期。在最后一个数据传输过程中,当产生DIOR信号的时候,主机才会把DMARQ信号去除。最后一个数据传输完成标志整个数据传输结束。图3.17多数据DMA时序3.3.4IDE协议

1. IDE控制器中寄存器模型

IDE控制器是以内部寄存器的形式出现在主机系统中的。由IDE接口负责主机和控制器间的数据传输。对于主机系统而言,IDE控制器就如同早期的IBMAT计算机中的ST506控制器,但是增加了一些附加功能。从主机角度看,IDE控制器提供两个I/O寄存器组。这些寄存器处于ISA总线中的I/O位置,而不是内存寻址空间。虽然PC兼容机将I/O的寻址空间限定在0~3FFh,但是它却可以使用0~FFFFh的寻址空间。其中,命令寄存器组用于给磁盘驱动器发送命令并进行数据交换;控制寄存器组用于控制磁盘驱动器。命令寄存器组也称为AT任务文件(TaskFile)。这两个寄存器组通过CS0#和CS1#信号进行区别。CS0#来自于ISA总线系统,当属于1F0~1FFh的寻址范围内,该信号激活并发挥作用。相类似的是,当属于3F0~3FFh的寻址范围内,CS1#信号激活并起作用。通常,可以通过跳线交换用以产生两个信号的寻址范围。

在某些情况下,为了节省I/O地址空间,常常使用相同的地址来标识不同的寄存器,如在读操作时,访问一个寄存器,而写操作时,访问另一个寄存器,但是地址没有发生变化。表3.7列出了相应寄存器的情况。表3.7IDE命令与控制寄存器下面将对主要寄存器进行描述。

1)数据寄存器(1F0h,读/写)

数据寄存器用于在主机和磁盘驱动器的缓冲区间进行8位或16位的数据交换。IOCS16信号表明进行16位的数据传输。使用该寄存器进行数据传输的方式称为PIO方式,在传输过程中,计算机必须分别负责每一个数据的检索或重现。当然,除PIO方式以外,数据传输还可以通过DMA的方式进行。

2)错误寄存器(1F1h,读)

在启动系统、复位系统或执行了EXECUTEDRIVEDIAGNOSTICS命令后,错误寄存器将产生一个诊断码。如果在状态寄存器中设置了ERR位,那么在错误寄存器中将会保存最后执行命令的诊断码。表3.8列出了该寄存器中内容的含义。表3.8IDE错误寄存器

(1) BBK:不良块诊断,如果所访问的扇区磁头上出现了错误标记,该位为“1”。

(2) UNC:无法修正的数据错误,如果在所访问的扇区的数据区内出现错误,该数据位为“1”。这种错误不能由ECC纠错码修改,此次传输无效。

(3) MC:介质改变,自最后一次存储访问结束后,存储介质将会被另一个替换。通过该信号向主机发送一个激励信号通知主机可以采用适当的措施来使用新的传输介质。

(4) IDNF:未发现ID,控制器不能发现所访问扇区的地址区。可能该扇区的地址区已被损坏,也可能所访问的扇区根本不存在。

(5) MCR:介质改变请求,该信号用于向主机发送表示存储介质的改变请求,然后,主机应该立即采取相应动作(如完成未解决的I/O请求),接着执行MEDIAEJECT或DOORUNLOCK命令。

(6) ABRT:取消命令执行,由于命令非法或磁盘驱动器错误而造成的命令执行的中断。

(7) TK0NF:没有发现0磁道,在执行RECALIBRATE命令的过程中没有发现0磁道。

(8) AMNF:没有发现地址标记,无法找到目的扇区的数据。

3)特性寄存器(1F1h,写)

在使用特性寄存器的过程中不会影响磁盘驱动器,通常是通过SETFEATURES命令来设置接口的特性。而对于一个IBMAT计算机中ST506控制器,该寄存器中保存的是写前补偿开始的柱面号除以4之后的数值。

4)扇区计数寄存器(1F2h,读/写)

在这个寄存器中保存了所读/写的扇区数目,用0表示256个扇区。如果在传输过程中产生了错误,该寄存器中将会保存尚未传输的扇区数目。

5)介质地址寄存器

介质地址寄存器是指一组用于保存被访问区段地址信息的寄存器,包括扇区号寄存器、柱面号寄存器和驱动器寄存器。下面逐一介绍。

(1)扇区号寄存器(1F3h,读/写)。在该寄存器中保存了将要访问的第一个扇区的编号。对于LBA(逻辑块地址),包含的是逻辑块第一个字节编号。

(2)柱面号寄存器(柱面低位寄存器,1F4h,柱面高位寄存器,1F5h,读/写)。在该对寄存器中保存了柱面号的信息。根据ATA标准,最多可以访问柱面数为65 536。早期的IDE寄存器中仅使用“0”和“1”来表示柱面号的高位字节,从而使可寻址柱面数为1024。对于LBA,该寄存器用字节1和字节2来保存逻辑区号。

(3)驱动器/磁头寄存器(1F6h,读/写)。表3.9给出了该寄存器的格式,该寄存器保存了驱动器编号、磁头号和寻址方式。表3.9IDE驱动器/磁头寄存器①HS0~HS3:磁头号。在LBA中,表示逻辑地址第3字节的低4位,高4位通常为0。

②DEV:设备号。设备0表示主设备。在ATA-1标准中,该位使用的符号是DRV(驱动器),与DEV的含义相同。

③L:LBA方式,当该数据位为“1”时,表示正在使用LBA寻址方式,否则使用柱面/磁头/扇区(CHS)寻址方式。

6)状态寄存器(1F7h,读)

在状态寄存器中保存了执行最后一个命令时磁盘驱动器的状态。当对该寄存器进行读操作时,将会清除尚未响应的中断请求信号。为了避免这种情况,可以读取3F6h状态寄存器的内容。表3.10为其具体格式。表3.10IDE状态寄存器

(1) BSY:忙信号。当该位为“1”时,状态寄存器中其他位都将无意义。当控制器访问命令寄存器组时,BSY通常为“1”。在访问命令寄存器组的过程中,主机不能访问其他任何寄存器。

(2) DRDY:驱动器准备好。该信号表示驱动器已经准备好接收命令。当驱动器被使用时,该信号保持“0”直到驱动器重新恢复空闲,并准备接收新命令。

(3) DF:驱动器错误。该信号表明驱动器产生了一个错误,具体可见标准协议。

(4) DSC:驱动器寻址完毕。该信号表明磁头已经被设置在所要访问的柱面上。

(5) DRQ:数据请求。当驱动器和主机进行一次数据交换前,该数据位为“1”。

(6) CORR:可修改错误数据。当一个可以修改的读错误发生时,该数据位为“1”,不影响数据的传输。

(7) IDX:索引位。当索引标记通过读/写头,并且存储介质发生改变时,该数据位为“1”。

(8) ERR:错误位。表明在执行上一个命令的过程中产生了错误,可在错误寄存器中查看具体情况。

7)命令寄存器(1F7h,写)

在这个寄存器中接收并保存了发送到控制器的命令。命令发送到命令寄存器中,该命令就开始执行。

8)交换状态寄存器(3F6h,读)

在这个寄存器中保存的数据与状态寄存器中的相同。但是,从该寄存器中读取数据的操作不会影响到未响应的中断请求。这样可以在任何时候读取该寄存器的内容而不必担心产生影响。

9)设备控制寄存器(3F6h,写)

在这个寄存器中只有两个数据位,定义见表3.11。表3.11IDE控制寄存器

(1) SRST:软件复位。当该数据位为“1”时,相应的磁盘驱动器就会处于复位状态;当该数据位为“0”时,相应的磁盘驱动器就会执行启动过程。

(2) IEN#:中断允许。该数据位是低电平有效,“0”表示允许中断,“1”表示禁止中断。

10)驱动器地址寄存器(3F7h,读)

ATA-2标准中没有定义该寄存器。ATA-1标准中,该寄存器中保存了当前命令执行的适时更新信息,但是不能保证其中高速缓冲和映像的驱动器磁头号信息的正确性。该寄存器中信号均为低电平有效,其定义见表3.12。表3.12IDE地址寄存器

(1) WTG#:写入控制。如果该数据为被清零,表示在选择的驱动器上将进行写操作。

(2) HS3#~HS0#:磁头选择3~0,表明插入的所选择驱动器当前的磁头号。

(3) DS1#:当该数据位清零时,表示从驱动器是所选择的当前驱动器。

(4) DS0#:当该数据位清零时,表示主驱动器是所选择的当前驱动器。

2.命令的执行

IDE命令共分为5类协议,下面逐一进行说明。

1) PI协议(第一类):PIO方式读命令

PI协议包括对扇区及缓冲区的读/写等命令。PI协议命令(PIOIn)执行过程为:首先,主机把执行命令过程中所需要的所有参数发送到地址寄存器和特性寄存器中,然后把操作码发送到命令寄存器中以开始操作。图3.18给出了PI协议命令时序。图3.18PI协议命令时序从图中可见,驱动器首先设置状态寄存器中的BSY信号,并把传输的数据发送到扇区缓冲区中。扇区缓冲区准备完毕之后,驱动器设置DRQ数据请求信号,清除BSY信号并插入INTRQ中断请求信号。

然后,主机读取状态寄存器,同时驱动器清除INTRQ中断请求信号。DRQ数据请求信号通知主机可以从扇区缓冲区中读取512字节数据。当缓冲区的数据读取后,驱动器立即设置DRQ数据请求信号以产生下一个数据请求。当所有请求扇区的数据均读取后,命令执行结束;否则,驱动器会再次设置BSY信号,准备下一个扇区的数据传输。如果读操作过程中产生了错误,驱动器则会在读取访问扇区的缓冲区同时设置状态寄存器中相应的错误位。由主机决定在产生错误的情况下如何处理。

2) PO协议(第二类):PIO方式写命令

PO命令执行写操作的过程为:首先向扇区缓冲区中发送512字节的数据,根据图3.19的时序过程进行对扇区的写操作。图3.19PO协议命令时序从图中可见,首先主机向命令寄存器组中相应寄存器发送命令执行参数,接着等待DRDY位设置(设备准备好),并把操作码写入到命令寄存器中。与此同时,驱动器在状态寄存器中设置DRQ数据请求信号和接收数据的请求信号。主机利用数据寄存器将数据传送到扇区缓冲区。当扇区缓冲区已满,磁盘驱动器设置BSY信号并清除DRQ数据请求信号。

当数据缓冲区的数据已经处理完(例如已经写入介质),驱动器立即清除BSY信号并设置INTRQ中断请求信号。这些信号利用状态寄存器通知主机。当主机接收了这些信号,驱动器将重置INTRQ中断请求信号。如果仅仅写一个扇区,那么写命令也就完成。如果写多个扇区,那么驱动器就会重新设置DRQ数据请求信号,开始对下一个扇区的操作。

如果有非法操作时,驱动器在执行命令后不会设置DRQ数据请求信号,但是会设置INTRQ中断请求信号,作为状态的读取准备。主机可以通过查看状态寄存器的错误位,对数据错误进行处理。

3) ND协议(第三类):没有数据传输命令

ND命令在执行过程中不会使用扇区缓冲区,但仍可以通过该命令利用寄存器在驱动器和主机间进行信息交换。

首先,主机把必要的参数发送到控制寄存器中,并且把操作码发送到命令寄存器中。然后,主机将状态参数发送到状态寄存器中,并重置BSY信号和INTRQ信号。接着,主机读取状态寄存器中的状态信号,驱动器清除INTRQ中断请求信号,命令执行完毕。

4) DM协议(第四类):使用DMA数据传输命令

DM协议有两种命令:一种为读命令,另一种为写命令。虽然在DMA处理时,处理器要进行很多工作,但是在数据传输过程中,处理器可以不再介入数据传输控制。并且,在多扇区数据传输过程中,只有整个过程结束后才有一个中断产生,并不是每个扇区结束都产生中断。图3.20给出了DM协议命令时序。图3.20DM协议命令时序在命令阶段,主机先初始化一个DMA通道,然后把参数和操作码发送到控制寄存器中,接着设置BSY信号,开始命令执行。

在数据阶段,DMA通道通过DMARQ请求信号和握手过程完成数据传输。在数据状态下,控制寄存器中的内容无意义,驱动器触发中断,主机接收后将重置相应的DMA通道,并读取状态信息及错误寄存器。

5)VS协议(第五类):厂商确定的协议

除了上述四类协议命令外,还有一些命令在执行上与厂商有关。因此需要在明确了厂商后,才能确定其具体执行过程。

3.上电启动或软件复位

对于IDE驱动器,上电启动和软件复位后的操作步骤完全一致,在启动过程中由于磁盘驱动器数量不同会有所差异。下面我们对启动过程进行简单说明,具体时序见图3.21。图3.21启动时序

1)单驱动器系统的复位

在系统已经上电并且系统电压稳定情况下,主机激活RESET#信号至少需要25μs的时间,在RESET#有效之后最多400ns,主驱动器会设置状态寄存器中的BSY信号。然后在1ms之内,驱动器DASP# 信号求反并执行自检。这时,主驱动器监测DASP信号450ms,确定从驱动器是否存在。如果从驱动器不存在,主驱动器可以使用DASP# 信号对驱动器进行初始化。当主驱动器完成自检并为接收命令做好准备时,BSY信号会被重置。

2)主从驱动器系统复位

在RESET# 信号无效的1ms内,主机首先会对DASP#信号求反。主驱动器在RESET#信号之后检测DASP#信号以判断从驱动器是否存在,而从驱动器会对PDIAG#信号求反,表明自身存在并开始自检。3.3.5IDE磁盘驱动器模型

1.介质结构

IDE驱动器的介质是通过磁头(表面)、柱面和扇区组织在一起的。例如,IDE驱动器可以拥有16个磁头、1024个柱面和256个扇区。在ATA标准中,允许拥有多达65536个柱面。一个扇区正常情况下包含512个字节的数据。对于磁盘容量,既可以采用二进制方式表示,即1KB = 1024B,1MB = 1024KB,1GB = 1024MB,也可以采用十进制方式表示,即1MB = 1000KB,1GB = 1000MB。

2.寻址访问

对扇区的寻址访问则通常有两种方式,物理寻址(CHS方式)和逻辑寻址(LBA方式)。

1)物理寻址(CHS方式,Cylinder-Head-Sector)

CHS方式下,可以使用柱面、磁头和扇区号对扇区进行寻址访问。IDE来自于ST506,而ST506的每个磁道包括17个512字节容量的扇区,那么对于超过17个扇区的IDE驱动器则需要采用本机方式或转换方式进行处理。对于本机方式,驱动器在几何结构上同物理介质上一样存在于主机上。在转换方式下,驱动器从几何结构上映射在一个逻辑驱动器上,从逻辑上仍然具有17个扇区,但是却有更多的逻辑磁头。IDE驱动器采用线性映射方式进行寻址,扇区从柱面0、磁头0、扇区0开始连续编址。在当前磁道后就是同一柱面的磁头1,直至整个柱面,然后就是下一个柱面0磁头。在CHS物理寻址模式中,磁盘最大可以拥有65536个柱面、16个磁头和256个扇区。如果一个扇区有512个字节,那么磁盘总容量就为127GB。

2)逻辑寻址方式(LBA方式,Logic-Block-Address)

LBA方式下,驱动器是以连续序列的逻辑块编号寻址的区段组成的,这样主机就不需要知道驱动器的物理几何结构。在LBA方式中,可以使用28个数据位表示逻辑区块的地址信息,可访问228个区段。在ATA标准中,从物理结构到逻辑块编号的映射按照下面的公式进行:

LBA = (柱面编号 × 磁头数 + 磁头编号) × 扇区数 + 扇区编号-1

这种映射方式假设从LBAn到LBAn+1的访问时间要比从LBAn到LBAn+2要快。这就是说,逻辑扇区在访问时间上也是按顺序排列的。

3.存储区位记录方法

存储区位记录方法可以同时在整个介质表面上使用单个柱面扇区数不同的驱动器。这种方式导致在不使用特殊磁头和介质的情况下使存储容量增大50%。通常磁头类型确定了每毫米的存储密度,为了方便,我们可以认为存储密度代表磁盘上的一个位。在通用记录方式中,由最里面的磁道决定每个磁道的最大存储密度,即每磁道的容量相同,但是因为磁道从中心到边缘不断增加,那么可以通过调节存储密度来增加外部磁道的记录密度,从而利用记录存储区位的方法增加容量。为了增加外部磁道的容量,我们可以将磁介质分为多个区段,在每个区段内,每磁道的扇区数是固定的。在每个区段上,最内部的磁道拥有最小的扇区编号,最外部的磁道拥有最大的扇区编号。通过这种方式可以增加磁盘的总

容量。

4.容量限制

根据上面的计算,IDE接口的处理容量为127GB,但实际上PC机中早期的MS-DOS系统会对存储容量施加种种限制,如528MB容量限制、8GB容量限制等。早期的PCBIOS内磁盘拥有1024个柱面、16个磁头和63个扇区,每扇区512字节,那么总容量限制就是528MB。为了解决1024柱面问题,可以使用适配器映射存储地址空间,使主机正好看到1024个柱面,但每个柱面却有更多的访问扇区。而8GB容量限制则是由于磁盘INT13h中断和基于文件分配表机制的操作系统的分区表引起的。INT13h和分区表可以控制访问1024个柱面、256个磁头和63个扇区,共7.7GB(如果采用十进制则是8.4GB)的容量。但是这种限制仅仅存在于DOS、Windows3.x和Windows95等系统中。在UNIX、OS/2和WindowsNT等系统中使用的是不同的存储结构,因而没有8GB的限制。

5.故障管理系统

对磁盘进行读/写操作的过程中可能会出现错误,对此,IDE接口和ATA标准规范并没有明确错误处理流程,但可以采用两种常用的方式处理。

第一种方式就是在磁盘格式化过程中,系统会对有缺陷的扇区作出标记,那么在读取扇区的时候,就能够辨识出错误扇区和磁道,并采取相应的措施进行处理。第二种处理方式就是重新分配错误扇区,但该方法仅仅对于转换的物理寻址方式或逻辑寻址方式有效。在磁盘上存在一个特殊的区域作为重置扇区准备。当一个扇区被认为有错时,将会采取特殊的方法进行格式化处理。在错误的扇区中写入了重置扇区的多个备份,这样在任何情况下仍可以读取数据,主机可以较容易地随时得到每个自由存储空间的磁盘信息。为了综合考虑速度因素,会在每个磁道上均设置一个扇区专门进行错误管理。图3.22给出了其中一种实现方式。另外一种节省访问重新分配扇区时间的方式在每一个磁道都为管理错误信息保留一个扇区。当检测到错误扇区后,就为该扇区作上错误标记,然后所有后面的扇区依次移动一个扇区。这种方式可以得到几乎连续的扇区数据分布,从而避免了一个旋转周期的损失。当在一个磁道上发现了不止一个错误扇区时,可以对整个磁道进行重新分配。图3.22扇区重新分配策略

6.扇区缓冲器

在所有读/写操作中都会使用扇区缓冲器对数据进行临时保存。扇区缓冲器减少了与主机进行数据交换及从介质中进行数据读/写的速度。简单的方式下,扇区缓冲器就是IDE控制器上RAM中的一个区段。如果扇区缓

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论