学位論文要旨



No 113014
著者(漢字) 李,知漢
著者(英字)
著者(カナ) イ,ジハン
標題(和) 可変完了型高速演算器の設計手法とマイクロプロセッサヘの応用に関する研究
標題(洋)
報告番号 113014
報告番号 甲13014
学位授与日 1997.09.30
学位種別 課程博士
学位種類 博士(工学)
学位記番号 博工第3991号
研究科 工学系研究科
専攻 電子工学専攻
論文審査委員 主査: 東京大学 教授 浅田,邦博
 東京大学 教授 鳳,紘一郎
 東京大学 教授 岡部,洋一
 東京大学 教授 原島,博
 東京大学 教授 石塚,満
 東京大学 教授 柴田,直
内容要旨

 近年、大規模集積回路(VLSI)の設計技術、デバイス技術および製造技術の急速な発展により500MHZの高い周波数で動作するマイクロプロセッサも報告されているにも関わらずsoftwareの大規模化、実時間処理の要求、新しい分野の研究などマイクロプロセッサの性能向上の要求はますます強まっている。マイクロプロセッサの性能を向上する方法としては時間並列のパイプライン方式と空間並列のsuperscalar方式がよく用いられる。従って、回路の遅延のみならず回路の規模も性能に大きく影響を与えると言える。

 実際のマイクロプロセッサでは整数演算および浮動小数点演算など演算器のパイプラインが長いことが多い。これは演算器の最悪遅延が大きいことを意味する。また、演算器の回路規模も大きい場合が多い。従って、マイクロプロセッサの性能を向上するためには演算器の性能を向上させることが非常に効果的であると考えられる。

 本研究ではマイクロプロセッサの性能を演算器の動作速度と回路規模の両面で向上すことを目指して演算器の基本ユニットである加算器の研究を行なった。乱数入力に対した加算器の平均キャリー伝搬回数がlogN以下であることに基づき、加算器の動作完了を検出もしくは予測して加算器の動作速度に合わせて可変的に演算を行なうことで平均高速で小規模の加算器を設計する手法を提案した。本論文では完了検出型加算器と完了予測型加算器の二つの同期式可変完了型加算器を提案し、加算器の有効性を理論的に分析し、典型的な同期式加算器との比較評価を行なった。なお、二つの可変加算器方式に対して各々評価のためのマイクロプロセッサを設計し、シミュレーションでの機能検証を行なった後チップを試作試作して測定を行なった。以下で、各章で得られた内容をまとめる。

 第1章ではマイクロプロセッサの性能を向上する手法と制御回路方式について検討を行ない、次の結果が得られた。

 ・マイクロプロセッサの性能は時間並列と共に空間並列も可能であり、回路の動作速度のみたらず回路の規模も非常に重要な評価パラメタである。

 ・同期回路は数多くの長所を持っているが回路の動作速度が最悪遅延で決まるので回路の動作速度を向上するためには膨大な規模の回路が必要であるし、今まで非常に深く研究が行なわれ改善の余地も少ない。

 ・非同期回路は回路の平均速度で動作するため同期回路より平均高速で動作する可能性があるがハザード、危険競争(critical race)などを避けなければならないので設計に制約が多い。

 ・自己同期回路では完了信号を生成するため通常2線式コードを用いるので回路規模が同期回路に比べ2倍以上大きいし、ハンドシェークにかかる時間損失も大きい。

 ・クロック非同期回路は遅延素子と局所クロックを用いることで必要な部分だけ2線式回路を用いることで自己同期回路より小規模でありながら平均速度で動作できるが速度独立ではないし、ハンドシェークによる時間損失の問題は残っている。

 ・疑似非同期回路は局所的に高速のクロックを使用し全体的にはシステムクロックで同期して動作するので疑似的に平均速度で動作することで平均高速動作が期待される。

 第2章では本論文で提案する加算器の評価を公平に行なうため従来の同期式加算器の分析を行たった。対象加算器としてはRCA(Ripple Carry Adder),CSA(Carry Select Adder).CLA(Carry Lookahead Adder),BCLA(Binary Carry Lookahead Adder)およびBTCLA(Binary Tree Carry Lookahead Adder)を用いた。検討内容は最悪遅延、回路規模および遅延・回路規模積であり、以下で結果をまとめる。

 ・RCAは回路規模は小さいが最悪遅延が加算器の単語長に比例して長い単語長には向いてない。

 ・基本的なCLAは最悪遅延と回路規がキャリー評価回路を作る方法によって大きく依存するし回路の規則性も良くない。

 ・CSA加算器は単語長が小さい場合は最悪遅延が小さいが単語長が大きくなると最悪遅延が急激に増加する。また、回路規模も大きい方である。

 ・BCLAは回路規模も小さく、最悪遅延も小さい方であるし単語長が大きくなっても増加率は小さい。また、回路の規則性も持っている。

 ・BTCLAは回路規模は大きいであるが最悪遅延が比較対象の中で一番小さい。また、回路の規則性もよい。

 ・CSA、BCLA、BTCLAを対象として遅延・回路規模積の性能比較を行なった結果、BCLA、BTCLA、CSA順で性能が良い。

 第3章では従来の同期式加算器の性能改善の限界を克服する新しい手法として同期式の可変完了型加算器を提案し、設計手法について述べたあと平均遅延、回路規模を求めて典型的な同期式加算器と比較して評価を行なった。

 完了検出型加算器としては加算器をある一定のビットを持つセグメントで分割し分割された全てのセグメントのキャリー出力の変化を検知し完了信号を生成するセグメント分割型を検討し、完了予測型加算器では入力からキャリー伝搬信号を生成しキャリー伝搬の値が’1’である信号が連続する最大数を判別することで加算にかかるクロック数を予測する手法を検討した。

 これらの加算器を典型的な同期式加算器であるBCLA及びBTCLAと遅延、回路規模及び遅延・回路規模積の面で比較を行なった。また、可変完了型加算器における問題点、パイプライン化手法、制御回路の検討を行ない次の結果が得られた。

 ・セグメント分割加算器は回路規模は比較的小さいが平均遅延が大きい。平均遅延が大きい理由は最初のクロックで完了する確立がすごく小さいことと完了検出回路の遅延が加わるからである。

 ・完了予測型加算器では回路規模、平均遅延共に比較対象の中で一番小さい。その理由は完了予測型加算器では加算演算と完了予測が並列に行なわれることと、セグメントレジスタがないので一回のクロックで終る確率が高いからである。

 ・64ビットの加算器における遅延・回路規模量の積を計算した結果、完了予測型加算器の遅延・回路規模量の積はBCLAの45.1%,BTCLAの42.7%であった。

 ・可変完了加算器における大きな短所は入力データ依存性であることを確認し、その緩和手法を提案した。緩和回路を入れても回路規模と遅延の負担はおおよそ10%しか増えなかった。

 ・完了予測加算器のパイプライン化を検討し、フラグメントの長さを4ビットにした時一番良いことが分かった。4ビットフラグメントを用いた64ビットの2段パイプライン完了予測型加算器と2段にパイプラインBCLA加算器と比較した結果、完了予測加算器の遅延・回路規模積はBCLA加算器のおおよそ60.4%でありパイプライン化しても良い性能が得られた。

 第4章では可変完了型加算器の性能を実験的に評価する目的で4ビットのセグメントに分割された64ビットSRCA加算器を用いたマイクロプロセッサの設計について述べた。主な内容はマイクロプロセッサのアーキテクチャであり、命令、命令形式、クロック発生回路、入出力バッファ(LSU)制御回路、レジスタの書き込み、読みだし制御回路、命令シーケンサ回路について述べた。次に評価内容をまとめる。

 ・本マイクロプロセッサはレイアウトから回路抽出を行ない回路シミュレーションまでは正常に動作することを確認した。

 ・しかしながら、実際のチップでは演算結果をレジスタファイルに格納する際一部のデータが間違っていることが分かった。原因を分析した結果、クロックずれが誤動作の原因であることが分かった。

 ・回路シミュレーションでクロックずれの問題が検知されていないのはバスの寄生容量が大きく抽出されたためであると考えられる。

 ・クロックずれの問題は従来から同期回路での大きな誤動作の原因のであり、配線遅延が大きくなる微細設計規則で設計する際はより厳密なシミュレーションと設計余裕を持たなければならないと考えられる。

 第5章では可変完了型加算器の性能を実験的に評価する目的で32ビット完了予測型加算器を用いたマイクロプロセッサの設計について述べた。以下で設計内容と評価結果をまとめる。

 ・本論文で設計した可変完了型マイクロプロセッサの主な構成要素は命令、命令形式、レジスタファイル、加算器、論理ユニット、シフタ、フラグレジスタ、各ユニットの制御回路などである。

 ・本マイクロプロセッサは加算/減算にかかるクロック数が加算器の入力によって変わるので演算ステージのパイプライン長さが異なる可変パイプラインである動作する。

 ・本マイクロプロセッサではクロックずれによる誤動作を完全に回避するための2相クロックを用いた。また、演算資源が空いている限り命令を発行し複数の演算が並列に行なえるように設計した。

 ・本マイクロプロセッサではレジスタファイルにタグビットをつけてデータハザードをハードに回避できるようにした。別途のフラグレジスタを用いないでレジスタ毎にフラグビットをつけった。

 ・Verilog-HDLのシミュレーションで本マイクロプロセッサの動作を確認した。3.3V,0.5um,CMOSの実際のモデルパラメタで確認した結果300MHzまで正常に動作することを確認した。

 以上でまとめたように疑似非同期制御回路の概念を用いることで小規模でかつ平均高速動作の可変完了型演算器の設計が可能であることが分かった。なお、演算器の性能評価用のマイクロプロセッサを設計しシミュレーションを行なった結果正常の動作が確認できた。可変完了型加算器は加算器の単語長が長いほど他の加算器より比較性能がよいし規則性もよいので将来の演算器に向いていると考えられる。

審査要旨

 本論文は「可変完了型高速演算器の設計手法とマイクロプロセッサへの応用に関する研究」と題し、大規模集積回路(以下VLSI)の中に用いられる演算回路の平均演算速度の高速化とそれを利用したマイクロプロセッサ方式について研究したもので、6章で構成されている。

 第1章は序論であり、VLSIの処理速度の究極的高速化には「遅延・ハードウェア量の積」を最小化することの必要性を論じ、そのためには演算器の最大遅延時間にかわり平均遅延時間を最小化することの有効性を論じている。また、平均速度最小の演算器の特徴である可変完了型高速演算器を用いる場合に必要となる同期制御方式に関連し、従来の完全同期式から本論文の主題である疑似非同期式、自己クロック方式、自己同期式、さらに完全非同期式にいたる各種制御回路方式階層構造を論じ、本論文の位置づけを明らかにしている。

 第2章は「従来の同期式加算機の検討」と題し、代表的なリップルキャリー加算器(RCA)、キャリーセレクト加算器(CSA)、キャリー先見加算器(CLA)、二進木逆二進木型キャリー先見加算器(BCLA)、二進木型キャリー先見加算器(BTCLA)、についてそれぞれハードウェア量と演算速度を評価している。その結果、「遅延・ハードウェア量の積」の観点ではBCLA、BTCLA、CSAの順で性能がよいことを明らかにし、以降の章で可変完了型加算器と比較する対象としてBCLAとBTCLAを用いる根拠を明らかにしている。

 第3章は「可変完了型加算器」と題し、ハードウェア量の少ないリップルキャリー加算器をもとに発展させた二種類の可変完了型加算器である、(a)完了検出型加算器と、(b)完了予測型加算器のき本概念を提案している。また完了検出型加算器の具体的設計手法に関し、平均クロック数のリップルキャリー・セグメント長依存性、平均遅延と回路規模を明らかにし、その設計指針を与えている。完了予測型加算器の具体的設計手法に関しても、完了予測回路の構成とキャリースキップ方式による加算器セグメント回路を提案している。さらに、これらについての遅延と回路規模の関係を検討し、完了予測が最も優れており64ビット加算器の場合「遅延・ハードウェア量の積」がBCLAの約50%となることを明らかにするとともに、実際の応用に対し必要なパイプライン化と制御方式を論じている。

 第4章は「完了検出型加算器を用いたマイクロプロセッサの設計」と題し、4ビットセグメント構造の64ビット完了検出型加算器を用いた4段パイプラインのマイクロプロセッサアーキテクチャについて述べている。演算ブロック構成、命令セット、命令デコーダ構成、内部クロック生成回路、入出力バッファの制御回路等の主要構成を明らかにするとともに、シミュレーション動作検証結果と試作チップレイアウトを詳述し、方式の実現性と有効性を実証している。

 第5章は「完了予測型加算器を用いたマイクロプロセッサ」と題し、ハーバードアーキテクチャを用いた4段パイプラインRISC型マイクロプロセッサに完了予測型加算器を組み込む手法を具体的に示している。算術演算ユニットを2個と論理演算ユニットを1個用いた5バス方式のスーパースカラーマイクロプロセッサであり、命令セット、レジスタ構成、心臓部の完了予測加算器回路、複数命令同時発行機構を等を詳述し、フロアプラン、レイアウト設計、シミュレーション評価を通して、3.3V動作の0.5mCMOS回路で300MHzまで正常動作することを予測している。

 第6章は本論文のまとめであり結論を述べている。

 以上要するに、本論文はVLSIにおける演算器の平均速度の向上による高性能化を目的として、演算速度を決定する要因となっている加算器に対し完了検出型加算器と完了予測型加算器を提案評価するとともに、それぞれの演算器を用いたマイクロプロセッサを具体的に設計評価することを通し実現性と有効性を実証したもので、電子工学の発展に寄与する点が少なくない。

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

UTokyo Repositoryリンク