A mai számítógépek (IBM PC) felépítése (4. Memória)

Sorozatunk következő bejegyzése szintén alapvető alkatrészt vesz most górcső alá a processzor után, ami nem más mint a memória. Konyhanyelven hívhatnánk a számítógépünk emlékezetének is, ahogy az embereknél is hasonló jelentéssel bír a memória szó. Azonban nézzük meg ennél szakszerűbben is, mi is ez pontosan!
A memória mostanság szinte minden elektronikus eszközben jelen van már, és nagyon sok fajtája van. Ez a cikk a személyi számítógépekben levő véletlen elérésű rendszermemóriára ("RAM" ill. "main memory") hivatkozik mint memória.

A Samsung bemutatja az első DDR4-es modult a világon (2011), forrás: tweaktown.com


Memória fogalma

A memória lényegében egy olyan adattároló hardvereszköz, amelyben bájtokba szervezve (azaz a kettes számrendszeren alapulva, 0 és 1 értékeket használva) tárolja az éppen futó programokat és az ehhez szükséges adatokat, amelyeket a processzor viszonylag gyorsan (néhány nanoszekundum, a processzor műveleti sebességénél lassabb, de a háttértáraknál gyorsabb) elér. A tartalmát a számítógép kikapcsolása után elveszti, és folyamatosan frissíteni kell ahhoz, hogy menet közben se "felejtse el".

Cellákból épül fel, amelyekre címmel hivatkozunk. Egy cella 1 bit információ eltárolására képes, a memória maga pedig bit vagy bájt (8 bit) szervezésű.

Szokás elsődleges tárolónak hívni, a háttértárakat pedig (pl. merevlemez vagy optikai lemez) másodlagosnak. Mai mérete tipikusan több száz megabájt ill. néhány gigabájt nagyságrendben mérhető.

A memória fejlődésének rövid története

A kezdeti számítógépeknek a mai értelemben véve még nem volt memóriájuk. A programokat, amiket futtatni szerettünk volna, külső tárolóról kellett indítani, amelyek gyakran lyukkártyák vagy egyszerű papírszalagok voltak.
Az 1952-es EDVAC volt az első olyan számítógép, amely a programot is és az adatokat is a memóriában tárolta Neumann János elveinek egyike alapján.

Az 50-es évektől a 70-es évek elejéig a domináns megoldás erre a célra a ferritgyűrűs memória volt, amely mágneses elven tárolt adatokat kis fémgyűrűk felmágnesezésével (a korai mágnesdob elvét fejlesztette tovább, ahol még egy hengeren levő sávokat mágneseztek fel és az 50-es és 60-as években használták). Ennek az érdekes hozománya, hogy a számítógép kikapcsolása után is megőrzi tartalmát, ellentétben a ma használt memóriákkal. Furcsán hat mai szemmel, de ezeket a memóriákat gyakran még fűtötték: ugyanis állandó hőmérsékletre volt szükség a működésükhöz, és a szobahőmérséklet felettit olcsóbb volt tartani, mint egy annál alacsonyabbat.
Nagyságrendileg az ekkori gépekben levő memória mérete néhány (tíz) kilobájt, órajelük 1 MHz körüli volt.

1969-ben az Intel elkészítette az első 1 kilobájtos DRAM (Dynamic Random Access Memory) memória chipjét, ami akkor a legnagyobb kapacitású önálló chip volt és már tranzisztorokat használt. Kisebb, megbízhatóbb és alacsonyabb fogyasztású volt mint a vetélytársak. 1972-ben már ez volt a legjobban fogyó memória és ez tette lehetővé a későbbiekben hogy a számítógépek az otthonokba is eljuthattak.

1976-ban már 16 kilobájtos modulokat is piacra dobtak és 1984-ben eljutottunk oda, hogy az Apple a Macintosh gépeit ekkor már 128 kilobájt memóriával felszerelve bocsátotta útnak.

Néhány mellékágtól eltekintve a memóriák fejlődése nem hozott innentől fogva túl nagy újdonságokat. Két fő típus alakult ki: SRAM / Static RAM (ez a drágább, de gyorsabb, flip-flop alapú) ill. a DRAM / Dynamic RAM (olcsóbb, kicsit lassabb, tranzisztorokból és kondenzátorokból áll).

A mostanság használatos DDR chipek (elődjei az SD és EDO) ennek megfelelően egy DRAM-ra épülnek (hiszen olcsóbbak, így jobban elterjedtek), azonban szinkronizálva vannak a rendszerbusz órajeléhez, és emiatt Synchronous DRAM-nak nevezzük őket. Aktuálisan elterjedt DDR3 memóriák órajelei elérhetik a 2 GHz-et is, méretük pedig modulonként a 4 GB-ot (átlagos, otthoni PC-k esetén).

A lassuló fejlődési ütemnek súlyos következményei lettek mára a Neumann-architektúrát illetően, ugyanis míg a processzorok elképesztő ütemben fejlődtek (1986-tól 2000-ig évente 55% teljesítménynövekedés), addig a memóriák alig (évi 10% ugyanebben az időszakban). Ezt a problémát nevezik "memória fal"-nak vagy "Neumann-féle szűk keresztmetszet"-nek. Lényege, hogy az egyre gyorsuló processzor amelynek nő a memóriaéhsége, egyre többet kénytelen várni a nem megfelelő mértékben gyorsuló memóriára, ez pedig visszafogja a teljes rendszer teljesítményét.

Ennek leküzdésére próbálkoznak jó ideje: cache került a processzorba, a merevlemezbe, a CPU integrált memóriavezérlőt kapott, több csatornát használhatunk egyszerre és az órajelek is emelkednek, de ezt az architekturális gyengeséget úgy tűnik, véglegesen nem sikerül kikerülni.

A következő lépcsőfok? 

A jövő memóriái még nem tudni, milyen megoldáson fognak alapulni, azonban bizonyos hogy hamarosan éles váltás következik. Lehetséges hogy a nanotechnológia jelent megoldást vagy a memrisztor (vagy inkább mindkettő ötvözete), de ez egyelőre még ismeretlen előttünk.

Működése 

A fogalom meghatározásánál megbeszéltük, hogy a memória egy tárolóegység, de kikapcsolás után elfelejti a tartalmát. Akkor mire is jó?

Amikor a számítógépünk merevlemezéről indítunk egy programot, a háttérben ez a program valójában a memória területére másolódik és ott fut. Ez azért van, mert a merevlemezünk nagyságrendekkel lassabban működik mint a processzor, onnan helyből futtatni egy programot borzasztó lassú lenne (viszont a valóságban nagyon gyorsan tanúi lehetünk ennek a jelenségnek, ha túl kevés memóriával rendelkező gépen elindítunk egy alkalmazást, és az elkezdi a virtuális memóriát, azaz merevelemezünket használni a memória kiegészítéseként).

Ha indítunk egy alkalmazást, akkor lényegében a benne levő utasítások által használt adatok lesznek a memóriában, maguk az utasítások pedig a processzor regisztereibe töltődnek be (ahogy a kisebb változók szintén, amiken a műveletek végrehajtódnak). Rögtön látszik, hogy rendkívül intenzív adatmozgás lesz a processzor és a memória között, ha van elég memóriánk akkor optimális esetben csak ritkán kell a nagyon lassú háttértárakhoz nyúlni.


A memóriavezérlő felügyeli a memóriaműveleteket, amely manapság már a processzorban található, és a közvetlen memóriahozzáférés (DMA) miatt a hardvereszközök képesek úgy használni a memóriát, hogy igényükkel nem foglalják le a processzort.


A memória kezelését az operációs rendszer végzi, a felhasználónak ezzel kapcsolatban nincs teendője.


Egy SD (fent) és egy DDR (lent) memória modul (forrás: http://wikipedia.org)




Jellemzői

  • Foglalat / generáció

Manapság a DDR3-as modulok elterjedtek, azonban bőven akad még DDR2, DDR1 vagy akár SD memória is a piacon. Neve csalóka, mivel a DDR modul is valójában egy továbbfejlesztett SD memória. A DDR a "double data rate" (dupla adatráta) rövidítésből ered, az SD pedig a "Synchronous dynamic" rövidítésből.
Vásárláskor arra figyeljünk, hogy megfelelő generációból válasszunk, legyen elegendő szabad foglalat az alaplapon és lehetőleg ne keverjünk különböző méretű ill. sebességű modulokat! Mivel a különböző típusok foglalata fizikailag nem kompatibilis, nem tehetünk véletlenül rossz memóriát a foglalatunkba.


  • Kapacitás
Amikor memóriát vásárolunk, a modulok mérete / kapacitása az, ami az egyik fontos tényező. Manapság már GB (gigabájt) nagyságrendben beszélhetünk róla. Ha bővíteni szeretnénk, figyeljünk arra, hogy dual / triple channel technológiák kihasználásához, megadott foglalatokba egyforma modulokat kell tennünk, méretben és sebességben is. Legjobb ha a gyártó is ugyanaz, de különböző gyártók moduljaival is működhet a dolog.

  • Órajel
Nevezhetjük a memóriamodulok sebességének is. MHz-ben (megahertz) mérjük, manapság tipikus értékei DDR3-nál a 800, 1066, 1333, 1600 stb. Mhz. Korábban ezek az FSB (Front Side Bus, a processzor és a memória közötti adatsín) órajelét követték, de ma már ezt nem használják, helyette sok pont-pont összeköttetésű kapcsolatot építenek ki a processzor és a memória között (ezt az AMD HyperTransport-ak, az Intel pedig QuickPath Interconnect-nek nevezi).
Ha vegyesen használunk különböző sebességű modulokat, akkor a leglassabb modul sebességén fog működni az összes, így ezt lehetőleg kerüljük!


  • Időzítés

A memóriáknál egy kevésbé kiemelt, ám nagyon fontos adat az időzítés. Adott típusnál egy számsort láthatunk (2,5-3-3-7) vagy pl. CL9 rövidítést. A CL rövidítés jelentése CAS latency, bővebben: CAS az magyarul nagyjából oszlop cím kiválasztást jelent, a latency pedig késleltetést.
A számsor első jegye ill. a CL utáni szám azt jelenti, hogy az adott modul hány órajelciklus alatt éri el az adott oszlopcímen levő memóriarekeszt. Nyilván minél kisebb ez az érték, annál gyorsabb a memória.

Forrás:
http://en.wikipedia.org
http://en.wikipedia.org/wiki/DDR_SDRAM

Megjegyzések

Népszerű bejegyzések ezen a blogon

Ismerkedés a parancssorral: cmd

IP cím lekérdezése