Команды ввода-вывода
СОДЕРЖАНИЕ
1. Введение
3. Повторение команд ввода-вывода и канальных команд
4. Заключение
Введение
Команды ввода-вывода используются для взаимодействия с периферийными устройствами системы. Они касаются выбора периферийных устройств, а также управления ими, например включение и выключение периферийного устройства. В общем случае в больших ЭВМ команды от периферийных блоков отрабатываются после их передачи независимо от центрального устройства.
Команды ввода-вывода
Команды ввода-вывода являются командами переноса: периферийное устройство центральное устройство. Команды ввода-вывода осуществляют:
· передачу данных между процессором и ПУ;
· проверку состояния готовности ПУ;
· управление системой прерывания;
· операции с регистром переполнения (относятся по смыслу к группе команд изменений и пропусков);
· остановку процессора.
Команды ввода-вывода у разных ЭВМ имеют свои особенности. Кроме того, результат выполнения команд ввода-вывода зависит от устройства, с которым происходит обмен данными. Команда ввода-вывода (ввода / вывода) [Input / Output instruction] - машинная команда, выполняющая соответственно ввод данных с внешнего устройства в основную память или их вывод из основной памяти во внешнее устройство. Команды ввода-вывода машины МIX представляют собой компромисс для чрезвычайно различных средств, имеющихся в реально существующих машинах. Команда ввода-вывода центрального процессора задает только номер канала и устройства. Все команды ввода-вывода являются привилегированными и выполняются только тогда, когда процессор находится в состоянии СУПЕРВИЗОР.
Обычно команды ввода-вывода ( в / в) исключаются из смеси команд, так как если ЦП ждет завершения команды чтения или записи, время выполнения этой команды окажется необычно большим. Второй причиной является тот факт, что эти команды в действительности отражают скорее характеристики всей вычислительной системы, чем просто ЦП. Все команды ввода-вывода выполняются с тем устройством, номер которого был указан в специальной команде. По этой команде устройство становится текущим, и все операции ввода-вывода выполняются с этим устройством. Регистр команд ввода-вывода ( РКВВ), предназначенный для хранения кода команды, поступающей в канал из процессора, когда процессор в соответствии со своей программой запускает новую операцию ввода-вывода. Команда ввода-вывода выбирается из памяти и помещается в регистр В в результате обычной последовательности действий ЦП. Дешифратор кода операции расшифровывает ее как операцию ввода-вывода, а остаток слова в регистре В пропускает через вентильную схему в канал. Команды ввода-вывода инициируют в канале операцию обмена информацией между ядром ЭВМ (основной памятью) и периферийным устройством. Сама эта операция выполняется каналом под управлением его собственной программы.
Команды ввода-вывода являются привилегирозанными и выполняются только в состоянии супервизор. Все команды ввода-вывода завершаются формированием признака результата в ССП. Команда ввода-вывода принимается каналом, если канал свободен. Состояние регистра РгКОпВВ определяет операцию, и по адресу, хранимому на РгАУВВ, производится подключение адресуемого УВВ в сопряжение канала. Дешифрированием кода операции устанавливается наименование операции, которую должен выполнить канал. Операция НАЧАТЬ ВВОД-ВЫВОД начинается с пуска УВВ. Пуск производится посылкой в шину приказов ШП кода приказа ПУСК. Из ячейки ОЗУ с адресом 72 выбирается АСК, определяющее адрес первого УСК. Выборка УСК производится за два обращения к ОЗУ. Выбранное УСК заносится на РгУСК, и на РгАСК подготавливается адрес следующего УСК. На момент выборки первого УСК признак цепочки данных имеет нулевое значение.
Повторение команд ввода-вывода и канальных команд
Основную трудность при повторении команд ввода-вывода - вносит изменение положения носителя данных. Вследствие этого повторение команд ввода-вывода возможно при сочетании аппаратурно-микропрограммных и программных средств восстановления. Повторение команд ввода-вывода на аппаратурно-микропрограммном уровне возможно до некоторого порога, определяемого началом связи с устройством по интерфейсу. Если порог аппаратурно-микропрограммного повторения команды ввода-вывода пройден, производится прерывание ввода-вывода и записывается состояние канала и дополнительная информация, содержащая данные, уточняющие место и условия, соответствующие ошибке.
Выполняя команду ввода-вывода, процессор посылает по магистрали разряды адреса ПУ, кода операции, управляющие разряды. Контроллер заданного ПУ логически подключается к магистрали ввода-вывода. Он дешифрирует код операции и определяет, какую функцию (приказ) ПУ должно выполнить. Контроллер реализует некоторый алгоритм управления работой ПУ, вырабатывая определенную последовательность сигналов.
По команде ввода-вывода канал последовательно обрабатывает канальную программу, которая содержит необходимую информацию о выполняемых операциях ввода-вывода или управления. При этом работа ведется в монопольном режиме, если он задается одним из подключенных устройств, и скорость выполнения операций существенно повышается. Эта скорость прогрессивно увеличивается и в том случае, когда одна группа селекторных каналов отсутствует или они не работают.
В командах ввода-вывода существует отличие в записи адресной части команды с мнемоническим кодом операции и адресной части команды с машинным кодом операции. Это объясняется тем, что в машинных командах код операции продолжается в разрядах адресной части. При использовании мнемонического ода операции вид операции уже определен в самом мнемоническом названии кода, поэтому программист должен на месте первого адреса писать всегда нуль.
В командах ввода-вывода, в которых не определен файл, используется запомненное имя, поэтому команды Е, R или W, не содержащие имени файла, содержат ссылки на файл, с которого началась работа. Процессор выполняет команды ввода-вывода как часть управляющей программы one рационной системы в режиме супервизор Для организации взаимодействия канала ввода-вывода с управляющей программой используется набор служебных слов, часть которых формируется управляющей программой и передается каналу. Другая часть формируется каналом как описание результата завершения процедуры ввода-вывода. При выполнении команды ввода-вывода содержимое указанного в команде регистра В складывается с числом в поле DI и полученная сумма располагается в разрядах 21 - 31 слова, при этом разряды 21 - 23 и 24 - 31 указывают соответственно номер канала и номер ПУ. С помощью команд ввода-вывода организуется связь CPU с каналами. Обратную связь с CPU канал осуществляет, вырабатывая сигналы прерываний ввода-вывода. В результате прерывания ввода-вывода управление передается соответствующему блоку супервизора и одновременно запоминается CSW. Супервизор по коду прерывания определяет, каким устройством оно вызвано, а после анализа CSW устанавливает причину прерывания и принимает соответствующие меры.
Следствием выполнения команды ввода-вывода является передача адресуемой системе управления подключением (AS) информации для приема по сигнальной линии связи. При выполнении команд ввода-вывода вырабатывается один из четырех возможных признаков результата, определяемых проверками, которые выполняются каналом и устройством, а также исходным состоянием адресуемой части системы ввода-вывода. CPU освобождается для выполнения следующей команды. Признак результата обычно показывает, выполнил или нет канал то, что ему было указано в команде, и если нет, то по какой причине. В случае команды НАЧАТЬ ВВОД-ВЫВОД С БЫСТРЫМ ОТКЛЮЧЕНИЕМ, выполняемой независимо от устройства, может быть установлен признак результата 0, который позднее уточняется отложенным признаком результата, записанным в CSW. При выполнении последующих операций условного перехода признак результата может быть использован для выбора пути выполнения программы. При выполнении команд ввода-вывода КВВ устанавливает связь через интерфейс с заданным внешним устройством. Канал принимает команду ввода-вывода из процессора.
Если на команду ввода-вывода формируется ответ, исходя из состояний канала и подканала, то состояния остальных компонентов системы не опрашиваются. По отношению к выполняемой команде ввода-вывода система может находиться в одном из десяти возможных состояний.
Если в командах ввода-вывода содержимое битов 0 - 7 имеет значение 9С, 9D или 9Е, то бит 15 дополнительно используется как бит кода операции.
Момент, когда команда ввода-вывода вырабатывает условие конец работы канала, зависит от команды и типа ВУ. Для таких операций, как запись на магнитную ленту, условие конец работы канала имеет место тогда, когда окончена запись блока. В тех устройствах, которые контролируют запись, сигнал конец работы канала может быть в зависимости от устройства либо задержан до окончания проверки, либо нет. Если производится чтение с магнитной ленты, то условие конец работы канала возникает, когда межзонный. Для устройств, имеющих буфер, таких, например, как печатающее устройство IBM 3211 модели 1, условие конец работы канала возникает после завершения передачи данных между каналом и буфером. В операциях управления условие конец работы канала вырабатывается после передачи управляющей информации в устройство; исключение составляют короткие операции, в которых это условие может быть задержано до завершения операции. При выполнении операций, в которых нет передачи данных, условие конец работы канала может возникнуть во время начальной выборки.
Таким образом, команды ввода-вывода центрального процессора задают только номер канала и номер устройства.
При составлении программ команды ввода-вывода будут опущены, что не отражается на понимании демонстрируемых приемов и упрощает запись программ. В некоторых логических схемах программ эти операции могут присутствовать. Другая причина исключения команд ввода-вывода из входной информации заключается в том, что необходимо уметь оценивать влияние блокирования и буферизации. Пусть в том же примере во входных данных указывается, что для каждого выполняемого чтения или записи требуется десять команд. Первое, что надо сделать - это устранить эти команды из входной информации задачи. Если повторение возможно, команда ввода-вывода повторяется. Если повторение невозможно, каналы, затронутые ошибкой, записывают свои состояния и дополнительную информацию об ошибке. Процессор общем случае формирует команды ввода-вывода. В ОП хранятся программа канала и данные. Операции ввода-вывода инициируются процессором. Установка происходит после завершения команды ввода-вывода в канале.
Для указания возможности повторения команды ввода-вывода предусматриваются триггеры порогов. Ошибки по отношению к этому порогу условно разделены на ранние и поздние и ошибки во время передачи данных. При возникновении машинных ошибок в каналах выполняется регистрация состояния ЭВМ и анализ порога повторения каналов. Решение о способе реализации команд ввода-вывода для режима прямого программного управления зависит от таких факторов, как число и тип устройств ввода-вывода, формат команды и длина слова. Но еще больше оно зависит от средств реализации упомянутого выше второго подхода к операциям ввода-вывода - от косвенного программного управления, С точки зрения как программирования, так и реализации желательно использовать оба принципа. Если реакция системы на команду ввода-вывода может быть определена лишь по состояниям канала или подканала, то другие компоненты системы ввода-вывода не опрашиваются.
Во всех указанных выше командах ввода-вывода (кроме первой) достаточно указывать код операции и номер канала и ПУ. В команде Начать ввод-вывод, кроме того, нужно указывать адрес первого УСК в программе канала. Для единообразного представления всех команд ввода-вывода в ЕС ЭВМ для них принят один общий формат.
Заключение
Операторы вывода и ввода информации необходимы для того, чтобы превратить класс в реально интерактивный продукт, осуществляющий диалог с пользователем и подстраивающий себя (в определенных рамках) к потребностям пользователя.
Ни одна другая группа команд не различается в разных машинах так сильно, как команды ввода-вывода.
В современных персональных компьютерах используются три разные схемы ввода-вывода:
+ программируемый ввод-вывод с активным ожиданием;
+ ввод-вывод с управлением по прерываниям;
+ ввод-вывод с прямым доступом к памяти.
Для выполнения операций ввода и вывода микропроцессор 8088 имеет команды IN и OUT соответственно. Каждое устройство ввода-вывода IBM PC имеет один или больше встроенных регистров, с которыми могут работать эти команды. Каждое устройство ввода-вывода имеет адрес для каждого регистра в устройстве.
Список литературы
1. Баев Б. Микропроцессорные системы бытовой техники. - Горячая Линия – Телеком, 2012. 480 с.
2. Гуров В. Микропроцессорные системы. Учебник. - Инфра-М, 2016. 336 с.
3. Кангин В. В., Ложкин Л. Д. Обмен информацией в промышленной сети с модулями ввода-вывода дискретных сигналов ADAM-4055 // нфокоммуникационные технологии. 2015. №3. С. 269-276
4. Молочков В. Микропроцессорные системы управления техническими средствами рыбопромысловых судов. Учебник. – Моркнига, 2013. 362 с.
5. Мосян Д.Ю. Команды ввода-вывода // Управление социально-экономическими системами: методы, модели, технологии. – Ставрополь. 2016. С. 198-202
6. Смирнов Ю., Муханов А. Электронные и микропроцессорные системы управления автомобилей. – Лань, 2012. 624 с.
7. Хартов В. Микропроцессорные системы. Учебное пособие. – Academia, 2014. 368 с.