電気がなくてもデータは消えない、メモリ技術の最新事情「ムーアの法則」を超える新世代コンピューティングの鼓動(2/3 ページ)

» 2016年12月02日 08時00分 公開

データの読み書き

 このようにメインメモリと外部記憶の間では、頻繁にデータの移動が行われます。このデータの移動に多くのCPUリソースや電気を使用しますし、DRAMは定期的にリフレッシュをすることもあって、メインメモリにデータを保持しているだけでも電気が使用されます。

 そこで前回ご紹介した「ユニバーサルメモリー」の考え方が出てきます。電源が失われても、データを損失しないメモリであって、その容量単価がDRAMより圧倒的に安ければ、記憶領域の階層化を排除できます。ここで重要なのは、メインメモリと同様に扱うことです。いくらアクセスが速くても、外部記憶装置へのアクセスには上記のような機構があります。このような機構は多くの条件分岐を伴います。同期する速度が速くてもさまざまな判断が内部ロジックに存在すると、効率的に速度を高められません。

 このことはデータベースでも同様です。データベースにもバッファキャッシュが存在しますが、大容量のメインメモリ全てをバッファキャッシュに割り当てるのと、インメモリデータベースではどちらが速いでしょうか。答えは明らかで、速くならないなら、わざわざインメモリ機構にする必要はありません。インメモリデータベースは、最終的にはデータを必ず外部記憶装置に書き出しますが、データがキャッシュ上にあるか外部記憶上にあるかを判断しませんので、読み書きの機構が単純化されます。

 また、ものによっては同時実行制御も別の方法を使用します。ロックやラッチといった排他制御は遅い外部記憶装置に元データがあることを想定した方法です。排他制御がないことで、どのようにデータの整合性を保つのか疑問に思う方がいるかもしれませんが、その場合は情報工学の基礎を学ばれるとよいでしょう。

 少し話題がそれましたが、アクセスが速くて不揮発なメモリがあっても、外部記憶として扱う限りその恩恵は限定的であり、ユニバーサルメモリーが有効になるのです。

 具体的に下の図で説明しましょう。従来のデータフォーマットは、データベースに書き込みを行う命令を発行すると、まずCPUキャッシュに変更がかかり、それがメインメモリ上のデータベースバッファキャッシュに反映されます。そしてファイルシステムのキャッシュを経由し、最終的にディスクのセクタに書き込まれます。これが不揮発メモリをメインメモリと同様に扱うことでより、図の右側のように単純化することができます。多くの手続きを省くことができるようになるのです。

次世代コンピューティング 従来のデータ構造とユニバーサルメモリーの違い

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ