Детальный проект конвейерного RISC процессора (Глава 4 "Основы конвейеризации"), страница 8

Таблица 4.7 Сложные дизьюктивные нормальные функции (DNF) FSD соответствующие подготовленным путям данных

Сложные DNF

Состояние назначения

Одночлен т EM

Длина l(m)

IR[31 :26]

IR[5 : 0]

Dl

alu

000000

100***

9

D2

aluI

001***

******

3

D3

shift

000000 000000

0001*0 00011*

11 11

D4

shiftI

000000 000000

0000*0 00001*

11 11

D5

test

000000

101***

9

D6

testI

011***

******

3

D7

savePC

010111 000011

****** ******

6 6

D8

addrS

10100* 1010*1

****** ******

5 5

D9

addrL

100*0* 1000*1 10000*

******

4 5

5

DNF

Сигналы Mealy

D10

Rtype

000000

******

6

D4

shiftl

000000 000000

0000*0 00001*

(10) (10)

D7

Jlink

010111 000011

******

(6) (6)

D11

jumpR

01011*

******

5

D12

Jjump

00001*

******

5

D13

jump

D11 OR D12

D14

branch

00010*

******

5

D15

bzero

*****0

******

1



Таблица 4.8 Пути path(t) через FSD для каждого типа t команд DLX

Тип команды DLX

Путь через FSD

addi, subi, andi, on, xori, lhgi

fetch, decode, aluI, passC, wb

add, sub, and, or, xor, lhg

fetch, decode, alu, passC, wb

clri, sgri, seqi, sgei, slsi, snei, slei, seti

fetch, decode, testI, passC, wb

clr, sgr, seq, sge, sls, sne, sle, set

fetch, decode, test, passC, wb

slli, srli, srai

fetch, decode, shiftl, passC, wb

sll, srl, sra

fetch, decode, shift, passC, wb

lb, lh, lw, lbu, lhu

fetch, decode, addrL, load, sh41

sb, sh, sw

fetch, decode, addrS, store, noWB

jalr, jal

fetch, decode, savePC, passC, wb

другие

fetch, decode, noEX, noM, noWB


3. Сигналы Mealy активированные в состоянии IDтеперь активируются в каждом такте; они имеют значение только когда full1 = 1. Таким образом, сигналы Mealy зависят только от входов IR, но не от текущего состояния.

4. Видно, что на рисунке 4.8 только состояние decodeимеет разветвление по выходу больше единицы. На этапе IDмы поэтому заранее можем вычислить управляющие сигналы для всех этапов и синхронизировать их с регистром R..2 € out(1). Таблица 4.9 перечисляет для каждого состояния сигналы синхронизируемые с этим регистром. Входы регистра R.2 вычисляются в каждом такте, но они синхронизируются в R.2 только когда

ue.1   =   full.1  /\  /busy   =   1.

Регистр R.2 содержит три класса сигналов:   

(a) сигналы xиспользуемые в следующем цикле управляют только этапом EX,

(b) сигналы у используемые в следующих двух циклах управляют этапами EX и M,

(c) сигналы zиспользуемые в следующих трех циклах управляют этапами EX, M и WB.

Управляющие сигналы у этапа M задерживаются одним дополнительным регистром R.3 € out(2), тогда как сигналы этапа WB задерживаются регистрами R.3 и R.4 out(3), как показано на рисунке 4.9.