Memóriák
(felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő)
Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül nem létezhetne tárolt programú digitális gép I/O eszközök Központi memória Lemez Nyomtató
Memória Alapegység: bit (binary unit) 0 v. 1 (bináris számrendszer) BCD (Binary Coded Decimal) Decimális szám 4 biten 4 bit ( nybble ) : 16 lehetőség 6 kombináció kihasználatlan 2006: 0010 0000 0000 0110BCD 2006: 0000 1111 1101 0110B Egyszerű konverzió miatt CPU nélküli vagy beágyazott rendszerekben használják
Címzési módok Operatív tár Rekeszek (cellák, pl. keskeny, hosszú papírcsík) Rekesz cím (address) - sorszám (memória elejétől) egyértelműen azonosítja az adott cellát Rekeszek száma cím bitszélessége k-bites rekeszek (cím független k-tól) 10 db 8 bites rekesz cím: 210 10 db 128 bites rekesz cím: 210
Címzési módok (Címek a: 4 bit, b: 3 bit, c: 3 bit) Tanenbaum
Címzési módok Rekesz legkisebb címezhető egység IBM PC 8 bit (1 byte ~ octet) Mára szinte szabványos a 8 bites rekesz Számítógép Burroughs B1700 IBM PC DEC PDP-8 IBM 1130 DEC PDP-15 XDS 940 Electrologica X8 XDS Sigma 9 Honeywell 6180 CDC 3600 CDC Cyber Bit 1 8 12 16 18 24 27 32 36 48 60
Címzési módok Szó (word) Rekeszekből (byte-okból) áll 32 bites szó esetén a szó 4 byte-os Utasítások zöme szavakkal dolgozik (32 bites gép 32 bites szavak, 64 bites gép 64 bites szavak)
Byte sorrend Szó byte-jai jobbról-balra big endian (SPARC, IBM) Szó byte-jai balról-jobbra little endian (Intel) Tanenbaum
Hibadetektáló kódok Memóriák hibázhatnak Pl. áramlökés (villám, kozmikus sugárzás) Hibadetektálás Paritás bit Bitek átbillenhetnek jelöljük ha 1 hiba történt Pl. páros paritás: a bitsorozat 1-es bitjeit páros számúra egészítsük ki: 0101100 01011001 0101000 01010000
Hibadetektáló kódok Hiba detektáltuk újra kell küldeni Mi a hiba? Bit-eltérés valamely pozíciókban m hasznos bit + r redundáns bit n bites kódszó Két kódszó eltérő bitpozícióinak száma: Hamming-távolság pl.: 1001 és 1010 Hamming-távolsága: 2 (Kódszó generálás: pl. Hamming-kocka)
Hibadetektáló kódok Hamming-távnyi bithiba kell ahhoz hogy egy kódszó a másikba forduljon m hasznos bit 2m bitminta (üzenet) n biten 2n kódszó (2m érvényes) Ha érvénytelen kódszó jön hiba érvényes kódszavak listájában a két legkisebb Hamming-távolságú szó az összes kód Hamming-távolsága
Hibadetektáló kódok d egyszeres bithiba felismeréséhez d+1 távolságú kódolás kell: d:=2 Hamming-táv: 2+1=3 000000, 000111, 111000, 111111 ha max. d=2 bit billen át, nem kapunk másik érvényes kódszót észrevehető a hiba 011111: 000111?(2 hiba) v. 111111(1 hiba)
Hibajavító kódok d egyszeres bithiba javításához 2d+1 távolságú kódolás kell: d:=2 Hamming-táv: 2*2+1 = 5 0000000000 0000011111 1111100000 1111111111 2 bithiba javítható, a hibás kód mihez áll legközelebb?
Hibajavító kódok Tegyük fel hogy létrehozunk egy 1 bitet javító n-hosszú kódolást, ahol m adatbit r ellenőrző bit azaz n=m+r 2m érvényes szó n db 1 bites eltérés (Hamming-táv=1) 1 db helyes kódszó (0 bit eltérés) (n+1)*2m db 1 bites hiba
Hibajavító kódok (n+1)*2m db 1 bites hiba Összes kód: 2n (n+1)*2m <= 2n, n = m + r (m+r+1)*2m<=2m+r (m+r+1) <=2r m adott, így r-re kapunk egy alsó határt
Hibajavító kódok Egyszeres hiba javításához szükséges paritás bitek (check bit) pár m-értékre Tanenbaum
Hibajavító kódok Richard Hamming Az elmélet alsó korlátát érte el módszerével Alapötlet: átlapoló paritás bitek, egymást is figyelik 1100 kódolása pl. AB, AC, AD, ABC felosztás Tanenbaum
Hibajavító kódok Hamming-kód Bitek sorszáma 1-től indul (nem 0-tól) Paritás bitek helye a 2 hatványainál van A maradék helyekre kerülnek az adatbitek A paritásbitek rendre a következő bitpozíciókat ellenőrzik: p1: 1,3,5,7,9,11, (első hatványtól minden első) p2: 2,3,6,7,10,11, (második hatványtól 2 igen, 2 nem) p3: 4,5,6,7,12,13,14,15, (harmadik hatványtól 4 igen, 4 nem)
Hibajavító kódok Hamming-kód Általánosan: b. bitet azok a b1,b2,b3,..,bj paritásbitek ellenőriznek, melyekre áll, hogy b1,b2,b3,..,bj pozícióinak összege b. Pl.: 7. bitet az 1., 2. és 4. bit ellenőrzi, hisz 1+2+4=7 1 1 2 4 8 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hibajavító kódok Hamming-kód Pl.: Szó: Kód: 100101 10p010p1pp 10p010p1p1 10p010p111 10p0101111 1010101111
Hibajavító kódok Hamming-kód Kapott kódszóra újra paritás biteket generálni Ahol eltérnek, ott hiba paritás bitek sorszámainak összege adja a hiba pozícióját Excel-példa
Memóriák cache CPU gyorsabb mint a memória Fejlesztés Lehetőség CPU várakozik a memóriára (pl. NOP parancsokkal) Lehet gyors memóriát is építeni CPU gyorsabb legyen Memória több legyen CPU és memória sebesség egyre távolabb Nagyon drága CPU mellé korlátos méretben lehet integrálni Méret sebesség kompromisszum: Gyorsítótár (cache)
Memóriák cache Cache logikai elhelyezkedése
Memóriák cache Méret A lassabb elérésű tár egy részét egyben tárolja Nagyságrendileg KB-MB Lokalitás-elv Több szó -t olvasunk cache-be egyszerre - gyorsabb A sok írás olvasás ide innen történik CPU-ban a központi memóriát cache -eljük, de más táraknál is használatos (pl. merevlemez) Gyors, de költséges CPU cache Közp. Mem.
Memóriák cache Sebességek c cache elérési sebessége m memória elérési sebessége h találati arány (hány hivatkozás ment cache-ből) (pl. k-szor olvasunk, akkor ált. egyszer a lassú memóriából, utána k-1-szer a cache-ből, így h=(k-1)/k 1-h hibaarány Átlagos elérési idő: c c + (1-h)m h 0 : c+m h 1 : c CPU cache m Közp. Mem.
Memóriák cache Egyesített gyorsítótár Adatok és utasítások ugyanott Egyszerűbb szerkezet Adatok és utasítások mozgatása egyensúlyban Osztott gyorsítótár (Harvard-architektúra) Adatok és utasítások külön cache-ben Csővezetékek miatt az utasításbeolvasó (utasítás) és az operandusbeolvasó (adat) egyszerre olvas Párhuzamos működés lehetséges (egyesítettnél nem lehetséges)
Memóriák - Regiszterek CPU ALU Regiszterek Dekódoló, vezérlő egység A processzor belső, átmeneti tárolói Belső sín ÁltalábanBusz a CPU bitszélességével megegyező vezérlő Cím generáló nagyságúak (pl. 32 bit-es 2^32=4GByte) Az utasítások mindig regiszterből vesznek be paramétert és ide is teszik az eredményt
Memóriák - Regiszterek CPU ALU Regiszterek Regisztereket különösen gyorsan kell tudni kezelni cpu sebességét befolyásolják Operandusok, utasítások, állapotjelzők Felejtő memória Belső sín Busz vezérlő Dekódoló, vezérlő egység Cím generáló
Memóriák központi memória Elsődleges v. operatív memória RAM (Random Access Memory) Méret: 128Mb 4Gb+ I/O csatornák használata nélkül elérhető Felejtő Modulokkal bővíthető 256 MB modul Eleinte lapkánként lehetett bővíteni Manapság 8-16 lapka van egy nyomtatott áramkörön SIMM (Single Inline Memory, egyérintkezős) és DIMM (Dual Inline Memory, kétérintkezős) Hibajavítás lehetséges, de SIMM DIMM-eknél ritka a hiba, el szokták hagyni
Memóriák központi memória DIP (Dual Inline Package) Pl. 8086, 286 SIPP (Single Inline Package) Pár 286-osban Sérülékeny (lábak letörnek)
Memóriák központi memória 32 bites adatút 30 és 72 érintkezős SIMM-ek (Single Inline Memory Module) Mindkét oldali érintkező-pár redundáns, ugyanaz a láb 30 érintkezős 8 v. 9 bites 72 érintkezős 32 v. 36 bites
Memóriák központi memória 64 bites adatút 168 és 184 érintkezős DIMM-ek (Dual Inline Memory Module) Mindkét oldali érintkező-pár más-más láb 168 érintkezős (SDRAM) 184 érintkezős (DDR RAM)
Memóriák központi memória 32 v. 64 bites adatút SO-DIMM (Small Outline DIMM) Noteszgépekben Routerek Nyomtatók mini-alaplapok
Memóriák operatív memória Feladat: programok adatok tárolása Írható olvasható (RAM, pedig nem azt jelenti, minden memória véletlen elérésű manapság, de így használjuk már) Fajták Statikus Dinamikus
Memóriák statikus RAM Static RAM (SRAM) Amíg tápellátás megjegyzi, nem kell frissíteni Elérési idő: néhány nsec Bitcellákból épül fel Pl. RS-tároló NOR kapukkal
Memóriák statikus RAM Kis sűrűség nagy kapacitáshoz nem ideális, illetve drága Fogyasztás a sebesség függvénye, gyors SRAM-ok (CPU cache pl.) esetén nagy Egyszerű implementálás és tervezés (nincsenek frissítések)
Memóriák dinamikus RAM Dynamic RAM (DRAM) Bitcella-tömb, minden cella egy tranzisztor és egy kapacitás Töltés / kisütés ~ 1 / 0 Töltések szivárognak frissítés! (200-500 / sec) Nagy sűrűség érhető el (kevés alkatrész) Operatív memória általában DRAM-ból épül (SRAM inkább cache) Elérési idő: néhány 10 nsec
Memóriák dinamikus RAM FPM (Fast Page Mode) DRAM Mátrix szervezésű tömb BE: Sor-, oszlopcím KI: adott cella értéke Maximum átvitel ~ 176 MBps Aszinkron (cím és adatvonal nem u.a. órajelű) EDO (Extended Data Output) DRAM Második memóriahivatkozás a kimenet előtt engedélyezett (folyamatos írás-olvasás esetén nő a sávszélesség pipeline) Maximum átvitel ~ 264 MBps Aszinkron
Memóriák dinamikus RAM SDRAM (Synchronous DRAM) SRAM és DRAM hibrid Szinkron órajel Lekérés, kiolvasás egy órajelre ütemezve Fix órajel után jön válasz (latency) 2000-re minden PC ilyen memóriával jött ki
Memóriák dinamikus RAM RDRAM (Rambus DRAM) 3x gyorsabb órajel mint SDRAM (400 MHz) Memóriavezérlő minden modulon (2x-3x drágább) Késleltetés (latency) nagyobb (45ns, 7.5ns helyett) Hőtermelés nagyobb Párban lehet betenni (CRIMM modul) 2002-ben a kétcsatornás DDR-ek kiszorították
Memóriák DDR SDRAM DDR (Double Data Rate) SDRAM 2x-es adatátvitel órajel felmenő és lemenő élén is adatátvitel Kisebb feszültség (SDRAM: 3.3V, DDR: 2.5V)
Memóriák DDR2 SDRAM DDR (Double Data Rate 2) SDRAM Nagyobb órajel Kisebb feszültség (1.8 V)
Memóriák DDR3 SDRAM DDR (Double Data Rate 3) SDRAM Nem GDDR3! Kisebb feszültség (1.5 V) Több csatorna (akár 8) párhuzamosan
Memóriák ROM ROM (Read Only Memory) Csak olvasható memória Gyártáskor kerül be a bitminta Tartalma nem vész el Felhasználás Gépek alapprogramjainak tárolása, bekapcsoláskor futnak le Olcsóbb mint RAM Megrendelés legyártás között sok idő telhet el
Memóriák (E)(E)PROM PROM (Programable Read Only Memory) EPROM (Erasable PROM) 1x írható, csak olvasható Felhasználó készíthet saját ROM-ot Biztosíték-mátrix-on égetik ki a bitmintát Törölhető (erős UV sugárzással) EPROM-íróval programozható EEPROM (Electrically EPROM) Impulzusokkal törölhető Helyben programozható 10-ed olyan gyors és 100-ad olyan kapacitású mint az Sés DRAM-ok ½-ed olyan gyors és 1/64-ed kapacitású mint az EPROM
Memóriák Flash ROM EEPROM-hoz hasonló, de Gyorsabb elérési idő (~50 nsec) Sokkal olcsóbb Blokkokban írható/olvasható Nagyon ellenálló (forróság, nyomás) ~100.000 írást/törlést bír ki Egyre több eszközben használják (mp3, digitális kamera, háttértár)