Файл: Ландау И.Я. Применение ЦВМ для проектирования ЦВМ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.06.2024

Просмотров: 87

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Упрощенная блок-схема транслятора показана на рис. 2-10. Блок

/ вводит

программу

с перфокарт, .редактирует текст и записывает

его на магнитный барабан.

Блок

2 выделяет

очередное слово .исходной программы, т. е.

последовательность букв и цифр до ближайшего разделительного

знака (выделяет очередной

идентификатор .или константу).

это

Блок 3 определяет

вид

оператора по его первому слову. Если

оператор

описания

типа

переменных, обработка его выполняет­

ся

одним из

блоков 47, которые выделяют каждую из описанных

в операторе переменных и заносят необходимые данные в ТР и ТП. Блок 8 производит печать текста программы и ошибок, обна­ руженных синтаксическим контролем при трансляции очередного

оператора.

 

 

 

 

После обработки всех операторов описания

типа (которые

на­

ходятся в начале программы) завершается

формирование

ТР

и

ТП (блок 9) н начинается трансляция остальной программы.

 

Если первое слово очередного оператора

не КОНЕЦ (что озна­

чает окончание текста программы), управление

передается

блоку

12, который выполняет обработку этого оператора. В противном случае управление передается блоку 11, который определяет значе­ ния внутренних меток (второй проход).

На рис. 2-11 показана блок-схема блока «Трансляция оператора».

Для

обработки операторов каждого

вида имеется

свой блок (на

рис.

2-11 показаны лишь некоторые

из них — блоки

2—4). Выбор

нужного блока обработки определяется типом первого встретивше­ гося разделителя (блок 1) и первым словом оператора (название операции). Если блок 1 получает разделитель, не соответствующий ни одному виду оператора, строка программы пропускается (блок 5) и выдается отметка об ошибке в программе.

Блок 7 формирует оттранслированную программу па магнитном барабане.

Если первый разделитель «:», то выделенное слово является меткой; блок 6 заносит его в список меток. Затем выделяется сле­ дующее слово (блок 9) и производится анализ разделителя.

Обработка оператора каждого вида специальным блоком не­ сколько увеличивает размер транслятора, но зато значительно об­ легчает разработку и отладку его. Размер транслируемой программы практически не ограничен, поскольку исходный и оттранслирован­ ный тексты хранятся на магнитных барабанах. Ошибки в исходной программе не вызывают прекращения трансляции, что позволяет за один ■'пропуск программы выявить большинство ошибок. Скорость трансляции — около одного оператора в секунду.

Архивариус является служебной программой и пред­ назначен для ведения системной библиотеки. В его функ­ ции входят запись на магнитную ленту текстов на ис­ ходном языке и оттранслированных программ, коррек­ тировка текстов и организация каталога библиотеки. Хранение исходных и оттранслированных программ на магнитной ленте значительно упрощает работу с систе­ мой, поскольку при этом каждая программа только один раз вводится в машину с перфокарт; вся дальнейшая работа с ней (трансляция, внесение изменений, моделн-

60


рование) не требует повторных вводов. Наличие ката­ лога позволяет вызывать п заносить программы в би­ блиотеку по их названию и защищать программы от случайных повреждении. Архивариус печатает на АЦПУ протокол работы. Таким образом, разработчик всегда знает, какие :програм,мы имеются в библиотеке, а также вносились ли в них исправления и какие именно. С по­ мощью архивариуса можно также вывести па печать текст любой из программ (без трансляции).

Программа после трансляции еще не готова для мо­ делирования: ее надо предварительно «склеить» с не­ обходимыми подпрограммами и з'аменить в последних формальные параметры на фактические. Эту работу выполняет компоновщик. Вызвав указанную (предвари­ тельно оттранслированную) программу из библиотеки, компоновщик по ТП определяет нужные для ее работы подпрограммы, вызывает их из библиотеки и подставля­ ет в них названия фактических параметров. Если какието из подпрограмм в свою очередь требуют новых под­ программ—-эта процедура повторяется. Из ТП всех вызванных программ формируется таблица ссылок (ТС), в которой указаны названия всех подпрограмм и их размещение в памяти. Затем компоновщик формирует таблицу регистров модели (ТРМ) путем объединения ТР всех подпрограмм и распределяет память для логи­ ческих шкал.

После этого можно начинать моделирование. Если скомпонованная программа слишком велика и не мо­ жет быть целиком размещена в оперативной памяти,

отдельные

подпрограммы

переносятся

компоновщиком

на

магнитный барабан

чем делается отметка

в

ТС) и

вызываются оттуда

во время

моделирования

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

61


Здесь приводится весьма поверхностное описание транслятора, архивариуса и компоновщика; рассмотре­ ние устройства этих программ выходит за рамки данной книги. Читатель, интересующийся этими вопросами, мо­ жет найти такие сведения в литературе по системному программированию [Л. 11].

В программе моделирования используется метод ин­ терпретации, что приводит к сравнительно невысокой скорости моделирования (около 50 операторов в секунду на ЦВМ'БЭСМ-4). Однако применение компилирующей программы вызывает значительное ограничение возмож­ ностей языка (разрядность переменных не должна пре­ вышать разрядности машинного слова той ЦВМ, на ко­ торой производится моделирование; надо исключить такие операторы, как ЗАДЕРЖКА, БЛОКИРОВКА; ограничить длину программы и т. д.). В результате это­ го язык не только потеряет универсальность, но и станет зависимым от той ЦВМ, на которой он реализуется.

Основное отличие программы моделирования от рас­ смотренной выше программы интерпретирующего типа состоит в имитации параллельной работы различных блоков моделируемого устройства, т. е. в реализации операторов БЛОКИРОВКА, ЗАДЕРЖКА, ПУСК, ЖДАТЬ, ЧЕРЕЗ.

При обработке такого оператора программа модели­ рования отводит в специальном поле оперативной памяти шкалу времени (ШВ), в которой записаны адрес опера­ тора и величина интервала времени (счетчик). В конце такта моделирования производится опрос всех ШВ, при­ чем из счетчика каждой ШВ вычитается единица. Если в результате счетчик стал отрицательным, выполняется указанный в ШВ оператор.

При выполнении операторов ПУСК, ЧЕРЕЗ из на­ званий блоков (подпрограмм) формируются команды передачи управления с возвратом: управление передает­ ся к началу соответствующего блока (подпрограммы), а в его выход (оператор КОНЕЦ) заносится команда возврата в основную программу.

Устроена программа моделирования следующим об­ разом: выделяется очередной оператор модели и опреде­ ляется его вид, после чего управление передается блоку обработки соответствующего вида операторов. Блок об­ работки выполняет оператор (вычисляет значение выра­ жения, заводит шкалу времени т. д.) и программа пере­

62

ходит к выделению следующего оператора. Если в глав­ ной программе встретился оператор КОНЕЦ, управле­ ние передается блоку «таймер», который производит пе-

Рнс. 2-12. Блок-схема программы моделирования.

реход к следующему такту моделирования (опрашивает шкалы времени, выполняет операторы ВВОД, ПЕЧАТЬ и т. д.). Упрощенная блок-схема программы моделиро­ вания показана на рис. -2-12.

2-9. СИНТЕЗ ЛОГИЧЕСКИХ СХЕМ

Моделирование работы схем — не единственное при­ менение языка ФОРОС (и других языков такого типа): такой язык может служить удобным средством обще­ ния для разработчиков ЦВМ, позволяющим наглядно и однозначно описать структуру и функционирование лю­ бого устройства (подобно тому, как языки программи­ рования используются не только для подготовки про­ грамм для ЦВМ, но и для публикации алгоритмов).

При ручном проектировании используются различно­ го вида неформальные описания: чертежи, временные


диаграммы, словесные описания. Серьезным недостат­ ком таких описаний является неполнота их и невозмож­ ность машинной проверки; еще хуже то, что во время проектирования ЦВМ (а часто п при изготовлении и наладке опытного образца) имеются лишь черновые на­ броски этих документов. Такое положение очень за­ трудняет связи между разработчиками отдельных устройств вычислительного комплекса, что приводит к логическим и временным нестыковкам устройств.

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

В настоящее время автоматизация синтеза логических схем еще почти не применяется в практике проектиро­ вания вычислительных машин, однако первые действую­

щие

программы разработаны. Рассмотрим

принципы

построения таких программ иа примере

системы

ALERT [Л. 26].

 

Входной информацией для системы ALERT является

описание проектируемой машины на языке

высокого

уровня

(«архитектурный план» машины); ALERT пере­

водит это описание на язык булевых уравнений. Таким образом, ALERT аналогична трансляторам для языков программирования, переводящим программу с входного языка на машинный язык. Однако в отличие от обычных трансляторов результатом работы системы ALERT явля­ ется не программа, а детальное описание логической схемы проектируемой машины.

В качестве входного языка в системе ALERT исполь­ зуется дескриптивный язык, который базируется на нотаци Айверсона!. Архитектурный план машины пред­ ставляет собой совокупность микропрограмм, описываю­ щих выполнение машинных команд. Предполагается, что каждая микропрограмма имеет собственную управляю­ щую логику и цепи синхронизации и может выполняться независимо от других микропрограмм.

Система ALERT разрабатывалась для того, чтобы возможно больший объем рутинной работы конструкто­

ра переложить на ЦВМ, оставив для

человека

только1

1 Для

простоты изложения в этом параграфе

вместо

языка

Айверсона

используются аналогичные понятия

языка

ФОРОС,

64


решение принципиальных, стратегических вопросов. Для этого прежде всего необходимо четко разделить эти ас­ пекты проектирования. К сожалению, такое четкое раз­ деление не всегда возможно. Так, выбор системы команд является, очевидно, стратегическим вопросом и должен выполняться человеком, тогда как построение логиче­ ских схем дешифрации является более рутинной рабо­ той и может быть поручено машине. Однако в некоторых случаях выполнение этой работы вручную позволяет по­ лучить более быстродействующие шш более экономные схемы. Поэтому нежелательно заранее жестко разделять отдельные работы между конструктором н машиной; гиб­ кость входного языка позволяет конструктору более де­ тально описывать отдельные участки архитектурного плана машины. Архитектурный план начинается с опи­ сания памяти, регистров и каналов проектируемой ма­ шины. Пути передачи информации между ними описы­ ваются операторами присваивания. Заранее разработан­ ные стандартные логические блоки (сумматоры, дешиф­ раторы и т. д.) могут быть описаны в виде макрофуикцнй. Отдельные операции машины (такие как выборка из памяти, обработка прерываний) представляются ib ви­

де микропрограмм; множество всех микропрограмм определяет набор команд проектируемой машины, а опи­ сание работы центрального управления называется глав­ ной микропрограммой (таким образом, понятие микро­ программы здесь аналогично блокам и подпрограммам языка ФОРОС).

Выполняемая системой ALERT работа состоит в ряде последовательных преобразований входного текста, кото­ рые называются: трансляция, построение дешифраторов; макрогенерация, последовательностный анализ, опреде­ ление триггеров, управляющие цепи, объединение и рас­ ширение (рис. 2-13).

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

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

добавления

его к начальному

адресу массива. В языке описания

схем массив

представляет не

совокупность чисел, а логическую

структуру (регистр или набор регистров), а индекс переменной озна­

чает выбор одного

из элементов этой структуры. Такой выбор вы-

5 -5 0 4

65