現在地

メモリ基板: 現状と今後の予定


テーマ:

カテゴリー:

今回はメモリ基板の現状と今後の予定を書いてみます。

まずは今動いているところです。

  1. 4k×8bitのRAMはホスト側から(シリアル経由で)アクセスできています。

    ターゲットCPU基板がまだ1枚も完成していないのでターゲット側からのアクセスは未確認ですが、ただ接続するだけなのであまり心配はしていません。

  2. シリアルからのコマンドでRESET信号を発生させることができます。ちょっとしたオマケ機能です。起動用のプログラムをRAMにロード後リセットできたら便利かなと。

    ROMエミュレータではアクセス中はターゲットからのアクセス不能になり暴走するのでアクセス中"L"になる信号を用意していましたが、せっかくDPSRAMを使っていることでもありRAMアクセスとは独立させています。

これだけでもCPUの動作確認ぐらいはできるのでCPUボードを製作中です。まだ動かせていないメジャーな8ビットプロセッサということで6502を選んでみました。

R/Wφ2からOE, WEを作らないといけないので直結というわけにはいきませんが、アドレス・データを1:1で接続できるのは楽チンです。

多くのプロセッサが積んだままになっている理由の一つは、アドレス・データバスを大量に配線しなければならず、しかもCPU-ROM-RAM-UARTと3つ以上のデバイスがあるので1つのピンに複数の配線をしないといけないためです。
基板を起こすかワイヤラッピングならともかく、蛇の目基板に手配線でハンダ付けだとかなり嫌なことになります。

このCPUボードについてはある程度形になってから書きますね。

さて、メモリ基板についてはハードウェアは一応完成ですが、ソフトウェアは以下を追加中です。

  1. コンソール機能

    せっかくDPSRAMを搭載しているのでその一部を共有メモリとしてターゲットと通信します。ターミナルはATmega164のもう一つのUARTを使用して接続します。共有メモリのアドレスは16バイト単位でコマンドにより変更可能です。

  2. RESETのパルス幅の変更機能

ここまでいけばUniversal Monitorが動かせるようになります。

さらに将来的には以下のような拡張も予定しています。

  1. 16ビット・32ビットバスへの対応

    同様の基板(ATmega164は無し)を追加して32ビットバスまで拡張可能なようになっています。アドレスそのままでバス幅が増えるので32ビットでは4k×32bit = 16kBの容量になります。32ビットプロセッサのメモリとしては少なすぎる気もしますが...

  2. CPU基板にEEPROM搭載

    CPU基板にEEPROMを搭載すればターゲット毎に共有メモリのアドレスなどの設定情報を記録しておけます。ブート用のモニタなどを格納して自動で起動させることもできるかもしれません。

  3. 仮想ディスク

    ATmega164のポートはまだ余裕があるのでSDカードなどを接続して仮想ディスクにすればCP/Mなども動かせるかもしれません。あっ、その前にメモリ増設も必要ですね。


コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。