620 likes | 923 Views
KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS. Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt. An kstesn ė s paskaitos turinys. Hierarchin ė atmin č i ų sistema Puslaidininkinių a tmin č i ų tipai Lokališkumo principas Kešas (spartinančioji atmintis)
E N D
KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt
Ankstesnės paskaitos turinys • Hierarchinė atminčių sistema • Puslaidininkinių atminčių tipai • Lokališkumo principas • Kešas (spartinančioji atmintis) • Kešo principai • Procesorių kešai • Kešo nauda • Dinaminė atmintis (DRAM) • Klasikinių DRAM tipai • Šiuolaikinės DRAM S.Maciulevičius
Šios paskaitos turinys • Pagrindinė atmintis • DRAM moduliai • Atminčių kontrolė • Atminties valdymas • Virtualioji atmintis • Virtualiosios atminties esmė • Segmentavimo mechanizmas • Puslapiavimo mechanizmas • Adresų transliacija • Išorinė atmintis • Magnetiniai diskai S.Maciulevičius
PAGRINDINĖ ATMINTIS S.Maciulevičius
Hierarchinė atminčių sistema CPU reg. Kešas Greitis, kaina Talpa Pagrindinė atmintis Išorinė atmintis S.Maciulevičius
DRAM moduliai • SIPP – Single In-Line Pin Package • adatiniai kontaktai • 30 kontaktų • nepraktiški - lankstosi, nulūžta • SIMM – Single In-Line Memory Module • “trumpieji” (90 mm) – 30 kontaktų, 8 bitai • “ilgieji” (108 mm) – 72 kontaktai, 4 baitai • 32 arba 36 - su lyginumo kontrole • ECC-36 ir ECC-40 – su klaidų korekcija S.Maciulevičius
DRAM moduliai • DIMM – Dual In-Line Memory Module • 133,35 mm – 168 kontaktai, 8 baitai • 64 (paprasta) , 72 (lyginumo kontr. arba klaidų korekcija), 80 bitų (klaidų korekcija) S.Maciulevičius
DRAM moduliai • DDR, DDR2 ir DDR3 moduliai skiriasi lizdų raktų geometrija. • Čia matome staliniams kompiuteriams skirtų modulių matmenis: S.Maciulevičius
SPD mikroschema • Pagal JEDEC standartą kiekviename modulyje turi būti nedidelė speciali ROM mikroschema, vadinama SPD (Serial Presence Detect), kurioje laikoma informacija: • apie konfigūraciją ir tipą, • apie laiko diagramą, • apie temperatūrinį režimą, • apie gamintoją (jo kodas), • serijinis numeris, • pagaminimo data. S.Maciulevičius
SPD mikroschema Pavyzdžiui, testas CPU-Z rodo tokią informaciją apie modulį iš SPD: • tai Supertalent DDR2 atminties modulis, kurio talpa 2 GB, galintis perduoti duomenis 666 MHz dažniu (magistralė sinchronizuojama 333 MHz dažniu) • pagamintas 2007 metų 13-ą savaitę, klaidų korekcijos nėra • lentelėje nurodyti laiko parametrai, kurių reikšmės priklauso nuo magistralės dažnio (200, 266 ar 333 MHz) S.Maciulevičius
0 1 0 1 0 1 1 0 k k = b0 b1 … b7 - lyginumo k = 1 b0 b1 … b7 - nelyginumo Duomenų magistralė n 1 1 Informaciniai AR baitai DR Kontrolinių bitų formavimo / kontrolės schema k Adreso magistr. klaida n Duomenų magistralė k Paprastai k=n/8 Lyginumo kontrolė n Kontroliniai bitai m S.Maciulevičius
Duomenų magistralė n 1 1 Informaciniai AR baitai DR Hemingo kodo formavimas k Adreso magistr. Hemingo kodo kontrolė k Korek-cijosschema n n n Kontroliniai bitai m k k klaida Klaidų kontrolė ir korekcija Hemingo kodas: ištaiso pavienes klaidas ir fiksuoja daugelį kartotinių. Kodo ilgis paprastaik=log2n + 1; plius lyginumo kontrolė -k=log2n + 2 S.Maciulevičius
Atminties valdymas CPU, kreipdamasis į atmintį, naudoja tokius signalus (linijas) : • adresą, • RD (skaityti) ir WR (įrašyti), • duomenų linijas. Kaip matėme, DRAM valdymui reikalingi signalai: • adresas (eilutės ir stulpelio numeriai), • strobavimo signalai RAS ir CAS, • WE (įrašyti), • duomenų žodis, • OE (išėjimo buferių valdymui). 2009-2013 S.Maciulevičius 13
Atminties valdymas CPU D D DRAM A A DRAM kontro-leris Rd RAS# CAS# Wr WE# OE# S.Maciulevičius
Atminties valdymas • DRAM kontroleris, transformuodamas CPU kreipinio signalų rinkinį į atminčiai valdyti reikalingus signalus, kartu ir formuoja laiko diagramą pagal konkrečiam DRAM tipui (DDR2, DDR3, ...) reikalingą jų tarpusavio išdėstymą (žr. skaidres apie dinaminę atmintį su laiko diagramų pavyzdžiais) • Anksčiau išleistuose kompiuteriuose toks atminties kontroleris įeidavo į valdymo schemų rinkinio (VSR) sudėtį • Kai kuriuose šiuolaikiniuose kompiuteriuose toks atminties kontroleris jau realizuojamas procesoriaus kristale. 2009-2013 S.Maciulevičius 15
Atminties kontrolerio vieta kompiuteryje CPU ATM FSB VSR (šiaurinis tiltas) CPU FSB ATM VSR AK AK AK – atminties kontroleris 2009-2013 S.Maciulevičius 16
Dviejų kanalų atmintis • Siekiant padidinti mainų tarp procesoriaus ir atminties arba tarp atminties ir spartinančiosios atminties spartą, buvo pradėta naudoti du atskirus kanalus • Tai toks atminties realizavimo būdas, kai duomenys perskaitomi dvigubu pločiu, o DRAM kontroleris juos perduoda į procesorių per du kartus • Tam reikia, kad DRAM kontroleris palaikytų tokį darbo režimą 2009-2013 S.Maciulevičius 17
Dviejų kanalų atmintis • Norint naudoti, pavyzdžiui, dviejų kanalų atmintį, reikia: • turėti VSR (ar procesorių) su atminties kontroleriu, palaikančiu du kanalus; • turėti du (keturis ar šešis) poromis identiškus atminties modulius; • tinkamai juos įdėti į lizdus pagrindinėje plokštėje. 2009-2013 S.Maciulevičius 18
2 kanalų atmintis S.Maciulevičius
Lizdai dviejų kanalų atminčiai 1 kanalas 2 kanalas
DDR3 modulis (8,5 GB/s) DDR3 modulis (8,5 GB/s) DDR3 modulis (8,5 GB/s) Intel Core i7 QPI (21,6 GB/s) X58 IOH (I/O Hub) 3 kanalų atmintis ir Core i7 S.Maciulevičius
4 kanalai • Intel Core i7-3960K, Core i7-3960X, Core i7-3820, Intel Xeon E5-16xx ir Xeon E5-16xxprocesoriuose integruotas atminties kontroleris palaiko net 4 kanalųDDR3-1600 atmintis • 4 kanalųDDR3 atmintis palaiko ir Opteron 6100serijos Magny-Cours (45 nm)ir Opteron 6200serijos Interlagos (32 nm) procesoriai S.Maciulevičius
VIRTUALIOJI ATMINTIS 2009-2013 S.Maciulevičius 23
Virtualioji atmintis • Šiuolaikiniai kompiuteriai vienu metu gali vykdyti kelias programas (pseudolygiagretus ar lygiagretus darbas) • Kiekviena tokia programa (procesas) turi atskirą kodo ir duomenų sritį • Mechanizmas, kuris užtikrina sąlygas keliems procesamas vykti vienu metu, korektiškai pasidalijant atmintį ir teisingai vykdant informacijos adresavimą, bei programos loginių adresų transformavimą į fizinius adresus, vadinamasVIRTUALIĄJA ATMINTIMI 2009-2013 S.Maciulevičius 24
Virtualioji atmintis • Be to, virtualioji atmintis pasirūpina, kad procesui reikalinga informacija (programos kodas bei duomenys) reikiamu momentu atsidurtų pagrindinėje atmintyje, saugo procesui išskirtą sritį nuo kitų procesų • Virtualioji atmintisfiziniu požiūriu – pagrindinė atmintis plius dalis išorinės (disko), apjungtos priemonėmis adresams transformuoti ir informacijai persiųsti tarp šių lygmenų • Virtualioji atmintisloginiu požiūriu – išplėsta vieningai adresuojama atminties sritis 2009-2013 S.Maciulevičius 25
Atminties adresavimas • Kalbėdami apie virtualiąją atmintį ir adresus, turime skirti kelias sąvokas: • vykdomasis arba loginis adresas– informacijos (komandos ar duomenų) adresas, kuris paskaičiuojamas procesoriuje pagal naudojamą adresacijos būdą; dažnai jis vadinamas virtualiuoju adresu • fizinis adresas– informacijos (komandos ar duomenų) adresas, kuris nurodo tikrąją jos vietą atmintyje 2009-2013 S.Maciulevičius 26
Virtualiosios atminties tipai • Du pagrindiniai virtualiosios atminties realizacijos principai: • Segmentavimas. Uždaviniui spręsti reikalinga atminties sritis vadinama segmentu. Segmentas – ištisinė atminties sritis. Jo dydis priklauso nuo uždavinio poreikių. Vienam uždaviniui gali būti suformuoti keli segmentai – kodo (programos), duomenų, steko. • Puslapiavimas – atmintis padalinama į fiksuoto dydžio blokus, vadinamus puslapiais. Uždaviniui spręsti reikalinga atminties sritis užima tam tikrą puslapių skaičių. Vienam uždaviniui išskirti puslapiai gali būti išdėstyti atmintyje bet kuria tvarka. 2009-2013 S.Maciulevičius 27
Segmentai atmintyje Op. sistema Op. sistema Op. sistema Op. sistema 1 procesas 2 procesas 2 procesas 2 procesas 2 procesas 3 procesas 3 procesas 3 procesas 3 procesas 4 procesas 4 procesas 6 procesas 5 procesas 5 procesas 5 procesas 5 procesas 2009-2013 S.Maciulevičius 28
Segmentavimo mechanizmas 31 2423 0 Atmintis Segmento Nr. Baito adresas 2 segm 0 segm. 1 segm. 8000 Segmentų lentelė 24 8 Segm.Nr. 32 bitų bazė 0 20000H 1 4F000H 2 8000H … …. 20000 4F000 2009-2013 S.Maciulevičius 29
Segmentavimo mechanizmas • Čia pateiktas paprastas virtualiosios atminties segmentavimo realizacijos principas: • Aukščiausiasis adreso baitas skirtas segmento numeriui. Vadinasi, segmento dydis ribojamas 24 bitų ilgio adresu – 224 = 16 MB • Informacija apie segmentų pradžios adresus (bazes) laikoma specialioje lentelėje, pavadintoje segmentų lentele. • Pagal segmento numerį iš lentelės išrenkamas segmento pradžios adresas, kuris sumuojamas su 24 bitų baito adresu 2009-2013 S.Maciulevičius 30
Segmentavimo mechanizmasIA-32 15 0 31 0 Selektorius Vykdomasis adresas Deskriptorių lentelė Segmento deskriptorius + Bazės adresas 31 0 Fizinis adresas 2009-2013 S.Maciulevičius 31
Segmentavimo mechanizmas IA-32 • Čia pateiktas Intel 32 bitų architektūroje priimtas virtualiosios atminties segmentavimo realizacijos principas: • 1. Segmento informacija laikoma specialioje duomenų struktūroje, pavadintoje segmento deskriptoriumi: • segmento pradžios adresas – bazė; • segmento dydis, .... • 2. Segmentų deskriptoriai laikomi specialioje lentelėje, pavadintoje deskriptoriųlentele. • 3. Segmento deskriptoriaus numeris laikomas 2 baitų žodyje, pavadintame selektoriumi. 2009-2013 S.Maciulevičius 32
Puslapiavimo mechanizmas Loginio puslapio numeris Fizinio puslapio numeris Baito poslinkis Baito poslinkis Puslapių lentelė Apsaugos bitai Loginis adresas: Fizinis adresas: 2009-2013 S.Maciulevičius 33
Puslapiavimo mechanizmas • Čia pateiktas paprastas virtualiosios atminties puslapiavimo principas: • Visi puslapiai yra vienodo dydžio, tarkime, 4 KB. • Todėl adresą padalijame į dvi dalis: - žemiausioji adreso dalis skirta baito poslinkiui, • - aukščiausioji adreso dalis skirta loginio puslapio numeriui. • 3. Pagal loginio puslapio numerį iš lentelės išrenkamas fizinio puslapio numeris, kuris kartu su baito poslinkiu ir duoda tikrąjį (fizinį) adresą 2009-2013 S.Maciulevičius 34
Adresų transliacija Loginio adreso transformacija į fizinį vadinama adresų transliacija. x86 procesoriuose naudojama tokia adresų transliacijos schema: Loginis adresas Linijinis adresas Fizinis adresas Segmentų lentelė Puslapių lentelė 2009-2013 S.Maciulevičius 35
Adresų transliacija Puslapiai Puslapių lentelė Progr. kodas Pagrindinė atmintis Duo- menys Užduotis Diskas Stekas Diskas Kodo seg- mentas Duome- nų seg- mentas Steko seg- mentas 2009-2013 S.Maciulevičius 36
Adresų transliacija • Matome, kad norint sužinoti tikrąją informacijos vietą atmintyje gali tekti du kartus papildomai kreiptis į atmintį (įrašams iš lentelių pasiekti) • Šios lentelės užima daug vietos (pavyzdžiui, 4 GB atmintį sudaro milijonas puslapių po 4 KB), todėl jas saugoti procesoriaus keše – nerealu • Todėl dabar adresų transliacijai reikalinga informacija laikoma procesoriuje esančiame specialiame keše, kurį vadinsime sparčiosios transliacijos buferiu (TLB – angl.Translation Lookaside Buffer). Kiekvienas tokio kešo įrašas užtikrina sparčią transliaciją, kreipiantis net į 1000 žodžiųpo 4 baitus 2009-2013 S.Maciulevičius 37
Sparčiosios transliacijos buferis Loginis adresas iš procesoriaus Loginio puslapio numeris Fizinio puslapio numeris Baito poslinkis Baito poslinkis Nepataikyta Sparčiosios transliacijos buferis Puslapių lentelė Įkrauti TLB Pataikyta Puslapio atmintyje nėra OR Fizinis adresas į atmintį Puslapių mainai su disku 2009-2013 S.Maciulevičius 38
Sparčiosios transliacijos buferis • Pagal loginiame adrese esantį loginio puslapio numerį sparčiosios transliacijos buferyje ieškome reikalingo puslapių lentelės įrašo • Jei įrašą randame (“pataikyta”), iš jo paimame fizinio puslapio numerį, kuris kartu su baito poslinkiu ir sudaro fizinį adresą • Jei įrašo šiame buferyje nėra (“nepataikyta”), tenka kreiptis į atmintyje laikomą puslapių lentelę, iš jos perskaitytą įrašą įkeliame į sparčiosios transliacijos buferį, o jame esantį fizinio puslapio numerį perduodame į formuojamą fizinį adresą 2009-2013 S.Maciulevičius 39
IŠORINĖ ATMINTIS 2009-2013 S.Maciulevičius 41
Išorinė atmintis Ilgalaikiam informacijos (programų ir duomenų) saugojimui kompiuteriuose naudojami: • standieji diskai, • optiniai kompaktiniai diskai (CD), • skaitmeniniai universalūs diskai (DVD), • flash laikmenos („atmintukai”), • elektroniniai diskai (SSD). Išorinėje atmintyje yra naudojamos ne tik stacionarios laikmenos (pavyzdžiui, visiems gerai žinomi standieji diskai), bet ir keičiamos laikmenos (išoriniai diskai, DVD, flash laikmenos) 2009-2013 S.Maciulevičius 42
Pirmasis MD įtaisas • Pirmasis MD įtaisas sukurtas IBM 1956 m. Įtaiso parametrai: • 24” skersmuo, • talpa – apie 5 MB, • 50plokštelių, • sukimosi greitis – 1200 aps/min, • paieškos laikas – apie 1 s. • 1961 IBM sukurtas MD su ant oro pagalvės pakibusiomis galvutėmis. • 1963 IBM sukurtas MD su keičiamu diskų paketu. • 1970 IBM sukurtas 8 colių diskečių įtaisas. 2009-2013 S.Maciulevičius 43
Pirmasis MD įtaisas • 50 plokštelių • 1 galvutė 2009-2013 S.Maciulevičius 44
1 GB diskas - įdomu Pirmasis gigabaito talpos diskųįtaisas, IBM 3380, sukurtas 1980 m., buvo šaldytuvo dydžio, svėrė 550 svarus (apie 250 kg), kainavo $40,000. The world's first gigabyte-capacity disk drive, the IBM 3380, introduced in 1980, was the size of a refrigerator, weighed 550 pounds (about 250 kg), and had a price tag of $40,000. 2009-2013 S.Maciulevičius 45
Magnetiniai diskai Sektorius Velenas Cilindras Takelis Sektorius Takelis 2009-2013 S.Maciulevičius 46
Informacija magnetiniame diske • Takelis – vienas iš koncentrinių apskritimų; numeruojami nuo išorės (0) į vidų • Cilindras – tą patį numerį turinčių takelių visuma • Sektorius– takelio dalis, anksčiau buvo 512 baitų, o nuo 2007 metų įvesti 4096 baitų sektoriai, kurie tampa šiuolaikinių diskų standartu • Klasteris – grupė sektorių, apjungtų į stambesnį junginį failų sistemos darbo efektyvumui padidinti; failas užima tam tikrą klasterių skaičių 2009-2013 S.Maciulevičius 47
Klasteriai magnetiniame diske 2009-2013 S.Maciulevičius 48
Informacija magnetiniame diske • Pirmaisiais metais sektorių skaičiustakeliuose buvo vienodas • Kadangi takelių ilgis išorėje ir prie centro žymiai skiriasi, vėliau pradėta takeliuose naudoti skirtingą sektorių skaičių • Šiuolaikiniuose diskuose takeliai suskirstyti į “zonas” su vienodu sektorių skaičiumi 2009-2013 S.Maciulevičius 49
Magnetiniai diskai Velenas Magnetinis paviršius Skaitymo-įrašymo galvutės Korpusas Kontroleris Duomenų kešas 2009-2013 S.Maciulevičius 50