IDE架构剖析与发展趋势
Enhanced IDE接口历史(一)
1. AT ATTACHMENT (ATA):ATA接口是个人电脑上最具有实力的存储接口,ATA接口早先被广泛应用于IBM及其兼容机,它被定义为标准的硬盘接口。
2. ATA-1:ATA硬盘接口的第一代标准ANSI X3.279-1994,也就是早期的IDE接口。
3. ATA-2:ATA硬盘接口的第二代标准ANSI X3.279-1995,就是大家所知道的Fast ATA或者称之为Enhanced IDE(EIDE)接口。
4. Apple-ATA:Apple上使用的ATA接口,当然也是由标准的ATA接口演化而来的,在ANSI的国际标准提案申请为X3T9.2/90-143.Revision 3.1,这一个由标准ATA接口规格演化而来Apple-ATA支持IDE接口的硬盘LBA驱动模式,但是没有支持ATATP。
5. ATA-3:ATA硬盘接口的第三代标准ANSI X3T13/2008D Revision 7(draft),同样包含在Fast ATA或Enhanced IDE的接口之中,一般使用者大多都知道Fast ATA或是Enhanced IDE接口,而对原来Fast ATA或Enhanced IDE接口居然还包括了ATA-2以及ATA-3两组国际标准。
6. ATAPI:AT Attachment Packet Interface,这是ATA Protocol的延伸,被定义用来支持CD-ROM光驱以及Tape磁带机,这一个ATAPI Protocol容许硬盘以外的设备使用ATA数据线。
7. ATA/ATAPI-4:ATA硬盘接口的第四代标准ANSI X3T13/D96153(draft),也就是大家所知道的Ultra ATA或是Ultra DMA,这一个版本支持33MB/sec的数据传输率(in burst mode),相信各位读者对ATA-4/Ultra DMA都是比较熟悉的了。
8. ATA/ATAPI-5:这是目前ATA硬盘接口的比较新的一代标准,这一规格里规定的数据流传输速率(in burst mode)为66MB/sec,并且加强了内部资料的检查与错误修正的算法,强化了资料的完整性和可靠性。
9. ATA/ATAPI-6:还有更新的一个标准,是ATA/ATAPI-5的改进,这一规格里规定的数据流传输速率(in burst mode)为100MB/sec。
表一:
PIO驱动模式的资料传输速率
PIO Mode Cycle time Transfer Rate
PIO Mode 0 600ns 3.3Mbytes/sec
PIO Mode 1 383ns 5.2Mbytes/sec
PIO Mode 2 240ns 8.3Mbytes/sec
PIO Mode 3 180ns 11.1Mbytes/sec
PIO Mode 4 120ns 16.6Mbytes/sec
Enhanced IDE接口发展至今,ULTRA DIRECT MEMORY ACCESS(ULTRA-DMA)的是目前最新的目前大家最为熟悉的就是Ultra-DMA的资料传输率最高可以达到ATA-3标准的四倍,也就是66.6Mbytes/sec。
实际上硬盘接口的鼻祖,除了SCSI界面以外,就是MFM/ST-506 Bus接口了,后来经过不断的演变才演进成为今天的Enhanced IDE接口,而在Enhanced IDE之前的IDE/AT-BUS接口,则仅仅提供了PIO驱动模式,而没有DMA驱动模式,这两种驱动模式简单来讲区别主要是在数据传输时是否需要CPU来控制。在PIO模式下,任何一个硬盘的读取动作,都必须经过CPU来控制管理,所以只要硬盘读写动作频繁的时候,CPU的资源就被大量的消耗,今儿降低了电脑整体的效率。而在DMA模式下,硬盘和内存之间的数据可以直接交换,这样就不会占用CPU的资源,提高了电脑的整体效率。读者千万不要忽略掉从PIO到DMA的进步,事实上个人电脑内的任何一个动作都必须运用系统的内存,毕竟CPU内部的缓存器容量太小了,所以凡是程序的读取、运算都必须在内存上 *** 作,这样从硬盘到内存的数据交换就会非常频繁,所以简化这么一步对于电脑整体性能的提高还是非常突出的。
以前硬盘采用PIO模式的时候,只要一开始大量的硬盘读写 *** 作,就会使得电脑的性能急剧下降,让人感觉电脑总在等待什么似的,实际上SCSI接口一开始也是采用PIO模式,后来也演变成了DMA模式,IDE/AT-BUS接口也不例外,到了PIO Mode 4驱动模式之后,IDE/AT-BUS接口已经成功的演化成为Enhanced IDE接口,驱动模式也由PIO Mode 4升级为Multi-word DMA Mode2,原本预计还有一个PIO Mode 5会问世的,但是DMA Mode已经出现,PIO Mode已经没有市场了。
所以读者可以认为Enhanced IDE接口的特点主要在于:驱动模式的改变,增加了对非硬盘存储设备的支持等,而且原本是一组的IDE界面现在也增加到了两组。
DMA的全名为Direct Memory Access直接内存存取,采用DMA驱动模式以后,CPU不再象往常那样需要花费相当多的时间在硬盘的O/I *** 作上,DMA的意义就是在于让硬盘和内存直接沟通,所有的硬盘 *** 作都不需要占用太多的CPU时间。
接着让我们来看看DMA Mode的相关资料。(见表二)
表二:
DMA驱动模式资料传输速率
DMA Mode I/O Cycle time Transfer Rate
Single-word DMA Mode 0 900ns 2.1 Mbytes/sec
Single-word DMA Mode 1 480ns 4.2 Mbytes/sec
Single-word DMA Mode 2 240ns 8.4 Mbytes/sec
Multi-word DMA Mode 0 480ns 4.2 Mbytes/sec
进入设备管理器-IDE ATA/ATAPI控制器-主要IDE通道,双击,进入属性设置里有个高级设置-传送模式,修改为“DMA(若可用)”即可。再一个,确保你用了80 针的数据线,否则无效,不能修改。WINDOWS系统自动变为PIO模式,可执行恢复回DMA模式。方法一:在“设备管理器”中卸载PIO模式的IDE通道,重启电脑,系统会重新安装刚刚卸载的IDE通道,安装完后其传送模式就恢复到DMA模式了。方法二:修改注册表。运行regedit打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318},删除0001子键的MasterIdDataChecksum或者SlaveIdDataChecksum一项,重启系统即可。在WindowsXP系统中,访问存储器的默认数据传送方式就是DMA,但有时候会发现突然变成了PIO模式。这是因为Windows IDE/ATAPI端口驱动程序Atapi.sys累积发生了6次超时或循环冗余检验 (CRC) 错误后,会自动把IDE通道的传送模式降为速度更慢的模式,即从高级别的DMA模式降为低级别的DMA模式,直到最终降为最慢的PIO模式。PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式。是最早先的硬盘数据传输模式,数据传输速率低下,CPU占有率也很高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其它的 *** 作。PIO数据传输模式又分为PIO mode 0、PIO mode 1、PIO mode 2、PIO mode 3、PIO mode 4几种模式,数据传输速率从3.3MB/s到16.6MB/s不等。受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰。DMA模式是一种不经过CPU而直接从内存存取数据的数据交换模式。CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。pio与dma的区别主要表现在对CPU的干扰程度不同。pio传送方式的优先级高于程序中断,程序中断请求不但使CPU停下来,而且要CPU执行中断服务程序为中断请求服务,这个请求包括了对断点和现场的处理以及CPU与外设的传送,所以CPU付出了很多的代价。DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU的干预,DMA只是借用了一点CPU的时间而已。此外,CPU对两者请求的响应时间不同。对pio程序中断请求一般都在执行完一条指令的时钟周期末尾响应,而对DMA的请求,由于考虑它的高效性,CPU在每条指令执行的各个阶段之中都可以让给DMA使用,是立即响应。DMA主要由硬件来实现,此时高速外设和内存之间进行数据交换不通过CPU的控制,而是利用系统总线。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)