что такое pio жесткого диска
Описание
Часто у пользователей возникает проблема очень медленной работы компьютера, особенно при записи и при чтении дисков, либо просто необоснованные «тормоза» системы при работе или загрузке. Причин возникновения этого может быть великое множество, сегодня предлагаю рассмотреть довольно распространенную – это неверный режим работы CD/DVD-ROM’а или жестких дисков, т.е. поговорим о PIO и DMA.
Что такое PIO и DMA?
PIO и DMA – это два режима работы жестких дисков, в общем случае любого привода.
PIO (Programmable Input/Output) – уже устаревший режим, для работы ему необходимо задействовать центральный процессор, что приводит к значительной потери производительности.
DMA (Direct Memory Access) – современный метод, который минует процессор и обращается напрямую к оперативной памяти, это позволяет значительно (в несколько раз) увеличить производительность и избавиться от надоедливых «тормозов». Режим DMA в различных вариантах уже давно используется в операционных системах, однако в Windows XP часто случается ситуация в которой DMA автоматически переключается в PIO и уже вывести его оттуда обычными методами не получится. Из-за чего возникает эта ситуация? В Windows XP внедрен механизм контроля ошибок, если при чтении с жесткого диска или др. привода слишком часто возникают ошибки, то система автоматически переходит в более медленный режим, где их процент меньше. Однако, Windows XP может перевести в такой режим и нормально работающее устройство исходя из известных только ей критериев.
Как сменить режим работы с PIO на DMA?
Итак, Ваша система стала существенно притормаживать – проверим режимы работы всех приводов:
1. Запускаем консоль «Управление компьютером» – правой кнопкой на «Мой компьютер» → в выпадающем меню выбираем пункт «Управление», либо через Панель управления.
2. Выбираем «Диспетчер устройств», справа выбираем IDE ATA/ATAPI контроллеры, откроется несколько строчек с контроллерами – нас интересуют Первичный и Вторичный каналы IDE
Заходим поочередно в свойства этих каналов (правой кнопкой на канале, строка «Свойства»), в закладку «Дополнительные параметры»
Здесь выделены две группы «Устройство 0» и «Устройство 1», в каждой есть строки «Режим передачи» – в ней должно быть выбрано «DMA, если доступно», далее строка «Текущий режим передачи», должно быть что-то типа «Режим ультра DMA: 5», если здесь стоит «Режим PIO», то это как раз наш случай и мы будем его исправлять. Если везде стоит режим ультра DMA, то у Вас все в порядке и дальнейшие действия можно не продолжать.
3. Для начала попробуем исправить вручную – в каждой строке «Режим передачи» ставим «DMA, если доступно», жмем «ОК» и перезагружаем компьютер. После включения вновь смотрим режимы работы каналов, если везде стоит DMA, то все в порядке, если остался PIO, то продолжаем дальше.
4. Вновь найдите Первичный и Вторичный каналы IDE и удалите их (правой кнопкой на каждом канале, в списке выбираем «Удалить»). Не бойтесь, все будет нормально работать. Снова перезагрузите компьютер – Windows XP найдет контроллеры и переведет их в быстрый режим работы, т.е в DMA. Проверте результат, везде должен стоять режим DMA.
5. Если все перечисленное не помогло и у Вас опять высвечивается «Режим PIO», тогда необходимо будет переставить драйвера для материнской платы – перезагрузиться и вновь проверить результат.
6. Ну и последний пункт, если после всех мучений «Режим PIO» так и не пропал, тогда придется поковыряться в реестре. Хочу отметить – производите какие-либо операции с реестром очень осторожно и внимательно, любое неправильное действие может привести к полной неработоспособности Вашей системы. Лучше всего сделать заранее бекап реестра. Будьте осторожны.
Для начала попробуйте отключить систему контроля ошибок. Для этого в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\, создайте ключ ErrorControl и установите его значение равным 0. После этого перезагрузитесь и выполните пункт №4.
Действуем дальше: открываем следующую ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\ в ней можно вручную выставить режим DMA. Здесь распологаются несколько папок 0000, 0001, 0002.
0000 – отвечает за сам контролер;
0001 – отвечает за Secondary IDE Chanell;
0002 – отвечает за Primary IDE Chanell;
Открываем папку для нужного нам канала. В ней находятся несколько ключей, для начала выбираем:
MasteDeviceTimingModeAllowed
SlaveDeviceTimingModeAllowed
и проставляем значение равное 0хffffffff.
После этого выставляем значение следующих ключей:
MasterDeviceTimingMode
SlaveDeviceTimingMode
в соответствии с следующими данными, в зависимости от поддерживаемого UDMA-режима:
UDMA Mode 2 – 0x2010
UDMA Mode 4 – 0x8010
UDMA Mode 5 – 0x10010
UDMA Mode 6 – 0xffff
После этого перезагрузитесь и проверьте результат – должно все нормально работать.
Режим 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», то вам придется проделать несколько несложных операций и вернуть диск в предпочтительный режим работы.
Включаем режим DMA
На самом деле добиться этого можно двумя способами. Первый из них довольно простой и вам потребуется всего лишь удалить неправильно работающее устройство, а затем перезагрузить компьютер. После этого Windows автоматически установит его заново и режим работы устройства вновь переключится на DMA.
Если по какой-то причине у вас не получается включить DMA первым способом, то тогда вам придется приложить немного больше усилий и использовать редактор реестра. Сделайте следующее:
После этого ваш жесткий диск вновь переключится на режим DMA, а скорость его работы и общая скорость работы системы увеличится в разы.
Основы компьютера и интернета.
Полезный блог для начинающих пользователей компьютера и не только..
Страницы
9/30/2020
Как восстановить производительность системы, режимы PIO и DMA
1. Запускаем консоль «Управление компьютером» – правой кнопкой на «Мой компьютер»
откроется несколько строчек с контроллерами – нас интересуют:
Первичный и Вторичный каналы IDE → заходим поочередно в свойства этих каналов (правой кнопкой на канале, строка «Свойства»), в закладку «Дополнительные параметры»,
здесь выделены две группы «Устройство 0» и «Устройство 1», в каждой есть строки
«Режим передачи» – в ней должно быть выбрано «DMA, если доступно», далее строка «Текущий режим передачи», должно быть что-то типа «Режим ультра DMA:4,
если здесь стоит «Режим PIO», то это как раз наш случай и мы будем его исправлять.
Если везде стоит режим ультра DMA, то у Вас все в порядке и дальнейшие действия можно не продолжать.
3. Для начала попробуем исправить вручную – в каждой строке «Режим передачи» ставим «DMA, если доступно», жмем «ОК» и перезагружаем компьютер. После включения вновь
смотрим режимы работы каналов, если везде стоит DMA, то все в порядке, если остался PIO, то продолжаем дальше.
4. Вновь найдите Первичный и Вторичный каналы IDE и удалите их (правой кнопкой на каждом канале, в списке выбираем «Удалить»). Не бойтесь, все будет нормально работать.
Снова перезагрузите компьютер – Windows XP найдет контроллеры и переведет их в быстрый режим работы, т.е в DMA. Проверьте результат, везде должен стоять режим DMA.
5. Если все перечисленное не помогло и у Вас опять высвечивается «Режим PIO», тогда необходимо будет переставить драйвера для материнской платы – перегрузиться
и вновь проверить результат.
6. Ну и последний пункт, если после всех страданий режим PIO так и не пропал, тогда придется подредактировать в реестре. Хочу отметить – производите какие-либо операции с
реестром очень осторожно и внимательно, любое неправильное действие может привести к полной неработоспособности Вашей системы. Лучше всего сделать заранее копию реестра.
Как настроить Windows XP с помощью реестра читайте здесь
Для начала попробуйте отключить систему контроля ошибок.
Для этого в ветке реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\,
создайте ключ ErrorControl и установите его значение равным 0.
После этого перегрузитесь и выполните пункт №4.
Действуем дальше: открываем следующую ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\
Как ускорить и восстановить производительность Windows 10, читайте далее
Какая скорость передачи информации в компьютерах, читайте далее
Надеюсь эта статья поможет Вам правильно выставить режимы PIO и DMA и повысить общую производительность системы.
На презентации IE 9 парализованный мальчик встал и вышел
Если жёсткий диск стал внезапно тормозить. Самопроизвольное включение режима PIO и как с ним бороться
Дисковый контроллер умеет работать с дисками в нескольких разных режимах. Электроника винчестера, в свою очередь, тоже поддерживает разные режимы работы с дисковым контроллером. Наборы режимов диска/контроллера могут несовпадать и, чаще всего, именно так и бывает.
По умолчанию, операционной системой выбирается наиболее скоростной режим работы из тех, что одновременно поддерживает и контроллер, и диск.
Режимы передачи данных: PIO и DMA/UDMA
Для многих понятнее игровые аналогии, поэтому воспользуюсь одной из них.
Все знают, что 3D бывает программное (Software Rendering) и аппаратное (Direct3D, OpenGL).
В программном 3D каждый кадр высчитывается процессором, а видеокарта отвечает только за вывод полученной картинки на экран. Трёхмерные просчёты используют дикое количество математики, что сильно нагружает процессор, выдавая при этом достаточно посредственный результат. Почему так происходит? Дело в том, что Центральный Процессор (ЦП) — он универсальный, то есть, приспособлен под вычисления абсолютно разного рода. Трёхмерные вычисления представляют собой лишь узкий класс задач, которые способен выполнять ЦП. И получается, что универсальный ЦП работает с графикой неоптимально.
В случае аппаратного 3D процессор накидывает в видеокарту примитивы (текстуры, модели и т.д.) и даёт команды на их обработку, а построение сцены и красивые эффекты делает уже сама карта — с помощью своего, графического спецпроцессора (GPU, ГП), заточенного как раз под такие задачи. Вычисления на нём идут заметно быстрее, при этом центральный процессор не нагружается.
Так вот, PIO — это типа программного 3D: вся работа с диском осуществляется через ЦП. Очень медленно и ресурсоёмко.
А DMA — аппаратная обработка данных, использующая всевозможные «ускорители». Лишь бы они поддерживались контроллером и самим диском.
Windows
Винда работает с дисками в режиме DMA. Ну, как правило.
При определённых условиях (например, если произошло несколько специфических ошибок чтения-записи) винда переключает режим работы с диском в PIO. Сразу, намертво и без возможности реабилитации.
После этого заставить систему работать с диском в режиме DMA стандартными способами нельзя.
Про нестандартные — чуть ниже.
Симптомы того, что винда переключила работу с винчестером в режим PIO
В современных реалиях, когда жёсткие диски являются самыми медленными устройствами компьютера, «узким местом», тормозящим работу программ — даже двукратное падение их скорости может стать катастрофическим.
Убеждаемся, что винда переключила работу с винчестером в режим PIO
Открываем «Диспетчер устройств» в «Консоли управления» компьютером.
ПКМ на «Мой компьютер» (на рабочем столе или в панели «Пуск», не имеет значения) → «Управление».
Раскрываем в дереве ветку контроллера диска («IDE ATA/ATAPI контроллеры») и находим канал, к которому подключен наш винт.
Давим ПКМ → «Свойства» (или просто делаем двойной клик левой кнопкой мыши)
Если «Режим передачи» установлен в «DMA, если доступно», а по факту винчестер работает в режиме PIO (см. картинку ниже), то всё плохо, и это наш случай.
Возвращаем режим DMA/UDMA
Для исправления ошибки достаточно удалить инвалидное устройство и установить его заново. Сделать это можно из того же «Диспетчера устройств».
Или лезем в реестр.
В реестре («Пуск» → «Выполнить» → regedit ) надо зайти в ветку по адресу:
0000 — настройки самого контроллера.
0001 — настройки первичного канала (Primary IDE Chanell).
0002 — настройки вторичного канала (Secondary IDE Chanell).
MasterDeviceTimingModeAllowed
— максимальный по скорости режим, в котором разрешено работать основному (Master) устройству в канале. По сути, значение ключа представляет собой бинарную маску. Ограничивает выбор «Режимов передачи» из диалогового окна.
MasterDeviceTimingMode
— текущий режим работы основного устройства в канале. Соответствует параметру «Текущий режим передачи» диалогового окна.
Если в диалоговом окне «Тип устройства» был выбран вручную, соответствующие настройки хранятся в ключах с префиксом User:
Если значение ключа равно 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 «
Это происходит если XP обнаруживает что устройство не стабильно работает в выбранном для него режиме. Определяется это по количеству ошибок чтения, получаемых с привода. Обычно это означает что привод находится в плохом состоянии, и про правде ему надо бы на покой. Но выбрасывать вроде бы работающий привод жалко, поэтому такие устройства можно встретить в машинах наших читателей. Хотя, благодаря механизмам контроля ошибок, многие такие приводы могут работать долго, счастливо и беспроблемно, не смотря на мнение XP о них. Единственное, что портит кровь их владельцам, это постоянные тормоза системы, из за PIO режима. У меня нет полной уверенности, как работает и чем управляется система контроля ошибок в XP, поэтому я не могу гарантировать что этот совет сработает во всех случаях. Но попробовать можно.
Для отключения режима отслеживания ошибок можно попробовать выставить в 0 ключ ErrorControl расположенный по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\
Для винчестеров данная рекомендация не работает, не помогает от вылетов в PIO.