学位論文要旨



No 121655
著者(漢字) 藤田,元信
著者(英字)
著者(カナ) フジタ,モトノブ
標題(和) ソフトウェア可制御メモリ向け最適化コンパイラの研究
標題(洋)
報告番号 121655
報告番号 甲21655
学位授与日 2006.03.23
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第80号
研究科 情報理工学系研究科
専攻 システム情報学専攻
論文審査委員 主査: 東京大学 助教授 中村,宏
 東京大学 教授 嵯峨山,茂樹
 東京大学 教授 南谷,崇
 東京大学 講師 小室,孝
 筑波大学 教授 佐藤,三久
内容要旨 要旨を表示する

近年、半導体集積技術の進歩に伴うプロセスの微細化に加え、命令レベル並列性の活用技術の進歩によりマイクロプロセッサの性能は大幅に向上している。一方で、主記憶に用いられるDRAMのアクセス速度向上は相対的に緩やかであり、マイクロプロセッサと主記憶の速度性能差は年々拡大する傾向にある。結果として、計算システム全体の性能は、メモリシステムの性能によって制限されている。マイクロプロセッサが持つ演算性能を十分に発揮させるためには、できるだけ記憶システムへのアクセスをチップ上に留め、主記憶へのアクセスを減らすことが重要である。従来、マイクロプロセッサと主記憶の間にキャッシュメモリを導入することで、この問題の解決が図られてきた。キャッシュメモリは時間的局所性・空間的局所性に基づくデータの再利用を可能とする。しかし、キャッシュメモリではハードウェアが暗黙的にデータ配置と入れ替えの制御を行い、転送粒度も固定であるため、プログラムの性質に応じた柔軟なデータ転送はできない。

一方、近年のマイクロプロセッサの性能向上に伴い、消費電力も増大する傾向にある。モバイルコンピュータのバッテリ駆動時間の延長への要求はもちろんのこと、高性能計算機においても、消費電力の増大は発熱の増加を伴い、冷却やマイクロプロセッサのパッケージングのコストを増大させるため、消費電力の削減はあらゆる計算システムにとって重要な課題である。消費電力は、トランジスタのスイッチング動作に起因するダイナミック消費電力と、スイッチング動作によらずトランジスタに常に流れるリーク電流に起因するスタティック消費電力の二つからなる。特に後者はプロセス技術の進歩に伴い飛躍的に増大しており、今後マイクロプロセッサの消費電力においてスタティック消費電力が支配的になると予測されている。キャッシュメモリやスクラッチパッドメモリをはじめとしたチップ上記憶はプロセッサチップを構成するトランジスタ数の多くを占める。スタティック消費電力はトランジスタ数に比例するため、チップ上記憶のスタティック消費電力の削減が特に重要である。チップ上記憶のスタティック消費電力を削減するためには、チップ上記憶のうち不要なデータを格納している部分の電源を制御し、リーク電流が少ないモードに遷移させることが有効である。しかし、データの配置をハードウェアにより暗黙的に行っているキャッシュメモリでは、不要なデータが格納されている部分を特定できない。制御する対象を投機的に選択せざるをえないため、予測に失敗した場合には性能や消費電力の損失を避けられない。

これらの問題はすべて、データの配置や入れ替えがハードウェアのみにより暗黙的に制御されていることに起因している。そこで本論文では、データの入れ替えと配置をソフトウェアから制御できるソフトウェア可制御メモリSCM (Software Controlled Memory)を導入し、これを用いた高性能化、低消費電力化を目指す。本論文では、ソフトウェア可制御メモリをチップ上に搭載したアーキテクチャのひとつであるSCIMA (Software Controlled Integrated Memory Architecture)を例として取り上げる。SCIMAでは、SCMと主記憶の間のデータ転送は専用命令によって行われ、データ転送の粒度は可変である。

しかし、ソフトウェア制御可能なオンチップメモリを用いてデータ転送を最適化するためには、従来のキャッシュでは自動的に行われていたデータ配置や入れ替え、転送のスケジューリングをプログラマが行わなければならず、アプリケーションの最適化に伴うユーザの負荷が問題となる。そこで本論文ではまず、より多くのアプリケーションが、ソフトウェア可制御メモリの恩恵を享受できるようにするため、自動最適化コンパイラの一つのアプローチとして、"ヒント情報に基づく自動最適化コンパイラ"を提案した。本論文で提案するコンパイラでは、ソフトウェア制御メモリの制御方法やパラメータ等のアーキテクチャをユーザが意識することなく、最適化対象ループと、最適化対象配列データの再利用性の有無というアプリケーションに関する情報のみをヒント情報として与えるだけで、ソフトウェア可制御メモリを用いた最適化を可能にする。評価の結果、提案手法によりユーザの負荷を大幅に減らせること、従来の方法で最適化したものと同等の性能が得られることがわかった。

今後、チップ上記憶のスタティック消費電力の削減が重要になると予測されている。この問題についても、ソフトウェア可制御メモリの利用は有効である。データの配置をソフトウェアから制御できないキャッシュメモリとは異なり、ソフトウェア可制御メモリでは、将来的にアクセスされる領域とアクセスされない領域を完全に特定できる。したがって、ソフトウェア可制御メモリでは、アクセスされない領域をリーク電流が少ないモード(Sleepモード)に切り替えておくことで、従来のキャッシュよりも効率的にスタティック消費電力を削減できる。そこで本論文では、ソフトウェア可制御メモリの特徴を生かしたスタティック消費電力削減手法を提案した。スタティック消費電力削減手法は、Sleepモードを実現するための回路技術と、その回路技術を用いスタティック消費電力を削減する戦略からなる。リーク電流削減回路技術については、これまでにキャッシュメモリのリーク電流削減のために、様々な技術が提案されている。ソフトウェア可制御オンチップメモリは、ハードウェアとしてはキャッシュと同様のSRAMアレイであるため、キャッシュメモリ向けに提案されている回路技術はソフトウェア可制御メモリに対しても、そのまま、あるいはわずかな改変で適用できると考えられる。リーク電流削減回路技術は、Sleepモードに遷移させたときにもデータを保持し続けるState-Preservingに分類される手法と、データを保持しない代わりに、より高いリーク電流削減率を達成するNon-State-Preservingに分類される手法の二つに分けられる。ソフトウェア可制御メモリでは、必要のないデータを保持する領域を確実に判別できるため、Sleepモードにおいてデータを保持し続ける必要がない。したがって、ソフトウェア可制御メモリ向けのリーク電流削減回路技術としてはNon-State-Preservingに分類される技術が適していると考えられる。本論文ではそれらの中からGated-Vddと呼ばれる回路技術の一部を変更したリーク電流削減機構を提案した。一方、スタティック消費電力の削減戦略としては、SCMと主記憶間のデータ転送命令がソースコード上に記述されることを利用し、ソースコード上のSCM領域確保・解放に連動してモードの遷移を行う方法を提案した。評価により、SCIMAでは利用するSCMのサイズによって性能と消費電力のトレードオフはあるものの、従来のキャッシュに比べて、スタティック消費エネルギーを効率的に削減できることがわかった。

プロセッサの消費エネルギーはダイナミック消費エネルギーとスタティック消費エネルギーからなる。ソフトウェア可制御メモリを搭載したプロセッサでは、これらは両方ともソフトウェア可制御メモリの利用率に依存しており、全く独立に最小化することはできない。したがって、プロセッサ消費エネルギーを最小化するためには、ダイナミック消費エネルギー、スタティック消費エネルギーの関係を考慮に入れソフトウェア可制御メモリの利用率を決める必要がある。加えて、スタティック消費電力の原因であるリーク電流のうち、最も多くを占めるサブスレッショルドリーク電流は、温度に指数的に依存することが知られている。そのため、最適なソフトウェア可制御メモリの利用率はプロセッサチップの温度によって異なる。

プロセッサチップの温度は、プログラム実行前にあらかじめ知ることはできない。そこで、本研究では、プロセッサ全体の消費エネルギー最適化を目的として、プログラム実行中にプロセッサチップ温度に応じて、動的にソフトウェア可制御メモリの利用率を最適化する手法を提案した。提案手法では、コンパイル時に温度と消費エネルギーの対応表を生成しておき、プログラム実行時に、プロセッサチップ温度を監視しながら、その温度において最も消費エネルギーの少ないSCM利用率に切り替えながら実行を進めることで消費エネルギーを削減する。評価により、温度の影響を考慮しないでSCMの利用率を決定した場合に比べ、温度に応じてSCMの利用率を変更することで、プロセッサ全体の消費エネルギーを削減できることがわかった。

本論文では、マイクロプロセッサと主記憶の性能格差の拡大、チップ上記憶におけるスタティック消費電力の増大を背景として、ソフトウェア可制御メモリを用いた性能最適化、消費電力最適化手法を提案した。本研究を通じて、提案するコンパイル手法はソフトウェア可制御メモリを用いた性能向上にとっても、消費電力の削減にとっても有効であることがわかった。

審査要旨 要旨を表示する

半導体集積度の向上によりコンピュータシステムの性能は向上してきたが、その一方で、メモリシステムが隘路となりコンピュータシステムの高性能化を阻害し、また消費電力の増大を招いている問題が指摘されている。本論文は、ソフトウェア可制御メモリを搭載したアーキテクチャを対象とし、コンパイラによる最適化により上記問題を解決する最適化手法の提案とその有効性を実証したもので、「ソフトウェア可制御メモリ向け最適化コンパイラの研究」と題し、7章より構成されている。

第1章は「はじめに」であり、近年顕在化しているプロセッサと主記憶の性能格差の現状とその背景、この問題を解決する手段として現在用いられているハードウェア制御のキャッシュメモリの問題点を整理し、ソフトウェア可制御メモリがこの問題解決に有効であることを示している。もう一方の問題である消費電力増大に関しても、現在と今後の半導体技術の進展状況を示し、今後は消費電力の中でもスタティック消費電力が大きな問題であること、この問題に対してソフトウェア可制御メモリが有効であることを述べている。一方で、ソフトウェア可制御メモリを導入し、プログラム作成者の負担を増やすことなく高性能化と低消費電力化を達成するためにはコンパイラによる最適化が必要であることを述べている。さらに、本論文で提案するコンパイル最適化手法を適用できる対象アーキテクチャの要件を明らかにしている。

第2章では、本論文で提案する最適化コンパイラを適用可能なアーキテクチャの一例としてSCIMA (Software Controlled Integrated Memory Architecture)を取り上げ、そのアーキテクチャの特徴、主記憶とのデータ転送について詳説している。まず、本アーキテクチャが性能向上および消費電力削減を達成する原理について述べ、従来のキャッシュ向けの手法と対比して、ソフトウェア可制御メモリの利点を性能面、消費電力面から整理している。

第3章は、「コンパイラによる性能最適化」と題し、提案手法である、「ヒント情報に基づく最適化」について述べている。従来、手動で行われていたSCIMA向け最適化の問題点を示し、自動最適化コンパイラの必要性について示し、最適化の補助情報として、「ヒント情報」をソースプログラム中に記述するのみで、自動的に最適化を行う枠組みについて述べている。その上で、アーキテクチャの特色をふまえたソフトウェア可制御メモリ利用の最適化戦略を整理し、この最適化戦略とソースコート中に挿入されたヒント情報をもとに、プログラムを最適化するアルゴリズムを明らかにしている。

第4章は、「コンパイラによる消費エネルギー最適化」と題し、特にソフトウェア可制御メモリのスタティック消費電力に着目し、これを削減するための機構について述べ、さらに、スタティック消費エネルギーを最適化する戦略について述べている。まず、スタティック消費電力の原因であるリーク電流を削減する回路技術としてgated-Vddに着目し、この技術をソフトウェア可制御メモリに適用するための機構を提案している。さらに、ソフトウェア可制御メモリの利用率が、性能と消費電力の両方に影響を与えることを示し、消費エネルギー最小化を目的とした場合のソフトウェア可制御メモリの利用率の決定方法を提示した。また、リーク電流はコンパイル時にはあらかじめ予測できない温度にも左右されるため、プログラム実行中に温度に応じてソフトウェア可制御メモリの利用率を動的に変えることで消費エネルギーを最小化する手法も提案している。

第5章は、「評価」と題し、本論文で提案する性能最適化手法、消費エネルギー最適化手法の評価を行っている。まず評価条件を明示しその根拠を示している。つぎに、性能評価の結果を示し、提案するコンパイル手法により、従来の手動最適化と同様の性能が得られると共に、プログラム作成者の負担が軽減されていることを明らかにしている。さらに、消費エネルギーの評価結果を示し、提案手法が従来のキャッシュメモリを用いた場合に比べスタティック消費エネルギーを効率的に削減できることも明らかにしている。また、プログラム実行中に温度に応じてスタティック消費エネルギーを低減する手法が有効であり、その有効性が今後の半導体微細化によってさらに増すことを示している。

第6章は、「関連研究」であり、本論文の関連研究が示されている。性能向上に関する関連研究として、ソフトウェア可制御メモリの利用法に関する研究はこれまでにいくつかあるが、本論文が提案する手法は、再利用性がない配列または再利用性がある配列のいずれに対しても、扱うデータの再利用性に応じてソフトウェア可制御メモリの利用法を柔軟に変更可能である点、およびヒント情報を導入することでデータの再利用性に応じた最適化をプログラム作成者の負担を増加することなく実現している点が特徴である。また、消費エネルギー削減に関する関連研究として、キャッシュメモリを対象とする手法に触れ、データ配置を把握できるソフトウェア可制御メモリにおける最適化手法の優位性を述べている。

第7章は「結論」であり、本論文のまとめが述べられている。

以上要するに、本論文は、ソフトウェア可制御メモリを対象として、性能と消費エネルギーを最適化するコンパイル手法を提案しその有効性を示しており、これによりコンピュータシステムのさらなる高性能化と低消費電力化を実現する方法論を提示したものであって、システム情報学の発展に寄与すること大であると認められる。

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

UTokyo Repositoryリンク