Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Королев, Л. Н. Структуры ЭВМ и их математическое обеспечение учебное пособие

.pdf
Скачиваний:
24
Добавлен:
21.10.2023
Размер:
10.26 Mб
Скачать

целей служит оператор LIMIT, за которым следует циф­ ра, указывающая число значащих цифр, учитываемых при выполнении арифметических операций. Следует от­ метить еще одну особенность языка СИМВОЛ. Она сос­ тоит в том, что любую входную величину, т. е. любую величину, поступающую с внешних носителей в систему, можно пометить указателем. Этот указатель говорит только о том, точная ли эта величина или «эксперимен­ тальная». Если величина помечена как эксперименталь­ ная, то считается, что последняя значащая цифра уже содержит некоторую ошибку. Разумеется, если в резуль­ тате арифметических действий получилось больше зна­ чащих цифр, чем их было в одном из исходных операн­ дов, определенных как экспериментальные, то им дове­ рять нельзя. Соответственно, получив операнд с этим указателем, арифметическое устройство машины дина­ мически настраивается на работу с определенным чис­ лом разрядов. Что касается языковой стороны, то эти указатели можно рассматривать как способ задания ме­ тода выполнения арифметических операций. В языке как бы определена «экспериментальная» и точная ариф­ метика. Авторы языка СИМВОЛ включили в его состав, следуя языку PL-1, конструкцию ON (ПРИ). Смысл оператора ON состоит в том, что с его помощью можно в программе организовывать требуемую реакцию на сло­ жившуюся в ходе вычислений или в результате появле­ ния внешних событий ситуацию. За оператором ON сле­ дует список идентификаторов, затем тело программы, обеспечивающей должную реакцию на ситуацию, опре­ деляемую списком. Тело оператора заканчивается, как обычно, символом END.

В отличие от механизма обращения к процедуре яв­ ным образом, когда требуется указывать ссылку, опера­ тор ON выполняется неявным обращением. С помощью оператора ON можно, например, реагировать на ситуа­ ции, связанные с засылкой значений данных в область, указанную идентификатором списка ON, реагировать на обращения к указанным в списке ON процедурам. В спис­ ке параметров ON может находиться слово INTERRUPT (ПРЕРЫВАНИЕ). Если произошло прерывание, то выполняется тело ON.

Оператор ON представляет собой способ задания параллельных ветвей. В динамике счета идущая про­

210

грамма может быть прервана,

если

возникла ситуа­

ция, описанная списком параметров

какого-либо опе­

ратора ON. После выполнения

тела

ON выполнение

прерванной программы будет продолжено с той самой точки, на которой произошло прерывание. Общая струк­ тура программы, содержащей оператор ON, иллюстри­ руется рис. 18.

С конструкцией ON связаны еще два оператора, кото­ рые позволяют управлять выполнением ON. Это оператор

DISABLE (ВЫКЛЮЧИТЬ) и

...

ОсноВная

ENABLE (ВКЛЮЧИТЬ). За

Oft

программ

этими словами следует список

 

 

 

идентификаторов, которые со­

 

 

 

держатся в списках парамет­

 

 

 

ров блоков ON. Первый опе­

END

Off

Off

ратор выражает тот факт, что

 

 

все идентификаторы списка пе­

 

 

 

реведены в «неактивный» ста­

 

 

 

тус, второй оператор перево­

 

END

END

дит их в «активный» статус.

 

 

Пусть, например, в списке па­

 

Рис.

18.

раметров некоторого операто­

 

 

 

ра ON программы указаны идентификаторы А, В и С. Если

впрограмме в каком-то месте появится оператор

ENABLE (А, В, С), это повлечет за собой включение в сферу внимания ON переменных А, В, С и выполнение тела оператора ON при обращении к этим переменным. Операторы ENABLE и DISABLE в комбинации с опе­ ратором ON позволяют осуществлять синхронизацию параллельных процедур методом «семафоров». Перемен­ ные А, В, С предыдущего примера можно считать сема­ форами, которые либо запускают процедуру ON, либо преграждают ей путь.

Если к этому добавить, что воздействовать на эти семафоры можно во время выполнения процедур, то понятно, как можно синхронизовать процессы в этом слу­ чае. Операторами ON, ENABLE, DISABLE можно выз­ вать необходимую реакцию на очень сложную комбина­ цию условий, описывающих ситуации внешней и внут­ ренней среды. Таковы основные особенности языка СИМВОЛ. В следующем параграфе мы рассмотрим в об­ щих чертах, каким образом этот язык реализуется обо­ рудованием машины СИМВОЛ.

211

§ 2. Структура машины СИМВОЛ

Вычислительная машина СИМВОЛ состоит из восьми процессоров, связанных воедино общей информационной магистралью (рис. 19).

Процессоры могут работать параллельно и авто­ номно, получая необходимые директивы и информацию по этой информационной магистрали. Магистраль

Рис. 19. Блок-схема машины СИМВОЛ.

состоит из 111 линий, т. е. может параллельно переда­ вать от одного процессора к другому сообщение из 111 битов информации. Разряды сообщения распреде­ лены следующим образом:

64 для операндов и данных,

24 разряда несут адрес,

6 разрядов выделено для кода операции или директи­ вы абоненту,

5 разрядов являются адресом абонента, к которому направляется данная информация,

212

12 разрядов используются для служебных целей, в них содержится значение приоритета данного сообще­ ния и признаки синхронизаций.

Основными абонентами, принимающими и передающи­ ми сообщения, являются процессоры. Анализируя адрес­ ные разряды сообщения, каждый процессор принимает сообщение, относящееся Именно к нему, и, приняв его, может выполнять директиву (операцию), указанную в нем, автономно.

Центральный процессор (СР), занимающий большую часть оборудования, выполняет обычные функций и, в свою очередь, состоит из блока выборки команд, ариф­ метического устройства, устройства анализа ссылок (Re­ ference Processor), процессора, редактирующего входную и выходную информацию (Format: Processor). Следую­ щий автономный процессор называется системным супер­ визором (Sistem Supervisor — SS).

Функции системного супервизора SS очень важны. Это устройство управляет работой системы в целом и координирует работу всех остальных процессоров. Глав­ ная функция SS состоит в том, что он создает очереди заявок к различным процессорам, определяет приори­ теты. Иными словами, SS занимается распределением времени всех остальных процессоров между задачами, находящимися в активной форме, т.; е. выполняет функ­ ции диспетчера мультипрограммного режима. Очень важ­ ную функцию выполняет блок управления виртуальной памятью — контроллер памяти (Memory Controller — МС). В функции этого устройства входит динамическое выделение необходимых объемов виртуальной памяти для операндов и извлечение данных произвольной струк­ туры и разрядности из памяти. Контроллер памяти (МС) выполняет заявки от всех других процессоров системы, требующих извлечения и засылки в память некоторой информации, и может выполнять до 15 типов команд чтения и записи.

Следующий автономный процессор системы называ­ ется «транслятором» (TR). Он аппаратно выполняет функ­ ции перевода конструкций входного языка во внутрен­ ний язык машины. Следует отметить, что внутренний язык машины по своей структуре мало чем отличается от входного языка СИМВОЛ. Основная функция транс­ лятора заключается в том, что все выражения входного

213

языка переводятся в инверсную польскую запись. Как известно, в машине МИР также происходит перевод вход­ ного языка в подобный ему внутренний язык машины. В машине МИР этот перевод осуществляется микропрограм­ мами и программами одной мономашины, и процесс этот не совмещен с другими операциями ЭВМ МИР. В машине СИМВОЛ работа процессора-транслятора совмещена с работой других процессоров системы. Разница довольно близких по назначению этих этапов трансляции в маши­ нах МИР и СИМВОЛ также состоит в том, что трансля­ ция в МИРе главным образом сводится к перекодировке

ивыражения не переводятся в польскую запись. Автономные функции распределения памяти возла­

гаются на процессор управления дисками (DC). Этот процессор выполняет обращения к дисковой памяти, и его работа, главным образом, связана с выполнением директив SS, осуществляющих алгоритм «листания». Виртуальная память машины СИМВОЛ разбита на стра­ ницы (листы) по 256 слов каждая. Слово содержит 64 разряда. Полный виртуальный адрес состоит из 24 раз­ рядов, и это позволяет адресовать 218 страниц. Следова­ тельно, объем виртуальной памяти в листах превышает 65 тысяч. Физически память машины СИМВОЛ состоит из оперативной ферритовой памяти объемом в 8К слов (32 страницы) и дисковой памяти объемом около 50 000 страниц. Системный супервизор организует «листание» — перемещение виртуальных листов из дисковой памяти в оперативную и наоборот. Процессор, управляющий работой дисков, главным образом и занимается отыска­ нием требуемого листа на дисках и выполняет необхо­ димые пересылки.

Управлением приемом и выдачей информации, полу­ чаемой или выдаваемой на внешние усгройства, зани­ мается специальный процессор управления каналами (Channal Controller — СС). К этому процессору подклю­ чено два быстрых внешних канала и несколько каналов для связи с медленными устройствами и телеграфно­ телефонными линиями.

Независимым процессором осуществляется также ре­ дактирование и преобразование входной-выходной ин­ формации к необходимому виду, определяемому харак­ теристиками вводных-выводных устройств. Этот процес­ сор, который называется процессором сопряжения (Inter­

214

face Processor — IP), тесно связан с работой процессора управления каналами (СС), и они вместе выполняют слож­ ную работу с входнымн-выходными данными, не отнимая времени у центрального процессора. Наконец, в состав системы входит автономный процессор, называемый перераспределителем памяти (Memory Reclaimer — MR). Этот процессор заботится об оптимизации использова­ ния пространства виртуальной памяти, о своевременной очистке ее от использованной информации, о повторном использовании тех же объемов памяти при повторных циклах обращений.

Важно подчеркнуть, что все основные процессоры име­ ют дело с виртуальной памятью огромного объема. Ото­ бражением виртуальной памяти на физическую занима­ ются системный супервизор и процессор управления дисками. «Углубление» уровня виртуальной адресации в аппаратной структуре машин отвечает тенденциям сов­ ременного развития архитектуры ЭВМ. Например, в машинах первого поколения машинный язык (система команд) содержал обращения только к физическим адресам.

В машине «Атлас» подмена виртуальных адресов физическими производится уже на довольно высоком уровне — в момент реального обращения в память. Но в машине «Атлас» супервизор — управляющая про­ грамма — занимается распределением физических ресур­ сов памяти под массивы данных и программы.

В машинах Burroughs В-6500/В-7500 дескрипторы содержат физические адреса, назначаемые супервизором. «Глубина виртуализации» адресов в этих машинах, по­ жалуй, ниже, чем в машинах «Атлас». В машине СИМВОЛ эта виртуализация продвинута, по-видимому, до пре­ дела.

Представляет интерес подход к мультипограммированию,. которого придерживаются разработчики машины СИМВОЛ. Истоки такого подхода относятся к машине Gamma-60. Эта машина, разработанная в начале 60-х годов французской фирмой Bull (Буль), состояла из нескольких автономно работавших модулей, которые могли параллельно выполнять небольшие участки ко­ манд общей программы. Вся программа разбивалась на участки, предназначенные для исполнения этими авто­ номными блоками. Искусное программирование позво­

215

ляло резко повысить скорость выполнения всей програм­ мы. Автономные процессоры СИМВОЛ могут параллель­ но выполнять действия, связанные с выполнением разных задач. Например, центральный процессор может выполнять команды первой задачи, в то время как процессор-транслятор выполняет перевод операторов второй задачи в объектный язык, процессор сопря­ жения в это время готовит данные для ввода-вывода по третьей задаче, листование идет по четвертой задаче и т. д.

Таким образом, одновременно в машине выполняются действия, относящиеся к разным независимым задачам. Этот подход позволяет значительно повысить коэффи­ циент использования оборудования и тем самым повы­ сить общую производительность системы. Вообще говоря, мультипрограммирование может дать эффект только в том случае, если ЭВМ состоит из нескольких автономно работающих блоков. В машинах второго и третьего поколения к такого рода блокам относился центральный процессор и автономные устройства управления нес­ колькими независимыми каналами, которые могли рабо­ тать независимо, асинхронно и параллельно. Централь­ ный процессор обычно являлся с этой точки зрения «мо­ нолитным» устройством, ресурсы которого в каждый данный момент времени обслуживали одну программу. Но уже в структурах машин фирмы CDC (6600, 7600) появляются многофункциональные арифметические уст­ ройства и появляется реальная возможность выделять функционально автономные ресурсы центрального про­ цессора одновременно нескольким задачам.

В машине СИМВОЛ эти идеи получили вполне кон­ кретное воплощение, что позволило авторам этого про­ екта назвать свою систему «мультипрограммно-мульти­ процессорной».

П у т ь з а д а ч и в с и с т е м е . Рассмотрим, что делается с задачей в ходе решения. Системный суперви­ зор начинает ввод в машину с внешних устройств прог­ раммы, записанной на входном языке. Программа вво­ дится в рабочую область транслятора. На этом этапе работают процессор управления каналами, процессор управления памятью, процессор управления дисками, процессор сопряжения, так как для того, чтобы ввести что-либо с внешних устройств, нужно выделить вирту-

216

альную память, выделить физические листы и буфера в оперативной памяти и, разумеется, выполнить некото­ рую работу по редактированию входного текста. Транс­ лятор обрабатывает строки входного языка, распола­ гающиеся в этой рабочей области. Просматривая вход­ ные строки слева направо, транслятор в новой области памяти формирует строки объектного языка, в которых все выражения уже представлены в обратной польской записи. Одновременно транслятором формируется струк­ турированная таблица имен, которая размещается обычно в специально выделенной для задачи собственной области памяти. Строки объектного языка не содержат иденти­ фикаторов. Идентификаторы заменены ссылками на таб­ лицу имен.

После того, как исчерпаны все предложения (опера­ торы) входного языка, транслятор переходит к обработке таблицы имен. На этом этапе формируются ссылки на глобальные переменные и производится вызов процедур из библиотеки, если в таблице имен оказались соответ­ ствующие ссылки. Вызванные блоки-процедуры компи­ лируются и компонуются в общую объектную программу

;или в объектную строку (Object String), как ее называют разработчики системы СИМВОЛ.

Таблица имен содержит следующую информацию: полную символическую запись соответствующего иден­ тификатора и управляющее слово, которое представляет собой ссылку к операнду. Объектная строка, таким об­ разом, не содержит имен, а содержит лишь ссылки на соответствующее управляющее слово. Управляющее сло­ во может менять свое значение в динамике выполнения, оно содержит информацию о типе переменной и ряде других признаков, позволяющих выбрать эту перемен­ ную из памяти. В частности, управляющее слово может содержать ссылку на следующее имя в другой таблице. Глубина структурирования не ограничена. Строка таб­ лицы имен содержит целое число машинных слов. Пер-

*вый байт слова используется в качестве метки, указы­ вающей, что собой представляет данная информация: идентификатор или управляющее слово. Для каждого блока входной программы строится своя таблица имен. Оператор GLOBAL служит для установления связи межт ду именами. Объектная строка заканчивается обратной ссылкой на входную информацию. Это сделано для того,

2L7

чтобы можно было прервать трансляцию и в долж­ ный момент времени продолжить ее, если это необ­ ходимо.

Итак, после трансляции получается объектная стро­ ка в польской инверсной бесскобочной записи итаблицы имен, в которых проявлены все статические связи между переменными блочной структуры. С этого момента управ­ ление может быть передано центральному процессору, который теперь может выполнять объектную строку, выполнять программу. Принцип работы СР основан на использовании динамического рабочего стека. Рабочий стек «набивается» ссылками к данным. Этот процесс набивки стека ссылками продолжается до появления в объектной строке символа операции. В этот момент включается в работу арифметический блок центрального процессора и выполняет соответственно двуместную или одноместную операцию в зависимости от кода операции. Следует заметить, что для того, чтобы арифметический блок мог работать, в стеке должна оказаться «послед­ няя» ссылка на операнд. В стеке не может быть разме­ щена ссылка на следующую ссылку. Исчисление пос­ ледней ссылки является сложной функцией центрального процессора и подчас требует многоступенчатого поиска по таблицам имен, вычисления индексов для определе­ ния ссылки к элементу структуры. В обычных машинах обращение к элементу массива организуется путем вы­ числения величины, которую следует прибавить к базе. Всегда предполагается, что массив, если он даже много­ мерный, линеаризован и в виртуальной памяти распо­ ложен непрерывно (последовательно по адресам). В силу специфики машины СИМВОЛ, заключающейся в дина­ мическом назначении памяти, здесь теряется возможность такой организации доступа к элементам массива. Эти элементы могут оказаться расположенными в виртуаль­ ной памяти произвольным образом. Специальный, дос­ таточно автономный процессор анализа ссылок (Refe­ rence Processor — RP) занимается исчислением и назна­ чением адресов в динамике вычислений. Этот процессор как раз и выполняет операторы ссылок, появляющиеся в объектной строке. Выполняет в том смысле, что исчис­ ляет ссылку к нужному элементу и размещает ее в стеке. Аналогом устройства управления обычных машин в ма­ шине СР1МБОЛ является блок последовательного вы-

218

полнення команд (Instruction Sequencer — IS). В его функ­ ции входит последовательное чтение объектной строки и распределение работ между другими модулями и уст­ ройствами центрального процессора. Процессор, дос­ тигнув команды входа в блок, организует запоминание в стеке всей информации, необходимой для продолжения охватывающего блока, и выделяет новый стек для теку­ щего программного блока. Аппаратура последователь­ ного выполнения команд заботится о том, чтобы в дейст­ вие была введена новая таблица имен, соответствующая текущему программному блоку. Если новый блок оказы­ вается процедурой, центральный процессор проводит сложную работу по динамической организации ссылок на фактические параметры в соответствии с их списком, содержащимся в обращении. Эти связи налаживаются путем изменения управляющих слов в таблице имен, связанной с данной процедурой.

Таким образом, на центральный процессор возложе­ ны все функции, выполняемые административными сис­ темами трансляторов процедурно-ориентированных дзыков.

О р г а н и з а ц и я и н ф о р м а ц и и в п а м я - т и. Предельный динамизм в распределении виртуальной памяти наложил свой отпечаток на способ размеще­ ния информации. В машине СИМВОЛ широко исполь­ зуется аппарат списков и меток в памяти, ограничиваю­ щих начало и конец поля данных. Динамически перемен­ ная длина полей данных (чисел и строк), динамически переменная глубина структур потребовали привле­ чения достаточно сложных средств организации памяти. Листовая структура виртуальной памяти также нало­ жила свой отпечаток на организацию информации в па­ мяти.

Лист разделен на три области. Первая область со­ держит описание листа и используется алгоритмом лис­ тания.

Следующая область, состоящая из 28 слов, со­ держит описатели 28 групп, и, наконец, третья сами эти группы. Каждая группа состоит из восьми слов — это минимальный квант памяти, который выделяется для хранения собственно данных. В описателях квантов со­ держатся взаимные ссылки, т. е. эти описатели образуют список, который позволяет аппаратуре извлекать

219

Соседние файлы в папке книги из ГПНТБ