今回は、NANDフラッシュメモリ登場後のメモリ・アーキテクチャを見ていきながら、「CPUのメモリに対する要求」を考えていく。
国際会議「IEDM」のショートコースで英国ARM ReserchのエンジニアRob Aitken氏が、「System Requirements for Memories(システムがメモリに要望する事柄)」と題して講演した内容を紹介するシリーズの第4回である。
前回からは、講演の第2パートである「CPUのメモリに対する要求」の概要をご報告している。前回は、CPUアーキテクチャの変遷を振り返るとともに、NANDフラッシュメモリが登場する以前のメモリ・アーキテクチャを説明した。
既に述べたように、CPUを搭載したシステムのメモリ・アーキテクチャは、正三角形あるいはピラミッド形をした図形と、水平な階層を垂直方向に積み重ねた構造で説明することが多い。NANDフラッシュメモリが発明されて普及する以前は、ピラミッド図形の頂点(最も高速なメモリ)から底辺(最も記憶容量の大きなメモリ)に向かって、「レジスタ」「キャッシュ」「主記憶」「仮想記憶(ストレージ)」の階層でメモリシステムを構成していた。
NANDフラッシュメモリの発明と普及によってSSD(Solid State Drive)に代表されるフラッシュ・ストレージが登場し、急速に進化していった。SSDの記憶容量は急激に増大し、記憶容量当たりの単価は急激に低下した。その結果、メモリ・アーキテクチャのピラミッド図形には、新しい階層が加わった。「主記憶」と「仮想メモリ」の間に、SSDやUSBメモリなどのフラッシュ・ストレージによる「固体メモリ(Solid State Memory)」の階層が入り始めた。これが現在のメモリ階層である。
現在のメモリ・アーキテクチャは大きく、2つの世界に分かれている。1つは「揮発性(Volatile)」メモリの世界であり、もう1つは「不揮発性(Non-Volatile)」メモリの世界である。
揮発性メモリとは、電源をオフにすると記憶内容が消えてしまう性質のメモリを指す。メモリ・アーキテクチャのピラミッドでは上部に位置する。「レジスタ」から「主記憶」までの階層だ。CPUがバイト単位で直にアクセス可能なメモリの階層でもある。
不揮発性メモリとは、電源をオフにしても記憶内容が維持される性質のメモリを指す。メモリ・アーキテクチャのピラミッドでは下部の位置する。具体的には、「固体メモリ」と「仮想メモリ」の階層が相当する。
固体メモリと仮想メモリの階層は、CPUが直にアクセスできない。またアクセス単位はバイト単位ではなく、もっと大きな「ブロック」と呼ぶ単位になる。例えば仮想メモリのデバイスであるHDDは、512バイトを1個のブロックとして扱う。
固体メモリと仮想メモリでデータのやりとりを制御するのは、入出力コントローラである。まずCPUと入出力コントローラが通信し、次に入出力コントローラがメモリにデータを書き込んだり、メモリからデータを読み出したりする。CPUから見ると、データへのアクセスは間接的になる。
Copyright © ITmedia, Inc. All Rights Reserved.