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

книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие

.pdf
Скачиваний:
97
Добавлен:
27.10.2023
Размер:
29.24 Mб
Скачать

Результат операции посылается в регистр R u следова­ тельно, арифметическое устройство выполняет операцию:

(ЯіМЯЛ-Яі-

Одновременно с арифметической операцией осуще­ ствляется продвижение вверх, не затрагивающее ре­ гистр R 1, т. е. содержимое регистра R3 передается в R2, содержимое — в /?3 и т. д.

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

Команды обращения к памяти и передачи управле­ ния являются трехбайтовыми (24 разряда).

Двухбайтовый формат используется в тех командах, где длина параметра (число сдвигов, номер входного устройства и т. д.) меньше длины адреса.

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

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

380

в регистре Ru в регистр R2. Первоначальное содержимое

R 1 остается неизменным,

а во всех регистрах, кроме Rі

и R2, производится продвижение вниз. Другая специаль­

ная команда, называемая

реверсированием, учитывает

тот факт, что при выполнении некоторых арифметических операций (вычитание, деление) операнды не являются равноценными. Реверсирование осуществляет обмен со­ держимых регистров R 1 и R2 без какого-либо продвиже­

ния и позволяет, следовательно, располагать

операнды

в требуемом для следующей операции порядке.

Рассмотрим возможности машины с магазинной па­

мятью на примере вычисления формулы

 

Y _ а2+ Ъ 2

 

Ь +

с

 

Программа вычислений на машине с магазинной па­

мятью, а также содержимое

используемых

регистров

магазинной памяти после выполнения каждой команды приведены в следующей ниже таблице.

 

Команда

R ,

R ,

R ,

R,

1. Вызов Ь

Ь

 

 

 

2.

Дублирование

Ь

Ь

b

 

3.

Вызов с

С

Ь

 

4.

Сложение

Ь~\-с

Ь

 

 

5.

Реверсирование

ь

Ь-\-с

 

 

6. Дублирование

ь

Ь

Ь + с

 

7.

Умножение

ь2

6 + с

 

 

8.

Вызов а

а

62

Ь + с

 

9.

Дублирование

а

а

Ь2

Ь + с

10.

Умножение

а 2

Ь2

Ь + с

 

11.

Сложение

а 2+ Ь 2

Ь + с

 

 

12.

Деление

а 2+ Ь 2

 

 

 

 

 

 

 

Ь-\-с

Как следует из рассмотренной программы, потребо­ валось осуществить всего три обращения к памяти для вызова операндов из памяти (в командах 1, 3 и 8), т. е. столько, сколько это принципиально необходимо. В про­ цессе вычислений операнды и промежуточные результа­ ты поступают в арифметическое устройство из магазин­ ной памяти. Из двенадцати команд девять являются безадресными, в результате чего уменьшается место

381

в памяти для хранения программы и количество обра­ щений к памяти. При использовании формата команд машины KDF-9 вся программа размещается в трех соро­ кавосьмиразрядных ячейках памяти.

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

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

Многоаккумуляторные процессоры

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

низованная структура магазинной памяти

приводит

к определенным недостаткам, свойственным

процессо­

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

практической реализации глубина магазинной

памяти

(т. е. число входящих в нее регистров)

является ограни­

ченной.

 

 

 

 

Следовательно, необходимо

иметь

дополнительную

аппаратуру, которая следит

за

переполнением

памяти,

и специальные программы,

организующие работу про­

цессора в случае переполнения

магазинной памяти.. Оп­

382

ределенные трудности возникают при использовании ма­ газинной памяти в машине с переменной длиной слова.

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

Однако, так как число аккумуляторов значительно меньше числа ячеек памяти, адреса аккумуляторов яв­ ляются укороченными (например, при 16 аккумулято­ рах адрес занимает четыре двоичных разряда).

Типичная команда, определяющая операцию с обра­ щением к памяти, имеет следующий формат:

Код операции

Я

А

Адрес

аккумуля-

Адрес ячейки

 

тора

памяти

Эта команда определяет

операцию:

(R )* (Л)-+R.

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

Команда, определяющая операцию с двумя аккуму­ ляторами, имеет формат:

Код операции

Я,

R,

 

Адреса аккумуляторов

383

и осуществляет операцию: (Ri) * (#2)-> R i. Очевидно, что длина команды второго типа может быть значитель­ но меньше первой.

Логические возможности многоаккумуляторной структуры процессора можно проиллюстрировать на примере вычисления по уже знакомой формуле:

Xа2 + ь*

Ь+ с

Программа для вычисления величины X может быть записана следующим образом:

Вызов

Вызов

Вызов

Умножение

Сложение

Умножение

Сложение

Деление

К і

R,

Rs

Ri

R3

R»

R,

Ri

а

b

C

Ri

R2

R.

R*

Rs

Получение а 2

Получение b + c

Получение b1

Получение а5+ й 2

X

а 2

- f -

Ь2

 

= -------------

 

 

Ь +

с

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

384

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

5-15. ПРИМЕР ОБЩЕЙ СТРУКТУРЫ ПРОЦЕССОРА

Пример общей структуры микропрограммного про­ цессора показан на рис. 5-27. В состав процессора вхо­ дит группа регистров, АЛУ, устройство управления, пульт управления и сигнализации и интерфейс процес-

Рис. 5-27. Пример общей структуры процессора.

сора, осуществляющий связь с ОЗУ и внешними уст­ ройствами. Иногда удобно считать, что регистр операнда, вспомогательный регистр и аккумулятор входят в АЛУ.

Информация в процессоре передается по двум маги­ стралям. Информация из любого регистра может быть передана через выходную магистраль на вход АЛУ и в интерфейс процессора. С выхода АЛУ и интерфейса про­

25—333

381

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

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

После выборки команды из памяти производится, ес­ ли это необходимо, индексация адресной части коман­ ды. Затем адрес операнда передается в адресный ре­ гистр ОЗУ и операнд считывается в регистр операнда.

Код операции из регистра команды передается в стар­ шие разряды адресного регистра ПЗУ, младшие его раз­ ряды гасятся и процессор переходит к микропрограмме выполнения данной команды.

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

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

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

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

386

5-16. СТРУКТУРА КОМАНД СОВРЕМЕННЫХ ВЫЧИСЛИТЕЛЬНЫК СИСТЕМ

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

Мы рассмотрим кратко структуру команд на приме­ ре машин IBM 360 и ЕС ЭВМ.

В этих машинах используются следующие основные форматы информации:

1) байт — единица информации, состоящая из вось­ ми информационных разрядов;

2)полуслово — группа из двух последовательно рас­ положенных байтов;

3)слово — группа из двух последовательно располо­ женных полуслов (или из четырех байтов);

4) двойное слово — группа из двух последователь­ ных слов (восьми байтов).

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

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

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

25*

.387

ющей запятой. Десятичные числа представляются в фор­ мате с переменной длиной (от 1 до 16 байтов). Логиче­ ские коды могут существовать как в форматах с фикси­ рованной, так и с переменной (от 1 до 256 байтов) длиной.

Система позволяет адресовать информацию в памя­ ти с точностью до байта. Группа байтов в памяти адре-

 

 

ZA

 

Формат

 

Hod

А,

А,

 

RR

операции

Л1

,х2

 

 

0

7 8

11112 15

 

 

 

а)

 

ZA

 

 

 

 

Ф о р м а т

 

Код

х2 *г

»2

RX

операции

 

 

8

77 12 1316 №20

\

* > 7

JA

 

 

 

 

 

Формат

Нод

 

*1

*3

вг

RS операции

7

7

8

11

 

16 19го

 

б) H L°пос/

 

іоен-

 

^

h ыц ^

 

нд

31

h

J ;

ІА

Формат

 

Нод

 

 

 

*’

\

 

S I

операции

8

В1

I

 

 

О

г)

7

15 78 7&20

 

31

 

 

 

Длина Длина

ІА

 

ZA

 

 

У

 

С/1А) C/ZA)

 

Формат

 

Код

 

 

12 В,

 

вг

 

SS

операции

 

 

 

 

о

,

г 8

11 isи ю\го

 

зі 3235 36

07

Рис. 5-28. Форматы команд Единой системы электронных вычислительных машин (ЕС Э В М ).

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

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

Универсальный регистр имеет длину 32 разряда и совмещает функции аккумулятора, индексного и базово­ го регистров. В этом регистре при относительной адре-

388

сации хранится безовый адрес, при выполнении функ­ ций индексного регистра хранится приращение адрес­ ной части команды и осуществляется необходимый при индексировании команд набор операций над содержи­ мым индексного регистра («операции индексной ариф­ метики») .

Регистр с плавающей запятой имеет длину 64 разря­ да и является аккумулятором при выполнении операций над числами с плавающей запятой.

ВIBM 360 и ЕС ЭВМ используются команды длиной

водно, два и три полуслова (2, 4, 6 байтов). Фактически длина команды связана с числом адресов операндов, находящихся в главной памяти. Команда длиной в одно полуслово не требует обращения к главной памяти за операндом. В команде длиной в два полуслова указыва­ ется адрес одного операнда, находящегося в главной па­ мяти. В команде длиной в 3 полуслова указываются ад­ реса двух операндов из главной памяти.

Имеется пять основных форматов команд, представ­

ленных на рис. 5-28.

1. Формат «регистр — регистр» (RR) (рис. 5-28, а ). В этом формате представляются короткие 16-разрядяые (двухбайтовые) команды. Команды этого вида произво­ дят операции над содержимым универсальных регистров или регистров плавающей запятой. Первый операнд — со­ держимое регистра, номер которого указан в поле R ь вто­ рой операнд — содержимое регистра, номер которого указан в поле R2. Результат операции, как правило, по­ мещается на место первого операнда.

2. Формат «регистр — индексируемая ячейка» (RX) (рис. 5-28, б).

Команды этого формата занимают 32 двоичных раз­

ряда (четыре байта).

Первый операнд — универсальный

регистр (или регистр

плавающей запятой), указанный

в R 1, второй — ячейка

главной памяти. Адрес этой ячей­

ки определяется величинами, указанными в команде: ба­ зовым адресом В2, индексом Х2 и смещением D2. Способ образования адреса операнда будет указан ниже.

3. Формат «регистр — память» (RS) (рис. 5-28, в). Команды этого формата также занимают 32 двоич­

ных разряда (четыре байта). R і определяет первый опе­ ранд, В2, D2— второй операнд, Rz — третий операнд.

4.

Формат «память — непосредственный операнд»

(S I )

(рис. 5-28, г).

389

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