Назначение полей регистра СС.
Поле функции F определяет источник и приемник данных при ПДП как память или устройства ввода-вывода (порты) в соответствии с табл. 8.2. Во время выполнения пересылки канал декрементирует регистры указателей адресов источника (приемника), относящиеся к памяти, для того, чтобы данные помещались в последовательные ячейки. Указатели, относящиеся к устройствам ввода-вывода, остаются без изменения во время ПДП.
Таблица 8.2
Поле F | Функция | Поле SYN | Синхронизация |
Порт – Порт | Асинхронно | ||
Память – Порт | От источника | ||
Порт – Память | От приемника | ||
Память - Память | Не используется |
Разряд перекодировки ТL управляет перекодировкой данных. Если значение TL=1, то каждый передаваемый байт перекодируется с помощью таблицы, начальный адрес которой указан в регистре GC. Значение TL=0 соответствует пересылке без перекодировки. Важно отметить, что перекодировка определена только для пересылок байтов, т. е. логическая ширина шины приемника должна составлять 8 разрядов.
Поле синхронизации SYN указывает, что синхронизируется пересылка в соответствии с табл. 8.2. Асинхронные пересылки обычно используются при пересылках память - память. Синхронизация от источника выбирается обычно в тех случаях, когда источником является ВУ, а приемником - память. Внешнее устройство начинает очередной цикл пересылки, подавая сигнал на вход РЩ канала. Тогда канал выполняет один цикл пересылки и вновь ожидает сигнал DRQ. Синхронизация от приемника чаще всего осуществляется тогда, когда источником является память, а приемником - ВУ. Как и в предыдущем случае, ВУ управляет частотой пересылок с помощью сигнала DRQ, подавая его, когда оно готово к получению очередного байта или слова.
Разряд S определяет, какой из регистров GA или GB содержит адрес источника данных при ПДП. Значение S=O соответствует случаю, когда GA указывает на источник; S=1, когда GB указывает на источник.
Разряд Lуправляет выдачей сигнала LOCK (блокировка шин) во время ПДП. При L=0 сигнал LOCK не выдается, при L=1 устанавливается активный сигнал LOCK=0. Если пересылка синхронизируется от источника, то сигнал LOCK находится в активном состоянии с момента получения первого запроса ПДП (сигнал DRQ) и до тех пор, пока канал не приступит к выполнению программы завершения пересылок. Если пересылка синхронизируется от приемника, то сигнал LOCK будет находиться в активном состоянии от момента первого считывания (который предшествует первому запросу ПДП) и до тех пор, пока канал не перейдет к выполнению завершающей программы.
Разряд непрерывности С не используется при пересылках. Как отмечалось выше, установка этого разряда в «1» повышает приоритет программы канала до уровня ПДП.
Разряд остановки по передаче одного символа TS используется для указания каналу на выполнение всего одного цикла пересылки. Когда значение TS=1, то после пересылки одного байта (или слова) сразу возобновляется программа канала, причем все другие условия окончания, которые задаются следующими тремя полями (ТХ, ТВС и ТМС), в этом случае игнорируются.
Таблица 8.3
Поле TX | Окончание по EXT | Поле TBC | Окончание по BC = 0 |
Нет | Нет | ||
Со смещением 0 | Со смещением 0 | ||
Со смещением 4 | Со смещением 4 | ||
Со смещением 8 | Со смещением 8 |
Три младших поля регистра управления ТХ, ТВС и ТМС указывают каналу условие окончания пересылки: ТХ - по внешнему сигналу, ТВС - по счетчику байтов и ТМС - по сравнению с маскированием. Эти условия могут быть указаны по отдельности или в любых комбинациях. Внешнее окончание позволяет устройству ввода - вывода (обычно тому, которое синхронизирует пересылку) прекратить пересылку, подавая сигнал на вход ЕХТ (внешняя остановка) канала. Если выбрано окончание по счетчику байтов, то канал остановится, когда ВС=0.
Если указано окончание по сравнению с маскированием, то канал остановится, обнаружив байт, равный или не равный (возможны два варианта) младшему байту регистра МС, на который наложена маска, содержащаяся в старшем байте. Байт, останавливающий пересылку, тоже пересылается.
После окончания пересылки с ПДП канал прибавляет величину, называемую смещением окончания, ксодержимому указателя заданий ТР и возобновляет выполнение программы канала с этой точки. Смещение окончания может принимать значения 0, 4 или 8. Окончание однократной пересылки (по TS = 1) всегда приводит к смещению окончания, равному нулю. Кодирование полей управления окончанием приведено в табл. 8.3 - 8.4.
Таблица 8.4
Поле TМС | Окончание по маскированному сравнению | Поле TМC | Окончание по маскированному сравнению |
Нет | Нет | ||
По совпадению, смещение 0 | По несовпадению, смещение 0 | ||
По совпадению, смещение 4 | По несовпадению, смещение 4 | ||
По совпадению, смещение 8 | По несовпадению, смещение 8 |
Поскольку допускается совместное использование различных условий окончания, то возможно, что два или даже три условия окончания будут выполнены одновременно. В таком случае каналом будет автоматически выбрано окончание по условию, имеющему наибольшую величину смещения.
Кроме перечисленных выше регистров в каждом канале имеется регистр, который содержит слово-состояние программы PSW (рис. 8.6, а). Программа канала не имеет доступа к PSW.
Слово-состояние программы хранит состояние канала с тем, чтобы его работа могла быть приостановлена и позже возобновлена. Когда ЦП выдает команду приостановить работу канала, канал сохраняет содержимое PSW, указатель задания ТР и разряд-этикетку TAG указателя задания в первых четырех байтах блока параметров канала, как показано на рис. 8.6, б. Получив в дальнейшем команду возобновить работу канала, канал восстанавливает содержимое регистра PSW, регистра ТР и разряда-этикетки TAG из блока параметров и возобновляет свою работу.
Рис. 8.6. Структура слова-состояния PSW (а) и размещения информации в памяти по команде приостановить работу канала (б)
Разряды-этикетки TAG (см. рис. 8.3) связаны с каждым из четырех регистров GA, GB, GC и ТР. Напомним, что все пространство адресов удобно рассматривать как совокупность системного пространства (1М байт) и пространства ввода-вывода (64К байт). Поскольку регистры GA, GB, GC и ТР могут использоваться в качестве указателей и базовых регистров, то связанный с каждым из них разряд-этикетка TAG определяет, указывает ли регистр на адрес в системном пространстве (TAG=O) или в пространстве ввода-вывода (TAG=1). Общее УУ устанавливает или сбрасывает этикетку регистра ТР в зависимости от того, в каком пространстве записана программа канала. Программа канала изменяет состояния разрядов-этикеток регистров GA, GB, GC, используя различные команды загрузки регистров (подробно они описаны ниже). Команда загрузка указателясбрасывает разряд-этикетку, а команда пересылкаустанавливает разряд-этикетку. Когда разряд-этикетка указывает на системное пространство, то используются все 20 разрядов ША, что позволяет прямо адресоваться к 1М байт памяти. Если разряд-этикетка указывает на пространство ввода-вывода, то состояние четырех старших разрядов ША не определено, а 16 младших разрядов обеспечивают доступ к любому адресу в пределах 64К байт.
Таблица 8.5
Действия канала | Приоритет |
Пересылка с ПДП | 1 (высший) |
Программа завершения пересылки с ПДП | |
Программа канала (непрерывная) | |
Программа ответа на запрос готовности | |
Программа канала | |
Пассивное состояние |
Для организации совместной работы каналов ПВВ имеет встроенный механизм приоритетов. Этот механизм учитывает, что некоторые виды работ (например, прямой доступ к памяти) более важны, чем другие. Каждый вид действий, выполняемых каналом, имеет приоритет, отражающий его относительную важность (табл. 8.5). После окончания каждого внутреннего цикла работы сопроцессора общее УУ позволяет либо одному, либо другому каналу выполнять очередной внутренний цикл в соответствии с этими приоритетами. Когда пересылка с ПДП заканчивается, канал выполняет короткую внутреннюю программу завершения пересылки с ПДП. Она изменяет содержимое регистра ТР так, чтобы программа канала (пользователя) возобновила работу с команды, указанной при запуске пересылки с ПДП. Аналогично, при подтверждении запроса готовности канал выполняет внутреннюю программу, которая формирует ответ на запрос. Обе эти программы состоят из стандартных команд ПВВ, которые считываются из внутреннего ПЗУ.
Напомним, что программа канала может работать с приоритетом 3 или с приоритетом 1. Приоритет программы канала задается разрядом непрерывности С в регистре управления каналом СС. Если разряд С=0, то программа работает с нормальным приоритетом 3, а если С=1, то программа называется непрерывной и работает с тем же приоритетом, что и пересылка с ПДП. Таким образом, разряд непрерывности позволяет поднять приоритет тех программ (или отдельных частей программы) канала, которые критичны по времени выполнения.
Общее УУ позволяет работать каналу с более высоким приоритетом, а в тех случаях, когда приоритеты одинаковы, оно сравнивает разряды приоритета в слове-состояния программы PSW. Если значения этих разрядов не равны, то работает канал с P= l. В случае равенства разрядов приоритета у обоих каналов они работают попеременно под управлением общего УУ.
Дата добавления: 2015-12-22; просмотров: 747;