NetBSD/virt68k on FPGA TODO

NetBSD/virt68k on FPGA のTODO。一応bootしたところで満足して失速しそうなので、やりたいことをまとめておく。

  • 高速化 現状遅い。多分、FPGA開発ボードと同じ値段のPCやSBCでソフトウェアエミュレーションした方が速い。他のCPUと同じような高速化手法でIPCを高める……とかもやってみたい気はするけれど、それは全部作り直しと等価。「68060の再発明」感もある。
  • ライセンスまわりの整理 現状、いろんなプロダクトのキメラ状態で、微妙に相反するものとか、そもそも改変再配布していいのか良くわからんやつとかも混ざってるので、公開するのであればなんとかしないといけない。
  • FPU 欲しいけど、6888[12]はその辺にある別CPU用のFPU流用では実現できなくて面倒。
  • 真の(?)実機化 実機()といいつつ、肝心のvirtioのかなりの部分が(動作実績のある)RISC-V側のソフトウェア処理になっている。そのRISC-VでNetBSD動かせばいいのでは。IOPとか呼んでいるが実質こっちがホストで、先に起動して下準備を済ませて(ゲストの)680×0を起動する役割を担っている。QEMU的なもののCPU周りだけFPGAになっている、みたいなイメージに近いか。ソフトウェア処理なので、例えばvirtioのブロックデバイスの先をramdiskにしたりSDカードにしたりをロジック変更なしでできる。これをなくして、680×0が自前で起動して、外部のデバイスがvirtioに見えるようにするのをロジックだけで何とかする、というのはいろいろ大変。仮にできたとしても、デバッグ難易度が上がるわ、移植コストも高くなるわで、利点はあまりない。ただの浪漫。速くはなるかも。
  • スリム化 当初の(68040的な何かの)ターゲットはA7-35Tだったのだけれど、入らなくなったので100Tになってる。もっとも35Tはもうほぼ売ってないし、100Tでもたいがい古いのでもういいか。
  • それ以外の整理 そもそもFPGA初心者が使い方調べながら作ったので、今見るといろいろ変。

まあ、どれをとっても年単位ですかね。