Blog:Pamäťové rozšírenie 256kB RAM

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)
Djb (Diskusia | príspevky)
(stylistika a gramatika)
Rombor (Diskusia | príspevky)
(Upr)
Riadok 1: Riadok 1:
= Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3 =
= Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3 =
-
Pôvodné pamäťové čipy 4164 sú nahradené čipmi 41256. Mapovanie rozšírenej pamäti zabezpečuje hradlové pole.
+
Pamäť RAM 64kB v [[PMD 85#PMD 85-2A|PMD 85-2A]] a [[PMD 85#PMD 85-3|PMD 85-3]] je tvorená ôsmimi čipmi DRAM 4164 (65536 x 1bit). Ich nahradením za 8 čipov DRAM 41256 (262144 x 1bit) a pridaním stránkovacej logiky, je možné rozšíriť pamäť RAM na 256kB. Keďže mikroprocesor môže adresovať maximálne 64kB pamäti, 256kB pamäte sa tzv. stránkuje, či mapuje do adresného priestoru mikroprocesora.
-
* 256kB pamäti sa delí na '''16 stránok''' po 16kB: ({{Kbd|PG00}} až {{Kbd|PG15}}).
+
-
* Pamäťový priestor CPU sa delí na 4 oblasti:
+
-
** {{Kbd|REG0}} - od adresy 0000h
+
-
** {{Kbd|REG1}} - od adresy 4000h
+
-
** {{Kbd|REG2}} - od adresy 8000h
+
-
** {{Kbd|REG3}} - od adresy C000h
+
 +
* 256kB pamäti sa delí na '''16 stránok''' po 16kB: {{Kbd|PG00}} až {{Kbd|PG15}}
 +
* pamäťový priestor CPU sa delí na 4 oblasti (regióny):
 +
** {{Kbd|REG0}} - od adresy 0000h po 3FFFh
 +
** {{Kbd|REG1}} - od adresy 4000h po 7FFFh
 +
** {{Kbd|REG2}} - od adresy 8000h po 0BFFFh
 +
** {{Kbd|REG3}} - od adresy 0C000h po 0FFFFh
-
Ak nie je pre nejakú oblasť zvolená iná stránka, sú tam namapované základné stránky {{Kbd|PG00}} až {{Kbd|PG03}} do zodpovedajúcich oblastí {{Kbd|REG0}} až {{Kbd|REG3}}.
+
Ak nie je pre nejakú oblasť zvolená iná stránka, tak je v nej namapovaná zodpovedajúca základná stránka {{Kbd|PG00}} až {{Kbd|PG03}}.
Stránky {{Kbd|PG03}} a {{Kbd|PG07}} zdieľa aj [[VideoRAM|Video-procesor]]. Ten pristupuje ku týmto stránkam nezávisle od CPU a teda tieto stránky vôbec nemusia byť namapované v adresnom priestore CPU.
Stránky {{Kbd|PG03}} a {{Kbd|PG07}} zdieľa aj [[VideoRAM|Video-procesor]]. Ten pristupuje ku týmto stránkam nezávisle od CPU a teda tieto stránky vôbec nemusia byť namapované v adresnom priestore CPU.
Riadok 42: Riadok 42:
|}
|}
-
* bity {{Kbd|PAGE<x>}} určujú číslo stránky, ktorá bude namapovaná do oblasti určenej bitmi {{Kbd|REGION<x>}}.
+
* bity {{Kbd|PAGE<x>}} určujú číslo stránky, ktorá bude namapovaná do oblasti určenej bitmi {{Kbd|REGION<x>}}
-
* ktorákoľvek stránka tak môže byť namapovaná do ktorejkoľvek oblasti.
+
* ktorákoľvek stránka tak môže byť namapovaná do ktorejkoľvek oblasti
* mapovanie je platné vždy '''iba pre jednu konkrétnu stránku a oblasť'''!
* mapovanie je platné vždy '''iba pre jednu konkrétnu stránku a oblasť'''!
-
* bit {{Kbd|VRAM}} určuje, ktorá [[VideoRAM]] sa bude zobrazovať ({{Kbd|PG03}} alebo {{Kbd|PG07}}).
+
* bit {{Kbd|VRAM}} určuje, ktorá [[VideoRAM]] sa bude zobrazovať: 0={{Kbd|PG03}}, 1={{Kbd|PG07}}
-
* ROM sa stránkuje obvyklým spôsobom na 4. bite portu PC sytémovej 8255 (viď. [[AllRAM]]).
+
* ROM sa stránkuje obvyklým spôsobom na 4. bite portu PC sytémovej 8255 (viď. [[AllRAM]])
-
* ak je ROM nastránkovaná, zápis do časti RAM pod ROM je možný ako obvykle.
+
* ak je ROM nastránkovaná, zápis do časti RAM pod ROM je možný, ako obvykle
== príklad použitia ==
== príklad použitia ==
Riadok 80: Riadok 80:
MVI A,6Ch ; stránka 12 do oblasti 2, zobrazuje sa VRAM-1
MVI A,6Ch ; stránka 12 do oblasti 2, zobrazuje sa VRAM-1
OUT 6Dh ; v pamäťovom priestore sú stránky 0,1,12,3
OUT 6Dh ; v pamäťovom priestore sú stránky 0,1,12,3
 +
 +
== hardvérové riešenie ==
 +
 +
Stránkovacia a mapovacia logika je pomerne "komplikovaná" a jej realizácia klasickými TTL obvodmi by bola veľmi zložitá. Preto je použité hradlové pole Xilinx XC9536, ktoré okrem samotného mapovania pamäti obsahuje aj port a logiku pre [[VideoCPU_INT|prerušenie od video procesora]], [[VGA Konvertor]] a prípadne aj interný [[MIF 85]].
 +
 +
''Schému a detailneší popis zapojenia doplníme neskôr.''
[[Kategória:Blog| 011]]
[[Kategória:Blog| 011]]

Verzia zo dňa a času 17:00, 24. máj 2014

Obsah

Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3

Pamäť RAM 64kB v PMD 85-2A a PMD 85-3 je tvorená ôsmimi čipmi DRAM 4164 (65536 x 1bit). Ich nahradením za 8 čipov DRAM 41256 (262144 x 1bit) a pridaním stránkovacej logiky, je možné rozšíriť pamäť RAM na 256kB. Keďže mikroprocesor môže adresovať maximálne 64kB pamäti, 256kB pamäte sa tzv. stránkuje, či mapuje do adresného priestoru mikroprocesora.

  • 256kB pamäti sa delí na 16 stránok po 16kB: PG00PG15
  • pamäťový priestor CPU sa delí na 4 oblasti (regióny):
    • REG0 - od adresy 0000h po 3FFFh
    • REG1 - od adresy 4000h po 7FFFh
    • REG2 - od adresy 8000h po 0BFFFh
    • REG3 - od adresy 0C000h po 0FFFFh

Ak nie je pre nejakú oblasť zvolená iná stránka, tak je v nej namapovaná zodpovedajúca základná stránka PG00PG03.

Stránky PG03 a PG07 zdieľa aj Video-procesor. Ten pristupuje ku týmto stránkam nezávisle od CPU a teda tieto stránky vôbec nemusia byť namapované v adresnom priestore CPU.

  • stránka PG03 je VRAM-0
  • stránka PG07 je VRAM-1

stránkovanie

Stránkovanie je prístupné na porte 6Dh. Z portu je možné zapísanú hodnotu aj prečítať. Po resete je port vynulovaný, čo znamená, že sú v pamäťovom priestore namapované všetky základné stránky a zobrazuje sa VRAM-0.

7 6 5 4 3 2 1 0
VRAM REGION1 REGION0 PAGE3 PAGE2 PAGE1 PAGE0
  • bity PAGE<x> určujú číslo stránky, ktorá bude namapovaná do oblasti určenej bitmi REGION<x>
  • ktorákoľvek stránka tak môže byť namapovaná do ktorejkoľvek oblasti
  • mapovanie je platné vždy iba pre jednu konkrétnu stránku a oblasť!
  • bit VRAM určuje, ktorá VideoRAM sa bude zobrazovať: 0=PG03, 1=PG07
  • ROM sa stránkuje obvyklým spôsobom na 4. bite portu PC sytémovej 8255 (viď. AllRAM)
  • ak je ROM nastránkovaná, zápis do časti RAM pod ROM je možný, ako obvykle

príklad použitia

Z popisu stránkovacieho portu je vidieť, že voľba banky s rovnakým číslom, ako je číslo oblasti znamená, že v pamäťovom priestore sú vždy základné stránky a teda zápis hodnôt 00h, 11h, 22h alebo 33h na port 6Dh je ekvivalentné. To je možné využiť na test prítomnosti pamäťového rozšírenia.

        MVI     A,33h           ; test na prítomnosť pamäťového rozšírenia
        OUT     6Dh
        IN      6Dh             ; prečítaj zapísanú hodnotu
        CPI     33h
        JZ      MEM256_OK       ; pamäťové rozšírenie je prítomné
        JNZ     MEM256_NO       ; pamäťové rozšírenie sa nenašlo

        MVI     A,82h           ; povolenie a zapnutie AllRAM
        OUT     0F7h

        MVI     A,09h           ; ROM pripojená
        OUT     0F7h

        MVI     A,08h           ; ROM odpojená - AllRAM
        OUT     0F7h

        MVI     A,16h           ; stránka 6 do oblasti 1, zobrazuje sa VRAM-0
        OUT     6Dh             ; v pamäťovom priestore sú stránky 0,6,2,3

        MVI     A,7Fh           ; stránka 15 do oblasti 3, zobrazuje sa VRAM-1
        OUT     6Dh             ; v pamäťovom priestore sú stránky 0,1,2,15

        MVI     A,07h           ; stránka 7 do oblasti 0, zobrazuje sa VRAM-0
        OUT     6Dh             ; v pamäťovom priestore sú stránky 7,1,2,3

        MVI     A,6Ch           ; stránka 12 do oblasti 2, zobrazuje sa VRAM-1
        OUT     6Dh             ; v pamäťovom priestore sú stránky 0,1,12,3

hardvérové riešenie

Stránkovacia a mapovacia logika je pomerne "komplikovaná" a jej realizácia klasickými TTL obvodmi by bola veľmi zložitá. Preto je použité hradlové pole Xilinx XC9536, ktoré okrem samotného mapovania pamäti obsahuje aj port a logiku pre prerušenie od video procesora, VGA Konvertor a prípadne aj interný MIF 85.

Schému a detailneší popis zapojenia doplníme neskôr.