Домой / Осваиваем ПК / Режимы передачи данных. Неожиданное торможение HDD, почему и как вылечилось. Борьба с PIO mode Первичный канал ide режим pio

Режимы передачи данных. Неожиданное торможение HDD, почему и как вылечилось. Борьба с PIO mode Первичный канал ide режим pio

Для передачи данных между винчестером и памятью PC используются два основных режима:

    режим программного ввода/вывода (Programmed Input/Output, PIO);

    режим прямого доступа к памяти (Direct Memory Access, DMA).

Режим pio

В режиме PIO каждый байт информации с жесткого диска сначала считывается центральным процессором и только потом записывается в оперативную память. В зависимости от длительности цикла считывания и количества секторов, передаваемых за одно обращение к диску, различают режимы PIO (PIO Mode 0), PIO1, PIO2, PIOЗ, PI04, PI05.

Режим dma

Режимы PIO используются в однозадачных операционных системах, когда процессор компьютера производит считывание или запись данных в буферную память накопителя на жестких дисках стандартов IDE или EIDE, а затем эти данные передаются в оперативную память. В многозадачных операционных системах целесообразно использовать режимы прямого доступа к оперативной памяти (Direct Memory Access, DMA). Ввод/вывод данных в этом режиме осуществляется в оперативную память PC без участия CPU. Этот процесс происходит под управлением контроллера накопителя на жестких дисках в паузах между обращениями CPU к оперативной памяти, что несколько снижает скорость передачи данных, но экономит процессорное время. Для реализации режимов DMA, в отличие от РЮ, необходимы как специальные контроллеры, так и драйверы.

Режимы DMA подразделяются на однословные (Singleword) и многословные (Multiword) в зависимости от количества слов, передаваемых за один цикл работы с системной шиной.

Serial ata (sata)

Дальнейшее увеличение скорости передачи данных через параллельный интерфейс АТА вызывало технические сложности. Кроме того, производителей PC не устраивал широкий 40-жильный (или 80 жильный) кабель, который препятствует циркуляции воздуха внутри корпуса и ограничен длиной в 46 см.

Поэтому в 1999 г. была создана рабочая группа Serial ATA Working Group, целью которой было создание последовательного интерфейса ATA - Serial ATA (SATA). Интерфейс был представлен в 2001 г. и продемонстрировал скорость передачи данных - 150 Мбайт/с.

Кроме того, для подключения нескольких устройств (HDD, приводы CD-ROM, DVD-ROM и др.) будет использована не топология типа "звезда" (когда каждое устройство необходимо идентифицировать как Master или Slave), а топология point-to-point, когда каждое устройство будет напрямую подключено к хост-адаптеру (наподобие SCSI-устройств).

SCSl (Small Computer System Interface, системный интерфейс малых компьютеров) это более универсальный и эффективный интерфейс, чем IDE. Однако его аппаратная реализация значительно дороже, чем реализация интерфейса IDE. Интерфейс SCSI имеет явные преимущества при работе с видео, а также при использовании привода CD-ROM в многозадачной операционной среде или в качестве сетевого накопителя.

Связь между SCSI-устройством и шиной ввода/вывода (таких, как ISA, PCI, VLB) осуществляется через внешнюю шину с помощью Host-адаптера. Устройства, подключенные к SCSI-шине, взаимодействуют друг с другом не напрямую, а через встроенные SCSI-контроллеры.

Привет всем читателям блога. В этой статье поговорим о том, как восстановить производительность системы. Часто у пользователей возникает проблема очень медленной работы компьютера, особенно при записи и при чтении дисков, либо просто необоснованные «тормоза» системы при работе или загрузке.Почему система зависает читайте
Причин возникновения этого может быть великое множество, сегодня предлагаю рассмотреть довольно распространенную – это неверный режим работы CD/DVD - ROM’а или жестких дисков , т. е. поговорим о PIO и DMA . Как проверить жесткий диск на ошибки и устранить их читайте

В чем суть и разница PIO и DMA .

PIO и DMA - это два режима работы жестких дисков, в общем случае любого привода.
PIO (Programmable Input/Output) - уже устаревший режим, для работы ему необходимо
задействовать центральный процессор, что приводит к значительной потери производительности.
DMA (Direct MemoryAccess) - современный метод, который минует процессор и
обращается напрямую к оперативной памяти, это позволяет значительно увеличить производительность и избавиться от надоедливых «тормозов».
Режим DMA в различных вариантах уже давно используется в операционных системах Windows 7, 8, а также в 10, однако в Windows XP, часто случается ситуация в которой DMA автоматически переключается в PIO и уже вывести его обратно обычными методами не получится. Из-за чего возникает эта ситуация?
В Windows XP внедрен механизм контроля ошибок , если при чтении с жесткого диска или другого привода слишком часто возникают ошибки, то система автоматически переходит в более медленный режим, где их процент меньше. Однако, Windows XP может перевести в такой режим и нормально работающее устройство.
Как устранить ошибки Windows читайте

И так, проверим режимы работы всех приводов, чтобы система не тормозила..

1 . Запускаем консоль «Управление компьютером» – правой кнопкой на «Мой компьютер»


в выпадающем меню выбираем пункт «Диспетчер устройств» , либо через
Панель управления. Или Пуск - Выполнить - devmgmt.msc

2. Выбираем «Диспетчер устройств» , выбираем IDE ATA/ATAPI контроллеры ,


откроется несколько строчек с контроллерами – нас интересуют:
Первичный и Вторичный каналы 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.


в ней можно вручную выставить режим DMA .
Здесь располагаются несколько папок - 0000, 0001, 0002.
0000 – отвечает за сам контролер;
0001 – отвечает за Secondary IDE Chanell;
0002 – отвечает за Primary IDE Chanell;
Открываем папку для нужного нам канала. В ней находятся
несколько ключей, для начала выбираем:
MasteDeviceTimingModeAllowed
SlaveDeviceTimingModeAllowed
и проставляем значение равное 0хffffffff.
После этого выставляем значение следующих ключей:
MasterDeviceTimingMode
SlaveDeviceTimingMode
в соответствии с следующими данными, в зависимости от
поддерживаемого UDMA - режима:
UDMA Mode 2 – 0×2010
UDMA Mode 4 – 0×8010
UDMA Mode 5 – 0×10010
UDMA Mode 6 – 0xffff

После этого перегрузитесь и проверьте результат – должно все нормально работать.

Как ускорить и восстановить производительность Windows 10, читайте
Какая скорость передачи информации в компьютерах, читайте
Надеюсь эта статья поможет Вам правильно выставитьрежимы PIO и DMA и повысить общую производительность системы.

Длительное состояние стабильности рано или поздно нарушает что-то непредсказуемое и странное, вот и наступил такой момент. Пару дней назад при копировании файла с одного физического диска на другой, вдруг заметил, что скорость катастрофически низкая - 4-6 Mb/s вместо ожидаемых 50-90 Mb/s (с поправкой на фрагментацию). Смотрю на загрузку CPU – одно ядро полностью занято обработкой прерываний, все понятно – диск перешел в PIO mode.

Исходная конфигурация : ASUS P5Q, 4 x 1 Gb SATA диска, 2 x 1.5 Gb SATA диска, никаких RAID-ов нет, Windows XP SP3. Диск работал в UDMA режиме, как и все остальные, я его тестировал после установки. Device Manager –> IDE controllers –> канал и смотрим “current transfer mode”. На картинке оба устройства работают в режиме UDMA, в моем случае второе устройство работало в PIO mode, но картинку такую я не сохранил. Чтобы понять кто висит на каком канале переключите вид Device Manager-а в View –> Devices by Connection.

Хотя диски SATA, контроллеры в Device Manager-е - ATA. Дело в том, что в BIOS SATA контроллеры по умолчанию сконфигурированы прикидываться ATA контроллерами, в таком случае не требуется дополнительных новых AHCI драйверов. Перейти в AHCI режим можно безболезненно, это не влияет на логическую организацию данных, требует лишь соответствующих драйверов. В AHCI режиме появляется поддержка NCQ (переупорядочивание команд HDD) и в целом производительность чуть чуть подрастает, но совсем немного и еще добавляется поддержка горячей замены.

Версии возможных причин:

1) Что-то с шлейфом.
2) Что-то с драйверами, сбой или конфликт.
3) Что-то с HDD.

Есть вторая система – Windows 7, гружусь в нее и наблюдаю полную работоспособность дисков в UDMA режимах, значит железо вроде в норме. Смотрю журнал событий, в нем не обнаруживаю сообщений о проблеме с дисками, смотрю диагностику SMART – все ок, конфликтов устройств нет, все это хорошо. Беру последние драйверы с ASUS. Записываю старый номер версии драйвера Intel ICH10R, ставлю новый. Ставится подозрительно быстро, в итоге не обновился. Вручную через INF файлы обновляю драйверы ICH10R, ставится, но проблема остается. Иду на Intel, качаю самую свежую версию, ставлю, снова ничего не ставится. Выясняю, что их драйверы обновляются только если устройство вообще не имеет драйвера, чтобы форсировать надо использовать секретный ключик “–overlall”, пробую, обновляется, но не решает проблемы. Меняю шлейф, вынимаю, втыкаю диск – не помогает. Промежуточный итог – железо работает, новый софт не помогает.

Нахожу в Microsoft-е интересную статью: “После появления нескольких ошибок CRC или истечения времени ожидания диски с интерфейсами IDE ATA и ATAPI используют режим PIO” . Пишут, что если были сбои передачи по UDMA, то система последовательно понижает режимы вплоть до PIO mode (или сразу) и замораживает это состояние! Чтобы вернуть обратно предлагают удалить контроллер из Device Manager-а и он возродится из пепла. На это я не пошел, т.к. побоялся, что он может и не возродиться (писали про это где-то), поэтому пошел вторым путем описанным там и еще в других местах.

Решение. Открыть ветку реестра “HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Control\Class\{4D36E96A-E325-11CE-B FC1-08002BE10318}”, в ней будут ветки 0000, 0001 и т.д. Они соответствуют устройствам в Device Manager-е. Нас интересуют только каналы, название смотрим по DriverDesc, в данном случае “Primary IDE Channel”.

Обращаем внимание на MasterDeviceTimingModeAllowed и SlaveDeviceTimingModeAllowed – они задают маску допустимых режимов, если 0xffffffff, значит все допустимо, а если 0x1f, то только PIO mode. У меня проблема на Slave. Сами текущие режимы хранятся в MasterDeviceTimingMode и SlaveDeviceTimingMode, они отличаются (в сети можно найти смысл чисел). MS предлагает сделать следующее – выставить дополнительный ключ ResetErrorCountersOnSuccess (DWORD) = 1 и перегрузиться. Я это сделал, но это ничего не дало, дало только то, что желаемый режим UserSlaveDeviceTimingModeAllowed тоже сбросился в 0x1f. Я его вернул в Device Manager-е, но думаю можно и здесь вручную выставить 0xffffffff. Далее я выствил SlaveDeviceTimingModeAllowed = 0xffffffff, перегрузился и вуаля!, все заработало. Итого, я думаю надо было сделать всего лишь следующее (проблема на Slave):

UserSlaveDeviceTimingModeAllowed = 0xffffffff, SlaveDeviceTimingModeAllowed = 0xffffffff, ResetErrorCountersOnSuccess = 1 и перегрузиться.

На следующей картинке итоговое состояние реестра после перезагрузки. Режимы теперь одинаковые, маски сохранились и в Device Manager-е видим картинку, как в начале поста.

Теперь о причине. Как следует из статьи MS, одна из причин исправления их драйвера была в том, что время ожидания старта HDD было недостаточным (в Win2000 – 4 сек, сделали 10 сек) и это было проблемой в случае выхода дисков из сна. Я постоянно использовал настройку выключения дисков по бездействию через 2 часа, что приводило иногда к веерному их просыпанию, когда некоторые приложения хотели полезть сразу на несколько разделов. Я полагаю, что может при каком-то сценарии таймаут все-таки был превышен и был зафиксирован сбой, который привел к отключению UDMA. Теперь я отказался от отключения дисков, пусть работают, к тому-же частые включения и выключения возможно больше вредят чем приносят пользу.

1. Откройте «Диспетчер устройств» (Device Manager).
Это можно сделать, нажав правой кнопкой мышки на «Мой компьютер» (My Computer), выбрать закладку «Дисковые устройства» (Hardware), и нажать кнопку выбрать «IDE» (Select Device Manager).

2. Откройте раздел «IDE ATA/ATAPI контроллер (IDE ATA/ATAPI Controllers)» и дважды кликните на «Первичный IDE канал» (Primary IDE Channel).

3. Открыв закладку «Дополнительные параметры» (Advanced Settings), проверьте установку «Устройство 1» (Device 1).
Вполне возможно, что Ваша текущая установка - «PIO».

4. Установите «DMA», если доступно (DMA if available).

5. По окончании всех действий перегрузите компьютер.

Если Вы имеете устройство на вторичном IDE канале, повторите те же шаги для «Вторичный IDE канал» (Secondary IDE Channel).

Труборез и трубогиб для самостоятельной сборки СЖО

Два инструмента компании EK Water Blocks адресованы тем, кто собирает СЖО самостоятельно: резак EK-Loop Soft Tube Cutter и приспособление для гибки труб EK-Loop Modulus Hard Tube Bending Tool.

Накопительное обновление Windows 10 1909 KB4528760

14 января 2020 г. Microsoft выпустила накопительное обновление KB4528760 (Build 18363.592) для Windows 10 November 2019 Update (версия 1909) на базе процессоров x86, x64 (amd64), ARM64 и Windows Server 2019 (1909) для систем на базе процессоров x64.

Cherry улучшила механические переключатели клавиатуры

Компания Cherry, известная как поставщик механических переключателей для клавиатур, улучшила популярные модели серии MX: Red, Brown, Black и Speed.

Драйвер AMD Radeon Software Adrenalin 2020 Edition 20.1.1

Первый январский 2020 г. набор графических драйверов Radeon Software Adrenalin 2020 Edition 20.1.1 содержит оптимизации для игры Monster Hunter World: Iceborne и исправляет почти три десятка ошибок, выявленных в предшествующих релизах.