Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Л8 Способы организации ввода-вывода

.pdf
Скачиваний:
25
Добавлен:
29.03.2015
Размер:
430.69 Кб
Скачать

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

ЛЕКЦИЯ 8. СПОСОБЫ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА.

Новые понятия: канал прямого доступа к памяти; контроллер DMA;

программистская модель порта, контроллера, адаптера; регистры управления, состояния, входных данных, выходных данных

Основные вопросы: 1. Программно-управляемый ввод-вывод.

2. Ввод-вывод по прерыванию.

3.Ввод-вывод по каналу прямого доступа к памяти.

4.Обобщѐнная программистская модель порта

В ЭВМ применяют три способа ввода-вывода, т.е. обмена между ПУ и ядром ЭВМ. Рассмотрим эти способы.

8.1.Программно-управляемый ввод-вывод

Чаще используется для передачи отдельных констант и переменных. Не требует дополнительных аппаратных затрат (рис. 8.1.). Как следует из названия, обменом управляет выполняемая программа, точнее, команды ввода-вывода, при исполнении которых процессор обращается к портам, адаптерам, контроллерам.

Процессор

Рисунок 8.1. – Структура ЭВМ с программно-управляемым вводом-выводом

8.1.1 Ввод-вывод одиночных данных

а) Для простейшего ПУ всегда готового к обмену, например, индикатора на светодиодах, вывод одного элемента данных (байта в IBM PC) процессор выполняет по команде OUT XXXX, АL, устанавливая на ШУ сигнал «запись в порт».

б) Если ПУ относится к типу «не всегда готовое» к обмену, т.е. выставляет выходной сигнал «готов», или «строб готовности» в момент установки данных на шине данных, то ввод-вывод одного элемента данных выполняется сложнее:

- Порт передает из ПУ в МП сигнал «строб готовности» в составе байта состояния;

- МП принимает и проверяет значение «строба готовности». Если «строб готовности» равен 1,

МП выполняет обмен элементом данных с портом. Если «строб готовности» равен 0,

1

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

МП вновь принимает и проверяет «строб готовности» до тех пор, пока не получит из порта сигнала о готовности ПУ.

Т.е., ввод-вывод даже одного элемента данных включает уже несколько команд. Вначале порт принимает из ПУ сигнал «строб готовности» в виде одного из двух логических значений 0 (не готов) или 1 (готов). Этот сигнал порт вводит как двоичный разряд в свой регистр состояния. Далее МП должен ввести байт

состояния, а затем выделить бит «строб готовности» и проверить его значение.

Если бит равен 1, МП принимает или передает элемент данных. Иначе МП возвращается к приему байта состояния, проверяет значение указанного бита и т.д., до тех пор, пока не получит из порта сигнал о готовности ПУ.

8.1.2 Ввод-вывод массива данных

а) Если ПУ относится к типу «не всегда готового» к обмену, и выполняется ввод-вывод массива элементов данных, программа еще более усложняется. Теперь прием и проверка сигнала готовности программно выполняется перед вводомвыводом каждого элемента массива.

б) Если ПУ относится к типу «не всегда готовое» к обмену, и выполняется ввод-вывод массива элементов, программа еще более усложняется: прием и проверка сигнала готовности выполняется программно перед вводом-выводом каждого элемента массива.

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

8.1.3 Ввод-вывод строк данных

Для обмена с быстрыми ПУ с максимально скоростью, такими, например, как НЖМД, используют режим программного доступа (PIO) к регистру данных порта не по командам МП IN и OUT, а по командам INSW/OUTSW ВВОД/ВЫВОД СТРОКИ СЛОВ, где под строкой в языке Ассемблер понимают массив символов. По каждой строковой команде передается массив символов. Готовность ПУ проверяется перед началом передачи всего блока символов, а не перед началом передачи каждого из них.

8.2. Ввод-вывод по прерыванию.

Упрощенная структура ЭВМ с вводом-выводом по прерыванию приведена на рис. 8.2. В структуру ЭВМ добавлен по сравнению со схемой рис. 8.1. блок контроллера прерываний, который из множества поступивших на его входы

2

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

запросов INTR из портов (контроллеров, адаптеров ПУ) выбирает наиболее приоритетный и инициирует работу процессора сигналом INT (Запрос на прерывание). Сигнал по завершению исполнения очередной команды проверяется в УУ процессора. Если прерывание в процессоре не было запрещено, то процессор будет обслуживать прерывание. Готовность к обслуживанию прерывания процессор указывает контроллеру сигналом INTA (Подтверждение). После чего процессор принимает из контроллера вектор прерывания, указывающий на адрес прерывающей программы в ОЗУ. После принятия вектора прерываний все происходит так же, как по команде прерываний (см. лекцию 8).

Пр

Рисунок 8.2 - Структура ЭВМ с вводом-выводом по прерыванию

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

Еще раз укажем на различие между двумя вышеизложенными способами обмена: при обмене массивом в К слов и программно-управляемым вводе-выводе программа исполняется непрерывно К циклов, занимая системную шину, процессор и ОЗУ. При обмене массивом в К слов и вводе-выводе по прерываниям программа вызывается и исполняется К раз.

Способ характеризуется не только дополнительными аппаратными затратами, но и эффективным использованием времени работы процессора.

8.3.Ввод-вывод по каналу прямого доступа к памяти (ПДП)

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

3

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

Для реализации функций канала в схему ЭВМ введен блок контроллера ПДП (КDMA). На время работы канала DMA от системной шины отключается МП, а КDMA берет на себя управление каналом DMA. Для обмена массивом с одним ПУ КDMA имеет 3 программно-доступных регистра:

первый из них содержит начальный адрес массива в ОЗУ,

второйразмер массива в словах (байтах),

третий - регистр режима, содержащий значение отдельных параметров

DMA и настройки контроллера и необходимые для обмена.

КDMA, как и контроллер прерываний, является программируемым, т. е. до начала обмена по каналу DMA программным путем в регистры контроллера

загружается вся указанная информация.

 

Типовой простейший КDMA имеет

4 блока однотипных регистра и

соответственно 4 входа запросов на ввод-вывод. Между входами существует система приоритетов.

Канал DMA показан на рис.8.3. Шины канала выделены жирными линиями. Запросы от 4-х ПУ (показано одно ПУ ввода) в виде сигналов I0 ….. I3 (I – от англ. Input) поступают на входы КDMA. Он выбирает среди них наиболее приоритетный и трансформирует его в сигнал захвата (HOLD) для процессора. Получив сигнал захвата (HOLD), МП отключается от системной шины, уведомляя об этом КDMA сигналом HLDА. Получив HLDА, контроллер передает его в ПУ, подключенному к данному входу КDMA. ПУ начинает обмен с ОЗУ, а контроллер приступает к управлению этим обменом, т. е. каналом DMA.

Рисунок 8.3. - Структура ЭВМ с вводом-выводом по каналу ПДП (DMA)

Управление состоит в том, что КDMA ведет учет числа переданных по ШД слов, формирует и выставляет на ША для каждой передачи адрес ОЗУ, а на ШУ - сигналы чтение памяти или запись памяти. По завершению обмена массивом слов в ПУ КDMA снимает сигнал захвата HОLD, МП подключается к шине и снимает сигнал HLDА, а порт отключается от системной шины.

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

4

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

8.4 Обобщѐнная программистская модель порта

Простейший порт ЭВМ есть буферная память размером в один регистр, связывающая ПУ через системную шину с ядром ЭВМ, если ПУ и ЭВМ имеют разные моменты готовности к приему/передаче. Роль такого порта при передаче из МП в ПУ иллюстрируется рис. 8.4. МП, выполняя вывод, выставляет данные на ШД и устанавливает сигнал строб. Сигналом строб МП указывает ПУ, что информация на ШД действительна (т.е. установлена и переходные процессы на линиях завершились) и порт может ее принимать. Порт принимает по ШД и сохраняет информацию до следующего сигнала строб. Когда ПУ будет готово, оно примет данные из порта и сообщит об этом сигналом подтверждения ПДТ. Так порт выполняет буферизацию одного элемента данных. Порт одного типа, как правило, используется для подключения достаточно простых ПУ и даже не одного их класса.

процессор

строб ШД

порт

ПДТ

ШД

ПУ

Рисунок 8.4. –Схема вывода через порт.

Контроллер и адаптер – более сложные блоки ЭВМ, т.к. служат для подключения более сложных ПУ. Поэтому один тип контроллера или адаптера используется для подключения одного типа ПУ. Например, контроллер

клавиатуры, контроллер винчестера (HDD), видеоадаптер (адаптер монитора).

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

Для программиста любой контроллер, адаптер или порт представлен совокупностью регистров 4-х типов:

управления;

состояния;

входных данных;

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

5

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

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

DO (Data Output)шина выходных (для процессора) данных; DI (Data Input) - шина входных данных;

А– шина адреса; У– шина управления; Д– шина данных ПУ;

n – разрядность шин.

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

 

 

Системная шина

 

DI

DO

А

У

n

n

 

 

Регистр управления

n

Регистр состояния

n

n шинаВнутренняя

Регистр входных данных

n

Регистр выходных данных

n

У

Д

ПУ

Рисунок 8.5 - Программистская модель порта, адаптера, контроллера

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

Как правило, один код на шине адреса (А) порта и один сигнал на шине управления (У) выбирают один регистр контроллера и направление передачи между

6

ЭВМ и ПУ. Лекция 8.

Щемелева Т.К.

регистром и внутренней шиной контроллера. Так, например, регистр состояния будет выбран МП только при исполнении по команде ВВОД (IN АL, < регистра состояния >), т.е. ввода кода состояния из указанного регистра через шину DI в МП.

Реальные контроллеры, адаптеры и порты, особенно для сложных ПУ, содержат несколько регистров каждого типа. Например, контроллер НЖМД, или HDD (Hard Disc Drive) содержит порядка 10 регистров управления, в каждый из которых по команде процессора типа

OUT <адрес i-го регистра управления>, АL

выводятся сведения о параметрах операции для HDD – «приказах» контроллеру. По другим командам OUT в другие регистры контроллера выводится адрес сектора, цилиндра, головки HDD. В регистрах состояния контроллера НDD формируются сведения, например, о том, подано ли электропитание, не находится ли оно ниже допустимого уровня, ПУ готово к работе или нет, произошли ли ошибки при приѐме/передаче информации (выявленные, например, способом контроля по чѐтности/нечѐтности) и др.

Контроллеры и адаптеры могут содержать собственные ЗУ, причем и разного быстродействия. Для его повышения при чтении/записи данных в контроллерах ПУ, как и на системной шине ЭВМ между двумя ЗУ с разным быстродействием, может быть установлена кэш-память, в которой дублируется часть информации более медленного из этих 2-х ПУ (см. рис.8.1. лекции 8).

Литература

1. Цилькер Б.Я. , Орлов С.А. Организация ЭВМ и систем.-Спб.: Питер,

2004.-668 с. Гл. 8.

1. Составьте 10 вопросов к лекции

7