ニュース

68000と挿し替えて使えるCPUアクセラレータ「Buffy Acellerator」

Buffy Acellerator(またはBuffy Accelerator、Buffee Accelerator)

 68000のマシンのCPUを挿し替えるだけで高速化できるというオープンソースCPUプロジェクトが進行中だ。まもなくハードウェアの生産が開始される見込みとなっている。

 このプロジェクトは2つからなる。1つはハードウェアとしての「Buffy Acellerator」。“吸血鬼殺し”の名を持つこの製品は、FPGAやCPLDといったプログラマブルロジックデバイスを一切使わない純粋なCPUアクセラレータとなっており、68000の64ピンDIPソケットと互換性がある。このため、Amiga 500/1000/2000、およびCommodore CDTVのCPUと挿し替えるだけで高速化可能だ。

 実際のハードウェアとしてはOctavo製SoC「OSD335x-SM」を採用しており、1GHzで駆動するCortex-A8プロセッサ(約2,000MIPS)、512MBまたは1GBのDDR3メモリを統合。68000のエミュレータを、eXecute-in-Place(XiP)フラッシュROM上で走らせ、自身を68000のように振る舞う。

 OSD335xが選ばれた最大の理由は、General Purpose Memory Controller(GPMC)を備えている点で、これにより68000のような非同期バス上と直接やりとりできる。また、2つのリアルタイムコントローラを内包しており、さまざまな68000のバスコントロール信号処理をオフロードできるため、CPUは命令実行に専念できるという。

 ボードは8層基板で、うち3層はグランドとなっていて、より安定した信号を実現。CPUのほかに、レベルシフタやSPIフラッシュといった動作に必要な部品を実装。UARTとJTAG端子も用意されており、プログラミングやデバッグが可能だ。

 68000エミュレータ「PJIT」はxBuffy Acelleratorのソフトウェア部分にあたり、68000のエミュレーションを行ないながら、スレッド化されたJIT(実行時コンパイラ)により1,000MIPSという性能を発揮する。これは、68040が1,200MHzで駆動したときに相当する性能だという。実際の68040は最大で40MHzなので、基板上には“PC68040 PR1200”を表記したという。ただし、すべての機能を実装していないため、安全性を鑑みて400MHz相当以上の性能のみ保証する。

 PJITはインタプリタのように命令を実行するため、68000エミュレータとして有名な「Emu68」と比較してもジッターを抑えられ、効率を引き上げている。また、Emu68では1つの16bit 68000オペコードを複数個の32bit Armオペコードに変換するためコードサイズが肥大化するが、PJITでは1:1で変換するため、キャッシュミス時に再コンパイルが必要なく高効率。加えて、新しいアドレスにジャンプするさいに、キャッシュ内のどこにジャンプをするのかをすでにPJITが認識しているため、より高速に制御できるという。

 ちなみに12月16日のブログでの表記は「Buffy Acellerator」であって、「Accelerator」ではないのだが、同時公開のPCBのシルク印刷は「“Buffy” Accelerator」となっている。一方、1月28日のブログ表記では「Buffee Accelerator」となっていて、ロゴもBuffeeとなっているなど、正式な製品が出るまで表記は揺れそうだ。

2020年12月16日公開のブログではBuffy Acelleratorと称している