Blog:Pamäťové rozšírenie 256kB RAM
Z PMD 85 Infoserver
Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3
UPOZORNENIE - Pamäťové rozšírenie 256kB RAM je iba experimentálny návrh zapojenia, ku ktorému neexistuje reálny hardvér. Bol realizovaný iba testovací "prototyp" a implementácia v Emulátore PMD 85. |
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: PG00 až PG15
- 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 PG00 až PG03.
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 porty a logiku pre prerušenie od video procesora, VGA Konvertor, Keyface a prípadne aj interný MIF 85.
Schému a detailneší popis zapojenia doplníme neskôr.