Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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.

2 Karakteristikat e Memories Cash
Lokacioni Kapaciteti Njësia e transferit Metoda e qasjes Performasa Tipi fizik Karakteristikat fizike Organizimi.

3 Lokacioni CPU I brendshëm I jashtëm

4 Kapaciteti Madhësia e fjalës Numri i fjalëve
Njesia natyrale e organizimit Numri i fjalëve Ose bytëve

5 Njësia e transferit I brendshëm I jashtëm Njësia e adresueshme
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.

6 Metodat e qasjes (1) Sekuenciale Direkte
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 P.sh. Disku.

7 E rastësishme (random)
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 P.sh. Cache.

8 Memoria interne ose kryesore
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.

9 Diagrami i hierarkisë së memories

10 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.

11 Tipet fizike të memories
Gjysëmpërçuese RAM Magnetike Disku & Shiriti Optike CD & DVD Tjera Bubble Hologram.

12 Karakteristikat fizike të memories
Dekompozimi (Decay) Ndryshueshmëria (volatility) Fshishmëria (erasability) Shpenzimi i energjisë.

13 Organizimi i memories Aranzhimi fizik i bitave në fjalë Nuk është gjithmonë i qartë P.sh. I ndërfutur (interleaved).

14 Përfundimi Sa? Kapaciteti Sa e shpejtë? Time is money Sa e shtrenjtë?

15 Lista e hierarkisë Regjistrat L1 Cache L2 Cache Memoria kryesore Cache në disk Disk Optik Shirit.

16 Sa më shpejt? Kompjuteri që ka vetëm RAM statik Nuk i duhet cache Shumë i shpejt dhe shumë i shtrenjtë

17 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.

18 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.

19 Stuktura Cache/Memorie kryesore

20 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.

21 Operacioni i leximit te Cache-it

22 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

23 Madhësia Kostoja Shpejtësia Më shumë cache kushton më shumë
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ë.

24 Organizimi tipik i Cache-it

25 Krahasimi i madhësive të 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 1978 16 KB IBM 3033 64 KB IBM 3090 1985 128 to 256 KB Intel 80486 PC 1989 8 KB Pentium 1993 8 KB/8 KB 256 to 512 KB PowerPC 601 32 KB PowerPC 620 1996 32 KB/32 KB PowerPC G4 PC/server 1999 256 KB to 1 MB 2 MB IBM S/390 G4 1997 256 KB IBM S/390 G6 8 MB Pentium 4 2000 IBM SP High-end server/ supercomputer 64 KB/32 KB CRAY MTAb Supercomputer Itanium 2001 16 KB/16 KB 96 KB 4 MB SGI Origin 2001 High-end server Itanium 2 2002 6 MB IBM POWER5 2003 1.9 MB 36 MB CRAY XD-1 2004 64 KB/64 KB 1MB a Two values seperated by a slash refer to instruction and data caches b Both caches are instruction only; no data caches

26 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.

27 Çdo bllok i memories kryesore mapohet në vetëm një linjë të cache-it
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).

28 Struktura e adresës me mapim direkt
Tag s-r Line or Slot r Word w 14 2 8 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.

29 Tabela e linjave të cache me mapim direkt

30 Organizimi i cache-it me mapim direkt

31 Shembull i mapimit direkt

32 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

33 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).

34 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ë.

35 Organizimi i cache-it me asociacion të plotë

36 Shembull i mapi- mit asociativ

37 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 Tag Data Cache line FFFFFC FFFFFC FFF

38 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.

39 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.

40 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.

41 Organizimi i cache-it set asociativ dy drejtimësh

42 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 Tag Data Set 1FF 7FFC 1FF FFF 001 7FFC FFF

43 Shembull i mapimit 2 drejtimësh set asociativ

44 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.

45 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

46 Algoritmet e zëvendësimit Mapimi direkt
Pra: Nuk ka zgjedhje Çdo bllok mapohet në vetëm një linjë Zëvendsohet ajo linjë. 46

47 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

48 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

49 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

50 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)

51 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’

52 Paraqitja e keshit origjinal: sistemi tipik me një kesh të vetëm
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))

53 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)

54 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

55 Evolucioni i cache-it te procesorët Intel
Problemi Solucioni Procesori në të cilin është zbatuar së pari herë Memoria e jashtme më e ngadalshme se sa busi sistemor. Shtimi i keshit të jashtëm duke shfrytëzuar teknologjinë e memories më të shpejtë. 386 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. 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. Krijimi i keshit të ndarë të të dhënave dhe të instruksioneve. Pentium Rritja e shpejtësisë së procesorit rezulton në busin e jashtëm si një fyt i ngushtë për qasjen në keshin L2. 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 Disa aplikacione merren me databazat masive dhe duhet të kenë akses rapid te një sasi e madhe të dhënash. Keshet on-chip janë shumë të vegjël. Shtimi i keshit eksternal L3. Pentium III Zhvendos keshin L3 në çip. Pentium 4

56 Pentium 4 Block Diagram

57 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

58 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 pipelining-ut 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

59 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

60 PowerPC G5 Block Diagram

61 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)

62 Tipet e memories gjysmëpërçuese

63 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

64 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

65 Puna e qelizës memorike

66 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

67 Struktutra e DRAM

68 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

69 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

70 Struktura e RAM-it statik

71 Lidhja e tranzistorëve jep gjendje stabile logjike Gjendja 1
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

72 Te dyjat jostabile, te paqëndrueshme (volatile)
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

73 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)

74 Tipe të ROM-it Shkruhen gjatë prodhimit Te programueshme (një herë)
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

75 Çipi 16 Mbitësh mund të organizohet si 1M fjalë 16 bitëshe
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

76 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

77 DRAM-i 16 Mb (4M x 4) tipik

78 Paketimi

79 Organizimi i modulit 256 kByte

80 Organizimi i modulit 1MByte

81 Korigjimi i gabimeve Gabim i hardverit Gabim softverik
Defekt permanent Gabim softverik I rastit, jo destruktiv Pa dëmtim permanent të memories Detektimi me kodin korigjues të Hammingut (Hamming error correcting code)

82 Funksioni i kodit për korigjim të gabimit

83 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

84 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)

85 SDRAM

86 Timing-u i leximit në SDRAM

87 Përdoret për Intel Pentium & Itanium Konkurent kryesor i 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

88 Diagrami RAMBUS

89 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

90 Integron cache të vogël SRAM (16 kb) në çipin DRAM
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

91 Materiale Guida e RAM-it RDRAM

92 Memoria e jashtme Disqet magnetike Shiritat magnetikë Disketat CD-të dhe DVD-të Memoriet optike

93 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

94 Më herët, substrati ishte alumin Tani qelq
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

95 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

96 Shkrimi induktiv – leximi MR (Inductive Write MagnetoRestrictive Read)

97 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

98 Shtrirja e të dhënave në Disk (Disk Data Layout)

99 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

100 Mënyrat e ndarjes së diskut

101 Identifikimi i fillimit të trasesë dhe sektorit Formatizimi i 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

102 Formati Winchester i Diskut Seagate ST506

103 Koka fikse (më rrallë) ose lëvizëse Fiks ose të çvendosëshme
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)

104 Koka fikse ose lëvizëse e diskut
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

105 Disku i çvendosshëm dhe fiks
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

106 Të dhënat merren nga cilindrat
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)

107 Pllakat e shumëfishta

108 Trasetë dhe cilindrat

109 Floppy Disku 8”, 5.25”, 3.5” Kapaciteti i vogël Të ngadalshme
Deri 1.44Mbyte (2.88M) Të ngadalshme Universal Të lira

110 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

111 =Koha e kërkimit + Vonesa e rrotullimit Transfer rate
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

112 Timing-u i transferit H/D të diskut

113 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

114 Të dhënat merren nga të gjitha disqet Round Robin striping
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

115 Disqet e pasqyruara (mirroring)
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ë

116 Disqet janë të sinkronizuara Shiritat shumë të shkurtë
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

117 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)

118 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

119 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

120 Dy kalkulime të paritetit
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ë

121 RAID 0, 1, 2

122 RAID 3 & 4

123 RAID 5 & 6

124 Mapimi i të dhënave për RAID 0

125 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

126 Puna e CD

127 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

128 CD-ROM Formati Mode 0=blank data field Mode 1=2048 byte data+error correction Mode 2=2336 byte data

129 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

130 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)

131 Memoriet tjera optike CD-Recordable (CD-R) CD-RW WORM Të lirë
Kompatibil me ngasjet CD-ROM CD-RW Mund të fshihen Ndrrimi i fazës Materiali ka dy nivele të reflektimit për faza të ndryshme

132 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

133 Shumështresore (Multi-layer) Kapaciteti i lartë (4.7G për shtresë)
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

134 CD dhe DVD

135 Shiritat magnetik Qasja serike Të ngadalshëm Shumë të lirë Për backup

136 Optical Storage Technology Association
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

137 Universiteti i Prizrenit
Fakulteti i Shkencave Kompjuterike Drejtimi - DS Hyrja/Dalja Prof. Dr. Arbnor Pajaziti

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 Hyrja/Dalja

158 Universiteti i Prizrenit
Fakulteti i Shkencave Kompjuterike Drejtimi - DS Detyra nga gj.programuese Assembler Prof. Dr. Arbnor Pajaziti

159 Detyra 1 Cilat janë mnemonikët për Motorola 68000 për:
Pastro regjistrin A; Vendos akumulatorin A; Ngarko akumulatorin A; Krahaso akumulatorët; Ngarko regjistrin indeksor. Zgjidhja: CLR A STA A LDA A CB A LD X

160 Detyra 2 Shkruani një rresht të programit në Asembler për:
Load accumulator me 20 (hex); Decrement accumulator A; Clear address $0020; ADD accumulatorin e numrin A në adresën $0020. Zgjidhja: LDA A $20 DEC A CLR $0020 ADD A $0020

161 Detyra 3 Sqaroni operacionet e specifikuara me instruksionet në vijim:
STA B $35 LDA A #$F2 CLC INC A CMP A #$C5 CLR $2000 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

162 Detyra 4 Shkruani programin në gjuhën programuese Asembler:
Zbrit numrin heksadecimal në adresën memorike 0050 nga numri heksadecimal në lokacionin memorik 0060 dhe rezultatin vendose në lokacionin 0070. Shumëzo dy numra 8-bitësh, të vendosur në adresat 0020 dhe 0021 dhe vendose prodhimin, numrin 8-bitësh në lokacionin 0022. Vendos numrat heksadecimalë 0 deri 10 në lokacionet memorike duke filluar nga 0020. Zhvendos bllokun prej 32 numrave duke filluar nga adresa $2000 deri tek adresa e re e fillimit $3000.

163 Zgjidhjet STA A DIFF ; Vendos diferencën SWI ; Fundi i programit
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

164 Zgjidhjet b) Shumëzimi i 2 numrave 8-bitësh MULT1 EQU $0020 MULT2 EQU $0021 PROD EQU $0022 ORG $0010 CLR PROD ; Pastro adresën e prodhimit LDA B MULT1 ; Merr numrin e parë SUM LDA A MULT2 ; Merr shumëzuesin ADD A PROD ; Mbledh shumëzuesin STAA PROD ; Vendos rezultatin DECB ; Zvogëlo akumulatorin B BNE SUM ; Degëzo nëse mbledhja nuk është kryer WAI ; Fundi i programit

165 Zgjidhjet Vendosja e numrave hexadecimalë 0 ÷ 10 FIRST EQU $0020
ORG $0000 CLRA ; Pastro akumulatorin LD X #0 MORE STAA $20,X INX ; Rrit regjistrin e indeksit INCA ; Rritja e akumulatorit CMPA #$ ; Krahaso me numrin 10 BNE MORE ; Degëzo nëse nuk është baras me zero WAI ; Fundi i programit

166 Zgjidhjet d) Zhevdosja e bllokut prej 32 numrave ORG $0100 LDX #$2000 ; Vendos pointerin (adresa) LOOP LDAA $00,X ; Ngarko të dhënën STAA $50,X ; Vendos të dhënën INX ; Rrite indeksin e regjistrit CPX $3000 ; Krahaso (adresa e re e fillimit) BNE LOOP ; Degëzo SWI ; Fundi i programit

167 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 $?? ; Vlera e zgjedhur për të dhënë vonesën ; kohore të kërkuar SAVEX EQU $0100 ORG $0010 STA SAVEX ; Ruaj akumulatorin A LDDA YY ; Ngarko akumulatorin A LOOP DECA ; Zvogëlo akumulatorin A BNE LOOP ; Degëzo nëse nuk është baras me zero LDA SAVEX ; Rivendos akumulatorin RTS ; Kthehu te programi kryesor

168 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 $2000 ; Lexo të dhënat hyrëse AND A #$01 ; Masko të gjithë bitat përveç 0 BEQ $03 ; Nëse ndërprerësi është poshtë, degëzo mbi JMP që ; është 3 ; vija programuese JMP $3000 ; Nëse ndërprerësi është lartë nuk ka degëzim dhe ; kështu ekzekuto JMP CONTINUE

169 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

170 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. 3

171 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 3

172 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.

173 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.

174 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.

175 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.

176 Diagrami i gjendjeve të ciklit të instruksionit

177 Operandi burimor dhe i rezultatit gjendet:
Në memorien kryesore ose virtuale Në regjistrat e procesorit Në paisjet H/D

178 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 5

179 Formati i thjeshtë i instruksioneve

180 Tipet e instruksioneve
Shembull: X=X+Y (në gjuhë të lartë programuese) Ky operacion kryhet me tri instruksione: Ngarko (load) regjistrin me përmbajtjen e lokacionit memorik 513l Shto (add) përmbajtjen e lokacionit memorik 514 në regjistër; 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.

181 Tipet e instruksioneve
Procesimi i të dhënave: instruksionet aritmetike dhe logjike Ruajtja e të dhënave instruksionet e memories Zhvendosja e të dhënave instruksionet H/D Kontrolli i rrjedhës së programit testimi dhe degëzimi i programit. 6

182 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. 7

183 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. 8

184 Numri i adresave (c) 1 adresë Adresa e dytë është implicite
Zakonisht regjistër (accumulator) E zakonshme te procesorët e hershëm. 9

185 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 10

186 (c) Instruksionet tri-adresëshe

187 Sa adresa? Më shumë: Më pak: 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. 11

188 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. 12

189 Reduced Instruction Set Computer Complex Instruction Set Computer
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 13

190 Instruksionet e makinës operojnë në të dhëna.
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) 14

191 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. 15

192 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 16

193 Formatet e të dhënave numerike të Pentiumit
17

194 Shndërrime (Conversion) H/D Kontroll i sistemit (System Control)
Tipet e operacioneve Transferi i të dhënave Aritmetike Logjike Shndërrime (Conversion) H/D Kontroll i sistemit (System Control) Transferi i kontrollit. 18

195 Mund të jenë instruksione të ndryshme për lëvizje të ndryshme
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. 19

196 Mbledhja, zbritja, shumëzimi, pjesëtimi Signed Integer Floating point
Aritmetike Mbledhja, zbritja, shumëzimi, pjesëtimi Signed Integer Floating point Mund të përfshijë Inkrementimi (a++) Dekrementimi (a--) Negacioni (-a) Vlera absolute. 20

197 Operacionet Shift dhe Rotate

198 Logjike Operacione mbi bita AND OR NOT XOR Test Compare Shift Rotate
21

199 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 22

200 Mund të jenë instruksione specifike
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). 23

201 Të rezervuara për përdorim nga sistemi operativ
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ë Kernel mode Të rezervuara për përdorim nga sistemi operativ 24

202 Thirrja e subrutinave (procedurave)
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. 25

203 Instrusioni i degëzimit

204 Thirrja e procedurave

205 Përdorimi i stekut

206 Rritja e stekut gjatë përdorimit të procedurave shembull P dhe Q

207 Me çfarë radhe i lexojmë numrat të cilët zënë më shumë se një byte
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ë mund të ruhet në 4 lokacione 8 bitëshe në këto mënyra: 27

208 Rendi i byte-ve (shembull)
Adresa Vlera (1) Vlera (2) p.sh. lexo nga lartë poshtë apo nga poshtë lartë? 28

209 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) 29

210 Shembulli vendosjes së një C struct

211 Këndvështrim alternativ i memories

212 Pentium (80x86), VAX janë little-endian
Standard ? Pentium (80x86), VAX janë little-endian IBM 370, Motorola 680x0 (Mac) dhe shumica e RISC janë big-endian Interneti është big-endian 30

213 Instruksionet janë numra të thjeshtë binarë të ruajtur në kompjuter.
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)

214 Shembull: llogaritja e formulës N = I + J + K

215 Universiteti i Prizrenit
Fakulteti i Shkencave Kompjuterike Drejtimi - DS Programimi i Sistemeve Llojet e regjistrave Prof. Dr. Arbnor Pajaziti

216 Regjistrat me destinacion të përgjithshëm
8086 CPU ka 8 regjitra me destinim te pergjithshem, ku secili ka emrin e tij 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 SP – Treguesi i stekut. AX - the accumulator register (divided into AH / AL). BX - the base address register (divided into BH / BL). CX - the count register (divided into CH / CL). DX - the data register (divided into DH / DL). SI - source index register. DI - destination index register. BP - base pointer. SP - stack pointer Pavaresisht emrit te tyre ato mund te perdoren per cfaredo qellimi Regjistrat jane 16 bitesh / 2 bajtesh / 1 fjalesh (1 Word = 2 Byte = 16 bit) H per High 8 bitat e pare te fjales, L per Low 8 bitat e fundit te fjales Regjistrat jane brenda CPU-se, shpejtesia e qasjes shume me e madhe se qasja ne memorie Nje pershkrim me praktik ax (Accumulator) : Most arithmetic and logical computations use this register bx (Base Reg) : Normally used to store base addresses (later) cx (Count Reg) : Used for counting purposes, like number of iterations while looping, number of characters in a string, etc. dx (Data Reg) : In my opinion, a true general purpose register. si (Source Index) : Used as a pointer to access memory indirectly di (Dest. Index) : Like the si register, this is also used for indirectly accessing the memory bp (Base Pointer) : Like the bx register, this is also used to store base addresses. Generally, this register is used to access local variables in a procedure. sp (Stack Pointer) : A very important register. Maintains the program stack, and so should be used carefully.

217 Segment regjistrat Detyra primare: drejtimi ne blloqet e 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 Zakonisht adresimi ne memorien fizike kerkon me shume se 16 bit per shkak te madhesise se memories; p.sh adresa 12345h kerkon 17 bit gje qe e pamundeson adresimin ne regjistrat 16 bitesh. Ne kete rast DS = 1230h, SI = 0045h. CPU llogarit DS * 10h + SI Adresa efektive formohet nga dy regjistra (segment + pergjithshem) ------ Nje pershkrim me praktik The cs (Code Segment) register points at the segment containing the currently executing machine instructions. Since you can change the value of the cs register, you can switch to a new code segment when you want to execute the code located there. The ds (Data Segment) register generally points at global variables for the program. You can change the value of the ds register to access additional data in other segments.  The es (Extra Segment) register is an extra segment register programs often use this segment register to gain access to segments when it is difficult or impossible to modify the other segment registers. The ss (Stack Segment) register points at the segment containing the 8086 stack.The stack is where the 8086 stores important machine state information, subroutine return addresses, procedure parameters, and local variables. In general, you do not modify the stack segment register because too many things in the system depend upon it.

218 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.

219 Kombinimet që përkrahen
Qasja në memorie Kombinimet që përkrahen Segmentimi Modet e adresimit Segmentimi i memories sherben per t’i mbajtur te dhenat e ndara fizikisht e per t’iu qasur me lehte atyre. P.sh. Memoria ndahet ne segmente 64 kB (2^16 = 64 kB), ku kemi 64 kB segmente apo segment, dhe 64 kB memorie brenda segmentit, keshtu qe bashkimi i sgem. regjistrave dhe regjitrave te perhershem na jep nje adrese te caktuar.

220 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

221 MOV instruksioni (2/4)

222 MOV instruksioni (3/4) CS dhe IP nuk mund te perdoren si op1 (operand qe marrin vlere)

223 MOV instruksioni (4/4)


Download ppt "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."

Similar presentations


Ads by Google