8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
1/75
ARKITEKTURAESETITTE
INSTRUKSIONEVE-2
Leksioni III
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
2/75
SETIIINSTRUKSIONEVE
Repertori i instruksioneve te nje kompjuteri
Kompjutera te ndryshme kane sete te ndryshmeinstruksionesh
Por kane shume aspekte te perbashketa
Kompjuterat e hershem kishin seteinstruksionesh shume te thjeshta
Implementim i thjeshtezuar
Shume kompjutera moderne kane gjithashtu sete
instruksionesh te thjeshta
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
3/75
AVANTAZHETMETEMEDHANEKOMPJUTERA
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
4/75
AVANTAZHETMETEMEDHANEKOMPJUTERA
Solid State RAM
Mikroprocesoret
Intel 4004 1971
Pipelining Futja e paralelizmit ne ciklin e nxjerrjes dhe
ekzekutimit
Procesoret e shumefishte
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
5/75
HAPITJETER- RISC
Reduced Instruction Set Computer
Vecorite kryesore
Numer I madh I regjistrave me perdorim tepergjithshem
Ose perdorimi I teknologjise se kompilatoreve per
optimizimin e perdorimit te regjistrave
Sete instruksionesh te thjeshte dhe te limituar
Fokusim ne optimizimin e pipeline-ve te
instruksoneve
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
6/75
KRAHASIMII PROCESOREVE
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
7/75
FORCATFAVORIZUESETECISC
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
8/75
SETIIINSTRUKSIONEVEMIPS
Perdoret si shembull ne shume libra
Stanford MIPS eshte hedhur ne treg nga
MIPS Technologies (www.mips.com)
Perdorim te gjere ne tregun e sistemeveembedded
Aplikohet ne elektroniken per konsumatore,
paisjet e rrjetit dhe ruajtjes, kamerat,
printerat,
Perdorim tipik ne shume ISA moderne
http://www.mips.com/http://www.mips.com/8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
9/75
VEPRIMETARITMETIKE
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 Rregulli i pare i paraqitjes:Thjeshtesia favorizon
rregullsine
Rregullsia e ben me te thjeshte implementimin
Thjeshtesia ben te mundur te kemi performance mete larte me kosto me te ulet
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
10/75
SHEMBULLARITHMETIK
Kodi C :
f = (g + h) - (i + j);
Kodi perkates MIPS :
add t0, g, h # temp t0 = g + hadd t1, i, j # temp t1 = i + jsub f, t0, t1 # f = t0 - t1
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
11/75
OPERANDETEREGJISTRAVE
Instruksionet arithmetike perdorin operanderegjistrash
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
Rregulli i dyte i paraqitjes:Sa me i vogel aqme i shpejte cf. memoria kryesore: miliona vendndodhje
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
12/75
SHEMBULLMEOPERANDEREGJISTRASH
Kodi C:
f = (g + h) - (i + j); f, , j ne $s0, , $s4
Kodi perkates ne MIPS :add $t0, $s1, $s2add $t1, $s3, $s4sub $s0, $t0, $t1
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
13/75
OPERANDETEMEMORIES
Memoria kryesore perdoret per te dhena teperbera 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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
14/75
OPERANDETEMEMORIES: SHEBULLI1
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, $t0offset regjistri baze
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
15/75
OPERANDETEMEMORIES: SHEBULLI2
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 fjalesadd $t0, $s2, $t0
sw $t0, 48($s3) #ruajtja e fjales
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
16/75
REGJISTRATNEKRAHASIMMEMEMORIEN
Regjistrat jane me te shpejte per tu aksesuarsesa memoria
Veprimet mbi te dhenat ne memorie kerkojnengarkime dhe ruajtje
Ekzekutohen me shume instruksione Kompilatori duhet te perdore sa me shume
regjistra per variablat
I drejtohen memories vetem per variabla qe perdorenrralle
Optimizimi i regjistrave eshte i rendesishem!
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
17/75
OPERANDETEMENJEHERESHEM(IMEDIATE)
Te dhenat konstante specifikohen ne instruksion
addi $s3, $s3, 4
Nuk ka zbritje ne instruksionet e menjehershem
Perdoret konstante negativeaddi $s2, $s1, -1
Rregulli i 3 i projektimit: Shprehjet qe perdoren
shpesh behen me te shpejta
Konstantet e vogla jane me te zakonshme Operandet e menjehershem duhet te shmangin nje
instruksion ngarkimi
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
18/75
KONSTANTJAZERO
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
19/75
INTEGERATBINAREPASHENJE
Jepet nje numer me n-bit
0
0
1
1
2n
2n
1n
1n 2x2x2x2xx ++++=
Rangu: 0 ne +2n 1
Shembull 0000 0000 0000 0000 0000 0000 0000 10112
= 0 + + 123+ 022+121+120= 0 + + 8 + 0 + 2 + 1 = 1110
Duke perdorur 32 bite 0 deri +4,294,967,295
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
20/75
KOMPLEMENTII2-SHITNUMRATMESHENJE Jepet numri n-bit
0
0
1
1
2n
2n
1n
1n 2x2x2x2xx ++++=
Rangu : 2n 1ne +2n 1 1
Shembull 1111 1111 1111 1111 1111 1111 1111 11002
= 1231+ 1230+ + 122+021+020= 2,147,483,648 + 2,147,483,644 = 410
Duke perdorur 32 bite 2,147,483,648 to +2,147,483,647
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
21/75
KOMPLEMENTII2-SHITNUMRATMESHENJE
Biti i 31-te eshte biti i shenjes 1 per numrat negative
0 per numrat jo negative
(2n 1) nuk mund te paraqitetNumrat jo negative kane te njejten
paraqitje te numrit pa shenje dhe tekomplementit 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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
22/75
MOHIMIMESHENJE
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
23/75
ZGJATJAESHENJES
Paraqitja e numrave duke perdorur meshume 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 0Shembuj: 8-bit ne16-bit
+2: 0000 0010 => 0000 00000000 0010
2: 1111 1110 => 1111 11111111 1110
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
24/75
PARAQITJAEINSTRUKSIONEVE
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
25/75
FORMATI-RIINSTRUKSIONEVEMIPS
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 funct6 bits 6 bits5 bits 5 bits 5 bits 5 bits
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
26/75
FORMATIR 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 funct6 bite 6 bite5 bite 5 bite 5 bite 5 bite
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
27/75
HEXADECIMAL Baza 16
Perfaqesim me kompakt i stringave te biteve 4 bite per shifer hexadecimale
0 0000 4 0100 8 1000 c 11001 0001 5 0101 9 1001 d 1101
2 0010 6 0110 a 1010 e 1110
3 0011 7 0111 b 1011 f 1111
Shembull: eca8 6420 1110 1100 1010 1000 0110 0100 0010 0000
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
28/75
INSTRUKSIONETMIPS FORMATI-I
Instruksione arithmetike me immediate dheoperacione load/store rt: numri i regjistrit destinacion ose burim Konstante: 215deri +215 1
Adrese: offset qe i shtohet adreses baze ne rs
Principi 4 i projektimit:Projektimi i mire
kerkon kompromise Formate te ndryshme komplikojne dekodimin por
lejojne instruksione 32-bit.
Mbaj formatet sa me te ngjashem!
op rs rt konstante ose adrese6 bite 5 bite 5 bite 16 bite
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
29/75
KOMPJUTERAMEPROGRAMENEMEMORIE
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 tepunojne ne kompjutera te ndryshem.
ISA jane standartizuar
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
30/75
OPERACIONETLLOGJIKE
Instruksione per manipulimin e biteve
Operacioni C Java MIPS
Shift left >>>srl
Bitwise AND & & and, andi
Bitwise OR | | or, ori
Bitwise NOT ~ ~ nor
Te dobishme per te nxjerre apo per tefutur grupe bitesh nga nje fjale
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
31/75
OPERACIONISHIFT
shamt: sa pozicione duhen zhvendosur
Zhvendosje llogjike majtas
Zhvendos majtas dhe mbushe me bite 0 sllme ibite shumezon me 2i
Zhvendosje llogjike djathtas
Zhvendos djathtas dhe mbushe me bite 0
srlme ibite pjeston me 2i
(numra pa shenje)
op rs rt rd shamt funct
6 bite 6 bite5 bite 5 bite 5 bite 5 bite
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
32/75
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
33/75
OPERACIONETOR
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
34/75
OPERACIONETNOT
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: gjithmoneeshte zero
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
35/75
OPERACIONETEKUSHTEZUARA
Kerce ne nje instruksion te etiketuar nese nje kushteshte 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 etiketuarme L1
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
36/75
KOMPILIMIIIF
Kodi C:
if (i==j) f = g+h;else f = g-h;
f, g, ne $s0, $s1, Kodi perkates MIPS:
bne $s3, $s4, Elseadd $s0, $s1, $s2j Exit
Else: sub $s0, $s1, $s2Exit:
Asemblatori perllogarit adresen
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
37/75
KOMPILIMIICIKLEVE
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, $s6lw $t0, 0($t1)bne $t0, $s5, Exitaddi $s3, $s3, 1j Loop
Exit:
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
38/75
BLLOQETKRYESORE
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 identifikonblloqet kryesore per
optimizim Nje procesor i avancuar
mund te shpejtojeekzekutimin e blloqeve
kryesore
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
39/75
OPERACIONETETJERATEKUSHTEZUARA
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
40/75
PROJEKTIMIIINSTRUKSIONEVEBRANCH
Pse jo blt, bge, etj?
Hardware per
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
41/75
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
42/75
THIRRJAEPROCEDURES
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
43/75
PERDORIMIIREGJISTRAVE
$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)
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
44/75
INSTRUKSIONETETHERRITJESSE
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
45/75
TEDHENATETIPITKARAKTER
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
46/75
OPERACIONEMBIBYTE/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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
47/75
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
48/75
SHEMBULLIKOMPJIMITTENJESTRINGE
Kodi MIPS :strcpy:
addi $sp, $sp, -4 # rregullo stakun per 1sw $s0, 0($sp) # ruaj $s0add $s0, $zero, $zero # i = 0
L1: add $t1, $s0, $a1 # adresa e y[i] ne $t1lbu $t2, 0($t1) # $t2 = y[i]add $t3, $s0, $a0 # adresa e x[i] ne $t3sb $t2, 0($t3) # x[i] = y[i]beq $t2, $zero, L2 # dil nga cikli nese y[i] == 0addi $s0, $s0, 1 # i = i + 1j L1 # iterimi tjeter i ciklit
L2: lw $s0, 0($sp) # rikthe $s0 e ruajturaddi $sp, $sp, 4 # pop 1 nga stakujr $ra # dhe rikthehu
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
49/75
KONSTANTET32-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 0000lhi $s0, 61
0000 0000 0111 1101 0000 1001 0000 0000ori $s0, $s0, 2304
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
50/75
ADRESEIMIIKERCIMEVEBRANCH
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
51/75
ADRESIMIIJUMP
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 = PC3128: (adresa 4)
A
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
52/75
ADRESADESTINACIONSHEMBULL
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
53/75
PERMBLEDHJEEMENYRAVETEADRESIMIT
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
54/75
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
55/75
FILLIMIIAPLIKACIONITNEJAVA
Seti iInstruksioneve i
thjeshte per JVM
Interpretonbytecodet
Kompilonbytecodet e
metodave nekod te
makines
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
56/75
SHEMBULLC SORT
Procedura Swap
void swap(int v[], int k){int temp;temp = v[k];v[k] = v[k+1];v[k+1] = temp;
}
v ne $a0, k ne $a1, temp ne $t0
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
57/75
PROCEDURASWAP
swap: sll $t1, $a1, 2 # $t1 = k * 4
add $t1, $a0, $t1 # $t1 = v+(k*4)# (adresa e v[k])
lw $t0, 0($t1) # $t0 (temp) = v[k]
lw $t2, 4($t1) # $t2 = v[k+1]
sw $t2, 0($t1) # v[k] = $t2 (v[k+1])sw $t0, 4($t1) # v[k+1] = $t0 (temp)
jr $ra # kthehu tek rutina therritese
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
58/75
ARM & MIPS NGJASHMERITEARM: berthama per sistemet embedded
Grupi i instruksioneve i ngjashem me MIPS
ARM MIPS
Data e prezantimit 1985 1985
Madhesia e instruksioneve 32 bits 32 bitsHapsira 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 Memorymapped
Memorymapped
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
59/75
ENKODIMIIINSTRUKSIONEVE
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
60/75
ISA PERINTELX86
Evolucioni duke ruajtur kompatibilitetin 8080 (1974): 8-bit mikroprocesor
Akumulator, plus 3 cifte indeks-regjistra
8086 (1978): 16-bit zgjerim i 8080Complex instruction set (CISC)
8087 (1980): koprocesor per llogaritjet FPShton 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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
61/75
ISA PERINTELX86
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) dheregjistra te rinj
Pentium 4 (2001)Mikroarkitekture e re
U shtuan instruksione SSE2
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
62/75
ISA PERINTELX86
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 mekompatibilitet, konkurenca do ta bente!
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
63/75
REGJISTRAT X86
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
64/75
MENYRATKRYESORETEADRESIMITX86
Dy operande per instruksion
Burim/dest operand Operandi i dyte burim
Regjister Regjister
Regjister Imediate
Regjister Memorie
Memorie RegjisterMemorie 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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
65/75
X86 INSTRUCTIONENCODING
Instruksionet me permasa
te ndryshme Byte Postfix specifikon
menyren e adresimit
Byte Prefix modifikon
operacionin
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
66/75
IMPLEMENTIMII IA-32
Seti i instruksioneve kompleks e benimplementimin e veshtire
Hardware i perkthen instruksionet ne
mikrooperacione
Instruksione te thjeshte: 11 Instruksione komplekse: 1shume
Mikronjesia njesoj si RISC
Metode mjaft e mire provuar nga eksperienca
Performance e krahasueshme me RISC
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
67/75
PSECISC (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 shkurtrsimbolikisht
Me shume instruksione duan me shume opcod-e
Referuesit e regjistrave duan me pak bite
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
68/75
PSECISC (2)?
Programe me te shpejta?
Perdorimi I instruksioneve te thjeshta paragjykohet
Njesi kontrolli me komplekse
Ruajtja e kontrollerit te mikroprogrameve eshte me e
madhe Kshtu instruksione te thjeshta duan me shume kohe
qe te ekzekutohen
Eshte me se e qarte qe CISC eshte zgjidhja me epershtatshme
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
69/75
KARAKTERISTIKATRISC
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
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
70/75
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
71/75
OPTIMIZIME
Loop Unrolling Trupi I ciklit perserited disa here
Ekzekutim I ciklit pak here
Ul mbingarkesen e ciklit
Rrit parallelismin e instruksioneve
Permireson regjistrat, cache-ne e te dhenave apovendndodhjen e TLB
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
72/75
LOOPUNROLLINGDYHERE
SHEMBULL
do i=2, n-1a[i] = a[i] + a[i-1] * a[i+l]
end do
behet
do i=2, n-2, 2
a[i] = a[i] + a[i-1] * a[i+i]
a[i+l] = a[i+l] + a[i] * a[i+2]
end do
if (mod(n-2,2) = i) then
a[n-1] = a[n-1] + a[n-2] * a[n]
end if
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
73/75
POLEMIKA
Sasiore Krahasimi I madhesise se programit dhe shpejtesise
se ekzekutimit
Cilesore
Ekzaminohen ceshtje te nivelit te larte te suportit tegjuheve dhe perdorimit te VLSI
Probleme
Ska cifte RISC apo CISC qe te krahasohen direkt
Ska sete te mirepercaktuara programesh test
Veshtiresi nendarjen mes efekteve hardware dheatyre te kompilatorit
Shumica e krahasimeve behen mbi lodra dhe jo nemakina prodhimi
Shumica e keshillave komerciale jane te perziera
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
74/75
PERFUNDIME
Principet e projektimit1.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
P
8/14/2019 Leksioni III Arkitekture Kompjuteri_2013.pdf
75/75
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%
Recommended