Komp. Atmintys
Pagrindinė puslaidininkinė atmintis
Senesniuosiuose kompiuteriuose labiausiai paplitusi pagrindinės kompiuterio laisvosios kreiptie; atminties forma buvo feromagnetinių toroidų, vadintų šerdimis (branduoliu) {core}, ir laidininkų matricos Būtent todėl pagrindinė atmintis buvo vadinama ,,korine“, t. y. pastoviai asocijuojama su šerdimis, ši: terminas vartojamas iki šiol. Laikui bėgant nuslaidininkinė .atmintis nukonkuravo ,,korinę“ atmintį. Dabar puslaidininkinių mikroschemų naudojimas pagrindinei atminčiai yra universalus. Tolesniame poskyryje pateikta pagrindiniai puslaidininkinės atminties technologijos aspektai.
Laisvosios kreipties puslaidininkinės atminties tipai
Visi šiame skyriuje aprašyti atminties tipai yra laisvosios kreipties, t. y. bet kuris atminties žžodis tiesiogiai pasiekiamas esant adresavimo mechanizmui.
3.2 lentelėje pateikti pagrindiniai puslaidininkinės atminties tipai. Labiausiai paplitęs – laisvosios kreipties atmintis (Random Access Memory, RAM}. Savaime aišku, kad tai įsigalėjusios terminijos klaida, nes visi lentelėje pateikti atminties tipai yra laisvosios kreipties. Vienas iš svarbiausių RAM ypatumų yra tai, kad duomenis iš atminties galima skaityti, o tada lengvai ir greitai rašyti į atmintį naujus. Rašant ir skaitant naudojami elektriniai signalai.
3.2 lentelė. Puslaidininkinės atminties tipai
Atminties tipas
Katėgorija
Išvalymas
Rašymo mechanizmas
Priklausomybė nuo elektros energijos
laisvosios kreipties atmintis {RAM}
skaitymo ir rašyrao aatmintis
elektra, baitų lygmeniu
elektrinis
priklausoma
pastovioji atmintis (tik skaitoma) {ROM}
tik skaitoma atmintis
neįmanomas
šablonai {Masks}
nepriklausoma
programuojamoji pastovioji atmintis {PROM}
elektrinis
trinioji {Erasable} programuo-jamoji atmintis {EPROM}
daugiausia
skaitoma atmintis
{Read mostly memory}
ultravioletine šviesa, mikroscfieinos lygmeniu
,,Fleš“ {Flash} atmintis
elektra, diiomenų blokų lygmenįu
elektra išvaloma programuo-jamoji atmintis {EEPROM}
elektra, baitų lygmeniu
Kitas svarbus bruožas yra tai, kad RAM ppriklauso nuo elektros energijos. RAM turi būti nuolat maitinama elektros energija. Jei maitinimas nutruks, visi duomenys iš atminties dings. Todėl RAM gali būti naudojama tik kaip trumpalaikis duomenų kaupiklis.
RAM technologija skiriama į dvi: statinę ir dinaminę. Dinaminė RAM {DRAM} sudaryta iš ląstelių, kuriose duomenys saugomi kaip kondensatoriaus elektros krūvis. Krūvio egzistavimas ar neegzistavimas interpretuojamas kaip binariniai atitinkamai 1 arba 0. Kadangi kondensatoriai gali natūraliai išsikrauti, dinaminei RAM būtinas periodinis elektros krūvių regeneravimas. Statinėje RAM {SRAM} duomenys saugomi pagal tradicinę trigerių loginę {flip-flop logic-gate} konfigūraciją. Statinė RAM duomenis saugo tol, kol maitinama elektra.
Abi – ir statinė, ir dinaminė RAM atmintys priklauso nuo elektros energijos. Dinaminės atminties ląstelės schemotechniškai (ir technologiškai) paprastesnės, vadinasi, ir mažesnės negu statinės atminties ląstelės. Taigi dinaminė RAM ttankesnė ir pigesnė nei statinė RAM. Kita vertus, dinaminei RAM būtinos regeneravimo grandinės. Didelės talpos atminties regeneravimo grandinių (bendrų visiems DRAM moduliams) papildoma fiksuota kaina kompensuojama mažos dinaminės RAM ląstelių kaina (santykinė
E.
regeneravimo grandinių kaina mažėja didėjant atminties talpai). Todėl dinaminė RAM atitinka didelės talpos atminties reikalavimus. Tačiau statinės RAM moduliai šiek tiek spartesni už dinaminius.
RAM priešybė yra tik skaitomos atminties įrenginys {Read Only Memory – ROM}. Kaip išplaukia iš pavadinimo, ROM talpina duomenis, kurie negali būti pakeisti. Į ROM neįmanoma rrašyti naujų duomenų. Svarbi ROM naudojimo sritis yra mikroprogramavimas. Kitos potencialios saugojimo funkcijos:
• Dažniausiai naudojamų paprogramių bibliotekos.
• Sisteminės programos.
• Funkcijų lentelės.
ROM privalumas yra tai, kad saugomos programos arba duomenys pagrindinėje atmintyje esti nuolat ir nereikia jų perkelti iš antrinių kaupiklių.
ROM gaminama kaip ir kitos integrinės mikroschemos – su duomenimis, šie iš karto talpinami į mikroschemą ją gaminant. Dėl to kyla keletas problemų:
• Kai duomenys įrašomi, didėja kaina, nes paprastai gaminama tik šimtai ar tūkstančiai vienodų mikroschemų (bet ne milijonai).
• Negalima daryti klaidų. Jeigu nors vienas bitas bus klaidingas, visas pagamintas mikroschemas teks brokuoti.
Kadangi ROM modulių su iš anksto įrašytomis programomis reikia nelabai daug, kaip pigesnė
alternatyva naudojama PROM { Programmable ROM}. Kaip ir ROM, PROM nepriklausoma nuo elektros
energijos ir gali būti įrašoma tik vieną kartą. Įrašymo procesas pagrįstas elektra ir gali būti atliekamas bet
kuriuo laiko momentu vėliau jau pagamintoje mikroschemoje. Savaime aišku, kad tokiam rašymui arba
,,programavimui“ reikalinga speciali įranga. PROM atitinka lankstumo ir patogumo reikalavimus.
Kitas ROM variantas yra atmintis, pritaikyta pagrindinai skaitymui. Ji naudojama programose, kuriose skaitymo procesai vyksta žymiai dažniau negu rašymo, bet kur būtina nuo elektros energijos nepriklausoma atmintis. Esti trys tokios atminties formos – EPROM, EEPROM ir ,,fleš“ atmintis {flash memory}.
Optiškai valoma programuojamoji pastovioji (tik skaitoma) atmintis {Erasable PProgrammable Read Only Memory – EPROM} skaitoma ir įrašoma elektra kaip PROM. Tačiau prieš įrašymo operaciją visi duomenys tūri būti ištrinti mikroschemą apšviečiant ultravioletine šviesa. Trynimo procesas gali būti pakartotas kelis kartus. Kiekvienas trynimas trunka apie 20 min. Taip EPROM turinys gali būti pakeistas daug kartų. EPROM brangesnė už PROM, privalumas – daugkartinio atnaujinimo galimybė.
Patrauklesnė dažniausiai skaitomos atminties forma yra elektra valoma programuojama pastovioji (tik skaitoma) atmintis {Electrically Erasable Programmable ROM – EEPROM}. Tai atmintis pagrindinai skaitymui, kuri gali būti įrašyta neištrynus, keičiant tik tuos’baitus, kurie turi būti pakeisti. Rašymo operacija vyksta ilgiau negu skaitymo, apie šimtus mikrosekundžių per vieną baitą. EEPROM būdingos savybės: nepriklausomumas nuo elektros energijos ir perprogramayimo galimybė mikroschemos montavimo vietoje, naudojant magistralės valdiklį bei adresų ir duomenų linijas. EEPROM brangesnė už EPROM, o jos santykinė talpa mažesnė.
Naujausia puslaidininkinės atminties rūšis yra ,,fleš“ atmintis {flash memory}, pavadinta taip todėl, kad gali būti labai greitai perrašyta (perprogramuota). Pirmą kartą ,,fleš“ atmintis pritaikyta XX a. 9-ojo dešimtmečio viduryje. Pagal kainą ir funkcionalumą ji tarpinė tarp EPROM ir EEPROM. Kaip ir EEPROM, ,,fleš“ atmintyje taikoma elektrinio trynimo technologija. Visa kompiuterio ,,fleš“ atmintis gali būti ištrinta per 1..10 s, o tai žymiai greičiau negu EPROM. Yra galimybė trinti ne visą atmintį, oo tik tam tikrus duomenų blokus. Tačiau ,,fleš“ atmintis neužtikrino trynimo tam tikrų baitų lygmeniu. Kaip ir EPROM, ,,fleš“ atmintis pagrįsta vieno tranzistoriaus skyrimu vienam bitui saugoti, o tai didelis tankis, palyginti su EEPROM.
Puslaidininkinės atminties sandara K
Pagrindinis puslaidininkinės atminties elementas yra atminties ląstelė. Nepaisant to, kad įvairių technologijų daug, visos puslaidininkinės atminties ląstelės turi keletąbendrų savybių. Jos gali būti:
• vienos iš dviejų stabilių loginių būsenų, taikytinų binariniam 1 arba 0 pavaizduoti.
• įrašytos (nors vieną kartą) – nustatytos įtam tikrą loginę būseną. , ,
• nuskaitytos siekiant sužinoti jų loginę buseną.
Žemiau pateikta dvi galimos operacijos su atminties ląstelėmis. Paprastai ląstelė turi tris funkcionalius kontaktus elektriniams signalams priimti arba išsiųsti (valdymo organus). Pasirinkimo kontaktas {select terminal}, kaip matyti iš pavadinimo, nurodo konkrečią atminties ląstelę įrašymo arba skaitymo operacijai. Valdymo kontaktas {control terminal} nurodo, kuri operacija bus vykdoma – skaitymo ar rašymo. Rašymui į trečiąjį kontaktą tiekiama loginį 1 arba 0 atitinkanti įtampa. Skaitymo metu iš šio kontakto gaunamas atitinkamas ląstelėje įrašyto bito įtampos lygis. Vidinės atminties sutvarkymas, funkcionaviinas, laiko diagramos priklauso nuo taikytos technologijos ir yra aprašyti šių technologijų specifikacijose. Nagrinėdami toliau tarkime, kad kiekviena atminties ląstelė gali būti pasirinkta skaitymui arba rašymui.
Loginė atminties mikroschemų struktūra «
Kaip ir kiti mikroscheminiai produktai puslaidininkinė atmintis kuriama kompaktinėse mikroschemose.
Kiekvienoje mikroschemoje yra atminties ląstelių masyvas. Taikant dabartines technologijas, plačiai paplitusios 16 Mbit mikroschemos, greitai bus laisvai pasiekiamos 256 Mbit.
Nagrinėjant atminties hierarchiją kaip visumą, matyti, kad tarp atminties spartos, talpos ir kainos yra tam tikras ryšys. Jis įžvelgiamas ir analizuojant atminties ląstelių struktūrą bei mikroschemų funkcionavimo logiką. Projektuojant puslaidininkines atminties mikroschernas, vienas iš pagrindinių įvertinimo kriterijųyra duomenų bitų, kurie gali būti perskaityti ar įrašyti tam tikru laiko momentu, skaičius. Vienas kraštutinumas -tokia atminties sandara, kai fizinis ląstelių išdėstymas atitinka loginį žžodžių išsidėstymą atmintyje (tarsi kaip tai ,,atrodo“ procesoriui). Šiuo atveju, masyvas sudarytas iš W žodžią po B bitų kiekviename. Pavyzdžiui, 16 Mbitų mikroschema gali būti organizuota kaip t M (220 = 1 048 576) 16-os bitų žodžių. Kitas kraštutinumas – vadinamasis vieno bito organizavimas {one-bit-per-chip}, kai duomenys per tam tirą laiko momentą skaitomi ar rašomi po vieną bitą. Toliau atminties mikroschemų organizavimą iliustruosime DRAM pavyzdžiu; ROM mikroschemų organizavimas yra toks pat, net paprastesnis.
3.6 pav. pavaizduota tipinis 16-os Mbitų DRAM mikroschemų oorganizavimas. Čia vienu metu gali būti skaitomi arba rašomi 4 bitai. Todėl atminties masyvas sudarytas iš keturių kvadratinių matricų 2048 x 2048 elementų. Bendruoju atveju galimas įvairus fizinis elementų išdėstymas. Tačiau bet kuriuo atveju masyvo elementai sujungti horizontaliomis (eilutės) ir vvertikaliomis (stulpeliai) linijomis. Kiekviena horizontali linija sujungta su eilutės kiekvienos ląstelės išrinkimo kontaktu; kiekviena vertikali linija – su stulpelio kiekvienos ląstelės duomenų įvesties/išvesties kontaktu.
Adresų linijose nurodomas išrinkto žodžio adresas. Iš viso reikalingos log2W (arba 2W) linijos. Mūsų pavyzdyje reikalingos 11 adresų linijos tam, kad galima būtų išrinkti vieną iš 2048 eilučių. Šios 11 linijų sueina į eilučių dešifratorių, kuriame yra 11 įėjimo ir 2048 išėjimo linijos. Dešifratoriaus logika suaktyvina vieną iš 2048 išėjimų pagal bitų kombinaciją 11-oje įėjimo linijų (211 = 2048).
Be to, 11 linijų išrenka vieną iš 2048 stulpelių po keturis bitus stulpelyje. Keturiems duomenų bitams į duomenų buferį įvesti arba iš jo išvesti naudojamos keturios duomenų linijos. Duomenis įvedant (rašant) bitų tvarkyklė kiekvieną bitų liniją pagal duomenų linijos rreikšmę nustato į 0 arba 1. Duomenis išvedant
3.6 pav. Tipiška 16-os Mbit (4 M x 4) DRAM mikroschemos struktūra ‘
(skaitant), kiekvienos bitų linijos reikšmė yra praleidžiama pro skaitymo stiprintuvą ir perduodama į atitinkamas duomenų linijas. Eilučių linija išrenka, kuri ląstelių eilutė naudojama skaitymui ar rašymui.
Kadangi į šią DRAM mikroschemą gali būti nuskaityti ar įrašyti tik 4 bitai, tam, kad galima būtų nuskaityti ar įrašyti į magistralę visą duomenų žodį, keletas tokių DRAM turi būti sujungtos su atminties valdikliu.
Pastebėtina, kad čia yra ttik 11 adresų linijų (AO – AIO), t. y. tik pusė to, ko reikia 2048×2048 masyvui. Taip yra padaryta siekiant sumažinti mikroschemos kontaktų skaičių. 22 būtinos adresų linijos praeina pro išrinkimo logiką kažkur mikroschemos išorėje ir ten multipleksuojamos į 11 adresų linijų. Pirma 11 adresų signalai ateina į mikroschemą, apibrėždami eilutės adresą masyve, o tada kiti 11 adresų signalai nurodo stulpelio adresą. Mikroschemos sinchronizavimui užtikrinti šie signalai yra sujungti su eilutės adreso signalu {RAS – Raw Address Select} ir stulpelio adreso signalu {CAS – Column Address Select}.
Galima paminėti, kad multipleksuotas adresavimas ir kvadratinių masyvų taikymas kiekvienoje naujoje mikroschemų kartoje padidina atminties talpą per keturis kartus. Kiekvienas papildomas mikroschemos kontaktas dvigubina eilučių ir stulpelių skaičių, todėl atminties mikroschemos talpa padidėja 4 kartus (2 x 2). Iki šiol buvo būtent tokios kas trejus metus tobulėjančios mikroschemų kartos: 1 K, 4 K, 16 K, 64 K, 256 K, 1M, 4M, 16 M, 64 M.
3.6 pav. taip pat matyti atminties regeneravimo schemų taikymas. Visos DRAM mikroschemos sudarytos iš elementarių elektros kondensatorių ir todėl tam, kad jos veiktų, būtinos regeneravimo procedūros. Paprasčiausias regeneravimo metodas – sustabdyti informacijos iš mikroschemos išrinkimą, kol yra regeneruojamos visos duomenų ląstelės. Regeneravimo skaitiklis iš eilės pereina per visas eilučių ląsteles. KKiekvienoje eilutėje išėjimo linijos iš regeneravimo skaitiklio sujungiamos su eilučių dešifratoriumi ir taip suaktyvinama tam tikra RAS linija. Tai užtikrina kiekvienos ląstelės regeneravimą.
3. 4. Atminties mikroschemų korpusai
Kaip žinia, integrinė schema montuojama korpuse, kuriame yra išvadai,, kad vyktų kontaktai su išore.
3.7 pav. a parodytas EPROM mikroschemos korpuso pavyzdys; tai 8 Mbit mikroschema, organizuota pagal 1 M x 8 schemą. Šiuo atveju tai yra vieno žodžio mikroschemos standartinis korpusas su 32 kontaktais. Kontaktai atitinka tokias signalo linijas:
.• leškomų žodžių adresai. 1 M žodžiui iš viso reikia 20 (220 = 1M) kontaktų (AO – A19).
• Nuskaitytų duomenųlinijos (DO-D7).
• Maitinimas (Vcc).
• Mikroschemos išrinkimo {CE — Chip Enable} kontaktas. Kadangi prie tos pačios duomenų magistralės gali būti prijungtos kelios mikroschemos, CE signalas rodo, ar teisingas mikroschemos adresas. CE kontaktą suaktyvina logika, susijusi su aukštesniais adresų magistralės bitais (t. y. adresų bitais, didesniais už A19).
• Programavimo įtampa (Vpp), tiekiama tik esant programavimo režimui (įrašymo operacijos).
16 Mbit DRAM mikroschemos, organizuotos pagal 4 M x 4 schemą, kontaktų tipinė konfigūracija
parodyta 3.7 pav. b. Palyginti su ROM mikroschema, čia yra keletas skirtumų. Kadangi RAM mikroschemos
turinys gali būti keičiamas, duomenų kontaktai yra dviejų krypčių (įvesčiai ir išvesčiai). Rašymo leidimo
{WE – Write Enable} ir skaitymo leidimo {OE – Output Enable} kontaktuose nnustatoma, ar tai yra
skaitymo, ar rašymo operacija. Kadangi DRAM mikroschemose saugoma informacija prieinama per
atitinkamas eilutes ir stulpelius, ir adresas yra multipleksuotas, 4 M eilučių ir stulpelių kombinacijoms (211 x
211 = 222 = 4 M) aprėpti pakanka tik 11 adresų kontaktų. Eilutės adresų išrinkimo (RAS) ir stulpelių adresų
išrinkimo (CAS) funkcijos aptartos anksčiau.
Atminties mikroschemų modulių sandara ~.
Tuo atveju, jei kompiuterio atmintyje RAM mikroschema atitinka vieną žodžio bitą, mikroschemų reikia turėti tiek, kiek bitų yra žodyje. Pavyzdžiui, 3.8 pav. parodyta, kaip gali būti sudarytas 256 K 8 bitų žodžio
atminties modulis. 256 K žodžiams reikalingas ISbitų adresas (2 =262144), jis siunčiamas į mikroschemą iš tam tikro išorinio šaltinio (t. y. iš magistralės, prie kurios prijungtas šis atminties modulis, adresų linijų). Adresas siunčiamas į 8-ias 256 K x 1 bit mikroschemas, iš kurių kiekviena užtikrina 1 bito įvedimą/išvedimą.
Ši sandara gera tik tuo atveju, kai atminties talpa lygi bitų mikroschemoje skaičiui. Jei atmintis turi būti talpesnė, reikia atitinkamos mikroschemų matricos. 3.9 pav. parodyta galima 1 M 8 bitų žodžio atminties sandara (iš viso 1 Mbaitas). Šiuo atveju yra keturi mikroschemų stulpeliai, kiekviename iš jų 256 K žodžių. Stulpeliai išdėstyti, kaip parodyta 3.8 pav. 1 M žodžių adresuoti reikia 20 adresų linijų. Nagrinėjamu atveju 18 žemesniųjų bitų yra
nukreipti į visus 32 modulius. Aukštesnieji 2 bitai sujungti su grupės išrinkimo logikos moduliu. Pastarasis siunčia mikroschemos išrinkimo signalą (CE) į vieną iš keturių modulių stulpelių (grupių).
Progresyvios operatyviosios atminties technologijos
Antrajame skyriuje buvo minėta, kad kritiškiausia našumo atžvilgiu kompiuterio sistemos vieta, kai naudojami didelio našumo procesoriai – įvairūs interfeisai, tarp jų – ir pagrindinės atminties. Šis interfeisas taip pat yra svarbiausia keitimosi duomenimis vidinėje kompiuterio sistemoje magistralė. Svarbiausia pagrindinės atminties dalis tebėra DRAM mikroschema. Per pastaruosius 20 metų iki šiol DRAM aarchitektūroje reikšmingų pakitimų neįvyko. Tradiciškai DRAM mikroschemą sudaro jos vidinė architektūra ir išorinis interfeisas su procesoriaus/atminties magistrale.
Ketvirtajame skyriuje bus nagrinėjamas vienas mėginimas išspręsti operatyviosios atminties problemą. Tarp procesoriaus ir pagrindinės atminties gali būti įterpta vieno arba kelių lygmenų spartinančioji atmintis (,,kešas“) {cache}, sudaryta iš statinės atminties {SRAM} mikroschemų.
Per pastaruosius keleris metus buvo nemažai bandymų pagerinti bazinę DRAM architektūrą. Tačiau iki šiol nėra aišku, kurie iš jų bus pripažinti standartais. Šiame poskyryje apžvelgsime kelias naujas DRAM technologijas.
Patobulintoji operatyvioji atmintis – Enhanced DDRAM
Bene paprasčiausia iš visų naujų DRAM architektūrų – patobulintoji dinaminė atmintis {Enhanced DRAM – EDRAM}, sukurta ,,Ramtron“ firmoje [3]. EDRAM mikroschemoje į kiekvieną DRAM kristalą integruota nedidelė labai sparti tarpinė atmintis {SRAM cache} ,,kešas“.
3.15 pav. parodyta 4 bitų EDRAM struktūrinė sschema. Tarpinė atmintis pagal šią schemą įsimena paskutinės nuskaitytos eilutės turinį; jos talpa – 2048 bitai arba 512-a 4 bitų grupės. Komparatorius įsimena paskutinės skaitytos eilutės 11 bitų adresą. Jei kreiptis – į tąpačią eilutę, ji bus nuskaityta tiesiog iš tarpinės atminties.
EDRAM struktūra turi ir kitų ypatumų, užtikrinančių jos galimybes. Pvz., regeneravimo operacija gali būti vykdoma kartu su duomenų skaitymu iš tarpinės atminties, taip mažinama trukmė, per kurią operatyviosios atminties elementai yra neprieinami. Taip pat pažymėtina, kad iš tarpinės atminties skaitoma ir tuo metu išėjimo prievade esanti eilutė nepriklauso nuo rašymo į atmintį operacijos. Taigi įmanomas duomenų skaitymas iš tarpinės atminties (,,kešo“) ir rašymas į atmintįtuo pačiu metu.
,,Ramtron“ firmos atlikti tyrimai i;odo, kad EDRAM atminties galimybės yra geresnės už analogiškas įįprastos DRAM su talpesne išorine spartinančiaja atmintimi.
Spartinamoji operatyvioji atmintis – Cache DRAM
Spartinamoji operatyvioji atmintis {Cache DRAM – CDRAM} sukurta ,,Mitsubishi“ kompanijoje [4], jos struktūra panaši į EDRAM. CDRAM atmintyje tarpinė atmintis (,,kešas“) yra talpesnė negu EDRAM -16 K bitų vietoj 2 K. Statinė tarpinė atmintis CDRAM atmintyje gali būti panaudota dviem būdais. Pirma, -kaip tikra spartinančioji atmintis (,,kešas“) iš 64 bitų eilučių. Tai yra esminis, palyginti su EDRAM, skirtumas. EDRAM tarpinė atmintis organizuota kaip ištisas blokas, kuriame talpinama paskutinė nnuskaityta eilutė. Tarpinės atminties veikimas CDRAM atmintyje efektyvesnis, kai vykdomos įprastos atsitiktinės kreiptys į atmintį. Statinė tarpinė atmintis CDRAM atmintyje gali būti naudojama ir kaip buferis, užtikrinantis duomenų blokų sekos kaitą. Pvz., regeneruojant displėjaus taškinį vaizdą {bit-mappedl screen}, CDRAM gali iš anksto patalpinti duomenis iš DRAM į SRAM buferį. Tada kita kreiptis į atmintį bus vykdoma tik į SRAM tarpinę atmintį.
•’“••••- ••–•• . _£•
Sinchroninė operatyvioji atmintis – Synchronous DRAM
Visiškai kitaip bandoma gerinti DRAM galimybes kelių kompanijų’ pastangomis sukurtoje [5] vadinamojoje sinchroninėje operatyviojoje atmintyje {Synchronous DRAM – SDRAM}.
Skirtingai nuo įprastos asinchroninės DRAM atminties, SDRAM duomenimis su procesoriumi keičiasi sinchroniškai pagal išorinį procesoriaus taktavimo signalą, užtikrindama didžiausią procesorius/atmintis magistralės spartąbe laukimo stadijų.
Įprastos DRAM atminties atveju procesorius į atmintį siunčia tam tikrą adresą ir valdymo signalus, taip ,,pranešdamas“, kad duomenys iš tam tikros ląstelės atmintyje turi būti nuskaityti arba į ją įrašyti. Praėju; nustatytai delsai (kreipties trukmė) duomenys į DRAM rašomi arba skaitomi iš jos. Kreipimosi periodo meti DRAM atmintyje vykdomos įvairios vidinės funkcijos, pvz., suaktyvinamos elektrinių talpų eilučių i: , stulpelių linijos, išimami duomenys ir siunčiami išorėn per išvesties buferį. Procesorius turi užtikrinti būtins delsą, taip lėtindamas kompiuterizuotos sistemos veikimą.
Kai kreiptis sinchroninė, SDRAM atmintis duomenis kaitalioja pagal sisteminio generatoriaus signalus Procesorius ar kitas vvaldymo įrenginys šiuo atveju nustato adresus ir jungia atitinkamus valdymo signalus kuriuos priima SDRAM atmintis. Tuomet SDRAM atitinkamai reaguoja į kreiptį tam tikru sisteminio generatoriaus impulsų skaičiumi. Valdymo įrenginys tuo metu gali vykdyti kitą uždavinį, o SDRAIV apdoroja kreiptį.
3.16 pav. parodyta vidinė SDRAM atminties struktūra. Adresų nustatymo laikui bei laikui, būtinan eilučių ir stulpelių talpų perkrovimui po pirmosios kreipties, eliminuoti SDRAM atmintis veikia paketinu režimu. Esant paketiniam režimui, duomenų bitų seka gali būti išsiųsta išorėn labai greitai, kai tik bu surastas pirmas bitas. Sis režimas labai efektyvus tuo atveju, jei reikalingi duomenų bitai išsidėstę nuoseklia toje pačioje atminties masyvo eilutėje, į kurią buvo nukreipta pirminė kreiptis.
Be to, SRAM organizuota pagal dvigubo banko vidinę architektūrą, tad galimybės lygiagretinti atmintie mikroschemas žymiai geresnės.
Kitas ryškus skirtumas tarp SDRAM ir įprastos DRAM atminties – režimo registras ir apibendrint valdymo logika, teikiantys galimybę optimaliai suderinti SDRAM specifiniam panaudojimui. Režimo registras nustato duomenų paketo, kurį sudaro tam tikri duomenų elementai, sinchroniškai atsirandantys magistralėje, ilgį. Esant šiam registrui programuotojas taip pat gali reguliuoti delsą tarp valdymo signalo ,,skaityti“ {read} atsiradimo ir duomenų siuntimo pradžios.
SDRAM atmintis veikia labai efektyviai, kai duomenų kaita vykdoma dideliais blokais, pvz., tekst procesoriuose, duomenų lentelėse ir multiterpės {multimedia} programose.
Rambus operatyvioji atmintis
Rambus operatyvioji atmintis {{RDRAM} pavadinta ją sukūrusios ,,Rambus“ firmos [6] vardu. Joje radikaliai sprendžiama operatyviosios atminties pralaidumo juostos problema. RDRAM atminties kristalai išdėstyti vertikaliame korpuse su vienašoniais kontaktais. Atminties mikroschemų kristalai čia jungiami su procesoriumi 28 laidininkais, kurių ilgis neviršija 12 cm. Tokia magistralė gali adresuoti iki 320 RDRAM mikroschemų ir veikti 500 Mbit/s greičiu (asinchroninės DRAM – tik 33 Mbit/s).
Specializuota RDRAM magistralė nustato adresus ir jungia valdymo signalus, taikydama specialų
asinchroninį į blokus orientuotą protokolą. Praėjus pirmoms 480 kreipties laiko nanosekundėms šis
protokolas užtikrina 500 Mbit/s spartą. Toks greitis pasiekiamas dėl magistralės konstrukcijos, impedansų
suderinimo, visų signalų stabilumo ir tikslumo. Palyginti su įprastaja DRAM, kuri valdoma RAS, CAS, R/W
ir CE signaliį RDRAM atmintyje kreiptis vykdoma sparčiąja magistrale, o pačioje kreiptyje yra būtinas
adresas, veikimo režimas ir baitų vienoje duomenų kaitos operacijoje skaičius.
Operatyviosios atminties grandys-RamLink —
Radikaliausieji pakeitimai, palyginti su įprasta DRAM atmintimi, įgyvendinti operatyviosios atminties grandyje – RamLink [7]. Šio pobūdžio atmintis yra IEEE darbinės grupės produkto, kuris vadinamas Scalable Coherent Interface – SCI, dalis. RamLink atminties koncepcija labiau siejasi su procesoriaus/atminties interfeisu negu vidine DRAM mikroschemų architektūra.
RamLink iš tikrųjųyra atminties interfeisas, kuriame naudojamos žiedu sujungtos porinės jungtys (point-to-point} (3.17 pav. a). Šio žiedo duomenų kaitos srautas valdomas atminties valdiklio, siunčiančio pranešimus į DRAM elementus, kurie šiuo atveju
žiediniame tinkle veikia kaip įvairūs mazgai. Keitimasis duomenimis vykdomas specialiais paketais (3.17 pav. b).
Kreipčių paketai inicijuoja atminties transakciją. Jie siunčiami valdiklio ir turi komandos antraštę, adresą, kontrolinę sumą ir, rašymo komandos atveju, duomenis, kurie turi būti išsaugoti. Komandos antraštėje yra informacija apie duomenų tipą, dydį bei kontroliniai duomenys ir netgi atsako trukmė, arba maksimalus laikas, reikalingas pavaldžiojo DRAM elemento atsakui. Tarp kontrolinių duomenų yra bitas, nurodantis, kad bus vykdomos kelios iš eilės kreiptys. Vienu metu vienas įrenginys gali vykdyti iki kketurių transakcijų. Taigi
Esant skaitymui palankioms sąlygoms pavaldusis DRAM elementas siunčia atsako paketą, kuriame yra duomenys skaitymui. Kai sąlygos nepalankios, pavaldusis elementas siunčia pakartotinį paketą, kuris rodo, kiek reikia papildomo laiko transakcijai įvykdyti.
Vienas žymiausių RamLink atminties bruožų yra tai, kad ji užtikrina mastelinę architektūrą, kurią taikant
galima naudoti ir mažą, ir didelį DRAM elementų skaičių ir kuri visiškai neturi įtakos jų vidinei struktūrai.
RamLink atmintis išdėstyta žiedu taip, kad koordinuojama aibė DRAM elementų ir užtikrinamas atminties
valdiklio efektyvus interfeisas.
PC kompiuterių vidinės atminties loginė sandara
Pirmųjų IIBM PC kompiuterių adresų erdvė buvo tik iki 1 M(210 = 1 048 576), išjų384K atsargoje pačiai kompiuterio sfttemai. Rezervuotos srities išdėstymas aukštesniojoje srityje (tarp 640 K ir 1 M), o ne žemesniojoje (tarp OK ir 384 K) nulėmė vadinamojo ppagrindinės atminties barjero atsiradimą. Ir dabar kompiuterių kūrėjai negali suardyti pirmojo PC konfigūracijos, nepažeisdami suderinamumo principų, o tai lemia labai painiąšiuolaikiniųPC kompiuterių operatyviosios atminties stmktūrą.
PC kompiuteriuose atminties struktūros tipai labai įvairūs. Jie skiriasi apimtimi bei tuo, kaip juos kompiuterio sistema panaudoja. Toliau nagrinėsime tokias kompiuterių atminties rūšis:
• Pagrindinė atraintis {Conventional Memory}.
• Viršutinė atminties sritis {Upper Memory Area – UMA}.
• Aukštoji atminties sritis {High Memory Area – HMA}.
• Išplėstinė atminties sritis {Extended Memory}.
• Papildomoji atmintis {Expanded Memory} (pasenusi rūšis).
• Vaizdų atmintis {Video RAM Memory}.
• Adapterių ROM bei specialiosios ROM atmintys.
• Kompiuterio sistemos BIOS atmintis.
AT klasės kompiuteriuose viršutinė atminties riba gali viršyti 1 M, ir jos apimtis gali siekti 16 M
(224= 16277216), kai procesorius 180286, ir 4 G (232 = 4 299 9967 296 = 4 096 M), kai kompiuteriuose
180386 DX bei vėlesnieji procesoriai. Visa aukščiau nei 1 megabaitas esanti atmintis vadinama išplėstine
atmintimi. 3.4 lentelėje pateiktas IBM PC tipo kompiuterių skirtingų atminties sričią adresų išdėstymas.
Procesoriui, veikiančiam realiuoju režimu, pasiekiamas tik pirmas atminties megabaitas (1 M), o veikiant
saugiuoju režimu – visi 16 M arba 4G (priklausomai nuo procesoriaus). Kiekvieną 3.4 lentelės simbolį
(taškąar raidę) atitinka 1 K, kiekvieną eilutę – 64 K segmentas.
Segmentiniai ir tiesiniai adresai
Segmentinių adresų atsiradimas susijęs su ,,Intel“ procesorių vidine struktūra &– juose informacija apie
atminties segmentus ir poslinkius saugoma atskiruose (16 bitų) registruose. Todėl atminties baito tikras
(tiesinis) adresas esti iš dviejų dedamųjų:
[segmentas] : [poslinkis].
Pavyzdžiui, 64-o kilobaito, kurio numeris 65535 (dvejetainėje skaičiavimo sistemoje – 64 K), tiesinis adresas (šešioliktaine forma) toks:
Procesoriaus viduje jo formatas
0000:FFFF
čia 0000 – segmento adresas; FFFF – poslinkio adresas, o tiesinis adresas gaunamas taip
0 0 0 0
.“ ., F F F F
. 0 F F F F
Iš šio pavyzdžio matyti, kodėl tiesinis adresas yra penkių (šešioliktainių) skilčių, o segmentas ir poslinkis keturių skilčių skaičiai.
Pagrindinė atmintis – Conventional Memory f;
Pirmuosiuose PC bei XT klasės kompiuteriuose atminties darbinė erdvė (1 M) buvo suskirstyta į kelias sritis, iš kurių dalis buvo skirta specialiems tikslams. Diskinė operacinė sistema {Disk Operating System -DOS} gali kreiptis į visą 1 M erdvę, tačiau programos talpinamos į sritį, kuri vadinama pagn’ndme atmintimi {conventional memory}. Pirmuosiuose PC ji buvo 512 K talpos. Kiti 512 K buvo rezervuoti sisteminės plokštės ,,vidiniams poreikiams“ bei adapterių plokštėms.
Pagaminus pirmuosius PC klasės kompiuterius IBM firmoje buvo prieita prie išvados, kad sistemai pakanka 384 K, todėl vėlesniuosiuose kompiuteriuose vartotojui pasiekiamos atminties talpa buvo padidinta iki 640 K. Šie 640 K tapo atminties, kurią DOS gali naudoti programoms vykdyti, standartine apimtimi (vadinamasis 6640 K barjeras). Aukščiau (jei atmintį nagrinėtume kaip struktūrą su nuliniu adresu apačioje)
nei šie 640 K esanti atmintis rezervuota grafmėms plokštėms ir kitiems adapteriams bei kompiuterio sistemos BlOS’ui.
3.7.2. Viršutinė atminties sritis – Upper Memory Area
Virsutine atminties sritimi (Upper Memory Area — UMA} vadinami 384 kilobaitai, rezervuoti nuo PC/XT kompiuterių sisteminės atminties viršutinės ribos iki AT kompiuterių atminties pirmojo megabaito. Šios srities adresai yra nuo AOOOO iki FFFFF (ląstelės – nuo 655360 iki 1034239).
Viršutinė atmintis padalinta įkelias dalis.
• Pirmieji 128 K, esantys iš karto virš pagrindinės atminties – vaizdų atmintis, ją naudoja videoadapteriai. Kai ekrane rodomas tekstas arba grafinis vaizdas, jų ,,atvaizdai“ saugomi šioje srityje. Vaizdų atminties adresai yra nuo AOOOO iki BFFFF.
• Kiti 128 K skirti įvairių adapterių BIOS sistemoms. Daugelis VGA adapterių savo BIOS sistemoms naudoja tik pirmus šios srities 32 K, o kita dalis pasiekiama kitų įrenginių. Šios srities adresai – nuo COOOO iki DFFFF.
• Paskutinieji 128 K rezervuoti kompiuterio sistemos BIOS. Čia pat saugomos – savikontrolės įjungus programa {Power On Self Control – POST} ir pradinė sistemos įkeltis, valdanti kompiuterį iki tol, kol neįkelta DOS. Daugumoje kompiuterių naudojami tik paskutiniai šios srities 64 K, o pirmieji 64 K gali būti perskirstyti tarp kitų ,,vartotojų“ atminties tvarkymo programų ((,,menedžerių“) {manager}. Kompiuterio sistemos BIOS skirti adresai – nuo EOOOO iki FFFFF
Dauguma AT klasės kompiuterių naudoja visus rezervuotos UMA atminties 384 K. Pavyzdžiui, pagal IBM standartą rezervuota vaizdų atmintis prasideda nuo AOOOO adreso, t. y. iškart už pagrindinės atminties ribos, bet į kompiuterį įtaisytas videoadapteris šios atminties gali ir nenaudoti. Kai kurie adapteriai naudoja atminties sritis su kitais pradiniais adresais. Videoadapterių naudojamos atminties talpa priklauso nuo adapterio tipo ir jo darbo režimo.
Nors 384 K iš pradžių buvo pavadinti rezervine atmintimi, tačiau į šios atminties neužimtas vietas galima įkelti tvarkykles {drivers} arba rezidentines programas, pavyzdžiui, mouse.com, kad pagrindinė atmintis būtų atlaisvinta kitiems tikslams. Viršutinės atminties srities laisvosios erdvės apimtis priklauso nuo to, kokios adapterių plokštės įtaisytos į sisteminę plokštę.
Vaizdų atmintis
Kompiuterio videoadapteris į displėjų išvedamoms simbolinei bei grafinei informacijai saugoti naudoja dalį sisteminės atminties. Kai kuriose adapterių plokšt’ėse, pvz., VGA, yra sava BIOS, kuri išdėstoma jai skirtoje atminties srityje. Kuo didesnė adapterio skiriamoji geba ir kuo daugiau spalvų jis gali atvaizduoti, tuo daugiau jam reikia atminties. Pažymėtina, kad daugelyje adapterių informacijai saugoti bei ekranui pagreitintai atnaujinti yra papildoma DRAM.
Nuo videoadapterio DRAM dydžio priklauso DOS sistemos pagrindinės atminties 640 K barjero buvimas. DOS gali naudoti visą pasiekiamą nenutrūkstamą atmintį neviršydama pirmojo megabaito ribų,
t. y. iki to adreso, nuo kurio prasideda videoadapterio RAM. Esant adapteriams MDA arba CGA, DOS gali adresuoti daugiau nei 640 K atminties. Kai adapteriai EGA bei VGA, vaizdų atminties barjeras prasideda nuo AOOO adreso; kai adapteriai MDA bei CGA, vaizdų atminties reikia daug mažiau, tad išlaisvinama papildomoji atmintis DOS bei taikymo programoms. Pavyzdžiui, esant MDA adapteriui, DOS papildomai gali naudoti 64 K atminties (visą AOOO segmentą), ir bendra DOS pasiekiamos atminties talpa išsiplečia iki 704 K. 3.5 lentelėje pateiktos ddidžiausios DOS sistemai pasiekiamos esant įvairiems videoadapteriams atminties talpos.
Pagrindinės atminties išplėtimas priklauso nuo videoadapterio, sisteminės plokštės BIOS sistemoje įrašytų programų, kompiuterio tipo. Jos dalį gali naudoti kompiuteriai su i80386 bei vėlesniaisiais procesoriais. Taikant atminties tvarkyklę {manager}, pavyzdžiui, DOS-o emm386.exe programą, šią atmintį galima ,,atvaizduoti“ kaip išplėstinę atmintį.
Kompiuterio BlOS atmintis
Paskutinieji rezervuotos atminties 128 K naudojami kompiuterio sistemos BIOS talpinti. BIOS programos valdo kompiuterį jam besikraunant, o įprastu režimu dirbančiame kompiuteryje veikia kaip įvairių įrenginių tvarkyklės. Kadangi šios programos turi būti pasiekiamos iiškart, kompiuterį įjungus, jų negalima įkelti iš disko. Štai pagrindinės operacijos, kurias vykdo kompiuterio sistemos BIOS įrašytos programos:
• Savikontrolė, jungiant maitinimą {POST} (yra sisteminės plokštės, diskų valdiklių, videoadapterių, klaviatūros bei kitų kompiuterio komponenčių tikrinimo procedūrų rinkinys).
• Sistemos įkeltis organizuoja operacinės ssistemos paiešką diskelyje arba standžiajame diske. Jei sistema aptinkama, ji perkeliama į atmintį ir jai perduodamas kompiuterio valdymas.
• Bazinė įvesties/išvesties sistema {Basic Input-Output System – BIOS} yra visų kompiuterio aparatinių įrenginių programinis interfeisas, arba pagrindinė valdymo programa. Per BIOS sistemą vykdomoji programa gali sąveikauti su bet kuriuo kompiuterio įrenginiu, kviesdama šiuo atveju tik BIOS programinį modulį, o nesikreipdama į patį įrenginį.
Manoma, kad EOOO bei FOOO segmentai rezervuoti kompiuterio sistemos BlOS-ui, tačiau tik kai kuriuose AT kompiuteriuose panaudojama visa ši sritis. PC/XT kompiuteriuose būna užimtas tik EOOO segmentas, o FOOO segmentą gali naudoti adapterių pastovioji bei dinaminė atmintis. Daugumos AT kompiuterių visas FOOO segmentas užimtas BIOS, segmentas EOOO taip pat laikomas užimtu, tačiau jis nenaudojamas. Užimant šį segmentą dėl AT sisteminės pplokštės adapteriai negali naudoti šios srities. Būtent todėl adapteriuose nenumatytas EOOO adreso konfigūravimas. 64 K atminties sritis iš esmės prarandama, tačiau 180386 ir vėlesnieji procesoriai atminties valdymo priemonėmis {Memory Management Unit} gali atvaizduoti išplėstinės atminties RAM-ą į EOOO segmentą kaip viršutinės {UMA} atminties srities bloką ir į jį įkelti programas. DOS sistemoje šias funkcijas vykdo emm386.exe tvarkyklė.
Išplėstinė atmintis
Jau minėta, kad kompiuteriuose su J80286 ir vėlesniaisiais procesoriais atmintis gali plėstis už 1 M ribos, kuri esti procesoriui veikiant realiuoju režimu. Kompiuteriuose ssu 180286 bei i80386SX procesoriais išplėstinės atminties {extended memory} talpa yra 16 M, o 18386 DX, 18486 bei Pentium® – 4G (4096 M).
Adresuojant atmintį už pirmojo megabaito ribų, AT kompiuterių procesorius turi veikti saugiuoju režimu – ,,natūraliuoju“ naujų procesorių režimu. Kompiuteriiiiose su 180286 procesoriais išplėstinę atmintį gali naudoti tik programos, skirtos dirbti saugiuoju režimu. Tačiau kompiuteriuose su S8386 bei vėlesniaisiais procesoriais esti dar vienas – virtualusis režimas. Jis suteikia galimybę išplėstinę atmintį padalinti į 1 M blokus (kiekvienas iš jų veikia realiuoju režimu) ir saugiosiose atminties srityse vienu metu vykdyti kelias programas. Vykdant kelias DOS programas iškart, kiekviena jų ribojama 640 K barjero (kiekvienoje srityje modeliuojama realiojo režimo terpė su savais BIOS egzemplioriais bei viršutinės {UMA} atminties sritimis). Kelioms programoms vienu metu vykdyti virtualiuoju režimu (tai, kas vadinama ,,daugiaprocesiu“ režimu) reikia specialios jų veikimą koordinuojančios programos. Tokias galimybes turi OS/2 ir Windows NT.
i80286 ir vėlesnieji procesoriai taip pat gali veikti ir realiuoju (absoliučiosios adresacijos) režimu (visiškas suderinamumas su i8088 procesoriumi). Dirbdamas realiuoju režimu kompiuteris gali vykdyti tik vieną DOS programą.
Išplėstine atmintimi paprastai vadinama atmintis, prasidedanti už pirmojo megabaito. Ji pasiekiama procesoriui veikiant tik saugiuoju arba virtualiuoju režimu.
XMS specifikacijos atmintis
Išplėstinės {XMS – eXtended Memory Specification} atminties specifikacija buvo sukurta ,,Microsoft“, ,,Intel“, ,,,AST Corp.“ ir ,,Lotus Development“ firmų 1987 m. Si specifikacija apibrėžia būdą,
kuriuo programos gali kreiptis į išplėstinę atmintį. XMS specifikacija skirta 18286 bei vėlesniesiems procesoriams ir suteikia galimybę programoms, veikiančioms realiuoju režimu (t. y. DOS programoms), naudoti išplėstinę atmintį ir dar vieną, paprastai DOS sistemai nepasiekiamą, bloką (apie tai vėliau, nagrinėjant HMA atmintį).
Iki XMS sukūrimo nebuvo būdo koordinuoti programų, perjungiančių procesorių į saugųjį režimą ir naudojančių išplėstinę atmintį, veikimą. Nė viena iš programų negalėjo ,,žinoti“, ką veikia su išplėstine atmintimi kita programa, nes veikdama realiuoju režimu ,,nematė“ šios atminties. ,,Aukščiausiuoju teisėju“ tapo himem.sys tvarkyklė. Ši tvarkyklė iš pradžių sukaupia visą išplėstinę atmintį, o paskui pagal XMS protokolą išdalija ją programoms. Dabar kelios XMS atmintimi besinaudojančios programos, periodiškai perjungiant procesorių į saugųjį režimą, gali veikti su DOS sistema viename kompiuteryje. XMS protokolas draudžia programai kreiptis į tą atminties sritį, kurią jau naudoja kita programa. Windows operacinė sistema yra programų valdytuvas, kuris sinchroniškai vykdant kelias programas perjunginėja procesorių į saugųjį ir vėl tą patį (realųjį) režimą. Tad, kad Windows veiktų, būtina himem.sys tvarkyklė.
Išplėstinę atmintį pagal XMS specifikaciją galima organizuoti, įkeliant iš config.sys failo tvarkyklę himem.sys (ši tvarkyklė yra Windows bei naujųjų DOS versijų sudėtinė dalis). Yra ir kitų atminties valdymo programų, pvz., qqemm (galima įkelti taip pat iš config.sys failo), kuri taip pat išplėstinę atmintį organizuoja pagal XMS specifikaciją.
Aukštoji atminties sritis {HMA} ir A20 adresų linija
Aukštoji atminties sritis {HMA – High Memory Area} – tai 64 K – 16 = 65536 – 16 = 65520 baitų atminties dalis, išdėstyta išplėstinės atminties {XMA} pirmojo megabaito pradžioje. Į šią dalį galima įkelti įrenginių tvarkykles bei rezidentines programas, taip pagrindinė atmintis išlaisvinama realiojo režimo programoms. Į HMA atmintį vienu metu galima patalpinti tik vieną tvarkyklę arba vieną rezidentinę programą (nepriklausomai nuo jų dydžio). Iš pradžių į šį bloką galima buvo įkelti bet kurią programą, tačiau vėliau ,,Microsoft“ kompanija priėjo prie išvados, kad pirmenybė turi būti suteikta DOS sistemai ir numatė šiągalimybę nuo 5-os jos versijos.
HMA ypač svarbi vartotojams, dirbantiems su 5-ąja ir aukštesniaja DOS versija, kadangi operacinės sistemos branduolį (apie 45 K) galima patalpinti šioje srityje. Tam reikia įkelti XMS tvarkyklę (pvz., himem.sys) ir faile config.sys įrašyti vienąeilutę:
i
DOS-HIGH.
Šiuo būdu, perkeliant DOS programinio kodo dalį į išplėstinės atminties srities pirmajį segmentą, išlaisvinama mažiausiai 45 K pagrindinės atminties realiojo režimo programoms. Faktiškai ši sritis turėjo būti pasiekiama dirbant tik saugiuoju režimu, tačiau 180286 procesoriaus kūrėjų padaryta klaida (kuri buvo atkartota ir vėlesniuosiuose procesoriuose, bet jau kaip privalumas)
suteikė galimybę dirbant realiuoju režimu kreiptis beveik į visąpirmąjį išplėstinės atminties segmentą. Pateiksime trumpai šią istoriją.
,,Intel“ firmos procesoriuose atminties adresai nustatomi pagal segmento bei poslinkio sutapimą. Nurodžius segmentą adresu FFFF, o tada FFFF poslinkį (64 K), gaunama
1111 1111 1111 1111 Segmentas F F F F … •
+ 1111 1111 1111 1111 „Poslinkis““ + F F F F
10000 1111 1111 1110 1111 Visas adr. 1 0 F F E F
Gauti tokį adresą 18088 arba 18086 procesoriuje neįmanoma, kadangi juose yra tik 20 aadresų linijų. Todėl aukštesnioji tokio adreso skiltis atmetama, adresas tampa lygus FFEF ir ,,sugrįžta“ į pradinių adresų sritį, tiksliau tariant – pirmojo megabaito pirmojo 64 K segmento pabaigą. Problema kilo todėl, kad 180286 ir vėlesnieji procesoriai, veikdami realiuoju režimu, panašioje situacijoje taip pat turėjo ,,grąžinti“ adresus į pirmojo megabaito pradžią. Dėl procesoriaus schemos klaidos 21-osios adreso linijos (A20 linija) loginis lygis būdavo aukštas, adresų ,,grąžinimas“ nevykdavo, tad kompiuteriui su 180286 procesoriumi veikiant realiuoju režimu susidarė galimybė kreiptis į atminties ląsteles aantrojo megabaito pirmojo segmento gale, nors iš pradžią manyta, kad tai įmanoma tik dirbant saugiuoju režimu. Taigi mikroschemos defektas lėmė galimybę adresuoti pirmus išplėstinės atminties 64 K dirbant ir realiuoju režimu.
Kadangi dėl šios klaidos įstrigdavo realiojo režimo programos, kuriose buvo nnumatytas toks adresų ,,sugrąžinimas“, projektuojant AT kompiuterį rasta būdas dirbant realiuoju režimu išjungti A20 liniją, o saugiuoju – vėl ją įjungti. Šiam tikslui panaudotas 18042 klaviatūros valdiklis. IBM inžinieriai sukonstravo taip, kad šis valdiklis atitinkamai valdytų A20 liniją, o tai suteikė galimybę 180286 procesoriui su defektu veikiant realiuoju režimu tiksliai imituoti 18088 bei J8086 procesorius.
,,Microsoft“ firmoje paaiškėjo, kad ,,privertus“ J8042 valdiklį vėl įjungti A20 liniją procesoriaus defektą
galima panaudoti tam, kad pirmieji išplėstinės atminties 64 K būtų pasiekiami neatlikus ilgo ir sudėtingo
perėjimo į saugųjį režimą. Taip sukurta tvarkyklė himem.sys bei HMA atminties sritis. himem.sys
tvarkyklė kontroliuoja sistemą: A20 liniją išjungia, kad veiktų kai kurios programos, arba įjungia, kai
kreipiamasi į HMA atmintį ar dirbama saugiuoju režimu. himem.sys tvarkyklė iš esmės yra A20 linijos
valdymo ((18042 valdikliu) programa. , > – ,, .’
Papildomoji atmintis – Expanded memory
Kai kurios pasenusios programos naudoja dar vieną atminties rūšį – papildomąją – EMS – Expanded Memory Specification. Skirtingai nuo pagrindinės (neviršijant pirmojo megabaito ribų) ir išplėstinės (nuo 2-ojo iki 16-ojo arba 4096-ojo megabaito), papildomosios atminties procesorius tiesiogiai adresuoti negali. Į šią atmintį galima kreiptis per nedidelį 64 K langą (3.19 pav.), sudaromą viršutinėje atminties srityje {UMA}. Papildomoji atmintis – tai vienas iš daugelio specialios plokštės perjungiamų atminties segmentų. Sioje plokštėje, bbe DRAM mikroschemiį yra dar perjungimo ir adresavimo schemos. Laisvas viršutinės atminties srities segmentas ,,registruojamas“ EMS atminties plokštėje. Užpildžius šiuos 64 K duomenimis EMS plokštė pati keičia panaudotą segmentąnauju tuščiu. Esant būtinumui užpildyti segmentai keičiami cikliškai. Kadangi vienu metu dirbti galima tik su vienu segmentu, EMS atmintis labai neefektyvi programų kodams išdėstyti, tad paprastai joje saugomi tik duomenys.
EMS atminties ,,langas“ paprastai atidaromas DOOO segmente. ,,Lotus“, ,,Intel“ ir ,,MicroSoft“ papildomosios atminties {LIM} specifikacijos kūrėjai šį adresą pasirinko todėl, kad jo beveik nenaudoja adapteriai. Programos, naudojančios EMS atmintį, sudaromos specialiai ir, kadangi nurodytas segmentas yra už DOS pasiekiamų 640 K ribos, į šį segmentą rašomi tik duomenys. Pavyzdžiui, programa, įrašyta į segmentą, kurio šiuo metu lange nėra, negali būti vykdoma, nes procesorius jos ,,nemato“. Taigi papildomoji
atmintis gali būti naudinga tik kompiuteriuose, kuriuose nėra ir negali buti išplėstinės atminties (t. y. su . procesoriais 18088 bei 18086).
Įmontuotoji ir pasiekiama atmintis
Ne visa perkama ir kompiuterį montuojama atmintis (pvz., SIMM – Single In-line Memory Module -moduliai) bus pasiekiama. Pavyzdžiui, kompiuteriuose, kuriuose sumontuota 4 M DRAM atminties (4096 K), vykdant POST procedūrą displėjaus ekrane rodomas pranešimas tik apie 3712 K, t. y. 384 K atminties kažkur dingsta.
Vienas iš pagrindinių atminties organizavimo principų yra tai, kad dviems ffiziniams įrenginiams : negalima skirti tų pačių adresų. Tai reiškia, kad 384 K pirmojo megabaito DRAM atminties konfliktuoja su vaizdų atmintimi (AOOO bei BOOO segmentai), įvairių adapterių BIOS ROM atminties sritimis (COOO bei į DOOO segmentai) ir, suprantama, su sisteminės plokštės BIOS sistema (EOOO bei FOOO segmentai). Todėl : visus šiuos adresus turinčius SIMM modulio dinaminės atminties elementus reikia išjungti, priešingai -kompiuteris neveiks. Šiai problemai spręsti sisteminių plokščių kūrėjai taiko tris būdus.
• Spartesnėje DRAM atmintyje saugomas ,,lėtųjų“ ROM turinys (vadinamosios šešėlinės atminties
[ organizavimas), šiuo atveju patys ROM išjungiami (kreipimosi į ROM mikroschemas trukmė siekia
j 200 ns).
• Visos DRAM atminties sritys, neįėjusios į šešėlinę atmintį, išjungiamos, taip išvengiama konfliktų su UMA atmintimi.
• DRAM atminties sritys, nenaudojamos šešėlinėje atmintyje, peradresuojamos taip, kad jas galima įdėti į esamą išplėstinę atmintį.
Atminties bankai
Sisteminių ir atminties išplėtimo plokščių atminties komponentės DIP {Dual In-line Pąckage}, SIPP {Single In-line Pin Package} organizuojamos įbankus. Atminties bankas – minimali atminties talpa, kuria procesorius gali operuoti. Jeigu, pavyzdžiui, reikia išplėsti kompiuterio atmintį, labai svarbu žinoti atminties pasiskirstymą tarp bankų ir bankų išdėstymą plokštėse. Be to, diagnostinės programos rodo sugedusios atminties ląstelės adresą ir bitą, ir iš jų teks nustatyti sugedusį banką.
Bankų skilčių kiekis paprastai yra toks pat kaip kompiuterio duomenų magistralės skiltiškumas. 33.8 lentelėje pateikti įvairių kompiuterių atminties bankų parametrai.
Būtiną atminties banko skilčių kiekį galima sudaryti panaudojus tam tikrą skirtingų mikroschemų arba
SIMM modulių skaičių. Pavyzdžiui, kompiuteryje sui38286 procesoriumi (18 skilčių bankas) atminties
banką galima sudaryti iš 18 atskirų vienskilčių mikroschetnų arba 4-ų keturskilčių mikroschemų duomenims
ir 2-ų vienskilčių – lyginumo bitams. Šiuolaikiniuose kompiuteriuose naudojami beveik vien DIMM {Dual
In-line Pin Package} moduliai. •.•“•’- •
Procesorius
Duomenų magistralės skilčių skaičius
Banko skilčių skaičius (su lyginumo bitais)
30kontaktų SIMM modulių viename banke
72kontaktų SIMM modulių viename banke
18088
8
9
1
1 (4-iems bankams)
18086
16
18
2
1 (2-iems bankams)
180286
16
18
2
1 (2-iems bankams)
180386 SX,SL SLC
16
18
2
1 (2-iems bankams)
180386 DX
32
36
4
1
180486 SLC,SLC2
16
18
2
1 (2-iems bankams)
180486 DX
32
36
4
1
Pentium18′
64
72
8
2
Spartinančioji atmintis (Cache)
Informacijos perdavimui iš pagrindinio procesoriaus į DRAM ir atgal pagreitinti na-udojama palyginti nedidelės talpos, spartesnė (kreipimosi trukmė 8 – 6 ns) už DRAM, bet daug brangesnė statinė operatyvioji atmintis SRAM (Static RAM), vadinama spartinančiaja (Cache) atmintimi. Ji įrengiama tarp pagrindinės RAM ir procesoriaus.
Spartinančioji atmintis paspartina procesoriaus darbą, nes į ją iš pagrindinės RAM perrašoma dalis informacijos, kuri tuoj bus reikalinga procesoriui. Tuomet procesorius beveik visą laiką bendrauja su daug spartesne spartinančiaja atmintimi ir kompiuteris veikia 15 – 30% sparčiau.
Paveiksle parodyta sistemos su spartinančiąja atmintimi sandara ir kaip ji veikia, kai procesoriui reikia gauti informaciją Dl, esančią adresu Al. Spartinančiosios atminties valdiklis, gavęs šį reikalavimą, patikrina, ar reikalinga informacija jau yra
nukopijuota į spartinančiają atmintį. Jeigu taip, tai jis be trukdymų perduoda ją procesoriui. Jeigu reikiamos informacijos spartinančiojoje atmintyje nėra, valdiklis ją randa DRAM ir perduoda procesoriui, bet šiuo atveju procesoriui tenka palaukti. Tuo pat metu valdiklis iš DRAM nukopijuoja į SRAM ir gretimų DRAM ląstelių turinį, t.y. informaciją D2, D3 ir D4, kurios adresai yra A2, A3, A4.
Nustatyta, kad, kai dirbama su viena nesudėtinga programa, taip veikiančioje 16 KB spartinančiojoje atmintyje procesorius devynis kartus iš dešimties randa jam reikalingą informaciją. PPadidinus atmintį iki 64 KB, rezultatai pagerėja 5%, o padidinus iki 256 KB, – dar 1%. Todėl, kai dirbama DOS arba Windows 3.x terpėje, pakanka 256 KB spartinančiosios atminties. Tačiau, kai procesorius yra Pentium tipo ir dirbama daugiaprogramėje (Multitasking) terpėje, pavyzdžiui, Windows 9x, Windows Me, Windows NT, Windows 2000, talpesnė atmintis daugiau paspartina kompiuterį. Šiuo atveju kuo talpesnė RAM, tuo labiau pastebima talpesnės spartinančiosios atminties įtaka, ir jos talpa gali siekti net megabaitus.
Pirmine spartinančiąja atmintimi vadinama atmintis, kurioje procesorius pirmiausia iieško reikalingų duomenų ir kurioje jis išsaugo rezultatus. Ji visuomet yra procesoriaus mikroschemoje, todėl dar vadinama vidine. Antrinė spartinančioji atmintis yra talpesnė ir iš jos duomenys perduodami ,pirminei spartinančiajai atminčiai. Ji gali būti kompiuterio pagrindinėje plokštėje (pvz., Pentium), šalia procesoriaus mmikroschemos (pvz., Pentium II), procesoriaus mikroschemoje (pvz., Pentium III, Athlon). Tretinę spartinančiąją atmintį esančią pagrindinėje kompiuterio plokštėje, kol kas naudojo tik AMD procesorius K6-III. Šiuolaikinių procesorių pirminių spartinančiųjų atminčių talpa svyruoja nuo 16 iki 128 KB. Antrinių vidinių atminčių talpa – nuo 64 iki 256 KB.
Spartinančiosios atminties efektyvumas labai priklauso nuo jos sandaros, valdymo būdo ir ryšio su pagrindine RAM spartos. Dažnai spartinančioji atmintis sudaroma iš dviejų dalių, kurių viena skirta instrukcijoms, o kita – duomenims.
Spartinančioji atmintis taip pat naudojama ir kitur informacijos cirkuliacijai pagreitinti, pavyzdžiui, ją (kaupyklę) turi visi šiuolaikiniai diskiniai ir CD kaupikliai. Kai kada ji organizuojama programiškai, tam panaudojant dalį pagrindinės atminties.
CMOS RAM
CMOS RAM yra labai ekonomiška mažos talpos atmintis, maitinama iš baterijos arba akumuliatoriaus. Joje saugoma ppagrindinė informacija apie kompiuterio konfigūraciją, pavyzdžiui, kiek ir kokių kaupiklių yra kompiuteryje, kokia atminties talpa. Joje yra laikrodis. Kai kuriuos parametrus į CMOS RAM gali įvesti vartotojas, pavyzdžiui, slaptažodį, kurio nežinant negalima pradėti dirbti su kompiuteriu. Išsikrovus baterijai arba akumuliatoriui, CMOS RAM informaciją užmiršta, todėl kai kada ilgai nenaudotą kompiuterį galima įjungti tik pakeitus bateriją.