architektura typu single-cycle - dmcsfiona.dmcs.pl/~bartoszp/ak_wyklad3_2017_18.pdf · architektura...
Embed Size (px)
TRANSCRIPT
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Architektura typu Single-Cycle
...czyli budujemy pierwsz maszyn parow
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Przepyw danychW ukadach sekwencyjnych przepyw danych synchronizowany jest sygnaem zegara
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Elementy procesora - zaoeniaPami programu zawiera zapisany program
wszystkie instrukcje zajmuj 4-bajty pamici (32-bity)magistrale Instruction address i Instruction s 32-bitowepodanie adresu powoduje pojawianie si kodu instrukcji
Rejestr PC zawiera adres (pocztku) instrukcji programuSumator jest 32-bitowy
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Ukad pobierania instrukcjiPobieranie instrukcji Instruction Fetch
sygna zegara steruje zapisem do rejestru PCw kadym cyklu zegara PC jest zwikszane o 4na wyjciu pamici pojawiaj si kolejne instrukcje
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Instrukcje rejestrowe (R-type)Instrukcje rejestrowe wykonuj operacje na wewntrznych rejestrach procesora
dwa operandy rdowe (Rrs i Rrt) znajduj si w rejestrach
wynik kocowy zapisywany jest do rejestru (Rrd)
Kod instrukcji R-type musi zawiera:unikalny numer instrukcji (opcode)numery trzech rejestrw wewntrznych: rs, rt, tdrodzaj operacji arytmetycznej lub logicznej (func)
opcode rs rt rd ... func
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Adresowanie bezporednie rejestrowe
Rrs
Rrt
operand 1
operand 2
(Register Direct Addressing)
Operandy s w rejestrach wewnetrznych
asembler:
ADD R1,R2,R7SUB R3,R6,R1OR R7,R3,R2AND R0,R2,R5
Rrdoperand 3
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Plik rejestrw (Register File) - zaoeniaPlik rejestrw zawiera 32 rejestry 32-bitoweNa wyjciu pliku dostpne s dwie wartoci rejestrw
o numerach podanych na wejcia ReadRegister1&2 Numery rejestrw s 5-bitowe (25 = 32)Zapis do rejestru danych (WriteData) wymaga podania
numeru rejestru (WriteRegister) i sygnau zezwolenia na zapis (RegWrite)
Zapis jest synchronizowanysygnaem zegarowym
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Plik rejestrw - koncepcja
R0
clk
R1 R31
RegWrite
WriteData
WriteRegster
ReadReg.2
ReadReg.1
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
ALU - zaoenia
Wyjcia i wyjcie 32-bitowe (32-bitowe ALU)Dodawanie, odejmowanie, AND, ORSterowanie 3-bitoweTylko jeden sygna kontrolny: zero
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Wykonywanie instrukcji R-typeNumery rejestrw z kodu instrukcji wybieraj z pliku rejestrw rejestry rdowe Rrs i RrtWynik operacji ALU jest zapisywany do rejestru Rrdna zakoczenie cyklu zegarowego (sygna clk)
opcode rs rt rd ... func31 26 | 25 21 | 20 16 | 15 11 | | 5 0
format instrukcjinumery bitw
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Pami danych - zaoeniaZawiera dane programu zorganizowane w 32-bitowe sowa (4B)Podanie sygnau zezwolenia MemRead powoduje pojawienie si
na wyjciu ReadData zawartoci pamici spod adresu AddressZapis do danych pamici (WriteData) odbywa si pod podany
adres (Address) gdy aktywny jest sygnau zezwolenia na zapis (MemWrite)
Zapis jest synchronizowanysygnaem zegarowym
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Rozszerzenie znakowe - zaoenia
Ukad suy do zmiany reprezentacji liczby cakowitej 16-bitowej na 32-bitow z zachowaniem znaku (w sensie kodu U2)Ukad jest kombinacyjny i nie wymaga taktowania
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Instrukcje transferu (Load/Store)Instrukcje wykonuj transfer danych:
z pamici danych do rejestru wewntrznego (Load)z rejestru wewntrznego do pamici danych (Store)dane do transferu: rejestr wewn. (Rrs) i adres pamici (Rrt)
staa w kodzie instrukcji uatwia dostp do pamiciKod instrukcji Load/Store musi zawiera:
unikalny numer instrukcji (opcode)numery dwch rejestrw wewntrznych: rs, rtsta (offset), ktra jest dodawana do adresu bazowago
opcode rs rt offset
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Adresowanie porednie rejestrowe
dane
Rrt
Rrs
dane
adres
+ offset
adres operandu
adresy komrek pam
ici
0
n
... z przesuniciem (Register Indirect with Offset Addressing)Offset moe by liczb dodatni lub ujemn (U2)STORE:
asembler: (SW Store Word)
SW R7,(R5)SW R1,0x200(R2)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Adresowanie porednie rejestrowe
dane
Rrt
Rrs
dane
adres
+ offset
adres operandu
adresy komrek pam
ici
0
n
... z przesuniciem (Register Indirect with Offset Addressing)LOAD:
asembler: (LW Load Word)
LW R7,(R5)LW R1,0x200(R2)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Wykonywanie instrukcji Load/StoreRejestr Rrs + offset adresuje pami danych (Load/Store)
Store: Rejestr Rrt na wejciu pamici i bdzie zapisany (sygna MemWrite aktywny)
Load: Dane z wyjcia pamici bed zapisane do rejestru Rrt (sygnay MemRead i RegWrite aktywne)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Instrukcje skokw
Skok: odstpstwo od wykonania cigu instrukcji zapisanych kolejno w pamiciKada instrukcja skoku polega na modyfikacji rejestru PCSkoki absolutne (bezwzgldne) i wzgldne
absolutne nowa zawarto adowana do PCwzgldne przesunicie (+/-) dodawane do PC
Skoki bezwarunkowe i warunkowebezwarunkowe skok wykona si zawszewarunkowe skok wykona si w zalenoci od spenienia
warunku (obliczanego w ALU i sygnalizowanego bitami C,V,Z,N,)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Skok wzgldny warunkowy (Z=1)
BEQRx,Ry,offset(Branch if EQual) skocz do adresu PC+offset*4 jeli Rx=Ry (Z=1)Instrukcje zajmuj 4 bajty, wic zakres skoku moe by poszerzony: offset*4Kod instrukcji BEQ musi zawiera:
unikalny numer instrukcji (opcode)numery dwch rejestrw wewntrznych: rs, rtsta (offset), ktra jest dodawana do adresu bazowago
opcode rs rt offset
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Skok wzgldny warunkowy (Z=1)
asembler: (BEQ)
BEQ R1,R2,0x40BEQ R0,R7,0xFF
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Instrukcje R-type i Load/Store razem
Multipleksery:ALUSrc: wybr drugiego operandu dla ALUMemtoReg: wybr danych do zapisu w rejestrze
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Fetch + R-type, Load/Store
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Fetch + R-type, Load/Store, BranchMultiplekser: PCSrc
wybr nowej wartoci PC: PC+4 lub PC+offset*4
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Korekcja zapisu do rejestruMultiplekser: RegDst
wybr prawidowego numeru rejestru do modyfikacji(R-type rd, Load rt)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Jednostka sterujcaControl: ukad kombinacyjny generujcy sygnay sterujce
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Skoki bezwarunkowe absolutne JMP
Do PC adowana jest nowa wartoNie s sprawdzane adne warunkiAdres skoku, zawarty w instrukcji jest mnoony przez 4Brakujce (4) bity mog by np. uzupeniane z biecej zawartoci PC (skok w ramach segmentu pamici).Multiplekser sterowany sygnaem Jump, do wyboru adresu nastpnej instrukcji
opcode adres skoku (26 bitw)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Kompletna architektura Single-Cycle
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Zestaw instrukcjiRejestrowe (R-type)
Load
Store
BEQ
JMPopcode adres skoku (26 bitw)
opcode rs rt offset
opcode rs rt rd ... func
opcode rs rt offset
opcode rs rt offset
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Sterowanie ALUInstrukcje R-type maj identyczny opcode, ale rni si polem FuncGwna jednostka sterujca (Control) rozpoznaje jedynie opcode instrukcji i ustawia sygna ALUopJednostka ALU Control uwzgldnia pole Func tylko dla instrukcji R-type (zgaszanych sygnaem ALUop)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Sterowanie ALU
AND 000OR 001
ADD 010SUB 110
Func ALU operation(Neg.+Oper)
Arch
itekt
ura
kom
pute
rw,
Info
rmat
yka,
sem
.III
Sterowanie ALU - podsumowanie
Slajd 1Slajd 2Slajd 3Slajd 4Slajd 5Slajd 6Slajd 7Slajd 8Slajd 9Slajd 10Slajd 11Slajd 12Slajd 13Slajd 14Slajd 15Slajd 16Slajd 17Slajd 18Slajd 19Slajd 20Slajd 21Slajd 22Slajd 23Slajd 24Slajd 25Slajd 26Slajd 27Slajd 28Slajd 29Slajd 30