Přidání poznámek z POT k návrhu paměti
This commit is contained in:
parent
53693d7e12
commit
fbdc911751
1 changed files with 70 additions and 0 deletions
70
KIV POT/10. Návrh paměti.md
Normal file
70
KIV POT/10. Návrh paměti.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# Návrh paměti
|
||||
|
||||
- požadované vlastnosti
|
||||
- typ pamětí (SRAM, Flash, ...)
|
||||
- velikost paměti (počet slov x délka slova)
|
||||
- umístění pamětí v adresním prostoru
|
||||
- rozložení pamětí v adresním prostoru = mapa adresního prostoru
|
||||
- znalost mapy adresního prostoru je nutná při vytváření programového vybavení
|
||||
|
||||
**Interpretace adresy**
|
||||
- ve kterémkoli místě lze adresu rozdělit na číslo bloku a offset uvnitř bloku
|
||||
- velikost bloku (= paměťového obvodu) určuje délku příslušné části adresy - offsetu
|
||||
- poloha bloku v adresním prostoru je dána vyšší částí adresy
|
||||
- počet bloků je dán délkou vyšší části adresy
|
||||
|
||||
**Kapacita paměti**
|
||||
- kapacita = počet slov x délka slov
|
||||
- někdy v počtu bitů (např. 64 Mb)
|
||||
- častěji s ohledem na organizaci jako součin (počet slov x délka slova)
|
||||
- 256k x 8
|
||||
|
||||
**Základní počty**
|
||||
- **1 byte** = 8 bitů
|
||||
- **1 kbit** (kb) = 2^10 bitů = 1024 bitů
|
||||
+ **1 kByte** (kB) = 2^10 bytů = 1024 bytů
|
||||
+ **1 MByte** (MB) = 2^20 bytů = 2^10 kB = 1 048 576 bytů
|
||||
+ **1 GByte** (GB) = 2^30 bytů = 2^20 kB = 2^10 MB = 1 073 741 824 bytů
|
||||
+ má-li paměť kapacitu
|
||||
- 1 kB (= 2^10 bytů), je k jejímu adresování potřeba 10 adresních bitů
|
||||
- 2 kB (= 2^11 bytů), je k jejímu adresování potřeba 11 adresních bitů
|
||||
+ $2^m \times 2^n = 2^{m+n}$
|
||||
|
||||
**Příklad** - připojení Flash 512 k x 8 k H8S
|
||||
- **úkol**: připojit Flash 512 kB k H8S tak, aby byla umístěna v adresním prostoru od adresy 000 000
|
||||
- paměť má kapacitu 512 kB (= 2^19 kB)
|
||||
- A18 – A0 adresují uvnitř paměti
|
||||
- A23 – A19 musíme zavést do dekodéru adres
|
||||
+ **úkol**: připojit Flash 512 kB k H8S tak, aby byla umístěna v adresním prostoru na adrese B00 000 – B7F FFF
|
||||
- paměť má kapacitu 512 kB
|
||||
- A18 – A0 adresují uvnitř paměti
|
||||
- A23 – A19 musíme zavést do dekodéru adres
|
||||
- musí na nich být hodnota 10110
|
||||
|
||||
**Interní dekóder adres v H8S**
|
||||
- podle kombinace na A23-A21 aktivuje některý z /CS0-/CS7
|
||||
- paměť má kapacitu 512 kB
|
||||
- A18-A0 adresují vnitřní paměti
|
||||
- A23-A21 jsou dekódovány přímo v H8S
|
||||
- musí na nich být kombinace 101, tedy bude aktivní /CS5
|
||||
- A20-A19 musí mít hodnotu 10 - dekódujeme je v externím dekodéru
|
||||
|
||||
**Externí dekodér**
|
||||
- je-li /Enable = H, jsou všechny výstupy H (tj. neaktivní)
|
||||
- je-li /Enable = L, je aktivní některý z výstupů /Y0, ... , /Y3
|
||||
- podle kombinace na X1 X0
|
||||
- výstupy /Y0, /Y1, /Y2 a /Y3 z dekodéru adres lze použít pro připojení 4 ks Flash 512 kB (celkem 2 MB Flash)
|
||||
|
||||
**Návrh paměti**
|
||||
- sestavit SRAM 256 kB z obvodů 128 kB (128 k x 8)
|
||||
- paměť má být v adresním prostoru umístěna od adresy 500 000
|
||||
- úvahy
|
||||
- k dosažení potřebné kapacity jsou zapotřebí dva paměťové obvody
|
||||
- paměťový obvod o kapacitě 128 kB má 17 adresních vodičů (A16 – A0)
|
||||
- vodič A17 vybírá jeden ze dvou použitých obvodů
|
||||
- vodiče A23 – A18 zavedeme do dekodéru adres – musí na nich být kombinace 010100
|
||||
|
||||
**Neúplné dekódování adresy**
|
||||
- některé adresní vývody procesoru jsou nezapojeny
|
||||
- jejich hodnota může být libovolná
|
||||
- každá paměťová buňka má několik adres (zrcadlení), které se liší v adresních bitech odpovídajících nezapojeným adresním vývodům
|
Loading…
Reference in a new issue