新闻 | 天津 | 民生 | 广电 | 津抖云 | 微视 | 读图 | 文娱 | 体育 | 图事 | 理论 | 志愿 | 专题 | 工作室 | 不良信息举报
教育 | 健康 | 财经 | 地产 | 天津通 | 旅游 | 时尚 | 购物 | 汽车 | IT | 亲子 | 会计 | 访谈 | 场景秀 | 发布系统

"津云"客户端
  您当前的位置 :北方网 > IT浪潮 > 北方学院 > 软件文库 > 系统相关 正文
关键词:

警告!WinXP会自行关闭硬盘DMA模式


http://www.enorth.com.cn  2004-11-08 10:36

  硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。以前有很多文章介绍过如何打开DMA模式,我在这里也就不多说了。

  但笔者发现一个新的“问题”--Windows 2000、XP、2003系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏时(比如极品飞车)画面时有明显停顿(很多人这时以为是自己的显卡问题,当然如果你使用的是三年前的显卡玩这些游戏是有点老了,但如果你用的是今年才买的GF显卡那就不是它的问题了),出现以上问题时大家最好看看自己硬盘的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\0001和HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass\0002

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

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

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

  6.键入l,然后单击“确定”。

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

  注意

  上面注册表最后的项“”列出的带有“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硬盘模式,再也不会发生系统性能突然下降的情况了。

编辑 赵海涛
[进入IT论坛]
请您文明上网、理性发言并遵守相关规定,在注册后发表评论。
 北方网精彩内容推荐
无标题文档
天津民生资讯
天气交通 天津福彩 每月影讯 二手市场
空气质量 天津股票 广播节目 二手房源
失物招领 股市大擂台 天视节目 每日房价
热点专题
北京奥运圣火传递和谐之旅 迎奥运 讲文明 树新风
解放思想 干事创业 科学发展 同在一方热土 共建美好家园
2008天津夏季达沃斯论坛 《今日股市观察》视频
北方网网络相声频道在线收听 2008高考招生简章 复习冲刺
天津自然博物馆馆藏精品展示 2008年天津中考问题解答
带你了解08春夏服饰流行趋势 完美塑身 舞动肚皮舞(视频)
C-NCAP碰撞试验—雪佛兰景程 特殊时期善待自己 孕期检查
热点新闻排行 财经 体育 娱乐 汽车 IT 时尚 健康 教育

Copyright (C) 2000-2021 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本网站由天津北方网版权所有