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

3.2 KiB
Raw Permalink Blame History

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