Мегаобучалка Главная | О нас | Обратная связь


Разработка устройства управления (УУ)



2015-12-07 904 Обсуждений (0)
Разработка устройства управления (УУ) 0.00 из 5.00 0 оценок




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

· извлечение команды из памяти;

· декодирование команды;

· исполнение команды;

· переход к выполнению следующей команды.

Три из четырех перечисленных этапов (извлечение, декодирование и переход к следующей команде) являются в общем однотипными для всех реализуемых команд
(за исключением команды передачи управления JN – у нее отличается заключительный этап). Различается только содержание этапа исполнения, в ходе которого и реализуется полезная функциональность команды. Для команд LD и ST на этапе исполнения выполняется загрузка еще одного байта (с адресом) во временный регистр.

Необходимо отметить, что каждый из этапов реализуется одной (или несколькими) микрокомандами микропрограммы. Каждая микрокоманда управляет всеми необходимыми устройствами процессора, включая АЛУ, БР, шинный(е) мультиплексор(ы), схему формирования адреса следующей микрокоманды, регистр (триггер) флагов и, кроме того, формирует сигналы для шины управления процессора (в данном случае – это сигналы обращения к памяти MEMR, MEMW).

В целом устройство управления можно охарактеризовать как управляющий автомат с программируемой логикой с естественной адресацией.

Выполнение каждой команды начинается с нулевого адреса ПМП. Микрокоманда по этому адресу выполняет считывание из ОЗУ кода команды по адресу, указанному в PC. Для этого выполняется обращение к памяти, адрес выдается на шину адреса процессора из PC, старший (или единственный) байт команды считывается и поступает в IR (РК), запись в который также управляется этой микрокомандой. Адрес следующей микрокоманды – на единицу больше, чем текущей, то есть она располагается по адресу 00..0001 ПМП. Следующая микрокоманда находится по очередному адресу ПМП 00...0010. Это – микрокоманда декодирования команды процессора. По ней происходит выбор следующего адреса в ПМП как результата перекодировки кода команды в блоке формирования адреса микрокоманды CSAddr. При этом никакие другие действия в процессоре не происходят, и в следующем такте выполняется переход по адресу ПМП, по которому размещен дальнейший код – это либо одна, либо несколько микрокоманд, реализующих собственно этап выполнения текущей команды. Для одних команд процессора (ADD, NOR, SHRA) будет достаточно единственной микрокоманды, которая, выполнит соответствующую операцию в АЛУ и запишет результат в регистр РОН, как указано в команде. Для команды условного перехода происходит условная перезапись PC в зависимости от значения единственного флага процессора значением адреса из самой команды, а для команд обращения к памяти – обращение к памяти по адресу, указанному в следуюшем байте команды. Большинство команд (кроме JE) завершаются микрокомандой инкремента PC и перехода к обработке следующей команды (на микрокоманду по адресу ПМП 0). Эта заключительная микрокоманда может располагаться в последнем слове ПМП (по адресу 111...111).

Рассмотрим формат микрокоманд для проектируемого процессора. Микрокоманда должна включать: указание на способ формирования следующего адреса микрокоманды, сигналы управления памятью, сигналы управления АЛУ, сигнал записи регистра флагов, а также – сигналы для управления мультиплексором шины C, номера регистров A, B, C для БР, ну и адрес перехода внутри ПМП.

Вариантов получения следующего адреса микрокоманды в микропрограмме для нашего микропроцессора несколько:

· адрес следующей микрокоманды = адресу текущей + 1 (Next)

· адрес следующей микрокоманды получается в результате декодирования кода команды из РК (только в микрокоманде декодирования Decode).

· передача управления по указанному адресу микропрограммы (JMP).

Последний вариант включает в себя как условную, так и безусловную передачу управления (при JN и N или при JMP в микропрограмме).

Эти три варианта соответствуют 3-м устройствам на входе мультиплексора выбора адреса:

· счетчик адреса микрокоманды;

· схема преобразования кода команды в адрес ПМП при декодировании;

· поле адреса переходов в регистре микрокоманды.

Для кода варианта формирования адреса следующей микрокоманды (ACode) в микрокоманде можно использовать 2 бита:

00 – адрес следующей микрокоманды = адресу текущей + 1 (Next)

01 – адрес следующей микрокоманды получается в результате декодирования кода команды из РК (только в микрокоманде декодирования Decode).

10 – условная передача управления – JE,

11 – безусловная передача управления – JMP.

В данном случае уловная передача управления по сути необходима только при реализации одной команды – JE. Безусловная – выполняется при переходе к последней микрокоманде или к 0-му адресу в ПМП.

Для кода операций АЛУ используется 2 бита, которые задают операцию АЛУ.

Регистры процессора можно закодировать следующим образом – все РОН будут иметь внутренний номер, начинающийся с 0, а служебные регистры – номер, начинающийся с 1, при этом для кодировки служебных регистров, как и в кодах команд достаточно использовать 2 бита, например:

00 – temp0; 01 – temp1; 10 – PC; 11 – IR.

Дополнительно для каждой шины A, B, C, будем указывать один бит, выбирающий источник номера регистров – 0 – из РК, 1 – из РМК.

Рис. 8. Схема устройства управления

Рис. 9. Схема устройства формирования адреса

На вход этого блока подается бит нуля из регистра флагов и поле COND из регистра микрокоманд. На выходе блок должен сформировать 2-разрядный сигнал, задающий тип перехода на следующую команду в ПЗУ микрокоманд. Разработка формата микрокоманд Next – 00 Decode – 01 JN- 10 Jump – 11
MIR – Microinstruction register – регистр микрокоманд (28 bit)
A A MUX B B MUX C C MUX RD WR ALU mux alu COND JMP ADDRESS
                                                       
                                                       

Расшифровка полей микрокоманды:

· A, B, C – номер регистра для осуществления чтения (А,В) или записи(С);

· A MUX, B MUX, C MUX – бит, показывающий откуда брать номер регистра (0 – из РК (IR), 1 – из микрокоманды РМК (MIR));

· RD – чтение из ОЗУ. При этом адрес памяти берется с шины В, а результат подается на шину С;

· WR – запись в ОЗУ. При этом адрес памяти берется с шины В, а данные с шины А;

· ALU – код операции в АЛУ:

КОП АЛУ Операция АЛУ
NOR
ADD
SHRA
EQU

 

· COND – условие для определения адреса следующей выполняемой микрокоманды:

COND Куда переходим
NEXT на следующую микрокоманду
DECODE декодирование команды, Address = [KOP]011
JMP безусловный переход
JE условный переход по равенству
JIr9 переход, если не прямая адресация
JIr10 переход, если косвенная адресация

 

· JMP Address – адрес в памяти микропрограмм, куда осуществляется переход.

 

Микрокод

Команда Адрес Микрокоманда Комментарий
Десят. Двоич.
IF MOVR IR,[PC]; JMP 1 Загрузка команды в IR
ID DECODE Декодирование
 
  LD JIr9 6 Переход, если не выставлен флаг прямой адресации
MOVR t0, adr JMP 5 Запись адреса в регистр
MOV Rx,[t0] JMP 63 Передача значения по адресу в регистр
JIr10 8 Переход, если выставлен флаг косвенной адресации
ADD Ry,Rz JMP 8 Сложить адреса в Ry и Rz
MOVR Rx,[Ry]; JMP 63 Чтение из памяти
 
  ST JIr9 14 Переход, если не выставлен флаг прямой адресации
MOVR t0, adr JMP 13 Запись адреса в регистр
MOV Rx,[t0] JMP 63 Передача значения по адресу в регистр
JIr10 16 Переход, если выставлен флаг косвенной адресации
  ADD Ry,Rz JMP 16 Сложить адреса в Ry и Rz
  MOVR Rx,[Ry]; JMP 63 Запись в память значения из Rx в адрес в Ry памяти
 
ADD Rx=ADD Ry,Rz; JMP 63 Сложение
 
NOR Rx=NOR Ry,Rz; JMP 63 Операция ИЛИ-НЕ
 
SHRA Rx=SHRA Rx; JMP 63 Сдвиг вправо
 
XCH Temp0=Rx;Rx=Ry;Ry=temp0;JMP 63 Обмен содержимого регистров
 
JE temp0=IR[8..15]; JE 53 Запись 8 старших бит из IR в котором хранится адрес
JMP 63 Переход в конец
PC=temp0; JMP 0 Переход по адресу
 
JMP temp0=IR[8..15]; JMP 60 Запись 8 старших байтов из IR в регистр
PC=temp0; JMP 0 Безусловный переход
 
  PC=INC PC,temp1; JMP 0 Увеличение PC и переход на выполнение следующей команды

 

Кодировка микрокоманд

Команда Адрес MEM A AMUX B BMUX C CMUX RD WR ALU mux alu COND JMP ADDR
IF --
.
ID --
.
  LD --
--
--
--
--
/
  ST --
--
--
--
--
.
ADD
.
NOR
.
SHRA
.
XCH --
.
JE
--
--
.
JMP --
--
.
 

 

Примеры программ

Пример №1:

Begin

LD R0,2

LD R1,7

ADD R2,R1,R0

XCH R0,R2

NOR R3,R1,R2

ADD R3,R2,R0

End

Команда № такта Адрес МК R0 R1 R2 R3 T0 T1 PC
LD R0,2 - - - - -
- - - - -
- - - - -
- - - -
- - -
- - -
LD R1,7 - - -
- - -
- - -
- - -
- -
- -
ADD R2,R1,R0 - -
- -
-
-
XCH R0,R2 -
-
-
-
NOR R3,R1,R2 -
-
ADD R3,R2,R0

 

Пример № 2

Begin

LD R0,1

LD R1,2

ADD R2,R1,R0

ADD R3,R2,R1

LD R0,R3

NOR R2,R0,R3

End

Команда № такта Адрес МК R0 R1 R2 R3 T0 T1 PC
LD R0,5 - - - - -
- - - - -
- - - - -
- - - -
- - -
- - -
LD R1,6 - - -
- - -
- - -
- - -
- -
- -
ADD R2,R1,R0 - -
- -
-
-
ADD R3,R2,R1 -
-
LD R0,R3
NOR R2,R0,R3

 

 



2015-12-07 904 Обсуждений (0)
Разработка устройства управления (УУ) 0.00 из 5.00 0 оценок









Обсуждение в статье: Разработка устройства управления (УУ)

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (904)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)