leksioni iii arkitektura e kompjuterave 2015 upt
DESCRIPTION
Computer scienceTRANSCRIPT
ARKITEKTURA E SETIT TE INSTRUKSIONEVE-2
Leksioni III
SETI I INSTRUKSIONEVE Repertori i instruksioneve te nje kompjuteri Kompjutera te ndryshme kane sete te ndryshme
instruksionesh Por kane shume aspekte te perbashketa
Kompjuterat e hershem kishin sete instruksionesh shume te thjeshta Implementim i thjeshtezuar
Shume kompjutera moderne kane gjithashtu sete instruksionesh te thjeshta
AVANTAZHET ME TE MEDHA NE KOMPJUTERA
Konceptimi I familjeve IBM System/360 1964 DEC PDP-8 Ndarja e arkitektures nga implementimi
Njesia e kontrollit e mikroprogamuar Ideja nga Wilkes 1951 Prodhuar nga IBM S/360 1964
Memoria cache IBM S/360 modeli 85 1969
HAPI TJETER - RISC Reduced Instruction Set Computer
Vecorite kryesore
Numer i madh i regjistrave me perdorim te pergjithshem.
Perdorimi i teknologjise se kompilatoreve per optimizimin e perdorimit te regjistrave.
Sete instruksionesh te thjeshte dhe te limituar. Fokusi ne shfrytezimin e teknikave te avancuara te
ekzekutimit te instruksioneve (pipeline).
FORCAT FAVORIZUESE TE CISC Kostot Software i tejkalojne ato Hardware. Gjuhe te niveleve te komplesitetit te larte
gjithnje ne rritje ne numer . Boshlleku semantik. Con ne:
Sete instruksionesh te medha. Me shume menyra adresimi. Implemntime ne hardware te shprehjeve HLL.
psh. CASE (switch) neVAX
KRAHASIMI I PROCESOREVE
SETI I INSTRUKSIONEVE MIPS
Perdoret si shembull ne shume libra Stanford MIPS eshte hedhur ne treg nga
MIPS Technologies (www.mips.com) Perdorim te gjere ne tregun e sistemeve
embedded Aplikohet ne elektroniken per konsumatore,
paisjet e rrjetit dhe ruajtjes, kamerat, printerat, …
Perdorim tipik ne shume ISA moderne
NDERTIMI I ARKITEKTURES- VEPRIMET ARITMETIKE
Mbledhja dhe zbritja, tre operatore Dy burime dhe nje destinacion
add a, b, c # a merr b + c
Te gjithe veprimet aritmetike kane kete forme
SHEMBULL ARITHMETIK Kodi C :
f = (g + h) - (i + j);
Kodi perkates MIPS :
add t0, g, h # temp t0 = g + h add t1, i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1
OPERANDET E REGJISTRAVE Instruksionet arithmetike perdorin
operande regjistrash MIPS ka nje file regjistrash me permasa
32 × 32-bit Perdoret per te dhenat qe perdoren shpesh Numerohen nga 0 deri 31 Te dhenat 32-bit quhen “fjale” (word)
Emertimet ne assembler $t0, $t1, …, $t9 per vlerat e perkoheshme $s0, $s1, …, $s7 per variablat e ruajtur
SHEMBULL ME OPERANDE REGJISTRASH Kodi C: f = (g + h) - (i + j);
f, …, j ne $s0, …, $s4 Kodi perkates ne MIPS : add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1
OPERANDET E MEMORIES
Memoria kryesore perdoret per te dhena te perbera Matricat, strukturat, te dhenat dinamike
Kryerja e veprimeve arithmetike Ngarkimi i vlerave nga memoria ne regjistra Ruajtja e rezultatit nga regjistrat ne memorje
Memorja adresohet me byte Cdo adrese identifikon nje byte (8-bit)
Fjalet jane te lidhura ne memorje Adresat duhet te jene shumefishe te 4
MIPS eshte Big Endian Byti me me peshe ndodhet ne adresen me te vogel
te nje fjale cf. Little Endian: Byti me me pak peshe ndodhet ne
adresen me te vogel
OPERANDET E MEMORIES: SHEBULLI 1
Kodi C: g = h + A[8];
g ne $s1, h ne $s2, adresa baze e A ne $s3 Kodi perkates MIPS:
Index-i 8 kerkon offset prej 32 4 byte per fjale
lw $t0, 32($s3) # ngarkimi i fjales
add $s1, $s2, $t0
offset regjistri baze
OPERANDET E MEMORIES: SHEBULLI 2 Kodi C: A[12] = h + A[8];
h ne $s2, adresa baze e A ne $s3 Kodi perkates MIPS:
Index 8 kerkon offset 32 lw $t0, 32($s3) # ngarkimi i fjales
add $t0, $s2, $t0 sw $t0, 48($s3) # ruajtja e fjales
REGJISTRAT NE KRAHASIM ME MEMORIEN Regjistrat jane me te shpejte per tu aksesuar
sesa memoria Veprimet mbi te dhenat ne memorie kerkojne
ngarkime dhe ruajtje Ekzekutohen me shume instruksione
Kompilatori duhet te perdore sa me shume regjistra per variablat I drejtohen memories vetem per variabla qe perdoren
rralle Optimizimi i regjistrave eshte i rendesishem!
OPERANDET E MENJEHERESHEM(IMEDIATE) Te dhenat konstante specifikohen ne instruksion addi $s3, $s3, 4
Nuk ka zbritje ne instruksionet e menjehershem Perdoret konstante negative addi $s2, $s1, -1
KONSTANTJA ZERO Regjistri MIPS: 0 ($zero) perfaqeson konstanten 0
Nuk mund te mbishkruhet I perdorshem per veprime te zakonshme
P.sh., levizja ndermjet regjistrave add $t2, $s1, $zero
INTEGERAT BINARE PA SHENJE Jepet nje numer me n-bit
00
11
2n2n
1n1n 2x2x2x2xx ++++= −
−−
−
Rangu: 0 ne +2n – 1 Shembull
0000 0000 0000 0000 0000 0000 0000 10112 = 0 + … + 1×23 + 0×22 +1×21 +1×20 = 0 + … + 8 + 0 + 2 + 1 = 1110
Duke perdorur 32 bite 0 deri +4,294,967,295
KOMPLEMENTI I 2-SHIT NUMRAT ME SHENJE Jepet numri n-bit
00
11
2n2n
1n1n 2x2x2x2xx ++++−= −
−−
−
Rangu : –2n – 1 ne +2n – 1 – 1 Shembull
1111 1111 1111 1111 1111 1111 1111 11002 = –1×231 + 1×230 + … + 1×22 +0×21 +0×20 = –2,147,483,648 + 2,147,483,644 = –410
Duke perdorur 32 bite –2,147,483,648 to +2,147,483,647
KOMPLEMENTI I 2-SHIT NUMRAT ME SHENJE
Biti i 31-te eshte biti i shenjes 1 per numrat negative 0 per numrat jo negative
–(–2n – 1) nuk mund te paraqitet Numrat jo negative kane te njejten
paraqitje te numrit pa shenje dhe te komplementit te 2-shit
Disa numra specifike 0: 0000 0000 … 0000 –1: 1111 1111 … 1111 Me shume negativ: 1000 0000 … 0000 Me shume pozitiv: 0111 1111 … 1111
MOHIMI ME SHENJE Komplementi dhe shuma me 1
Komplementi eshte 1 → 0, 0 → 1
x1x
11111...111xx 2
−=+
−==+
Shembull: mohimi i +2 +2 = 0000 0000 … 00102 –2 = 1111 1111 … 11012 + 1
= 1111 1111 … 11102
ZGJATJA E SHENJES Paraqitja e numrave duke perdorur me
shume bite Ruajta e vleres numerike
Ne setin e instruksioneve MIPS addi: zgjat vleren e operandit imediate lb, lh: zgjat byte/gjysmefjalen e ngarkuar beq, bne: zgjat zhvendosjen
Shumefishimi i bitit te shenjes ne te majte cf. vlerat pa shenje: zgjaten me 0
Shembuj: 8-bit ne16-bit +2: 0000 0010 => 0000 0000 0000 0010 –2: 1111 1110 => 1111 1111 1111 1110
PARAQITJA E INSTRUKSIONEVE
Instruksionet kodohen ne numra binare Quhet kod makine
Instruksionet MIPS Enkodohet si fjale instruksionesh 32-bit Pak formatet te ndryshem enkodimi per kodet
e operimit (opcode), numrin e regjistrave,… Regullsi!
Regjistrat $t0 – $t7 jane regjistrat 8 – 15 $t8 – $t9 jane regjistrat 24 – 25 $s0 – $s7 jane regjistrat 16 – 23
FORMATI-R I INSTRUKSIONEVE MIPS
Fushat e Instruksionit op: kodi operativ (opcode) rs: numri i regjistrit te pare burim rt: numri i regjistrit te dyte burim rd: numri i regjistrit destinacion shamt: madhesia e zhvendosjes (00000 per kete tip) funct: kodi i funksionit (zgjeron opcode-in)
op rs rt rd shamt funct 6 bits 6 bits 5 bits 5 bits 5 bits 5 bits
FORMATI –R SHEMBULL
add $t0, $s1, $s2
speciale $s1 $s2 $t0 0 add
0 17 18 8 0 32
000000 10001 10010 01000 00000 100000
000000100011001001000000001000002 = 0232402016
op rs rt rd shamt funct 6 bite 6 bite 5 bite 5 bite 5 bite 5 bite
INSTRUKSIONET MIPS FORMATI-I
Instruksione arithmetike me immediate dhe operacione load/store rt: numri i regjistrit destinacion ose burim Konstante: –215 deri +215 – 1 Adrese: offset qe i shtohet adreses baze ne rs
op rs rt konstante ose adrese 6 bite 5 bite 5 bite 16 bite
KOMPJUTERA ME PROGRAME NE MEMORIE
Instruksionet perfaqesohen ne binar si te dhenat.
Instruksionet dhe te dhenat ruhen ne memorie.
Programet mund te veprojne mbi programe p.sh. kompilatoret, linkerat, …
Kompatibiliteti binar lejon qe programet te punojne ne kompjutera te ndryshem. ISA jane standartizuar
OPERACIONET LLOGJIKE
Instruksione per manipulimin e biteve
Operacioni C Java MIPS Shift left << << sll
Shift right >> >>> srl
Bitwise AND & & and, andi
Bitwise OR | | or, ori
Bitwise NOT ~ ~ nor
Te dobishme per te nxjerre apo per te futur grupe bitesh nga nje fjale
OPERACIONI SHIFT
shamt: sa pozicione duhen zhvendosur Zhvendosje llogjike majtas
Zhvendos majtas dhe mbushe me bite 0 sll me i bite shumezon me 2i
Zhvendosje llogjike djathtas Zhvendos djathtas dhe mbushe me bite 0 srl me i bite pjeston me 2i (numra pa shenje)
op rs rt rd shamt funct 6 bite 6 bite 5 bite 5 bite 5 bite 5 bite
OPERACIONET AND
Te dobishme per te marre bitet ne nje fjale Selekto disa bite, ktheji te tjeret ne 0
and $t0, $t1, $t2
0000 0000 0000 0000 0000 1101 1100 0000
0000 0000 0000 0000 0011 1100 0000 0000
$t2
$t1
0000 0000 0000 0000 0000 1100 0000 0000 $t0
OPERACIONET OR
Te dobishme per te perfshire disa bite ne nje fjale Vendos disa bite ne 1, leri te tjeret te paprekur
or $t0, $t1, $t2
0000 0000 0000 0000 0000 1101 1100 0000
0000 0000 0000 0000 0011 1100 0000 0000
$t2
$t1
0000 0000 0000 0000 0011 1101 1100 0000 $t0
OPERACIONET NOT
Te dobishme per te invertuar bitet ne nje fjale Ndrysho 0 ne 1, dhe 1 ne 0
MIPS ka instruksion NOR me 3-operande a NOR b == NOT ( a OR b )
nor $t0, $t1, $zero
0000 0000 0000 0000 0011 1100 0000 0000 $t1
1111 1111 1111 1111 1100 0011 1111 1111 $t0
Regjistri 0: gjithmone eshte zero
OPERACIONET E KUSHTEZUARA Kerce ne nje instruksion te etiketuar nese nje kusht
eshte i vertete Perndryshe vazhdo ekzekutimin sekuencial
beq rs, rt, L1 if (rs == rt) kerce tek instruksioni qe eshte etiketuar me L1;
bne rs, rt, L1 if (rs != rt) kerce tek instruksioni qe eshte etiketuar me L1;
j L1 kercim i pakushtezuar tek instruksioni qe eshte etiketuar
me L1
KOMPILIMI I IF
Kodi C:
if (i==j) f = g+h; else f = g-h;
f, g, … ne $s0, $s1, … Kodi perkates MIPS:
bne $s3, $s4, Else add $s0, $s1, $s2 j Exit Else: sub $s0, $s1, $s2 Exit: …
Asemblatori perllogarit adresen
PERMBLEDHJE Principet e projektimit ne MIPS
1. Thjeshtesia favorizon rregullsine 2. Me te vegjel, me te shpejte 3. Nderto rastin e zakonshem te shpejte
Fund i leksionit
KOMPILIMI I CIKLEVE Kodi C: while (save[i] == k) i += 1;
i ne $s3, k ne $s5, adresa e vektorit save ne $s6 Kodi perkates MIPS: Loop: sll $t1, $s3, 2 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, 1 j Loop Exit: …
BLLOQET KRYESORE Nje bllok kryesor eshte nje sekuence instruksionesh
me Mungese kercimi ne brendesi (pervecse ne fund) Nuk permban instruksion qe eshte destinacion i nje kercimi
(pervecse ne fillim)
Kompilatori identifikon blloqet kryesore per optimizim
Nje procesor i avancuar mund te shpejtoje ekzekutimin e blloqeve kryesore
OPERACIONE TE TJERA TE KUSHTEZUARA Vendos rezultatin ne 1 nese nje kusht eshte i
vertete Perndryshe vendose ne 0
slt rd, rs, rt
if (rs < rt) rd = 1; else rd = 0; slti rt, rs, kostante
if (rs < kostante) rt = 1; else rt = 0; Perdoren ne kombinim me beq, bne
slt $t0, $s1, $s2 # if ($s1 < $s2) bne $t0, $zero, L # kerce ne L
PROJEKTIMI I INSTRUKSIONEVE BRANCH Pse jo blt, bge, etj? Hardware per <, ≥, … me i ngadalte sesa =, ≠
Te kombinuara me kercim kerkojne me shume pune per instruksion, duke cuar ne nje clock me te ngadalte
Te gjithe instruksionet penalizohen! beq dhe bne jane rasti me i zakonshem Gjithmone eshte nje kompromis i mire
shpejtimi i rastit me te zakonshem!
ME SHENJE DHE PA SHENJE Krahasimi me shenje: slt, slti Krahasimi pa shenje: sltu, sltui Shembull
$s0 = 1111 1111 1111 1111 1111 1111 1111 1111 $s1 = 0000 0000 0000 0000 0000 0000 0000 0001 slt $t0, $s0, $s1 # me shenje
–1 < +1 ⇒ $t0 = 1 sltu $t0, $s0, $s1 # pa shenje
+4,294,967,295 > +1 ⇒ $t0 = 0
THIRRJA E PROCEDURES Hapat e nevojshem
1. Vendos parametrat ne regjistra 2. Transfero kontrollin tek procedura 3. Krijo hapsire per proceduren 4. Kryej operacionet e procedures 5. Vendos rezultatin ne regjister per thirresin 6. Kthehu ne vendin e therritjes
PERDORIMI I REGJISTRAVE $a0 – $a3: per argumentet (regj. 4 – 7) $v0, $v1: rezultatet (regj. 2 dhe 3) $t0 – $t9: te perkohshem
Mund te mbishkruhen nga i therrituri $s0 – $s7: ruhen te dhenat
Mund te ruhen dhe te rikthehen nga i therrituri $gp: pointeri global per te dhena statike (regj 28) $sp: pointeri ne stack (regj 29) $fp: pointeri ne frame (regj 30) $ra: regjistri qe mban adresen e kthimit(regj 31)
INSTRUKSIONET E THERRITJES SE PROCEDURES Therritja e procedures: jump and link jal EtiketeEProcedures
Adresa e instruksionit pasardhes vendoset ne $ra Kercehet ne adresen destinacion
Kthimi nga procedura: jump register jr $ra
Kopjon $ra ne PC
TE DHENA TE TIPIT KARAKTER Grupi i karaktereve me madhesi 1-byte
ASCII: 128 karaktere 95 grafike, 33 kontrolli
Latin-1: 256 karaktere ASCII, +96 karaktere te tjere grafike
Unicode: grup karakteresh me 32-bit Perdoret ne Java, C++, … Shumicen e alfabeteve te botes, plus simbole UTF-8, UTF-16: enkodime me gjate te ndryshme
OPERACIONE MBI BYTE/HALFWORD Mund te perdorim operacionet e veprimit mbi byte Instruksione MIPS load/store mbi byte/halfword
Ne rastin me te zakonshem eshte perpunimi i stringave lb rt, offset(rs) lh rt, offset(rs)
Zgjerimi i shenjes me 32-bit ne rt lbu rt, offset(rs) lhu rt, offset(rs)
Zgjerimi i zeros me 32-bit ne rt sb rt, offset(rs) sh rt, offset(rs)
Ruaj pjesen me ne te djathte byte/halfword
SHEMBULL I KOMPJIMIT TE NJE STRINGE Kodi C :
Stringa e perfunduar me null void strcpy (char x[], char y[]) { int i; i = 0; while ((x[i]=y[i])!='\0') i += 1; } Adresa e x, y ne $a0, $a1 i ne $s0
SHEMBULL I KOMPJIMIT TE NJE STRINGE
Kodi MIPS : strcpy: addi $sp, $sp, -4 # rregullo stakun per 1 sw $s0, 0($sp) # ruaj $s0 add $s0, $zero, $zero # i = 0 L1: add $t1, $s0, $a1 # adresa e y[i] ne $t1 lbu $t2, 0($t1) # $t2 = y[i] add $t3, $s0, $a0 # adresa e x[i] ne $t3 sb $t2, 0($t3) # x[i] = y[i] beq $t2, $zero, L2 # dil nga cikli nese y[i] == 0 addi $s0, $s0, 1 # i = i + 1 j L1 # iterimi tjeter i ciklit L2: lw $s0, 0($sp) # rikthe $s0 e ruajtur addi $sp, $sp, 4 # pop 1 nga staku jr $ra # dhe rikthehu
KONSTANTET 32-BIT
Shumica e konstanteve jane numra te vegjel 16-bit imediat mjafton
Per konstantet me 32-bit kemi lui rt, constant
Kopjon konstanten 16-bit ne 16-bitet e majte te rt Bitet e tjera i con ne zero
0000 0000 0111 1101 0000 0000 0000 0000 lhi $s0, 61
0000 0000 0111 1101 0000 1001 0000 0000 ori $s0, $s0, 2304
ADRESEIMI I KERCIMEVE BRANCH Instruksionet branch specifikojne
Opkodin, dy regjistra, adresen destinacion Shumica e destinacioneve te kercimit jane afer
Perpara ose mbrapa
op rs rt konstante ose adrese 6 bite 5 bite 5 bite 16 bite
Adresim PC-relativ Adresa destinacion = PC + offset × 4 PC eshte inkrementuar me perpara me 4
ADRESIMI I JUMP Jump (j) – destinacioni mund te jete kudo
Vendos adresen e plote ne instruksion
op adrese 6 bits 26 bits
Adresimi direkt ne jump Adresa destinacion = PC31…28 : (adresa × 4)
ADRESA DESTINACION SHEMBULL
Shembull i nje cikli Marrim parasysh qe cikli eshte ne adresen 80000
Loop: sll $t1, $s3, 2 80000 0 0 19 9 4 0
add $t1, $t1, $s6 80004 0 9 22 9 0 32
lw $t0, 0($t1) 80008 35 9 8 0
bne $t0, $s5, Exit 80012 5 8 21 2
addi $s3, $s3, 1 80016 8 19 19 1
j Loop 80020 2 20000
Exit: … 80024
PERMBLEDHJE E MENYRAVE TE ADRESIMIT
NGARKIMI I NJE PROGRAMI Ngarkimi nje file imazh nga disku ne memorie
1. Lexo headerin per te percaktuar madhesite e segmenteve
2. Krijo hapsiren e adresimit 3. Kopjo tekstin dhe te dhenat ne memorie 4. Vendos argumentat ne stack 5. Inicializo regjistrat ($sp, $fp, $gp) 6. Kerce tek rutina fillestare
Kopjo argumentat ne $a0, … dhe thirr main() Kur main() perfundon ekzekuto thirrjen e sistemit exit()
FILLIMI I APLIKACIONIT NE JAVA
Seti i Instruksioneve i
thjeshte per JVM
Interpreton bytecodet
Kompilon bytecodet e
metodave ne kod te
makines
ARM & MIPS NGJASHMERITE ARM: berthama per sistemet embedded Grupi i instruksioneve i ngjashem me MIPS
ARM MIPS Data e prezantimit 1985 1985 Madhesia e instruksioneve 32 bits 32 bits Hapsira e adresimit 32-bit flat 32-bit flat Data alignment Aligned Aligned Menyra e adresimit 9 3 Regjistrat 15 × 32-bit 31 × 32-bit Input/output Memory
mapped Memory mapped
ENKODIMI I INSTRUKSIONEVE
ISA PER INTEL X86 Evolucioni duke ruajtur kompatibilitetin
8080 (1974): 8-bit mikroprocesor Akumulator, plus 3 cifte indeks-regjistra
8086 (1978): 16-bit zgjerim i 8080 Complex instruction set (CISC)
8087 (1980): koprocesor per llogaritjet FP Shton nstruksionet FP dhe stakun e regjistrave
80286 (1982): 24-bit adresa Mbrojtja e memories nepermjet segmentimit
80386 (1985): 32-bit zgjerim (tani IA-32) Menyra te tjera adresimi dhe operacione Perdorimi i faqosjes se memories dhe segmentimit
ISA PER INTEL X86 Me tej…
i486 (1989): pipeline, cache dhe FPU konkurenca: AMD, Cyrix, …
Pentium (1993): superskalar, 64-bit datapath Instruksionet MMX (Multi-Media eXtension) Problem ne njesine e pjestimit
Pentium Pro (1995), Pentium II (1997) Mikroarkitektura te reja (Colwell)
Pentium III (1999) Instruksionet SSE (Streaming SIMD Extensions) dhe
regjistra te rinj Pentium 4 (2001)
Mikroarkitekture e re U shtuan instruksione SSE2
ISA PER INTEL X86 Me tej…
AMD64 (2003): zgjeroi arkitekturen ne 64 bite EM64T – Extended Memory 64 Technology
(2004) AMD64 e adoptuar nga Intel (me permiresim) U shtuan instruksionet SSE3
Intel Core (2006) U shtuan instruksionet SSE4
AMD64 (2007): Instruksionet SSE5 Inteli refuzoi te ndiqte, por…
Advanced Vector Extension (2008) Regjistra SSE me te gjate, me shume instruksione
Nese Inteli nuk do te zgjeronte me kompatibilitet, konkurenca do ta bente!
REGJISTRAT X86
MENYRAT KRYESORE TE ADRESIMIT X86 Dy operande per instruksion
Burim/dest operand Operandi i dyte burim Regjister Regjister Regjister Imediate Regjister Memorie Memorie Regjister Memorie Imediate
Menyrat e adresimit te memories Adresa ne regjister Adresa = Rbase + zhvendosje Adresa = Rbase + 2shkalla × Rindeks (shkalla = 0, 1, 2, ose 3) Address = Rbase + 2shkalla × Rindeks + zhvendosje
X86 INSTRUCTION ENCODING Instruksionet me permasa
te ndryshme Byte Postfix specifikon
menyren e adresimit Byte Prefix modifikon
operacionin
IMPLEMENTIMI I IA-32 Seti i instruksioneve kompleks e ben
implementimin e veshtire Hardware i perkthen instruksionet ne
mikrooperacione Instruksione te thjeshte: 1–1 Instruksione komplekse: 1–shume
Mikronjesia njesoj si RISC Metode mjaft e mire provuar nga eksperienca
Performance e krahasueshme me RISC
PSE CISC (1)? Thjeshtezim kompilatori?
E kontestuar … Instruksionet komplekse te makines veshtire
shfrytezohen Optimizimi eshte me I veshtire
Programe me te vogla? Programet harxhojneme pak memorie por… Memoria eshte e lire tani Mund te mos zere shume bite por duket me I
shkurtuar simbolikisht Me shume instruksione duan me shume opcod-e Referuesit e regjistrave duan me pak bite
KARAKTERISTIKAT RISC Nje instruksion per cikel Veprime me regjistra Disa menyra te thjeshta adresimi memorieje Pak formate, te thjeshta instruksionesh Ndertim Hardwired (pa mikrokod) Format I percaktuar instruksionesh Me shume konsum kohe gjate kompilimit
RISC NE KRAHASIM ME CISC Ska prerje me thike Shume dizenjues marrin nga te dyja filozofite Psh PowerPC dhe Pentium II
PERFUNDIME Principet e projektimit
1. Thjeshtesia favorizon rregullsine 2. Me te vegjel, me te shpejte 3. Nderto rastin e zakonshem te shpejte
Shtresat e software/hardware Compiler, assembler, hardware
MIPS: rasti tipik i ISA-s RISC c.f. x86
PERFUNDIME Matja e ekzekutimit te instruksioneve MIPS ne
benchmarke Rasti me i shpeshte behet me i shpejte Kompromiset e ndryshme
Instruction class MIPS examples SPEC2006 Int SPEC2006 FP Arithmetic add, sub, addi 16% 48%
Data transfer lw, sw, lb, lbu, lh, lhu, sb, lui
35% 36%
Logical and, or, nor, andi, ori, sll, srl
12% 4%
Cond. Branch beq, bne, slt, slti, sltiu
34% 8%
Jump j, jr, jal 2% 0%
LITERATURA Referencat ne faqen web Organizimi dhe arkitektura e kompjuterave,
Kapitulli 3