Главная  Радио и связь 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [ 39 ] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

кодировании с иомрщью,команды,JP,X;. ори этом, следующиелетыр разряда, образующие поле кода операции (КОп), засылаются с ш ны Ко-Кз на РК-регистр и хранятся там до вторичного декодирова-1 ния макрокоманды с помощью команд JPR, JRL и JLL.

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

И/СО!

викаг

4. 4. в

Рис. 9.3

Данные из памяти

рования признаков адресации, а также содежание первичного npo-i цесса, т. е. действий, выполняемых при первичном декодировании мак- рокоманд, приведены в табл. 9.1.

Таблица 9.1

Код ПА

OO0Q 0001 0010 ООП 0100 0101

0111

1000 1001 1010 1011 1100 1 101 1!10.

1111

Содержание

i ервичный проиесо

адре-

Не используется

Передача управления относительная Передача управления косвенная Непосредственная адресация Прямая адресация памяти Косвенная адресация памяти Косвенная индексная адресация Косвенная индексная относительная сацня Ввод Ввод Вывод Вывод

Группа операций пересылки Группа специальных операций Косвенная относительная адресация памяти Не используется

P+D (E + D)+E D или (Р)

.B + D

(B+D) (B + D) + X. (B + D) + X + B

DPA XPA DPA XPA

(B + D) + B

Примечание. D==D - 128.

Кодирование поля кодов операций должно производиться исходя из эффективности размещения микропрограмм выполнения операций в памяти Рассмотрим подходы к кодированию поля КОп для выделенных в § 9.2 групп макрокоманд. 236

9.3.1. Макрокоманды, связанные с обращением к памяти, и макрокоманды с непосредственной адресацией

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

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

Пусть для поля кода операции рассматриваемых макрокоманд (см. § 9.2) выбрана следующая кодировка:

0000-ADA 0001-XDA 0010-NDA ООП-ODA 0100-LDA 0101-LDX 0110-PDS 0111-ADX

и AAI,

и XAI,

и NAI,

и OAI,

и LAI,

и LXI,

и PSI,

и AXI,

1000-LAA 1001-LAX, 1010-PAS, 1011-SDA, 1100-SAM, 1101-SXM, 1110-PSM, 1111-SDX.

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

Граф-схема алгоритма декодирования макрокоманд указанных двух групп представлена на рис. 9.4. На граф-схеме в точках ветвления процесса проставлены обозначения команд формирования адресов следующих макрокоманд, по которым осуществляется выбор одной из ветвей, а в начале каждой ветви - значение признаков, определяющие выбор именно этой ветви. Декодирование поля ПА макрокоманды производится по команде JPX, анализирующей сразу, все четыре разряда этого поля. На рис. 9.4 представлены шесть из шестнадцати ветвей, имеющие отношение к макрокомандам, связанным с обращением к памяти, и макрокомандам с непосредственной адресацией.

Декодирование поля кода операции происходит в два этапа: сначала с помощью команды JLL анализируются два левых разряда, а затем по команде JRL два правых разряда поля кода операции.

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



другой групоы макрокоманд, в данном случае - с непосредственной адресацией.

Эффективность использования памяти микрокоманд существенно зависит от возможностей БМПУ. Например, команда JLL имеет в два раза большую адресуемую область памяти, чем команда JRL.-Кодировка, используемая в граф-схеме рис. 9.4, дает обратное отношение команд этих типов. Поэтому изменение кодировки, приводящее к увеличению доли команд JLL, упростит размещение микропрограмм к памяти.

йачамп

Выборка макрокоманды

0100

В+Л-оА

\bibi \oiw \oiii \iiio

ХНВ->-Л)-*А

X-tB*(B-Hj)-*A

В-1-{В*Л)-*А I

I 10 I in \

hj3a

. . Jll-

I I 01 1 7g i> \ 17 \ ~ [

00 f

01 i

77 *

1 LAA 1

PAS j

sa."

07 \ 1

Рис. 9.4

Для сокращения требуемого объема памяти микрокоманд целесообразно объединять конечные сегменты микропрограмм выполнения однотипных макрокоманд. Так, вычитание по макрокоманде SDA. отличается от сложения ADA лишь предварительным изменением зна- ка вычнтаемого; поэтому для обеих макрокоманд достаточно иметь одну общую завершающую микропрограмму. Переход от различные микропрограмм к общей микропрограмме может быть легко реализован с помощью команды передачи управления в текущем столбце JCC. Для этого поле кода операции соответствующих макрокоманд следует кодировать таким образом, чтобы начальные микрокоманды этих микропрограмм располагались в одном столбце памяти, микрокоманд.

Перекодировка с учетом указанных особенностей дает следующие коды операций:

0000-NDA и NAI, 1000-XDA и XAI,

0001-LDА и LAI, 1001-PDS и PS1,

0010-LAA, 1010-PAS,

ООН-SAM 0100-ODA и ОАГ, 0101-LDX и LXI, ОНО-LAX, 0111-SXM,

1011-PSM, И 00-ADA и AAI, 1101-ADX и AXI, 1110-SDA, 1111-SDX.

Граф-схе.ма алгоритма декодирования макрокоманд, связанных с обращением к памяти, и макрокоманд с непосредственной адресацией представлена на рис. 9.5. Из сравнения граф-схем рис. 9.4 и 9.5 видно, что после перекодировки изменится порядок анализа разрядов

Q Начало

Выборка макракоманвы

\ooii

0100

11или(Р)-А

0101

\опо

•,0111

\1110

В+и-А

(В*Д)-*А

В+(В+П)-*А

11 1

1 01

\ 01 \ i/ 10 И 77

(А)-*А

{А}-А 1

А-*РА

\ JKL \

07 i Ьо~т

» fgg \ W1 f

01 is

1 01

Рис. 9.5

поля кода операции макрокоманд. Кроме того, коды однотипных макрокоманд предполагают их размещение в одном столбце памяти микрокоманд.

Следующий этап разработки микро-ЭВМ заключается в составлении микропрограмм выполнения макрокоманд рассматриваемой группы н определении времени их реализадии.

9.3.2. Макрокоманды передачи управпеиия

Группа макрокоманд передачи управления включает макрокоманды безусловных и условных переходов, а также обращения к подпрограммам. Кодирование поля кода операции для этих макрокоманд осуществляется произвольно, за исключением макрокоманд условных переходов по содержимому индексного регистра X (X > .4, X А, X = А, X А),-микропрограммы выполнения которых имеют достаточно большую общую часть. Коды этих четыр.ех операций с



целью упрощения перехода из общей части к индивидуальным продолжениям микропрограмм выбраны с одинаковыми двумя младшими и с различными двумя старшими разрядами: ООН, 0111, 1011 и 1111.

Как и для макрокоманд, рассмотренных в п. 9.3.1, почти каждая кодовая комбинация соответствует двум однотипным макрокомандам - с относительной и индексной адресацией:

0000-JRU и ли, 1000-JRLE и JILE,

0001-JRGE и JIGE, 1001-JRGT и JIGT,

OOlO-JRLT и JILT, 1010-JRCN и JICN,

ООП-JRXG и JIXG, 1011-JRXE и JIXE,

0100-JREZ и JIEZ, 1100-CVS,

0101-JRNZ и JINZ, 1101-PHAS,

0110-JRCZ и JICZ. 1110-CLS,

0111-JRXL и JIXL, nil-JRXN и JIXN.

9.3.3. Макрокоманды пересылки содержимого регистров и манрокомаиды возврата из подпрограмм

Макрокомандам этой группы соответствует код поля ПА 1100. Кодировка поля кода операции производится на основе разбиения всех макрокоманд этой группы на подгруппы, содержащие по четыре макрокоманды:

0000-MXS, 0100-MSX, 1100-RSA,

0001-МХВ, 0101-МВХ, 1101-RVS,

0010-МХЕ, ОНО-МЕХ, 1110-РРАХ,

ООП-MXW, 0111-MWX, 1111-RLS.

Четыре оставшиеся кодовые комбинации со старшими разрядами определяют макрокоманду NOP. Распределение макрокоманд по четырем подгруппам делает целесообразным декодирование поля КОп в два этапа: на первом по команде JLL определяется одна из подгрупп,

а на втором по команде JRL од--е-1 на из макрокоманд внутри под-

группы.

БМПУ ИК01 позволяет упростить процедуру декодирования макрокоманд за счет аппаратной установки номера регистра, участвующего в пересылке информации. Схема реализа. Рис. 9.6 способа для четырех регист-

ров (S, В, Е и W) приведена на рис. 9.6.

При выполнении макрокоманд пересылки содержимого регистров БМПУ на выходах Fq-вырабатывает высокий потенциал, т. е. комбинацию И. Два младших разряда РК-регистра могут модифицировать этот код подачей низкого потенциала на одну или обе линии Рп-Fl. Так, при нулевом значении обоих разрядов РК-регистра в со-£40

Из ПЗУ fr" .

ИК01

ответствующие разряды регистра микрокоманд Р будет также записан код 00, являющийся адресом регистра S; при значении младших разрядов РК-регистра 01 - код 01, являющийся адресом регистра В, и т. д. Таким образом, при декодировании макрокоманды пересылки до1:таточно будет программно определить только два старших разряда воля кода операции; номер регистра устанавливается аппаратно. Очевидно, что при применении этого способа необходимо использовать команду JCE, открывающую выходы РК-регистра.

(Начало

Выборка макрокоманды {JPJ(

van \

\JLL

01 <

X+B-IZB-K

R+B-IZBX

Возврат и РРАХ

РВР А,Х

10 \

POP P,E,B,W

pop а,х

pop Р

Рис. 9.7

граф-схема алгоритма декодирования макрокоманд рассматриваемой группы при аппаратной установке номера регистра показана на рис. 9.7. Из граф-схемы видно, что полностью код операции программно декодируется только для макрокоманд возврата из подпрограмм и макрокоманды РРА.>С.

9.3.4. Специальные макрокоманды

Эта группа макрокоманд включает операции по загрузке и запоминанию одного байта, операции над содержимым регистров и макрокоманды ПЕРЕХОД К ПОДПРОГРАММЕ 3 И УВЕЛИЧИТЬ НА 1 И ПРОПУСТИТЬ КОМАНДУ ПО НУЛЮ. Кодирование поля КОп выполняется без каких-либо особенностей и имеет следующий вид:

0000-LBA, 0101-RAX,

0100-LBR, 1001-SAX,

1000 SBA, 1101-SAL, •

1100-SBR, xxIO-lSZ,

0001-RAR, Xxll-CAZ. • •



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [ 39 ] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54


0.0074