12a_08 1.2_Memoriak Borgulya_Balazs_Ujvari_Tamas
8. témakör Memóriák 1. Számítógép sematikus felépítése:
2.A memória fogalma: Gyors hozzáférésű tárak. Innen veszi, és ideírja a CPU a programok utasításait és adatait (RAM, ROM). Itt vannak a futó programok is.
3.A memóriák csoportosítása: o
ROM (csak olvasható) típusú memóriák (Read-Only Memory) Tartalmuk kiolvasható, de nem változtatható meg. Programozásuk a gyártáskor történik. A számítógép vezérléséhez szükséges alapvető parancsokat tartalmazza. Információtartalmukat a gép kikapcsolása után is megőrzik. Továbbfejlesztett változata a PROM (Programing ROM), mely egy speciális készülékkel programozható, utána azonban tartalma csak olvasható például, ill. az EPROM (Erased PROM), mely ultraibolya fénnyel törölhető, majd újraírható. EEPROM (Electronic Erased PROM): Az EEPROM a ROM (memóriachip) egy speciális változata, mely elektromos úton törölhető, majd újraírható. Történeti és technológiai sorrendben először a ROM, később az EPROM, majd az EEPROM volt használatos. Használati körük általában az olyan ritkán változó adatok, mint a BIOS-ok és egyéb Firmware-ek nem változó részeinek tárolása. Nem keverendő a CMOS RAM-mal, mely PC esetén az RTC (Real Time Clock) nevű áramkörrel közösen pár száz byte-nyi memóriát tartalmaz.A CMOS technológiának hála (nevezetesen: kis fogyasztás) kis akkumulátorral is sokáig megtartja az információt. 1/5
12a_08 1.2_Memoriak Borgulya_Balazs_Ujvari_Tamas Itt tárolódnak azok a beállítások, amit a BIOS-ban eszközölni lehet, pl a merevlemez típusa. ROM típusú memóriák: - A BIOS-t tartalmazó memória (ROM-BIOS): Feladata az egyes hardver elemek működésének irányítása, az alapvető gépi folyamatok vezérlése. Ennek tartalmát a DOS a RAM memóriába másolja (a RAM gyorsabb, mint a ROM). • Nagyfelbontású VGA monitor esetén: a vezérlőkártyán találhatunk ROM-ot. A ROM fajtái: 1. PROM (Programmable ROM) – egy alkalommal írható. 2. EPROM (Erasable PROM) – ultraibolya fénnyel törölhető, majd egy speciális eszközzel írható. 3. EEPROM (Electrically EPROM) – törlését elektromosan lehet megtenni. 4. Flash memória – az EEPROM egy speciális változata. A számítógépek alaplapján található BIOS-t napjainkban legtöbbször már Flash memória tartalmazza. Ez lehetővé teszi a gyártónak, hogy úgy fejlesszék az alaplap képességeit, hogy ehhez csak egy programot kell elérhetővé tenni a felhasználók számára az interneten. o
RAM (írható és olvasható) típusú memóriák (Random Access Memory) Olvashatók, törölhetők és újra írhatók. Külső tápfeszültségre van szükségük az adatok tárolásához, vagyis a gép kikapcsolásakor az adatok elvesznek. Operatív tár céljára használják. Egy program futtatását a számítógép úgy végzi el, hogy először beolvassa a programot a RAM-ba, majd egymás után végrehajtja a parancsokat. -Statikus RAM -Dinamikus RAM
Példák az egyes memóriatípusok használatára: RAM típusú memóriák: - Operatív memória: Ennek az első 640 Kbyte-os részét hagyományos memóriának, az 1 Mbyte feletti részét pedig kiterjesztett memóriának (XMS) nevezzük. A DOS közvetlenül csak a hagyományos memóriát tudja kezelni.
Operatív tár: Az operatív tár központi vezérlőegység által közvetlenül címezhető, elérhető tárolóegység, azaz memória. Tartalmazza a végrehajtás alatt álló program utasításait, valamint adatait. - CMOS RAM: Olyan kis fogyasztású memória, amely külön akkumulátorról kapja az áramot, így a gép kikapcsolásakor sem veszti el tartalmát. A számítógép konfigurációs beállításait őrzi (SETUP). • CACHE memória: Kiskapacitású gyorsító memória 2/5
12a_08 1.2_Memoriak Borgulya_Balazs_Ujvari_Tamas
A RAM fajtái és fejlődése: 1. DRAM (Dynamic Ram) Dinamikus RAM, DRAM (ang. Dynamic Random Access Memory). Egy memória cellát egy kondenzátor, és egy tranzisztor épít fel. Az információt addig tárolja, amíg a kondenzátor ki nem sül. Az információ elvesztését kiküszöböli a memória frissítése. Előnye az olcsósága, kis mérete, hátránya a frissítés szükségessége, valamint kisebb sebessége.
• •
Folyamatos frissítést igényel Egy tranzisztorból és egy kondenzátorból áll Kisméretű Nagy adat tárolási kapacitás, memória modulokból áll Lassabb Központi, operatív memória SDRAM (Synchronous DRAM) – a DRAM továbbfejlesztett változata. DDR SDRAM (Double Date Rate SDRAM) – napjainkban használatos, megfizethető árral és megfelelő teljesítménnyel. Sajátossága, hogy egy órajel alatt két művelet elvégzésére alkalmas, azaz elvileg kétszeres adatátviteli sebesség érhető el az azonos frekvencián működő SDRAMokhoz képest
2. SRAM (Static Ram) Statikus RAM, SRAM (ang. Static Random Access Memory). Minden memóriacellát egy kétállapotú tároló alkot, amelyet több tranzisztor alkot, ezért bonyolultabb, és drágább kivitelű. Előnye viszont hogy fogyasztása rendkívül kicsi és nagyobb a sebessége mint a dinamikus RAM-nak, ezért főleg gyorsítótárakban (Cache) alkalmazzák.
Nem kell frissíteni az adatot Kapcsolókból (4 vagy 6 tranzisztor) Nagy helyet foglal Gyors Gyorsító memória, Cache
RAM-ok fejlődése:
FPM RAM (Fast Page Mode): a legrégibb memória típus. Sorokra és oszlopokra van bontva, sor- és oszlopcímet kell megadni az eléréshez. EDO RAM (Extended Data Output): Az előző típushoz képest az adat több ideig marad kiolvasható. 33 MHz általában. BEDO RAM (Burst Extended Data Output): Hiába volt gyosabb, a sávszélesség lekorlátozta. 66 MHz-es volt. SD RAM (Synchronous Dinamic): Itt már számottevő sebességet lehetett elérni. 3/5
12a_08 1.2_Memoriak Borgulya_Balazs_Ujvari_Tamas Az adatátvitel sebességét a rendszer belső frekvenciájához igazítja. Itt tűnik fel az FSB (Front Side Bus), amellyel összehangolható a memória. Létezik 66, 100, 133 MHz-es, illetve 125 és a 150MHz-es HSD (High-Speed SD). RD RAM (Direct Rambus DRAM): Igen ritka ram típus, az ára miatt nem terjedt el. Dualban (két memória modul párhuzamosan dolgozik) még mindig felveszi a versenyt a mai ramokkal (16 bit sávszélesség, dual 32, 1200MHz-es a legnagyobb, 1,6 Gbájtos adatátvitel, mely 10-szerese az sd raménak)... DDR RAM (Double Data Rate SDRAM): Kétszeres sebesség az sd ramhoz képest. Későbbiekben ez tovább emelkedik. Egy modul sávszélessége 64 bit, ez dualban 128 bitre nő, amely megduplázná a ramok sebességét elméletben. Létezik: PC1600 (200), PC 2100 (266), PC 2700 (333), PC 3200 (400) és tuning ramok. DDR2 RAM: A ddr továbbfejlesztett változatta, magasabb órajel, hatékonyabb működés. Most már mindkét fő processzorgyártó (AMD, Intel) ezt támogatja..
DMA vezérlő működése: Az adatátvitel állapotának nyilvántartására a DMA egy címregisztert és egy számlálóregiszert alkalmaz ,melynek a tartalma minden egyes átvitt adat után aktualizálódik. A DMA vezérlő még további három regisztert tartalmazt: DMA módregiszter : az adatátvitel irányára vonatkozó információkat tartalmaz DMA maszkregiszter: amely az egyes DMA átvitelt kérő vezérlővonalak letiltását tartalmazza DMA állapotregiszter: amely a vezérlő állapotával kapcsolatos információk tárolására szolgál Végrehajtott lépései a következők: a processzor ellenőrzi a perifériát, hogy tudja e fogadni az átvitelt ez követően átadja a DMA vezérlőnek az átvitel paramétereit. DMA buszfoglalási kérelmet jelez. Lefoglalja masterként a buszt ,majd végrehajtja az adatátvitelt Jelzést küld megszakítással a processzornak az átvitel befejezéséről A processzor ellenőrzi a végrehajtás hibátlan megtörténtét.
Memóriakezelés A memória az egyik legfontosabb (és gyakran a legszűkösebb) erőforrás, amivel egy operációs rendszernek gazdálkodnia kell, főleg a több felhasználós rendszerekben, ahol gyakran olyan sok és nagy folyamat fut, hogy együtt nem férnek be egyszerre a memóriába. A memóriakezelésről nem lesz szó a későbbi fejezetekben, ezért itt ismertetem a fontosabb fogalmakat. Amíg a multiprogramozás nem jelent meg, addig az operációs rendszerben nem volt olyan nagy szükség a memóriakezelő részekre. A multiprogramozás megjelenésével azonban szükségessé vált a memóriának a futó folyamatok közötti valamilyen "igazságos" elosztására. A megoldást a virtuális memóriakezelés jelentette. Ez úgy működik, hogy az operációs 4/5
12a_08 1.2_Memoriak Borgulya_Balazs_Ujvari_Tamas rendszer minden egyes folyamatnak ad a központi memóriából egy akkora részt, amelyben a folyamat még úgy ahogy működik, és a folyamatnak csak azt a részét tartja a központi memóriában, amely éppen működik. A folyamatnak azt a részét, amelyre nincs szükség (mert például már rég nem adódott rá a vezérlés, és feltételezhetjük, hogy rövid időn belül nem is fog végrehajtódni) ki kell rakni a háttértárra (a diszken az ún. lapozási területre). Ez a megoldás azért működik, mert a programok legtöbbször egy eljáráson belül ciklusban dolgoznak, nem csinálnak gyakran nagy ugrásokat a program egyik végéről a másikra (ez a lokalitás elve). A virtuális memória egy, az operációs rendszer vagy a számítógép hardvere által nyújtott szolgáltatás (legtöbbször a kettő szoros együttműködése), amit általában egy külső tárolóterület (merevlemez) igénybevételével, a futó program(ok) számára transzparens módon biztosítja, hogy a program végrehajtáskor a központi vagy operatív memória fizikai korlátai észrevétlenek legyenek. Az operációs rendszer úgy szabadít fel operatív memóriát az éppen futó program számára, hogy a memóriában tárolt, de éppen nem használt blokkokat (lapokat) kiírja a külső tárolóra, amikor pedig ismét szükség van rájuk, visszaolvassa őket. Mivel a merevlemez sebessége töredéke a memória sebességének, nagyon sok múlik azon, hogy a virtuálismemória-kezelő milyen stratégiát alkalmaz az operatív memóriából kimozgatandó lapok kiválasztásakor. A központi egység fel van szerelve egy úgynevezett memóriakezelő egységgel (MMU), amely figyeli, hogy olyan kódrészre kerül-e a vezérlés, amely nincs benn a központi memóriában (mert például a háttértárra van kirakva). Ha a memóriakezelő egység azt találja, hogy ez az eset áll fenn, akkor az operációs rendszert arra utasítja, hogy rakja ki a háttértárra a folyamatnak azt a részét, amely jelenleg a memóriában van, és azt a részt hozza be a helyére, amelyre ezután szükség lesz. A virtuális memória kezelése leggyakrabban lapozással (paging) történik. Ekkor a virtuális memória (egy folyamat virtuális címtartománya, amit a CPU biztosít) fel lesz osztva egyenlő nagyságú részekre, ún. lapokra (pages) – a háttértár és a memória között legalább ennyi byteot fog az operációs rendszer átvinni (vagy ennek többszörösét). A fizikai memória pedig fel lesz osztva ugyanolyan méretű lapkeretekre (page frames). Ha mondjuk a virtuális címtartomány 128 KByte, és 64 KByte fizikai memória van a számítógépbe építve, akkor ez 32 lapot, és 16 lapkeretet jelent, ha a lapméret 4 KByte. Ha egy program végrehajt egy olyan (gépi kódú) utasítást, amely a memória valamelyik rekeszére hivatkozik (a hivatkozott memóriarekesz címét nevezik virtuális címnek), akkor ezt a címet először a processzor átadja az MMU-nak, ami majd egy fizikai memóriabeli címet állít elő belőle. E feladatának ellátásához az MMU tárol egy ún. laptáblát (vagy legalábbis valamilyen módon hozzáfér a laptáblához), amely a lapok és lapkeretek egymáshoz rendelését tartalmazza egy speciális ún. "érvényességi" bittel, ami minden egyes laphoz tárolva van, és a bit értéke azoknál a lapoknál 1, amelyekhez tartozik a fizikai memóriában lapkeret. Az MMU működése során egy kapott virtuális címhez tartozó lapról megvizsgálja, hogy az "érvényességi" bitje 1-e. Ha igen, akkor a megadott laphoz tartozó lapkeret sorszámát visszaadja a CPU-nak (mondjuk … ez történhet így is), és az a kívánt adatot a megfelelő (fizikai memória-) rekeszből megszerzi (vagyis azt csinál vele, amit a gépi kódú programban a végrehajtott gépi kódú utasításban megadtak). Mi történik akkor, ha az "érvényességi" bit 0? Ekkor egy ún. hardware-interrupt (megszakítás) keletkezik, amit laphibának (page faultnak) neveznek. 5/5