Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ им. АКАДЕМИКА С. П. КОРОЛЕВА» (СГАУ)

Кафедра информационных систем и технологий

Организация ввода-вывода информации

Методические указания

к лабораторной работе

для студентов

Составитель:

Самара 2007

Цель работы - изучение способов организации ввода и вывода информации в ЭВМ и исследование процессов ввода и вывода информации в ЭВМ типа IBM PC/AT.

ПРИНЦИПЫ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА ИНФОРМАЦИИ

Ввод - это процесс считывания информации с носителя и записи её в ОП ЭВМ. Вывод - это процесс считывания информации из ОП и записи её на носитель информации.

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

Подключение ПУ к ЭВМ технически осуществляется через интерфейсы (рисунок 1).

m U1

n U21 h U2k

Здесь U1- системный интерфейс ЭВМ, интерфейс первого уровня, m-разрядность его шины данных. Служит для обмена информацией между ЦП, ОП, и КПУ. U21,…U2k- интерфейсы второго уровня (малые интерфейсы), служат для подключения механизмов ПУ (МПУ) к КПУ, n, h - разрядность шин данных малых интерфейсов. Малые интерфейсы обычно разрабатываются с учётом специфики организации и характеристик ПУ. Например, интерфейс для подключения накопителя на жёстких магнитных дисках (НЖМД) отличается от интерфейса для подключения принтеров. Такого рода интерфейсы являются устройство–зависимыми. Учёт специфики ПУ позволяет упростить функции контроллеров и минимизировать затраты оборудования на подключение МПУ к ЭВМ.

НЕ нашли? Не то? Что вы ищете?

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

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

На этапе передачи данных система ввода-вывода обеспечивает управление обменом между КПУ и ОП (рисунок 1) через интерфейс U1, а также управление обменом «носитель информации – КПУ» через интерфейс второго уровня U2. Для обмена информацией с носителем используется механизм ПУ, обеспечивающий считывание информации с носителя при вводе, или запись на носитель – при выводе. Управление механизмом ПУ осуществляется через КПУ: ЦП посылает команды (приказы), которые КПУ «понимает» и исполняет. КПУ, выполняя приказ, например, на ввод обеспечивает чтение с носителя заданного количества порций информации (обычно побитно или побайтно) и сборку байта из битов, или слова из байтов и занесение байта (слова) в электронный буфер Б, расположенный в КПУ.

Управление обменом между буфером Б ПУ и ОП может осуществляться ЦП («через» ЦП) или специализированным устройством - каналом ввода-вывода (КВВ) (минуя ЦП, в режиме ПДП - прямого доступа к ОП) . У выполняет роль посредника между ОП и носителем информации. Он используется для согласования работы медленнодействующего ПУ и быстрой ОП. При вводе механизм ПУ (под управлением КПУ) считывает информацию с носителя и накапливает её в буфере Б, а затем под управлением ЦП (или КВВ) осуществляется быстрый обмен «буфер®ОП». При выводе сначала осуществляется быстрый обмен «ОП ® буфер ПУ», а затем медленный (со скоростью ПУ) обмен «буфер ПУ®носитель». Поскольку буфер и ОП работают быстро, то их время обмена небольшое и, следовательно, интерфейс U1 занят недолго и, освободившись от обмена, может обслуживать другие устройства.

Следует отметить, что обмен информацией по интерфейсам типа «общая шина» (ОШ) для пары устройств обычно осуществляется по принципу «ведущий-ведомый». Ведущее устройство является активным (управляет обменом по интерфейсу), ведомое устройство пассивно, подчиняется «воле» ведущего. ОП всегда пассивна (не может быть ведущим устройством), ведущим может быть либо ЦП, либо один из КПУ. Чаще всего (на рисунке 1) эту роль исполняет ЦП.

На этапе завершения обмена ЦП, выполняя соответствующую программу ОС, опрашивает состояние ПУ и выясняет, с каким устройством и как завершился обмен – нормально или нет, если не нормально, то по какой причине, с какой ошибкой. Если ошибка случайная, то СВВ (ОС) может повторить попытку обмена ещё раз. Если обмен завершился нормально, то подаётся команда на выключение механизма ПУ (если необходимо).

Итак, управление вводом-выводом на 1 и 3 этапах всегда осуществляет ЦП, который при этом выполняет соответствующие команды. Управление вводом-выводом на 2 этапе может осуществляться либо под управлением ЦП, либо под управлением КВВ, в режиме ПДП.

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

Обмен с основной памятью (через соответствующий интерфейс) обычно ведётся m-разрядными словами, а с ПУ – n-разрядными словами, обычно байтами (n<m). Поэтому СВВ должна обеспечить преобразование форматов данных:

при вводе – сборку m-разрядного слова из байтов и запись слова в память по заданному адресу;

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

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

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

Согласование осуществляется так. СВВ запускает процесс обмена, посылая (на этапе подготовки) в КПУ запрос на ввод-вывод блока данных размером С слов. КПУ запускает механизм ПУ, который (совместно с КПУ) обеспечивает поочередный обмен порциями данных между буфером Б и носителем информации НИ и вырабатывает последовательность сигналов готовности к обмену между буфером Б и основной памятью. По сигналу готовности, который интерпретируется как запрос на обмен «Б-ОП», СВВ обеспечивает обмен «Б-ОП» и сбрасывает сигнал готовности. Сброс сигнала готовности интерпретируется как ответный сигнал. Таким образом, за время передачи блока данных сигнал готовности вырабатывается С раз, где С - объем блока данных в словах (объем передачи). Следует отметить, что на этапе инициализации буфер приводится в исходное состояние (очищается). Для устройств ввода это означает их неготовность к обмену, поэтому F=0, а для устройств вывода, напротив, готовность принять информацию из ОП, поэтому F=1.

Ввод-вывод информации обычно осуществляется блоками информации, состоящими из С слов. Поэтому процесс обмена носит циклический характер. Реализация цикла обмена – основная функция СВВ. При её реализации СВВ должна обеспечивать адресацию соседних ячеек памяти: А:=А±1 и подсчет количества переданных порций данных: С:=С-1 (до выполнения условия С=0). Действия, обеспечивающие согласование работы памяти и ПУ и передачу блока данных, принято называть алгоритмом обмена (рисунок 2). Он носит циклический характер и состоит из следующих действий:

1. В счетчик циклов заносится размер блока данных С:=n.

2. В момент готовности устройства (буфера Б ПУ) к обмену формируется запрос на обмен «буфер – ячейка А ОП». В момент, когда память освобождается от обслуживания других запросов, управление передается СВВ, которая генерирует цикл обмена с ОП и сброс сигнала готовности. Цикл ввода обеспечивает обмен (m-разрядным словом данных) Б®ШД, ШД®ОП[А], а цикл вывода - ОП[А]®ШД, ШД®Б.

3. Модификация адреса ячейки памяти А:=А+1 (или А:=А-1) и декремент счетчика С:=С-1.

4. Если счетчик С¹0, то переход к п.2.

5. Выработка сигнала об окончании обмена (передачи блока данных).

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

К ЭВМ обычно подключают несколько ПУ. Поэтому СВВ должна обеспечивать адресацию разных ПУ и обмен с одновременно работающими ПУ. Технически эта функция обеспечивается тем, что каждое ПУ снабжается автономным устройством управления – контроллером ПУ. Основное назначение КПУ – управление механизмами ПУ. Оно осуществляется по приказам, которые СВВ посылает в КПУ в определённой последовательности. КПУ «добросовестно» выполняют эти приказы. Контроллеры ПУ являются аппаратной частью СВВ. Таким образом, эта функция СВВ сводится к посылке приказов в контроллеры ПУ и к контролю за их выполнением. Контроль обычно осуществляется путём опроса состояния ПУ в процессе выполнения приказов и после их выполнения.

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

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

Основной задачей этапа передачи данных является выполнение алгоритма обмена. Алгоритм обмена может быть реализован программными или аппаратными средствами. Различают два способа программного управления: по условию (флагу) готовности ПУ и по прерываниям процессора.

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

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

Быстродействие (пропускная способность) ввода-вывода по условию готовности определяется величиной, обратной времени однократного выполнения цикла ввода-вывода (рисунок 2), которое равно суммарному времени Т выполнения всех команд этого цикла: команд сканирования флага, ввода (вывода) порции данных, модификации адреса, декремента счетчика циклов и проверки условия выхода из цикла. Приблизительно (для сравнения с другими способами) время Т можно оценить через количество обращений к памяти по формуле: Т=Кt, где К количество команд в цикле, t - время одного обращения к памяти.

Время обмена можно уменьшить, если использовать блочный режим обмена, при котором одной командой обеспечивается (возбуждается) ввод-вывод блока данных - нескольких порций данных. Такой режим в больших машинах типа IBM 3090 обеспечивается специализированными процессорами ввода–вывода (ПВВ), система команд которого ориентирована на ввод-вывод и реализуется существенно быстрее (требует меньше обращений к ОП).

Ввод-вывод по прерываниям процессора. Отличие от первого способа заключается в следующем. ЦП, подготовив на первом этапе устройство к обмену, переключается на выполнение другой работы (рисунок 3). А на этапе передачи данных обмен порциями данных РД « ОП осуществляется под управлением подпрограммы, которая вызывается по сигналам прерываний от ПУ. Сигналы прерывания вырабатываются n - раз, где n - размер блока данных.

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

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

На этапе передачи данных контроллер ПУ по каждому сигналу готовности вырабатывает запрос на ПДП, который интерпретируется как требование на управление интерфейсом. Получив интерфейс в свое управление, КПДП генерирует цикл обмена порцией данных РД « ОП. Цикл ввода: адрес А выставляется на шину адреса А®ША, вырабатывается сигнал чтения буфера РД®ШД и сигнал записи в ОП ШД®ОП[А]. Цикл вывода: адрес А выставляется на шину адреса А®ША, вырабатывается сигнал чтения памяти ОП[А]®ШД, сигнал записи в буфер ШД®РД. Если в момент выполнения цикла обмена РД « ОП к ОП обращается ЦП, то, обнаружив память занятой, он приостанавливает свою работу, ожидая её освобождения. Если требования к ОП вырабатываются одновременно, то управление отдаётся КПДП, иначе возможны потери информации при обмене.

Быстродействие ПДП определяется по затратам времени на пересылку одной порции данных: Т = 2t. Здесь один цикл обращения к памяти тратится на ожидание, если в момент запроса на ПДП память занята, и второй – собственно на обмен.

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

Ввод-вывод по прерываниям процессора с точки зрения производительности ЭВМ более эффективен, так как время ожидания готовности процессор может использовать для выполнения другой работы (другой программы). Однако у этого способа другой недостаток - ощутимые накладные расходы времени на передачу одной порции данных:

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

2) время на сохранение информации (обычно в стеке) о состоянии прерванной программы - это еще несколько обращений к ОП;

3) время на переход к подпрограмме обмена (который обычно осуществляется по вектору прерываний и также требует несколько обращений к ОП);

4) время на восстановление состояния ЦП и возврат из подпрограммы - это еще несколько обращений к ОП.

В сумме эти накладные расходы многократно превышают время обмена «ОП « РД ПУ». По этой причине второй способ может применяться только для обслуживания медленнодействующих ПУ, таких, как клавиатура, мышь и т. п.

В случае аппаратного управления обменом (в режиме ПДП) накладные расходы времени минимальны. Если память в момент запроса на ПДП свободна, то управление обменом передается КПДП (КВВ), который генерирует цикл обмена с ней: РД « ОП - один цикл. Если память занята, то КПДП ждет ее освобождения и только потом генерирует свой цикл обмена с ней. В этом случае суммарное время будет не более двух циклов: один цикл на ожидание, другой на обмен. Чтобы уменьшить время ожидания контроллеру ПДП (КВВ) обычно присваивается более высокий по отношению к процессору приоритет. В этом случае для КПДП с наивысшим приоритетом время ожидания не превышает времени одного цикла памяти. Таким образом, аппаратная реализация управления обменом обеспечивает самую высокую скорость обмена (пропускную способность) и поэтому используется обычно для обслуживания высокоскоростных ПУ. Ввод-вывод по прерываниям процессора - самый медленный способ из трех рассмотренных. Обмен по условию готовности занимает промежуточное положение. Следует отметить, что для управления обменом с конкретным ПУ нужно выбирать способ, собственное быстродействие которого не ниже быстродействия этого ПУ.

ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА ИНФОРМАЦИИ ПЭВМ ТИПА IBM PC/AT

В персональных ЭВМ типа IBM PC/AT ввод-вывод информации может осуществляться двумя способами: с использованием адресного пространства ввода-вывода и с отображением на память (единое адресное пространство).

В первом случае все адресное пространство ЭВМ делится на две составляющие: пространство памяти с адресами от 0 до FFFFFFH емкостью 16 MB и пространство ввода-вывода с адресами от 0 до FFH емкостью 256 байт, или с адресами от 0 до FFFFH емкостью 64КВ. Для того, чтобы отличить, к какому адресному пространству относится адрес на шине адреса, вводятся специальные сигналы обращения к пространству памяти (MR, MW) и к пространству ввода-вывода (IOR, IOW), которые подаются к устройствам, относящимся к соответствующему адресному пространству.

Обмен информацией между пространствами памяти и ввода-вывода в этом случае организуется специальными командами ввода (IN) и вывода (OUT), которые обеспечивают передачу данных между регистром-аккумулятором AX (или AL) и адресуемыми регистрами пространства ввода-вывода (которые принято называть портами ввода-вывода), и командами пересылки (MOV), которые обеспечивают передачу данных между аккумулятором AX (AL) и ячейками памяти.

В командах IN и OUT может указываться прямой адрес порта (в виде константы во втором байте команды) или косвенный, длиной 16 разрядов, когда адрес порта указывается в регистре DX. Отсюда разница в объемах (размерах) адресуемого пространства ввода-вывода. В первом случае можно адресовать 256 портов, во втором 64К портов ввода-вывода.

Следует отметить, что восемь старших адресов пространства ввода-вывода с номерами F8 - FF зарезервированы под операционную систему, и использовать их в прикладных программах не рекомендуется.

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

Следует отметить, что на порт, подключаемый к единому адресному пространству, подаются сигналы управления MR, MW и по командам IN, OUT обмен с ними уже невозможен.

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

В ПЭВМ PC/AT команда IN используется для ввода данных из РД ПУ (или состояния из регистра состояния ПУ) в регистр АХ процессора. Команда OUT предназначена для вывода информации (данных, команды или адреса) из АХ в соответствующий регистр ПУ.

Кроме программного управления обменом (по готовности ПУ или по прерываниям процессора) в IBM PC/AT для управления обменом можно использовать и аппаратное управление, обеспечивающее ПДП.

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

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Программный эмулятор устройства ввода-вывода NTVDM. Для изучения и исследования процессов ввода-вывода информации используется эмулятор NTVDM, работа которого основана на использовании возможностей виртуальной машины операционных систем Windows 2000 – Windows XP. Виртуальная машина поддерживает выполнение приложений MS-DOS. При появлении запроса на запуск приложения MS-DOS загружается модуль NTVDM, являющийся стандартным 32-х разрядным приложением защищенного режима. Модуль NTVDM получает код приложения MS-DOS и эмулирует его выполнение, формируя для приложения операционную среду MS-DOS и стандартную архитектуру ПЭВМ типа АТ. При этом обращения к не задействованным в стандартной архитектуре ПЭВМ портам модуль NTVDM перенаправляет драйверам виртуальных устройств ввода-вывода.

Эмулятор представляет собой драйвер виртуального устройства ввода-вывода и приложение, обеспечивающее внешний интерфейс пользователя. Драйвер принимает запросы на чтение/запись портов от NTVDM в диапазоне адресов от 0300h до 030Fh и размещает их в области разделяемой памяти. Кроме того, драйвер способен инициировать эмуляцию модулем NTVDM аппаратного прерывания по входу IRQ7. Схема функционирования эмулятора изображена на рисунке 4.

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

Эмулятор поддерживает работу устройства с носителем информации емкостью 265 байт, поддерживает обмен в режимах по флагу готовности, по прерыванию (IRQ7), по строковым командам, в режиме прямого доступа к памяти (используя эмулируемый NTVDM стандартный котроллер ПДП).

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

.

Рисунок 4 – Схема работы эмулятора

Таблица 1 – Состав и назначение регистров устройства

Регистр

Доступ

Бит

Название

Описание

Данных РД

Чтение/запись

0

D0

Регистр данных, отображает вводимый (выводимый) байт данных. Данные действительны при условии F = 1. Если флаг готовности устройства не установлен, чтение и запись в регистр игнорируются.

Если бит R = 1, то каждое чтение из регистра (по команде ввода IN) вызывает инкремент регистра адреса. При условии W = 1 каждая запись в регистр (по команде вывода OUT) также вызывает инкремент регистра адреса.

1

D1

2

D2

3

D3

4

D4

5

D5

6

D6

7

D7

Адреса РА

Чтение/запись

0

A0

Регистр адреса, содержит текущий адрес НИ. Если флаг готовности устройства не установлен, запись в регистр игнорируется.

1

A1

2

A2

3

A3

4

A4

5

A5

6

A6

7

A7

Управления РУ

Чтение/запись

0

E

Бит включения (Е=1) устройства.

1

I

Бит разрешения (I=1) прерываний.

2

R

Бит R=1 указывает направление обмена - чтение с НИ и запись в РД

3

W

Бит W=1 указывает направление обмена – запись на НИ из РД

4

Не используются, всегда 0

5

6

7

Состояния РС

Чтение

0

F

Флаг готовности (F=1) устройства (его РД) к обмену с ОП.

В эмуляторе устанавливается пользователем (командой «Завершение транзакции» при условии E = 1). Сбрасывается в момент чтения РД при вводе и в момент записи в РД – при выводе.

При условии I=1 установка флага F вызывает выработку сигнала прерывания.

1

-

7

Не используются, всегда 0.

&&&

Ввод (вывод) по прерываниям процессора обеспечивается следующим образом.

1. Установить обработчик (подпрограмму) прерывания для устройства ввода (вывода). Сигнал прерывания от устройства ввода (вывода) подключается к входу IRQ3 (IRQ5) и обслуживается вектором прерываний с номером 0Bh (0Dh). Перед завершением обработчик должен посылать константу 20h в порт 20h.

2. Временно запретить обмен (т. е. выполнение команды IN (OUT) в подпрограмме) обработчику прерывания установив флаг обхода команды IN (OUT).

3. Разрешить прерывание для устройства ввода (вывода). Для этого прочитать и запомнить регистр маски программируемого контроллера прерываний (ПКП) из порта 21h, сбросить в нем бит 3 (5) и вновь переслать в порт 21h. В этот момент, если на входе IRQ3 (IRQ5) был запрос на прерывание, может возникнуть прерывание, поэтому в обработчике (см. п. 2) был защищен обмен.

4. Привести устройство в исходное состояние, сбросив бит запуска в регистре управления (порт 30Аh). Задержка на исполнение минимум два тика таймера (адрес таймера - 0040:006С).

5. Разрешить обмен обработчику прерывания, сбросив флаг обхода команды IN (OUT).

6. Запустить устройство, установив бит запуска в регистре управления (порт 30Ah).

7. Проверка на конец цикла ввода (вывода).

8. Привести устройство в исходное состояние, сбросив бит запуска в регистре управления.

9. Восстановить регистр маски ПКП (порт 21h).

10. Восстановить старый обработчик прерывания.

Результатом выполнения работы являются программы ввода и вывода и трассы их выполнения, снятые в шаговом режиме.