Задействовать dma windows 7 что это

Оптимизация windows 7 - различные методы для оптимизации windows 7.

Как вы знаете, Windows 7 получила более значительные улучшения во времени загрузки и отклика системы по сравнению с её предшественницей Windows Vista. Были внесены существенные изменения, позволившие системе не расходовать всю системную память при открытии большого количества окон проводника, оптимизированы системные службы и процессы.

В данной статье мы рассмотрим:

  • оптимизацию работы меню пуск
  • оптимизацию работы жесткого диска в Windows 7
  • оптимизацию скорости копирования и перемещения файлов в Windows 7
  • оптимизацию работы с драйверами Windows 7
  • оптимизацию времени загрузки Windows 7
  • ускорение процесса просмотра эскизов изображений
  • ускорение завершение работы Windows 7

Внимание!
Обратите внимание на то, что часть рассмотренных методов ускорения работы Windows 7 основываются на отключении какого-либо рода задач, упрощении или улучшении функциональности системы для более удобного ее использования. Т.е. по сути вы выбираете между удобством и производительностью.

Пути оптимизации Windows 7

1. Ускорение работы меню пуск.

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

Для этого вам необходимо перейти к настройке меню пуск: в свойствах «Панель задач и меню Пуск» (для активации перейдите в панель управления Windows 7: Пуск –> Панель управления). Перейдите в закладку «Меню Пуск» и нажмите на кнопку «Настроить».
Оптимизация windows 7 - ускорение меню пуск. Рисунок 1. Настройка меню «Пуск»

Уберите галочку «Выделять недавно установленные программы», после чего нажмите «Применить».
Оптимизация windows 7 - отключение выделения недавно установленных программ. Рисунок 2. Отключение выделения недавно установленных программ
Для того чтобы уменьшить паузу, при появлении окна меню пуск, перейдите в редактор реестра (команда «regedit» в диалоге «Найти программы и файлы»).
Оптимизация windows 7 - запуск редактора реестра. Рисунок 3. Запуск редактора реестра
После запуска редактора реестра (regedit.exe) перейдите в ветку HKEY_CURRENT_USER -> Control Panel -> Desktop (рис. 4).
Оптимизация windows 7 - выбор необходимой ветки реестра. Рисунок 4. Выбор необходимой ветки реестра
Измените значение ключа MenuShowDelay с «400» на «50». Пауза значительно сократится.

Оптимизация windows 7 - изменение паузы при отображении окна. Рисунок 5. Изменение паузы при отображении окна
2. Оптимизация работы жесткого диска в Windows 7

Эта опция знакома еще со времен Windows XP, но если в XP она была изначально включена, то в Windows 7 оптимизацию жестких дисков посчитали лишней и по умолчанию она отключена. Сейчас мы рассмотрим метод включения данной опции.

Заходим в Пуск -> Панель управления -> Диспетчер устройств -> Дисковые устройства -> (выбираем свой жесткий диск) -> Свойства -> Политика… и ставим там галочку напротив пункта «Отключить очистку буфера кэша записей Windows для этого устройства».
Оптимизация windows 7 - отключение очистки буфера кэша записей windows. Рисунок 6. Отключение очистки буфера кэша записей Windows
Теперь в этом же «Диспетчере устройств» раскрываем другую ветку — «IDE ATA/ATAPI контроллеры (IDE ATA/ATAPI Controllers)», после чего в свойствах всех каналов ATA (ATA Channel 0, ATA Channel 1 и т.д.) во вкладке «Дополнительные настройки (Advanced Settings)» проверяем, стоит ли галочка на «Задействовать/Включить DMA (Enable DMA)».
Включение режима DMA Рисунок 7. Включение режима DMA
Если галочка не стоит – установите ее.

3. Ускорение копирования и перемещения файлов в Windows 7

Windows 7 получила еще одну интересную особенность — удаленное разностное сжатие.
С одной стороны эта опция вычисляет и передает различие между двумя объектами, минимизируя объем передаваемых данных, но с другой – это отнимает время на калькуляцию.

Вы можете отключить эту функцию. Для этого перейдите в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows -> Удалённое разностное сжатие (необходимо снять галочку).
Отключение разностного сжатия Рисунок 8. Отключение разностного сжатия
4. Отключение проверки цифровой подписи драйверов

Данное действие также может немного увеличить скорость работы системы (при установке новых драйверов). Для отключения данной опции в Windows 7 выполните следующие действия:

Выполните в «Пуске» gpedit.msc.
Запуск панели администрирования Рисунок 9. Запуск панели администрирования

Затем перейдите по следующему пути:

Конфигурация пользователя -> Административные шаблоны -> Система -> Установка драйвера -> Цифровая подпись драйверов устройств. В этом окне необходимо выбрать режим «Отключено».
Оптимизация windows 7 - отключение проверки цифровой подписи драйверов Рисунок 10. Отключение проверки цифровой подписи драйверов
5. Ускорение загрузки Windows 7

Как известно, загрузка операционной системы Windows 7 довольно сильно оптимизирована (по сравнению в Windows Vista она может проходить на 10-20 секунд быстрее).

Мы можем выиграть еще несколько секунд, правда данный совет относится к тем пользователям, которые работают на многоядерных процессорах с Windows 7 в качестве операционной системы.
Итак, выполните следующие действия:

Введите MSCONFIG в поле поиска меню «Пуск» и нажмите клавишу «Enter».

В открывшемся окне перейдите на вкладку «Загрузка (Boot)» и нажмите на кнопку «Дополнительные параметры (Advanced options)».
Окно оптимизации системы. Рисунок 11. Дополнительные параметры оптимизации системы Установите флажок напротив пункта «Число процессоров (Number of processors)» и в выпадающем меню под этим пунктом выберите максимальное число ваших ядер (2 или 4).

Установка числа процессоров, для систем с многопоточными процессорами. Рисунок 12. Установка числа процессоров для систем с многопоточными процессорами
Нажмите «Ок» и перезагрузите систему, чтобы увидеть довольно ощутимую разницу в скорости загрузки Windows 7.

6. Ускорение просмотра эскизов (миниатюр).

Вы можете увеличить скорость просмотра эскизов (миниатюр) в Windows 7. Для этого вам необходимо выполнить следующие действия:

Введите regedit (без кавычек) в поле поиска меню «Пуск» и нажмите клавишу «Enter».

Перейдите в ветку «HKEY_CURRENT_USER -> Control Panel -> Mouse».
Выбор нужной ветки реестра для оптимизации паузы при отображении эскизов. Рисунок 13. Выбор нужной ветки реестра для оптимизации паузы при отображении эскизов
Дважды щелкните на параметре MouseHoverTime и измените его значение на 100.
Установите новое значение Рисунок 14. Установка нового значения
7. Уменьшение времени выключения Windows 7

Время завершения работы Windows 7 можно заметно уменьшить. Однако это довольно варварский способ: мы уменьшаем время, которое отводится процессу на завершение работы программы, после чего программа будет завершена принудительно.

Введите regedit в поле поиска меню «Пуск» и нажмите клавишу «Enter».

Перейдите в ветку HKEY_LOCAL_MACHINE -> System -> CurrentControlSet -> Control.
Выберите необходимый ключ реестра.
Рисунок 15. Выбор необходимого ключа реестра

Измените значение параметра «WaitToKillServiceTimeout» со значения 12000 (12 секунд) на 2000 (2 секунды).
Измените значение Рисунок 16. Изменение значения.

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

Содержание:

  • 1 Включение режима DMA
    • 1.1 Возможные режимы работы жесткого диска
    • 1.2 Самопроизвольное переключение Виндовс на режим PIO и признаки этого
    • 1.3 Включаем режим DMA

Включение режима 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_MACHINESYSTEMCurrentControlSetControlClass{4D36Е96A-Е325-11CE-BFC1-08002BE10318};

Реестор

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

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


Windows, Windows XP

  • 18.08.2021
  • 4 522
  • 0
  • 1
  • 1
  • 0

Режимы PIO и DMA

  • Содержание статьи
    • Описание
    • Что такое PIO и DMA?
    • Как сменить режим работы с PIO на DMA?
    • Добавить комментарий

Описание

Часто у пользователей возникает проблема очень медленной работы компьютера, особенно при записи и при чтении дисков, либо просто необоснованные «тормоза» системы при работе или загрузке. Причин возникновения этого может быть великое множество, сегодня предлагаю рассмотреть довольно распространенную – это неверный режим работы 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_MACHINESYSTEMCurrentControlSetServicesCdfs, создайте ключ ErrorControl и установите его значение равным 0. После этого перезагрузитесь и выполните пункт №4.
Действуем дальше: открываем следующую ветку HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E96A-E325-11CE-BFC1-08002BE10318} в ней можно вручную выставить режим 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
После этого перезагрузитесь и проверьте результат – должно все нормально работать.

Авг
28

Доброго времени суток! Постоянные читатели блога возможно помнят, что я уже однажды писал статью о том, как ускорить работу компьютера на windows 7. И вот, спустя продолжительное время я, тщательно обшарив многие интернет проекты посвященные Windows 7, нашел еще несколько относительно простых способов, которые помогут нам оптимизировать работу компьютера на Windows 7. Оптимизация Windows 7 это очень серьезная вешь, поэтому отнеситесь к данным действиям максимально серьезно.

Содержание

Сегодня в статье будут рассмотрены такие вопросы, как:

  • 1) Оптимизация скорости копирования и перемещения файлов в windows 7
  • 2) Оптимизация работы жесткого диска в windows 7
  • 3) Оптимизация работы меню пуск

Теперь давайте перейдем непосредственно к делу.

1. Оптимизация скорости копирования и перемещения файлов в windows 7

В Windows 7 присутствует интересная особенность — удаленное разностное сжатие. Я не буду подробно рассказывать об этом, так как хочу передать Вам данные тонкости настройки windows 7 в максимально простом виде, дабы не загружать Вас лишней информацией. Скажу просто, что эта функция вычисляет и передает различие между двумя объектами, минимизируя объем передаваемых данных, но при этом она отнимает время на калькуляцию (из справочника Windows).

[sc:rsycontent ]

По желанию Вы можете отключить данную функцию, для этого перейдите в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows и снимите галочку с пункта «Удалённое разностное сжатие».

С первым пунктом справились, идем дальше.

2. Оптимизация работы жесткого диска в windows 7

Данная опция присутствовала еще в Windows XP, но там она была включена изначально. Увы, в Windows 7 оптимизацию жестких дисков посчитали лишней и по умолчанию она отключена. Но эта не беда. Сейчас я расскажу Вам о том, как включить данную функцию.

Заходим в «Пуск -> Панель управления -> Диспетчер устройств -> Дисковые устройства -> (выбираем свой жесткий диск) -> Свойства -> Политика… и ставим там галочку напротив пункта «Отключить очистку буфера кэша записей Windows для этого устройства»

Теперь необходимо вернуться в «Диспетчер устройств» и развернуть другую ветку — «IDE ATA/ATAPI контроллеры», после этого в свойствах всех каналов ATA (ATA Channel 0, ATA Channel 1 и т.д.) во вкладке «Дополнительные настройки (Advanced Settings)» проверяем, стоит ли галочка на пункте «Задействовать/Включить DMA (Enable DMA)»

Если галочка не установлена, то следовательно Вам необходимо её поставить. И на этом оптимизация работы жесткого диска закончена, идем дальше :-)

3. Оптимизация работы меню Пуск

Я уверен, открывая меню «Пуск» Вы замечали что система подсвечивает недавно установленные программы. Следовательно можно догадаться, что на определение этих программ и их подсветку уходит время при каждом открытии.

Я расскажу Вам, как сэкономить это самое время.

Для начала перейдите к настройке меню пуск:

1) Нажмите на панели задач (она находится в самом низу) правой кнопкой мыши и выберите свойства.

2) Перейдите в закладку «Меню Пуск» и нажмите на кнопку «Настроить»

В появившемся окне уберите галочку с пункта «Выделять недавно установленные программы», после чего нажмите «Применить».

Для того чтобы уменьшить паузу, при появлении окна меню пуск, нам необходимо перейти в редактор реестра, для этого зайдите в меню пуск и в поле «Найти программы и файлы» введите «regedit» (без кавычек):

Затем, в редакторе реестра перейдите в ветку HKEY_CURRENT_USER -> Control Panel -> Desktop и измените значение ключа MenuShowDelay с «400» на «50». Пауза значительно сократится.

Вот и все, мы ускорили работу меню Пуск

Заключение

На этом друзья я заканчиваю свою статью, но сразу скажу что это не все. Просто не хотелось писать статью длиною в километр, так как меня самого напрягает читать такие статьи. В следующей части я расскажу Вам о еще 4 способах оптимизации своей ОС. Чтобы не пропустить её, подпишитесь на обновления блога.

С Уважением, Александр Сидоренко!

PIO (Programmable Input/Output) – очень старый и имеющий много существенных недостатков режим работы устройств, при передачи данных жёсткими дисками и приводами CD/DVD задействуется процессор, конечно это уменьшает производительность. В 1990 годах появляется режим обмена данными, использующий прямой доступ к памяти DMA (Direct Memory Access), центральный процессор уже не используется и устройства обращаются напрямую к основной памяти, что увеличивает быстродействие системы в целом в несколько раз.

PIO и DMA

В этой статье мы рассмотрим причины по которым операционная система может перевести устройства в более медленный режим работы PIO и как их устранить. Данный вопрос возник у моего друга, когда его устроили на работу системным администратором на предприятие, где ощущалась острая необходимость обновления компьютерного парка, конечно начальство этого делать не собиралось и пришлось выкручиваться самим. В основном компьютеры были не новые, но со своими обязанностями справлялись. Что интересно, два из них работали в режиме PIO и их надо было как-то переводить в режим DMA

На первом же системном блоке работающем в режиме PIO, мы увидели, что хард подключен с помощью 40-жильного интерфейсного кабеля, для работы DMA нужен 80-жильный шлейф IDE, заменяем и вопрос решается. На другом компьютере, стоял новый жесткий диск, Western Digital интерфейса подсоединения SATA 250 GB и на нём находилась операционная система Windows XP, вторым Seagate Barracuda 80GB, старого интерфейса IDE и оба работали в режиме PIO. Стоило убрать устаревший винчестер IDE и новый SATA работал в режиме DMA.

В принципе старый хард можно было убрать, но вопрос бы остался нерешённым. Прежде чем переустанавливать драйвера на материнскую плату или саму Windows, удалять первичные и вторичные каналы IDE, можно сказать плясать с бубном, я стал вспоминать что где-то, читал о подобной проблеме и о том, как её решили.
А решили её банально, умные люди. Два жёстких диска, нового образца SATA и старого IDE будут работать вместе, в режиме DMA, если они одного производителя.

У меня дома был хард Western Digital, интерфейса IDE, на 40GB, мы установили его в системный блок вместо прежнего и они оба заработали в режиме DMA, вот так был решён конфликт устройств. Что ещё можно предпринять в случае если Windows XP перевела работу ваших устройств в более медленный режим PIO, в принципе все методы, которые можно применить, описаны в нашей статье Тормозит жесткий диск, кроме одного, это редактирование реестра, его и рассмотрим сейчас.

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

Нам нужен куст HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdfs, далее создаём ключ ErrorControl со значением равным 0 и перезагружаемся и удаляем в диспетчере устройств в пункте IDE ATA/ATAPI контроллеры, все Первичные и Вторичные каналы IDE.
Далее следующий куст

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E96A-E325-11CE-BFC1-08002BE10318}, тут нам нужны папки
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
Перезагрузка.

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

DMA, что это? О чем вы говорите?

DMA, или Direct Memory Access – технология прямого доступа к памяти, минуя центральный процессор. В эпоху 486-ых и первых Pentium во всю царствовала шина ISA, а также метод обмена данными между устройствами – PIO (Programmed Input/Output).

PIO по своей сути прост: чтобы получить данные с устройства, драйвер операционной системы (или же firmware другого устройства), должен был читать эти данные из регистров устройства. Давайте разберемся на примере:

  • На сетевую карту пришло 1500 байт данных.
  • Сетевая карта инициирует прерывание с целью сообщить процессору, что данные необходимо забрать с устройства, иначе произойдет так называемый buffer overrun.
  • Операционная система ловит прерывание от контроллера прерываний и отдает его на обработку драйверу.
  • Драйвер в цикле побайтно читает данные с регистров сетевой карты.

В итоге, если чтение одного байта отнимает около 1 мс процессорного времени, то чтение 1500 байт – соответственно 1500 мс. Но это всего лишь один Ethernet пакет, представте себе, сколько пакетов получает сетевая карта, когда вы читаете любимый хабрахабр. Конечно в реальности чтение в PIO режиме можно организовывать по 2, 4 байта, однако потери производительности при этом все равно будут катастрофическими.

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

Кстати говоря, DMA используется не только для обмена данными между устройством и ОЗУ, но также между устройствами в системе, возможен DMA трансфер между двумя участками ОЗУ (хотя данный маневр не применим к x86 архитектуре). Также в своем процессоре Cell, IBM использует DMA как основной механизм обмена данными между синергетическими процессорными элементами (SPE) и центральным процессорным элементом (PPE). Также каждый SPE и PPE может обмениватся данными через DMA с оперативной памятью. Данный прием – на самом деле большое преимущество Cell, ибо избавляет от проблем когерентности кешей при мультипроцессорной обработке данных.

И снова теория

Прежде чем мы перейдем к практике, я бы хотел осветить несколько важных аспектов программирования PCI, PCI-E устройств.

Я вскользь упомянул о регистрах устройства, но как же к ним имеет доступ центральный процессор? Как многие из вас знают, есть такая сущность в компьютерных технологиях, как IO порты (Input/Output ports). Они предназначены для обмена информацией между центральным процессором и периферийными устройствами, а доступ к ним возможен с помощью специальных ассемблерных инструкций — in/out. BIOS (или OpenFirmware на PPC based системах) на ранних этапах инициализации PCI устройств, а также некоторых других (Super IO контроллера, контроллера PS/2 устройств, ACPI timer и т.д.), закрепляет за определенным контроллером собственный диапазон IO портов, куда и отображаются регистры устройства.

Также регистры устройства могут отображатся в ОЗУ (Memory Mapped Registers), т.е. на физическое адресное пространство. Данный метод имеет ряд преимуществ, а именно:

  • Скорость доступа к физической памяти выше, нежели к IO портам.
  • IO порты могут отображать не более 65535 байт регистров, в то время как размер ОЗУ современных компьютеров в разы больше.
  • Читать регистры устройства из ОЗУ проще, нежели с помощью IO портов :)

Данные о том, какой диапазон IO портов или ОЗУ закреплен за устройством, хранятся в конфигурационном пространстве PCI, а именно в регистрах BAR0, BAR1, BAR2, BAR4, BAR5 [1].

Итак, существует два метода утилизации DMA: contiguous DMA и scatter/gather DMA.

Contiguous DMA

Данный метод очень прост и сейчас практически отжил свое, однако до сих пор используется для программирования звуковых контроллеров (к примеру Envy24HT). Его принцип следующий:

  • Выделяется один буфер достаточно большого размера в оперативной памяти.
  • Физический адрес (точнее сказать адрес на шине участка памяти, потому как physical address и bus address – равны в x86 архитектуре, но не равны в PPC) этого буфера записывается в регистр устройства.
  • Во время того, как приходят данные на устройство, контроллер устройства инициирует DMA трансфер.
  • После того, как буфер полностью заполнен, контроллер устройства инициирует прерывание, чтобы сообщить центральному процессору, что буфер следует передать операционной системе.
  • Драйвер операционной системы обрабатывает прерывание, и передает полученные данные из буфера, далее по стеку устройств операционной системы.

Как видите все достаточно просто, и как только шина ISA обзавелась поддержкой DMA, данный метод нашел очень широкое применение. Например драйвера сетевых карт имели два таких DMA буфера: один на прием данных (rx), другой на отсылку (tx).

Scatter/gather DMA

С ростом скорости Ethernet адаптеров, contiguous DMA показал свою несостоятельность. В основном из-за того, что требовались области памяти достаточно большого размера, которые подчас невозможно было выделить, так как в современных системах фрагментация физической памяти достаточно высока. Во всем виноват механизм виртуальной памяти, без которого нынче никуда :)

Решение напрашивается само собой: использовать вместо одного большого участка памяти несколько, но в разных регионах этой самой памяти. Возникает вопрос, но как же сообщить контроллеру устройства, как инициировать DMA трансфер и по какому адресу писать данные? И тут нашли решение, использовать дескрипторы, чтобы описывать каждый вот такой участок в оперативной памяти.

Типичный дескриптор DMA буфера содержит следующие поля:

  1. Адрес участка ОЗУ (именно bus address), который предназначен для DMA трансфера.
  2. Размер описываемого участка ОЗУ.
  3. Опциональные флаги и другие специфические аргументы.
  4. Адрес следующего дескриптора в памяти.

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

Алгоритм scatter/gather DMA следующий:

  • Драйвер операционной системы выделяет и иницилизирует дескрипторы DMA буферов.
  • Драйвер выделяет DMA буферы (участки ОЗУ для DMA трансфера) и записывает необходимую информацию о них в дескрипторы.
  • Устройство по мере возникновения потребности, заполняет DMA буферы, и после того, как заполнен один или несколько буферов инициирует прерывание.
  • Драйвер ОС просматривает все дескрипторы DMA буферов, определяет какие из них были заполнены контроллером устройства, пересылает данные из буфера далее по стеку устройств и помечает буфер как готовый к DMA трансферу.

Порядок в каком контроллер устройства заполняет DMA буферы, определяется производителем. Контроллер может писать в первый свободный DMA буфер, либо просто писать подряд (дескрипторы DMA буферов в данном случае образуют односвязный кольцевой список) во все буфера и т.д.

Стоп…

На сегодня пожалуй все, иначе информации станет слишком много. В следующей статье я покажу вам, как с этой уличной магией работает IOKit. Жду отзывов и дополнений ;)

Ссылки

[1] PCI Local Bus Specification

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

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

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

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

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

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

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

Vklyucheniya-Rezhima-PIO.png

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

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

Rezhim-DMA.png

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

  1. Нажмите Win+R и напечатайте в появившейся строке команду regedit;
  2. Перейдитепопути HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36Е96A-Е325-11CE-BFC1-08002BE10318};

Reestor.png

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

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

Информация к новости

  • Просмотров: 33 455
  • Автор: admin
  • Дата: 1-09-2011

1-09-2011

Категория: Жёсткий диск / Железо и периферия

PIO (Programmable Input/Output) – очень старый и имеющий много существенных недостатков режим работы устройств, при передачи данных жёсткими дисками и приводами CD/DVD задействуется процессор, конечно это уменьшает производительность. В 1990 годах появляется режим обмена данными, использующий прямой доступ к памяти DMA (Direct Memory Access), центральный процессор уже не используется и устройства обращаются напрямую к основной памяти, что увеличивает быстродействие системы в целом в несколько раз.

PIO и DMA

В этой статье мы рассмотрим причины по которым операционная система может перевести устройства в более медленный режим работы PIO и как их устранить. Данный вопрос возник у моего друга, когда его устроили на работу системным администратором на предприятие, где ощущалась острая необходимость обновления компьютерного парка, конечно начальство этого делать не собиралось и пришлось выкручиваться самим. В основном компьютеры были не новые, но со своими обязанностями справлялись. Что интересно, два из них работали в режиме PIO и их надо было как-то переводить в режим DMA

На первом же системном блоке работающем в режиме PIO, мы увидели, что хард подключен с помощью 40-жильного интерфейсного кабеля, для работы DMA нужен 80-жильный шлейф IDE, заменяем и вопрос решается. На другом компьютере, стоял новый жесткий диск, Western Digital интерфейса подсоединения SATA 250 GB и на нём находилась операционная система Windows XP, вторым Seagate Barracuda 80GB, старого интерфейса IDE и оба работали в режиме PIO. Стоило убрать устаревший винчестер IDE и новый SATA работал в режиме DMA.

В принципе старый хард можно было убрать, но вопрос бы остался нерешённым. Прежде чем переустанавливать драйвера на материнскую плату или саму Windows, удалять первичные и вторичные каналы IDE, можно сказать плясать с бубном, я стал вспоминать что где-то, читал о подобной проблеме и о том, как её решили. А решили её банально, умные люди. Два жёстких диска, нового образца SATA и старого IDE будут работать вместе, в режиме DMA, если они одного производителя.

У меня дома был хард Western Digital, интерфейса IDE, на 40GB, мы установили его в системный блок вместо прежнего и они оба заработали в режиме DMA, вот так был решён конфликт устройств. Что ещё можно предпринять в случае если Windows XP перевела работу ваших устройств в более медленный режим PIO, в принципе все методы, которые можно применить, описаны в нашей статье Тормозит жесткий диск, кроме одного, это редактирование реестра, его и рассмотрим сейчас.

1314881397_2.jpgВообще метод рисковый, можно не загрузиться, поэтому сделайте лучше всего бэкап системы, например в Acronis.Нам нужен куст HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdfs, далее создаём ключ ErrorControl со значением равным 0 и перезагружаемся и удаляем в диспетчере устройств в пункте IDE ATA/ATAPI контроллеры, все Первичные и Вторичные каналы IDE. Далее следующий кустHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E96A-E325-11CE-BFC1-08002BE10318}, тут нам нужны папки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 Перезагрузка. 1314904521_11.jpgВернутьсяКомментариев: 66 Дорогой посетитель, Вы можете задать на сайте любой вопрос и обязательно получите ответ! Задайте вопрос Быстрый доступ

Администрирование клиентских ОС Windows > Администрирование Windows 7

  • Вопрос

  • Обнаружил не давно, что мой DVD в PIO стоит, много искал, как в DMA его перевести ничего не выходило. В реестре записей нет, птичка не активируется, удаление, переподключение не помогало. DVD SATA, все порты SATA включая e-SATA у меня заняты. Получается так, что винт и DVD висят на одном канале и как только винт переводишь в PIO — включается DMA у DVD, включаешь DMA у винта — DVD в PIO уходит, что за прикол я не понял. Как это исправить можно кто-то знает?17 марта 2010 г. 4:55 Ответить | Цитировать

Ответы

  • В поиске пробыл я часа четыре, и перепробовал все, что смог найти, кроме переустановки Win 7. Перевести работу дисков на AHCI у меня так и не вышло, но заменив один из контроллеров IDEна стандартный контроллер ACHI все SATA винты и DVD раскидались по устройству на канал и DVDстал в DMAработать, так что проблема была решена. Если попытаться обновить стандартный контроллер ACHI на тот что на диске от материнской платы то все тот же синий экран в режиме RAIDили темный экран в режиме ACHI, или длительная загрузка в режиме native, конца которой я спустя 10 мин так и не дождался…

    • Предложено в качестве ответа25 марта 2010 г. 16:55
    • Помечено в качестве ответа29 марта 2010 г. 6:29

    25 марта 2010 г. 3:32 Ответить | Цитировать

Все ответы

  • 17 марта 2010 г. 5:51 Ответить | Цитировать
  • что-то я не понял… а это тогда что такое?http://img34.imageshack.us/img34/7185/sata.pngЕсли AHCI не используется, то SATA-диски эмулируются как IDE-устройства.17 марта 2010 г. 6:37 Ответить | Цитировать
  • 17 марта 2010 г. 6:39 Ответить | Цитировать
  • У меня материнская плата ASUS M2R32-MVP переключение дисков в AHCI приводит просто к темному экрану при попытке загрузить ОС. Переключение в RAID приводит к синиму экрану. Качал драйвера на чипсет, менял значения в реестре винда отказывается видить жесткие диски на SATA. Запускал востановление системы, давал ей драйвера, но ОС все равно не хочет увидеть еще 3 винта и СД.21 марта 2010 г. 21:32 Ответить | Цитировать
  • Вот этими рекомендациями пробовали воспользоваться?MCSA21 марта 2010 г. 23:36 Ответить | Цитировать
  • Да, так и стоит в реестре 023 марта 2010 г. 4:28 Ответить | Цитировать
  • Странно. У меня прокатило.Тогда остаётся одно — запуск установки Windows 7 в режиме восстановления Windows. Все проги и документы в этом случае останутся рабочими и процесс установки пройдёт гораздо быстрее. Хотя, документы по старой привычке я бы всё-таки куда-нибудь забэкапил.

    MCSA23 марта 2010 г. 6:47 Ответить | Цитировать

  • Парни, все гораздо проще.

    Вы не хотите использовать поиск.

    23 марта 2010 г. 10:06 Ответить | Цитировать

  • В поиске пробыл я часа четыре, и перепробовал все, что смог найти, кроме переустановки Win 7. Перевести работу дисков на AHCI у меня так и не вышло, но заменив один из контроллеров IDEна стандартный контроллер ACHI все SATA винты и DVD раскидались по устройству на канал и DVDстал в DMAработать, так что проблема была решена. Если попытаться обновить стандартный контроллер ACHI на тот что на диске от материнской платы то все тот же синий экран в режиме RAIDили темный экран в режиме ACHI, или длительная загрузка в режиме native, конца которой я спустя 10 мин так и не дождался…

    • Предложено в качестве ответа25 марта 2010 г. 16:55
    • Помечено в качестве ответа29 марта 2010 г. 6:29

    25 марта 2010 г. 3:32 Ответить | Цитировать

Используемые источники:

  • https://datbaze.ru/windows/vklyuchenie-rezhima-dma.html
  • https://remontcompa.ru/hard-disk/132-pio-i-dma.html
  • https://social.technet.microsoft.com/forums/ru-ru/4b5e981e-77cd-4aa6-9135-b5e7afbd5464/10551077108810771082108311021095108010901100-pio-10851072-dma

Понравилась статья? Поделить с друзьями:
  • Задействовал не всю память жесткого диска при установке windows 10
  • Задвоилась учетная запись в windows 10 при входе
  • Задачник на рабочий стол windows 10
  • Задачи начальной настройки windows server 2008 как включить
  • Задача на перезагрузку компьютера windows 10