Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Отображаемый на адресное пространство памяти ввод-вывод
Каждый контроллер имеет несколько регистров, которые используются для взаимодействия с центральным процессором. При помощи этих регистров ОС управляет (считывает, пишет, включает и т.д.) и определяет состояние (готовность) устройства. У многих устройств есть буфер данных (например: видеопамять). Реализации доступа к управляющим регистрам и буферам: o номер порта ввода-вывода - назначается каждому управляющему регистру 8- или 16-рзрядное целое число. Адресные пространства ОЗУ и устройства ввода-вывода в этой схеме не пересекаются. o отображаемый на адресное пространство памяти ввод-вывод - регистры отображаются на адресное пространство памяти. o смешанная реализация - используется в х86 и Pentium,
Прямой доступ к памяти (DMA - Direct Memory Access) Прямой доступ к памяти реализуется с помощью DMA - контроллера. Контроллер содержит несколько регистров: o регистр адреса памяти o счетчик байтов o управляющие регистры, могут содержать: Без контроллера происходит следующее: 1. Процессор дает команду дисковому контроллеру прочитать данные в буфер, 2. Считываются данные в буфер, контроллер проверяет контрольную сумму считанных данных (проверка на ошибки). Процессор, до прерывания, переключается на другие задания. 3. Контроллер диска инициирует прерывание 4. Операционная система начинает работать и может считывать из буфера данные в память Работа DMA - контроллера С контроллером происходит следующее: 1. Процессор программирует контроллер (какие данные и куда переместить) 2. Процессор дает команду дисковому контроллеру прочитать данные в буфер 3. Считываются данные в буфер, контроллер диска проверяет контрольную сумму считанных данных, (процессор, до прерывания, переключается на другие задания). 4. Контроллер DMA посылает запрос на чтение дисковому контроллеру 5. Контроллер диска поставляет данные на шину, адрес памяти уже находится на шине, происходит запись данных в память 6. Когда запись закончена, контроллер диска посылает подтверждение DMA контроллеру 7. DMA контроллер увеличивает используемый адрес и уменьшает значение счетчика байтов 8. Все повторяется с пункта 4, пока значение счетчика не станет равной нулю. 9. Контроллер DMA инициирует прерывание Операционной системе не нужно копировать данные в память, они уже там. Прерывания После того как устройство ввода-вывода начало работу, процессор переключается на другие задачи. Чтобы сигнализировать процессору об окончании работы, устройство инициализирует прерывание, выставляя сигнал на выделенную устройству линию шины (а не выделенный провод). Контроллер прерываний - обслуживает поступающие прерывания от устройств. 1. Если необработанных прерываний нет, прерывание выполняется немедленно. 2. Если необработанных прерываний есть, контроллер игнорирует прерывание. Но устройство продолжает удерживать сигнал прерывания на шине до тех пор, пока оно не будет обработано. Работа прерываний Алгоритм работы: o Устройство выставляет сигнал прерывания o Контроллер прерываний инициирует прерывание, указывая номер устройства o Процессор начинает выполнять обработку прерывания, вызывая процедуру o Эта процедура подтверждает получение прерывания контроллеру прерываний Принципы программного обеспечения ввода-вывода Популярное:
|
Последнее изменение этой страницы: 2016-05-28; Просмотров: 552; Нарушение авторского права страницы