Z80アクセラレーターボード
2022.05.25
HB-F1XDJをパワーアップしようという妄想です
パナ2+はカスタム(T9769C)で固められててあまりいじれないのですが、SONY機はZ80がそのまま載ってるのでいろいろいじりやすい機体ですね。

今ではZ80Aに比べて高速なFPGAが安価で容易に手に入ります(入荷待ち状態続いてて容易じゃないけどな)。
そこで、Z80を取り払ってそこに付くアクセラレーターボードを作れないかなという妄想です。

まず真っ先に思いつくのがとりあえずクロックアップですが、色々検証した結果XDJのメインボードはクロックアップ耐性が非常に低いということがわかってます(動いても1.5倍速程度)。
というかそもそもクロックアップなんて定格外動作ですし、貴重な(?)マシンにそんなことしたくありません。

なので、手段としては、アクセラレーターボードにDRAMも載せて、FPGA(Z80)とDRAM間のみ高速アクセスさせて、外部(XDJ本体=外部スロットやIO)にはウェイトを入れて正規タイミングで動かしてしまおうとなります。
今のFPGAであれば高速クロックでも容易に動きますし、ALUのバス幅を増やして命令のステート数を削減することも可能です。
こうすることでXDJ側は一切定格外の高速動作などさせる必要なく高速化が可能です。

アクセラレーターボードでDRAMを持ち、かつ、高速アクセスするとなると当然アクセラレーターボード側にスロット選択レジスタを持つ必要があります。
すると付随的にBIOS ROMなども乗っ取りが可能になりますので、ROMアクセスも高速化することができます。

そもそもBIOS ROMをDRAMにコピーして動かせば、DRAMのページモードアクセスの恩恵でさらに高速化することができます。だいたいZ80@3.58MHz比で12倍速くらいで動かせますね。

という、なんかどこかで聞いたことあるような仕様になりますね。ええ、妄想ですが。



ところで、turboRのプライマリーマッパーを4MByteにすると微妙な不具合が色々あります。
・DOS2カーネルがプライマリー4MByteにするとDRAMモードセグメント確保処理にバグがあって起動しない
・そもそもDOS2のマッパーサポートルーチンの仕様が1SLOTあたり255セグメント(256ではない)しか扱えないので、DRAMモード使用セグメントと不整合する
ちなみにこれはプライマリー以外でもそうなので、4MByteマッパーは最後の1セグメント使われません
・MSX-Viewが1MByteまでしか動かない(なんとパナマッパーのDRAMマッピング機能を使っている)

当事は4MByteとか検証すらされてなかったんでしょうね。
2022.05.25 22:44 | 固定リンク | MSX | コメント (0)
コメント一覧
コメント投稿

名前

URL

メッセージ

- CafeNote -