研究概要 |
グレイコードを用いた四則演算について,そのアルゴリズムの開発を行った.グレイコードの位相的性質を考慮すると,上位ビットからの演算が適当であるため,上位ビットからの算術演算アルゴリズムを開発した.提案アルゴリズムは,入力が1ビットずつ上位ビットから与えられたときに出力を上位ビットから与える写像を用意する形のアルゴリズムである.入力が一ビット与えられるたびに必要とする計算量は,加減算の場合は定数ビットの加算,乗算の場合は入力ビット程度の加算,除算の場合も入力ビット程度の加算で実現できる.これらはこれまでに開発されている冗長2進数による上位ビットからの演算と同等の計算量で実現できることを示している.冗長2進数による任意精度演算と比較した場合,グレイコードは一意性をもつため,比較演算等が高速に実行できるメリットをもつ. 次にこのグレイコードによる任意精度演算アルゴリズムを用いてガウスの消去法による任意精度連立一次方程式の求解アルゴリズムの検証をC++で記述することにより行なった.通常ではガウスの消去法では精度が十分に得られない場合に対しても,上位ビットから任意精度演算を行うことにより,必要な桁数だけの精度で解が得られることを確認した. ハードウェア化に関しては,各四則演算に対して多倍桁演算を実行する回路を提案し,ハードウェア記述言語で記述し,FPGAでの動作を確認した.現在のところ256桁程度の演算が3万ゲート規模で可能なことを確認している.最大動作周波数は50MHz程度を実現しているため,PCIバスに同期したクロックで動作させることが可能となっている.これらの演算はFreeBSDのデバイスドライバを用意することによって行った.
|