ренный комплект системы. Для системы с переменным со ставом оборудования могут существовать, очевидно, мно гочисленные варианты расширенного комплекта.
Возможны и другие пути построения вычислительных систем. Роль центрального ядра может играть оператив ное запоминающее устройство. В этом случае одно или несколько вычислительных устройств присоединяются к общей для всех систем памяти на тех же основаниях,
что |
и другие |
периферийные устройства |
(машина |
CDC |
3600). |
системы, например IBM 7030, |
с цент |
Существуют |
ральным ядром в виде устройства переключения шин па мяти, которое объединяет в одну систему переменное число оперативных запоминающих устройств, периферий ных устройств и процессоров.
Однако, несмотря на различие конфигураций, системы с переменным составом оборудования обладают рядом общих свойств, принципиально отличающих их структуру от машин с фиксированным составом оборудования:
а) Стандартный формат информации и управляющих сигналов, которыми периферийные устройства обменива ются с центральным ядром системы. Преобразование стандартного формата данных в индивидуальные форма ты, приспособленные к работе отдельных периферийных устройств, должно производиться в самих периферийных устройствах.
б) Стандартный формат команды для всех перифе рийных устройств, присоединенных к общей информаци онной магистрали. Команда работы с периферийными устройствами представляет собой для процессора про сто команду передачи информации и не отражает явным образом специфику периферийных устройств, физиче скую природу используемых носителей информации и т. п. Периферийные устройства могут отличаться друг от друга с точки зрения процессора только какими-либо присвоенными им кодовыми признаками, например но мером устройства.
в) Наличие общих информационных магистралей для всех (или части) периферийных устройств системы.
Параллельная работа устройств. Под параллельно стью работы здесь подразумевается как одновременная работа нескольких периферийных устройств, так и сов мещение во времени работы периферийных устройств с выполнением текущей программы процессором.
Возможность параллельной работы создается благо даря тому, что цикл работы периферийного устройства (ввод и вывод информации, преобразование информа ции из непрерывной формы в дискретную и т. п.) обычно продолжительнее времени передачи подготовленной пе риферийным устройством информации в центральное ядро и обратно. Для реализации одновременной работы периферийных устройств и процессора необходимо, что бы команда управления периферийным устройством только запускала его в работу, после чего процессор должен освобождаться для продолжения программы. Для реализации одновременной работы нескольких пе риферийных устройств необходимо, чтобы процессор мог посылать новые команды пуска периферийных уст ройств, не дожидаясь окончания работы ранее запущен ных устройств. После пуска в работу периферийные устройства должны функционировать автономно, зани мая время процессора только на короткие сеансы связи для передачи в центральное ядро подготовленной пор ции информации.
Каналы ввода-вывода. Требование параллельной ра боты периферийных устройств и процессора вызывает необходимость выделения схем управления периферий ными устройствами из состава процессора и придания им достаточной степени автономности.
С другой стороны, нецелесообразно включать в каж дое периферийное устройство все схемы управления им, так как это привело бы к неоправданному росту объема оборудования: многие функции управления периферий ными устройствами принципиально не зависят от типа устройства и выполняются с разделением во времени; эти функции могут быть возложены на общую для всех периферийных устройств аппаратуру.
Для того чтобы эти функции могли быть осуществле ны в системе с переменным составом оборудования, ап паратура и логика управления устройств должны разра батываться с учетом требований стандартности форма тов информации и команды и возможности работы по общим информационным магистралям.
По указанным причинам в состав современных вычи слительных систем вводят специальные унифицирован ные устройства управления вводом-выводом, обеспечи вающие обмен информации между памятью (или вооб ще ядром вычислительной системы) и периферийными
устройствами с осуществлением параллельной работы переменного набора периферийных устройств различных типов.
Этим унифицированным устройствам присваивают различные наименования: устройства обмена, процессо ры ввода-вывода, каналы. Последний термин получил наиболее широкое распространение, поэтому в дальней шем рассматриваемые устройства будут именоваться каналами ввода-вывода.
9 - 2 . Ф У Н К Ц И И К А Н А Л О В В В О Д А - В Ы В О Д А
Выбор функций, которые должны выполняться кана лом, зависит от назначения и логических особенностей вычислительной системы. В минимальном варианте ка нал может осуществлять только адресацию области па мяти, используемой при вводе-выводе; остальные функ ции по организации ввода-вывода могут оставаться за процессором. Однако стремление увеличить степень сов мещения во времени работы процессора и периферийных устройств приводит в современных вычислительных системах к расширению задач, возлагаемых на канал.
В крупных системах канал превращается в самосто ятельное в логическом отношении устройство, работаю щее по собственной хранимой в памяти программе.
Как следствие этого процессор освобождается от вы полнения многих служебных функций, необходимых для организации ввода-вывода.
Рассмотрим более подробно некоторые основные функции, которые могут быть возложены на канал вво
да-вывода. |
памяти. Для |
определения ис |
Определение области |
пользуемой в операции |
ввода-вывода |
области |
памяти |
необходимо знать начальный адрес и |
размер |
области. |
Размер области памяти |
задается в |
виде количества |
стандартных для данной машины единиц информации (слов, байтов и т. п.).
Эти данные наряду с некоторыми другими указате лями особенностей операции обычно собираются в одно слово, которое называется управляющим словом (УС) и играет для канала ту же роль, что и команда для про цессора.
При выполнении операции ввода-вывода канал фор мирует адреса последовательных ячеек памяти, начиная
с заданного в УС начального адреса, и сравнивает ко личество прошедших через канал слов (байтов) с чис лом, заданным в УС. Для осуществления этих операций канал должен содержать суммирующий счетчик текуще го адреса и вычитающий счетчик количества слов (бай тов). В начале операции ввода-вывода в эти счетчики переписывается информация из УС, а затем после запи си (чтения) слова (байта) содержимое счетчиков соот ветственно увеличивается или уменьшается на единицу, образуя адрес следующей ячейки и обеспечивая провер ку достижения границы заданной области памяти при переходе второго счетчика через нуль.
В некоторых машинах предусматривается операция ввода в память как при прямом, так и при обратном движении носителя информации (например, в случае магнитной ленты). В этом случае УС должно содержать не начальный, а конечный адрес, а счетчик текущего ад реса должен быть способен работать также в вычитаю щем режиме.
Цепь данных. Описанный выше метод определения области памяти для ввода-вывода позволяет указать только одну непрерывную область, состоящую из после довательных ячеек ОЗУ. Однако возможны случаи, ког да массив информации, предназначенный для ввода или вывода, располагается в памяти не подряд, а состоит из нескольких подмассивов, размещаемых относительно друг друга в произвольном порядке и в произвольно расположенных участках ОЗУ. Для организации работы с такими составными массивами используются так назы ваемые цепи данных. Цепь данных представляет собой последовательность из нескольких УС, в каждом из ко торых описывается один из подмассивов составного мас сива, т. е. указываются начальный адрес и длина под массива. После окончания ввода или вывода очередного подмассива канал выбирает для исполнения следующее по порядку УС и продолжает ранее начатую операцию над новым подмассивом. Последовательность УС, обра зующих цепь данных, воспринимается периферийным устройством как одна операция.
Для управления цепью данных в УС обычно вводит ся специальный разряд-указатель цепи. Если указатель цепи равен нулю, то после окончания операции с груп пой ячеек памяти, определенной УС, операция заканчи вается. Если указатель цепи равен единице, то после ис
пользования УС канал выбирает из памяти следующее УС, не прекращая текущей операции ввода-вывода.
Пропуск информации. При операциях ввода может возникать необходимость переносить в память с носите ля информации отдельные части массива, пропуская ненужные данные. Для выполнения таких процедур без участия процессора в УС вводят разряд-указатель про пуска информации. Если этот указатель содержит нуль, то производится нормальная операция по вводу инфор мации в определенную данным УС область памяти. Если указатель пропуска поставлен в состояние 1, то во вре мя исполнения УС ввод данных в память не произво дится, канал только подсчитывает приходящие из пери
ферийного устройства слова (байты). |
Это |
свойство |
в сочетании с возможностью организации |
цепи |
данных |
позволяет размещать в оперативной памяти произволь но выбранные порции информации из непрерывного по тока данных, получаемого от периферийного устройства.
Цепь операций. Во время решения задачи любое из периферийных устройств может использоваться много кратно для выполнения последовательности различных операций ввода-вывода с различными областями памя ти. Вычислительная система может быть построена так, что каждая новая операция ввода-вывода будет требо
вать вмешательства |
процессора, в программе которого |
в соответствующих |
местах должны располагаться |
команды ввода-вывода. Однако можно придать каналу большую степень логической автономности посредством организации цепи операций.
Цепь операций представляет собой последователь ность из нескольких УС, каждое из которых описывает новую операцию ввода-вывода над новым массивом ин формации. После окончания ввода или вывода очередно го массива канал выбирает в ОЗУ следующее УС, посы лает в периферийное устройство сигналы, указывающие на окончание предыдущей операции, и возбуждает
в |
данном периферийном устройстве новую операцию |
ввода-вывода. |
операций необходимо ввести |
в |
Для обозначения цепи |
УС поле, определяющее |
код операции ввода-вывода, |
и разряд-указатель цепи операций. Если указатель цепи операций равен единице, то после использования УС ка нал заканчивает операцию ввода-вывода, выбирает из памяти следующее УС и запускает новую операцию