28
Računarske arhitekture Predavanje 4: Ogledna arhitektura Oktobar 2003 Doc. dr Novica Nosović ETF - Sarajevo [email protected]

R ačunarske arhitekture Predavanje 4: Ogledna arhitektura Oktobar 2003 Doc. dr Novica Nosović

Embed Size (px)

DESCRIPTION

R ačunarske arhitekture Predavanje 4: Ogledna arhitektura Oktobar 2003 Doc. dr Novica Nosović ETF - Sarajevo [email protected]. OGLEDNA LOAD/STORE ARHITEKTURA. Registri: 32 32-bitna registra opšte namjene R0...R31 - PowerPoint PPT Presentation

Citation preview

Page 1: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Računarske arhitekture

Predavanje 4:

Ogledna arhitektura

Oktobar 2003

Doc. dr Novica Nosović

ETF - Sarajevo

[email protected]

Page 2: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

OGLEDNA LOAD/STORE ARHITEKTURA

• Registri: – 32 32-bitna registra opšte namjene R0...R31– 32 32-bitna registra za FP operacije

jednostruke preciznosti ili 16 64-bintna dvostruke preciznosti F0, F2, ..., F30

– R0=0 - ožičena vrijednost.

Page 3: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

OGLEDNA LOAD/STORE ARHITEKTURA

• Tipovi podataka:

• 1, 2 i 4 bajta za cjelobrojne vrijednosti,

• 4 ili 8 bajta za FP jednostruke/dvostruke preciznosti

Page 4: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

OGLEDNA LOAD/STORE ARHITEKTURA

Načini adresiranja:• neposredno (za konstante, Add R4, #3)• relativno (za lok. var. Add R4, 100(R1))• od njih se izvode

– registarsko indirektno (kada je offset = 0) i – apsolutno (kada je R0 bazni registar).

• 4 načina adresiranja iako su samo 2 podržana arhitekturom !

Page 5: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

FORMAT INSTRUKCIJA

• sve instrukcije su 32-bitne

• 6 bita osnovnog OPCODE-a i

• 16-bitno polje za relativno adresiranje, neposredne konstante i PC-relativno grananje.

Page 6: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

I - tip instrukcije

6 5 5 16Opkod rs1 rd Neposredna vrijednost

Kodira: Memorijski pristup bajtima, riječima, poluriječimaSve neposredne vrijednosti (rd rs1 op neposredna vrijednost)Uslovna grananja (rs1 je registar, rd se ne koristi)Skok na registar, skok i link na registar (rd=0, rs=odredište, neposrednavrijednost=0)

R - tip instrukcije

6 5 5 5 11Opkod rs1 rs2 rd funkcija

Registar-registar ALU operacija: rd rs1 funk rs2Funkcija kodira operaciju na putu podataka: Dodaj, Oduzmi, ...Čitanje/pisanje specialnih registara i premještanja

J - tip instrukcije

6 26Opkod Ofset dodat PC-u

Skok i skok sa linkomTrap i povratak iz izuzetka

Page 7: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Operacije

Load/Store (upis u R0 nema smisla),

ALU-operacije, grananje i skokovi, FP operacije

Regs[R10]16…32(Mem[Regs[R8]]0)8## Mem[Regs[R8]]

znači :

bajt na memorijskoj lokaciji određenoj sadržajem R8 je proširena predznakom do 16 bita i smješten u donjih 16 bita R10 (gornjih 16 ostaju netaknuti).

Page 8: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Primjer instrukcije Ime Instrukcije ZnačenjeLW R1, 30(R2) Load word Regs[R1] 32 Mem[30+Regs[R2]]LW R1, 1000(R0) Load word Regs[R1] 32 Mem[1000+0]LB R1, 40(R3) Load byte Regs[R1] 32 (Mem[40+Regs[R3]]0)

24

##Mem[40+Regs[R3]]LBU R1, 40(R3) Load byte unsigned Regs[R1] 32 0

24##Mem[40+Regs[R3]]LH R1, 40(R3) Load half word Regs[R1] 32 (Mem[40+Regs[R3]]0)

16

##Mem[40+Regs[R3]]##Mem[41+Regs[R3]]LF F0, 50(R3) Load float Regs[F0] 32 Mem[50+Regs[R3]]LD F0, 50(R2) Load double Regs[F0]##Regs[F1] 64 Mem[50+Regs[R3]]SW 500(R4), R3 Store word Mem[500+Regs[R4]] 32 Regs[R3]SF 40(R3), F0 Store float Mem[40+Regs[R3]] 32 Regs[F0]SD 40(R3), F0 Store double Mem[40+Regs[R3]] 32 Regs[F0];

Mem[44+Regs[R3]] 32 Regs[F1]SH 502(R2), R3 Store half Mem[502+Regs[R2]] 16 Regs[R3]16..31

SB 41(R3), R2 Store byte Mem[41+Regs[R3]] 8 Regs[R2]24..31

Instrukcije čitanja i pisanja u memoriju

Page 9: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Primjer instrukcije Ime instrukcije ZnačenjeADD R1, R2, R3 Add Regs[R1] Regs[R2]+Regs[R3]ADDI R1, R2, #3 Add immediate Regs[R1] Regs[R2]+3LHI R1, #42 Load high immediate Regs[R1] 42##016

SLLI R1, R2, #5 Shift left logical immediate Regs[R1] Regs[R2]<<5SLT R1, R2, R3 Set less than if (Regs[R2]<Regs[R3]) Regs[R1] 1

else Regs[R1] 0

Primjeri aritmetičkih i logičkih instrukcija sa i bez neposrednih vrijednosti

Page 10: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Primjer instrukcije ime instrukcije Značenje J name Jump PC name;

((PC+4)-225)name<((PC+4)+225) JAL name Jump and link R31 PC+4; PC name;

((PC+4)-225)name<((PC+4)+225) JALR R2 Jump and link register Regs[R31] PC+4; PC Regs[R2] JR R3 Jump register PC Regs[R3] BEQZ R4, name Branch equal zero if (Regs[R4]==0) PC name;

((PC+4)-215)name<((PC+4)+215) BNEZ R4, name Branch not equal zero if (Regs[R4]!=0) PC name;

((PC+4)-215)name<((PC+4)+215)

Tipične instrukcije za upravljanje tokom programa. Sve osim skoka na adresu iz registra su PC-relativne.

Page 11: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Tip/opkod instrukcije Značenje instrukcije

Prenos podataka Premješta podatke između registara i memorije, ili između cjelobrojnih i FPili specialnih registara; jedini način pristupa memoriji je 16-bitnidisplacement+sadržaj GPR

LB, LBU, SB Load byte, load byte unsigned, store byteLH, LHU, SH Load half word, load half word unsigned, store half wordLW, SW Load word, store word (u/iz cjelobrojnih registara)LF, LD, SF, SD Load SP float, load DP float, store SP float, store DP floatMOVI2S, MOVS2I Move iz/u GPR u/iz specialnog registraMOVF, MOVD Kopiranje FP registra ili DP para u drugi registar ili parMOVFP2I, MOVI2FP Move 32 bits iz/u FP registre u/iz cjelobrojnih registaraAritmetička/logička Operacije nad cjelobrojnim ili logičkim podacima u GPR, aritmetiku sa

predznakom trap prekoračenjeADD, ADDI, ADDU,ADDUI

Add, add immediate (16 bits); sa i bez predznaka

SUB, SUBI, SUBU,SUBUI

Subtract, subtract immediate; sa i bez predznaka

MULT, MULTU, DIV,DIVU

Multiply and divide, sa i bez predznaka; operandi moraju biti u FPregistrima; sve operacije uzimaju i daju 32 bitne vrijednosti

AND, ANDI And, and neposrednoOR, ORI, XOR, XORI Or, or neposredno, exclusive or, exclusive or neposrednoLHI Load high immediate; upisuje gornju polovinu registra sa neposrednoSLL, SRL, SRA, SLLI,SRLI, SRAI

Shifts: neposredno (S I) i variabilno iz (S ); šift lijevo logički, desno logički,desno aritmetički

S__, S__I Set conditional: "__" može biti LT, GT, LE, GE, EQ, NE

Spisak instrukcija ogledne arhitekture. SP=jednostruka preciznost; DP=dupla preciznost.

Page 12: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Upravljačka Uslovna grananja i skokovi; PC-relativni ili kroz registar

BEQZ, BNEZ Branch GPR equal/not equal to zero; 16 bit offset u odnosu na PC+4BFPT, BFPF Test comparison bit in the FP status register and branch; 16 bit offset u

odnosu na PC+4J, JR Jumps: 26 bitni offset u odnosu na PC+4 (J) ili odredište u registru (JR)JAL, JALR Jump and link: sačuva PC+4 u R31, odredište je PC relativno (JAL) ili

registarsko (JALR)TRAP Transfer kontrole OS-u na vektor adresuRFE Return from an exceptionSa pokretnimzarezom

FP operacije nad DP i SP formatima

ADDD, ADDF Add DP, SP brojeveSUBD, SUBF Subtract DP, SP brojeveMULTD, MULTF Multiply DP, SP floating pointDIVD, DIVF Divide DP, SP floating pointCVTF2D, CVTF2I,CVTD2F, CVTD2I,CVTI2F, CVTI2D

Convert instructions: CVTx2y pretvara iz tipa x u tip y, gdje x i y su I(integer), D (double precision), ili F (single precision). Oba operanda su uFPR-ima.

__D, __F DP i SP poređenja: "__" može biti LT, GT, LE, GE, EQ, NE; postavlja bit uFP status registru

Page 13: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Instrukcija compress eqntott espresso gcc(ccl) li Cjelobrojnoprosjek

load 19.8% 30.6% 20.9% 22.8% 31.3% 26%store 5.6% 0.6% 5.1% 14.3% 16.7% 9%add 14.4% 8.5% 23.8% 14.6% 11.1% 14%sub 1.8% 0.3% 0.5% 0%mul 0.1% 0%div 0%compare 15.4% 26.5% 8.3% 12.4% 5.4% 13%load imm 8.1% 1.5% 1.3% 6.8% 2.4% 3%cond branch 17.4% 24.0 15.0% 11.5% 14.6 16%uncond branch 1.5% 0.9% 0.5% 1.3% 1.8% 1%call 0.1% 0.5% 0.4% 1.1% 3.1% 1%return, jump ind 0.1% 0.5% 0.5% 1.5% 3.5% 1%shift 6.5% 0.3% 7.0% 6.2% 0.7% 4%and 2.1% 0.1% 9.4% 1.6% 2.1% 3%or 6.0% 5.5% 4.8% 4.2% 6.2% 5%other (xor, not) 1.0% 2.0% 0.5% 0.1% 1%load FP 0%store FP 0%add FP 0%sub FP 0%mul FP 0%div FP 0%compare FP 0%mov reg-reg FP 0%other FP 0%

Raspodjela instrukcija DLX-a pri izvršavanju pet SPECint92 programa.

Page 14: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Instrukcija dodue car hydro2d mdljdp2 su2cor FP prosjekload 1.1% 0.2% 0.1% 1.1% 3.6% 1%store 1.3% 0.1% 0.1% 1.3% 1%add 13.6% 13.6% 10.9% 4.7% 9.7% 11%sub 0.3% 0.2% 0.7% 0%mul 0%div 0%compare 3.2% 3.1% 1.2% 0.3% 1.3% 2%load imm 2.2% 0.2% 2.2% 0.9% 1%cond branch 8.0% 10.1% 11.7% 9.3% 2.6% 8%uncond branch 0.9% 0.4% 0.4% 0.1% 0%call 0.5% 1.9% 0.3% 1%return, jmp ind 0.6% 1.9% 0.3% 1%shift 2.0% 0.2% 2.4% 1.3% 2.3% 2%and 0.4% 0.1% 0.3% 0%or 0.2% 0.1% 0.1% 0.1% 0%other (xor, not) 0%load FP 23.3% 19.8% 24.1% 25.9% 21.6% 23%store FP 5.7% 11.4% 9.9% 10.0% 9.8% 9%add FP 8.8% 7.3% 3.6% 8.5% 12.4% 8%sub FP 3.8% 3.2% 7.9% 10.4% 5.9% 6%mul FP 12.0% 9.6% 9.4% 13.9% 21.6% 13%div FP 2.3% 1.6% 0.9% 0.7% 1%compare FP 4.2% 6.4% 10.4% 9.3% 0.8% 6%move reg-reg FP 2.1% 1.8% 5.2% 0.9% 1.9% 2%other FP 2.4% 8.4% 0.2% 0.2% 1.2% 2%

Raspodjela instrukcija DLX-a pri izvršavanju pet SPECfp92 programa.

Page 15: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Š ta je e fek tivn ije - v iše jednostavn ih ili m an je složen ih in strukcija?

sata ciklusa jednog trajanje * iinstrukcij po

sata ciklusa broj * ainstrukcij broj

programa

aizvršavanj

vrijeme

EFEKTIVNOST OGLEDNE ARHITEKTURE

Page 16: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

O dnos broja izvršenih instrukcija i performansi po ciklusu sata u SPEC89 programima za M IPSM 2000 i VAX 8700.

Page 17: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Protočne strukture

• U idealnim uslovima ubrzanje:

vrijeme bez PS/broj segmenata PS

Page 18: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Izvršenje instrukcije u 5 ciklusa

• IF - dobavljanje instrukcije

IR Mem[PC]

NPC PC + 4 ; Next PC – privr. reg.

Page 19: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

2 faza

ID - dekodiranje instrukcija i dobavljanje operanada iz registaraA Regs[IR6...10] ; A - privremeni registar

B Regs[IR11...15] ; B - privremeni registar

Imm ((IR16)16 ## IR16...31) ; Imm - privremeni

registar za neposredne vrijednosti, ovdje se izvodi proširenje predznakom do 32 bita

Page 20: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

3 faza

3.1. Pristup memoriji (računanje efektivne adrese)ALUoutput A + Imm ; ALUoutput - privremeni registar3.2. Registarsko-Registarska ALU instrukcijaALUoutput A func B3.3. Registarsko-neposredna ALU instrukcijaALUoutput A op Imm3.4. GrananjeALUoutput NPC + ImmCond (A op O)

Page 21: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

4 faza

MEM - Pristup memoriji/završetak grananjaU ovom ciklusu su aktivne samo Load, Store i instrukcije grananja.4.1 Pristup memorijiLDM Mem[ALUoutput] ; Load Data from Memory -

; privremeni registarMem[ALUoutput] B ; Store4.2. Grananje

if (cond)then PC ALUoutput

else PC NPC

Page 22: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

5 faza

WB - Write Back cycle5.1. Registarsko-registarska ALU instrukcija

Regs[IR16...20] ALUoutput

5.2. Registarsko-neposredna ALU instrukcijaRegs[IR11...15] ALUoutput

5.3. Load instrukcijaRegs[IR11...15] LDM

Page 23: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović
Page 24: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Broj ciklusa sataBroj instrukcije 1 2 3 4 5 6 7 8 9Instrukcija i IF ID EX MEM WBInstrukcija i+1 IF ID EX MEM WBInstrukcija i+2 IF ID EX MEM WBInstrukcija i+3 IF ID EX MEM WBInstrukcija i+4 IF ID EX MEM WB

Jednostavna DLX protočna struktura. Svakog ciklusa sata jedna instrukcija se dobavlja i počinje 5-ciklusno izvršenje. U tom slučaju performanse bi bile pet puta više od istog puta podataka bez protočnestrukture. Imena segmenata su ista kao na slici 3.1. IF=pribavljanje instrukcije, ID=dekodiranje instrukcije,EX=izvršenje, MEM=prostup memoriji i WB=upis nazad (u registre).

Page 25: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

P ro toč n a s tru k tu ra s e m o že p o s m a tra t i k a o n iz p u te v a p o d a ta k a k o j i p r ik a zu ju s ta n ja izv rše n jain stru k c ija u su sje d n im c ik lu s im a sa ta . P r ik a z a n o je p re k la p a n je m eđ u d ije lo v im a p u ta p o d a ta k a ,n a roč ito u c ik lu su 5 (C C 5 ) . K a k o se re g is t r i k o r is t e k a o iz v o r iš t e u E X -fa z i i o d re d iš t e u W B -fa z i, k o r is t ese d v a p u ta u is to m c ik lu su . Č it a n je je o z n ač e n o p u n o m lin ijo m n a l ije v o j a p isa n je n a d e s n o j s t r a n i.IM = m e m o r ija in s t ru k c ija , D M = m e m o r ija p o d ata k a , C C = c ik lu s sa ta .

Page 26: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Put podataka je pretvoren u protočnu struktu ru dodavanjem pregradnih-veznih registara izm eđusegm enata protočne stru kture. O ni prenose vrijednosti i upravljačke informacije od jednog do drugogsegmenta.

Page 27: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović
Page 28: R ačunarske arhitekture Predavanje 4:  Ogledna arhitektura  Oktobar 2003 Doc. dr Novica Nosović

Broj ciklusa sata

Broj instrukcije 1 2 3 4 5 6 7 8 9 Instrukcija i IF ID EX MEM WB Instrukcija i+1 IF ID EX MEM WB Instrukcija i+2 IF ID EX MEM WB Instrukcija i+3 IF ID EX MEM WB Instrukcija i+4 IF ID EX MEM WB

Jednostavna protočna struktura. Svakog ciklusa sata jedna instrukcija se dobavlja i počinje 5-ciklusno izvršenje. U tom slučaju performanse bi bile pet puta više od istog puta podataka bez protočne strukture. Imena segmenata su: IF=pribavljanje instrukcije, ID=dekodiranje instrukcije, EX=izvršenje, MEM=prostup memoriji i WB=upis nazad (u registre).