Файл: Журавлев, Ю. П. Системное проектирование управляющих ЦВМ.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