myAlteraアカウントへログイン

myAlteraユーザーネーム、パスワードを忘れた場合

myAlteraアカウントをお持ちでない方

フラッシュが革命を引き起こす

今、2つの技術変化の潮流がデータセンターまで押し寄せ、従来の考え方を一掃しながら、大きく変化したソフトウェア、メモリー、およびストレージ・アーキテクチャーを残そうとしています。ニューラル・ネットワークのほぼ未開拓の領域から湧き上がる一方の流れは、アプリケーションのデータアクセス方法を変えようとしています。そして、半導体物理学の深淵から溢れ出るもう一方の流れは、メモリーとストレージの間の境界線を消滅させようとしています。これらの流れが相まってデータセンターを根本から変え、その変化はエンベデッド・システムにも直接流れ込むはずです。

無限でフラット

コンピューティングの始まり以来、アプリケーションは作業用データとファイル、メモリーと大容量ストレージといった根本的な区別を認識しなければなりませんでした。ビッグデータ・プラットフォームである Hadoop のような比較的最近のコードもこの境界に慎重に配慮しており、各サーバーの DRAM とディスクスペースの管理に取り組んでいます。しかし、それは最新のプログラミング言語の世界観ではありません。

JavaまたはPythonプログラムにとっての世界とは、すべてメインメモリー内に暗黙的に常駐したオブジェクトの無尽蔵のプールです(図 1)。限られた DRAM、低速なディスクドライブ、旧来のインターコネクト方式といった物理的現実は、使用すべき機能ではなく透明化すべき課題なのです。現在は Hadoop Map/Reduce に代わって、オブジェクト格納用 DRAM の本質的に無限のプールを備えた Spark が登場しています。

図 1. アプリケーションが必要としているのが大容量でフラットなメモリーであるのに対し、アプリケーションに与えられるものはヘテロジニアスなメモリーストレージ階層

 us-systemdesign-journal-nand-application

この移行を促したのはワークロードの変化でした。主要なデータセンター・アプリが Web 検索であった頃は Map/Reduce で問題ありませんでした。タスクは、巨大なデータセットに対して 1 つのクエリーを実行したら終わりで、データのページがディスクからメモリーに流れ、ランキングがディスクに戻るだけだったからです。しかし、連続して何度も同じデータセットを繰り返し読み直すことができるディープラーニングや、広く分散したアクセスが集中的に生じることがあるグラフ解析のような新しいアプリケーションは、90 % の時間をディスクの待ち時間に費やしていることもあります。そのため、メモリー常駐オブジェクトストアに移行すれば、実行時間の大幅な改善が可能になります。

変化しているもう 1 つの側面はデータの易変性です。従来の IT データベースは常に変更されるものと考えられていますが、実際にはほぼ完全に不変であることも少なくありません。Web クローラーは原理上、ページデータを継続的に更新しますが、日々の変化はデータセット全体のごく一部です。ソーシャルメディア人脈のグラフは日々ほとんど変化しないかもしれません。ニューラル・ネットワーク・モデルは、トレーニング後はまったく変化しません。IoT(モノのインターネット)ネットワークによる巨大データセットは絶えず増大するかもしれませんが、既存データが変更されるのではなく新しいデータが追加されるだけです。最も重要な新規データセットの多くは、完全に、あるいはほとんど不変です。

NVM にとっての好機

大容量メモリーの必要性とデータセットの不変性の高まりというこれら 2 つの変化と同時に、半導体業界の現実の世界では未曾有の変化の流れが進んでいます。相変化メモリーや抵抗メモリーのような新しいストレージメカニズムがついに生産段階を迎え、アクセス時間および集積度の飛躍的向上がもたらされようとしています。また、SF 映画に登場する都市の景観に似たそびえ立つ垂直構造を用いた 3D NAND フラッシュは、ムーアの法則がそろそろ崩壊するのではと見る人々による速度および集積度の予測を覆そうとしています。表面上、これらの変化は Spark が必要としているもの、つまり大容量の高速ローカルメモリーのように聞こえます。

チップレベルでは確かに目覚ましい進歩です。しかも、従来のスケーリングが横ばいになろうとしているときに実現しようとしています。今年の Flash Memory Summit において、Western Digital 社エグゼクティブ VP の Siva Sivaram 氏は「15 nm では、プレーナー型 NAND フローティング・ゲートは約 15 個の電子しか蓄積できません」と述べています。電子を数えることができるほど小さい電荷ではわずかなエラーも許されません。特に、マルチレベル・フラッシュが行わなければならないメモリーセル上の 4 つの電荷レベルの区別を試みようとしている場合はなおさらです。フラッシュ設計者はさらなるスケーリングをあきらめるか、一定量のチップ「不動産」に実装するフローティング・ゲート数を増やす方法を見つけるしかありませんでした。

この制約から逃れるために、NAND 設計者はまさに不動産開発業者が行ってきたことを行いました。それは「縦に伸ばす」ことです。3D NAND チップは、プレーナー型フローティング・ゲート・トランジスターを使用する代わりに上方に伸びています。フローティング・ゲート構造は円筒形のタワーの周りに巻き付けられ、ペグに刺したベーグルのように積み重ねられ、制御線と信号線の密なマルチレイヤー・ネットワークに巻き込まれています。今年、いくつかのベンダーは、高さがフローティング・ゲート 64 個分のこうしたタワーの製造に成功したことを発表しました。Samsung 社が Flash Memory Summit において、ピーク転送レートが 800 Mbps の 512 Gb ダイを発表できたのはそのためです。

これで垂直成長が終わりというわけではありません。SK Hynix 社の KW Jin 氏は、技術進歩は18 カ月続き、高さが 100 セルを超えると予測していますが、「200 セルのスタックを達成するにはブレークスルーが必要」と述べました。

3D NAND チップは、ソリッドステート・ドライブに組み込むことで恐るべき数字を生み出します。Samsung 社エグゼクティブ VP の Jaeheon Jeong 氏は、NVMe インターフェイスを備えた 1 TB シングル BGA パッケージを開発中とした上で、SAS インターフェイスを備えた 32 TB SSD を発表しました。さらに、32 枚の NAND カードを 1U ラックスロットに収容し、PCI Express® (PCI®) Gen4 を介して 12 GBps で転送可能な、現在の M.2 カードに代わる製品を Facebook が検討中であることを明らかにしました。

ギャップを埋める

3D NAND は、最新版でさえも依然として DRAM の速度およびレイテンシーに遠く及びません。このギャップを埋めるために、インテルと Micron 社は昨年、3D XPoint メモリーを発表しました。この未公表のトランジスターレス・セル技術は、現在のところ 64 層 NAND の 1/4 程度の集積度でありながら、ダイレベルでのレイテンシーを 1/1000 に短縮するとされており、集積度および性能の点で DRAM と 3D NAND のちょうど中間に位置します。

Micron 社アドバンスト・アーキテクチャー担当ディレクターの Stefanie Woodbury 氏は、Flash Memory Summit において、そうした数字がシステムレベルの性能にどうつながるかを示し、「SSD レベルでは、従来の NAND SSD の 10 倍の IOPS と 1/10 の応答時間を達成するところまで来ています」と述べました。

それに対し、Samsung 社は同社が Q-NAND と呼ぶライバル製品についてわかりやすいヒントを示しました。Jeong 氏は、「Q-NAND は、PRAM(相変化メモリー。3D Xpoint の背景にあると考えられている技術)より高速で、しかも低消費電力です。今年中には 1 TB デバイスが登場する予定です」と断言しました。しかし、NAND と呼んでいるという明確なポイント以外、関連技術については言及しませんでした。

悪材料

これらの進歩は、フラットで大容量の物理メモリーに対するソフトウェアの要求を満たすもののように聞こえますが、実際には複雑な問題が数多くあります。

まずはアクセス・レイテンシーと帯域幅の両方の点での速度です。NAND は、特に平均レイテンシーにおいてディスクドライブよりはるかに高速です。しかし、最新の 3D NAND チップでさえも DRAM には太刀打ちできません。CAS レイテンシー、つまり読み出しコマンドを受信してから最初の有効なデータが DRAM ピンに現れるまでの遅延は約 15 ns です。NAND フラッシュのレイテンシーはその 1,000 倍に及ぶことがあり、しかもコントローラーがトランザクションに介入しなければならないモジュール・レベルではさらに長くなります。転送レートでも同様の格差があります。そのため、読み出し性能だけを見ても、NAND フラッシュをメインメモリーとして使用するだけでは、キャッシュヒット率をよほど高くするか、待ち時間の間に非常に深いスレッドを実行するようにしない限り、アプリケーションの性能を低下させることになります。

しかし、読み出し速度は大した問題ではありません。NAND フラッシュブロックの消去と書き込み(NAND チップはこれらの操作を一度に 1 ブロックずつ行う必要があります)は、読み出しよりはるかに低速で、そのタイミングは広範囲にわたって変化する可能性があります。さらに、ブロックの確実な消去と書き込みが可能な回数は DRAM に比べてごくわずかであり、約 1,000 サイクルから高集積デバイスでも 2 万サイクル程度です。また、その範囲内の上限側で耐久性が必要な場合、速度やエラーレートなどが犠牲になります。

こうした現実を見ると、NAND フラッシュはメモリーというよりむしろ、高価な高性能ディスクのようなストレージメディアなのかと思われるかもしれません。そのため、実用的なものにするにはコントローラーやドライバー・ソフトウェアが必要です。言うまでもなく、まさにそれがほとんどの SSD ベンダーにおける NAND の使用方法であり、コントローラーの背後にフラッシュチップの大規模アレイを配置しています。コントローラーは、レイテンシーを短縮するために読み出しをキャッシュするものもあります。また、大きな書き込みレイテンシーを隠し、フラッシュの物理ブロックの消去/書き込みを行わなければならない回数を最小限に抑えるために書き込みをポストします。さらに、故障セルやランダムエラーの影響を最小限に抑えるために強力な誤り訂正コードを使用します。そして、故障ビットが多すぎるブロックを回避したり、損耗を均一にしたりするためにアドレスをリマップします。

一見したところ、まったく異なる不揮発性技術に切り替えても、これらの現実から解放されるわけではなさそうです。インテルと Micron 社のいずれも 3D XPoint メモリーのデバイスレベルの詳細な特性を公開していません。しかし、Micron 社の Woodbury 氏は Flash Memory Summit の講演の中で、コントローラーとファームウェアが 3D XPoint SSD の性能にとって非常に重要であると言及しました。

さらに、SSD の明らかな利用方法として、ディスクドライブのエミューレーターが考えられます。NAND フラッシュダイとコントローラー・ダイを搭載したモジュールを、サーバーカード上のディスク実装部分にドロップインし、カードの SATA ポートに接続することができます。あるいは、フラッシュチップとコントローラーのトレイで RAID のようなディスクアレイをエミュレートし、キャビネット全体に対応することも可能です。

しかし、エミュレーションを廃し、使用可能な最速のバス(ほとんどのカードではおそらく PCIe)上で、不揮発性メモリーに最適化されたプロトコル(おそらく NVMe)で SSD と通信することが徐々に受け入れられています。試験ラボである Calypso Systems 社の公開データによると、このアプローチはデータセンター環境において SATA あるいはSAS 接続の 3 ~ 5 倍の性能を実現することが可能です。

さらにもう 1 つの可能性があります。適切なコントローラーがあれば、SSD をサーバーカード上のメモリーチャネルに直接置き、はるかに広帯域幅かつ低レイテンシーのアクセスを可能にすることができます。慎重に設計すれば、かなり多くのフラッシュとコントローラー・ダイを従来の DIMM フォーマットに収め、DDR メモリーチャネルに接続することも可能です。それが、いくつかの「フレーバー」がある NVDIMM の背景にある考え方です。NVDIMM はサイズが小さいため容量が非常に限られており、トレイサイズの SSD が最大数十テラバイトであるのに比べ、数十ギガバイト程度です。しかし、フラッシュチップと DDR バスの間に DRAM を備えた NVDIMM-N カード(フラッシュチップを電源障害時のバックアップとして使用するだけで実質的には DRAM カード)は、IOPS について、エンタープライズクラスの NVMe SSD の 10 倍の 総合的性能を実現できます。SSD を DRAM バッファーなしでメモリーチャネルに接続する NVDIMM-F カードも同様に広帯域幅ですが、レイテンシーは長くなります。

NVDIMM-N カードはもう 1 つの重要な特徴を備えています。それは、NVMe プロトコルでコマンドを送信するのではなく、メモリーとして扱ったりディスクとして扱えることです。そこで興味深い可能性が浮かび上がります。ストレージとして不揮発性メモリーとやりとりするのではなく、データセンター全体の不揮発性メモリー間でリモート・ダイレクト・メモリー・アクセス(RDMA)を実行できるとしたらどうなるでしょうか。DRAM および NV メモリーの多数の独立したプールを、データセンターのイーサネットと RoCE(RDMA over Converged Ethernet)プロトコルによって結合することが可能になります。

現在、そのソフトウェアの夢に近づきつつあります。CPU やアクセラレーター上のキャッシュにとって、この膨大なメモリーとメモリーのようなデバイスの集合は、単一かつフラットなメモリースペースのように見えるはずです。巨大なデータセットも完全にメモリーに常駐させることができます。ただ、データセンター内での物理ページの位置によってレイテンシーが変化するだけです。最悪の場合でも、RoCE のレイテンシーはコールドストレージ・ディスクのレイテンシーよりはるかに短くなります。

新たなアイデア

これは 3 つの新たなアイデアをもたらし、いずれもデータセンターをさらに混乱させる可能性があります。1 つは前述の分散メモリー・アーキテクチャーの論理的産物で、他の 2 つは Flash Memory Summit で取り上げられた関連概念です。

まずは論理的産物です。分散アーキテクチャー内のメモリーのプールは、データセンターのコンバージド・イーサネットを介した RDMA トランザクションによって 1 つの巨大な仮想メモリーにまとめられます。一部のデータセンター、特に Microsoft 社の Azure センターは、このネットワークのエッジにあるネットワーク・インターフェイス・カード(NIC)へのハードウェア・アクセラレーターの利用を模索しています。その結果、実質的に巨大でフラットなメモリー内に、プログラマブル・ハードウェア(Azure の場合は FPGA)が置かれます。

従来のネットワークまたはストレージ・トランザクションの場合、こうしたいわゆる Smart NIC の用途は明らかです。データがネットワーク・インターフェイスを介してキャッシュとの間で移動する際の圧縮/伸張または暗号化/復号アルゴリズムの実装に使用することができます。しかし、メモリーに組み込まれた汎用プロセッサーとしての Smart NIC の意味合いはあまり研究されていません。例えば、データが CPU に向かって永続メモリーからキャッシュに入る際、Smart NIC 内のハードウェア・プリプロセッサーを通過するようにアプリケーションを構成することができれば、CPU から多くの処理をオフロードし、時間、エネルギー、DRAM、およびキャッシュスペースを節約することが可能です。

Flash Memory Summit では、NGD Systems 社(旧 NxGn Data 社)という企業がこのアイデアについて別の解釈を示しました。同社はエンベデッド・プロセッシング機能を備えた 6 TB 150k IOPS SSD について説明しました。同社 CEO の Nadar Salessi 氏は、「検索、正規表現処理、Map/Reduce、または Spark タスクを SSD 内部で実行するのが狙いです」と説明しました。当然、プログラミング・モデルが重要な課題です。Salessi 氏は、タスクを従来のようにコーディングし、SSD 用にコンテナー化するのが基本的考え方であると述べました。

Smart NIC と NGD のその場処理はいずれも、ネットワークまたはストレージシステムに処理を組み込むことに重点を置いています。Flash Memory Summit で発表された 3 番目のアイデアは、ローレベルのコントローラー処理さえも永続メモリーから取り除くという、逆の方向を目指すものです。

EMC 社フェローの Daniel Cobb 氏は、「Raw NAND チップは 500 万 IOPS を実現可能」としながら、コントローラーとインターフェイスの背後にチップを実装するまでにその性能のごく一部しか発揮できなくなると付け加えました。おそらくコントローラーおよびペリフェラル・バス接続をなくす必要があります。

原理上、SSD コントローラーが実行するオーバーヘッド・タスクは、仮想化してソフトウェア・ドライバーに組み込み、ハイパーバイザーによって作動させることが可能です。また、RDMA を直接サポートするようにチップ自体を設計することも可能です。そうすれば DRAM と NAND の間のボトルネックが解消され、チップの帯域幅をフルに生かせるようになるはずです。システム性能への影響は、特にシステム・ソフトウェアが書き込み処理に介入しなければならない書き込みレイテンシーに関しては不透明です。しかし、不変のデータ構造の重要性が増していることを考えると、これは多くのアプリケーションでは問題にならないでしょう。

変化の流れ

不揮発性メモリー技術の急速な変化は、データセンター・アーキテクトに厄介な選択をもたらしています(図 2)。それに対し、現在のアーキテクチャーをほとんど維持する明らかな回答は、ディスクの代用としてパッケージされたデバイスを使用することです。しかし、それでは性能をまったく生かし切れません。

図 2. 不揮発性ストレージの考えられるさまざまな位置

us-systemdesign-journal-nand-non-volatile-storage

そうした懸念から、アーキテクトは PCIe や各種高性能ファブリックを介した NVMe プロトコルなど、他の選択肢を推進しています。それにより、NVDIMM モジュールに実装するフラッシュを減らすことが可能になります。しかし、これらのソリューションは不揮発性メモリーをディスクでもなく、真のメモリーでもないという中間的な立場に置くもので、性能向上に貢献する望みはあるものの、それには独自のプロトコルを備えた第 3 のデバイスカテゴリーを導入するしかありません。3D XPoint のような先進技術も、もう 1 つの中間カテゴリー(この場合は DRAM と SSD の間)を導入することでこのパターンに従っています。

しかし、それはアプリケーションが望む方向ではありません。アプリケーションはただ無限の均一なメモリースペースを求めています。この世界観に最も適合すると思われるアーキテクチャーは RoCE です。データセンター内のすべての DRAM と不揮発性デバイスは、レイテンシーに差があるものの論理的動作に差はない単一のフラットなスペースになります。しかし、それは現在の DRAM、NVDIMM モジュール、および SSD の場当たり的な組み合わせからの大きな脱却です。特に大きな違いとして、RoCE はアプリケーションから見てメモリー・トラフィックであるはずのトラフィックをデータセンターのイーサネット・ネットワーク上で明示的に伝送します。それは、現在 40 Gbps 以上に移行しつつある高速なラック内ネットワークだけでなく、トップオブラック・スイッチを結合するセンター規模のネットワーク間にも及びます。この移行はイーサネット帯域幅に対する大きな渇望を生み出すはずです。40 Gbps は序の口にすぎません。

では、帯域幅拡大圧力はインネットワーク・コンピューティングやインメモリー・コンピューティングなど、アプリケーション・レベルまでのソフトウェアの調整を必要とするさらに劇的な変化をもたらすのでしょうか。ネットワーク横断に伴うレイテンシーの増加は、より高いレベルのマルチスレッディングに対応した CPU やアクセラレーターにアーキテクトの意識を集中させるのでしょうか。これらの圧力は、NAND フラッシュベンダーにチップレベルの RDMA のような急進的なアイデアを真剣に評価することを促すのでしょうか。

データセンターがいずれの方向に向かうにせよ、エンベデッド・システム設計者は注視するのが賢明です。これまで、キャッシュから仮想メモリー、さらにはイーサネット、マルチコア CPU に至るまで、エンタープライズレベルのアーキテクチャー上のアイデアはエンベデッド・デザインに採り入れられました。不揮発性メモリーにおける革命は例外ということにはなりそうにありません。では、次のエンベデッド・デザインでは 1 TB の物理メモリーを使ってどんなことが実現できるのでしょうか。


CATEGORIES : All, Data Center/ AUTHOR : Ron Wilson

Write a Reply or Comment

Your email address will not be published.