Kasutaja:Arozm/Pentium II ja PowerPC Mäluhaldus

Allikas: Vikipeedia

Pentium II Mäluhaldus[muuda | muuda lähteteksti]

Alates 32-bit arhitektuuri esitamist, mikroprotsessorid on kantud sisse keerustatuid mäluhaldus skeeme. Enamutes juhtumites mikroprotsessori versioonid ületavad nendest suurimaid eelkäijaid. Sellepärast et skeemid olid läbi töötud mikroprotsessori riistvara tootjate poolt ja samaajal olid võimelised olla rakendatud igasugustes operatsioonisüsteemides, nende kanduvus on olla mitmeotstarbelised. Eeskujunduslik näidis on skeem, mis oli Pentium II kasutuses olnud. Pentium II mäluhaldus riistvara on põhimõteliselt sama mida kasutasid Intel 80386 ja 80486 protsessorid, lihtsalt mõne kaasajastamisega.

Aadressi ruumi[muuda | muuda lähteteksti]

Pentium II kannab sisse riistvara nii segmentatsiooni kui ka pageerimise jaoks. Aga mõlemad mehhanismid on võimalik ka välja lülitada, mis lubab valida nelja erineva mäluliikide vahel:

  • Mittesegmenteeritud mittepageeritud mälu: selles olekus on virtuaalne aadress sama füüsilise aadressiga. See on kasulik näiteks vähe-komplitseeritu ja tohutult tootliku rakenduse juhul.
  • Mittesegmenteeritud lehealuselt pageeritud mälu: sel juhul on mälu vaadeldav nagu pageeritud lineaarne aadressi ruum. Mälu kaitse ja haldus on tehtud läbi pageerimist. See mäluliik on eelistatud mõnedes operatsiooni süsteemides (näiteks Berkeley UNIX).
  • Segmenteeritud mittepageeritud mälu: siin on mälu nähtud nagu loogiliste aadressi ruumi kollektsioon. Sellise vaate eelis on et, kui on vajalik, siis see vägivaldselt allandab kaitse ühebaiti tasandini. Sellele lisaks, pageerimisest erinevalt, see garanteerib et hetkel vajalik tõlgendustaabel (segmendi tabel) on töötletud kui segment on mälus. Tähendab, segmenteeritud mittepageeritud mälu tekib ennustataval ligipääsu ajal.
  • Segmenteeritud pageeritud mälu: segmentatsioon on kasutatud selleks, et defineerida loogilise mälu partitsioonide alus ligipääsu kontrollimise juurde, pageerimine on kasutatud selleks, et halduta mälu hajutamist partitsioonide sees. Seda eelistavad sellised operatsiooni süsteemid nagu UNIX System V.
    Pentium II Mäluhaldus Formaatid

Segmenteerimine[muuda | muuda lähteteksti]

Kui segmenteerimine on kasutusele võetud, iga virtuaalne aadress (nimetatud Pentium II dokumentatsioonis loogiliseks aadressiks) koosneb 16-biitilistest segmentidele viidetest ja 32-biitilisest nihest. 2 biiti segmentidele viidetest tegelevad kaitse mehhanismiga, jädates 14 biiti üksiku segmenti täpsustamiseks. Sel viisil, mittesegmenteeritud mäluga koos on kasutaja virtuaalne mälu 232 = 4 GB. Segmenteeritud mäluga koos on kogu virtuaalne mälu 246 =64 TB. Füüsiline aadress kasutab 32-biitilise aadressi maksimaalselt 4 GB jaoks. Virtuaalse mälu hulk on tegelikult võib olla ka rohkem kui 64 TB, sellepärast et virtuaalse aadressi protsessori interpretatsioon sõltub sellest, mis protsess on hetkel aktiivne. Virtuaalse aadressi ruum on jagatud kaheks osaks. Üks poolik virtuaalse aadressi ruumist on globaalne, kõik protsesside poolt jagatud; ülejäänud osa on lokaalne ja on ka unikaalne iga protsessi jaoks.

Iga segmentiga on seotud 2 turvalisuse meetodit: priviligeerimise taseme ja ligipääsu seadistus. On olemas neli priviligeerimise tasemet alates kõige turvalisemast (tase 0) ja lõpetades kõige vähem turvalisemast (tase 3). Üks priviligeerimise tase, mis on seotud andme segmentiga on selle „klassifikatsioon“; priviligeerimise tase, mis on seotud programmi segmentiga on selle „intervall“. Täitav programm võib ainult ligipääsuda nende andme segmentide juurde, mille intervalli tase on väiksem kui (rohkem priviligeeritud) või on sama (sama priviligeeritud) andme segmenti priviligeerimise tasemega.

Riistvara ei käski kuidas need priviligeeritud tased on kasutatud, see sõltub pigem operatsiooni süsteemi kujundusest ja teostamisest. Oli plaanitsetud, et priviligeerimise tase 1 on kasutusele võetud enamustes operatsiooni süsteemides, tase 0 aga on kasutatud selles osas operatsiooni süsteemidest, kus aktsent on mäluhalduse, turvalisuse ja ligipääsu kontrollimise peale pantud. See jätab kaks taset rakenduste jaoks. Palju süsteeme kasutavad tase 3 nende jaoks ja jätavad tase 2 kasutamata. Spetsialiseeritud rakenduste allsüsteemid, mis peavad olema kaitstud sellepärast et nemad kaasavad enda omad kaitse mehhanismid, on kandidatid tase 2 jaoks. Mõned näited on andmebaaside haldussüsteemid, kontorite automatsiooni süsteemid ja tarkvara arendatavad keskkonnad.

Lisaks regulatsioonile andme segmentide juurde ligipääsu saamiseks, priviligeerimise mehhanism limiteerib kindlate instruktsioonide kasutamist. Mõned instruktsioonid, nagu need mis tegelevad mäluhaldus registritega, võib täita ainult tase 0 juures. Sise- ja väljalülitamis instruktsioonid võiks täita kuni teatud taseni, mis on kehtestatud operatsiooni süsteemi poolt; tavaliselt see on tase 1. Andme segmenti ligipääsu seadistus täpsustab kas on lubatud lugemis-kirjutamis või ainult lugeis ligipääs. Programmi segmentide juures ligipääsu seadistus konkretiseerib kas saab ainult lugeda või võib ka programmi täita.

Aadressi tõlgendamis mehhanism segmenteerimise juures kaasa arvab virtuaalse aadressi omistamine seal, kus viidetakse lineaarsele aadressile. (Joonis 1(a)) Virtuaalne aadress koosneb 32-biitilisest intervalist ja 16-biitilisest segmenti sektorist. (Joonis 1(b)) Segmenti sektor koosneb jargnevast:

  • Tabeli indikaator (TI): märkib kas tõlgendamise jaoks peaks kasutama globaalse või lokaalse segmenti tabelit.
  • Segmenti number: see toimetab indeksina.
  • Nõutud priviligeerimise tase: selle ligipääsu juures vajalik priviligeerimise tase.
Pentium II Mälu Aadressi Tõlgendus Mehhanism

Pageerimine[muuda | muuda lähteteksti]

Segmenteerimine on lisaseadistus ja ei pea sees olema. Kui segmenteerimine on kasutatud, siis programmides kasutatakse virtuaalseid aadresse mis on teisendatud lineaarseteks aadressideks nii nagu eelnevalt mainitud. Kui segmenteerimmist ei kasuta, siis programmides kasutatakse lineaarseid aadresse. Mõlemal juhul järgmine samm on teisendada see lineaarne aadress 32-biitiseks aadressiks.

Et lineaarse aadressi struktuurist aru saada, te peaks teadma, et Pentium II pageerimise mehhanism on tegelikult kahetasemelises tabelis välja otsimis operatsioon. Esimene tase on lehekülje-kataloog, mille sees on kuni 1024 sissekandmist. See tükeldab 4-Gigabaitilise lineaarse mälu ruumi 1024 lehekülje-gruppi, igaüks oma lehekülje-tabeliga ja on 4 Mbaiti pikkusega. Iga lehekülje-tabeli sees on kuni 1024 sissekandmist; iga sissekanne vastab üksikule 4-kilobaitilisele leheküljele. Mäluhaldusel on olemas seadistus ühe lehekülje kataloogi kasutamiseks kõikide protsesside jaoks, ühe lehekülje kataloogi kasutamiseks iga protsessi jaoks, ja mõneks kombinatsiooniks kahest. Hetke ülesanne lahendamiseks lehekülje kataloog on alati pea mälu sees.

Pentium II kasutab ka kõrvalevaatavat tõlgendamis-puhverit. See puhver saab sees kanda 32 lehekülje tabeli sissekandmist. Puhver on tühjendatud iga kord kui lehekülje kataloog on muudetud.

Lõpuks, Pentium II –l on uus omadus, mida ei ole olemas 80386-l ja 80486-l, see on kahe lehte suuruse ette nägemine. Kui see leheküljete suurendus bit on kontrollimas, siis register on pantud neljast üheks. Siis pageerimis plokk lubab operatsiooni süsteemi programmerit defineerida lehekülje suurust kas 4 kilobaitiks või 4 Megabaitiks.

Kui on kasutatud 4-Mbaitilised leheküljed, siis on ainult üks tabeli otsimis taset pageerimise jaoks. Kui riistvara siseneb lehekülje-kataloogi, lehekülje kataloogi sisepääs on pantud 1ks. Sellisel seisukorral, biitid 9 kuni 21 on ignoreeritud aga biitid 22 kuni 31 defineerivad põhi aadressi mälus 4-Megabaitilise lehekülje jaoks. Niimodi on olemas ühe leheküljega tabel.

4-Megabaitilise lehekülje kasutamine vähendab mäluhalduse laadustamise jaoks suure põhimälu vajadust. 4-kilobaitilise leheküljedega, täis 4-Gigabaitiline põhimälu vajab kuskil 4 Megabaiti mälut ainult lehekülje tabelite jaoks. 4-Mbaitiliste leheküljedega, üksik tabel, mis on 4 kilobaiti pikkusega, on piisav lehekülje mäluhalduse jaoks.


PowerPC Mäluhaldus Riistvara[muuda | muuda lähteteksti]

PowerPC pakub ulatuslik aadressi mehhanismide kogus. 32-biitiline arhitektuuri realiseerimise jaoks on kasutatud pageerimise skeem lihtsa segmentatsiooni mehhanismiga. 64-biitilise realiseerimise jaoks on kasutatud palju võimelikumad mehhanismid ja pageerimine. Lisaks sellele on mõlema 32-biitilise ja 64-biitilise protsessorite jaoks on olemas alternatiivne riistvara mehhanism. Aadresseerimisskeemide plokk on kujundatud selleks,et aadresserida üks pageerimis mehhanismide juhtimisplokk. Pageerimisega programmi jaoks on võimalik viideta suurele leheküljete numbrile. Näiteks, seda võiks näidata programmid mis kasutavad operatsiooni süsteemi tabelid või graafika kaadripuhvrit. Tulemuseks võiks olla see, et sagedamini kasutuses olevad leheküljed on kogu aeg sisse- ja väljapageerimise protsessis. Aadresseerimisplokk võimaldab protsessoril kaardistada juhendamismälu nelja suurt plokki ja andmete mälu neli suurt plokki niimodi, et see ei puuduta pageerimismehhanismi.

32-biitiline PowerPC teeb võimalikuks 32-biitilise efektiivse aadressi kasutamise. See aadress sisaldab 12-biitilist bait sektori ja 16-biitilist identifikaatori. Sellega, on kasutatud 212=4 kilobaitilisi lehekülge. On lubatud kuni 216=64Kb lehekülge segmenti peale. Neli biiti aadressist on kasutatud selleks, et kehtestada üks 16st segmenti reigistrist. Nende registrite sisu on kontrollitav operatsiooni süsteemi poolt. Iga segmenti register sisaldab iseennas ligipääsu kontrollinformatsiooni biitid ja 24-biitiline identifikaator, et siis 32-biitiline efektiivne aadress kaardistab 52-biitiliseks virtuaalseks aadressiks.

PowerPC 32-biitilise aadressi tõlgendus

PowerPC teeb võimalikuks üksikleheküljelist ümberpööratuid tabelit. Virtuaalne aadress on kasutatud selleks, et indekseerida lehekülje tabeli sisse järgnev viis. Esiteks, ‘hash’-kood on kalkureeritud järgmiselt: H(0...18)=SID(5...23)+VPN(0...18)

Virtuaalse lehekülje number virtuaalse aadressi sees on pantud vasakotsa (kõige olulisemat otsa) 3 binaarse nullidega koos, et formeerida 19-biitilise numbrit. Tabel on organiseeritud n gruppidega, igas 8 sissepääsu. Alates 10 kuni 19 biitini ‘hash’-koodist (sõltuvalt lehekülje tabeli suurusest) on kasutatud et valida üks gruppidest tabelis. Mäluhaldus-riistvara pärast skaneerib gruppi kaheksa sissepääsu et testida sobivus virtuaalse aadressiga.

Et oleks sobivus, iga lehekülje tabeli sissepääs sisaldab virtuaalse segmenti ID ja virtuaalse lehekülje numbri 6 vasakut äärmised biiti, nimetatud abbreviatuurne lehekülje indeks ( sellepärast et vähemalt 10 biiti 16st on kasutatud ‘hash’-koodis). Kui sobivus on olemas, siis 20-biitiline lehekülje reaalne aadress seotakse alase 12-biitidega efektiivsest aadressist, et formeerida 32-biitilist füüsilise aadressi sisenemiseks.

Kui aga sobivust ei ole, siis ‘hash’-kood koplekteeritakse, et saada uue lehekülje tabeli indeksi mis on sama relatiivse positsiooni peal tabeli teises otsas. See grupp on nüüd skaneeritakse sobivuse peale. Kui sobivust ei leiu, siis tuleb välja lehekülje viga. Fail:(Joonis3.png)

64-biitiline mäluhaldus skeem on kujutletud , et olla 32-biitilise rakendustega ühtesobitatav. Sisuliselt kõik efektiivsed aadressid, põhiregistrid ja osakonna aadressi registrid on täiendatud vasakult 64 biitidega.

Viited[muuda | muuda lähteteksti]

  • Advanced computer architecture : parallelism, scalability, programmability, Kai Hwang, New York, McGraw-Hill, 1993
  • Computer architecture and design, A. J. van de Goor, Wokingham, Addison-Wesley, 1989
  • Микропроцессоры и микрокомпьютеры : вводный курс, Д. Гивоне, Р. Россер ; перевод с английского В. С. Штаркмана и Т. А. Шаргиной ; под редакцией В. С. Штаркмана, Москва, Мир, 1983
  • Computer organization and architecture: designing for performance, 5th ed., international ed., William Stallings, Upper Saddle River (N.J.), Prentice-Hall International, 2000
  • Principles of computer hardware, 4th ed., Alan Clements, Oxford, Oxford University Press, 2006