organizimi i sistemit...
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