Leksioni III Arkitekture Kompjuteri_2013.pdf

download Leksioni III Arkitekture Kompjuteri_2013.pdf

of 75

Transcript of Leksioni III Arkitekture Kompjuteri_2013.pdf

  • 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%