打印

硬盘PIO最快速度?

[复制链接]
4036|3
手机看帖
扫描二维码
随时随地手机跟帖
沙发
xwj| | 2008-8-25 17:29 | 只看该作者

既然用了FPGA,自己做个DMA也不是什么难事,为什么发要用PIO方

使用特权

评论回复
板凳
xwj| | 2008-8-25 17:35 | 只看该作者

常见硬盘接口及标准术语【转】

二、常见硬盘接口及标准术语



  为了全面了解如此众多的硬盘接口技术,我们有必要对其主要关键术语进行详细介绍,特别是与前两种常见的硬盘接口标准有关的。在这些关键术语是:IDE、ATA、Ultra ATA、Ultra DMA、SCSI、Ultra SCSI。下面根据这些关键术语对以上两种主要的硬盘接口类型进行具体介绍。
1. IDE



  IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。对用户而言,硬盘安装起来也更为方便。



  在这里要先要明白一点的就是,这里所说的IDE,既是宏观意义上的硬盘接口类型,也是微观意义上的硬盘接口标准。之所以说它是宏观意义上的一种硬盘接口类型,是因为时至今日这一接口技术仍在不断地发展,并且仍是PC机中硬盘接口中的绝对主流,原因当然是其性能也在得到不断发展,其性能也相当不错,此类接口的硬盘价格也相对其它接口的要便宜许多。后面要介绍的各类ATA、Ultra ATA、DMA、Ultra DMA硬盘都属于IDE接口类型。说它是微观意义上的硬盘接口标准,是指如果细分,它仅代表第一代的IDE标准,因为随后其接口技术得到了飞速成发展,引入了许多新技术,使这一IDE接口标准得到了质的飞跃,通常不再以IDE标称,而是以诸如ATA、Ultra ATA、DMA、Ultra DMA等标注。
2. ATA



  ATA的英文全称为“Advanced Technology Attachment”,中文名称“高级技术附加装置”。ATA接口标准最初是在1986年由CDC、康柏和西部数据3家公司共同开发的。第一代的ATA标准称之为“ATA-1”。ATA-1只支持PIO-0和PIO-1、PIO-2模式,其数据传输速度只有可怜的3.3MB/S,使用40芯电缆,硬盘大小也为5英寸(而不是现在普遍的3.5英寸),容量为40MB(根据其技术标准,其硬盘容量限制在504MB之内)。ATA接口是从80年代末期开始逐渐取代了其它老式接口,随着它自身的发展,“ATA”也就成了“IDE”的代名词。目前最新的ATA 133标准中硬盘数据传输速率可达到133.7MB/s。 



在ATA接口标准的整个发展过程中,到目前为止可以划分为7个不同的版本,也就是从ATA-1(IDE)、ATA-2(EIDE  Enhanced IDE/Fast ATA)、ATA-3(FastATA-2)、…,一直到现在ATA-7(ATA 133)。第一代的ATA标准,即ATA-1,也就是前面介绍过的IDE标准,在此就不再另外介绍了。



(1). ATA-2:也就是我们常说的EIDE(Enhanced IDE)或Fast ATA,它在ATA的基础上增加了2种PIO和2种DMA模式(PIO-3),不仅将硬盘的最高传输率提高到16.6MB/S,还同时引进LBA地址转换方式,突破了固有的504MB的限制,可以支持最高达8.4GB的硬盘。在支持ATA-2的电脑的BIOS设置中,一般可以见到LBA(Logical Block Address),和CHS(Cylinder,Head,Sector)的设置,同时在EIDE接口的主板一般有两个EIDE插口,它们也可以分别连接一个主设备和一个从设备,这样一块主板就可以支持四个EIDE设备,这两个EDIE接口一般称为IDE1和IDE2。



(2). ATA-3:ATA-3并没有提高IDE接口的工作速度,最高传输速度仍为16.6MB/S(支持PIO-3),但引入了密码保护机制,对电源管理方案进行了修改,引入了S.M.A.R.T(Self-Monitoring Analysis and Reporting Technology,硬盘自监测、自分析和报告技术),这是一个划时代的重大改进。这一技术也在许多主板的BIOS中有所体现。



(3). ATA-4:这就是现在市面上仍比较常见的Ultra  ATA/33,自这一版本开始,硬盘开始支持DMA(Direct Memory Access,直接内存存取)技术,所以又称之为“Ultra DMA/33”。DMA是I/O设备与主存储器之间由硬件组成的直接数据通道,用于高速I/O设备与主存储器之间的成组数据传送。硬盘控制器采用总线主控方式进行数据传输,它将PIO下的最大数据传输率提高了一倍,达到33MB/S,称之为PIO-4。微软的Windows98系统正式支持这一接口技术,不过有一些太老的主板可能不支持这一接口,所以并不一定安装了Windows 98以后的系统都支持DMA技术。注意,Windows95则不支持这一技术。



(4). ATA-5:这一版本就是市面上标注为“Ultra ATA/66”的硬盘。因为同样采用了DMA技术,所以通常在市面上又可看到名为“Ultra DMA66”的标注,其实都是一个意思。Ultra ATA/66不仅将接口通道的数据交换速度提高了一倍,同时也继承了上一代Ultra ATA/33的核心技术-冗余校验技术(CRC),该技术的设计方针是系统与硬盘在进行传输的过程中,随数据发送循环的冗余校验码,对方在收取的时候也对该校难码进行检验,只有在完全核对正确的情况下才接收并处理得到的数据,这对于高速传输数据的安全性有着极有力的保障。除此之外,ULTRA DMA66还有一个核心的技术就是将普通的40芯排线改成80芯排线(自这以后的所有并行ATA标准都采用这一芯线标准),但该线仍然使用40针的接口,但传输线却增加了一倍。 



不过要注意,Windows98并不支持Ultra ATA/66这一新技术,所以当你在使用这种新型硬盘时,除使用DMA66专用数据线连接硬盘与主板外,还必须正确安装主板驱动程序,才能够识别出你的Ultra ATA/66硬盘,否则只能当作Ultra ATA/33硬盘来用,有点大材小用了。



(5). ATA-6:这就是市面上标注为Ultra ATA/100的硬盘接口标准,也是目前较新的一种硬盘接口标准。这一新标准主要是提高了硬盘数据的传输速率,从原来ATA-5标准中的66MB/S提高到新的100MB/S。



(6). ATA-7:这就是ATA系列中的最新版本Ultra ATA/133了,它的传输速率达到了133MMB/S。但目前这一最新标准只有ATA 133标准的提出者迈拓公司(Maxtor)一家支持,并没有得到广大厂商的支持,因为有一种新的硬盘接口标准——Serial ATA。它一改ATA标准长达十几年以来的并行数据传输方式,采用串行方式。主要原因是并行接口的电缆属性、连接器和信号协议都已经到达一个顶点,在技术和设计上都有许多问题。随着工作频率的提高,原来在低频率下的ATA接口标准越来越受到交叉干扰、地线增多、信号混乱等因素的制约,特别是在新的Ultra  ATA/133标准中。而新的Serial ATA标准不仅可以全面解决以上问题,而且其数据传输速率有相当大的发展空间,目前其最低的Serial ATA 1.0标准中数据传输速率就可达到150MB/S,高于ATA 133标准中的133MMB/S。据规划其后续版本数据传输速率可按150MB/S的倍数递增,这样就为彻底解决硬盘接口这一最终瓶颈打下了坚实的理论基础。



综合所有ATA标准的接口类型(其实就是IDE接口类型)硬盘可以看出它具有以下主要特点:  



ATA接口具有:价格低廉、兼容性非常好、性价比高等优点。但同时ATA接口也具有:数据传输速度慢、只能内置使用、对接口电缆的长度有很严格的限制等缺点。



3. DMA



  人们在谈论硬盘时经常讲到PIO模式和DMA模式,这两种模式就是目前硬盘与主机进行数据交换的方式。PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式;而DMA则是不经过CPU而直接从内存了存取数据的数据交换模式。



  PIO的英文全称为“Programming Input/Output Model”,即“程序输入/输出”模式。这种模式使用PC I/O端口指令来传送所有的命令、状态和数据。由于驱动器中有多个缓冲区,对硬盘的读写一般采用I/O串操作指令,这种指令只需一次取指令就可以重复多次地完成I/O操作,因此,达到高的数据传输率是可能的。



  DMA的英文全称为“Direct Memory Access”,即“内存直接存取”模式。它表示数据不经过CPU,而直接在硬盘和内存之间传送。在多任务操作系统内,如OS/2、Linux、Windows NT等,当磁盘传输数据时,CPU可腾出时间来做其它事情,使服务器的数据性能大大提高。而在DOS/Windows3.X环境里,CPU不得不等待数据传输完毕,所以在这种情况下,DMA方式的意义并不大。
  DMA方式有两种类型:第三方DMA(third-party DMA)和第一方DMA(first-party DMA)(或称总线主控DMA,Busmastering DMA)。第三方DMA通过系统主板上的DMA控制器的仲裁来获得总线和传输数据。而第一方DMA,则完全由接口卡上的逻辑电路来完成,当然这样就增加了总线主控接口的复杂性和成本。现在,所有较新的芯片组均支持总线主控DMA。与快取内存结合在一起,不但增加数据的存取及传输性能,更因减少对磁盘的存取而增加磁盘的寿命。



4. SCSI



  SCSI的英文全称为“Small Computer System Interface”(小型计算机系统接口)。它是一种与IDE(ATA)完全不同的接口,它不是专门为硬盘设计的,而是一种总线型的系统接口。每个SCSI总线上可以连接包括SCSI控制卡在内的8个SCSI设备。SCSI的优势在于它支持多种设备,独立的总线使得它对CPU的占用率很低,传输速率比ATA接口快得多,但同时价格也很高,所以也决定了其普及程度远不如IDE,只能在高档的电脑设备中出现。



最早的SCSI是于1979年由美国的Shugart公司(Seagate希捷公司的前身)制订的,原是为小型机的研制出的一种接口技术,但随着电脑技术的发展,现在它被完全移植到了普通微机上。与PC机常用的IDE接口技术一样,SCSI接口技术也得到了不断发展。



在90年代初,推出了SCSI-2标准,类似于SCSI-1,但是可以支持同时连接7个装置,传输速率也达到了 10-20MB/s。



1995年推出了SCSI-3标准版本,俗称“Ultra SCSI”,它采用8位的通道宽度,传输速率为20MB/s,其允许接口电缆的最大长度为1.5米。



1997年推出了Ultra2 SCSI(Fast-40)标准版本,其数据通道宽度仍为8位,但其采用了LVD(Low Voltage Differential,低电平微分)传输模式,传输速率为40MB/s,允许接口电缆的最长为12米,大大增加了设备的灵活性,支持同时挂接15个装置。随后其推出了WIDE ULTRA 2 SCSI接口标准,它采用16位数据通道带宽,最高传输速率可达80MB/S,允许接口电缆的最长为12米,同样支持同时挂接15个装置,大大增加了设备的灵活性。



  1998年,更高数据传输率的Ultra 160/m SCSI(Wide下的Fast-80)规格正式公布,其最高数据传输率为160MB/s,昆腾推出的Atlas10K和Atlas四代等产品支持Ultra3 SCSI的Ultra160/m传输模式。



  目前最新的Ultra320 SCSI版本标准也已推出,这一SCSI接口标准支持最高数据传输达到了320MB/s。



  目前SCSI接口标准广泛应用于如:硬盘、光驱、ZIP、MO、扫描仪、磁带机、JAZ、打印机、光盘刻录机等设备上,同时由于较其他标准接口的传输速率快,所以在一些高端电脑、工作站,特别是服务器上常用来作为硬盘及其他储存装置的接口。



  SCSI接口技术与其它技术一样,也是向前兼容得,也就是说新的SCSI接口可以兼容老接口,而且如果一个SCSI系统中的两种SCSI设备不是位于同一规格,那么SCSI系统将取较低级规格作为工作标准。例如你有的SCSI控制卡是Ultra160/m SCSI(160MB/s)卡,而硬盘只支持Wide Ultra2 SCSI(80MB/s),那么你的SCSI系统将工作于Wide Ultra2 SCSI。同样如果你的控制卡是Wide Ultra2 SCSI卡,而硬盘却支持Ultra160 SCSI,那么SCSI系统也只能工作于Wide Ultra2 SCSI。所以在选购SCSI系统时应该注意这个问题,SCSI控制卡和SCSI硬盘要选择支持相同规格标准的。



  SCSI接口具有:配置扩展灵活(在一块SCSI控制卡上就可以同时挂接15个设备)、高性能(具有很多任务、宽带宽及少CPU占用率等特点)、应用广泛(具有外置和内置两种)等优点。其缺点主要体现为:价格昂贵、安装复杂。



5. Srial ATA



  Srial ATA,即串行ATA,是英特尔公司在2000年IDF(Intel Developer Forum,英特尔开发者论坛)上发布的将于下一代外设产品中采用的接口类型。从其名称上就可知,它一改以往ATA标准的并行数据传输方式,而是以连续串行的方式传送资料。这样在同一时间点内只会有1位数据传输,此做法能减小接口的针脚数目,用四个针就完成了所有的工作(第1针发出、2针接收、3针供电、4针地线),相比ATA接口标准的80芯数据线来说,其数据线显得更加趋于标准化。如图3所示的就是一根Srial ATA数据线。主板上的Srial ATA数据线接口如图4所示。 






图3,4



从图3和图4中可以看出,Serial ATA接口数据线相比原来并行ATA的80芯数据来说具有许多优势。首先,它的“L”型接头是单向性的,可以有效地防止插反,当然也就不可能插错了;其次,Serial ATA采用类似USB连接头一样的无针连接器,盲插(Blind-mate)式的连接方式更易咬接到位,安装起来非常简易;第三,Serial ATA使用特殊的针错列设计,连接头的7根接触针中有两种不同的长度:最长的三根为接地线,较短的两对为数据传输线,这样在连接的时候,首先接触的是三根地线、其次才是两对数据线,这种“预先接地”处理可以妥善解决热插拔时致命的放电现象,从而使得Serial ATA能够实现硬盘热插拔。



Srial ATA接口的硬盘同样需要另外的电源,但Serial ATA硬盘新增加了3.3V电压输入,加上原有的12V和5V,每种电压需要正极、负极及接地线三条线路,这样就有9条;而要实现设备热插拔还需要额外的6条线、这样总和起来就有15条之多。显然,现有的主板和电源都要作适应性改动才能支持,不能直接采用传统的电源接口,通常需要采用Srial ATA电源转达接线来与传统电源线转换,如图5所示的就是一条电源转接线。不要看它实际只有普通的4条线,通过这条转接线Srial ATA插子中的电路转换后可以满足以上15路输出。 






图5



另由于其针脚数目大减少,也就全面解决了在ATA标准中存在的数据串扰问题。同时由于数据芯线减少,就更能降低电力消耗,减小发热量,这样也有利于数据的正常准确传输、增加系统的稳定性。

  其次,Serial ATA的起点更高、发展潜力更大,Serial ATA 1.0定义的数据传输率可达150MB/s,这比目前最新的并行ATA(即ATA/133)所能达到133MB/s的最高数据传输率还高,而在Serial ATA 2.0的数据传输率将达到300MB/s,预计在2007内推出Serial ATA 3.0标准,到那时将实现600MB/s的最高数据传输率。最后,Serial ATA的拓展性更强,由于Serial ATA采用点对点的传输协议,所以不存在主从问题,这样每个驱动器不仅能独享带宽,而且使拓展SATA设备更加便利。

  不过,由于诸多因素,虽然Serial ATA标准的推出离现在已有好几年时间,但至今仍不能得到广泛的应用。对于大多数用户最担心的兼容性问题,在各方的努力下,当前已得到比较完整的解决方案,如今的Serial ATA接口已经可以完全兼容现有的并行ATA设备。从软件角度看,由于Serial ATA采用流行的分层式设计,因此在硬件接口层上与现有的各种操作系统都能无缝兼容,目前的各种驱动程序和操作系统代码都无需作任何修改;而从硬件角度考虑,Serial ATA也只要利用一个简单的串/并转换器,就能够实现串/并行ATA设备的随意连接。比如说允许并行ATA的主板可以同Serial ATA硬盘相连,即在旧有主板上升级使用新硬盘;也允许Serial ATA主板与并行ATA硬盘连接使用,有效保护用户投资;更有甚者,你也可以让并行ATA主板与并行ATA硬盘都以串行的方式连接起来运作,只是这样做已经没有什么意义了。还有一点,只有纯粹的Serial ATA系统才能够实现150MB/s的高性能,若采用转接方式、本质上还是ATA 100或ATA 133,Serial ATA总线的威力也难以得到充分发挥。

  目前像Intel的最新i865和i875p等P4芯片组已纷纷提供了对Srial ATA接口标准的支持,可以看出,Srial ATA的发展前景越来越明朗化。但是微软表示现有的Windows 2000/XP系统都无法支持Serial ATA所定义的热插功能,只有在即将推出的Windows 2003系统中,该特性才能够得以完全实现。



我们知道,随着PC技术日新月异的发展,磁盘性能越来越成为整个系统的瓶颈,相对于CPU和DDR内存来说,传统的Parallel ATA硬盘已经在很大程度上限制了整机性能的充分发挥。随着采用串行Serial ATA技术的新一代硬盘的上市,这种情况得到了改善。



    与传统的并行硬盘相比,Serial ATA硬盘在传输速度上有了质的变化,而且具有许多让人心动的优点。目前随着各主要硬盘厂家Serial ATA硬盘的推出,Serial ATA已经不再是空中楼阁,我们在市场上已可以见到许多Serial ATA硬盘,硬盘市场的串行时代已经开始,今年的硬盘年度称号似乎该是“SATA年”。



    尽管PATA曾经造就了存储设备接口的辉煌,但是其自身的局限还是把它自己逼上了“绝路”。



    a) 首先是码间干扰,在传统的PATA接口上,PATA排线不可避免地总是被折叠或者弯曲,这都使得各个线路的特性趋于不一致,如果再考虑到PATA 排线所连接的PATA设备的多样性,负载设备带来的阻抗变化会十分复杂,目前还没有有效的方法来解决这个码间的干扰问题,以致通讯频率无法继续提高,速度受到限制。
 
    b) 其次是串音干扰,与信号偏移一样,这种干扰也是并行通讯固有的严重问题。各信号线之间通过电磁耦合进行干扰,并且信号频率越高,干扰愈加严重,直至无法工作,同时串音干扰也大大限制了线路的长度。



    c) 再次是直流偏置。我们知道数字信号总是带有直流分量的,在并行通讯中通常各线路上的信号没有经过编码处理,所以“0”、“1”信号数量不平衡。这样的信号序列中的存在不可预测的直流分量,使得信号发送器与接收器产生直流耦合,最终带来电压偏置。同时,由于线路两端设备的供电状况并不完全相同,所以信号发送器和接收器的参考电压也存在微小差异。这两个因素叠加起来,会在一定程度上降低信号采样时的错误容限,使得误码率升高。而在并行通讯中,采用编码处理直流偏移极其困难,因为各个信号线路上的数据都是相关的。要协调所有线路上的“0”/“1”信号数量,其算法的复杂程度和对计算电路的要求大大超过了现在能够提供的IO处理水平。即使能够实现,过高的成本也使它变得没有意义。



    由于线路复杂程度的差异,串行通讯在双工处理和设备拓扑扩展方面也有很大的障碍。



SATA解决之道 



    看起来所有在PATA发展中遇到的重大问题,SATA已经提供了解决之道,并且解决的很是彻底。



    1. 在SATA技术中,由于采用了点对点的拓扑结构,所以不存在这种多接口/设备带来的码间干扰。同时,由于连接设备类型单一,在线路中对干扰和信号衰减进行补偿也变得更容易和更有效,从而传输质量得以进一步提高。因为SATA信号携带时钟信息,接收器是根据串行信号本身来确定采样时间,而不是时钟控制线,也就不存在偏移的概念。因此在SATA技术中线路的工作频率可以提升至非常高的水平。这就是为何SATA采用串行通讯模式,传输速度却比并行的PATA还要高的原因之一。



    2. 对比而言,SATA不仅没有多余的线路相互干扰,而且本身就采用了差分模式,可以最大程度减少其他外界因素带来的串音干扰。这个优势不仅使得SATA可以达到更高的传输频率(目前SATA的传输频率是1.5GHz,这已经是微波传输了),也使得线路连接长度可以大幅增加。SATA最大连接长度1M对于任何内部设备来说都绰绰有余。



    3. 在串行通讯中,解决直流偏移的原理很简单:通过编码使得“0”、“1”信号数量相等,这样就消除了信号序列中的直流分量。没有直流分量,发送器和接收器就只进行交流耦合,也就不必再考虑两端参考电压差异所带来的影响,从而提高错误容限。在SATA中,采用了8b/10b编码,也就是将8bit(1Byte)的数据通过底层硬件处理转换为10bit,算法上可以保证10bit数据中“0”/“1”信号的数量相等,然后再由发送器发出。我们根据8bit/10bit(多出了2个bit的校验码)编码可以得出SATA的传输效率是80%,因此1.5Gb/s×80%÷8bit=150MB/s,这就是SATA最大理论传输速度的来源。


使用特权

评论回复
地板
avr32| | 2008-8-26 00:33 | 只看该作者

re

up to 2M/s

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

171

主题

559

帖子

0

粉丝