学位論文要旨



No 213593
著者(漢字) 牧野,博之
著者(英字)
著者(カナ) マキノ,ヒロシ
標題(和) VLSIシステム向け加算回路および乗算回路の高性能化に関する研究
標題(洋)
報告番号 213593
報告番号 乙13593
学位授与日 1997.11.13
学位種別 論文博士
学位種類 博士(工学)
学位記番号 第13593号
研究科 工学系研究科
専攻 電子工学専攻
論文審査委員 主査: 東京大学 教授 浅田,邦博
 東京大学 教授 鳳,紘一郎
 東京大学 教授 田中,英彦
 東京大学 教授 岡部,洋一
 東京大学 教授 喜連川,優
 東京大学 助教授 平本,俊郎
内容要旨

 近年のマイクロプロセッサにおける動作周波数の向上はめざましいものがあるが、このような高速化を実現するためには、半導体の微細化技術に加えて、回路技術の工夫による高速化が重要である。特にマイクロプロセッサの動作周波数を決定しているのはデータパスにおける加算器と乗算器であり、データのビット幅の増大とともにますます高速化の困難なハードウエア構成要素となっている。筆者らが研究を開始した1980年代においては、64ビット用の加算器および乗算器がマイクロプロセッサ上に搭載するために、高速かつ小面積を実現するための回路設計技術が求められていたが、未だ研究途上の段階であった。以上の背景から、筆者らは、加算器、乗算器、さらには浮動小数点加算器および浮動小数点乗算器の高性能化に関する研究を行った。

 加算器に関しては、まず種々の加算器アーキテクチャから代表的なアーキテクチャを抽出し、遅延時間および面積の比較を行った。比較に当たっては、加算器を構成する基本ゲート回路に対して実際のレイアウトに基づいたそれぞれの遅延時間と面積を算出し、各アーキテクチャによる加算器の遅延時間と面積の式をビット数の関数として求めた。その結果、最適アーキテクチャとして、キャリールックアヘッド方式とキャリーセレクト方式を組み合わせたもの選定した。さらに、得られた最適アーキテクチャによる64ビット加算器の設計を行った。構成は下位56ビットをキャリールックアヘッド回路とし、上位8ビットをキャリーセレクト回路とした。キャリールックアヘッド回路においてはバイナリルックアヘッド方式によってキャリー生成の高速化を図るとともに、キャリーセレクト回路としては従来の回路を改良して素子数を削減したMCS(Modified Carry Select)回路を提案し、キャリーセレクト部の面積を20%削減した。設計した64ビット加算器を0.5mCMOS、3層配線プロセスで試作した。トランジスタ数は3044個で、チップ面積は1305×207m2であった。テストを行うことにより、加算時間2.6nsの動作を確認した。得られた加算器は従来のものと比べて最も小面積であり、速度においても200MHz動作が十分に可能な高速性を実現している。また、今後ともプロセスや電源電圧の変化により最適な加算器のアーキテクチャは変化してゆくと考えられるが、ここで行った最適化はどんなプロセスや電源電圧が主流になろうとも有効であり、最適な加算器アーキテクチャを得ることができる。

 乗算器に関しては、まず高速のクリティカルパスを実現するために各種ゲートの遅延時間を比較し、またトランスミッションゲート(TG)の性質を分析することにより、クリティカルパスの設計ルールとして以下の二つを定めた。

 ・クリティカルパスはインバータ、2入力NANDおよびTGの3種類のゲートのみで構成する。

 ・TGの直列接続は2段以内とする。

 次に冗長二進数を用いた高速乗算アーキテクチャに関する研究を行い、高速かつ小面積を実現するアーキテクチャを提案した。まず二つの部分積の一方を反転してペアとする冗長二進部分積の生成法を提案し、これによってハードウエアおよび遅延時間び増加を伴わずに冗長二進部分積の生成を可能とした。次に冗長二進加算器に関して、従来回路における問題点を明らかにするとともに、ブール式をCMOS回路に最適化することにより、6種類の高速冗長二進加算器HSRBA1〜HSRBA1を導出し、これによって従来よりも14%高速の冗長二進加算器を実現した。さらに、論理構造を解析することにより、従来の乗算器に用いられている4入力2出力加算器がいずれもHSRBA1〜HSRBA1のうちのどれかと同一の論理構造を有することを明らかにした。次に、冗長二進→二進変換器に関して、パストランジスタのみで構成された高速キャリー伝搬回路を提案し、これによって従来の冗長二進→二進変換器およびキャリールックアヘッド加算器よりも高速でトランジスタ数の少ない変換器を実現した。上で定めたクリティカルパス設計ルールと提案した冗長二進アーキテクチャに基づいて54×54ビット乗算器の設計を行った。トランジスタ数は78,800でこれは従来のものに比べて世界最少である。設計した54×54ビット乗算器を0.5mCMOS、3層配線プロセスで試作した。チップ面積は3.05×3.08mm2で、0.5mCMOSプロセスのものでは世界最小である。評価の結果、電源電圧3.3Vで遅延時間8.8nsが得られた。この値は従来に比べて12%速く、世界最高速の値である。このように、冗長二進乗算器のアーキテクチャをブール式に基づいてCMOS回路に最適化することにより従来に比べて高速でトランジスタ数の少ない乗算器を実現した。

 浮動小数点加算器に関しては、まずクリティカルパスを調べるために浮動小数点加算の手順を分析し、その結果「桁落ち」に対する処理が重大なクリティカルパスとなっているという結論を得た。そこで、入力オペランドから仮数部加算結果の先頭に並ぶ「0」の数を直接予測するLZA(Leading Zero Anticipation)機能に関する研究を行い、従来よりも高速でハードウエア量の少ないLZA論理を提案した。この方式によって、従来のLZA方式と比較して遅延時間を0.9ns短縮し、トランジスタ数を3,363個低減することができた。提案したLZA論理を用いた64ビット浮動小数点加算器の設計を行った。サイクルタイムを低減して動作周波数を高めるために5段のパイプライン構成とした。トランジスタ数は約54,000で、そのうちLZA処理系回路のトランジスタ数は884であり全体の1.6%と小さい。レイアウト設計は一部CADによる自動ツールを用いることによって設計期間を短縮した。設計した64ビット浮動小数点加算器を0.5mCMOS、3層配線プロセスで試作した。チップサイズは2.5×3.5mm2であった。テストの結果、電源電圧3.3Vの下でサイクルタイム6.1nsの動作が確認された。これは、動作周波数に換算すると164MHzに相当する。ここではさらに、得られた64ビット浮動小数点加算器に先に述べた加算器に関する研究成果を適用した場合の効果について考察を行った。その結果、動作周波数を192MHzまで高めることができるという結論を得た。ここで得られた性能は、CADツールによる自動レイアウトを一部用いているにも関わらず、人手によって最適化された高速浮動小数点演算器と同等のものであり、提案したLZA方式が浮動小数点加算器の高速化に有効であることが確認された。

 浮動小数点加算器に関しては、まずCGに対する性能を向上させるために、ピクセルデータと浮動小数点数とを直接乗算する「CG乗算機能」を提案した。この機能は、CGにおける様々な計算に用いることができ、CG機能を持たない場合の7倍以上、また従来のCG用命令を用いた場合の4倍以上の性能向上が可能である。次に、CG乗算機能を浮動小数点乗算器に有効にインプリメントする方法に関する検討を行い、ピクセルデータの各フィールド間に8ビットの「0」データを挿入することにより、従来の浮動小数点乗算器のハードウエアをほとんど変更せずにCG乗算機能をインプリメントするアルゴリズムを提案した。これによって、CG乗算機能の搭載に伴うトランジスタ数の増加量を全体の4%に抑えた。以上の提案に基づき、CG乗算機能を搭載した64ビット浮動小数点乗算器を設計した。動作周波数を高めるために5段のパイプライン構成とし、仮数部乗算には、先に述べた高速冗長二進アーキテクチャによる56×53ビット整数乗算器を用いた。トランジスタ数は全部で138,000で、このうちCG乗算機能の追加による増加分が5,500(4%)と小さい。設計した64ビット浮動小数点乗算器を0.5mCMOS、3層配線プロセス技術で試作した。チップ面積は4.2×5.1mm2であった。テストの結果、電源電圧3.3Vの下でサイクルタイム3.5nsの動作が確認された。これは、動作周波数に換算すると286MHzに相当する。このように、CG乗算機能を搭載したにもかかわらず、浮動小数点乗算器単体としては最高速の動作周波数が得られ、提案したアーキテクチャが浮動小数点乗算器の高速化に有効であることが確認された。

 以上の研究成果による加算器、乗算器、浮動小数点加算器および浮動小数点乗算器をVLSIマイクロプロセッサに適用することにより、192MHzの高速動作を達成することができる。これは、CADツールによる自動設計を用いているにも関わらず、人手によって最適化された高速浮動小数点演算器と同等のものであり、さらに人手をかけることによって一層の高速化が可能である。また、本研究で得られた成果は、今後の製造プロセスの進歩、動作速度の進展および用途の変化に対して常に有効なものであり、高速の加算器、乗算器、浮動小数点加算器および浮動小数点乗算器を得ることが可能である。

 なお、本論文ではマイクロプロセッサを高速に動作させる上でのもう一つの重大なボトルネックとして、メモリのアクセスタイムが重要であることを最後に述べ、筆者らが行ったキャッシュメモリの高速化に関する研究内容を付録として付記している。

審査要旨

 本論文は「VLSIシステム向け加算回路および乗算回路の高性能化に関する研究」と題し、高性能VLSIを実現する上で不可欠な技術である整数加算回路、整数乗算回路、浮動小数点加算回路および浮動小数点乗算回路の高性能化に関する研究をまとめたのもで、本文6章と付録より構成されている。

 第1章は序論であって本研究の技術的背景について述べ、問題点を明らかにするとともに本研究の目的と意義について述べている。

 第2章は「加算器の高速化と小面積化に関する研究」と題し、従来の種々の整数加算器について演算速度とVLSI上でのハードウェアコストとを解析的に求め比較することで最適の加算器方式を決定する設計手法について検討している。さらにトランジスタ数が少なく小面積で実現できる新しい方式のキャリーセレクト型加算器を提案し、64ビット整数加算器に応用し、試作・評価した結果について述べ、その有効性を実証している。

 第3章は「乗算器の高速化と小面積化に関する研究」と題し、整数乗算器の高速化に関して検討している。回路方式上の高速化手法としてトランスミッションゲートを利用することの有効性を明らかにし、論理方式上の高速化手法として冗長2進数を用いた高速乗算手法を提案している。特に冗長2進数を用いた加算器に関しては、論理式を最適化することによって従来よりも高速の回路を解析的に導出すると同時に、従来の非冗長2進型の加算器との論理的関係を明らかにしている。さらにCMOS回路設計にこれを応用し54x54ビットの整数乗算器を試作・評価し、その有効性を実証している。

 第4章は「浮動小数点加算器の高性能化に関する研究」と題し、浮動小数点加算器で演算速度を決定する要因の一つである正規化演算に関し、桁落ち予測回路を用いて高速化する方式を提案している。桁落ち予測論理と回路構成を明らかにするとともに、この方式を64ビット浮動小数点加算器に応用し試作・評価した結果を述べ、その有効性を実証している。さらに第2章で提案した加算器を利用した場合の相乗改善効果に関してもその有効性を解析的に示している。

 第5章は「浮動小数点乗算器の高性能化に関する研究」と題し、3次元コンピュータグラフィクス(CG)処理の高速化を目的とした浮動小数点CG乗算器の高性能化について検討・提案している。この乗算器は通常の標準形式の浮動小数点数の乗算機能に加えて、CGに特有の画素データに対する高速乗算機能を少ないハードウェアコストの追加で実現するものであり、第3章の整数乗算器の結果と合わせて64ビット浮動小数演算器に適用し、試作・評価することでその有効性を実証している。

 第6章は結論であり本論文の成果をまとめるとともに、各章で得られた成果をVLSIマイクロプロセッサに適用した場合の性能を解析的に評価・検討している。さらに残された問題点と今後の方向について論じ、マイクロプロセッサのさらなる高速化にはメモリーの高速化が重要であることを述べ、その一例として付録にまとめたキャッシュメモリー高速化についても言及している。

 以上要するに、本論文はVLSIの高性能化のための基礎技術である、整数加算回路、整数乗算回路、浮動小数点加算回路および浮動小数点乗算回路の高速化とVLSI上での小面積化手法について研究し、それぞれについて新しい方式を提案するとともに、実際のVLSI試作・評価を通じてその有用性を実証したもので電子工学の発展に貢献するところが少なくない。

 よって本論文は博士(工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク http://hdl.handle.net/2261/51064