Лекция 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. Назовите аппаратные средства для разделения устройств «типа памяти» и устройств «ввода - вывода».