見込みのありそうな研究方向

新しいメモリアーキテクチャに関しては、DRAMメモリのアーキテクチャを見直すのは効果がありそうな分野である。発展途上にあるNVM(Non Volatile Memory:不揮発性メモリ)を使い、ハイブリッドのメモリシステムを構成したり、メモリとストレージを融合させるアプローチも効果が得られそうな研究分野である。

QoS(Quality of Service)の分野では故障を予測するシステムの設計も効果が得られそうな分野である。

図6.9 DRAM構造の見直し、発展途上のNVMテクノロジの利用、システムレベルのメモリとストレージのQoSの改善などは見込みのある分野

行クローンでブロックコピーの性能と消費エネルギーを改善

メモリのアーキテクチャの改善の例としては、メモリ内でのブロック転送のハードウェアサポートが候補である。現在のDRAMで普通に4KBのデータをコピーしようとすると、一旦、CPUに読み込んでから、それをメモリの別のところに書き込むことになり、時間は1046nsかかり、3.6μJのエネルギーを消費する。

図6.10 現在のDRAMでメモリの行のコピーを行うと、1046nsの時間と3.6μJのエネルギーが必要

これを、DRAMに行クローンという機能を持たせると、メモリアレイから1行を読み出し、それを別の行に書き込む(1回で4KBに足りない場合は、これを繰り返す)ことで、チップ外にデータを取り出すことなく、コピーができてしまう。

そして、このようにすると、時間は90nsで、消費エネルギーは0.04μJとなり、大幅な改善が得られる

図6.11 DRAMに行クローン機能を持たせると、時間は90ns、エネルギーは0.04μJとなり、大幅な改善が得られる

これを図示したものが図6.12である。4本の棒グラフの左端は通常のDRAM、それ以外の3本の棒グラフは行クローンのハードウェアを持つケースである。そして、2番目の棒グラフが同一サブアレイ内の行クローンのケース、次は異なるバンク間、右端は異なるサブアレイ間の行クローンのケースを示している。

同一サブアレイの行クローンの場合は時間が1/11.6、エネルギーは1/74と大幅な改善が得られる。一方、行クローンが異なるバンク間のケースや異なるサブアレイ間のケースでは改善は小さくなるが、それでもメリットはある。

図6.12 行クローンによるコピーのレーテンシと消費エネルギー。左端は通常のDRAM、その右は同一サブアレイ内の行クローン、次は異なるバンク間、右端は異なるサブアレイ間の行クローンのケース

図6.13は6種のアプリケーションに対して、行クローンハードウェアの付加でどれだけアプリケーション性能が上がるかと消費エネルギーが減るかを示すもので、mcachedの4%からforkbenchの43%の範囲の性能向上、エネルギー低減ではmcachedの15%からshellの67%という大きな改善が得られている。

図6.13 行クローンハードウェアによる実アプリケーションの性能向上と消費エネルギーの低減

ニアメモリのアクセラレータの候補

行クローンは本来DRAMが持っている機能に若干の追加を行った程度で実現できるが、システムレベルで、より高度な処理を行うハードウェアを付加するアプローチもある。図6.14ではメモリ本体の前に専用の処理機能を持つブロックを追加している。

図6.14 メモリにアクセラレータを付けるニアデータ処理

例えば、図6.15のように、メモリに格納されているデータをサーチするエンジンを付ける。プロセサからは、どのようなデータを探すかという問い合わせベクタを貰い、その条件に一致するデータをメモリに格納されたデータベースから見つける。

このような機能のアクセラレータハードウェアはそれほど複雑ではないと思われるが、どのようなメモリインタフェースにすれば良いか、アクセラレータにどのような機能を持たせれば良いか、メモリはなにを使うべきかなどを考える必要があるという。

図6.15 メモリにサーチエンジンを付け、プロセサからのサーチベクタに一致するデータをサーチする

また、図6.16に示すように、DRAM内部でのビット演算、キャッシュコヒーレンシ関係のサポート、仮想記憶関係のサポートなどが考えられるという。

図6.16 インメモリ処理の候補