2017-07-28 12:16 — asano
カテゴリー:
「8ビット中期」で書いたバンク切り替えという手法はメモリ空間をいくらでも増やすことができるものですが、活用するプログラムを作成するのはかなり大変です。GVRAMなどには向いていますが、メインメモリを64kを超えて拡張してもなかなか有効には活用されません。RAMディスクなどとして使われることが多かったと思います。
その中でMMUを搭載してこれに立ち向かった機種もいくつかありました。バンク切り替えと大きな違いは、バンクではCPUのメモリ空間の特定の場所にしかマップできませんが、MMUでは好きな場所に出現させることができます。
シャープのMZ-2500や日立のS1がそうです。
名称 | CPU | 物理空間 | メインRAM | GVRAM | 他メモリ | 備考 | |
---|---|---|---|---|---|---|---|
MZ-2521 | Z80B | 512kB | 128kB (256kB) | 64kB (128kB) | IPL/IOCS CGRAM |
32kB 14kB |
|
S1/10 | HD68B09E | 1MB | 48kB (512kB) | 48kB (96kB) | L3 BASIC S1 BASIC IGRAM/TVRAM |
24kB 64kB 10kB |
MZ-2500では512kBの物理アドレス空間を8kB毎に64分割します。この中から8つをCPUのアドレス空間に割り付けることができます。ただZ80ではリロケータブルなプログラムは事実上書けないので、プログラムの置かれるメモリは自由に割り当てることはできません(割り当てても実行はできない)。
S1では1MBの物理アドレス空間を4kB毎に256分割していて、ここから16個をCPUのアドレス空間に割り当てます。
BASICでプログラムしているかぎりはこれらのメモリ管理はシステムにお任せでできますが、アセンブリで書き始めるとMMUを意識せざるを得なくなります。たしかにバンク方式よりは自由度は上がりましたが、大変なことに変わりはありません。
それに時代は既に16ビットになっていましたから、MMUの搭載は一部の機種に限られました。8ビットCPUをMMUで無理に延命するより16ビットに移行するほうが素直ですし、群雄割拠していたパソコンがPC-9801シリーズ(海外ならIBM PC)に収束しつつあったという面もあったでしょう。
関連項目:
コメントを追加