architektura typu single-cycle - dmcsfiona.dmcs.pl/~bartoszp/ak_wyklad3_2017_18.pdf · architektura...

of 30 /30
Architektura komputerów, Informatyka, sem.III Architektura typu Single-Cycle ...czyli budujemy pierwszą maszynę parową

Author: phamtram

Post on 01-Mar-2019

236 views

Category:

Documents


1 download

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