後藤弘茂のWeekly海外ニュース

64bit版Windows普及の遅れがフラッシュメモリの浸透を促す




●キャッシュになるDRAMとテープになるHDD

 PCのメモリ&ストレージ階層の役割が変わりつつある。DRAMメインメモリはディスクキャッシュ的な役割に変わりつつあり、HDDは光学ディスクや磁気テープの位置に近づきつつある。そして、その中間でフラッシュメモリなどの不揮発性メモリ(NVM:Non-Volatile Memory)がディスクの役割を担う可能性が出てきている。

 この変化をもう少し詳しく説明すると次のようになる。以前は、ランダムアクセスの速いDRAMメインメモリが、プログラムの実行メモリだった。そして、ある程度のランダムアクセス性能と高速なシーケンシャルアクセス性能を持つHDDが、データとプログラムのファイルを格納するディスクドライブ。シーケンシャルアクセスはいいがランダムアクセスが遅いテープや光学ドライブが、大容量のデータを格納する外部ストレージだった。

 しかし、今後のPCのメモリ&ストレージ階層では、微妙に役割が異なって来る。プログラムを実質的に実行するメモリ領域は、大容量化したCPUのオンチップキャッシュSRAMになりつつある。プログラムの多くが、実質的にキャッシュに収まってしまうからだ。ランダムアクセス性能の高いDRAMメインメモリは、依然として実行メモリという位置づけではあるものの、CPUから相対的に遠くなった。そのため、言葉としては矛盾するが、役割としてはキャッシュSRAMに対する大容量キャッシュ的な色彩を強めつつある。一方、シーケンシャルアクセスに対してランダムアクセス性能が伸び悩んだHDDは、かつてのテープや光学ドライブに寄った位置に段々と後退しつつある。

 そのため、Microsoftは、DRAMメインメモリとHDDの間に、新たに不揮発性メモリ(NVM)をメモリ階層として挟み込みたいと考えている。理想的には、ランダムアクセスがそこそこ速く、DRAMより容量単価がぐっと安い、新たなディスクとしての特性が不揮発性メモリには期待されている。メモリ階層の中で、ぽっかりと空いたギャップを埋めるわけだ。しかし、現実のNANDフラッシュメモリは、その目的に完全に合致するわけではない。そのため、ハイブリッド化したSSD(Solid State Drive)ソリューションや、新しい不揮発性メモリの開発などが進んでいる。

メモリレーンの進化
※別ウィンドウで開きます

●容量>帯域>レイテンシの順番で伸びるHDD

 MicrosoftやIntelはメモリ階層を深めようとしている。その理由は、現在のメモリ階層のままでは、今後、PCのパフォーマンス向上を維持できないためだ。

 Microsoftによると、その理由は、(1)CPUパフォーマンスと、ストレージのI/Oパフォーマンスギャップの拡大、(2)ストレージ側のシーケンシャルアクセスとランダムアクセスのパフォーマンスギャップの拡大、(3)クライアントWindowsの64-bit化の遅れ、などにあるという。

ストレージの巨大化と要望
※別ウィンドウで開きます

 HDDの容量は、過去10年間の平均で見ると、ムーアの法則を超えるペースで伸びて来ていた。ところが、転送レートの伸びは、ディスク容量の伸びについて行けていない。例えると、コンサートホールは大きくしたのに、そこに客を入れる入り口は、席数の伸びに見合うほど広くなっていない状況だ。そのため、ホールをいっぱいにできるだけの客を出し入れするのに、より時間がかかるようになってしまった。

 さらに、帯域の伸びに対して、レイテンシの短縮ははるかに遅れを取っている。つまり、エントランスからホールまでのルートは短縮されていない。そのため、客にとっては、会場が大きくなっても、便利さは変わらない。

高速化への制約
※別ウィンドウで開きます

 このように、HDDの各要素の伸びは「容量>帯域>レイテンシ」という状態になっている。そのため、CPUパフォーマンスと、HDDストレージのI/Oパフォーマンスのギャップはどんどん拡大している。下はIntelがIntel Developer Forum(IDF) 07 Springで示したCPUとHDDのパフォーマンスの伸び率のギャップだ。HDDのレイテンシがあまり改善されていないため、ディスクのランダムアクセス性能の指標であるIOPS(I/O per Second)は、過去10年間でもわずかしか伸びていない。それに対してCPUは半導体製品なので、プロセス技術が進歩すると、ムーアの法則の指数関数的なカーブに沿って、どんどんパフォーマンスがアップする。機械製品であるHDDに大きな差をつけることになった。

CPUおよびHDD高速化の比較図
※別ウィンドウで開きます

 IOPSは一定の単位のI/Oアクセスの処理能力であるため、データを転送するために必要な平均アクセス時間とデータ転送時間の合計に反比例する。HDDの場合は、データへのアクセスのためにはヘッドを物理的に動かす、物理的な制約があり短縮が難しい。唯一の解決策はドライブに搭載するキャッシュメモリの量を増やすことだけだ。

レイテンシに支配される転送速度の典型例
※別ウィンドウで開きます

 こうしてみると、HDDはシーケンシャルにデータアクセスする場合には依然として高速だが、ランダムアクセスではCPUから見た場合に相対的に低速になりつつあることがわかる。つまり、テープや光学ディスクのような、ランダムアクセスが低速なストレージデバイスに、より近づきつつあるという。

●64ビットOSの普及の遅れがフラッシュの導入を促した

 こうした事情から、PCは、CPUから遠くなる一方のHDDとのギャップを埋めるために、より多くのデータとプログラムを、もっとアクセスしやすい、CPUから見て近いメモリに持ってくる必要に駆られている。従来は、この役目はDRAMのメインメモリが負っていた。しかし、今回は状況が違っている。

 まず、DRAMの大容量化は以前と比べるとペースが落ちている。数年前までは3年で4倍(1.5年で2倍)だったのが、現状は3年で2倍だ。また、ソフトウェア側にもDRAMメインメモリを増やし続けることが難しい事情がある。そこにDRAMよりもコスト的にいいソリューションとしてNANDが出てきた。

 Microsoftでストレージアーキテクチャを担当するVlad Sadovsky氏(Software Storage Architect, Microsoft)が、7月に開催されたメモリとストレージのカンファレンス「MEMCON07 San Jose」でそのあたりの事情を語った。Sadovsky氏によると、MicrosoftがWindows Vistaでフラッシュメモリをサポートした大きな理由の1つは、Windowsプラットフォームの64-bit化の遅れにあるという。

 本来的には、OSの64-bit化がすんなり進めば、DRAMメインメモリの搭載量を増やしてパフォーマンスを向上させることも可能だった。メインメモリDRAMの量を増やし続けることができれば、低速なストレージからメインメモリに必要なデータを先読みすることでパフォーマンスを上げ続けることができる。

 しかし、クライアントPCでは、ユーザーのOSの主流は依然として32-bit版に留まっている。そのため、クライアントPCでのDRAMの搭載量を、これまでのように一定のペースで上げて行くことが難しい。Microsoftは、クライアントOSは、まだしばらくは32-bitに留まると予測しているようだ。

 これはDRAMベンダーにとってバッドニュースだが、CPUメーカーにとっても頭の痛い問題だ。メモリ搭載量が行き詰まったままでは、CPUからより遠くなったHDDへのアクセスが相対的に増大して行き、PCのパフォーマンスが頭打ちになる可能性が出てくるからだ。そのため、DRAMとHDDの間に、中間層の大容量キャッシュ(HDD内のキャッシュDRAMより大容量のキャッシュ)を導入しなければならなくなる、というのがMicrosoftの基本的な考え方だ。

●不揮発性メモリを階層に挟むのは自然な流れ

 そのタイミングで、NANDフラッシュメモリが大容量化&低価格化して来たことがMicrosoftの新戦略の原動力となったことは間違いがない。NANDは1年に約2倍のペースで大容量化を続けており、3年で4倍から2年に2倍のペースにまで落ちたDRAMを大きく超えている。大容量化が進むことで、NANDの容量当たりのコストは、2002年頃にDRAMを下回るようになり、MicrosoftがWindows Vistaでフラッシュをサポートする時には1/5程度になった。

メモリ技術の動き
※別ウィンドウで開きます

NANDフラッシュの価格推移
※別ウィンドウで開きます

 容量当たりのコストを考えると、DRAMより有利なメモリを、HDDとDRAMの間に挟もうとするのは、自然な流れとも言える。また不揮発性のフラッシュでは、揮発性のDRAMではできない使い方(ブート時の高速化など)ができる。

 こうして、Microsoftのストレージ部門の描く構想を見ると、PCの構成の仕切り直しに近い、メモリ構成の転換を考えていることがわかる。理想のシナリオの通りに行くなら、今後のPCは、DRAMメインメモリの容量増加は止まるが、その下により安価な不揮発性メモリでキャッシュし、TBクラスのHDDとの補間をすることになる。DRAMメインメモリの容量拡大に費やして来たコストを、不揮発性メモリの搭載に費やすと言い換えてもいい。

 また、データの構造も、そうした階層が適した形へと変化している。ディスク上のデータは、頻繁に読み書きされるホットな小部分と、連続的なアクセスが時たま行なわれるだけのコールドな大部分に分離しつつあるからだ。Microsoftによると、5%のデータが60%のIOアクセスを占めているという。この5%をキャッシュすれば、IOアクセスは劇的に改善されることになる。

 HDD自体も、帯域以上に容量が増大したため、よりコールドなデバイスとなりつつある。単位容量当たりのIOPSは減っており、ディスク平均で見るとアクセスの密度が減っている。

 こうした構造にあるため、ホットスポットをキャッシュすることで、アプリケーションを高速化するチャンスが大きくなっている。もちろん、大きなストリームデータでは意味がないが、そうしたデータはシーケンシャルなアクセスになるので、HDDの弱点は露出しない。

●不揮発性メモリの思想と現実のずれ

 ただし、上に挙げた不揮発性メモリを挟んだメモリ階層のストーリは、理想的なケースの話で、現実にはそうは行かない面もある。

 不揮発性メモリ(NVM)には、多くの謳い文句がある。低レイテンシのアクセスが可能で、容量当たりのコストはHDDよりは高いが、DRAMより低い。IOPS当たりのコストはHDDより低い。そのため、一定のランダムワークロードに対するシステムコストを下げることができる。

 また、現在のシステムで最大の問題である消費電力も低く、HDDと比べると故障率が低いためTCOも下げられる。パフォーマンスカーブがスムースで予測しやすい。これはサーバーでの利用での利点となる。

Solid state storageの信頼性
※別ウィンドウで開きます

 しかし、現実のNANDフラッシュは、こうした理想の不揮発性メモリのシナリオに合致しない部分がある。最大の問題は書き込み性能、特に、ランダム書き込みが遅いことにあるとMicrosoftのSadovsky氏は指摘する。また、書き込み可能回数やデータ保持期間の制約があることも大きな壁だ。これは、原則としてほぼ無制限に書き換えができるHDDやDRAMとの決定的な違いだ。コストも3.5インチHDDと比べると相対的にかなり高いが、これはあとしばらく改善が続く見込みだ。より根本的な問題としては、インターフェイスが標準化されておらず、メモリのアーキテクチャ自体も、今回、NANDが興隆して来たように比較的短いサイクルで入れ替わる可能性があることが挙げられる。

未到達の領域
※別ウィンドウで開きます

 まとめると、PCのメモリ&ストレージの階層の中で、ディスクストレージはどんどんCPUから遠くなっている。それを埋めるために、メモリ階層を深くしようという要求が増えており、不揮発性メモリ(NVM)を挟む構想が本格化している。そこに、急速に大容量化したNANDフラッシュメモリが浮上してきた。

 しかし、NANDは、理想の不揮発性メモリとしては不足する部分があり、使い方はかなり制約される。性能面では、CPUからのアクセス時間で見た場合、DRAMとHDDの間を埋めるには、NANDは遠すぎることが壁となっている。現状でも、HDDより有利ではあるものの、理想的には、もっとずっと高速で、CPUにより近いメモリが望まれている。

●容量面では有利なMLC NANDの不利をカバー

 NANDフラッシュをPCメモリ階層に挟む場合、基本的にはリードインテンシブな使い方では性能を発揮できるが、ランダムライトインテンシブになると効果が薄い。Microsoftも、それを理解した上での使い方をしている。

 また、こうした制約は、NANDの中でも、1個のメモリセルに2値のデータを保持する「MLC(マルチレベルセル)」型の方がきつい。1個のメモリセルに1ビットを保持する「SLC(シングルレベルセル)」型の方が、書き込みは高速で、書き込み可能回数なども10倍以上長い。特に、ランダムライトはMLCの方がぐっと不利になるため、ディスク代替として使うにはきつい。

1.8インチHDDを読み書き速度で上回るSSD
※別ウィンドウで開きます

読み書き速度および耐久性に対するbitあたりのコストとの比較
※別ウィンドウで開きます

 ところが、チップ当たりのデータ容量ではMLCの方がSLCより断然有利となる。SLCと同容量を約60%のチップ面積で実現できるからだ。そのため、同じ容量ならSLCの方がMLCよりも割高になる。

 コストを考えると、MLCの方がストレージでは魅力が大きいが、パフォーマンスと信頼性を考えるとSLCがいいというトレードオフがある。SSDのほとんどがSLCを使っているのには、そうした理由がある。しかし、SLCからMLCへは、この1年で急速な転換が始まっており、今後は、容量面での利点を増そうとすると、コスト的にはMLCを使わざるをえない。

MLCとSLCの価格差の変遷
※別ウィンドウで開きます

 そのため、現実解としては、NANDフラッシュ、特にMLCの弱点をカバーする必要が出ている。中間解で、パフォーマンス面では、SLCとMLCをSSDレベルあるいはチップレベルで混載するハイブリッド化がある。書き換えが頻発するホットデータはSLC上に配置し、読み出し主体のデータはMLC上に配置することで、パフォーマンスと容量の両方を実現する。同様に、DRAMをMLCと組み合わせる解もある。

 一方、書き換え可能回数については、「Wear-Leveling」をコントローラレベルで取り入れる方向にある。通常のユーセージでは、ディスク上の同じ場所を頻繁に書き換える可能性が高い。その場合、フラッシュでは、特定のメモリセルだけが書き換え可能回数の限界に達してしまう可能性がある。Wear-Levelingでは、データの書き換えが、メモリセルアレイ全体に均一に分散するように制御する。

 MobileMarkのユーセージシナリオでは、データの書き換え量は1日当たり4.8GB。これを均一化すると、16GBのSSDなら全体を書き換えるまでに3.34日かかる。書き換え可能回数が1万回のMLCであっても、100年近く保つ計算となる。

●メモリ業界の聖杯はDRAM並の不揮発性メモリ

 こういったあたりが現在の解だが、より先の展開を見ると、もっと多くのさまざまな解が想定できる。

 まず、NANDよりも性能の高い不揮発性メモリは、以前から模索されている。例えば、「Phase Change Memory(PCM)」のような、新興の不揮発性メモリをMLC NANDとハイブリッド化する。あるいは、新興不揮発性メモリがNANDに対抗できる容量を持つようになるなら、NANDの代わりにそのメモリを持ってくる。ちなみに、NANDフラッシュも、数年後にはフローティングゲート構造の限界を迎えて、メモリセルアーキテクチャの転換が必要となり、特性が変化すると見られている。

 もっと根本的に、システム全体のメモリ階層を変えることも考えられる。例えば、DRAMはCPUにダイスタッキングで貼り合わせ、パッケージの外のメモリは不揮発性メモリに変えてしまう。この場合は、DRAMとポート数を増やして、CPUとDRAMの距離を近くしてキャッシュSRAMの量を抑える。DRAMメモリ容量は制約されるが、その分、大容量の不揮発性メモリでキャッシュする。イメージとしては、L2/L3とDRAMの部分を融合させて、ディスクからのキャッシュに使っているDRAMの部分は不揮発性メモリと融合させる、といった形になる。

 その先には、DRAMの代替に不揮発性メモリを持ってくる可能性もある。不揮発性メモリを実行メモリとして使うわけだ。これは、携帯電話などでのNOR型フラッシュメモリの使い方と同じになる。その場合は、インターフェイスはDRAMだが、メモリセルは不揮発性メモリといったアプローチも考えられる。

 メモリ業界には“聖杯”、つまり、求め続けている究極の技術がある。それは、DRAM並の不揮発性メモリだ。DRAM並のアクセス性能、信頼性、コスト、容量を実現できる不揮発性メモリを求めている。それが実現すれば、DRAMの代替に不揮発性メモリを持ってくることもできる。あるいは、DRAMが行き詰まれば、不揮発性メモリが追いつく可能性もある。

聖杯(=究極の技術)を求めて
※別ウィンドウで開きます

 そうなると、チューリングマシンの思考実験のように、実行メモリとストレージの区別のない、地続きのメモリも可能になる。すると、ストレージ上のファイルを、メモリ上で展開して実行するといった、現行のアーキテクチャもなくなるかもしれない。ただし、それは実現するとしても、かなり先の話になるだろう。

□関連記事
【9月4日】【海外】PCのメモリ階層の変革を展望するMicrosoftとIntel
http://pc.watch.impress.co.jp/docs/2007/0904/kaigai383.htm
【8月10日】【海外】6.4Gbpsを狙う次々世代メモリ「NGM Diff」
http://pc.watch.impress.co.jp/docs/2007/0810/kaigai380.htm
【8月7日】【海外】岐路にさしかかるDDR3モジュール
http://pc.watch.impress.co.jp/docs/2007/0807/kaigai379.htm
【8月6日】【海外】3.2Gbpsを狙う次々世代メモリ「DDR4」
http://pc.watch.impress.co.jp/docs/2007/0806/kaigai378.htm

バックナンバー

(2007年9月10日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.