Структура контроллера устройства

Важными являются следующие моменты.

  1. Устройства ввода-вывода подключаются к системе через порты.
  2. Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода.
  3. Порты, как правило, отображаются в адресное пространство ввода-вывода и иногда – непосредственно в адресное пространство памяти.
  4. Использование того или иного адресного пространства определяется типом команды, выполняемой процессором, или типом ее операндов.
  5. Физическим управлением устройством ввода-вывода, передачей информации через порт и выставлением некоторых сигналов на магистрали занимается контроллер устройства.

!!!!!!! Именно единообразие подключения внешних устройств к вычислительной системе является одной из составляющих идеологии, позволяющих добавлять новые устройства без перепроектирования всей системы.

Контроллеры устройств ввода-вывода различаются как по своему внутреннему строению, так и по исполнению (от одной микросхемы до специализированной вычислительной системы со своим процессором, памятью и т. д.), поскольку им приходится управлять совершенно разными приборами.

Выделим некоторые общие черты контроллеров, необходимые для взаимодействия с вычислительной системой.

Обычно каждый контроллер имеет, по крайней мере, четыре внутренних регистра:

- состояния,

- управления,

- входных данных

- выходных данных.

Для доступа к содержимому этих регистров вычислительная система может использовать один или несколько портов.

Для простоты будем считать, что каждому регистру соответствует свой порт.

Регистр состояния содержит биты, значение которых определяется состоянием устройства ввода-вывода и которые доступны только для чтения вычислительной системой. Эти биты индицируют следующие состояния:

- бит занятости - завершение выполнения текущей команды на устройстве,

- бит готовности данных - наличие очередного данного в регистре выходных данных,

- бит ошибки - возникновение ошибки при выполнении команды и т. д.

Регистр управления получает данные, которые записываются вычислительной системой для инициализации устройства ввода-вывода или выполнения очередной команды, а также изменения режима работы устройства.

Часть битов в этом регистре может быть отведена под код выполняемой команды, часть битов будет кодировать режим работы устройства.

Бит готовности команды свидетельствует о том, что можно приступить к ее выполнению.

Регистр входных данных служит для помещения в него данных для чтения вычислительной системой, а регистр выходных данных предназначен для помещения в него информации, которая должна быть выведена на устройство.

Обычно емкость этих регистров не превышает ширину линии данных (а чаще всего меньше ее), хотя некоторые контроллеры могут использовать в качестве регистров очередь FIFO для буферизации поступающей информации.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: