organizimi i sistemit...

Post on 24-Sep-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Organizimi I sistemit

Kompjuterik

Leksioni II

Arkitektura e Setit te

Instruksioneve-1

Cfare eshte seti i instruksioneve?

• Koleksioni i instruksioneve qe kuptohen nga CPU

• Ne gjuhen makine

• Binare

• Zakonisht perfaqesohen nga kodet asembler

Elementet e nje instruksioni

• Kodi Operativ (Op code)

—Bej kete!

• Reference per operandet burim

—Me keto!

• Reference per operandin rezultat

—Vendos rezultatin ketu

• Referenca ndaj instruksionit pasardhes

—Mbasi perfundon kete bej kete...

Paraqitja e Instruksionit

• Ne gjuhen makine cdo instruksion ka nje kodifikim

te vetem binar

• Per ti ardhur ne ndihme programuesve perdoren

etiketat

—p.sh. ADD, SUB, LOAD

• Operandet gjithashtu mund te paraqiten ne kete

menyre

—ADD A,B

Formati i thjeshte i nje instruksioni

Numri i adresave(1)

• 3 adresa

—Operandi 1, Operandi 2, Rezultat

—a = b + c;

—Mund te kete nje te katert - instruksioni i ardhshem

—jo te zakonshme

Numri i adresave(2)

• 2 adresa

—Nje adrese sherben si operand edhe si rezultat

—a = a + b

—Redukton gjatesine e instruksionit

—Kerkon pak me shume pune

– Vendruajtje e perkohshme e informacionit

Numri i adresave(3)

• 1 adrese

—Implicite adresa tjeter

—Zakonisht nje regjister(akumulator)

—Perdorur ne makinat e hershme

Numri i adresave(4)

• 0 (zero) adresa

—Te gjithe adresat jane implicite

—Perdoret stiva

—p.sh. push a

— push b

— add

— pop c

—c = a + b

Sa adresa?

• Me shume adresa

—Instruksione me kompleks

—Me shume regjistra

—Me pak instruksione per program

• Me pak adresa

—Instruksione me pak kompleks

—Me shume instruksione per program

—Ekzekutim me i shpejte i instruksioneve

Vendime projektimi (1)

• Repertori i operacioneve

—Sa operacione?

—Cfare mund te bejne?

—Sa kompleks jane?

• Tipet e te dhenave

• Formati i instruksioneve

—Gjatesia e fushes se operimit

—Numri i adresave

Tipet e operandeve

• Adresa

• Numra

—te plote/floating point

• Karaktere

—ASCII etj.

• Te dhena llogjike

—Bite, flamuj

Ku ndodhen operandet?

• Memoria kryesore

• Regjistrat e CPU

• Paisjet I/O

Vendodhjet e memories dhe operacionet

• Memoria kryesore mund te modelohet si nje matrice me miliona

qeliza, secila e afte te ruaje ne ―binary digit” (bit), i cili merr vleren

1 ose 0.

• Keto qeliza jane organizuar ne formen e grupeve me numer fiks

bitesh

psh n, dhe me to mund te merresh si me nje njesi atomike.

Nje entitet qe konsiston ne 8 bite quhet byte.

•Entiteti qe konsiston ne n-bit dhe qe mund te terhiqet apo te

Shkruhet ne memorie duke perdorur nje operacion te thjeshte quhet

fjale (word) (the smallest addressable entity). Madhesia tipike e

nje fjale varion nga 16 ne 64 bite.

Vendodhjet e memories dhe operacionet

•Ne menyre qe te kemi mundesi te levizim nje fjale nga memoria

asaj duhet ti jepet nje adrese unike .

• Kjo adrese do te perdoret per te percaktuar vendodhjen ne

memorie ku do te ruhet nje fjale e caktuar . Ky quhet nje

operacion shkrimi ne memorie.

•Ne menyre te ngjashme adresa do te perdoret per te percaktuar

vendodhjen e memories nga ku do te lexohet nje fjale. Ky quhet

operacion leximi.

• Numri i biteve, l, qe duhen per te adresuar M

fjale ne memorie eshte: llog2 M .

Vendodhjet e memories dhe operacionet

•Nese numri i biteve ne adrese eshte l, atehere madhesia maksimale

e memories (ne termin e numrit te fjaleve te adresueshme)eshte M 2l .

Vendodhjet e memories dhe operacionet

•Gjate nje operacioni shkrimi te memories nje fjale ruhet ne adresen

e specifikuar te memories.

• Gjate nje operacioni leximi te memories nje fjale lexohet nga

nje vendndodhje e percaktuar ne adrese.

• Zakonisht operacionet e shkrim/lexim te memories kryen nga

njesia qendrore e perpunimit (CPU).

Vendodhjet e memories dhe operacionet

• Tre hapa nevojiten qe CPU te kryeje nje operacion shkrimi ne nje

vendndodhje te caktuar te memories:

– Fjala qe do te ruhet ne memorie fillimisht ngarkohet nga CPU ne nje regjister specifik te quajtur, memory data register (MDR).

– Adresa e vendndodhjes ne memorie ne te cilen fjala do te ruhet ngarkohet

nga CPU ne nje regjister specifik, te quajtur memory address register (MAR).

– Nje sinjal i quajtur shkrim(write), gjenerohet nga CPU duke treguar qe

fjala qe ruhet ne MDR do te transferohet ne adresen e memories qe

ndodhet ne MAR.

Vendodhjet e memories dhe operacionet

• Ky shembull ilustron operacionin e shkrimit te fjales

7E (ne hex) ne vendndodhjen e memories adresa e se ciles eshte

2005.

Vendodhjet e memories dhe operacionet

• Tre hapa nevojiten per te kryer nje operacion leximi ne memorie:

– Adresa e vendndodhjes nga ku do te lexohet fjala ngarkohet ne MAR.

– Nje sinjal lexim(read), gjenerohet nga CPU duke treguar qe fjala adresa

e se ciles eshte ne MAR, duhet te lexohet nga memoria dhe te ruhet ne MDR.

– Mbas njefare kohe qe i perket vonenses se memories per te lexuar nje fjale,

fjala e kerkuar do te ngarkohet nga memoria ne MDR gati per tu perdorur

nga CPU.

Vendodhjet e memories dhe operacionet

• Ky shembull tregon operacionin e leximit nga memoria ne

vendndodhjen adresa e se ciles eshte 2010.

Menyrat e adresimit

• Adresimi Imediat

– Vlera e operandit ndodhet brenda ne vet instruksion : LOAD #1000, Ri– Duhet te vihet re qe ne menyre qe te tregohet se vlera e specifikuar ne

instruksion eshte vlera e vete operandit dhe jo adresa,perdoret prefiksi perpara operandit (#).

– Perdorimi i adresimit imediat eshte nje praktike e dobet programimi.

Kjo ndodh sepse nje ndryshim ne vleren e operandit kerkon ndryshimin

e gjithe instruksioneve qe e perdorin ate.

Menyrat e adresimit

• Adresimi Direkt (Absolut)

– Adresa e vendndodhjes ne memorie e cila mban operandin percaktohet

ne instruksion : LOAD 1000, Ri

– Operandim burim eshte vlera qe ruhet ne vendndodhjen e memories adresa e se ciles eshte 1000, dhe destinacioni eshte regjister.

Menyrat e adresimit

• Adresimi Indirekt

– Cfare perfshihet ne instruksion nuk eshte adresa e operandit,

por emri i nje regjistri ose vendndodhje memorie

qe mban adresen e operandit(adresa efektive).

Menyrat e adresimit

•Adresimi Indirekt

– mund te identifikojme dy tipe adresimi indirekt:

• adresim indirekt me regjistra: nese nje regjister perdoret per te mbajtur adresen

e operandit. LOAD (R1), R2

• adresim indirekt me memorie: nese nje vendndodhje memorie perdoret per te

mbajtur adresen e operandit. LOAD (1000), R1

Menyrat e adresimit

• Adresimi Indirekt

Menyrat e adresimit

• Adresimi i Indeksuar

– Adresa e operandit merret duke mbledhur nje konstante me permbajtjen

e nje regjistri, qe quhet regjistri indeks(index register):

LOAD X(R1), R2

– Adresimi i indeksuar tregohet ne instruksion duke perdorur emrin e regjistrit

ne kllapa me nje konstante X e cila do te mblidhet me permbajtjen e regjistrit.

– Indeksimi kerkon nje nivel kompleksiteti me te larte sesa adresimi indirekt

me regjistra.

Menyrat e adresimit

•Adresimi i Indeksuar

Menyrat e adresimit

• Menyra te tjera

– Adresimi Relativ

• Adresimi relativ eshte i njejte me adresimin e indeksuarpor si regjister indeks perdoret program counter (PC) :

LOAD X(PC),Ri

Menyrat e adresimit

• Menyra te tjera

– Adresimi me Autoinkrement

• Kjo menyre adresimi eshte e ngjashme me adresimin indirekt me regjistra

ne kuptimin qe adresa efektive e nje operandi ndodhet ne permbajtjen e nje

regjistri , ta quajme regjistri i autoinkrement.

• Megjithate permbajtja e ketij regjistri inkrementohet mbasi aksesohet operandi:

LOAD (Rauto ), Ri

Menyrat e adresimit• Menyra te tjera

–Adresimi meAutoinkrement

Menyrat e adresimit

• Menyra te tjera

– Adresimi me Autodekrement

• Kjo menyre perdor nje regjister per te mbajtur adresen e operandit.

• Megjithate permbajtja e regjistrit te autodekrementimit, dekrementohet

fillimisht dhe pastaj perdoret permbajtja e re.

autoLOAD -(R ), Ri

Menyrat e adresimit

• Menyra te tjera

–Adresimi meAutodekrement

Menyrat e Adresimit

Fromati i ruajtjes se te dhenave

Tipet e Instruksioneve

• Transferimit te te dhenave

• Arithmetike

• Llogjike

• Konvertim

• I/O

• Kontrolli te sistemit

• Transferimi i kontrollit

Tipet e Instruksioneve

• Instruksione te Zhvendosjes se te Dhenave

– Keto instruksione perdoren per te zhvendosur te dhena ndermjet regjstrave

te ndryshem te CPU.

– Nje levizje e thjesht ndermjet regjistrave mund te behet nga instruksioni

MOVE Ri,Rj– Instruksionet e zhvendosjes se te dhenave perfshijne edhe ato instruksione

qe perdoren per te marre te dhena nga regjistrat per tek memoria ose anasjelltas.

– Keto instruksione quhen store, load respektivisht.

– Shembuj te ketyre instruksioneve jane:

• LOAD 25838, Rj

• STORE R ,1024

Instruksione te Zhvendosjes se te Dhenave

• Specifikohet

—Burimi

—Destinacioni

—Sasia e te dhenave

• Mund te kene instruksione te ndryshme per veprime

te ndryshme

—psh IBM 370

• Ose nje instruksion me adresa te ndryshme

—psh VAX

Operacion i Zhvendosjes Kuptimi

MOVE Zhvendos te dhena(fjale ose blloqe)nga nje

burim(regjister ose memorie) tek nje destinacion

LOAD Ngarkon te dhena nga memoria ne nje regjister

STORE Ruan te dhena nga nje regjister ne memorie

PUSH Ruan te dhena nga nje regjister ne nje stive

POP Terheq te dhena nga stiva ne nje regjister

Tipet e Instruksioneve

• Instruksione te Zhvendosjes se te Dhenave

Tipet e Instruksioneve

• Instruksione Arithmetike Llogjike– Keto instruksione perdoren per te kryer manipulime arithmetike dhe llogjike

mbi te dhenat qe ndodhen ne regjistra ose memorie.

– Shembuj instruksionesh arithmitike jane operacionet ADD dheSUBTRACT :

SUBTRACT R1 ,R2,R 0

– Per me teper disa makina kane instruksione MULTIPLY dhe DIVIDE.

– Keto instruksione jane te kushtueshem ne implementim dhe mund te

realizohen si sekuence mbledhjesh dhe zbritjesh.

ADD R1 ,R2 ,R0

Operacione arithmetike Kuptimi

ADD Kryen shumen arithmetike te dy operandeve

SUBTRACT Kryen diferencen arithmetike te dy operandeve

MULTIPLY Kryen shumezimin e dy operandeve

DIVIDE Kryen pjestimin e dy operandeve

INCREMENT Shton 1 ne permbajtjen e nje regjistri

DECREMENT Zbret 1 nga permbajtja e nje regjistri

Tipet e Instruksioneve

• Instruksione Arithmetike Llogjike :

Operacione

llogjike

Kuptimi

AND Kryen AND per dy operande

OR Kryen OR per dy operande

EXOR Kryen XOR per dy operande

NOT Kryen komplementin e nje operandi

COMPARE Kryen krahasimin e dy operandeve dhe vendos nje flamur

SHIFT Kryen zhvendosjen llogjike te permbajtjes se nje regjistri

ROTATE Kryen zhvendosjen llogjike me kthim te permbajtjes se nje regjistri

Tipet e Instruksioneve

• Instruksione Airithmetike Llogjike

Operacione shift dhe rotate

Tipet e Instruksioneve• Instruksionet e Sekuences

– Instruksionet e kontrollit(sekuences) ndryshojne rendin me te cilin

instruksionet e tjera do te ekzekutohen.

– Nje karakteristike e perbashket e ketyre instruksioneve eshte qe

ekzekutimi i tyre con ne ndryshimin e vlers se PC.

– Ndryshimi i vleres se PC mund te jete pa kushte, si ne instruksionet Jump.

• Vlera e meperparshme e PC humbet dhe ekzekutimi i programit fillon nga

vlera e re e PC.

– Ndryshimi i bere ne PC mund te jete me kusht bazuar ne vleren

specifike te nje flamuri.

• Flamujt jane bite ne nje regjister specifik qe perfaqesojne gjendje te caktuara,

ato ndodhen ne nje regjister qe quhet CONDITION CODE (CC) REGISTER.

• Vlerat e flamujve vendosen ne baze te rezultateve te ekzekutimit te instruksioneve te ndryshme.

Emri i

flamurit

Kuptimi

Negative(N) Vendoset ne 1 nese rezultati i veprimit te fundit eshte negativ

Zero(Z) Vendoset ne 1 nese rezultati i veprimit te fundit eshte zero

Overflow(V) Vendoset ne 1 nese rezultati i veprimit te fundit shkaktoi mbiderdhje

Carry(C) Vendoset ne 1 nese operacioni i fundit gjeneroi nje carry

Tipet e Instruksioneve

• Instruksionet e Sekuences

– Shembuj flamujsh kushti

Operacioni i transferimit Kuptimi

BRANCH-IF-CONDITION Transferon kontrollin ne nje adrese nese kushti eshte i

vertete

JUMP Transferim i kontrollit pa kushte

CALL Transferon kontrollin ne nje subrutine

RETURN Transferon kontrollin tek rutina thirrese

Tipet e Instruksioneve

• Instruksionet e Sekuences

– Disa operacione te transferimit te kontrollit

Instruksioni branch

Kontrolli i Sistemit

• Instruksione te privilegjuara

• CPU duhet te jete ne gjendjen supervizor

—Ring 0 ne 80386+

—Kernel mode

• Per perdorim nga SO

Tipet e Instruksioneve

• Instruksione I/O

– Keto instruksione perdoren per te transferuar te dhena midis

kompjuterit dhe paisjeve I/O.

– Dy instruksionet kryesore jane INPUT dhe OUTPUT.

– Per shembull: instruksioni INPUT perdoret per te tranferuar te dhena

nga paisja hyrese ne procesor.

Permbledhje

• U diskutuan disa nga problemet kryesore te setit te instruksioneve.

• U prezantua nje model i memories kryesore e cila shihet si

nje sekuence qelizash, ku secila mund te mbaj n bit.

• Disa menyra adresimi i prezantuan.

– Keto perfshijne adresimin: imediate, direkt, indirekt, te indeksuar,

me autoinkrement, dhe me autodekrement.

• Realizuam nje diskutim per tipet e ndryshme te instruksioneve,

te cilat perfshijne zhvendosje te te dhenave, arithmetike llogjike,

sekuences se intreuksioneve, dhe Input/Output.

FALEMINDERIT

top related