Instruction
register
Data
PC Address
A
Register #
Instruction
Memory Registers ALU ALUOut
or data
Register #
Memory
data
B
Data
register
Register #
Elementy architektury typu multi cycle
Architektura Multi-cycle
" każda instrukcja wykonuje się w kilku cyklach zegara
" instrukcje wymagają różnej liczby cykli zegara
" dane wykorzystywane przez jedną instrukcję, umieszczane są w rejestrach pośred-
nich i wykorzystywane w następnych cyklach zegara tej samej instrukcji
" dane będące końcowym wynikiem instrukcji, umieszczane są w pliku rejestrów,
pamięci zewnętrznej lub w PC
" redukcja dużych bloków architektury i dodanie rejestrów pośrednich
Bloki architektury:
" jednolita pamięć (instrukcje programu + dane)
" blok pliku rejestrów
" jeden element wykonawczy ALU
" dodatkowe rejestry pośrednie, na wyjściu każdego bloku
Rejestry pośrednie (niewidoczne dla programisty):
IR instruction register przechowuje kod instrukcji w czasie jej wykonywania
MDR memory data register przechowuje dane odczytane z pamięci
A,B rejestry przechowujące odczytane wartości z pliku rejestrów mikroprocesora
ALUOut rejestr przechowujący wynik działania ALU
PC 0
0
Instruction Read
M
M
Address [25-21] register 1
u
u
x
Read x
A
Instruction Read
Zero
1 Memory
data 1
1
[20-16] register 2
ALU
ALU ALUOut
0
MemData
Registers
result
Instruction Write
M
Read
[15-0] register B
u 0
Instruction data 2
Write x
[15-11]
M
Instruction
4 1
Write
data
1 u
register
data
2
x
Instruction 0
3
[15-0]
M
u
x
Memory 1
16 32
data
Shift
Sign
register
left 2
extend
Dodatkowe multiplexery przed ALU są konieczne do realizacji wszystkich typów
instrukcji oraz inkrementacji PC za pomocÄ… tylko jednej jednostki wykonawczej
Ścieżki danych architektury multi cycle
IorD MemRead MemWrite IRWrite RegDst RegWrite ALUSrcA
PC 0
0
Instruction Read
M
M
[25-21] register 1
u Address
u
x
Read
x
A
Instruction Read
data 1 Zero
Memory
1
1
[20-16] register 2
ALU
ALU
ALUOut
0
MemData
Registers
result
Instruction Write
Read
M
B
[15-0] register
data 2
u 0
Instruction
Write x
[15-11] M
Instruction
4 1
Write
data
1 u
register
data
2
x
0
Instruction
3
[15-0]
M
u
x
Memory 1
16 32
data
ALU
Shift
Sign
register
control
left 2
extend
Instruction [5-0]
MemtoReg ALUSrcB ALUOp
Sygnały sterujące architektury multi cycle
PCWriteCond
PCSource
PCWrite
ALUOp
Outputs
IorD
ALUSrcB
MemRead
ALUSrcA
Control
MemWrite
RegWrite
MemtoReg
Op
RegDst
IRWrite
[5-0]
0
M
1
u
Jump
26 28
x
address [31-0]
Instruction [25-0]
Shift
2
left 2
Instruction
[31-26]
PC [31-28]
PC 0
0
Instruction Read
M
M
[25-21] register 1
u Address
u
x
Read x
A
Instruction Read
Zero
1 Memory
data 1
1
[20-16] register 2
ALU
ALU
0 ALUOut
MemData
Registers
result
Instruction Write
M
Read
B
[15-0] register
u 0
Instruction data 2
Write x
[15-11]
M
Instruction
4 1
Write
data
1 u
register
data
2
x
0
Instruction
3
[15-0]
M
u
x
Memory 1
data 16 32
ALU
Shift
Sign
register
control
left 2
extend
Instruction [5-0]
Kompletna architektura multi cycle
Sygnał 0 1
RegDst numer rejestru do zapisu numer rejestru do odczytu
RegWrite zezwolenie na zapis od pliku rejestrów
ALUSrcA PC do ALU A do ALU
MemRead zezwolenia na odczyt z pamięci
MemWrite zezwolenia na zapis do pamięci
dane do zapisu w pliku dane do zapisu w pliku
MemToReg rejestrów z ALUOut rejestrów z MDR
IorD pamięć adresowana PC pamięć adresowana ALUOut
IRWrite zezwolenia na zapis do IR
PCWrite zezwolenia na zapis do PC
PCWriteCond warunkowy zapis do PC
1-bitowe sygnały sterujące architektury multi cycle
Sygnał wartość Działanie
dodawanie (load-store)
00
odejmowanie (branch)
01
ALUOp 10 zależnie od pola Function (R-type)
B (R-type) do ALU
00
4 do ALU
01
instrukcja[15-0] (load-store) do ALU
10
ALUSrcB 11 instrukcja[15-0]«2 (branch) do ALU
ALU (PC+4) do PC
00
ALUOut (branch) do PC
01
PCSource 10 PC[31-26]+IR[25-0]«2 (jump) do PC
2-bitowe sygnały sterujące architektury multi cycle
Instruction decode/
Instruction fetch
register fetch
0
MemRead
1
ALUSrcA = 0
IorD = 0 ALUSrcA = 0
IRWrite ALUSrcB = 11
Start
ALUSrcB = 01 ALUOp = 00
ALUOp = 00
PCWrite
PCSource = 00
Memory address
Branch Jump
computation
Execution completion
completion
2 6 8 9
ALUSrcA = 1
ALUSrcA = 1
ALUSrcB = 00
ALUSrcA =1
PCWrite
ALUSrcB = 10
ALUOp = 01
ALUSrcB = 00
PCSource = 10
ALUOp = 00
PCWriteCond
ALUOp= 10
PCSource = 01
Memory
Memory
access
access
R-type completion
3 5 7
RegDst = 1
MemRead MemWrite
RegWrite
IorD = 1 IorD = 1
MemtoReg = 0
Write-back step
4
RegDst 0
=
RegWrite
MemtoReg
=1
Kompletny diagram stanów bloku sterowania
(Op = 'J')
(Op = 'LW')
')
'BEQ
(Op = R-type)
')
'SW
(Op =
') or (Op =
W
'L
(Op =
(Op =
'SW
')
Sygnały
Blok logiki
sterujÄ…ce
kombinacyjnej
Control[n-0]
Outputs
(następny stan)
Inputs
Rej. Stanu
Control = F( Q(t), Opcode)
Opcode
instrukcji
Q(t+1) = F( Q(t), Opcode)
Instr[31-26]
Q[3-0]
Realizacja sterowania w postaci maszyny stanowej
Pamięć ROM
Sygnały sterujące
dane
adres
Opcode
Realizacja sterowania w postaci pamięci ROM
Wyszukiwarka
Podobne podstrony:
G86 Grooving CycleDanita 2000 MultiG88 Chip Cutting Drill Cycle with RedrawG94 End Taper Face Turning CycleCell CycleG75 Outer Internal Dia Drilling Grooving Cyclemulti disk howto 6 hlxgqt2tfzfcpb35yuwjmkd2sjg4bjuzfybmbkiTurbo Cycle Guide81Part 2Cycle Def 8 Mirror ON XSeiki Multi [INS] L568 85 1multi disk howto 5 meeuym7apruqs4ety5cmacrxs5eebu22xvu75za meeuym7apruqs4ety5cmacrxs5eebu22xvu75za01 84 Multi function steering wheel OBDmulti disk howto 20 623jxrnttobj6lnmjmrzex7r2d62x6pjwrf3s6aCHIGO MULTISeiki Multi [IM] L435 85 1mwięcej podobnych podstron