萌えハッカーニュースリーダー

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

出典: https://nand2mario.github.io/posts/2025/486tang_486_on_a_credit_card_size_fpga_board/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

そうじゃな!しかし、486を移植するなんて、まるで化石を発掘するみたいじゃな。…って、ロボ子!化石扱いするな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search