学位論文要旨



No 119535
著者(漢字) 服部,直也
著者(英字)
著者(カナ) ハットリ,ナオヤ
標題(和) 分散命令発行マイクロプロセッサの命令ステアリング方式に関する研究
標題(洋)
報告番号 119535
報告番号 甲19535
学位授与日 2004.03.25
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第16号
研究科 情報理工学系研究科
専攻 電子情報学専攻
論文審査委員 主査: 東京大学 教授 田中,英彦
 東京大学 教授 近山,隆
 東京大学 教授 喜連川,優
 東京大学 教授 相田,仁
 東京大学 教授 坂井,修一
 東京大学 助教授 田浦,健次朗
内容要旨 要旨を表示する

半導体実装技術の微細化とアーキテクチャ設計技術の進化により、マイクロプロセッサの性能は指数関数的な向上を続けている。しかし時代と共に高度な情報サービスや研究分野が現れ続けるため、マイクロプロセッサには常に高性能化が要求され続けている。その一方で、半導体実装技術の微細化速度は鈍化し、ムーアの法則の終焉が囁かれ始めている。そのため、アーキテクチャ設計技術の重要度は相対的に増加しており、近年の高性能マイクロプロセッサはパイプライン段数を増やして一段あたりの処理量を減らし、動作クロックを向上させている。一般にプログラム中の命令には複雑な依存関係が存在するが、パイプライン段数を増やすと各処理に要するサイクル数が増加するため、IPC が低下する。マイクロプロセッサの性能はクロック× IPC で与えられるため、パイプラインを設計する際は IPC の低下を考慮する必要がある。IPC に与える影響は一様ではなく、ALU-to-ALU レイテンシ、Load-to-Use レイテンシ、分岐予測ミスペナルティの順に影響が大きいことが知られている。そのため高クロック設計を考える際には、データ依存のある2命令の発行間隔である ALU-to-ALU レイテンシの増加抑制を第一に考える必要がある。

一般にトランジスタの応答速度は大きさに比例するため、半導体実装技術はマイクロプロセッサの速度向上に寄与してきた。しかし配線遅延はその長さに比例しないことにより、徐々に配線遅延がマイクロプロセッサの主要な遅延になりつつある。そのため長い配線を要する構造に対しては、特に工夫が必要になる。長い配線を用いる構造は多々存在するが、ALU-to-ALU レイテンシに影響する構造として、演算器間でデータを受け渡す データフォワーディング と、発行した命令の情報を待機中の命令に渡す 命令タグフォワーディング が存在し、どちらも問題視されている。

これらに対する工夫として、本研究ではクラスタアーキテクチャに着目した。この方式では少数の演算器間、Issue Queue エントリ間を短い配線で接続した塊(クラスタ)を形成する。このクラスタの内部では高速な情報伝達が可能であり、ALU-to-ALU のレイテンシを低く保つことができる。個々のクラスタは演算資源に乏しいために処理並列度が低くなるが、これに関しては、クラスタ間を別の経路で接続することで高スループットを確保する。一般にプログラム中に存在するデータ依存関係は一様ではないことが知られている。これを利用して、データ依存が厳しく並列度に乏しい部分を1クラスタ内で、並列度が豊富な部分を複数クラスタを用いて実行できれば、この不均質なハードウェアを活かすことができ、高い性能を発揮できる。つまり、クラスタ化されたアーキテクチャでは、命令をクラスタに割り当てる Steering 次第で、性能が良くも悪くもなる。本研究ではこの命令 Steering に関して、高クロック動作を妨げないことを前提に、高い IPC を引き出す方式を提案する。

本研究ではまず、クラスタアーキテクチャから最大の IPC を引き出す Steering 方式を検討した。仮にプログラム中の全ての命令が等しい重要度を持っているとすると、全ての命令を等しく速やかに処理しなければならない。一般に最高 IPC が得られる方式を議論することは難しいが、命令発行機構等はこの仮定の下で設計されることが多い。この仮定の下では全ての命令は、最も早く発行可能なクラスタに Steering されるべきであり、その場合に最大の IPC が得られる。この Steering を Ultimate Steering と呼ぶことにする。Ultimate Steering は任意の命令の演算レイテンシが既知であれば、命令をそれぞれのクラスタに割り当てた場合の発行時刻を計算することで実現可能である。

クラスタアーキテクチャは、非クラスタアーキテクチャの ALU-to-ALU レイテンシを部分的に高速化したアーキテクチャである。命令 Steering の品質次第で部分高速化の恩恵を受ける量が決定し、クラスタアーキテクチャの見かけの ALU-to-ALU レイテンシをという形で現れる。本研究ではクラスタ内の ALU-to-ALU レイテンシを 1、クラスタ間の ALU-to-ALU レイテンシを 3、クラスタ並列度を 1、クラスタ数を 8 と設定したため、ランダムな命令 Steering を行うと平均レイテンシは 2.75 になる。これに対して Ultimate Steering を用いることで、平均レイテンシを 1.60 まで軽減できることが確認できた。

しかしながら、Ultimate Steering を実現するためのハードウェアを検討したところ、(1) 各命令の Steering が直前の命令の Steering 結果に依存するため、N 命令/サイクルの Steering スループットを確保するためには N 倍の遅延が生じる。(2) Select 時刻を推定するために用いる履歴テーブルが大きいため、配線遅延の影響を受けて長い遅延が発生する。という 2 つの問題点のために、高クロック動作が期待できない。ここで仮に、2つの問題を解決した近似 Steering を用いたとしても ALU-to-ALU レイテンシの上限は 3 であるため、IPC が半分になることはない。そこで以降の議論では可能な限り品質を劣化させずに Ultimate Steering の問題を克服する方式を検討する。

命令 Steering に関する関連研究を調査した結果、Steering 先の選択肢として、(1) データを生成する命令が存在するクラスタと (2) 命令数が最低のクラスタ、のみに着目している。そこで Ultimate Steering にもこの近似を適用したところ IPC の低下は 1% 程度であり、この近似が非常に良いことが分かった。

Steering のスループットを確保するためには、同サイクルに処理する N 命令の Steering 処理間に依存関係があってはならないが、実際には先行命令とのデータ依存や、最低命令数クラスタに関する依存が存在する。これらの依存を無視すると Steering の品質が顕著に低下する。これを回避するために、Steering の前にデータ依存のある命令(Producer) を更にその Producer に差し替える方式を、また最低命令数クラスタを複数選択することで、1 クラスタへの命令集中を避ける方式を検討した。

また、データ生成クラスタと最低命令数クラスタの選択基準について、関連研究 Parcerisa 方式と Palacharla 方式をベースにそれぞれ議論した。その際、Steering が高クロックで動作することを保障するために (a) 特に条件を加えない場合、(b) 直接 Steering に関与する回路の遅延を、関連研究 Dependence Based Steering と比べて増加させない(高クロック動作条件)場合、の 2 つのシナリオに関して議論した。

Parcerisa 方式では、各クラスタの命令数の均衡状態に基づいて、特定クラスタへの命令集中が認められれば最低負荷クラスタへ、認められなければデータ生成クラスタへ Steering する。この選択基準を簡略化された Ultimate Steering に適用した Uni-Policy Steering の性能を詳細に調査したところ、ALU-to-ALU レイテンシの大部分は、最低命令数クラスタに Steering された命令に対するクラスタ間のフォワーディング遅延であることが判明した。これは特定クラスタへの命令集中が起きている場合でも、データ生成クラスタに Steering すべき命令が存在することを意味する。これを受けて本研究では、2 つの方式を提案した。Multi-Policy Steering では、より多くの命令をデータ生成クラスタへ割り当てるために、各クラスタごとに命令数の均衡状態を判断する。Criticality Based Steering では、プログラム実行時間に対して重要度の高い命令を選別して、それらを常にデータ生成クラスタへ割り当て、重要度の低い命令を負荷の低いクラスタで実行する。また、両手法を Ultimate Steering に搭載して評価を行い、IPC が向上することを確認し、両手法を併用することで更に性能が向上することを確認した。Multi-Policy Steering は「高クロック動作条件」を満たさないため、この条件下では Criticality Based Steering しか適用できないが、それでも併用した場合と比べて大きな IPC 低下は起こらないことを確認した。

Palacharla 方式は、In-Order Issue Queue を搭載する非クラスタアーキテクチャ向けの命令 Steering 方式である。この方式は Issue Queue のエントリに着目しており、データ生成命令とデータ使用命令のエントリ間距離が 1 になる場合に限り、データ生成クラスタへ命令を Steering する。この条件を満たすクラスタが存在しない場合は、Issue Queue 内の命令数が 0 であるクラスタへの Steering を試み、それが無い場合は Stall する。本研究ではまず、この選択基準を他のアーキテクチャに適用させるために2つの調査を行った。その調査の結果、Out-of-Order Issue Queue に対しては Stall という判断が適切でないこと、閾値とすべきエントリ間距離は本来 ALU-to-ALU レイテンシ差であるべきことが確認できた。また、これらの変更を加えた Local Distance Steering を用いると、高い IPC が得られることが分かった。しかし、この方式は「高クロック動作条件」を満たしていない。そこで Local Distance 計算の代わりに、データ生成命令とデータ使用命令のフェッチ順に於ける距離 (Global Distance) で近似する Global Distance Steering を提案した。評価の結果、この近似による大幅な性能低下は見られないことを確認した。

以上の調査・議論の結果、最も高い IPC が得られるのは Ultimate Steering であることが確認された。また、高スループット条件を満たす方式の中では Local Distance Steering が最も優れていることが分かった。更に、高クロック条件を要求する場合には Criticality Based Steering が最も優れていることが分かった。

審査要旨 要旨を表示する

本論文は、「分散命令発行マイクロプロセッサの命令ステアリング方式に関する研究」と題し、8章からなる。プロセッサ処理性能を上げるためには、クロック速度の向上が有効であるが、それには半導体チップ内の配線遅延に対する考慮が重要である。そのために回路部分を複数のクラスタに分割して構成し、クラスタ内部の高速性を生かすべき処理部分と、複数のクラスタを並列に利用することによって処理性能の向上をはかる部分とを切り分けることで高性能化を目指すクラスタアーキテクチャがある。このアーキテクチャでは、従って、命令を時々刻々の処理状況に応じて適切に割り付ける方式、すなわち命令ステアリング方式がキーとなる。本論文は、このようなクラスタアーキテクチャの命令ステアリング方式について論じたものである。

第1章「序論」は、研究の背景、目的を述べるとともに、本論文の構成についてまとめたものである。

第2章「マイクロプロセッサアーキテクチャの動向」は、近年のマイクロプロセッサの性能向上をはかる手法として、動作周波数と命令の並列処理を取り上げ、それらの技術について考察し性能向上の制約となる問題点とそれへの対処手法についてまとめている。

第3章「本研究で仮定するクラスタアーキテクチャ」は、4章以降の議論で必要となる想定マイクロプロセッサの構成について述べたもので、命令のフェッチ、デコード、リネーム処理部分をフロントエンドとし、命令のリタイア部分をバックエンドとして、その間にある命令発行、レジスタファイルアクセス、演算、キャッシュアクセスなどの処理は、直列に処理するとして、その直列処理部分を複数並置した構成を取っており、その直列処理部分それぞれをクラスタと呼んでいる。クラスタそれぞれは独立のレジスタファイルを備え、書き込みは全クラスタに対して並列に行われる。本章では、更に、評価する場合に設定した遅延時間などのパラメータを与えるとともに、想定アーキテクチャの基本性能を分析している。

第4章「発行時刻情報を用いた理想命令ステアリング」は、高性能な命令ステアリングに要求される事項を整理し、ほぼ理想的なClock Per Instruction(CPI)が得られる命令ステアリング方式が、命令の発行時刻情報を用いるUltimate Steeringであることを導き、それによって、クラスタアーキテクチャの潜在的な性能を明らかにしている。これは、フェッチ順の早い命令から順に、もっとも早く発行可能なクラスタに割り当てるものであるが、命令の発行時刻計算を理想的に行おうとするとかなりな処理ステップを必要とするので、その近似方式が必要である他、その計算処理の逐次性への対処が必要であることを述べている。

第5章「命令ステアリングに関する関連研究」は、4章で考察したUltimate Steeringの近似検討に先立って、命令ステアリングの先行研究を調べ、それらの性能を比較して更なる性能向上の可能性がある3つの手法を提案している。

第6章「命令ステアリングに用いる近似判断指標の改良」は、前章で述べた3つの手法に対応する、クラスタの負荷情報、命令の重要性情報、依存命令間の距離情報、の3種類の情報に着目し、更に高性能な命令ステアリングの近似指標を提案するとともに、複数指標の組み合わせを検討したものである。すなわち、クラスタの負荷情報に関してはクラスタ全体の命令数バランス指標を用いる方式とクラスタ個別の命令数バランス情報を用いる方式、命令の重要性情報に関しては、重要性予測に基づいた予防的負荷分散、重要性情報と負荷情報の併用方式、依存命令間の距離情報については、命令番号差やフェッチ順位と重要性情報の併用方式などである。最後にこれらを比較し、これらの方式性能はいずれも先行研究の性能よりも高いが、重要性情報のみを用いると有効性の変動が激しいが、負荷情報と併用することで環境に依存せず性能を高く保つことができる、また距離情報を用いることは最も性能向上に役立つ、ことなどを明らかにしている。

第7章「並列命令ステアリング」は、4章で述べた逐次性の解決手法について検討したもので、従来のステアリング方式はすべて、先行命令のステアリング結果を後続命令のステアリングで使用する依存関係があり、これはパイプライン化では解決できない。本章ではその逐次動作の原因を分析し、最小命令数クラスタの並列推定、オペランド生成クラスタの並列推定、並列は戦略判断などの手法を提案するとともに、それらの性能を評価している。

第8章は結論である。

以上、これを要するに本論文は、今後重要となるクラスタアーキテクチャを用いて、プロセッサの性能向上を目指す場合、そのキーとなる命令ステアリング方式について検討し、その理想方式を与えるとともに実現可能な近似方式を提案して性能向上を示したもので、新しいマイクロプロセッサ構成法としての寄与が大きく、情報工学上貢献するところ少なくない。

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

UTokyo Repositoryリンク