Разработка ядра микроЭВМ на заданной элементной базе с обеспечением максимального быстродействия и надёжности, страница 10

Примечание:

1. Значения имеющие знак инверсии имеют активный низкий уровень (L), без инверсии, соответственно, наоборот.

2. Уже при разработке примера реализации 2-х машинных команд, была замечена даже не ошибка, а нерациональное использование 1 бита МК. Этот бит разрешение вывода данных на DB с ОП (). Вместо него можно было использовать бит разрешения работы с памятью (), т.к. память не может быть использована с отключённым входным/выходным буфером данных. В принципе, с этим битом или без него, система должна работать (теоретически).

10.  Разработка алгоритмов выполнения 2-х машинных команд [4,5]

            Для выполнения команды ЭВМ должна выполнить следующие шаги:

-  сформировать адрес команды (увеличение счетчика команд на 2)

-  выбрать команду из памяти (по адресу указанному в счетчике)

-  декодировать команду (поступление в ПНА КОП и получение начального адреса микропрограммы, выполняющую заданную команду).

-  выбрать из памяти величину смещения

-  сформировать адрес операнда (смещение+указанное значение во 2 операнде)

-  выбрать операнд (выбирается операнд по сформированному адресу)

-  выполнить команду (выполнение операции, заданная командой + необходимо разрешить работу ПНА).

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

В зависимости от типа команды некоторые шаги могут быть опущены [5].

Первые три шага являются общими для всех команд, поэтому не стоит выделять память под эти инструкции для каждой команды. Так же необходимо зарезервировать 1 ячейку РОН под счётчик команд (СК). В данной работе эта ячейка помечена как RG0.

ADDR1, R2

(сложение содержимого регистров R1 и R2 с записью результата в R2)

            Данная команда относится к типу команд RR (рис.3). При выполнении таких команд содержимое СК, увеличенное на 2, загружается в RGA и выдаётся сигнал запроса шины по адресу СК+2. Содержимое СК увеличивается на 4. Регистр Din и RGK загружается содержимым ОП по адресу СК, увеличенным на 2. Выполняется команда, находящаяся в СК. На входы ПНА поступает содержимое СК +2 [5].

Блок схема для данной команды приведена на рис. 32.


Примечание:

1.  Команды i-1 и i+1 типа RR, для их выполнения требуется 1 МК.

2.  Подчёркиванием выделены блоки относящиеся к выполнению заданной команды.

Данная блок схема наглядно демонстрирует принцип конвейеризации.


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

Примечание:

m- текущая команда

Пояснения, на временной диаграмме, относятся только к выполнению команды ADD.

1.  Вырабатывается МКm0 на выполнение RG0+2 и пересылку в RGA адреса. МУУ

Получение команды m-1 из ОП по адресу RG0. ОП

Выполнение команды m-2. ОБ

2.  Вырабатывается МКm1 и MK(m-1)(n-1) (естественно, это одна МК просто она условно разделена) на дешифрацию команды m-1 и инструкции на работу с ОП команды m. МУУ

Выполняется МКm0: получение адреса RG0+2. ОБ

3.  Вырабатывается МК(m+1)0 на выполнение RG0+4 и пересылку в RGA адреса. МУУ

Выполнение команды m-1. ОБ

Получение команды m из ОП по адресу RG0+2. ОП

4.  Вырабатывается МКm2 и MK(m+1)(1) на дешифрацию команды m и инструкции на работу с ОП команды m+1. МУУ

Выполняется МК(m+1)0: получение адреса RG0+4. ОБ

5.  Вырабатывается МК(m+2)0 на выполнение RG0+6 и пересылку в RGA адреса. МУУ.

Получение команды m+1 из ОП по адресу RG0+4. ОП

Выполнение команды m. ОБ


LD  R1, [R2]

(помещение данных из памяти по адресу находящемся в R2 в R1)

Данная команда относится к типу команд типа RS (рис. 4). Блок схема представлена на рис. 34.