70
ARKITEKTURA E SETIT TE INSTRUKSIONEVE-2 Leksioni III

Leksioni III Arkitektura e Kompjuterave 2015 UPT

  • Upload
    enrik

  • View
    72

  • Download
    20

Embed Size (px)

DESCRIPTION

Computer science

Citation preview

Page 1: Leksioni III Arkitektura e Kompjuterave 2015 UPT

ARKITEKTURA E SETIT TE INSTRUKSIONEVE-2

Leksioni III

Page 2: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 3: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 4: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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).

Page 5: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 6: Leksioni III Arkitektura e Kompjuterave 2015 UPT

KRAHASIMI I PROCESOREVE

Page 7: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 8: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 9: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 10: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 11: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 12: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 13: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 14: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 15: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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!

Page 16: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 17: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 18: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 19: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 20: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 21: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 22: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 23: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 24: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 25: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 26: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 27: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 28: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 29: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 30: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 31: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 32: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 33: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 34: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 35: Leksioni III Arkitektura e Kompjuterave 2015 UPT

PERMBLEDHJE Principet e projektimit ne MIPS

1. Thjeshtesia favorizon rregullsine 2. Me te vegjel, me te shpejte 3. Nderto rastin e zakonshem te shpejte

Page 36: Leksioni III Arkitektura e Kompjuterave 2015 UPT

Fund i leksionit

Page 37: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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: …

Page 38: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 39: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 40: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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!

Page 41: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 42: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 43: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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)

Page 44: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 45: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 46: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 47: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 48: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 49: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 50: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 51: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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)

Page 52: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 53: Leksioni III Arkitektura e Kompjuterave 2015 UPT

PERMBLEDHJE E MENYRAVE TE ADRESIMIT

Page 54: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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()

Page 55: Leksioni III Arkitektura e Kompjuterave 2015 UPT

FILLIMI I APLIKACIONIT NE JAVA

Seti i Instruksioneve i

thjeshte per JVM

Interpreton bytecodet

Kompilon bytecodet e

metodave ne kod te

makines

Page 56: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 57: Leksioni III Arkitektura e Kompjuterave 2015 UPT

ENKODIMI I INSTRUKSIONEVE

Page 58: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 59: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 60: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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!

Page 61: Leksioni III Arkitektura e Kompjuterave 2015 UPT

REGJISTRAT X86

Page 62: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 63: Leksioni III Arkitektura e Kompjuterave 2015 UPT

X86 INSTRUCTION ENCODING Instruksionet me permasa

te ndryshme Byte Postfix specifikon

menyren e adresimit Byte Prefix modifikon

operacionin

Page 64: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 65: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 66: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 67: Leksioni III Arkitektura e Kompjuterave 2015 UPT

RISC NE KRAHASIM ME CISC Ska prerje me thike Shume dizenjues marrin nga te dyja filozofite Psh PowerPC dhe Pentium II

Page 68: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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

Page 69: Leksioni III Arkitektura e Kompjuterave 2015 UPT

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%

Page 70: Leksioni III Arkitektura e Kompjuterave 2015 UPT

LITERATURA Referencat ne faqen web Organizimi dhe arkitektura e kompjuterave,

Kapitulli 3