Автор: Пользователь скрыл имя, 11 Декабря 2011 в 20:34, курс лекций
Рассмотренные в предыдущем разделе физические механизмы взаимодействия устройств ввода-вывода с вычислительной системой позволяют понять, почему разнообразные внешние устройства легко могут быть добавлены в существующие компьютеры. Все, что необходимо сделать пользователю при подключении нового устройства - это отобразить порты устройства в соответствующее адресное пространство, определить какой номер будет соответствовать прерыванию, генерируемому устройством, и, если нужно, закрепить за устройством некоторый канал DMA.
Лекция 16. Структура системы ввода-вывода. Функции базовой подсистемы ввода-вывода. 1
Логические принципы организации ввода-вывода 1
Структура системы ввода-вывода 1
Функции базовой подсистемы ввода-вывода 4
Буферизация и кэширование 5
Spooling и захват устройств. 6
Обработка прерываний и ошибок 6
Планирование запросов 7
Лекция 15. Система управления вводом-выводом. Физические принципы организации ввода-вывода. Общие сведения об архитектуре компьютера. Структура контроллера устройства. Опрос устройств и прерывания. 8
Физические принципы организации ввода-вывода 8
Общие сведения об архитектуре компьютера 8
Структура контроллера устройства 10
Опрос устройств и прерывания. Исключительные ситуации и системные вызовы 11
Для внешних прерываний характерны следующие особенности: 13
Прямой доступ к памяти (Direct Memory Access – DMA) 14
Лекция 14. Загрузка программ. Абсолютная загрузка. Относительная загрузка. Позиционно-независимый код. Загрузка ОС. Сборка программ. 15
Загрузка программ 15
Абсолютная загрузка 15
Абсолютная загрузка используется, например, в системе UNIX на 32-разрядных машинах. 16
Относительная загрузка 16
Позиционно-независимый код 17
Загрузка ОС 17
Пример: Загрузка системы MS-DOS. 20
Сборка программ 21
Объектный модуль 21
Библиотеки объектных модулей 22
Варианты построения загрузчиков 23
Лекция 13. Кэширование данных. Иерархия запоминающих устройств. Кэш память. Принцип действия кэш-памяти. Проблемы согласования данных. Проблемы отображения основной памяти в кэш. 25
Иерархия запоминающих устройств 25
Кэш-память 25
Принцип действия кэш-памяти 26
Проблема согласования данных 28
Способы отображения основной памяти на кэш 28
Схемы выполнения запросов в системах с кэш-памятью 29
Количество линий,
входящих в состав шины, принято
называть разрядностью (шириной) этой
шины. Ширина адресной шины, например,
определяет максимальный размер оперативной
памяти, которая может быть установлена
в вычислительной системе. Ширина шины
данных определяет максимальный объем
информации, которая за один раз
может быть получена или передана
по этой шине.
Операции
обмена информацией
На адресной шине процессор должен выставить сигналы, соответствующие адресу ячейки памяти, в которую будет осуществляться передача информации.
На шину данных процессор должен выставить сигналы, соответствующие информации, которая должна быть записана в память.
После выполнения действий 1 и 2 на шину управления выставляются сигналы, соответствующие операции записи и работе с памятью, что приведет к занесению необходимой информации по требуемому адресу.
Естественно,
что приведенные выше действия
являются необходимыми, но недостаточными
при рассмотрении работы
В то время
как память легко можно
При этом каждый порт ввода-вывода получает свой номер или адрес в этом пространстве. В некоторых случаях, когда адресное пространство памяти (размер которого определяется шириной адресной шины) задействовано не полностью (остались адреса, которым не соответствуют физические ячейки памяти), и протоколы работы с внешним устройством совместимы с протоколами работы с памятью, часть портов ввода-вывода может быть отображена непосредственно в адресное пространство памяти (так, например, поступают с видеопамятью дисплеев), правда тогда эти порты уже не принято называть портами. Надо отметить, что при отображении портов в адресное пространство памяти для организации доступа к ним в полной мере могут быть задействованы существующие механизмы защиты памяти без организации специальных защитных устройств.
В ситуации прямого
отображения портов ввода-вывода в адресное
пространство памяти действия, требуемые
для записи информации и управляющих команд
в эти порты или для чтения данных из них
и их состояний, ничем не отличаются от
действий, производимых для передачи информации
между оперативной памятью и процессором,
и для их выполнения применяются те же
самые команды. Если же порт отображен
в адресное пространство ввода-вывода,
то процесс обмена информацией инициируется
специальными командами ввода-вывода
и включает в себя несколько другие действия.
Например, для передачи данных в порт необходимо
выполнить следующее:
На адресной шине процессор должен выставить сигналы, соответствующие адресу порта, в который будет осуществляться передача информации, в адресном пространстве ввода-вывода.
На шину данных процессор должен выставить сигналы, соответствующие информации, которая должна быть передана в порт.
После выполнения действий 1 и 2 на шину управления выставляются сигналы, соответствующие операции записи и работе с устройствами ввода-вывода (переключение адресных пространств!), что приведет к передаче необходимой информации в требуемый порт.
Существенным отличием памяти от устройств ввода-вывода является то, что занесение информации в память является окончанием операции записи, в то время как занесение информации в порт зачастую является инициализацией реального совершения операции ввода-вывода. Что именно должны совершать устройства, приняв информацию через свой порт, и каким именно образом они должны поставлять информацию для чтения из порта, определяется электронными схемами устройств, получившими названия контроллеров. Контроллер может непосредственно управлять отдельным устройством (например, контроллер диска), а может управлять несколькими устройствами, связываясь с их контроллерами посредством специальных шин ввода-вывода (шина IDE, шина SCSI и т.д.).
Современные
вычислительные системы могут
иметь разнообразную
Именно единообразие подключения внешних устройств к вычислительной системе является одной из составляющих идеологии, позволяющих добавлять новые устройства без перепроектирования всей системы.
Контроллеры
устройств ввода-вывода весьма различны
как по своему внутреннему строению, так
и по исполнению (от одной микросхемы до
специализированной вычислительной системы
со своим процессором, памятью и т. д.),
поскольку им приходится управлять совершенно
разными приборами. Не вдаваясь в детали
этих различий, мы выделим некоторые общие
черты контроллеров, необходимые им для
взаимодействия с вычислительной системой.
Обычно каждый контроллер имеет, по крайней
мере, четыре внутренних регистра, называемых
регистрами состояния, управления, входных
данных и выходных данных. Для доступа
к содержимому этих регистров вычислительная
система может использовать один или несколько
портов, что не существенно для нас. Для
простоты изложения будем считать, что
каждому регистру соответствует свой
собственный порт.
Регистр состояния
содержит биты, значение которых
определяется состоянием
Регистр управления
получает данные, которые записываются
вычислительной системой для
инициализации устройства
Регистр выходных
данных служит для помещения
в него данных для чтения
вычислительной системой, а регистр
входных данных предназначен
для помещения в него
Разумеется,
набор регистров и
Построив
модель контроллера и,
1. Процессор
в цикле читает информацию
из порта регистра состояний
и проверяет значение бита
занятости. Если бит занятости
установлен, то это означает, что
устройство еще не завершило
предыдущую операцию, и процессор
уходит на новую итерацию
2. Процессор записывает код команды вывода в порт регистр управления.
3. Процессор
записывает данные в порт
4. Процессор устанавливает бит готовности команды. В следующих шагах процессор не задействован.
5. Когда контроллер замечает, что бит готовности команды установлен, он устанавливает бит занятости.
6. Контроллер
анализирует код команды в
регистре управления и
7. После завершения операции контроллер обнуляет бит готовности команды.
8. При успешном
завершении операции
9. Контроллер сбрасывает бит занятости.
При необходимости
вывода новой порции
Как видим,
на первом шаге (и, возможно, после
шага 4) процессор ожидает
Для того чтобы процессор не дожидался состояния готовности устройства ввода-вывода в цикле, а мог выполнять в это время другую работу, необходимо, чтобы устройство само умело сигнализировать процессору о своей готовности. Технический механизм, который позволяет внешним устройствам оповещать процессор о завершении команды вывода или команды ввода, получил название механизма прерываний.
В простейшем
случая для реализации