FAV-ZCU/KIV POT/10. Návrh paměti.md

70 lines
No EOL
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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