メインメモリとストレージの中間的な役割を果たす「ストレージクラスメモリ」(SCM)。メモリやストレージとどう違い、どう使えるのだろうか。
アプリケーションはその種類によってはメモリやストレージに対して、かつてないほど高度な要求をするようになっている。これを受けてメモリやストレージのIOPS(1秒当たりのデータ読み書き回数)を高め、レイテンシ(遅延)を減らす革新的な技術を導入する必要性が高まっている。
有望な技術が「ストレージクラスメモリ」(SCM)だ。SCMはコンピュータのメインメモリとして使用される「DRAM」(Dynamic Random Access Memory)並みにデータの読み書き速度が高い。DRAMは電源を失うとデータも失うが、SCMは「SSD」(ソリッドステートドライブ)が搭載するフラッシュメモリのように、電源を切ってもデータを保持できる不揮発性メモリだ。
SCMはメインメモリとストレージの中間的な役割を果たす。「永続メモリ」(Persistent Memory)と呼ばれることもある。最上位にCPUがある階層構造の中で各メモリを位置付ける場合、メインメモリは上位にあり、ストレージは下位にある。SCMはその間に位置する。階層構造上は上位に位置する方がCPUに近い。
DRAMと同様、SCMはバイト単位でデータにアクセスできる。NAND型フラッシュメモリのようにブロック(データを記録する最小単位である「メモリセル」をまとめた塊)単位でデータにアクセスすることもできる。DRAMとNAND型フラッシュメモリの両方の特徴を持つことから、わずかなレイテンシしか許容できないアプリケーションをはじめ、さまざまな用途での利用が期待できる。
SCMを利用すると、メインメモリとストレージ間で転送するデータ量が減り、アプリケーションの動作が高速化する。大量のデータを処理しなければならないアプリケーションでは特にその利点が生きる。
メインメモリには容量を効率的に使うための「ページング」や「スワッピング」という仕組みがある。ページングとは、あらかじめメモリ領域とアプリケーションのプログラムを固定長の「ページ」単位で区切り、メインメモリとストレージに効率良く配置することだ。スワッピングは、プログラムを一時的に停止して使用中のメインメモリの内容をストレージに退避させたり(スワップアウト)、退避させた内容をプログラム実行時にメインメモリに戻したり(スワップイン)することを指す。これらの仕組みを機能させる際、SCMをセカンダリーメモリ(補助メモリ)として利用すると、アプリケーションの動作を高速化できる可能性がある。
一般的にSCMは、メインメモリやストレージを代替するのではなく補助するメモリだと考えられている。SCMをDRAMの代替として使える可能性もあるが、処理速度はDRAMに及ばないだろう。再起動の際にシステムをできるだけ早く立ち上げることには役立つと考えられる。
SCMは、現在はNAND型フラッシュメモリを使用することが一般的であるSSDのデータ読み書き速度を高速化する技術としても期待できる。SSDにSCMのみを使う構成、またはNAND型フラッシュメモリとのハイブリッド構成にすることで、アプリケーションの動作を高速化できるだろう。オールフラッシュストレージのキャッシュメモリとしてSCMを使う選択肢もある。
どのような使い方であれ、SCMがメインメモリとストレージの中間に位置する技術であることを軸にしている。コストで見ればSCMはDRAMよりも安上がりだ。AI(人工知能)技術を使ったデータ分析、ハイパフォーマンスコンピューティング(HPC)、リアルタイム性が必要なトランザクション処理など、大量のデータを扱い、かつ低レイテンシが求められる用途に適している。
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
AppleとMetaの戦い――AR・ウェアラブル領域で、勝つのはどっち?
Metaは年次イベント「Meta Connect 2024」において最新のARグラス「Orion」のプロトタイ...
2024夏アニメの人気維持率 「負けヒロインが多すぎる!」の特異な動き
ブシロードのグループ会社であるゲームビズは「アニメビジネスインサイト『データで見る2...
約8割の人が経験する「見づらいホームページ」 最も多い理由は?
NEXERはくまwebと共同で「見づらいホームページ」に関するアンケートを実施した。