SATA硬盘无法打开DMA模式--解决硬盘慢的办法_天外来客_百度空间

硬盘非常慢.开机10分钟.关机5分钟多.扫描硬盘一切正常. 硬盘接其他机器扫描也正常,.盘没有问题就想着是不是DMA的问题.但是现在都是SATA的盘呀.

于是就搜索+实践+测试(有点乱来的意思)搞到这么一个办法,经过实践测试,问题解决.就是DMA的设置问题.给大家介绍介绍:

硬盘的DMA模式大家应该都知道吧,

一般咱们硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,

SATA-150都出来很久拉了!

一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。以前有很多文章介绍过如何打开DMA模式,我在这里也就不多说了。

  最发现咱们新买的机器都是SATA的盘.它有一个新的“问题”——WindowsXP、2003 server系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!

这就是造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:

系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到{bfb}而产生停顿,玩一些大型3D游戏时(比如{jp}飞车6)画面时有明显停顿(很多人这时以为是自己的显卡问题,当然如果你使用的是三年前的显卡玩这些游戏是有点老了,但如果你用的是今年才买的GF显卡那就不是它的问题了),出现以上问题时大家{zh0}看看自己硬盘的DMA模式是不是被Windows 系统自行关闭了。查看自己的系统是否打开DMA模式:

  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模式了。

  分析问题:

  我先来说说问题是如何产生的。

       在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 模式)。这就是Windows 系统突然变慢的原因。

  解决问题:

  若要为受影响的设备重新启用典型DMA或更快DMA的传送模式,请执行以下操作:


  1. 双击“管理工具”,然后双击“计算机管理”;

  2. 单击“系统工具”,然后单击“设备管理器”;

  3. 展开“IDE ATA/ATAPI 控制器”节点;

  4. 双击您要为其恢复典型DMA 传送模式的控制器;

  5. 单击“驱动程序”选项卡;

  6. 单击“卸载”。

  当此过程完成后,重新启动您的计算机。当Windows 重新启动后,将重新枚举硬盘控制器,同时与该控制器相连的每个设备的传送模式将重置为默认值。

  但这样只是把硬盘设备的传送模式重置为默认值,当我们再使用挂起系统时系统又会自行关闭DMA模式!所以我们还要做以下操作:

  1. 单击“开始”,单击“运行”,键入Regedit,然后单击“确定”。

  2. 在注册表中找到并单击以下项:

  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E96A-E325-11CE-BFC1-08002BE10318}\0001和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0002


  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。


  4. 键入ResetErrorCountersOnSuccess,然后按Enter 键。

  5. 在“编辑”菜单上,单击“修改”。

  6. 键入l(数字 1 别写成i或者L),然后单击“确定”。

  7. 按照下列步骤操作,然后退出注册表编辑器:

  注意:上面注册表{zh1}的项“{4D36E96A-E325-11CE-BFC1-08002BE10318}”列出的带有“0001”编号的子项对应于一台仅有一个IDE 控制器的计算机的主要IDE 通道和次要IDE 通道。如果您的计算机有两个IDE 控制器,则对于每个控制器,主要IDE 通道和次要IDE 通道的带有编号的子项分别是:“0001、0002、0003、0004、0005、0006……”。

  为检查是否找到了正确的子项,请检查子项的DriverDesc 值是包含字符串值“主要IDE 通道”,还是包含字符串值“次要IDE 通道”。

  建立以上注册表键值的目的是:


  在Windows中,使系统向ATA 磁盘发出读取请求时的4 秒的超时值更改为10 秒。还实现了一种较不严格的变通策略以在发生超时错误和CRC 错误时降低传送模式(从较快的DMA 模式到较慢的DMA 模式,最终降为PIO 模式)。以前的情况是,在每当累积发生的超时错误或CRC 错误的总数达到6 次时,IDE/ATAPI 端口驱动程序(Atapi.sys) 将降低传送模式。当我们建立以上注册表键值实现新的策略后,Atapi.sys 仅在连续发生6 次超时错误或CRC 错误后才降低传送模式。

  这一新的策略实现后将大大降低系统降低或关闭DMA传送模式的机会。现在我们可以安心地使用挂起系统和高性能的DMA硬盘模式,

再也不会发生系统性能突然下降的情况了.

如果你觉得自己机器速度慢. 发现是硬盘的问题.建议你尝试以下哦.也许你真会很有收获.

   DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的{zd0}传输速率也只有16.6MB/s。
  DMA 传送方式的优先级高于程序中断,两者的区别主要表现在对CPU的干扰程度不同。中断请求不但使CPU停下来,而且要CPU执行中断服务程序为中断请求服务,这个请求包括了对断点和现场的处理以及CPU与外设的传送,所以CPU付出了很多的代价;DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU的干预,DMA只是借用了一点CPU的时间而已。还有一个区别就是,CPU对这两个请求的响应时间不同,对中断请求一般都在执行完一条指令的时钟周期末尾响应,而对DMA的请求,由于考虑它得高效性,CPU在每条指令执行的各个阶段之中都可以让给DMA使用,是立即响应。
  DMA主要由硬件来实现,此时高速外设和内存之间进行数据交换不通过CPU的控制,而是利用系统总线。DMA方式是I/O系统与主机交换数据的主要方式之一,另外还有程序查询方式和中断方式。
  DMA工作原理
  DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从 来源 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
  DMA 传输重要地将一个内存区从一个装置复制到另外一个。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统 算法和网络是很重要的。
  举个例子,PC ISA DMA 控制器拥有 8 个 DMA 通道,其中的 7 个通道是可以让 PC 的 CPU 所利用。每一个 DMA 通道有一个 16位元 位址暂存器和一个 16 位元 计数暂存器。要初始化资料传输时,装置驱动程式一起设定 DMA 通道的位址和计数暂存器,以及资料传输的方向,读取或写入。然后指示 DMA 硬件开始这个传输动作。当传输结束的时候,装置就会以中断的方式通知 CPU。
  "分散-收集" (Scatter-gather) DMA 允许在一次单一的 DMA 处理中传输资料到多个内存区域。相当于把多个简单的 DMA 要求串在一起。再一次,这个动机是要减轻 CPU 的多次输出输入中断和资料复制任务。
  DRQ 意为 DMA 要求;DACK 意为 DMA 确认。这些符号一般在有 DMA 功能的电脑系统硬件概要上可以看到。他们表示了介于 CPU 和 DMA 控制器之间的电子讯号传输线



郑重声明:资讯 【SATA硬盘无法打开DMA模式--解决硬盘慢的办法_天外来客_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——