2 ЛАБОРАТОРНАЯ РАБОТА №2. ОРГАНИЗАЦИЯ УРАВЛЯЮЩЕГО АВТОМАТА АРИФМЕТИКО-ЛОГИЧЕСКОГО УСТРОЙСТВА

2.1.2 Схема лабораторного макета управляющего автомата арифметико-логического устройства

При разработке схемы макета выбран ориентированный на конвейерную работу вариант построения УА с естественной адресацией и единым форматом МК, состоящим из полей X, A, Y1YH. Структура УА представлена на рис. 23. Для реализации конвейерной работы в УА включен регистр МК РМК. Поле Х используется для указания типа МК. Всего УА реализует 13 МК, список которых представлен ниже (табл. 6).

                        Таблица 6 - Список МК

Тип МК

Описание МК

1. Cnt

Переход по СМК (AМК=СМК)

2. Jmp

БП по адресу А из РМК (АМК=А)

3. Резерв

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

4. Call

БП на подпрограмму (АМК=А, стек:=СМК)

5. Ret

Возврат из подпрограммы (АМК = стек)

6. Push

Запись в стек (СМК → стек) и переход по СМК

7. Endmp

Конец микропрограммы, формирование Ready

8. Резерв

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

9. JZ

УП по нулю (по Z=1 СМК:=А)

10. JS

УП по знаку (по S=1 СМК:=А)

11. JC

УП по переносу (по C=1 СМК:=А)

12. JOVR

УП по переполнению (по OVR=1 СМК:=А)

13. EndZ

Конец цикла по нулю (по Z=1 – выход из цикла и выталкивание стека, по Z=0 АМК = стек)

14. EndS

Конец цикла по знаку (по S=1 – выход из цикла)

15. EndC

Конец цикла по переносу (по С=1 – выход из цикла)

16. Резерв

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

Адрес МК формируется на выходе СМК. Счетчик микрокоманд выполнен на основе трех блоков: СМК, КСЧ, СМК'. Регистр микрокоманд РМК выполнен на триггерах типа MS, т. е. состоит из РМК' (1-й уровень) и РМК (2-й уровень). В РМК' микрокоманда заносится по срезу сигнала С, т. е. по ¬С, а в РМК она переписывается по фронту С. Блок декодирования полей Y1…YH (пунктирные линии на рис. 23) в лабораторном макете не реализован (так как ОА отсутствует).

Р и с . 2 3 . Схема лабораторного макета УА

Блок (схема) формирования адреса МК (рис. 24) содержит накопительный СМК, стек, преобразователь начального адреса ПНА на основе трех блоков: СМК, КСЧ, СМК' . Комбинационный счетчик КСЧ реализует микрооперацию счета ВЫХ:=ВХ+1, т.е. СМК' :=СМК+1. Блоки СМК' , СМК выполнены как регистры на синхронных D-триггерах. Адрес МК на вход СМК мультиплексор адреса МА может выдавать из 4 мест:

– с входа D (по сигналу у1),

– с выхода ПНА (по сигналу Start),

– из (вершины) стека (по сигналу у2),

– из СМК (по сигналу у3).

Р и с. 24. Схема блока формирования адреса МК

На вход D адрес A подается из поля A РМК. Сигнал у2 вырабатывается при выполнении МК условного и безусловного переходов. Стек используется для обслуживания МК Call, Ret, Push, EndZ, EndC, EndS (табл. 6). При их выполнении может вырабатываться сигнал у2 (см. табл. 7). Сигнал у3 вырабатывается при выполнении МК естественного перехода по СМК.
ПНА обычно реализуется на основе ПЗУ, в ячейках (с адресами g (1, 2, 3, …, G)) которого размещены пусковые адреса микропрограмм МПg. Однако введение дополнительного ПЗУ в состав схемы ФАМ увеличивает продолжительность такта ТУА. Чтобы этого не произошло можно код g использовать как пусковой адрес. Для этого в ячейке ПМП с номером g (1, 2, 3, …,
G) следует поместить МК безусловного перехода, в адресной части которой указан адрес первой микрокоманды МКg1 микропрограммы МПg. Поэтому в схеме лабораторного макета ПНА отсутствует.

Порядок работы УА представлен временной диаграммой (рис. 25). По сигналу сброса Res УА приводится в исходное состояние (готовности выполнять операции) – сбрасывается РМК, устанавливается сигнал (флаг) готовности Ready (на выходе триггера TT). Сброшенный РМК содержит МК «Jmp 0».

Р и с . 2 5 . Временная диаграмма работы УА

По первому (после RES) тактовому сигналу C в регистр СМК заносится адрес МК, равный нулю (поскольку РМК сброшен и на входе D адрес А=0). По нулевому адресу в ПМП записана МК Jmp с адресом A=0 - переход на нулевую ячейку. Она извлекается и загружается в РМК. Тем самым начинается (бесконечный) цикл передачи управления на себя. Он прерывается по сигналу Start и запускается процесс выполнения микропрограммы МПg. По сигналу Start и коду операции g (поступающим из ЦУУ процессора) начинается процесс выполнения операции fg (микропрограммы МПg). По сигналу Start сбрасывается триггер ТT, т.е. сигнал готовности READY=0, и формируется начальный (пусковой) адрес МПg, по которому из памяти микропрограммы выбирается первая МК микропрограммы МПg и заносится в РМК. По сигналу Start адрес первой микрокоманды МКg1 МПg заносится в СМК (по фронту сигнала С) и появляется на выходе АМК. По нему из ПМП выбирается первая МКg1 и заносится в РМК'(по С), а затем - в РМК (по ¬С). Кроме того, по сигналу ¬С в регистр СМК заносится АМК (из СМК), увеличенный на 1 в КСЧ.

Во втором такте адрес МК формируется в зависимости от типа первой МК, записанной в РМК. Если эта МК генерирует переход, то в СМК заноситься адрес либо со входа D (из поля А РМК), либо из (вершины) стека. Если это МК естественного перехода, то в СМК заносится СМК+1 с выхода КСЧ. В конце МПg ставится МК Endmp (конец МП), по которой вырабатываются сигналы уМ+1 (конец алгоритма). Он устанавливает триггер Т и тем самым формирует сигнал READY=1, обнаружив который, ЦУУ сохраняет результат операции fg в памяти (в соответствии с адресной частью команды).

В макете реализован стек емкостью две ячейки (регистры R0, R1, на основе триггеров типа MS). Двух ячеек достаточно для обслуживания команд Call, Ret, EndZ и др., но недостаточно для написания вложенных подпрограмм, организованных с использованием команд конец цикла. Схема стека и временная диаграмма представлены на рис. 26 и 27 соответственно.

Р и с . 2 6 . Схема стека

Р и с . 2 7 . Временная диаграмма работы стека

Стек работает следующим образом. После сброса указателя стека УС (по сигналу Res) стек пуст и готов выполнять действия в соответствии с типом МК, находящейся в РМК. Блок дешифрации типа МК (поля Х) вырабатывает сигналы, управляющие схемой ФАМ: y1, y2, y3, FE, PUP. Для управления работой стека предназначены сигналы FE, PUP. Сигнал FE=1 разрешает работу стека (FE=0 – запрещает). Если FE=1, то по сигналу PUP=1 выполняется запись в стек, а по сигналу PUP=0 - чтение стека. Запись в стек осуществляется
в два этапа:
1) сначала модификация УС:=УС+1 (в начале такта – по С). Увеличение УС на 1 означает проталкивание стека;
2) затем запись в вершину стека [УС]:=IN (сигналами W0, W1 в середине такта – по ¬C).

Чтение (выталкивание) стека:
1) чтение из вершины стека OUT:= [УС] (постоянно);

2) модификация УС:=УС–1 (по сигналу С) – выталкивание стека.

Чтение из стека (выдача на выход OUT) осуществляется с помощью мультиплексора MS, управляемого сигналами «0», «1» с выхода УС, выполненного на основе триггера со счетным входом (типа ТТ).

Блок декодирования типа МК (поля Х) (рис. 28) обеспечивает управление схемой ФАМ: коду из поля Х и логическим условиям Z, S, C, OVR из ОА ставит в соответствие набор управляющих сигналов y1, y2, y3, FE, PUP, yM+1.

Р и с . 28. Схема блока декодирования поля Х

Формирование управляющих сигналов производится в зависимости от типа МК (кода в поле Х) и признаков (флагов) Z, S, C, OVR, вырабатываемых в ОА. Мультиплексор флагов MSF выбирает одно из условий и подает его значение на вход TST блока формирования управляющих сигналов (ФУС). Номер логического условия НЛУ представлен младшими битами поля Х. Блок ФУС вырабатывает сигналы в соответствии с табл. 7.

              Таблица 7 - Формирование управляющих сигналов

Тип перехода

Код Х

TST

Выходные сигналы (активные)

ст. биты

НЛУ

y1

y2

y3

FE

PUP

yМ+1

Jmp

00

00

1

 

 

 

 

 

Cnt

00

01

 

 

1

 

 

 

Резерв

00

10

 

 

 

 

 

 

Call

00

11

1

 

 

1

1

 

Ret

01

00

 

1

 

1

0

 

Push

01

01

 

 

1

1

1

 

Endmp

01

10

 

 

 

 

 

1

Резерв

01

11

 

 

 

 

 

 

JZ

10

00 (Z)

0

 

 

1

 

 

 

1 (да)

1

 

 

 

 

 

JS

10

01 (S)

0

 

 

1

 

 

 

1

1

 

 

 

 

 

JC

10

10 (C)

0

 

 

1

 

 

 

1

1

 

 

 

 

 

JOVR

10

11 (OVR)

0

 

 

1

 

 

 

1

1

 

 

 

 

 

EndZ

11

00

0

 

1

 

 

 

 

1

 

 

1

1

0

 

EndS

11

01

0

 

1

 

 

 

 

1

 

 

1

1

0

 

EndC

11

10

0

 

1

 

 

 

 

1

 

 

1

1

0

 

Резерв

11

11