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)