CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

メモリマップ

いままでNS32000シリーズのアーキテクチャもプログラミングモデルも良く理解しないままハード作成をしてきてしまいましたが、いよいよソフト的な検討を始めなければなりません。ただメモリ構成についてはほとんどの制御線をGALで生成しているのでまだ柔軟な設計ができると期待しているのですが。

だいたいリセットベクタがどこにあるかも解ってないのですがハードマニュアルを読むとPC(プログラムカウンタ)はリセット時クリアされる、とあるのでアドレス空間下位にROM、上位にRAMを置けばいいだろうということになります。それでメモリを配置したのが以下の構成です

 

f:id:O3I:20191103163106j:plain

アドレス空間16Mbyte(24ビットアドレス) はリニアな空間で下位000000-1FFFFF番地にROMを2Mbyte、上位最末端F80000-FFFFFF番地にSRAMを512kByteを配置します。これはGALに引き込んであるアドレス線がフルデコードされてイメージは発生しません。さらに周辺I/Oはメモリマップドのため800000番地から256kbyteをI/Oブロックとしてリザーブしておきました。

これはカスケード接続された次段のGALでさらに下位ビットで分割され、各I/Oデバイスに接続します

f:id:O3I:20191103163928j:plain

 

さいわい、ハード設計時に2個のGALに引き込んでおいた信号線で今のところまかなえています。

f:id:O3I:20191103164222j:plain