高速剰余算アルゴリズムとその ハードウェア実装についての研究 数理情報科学専攻 福永研究室 山本 聡 目次 研究背景 ハードウェアでの回路設計 開発環境 Verilog HDL(Hardware Description Language) FPGA(Field Programmable Gate Array) HDLを用いた剰余算回路の設計 研究結果について まとめと今後の課題 研究背景(1) コンピュータ上でのデータは二進数で処理され、 基本的な演算を繰り返すことで様々な動作を可 能にしている。 演算の処理速度は、汎用コンピュータ上のソフト ウェアでの実行よりも、専用のハードウェアによ る計算のほうが高速に計算できることが知られ ている。 研究背景(2) CPU内で用いられている、四則演算などの基本 的な演算を行う回路についても高速化など性能 向上のための研究がなされており、その中でも 特に除算(剰余算)回路の設計アルゴリズムの 研究は現在でも頻繁に行われている。 参考文献:高木直史 「算術演算のVLSIアルゴリズム(コロナ社 2001)」 研究背景(3) 高速な除算回路を設計することで、 CPUの演算速度のさらなる高速化 計算する数を大きなビット幅に対応させることでの暗 号解読分野への応用 という可能性を見込むことができる。 ハードウェアでの回路設計(1) ハードウェア上では、全ての数が二進数(0と1のみ) で表現されている。 回路は、全て以下の図で示す「組み合わせ回路」と 呼ばれる論理回路で構成されている。 組み合わせ回路と真理値 ハードウェアでの回路設計(2) 組み合わせ回路を複数個用いることで、求める 数値を出すように回路を設計する。 FA(全加算器) FA真理値表 hAとFAを組み合わせた4ビット加算器 hA(半加算器) hA真理値表 開発環境(1) Verilog HDL ソフトウェア上で回路を記述することができるハード ウェア記述言語(HDL : Hardware Description Language)の一つ。 配線などを直接記述するゲートレベルでの記述の他 に、先の組み合わせ回路であるAnd、Or、Notがそれ ぞれ 、+ 、~ という数式で表すことができることから、 C言語に似たビヘイビアルレベルという記述法でも回 路を設計することができる。 開発環境(2) FPGA(Field Programmable Gate Array) 利用者が独自に回路を設計し、ハードウェアの動作と して評価をすることができる書き換え可能なIC。 Verilogで記述した論理回路をダウンロードケーブル を用いて書き込むことでICを作成できる。 FPGA評価ボード(VirtexⅣ xc4vfx12) 開発環境(3) FPGA内には書き換え可能な論理ブロックと配線が 用意されており、HDLで記述した論理回路と接続配 線の情報をそれぞれにプログラミングすることで、回 路情報をハードウェア化し評価することができる。 FPGAの構造 開発環境(4) HDLを用いた剰余算回路の設計(1) FPGAには書き込める素子数が決められている。 一般に回路の高速化を図ろうとすると回路が複雑 になるため使用する素子数が増える。 そのため使用するFPGAの素子数に応じた高速 化を行うことが必要になる。 HDLを用いた剰余算回路の設計(2) 剰余算のアルゴリズムは現在でも発展途上の段 階であり、特に縮小化・高速化という観点で研究 がなされている。 乗算した値の剰余を取る乗算剰余算 において縮小化・高速化を実現したアルゴリズ ムとして、インターリーブ法とモンゴメリ法が考案 されている。 インターリーブ法 インターリーブ 法とは、上位 ビットから剰余 の計算を行う アルゴリズム である。 インターリーブ法の略回路図 単純な動作で剰余を実 現しているため、 少ない素子数で回路を 設計することができる。 モンゴメリ法 モンゴメリ法とは下 位のビットから剰余 を計算を行うアルゴ リズムである。 モンゴメリ法の略回路図 大きなビットを扱う乗算器を 使用しなければならないため 使用する素子数は多くなるが、 複数ビットをまとめて計算を 行うため、高速に演算を終え ることができる。 研究と結果について(1) 今回の研究では高木直史(名古屋大学)の提案 した二分乗算剰余算アルゴリズムの、素子数の 省略化を施した状態での実装を行い、計算時間 と素子使用率についての詳細な評価を行った。 二分乗算剰余算とは、先に解説したインターリー ブ法とモンゴメリ法を並列に処理させることで、 計算時間を短縮しようというアルゴリズムである。 研究と結果について(2) 各アルゴリズムの計算速度に 応じて計算するビットを変化さ せることで最適化できる。 例えばモンゴメリ法がインター リーブ法より2倍の計算速度 だとすると、モンゴメリ法の計 算ビットをインターリーブ法の 2倍にすることで最適化を図る ことができる。 二分乗算剰余算の回路図 研究と結果について(3) 回路内の共通の 演算部を再利用 することで素子数 の使用率を抑え る工夫をした。 結果として素子数 を抑えることがで き、より大きな計 算ビットを処理で きる回路を作成す ることができた。 通常の回路 共通の回路を一つに まとめた回路図 研究と結果について(4) インターリーブ法とモンゴメリ法の計算速度を 評価し、回路が入力値を最適に計算するビッ ト幅に分割して回路を作成した。 まとめ 今回の実装では、二分乗 算剰余算を回路化すること で、352ビット同士の積を 352ビットで剰余を行うとい う計算を、高速に剰余演算 を行うとされているモンゴメ リ法の79%の計算時間で 行うことができた。 今後の課題 今後の課題として、今回よりも素子数の大きな FPGAを用いてより大きな数の剰余計算を行うこ とができる回路を設計することがあげられる。 また実現した回路を用いることで、高速な剰余算 の計算が多数回必要とされる暗号解読分野へ の応用が見込めると考えている。
© Copyright 2025 ExpyDoc