andrey

Путь к Файлу: /Организация ЭВМ / Лекции ВМ-91 / Glava_5.4_3.3_brigada8 / 3.3.doc

Ознакомиться или скачать весь учебный материал данного пользователя
Скачиваний:   0
Пользователь:   andrey
Добавлен:   13.01.2015
Размер:   389.5 КБ
СКАЧАТЬ

3.3    Окружения

3.3.1    Файл регистров общего назначения

Окружение файла регистров общего назначения содержит состоящий из 32-х слов 3-х портовый файл регистров с регистрами GPRi[31 : 0] для i = 0,... ,31. Оно управляется тремя управляющими сигналами, а именно:        

• сигнал записи GPRw файла регистров GPR,

• сигнал Rtype, указывающий на команду типа R-type,

• сигнал Jlink, указывающий на команды перехода и связи (jal, jalr)

В каждом такте поведение окружения полностью определено несколькими уравнениями. Первые уравнения определяют, что регистры с адресами RS1 и RS2 всегда читаются и представляют из себя входы в регистры A и B. Однако, чтение из адреса 0 должно принудительно выводить окружение файла регистров в ноль.

3.3

 

Пусть  Cad будет адресом, в который пишет регистр C. Этот адрес обычно определяется RD. Однако, в случае команд перехода (jump) и связи (link) (Jlink = 1) PC должен быть сохранен в регистре 31. Запись может произойти только если сигнал GPRw активен:

3.3

GPR[Cad]    : =   C   если   GPRw=1

Оставшиеся уравнения просто определяют расположение полей RS1, RS2 и RD; от типа команды зависит только расположение RD:

3.3

На этом завершается определение окружения GPR.

Схема CAddr на рисунке 3.5 генерирует адрес назначения со следующей стоимостью и задержкой:

 

CCAddr     =     2*Cmux(5)

DDAddr     =     2*Dmux(5).

Конструкция на рисунке 3.5 - простейшая реализация окружения GPR со стоимостью:

CGPRenv   = Cram3(32, 32) + CCAddr + 2 • (Czero(5) + Cinv + Cand(32)).

3.3

 

Рисунок 3.5 Реализация окружения GPR

Файл регистров выполняет два типа доступа; он обеспечивает данными  A' и B', или записывает данные C ' назад. Доступ для чтения объясняет задержку

DGPR,read     =     DGPRenv(IR,GPRw,A',B')

=   max{Dram3(32,32),Dzero(5) + Dinv} + Dand,

в то время как доступ для записи требует времени

DGPR,write =  DCAddr + Dram3(32,32).

3.3.2    Окружение регистра команд

Это окружение управляется тремя управляющими сигналами

• Jjump указывает на команду перехода типа J-type,

• shiftI указывает на команду сдвига с непосредственным операндом,

• сигнал разрешения синхронизации IRce регистра команд IR.

Окружение содержит регистр команд, который загружается из шины MDout. Таким образом,

IR := MDout    если   IRce=1.

Окружение IRenv выводит 32-битную константу

3.3

 

3.3

Рисунок 3.6 Реализация окружения IR

где sxt(a) означает 32-битное знаковое представление a. Позиция сдвига есть сумма SA и непосредственной константы imm в командном слове, определяемых как

3.3

На этом завершается определение окружения IRenv. Схема на рисунке 3.6 – легко реализуема. Ее стоимость и задержка выхода co:

CIRenv   =   Cff(32)+Cmux(15)

DIRem(co)     =    Dmux(15).

 

3.3.3    Окружение PC

 

Это окружение управляет с помощью сигнала reset и сигнала разрешения синхронизации PCce программным счетчиком PC. Если сигнал сброса активен, тогда стартовый адрес 032 загрузочной подпрограммы записывается в регистр PC:

3.3

На этом завершается определение окружения PC. Конструкция на рисунке 3.7 выполняет  PCenv простейшим способом. Пусть Dpcenv(In; PC) означает задержку, которую окружение PCenv добавляет к задержке входов регистра PC. Таким образом:

CPCenv  = Cff(32)+Cmux(32)+Cor

DPCenv(In;PC)    =   max{Dmux(32),Dor}

3.3

Рисунок 3.7 Реализация окружения PC

 

3.3.4    Окружение ALU

Это окружение управляется тремя управляющими сигналами

• Rtype указывает на команду типа R-type,

• add заставляет ALU складывать,

• test заставляет ALU проводить операции по установке и проверке битов.

ALU используется для арифметико-логических операций и для работы с битами. Тип операции ALU определяется тремя битами, которые мы называем f [2: 0]. Эти биты - последние три бита первичного или вторичного кода операции, в зависимости от типа команды:

3.3

Для случая выполнения операций тестирования, результат t € {0,1} определен в таблице 3.5. Для случая арифметико-логических операций результат al определен в таблице 3.6. По этой таблице видно, что al = a + b есть сокращение для [al] = [a] + [b] mod 232; значение a — b определяется аналогично. Для дальнейшего использования мы определим нотацию

 

al =  a op b.

Флаг ovf арифметического модуля AU указывает на переполнение, то есть на то, что значение [a] op [b] не лежит в диапазоне T32 32-разрядного двоичного дополнительного числа.

 

3.3

Если сигнал add активен, ALU производит простое двоичное сложение по модулю 232. Конечный выход alu на ALU выбирается под управлением сигналов test и add очевидным способом

 

На этом заканчиваем определение ALU.

Таблица 3.5 Определение выражений проверки

Выражение

false

 

a>b

 

a = b

 

a>=b

 

a<b

 

a=/=b

 

a<=b

 

true

 

f2

 

0

 

0

 

0

 

0

 

1

 

1

 

1

 

1

 

f1

 

=

 

0

 

0

 

1

 

1

 

0

 

0

 

1

 

1

 

f0

 

 

0

 

1

 

0

 

1

 

0

 

1

 

0

 

1

 

Таблица 3.6 Кодирование арифметико-логических операций ALU

 

 

a+b

 

a-b

 

a/\b

 

a\/b

 

a 3.3 b

 

b[15:0]0n-16

 

f2

 

0

 

0

 

1

 

1

 

1

 

1

 

f1

 

0

 

1

 

0

 

0

 

1

 

1

 

f0

 

*

 

*

 

0

 

1

 

0

 

1

 

Компаратор

Кодированные выражения из таблицы 3.5 часто используются. Очевидная реализация выполняется за два шага. Сначала вычисляются вспомогательные сигналы l,e,g (меньше, равно, больше)

1 = 1    <->      a<b      <->      a-b<0

e = 1    <->      a=b      <->      a-b=0

g = 1    <->      a>b      <->      a-b>0

и затем генерируется

t(a,b,f) = f2  /\ l \/ f1 /\ e \/ f0 /\ g.

Рисунок 3.8 изображает данную реализацию, используя арифметический модуль из раздела 2.4. Примем, что сигнал вычитание sub - активен

l           =          neg

      e = 1              <->  s[31:0] = 032

g            =        e /\ l.

Стоимость и задержка 32-битного компаратора

Ccomp(32)     =     Czero (32)+2*Cinv+4*Cand+2*Cor

Ocomp(32)    =    max{Dinv + Dand, Dzero(32) + Dor, Dzero(32) + Dinv} +Dand + Dor.

3.3

Рисунок 3.8 Арифметический модуль, дополненный схемой компаратора

 

3.3

Рисунок 3.9 Реализация ALU включающего арифметический модуль AU, логический модуль LU и компаратор

Логический модуль

Кодирование арифметико-логических функций из таблицы 3.6 переводится простейшим способом в рисунок 3.9. Таким образом, стоимость и задержка логического модуля LU и этого ALU

CLU(32)   =      Cand(32) + Cor(32) + Cxor(32) + 3 • Cmux(32)

DLU(32)   =      max{Dand + Dor,Dxor} + 2*Dmux

cALU   = CAU (32) + ClU (32) + Ccomp (32) + 2 • Cmux (32)

dALU    =            max{DAU(32)+Dcomp(32),DAU(32)+Dmux,

DLU(32)+Dmux } + Dmux.

 

3.3

 

Рисунок 3.10 Схема генерации сигналов sub и f[2..0] для окружения ALU

Схема генерации сигналов sub и f[2..0]

Рисунок 3.10 предлагает, как можно генерировать сигналы sub и f [2: 0] из сигналов управления add и Rtype. Мультиплексор, управляемый сигналом Rtype, выбирает между первичным и вторичным кодом операции. Мультиплексор, управляемый add, может выставлять f [2: 0] в значение 000, которое является кодом сложения.

Арифметический модуль используется только для проверок и арифметических операций. В случае арифметических операций ALU, операция AU - сложение (add или addi) если f1 = 0 и вычитание (sub или subi) если f1 = 1. Следовательно, сигнал вычитания может быть сгенерирован как

 

sub = test \/ f1.

 

Окружение ALUenv состоит из схемы ALU и схемы генерации сигналов sub и f[2..0].

Таким образом, для всего окружения ALU мы получаем следующие задержку и стоимость:    

CALUglue =Cor + 2-Cmux(3)

DALUglue=2*Dmux(3) +Dor

caluenv=calu + CALUglue

daluenv=DALUglue + DALU.

 

 

Наверх страницы

Внимание! Не забудьте ознакомиться с остальными документами данного пользователя!

Соседние файлы в текущем каталоге:

На сайте уже 21970 файлов общим размером 9.9 ГБ.

Наш сайт представляет собой Сервис, где студенты самых различных специальностей могут делиться своей учебой. Для удобства организован онлайн просмотр содержимого самых разных форматов файлов с возможностью их скачивания. У нас можно найти курсовые и лабораторные работы, дипломные работы и диссертации, лекции и шпаргалки, учебники, чертежи, инструкции, пособия и методички - можно найти любые учебные материалы. Наш полезный сервис предназначен прежде всего для помощи студентам в учёбе, ведь разобраться с любым предметом всегда быстрее когда можно посмотреть примеры, ознакомится более углубленно по той или иной теме. Все материалы на сайте представлены для ознакомления и загружены самими пользователями. Учитесь с нами, учитесь на пятерки и становитесь самыми грамотными специалистами своей профессии.

Не нашли нужный документ? Воспользуйтесь поиском по содержимому всех файлов сайта:



Каждый день, проснувшись по утру, заходи на obmendoc.ru

Товарищ, не ленись - делись файлами и новому учись!

Яндекс.Метрика