学位論文要旨



No 212840
著者(漢字) 内田,啓一郎
著者(英字)
著者(カナ) ウチダ,ケイイチロウ
標題(和) ベクトルアーキテクチャの構築とその実現方式の研究
標題(洋)
報告番号 212840
報告番号 乙12840
学位授与日 1996.04.17
学位種別 論文博士
学位種類 博士(工学)
学位記番号 第12840号
研究科 工学系研究科
専攻 情報工学専攻
論文審査委員 主査: 東京大学 教授 田中,英彦
 東京大学 教授 武市,正人
 東京大学 教授 井上,博允
 東京大学 教授 高木,幹雄
 東京大学 助教授 喜連川,優
内容要旨

 スーパコンピュータの高速化は素子技術の発展とアーキテクチャの発展が相まって実現されてきた。アーキテクチャによる高速化は並列化技術によって達成された。並列化には複数の回路や装置を多重に配置する空間的並列化およびいわゆるパイプライン方式による複数のステージで処理を実行する時間的並列化の2つがある。ベクトルプロセッサでは両者の技術を駆使して、最大限の性能を発揮することにより、世界最高速のプロセッサを開発することができる。

 本研究では、単体プロセッサとして世界最高速のベクトルプロセッサを開発するために次のような研究目標を立てた。

 (1)ベクトルプロセッサを分析し、問題点を明らかにする。

 (2)ベクトル化の範囲を拡張するアーキテクチャを提案する。

 (3)資源の有効利用を図るために命令の並列実行を追求するアーキテクチャを提案する。

 (4)上記アーキテクチャに基づいたハードウエア実現方式を構築する。

 (5)ハードウエア、ソフトウエアの総合的な性能評価を行い、本研究の有効性を検証する。

 ベクトルプロセッサの性能は、プログラムをベクトル化できる程度によって決まる。前世代のベクトルプロセッサ(CRAY-1)では、ベクトル化できる範囲に限界があり、性能向上が十分でなかった。本研究では実際のプログラムを分析し、ベクトル化を制限している要因を摘出し、複雑な処理を分析してベクトル化するための基本機能を分類した。条件付きベクトル処理を実行するための機能命令を提案し、データ編集命令等を用意することにより、ベクトル化範囲を拡張するアーキテクチャを提案した。実アプリケーションプログラムでもベクトル化率を高めるのに成功した。

 ベクトル化率が向上するとベクトル性能が向上し、投資効率も上がるため、さらにベクトル資源を投資することが有効である。第2世代アーキテクチャでは数命令の並列実行を目標にしたアーキテクチャであったためベクトル性能向上率も限界があった。本研究では、限界を打破するために、物理的なベクトルパイプラインを多重に設置し、かつ機能別のベクトルパイプラインを徹底して有効利用するために命令の多重並列実行を可能とするアーキテクチャを実現した。ベクトルレジスタの大容量化、動的構成変更機能を実現し、ベクトルデータをベクトルパイプラインに効率良く転送する方式を確立した。さらに、データフロー解析にもとづき、メモリ上に存在する従属関係にあるベクトルデータを扱う論理的パイプラインとそれらを複数定義し、かつ実行させるためのアーキテクチャを実現した。基本的には、無制限に命令を多重並列実行することを前提としたため、逆に複数命令の逐次実行を行うために同期を行う命令や機能を設置した。

 さらに、大幅な先行制御と順序不同の命令制御を行う結果、必須な機能として、命令書換えの禁止、静的アドレス変換方式、多重例外原因を取り扱う割り込み方式を考案した。

 上記アーキテクチャにもとづいて、複数のパイプライン演算器を設置し、それらのパイプライン演算器をそれぞれパイプライン的に並列命令実行を行う方式を確立した。それによって最大20命令程度の並列同時実行を行うことが可能となった。さらに、順序不同に命令を投入することができる命令実行制御を実現した。複数のパイプライン演算器にデータを供給するのに必要な大転送能力を確保するために、ベクトルレジスタのバンクインターリーブ構成を実現した。これにともない、命令発信のタイミングをバンクスロットという起動タイミングに引き込む方式を案出し、制御論理を簡単化した。同様に、メモリアクセス待ちのタイミングでクロックを停止することにより制御状態の凍結を図る方式により、さらに命令制御論理の簡略化を実現した。ベクトルレジスタのインターリーブ構成によって、同一レジスタへの多重アクセスが可能となるため、命令連結制御でもタイミングの自由度を高めることができた。

 ベクトルデータは直接メモリアクセスとし、キャッシュの介入を排除した。スカラユニットにキャッシュは不可欠であるため、スカラキャッシュアドレスをコピーして保持するアドレスアレイを設置し、ベクトルストアのアドレスとアレイを並列チェックし、一致するアドレスがあると、該当アドレスをスカラキャシュで無効にするようにして、キャッシュのコヒーレンシを確保した。

 最後に総合性能評価をした。

 VP-200のFORTRANコンパイラによる自動ベクトル化能力の向上を、実アプリケーションプログラムにおいて測定し、ベクトル化の範囲を拡張するアーキテクチャの有効性を実証した。

 並列命令実行能力の向上は次のように検証した。第一世代のF230-75APU上で走行させたのと同じプログラムをVP-200上で走行させ、ベクトル性能の大幅な向上を確認した。リバモアループ、14本の実際に使用されているアプリケーションプログラムによって、VP-200の性能を評価し、スカラでの実行に比べて最大44倍、平均9倍の性能向上を実測し、設計目標を達成したことを実証した。最大限の最適化を実現したライブラリの性能評価では最大73倍の性能が測定でき、並列命令実行による大幅な性能向上が確認された。

 ベクトル化が有効なプログラムだけではなく、ベクトル化が殆どできないものもあった。それらは局所的にのみベクトル化できるか、殆どベクトル化できないプログラムであった。最適化のためにアルゴリズムの変更等が必要であったり、スカラ処理しているプログラムの一部がライブラリ化できるものもあった。ベクトルプロセッサ文化が浸透すれば、ベクトル化に向くプログラミングスタイルも一般化すると思われ、それによる性能向上の効果も期待できる。

 本研究によって構築されたアーキテクチャはその後の富士通のスーパコンピュータアーキテクチャのベースとなった。アーキテクチャも改良修正もあり、今日に至っている。言語およびコンパイル技術の発展に呼応して、本アーキテクチャは構築され、改良された。製品全体として、国内外の市場に受け入れられたことは、本研究がそのベースとして貢献したと言えよう。

 今後のスーパコンピュータの素子はECL/GaAs等の高速・低集積度の素子からCMOSによる高集積度素子へと移行していくものと思われる。それにともない、物理的並列プロセッサシステムは現実性を高めている。ベクトルプロセッサ並列システムは既に出荷され、今後のスーパコンピュータの発展への1つの解であろうと思われる。21世紀当初には最大性能として10TFLOPS(Tera Floating Operations per Second)が可能になると予測できる。本研究はその目標達成への1つの重要な基本要素になるであろう。

審査要旨

 本論文は、「ベクトルアーキテクチャの構築とその実現方式の研究」と題し、8章からなる。いわゆるスーパーコンピュータは、高度な科学技術の研究開発にとって不可欠な道具であるが、それらは殆んどがパイプライン方式のベクトルプロセッサである。しかし、初期のベクトルプロセッサは、実際の一般的な科学技術計算に対して、性能向上の倍率に限界があった。本論文は、その限界を明らかにし、性能向上手法を議論したものである。

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

 第2章「コンピュータの高速化アーキテクチャと本研究の位置づけ」は、コンピュータの高速化の歴史を概観し、特にベクトルアーキテクチャを分析してその高速化の原理を述べるとともに、初期のベクトルアーキテクチャの問題点を分析し、自動ベクトル化が可能な範囲が単純な演算のみに限定されるため、ベクトル対象以外は多くのスカラ処理が残り、全体としての性能向上に限界があったことを指摘し、本論文では、より広範囲に高速化を実現するためのアーキテクチャを考察するのが目的であると述べている。

 第3章「ベクトルプロセッサの分析と問題点」は、ベクトルプロセッサのモデルを設定し、より詳しくその問題点を分析している。すなわち、一般的な科学技術計算プログラムを分析した結果、ベクトル処理は四則演算、内積演算、リスト/整数演算等の単純ベクトル演算の他に、条件付き処理、比較演算、インデックス処理、サーチ等の複雑なベクトル演算が多く存在し、これらの処理の高速化無しには、全体としての高速化は不可能であることを述べている。更に、命令の並列実行可能性を検討し、性能向上にはベクトルレジスタの数と容量を十分持たせること、メモリアクセススループットを向上させる為に複数のベクトルメモリアクセスパイプラインを設けること、更に、多くの命令が並列に実行できる環境では、その順序を順不同で実行出来ることが必要で割り込み処理を拡張する必要があること、を述べている。

 第4章「ベクトルアーキテクチャの機能拡張」は、前章で述べた問題点を解決するために、本論文で提案しているベクトルアーキテクチャについて述べたもので、まず条件処理のベクトル化では、マスク演算方式、集散命令方式、リストベクトル方式の3基本方式の特徴と欠点を分析し、それらの方式の中からコンパイラが最適な機能を選択する手法を提案している。また、3章で述べた複雑な演算処理の高速化の為に、これらを、検索機能、インデックス/ビット操作機能、論理演算機能、データ編集機能、分散収集命令、一次回帰関数用命令、データ変換機能などの基本機能や命令に分解し処理する手法を提案している。

 第5章「並列命令実行アーキテクチャ」は、3章で述べた命令の多重並列実行に関連するアーキテクチャについて述べたもので、データ転送能力を確保するためのベクトルレジスタの構成、指定がない限り無制限に命令の先行並列実行を行なう為に、プログラムで陽にデータの従属関係を指定することが出来る機能の導入、データフロー解析にもとづく逐次実行制御方式の工夫、また、メモリアクセスの多重並列実行に伴って必要となったアドレス変換と割り込み処理の工夫などについて述べている。更に、本方式では、命令書き換えを禁止しているが、この制限を導入することによってハードウエアの著しい簡単化に成功したこと、また、それによって殆んどのプログラムでは影響を受けないことを述べている。

 第6章「ベクトル命令の制御とその実装」は、筆者が主となって開発したベクトルプロセッサシステムFACOM VP-200を例に取ってその構成を詳しく述べている。すなわち、ベクトルプロセッサは、主にスカラ演算とシステム全体の制御を行なうスカラユニットと、ベクトル命令を実行するベクトルユニットとからなり、スカラユニットは命令を読み出した後、それがスカラ命令であれば自らの演算器で実行し、ベクトル命令であればベクトルユニットに命令を送出する。ベクトルユニットは、スカラユニット配下での一つの命令ストリームを受理するが、ベクトル命令に関しては自らの制御で多重命令の同時並列実行を行なう。

 第7章「総合性能評価式」は、本研究で提案したベクトルアーキテクチャを、その実装システムVP-200システムを用いて評価したものである。まず、ベクトル化可能性の拡張については、実応用を分析した結果、合計194ループの内、VP-200でベクトル化可能になったのは134ループ、比較の為に用いたCRAY X-MPでは111となり、本方式の拡張の有効性が確認されている。また、多くのプログラムを実行させた結果、自動ベクトル化コンパイラの寄与によって、通常の率直な科学技術プログラムならばスカラ性能比5倍、非常にベクトル化に向いたプログラムで多少のチューニングを実行すれば、スカラ性能比20倍の性能が出ることを示している。

 第8章は、「結言」である。

 以上、これを要するに本論文は、第二世代ベクトルプロセッサの問題点を分析し、その性能を著しく向上させるための手法を検討することによって、新しい第三世代ベクトルプロセッサのアーキテクチャを提案するとともに、実マシンVP-200を実装し評価することによってその速度向上を具体的に示したもので、情報工学上貢献する所少なくない。

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

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