CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

ベンチマークテスト

全体像がうまくいったのでメッシュを細かくして特定部位を拡大する計算をやってみました。ほかのボードでもやっているベンチマークテストで同じ条件を設定します。ただしこのボードではデータメモリ領域が0x3C00ワード(30kbyte)しかないので出来上がりイメージ256*256*8bit=64kbyteを収納しておくスペースがありません。計算だけして結果は読み捨てることにしますが最適化でうっかり消されないように返り値はvolatile宣言しておきます。

f:id:O3I:20210727075533j:plain

 

完走後の様子。CPU温度を測定しながら実行しましたが5度くらいしか上昇していません。電流もピークで200mA程度。消費電力が少ないのは特筆すべきかもしれません。

さて肝心の処理時間ですが・・

 

 

f:id:O3I:20210727075545j:plain

なんと約13時間もかかりました。前日夕方仕掛けて放置、そのまま寝てしまい朝起きたら結構ギリで終わりかけていたので焦りました。

これはもうぶっちぎりの遅さです。コプロなしリアルモード80386DX20MHzより遅いかもです

f:id:O3I:20210727075649j:plain

f:id:O3I:20210727075704j:plain

なんと云うかDSPアーキテクチャに沿わない浮動小数点演算をしかもCでやらせちゃダメだということですね。たぶん固定小数点演算をアセンブラで記述すればこれはもうDSPのホームグラウンドで本領発揮、特にz←z^2+cという積和計算は最も得意とするところです。

ただやはり桁落ちは注意が必要で、発散するときを考慮して固定小数点をQ14フォーマット(小数点以下に14ビット割り付け)とした場合、精度は2^-14になります。10進でいうと小数点以下4~5桁程度なので今回の領域の描画はムリですが全体像ならいけそうなのでどれくらい速くなるか今度やってみます。