首页 > 范文大全 > 正文

如何防止硬盘DMA模式转为PIO模式

开篇:润墨网以专业的文秘视角,为您筛选了一篇如何防止硬盘DMA模式转为PIO模式范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

在Windows 2000/XP/2003中有这样一个设定:Windows IDE/ATAPI端口驱动程序(Atapi.sys)累积收到总共6个超时或循环冗余检验(CRC)错误后,驱动程序将把通信速度(传送模式)从最快的直接内存访问(DMA)模式分步骤降为较慢的DMA模式。假如驱动程序继续收到超时或CRC错误,则驱动程序最终将把传送模式降为最慢的模式(pio模式)。

PIO模式导致系统降速

一般来说一个正常的硬盘很少会有超时或循环冗余检验(CRC)错误,但是当我们使用这些系统里的挂起(也有叫休眠)并恢复计算机后就很轻易造成超时或循环冗余检验(CRC)错误。因为系统设定的超时值为4秒,当系统向ATA磁盘发出读取请求时假如硬盘回应时间超过4秒的超时值时才会产生超时或循环冗余检验(CRC)错误,但因为系统在挂起(也有叫休眠)时硬盘是在停转状态中,恢复计算机时硬盘有个从停止到运动的过程,这就很轻易造成大部分硬盘回应时间超过4秒的超时值。也就是说当我们使用计算机挂起6次后系统就会把通信速度(传送模式)从最快的直接内存访问(dma模式分步骤降为较慢的DMA模式。假如挂起6次以上则驱动程序最终将把传送模式降为最慢的模式(PIO模式)。这就是Windows系统忽然变慢的原因。

解决PIO模式问题

想解决问题的话,首先双击管理工具,然后双击计算机管理,单击系统工具,然后单击设备管理器,展开IDE ATA/ATAPI控制器节点,双击您的主要IDE控制器,点击高级设置。看到设备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或更快DMA的传送模式,请执行以下操作:首先双击管理工具,然后双击计算机管理,单击系统工具,然后单击设备管理器,展开IDE ATA/ATAPI控制器节点,双击您要为其恢复典型DMA传送模式的控制器,单击驱动程序选项卡,单击卸载。

当此过程完成后,重新启动您的计算机。当Windows重新启动后,将重新刷新硬盘控制器,同时与该控制器相连的每个设备的传送模式将重置为默认值。 但这样只是把硬盘设备的传送模式重置为默认值,当我们再使用挂起系统时系统又会自行关闭DMA模式!所以我们还要做以下操作:单击开始,单击运行,键入Regedit,然后单击确定。在注册表中找到并单击以下项:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass\0001

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass\0002

在编辑菜单上,指向新建,然后单击DWORD值。键入ResetErrorCountersOnSuccess,然后按Enter键。在编辑菜单上,单击修改。键入l,然后单击确定。按照下列步骤操作,然后退出注册表编辑器。

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