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)