学位論文要旨



No 114231
著者(漢字) 中村,友洋
著者(英字)
著者(カナ) ナカムラ,トモヒロ
標題(和) 大規模投機処理を特徴とするマイクロプロセッサ・アーキテクチャ : VLDP
標題(洋)
報告番号 114231
報告番号 甲14231
学位授与日 1999.03.29
学位種別 課程博士
学位種類 博士(工学)
学位記番号 博工第4357号
研究科 工学系研究科
専攻 電気工学専攻
論文審査委員 主査: 東京大学 教授 田中,英彦
 東京大学 教授 斎藤,忠夫
 東京大学 教授 近山,隆
 東京大学 教授 喜連川,優
 東京大学 助教授 相田,仁
 東京大学 助教授 坂井,修一
内容要旨

 マイクロプロセッサは1971年の4004誕生以来これまで四半世紀の間、デバイス技術の進歩とアーキテクチャの進歩という両輪と、そして何より高性能化への強い要求に支えられて発展を続けてきた。デバイス技術に関してはMooreの法則でいわれるように3年間でチップのトランジスタ数が4倍になるというペースがほぼこれまで続いている。それに伴って現在ではオンチップ・キャッシュの搭載、命令レベル並列性を利用するスーパースカラ方式・VLIW方式などのチップが登場してきた。

 近年のプロセッサ・アーキテクチャにおいては、スーパースカラ方式が主流となり、ローカルな命令レベル並列性をより利用するために、out-of-order実行、投機的実行、データフォワーディングなどの機構が追加されてきた。さらに2次キャッシュのオンチップ化なども見られる。しかし、数年前からスーパースカラ方式の限界が様々指摘されている。元々スカラ・プロセッサの拡張として作られてきたため、旧来の方式へアドホックに機能を追加してきた面もあるのは否めない。

 最近のマイクロプロセッサ市場を見ると、PC市場ではIntel社が市場を独占している状態に近い一方で、ゲーム機・携帯情報家電や組み込み用途のプロセッサなどの市場では、複数のメーカーが競合している状態が見られる。汎用マイクロプロセッサに関しては、明らかに寡占状態になりつつあり、マイクロプロセッサの研究開発者は、この寡占状態の市場に勇気を持って挑戦するか、それとも特定用途向けのプロセッサをターゲットとするかの選択を迫られている。しかしながら、マイクロプロセッサの歴史を見てみると、これだけの短期間に激しい変革を起こしてきた世界である。また性能・コストに非常にシビアな世界でもある。革命的な技術の発明により、ある日市場が急転する可能性も秘めている。より高性能なプロセッサに向けた基礎的な研究はやめるべきではない。

 現在、21世紀に向けてより長期的な視点から、大規模なVLSIの利用方法に関する議論が様々行なわれている。オンチップ・マルチ・プロセッサや、DRAM・ロジック混載などによるメモリとCPUの1チップ化もしくはシステムオンチップと呼ばれるアプローチなどがその代表例である。これらの技術により既存の並列計算機やコンピュータ・システムの機能に相当するものが少数のチップにより構成され、例えば並列計算機における通信オーバーヘッドや、PC・ワークステーションなどにおけるメモリ・ウォール問題などが改善されることで高性能化が期待されている。しかしながら、これらは従来のCPU・メモリ・周辺機器を1チップ化することでシステムとしての性能を上げることがメインで、必ずしもCPUのもつ性能自体を改善するというのではない。CPUのもつ性能自体を上げる努力をしなければ、CPU性能がボトルネックとなりシステム全体の性能が上がらなくなるのは明らかである。

 このような現状を鑑み、本研究では、今後おおよそ10年後のデバイス技術を仮定した上で、CPU自体の性能向上を目指した新しいプロセッサ・アーキテクチャとして大規模データパス(Very Large Data Path)の開発を行なう。

 マイクロプロセッサの性能向上には、命令レベルの並列性の利用が欠かせない。プログラムの処理の本質はデータフローであり、データーフローをもとに実行を行なえれば、自然と命令レベルの並列性が抽出される。しかし、現在のアーキテクチャの多くはコントロールフローを中心にして実行を行なっているため、命令レベルの並列性の抽出が難しくなっている。本研究では制御依存関係を解消した命令を大量に実行部に送り高速処理を行なう方式の開発を目的としている。実行部としては、多数のALUをネットワーク状に結合したALU-NETと呼ぶ機構を設ける。このような大規模なデータパス部分をもったアーキテクチャを、大規模データパス・アーキテクチャと呼ぶ。

 本研究では、大規模データパス・アーキテクチャの概要についてまとめ、その中で特に制御依存関係による制約を可能な限り取り除く方式の検討を行なった。この機構をコントロールフロー先行展開と呼ぶ。コントロールフロー先行展開の特徴は大規模な投機処理にある。マイクロプロセッサにおいて、コントロールフローの複数パスへの投機フェッチを行なうことで、分岐命令による制御依存関係を効率的に解消することを目指している。

 複数パスへの投機フェッチにおいては、どのような命令の展開方式をとるかが重要な問題である。単一パスへの命令展開では、分岐予測の影響を受けやすく、分岐予測に失敗したときには大きなペナルティーが課せられる。一方すべてのパスを展開したのでは、投機規模を大きくするに従って不要な命令が爆発的に増加してしまう。そのため効率的な命令展開を行なうには、選択的な複数パスへの投機フェッチが必要である。

 投機フェッチの効率化には分岐予測性能の向上も欠かせない。しかしながら、これまでにさまざまな分岐予測機構の検討が行なわれてきた結果、最近ではさらなる性能向上はあまり望めない。ただし、これまでの分岐予測機構は単一パスへの投機フェッチを想定して設計されてきたので、コントロールフロー先行展開で行なうような複数パスへの投機フェッチに対応した分岐予測機構の検討が必要である。本研究では、投機フェッチに伴う履歴情報の更新遅れ、複数パスへの分岐予測の2点について調査をおこなった。

 動的な分岐履歴情報を利用する分岐予測機構では、投機フェッチによって先行する分岐命令の分岐予測を行なう場合、古い履歴情報をもとに分岐予測を行なうことになるため、この影響について調査を行なった。この結果、10段程度先までの分岐命令に対する予測性能に対して大きな影響は見られなかった。

 また、レジスタ間接アドレッシングで分岐先が決まる分岐命令は、その分岐先が2つ以上になる可能性をもっているため、複数パスへの投機フェッチに際しては、この複数の可能性の中から、確率の高い複数のパスの候補を取り出す分岐予測機構が有効であると考えられる。本研究では、1つの分岐先をキャッシングするBTAC(Branch Target Address Cache)を拡張し、複数の分岐先をキャッシングするMulti BTACを提案し、評価を行なった。その結果従来のBTACに比べて、分岐予測成功率で10〜30%程度の向上が見られ、さらに複数パスへの投機フェッチもMulti BTACを使って可能になった。

 以上のような分岐予測機構を用いて複数パスへの選択的投機フェッチを行なうのがコントロールフロー先行展開であるが、この際にコントロールフローの中からどのパスを選択するかが重要な問題である。理想的には、各パスへの実行確率を計算し最も可能性の高いパスから投機フェッチをするのがよいと思われるが、現実的に実装することは困難である。そこで、コントロールフロー先行展開では実装を考慮し、軽い処理で近似的に効率的な選択的投機フェッチが可能な実行確率管理機構を開発した。

 その結果、プログラムや投機規模にもよるが、シングルパスへの投機フェッチに比べて1.5倍〜6倍程度の命令フェッチ量で、分岐予測成功率に換算して99%以上の性能を得ることができた。つまり、ほとんどすべての分岐命令による制御依存関係を解消できることを示した。

 全体として、大規模データパス・アーキテクチャにより理想的にはスカラプロセッサの数倍〜十数倍もの速度向上が可能であることを示した。

審査要旨

 本論文は、「大規模投機処理を特徴とするマイクロプロセッサ・アーキテクチャ-VLDP-」と題し、11章と付録からなる。現在の計算機システムの中核となる素子はマイクロプロセッサであり、その性能は近年著しく向上している。しかしながら、その性能向上は従来、デバイス技術の発達によるものが殆んどで、スーパスカラ方式など、アーキテクチャによる性能利得は余り大きくはない。この論文は、大規模な投機的処理を行うことによって、従来のマイクロプロセッサの性能を著しく向上させる手法について論じたものである。

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

 第2章「マイクロプロセッサ」は、マイクロプロセッサを構成するための技術として、デバイス技術とアーキテクチャ技術を取り上げ、それらを概観している。

 第3章「高性能化をめざすアーキテクチャ」は、今後の性能向上を達成するための従来のアーキテクチャ技術を概観したもので、スーパースカラ方式、DRAM・ロジック混載プロセッサ、オンチップマルチプロセッサなどを取り上げている。これらはシステムとしての性能向上を目指すアプローチであって、本研究の目指すものは、プロセッサ自体の性能向上であり、これらの方式と直交する技術であると述べている。

 第4章「高性能化への問題と最近の研究」では、プロセッサの高性能化を阻む問題として、制御依存関係とデータ依存関係を取り上げ、それらの問題点と従来迄の解決策をまとめている。

 第5章「大規模データパス・アーキテクチャの提案」は、ここで提案しているプロセッサ・アーキテクチャの概要を述べたものである。この方式は、多数の演算器を相互に接続し、そこにデータパスを構築するものであって、プログラムを解析して作成したデータフローグラフをその上に展開することによって、オーバヘッドが少なく、実行並列度の高い処理を実現しようとしたものである。これを大規模データパス(Very Large Data Path:VLDP)と呼んでいるが、その主要構成要素は、制御依存を解消し多数のデータパスを用意する機構としてのコントロールフロー先行展開部、これらのデータパスのデータ依存関係に基づいて多数の演算器上にデータパスを構築するための機構であるデータパス先行展開部、多数の演算器を相互に接続したALU-Net、及びメモリと高速に命令やデータを授受する高速バッファの4要素であり、この章では、これらの機構を概説している。

 第6章「大規模投機実行処理の分岐予測機構への影響」は、大規模な投機処理のための命令供給システムに関して、動的に分岐履歴情報を更新するタイミングの感度について調べたもので、その更新が実際の命令フェッチタイミングより少し遅れていても十分機能することを示し、従来の分岐履歴表を用いることが可能なこと、またそのサイズは4〜8千エントリ位あればほぼ理想的な性能を引き出すことが出来ること等を明らかにしている。

 第7章「複数パス投機フェッチのための分岐予測機構」は、従来、その困難さのために分岐予測の対象として取り上げられることの少なかったレジスタ間接アドレスを用いた多重分岐を考察し、その予測のために分岐先アドレスを複数キャッシュに記憶しておく方式を提案してその性能評価を行った結果、各多重分岐命令に対応したキャッシュエントリ数が1である場合に比べて、エントリ数を3にすることにより、予測成功率が76%から90%に向上することを示している。

 第8章「コントロールフロー先行展開の提案」は、選択的な複数パスへの投機フェッチを効率良く行う機構を提案したもので、分岐命令が出現する度に増える実行パス候補に対して、各パスへの実行予測確率を計算し、確率の高いパスのみをフェッチする方式であるが、その確率計算が軽く、且つ、分岐の判断が確定しコントロールフロートリーを更新する手間が単純であることが望ましく、その候補として、Bit Order(BO)方式とBit Cross(BC)方式を提案している。

 第9章「コントロールフロー先行展開の評価」は、前章で述べた二つの実行確率管理機構を持ったコントロールフロー先行展開の性能評価を、様々な観点からおこなったものである。まず、予測を行う分岐の深さを投機レベルと呼ぶが、そのレベルと得られる平均並列度の関係を調べ、投機レベルが8の場合、平均並列度6.96、有効命令率10%となること、分岐履歴ビットが大きい場合はBO方式がBC方式よりも優れていることの他、分岐履歴ビット数と性能との関係、分岐確率に対する重み付けの影響、フェッチ命令数に制限を与えた場合の性能等を詳細に調べている。

 第10章は「考察」で、これまでに述べてきた方式と他の方式との比較検討をおこなっており、本方式の性能が、単一パスを用いる方式と理想的な方式のほぼ中間にあること、他で提案されている複数パス実行方式が静的であるのに対して、本方式は動的であるためそれだけ性能が高いこと、更に物理的にLSIチップとして実現する場合の実現可能性を検討し、必要な入出力スループットを満たしつつ、数GHzの駆動周波数で、スカラプロセッサの6〜8倍の速度向上が可能であろうと推定している。更にこの章では、提案方式の他の部分についても考察し、今後の課題についてまとめている。

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

 以上、これを要するに本論文は、性能に飽和の見え始めているマイクロプロセッサの性能向上問題に対して、大規模データパスを用いる構成方式を提案し、その命令フェッチやコントロールフロー展開部の構成を詳しく検討して、従来のものに比べてかなり高い性能向上が可能であることを示したもので、情報工学上貢献する所少なくない。

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

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