Transcript File

4. Memoria Kesh (Cache)
• Memorie për ruajtjen e të dhënave të
shfrytëzuara më shpesh.
• E vendosur në CPU.
• Ndërmjetëse në mes të CPU-së dhe
memories kryesore.
Karakteristikat e Memories Cash
•
•
•
•
•
•
•
•
Lokacioni
Kapaciteti
Njësia e transferit
Metoda e qasjes
Performasa
Tipi fizik
Karakteristikat fizike
Organizimi.
Lokacioni
• CPU
• I brendshëm
• I jashtëm
Kapaciteti
• Madhësia e fjalës
—Njesia natyrale e organizimit
• Numri i fjalëve
— Ose bytëve
Njësia e transferit
• I brendshëm
—Zakonisht i definuar nga gjërësia e busit të të
dhënave
• I jashtëm
—Zakonisht bllok që është shumë më i madh se
fjala
• Njësia e adresueshme
—Lokacioni më i vogël që mund të adresohet në
mënyrë unike.
Metodat e qasjes (1)
• Sekuenciale
— Nis nga fillimi dhe lexo me rradhë
— Koha e qasjes varet nga lokacioni i të
dhënave dhe lokacioni paraprak
— P.sh. Shiritat magnetik
• Direkte
— Blloqet individuale kanë adresë unike
— Qasja është me kërcim në afërsi plus kërkimi
sekuencial
—Koha e qasjes varet nga lokacioni i të dhënave
dhe lokacioni paraprak
—P.sh. Disku.
Metodat e qasjes (2)
• E rastësishme (random)
—Adresat individuale saktësisht indentifikojnë
lokacionet
—Koha e qasjes nuk varet nga lokacioni i të
dhënave dhe lokacioni paraprak
—P.sh. RAM
• Asociative
—Të dhënat gjenden përmes krahasimit me
përmbajtjen e një pjese të të dhënave tjera
—Koha e qasjes nuk varet nga lokacioni i të
dhënave dhe lokacioni paraprak
—P.sh. Cache.
Hierarkia e memories
• Regjistrat
—Në CPU
• Memoria interne ose kryesore
—Mund të përfshijë një ose më shumë nivele të
cache-it
—“RAM”.
• Memoria e jashtme
—Backing store.
Diagrami i hierarkisë së memories
Performansat e memories
• Koha e qasjes së memories
— Koha ndërmjet paraqitjes së adresës dhe
marrjes së të dhënave valide
• Koha e ciklit të memories
— Mund të jetë e nevojshme një kohë për
“rikuperimin” e memories para qasjes së
rradhës
— Koha e ciklit të memories është koha e qasjes
+ koha e “rikuperimit”.
• Shpejtësia e transferit (Transfer Rate)
—Shpejtësia me të cilën të dhënat mund të
barten.
Tipet fizike të memories
• Gjysëmpërçuese
— RAM
• Magnetike
— Disku & Shiriti
• Optike
— CD & DVD
• Tjera
— Bubble
— Hologram.
Karakteristikat fizike të memories
• Dekompozimi (Decay)
• Ndryshueshmëria (volatility)
• Fshishmëria (erasability)
• Shpenzimi i energjisë.
Organizimi i memories
• Aranzhimi fizik i bitave në fjalë
• Nuk është gjithmonë i qartë
• P.sh. I ndërfutur (interleaved).
Përfundimi
• Sa?
— Kapaciteti
• Sa e shpejtë?
—Time is money
• Sa e shtrenjtë?
Lista e hierarkisë
•
•
•
•
•
•
•
•
Regjistrat
L1 Cache
L2 Cache
Memoria kryesore
Cache në disk
Disk
Optik
Shirit.
Sa më shpejt?
• Kompjuteri që ka vetëm RAM statik
• Nuk i duhet cache
• Shumë i shpejt dhe shumë i shtrenjtë
Lokaliteti i referencës
• Gjatë ekzekutimit të programit lokacionet
të cilave i qaset programi janë shpesh
afër njëra tjetrës
• P.sh. Unazat.
Cache
• Sasi e vogël e memories së shpejtë
• Vendoset mes memories kryesore dhe
CPU-së
• Mund të ndodhet në çipin ose modulin e
procesorit.
Stuktura Cache/Memorie kryesore
Operimi i cache-it
• CPU-ja kërkon përmbajtjen e një lokacioni
memorik
• E kontrollon cache-in për këtë të dhënë
• Nëse e gjen, e merr nga cache-i (shpejt)
• Nëse nuk e gjen, e lexon (sjell) bllokun e
kërkuar nga memoria kryesore në cache
• Pastaj e bjen nga cache-i në CPU
• Cache përfshin informacionin (tags,
etiketa) se cili bllok i memories kryesore
ndodhet në një bllok të cache-it.
Operacioni i leximit te Cache-it
Dizajni i Cache-it
•
•
•
•
•
•
Madhësia
Funksioni i mapimit
Algoritmi i zëvendësimit
Politika e të shkruarit (Write Policy)
Madhësia e bllokut
Numri i cache-ve
Madhësia
• Kostoja
—Më shumë cache kushton më shumë
• Shpejtësia
—Me shumë cache, shpejtësia më e madhe (deri
në njëfarë mase) sepse
—Kërkimi i të dhënave në cache merr poashtu
kohë.
Organizimi tipik i Cache-it
Krahasimi i madhësive të Cache-it
Procesori
Tipi
Viti i lansimit
Keshi L1
Keshi L2
Keshi L3
IBM 360/85
Mainframe
1968
16 to 32 KB
—
—
PDP-11/70
Minicomputer
1975
1 KB
—
—
VAX 11/780
Minicomputer
1978
16 KB
—
—
IBM 3033
Mainframe
1978
64 KB
—
—
IBM 3090
Mainframe
1985
128 to 256 KB
—
—
Intel 80486
PC
1989
8 KB
—
—
Pentium
PC
1993
8 KB/8 KB
256 to 512 KB
—
PowerPC 601
PC
1993
32 KB
—
—
PowerPC 620
PC
1996
32 KB/32 KB
—
—
PowerPC G4
PC/server
1999
32 KB/32 KB
256 KB to 1 MB
2 MB
IBM S/390 G4
Mainframe
1997
32 KB
256 KB
2 MB
IBM S/390 G6
Mainframe
1999
256 KB
8 MB
—
Pentium 4
PC/server
2000
8 KB/8 KB
256 KB
—
IBM SP
High-end server/
supercomputer
2000
64 KB/32 KB
8 MB
—
CRAY MTAb
Supercomputer
2000
8 KB
2 MB
—
Itanium
PC/server
2001
16 KB/16 KB
96 KB
4 MB
SGI Origin 2001
High-end server
2001
32 KB/32 KB
4 MB
—
Itanium 2
PC/server
2002
32 KB
256 KB
6 MB
IBM POWER5
High-end server
2003
64 KB
1.9 MB
36 MB
CRAY XD-1
Supercomputer
2004
64 KB/64 KB
1MB
—
Funksioni i mapimit
(mapping):
Pasi që ka më pak linja të keshit se sa blloqe të të dhënave në
memorien kryesore, është i nevojshëm një algoritëm
planifikues për këto blloqe në linjat e keshit.
Shembull për krahasim:
• Keshi mund të mbajë 64 KBajta
• Transferimi i të dhënave ndërmjet memories kryesore
dhe kesh bëhet në blloqe prej 4 bajtash. Kjo do të
thotë se keshi është i organizuar si 16K = 214 linja
(rreshta) 4-bajtëshe.
• Memoria kryesore përbëhet prej 16 MBajtave, me
secilin bajt të adresuar direkt me adresë 24-bitëshe
(224 = 16M). Kështu, për qëllime të mapimit,
memorien kryesore mund ta konsiderojmë se
përbëhet prej blloqeve 4M blloqeve 4-bitëshe.
Mapimi direkt
• Çdo bllok i memories kryesore mapohet
në vetëm një linjë të cache-it
—P.sh. Nëse blloku është në cache ai duhet të
jetë në një vend të caktuar
• Adresa përbëhet nga dy pjesë
• W bita më pak të rëndësishëm
identifikojnë një fjalë unike
• S bitat më të rëndësishëm specifikojnë
një bllok memorik
• Bitat më të rëndësishëm janë të ndarë në
fushën e linjave të cache-it r dhe etiketën
e s-r bitave (më të rëndësishëm).
Struktura e adresës me mapim direkt
Tag s-r
8
Line or Slot r
Word w
14
• Adresa 24 bitëshe
• Identifikuesi 2 bitësh i fjalës (blloku 4 bytësh)
• Identifikatori 22 bitësh i bllokut
— Tagu (etiketa) 8 bitësh (=22-14)
— Slloti ose linja 14 bitëshe
• Blloqet në një linjë kanë tag fushën e ndryshme
• Përmbajtja e cache-it kontrollohet duke gjetur linjën dhe
duke kontrolluar tagun.
2
Tabela e linjave të cache me mapim direkt
Organizimi i cache-it me mapim direkt
Shembull i
mapimit
direkt
Përmbledhje e mapimit direkt
• Gjatësia e adresës = (s + w) bita
• Numri i njësive të adresueshme = 2s+w
fjalë ose byte
• Madhësia e bllokut = madhësia e linjës =
2w fjalë ose byte.
• Numri i blloqeve në memorien kryesore =
2s+ w/2w = 2s
• Numri i linjave në cache = m = 2r
• Madhësia e etiketës (tagut) = (s – r) bita
Pro-të dhe contra-t e mapimit direkt
• I thjeshtë
• I lirë
• Lokacioni fiks për bllok të dhënë
—Nëse programi i qaset shpesh 2 blloqeve që
mapohen në të një njejtën linjë, huqjet e
cache-it janë shumë të mëdha dhe shpejtësia
hit do të jetë e vogël (fenomeni thrasing).
Mapimi asociativ
• Blloku i memories kryesore mund të futet
në cilëndo linjë të cache-it
• Adresa memorike interpretohet si etiketë
dhe fjalë
• Etiketa identifikon bllokun e memories
• Çdo etiketë e linjës ekzaminohet për
gjetjen e çiftit
• Kërkimi i cache-it bëhet i shtrenjtë.
Organizimi i cache-it me asociacion të plotë
Shembull i mapimit asociativ
Struktura e adresës të mapimit asociativ
Word
2 bit
Tag (etiketa) 22 bit
• Etiketa 22 bitëshe ruhet me çdo bllok 32 bitësh
të të dhënave
• Krahasohet fusha e etiketës me rresht të etiketës
në cache për të gjetur çiftin
• 2 bitat me pak të rëndësishëm të adresës
përcaktojnë cila fjalë 16 bitëshe kërkohet nga
blloku 32 bitësh i të dhënave.
• P.sh.
— Address
— FFFFFC
Tag
FFFFFC
Data
24682468
Cache line
3FFF
Përmbledhje e mapimit asociativ
• Gjatësia e adresës = (s + w) bit
• Numri i njësive të adresueshme = 2s+w
fjalë ose byte
• Madhësia e bllokut = madhësia e linjës =
2w fjalë ose byte
• Numri i blloqeve në memorien kryesore =
2s+ w/2w = 2s
• Numri i linjave në cache = i pacaktuar
• Madhësia e etiketës = s bit.
Mapimi set asociativ
(Set Associative Mapping)
• Cache është i ndarë në një numër të
bashkësive
• Çdo bashkësi përmban një numër të
linjave
• Një bllok i dhënë mapohet në cilëndo linjë
të bashkësisë së dhënë
—P.sh. Blloku B mund të jetë në cilëndo linjë të
bashkësisë i.
• P.sh. 2 linja për bashkësi
—Mapim asociativ 2 drejtimësh
—Një bllok i dhënë mund të jetë në njërën nga 2
linjat në vetëm një bashkësi.
Shembull i mapimit Set Asociativ
• Numri 13 bitësh i bashkësisë
• Numri i bllokut në memorien kryesore
është moduli 213
• 000000, 00A000, 00B000, 00C000 …
mapohen në të njejtën bashkësi.
Organizimi i cache-it set asociativ dy drejtimësh
Struktura e adreses te mapimi set
asociativ
Tag 9 bit
Set 13 bit
Word
2 bit
• Fusha e bashkësisë përdoret për të
përcaktuar bashkësinë e cache-it ku duhet
kërkuar.
• Krahasohet fusha e etiketës për të parë a
kemi qëlluar.
• P.sh.
Address number
1FF 7FFC
001 7FFC
Tag
1FF
001
Data
Set
12345678 1FFF
11223344 1FFF
Shembull i
mapimit 2
drejtimësh
set
asociativ
Përmbledhje e mapimit set asociativ
• Gjatësia e adresës = (s + w) bita
• Numri i njësive të adresueshme = 2s+w
fjalë ose byte
• Madhësia e bllokut = madhësia e linjës =
2w fjalë ose byte
• Numri i blloqeve në memorien kryesore =
2s-w/2w=2s
• Numri i linjave në bashkësi = k
• Numri i bashkësive = v = 2d
• Numri i linjave në cache = kv = k * 2d
• Madhësia e etiketës = (s – d) bita.
Algoritmet e zëvendësimit
Kur një bllok i ri sillet në kesh, një nga
blloqet ekzistuese duhet të largohet
(zëvendësohet).
• Për mapimin direkt
—për një bllok të caktuar është vetëm një linjë e
mundëshme dhe nuk ka mundësi zgjedhje
—Çdo bllok mapohet në vetëm një linjë
—Parimi: Zëvendso atë linjë
• Për mapimin (set) asociative:
—I domosdoshëm një algoritëm i zëvendësimit
Algoritmet e zëvendësimit
Mapimi direkt
Pra:
• Nuk ka zgjedhje
• Çdo bllok mapohet në vetëm një linjë
• Zëvendsohet ajo linjë.
Algoritmet e zëvendësimit
Asociativ & Set Asociativ
• Algoritmi i implementuar në hardware (për të
përmirësuar shpejtësinë)
• Least Recently Used (LRU)
— Zëvendëso bllokun në bashkësi që ka qëndruar më së
gjati pa referencë.
• P.sh. Te cache-i set asociativ 2 drejtimësh
— Cili nga 2 blloqet është liruar?
• First in first out (FIFO)
— Zëvendësoje bllokun që ka qëndruar më së gjati në
cache
• Least frequently used
— Zëvendëso bllokun që ka pas më së paku të qëlluara
(vizita)
• Random
Politika e shkruarjes (Write Policy)
Para se një bllok (rezident në kesh) të
mund të zëvendësohet: modeomos – a
është ndrruar në kesh e jo në memorien
kryesore?
• Nuk bën të mbishkruhet blloku i cache-it
përveç në rastin kur memoria është e
azhuruar
• CPU-të mund të kenë cache individual
• H/D mund të adresojë direkt memorien
kryesore
Shkruarja tejpërtej (Write through)
• Të gjitha shkruarjet bëhen në memorien
kryesore dhe në cache
• CPU-të mund të monitorojnë trafikun e
memories kryesore për ta mbajtur të
azhuruar keshin lokal të CPU-së
• Shumë trafik
• Shkruarja e ngadalsuar
Shkruarja kthyese (Write back)
• Azhurimet bëhen së pari vetem në cache
• Biti i azhurimit për slotin e cache-it
setohet kur ndodhë azhrurimi
• Nëse blloku duhet të zëvendësohet,
shkruaj në memorien kryesore vetëm
nëse biti i azhurimit është i vendosur
• Cache-et tjerë dalin nga sinkronizimi
• H/D duhet ti qasen memories kryesore
përmes cache-it
• 15% të referencave memorike janë
shkruarje (për HPC – 33%: shumëzimi
vektor > vektor; 50% për transformimin
matricor)
Madhësia e linjave
• Element dizajnues me rëndësi
• Kur korrigjohet një bllok i të dhënave dhe
vendoset në kesh – korrigjohen edhe
fjalët e afërta (jo vetëm fjala e dëshiruar)
• Meqë rritet madhësia e bllokut – në fillim
rritet shpejtësia (fjalët rrinë në afërsi të
fjalës referencuese për të ardhmën e
afërt)
• Marrëdhënia madhësi e bllokut-shpejtësi:
komplekse
• Madhësia 8 deri 32 bajta (thuhet) se
arrinë një ‘optimum’
Numri i kesheve
• Paraqitja e keshit origjinal: sistemi tipik me
një kesh të vetëm
• Keshi shumënivelësh
—Për shkak të rritjes së dendësisë së pjesës
logjike: keshi on-chip
—Në krahasim me keshin off-chip, redukton
aktivitetet e procesorit me busin (rritë
shpejtësinë dhe performansën)
—Shumica e dizajnueseve: kesh on-chip & kesh
off-chip (keshi dynivelësh L1(on) dhe L2 (off))
Keshi unik
vs
Keshi i ndarë (split)
• Në fillim: një kesh i vetëm për të dhëna
dhe instruksione (kesh unik)
• Avantazhet:
—shpejtësi më të madhe sepse balanson marrjet
në mes të të dhënave dhe instruksioneve
—Dizajn dhe implementim i thjeshtë
• Por…
—kur ka më tepër marrje të instruksioneve sesa
të të dhënave: keshi ka prirje të mbushet me
instruksione, apo e kundërta
—Makinat superskalare (Pentium, PowerPC) me
ekzekutim të theksuar paralel dhe paramarrje
të planifikuar të instruksioneve të ardhëshme
(L1 dhe L2)
Pentium 4 Cache
• 80386 – pa cache në çip
• 80486 – 8k që përdorin linjat 16 byte-she me
organizim set asociativ 4 drejtimesh
• Pentium (të gjitha versionet) – 2 L1 cache në çip
— Të dhënat dhe instruksionet
• Pentium III – L3 cache i shtuar jashtë çipit
• Pentium 4
— L1 cache
– 8k bytes
– Linjat 64 bytëshe
– set asociativ 4 drejtimesh
— L2 cache
–
–
–
–
Furnizon të dy L1 cache-et
256k
Linja 128 byteshe
Set asociativ 8 drejtimesh
— L3 cache on chip
Evolucioni i cache-it te procesorët Intel
Problemi
Solucioni
Procesori në të cilin është
zbatuar së pari herë
Shtimi i keshit të jashtëm duke
shfrytëzuar teknologjinë e memories
më të shpejtë.
386
Memoria e jashtme më e ngadalshme se sa busi sistemor.
Rritja e shpejtësisë së procesorit, në busin e jashtëm rezulton
me një fyt të ngushtë për qasjen në kesh.
Zhvendosja e keshit të jashtëm në
çip, duke operuar me shpejtësinë e
njejtë si të procesorit.
486
Keshi i brendshëm është pak a shumë i vogël, që përshtatet
me hapësirën në çip.
Shtimi i keshit të jashtëm L2 duke
shfrytëzuar teknologjinë më të shpejtë se
sa të memories kryesore.
486
Krijimi i keshit të ndarë të të dhënave
dhe të instruksioneve.
Pentium
Kontesti ndodhë kur Paramarrësi i instruksionit dhe Njësia
ekzekutuese, në mënyrë simultane kërkojnë akses në kesh.
Në këtë rast, paramarrësi i instruksionit ndalon derisa qasje e
njësisë ekzektutuese zë vend.
Rritja e shpejtësisë së procesorit rezulton në busin e jashtëm
si një fyt i ngushtë për qasjen në keshin L2.
Disa aplikacione merren me databazat masive dhe duhet të
kenë akses rapid te një sasi e madhe të dhënash. Keshet onchip janë shumë të vegjël.
Krijimi ndaras i busit back-side që
punon në shpejtësi më të madhe se sa
busi i jashtëm kryesor (front-side).
BSB është i dedikuar te keshi L2.
Pentium Pro
Zhvendosja e keshit L2 çipin e
procesorit.
Pentium II
Shtimi i keshit eksternal L3.
Pentium III
Zhvendos keshin L3 në çip.
Pentium 4
Pentium 4 Block Diagram
Procesori Pentium 4 Core
• Njësia Marrje/Dekodim (Fetch/Decode)
— Nxjerr (Fetches) instruksionete prej keshit L2
— Dekodon brenda mikro operacionet
— Ruan mikro-operacionet në keshin L1
• Logjika ekzekutuese-Out of order
— Planifikon mikro operacionet
— Bazuar në të dhënat varen edhe resurset
— Mund të ekzekutojë në mënyrë spekulative
• Njësitë ekzekutuese
— Ekzekuton mikro operacionet
— Të dhënat prej keshit L1
— Rezultatet në regjistra
• Subsistemi memorik
— Keshi L2 dhe busi sistemor
Arsyetimi i dizajnit Pentium4
• Dekodon instruksionet në RISC si mikro operacione para
keshit L1
• Mikro operacionet me gjatësi fikse
— Superscalar pipelining dhe scheduling
• Instruksionet e gjata dhe komplekse Pentium
• Përmirësimi i performansës duke dekodimin prej pipeliningut dhe planifikimit (scheduling)
• Keshi i të dhënave është “write back”
— Mund të konfigurohet të shkruaj tej për tej
• Keshi L1 kontrollohet me 2 bita në regjistër
— CD = cache disable
— NW = not write through
— 2 instruksione të zhvlersojë keshin dhe të rishkruaj
• L2 dhe L3 8-rrugësh set-associative
— Madhësia e linjës 128 byte
Organizimi i keshit të PowerPC
•
•
•
•
•
601 – single 32kb 8 way set associative
603 – 16kb (2 x 8kb) 2 way set associative
604 – 32kb
620 – 64kb
G3 & G4
—Keshi L1 64kb
– 8 way set associative
—Keshi L2 256k, 512k ose 1M L2
– two way set associative
• G5
—32kB keshi i instruksioneve
—64kB keshi i të dhënave
PowerPC G5 Block Diagram
5. Memoria e brendshme
Memoria e brendshme gjysmëpërçuese
SRAM & DRAM
Korigjimi i gabimit
Shtimi i bitave shtesë për detektim
(korrigjim) gabimi
Organizimi i avansuar i DRAM-it
Për kompensim të shpejtësisë së ulët të
DRAM-it
(Synchronous DRAM & RamBus DRAM)
Tipet e memories gjysmëpërçuese
Memoria gjysmëpërçuese
Memoriet e para: feromagnetike (core)
Sot: të gjitha gjysmëpërçuese
• RAM
—Emërtimi i gabuar: të gjitha memoriet
gjysëmperçuese kanë akses të rastësishëm
—Lexim/Shkrim
—Jo e qëndrueshme, Jo stabile, e
paparashikueshme (Volatile)
—Memorie e përkohshme
—Mund të jetë: Statike ose dinamike
Elementi themelor - qeliza
• Dy gjendje të mundëshme (shfrytëzohen
për paraqitje të 0 dhe 1)
• Lejojnë
—shkruarjen në të (vlerën e fundit)
—leximin (matjen) e daljes
Puna e qelizës memorike
RAM-i Dinamik
•
•
•
•
•
•
•
•
•
•
Bitat ruhen si ngarkesa te kondenzatorëve
Ngarkesat zbrazën
Kanë nevojë për freskim edhe kur janë nën tension
Konstruksioni i thjeshtë
Më të vogla (për bit të memoruar)
Më të lira
Kanë nevojë për qarqe për freskim (dinamike!?)
Më të ngadalshme
Memoria kryesore
Në thelb analoge
— Niveli i ngarkesës përcakton vlerën
Struktutra e DRAM
Puna e DRAM-it
• Linja e adresës është aktive kur lexohet ose
shkruhet një bit
— Ndërprerësi tranzistorik i mbyllur (rryma rrjedh)
• Shkrimi
— Tension në linjën e bitit
– I lartë për 1, i ultë për 0
— Pastaj sinjalizo linjën e adresës
– Bartë ngarkesën në kondenzator
• Leximi
— Selektohet Linja Adresore
– Tranzistori kyçet
— Ngarkesa nga kondenzatori përmes linjes së bitit kalon
në sense amplifikator
– Krahason ngarkesën me vlerën referente për të përcaktuar
0 ose 1
— Ngarkesa e kondenzatorit duhet të restaurohet
RAM-i Statik
• Në kontrast me DRAM – elementet logjike
(qarqet) si në mikroprocesor (si ishin??) -FF
• Bitat ruhen si gjendje të ndërprerësve
• Nuk ka ngarkesa që mund të zbrazen
• Nuk ka nevojë për freskim kur janë nën tension
• Konstruksioni më kompleks
• Më të mëdha (për bit te memoruar)
• Më të shtrenjëta
• Nuk ka nevojë për qarqe për freskim
• Më të shpejta
• Cache
• Digjitale
— Përdorin flip-flop
Struktura e RAM-it statik
Puna e RAM-it Statik
• Lidhja e tranzistorëve jep gjendje stabile
logjike
• Gjendja 1
—C1 e lartë, C2 e ultë
—T1 T4 i çkyçur (off), T2 T3 i kyçur (on)
• Gjendja 0
—C2 e lartë, C1 e ultë
—T2 T3 i çkyçur (off), T1 T4 i kyçur (on)
• Tranzistorët e linjës adresore T5 T6 janë
ndrëprerës
• Shkrimi – apliko vlerën në B dhe
komplimentin në B
• Leximi - vlera është në linjën B
SRAM vs DRAM
• Te dyjat jostabile, te paqëndrueshme
(volatile)
—Furnizimi nevojitet për të ruajtur të dhënat
• Qelizat dinamike
—Më të thjeshta, më të vogla
—Dendësia më e lartë
—Më të lira
—Kërkojnë freskim
—Për njësi të mëdha memorike
• Statike
—Më të shpejta
—Cache
Memoriet vetem për lexim
Read Only Memory (ROM)
• Ruajtja permanente
— Nonvolatile
• Një aplikim me rëndësi: Mikroprogramimi (më vonë)
• Librari të rutinave për funksione të shfrytëzuara më
shpesh(subroutines)
• Programet sistemore (BIOS)
• Tabelat e funksioneve
Përparësia kryesore (kërkesat me madhësi modeste:
të dhënat ose programi ruhen permanent në
memorien kryesore dhe nuk kanë nevojë të
ngarkohen nga paisje sekondare memoruese)
Tipe të ROM-it
• Shkruhen gjatë prodhimit
— Shumë të shtrenjëta për seri të vogla
• Te programueshme (një herë)
— PROM
— Nevojiten pajisje speciale për progamim
• Kryesisht vetëm për lexim
— Të fshijëshme dhe të programueshme (Erasable
Programmable, EPROM)
– Fshihen me rreze UV
— Elektrikisht të fshijëshme (Electrically Erasable,
EEPROM)
– Shkrimi zgjatë shumë më tepër, se sa leximi
— Flash memoria
– Memoria fshihet elektrikisht
Organizimi i detajuar
• Çipi 16 Mbitësh mund të organizohet si
1M fjalë 16 bitëshe
• Sistemi 1 bit për çip ka 16 çipa 1Mbitësh,
tek i cili biti 1 i secilës fjalë është në çipin
1 e kështu me rradhë…
• Çipi 16 Mbitësh mund të organizohet si
fushë 2048 x 2048 x 4bit
—Zvoglon numrin e pinave (linjave) adresore
– Multipleksimi i adresës së rreshtit dhe kolonës
– 11 pina për adresimin e (211=2048)
– Shtimi i një pini dyfishon brezin e vlerave kështu që
kemi kapacitet të katërfishuar
Freskimi
•
•
•
•
•
•
Qarku për freskim është pjesë e çipit
Paaftësoje çipin (Disable chip)
Numruesi i freskimit (refresh counter)
Read & Write back
Merr kohë
Zvoglon përformasat
DRAM-i 16 Mb (4M x 4) tipik
Paketimi
Organizimi i
modulit
256 kByte
Organizimi i modulit 1MByte
Korigjimi i gabimeve
• Gabim i hardverit
—Defekt permanent
• Gabim softverik
—I rastit, jo destruktiv
—Pa dëmtim permanent të memories
• Detektimi me kodin korigjues të
Hammingut (Hamming error correcting
code)
Funksioni i kodit për korigjim të gabimit
Oraganizimi i avansuar i DRAM-it
• DRAM bazik i njejtë si çipat e parë RAM
• DRAM i avansuar
—Përmban pak SRAM
—SRAM ruan vlerat e rreshtit të fundit të lexuar
• Cache DRAM
—SRAM komponenta më e madhe
—Përdoret si cache ose bufer serik
DRAM sinkron (SDRAM)
• Qasja e sinkronizuar me klok të jashtëm
• Adresa i paraqitet RAM-it
• RAM-i i gjenë të dhënat (te DRAM konvencional
CPU-ja pret)
• Pasi SDRAM bartë të dhënat në sinkronizim me
klokun e sistemit, CPU-ja e di kur të dhënat do të
jenë në dispozicion
• CPU-ju nuk pret por mund të kryej punë tjera
• Burst modi i mundson SDRAM-it të aranzhojë
rrjedhën e të dhënave të cilat i transferon në
bllok
• DDR-SDRAM dërgon të dhënat dy herë për një
cikël të kllokut (në tehun rritës dhe rënës)
SDRAM
Timing-u i leximit në SDRAM
RAMBUS
• Përdoret për Intel Pentium & Itanium
• Konkurent kryesor i SDRAM
• Paketimi vertikal – të gjithë pinat në një
anë
• Shkëmbimi i të dhënave nëpër 28 linja
• Busi adreson deri 320 RDRAM çipa me
1.6Gbps
• Blok protokolli asinkron (Asynchronous
block protocol)
—Koha e qasjes 480ns
—Then 1.6 Gbps
Diagrami RAMBUS
DDR SDRAM
• SDRAM mund të dërgojë të dhënat vetëm
një herë për një impuls të kllokut
• Double-data-rate SDRAM mund të dërgojë
të dhënat dy herë për një impuls të
kllokut
—Tehu rritës dhe tehu rënës
Cache DRAM
• Mitsubishi
• Integron cache të vogël SRAM (16 kb) në
çipin DRAM
• Përdoret si cache i vërtetë
—Linjat 64-bitëshe
—Efektiv për qasje të zakonshme të rastit
• Për të përkrahur qasjen serike bllokut të
të dhënave
—P.sh. Rifreskimi i ekranit te bit mapuar
– CDRAM merr të dhënat nga DRAM dhe i vendos në
SRAM bufer
– Qasja e mëpastajme vetëm nga SRAM
Materiale
• Guida e RAM-it
• RDRAM
Memoria e jashtme
Disqet magnetike
Shiritat magnetikë
Disketat
CD-të dhe DVD-të
Memoriet optike
Llojet e Memoreive të jashtme (eksterne)
• Disqet magnetike
—Teknologjia RAID e disqeve
(Redundant Array Independent Disc)
—Removable
• Optik
—CD-ROM
—CD-Recordable (CD-R)
—CD-R/W
—DVD
• Shirita magnetik
Disku magnetik
• Substrati i diskut i mbuluar me material të
magnetizueshëm (oksid i hekurit)
• Më herët, substrati ishte alumin
• Tani qelq
—Njëtrajtshmëria e përmirësuar e sipërfaqës
– Rritë besueshmërinë
—Zvoglimi i defekteve sipërfaqësore
– Më pak gabime të leximit/shkrimit
—Lartësia më e ulët e fluturimit
—Cilësi më të mira mekanike
Mekanizmi i leximit dhe shkrimit
•
•
•
•
Regjistrimi dhe leximi përmes dredhës përçuese që quhet kokë
Koka për lexim/shkrim apo për lexim dhe shkrim veç e veç
Gjatë leximit/shrimit, koka është e palëvizshme, pllakat rrotullohen
Shkrimi
— Rryma nëpër dredhë prodhon fushë magnetike
— Impulset elektrike dërgohen në kokë
— Pasqyrimi magnetik i impulseve të dërguara regjistrohet në sipërfaqen
nën kokë
• Leximi (tradicional)
— Fusha magnetike e cila lëvizë në raport me dredhën prodhon rrymë
— Dredha është e njejte për lexim dhe shkrim
• Leximi (bashkëkohore)
—
—
—
—
Koka e veçant për lexim afër kokës për shkrim
Sensori magnetoresistent pjesërisht i blinduar
Rezistenca elektrike varet nga drejtimi i fushës magnetike
Puna në frekuencë të lartë
– Dendësia dhe shpejtësia e rritur
Shkrimi induktiv – leximi MR
(Inductive Write MagnetoRestrictive Read)
Organizimi i të dhënave dhe formatizimi
• Rrathët koncentrik ose trasetë
—Hapsërat ndarëse mes traseve
—Zvogëlimi i hapësirës ndarëse për të rritur
kapacitetin
—Numri i njejtë i bitave për trase (dendësia e
ndryshueshme e paketimit)
—Shpejtësia këndore konstante
• Trasetë e ndara në sektorë
• Madhësia minimale e bllokut është një sektor
• Mund të ketë më shumë sektorë për bllok
Shtrirja e të dhënave në Disk
(Disk Data Layout)
Shpejtësia e diskut
• Biti në afërsi të diskut kalon më ngadalë pikën
fikse se sa biti në skajin e jashtëm të diskut
• Distanca e ndryshueshme në mes bitave në trase
të ndryshme
• Rrotullimi i diskut me shpejtësi këndore konstante
— Trasetë dhe sektorët janë individualisht të adresueshme
— Koka levizë deri te traseja dhe pret sektorin
— Në sektorët e jashtëm ka humbje të hapesirës
– Dendësia më e vogël e të dhënave
• Përdorimi i zonave për rritjen e kapacitetit
— Çdo zonë ka numer fiks të bitave për trase
— Qarqet më komplekse
Mënyrat e ndarjes së diskut
Gjetja e sektorit
• Identifikimi i fillimit të trasesë dhe sektorit
• Formatizimi i diskut
—Informacione shtesë që nuk janë në
dispozicion përdoruesit shënojne trasetë dhe
sektorët
Formati Winchester i Diskut
Seagate ST506
Karakteristikat
•
•
•
•
•
Koka fikse (më rrallë) ose lëvizëse
Fiks ose të çvendosëshme
Një ose dy anësore (zakonisht)
Një ose me shumë pllaka
Mekanizmi i kokës
—Kontaktues (Floppy)
—Distancë fikse
—Fluturues (Winchester)
Koka fikse ose lëvizëse e diskut
• Koka fikse
—Një kokë për lexim dhe shkrim për trase
—Kokat të montuara në krah fiks
• Koka lëvizëse
—Një kokë për lexim dhe shkrim për një anë të
pllakës
—Koka e montuar në krahun lëvizës
Disku i çvendosshëm dhe fiks
• Disku i çvendosshëm
—Mund të largohet nga ngasja dhe të
zëvendësohet me disk tjetër
—Ofron kapacitet të pakufizuar
—Transferi i lehtë i të dhënave mes sistemeve
• Disqet fikse
—I integruar me ngasjen
Pllakat e shumëfishta
• Një kokë për anë
• Trasetë në pozita të njejta relative në
pllaka të ndryshme formojnë cilindrin
• Të dhënat merren nga cilindrat
—Zvoglon lëvizjen e kokave
—Rritë shpejtësinë (transfer rate)
Pllakat e shumëfishta
Trasetë dhe cilindrat
Floppy Disku
• 8”, 5.25”, 3.5”
• Kapaciteti i vogël
—Deri 1.44Mbyte (2.88M)
• Të ngadalshme
• Universal
• Të lira
Winchester Hard Disk
•
•
•
•
•
•
•
•
•
I zhvilluar nga IBM ne Winchester (USA)
Njësi e mbyllur
Një ose më shumë pllaka
Kokat ‘fluturojnë’ mbi jastëkun e ajrit që
krijohet për shkak te rrotullimit të diskut
Hapësira shumë e vogël mes kokës dhe
pllakës
Universal
Të lirë
Memoria e jashtme më e shpejtë
Kapaciteti gjithnjë në rritje
Shpejtësia
• Shpejtësia e kërkimit
—Koha për zhvendosjen e kokës deri te traseja
e duhur
• Vonesa e rrotullimit
—Pritja që të dhënat të rrotullohen nën kokë
• Koha e qasjes =
=Koha e kërkimit + Vonesa e rrotullimit
• Transfer rate
Timing-u i transferit H/D të diskut
RAID
•
•
•
•
•
Redundant Array of Independent Disks
Redundant Array of Inexpensive Disks
6 nivele në përdorim
Nuk është hierarkik
Grup i disqeve që trajtohen si një disk
logjik nga ana e sistemit operativ
• Të dhënat: të distribuara nëpër disqe të
ndryshme fizike
• Kapaciteti redudant mund të përdoret për
informacione për paritet
RAID 0
• Nuk ka redundansë
• Të dhënat merren nga të gjitha disqet
• Round Robin striping
(nxjerrja me garë me sistem qarku)
• Shpejtësia e rritur
—Kërkesat për të dhëna që nuk janë në një disk
—Kërkimi paralel në disqe
—Të dhënat e kërkuara do të merren nga më
shumë disqe
RAID 1
•
•
•
•
•
•
Disqet e pasqyruara (mirroring)
Të dhënat merren nga disa disqe të veçanta
2 kopje të të dhënave në disqe të veçanta
Lexo nga cilido
Shkruaj në të dy
Defekti zgjidhet lehtë
—Zëvendëso diskun e prishur dhe ripasqyro
—Nuk ka nderpreje në punë
• Shtrenjtë
RAID 2
• Disqet janë të sinkronizuara
• Shiritat shumë të shkurtë
—Shpesh një byte/fjalë
• Korigjimi i gabimit kalkulohet për bitat
korrespondues në disqe
• Shumë redundancë
—Shtrenjtë
—Nuk përdoret
RAID 3
• I ngjashëm me RAID 2
• Vetëm një disk redundant pa marrë
parasysh sa është numri i disqeve
• Biti i thjeshtë i paritetit për çdo grup të
bitave korresponduesë
• Të dhënat në diskun e prishur mund të
rekonstruktohen nga të dhënat e
padëmtuara dhe informacionet për paritet
• Vlera të larta për transfer të të dhënave
(transfer rates)
RAID 4
•
•
•
•
Çdo disk punon i pavarur
I mirë për kërkesa të mëdha për H/D
Shiritat e gjatë
Pariteti bit për bit kalkulohet për shirita në
çdo disk
• Pariteti ruhet në diskun e paritetit
RAID 5
• I ngjashëm me RAID 4
• Pariteti shtrihet përgjatë të gjitha disqeve
• Alokimi ‘Round robin’ për shiritin e
paritetit
• Zgjidhë problemin e RAID 4 në diskun e
paritetit
• Përdoret në servera të rrjetit
RAID 6
• Dy kalkulime të paritetit
• Ruhen në blloqe të veçanta në disqe të
ndryshme
• Kërkesat e shfrytëzuesit për N disqe
nënkupon (N+2) disqe
• Disponueshmëria e lartë e të dhënave
—Tri disqe duhet të prishen që të humbën të
dhënat
—Shkrimi i shtrenjtë
RAID 0, 1, 2
RAID 3 & 4
RAID 5 & 6
Mapimi i të dhënave për RAID 0
Memoria optike: CD-ROM
•
•
•
•
•
•
•
Fillimisht për audio
650 Mbytë japin mbi 70 minuta audio
Polikarbonat i mbuluar me alumin
Të dhënat ruhen në gropëza
Leximi me laser
Dendësia e paketimit konstante
Shpejtësia konstante lineare
Puna e CD
Shpejtësia e ngasjes së CD-ROM
• Audio është një shpejtësi (single speed)
—Shpejtësia konstante lineare
—1.2 m/s
—Traseja (spirala) është e gjatë 5.27km
—Jep 4391 sekonda (73.2 minuta)
• Shpejtësitë tjera jepen si shumëfish i
kësaj shpejtësie
• P.sh. 24x
CD-ROM Formati
• Mode 0=blank data field
• Mode 1=2048 byte data+error correction
• Mode 2=2336 byte data
Random Access në CD-ROM
•
•
•
•
•
E veshtirë
Zhvendose kokën në pozitën e duhur
Vendos shpejtësinë e saktë
Lexo adresën
Pozicionohu në lokacionin e kërkuar
CD-ROM: Për dhe kundër
•
•
•
•
Kapaciteti i lartë (?)
Prodhohen lehtë, në sasi të mëdha
I zhvendosëshëm
I fortë (Robust)
• I shtrenjtë për seri të vogla
• I ngadalshëm
• Vetëm për lexim (Read only)
Memoriet tjera optike
• CD-Recordable (CD-R)
—WORM
—Të lirë
—Kompatibil me ngasjet CD-ROM
• CD-RW
—Mund të fshihen
—Kompatibil me ngasjet CD-ROM
—Ndrrimi i fazës
– Materiali ka dy nivele të reflektimit për faza të
ndryshme
DVD – çka paraqet shkurtesa?
• Digital Video Disk
—Përdoret për të treguar player
– Lexon vetëm video disqe
• Digital Versatile Disk
—Përdoret për të treguar disk kompjuterik
– Lexon disqe kompjuterike dhe video disqe
Teknologjia DVD
• Shumështresore (Multi-layer)
• Kapaciteti i lartë (4.7G për shtresë)
• Filmi i metrazhit të gjatë në një disk
—Me përdorim të MPEG kompresionit
• I standardizuar
• DVD – Writable
—Probleme me standarde
CD dhe DVD
Shiritat magnetik
•
•
•
•
Qasja serike
Të ngadalshëm
Shumë të lirë
Për backup
Internet Resources
• Optical Storage Technology Association
—Good source of information about optical
storage technology and vendors
—Extensive list of relevant links
• DLTtape
—Good collection of technical information and
links to vendors
• Search on RAID
Universiteti i Prizrenit
Fakulteti i Shkencave Kompjuterike
Drejtimi - DS
Hyrja/Dalja
Prof. Dr. Arbnor Pajaziti
[email protected]
137
Hyrja/Dalja
138
Hyrja/Dalja
139
Hyrja/Dalja
140
Hyrja/Dalja
141
Hyrja/Dalja
142
Hyrja/Dalja
143
Hyrja/Dalja
144
Hyrja/Dalja
145
Hyrja/Dalja
146
Hyrja/Dalja
147
Hyrja/Dalja
148
Hyrja/Dalja
149
Hyrja/Dalja
150
Hyrja/Dalja
151
Hyrja/Dalja
152
Hyrja/Dalja
153
Hyrja/Dalja
154
Hyrja/Dalja
155
Hyrja/Dalja
156
Hyrja/Dalja
157
Universiteti i Prizrenit
Fakulteti i Shkencave Kompjuterike
Drejtimi - DS
Detyra nga gj.programuese
Assembler
Prof. Dr. Arbnor Pajaziti
[email protected]
158
Detyra 1
Cilat janë mnemonikët për Motorola 68000
për:
a) Pastro regjistrin A;
b) Vendos akumulatorin A;
c) Ngarko akumulatorin A;
d) Krahaso akumulatorët;
e) Ngarko regjistrin indeksor.
Zgjidhja:
a) CLR A
b) STA A
c) LDA A
d) CB A
159
Detyra 2
• Shkruani një rresht të programit në Asembler për:
a)
b)
c)
d)
Load accumulator me 20 (hex);
Decrement accumulator A;
Clear address $0020;
ADD accumulatorin e numrin A në adresën $0020.
Zgjidhja:
a)
b)
c)
d)
LDA A $20
DEC A
CLR $0020
ADD A $0020
160
Detyra 3
Sqaroni operacionet e specifikuara me instruksionet në vijim:
a)
STA B $35
b)
LDA A #$F2
c)
CLC
d)
INC A
e)
CMP A #$C5
f)
CLR $2000
g)
JMP 05, X
Zgjidhja:
a) Vendos akumulatorin e vlerës B në adresën 0035
b) Ngarko akumulatorin A me të dhënën F2
c) Pasto flamurin bartës
d) Shto 1 në vlerën e akumulatorit A
e) Krahaso C5 me vlerën e akumulatorit A
f) Pastro adresën 2000
g) Kërce adresën e dhënë me index regjistër plus 05
161
Detyra 4
Shkruani programin në gjuhën programuese Asembler:
a) Zbrit numrin heksadecimal në adresën memorike
0050 nga numri heksadecimal në lokacionin
memorik 0060 dhe rezultatin vendose në lokacionin
0070.
b) Shumëzo dy numra 8-bitësh, të vendosur në
adresat 0020 dhe 0021 dhe vendose prodhimin,
numrin 8-bitësh në lokacionin 0022.
c) Vendos numrat heksadecimalë 0 deri 10 në
lokacionet memorike duke filluar nga 0020.
d) Zhvendos bllokun prej 32 numrave duke filluar nga
adresa $2000 deri tek adresa e re e fillimit162$3000.
Zgjidhjet
a) Zbritja e numrave hexadecimalë
DATA1 EQU $0050
DATA2 EQU $0060
DIFF
EQU
$0070
ORG $0010
LDA A DATA1; Merr të zbritshmin
SUB A DATA2; Zbrite zbritësin
STA A DIFF ; Vendos diferencën
SWI
; Fundi i programit
163
Zgjidhjet
b) Shumëzimi i 2 numrave 8-bitësh
MULT1 EQU
MULT2 EQU
PROD EQU
ORG
CLR
LDA B
SUM
LDA A
ADD A
STAA
DECB
BNE
WAI
$0020
$0021
$0022
$0010
PROD ; Pastro adresën e prodhimit
MULT1 ; Merr numrin e parë
MULT2 ; Merr shumëzuesin
PROD ; Mbledh shumëzuesin
PROD ; Vendos rezultatin
; Zvogëlo akumulatorin B
SUM
; Degëzo nëse mbledhja nuk është kryer
; Fundi i programit
164
Zgjidhjet
c) Vendosja e numrave hexadecimalë 0 ÷ 10
FIRST
MORE
EQU
ORG
CLRA
LD X
STAA
INX
INCA
CMPA
BNE
WAI
$0020
$0000
; Pastro akumulatorin
#0
$20,X
; Rrit regjistrin e indeksit
; Rritja e akumulatorit
#$10
; Krahaso me numrin 10
MORE ; Degëzo nëse nuk është baras me zero
; Fundi i programit
165
Zgjidhjet
d) Zhevdosja e bllokut prej 32 numrave
LOOP
ORG
LDX
LDAA
STAA
INX
CPX
BNE
SWI
$0100
#$2000 ; Vendos pointerin (adresa)
$00,X
; Ngarko të dhënën
$50,X
; Vendos të dhënën
; Rrite indeksin e regjistrit
$3000
; Krahaso (adresa e re e fillimit)
LOOP
; Degëzo
; Fundi i programit
166
Detyra 4
Shkruani në gjuhën programuese subrutinën që do të përdoret për të
gjeneruar vonesën kohore dhe që mund të vendoset në çfarëdo vlere.
Zgjidhje:
YY
EQU
SAVEX EQU
ORG
STA
LDDA
LOOP DECA
BNE
LDA
RTS
$??
$0100
$0010
SAVEX
YY
LOOP
SAVEX
; Vlera e zgjedhur për të dhënë vonesën
; kohore të kërkuar
; Ruaj akumulatorin A
; Ngarko akumulatorin A
; Zvogëlo akumulatorin A
; Degëzo nëse nuk është baras me zero
; Rivendos akumulatorin
; Kthehu te programi kryesor
167
Detyra 5
Shkruani në gjuhën Asembler rutinën që mund të përdoret me qëllim që nëse
hyrja nga sensori me adresën 2000 është lartë, programi kërcen te një
rutinë duke filluar me adresën 3000, dhe nëse është poshtë programi
vazhdon.
Zgjidhje:
LDA
AND A
BEQ
që
$2000
#$01
$03
JMP
dhe
$3000
; Lexo të dhënat hyrëse
; Masko të gjithë bitat përveç 0
; Nëse ndërprerësi është poshtë, degëzo mbi JMP
; është 3
; vija programuese
; Nëse ndërprerësi është lartë nuk ka degëzim
; kështu ekzekuto JMP
CONTINUE
168
Kapitulli 10.
Setet e instruksionit
Karakteristikat dhe funksionet
Karakteristikat e instruksioneve të makinës
Tipet e operandëve
Tipet e të dhënave te Pentiumi dhe PowerPC
Tipet e operacioneve
Gjuha asembler
Elementet e instruksionit të makinës
• Kodi operacional (Opcode)
—Elementi esencial i një instruksioni të
kompjuterit, që specifikon operacionin që
duhet kryer (p.sh. ADD, I/O); burimin dhe
destinacionin e referencës së operandit
—Opcode-i specifikon operacionet në një nga
kategoritë: aritmetike ose logjike;
zhvendosjen e të dhënave në mes dy
regjistrave, regjistrit dhe memories; H/D; si
dhe kontrolli.
• Referenca në operandin burimor
—Specifikon një regjistër ose lokacion memorik
të operandit të të dhënave. Tipi mund të jetë:
adresa, numra, karaktere ose të dhëna logjike
• Referenca e operandit të rezultatit
—Karakteristika e zakonshme e procesorit është
shfrytëzimi i stekut (mund të shihet ose jo
prej programerit)
• Referenca në instruksionin e ardhshëm
—I tregon procesorit ku të marrë instruksionin e
ardhshëm
Arkitektura dhe programimi
• Shumë prej elementeve të arkitekturës
nuk shihen nga ana e programerit, kur ai
programon në gjuhë të larta programuese
(C, C++, C#,Pascal,…)
• Kufiri i ‘takimit’ në mes të dizajnerit dhe
programerit: gjuha e makinës.
Të dy e shohin të njejtën makinë.
• Këndvështrimi i dizajnerit: seti i
instruksionit ofron kërkesat funksionale të
procesorit.
• Programeri që programon në gjuhën e
makinës (assembler) sheh strukturën e
memories dhe regjistrat.
Një kategorizim i procesorëve
Në bazë të stilit të ruajtjes së vlerave
numerike shumëbajtëshe:
• Big-endian
—Bajtat më të rëndësishëm ruhen në adresat
numerike më të ulta.
• Little-endian
—Bajtat më të rëndësishëm ruhen në adresat
më të larta.
• Bi-endian
—Mund t’i përkrahë të dy stilet.
Karakteristikat e instruksionit të makinës
• Operacioni i procesorit përcaktohet nga
instruksionet që e ekzekutojnë, që i
referohemi si instruksionet e makinës
(kompjuterit).
• Koleksioni i instruksioneve të ndryshme
që mund të ekzekutojë procesori, njihet si
seti i instruksionit të procesorit.
• Secili instruksion duhet të përmbajë
informacionet që kërkohen nga procesori
për ekzekutim.
Elementet e një instruksioni të makinës
• Kodi i operacionit: specifikon operacionin
që duhet të kryhet (p.sh. ADD, I/O).
Operacioni paraqitet me një kod binar, i
njohur si opcode.
• Burimi i operandit: operacioni mund të
përfshijë një apo më tepër operande dhe
duhet ditur se cilët janë operandet hyrës.
• Rezultati i operandit: operacioni mund të
prodhojë një rezultat.
• Instruksioni i ardhshëm: i tregon
procesorit ku të marrë instruksionin e
ardhshëm, pasi të jetë kompletuar
instruksioni aktual.
Diagrami i gjendjeve të ciklit të instruksionit
Operandi burimor dhe i rezultatit gjendet:
• Në memorien kryesore ose virtuale
• Në regjistrat e procesorit
• Në paisjet H/D
Paraqitja e instruksioneve
• Në kodin e makinës çdo instruksion ka varg
të ndryshëm bitash
• Programerët përdorin prezentimin simbolik
—p.sh. ADD, SUB, LOAD, MPY, DIV, STOR
• Operandet mund të paraqiten edhe në këtë
mënyrë:
P.sh. ADD A,B
Që do të thotë: vlerën në lokacionin B shtoja përmbajtjes
së regjistrit A.
B i referohet adresës së lokacionit në memorie
A i referohet një regjistri të pjesërishëm
Operacioni kryehet në përmbajtjen e lokacioneve
Formati i thjeshtë i instruksioneve
Tipet e instruksioneve
• Shembull: X=X+Y (në gjuhë të lartë
programuese)
• Ky operacion kryhet me tri instruksione:
1. Ngarko (load) regjistrin me përmbajtjen e
lokacionit memorik 513l
2. Shto (add) përmbajtjen e lokacionit memorik
514 në regjistër;
3. Ruaje (store) përmbajtjen e regjistrit në
lokacionin memorik 513.
• Lidhja në mes gjuhëve të larta dhe
gjuhës së makinës: Pra, një operacion i
thjeshtë mund të kërkojë disa
instruksione.
Tipet e instruksioneve
1. Procesimi i të dhënave:
instruksionet aritmetike dhe logjike
2. Ruajtja e të dhënave
instruksionet e memories
3. Zhvendosja e të dhënave
instruksionet H/D
4. Kontrolli i rrjedhës së programit
testimi dhe degëzimi i programit.
Numri i adresave (a)
• 3 adresa
—Operandi 1, Operandi 2, Rezultati
—a = b + c;
—Mund të jetë edhe e katërta – instruksioni i
ardhshëm (zakonisht implicit)
—Nuk është i përhapur
—Kërkon fjalë të gjatë të instruksionit për të
përmbledhur të gjitha.
Numri i adresave (b)
• 2 adresa
—Një adresë shërben si adresë e operandit dhe
rezulatit të procesimit
—a = a + b
—Shkurton gjatësinë e instruksionit
—Ka nevojë për punë shtesë dhe hapësirë për
ruajtjen e përkohshme të rezultatit.
Numri i adresave (c)
• 1 adresë
—Adresa e dytë është implicite
—Zakonisht regjistër (accumulator)
—E zakonshme te procesorët e hershëm.
Numri i adresave (d)
• 0 (zero) adresa
—Të gjitha adresat janë implicite
—Përdoren në një organizim special të
memories, të njohur si stek (stack)
—Stack: një set i lokacioneve ‘last-in-first-out’
—p.sh. push a
—
push b
—
add
—
pop c
—c = a + b
(c) Instruksionet tri-adresëshe
Sa adresa?
• Më shumë:
—Instruksione më komplekese
—Më shumë regjistra
– Operacione me operand në regjistër janë më të shpejta
—Më pak instruksione për program
• Më pak:
—Instruksione më të thjeshta
—Më shumë instruksione për program
—Marrja / ekzekutimi më i shpejtë i instruksioneve.
Dizajni i repertorit të instruksionit
Dizajni i setit: kompleks, sepse afekton në
shumë aspekte të sistemit kompjuterik.
Definon: shumë funksione që kryen procesori.
• Repertori i operacioneve
—Sa dhe cilat operacione i ofron?
—Çka mund të bëjnë?
—Sa janë komplekse?
• Tipet e të dhënave
—Llojet e ndryshme të të dhënave ndaj të cilave
mund të kryhen operacione.
• Formatet e instruksioneve
—Gjatësia e fushës së kodit operacional
—Numri i adresave
—Gjatësia e fushave të ndryshme
• Regjistrat
—Numri i regjistrave të CPU-së
—Cilat operacione mund të kryhen në cilët regjistra?
• Adresimi
—Modi (modet) sipas të cilit është specifikuar
adresa e një operandi
• RISC  CISC
Reduced Instruction Set Computer
Complex Instruction Set Computer
Tipet e operandëve
Instruksionet e makinës operojnë në të dhëna.
Kategoritë më të rëndësishme të të dhënave:
• Adresat
• Numrat
—Integer (fixed point); floating point; decimal (BCD)
• Karakteret
—ASCII, EBCDIC, etj.
• Të dhëna logjike
—Bitat ose flag-at (flags)
Tipet e të dhënave të Pentiumit
Pentiumi mund të kuptojë të dhënat:
• 8 bit (byte)
• 16 bit (word)
• 32 bit (doubleword)
• 64 bit (quadword)
• Adresimi është sipas njësisë 8 bitëshe
• Fjala e dyfishtë 32 bitëshe lexohet në adresa të
pjesëtueshme me 4.
Për fleksibilitet dhe shfrytëzim më të mirë, nuk lejohen
adresat me numër tek të bitave.
Stili (si te të gjithë 80x86) little-endian: bitat më pak
të rëndësishëm ruhen në adresat më të ulëta.
Tipet specifike të të dhënave (Pentium)
• Gjeneral – përmbajtja arbitrare binare
• Integer – vlerë binare duke shfrytëzuar 2
komplementin
• Ordinal – integer pa parashenjë
• Unpacked BCD – Një numër për byte
• Packed BCD - 2 BCD numra për një byte
• Near Pointer – zhvendosja 32 bitëshe
brenda segmentit
• Bit fushe
• Byte String
• Floating Point
Formatet e të dhënave numerike të Pentiumit
Tipet e operacioneve
•
•
•
•
•
•
•
Transferi i të dhënave
Aritmetike
Logjike
Shndërrime (Conversion)
H/D
Kontroll i sistemit (System Control)
Transferi i kontrollit.
Transferi i të dhënave
• Specifiko
—Burimin
—Destinacionin
—Sasinë e të dhënave
• Mund të jenë instruksione të ndryshme për
lëvizje të ndryshme
—p.sh. IBM 370
• Ose një instruksion dhe adresa të ndryshme
—p.sh. VAX.
Aritmetike
•
•
•
•
Mbledhja, zbritja, shumëzimi, pjesëtimi
Signed Integer
Floating point
Mund të përfshijë
—Inkrementimi (a++)
—Dekrementimi (a--)
—Negacioni (-a)
—Vlera absolute.
Operacionet Shift dhe Rotate
Logjike
• Operacione mbi bita
—AND
—OR
—NOT
—XOR
—Test
—Compare
—Shift
—Rotate
Shndërrimet (Conversions)
Instruksionet e shndërrimit: ato që
ndërrojnë formatin ose operimin në
format.
• p.sh. Binar në Decimal
• Instruksioni TR (translate) te S/390:
mund të përdoret për të shndërruar të
dhënat prej kodit 8-bitësh në një kod
tjetër: TR R1, R2, L
Instruksionet H/D
• Mund të jenë instruksione specifike
• Mund të kryhen duke përdorur
instruksionet për zhvendosjen e të
dhënave (H/D e mapuar në memorie)
• Mund të ekzekutohen nga kontrolleri i
veçantë (DMA).
Kontrolli i sistemit
• Instruksionet e kontrollit të sistemit: ato
që mund të ekzekutohen vetëm deri sa
procesori është në një gjendje të
privilegjuar ose është duke ekzekutuar
një program në një zonë të privilegjuar të
memories (Instruksione të privilegjuara).
—Ring 0 në 80386+
—Kernel mode
• Të rezervuara për përdorim nga sistemi
operativ
Transferi kontrollit
• Degëzimi
—p.sh. kalo në x nëse rezultati është zero
• Kapërcimi (skip)
—p.sh. inkremento dhe kapërce nëse rezultati
është zero
—ISZ Register1
—Branch
(BRP X; BRN X; BRZ X; BRO X; BRE R1,R2,X)
—ADD A
• Thirrja e subrutinave (procedurave)
—Programi më i ekonomizuar
—Modulariteti.
Instrusioni i degëzimit
Thirrja e procedurave
Përdorimi i stekut
Rritja e stekut gjatë përdorimit të
procedurave shembull P dhe Q
Rendi i byte-ve
• Me çfarë radhe i lexojmë numrat të cilët
zënë më shumë se një byte
• p.sh. numrat heksadecimal që të mund t’i
lexojmë më lehtë
• 12345678 mund të ruhet në 4 lokacione 8
bitëshe në këto mënyra:
Rendi i byte-ve (shembull)
•
•
•
•
•
Adresa
184
185
186
187
Vlera (1)
12
34
56
78
Vlera (2)
78
56
34
12
• p.sh. lexo nga lartë poshtë apo nga
poshtë lartë?
Emrat e rendeve të byte-ve
• Problemi quhet Endian
• Big-endian: Sistemi në të majtë e ka
byte-in me peshë më të vogël në adresë
më të madhe (78 në adresën 187)
• Little-endian: Sistemi në të djathtë e ka
byte-in me peshë më të vogël në adresën
më të vogël (78 në adresën 184)
Shembulli vendosjes së një C struct
Këndvështrim alternativ i memories
Standard ?
• Pentium (80x86), VAX janë little-endian
• IBM 370, Motorola 680x0 (Mac) dhe
shumica e RISC janë big-endian
• Interneti është big-endian
Gjuha asembler
• Një procesor mund të kuptojë dhe të
ekzekutojë instruksionet e makinës.
• Instruksionet janë numra të thjeshtë
binarë të ruajtur në kompjuter.
• Nëse programeri dëshiron të programojë
direkt në gjuhë të makinës, duhet të futë
programin në formën binare.
• Nivelet:
—gjuha e makinës (binare)
—gjuha simbolike
—gjuha asembler
—gjuhët e larta (kompajleri)
Shembull: llogaritja e formulës
N = I + J + K
Universiteti i Prizrenit
Fakulteti i Shkencave Kompjuterike
Drejtimi - DS
Programimi i Sistemeve
Llojet e regjistrave
Prof. Dr. Arbnor Pajaziti
[email protected]
Regjistrat me destinacion të
përgjithshëm
8086 CPU ka 8 regjitra me destinim te pergjithshem, ku secili ka em
•AX – Regjistri akumulator (i ndare ne AH / AL)
•BX – Regjistri baze i adresave (i ndare ne AH / AL)
•CX - Regjistri i numerimit ( i ndare ne CH / CL)
•DX – Regjistri i te dhenave (i ndare ne DH / DL)
•SI – Regjistri i indeksit te burimit
•DI – Regjistri i indeksit te destinacionit
•BP – Treguesi baze

Detyra primare:
drejtimi ne blloqet e
Segment
regjistrat
qasshme te memories
 Llojet:
 CS – tregon segmentin ku eshte programi ne
ekzekutim
 DS – tregon segementin ku jane te definuara
variablat
 ES – Extra segment regjister, koduesi e cakton
qellimin e shfryt.
 SS – tregon segmentin ku gjendet stack-u
 Segment regjistrat se bashku me regjistrat e
pergjithshem shfrytezohen per percaktimin e
adreses efektive
 BX, SI dhe DI punojne me DS; BP dhe SP me
SS
Regjistrat me destinim të
veçantë
 Destinimi i tyre per pune te veçanta; qasja ne
to jo e drejtperdrejte
 Llojet:
 IP – treguesi i instruksionit ne ekzekutim
 Flags register – percakton gjendjen e
mikroprocesorit
 IP punon se bashku me CS per te treguar
instruksionin ne ekzekutim
 Flags register – modifikohet automatikisht
nga CPU, pas ekzekutimit te nje operaconi
aritmetikor, me qellim percaktimin e tipit te
rezultatit dhe percaktimin e kushteve per
transfer te kontrollit ne pjese tjera te
programit.
Qasja
në memorie
• Kombinimet
që përkrahen
• Segmentimi
• Modet e adresimit
MOV instruksioni (1/4)
• Kopjon vleren e operandit te pare ne
operandin e dyte
MOV op1, op2
• Op2 mund te jete nje vlere te
atyperatyshme, vlere nga regjistri i
pergjithshem, apo lokacioni memorik
• Op1 mund te jete nje regjister i
pergjithshem apo lokacion memorik
• Op1 dhe op2 duhet te jene te madhesive
te njejta
MOV instruksioni (2/4)
MOV instruksioni (3/4)
MOV instruksioni (4/4)