multi cycle


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 Cycle
Danita 2000 Multi
G88 Chip Cutting Drill Cycle with Redraw
G94 End Taper Face Turning Cycle
Cell Cycle
G75 Outer Internal Dia Drilling Grooving Cycle
multi disk howto 6 hlxgqt2tfzfcpb35yuwjmkd2sjg4bjuzfybmbki
Turbo Cycle Guide81Part 2
Cycle Def 8 Mirror ON X
Seiki Multi [INS] L568 85 1
multi disk howto 5 meeuym7apruqs4ety5cmacrxs5eebu22xvu75za meeuym7apruqs4ety5cmacrxs5eebu22xvu75za
01 84 Multi function steering wheel OBD
multi disk howto 20 623jxrnttobj6lnmjmrzex7r2d62x6pjwrf3s6a
CHIGO MULTI
Seiki Multi [IM] L435 85 1m

więcej podobnych podstron