Режим pio как отключить windows 7

Обновлено: 07.07.2024

Если жёсткий диск стал внезапно тормозить. Самопроизвольное включение режима PIO и как с ним бороться

Винчестер подключается к материнской плате кабелем. Этот кабель, по сути, соединяет электронику винчестера с контроллером дисков на материнской плате. Тип кабеля (IDE, SATA, . ) не имеет значения. Да, у каждого типа кабеля есть свои физические ограничения по передаче данных, но это указывает лишь на то, под какой поток данных затачивалось "железо" на его концах.

Дисковый контроллер умеет работать с дисками в нескольких разных режимах. Электроника винчестера, в свою очередь, тоже поддерживает разные режимы работы с дисковым контроллером. Наборы режимов диска/контроллера могут несовпадать и, чаще всего, именно так и бывает.

По умолчанию, операционной системой выбирается наиболее скоростной режим работы из тех, что одновременно поддерживает и контроллер, и диск.

Режимы передачи данных: PIO и DMA/UDMA

Для многих понятнее игровые аналогии, поэтому воспользуюсь одной из них.

Все знают, что 3D бывает программное (Software Rendering) и аппаратное (Direct3D, OpenGL).

В программном 3D каждый кадр высчитывается процессором, а видеокарта отвечает только за вывод полученной картинки на экран. Трёхмерные просчёты используют дикое количество математики, что сильно нагружает процессор, выдавая при этом достаточно посредственный результат. Почему так происходит? Дело в том, что Центральный Процессор (ЦП) — он универсальный, то есть, приспособлен под вычисления абсолютно разного рода. Трёхмерные вычисления представляют собой лишь узкий класс задач, которые способен выполнять ЦП. И получается, что универсальный ЦП работает с графикой неоптимально.

В случае аппаратного 3D процессор накидывает в видеокарту примитивы (текстуры, модели и т.д.) и даёт команды на их обработку, а построение сцены и красивые эффекты делает уже сама карта — с помощью своего, графического спецпроцессора (GPU, ГП), заточенного как раз под такие задачи. Вычисления на нём идут заметно быстрее, при этом центральный процессор не нагружается.

Так вот, PIO — это типа программного 3D: вся работа с диском осуществляется через ЦП. Очень медленно и ресурсоёмко.
А DMA — аппаратная обработка данных, использующая всевозможные "ускорители". Лишь бы они поддерживались контроллером и самим диском.

Windows

Винда работает с дисками в режиме DMA. Ну, как правило.

При определённых условиях (например, если произошло несколько специфических ошибок чтения-записи) винда переключает режим работы с диском в PIO. Сразу, намертво и без возможности реабилитации.

После этого заставить систему работать с диском в режиме DMA стандартными способами нельзя.
Про нестандартные — чуть ниже.

Симптомы того, что винда переключила работу с винчестером в режим PIO

  • Система начала жутко тормозить на дисковых операциях. Скорость работы с диском упала в 2-3 раза.
  • При дисковых операциях стал непомерно грузиться процессор. В «Диспетчере задач Windows» процесс «Система» (или процесс «Interrupts» в утилите «Process Explorer») занимает 80-90% процессорного времени.
  • Резкость и внезапность происходящего. Ещё вчера / 5 минут назад система работала как обычно, а тут — на тебе.

В современных реалиях, когда жёсткие диски являются самыми медленными устройствами компьютера, "узким местом", тормозящим работу программ — даже двукратное падение их скорости может стать катастрофическим.

Убеждаемся, что винда переключила работу с винчестером в режим PIO

Открываем «Диспетчер устройств» в «Консоли управления» компьютером.
ПКМ на «Мой компьютер» (на рабочем столе или в панели «Пуск», не имеет значения) → «Управление».

Раскрываем в дереве ветку контроллера диска («IDE ATA/ATAPI контроллеры») и находим канал, к которому подключен наш винт.
Давим ПКМ → «Свойства» (или просто делаем двойной клик левой кнопкой мыши)


Если «Режим передачи» установлен в «DMA, если доступно», а по факту винчестер работает в режиме PIO (см. картинку ниже), то всё плохо, и это наш случай.


Возвращаем режим DMA/UDMA

Для исправления ошибки достаточно удалить инвалидное устройство и установить его заново. Сделать это можно из того же «Диспетчера устройств».

Или лезем в реестр.

В реестре («Пуск» → «Выполнить» → regedit ) надо зайти в ветку по адресу:


0000 — настройки самого контроллера.
0001 — настройки первичного канала (Primary IDE Chanell).
0002 — настройки вторичного канала (Secondary IDE Chanell).

MasterDeviceTimingModeAllowed
— максимальный по скорости режим, в котором разрешено работать основному (Master) устройству в канале. По сути, значение ключа представляет собой бинарную маску. Ограничивает выбор «Режимов передачи» из диалогового окна.

MasterDeviceTimingMode
— текущий режим работы основного устройства в канале. Соответствует параметру «Текущий режим передачи» диалогового окна.

Те же самые ключи, начинающиеся со Slave , а не Master действуют для подчинённого устройства в канале:

  • SlaveDeviceTimingModeAllowed
  • SlaveDeviceTimingMode

Если в диалоговом окне «Тип устройства» был выбран вручную, соответствующие настройки хранятся в ключах с префиксом User:

  • UserMasterDeviceTimingModeAllowed
  • UserMasterDeviceTimingMode
  • UserSlaveDeviceTimingModeAllowed
  • UserSlaveDeviceTimingMode

Значение любого ключа [. ]DeviceTimingModeAllowed должно быть равно 0xffffffff . Это означает, что выбранное устройство может работать в любом режиме передачи данных, без ограничений.

Если значение ключа равно 0x00000001f (HEX 1f), то устройство может работать только в режиме PIO.

Меняем значение нужного [. ]DeviceTimingModeAllowed на " ffffffff " и перезагружаемся.


Дополнительно

Коды режимов работы:

0х0000001f — PIO
0x00000410 — Multi-Word DMA Mode 2 и PIO 4.
0x00002010 — UDMA Mode 2 (ATA33).
0x00008010 — UDMA Mode 4 (ATA66). Для включения можно использовать маску " 0x0000ffff "
0x00010010 — UDMA Mode 5 (ATA100). Для включения можно использовать маску " 0x000fffff "

Версии ATA/ATAPI (. 4,5,6. ) - это версии ATA/ATAPI спецификации утверждаемые комитетом X3T13. А PIO (Programmed Input-Output) и DMA/UDMA - это режимы передачи данных. Одно с другим никак не связано. Режимы PIO подразумевают обязательное задействование CPU при передаче данных - при чтении данных с носителя, CPU их читает из порта контроллера (команда IN процессора), при записи - CPU пишет в порт (команда OUT). При DMA (UDMA) режимах CPU только инициализирует пересылку (а предварительно еще и контроллер DMA) - всю остальную работу выполняют контроллер DMA (Direct Memory Access) и контроллер IDE (в режиме Bus Master). Понятно что последний вариант выгоднее - меньше загрузка процессора - поэтому PIO режимы после 1995 года никто больше не развивал, и в утвержденных ATA/ATAPI спецификациях (мне все равно, кто чего предлагал на заседаниях X3T13) PIO-5 никогда не было. А UltraDMA 44 - это UltraDMA 3 - этот режим существует, просто им почти никто не пользуется (так как его поддержка есть везде, где есть UDMA 4 - 66). Кстати ATA/ATAPI-6 еще не утвержден, этот документ существует в предварительной версии, так называемый working draft, и возможно еще будет меняться (но вряд-ли туда добавят PIO-5). Последний из утвержденных - версии 5. И UDMA66 появилось при ATA-4, а UDMA100 - при ATA-5. В спецификациях есть рекомендации по применению режимов передачи данных, а вовсе не обязательные требования их поддержки. Есть винты соответствующие ATA-5, но поддерживающие только UDMA66 (например Quantum Fireball+ LM). А еще есть CD-ROM'ы с поддержкой UDMA33 и с соответствием ATAPI-4 и 5. Начиная с версии 4, спецификации ATA и ATAPI объединили в один документ.

Это происходит если XP обнаруживает что устройство не стабильно работает в выбранном для него режиме. Определяется это по количеству ошибок чтения, получаемых с привода. Обычно это означает что привод находится в плохом состоянии, и про правде ему надо бы на покой. Но выбрасывать вроде бы работающий привод жалко, поэтому такие устройства можно встретить в машинах наших читателей. Хотя, благодаря механизмам контроля ошибок, многие такие приводы могут работать долго, счастливо и беспроблемно, не смотря на мнение XP о них. Единственное, что портит кровь их владельцам, это постоянные тормоза системы, из за PIO режима. У меня нет полной уверенности, как работает и чем управляется система контроля ошибок в XP, поэтому я не могу гарантировать что этот совет сработает во всех случаях. Но попробовать можно.
Для отключения режима отслеживания ошибок можно попробовать выставить в 0 ключ ErrorControl расположенный по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\

Для винчестеров данная рекомендация не работает, не помогает от вылетов в PIO.

Если компьютер начинает тормозить, то большинство пользователей, в первую очередь, начинают грешить на процессор, оперативную память или видеокарту, но абсолютно забывают о том, что жесткий диск является не менее важным узлом компьютера и во многих случаях проблемы снижения скорости работы операционной системы связаны именно с ним.

Включение режима DMA

Возможные режимы работы жесткого диска

У HDD есть возможность работать с данными в двух режимах: устаревший PIO и более новый DMA. Они кардинально отличаются принципом своей работы и, соответственно, скоростью обработки данных. Так в режиме PIO все данные обрабатываются при помощи процессора что сильно его нагружает и, как следствие, приводит к падению общей производительности системы. А вот режим DMA – это уже аппаратная обработка данных при которой используются разнообразные ускорители и ЦП в этом процессе не участвует.

Самопроизвольное переключение Виндовс на режим PIO и признаки этого

Windows по умолчанию работает с HDD в скоростном режиме DMA, но иногда из-за специфических ошибок самостоятельно переключается в режим PIO. Причем обратно включить DMA весьма проблематично и сделать это стандартными способами практически невозможно. Характерные признаки того, что Windows переключилась на работу с жестким диском в режим PIO это:

• Падение быстроты работы с HDD в несколько раз;
• Медленная скорость работы системы во время дисковых операций;
• Чрезмерная загрузка процессора (80-90%) при работе с жестким диском;
• Система начала «тормозить» резко. То есть еще час назад все было нормально, а потом резко появились проблемы.

На данный момент жесткий диск — это самое слабое место всей системы и падение его скорости работы даже в два раза приводит к катастрофическим последствиям. Для того чтобы убедиться, что Windows действительно переключилась на работу с жестким диском в медленный режим PIO нужно сделать следующее:

1. Нажмите на значок «Мой компьютер» правой клавишей мыши и выберите пункт «Управление»;

Управление компьютером


2. Раскройте ветку контроллера и найдите канал, к которому подключен ваш жесткий диск;
3. Нажмите на нем правую клавишу мыши, зайдите в «Свойства» и переключитесь на «Дополнительные параметры»;
4. Посмотрите на строку «Текущий режим передачи». Если там написано «Режим DMA», то значит все нормально, а вот если «Режим PIO», то вам придется проделать несколько несложных операций и вернуть диск в предпочтительный режим работы.

Включения Режима PIO

Включаем режим DMA

На самом деле добиться этого можно двумя способами. Первый из них довольно простой и вам потребуется всего лишь удалить неправильно работающее устройство, а затем перезагрузить компьютер. После этого Windows автоматически установит его заново и режим работы устройства вновь переключится на DMA.

Режим DMA

Если по какой-то причине у вас не получается включить DMA первым способом, то тогда вам придется приложить немного больше усилий и использовать редактор реестра. Сделайте следующее:

  1. Нажмите Win+R и напечатайте в появившейся строке команду regedit;
  2. Перейдитепопути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\;

Реестор

  1. Найдите строку MasterDeviceTimingModeAllowed.
  2. Если в колонке значение этой строки написано 0х00000001f, то это значит, что ваш жесткий диск действительно работает в режиме PIO;
  3. Поменяйте значение на 0xffffffff и перезагрузите компьютер.

После этого ваш жесткий диск вновь переключится на режим DMA, а скорость его работы и общая скорость работы системы увеличится в разы.

Это железо либо драйвер.

1. Проверьте режим работы HDD, не слетели ли в PIO.
2. Проверьте, нет ли тротлинга процессора.
3. Сбросьте КМОС.
4. Обновите чипсетные драйвера.

оба винча стоит на режиме "только PIO"


пункт 2 и 3 сделал , все в норме.
а вот как обновить чипсетные драйвера незнаю((( , так-как никогда с ними не сталкивался , никогда не ставил на них драйвера , даже незнаю где они F00LbIch Запасись драйверами на материнскую плату и дистрибутивом Винды, от всякого случая.
И удали всё из раздела «IDE ATA/ATAPI контроллеры» в диспетчере устройств и перезапусти комп, Винда сама всё восстановит, но уже с правильными установками. __________________
Решил проблему, сообщи мне, как… хочу спросить у Ariny
мой, выше написанный совет правильный?
Может он привести к необратимый последствиям?
Например к потере активации Винды. __________________
Решил проблему, сообщи мне, как… ну так какой мне способ использовать. ъ
тот что уважаемый Fakir предлагает , или способ уважаемой Ariny ?? F00LbIch, начни со второго, а если не получится, тут и мой способ пригодится.
Наоборот сделать просто не получится. __________________
Решил проблему, сообщи мне, как…

Fakir, способ правильный, но не всегда работает. Если счётчик ошибок не сбросить, то девайс может слететь обратно в PIO при первом же обращении к девайсу, а может и не слететь, от чего это зависит - не знаю.


F00LbIch
У Вас тут один девайс, подключен мастером, "MasterIdDataCheckSum" обнулить, "MasterDeviceTimingMode" установить значение "10010" в 16-ной системе.
Параметра "ResetErrorCountersOnSuccess" нет, его надо создать как параметр DWORD и присвоить значение "1". Программа Pinnacle Studio сама переключает HDD на PIO, а на UDMA-6 - тормозит

!Пожалуйста, не удаляйте тему, т.к нигде больше не смог найти ответа!

Здравствуйте. У меня такая необычная проблема: программа Pinnacle Studio 12 Ultimate стабильно работает только в PIO режиме работы HDD, если ставить UDMA6 - сама переключает систему на PIO!

При запуске программа работает медленно, тормозит, в основном-при открытии видеофала и добавления его на тайм-лайн. После 5-6 запусков - жесткий диск начинает работать в режиме PIO, а не в UDMA-6. Скорость чтения падает в 10 раз, зато Pinnacle работает отлично, вообще не тормозит. Если восстановить режим UDMA - все повторяется.

Пробовал копаться в реестре - по инструкции:
[SIZE=1][i]Для хардов включить режим, когда в отсутствие ошибок их счётчик сбрасывается; т. е. режим DMA будет переключаться, только если ошибки идут постоянно. В разделе реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\] в подразделах "0001" и "0002" "ResetErrorCountersOnSuccess"=dword:1 там же, сбросить счётчик ошибок

Компьютер сильно тормозит, работать вообще не возможно. При этом индикатор доступа к HDD постоянно мигает, диспетчер задач показывает загрузку ЦП, а движения никакого? Если включить сторонний диспетчер, например Process Explorer то видно, что процесс Hardware Interrupts грузит систему на 50% и больше. Скорее всего ваш жесткий диск перешел в режим PIO. Это значит, что при чтении с диска после 6-и ошибок истечения времени ожидания Windows переводит скорость подключения контроллера IDE/ATAPI (HDD) с быстрого режима UDMA на медленный PIO и все начинает тормозить. Как обратно включить режим Ultra DMA?

Как включить режим Ultra DMA

1. Чтобы узнать, в каком режиме винт, заходим в диспетчер устройств — IDE/ATAPI контроллеры — первичный(вторичный) канал и в дополнительных параметрах смотрим режим передачи — если PIO, то это он все тормозит и процесс Hardware Interrupts загружает процессор (у меня было 40-50%). Пробуем поставить режим «DMA если доступно» (причем это проделать во всех первичных и вторичных каналах) и перезагрузить систему. Немного поработать и проверить опять режим IDE/ATAPI контроллера. Если опять стоит режим PIO, то проверить шлейф винчестера и питание. Если не помогло, то решение простое — поменять винчестер или вариант 2:

2. Отключить контроль ошибок.

Заходим в реестр(меню Пуск-выполнить-regedit), далее в раздел

В подразделах 0001 и 0002 делаем так:

1. В меню правка Создать, параметр DWORD.
2. Введите строку ResetErrorCountersOnSuccess и нажмите клавишу ВВОД.
3. 2 раза щелкнуть по созданому параметру и ввести значение 1. Нажать Ок.

В этих же разделах проверить

Далее, проверьте, чтобы в этих же разделах параметры MasterDeviceTimingModeAllowed и SlaveDeviceTimingModeAllowed у вас имели значеие ffffffff (в шестнадцатиричной системе). И соответствующему параметру MasterDeviceTimingMode или SlaveDeviceTimingMode присвойте одно из значений:
0×10010 — соответствует режиму UDMA Mode 5 (ATA100).
0×8010 — UDMA Mode 4 (ATA66).
0×2010 — UDMA Mode 2 (ATA33).
0×0410 — Multi-Word DMA Mode 2

Перезагрузите систему. Вот и все! По идее, у вас должен всегда стоять режим Ultra DMA.

Но, если вы точно не знаете, в каком режиме должен работать винт и если вы всё сделали правильно, но после перезагрузки ничего не поменялось (маловероятно, но вдруг…), то в этом случае, сначала удалите из списка устройств IDE-контроллер, и перезагрузитесь. Windows заново найдёт и переустановит драйвер IDE-контроллера, при этом все устройства встанут в нужные DMA-режимы (MasterDeviceTimingMode и SlaveDeviceTimingMode сами примут нужное значение).

После этого лезте в реестр и проделайте все шаги, кроме изменения параметров MasterDeviceTimingMode и SlaveDeviceTimingMode, и перезагрузитесь ещё раз. Теперь все точно должно заработать.

Но (еще одно но ), я вам рекомендую важную информацию копировать на другие носители, так как с HDD у вас проблемы.

Читайте также: