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

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

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

тических действий в машине сравнительно медленное: сложение выполняется за 300—700 мксек, умножение — за 1200—1500 мксек, логические операции над симво­ лами — за 120—300 мксек.

Общая блок-схема «Минск-23» представлена на рис. 2. Вычислитель, или центральный процессор, осущест­ вляет выполнение программ (обработку данных) и уп­ равление мультиплексным каналом, рассчитанным на прямое подключение 15 внешних устройств, а при ис­ пользовании коммутаторов на подключение до 64 внеш­

них устройств.

В состав центрального процессора входит так назы­ ваемое адресное ЗУ, состоящее из 128 19-разрядных ячеек (регистров), выполненных на сердечниках. Эти 128 ячеек разбиты на 64 регистра для хранения адресной инфор­ мации для 8 программ и 64 регистра, служащих для хра­ нения текущих адресов по оперативной памяти при об­ менах с внешними устройствами.

Программные регистры разбиты на 8 групп по 8 ре­ гистров в каждой группе. Эти группы соответствуют 8 программам. Соответственно все программы разбиты на 8 уровней. С понятием уровня связывается приоритет исполняемой программы по отношению к другим. Наи­ более низким приоритетом обладают программы 0-, 1-,' 2-го уровней, и эти три уровня выделены для рабочих программ. Третий уровень выделен для программ реак­ ций на прерывания от внешних устройств. Четвертый— для программ исполнения экстракодов. В рабочих про­ граммах могут встретиться специальные команды, по которым происходит переключение именно на четвертый уровень программ и производится передача управления на одну из подпрограмм этого уровня, интерпрети­ рующую директиву или команду экстракода. Пятый уровень — это специальные программы, реагирую­ щие на запросы о'ператора с пишущей машинки. Шестой и седьмой уровни предназначены для про­ грамм реакции на сбои внешних устройств и сбои вы­ числителя.

Без программ 3-, 4-, 5-, 6-, 7-го уровней машина «Минск-23» не может работать. Эти системные программы являются как бы продолжением аппаратуры машины и относятся к ее внутреннему математическому обеспе­ чению.

40

Рис. 2.

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

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

Среди аппаратно выполняемых команд машины есть специальные команды, которые выполняются только в программах 4-, 5-, 6- и 7-го уровней. К этим командам относятся те, которые изменяют состояние главного регистра номера уровня, команды разрешения и запре­ щения прерывания и ряд операций тестового режима.

Наличие системы прерываний, приоритетных уровней программ, системных команд, возможности по осущест­ влению мультипрограммного режима — все эти струк­ турные характеристики присущи машинам современного типа.

Представляет интерес внутренний язык машины, ее система команд, ориентированная на обработку символь­ ной информации.

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

Семь других разрядов байта — информационные, сих помощью можно закодировать 128 различных символов,

42

включая буквы, цифры, разделители и внутримашинные метки.

Например, 7-й бит (разряд) используется для указа­ ния границ поля десятичного числа или поля символь­ ной информации. Для кодирования информации, содер­ жащей русские буквы и цифры, используются 64 сим­ вола, для кодирования которых достаточно шести разрядов.

Биты 6-й и 5-й байтов, используемых в командах, позволяют метить типы адресов.

Код символа подстрочечной десятки используется для указания конца алфавитно-цифрового слова произволь­ ной длины. Символ, содержащий все единицы, исполь­ зуется для указания границы массива. Тем самым коды байта используются в машине «Минск-23» не только для представления буквенно-цифровой информации, но и не­ сут некоторую функциональную нагрузку по управле­ нию работой машины.

Ф о р м а т ы к о м а н д . В машине «Минск-23» реа­ лизована переменноадресная система команд. Разли­ чаются 6 типов команд: безадресные, одноадресные, двухадресные, трехадресные, четырехадресные и много­ адресные. Многие команды могут быть снабжены специ­

фикатором, о значении которого

будет

сказано

ни­

же. Команды машины «Минск-23» занимают

всегда

чет­

ное число байтов. Это связано с

особенностями аппа­

ратуры выборки команд из оперативной

памяти

ма­

шины.

 

 

 

Первые два байта команд обозначают код операции. В коде операции задается ее тип и способ использования адресов. Система команд позволяет задавать один или несколько операндов непосредственно в адресной части команды. Такой способ задания операндов носит наз­ вание непосредственной адресации. Можно также зада­ вать обычным образом адрес операнда по памяти с по­ мощью прямой или относительной адресации.

Структура полного адреса такова, что позволяет ука­ зывать индекс, базу, смещение или абсолютное значение адреса.

Для базы в команде выделено два разряда, с помощью которых можно указать одну из трех баз: № 1, № 2 или № 3. Для индексов выделено три разряда, что поз­ воляет выбирать один из восьми индексов.

43

Соответственно с этим исполнительный адрес команды может образоваться следующим образом;

Аисп = Ан + <Б> + <И>,

'Аисп = АКД<Б>, Ансп —АК+ <И>,

Д = А

^ИСП ^К> где Ак — код, находящийся в адресной части команды,

Б — адрес базы, И — адрес индексного регистра. Сим­ волика < ) означает «содержимое по адресу».

Номер базы, указанный в адресе, в свою очередь есть относительный адрес базы, записанный в адресных ре­ гистрах. Номер (адрес) индекса — это есть относитель­ ный адрес соответствующих ячеек памяти, отсчитываемый от базы № 1, т. е. индекс выбирается по правилу: <И> ■= •=<<Б1>+И>.

Операции машины «Минск-23» можно разделить на следующие классы:

Операции с десятичными целыми числами. Операции логические над байтами (символами). Операции над адресами и индексами.

Операции сравнения, поиска и переходов. Служебные операции и системные команды. Действия сложения, вычитания и умножения указы­

ваются трехадресными, двухадресными, одноадресными командами. Если знаком ф обозначить операцию (4-,

—, X), то возможные правила выполнения команд

таковы:

<А1 иС„> ф <АЗИСП> => А2ПСП, <А1ИСП> ф <А2исп> => А2ИСП.

Логические операции с байтами включают набор известных действий: логического сложения V (конъюнк­ ция), логического умножения Д (дизъюнкция), сопостав­ ления или поразрядного сложения по mod 2 («отрицание эквивалентности») и сдвиг.

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

адресных операций:

 

<А1ИСП> ф <АЗИСП>

А2ИС11,

<А1ИСп> Ф <А2ИСП> => А2ИСП,

<А1ИСП> ф С

А2ИСП,

<А1Исп> ФС=5> А1ИС11.

44

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

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

Операция «переслать и уплотнить», например, вы­ полняется следующим образом. Во втором адресе команды указывается адрес начала шаблона. Шаблон — это це­ почка символов, вообще говоря, произвольных, часть из которых помечена особым образом (символом f ). Пере­ сылаемая последовательность символов сравнивается с символами шаблона, и результирующая последова­ тельность составляется только из тех символов исход­ ной последовательности, которые соответствуют меткам шаблона.

Команда «переслать и редактировать» позволяет пред­ ставить вычисленный на машине результат в форме, пригодной для вывода на печать, снабдить его названием, например, поставить после числа слово РУБ, поставить десятичную точку и т. п. Интересны также операции, позволяющие подсчитать количество символов в слове, в массиве, в числе.

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

В машине «Минск-23» предусмотрен широкий набор команд сравнения и переходов. Условия переходов опре­ деляются в результате сравнения отдельных символов, нескольких символов, слов, чисел и индексов. Переходы выполняются по условиям «равно», «не равно», «больше»,

46

«меньше» и по наличию заданного символа. Общее число команд условных переходов достигает 41.

Экстракодовые команды машины «Минск-23» в том

случае,

если они появляются в

программах 0-, 1-, 2-

и 3-го уровней, влекут за собой

прерывание и автомати­

ческий

переход на 4-й уровень. Подпрограммы 4-го

уровня

определяют, что делать

дальше с полученной

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

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

Описанный выше процесс называется статической загрузкой. Бывает и широко используется так называе­ мая динамическая загрузка модулей. Она применяется обычно для машин с небольшим объемом запоминающего

46

устройства. Идея динамической загрузки очень проста. Для модуля выделяется необходимая память во время выполнения программы только в тот момент, когда по­ явилась команда обращения к данному модулю. После того как вызванный модуль «проработал», память, зани­ маемая им, считается свободной и используется для за­ грузки следующего модуля. Однако реализация динами­ ческой загрузки более сложна и требует решения многих вопросов, связанных с оптимизацией работы системы

вцелом. Например, легко представить себе ситуацию,

вкоторой обращение к некоему модулю встречается

вцикле. Очевидно, что снова и снова загружать тот же самый модуль нецелесообразно. Его выгоднее оставлять

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

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

Эти рассуждения о схеме построения системы транс­ ляции и загрузки нужны для того, чтобы пояснить значе­ ние базирования в машине «Минск-23». Первая база, как мы знаем, используется для указания полей индек­ сов, и ее можно рассматривать как базу локальных дан­ ных выполняемого в данный момент модуля. Вторую базу можно, например, рассматривать как базу внешних переменных или как базу модуля, из которого произошло обращение к текущему. Третью базу можно рассматри­

47

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

са,

которые

являются

именами

внешних

переменных,

и

адреса,

которые

являются

именами

параметров

модуля.

 

 

 

 

 

В общем случае настройка модуля на работу в машине

«Минск-23» может быть осуществлена записью в базу № 1, которая расположена на одном из адресных регист­ ров уровня, места по памяти, начиная с которого разме­ щен соответствующий модуль, записью в базу № 2 на­ чального адреса обратившегося модуля и записью в базу № 3 адреса, начиная с которого расположены фактиче­ ские значения параметров модуля.

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

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

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

48

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

При оценке состава математического обеспечения ма­ шины «Минск-23» не следует забывать, что эта машина небольшой производительности, рассчитанная на реше­ ние информационных задач (планирование, учет, стати­ стическая обработка), поэтому едва ли целесообразно включать в состав МО этой машины языки типа АЛГОЛ, ориентированные на научные и вычислительные задачи.

2.3. Машина «Раздан-2» . Несколько слов о машин «Раздан-2», которая также относится к классу машин средней производительности. «Раздан-2» — сравнитель­ но недорогая машина, предназначенная для решения ин­ женерных задач и использования в небольших конструк­ торских бюро, в вузах и лабораториях. Эта машина срав­ нительно старая и по своей структуре весьма схожа с ма­ шиной «Минск-22».

Ее основные характеристики таковы: емкость ОЗУ— 2048 слов, быстродействие — около 5000 операций/сек, система счисления — двоичная, арифметика — с плаваю­ щей запятой, разрядность — 36 битов, система команд — двухадресная, набор операций содержит 51 команду.

В качестве вводного устройства используется фото­ считывающее устройство с перфорированной киноленты, в качестве вывода используется быстродействующее цифровое устройство (20 строк/сек).

§ 3. ЭВМ большой производительности

Согласно каталогу Министерства радиопромышлен­ ности за 1970 г. к ЭВМ большой производительности относятся машины БЭСМ-6, БЭСМ-4, «Урал-14», «Урал16», «Минск-32», М-220А, М-222, «Раздан-3».

3.1. «Раздан-3» . Поскольку характеристику машин средней производительности мы окончили описанием машины «Раздан-2», то характеристику машин большой производительности мы начнем с описания машины «Раздан-3».

49

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