Файл: Журавлев, Ю. П. Системное проектирование управляющих ЦВМ.pdf

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

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

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

Добавлен: 16.10.2024

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

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

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

1 . S = (S — количество разрядов в адресной ЧаСтй койанДы)

Без использования относительных адресов

Код

Адрес

операции

 

*0774

*1005

*1006

*1003

*1010

*0776

*1012

*1000

*1007

*0775

*1000

*1110

*1131

*1100

*1137

*1143

*1160

(Итого— 18 команд)

С использованием относитель* ных адресов

 

Код

 

Относительные

 

операции

 

адреса

 

*

*

*

— 7

+ 2

+

3

 

 

 

 

*

*

*

0

+ 5

— 5

 

 

 

 

*

%

*

+ 7

- 3

+

4

 

 

 

 

*

*

*

1

1 со

1

оо

 

 

 

 

*

*

— 2 0 +

1

 

*

*

— 30 +

 

7

*

*

+ 13 +

30

(Итого — 7 команд)

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

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

68


2 . 5 = 2tfa.

Без использования от­ носительных адресов

Код

Фактические

операции

адреса

*

0774

1005

*

1006

1008

*

1010

0776

*

1012

1000

*

1007

0777

*

0775

1000

*

1110

1131

*

1100

1137

*1143 1160

(Итого—9 команд)

3. S = 3tfa.

Без использования от­ носительных адресов

Код операции Фактические адреса

*0774 1005 1006

*1003 1010 0776

*1012 1000 1007

*0777_0775 1000

*

1110 1131 1100

*1137 1143 1160

(Итого — 6 команд)

С использованием относительны* адресов

Код

Относительные адреса

операции

* * *

—7 + 2 + 3

0 + 5 —5

* *

*

+ 7 —3 + 4

—4—6—3

*

*

—20 + 1

—30 + 7

*■.

- •

+ 1 3 + 3 0 .......................

(Итого — 4 неполных команды)

С использованием относительных адресов

 

Код

Относительные адреса

операции

 

 

—7 + 2 + 3 0 + 5 —5 + 7 —3+ 4

%

. . —4 —6—3 ......................................

*

*

—20+ 1—30 + 7 + 1 3 + 3 0

(Итого— 3 неполные команды)

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

69



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

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

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

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

Наконец, возможен такой способ кодирования после­ довательной цепочки операций, когда каждой конкрет­ ной операции из этой цепочки ставится в соответствие относительный код этой операции, причем для каждой такой операции определенным образом в ЦВМ фикси­ руется специальная константа — базовый код операции.

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

7 0

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

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

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

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

— основной список команд, -—первый дополнительный список команд, включаю­

71


щий некоторое количество различных цепочек последо­ вательных элементарных операций конкретного типа.

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

сусеченными кодами операций,

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

вательных элементарных операций произвольного типа с относительными кодами операций.

Этим спискам команд соответствуют свои системы форматов команд.

Форматы команд основного списка характеризуются наличием в них полноразрядных кодов операций и пол­ норазрядных адресов. Количество полноразрядных адре­ сов определяется адресностью команд основного фор­ мата.

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

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

ответствующего ему относительного

адреса

образует

о д н о а д р е с н ы й фрагмент данного

формата.

Количе­

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

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

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

72