Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_v3.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.02 Mб
Скачать

8. Процессор ввода-вывода.

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

Примеры ПВВ: акселераторы 2D- и 3D-графики; элементы внешней памяти; звуковая карта; сетевая карта.

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

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

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

Классификация процессоров ввода-вывода:

Для высокопроизводительных ЭВМ функции КВВ возлагаются на специализированные процессоры ввода-вывода, ориентированные на обслуживание ПУ и работающие по программе, хранимой в ОЗУ. Процессоры ввода-вывода имеют собственное АЛУ и соответствующую систему команд. Цель ПВВ - разгрузить ЦП и обеспечить совмещение операции обработки в ЦП с операциями ввода-вывода, осуществляемыми под управлением ПВВ.

Классификация ПВВ по виду подключаемых ПУ:

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

  • Управление ВЗУ с последовательным доступом.

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

  • Телеобработки - подключаются удаленные устройства.

Характеристики ПВВ:

  • пропускная способность (число обрабатываемых байт в единицу времени)

  • нагрузочная способность (число одновременно выполняемых программ по обслуживанию ПУ)

Система команд ПВВ

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

Для запуска операции ввода-вывода достаточно указать код операции запуска, адреса ПВВ и ПУ, участвующих в операции, и адрес начала программы ПВВ в ОЗУ.

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

Северный мост в архитектуре INTEL как пример ПВВ выполняет функции по взаимодействию и обмену между устройствами, подключенными к нему: ЦП, ОП, внешняя кэш память L2 и шина PCI.

Южный мост в архитектуре INTEL выполняет следующие системные функции: организация моста между шинами PCI и ISA с согласованием частот синхронизации; реализация высокопроизводительного (обычно двух канального) дискового интерфейса IDE/ATA;

реализация стандартных для ПК средств для ВВ : два контроллера прерывания PIC, два контроллера доступа к памяти DMAC, трехканальный счетчик таймера, логика немаскируемого прерывания NMI и т.д.

9. Программно-управляемый обмен информацией между устройствами ЭВМ. Обмены:

  • программно-управляемые

  • синхронный

  • асинхронный с программной проверкой

  • асинхронный с аппаратной проверкой

  • в режиме прямого доступа (без участия ЦП)

Синхронный обмен данными

Синхронный обмен данными предполагает отсутствие ситуации неготовности обменивающихся сторон. Например, при чтении данных из порта предполагается, что устройство всегда готово передать их читающей стороне. При записи в порт, наоборот, устройство всегда готово принять данные.

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

Основные достоинства:

•потенциально, синхронный обмен – самый быстрый из всех рассматриваемых в данном разделе;

•синхронный обмен требует минимум аппаратного обеспечения.

Основной минус: синхронный обмен сложно (или вообще невозможно) организовать с асинхронными устройствами (т.е. с устройствами, имеющими разное время выполнения операций и/или множество производимых операций с сильно различающимися временами выполнения).

Асинхронный обмен данными с программной проверкой готовности (программный полинг)

Асинхронный обмен с программной проверкой готовности предполагает возможность программно оценить степень готовности элемента СВВ, к которым происходит взаимодействие. Обычно для этих целей служит программно доступный (через порт) регистр состояния устройства. Перед тем, как передать данные устройству или забрать их из него, программа имеет возможность определить, готово ли само устройство к этой операции, прочитав значение из порта состояния.

Простым примером может служить работа с контроллером последовательного канала (UART) «по опросу»: перед тем, как прочитать данные из порта данных контроллера, необходимо проверить, являются ли эти данные результатом приема посылки и не забирались ли они программой ранее. Проще говоря, необходимо проверить данные на достоверность.

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

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

При этом очевидными «минусами» являются:

•наличие программных усилий по определению готовности. Инструкции по опросу отнимают процессорное время, в течение которого могли бы выполняться другие части алгоритма. Если бы процедура опроса выполнялась параллельно с основным алгоритмом (скажем, аппаратно), то это бы позволило существенно ускорить работу всей программы;

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

Асинхронный обмен данными с аппаратной проверкой готовности (обмен по прерыванию)

Система прерываний

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

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

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

Прерывания следует рассматривать не только и не столько как реакцию процессора на аномальные ситуации, а как естественный процесс, с помощью которого реализуется поддержка большинства необходимых механизмов, таких как виртуальная память, ввод/вывод и т. п. По образному выражению Питера Нортона: "Прерывание – это движущая сила компьютера".

Система прерываний представляет собой комплекс аппаратных и программных средств. Аппаратные средства системы прерываний обычно называются блоком или контроллером прерываний. В ПК это PIC (Programmable Interrupt Controller), т.е. отдельная микросхема 8259A. В некоторых случаях контроллер прерываний интегрируется в кристалл микропроцессора. Программные средства систем прерываний представляют собой специальные программы – обработчики прерываний (interrupt handler).

Назначение системы прерывания – реагировать на определенные события путем прерывания работы процессора по выполнению программы и переключения процессора на выполнение другой программы, обслуживающей соответствующую ситуацию. В момент возникновения определенного события (причины) формируется сигнал прерывания, который поступает в процессор и инициирует специальную операцию – операцию прерывания, обеспечивающую прерывание одной программы и переключение процессора на выполнение другой программы.

Функции системы прерываний и их реализация

Функции системы прерываний:

1.Прием и хранение запросов прерываний от многих источников.

2.Выделение наиболее приоритетного запроса из множества поступивших.

3.Проверка возможности обработки запросов центральным процессором (проверка замаскированности запросов или сравнение уровня приоритетности запросов с так называемым порогом прерываний).

4.Сохранение состояния (контекста) прерываемой программы.

5.Вызов обработчика прерываний.

6.Собственно обработка прерываний (выполнение программы обработки прерываний).

7.Восстановление состояния (контекста) прерванной программы и возобновление ее выполнения.

ОБСЛУЖИВАНИЕ ВУ ПО ПРЕРЫВАНИЮ:

Достоинства: сокращается время реакции на внешние события, т.к. не происходит опрос флагов готовности. Экономится процессорное время.

Недостатки: дополнительный объем аппаратуры. Высокая сложность программирования.

Остальное в вопросе №11