раммы канала, в которых УС располагаются не в после довательных ячейках памяти. Этот вид перехода в прог рамме канала является безусловным переходом.
Для выполнения условных переходов в каналах сов ременных машин применяется ветвление программ кана ла. В зависимости от признаков, характеризующих сос тояние периферийного устройства, после выполнения оче редного управляющего слова следующее УС в цепи опе раций либо выполняется, либо пропускается.
В системах IBM 360 и ЕС ЭВМ признаком условно го перехода служит содержимое разряда «Модификатор состояния» в байте состояния, который ПУ посылает в канал по завершении операции, предписанной текущим управляющим словом. Если модификатор состояния со держит 0, то выбирается и исполняется следующее по порядку управляющее слово в цепи операций. В случае единицы следующее УС пропускается.
Ниже будет рассмотрен пример программы канала, в которой используются условный и безусловный пере ходы.
А д р е с д а н н ы х (АД) и с ч е т ч и к д а н н ы х (С Д) определяют область памяти, используемую в опе рации ввода-вывода. Адрес данных указывает адрес пер вого (или последнего в случае обратного ввода) слова (байта) из массива информации; счетчик данных ука
зывает количество слов |
(байтов). |
У к а з а т е л ь ц е п и |
о п е р а ц и й ЦО. При ЦО = 0 |
программа канала для данного периферийного устройст ва заканчивается на рассматриваемом УС, если нет ука заний о продолжении цепи данных. При Ц О =1 после выполнения действий, предусмотренных данным УС, сле дующее по порядку УС выбирается из памяти и начи нается выполнение новой операции ввода-вывода с тем же периферийным устройством.
У к а з а т е л ь п р е р ы в а н и я П Р. При ПР = 1 канал посылает в процессор запрос программно-управляемого прерывания.
У к а з а т е л ь ц е п и д а н н ы х ЦД. При Ц Д —0 опе
рация |
после использования данного УС оканчивается; при |
Ц Д = 1 |
операция продолжается с новым массивом дан |
ных, указанным в следующем УС. |
У к а з а т е л ь п р о п у с к а и н ф о р м а ц и и ПИ. При |
П И = 1 |
передача информации между каналом и опера |
тивной |
памятью подавляется, канал осуществляет толь |
ко подсчет слов, проходящих между каналом и пери ферийным устройством.
Примеры программ канала. Рассмотрим выборочную передачу информации между периферийным устройст вом и памятью. Предположим, что в оперативную па мять машины должны быть приняты из некоторой зоны магнитной ленты, содержащей 500 байтов, первые и по следние 10 байтов. Если считать, что требуемая зона уже подведена под считывающие головки и что опе
ративная |
память имеет побайтную |
адресацию, то для |
выполнения |
данной операции |
необходимо выполнить |
следующую |
последовательность |
УС, |
образующих цепь |
данных: |
Ц Д = 1 , ЦО = 0, |
ПИ = 0, |
ПР = 0, АД = а, |
Ввод, |
С Д =10. |
|
|
|
|
|
Ввод, Ц Д = 1 , ЦО = 0, ПИ = |
1, ПР = 1, АД = 0, СД = |
—480. |
ЦД = 0, ЦО = 0, |
ПИ = 0, ПР = 0, АД = а+ 10, |
Ввод, |
СД =10.
В данном примере УС условно записаны в виде строк, в которых перечисляются значения полей данного УС.
Первое УС выполняет ввод первых десяти байтов в ячейки с адресом от а до а+ 9 . Второе УС позволяет пропустить следующие 480 байтов; установленный в этом УС указатель программно-управляемого прерывания по зволяет программе незамедлительно начать обработку начальных 10 байтов. Третье УС выполняет ввод в ОЗУ последних десяти байтов из зоны магнитной ленты и за канчивает программу канала. Автоматически формируе мое каналом по окончании цепи УС прерывание сигнали
зирует программе, что затребованная ею операция вводавывода выполнена полностью.
В качестве другого примера рассмотрим поиск ин формации на магнитном диске по признакам, содержа щимся в самой информации. В качестве признака мо жет быть использовано, например, поле ключа, записан ное в каждом блоке информации на диске перед полем данных (см. гл. 6). Программа задает массив данных в ОЗУ, являющийся ключом-эталоном, а устройство на магнитном диске, просматривая последовательно все блоки информации на носителе (или заданной дорожке), должно найти блок, чей ключ совпадает с эталоном. По скольку поле ключа может иметь большую длину (до256 байтов), невыгодно устанавливать в ЗУ на магнит
ном диске |
триггерные |
регистры для |
хранения ключа- |
эталона целиком на все время поиска. |
В современных |
машинах |
ключ-эталон |
многократно |
считывается из |
ОЗУ (при прохождении каждого блока информации под головкой) и побайтно сравнивается с данными, читае мыми с диска.
Для организации такого поиска принципиально не обходимо построить программу канала в виде цепи операций с использованием безусловного перехода, вы полняемого операцией «Переход в канале», и условного перехода по признаку «Модификатор состояния» в байте состояния, который посылает в канал запоминающее ус тройство на диске.
Предполагая, что требуемые цилиндр и дорожка на магнитном диске уже выбраны, можно записать следую щую последовательность УС, размещенных в ячейках памяти с адресами /, /+ 1, 1-\-2 и выполняющих поиск информации:
(/) приказ (поиск по ключу), ЦД = 0, Ц О = 1 ,П И = 0,
ПР —0, АД = а, СД = и; |
|
|
Ц О='1, ПИ = 0, |
|
(/-(-1) |
переход в |
канале, ЦД —0, |
ПР = 0, АД = /, СД = |
—; |
ПИ = 0, ПР = 0, АД = |
|
(/+2) |
ввод, Ц Д = 0 , Ц О = 0, |
= |
ß, СД = |
т . |
|
|
|
|
|
|
Приказ, посылаемый в ЗУ на диске с помощью уп |
равляющего |
слова, записанного |
в |
ячейке /, инициирует |
в |
устройстве |
операцию поиска. |
ЗУ |
на |
диске начинает |
выбирать из первого подошедшего под головку блока ин формации байты ключа и сравнивать их с байтами эта лона, которые выбираются каналом из ячеек ОЗУ, на чиная с а и кончая <%+(«—1). Если совпадения ключей нет, то следующее УС «Переход в канале» вызывает пов торное выполнение УС из ячейки /, т. е. повторение поис ка для следующего на дорожке блока информации. Ес ли же блок информации с требуемым полем ключа най ден, то ЗУ на диске формирует в конце операции поиска байт состояния с единицей в разряде «Модификатора со стояния». Канал пропускает в своей программе УС из
ячейки /+1 и переходит |
к |
выполнению |
УС из ячейки |
/+ 2. |
В нашем |
примере |
в |
этом случае выполняется |
ввод |
искомой |
информации |
в ОЗУ с |
окончанием це |
пи операций. При этом в ОЗУ вводятся т байтов и по мещаются в группу последовательных ячеек, начиная с ячейки ß.
|
|
|
|
|
|
9-4. В И Д Ы |
К А Н А Л О В |
В В О Д А - В Ы В О Д А |
Мультиплексный канал. |
По способности к одновре |
менному |
обслуживанию |
нескольких периферийных ус |
тройств |
различаются |
два |
вида каналов: мультиплекс |
ный и селекторный.
Мультиплексный канал позволяет одновременно об служивать несколько параллельно работающих перифе рийных устройств. Каждое из этих устройств связывает ся с каналом на короткие периоды времени только после того, как периферийное устройство подготовлено к при ему или выдаче очередной порции информации (слога, байта, группы слогов и т. п.). Период времени, в течение которого происходит передача информации между кана лом и подготовленным к этому периферийным устройст вом, может быть назван сеансом связи. В мультиплекс ном канале сеансы связи различных периферийных уст ройств чередуются между собой. Во время сеанса свя зи одного из устройств с каналом другие устройства мо гут выполнять работу, не требующую использования средств канала (например, печатать очередной символ или вводить символ с носителя информации).
Если несколько периферийных устройств подготови лись к очередному сеансу связи и запрашивают обслу живание со стороны канала, то канал выбирает одно из них в соответствии с принятыми для данной системы приоритетными правилами, например в соответствии с- порядком подключения устройств ко входным магистра лям канала. Остальные устройства, готовые к сеансу связи, должны ожидать, когда подойдет их очередь на обслуживание. Следовательно, мультиплексный канал предназначен главным образом для работы со сравни тельно медленными устройствами,, способными ожидатьобслуживания без потери информации. Аппаратные средства мультиплексного канала можно условно разде лить на две части (рис. 9-1,а): средства, предназначен ные для обслуживания отдельных периферийных уст ройств, присоединенных к каналу, и оборудование, явля ющееся общим для всех устройств и разделяемое всеми устройствами во времени.
Средства канала, выделенные для обслуживания од ного устройства, принято именовать подканалом.
Количество подканалов определяет максимальное число одновременно работающих с данным каналом пе-
риферийных устройств. Физически подканал реализует ся в виде участка памяти, в котором хранятся парамет ры операции ввода-вывода, выполняемой данным уст ройством: текущие значения адреса и счетчика данных, код и указатели операции ввода-вывода, адрес следую щего УС в цепи и др. В качестве памяти для хранения этих параметров может использоваться либо специаль ное ЗУ, встроенное в мультиплексный канал, либо уча сток оперативной памяти машины.
Общее оборудование мультиплексного канала пред ставляет собой набор триггерных регистров и комбина ционных схем, позволяющих осуществлять изменение текущих параметров операции ввода-вывода, обмен ин формацией с ОЗУ и с периферийными устройствами.
Во время сеанса связи канал извлекает из памяти подканалов текущие параметры операции, соответству ющие обслуживаемому подканалу, и размещает их в своих триггерных регистрах. Руководствуясь выбранны ми из памяти подканалов параметрами, канал произво дит передачу порции информации между ОЗУ и пери ферийным устройством и соответствующим образом корректирует текущие параметры (прибавляет единицу к адресу данных, вычитает единицу из счетчика данных и т. п.). Измененные во время сеанса параметры возвра щаются для хранения в соответствующий участок памя ти подканалов.
В следующем сеансе связи триггерные регистры ка нала могут быть использованы для обслуживания дру гого подканала. Мультиплексный канал способен прини мать из процессора новые команды пуска операций вво да-вывода, относящиеся к свободным подканалам, и начинать выполнение новых цепей УС, продолжая об служивать ранее пущенные устройства.
Селекторный канал. Этот вид каналов предназнача ется для привилегированного обслуживания одного пе риферийного устройства. В случае работы с селектор ным каналом периферийное устройство после пуска опе рации остается связанным с каналом до окончания цепи операций. Запросы на обслуживание от других перифе рийных устройств, так же как и новые команды пуска операций ввода-вывода от процессора, в это время не воспринимаются каналом: до конца цепи операций се лекторный канал по отношению к процессору представ ляется занятым устройством.