什么是DMA模式?

硬盘上的DMA模式是什么意思?
请大家详细一点

DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。

参考资料:http://baike.baidu.com/view/196502.htm
回答者:玉铉 - 同进士出身 七级 11-22 17:21
修改答复: 玉铉,您要修改的答复如下: 积分规则 关闭
DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。
回答字数10000字以内

参考资料:
如果您的回答是从其他地方引用,请表明出处。

  现在的硬盘一般都是支持DMA(Direct Memory Access:直接内存存取)模式的。
  有一种说法,说是在Windows 2000/XP/2003中有这样一个设定: Windows IDE/ATAPI 端口驱动程序(ATAPI.SYS)累积收到总共6个超时或循环冗余检验(CRC)错误后,驱动程序将把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。如果驱动程序继续收到超时或CRC错误,则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。
  一般来说一个正常的硬盘很少会有超时或循环冗余检验(CRC)错误,但是当我们使用这些系统里的挂起并恢复计算机后就很容易造成超时或循环冗余检验(CRC)错误。因为系统设定的超时值为4秒,当系统向ATA磁盘发出读取请求时如果硬盘回应时间超过4秒的超时值时才会产生超时或循环冗余检验(CRC)错误,但因为系统在挂起时硬盘是在停转状态中,恢复计算机时硬盘有个从停止到运动的过程,这就很容易造成大部分硬盘回应时间超过4秒的超时值。也就是说当我们使用计算机挂起6次后系统就会把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。如果挂起6次以上则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。
  尚未得到验证。可以通过以下方法验证:
  1. 双击“管理工具”,然后双击“计算机管理”;
  2. 单击“系统工具”,然后单击“设备管理器”;
  3. 展开“IDE ATA/ATAPI 控制器”节点;
  4. 双击您的“主要IDE控制器”;
  5. 点击“高级设置”。
  看到“设备0”,下面的传输模式应设为“DMA(若可用)”,再下面“当前传输模式”,如果是“Ultra DMA Mode *(*为数字,DMA33为2,DMA66为4,DMA100为5、DMA133为6)”,那么你的系统正常,但如果以前你自己设的是“Ultra DMA Mode 6”又没有改动,而现在是“Ultra DMA Mode 4”或“Ultra DMA Mode 2”更或者是“PIO 模式”而且改不过来!可能就是系统自行关闭了DMA模式了。
回答者:JoshuaShaw - 经理 五级 11-22 17:22
IDE接口硬盘的模式,经历过三个不同的技术变化,由PIO(Programmed I/O)模式,DMA(Direct Memory Access)模式,直至现今的Ultra DMA模式(简称UDMA)。

PIO(Programmed I/O)模式的最大弊端是耗用极大量的中央处理器资源,在以前还未有DMA模式光驱的时候,光驱都是以PIO模式运行。大家可能还记得,当时用光驱播放VCD光盘,再配以软件解压,就算使用Pentium 166,其流畅度也不理想,这就是处理器被长期大量占用的缘故。以PIO模式运行的IDE接口,数据传输率达3.3MB/秒(PIO mode 0)至16.6MB/秒(PIO mode 4)不等。

后来随着Fast ATA/DMA模式的出现,IDE接口及装置都开始有了DMA的支持,DMA模式分为Single-Word DMA及Multi-Word DMA两种,跟PIO模式的最大区别是:DMA模式并不用过分依赖CPU的指令而运行,可达到节省处理器运行资源的效果。不过,后来由于Ultra DMA模式的出现和快速普及,这两个模式也只会是昙花一现,不久即被UDMA所取代。Single-Word DMA模式的最高传输率达8.33MB/秒,Multi-Word DMA(Double Word)则可达16.66MB/秒。

由于Ultra DMA模式(Ultra ATA制式下所引用的一个标准)的普及,UDMA模式就全以16-bit Multi-Word DMA模式作为基准。UDMA其中一个优点是它除已拥有DMA模式的优点外,更应用了CRC(Cyclic Redundancy Check)技术,加强了资料在传送过程中侦错及除错方面的效能。在最初UATA/33规格制定时,为了保留IDE系统的最高兼容性,所以在硬件的设计上并没做出太大的修改,不仅能完全向下兼容旧式ATA装置,也无需硬件生产商改变接头及讯号联接的设计。自Ultra ATA标准推行以来,其接口便应用了DDR(Double Data Rate)技术将传输的速度提升了一倍,目前已发展到Ultra ATA/100了,其传输速度高达100MB/秒。

*英文名称:DMA(Direct Memory Access)

中文翻译:存储器直接访问

DMA是指硬盘、光驱等外部设备直接读写存储器的高速的数据传输操作。与普通I/O操作相比,DMA既不通过CPU,也不需要CPU干预。

DMA数据传输操作在一个称为“DMA控制器”的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。

在多任务操作系统内(如OS/2、Linux、 Windows NT等),都已经完美应用了DMA特性。而在DOS/Windows3.X环境里,CPU需要等到数据传输完毕才能进行处理,在这种情况下DMA的作用不明显。

[编辑]DMA的类型
DMA方式有两种类型:第三方DMA(third-party DMA)和第一方DMA(first-party DMA)(或称总线主控DMA,Busmastering DMA)。

第三方DMA通过系统主板上的DMA控制器的仲裁来获得总线和传输数据。而第一方DMA,则完全由接口卡上的逻辑电路来完成,当然这样就增加了总线主控接口的复杂性和成本。现在,所有较新的芯片组均支持总线主控DMA。与快取内存(Cache)结合在一起,不但增加数据的存取及传输性能,还能减少磁盘存取而增加磁盘寿命。

[编辑]使用指导
在WinXP等操作系统中,当硬盘设为DMA操作方式时会大幅度提高硬盘性能。参见windows xp系统启动加速。

参考资料:http://baike.baidu.com/view/196502.htm

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-22
现在的硬盘一般都是支持DMA(Direct Memory Access:直接内存存取)模式的。
有一种说法,说是在Windows 2000/XP/2003中有这样一个设定: Windows IDE/ATAPI 端口驱动程序(ATAPI.SYS)累积收到总共6个超时或循环冗余检验(CRC)错误后,驱动程序将把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。如果驱动程序继续收到超时或CRC错误,则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。
一般来说一个正常的硬盘很少会有超时或循环冗余检验(CRC)错误,但是当我们使用这些系统里的挂起并恢复计算机后就很容易造成超时或循环冗余检验(CRC)错误。因为系统设定的超时值为4秒,当系统向ATA磁盘发出读取请求时如果硬盘回应时间超过4秒的超时值时才会产生超时或循环冗余检验(CRC)错误,但因为系统在挂起时硬盘是在停转状态中,恢复计算机时硬盘有个从停止到运动的过程,这就很容易造成大部分硬盘回应时间超过4秒的超时值。也就是说当我们使用计算机挂起6次后系统就会把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。如果挂起6次以上则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。
尚未得到验证。可以通过以下方法验证:
1. 双击“管理工具”,然后双击“计算机管理”;
2. 单击“系统工具”,然后单击“设备管理器”;
3. 展开“IDE ATA/ATAPI 控制器”节点;
4. 双击您的“主要IDE控制器”;
5. 点击“高级设置”。
看到“设备0”,下面的传输模式应设为“DMA(若可用)”,再下面“当前传输模式”,如果是“Ultra DMA Mode *(*为数字,DMA33为2,DMA66为4,DMA100为5、DMA133为6)”,那么你的系统正常,但如果以前你自己设的是“Ultra DMA Mode 6”又没有改动,而现在是“Ultra DMA Mode 4”或“Ultra DMA Mode 2”更或者是“PIO 模式”而且改不过来!可能就是系统自行关闭了DMA模式了。
第2个回答  2007-11-22
DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。
  现在的硬盘一般都是支持DMA(Direct Memory Access:直接内存存取)模式的。
  有一种说法,说是在Windows 2000/XP/2003中有这样一个设定: Windows IDE/ATAPI 端口驱动程序(ATAPI.SYS)累积收到总共6个超时或循环冗余检验(CRC)错误后,驱动程序将把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。如果驱动程序继续收到超时或CRC错误,则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。
  一般来说一个正常的硬盘很少会有超时或循环冗余检验(CRC)错误,但是当我们使用这些系统里的挂起并恢复计算机后就很容易造成超时或循环冗余检验(CRC)错误。因为系统设定的超时值为4秒,当系统向ATA磁盘发出读取请求时如果硬盘回应时间超过4秒的超时值时才会产生超时或循环冗余检验(CRC)错误,但因为系统在挂起时硬盘是在停转状态中,恢复计算机时硬盘有个从停止到运动的过程,这就很容易造成大部分硬盘回应时间超过4秒的超时值。也就是说当我们使用计算机挂起6次后系统就会把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。如果挂起6次以上则驱动程序最终将把传送模式降为最慢的模式(PIO 模式)。
  尚未得到验证。可以通过以下方法验证:
  1. 双击“管理工具”,然后双击“计算机管理”;
  2. 单击“系统工具”,然后单击“设备管理器”;
  3. 展开“IDE ATA/ATAPI 控制器”节点;
  4. 双击您的“主要IDE控制器”;
  5. 点击“高级设置”。
  看到“设备0”,下面的传输模式应设为“DMA(若可用)”,再下面“当前传输模式”,如果是“Ultra DMA Mode *(*为数字,DMA33为2,DMA66为4,DMA100为5、DMA133为6)”,那么你的系统正常,但如果以前你自己设的是“Ultra DMA Mode 6”又没有改动,而现在是“Ultra DMA Mode 4”或“Ultra DMA Mode 2”更或者是“PIO 模式”而且改不过来!可能就是系统自行关闭了DMA模式了。
使用硬盘的DMA模式有什么好处,直接存取通道。主机与外设之间的数据传送,一共有两条途径:一是用CPU来管理的数据的传送;二是用专门的芯片完成数据的传送。所谓DMA,就是不经CPU,外设同内存之间相互传送数据的通道,在这种方式下,外设利用DMA通道直接将数据写入存储器或将数据从存储器中读出,而不用CPU参与,系统的速度会大大增加。在PC机内部,DMA通道的分配如下:

DMA0 可用
DMA1 ECP打印口(如果设置的话)
DMA2 软盘控制器
DMA3 8位数据传送
DMA4 级联DMA控制器
DMA5 可用
DMA6 可用 DMA7 可用
第3个回答  2007-11-22
IDE接口硬盘的模式,经历过三个不同的技术变化,由PIO(Programmed I/O)模式,DMA(Direct Memory Access)模式,直至现今的Ultra DMA模式(简称UDMA)。

PIO(Programmed I/O)模式的最大弊端是耗用极大量的中央处理器资源,在以前还未有DMA模式光驱的时候,光驱都是以PIO模式运行。大家可能还记得,当时用光驱播放VCD光盘,再配以软件解压,就算使用Pentium 166,其流畅度也不理想,这就是处理器被长期大量占用的缘故。以PIO模式运行的IDE接口,数据传输率达3.3MB/秒(PIO mode 0)至16.6MB/秒(PIO mode 4)不等。

后来随着Fast ATA/DMA模式的出现,IDE接口及装置都开始有了DMA的支持,DMA模式分为Single-Word DMA及Multi-Word DMA两种,跟PIO模式的最大区别是:DMA模式并不用过分依赖CPU的指令而运行,可达到节省处理器运行资源的效果。不过,后来由于Ultra DMA模式的出现和快速普及,这两个模式也只会是昙花一现,不久即被UDMA所取代。Single-Word DMA模式的最高传输率达8.33MB/秒,Multi-Word DMA(Double Word)则可达16.66MB/秒。

由于Ultra DMA模式(Ultra ATA制式下所引用的一个标准)的普及,UDMA模式就全以16-bit Multi-Word DMA模式作为基准。UDMA其中一个优点是它除已拥有DMA模式的优点外,更应用了CRC(Cyclic Redundancy Check)技术,加强了资料在传送过程中侦错及除错方面的效能。在最初UATA/33规格制定时,为了保留IDE系统的最高兼容性,所以在硬件的设计上并没做出太大的修改,不仅能完全向下兼容旧式ATA装置,也无需硬件生产商改变接头及讯号联接的设计。自Ultra ATA标准推行以来,其接口便应用了DDR(Double Data Rate)技术将传输的速度提升了一倍,目前已发展到Ultra ATA/100了,其传输速度高达100MB/秒。
第4个回答  推荐于2016-06-19
DMA的英文拼写是“Direct Memory Access”,是一种不经过CPU而直接从内存了存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网