# Paměťový systém

### Přehled polovodičových pamětí

- dělení
	- nevolatilní
		- jednorázově programovatelné
			- ROM, PROM, OTP EPROM
		- mazatelné
			- EPROM, EEPROM, Flash
	- volatilní
		- statické RAM
			- CMOS, rychlé CMOS
		- dynamické RAM
			- asynchronní
			- synchronní

**ROM**
- Read Only Memory
- pouze ke čtení, programovatelné jen u výrobce při výrobě
- efektivní jen ve velkých sériích, nejsou časté

**PROM**
- Programmable ROM
- programovatelné jednorázově u uživatele

**EPROM**
- Erasable PROM
- probramovatelné u uživatele
- lze opakovaně mazat UV zářením (cca 100x, v pouzdře je okénko)

**EEPROM**
- Electrically Erasable PROM
- v normálním provozu jen pro čtení
- lze elektricky vymazat a znovu naprogramovat (cca 100 000x) - vyžaduje speciální pomalé postupy
- trvanlivost uložených dat cca 10 let
- kapacita řádově 1 MB

**Flash EEPROM**
- v normálním provozu jen pro čtení
- lze je elektricky vymazat a znovu naprogramovat - vyžaduje (poměrně pomalé) speRead-Write Memoryciální postupy
- kapacita řádově 10-100 MB
- nejedná se o Flash disky, ty využívají AND Flash

**Porovnání EEPROM a Flash**

|                               | EEPROM           | Flash        |
| ----------------------------- | ---------------- | ------------ |
| zápis bez předchozího smazání | ano              | ne           |
| mazací cyklus                 | 20 ms            | 100 ms - 1 s |
| zápis dat                     | 10 ms            | 10 μs        |
| počet mazacích cyklů          | 10 000 - 100 000 | 1 000 000    |

**Statické paměti RWM** (Read-Write Memory)
- někdy též RAM (Random Access Memory) nebo SRAM (Static RAM)
- **volatilní paměti** - pro udržení dat potřebují trvalé napájení
- dvě verze
	- CMOS SRAM s nízkým příkonem (low power)
		- možnost převést do velmi úsporného režimu
	- rychlé synchronní CMOS SRAM (fast)
- kapacita řádově 1 MB

**Dynamické RAM** (DRAM)
- **volatilní paměti**
- pro udržení dat můsí být jejich obsah periodicky obnovován
- velká kapacita (až 1024 MB) při nízké ceně
- pro vyšší rychlosti v synchronních verzích (SDRAM)

### Použití polovodičových pamětí

- paměť sestavena z mnoha paměťových buňek
- konstrukce buňek podle typu paměti (EEPROM, SRAM, ...)

**Použití paměti Flash**
- čtení - jednoduchý čtecí cyklus na sběrnici
- zápis - několik zápisových cyklů na sběrnici

**Použití pamětí SRAM**
- nízkopříkonové SRAM - snadný zápis i čtení

**Dynamické paměti** (DRAM)
- paměťová matice je přibližně čtvercová ($2^n \times 2^n$ buňek)
- adresa řádku a sloupce se do paměti zapisuje postupně
- může mít oddělený vstup a výstup dat
+ čtecí cyklus
	- na adresních vodičích předána adresa
	- signálem /RAS se přečte celá řádka z paměťové matice
	- signálem /CAS se vybere jedno z přečtených slov
		- poté aktivuje výstupní budiče dat
	- po zrušení /RAS a /CAS provede paměť zpětný zápis do paměťové matice
- cyklus Read-Write-Modify
	- umožňuje v jednom cyklu přečíst i zapsat data na stejnou adresu
+ stránkové režimy
	- umožňuje přečíst data z celé řádky při jediné aktivaci /RAS
	- podobné též stránkový zápis
- zotavování
	- každá buňka se musí zotavovat podle typu po cca 10-60 ms
	- při čtení nebo zápisu se automaticky zotaví celá řádka
	- zotavovací cykly
		- RAS only - používá vnější čítač pro zotavení
		- CAS Before RAS (CBR) - používá vnitřní čítač pro zotavení
	- časování
		- při zotavovacím cyklu není možný přístup do DRAM
		- čtecí/zápisový cyklus prodloužen signálem /WAIT
+ zapojení paměti
	+ adresa z CPU se rozdělí na řádkovou a sloupcovou část
	+ přepínač adres postupně připojuje obě části adresy na adresní vstupy paměti
	+ podle potřeby se na adresní vstupy připojuje registr adresy zotavení

**Synchronní DRAM** (SDRAM)
- k synchronizaci adresy, povelu a dat se používají hodinové signály CK a DQS
- při čtení/zápisu se čte/zapisuje paralelně 2, 4 nebo 8 slov
- přenos dat paměť ↔ vnější obvody se provádí po slovech (např. 36 bitů)
- příkazy kódovány signály /RAS, /CAS a /WE