Лекция 10. Система ввода - вывода.
Система ввода - вывода, т. е. комплекс средств обмена информации с внешними устройствами включает:
- способы подключения к системной шине различного оборудования;
- процедуры взаимодействия процессора с этим оборудованием;
- команды процессора, предназначенные для обмена данными с внешними устройствами.
Непрерывное совершенствование микропроцессоров и стремление максимально повысить производительность всей вычислительной системы привело к существенному изменению внутренней организации компьютеров, повышению разрядности шин, появлению внутренних быстродействующих магистралей обмена данными, использованию КЭШ - буферов для ускорения обмена с памятью ,дисками и программами.
Если отвлечься от деталей важных с точки зрения производительности, то логическую схему современного компьютера можно представить традиционным образом, в виде системной шины (магистрали), к которой подключается сам микропроцессор и все устройства компьютера.
Процессор связан с системной шиной большим количеством линий. Из них (в системе ввода-вывода):
А - набор линий адресов,
D - набор линий данных,
M / IO (M - IO с отрицанием).
За каждым устройством закреплена определенная группа адресов, на которые он должен отзываться. Обнаружив свой адрес на магистрали, устройство, в зависимости от заданного направления передачи данных, либо считывает с магистрали поступившие данные, либо наоборот, устанавливает имеющиеся в нем данные на магистраль. На рисунке 9 представлено подключение устройств компьютера к системной шине
Видеомонитор Рисунок 9. Подключение устройств компьютера к системной шине |
Все устройства компьютера можно разбить на две категории :
1) Адреса которых не перекрываются с адресами оперативной памяти.
2) Адреса которых перекрываются с адресами ОЗУ К устройствам первой группы: видеобуфер.
Графический - 64 Кбайта с А0000 до АFFFh
Текстовый видеобуфер занимает 32 Кбайта ,начиная с адреса B8000h до BFFFF
К устройствам второй: а) контроллер клавиатуры
б) (20h - 21h и A0h - A1h) - контроллер прерывания и
т.д.
Программное разделение
Существует программное и аппаратное разделение устройств «типа памяти» и устройств «ввода - вывода».
Аппаратное разделение осуществляется с помощью сигнала M/IO, который генерируется процессором в любой операций ЗАПИСИ или ЧТЕНИЯ.(M- memory):
- при обращении к памяти или видеобуферу M/IO=1
- к остальным M/IO’=0 Программное разделение:
Команды процессора а) для памяти
б) для устройств ввода - вывода В первую группу входят практически все команды процессора, с помощью которых можно обратиться по тому или иному адресу.
Вторая группа - команды ввода - вывода. В МП 86 их всего две, команда ввода in и команда вывода out.(При выполнении команд первой группы процессор автоматически генерирует M/IO’=1; при выполнении команд in и out процессор устанавливает сигнал M/IO’=0).
Таким образом, при обращении к памяти и к видеобуферу программист может использовать все подходящие по смыслу команды процессора, при этом, работая, например, с видеобуфером, можно не только засылать в него (или получать из него) данные, но и выполнять прямо в видеобуфере любые арифметические, логические и прочие операции.
Обращаться к контроллерам тех или иных устройств (и к видеоадаптеру) допустимо также с помощью двух команд - in и out. Если объем адресного пространства памяти 1 Мбайт (в защищенном режиме 4 Гбайта), то адресное пространство портов 64 Кбайт (адрес адресуемого порта должен быть записан в регистр DX) В простейшем случае программирование устройства сводится к выполнению единственной команды in в случае чтения из устройства, или out в случае записи в него. Рассмотрим, например, процедуры маскирования и размаскирования аппаратных прерываний. В каждом из двух контроллеров прерываний, включаемых в состав компьютера, имеется регистр маски Значение 0 в бите маски разрешает прохождение сигнала прерывания, значение 1 запрещает. Пройдя через маску и через последующие узлы контроллера прерываний, сигнал прерываний поступает на вход INT микропроцессора. Программирование регистров маски осуществляется через порт 21h для ведущего контроллера и Alh для ведомого.
Исходное значение маски устанавливается программами начальной загрузки компьютера в зависимости от конфигурации вычислительной системы. Типичным является значение A8h, при этом значении маски размаскированными оказываются системный таймер, ктавиатура, мышь, подключенная к первому последовательному порту СОМ1, гибкий диск, а также выход от ведомого контроллера, подключаемый ко входу IRQ2 ведущего. Замаскированы оба паршшельного порта (принтер, подключаемый к порту LPT1, обычно не использует прерываний, а второй параллельный порт часто просто отсутствует) и второй последовательный порт, к которому ничего не подключено. Другими словами, размаскировано все нужное, и замаскировано все ненужное.
В ряде случаев возникает необходимость замаскировать прерывания от системного таймера, который является единственным постоянно активным источником прерываний. Такая ситуация типична, в частности, для автоматизированных измерительных систем, в которых недопустимо прерывать поток данных, поступающих от измерительной установки в компьютер. Любое прерывание процесса приема данных может привесит к потере части принимаемой информации и нарушению работы установки. Для запрета прерываний от таймера надо выполнить такую последовательность команд:
in AL,21h ;Чтение регистра маски
or AL,1 ' /Установка 1 в бите О
out 21h,AL ;Запись нового значения маски
Восстановление исходного состояния вычислительной системы с разре- шенными прерываниями от таймера осуществляется следующим образом:
in AL,21h ;Чтение регистра маски
and AL,0FEh ;Установка 0 в бите О
out 21h,AL ;Запись нового значения маски
Основная литература: 1[129-140],7[35-39]
Дополнительная литература: 11[40-72]
Контрольные вопросы:
1. Перечислите средства, составляющие систему ввода - вывода.
2. Назовите устройства, адреса которых перекрываются с адресами ОЗУ.
3. Назовите программные средства для разделения устройств «типа памяти» и устройств «ввода - вывода».
4. Назовите аппаратные средства для разделения устройств «типа памяти» и устройств «ввода - вывода».