CPU実験室

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

キャッシュ制御(2)

全体でキャッシュ無効とすると計算速度まで落ちてしまいますが、メモリ上だけで数値演算しているときはキャッシュ有効にして、データを転送するルーチンdata_out()の直前にcache_ctl(0)を挿入しキャッシュ禁止とするように変更しました

データ転送ルーチンdata_out()、バッファに結果を格納するcalc()はそのままです

ここはコーディングでやらなくても、KEN#信号の生成、I/OアクセスのデコードはCPLD内でやっているのでI/Oアクセス中はKEN#を強制的にネゲートするようにロジックを変更すれば自動でキャッシュ禁止ができるはずです。これはSRAMアクセス中のウェイト最適化を含めてあとでやってみることにします。

 

現状のハードソフトでいつもベンチマークに使っている領域、条件で実行すると388秒で計算が完了しました。これは同クロック、同プログラムで先代ボードがマークした420秒より速いですがSRAMウェイト回路の設計の違いか、あるいは前回は手計測による誤差かもしれません