Прямой доступ к памяти (DMA - Direct Memory Access)
Прямой доступ к памяти реализуется с помощью DMA - контроллера.
Контроллер содержит несколько регистров:
· регистр адреса памяти
· счетчик байтов
· управляющие регистры, могут содержать:
- порт ввода-вывода
- чтение или запись
- единицы переноса (побайтно или пословно)
Без контроллера происходит следующее:
1. Процессор дает команду дисковому контроллеру прочитать данные в буфер,
2. Считываются данные в буфер, контроллер проверяет контрольную сумму считанных данных (проверка на ошибки). Процессор, до прерывания, переключается на другие задания.
3. Контроллер диска инициирует прерывание
4. Операционная система начинает работать и может считывать из буфера данные в память
Работа DMA - контроллера
С контроллером происходит следующее:
1. Процессор программирует контроллер (какие данные и куда переместить)
2. Процессор дает команду дисковому контроллеру прочитать данные в буфер
3. Считываются данные в буфер, контроллер диска проверяет контрольную сумму считанных данных, (процессор, до прерывания, переключается на другие задания).
4. Контроллер DMA посылает запрос на чтение дисковому контроллеру
5. Контроллер диска поставляет данные на шину, адрес памяти уже находится на шине, происходит запись данных в память
6. Когда запись закончена, контроллер диска посылает подтверждение DMA контроллеру
7. DMA контроллер увеличивает используемый адрес и уменьшает значение счетчика байтов
8. Все повторяется с пункта 4, пока значение счетчика не станет равной нулю.
9. Контроллер DMA инициирует прерывание
Операционной системе не нужно копировать данные в память, они уже там.
Дата добавления: 2014-12-21; просмотров: 874;