学位論文要旨



No 117136
著者(漢字) 安島,雄一郎
著者(英字)
著者(カナ) アジマ,ユウイチロウ
標題(和) 大規模データパス・プロセッサの研究
標題(洋)
報告番号 117136
報告番号 甲17136
学位授与日 2002.03.29
学位種別 課程博士
学位種類 博士(工学)
学位記番号 博工第5277号
研究科 工学系研究科
専攻 情報工学専攻
論文審査委員 主査: 東京大学 教授 田中,英彦
 東京大学 教授 坂井,修一
 東京大学 教授 喜連川,優
 東京大学 教授 武市,正人
 東京大学 教授 井上,博允
内容要旨 要旨を表示する

 1971年に最初のマイクロプロセッサ4004が誕生して以来、マイクロプロセッサはその製造技術、設計技術とも絶間なく改良されてきた。これによる性能向上は留まるところを知らず、未だに衰える傾向がない。マイクロプロセッサの急速な性能向上は計算機の高性能化、小型化に大きく貢献し、社会のデジタル化、IT化の原動力となっている。しかし、デジタル化によって様々なメディアがマイクロプロセッサで処理されるようになり、またネットワークの普及によってサーバーに膨大な処理が要求されるようになるなど、情報処理能力に対する要求の増大もまた留まるところを知らない。このため、情報処理の中核として、マイクロプロセッサには常により高い性能が求められている。

 マイクロプロセッサの性能向上は、半導体デバイス技術とアーキテクチャ技術によって支えられてきた。デバイス技術の進歩によって高密度の集積が可能になり、利用できるトランジスタ数はより多く、トランジスタのスイッチング時間はより短くなってきた。スイッチング時間の短縮はプロセッサの動作速度の向上に貢献する一方、トランジスタ数の増加は新しいアーキテクチャ技術の導入を可能にする。この結果、パイプライン・アーキテクチャ、分岐予測による投機的実行、レジスタリネーミング、オウトオブオーダ実行など、さまざまなアーキテクチャ技術が開発、実装された。

 半導体デバイス技術は、半導体の集積度と性能は18ヶ月で2倍になるというMooreの法則を維持しており、米国半導体工業会によって今後もMooreの法則をに従った性能向上が続くと予想されている。一方、アーキテクチャ技術による性能向上は停滞している。現在主流のスーパスカラ・アーキテクチャでは、多数のトランジスタを使用して1サイクルに処理できる命令を増やそうとすると処理機構の複雑さが増大し、動作速度の低下を引き起こす。このため増加したトランジスタを有効に活用することができない。また、スーパスカラの構造の複雑さを改善するVLIW(Very Long Instrucion Word)アーキテクチャもアーキテクチャ・コアの小型化には成功したものの、大規模化を進めると急速に柔軟性が失われるアーキテクチャであるため汎用プロセッサとしてスーパスカラ・アーキテクチャを超える性能を実現することはできなかった。スーパスカラ・アーキテクチャの限界は1命令ずつ処理する機構の複雑さに起因している。投機実行の範囲を広げることが困難な為、命令レベル並列性の解析範囲拡大や、近年提案されている分岐の複数パス実行、データ投機実行などの高度な投機技術による性能向上を得ることが難しい。

 このような状況で、利用可能なトランジスタ数の増加を性能向上に結びつけるため、様々な新しいアーキテクチャ技術が研究されている。EPIC(Explicitly Parallel Insturction Computing)技術とコードモーフィング技術はVLIWの柔軟性のなさを克服し、大規模実行を目指している。EPIC技術は複数のVLIW命令ワード間の並列性を明示的に指定しておくことにより、多数のVLIW命令ワードを同時に実行することを可能にする。また、コードモーフィング技術は読みこんだコードを実行時にVLIW命令に変換して実行する。これによりアーキテクチャ・コアにあわせた柔軟なコードを実行することが可能になり、実行規模の拡大も容易になる。しかしどちらも固有の複雑性があり、スーパスカラを大きく超える性能は実現できていない。CMP(Chip Multi-Processor)アーキテクチャは一つのチップにスーパスカラもしくはVLIWの要素プロセッサを複数搭載し、要素プロセッサ間でメモリを共有して動作する。これにより、マルチスレッドで書かれたプログラムを効率的に処理する。しかし、並列プログラムによる並列性の取り出しは中粒度〜疎粒度の並列処理技術であり、要素プロセッサ数が増えた場合に並列性の取り出しが難しくなる問題を抱えている。また、CMPは要素プロセッサ自体を改良する技術ではないため、命令レベル並列性抽出の性能は改善されない。SMT(Simultaneous Multi-Threading)アーキテクチャもまたスレッドレベルの並列性により性能向上を目指している。SMTはスーパスカラをベースにしているが、解析範囲を広げて並列性を取り出すのではなく、複数のスレッドから並列に実効出きる命令を取り出す。SMTではスレッド毎に独立に並列性抽出を行えるため、機構の複雑さはスレッドの数に対して爆発しない。SMTはCMPに比べてハードウェア規模が小さいというメリットがあるが、やはり細粒度の並列性利用は向上しない。このように、VLIWの改良による命令レベル並列性の抽出ではスーパスカラ同様に処理の複雑さが問題になり、複数の処理機構によるスレッドレベル並列性の抽出では命令レベルの並列性利用が向上しないことが問題である。

 本論文では、大規模な命令レベル並列性抽出処理における複雑性を解消するため、分散化した実行機構で単一スレッドを処理するアーキテクチャ技術を検討した。

 まず、大規模投機的実行の実現を目的として、多ポート、高速アクセス可能な多量の物理レジスタを構成する分散レジスタ技術を提案した。また、実行ユニット間のデータ転送を削減するため、連続で同じ実行ユニットに命令を割り当て、分岐命令で割り当て実行ユニットを切り替える方式を提案した。さらにシミュレータによって、投機実行の規模と命令連続割り当て長の関係を評価した。これらより、投機実行の規模が大きくなるに従い、命令の実行ユニットへの連続割り当て長も伸ばす必要があることが分かる。最大8分岐命令投機の規模では2分岐命令、最大16、32分岐命令投機の規模では4分岐命令、最大48、64分岐命令投機の規模では8分岐命令連続で一つの実行ユニットに命令を割り当てるのが望ましいことが分かった。

 次に、命令ブロック技術を提案した。命令ブロック技術では多数の命令に対して一括して物理レジスタを割り当て、レジスタ・リネームを行い、レジスタマップを更新する。1命令ブロックにブレークポイントが1つでは命令ブロック幅が分岐命令の頻度により制限されるため、命令ブロックが複数ブレークポイントを持てるよう命令ブロック構成とリネーム方式に拡張を行った。また、任意のRMSに切り替えながら処理を続けられるよう、リネーム機構に拡張を行った。さらにRMS選択に2サイクルかかる仮定でソフトウェア・シミュレーションを行い、高スループットの命令デコードが達成できていることを確認した。

 最後に、分散レジスタ、命令ブロックを利用し、大規模投機的実行を実現するアーキテクチャとして大規模データパス(Very Large Data Path : VLDP)アーキテクチャを提案した。同時にVLDPプロセッサに必要なレジスタリクエスト生成機構や分散レジスタ管理機構を提案した。また、シミュレーションによりVLDPプロセッサの特性を調べ、高スループットの命令フェッチがで実現できていることを確認した。命令解析範囲は広がったが高いIPCは得られておらず、原因はデータ転送の遅延であると考察した。最後にVLDPアーキテクチャの今後の課題について考察した。

審査要旨 要旨を表示する

本論文は、「大規模データパス・プロセッサの研究」と題し、9章と付録からなる。情報社会を支える情報処理の中心はマイクロプロセッサであり、近年その性能向上は著しい。しかしながら、その向上は半導体の微細化によるクロック性能によるところが殆どであり、微細化にともなう大量なゲート実装を十分に使いきれていない。本論文は、今後の半導体技術が可能とする利用可能なトランジスタ数の増加を性能向上に結びつける手法について論じたものである。

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

第2章「マイクロプロセッサアーキテクチャ」は、現在までに実用化されているマイクロプロセッサのアーキテクチャについて述べたもので、パイプライン処理、分岐予測、アウトオブオーダ実行、レジスタリネーミング、スーパースカラアーキテクチャ、およびVLIWについてまとめ、スーパースカラ技術は、同時処理命令数が増すと命令発行機構が急激に複雑化するという大きな問題を持っていることを指摘している。

第3章「次世代アーキテクチャ技術」は、現在性能の停滞しているスーパスカラアーキテクチャを超えることを目指して研究の行われているアーキテクチャ技術として、VLIWの改良であるEPIC技術、コードモーフィング技術、複数のプロセッサコアを1チップに載せるチップマルチプロセッサ、ならびにスーパースカラを拡張してマルチスレッド実行を可能にするSMT技術を取り上げて議論し、これらはいずれも対応するソフトウエア技術が複雑で、また、実行時の動的状態を効率よく並列処理に反映できないという問題点を有していると述べている。

第4章「分散レジスタ」は、これらの問題点を解決するための手法の一つとして、大規模な投機実行を行うことを考え、その実現に必要な多数のレジスタを供給可能とするために、物理レジスタを複数に分散化し、それに演算器を組にして配置して実行ユニットとし、アクセストラフィックを階層化する方式を提案したもので、各実行ユニットに割り当てる連続命令割り当て長と、各時点での同時処理命令範囲である投機的実行規模が性能に与える影響を評価し、連続命令割り当て長は、32分岐命令までの投機を行う場合は、4分岐を跨るサイズとするのが適切であることを示している。

第5章「命令ブロック」は、大規模な投機をおこなう場合のもう一つの課題である命令フェッチ、デコード、レジスタリネームの能力を格段に向上させるための技術として、命令ブロック方式を提案している。これは、複数の命令を一つのブロックとし、物理レジスタの割り当て、レジスタ読み込み、レジスタリネーミングを一括して行うもので、同時処理命令数が増えると複雑さが爆発する従来のレジスタリネーミング方式のボトルネックを解決している。本章では、この方式実現の詳細な機構として、レジスタマップ、入力レジスタマスク、出力レジスタマスクを用いた仕組みを与え、それらを高速に利用可能とする回路を工夫し、命令ブロックとしては、4つの分岐命令のブレークポイントからなる最大32命令の構造を与えている。

第6章「大規模データパスプロセッサ」は、第4章と5章で与えた要素技術を元に、大規模投機実行を実現するアーキテクチャを提案したもので、完全なプロセッサ構成とするため新たに、レジスタリクエスト生成機構、分散レジスタ管理機構、複数パス実行機構を導入している。提案に基づいて機能設計を行っているが、その回路は、命令の分岐予測、命令フェッチ、実行パス管理などを担当する制御セクション、命令ブロックのデコード、実行ユニット割付、命令実行を担当する実行セクション、および、オンチップキャッシュとのデータ授受、メモリ要求のバッファリング、メモリアクセス履歴管理などを担当するメモリセクションの3部分からなる大規模なシステムである。

第7章は「シミュレーション」で、設計したプロセッサの詳細な回路シミュレータについてのべたもので、それを用いた実行履歴を与えている。

第8章は「今後の課題」であり、現在の実装は、従来アーキテクチャのボトルネック解決の中心となる技術の可能性を示すことに傾注したもので、他の部分の実装は簡略化がおこなわれているので、正しい性能評価のためにはその簡略部分を正す必要がある。本章はその要点についてまとめたものである。

第9章は「結論」である。

以上、これを要するに本論文は、現在、性能の飽和が見られるマイクロプロセッサのアーキテクチャ技術について、そのボトルネックを解決するための手法として分散レジスタと命令ブロックを提案するとともに、具体的なプロセッサのシミュレータを作成してこの可能性を示したもので、情報工学上貢献するところ少なくない。

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

UTokyo Repositoryリンク