Программная модель процессора ввода-вывода
Как известно, к программной модели любого процессора относят те узлы, которые доступны для использования из программы. В первую очередь такими узлами являются регистры.
Регистры канала.На рис. 8.3 представлены программно доступные регистры канала и указано их стандартное назначение. Использование каждого из этих регистров при выполнении каналом программы или пересылок в режиме ПДП указано в табл. 8.1.
Регистры GA, GB и GC могут использоваться программой в качестве регистров общего назначения или регистров базы. При организации ПДП до начала пересылки регистр GA (GB) должен быть загружен адресом источника или приемника данных. Регистры GA и GB функционально взаимозаменяемы. Если при ПДП регистр GA указывает на источник, то регистр GB указывает на приемник и наоборот. Регистр GC при ПДП применяется в том случае, когда пересылаемая информация должна быть перекодирована. Для этого регистр GC до начала пересылки должен быть загружен начальным адресом таблицы перекодировки.
Рис. 8.3. Регистры канала процессора ввода-вывода
Указатель задания ТР играет ту же роль, что и указатель команд IP в центральном процессоре. Первоначально указатель задания ТР загружается при начальной инициализации ПВВ. Далее, во время выполнения программы, значение ТР автоматически изменяется для указания на следующую команду, которая должна быть выполнена. Указатель задания является полностью программно доступным, однако, использовать его, например, в качестве РОН или регистра базы не рекомендуется, поскольку это нарушит требуемую последовательность выполнения команд.
Указатель параметров РР загружается начальным адресом блока параметров, прежде чем начнет работу программа канала. Это происходит во время инициализации процессора. Программа канала не может изменять содержимое этого регистра, однако его применяют в качестве базового регистра для доступа к данным, содержащимся в блоке параметров. В режиме ПДП регистр РР не используется.
Индексный регистр IX может быть использован в качестве РОН при работе программы канала. Кроме того, его удобно использовать как индексный регистр для адресации операндов, расположенных в памяти. Регистр IX может быть, при желании, автоматически инкрементирован в конце выполнения каждой команды, что является удобным средством пошаговой обработки массивов (или строк). При ПДП индексный регистр не используется.
Таблица 8.1
Регистр | Использование регистра | |
В программе канала | При пересылке с ПДП | |
GA | РОН либо базовый регистр | Указатель источника/приемника |
GB | РОН либо базовый регистр | Указатель приемник/источник |
GC | РОН либо базовый регистр | Указатель таблицы перекодировки |
ТР | Указатель задания | Указывает причину окончания |
РР | Базовый | Не используется |
IX | РОН с автоинкрементом | Не используется |
ВС | РОН | Счетчик байтов |
МС | РОН | Регистр сравнения с маскированием |
СС | Не используется | Задает вид обработки |
Счетчик байтов ВС во время работы программы канала используется как РОН. В режиме ПДП его применяют как счетчик числа переданных байтов данных. Для этого до начала пересылки в регистр ВС необходимо загрузить количество байтов, которое необходимо переслать. Во время выполнения пересылки содержимое регистра ВС декрементируется при пересылке каждого байта независимо от того, было указано на остановку при передачи определенного количества байтов или нет. Когда содержимое регистра ВС станет равным нулю, пересылка прекращается только в том случае, если было дано указание на остановку по нулевому отсчету. Если такого указания не было, то следующим значением регистра ВС будет значение 0FFFFh и декрементирование продолжится.
Рис. 8.4. Пример выполнения операции сравнения с маскированием
Регистр маскирования/сравнения МС может быть использован как РОН. Кроме того, этот регистр может быть использован программой канала или во время пересылок с прямым доступом к памяти для выполнения сравнений с одновременным маскированием однобайтовых величин. Для такого использования регистра МС программа канала загружает число, с которым будет производиться сравнение, в младший байт регистра, а маску - в старший байт. Значение «0» в маске исключает соответствующий разряд загруженного числа и он не влияет на результат сравнения (рис. 8.4).
Регистр СС служит для управления каналом. Перед началом работы программа канала загружает этот регистр необходимыми значениями в соответствии с управляющими полями, представленными на рис. 8.5. Все указанные поля, за исключением разряда 8 (поле С), служат для управления каналом при пересылках с ПДП. Поле С - разряд непрерывности, относится к выполнению программы. Если этот разряд сброшен в нуль (С=0), то программа канала выполняется с нормальным приоритетом, если он установлен в единицу, то приоритет программы поднимается до уровня приоритета пересылок с прямым доступом к памяти.
Рис. 8.5. Структура регистра управления каналом
Хотя программа канала может использовать регистр СС в качестве РОН, такое использование не рекомендуется, поскольку оно может повлиять на состояние разряда непрерывности и изменить приоритет программы канала. Поэтому использование регистра СС программой обычно ограничивается загрузкой управляющих значений при подготовке пересылок с ПДП, а также установкой и сбросом разряда непрерывности.
Дата добавления: 2018-11-26; просмотров: 616;