第1回の連載では、フラッシュメモリ自体の構造と進化について解説を行いました。そして今回は、フラッシュメモリをコンピュータに利用する際の構成や、CPUに使われるキャッシュとの違いについて紹介します。

>>仮想化専用フラッシュ・ストレージTintri<<

まずはメモリがどのようにコンピュータの中で利用されているのか、構造の違いによる使い分け、接続するバスの進化について解説しましょう。

コンピュータにおけるフラッシュメモリ

コンピュータの構成は、おもに演算を行うCPUとプログラムを展開するためのメモリ、それにプログラムやデータを保存するストレージによって構成されています。また、CPUと他のデバイスを接続するための経路となる各種のバスや、個別の処理を行うコントローラなどが存在します。イーサーネットを接続するネットワークカードやノートPCであれば、Wi-Fi接続を行うデバイス、高速なディスプレイ描画を行うグラフィックプロセッサもこれらのバスの先に接続されます。

PCの用途を考えるとき、「このCPUだと3Dゲームはキツイかな」、「メモリを増やさないとPhotoshopが動かない」といったような話をしますが、それほどにCPU自体の速さとメモリ容量はコンピュータの性能を左右する存在です。ただ、CPUだけが高速でも全体のシステムは高速にはなりません。

プログラムやデータを保存するストレージや、メモリとCPUのデータの読み書き速度がシステム全体の性能に大きく影響します。そのため、プログラムやデータの転送を高速化するために、CPUとメモリの間にSRAM(Static Random Access Memory)を用いたキャッシュメモリを置きます。キャッシュメモリとは、CPUからアクセスを行う際によく使われるデータをCPU内部で一時的に格納する場所で、CPUに近いものから1次キャッシュ、2次キャッシュ…… と順に配置されます。たとえば、最新インテルのサーバ向けCPUであるXeon (Broadwellアーキテクチャー)は、CPUコアあたり、1次キャッシュが64KB、2次キャッシュが256KB、3次キャッシュが2.5MBのメモリを装備しています。容量の大きいキャッシュで、CPUの速度にデータの読み書きが遅れないよう配慮しているのです。

プログラムやデータを保持するメモリ自体も進化しており、現時点では、DDR4 SDRAMという規格で高速なアクセスを可能にするメモリモジュールが開発されています。これらのメモリとして用いられるのがDRAM(Dynamic Random Access Memory)です。DRAMは揮発性メモリのため、電力を供給し続けなければメモリの中のデータを維持できません。そのため、ストレージのようにデータを永続的に保存するデバイスとしては利用されず、主にメモリやキャッシュとして使われてきました。

このDRAMを複数枚のチップとして基板上に配置し、メインメモリとして活用できるようにしたのが、DIMM(Dual Inline Memory Module)と呼ばれる製品です。同じ容量のDIMMと不揮発性メモリであるNANDフラッシュを実装し、電源が無くなった際、DIMMの内容を即座にNANDフラッシュ側に退避してリカバリを行うシステムの開発が行われるなど、メモリとストレージの役割を互いに補完するような、NVDIMMという製品もでてきています。

おもにストレージとして使用されるのはハードディスクドライブです。今でも多くのコンピュータおよびサーバに使われています。2016年現在、10TBの容量を持つHDDが出荷され、ギガバイト単価も数円程度になり、大容量低価格化が進められています。次に、HDDの進化をたどりながら、フラッシュメモリをストレージに使用するに至った経緯について見ていきましょう。

HDDの進化とフラッシュメモリ「ストレージ」

CPUとメモリの次はストレージの高速化が求められるようになり、フラッシュメモリを使ったストレージのニーズがでてきました。1950年代にIBMメインフレームの記憶装置として登場した当時のHDDは、大型冷蔵庫2台分の大きさにも関わらず4.8MBの容量しかなかったそうです。それが年々進化を遂げ、容量と速度を大幅に向上させました。数年前まで、ディスクの円盤部分であるプラッタのサイズは3.5インチが主流でしたが、現在では2.5インチが主流となり、サイズの変化とともに小型化・省電力化が進んでいます。容量に関しても、すでに1TBが主流となっており、一般消費者向けではギガバイト単価も数円というレベルまで低価格化が進んでいます。

またHDDをアクセスするためのバスについては、パラレル伝送(並列伝送)を行っていたIDE(Integrated Drive Electronics、パラレルATAとも呼ばれる)から、より高速なシリアル伝送(直列伝送)を行うSATA(Serial ATA)に進化しています。パラレル伝送を行うバスとしては、SCSI(Small Computer System Interface)というインタフェースがかつて存在しました。ワークステーションなどといったハイエンドなハードウェアにおいて、HDDを接続するためのインタフェースとして広く利用されてきましたが、CPUの高速化にともないパラレル伝送方式よりシリアル伝送方式の方が評価されるようになり、現時点ではSATAがデスクトップPCやサーバにおいてもスタンダードになっています。

SCSIもSAS(Serial Attached SCSI)としてシリアル化され、進化しています。なお、最新の規格であるSAS-3では転送速度は12Gbps,SATA3.0では転送速度は6Gbpsとなっており、SATA3.0で接続された大容量HDDには、デバイスの中にキャッシュメモリを組み込んでいる製品が多くあります。またM.2のように、SATAの進化形としてマザーボードに配置する小型の拡張カード型メモリも開発され、小型化が要求されるタブレットや2in1 PCのような小型コンピュータへの採用が進んでいます。

このようにHDDの容量が大きくなり、バスの進化とともにアクセススピードも速くなりましたが、ストレージのスピードを求める声は近年さらに高まっています。高速であることと同時に、低価格な製品が今のクラウドコンピューティングの時代に求められているのです。そこで登場したのが、フラッシュメモリを用いた大容量のストレージです。

HDDに接続するインタフェースとして、SASやSATAの高速な転送速度は、HDDの回転速度の制限により高速なアクセスは望めませんでした。しかし、高速なアクセスが可能であるNANDメモリを使ったフラッシュメモリをストレージとして接続することで、高いIOPS(1秒あたりのストレージへの入出力回数)が期待できます。

さらにフラッシュメモリ向けのより高速なインタフェース、NVMe(Non-Volatile Memory Express)も既に実用化されており、高速なPCIe(PCI Express)バスに接続され、2.5インチ形状のU.2(SFF-8639)規格や前述のM.2, PCIeスロットに直接NANDフラッシュメモリが載ったAIC(Add In Card)などのタイプがあります。

フラッシュメモリを使ったストレージは、SSDやフラッシュSSDなどと呼ばれ、コンピュータ内のHDDを置換するかたちで導入が進んできました。NANDフラッシュメモリはその加工の柔軟性から、多様な形状と規格、性能と容量帯で普及が進んでいます。ストレージの有力ベンダーであるEMCは、2016年を“フラッシュメモリストレージ元年”と名づけ、これからのストレージがオールフラッシュに移行していくことを宣言しています。生産効率が良くなり、集積度も高くなったことで、かつてはHDDの数十倍と言われていたギガバイト単位の価格差もひと桁程度に縮まりました。また省電力・省スペース・少ない発熱量などの特長が、数多くのサーバやストレージを必要とするデータセンターに評価され、サーバー仮想化を発展させたSDDC(Software Defined Data Center)を中心として今後さらに導入が進むと予想されています。

>>仮想化専用フラッシュ・ストレージTintri 詳細資料はこちら<<

[PR]提供:Tintri