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

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)
Rombor (Diskusia | príspevky)
(Vrátená pôvodná kategória Blog)
Rombor (Diskusia | príspevky)
(Doplnené upozornenie)
Riadok 1: Riadok 1:
-
= Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3 =
 
__NOTOC__
__NOTOC__
 +
= Pamäťové rozšírenie 256kB RAM pre PMD 85-2A a PMD 85-3 =
 +
 +
{{Ambox | type=notice | style=text-align:justify | text='''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.}}
 +
<br />
 +
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.
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.
Riadok 87: Riadok 91:
''Schému a detailneší popis zapojenia doplníme neskôr.''
''Schému a detailneší popis zapojenia doplníme neskôr.''
 +
[[Kategória:Hardvér]]
[[Kategória:Blog| 011]]
[[Kategória:Blog| 011]]

Verzia zo dňa a času 07:49, 10. október 2019

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 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.