CPU実験室

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

NDP回路変更

ここでCLKMクロックモードをLOWにして内部3分周するのが最も簡単な対策なのですが
それを使ったら負けなので(何に?)NDP専用のクロックを用意することにします。
 
といっても変更はCPLDで原振を分周しているカウンタからタップで8MHzを取り出し、それをNDPのCLK端子
に接続するだけです
 
イメージ 1
 
この回路で同じテストプログラムを実行させました
CPUは16MHzで動作しておりソフトウェア演算は8MHzの1/2の時間になるのはいいですが
一方NDPによる演算は同じ8MHz動作なので処理時間は変わらないはずです
 
ところが実際に動かしてみると1138us→626usと相当短縮されています
 
イメージ 2
 
これはNDP命令にデータを引き渡すCPUによる命令、定義域チェックや正規化のためのC言語による
オーバーヘッド部分がCPUの高速化によって大幅に短縮したと考えられます。
逆に言うと浮動小数点処理なのにNDP命令よりCPU命令のほうがずっとウェイトが大きいということになります
 
ここらへんは386ボードのときにも経験しましたがコードを生成するコンパイラの性能でかなり左右される
といえます