Основные принципы организации передачи информации в вычислительных системах

в начало

В процессе работы компьютера передача информации по одному и тому же интерфейсу в один и тот же момент времени идет только между двумя устройствами (модулями) по принципу «точка-точка». При этом одно из устройств является активным (ведущим, задатчиком), другое – пассивным (исполнителем, ведомым). Активное устройство начинает процедуру обмена и управляет ею. Пассивное устройство выполняет предписания активного. В компьютере одни устройства всегда является задатчиками (активными), другие только исполнителями (пассивными), третьи в разные моменты времени могут быть как задатчиками, так и исполнителями. Процессор всегда активное устройство, оперативная память (ОЗУ) – пассивное устройство. Периферийные устройства при работе с процессором являются исполнителями, а при работе с ОЗУ (прямой доступ к памяти) – задатчиками. Возможна передача между двумя ПУ, тогда одно – задатчик, другое – исполнитель (см. рисунок 1.3а).

Таким образом, пассивными устройствами являются либо ОЗУ, либо ПУ. Со стороны процессора средства управления этими двумя типами устройств существенно различны. Это обусловлено тем, что для передач процессор-ОЗУ заранее известны все типы и параметры устройств, которые должны соединяться между собой, т.к. эти устройства однотипны, в то время как ПУ существенно различаются, как по задержке, так и по пропускной способности. Кроме того, процесс управления ПУ намного сложнее и требует большего времени и учета специфики работы.

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

Передача информации от задатчика к исполнителю реализуется операцией записи, а обратная – операцией чтения. Процесс передачи между ПУ и ЦПр называют вводом-выводом информации.

Ввод реализуется с помощью операции чтения, а вывод – операцией записи.

Если на процессор возложить функции управления вводом-выводом, то у него не хватит времени для выполнения своей главной функции – преобразования информации. Это обусловлено широким диапазоном скоростей работы ПУ, сложностью их управления и большим разнообразием и количеством разных ПУ (см. рис.1.1б).

Для минимизации загрузки процессора при выполнении процессов ввода-вывода функции управления распределяются на несколько устройств: процессор, главный контроллер (канал) ввода-вывода, контроллер ПУ и блок управления ПУ.

Главный контроллер и контроллеры различного типа ПУ вместе с соответствующим программным обеспечением образуют Систему ввода-вывода.

Процессор, главный контроллер, контроллеры ПУ находятся в системном блоке, а блок управления ПУ – в самом периферийном устройстве, в ряде случаев контроллер ПУ может находиться в самом ПУ. Такое распределение позволяет оптимизировать загрузку каждого вида устройств присущими ему функциями при мультипрограммном режиме работы компьютера. Это происходит за счет совмещения во времени работы различных по функциям устройств. Функциональная схема передачи информации в компьютере показана на рисунке 1.4.

Операцию ввода-вывода начинает процессор, выдавая в главный контроллер ввода-вывода соответствующую команду (2). Предварительно, с помощью слова состояния канала, процессор должен убедиться, что он готов к работе (1).

Канал приступает к управлению вводом-выводом с помощью специальной программы канала. После чего процессор отключается от процесса ввода-вывода и функции управления принимает на себя канал.

Канал, после анализа слова состояния (4) соответствующего контроллера о его готовности, передает ему управляющий приказ (команду канала) (6,7) и может переходить к работе с контроллером другого ПУ. Контроллер ПУ принимает эстафету управления вводом-выводом, формирует и передает в блок управления ПУ необходимый управляющий код (сигнал) (8,9), получив который ПУ преступает к процессу передачи данных (10).

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

При реализации такой многоуровневой системы управления вводом-выводом для связи устройств между собой используется два вида интерфейсов: системные интерфейсы (внутренние) для взаимосвязи модулей в системном блоке и внешние интерфейсы ПУ (интерфейс периферийных устройств) для подсоединения ПУ к системному блоку (см. рисунок 1.4).

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

Интерфейсы должны учитывать возможность реализации всех 3-х режимов ввода-вывода.

Программный ввод-вывод. Здесь инициализация и управление процессом ввода-вывода осуществляет процессор. Имеется три способа его выполнения (см. рисунок 1.5).

Первый способ – прямой, используется для синхронных ПУ, т.е. устройств, которые всегда готовы к работе и циклов ожидания не требуется. Второй – условный с занятием цикла, когда при не готовности ПУ, процессор ждет до тех пор, пока наступит его готовность. Третий – условный с совмещением. В отличие от предыдущего, процессор не ждет готовности ПУ, а переходит к продолжению программы с периодической проверкой готовности ПУ.

Ввод-вывод в режиме прерываний. В этом случае инициатором начала процесса ввода-вывода является ПУ. Оно, когда готово, подает сигнал процессору "запрос на прерывание". Процессор, если ПУ разрешен такой режим, завершает текущую команду и переходит к выполнению процесса ввода-вывода (см. рисунок 1.6). Сначала он осуществляет контекстное переключение, т.е. запоминает свое состояние, чтобы можно было после продолжить программу, идентифицирует ПУ и передает управление драйверу данного ПУ (ПП), который и осуществляет ввод или вывод информации. Идентификация ПУ производится с помощью адреса вектора прерывания, который содержит номер ячейки, где хранится первая команда этого драйвера. Адрес вектора прерывания ПУ передается процессору от контроллера прерываний (см. рисунок 1.4, сигнал 5).

Следует отметить два момента. Во-первых, ПУ должно иметь, предварительно установленное, разрешение на работу в режиме прерываний. Во-вторых, возможны коллизии, когда несколько ПУ выставляют процессору запрос прерывания. Эта коллизия разрешается с помощью механизма задания уровня приоритетов для каждого ПУ. Возможна организация вложенных прерываний, когда ПУ с большим приоритетом прерывает работу ПУ с меньшим приоритетом. Все эти моменты должен учитывать стандарт на интерфейс.

Прямой доступ к памяти (см. рисунок 1.7). Этот режим используется для высокоскоростных ПУ, имеющих скорость передачи более 50 Кбит/сек. В этом режиме активным устройством является контроллер прямого доступа к памяти (КПДП). Процессор, получив от КПДП заявку на прямой доступ, прерывает свою работу и отключается от интерфейса, передавая его задатчику, т.е. КПДП. Процессор при этом не выполняет контекстного переключения, а может продолжать свою работу, если она не требует интерфейса. Управление интерфейсом переходит к КПДП, который посредством выполнения операций чтения и записи передает информацию между ОЗУ и ПУ с соответствующим заданием адресов памяти. В этом режиме используется механизм задания уровня приоритетов для тех ПУ, которые работают с прямым доступом к памяти. Этот режим также должен быть предусмотрен в интерфейсах.

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

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

При работе с высокоскоростным ПУ обычно используется режим прямого доступа к памяти. Для этого режима аппаратно реализуется специальный канал ввода-вывода в виде КПДП.

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