
книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие
.pdfСовременная вычислительная техника решает эти проблемы путем создания специальных унифицированных
устройств для управления |
вводом-выводом (каналов) |
и унифицированных систем |
связи между устройствами |
(интерфейсов).
В настоящей главе рассматриваются логическая орга низация, свойства и виды каналов ввода-вывода. Вопро сы, связанные с построением интерфейсов, рассматрива ются в гл. 10.
Системы с переменным составом оборудования. Пе ременность состава оборудования означает, что система команд, аппаратура сопряжения устройств и логика уп равления ими должны быть таковы, чтобы присоединение нового устройства не вызывало в существующей части системы никаких других изменений, кроме изменения программы и кабельных коммутаций. Основное преиму щество подобной концепции состоит в том, что системы с переменным составом оборудования можно легко при способить к требованиям различных потребителей, обес печивая их тем набором устройств, который необходим и экономически целесообразен для данного применения. Кроме того, можно легко расширять и модернизировать систему по мере выявления новых потребностей или раз работки новых более совершенных устройств вычисли тельной техники, предотвращая моральное старение раз работанной системы.
Структура вычислительной системы с переменным со ставом оборудования может быть схематично представле на следующим образом: имеется центральное ядро систе мы, состав которого неизменен, и произвольное число пе риферийных устройств, присоединяемых к центральному ядру в зависимости от требований конкретного потреби теля. Состав центрального ядра и набор периферийных устройств могут быть различными. Например, в качестве центрального ядра может выступать тот минимальный комплект устройств, который позволяет рассматривать систему как самостоятельную вычислительную или уп равляющую машину. В этом случае ядро должно вклю чать вычислительное устройство (процессор), выполняю щее арифметические и логические операции, и память некоторого минимального объема для хранения текущих программ и данных. Присоединяя к минимальному комп лекту те или иные вводные и выводные устройства, дополнительные модули памяти и т. п., получаем расши
490
ренный комплект системы. Для системы с переменным со ставом оборудования могут существовать, очевидно, мно гочисленные варианты расширенного комплекта.
Возможны и другие пути построения вычислительных систем. Роль центрального ядра может играть оператив ное запоминающее устройство. В этом случае одно или несколько вычислительных устройств присоединяются к общей для всех систем памяти на тех же основаниях,
что |
и другие |
периферийные устройства |
(машина |
CDC |
3600). |
системы, например IBM 7030, |
с цент |
Существуют |
ральным ядром в виде устройства переключения шин па мяти, которое объединяет в одну систему переменное число оперативных запоминающих устройств, периферий ных устройств и процессоров.
Однако, несмотря на различие конфигураций, системы с переменным составом оборудования обладают рядом общих свойств, принципиально отличающих их структуру от машин с фиксированным составом оборудования:
а) Стандартный формат информации и управляющих сигналов, которыми периферийные устройства обменива ются с центральным ядром системы. Преобразование стандартного формата данных в индивидуальные форма ты, приспособленные к работе отдельных периферийных устройств, должно производиться в самих периферийных устройствах.
б) Стандартный формат команды для всех перифе рийных устройств, присоединенных к общей информаци онной магистрали. Команда работы с периферийными устройствами представляет собой для процессора про сто команду передачи информации и не отражает явным образом специфику периферийных устройств, физиче скую природу используемых носителей информации и т. п. Периферийные устройства могут отличаться друг от друга с точки зрения процессора только какими-либо присвоенными им кодовыми признаками, например но мером устройства.
в) Наличие общих информационных магистралей для всех (или части) периферийных устройств системы.
Параллельная работа устройств. Под параллельно стью работы здесь подразумевается как одновременная работа нескольких периферийных устройств, так и сов мещение во времени работы периферийных устройств с выполнением текущей программы процессором.
491
Возможность параллельной работы создается благо даря тому, что цикл работы периферийного устройства (ввод и вывод информации, преобразование информа ции из непрерывной формы в дискретную и т. п.) обычно продолжительнее времени передачи подготовленной пе риферийным устройством информации в центральное ядро и обратно. Для реализации одновременной работы периферийных устройств и процессора необходимо, что бы команда управления периферийным устройством только запускала его в работу, после чего процессор должен освобождаться для продолжения программы. Для реализации одновременной работы нескольких пе риферийных устройств необходимо, чтобы процессор мог посылать новые команды пуска периферийных уст ройств, не дожидаясь окончания работы ранее запущен ных устройств. После пуска в работу периферийные устройства должны функционировать автономно, зани мая время процессора только на короткие сеансы связи для передачи в центральное ядро подготовленной пор ции информации.
Каналы ввода-вывода. Требование параллельной ра боты периферийных устройств и процессора вызывает необходимость выделения схем управления периферий ными устройствами из состава процессора и придания им достаточной степени автономности.
С другой стороны, нецелесообразно включать в каж дое периферийное устройство все схемы управления им, так как это привело бы к неоправданному росту объема оборудования: многие функции управления периферий ными устройствами принципиально не зависят от типа устройства и выполняются с разделением во времени; эти функции могут быть возложены на общую для всех периферийных устройств аппаратуру.
Для того чтобы эти функции могли быть осуществле ны в системе с переменным составом оборудования, ап паратура и логика управления устройств должны разра батываться с учетом требований стандартности форма тов информации и команды и возможности работы по общим информационным магистралям.
По указанным причинам в состав современных вычи слительных систем вводят специальные унифицирован ные устройства управления вводом-выводом, обеспечи вающие обмен информации между памятью (или вооб ще ядром вычислительной системы) и периферийными
492
устройствами с осуществлением параллельной работы переменного набора периферийных устройств различных типов.
Этим унифицированным устройствам присваивают различные наименования: устройства обмена, процессо ры ввода-вывода, каналы. Последний термин получил наиболее широкое распространение, поэтому в дальней шем рассматриваемые устройства будут именоваться каналами ввода-вывода.
9 - 2 . Ф У Н К Ц И И К А Н А Л О В В В О Д А - В Ы В О Д А
Выбор функций, которые должны выполняться кана лом, зависит от назначения и логических особенностей вычислительной системы. В минимальном варианте ка нал может осуществлять только адресацию области па мяти, используемой при вводе-выводе; остальные функ ции по организации ввода-вывода могут оставаться за процессором. Однако стремление увеличить степень сов мещения во времени работы процессора и периферийных устройств приводит в современных вычислительных системах к расширению задач, возлагаемых на канал.
В крупных системах канал превращается в самосто ятельное в логическом отношении устройство, работаю щее по собственной хранимой в памяти программе.
Как следствие этого процессор освобождается от вы полнения многих служебных функций, необходимых для организации ввода-вывода.
Рассмотрим более подробно некоторые основные функции, которые могут быть возложены на канал вво
да-вывода. |
памяти. Для |
определения ис |
|
Определение области |
|||
пользуемой в операции |
ввода-вывода |
области |
памяти |
необходимо знать начальный адрес и |
размер |
области. |
|
Размер области памяти |
задается в |
виде количества |
стандартных для данной машины единиц информации (слов, байтов и т. п.).
Эти данные наряду с некоторыми другими указате лями особенностей операции обычно собираются в одно слово, которое называется управляющим словом (УС) и играет для канала ту же роль, что и команда для про цессора.
При выполнении операции ввода-вывода канал фор мирует адреса последовательных ячеек памяти, начиная
493
с заданного в УС начального адреса, и сравнивает ко личество прошедших через канал слов (байтов) с чис лом, заданным в УС. Для осуществления этих операций канал должен содержать суммирующий счетчик текуще го адреса и вычитающий счетчик количества слов (бай тов). В начале операции ввода-вывода в эти счетчики переписывается информация из УС, а затем после запи си (чтения) слова (байта) содержимое счетчиков соот ветственно увеличивается или уменьшается на единицу, образуя адрес следующей ячейки и обеспечивая провер ку достижения границы заданной области памяти при переходе второго счетчика через нуль.
В некоторых машинах предусматривается операция ввода в память как при прямом, так и при обратном движении носителя информации (например, в случае магнитной ленты). В этом случае УС должно содержать не начальный, а конечный адрес, а счетчик текущего ад реса должен быть способен работать также в вычитаю щем режиме.
Цепь данных. Описанный выше метод определения области памяти для ввода-вывода позволяет указать только одну непрерывную область, состоящую из после довательных ячеек ОЗУ. Однако возможны случаи, ког да массив информации, предназначенный для ввода или вывода, располагается в памяти не подряд, а состоит из нескольких подмассивов, размещаемых относительно друг друга в произвольном порядке и в произвольно расположенных участках ОЗУ. Для организации работы с такими составными массивами используются так назы ваемые цепи данных. Цепь данных представляет собой последовательность из нескольких УС, в каждом из ко торых описывается один из подмассивов составного мас сива, т. е. указываются начальный адрес и длина под массива. После окончания ввода или вывода очередного подмассива канал выбирает для исполнения следующее по порядку УС и продолжает ранее начатую операцию над новым подмассивом. Последовательность УС, обра зующих цепь данных, воспринимается периферийным устройством как одна операция.
Для управления цепью данных в УС обычно вводит ся специальный разряд-указатель цепи. Если указатель цепи равен нулю, то после окончания операции с груп пой ячеек памяти, определенной УС, операция заканчи вается. Если указатель цепи равен единице, то после ис
494
пользования УС канал выбирает из памяти следующее УС, не прекращая текущей операции ввода-вывода.
Пропуск информации. При операциях ввода может возникать необходимость переносить в память с носите ля информации отдельные части массива, пропуская ненужные данные. Для выполнения таких процедур без участия процессора в УС вводят разряд-указатель про пуска информации. Если этот указатель содержит нуль, то производится нормальная операция по вводу инфор мации в определенную данным УС область памяти. Если указатель пропуска поставлен в состояние 1, то во вре мя исполнения УС ввод данных в память не произво дится, канал только подсчитывает приходящие из пери
ферийного устройства слова (байты). |
Это |
свойство |
в сочетании с возможностью организации |
цепи |
данных |
позволяет размещать в оперативной памяти произволь но выбранные порции информации из непрерывного по тока данных, получаемого от периферийного устройства.
Цепь операций. Во время решения задачи любое из периферийных устройств может использоваться много кратно для выполнения последовательности различных операций ввода-вывода с различными областями памя ти. Вычислительная система может быть построена так, что каждая новая операция ввода-вывода будет требо
вать вмешательства |
процессора, в программе которого |
в соответствующих |
местах должны располагаться |
команды ввода-вывода. Однако можно придать каналу большую степень логической автономности посредством организации цепи операций.
Цепь операций представляет собой последователь ность из нескольких УС, каждое из которых описывает новую операцию ввода-вывода над новым массивом ин формации. После окончания ввода или вывода очередно го массива канал выбирает в ОЗУ следующее УС, посы лает в периферийное устройство сигналы, указывающие на окончание предыдущей операции, и возбуждает
в |
данном периферийном устройстве новую операцию |
|
ввода-вывода. |
операций необходимо ввести |
|
в |
Для обозначения цепи |
|
УС поле, определяющее |
код операции ввода-вывода, |
и разряд-указатель цепи операций. Если указатель цепи операций равен единице, то после использования УС ка нал заканчивает операцию ввода-вывода, выбирает из памяти следующее УС и запускает новую операцию
495
ввода-вывода в соответствии с кодом операции, указан ным в новом УС. Если указатель цепи операций равен нулю, то данное УС является последним в цепи (если нет указаний о продолжении цепи данных). Оба свойст ва: образование цепей данных и цепей операций — могут комбинироваться друг с другом. Следовательно, в об щем виде цепь УС, являющаяся программой канала, представляет собой цепь операций, внутри которой мо гут располагаться группы УС, относящихся к одной операции и составляющих цепи данных.
Прерывания ввода-вывода. Как уже указывалось вы ше, канал информирует процессор о прохождении раз личных этапов операции ввода-вывода, посылая в про цессор соответствующие запросы прерывания. Различа ются два основных вида прерывания, формируемого каналом: программно-управляемое прерывание вводавывода, возникновение которого планируется програм мистом, и прерывание, связанное с окончанием операции ввода-вывода, формируемое автоматически аппаратурой канала.
Программно-управляемое прерывание ввода-вывода может возникать на любом этапе операции ввода-выво да, даже если она и не окончена. Для указания необхо димости такого прерывания в состав УС вводится спе циальный разряд-указатель программно-управляемого прерывания. Как только в программе канала встречает ся УС, в котором указанный разряд установлен в еди ничное состояние, аппаратура канала формирует запрос прерывания, одновременно продолжая нормальное вы полнение текущей операции ввода-вывода.
Появление программно-управляемого прерывания означает, что все операции ввода-вывода в цепи УС, ука занные предшествующими УС, выполнены. Это позволя ет программе следить за продвижением по цепи УС и на чинать обработку данных сразу же, как только очеред ной этап операции ввода-вывода выполнен.
Автоматически формируемое прерывание окончания сигнализирует о том, что либо все операции в цепи УС были выполнены нормально, либо были обнаружены ошибки или какие-либо другие необычные условия, вслед ствие чего произошло принудительное окончание опе рации.
Сигнал о нормальном окончании операции ввода-вы вода сообщает программе, что она может продолжить
496
свою работу, пользуясь всем тем, что она затребовала ранее по отношению к вводу-выводу информации. В слу чае возникновения прерывания из-за ошибок или неис правностей программа производит попытку исправления ошибок, например, путем повторения соответствующих процедур либо своевременно извещает обслуживающий персонал о необходимости ремонта неисправного обору дования.
9-3 У П Р А В Л Я Ю Щ А Я И Н Ф О Р М А Ц И Я Д Л Я О П Е Р А Ц И Й В В О Д А -В Ы В О Д А . П Р О Г Р А М М Ы К А Н А Л А
Виды управляющей информации для операций вводавывода. Операции ввода-вывода в системах, построенных на основе унифицированных каналов ввода-вывода, уп равляются четырьмя видами информации: командами, управляющими словами, приказами и кодами состояния.
Команда представляет собой код, управляющий ра ботой процессора. Последовательность команд образу ет программу процессора.
В системе команд машины для пуска любой опера ции ввода-вывода, вообще говоря, достаточно иметь од ну команду со следующей типовой структурой:
Код операции |
Номер канала и периферийного |
|
процессора |
Адрес У С |
|
(пуск ввода - |
устройства |
|
вывода) |
|
|
По этой команде все ее поля, кроме кода операции процессора, передаются в канал и начинается выполне ние УС из указанной в команде ячейки ОЗУ.
В некоторых машинах, например в машинах IBM 360,
ЕС ЭВМ, адрес УС не |
указывается в команде |
процес |
|
сора, а содержится в |
так называемом |
«адресном сло |
|
ве канала», хранимом |
в определенной |
ячейке |
памяти, |
куда оно должно быть помещено до исполнения коман ды пуска ввода-вывода. Адресное слово канала обыч но содержит также информацию, управляющую защи той памяти (о защите памяти см. § 11-2).
32—333 |
497 |
В случае использования адресного слова канала ко манда пуска ввода-вывода процессора содержит только два поля (код операции и номер канала и периферийно
го устройства).
Для управления вводом-выводом система команд машины обычно содержит также:
команду прекращения ввода-вывода; команду опроса состояния канала;
команду опроса состояния периферийного устройства. Управляющее слово канала, как уже упоминалось выше, представляет собой управляющую информацию, которая выбирается из памяти и расшифровывается каналом ввода-вывода. Последовательность УС обра зует программу работы канала. Управляющие слова по своей структуре и значению полей являются общими
для всех типов периферийных устройств.
Приказ представляет собой часть УС или код, ад ресованный УС, который принимается из канала, рас шифровывается и выполняется периферийным устрой ством. Приказ содержит информацию, специфичную для данного типа периферийных устройств. Для различных типов устройств эта информация может иметь разный смысл. Например, для устройства связи с управляемым объектом приказ может означать вид преобразования и номер датчика, в случае запоминающего устройства на магнитной ленте — тип операции (запись, чтение, пе ремотка), направление движения ленты и т. п.
Коды состояния позволяют каналу определять теку щее состояние любого из многочисленных и разнообраз ных периферийных устройств, включенных в вычисли тельную систему (исправность устройства, готовность его к работе, целостность носителя информации и др.). В различных вычислительных системах коды состояния формируются по-разному. Например, в системах IBM 360 и ЕС ЭВМ используются два вида кодов состояния. Основная информация о состоянии устройства в виде 8-разрядного «байта состояния» автоматически посыла ется устройством в канал при пуске операции ввода-вы вода, ее окончании или при возникновении каких-либо ненормальных ситуаций в работе периферийного устрой ства. Разряды байта состояния характеризуют заня тость устройств ранее начатой операцией, окончание операции, обнаружение ошибки в работе устройства, об наружение определенных особых условий (маркер на
498
магнитной ленте и т. п.) Один из разрядов байта состо яния, называемый модификатором состояния, использу ется для организации условных переходов в программе канала в зависимости от результатов выполнения опе рации в периферийном устройстве.
Для получения более подробной информации о сос тоянии ПУ используется так называемый код уточненно го состояния. Длина и смысл кода уточненного состоя ния зависят от типа периферийного устройства.
Для получения уточненного состояния используется специальный приказ, посылаемый из канала в перифе рийное устройство. Код уточненного состояния заносит ся в ОЗУ.
Структура управляющего слова канала. В соответст
вии с изложенным |
в § 9-2 можно |
представить следую |
||
щий типовой формат управляющего слова канала: |
||||
Указатели |
П Р |
Адрес данных |
Счетчик |
|
ЦД 1 цо 1 пи |
||||
Код операции |
|
(А Д ) |
данных (СД ) |
•
К од о п е р а ц и и определяет как для канала, так и для периферийного устройства тип операции, задаваемой этим управляющим словом. В набор операций вводавывода обычно включаются: вывод информации из опе ративной памяти в периферийное устройство, ввод ин формации из периферийного устройства в память, ввод при обратном направлении движения носителя инфор мации, выдача в периферийное устройство приказа, оп рос состояния периферийного устройства.
Кроме перечисленных выше операций, управляющих передачами информации, в современных машинах в на боре операций ввода-вывода предусматриваются также операции, которые нужны для построения самих прог рамм канала. К ним относится так называемый «пере ход в канале». Эта операция является внутренней проце дурой канала и непосредственно на работу периферий ных устройств не влияет. Управляющее слово, осущест вляющее переход в канале, указывает адрес следующего УС в цепи и, таким образом, позволяет выполнять прог
32' |
499 |