@phdthesis{oai:uec.repo.nii.ac.jp:00008531, author = {城田, 祐介 and Shirota, Yusuke}, month = {2017-04-24}, note = {2016, 近年、アプリケーションの処理するデータの大規模化に伴い、大規模データを効率良くプロセッサに供給することが可能なメモリシステムを持つコンピュータシステムの高性能化および省電力化の重要性が高まっている。単一プロセッサの処理性能には限界があるため、大規模データを処理するためには高速ネットワークで複数のプロセッサを結合しクラスタリングしていくことが必要になり、その過程でコンピュータシステム内の様々なレベルにメモリが複雑に階層化される。大規模データ処理を高速に実行可能なコンピュータシステムを目指すには、メモリの階層構造に対してプログラムを適応させるためのソフトウェアによる制御方式が鍵となる。  一方で、実用化が期待されているMRAM(Magnetoresistive Random Access Memory)やPCM(Phase-Change Memory)あるいはReRAM(Resistive Random Access Memory)などのストレージクラスメモリ(Storage-class Memory)と呼ばれるこれまでと異なるアクセスレイテンシや性能特性を持つ新型高速不揮発メモリによりメモリ階層も大きく変化し、コンピュータシステムを飛躍的に高性能化・低消費電力化できる可能性がある。そのため、巨大メモリ搭載大規模サーバシステムだけでなく超低消費電力が要求される省電力組込みシステムなどの幅広いコンピュータシステムにおいてメモリ階層の変化に適応するソフトウェア技法も必要になる。  しかし、複数のプロセッサのクラスタリングやストレージクラスメモリの実用化によって性能や消費電力の観点で複雑化するメモリ階層を効率良く制御しコンピュータシステムのハードウェア性能を引き出すためのプログラミングには、メモリアーキテクチャの深い知識と高度なプログラミング技術を要求する。このような作業をすべてのアプリケーション開発者に要求するのは現実的ではなく、システムソフトウェアで自動化し解決すべきである。  本研究はこのような背景を踏まえて、メモリ階層制御により高性能化・低消費電力化を実現するプログラムの開発生産性向上の達成をシステムソフトウェアにより実現することが主題である。この主題に対して本研究が狙うのは、つぎに列挙する4つのシステムソフトウェアを導入しメモリ階層制御を自動化することでアプリケーションのプログラム開発の容易性を向上させたうえでハードウェアの持つポテンシャルに近い性能を引き出すことである。 1) 高位プログラム変換により対象メモリアーキテクチャに適合した並列プログラムが生成可能な配列処理言語によるプログラミングシステム:  高性能サーバなどの単一計算ノードあるいは組込みシステムにおいて、プロセッサの性能を引き出すために必要になるメモリアクセス最適化やマルチスレッド化やベクトル化などの並列プログラミングには、対象メモリアーキテクチャに関する深い理解とそれを活かすプログラミング技法が要求される。しかし、ソフトウェア開発の中でもアルゴリズム開発を主に行っているアプリケーション開発者にとって並列プログラミングは開発の本質ではなく、メモリやプロセッサのアーキテクチャの深い知識を持たなくても対象アーキテクチャを活かした並列プログラムを開発可能なプログラミングシステムが必要である。そこで本研究では、配列処理に特化した配列処理言語を用いてアルゴリズムレベルで記述可能なプログラミングシステムを提案している。配列処理プログラムに明示されるアルゴリズムレベル情報を利用した高位プログラム変換によりアルゴリズムレベル記述から階層メモリに適合する並列プログラムが自動生成でき、開発の生産性を高めることができることを示す。 2) 階層メモリを持つ計算機クラスタ向けの一貫性管理方式を組み込んだ高性能ソフトウェア分散共有メモリシステム:  単一計算ノードを高速ネットワークで複数接続したハイパフォーマンスコンピューティング向けの計算機クラスタシステムや複数の計算機クラスタシステムを繋げたマルチクラスタシステムなどの階層的な分散メモリを持つ高性能コンピュータシステムにおいては、並列プログラムの作成に分散メモリ型並列プログラミングモデルであるメッセージパッシング方式が多く用いられるが、分散メモリ間の通信を明示的に記述する必要がありプログラミングが容易ではない。この問題を解決する方法として分散メモリ上に仮想的な共有メモリを実現するソフトウェア分散共有メモリ方式があるが、従来型のデータ一貫性制御方式はメモリ階層を意識した設計になっておらずそのままマルチクラスタシステムに適用すると、要素クラスタ間通信遅延等により性能が低下する。そこで本研究では、メモリ階層に適合したデータ一貫性制御方式を提案し、プログラミングしやすさと高性能を同時達成できることを示す。 3) 大容量新型不揮発メモリを活用した階層型主記憶を実現する省電力仮想記憶システム:  次世代の高性能コンピュータシステムにおけるインメモリ処理で要求されている低消費電力でかつスケーラブルな主記憶を実現するためには、大容量のストレージクラスメモリとDRAMの特性が異なる2つのメモリを組み合わせ階層制御する必要がある。2つのメモリをアプリケーション開発者に陽に見せるとこれらをどのように使い分けるかを開発者に強いることになりプログラミングが複雑になる。そこで本研究では、ストレージクラスメモリ向けにOSの仮想記憶システムを再設計することで大容量なストレージクラスメモリをDRAMと混載し、待機消費電力が小さいストレージクラスメモリの特性を活かしてDRAM上のデータを積極的にストレージクラスメモリに退避して、使用するDRAMサイズを削減するとともに未使用DRAMの電源をオフすることで動作時の消費電力を削減する。仮想記憶システムでDRAMとストレージクラスメモリ間のデータの入れ替え処理であるスワップ処理を効率良くおこなうことで、アプリケーション開発者には大容量な主記憶があるように見せることができるためインメモリデータ処理向けのプログラミングをシンプルにすることが可能になることを示す。 4) 不揮発メモリ搭載端末の不揮発ディスプレイ書換処理省電力スケジューラ:  組込み機器特有の課題であるディスプレイを有する組込みシステムの省電力化を実現する。現在のタブレット型端末はDRAMが主記憶として利用されているが、ストレージクラスメモリが実用化されると、待機消費電力が非常に小さい超低消費電力タブレット型端末が実現可能になってくる。ただし主記憶が不揮発でもディスプレイがLCD(液晶ディスプレイ)などの従来型揮発性ディスプレイの場合頻繁なリフレッシュが必要となるため、リフレッシュ処理を実行するディスプレイコントローラが利用する主記憶を電源オフすることができない。そこで本研究では、ディスプレイを有する組込みシステムの省電力化を、不揮発メモリと不揮発ディスプレイである電子ペーパを組み合わせることで実現する。低消費電力を実現するための省電力メモリ制御機能を組み込んだ電子ペーパコントローラ向けデバイスドライバを提案する。不揮発メモリと省電力ディスプレイの省電力性を引き出すためには、DRAMとLCDを利用したこれまでとは異なる複雑なデバイス制御が必要となるが、提案方式により従来型のプログラミング方式を変えずに省電力実行可能なことを示す。  本研究の貢献は、コンピュータシステムにおける本質的な課題である効率的なメモリ階層制御の実現についてその解決方式をメモリ階層の様々なポイントで示した点である。本研究成果は、ストレージクラスメモリの実用化によりメモリ階層が大きく変化しメモリシステムがプロセッサに替わって中心になる次世代コンピュータアーキテクチャとそのシステムソフトウェアが取り組むべき課題とその解決方法の方向性を示すものとして意義がある。}, school = {電気通信大学}, title = {メモリ階層制御により高性能・低消費電力を実現するプログラムの開発の生産性を高めるシステムソフトウェアに関する研究}, year = {}, yomi = {シロタ, ユウスケ} }