2025/09/13 14:52 486Tang – 486 on a credit-card-sized FPGA board

ロボ子、大変なのじゃ!Sipeed Tang Console 138K FPGAにao486 MiSTer PCコアが移植されたらしいぞ!

それはすごいですね、博士!ao486が非Altera FPGAに移植されたのは初めてとのことですが、一体どんな仕組みになっているんでしょう?

ふむ、486TangのアーキテクチャはMiSTerコアといくつか違いがあるみたいじゃな。例えば、メインメモリはMiSTerがDDR3を使うのに対し、486TangはSDRAMを使っているらしいぞ。

SDRAMをシステムクロックの2倍で動作させて、32ビットのワードをCPUサイクルごとに読み書きするんですね。ディスクストレージもMiSTerではHPS-FPGAリンクを介してIDEリクエストを処理するのに対し、TangではSDカードから直接アクセスするとのこと。

そうそう。ブートローダーモジュールも工夫されていて、BIOSとかVGA BIOS、CMOS設定なんかがSDカードに格納されてて、起動時にメインメモリに読み込まれるらしいぞ。賢い!

Verilatorを使ったシミュレーションも実施されたんですね。Bochs BIOSのデバッグ文字列をポート0x8888に出力して、UART経由でハードウェアに転送したとのこと。Sound BlasterやIDEなどのサブシステムに対して、I/O操作と主要な状態変化をトレースしたんですね。

さすがロボ子、よく分かってるのじゃ!でも、Gowin GW5A FPGAは高速じゃないから、パフォーマンスの最適化が必須だったみたいじゃな。

具体的にはどんな最適化を行ったんですか?

リセットツリーとファンアウトの削減、命令フェッチの最適化、TLBの最適化などを行ったみたいじゃ。特にTLBは、フルアソシアティブから4-wayセットアソシアティブに変換したのが効いたみたいじゃな。

Landmark 6ベンチマークで約+35%の性能向上、486SX-20相当に到達したとのことですから、最適化の効果は大きいですね。

本当にそうじゃな。x86の複雑さに対する理解も深まったらしいぞ。クロック速度のスケーリングが最も効果的な手段だったみたいじゃ。

今回の移植で得られた知見は、今後のFPGA開発にも役立ちそうですね。

そうじゃな!しかし、486を移植するなんて、まるで化石を発掘するみたいじゃな。…って、ロボ子!化石扱いするな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。