2011年12月15日木曜日

マルチ CPU 時代のメモリアーキテクチャ

【IEDM 2011レポート】IBMの最終兵器「レーストラック・メモリ」が登場
http://pc.watch.impress.co.jp/docs/news/event/20111215_498859.html

レーストラックメモリの発表に関する記事なのだが、興味深いのは発表の導入部で行われたメモリアーキテクチャに関する説明だ。
既存のコンピュータ・アーキテクチャはCPUがまず存在し、CPUがキャッシュ、DRAM(主記憶)、SSD(外部記憶)、HDD(外部記憶)といったさまざまなメモリをCPUがアクセスするようにできている。これはシングル(単一)のCPUが演算処理を引き受けている時代には適切なアーキテクチャだった。
しかし数多くのCPUが演算処理を分担するマルチCPUになると、このメモリアーキテクチャでは大量のデータを移動させる頻度が急速に増大し、メモリとCPUの間のデータ転送が完了するまでの遅延時間が無視できないほど長くなる。その結果、CPUを増やしても演算処理性能があまり上がらなくなってしまう。
ここまでで異論のある人は、そうはいないだろう。
そこでマルチCPUのコンピュータではストレージ・クラスの巨大なメモリを中心に配置し、数多くのCPUがこのストレージ・クラス・メモリにアクセスするアーキテクチャが望ましいと説明した。
なるほど、と納得しかけてしまうところだが、ストレージクラスの巨大なメモリともなると、CPUを中心に置こうが、メモリを中心に置こうが、CPUとメモリの組み合わせ全てにおいて、物理的な距離(要はレイテンシ)を等しくすることは不可能だと思われる。たとえレーストラックメモリを導入してメモリを高密度化したとしてもである。したがって、CPU中心のアーキテクチャにおいて、演算器のできるだけ近くにデータを配置するように制御することでデータ移動に必要な時間を節約していたのと同様、メモリ中心のアーキテクチャにおいても、データの存在するメモリからできるだけ近くの演算器を使って処理を行うような制御を行わなければならないはずである。

もともとロジックの固まりであるCPUであれば、そのような制御を行う機能を追加することは比較的容易なのかもしれないが、メモリの側にそういう制御を行う機能を追加することはかなり難しいように思われる。もちろん、IBMの研究者はそんなことは百も承知で、何らかの解決策を考えているのだろうが、いったいどのような方法なのか、ぜひとも聞いてみたいものである。

0 件のコメント:

コメントを投稿