メモリデバイスの不揮発性メモリ制御やホストIFなどを扱うソフト屋です。
仕事でCXL(Compute Express Link)まわりの技術に関わっています。
CXL技術に関連するメモ書きを残していこうと思います。
ホストまわりのこと経験・知識共に乏しいので、詳しい親切な方は教えて下さると幸いです。現在、まずはQEMUで、CXLが接続された環境を立ち上げようとしているので、教えて頂けると非常に有難いです。
また、間違い、アドバイス、その他、ご意見やご要望ありましたらお気軽にどうぞ。
今回からCXLの仕様の詳細を書こうかと思っていたのですが、まだ前置きです。
#1. Type3 CXLデバイスの位置付け
メモリデバイスの話でよく登場するのですが、メモリデバイスは下図のような階層構造で表されます。
メモリデバイスと便宜的に呼びますが、メモリデバイスは階層の上からCPU Register、CPU Cache、DDR DIMM、CXL Type3 Device、SSD、HDDとなっています。括弧内は、それぞれのメモリデバイスで主に使用されているメモリ媒体を表記してあります。
階層の上の方が、レイテンシが短く、かつメモリ媒体のビット当たりのコストが高い、下の方がレイテンシが長く、かつメモリ媒体のビット当たりのコストが安い、ということを表しています。
帯域に関しては、この階層図では言及をしていません。
Type3 CXLデバイスは、DIMMのメモリとSSDの間に位置するデバイスとして期待されています。PMはPersistent Memoryを表しています。Persistent Memoryとは、Byte addressableは不揮発性メモリです。例えば、SSDで使われているNAND Flash Memoryは、読み書きのアクセス単位が4kB程度のページ単位、消去単位が数MBのブロック単位であるため、PMとは呼ばれません。
PMには、IntelのOptaneの名前で製品化されているPCM(Phase Change Memory)、ReRAM、MRAMなど、新規メモリと呼ばれており、各社で開発が行われています。新規メモリでは、ビット当たりのコストを下げるため、クロスポイント構造が採用されているようです。
メモリの記憶素子の材料開発に加えて、クロスポイント構造に不可欠である、セレクタと呼ばれるスイッチング素子の開発が不可欠となり、メモリのプロセス開発の障壁はかなり高く、各社とも高容量のメモリチップの製品化は難航しているようです。
自分にとってIntelは競争相手にあたるのですが、要約すると製品化まで持っていけたIntel凄いという話です。
話が長くなる上、自分はソフト屋で専門ではないので、これ以上、メモリ自体のテクノロジについて詳しく書くのは止めておきます。
#2. Type3 CXLデバイスの用途
Type3 CXLデバイスは、データセンター等で使われることが想定されています。
Type3 CXLデバイスの用途として、以下の2通りの用途が考えられます。
- 揮発性メモリ空間の拡張空間
DDR DIMMの用途の延長線で、CXL Type3 Deviceを使う。 - 低レイテンシのストレージ空間
SSDの用途の延長線で、CXL Type3 Deviceを使う。
それぞれの用途でデバイスへの要求が変わってきます。
例えば以下のような違いがあります。
-
レイテンシ(Latency)
揮発性メモリ空間の拡張空間としての使い方は、DDR DIMMの延長の使い方なので、メモリのレイテンシがCPUの演算速度への影響が大きいため、使い方②より短いレイテンシであることが要求されます。 -
耐久性(Endurance)
一般的に不揮発性メモリは、データの書き換え回数に関しては、寿命があります。例えば、MLCのNAND Flash Memoryは3000回程度の書き換え回数で寿命になります。
揮発性メモリ空間の拡張空間としての使い方は、DDR DIMMの延長の使い方ということで、データの書き換えが頻繁に起こるため、低レイテンシのストレージ空間としての使い方より高い耐久性が要求されます。 -
保持期間(Retention)
一般的に不揮発性メモリは、データ保持期間についても、上限があります。例えば、MLCのNAND Flash Memoryでデータ保持が保証されているのは5年程度だったかと思います(SSDにデータを書いて放っておくと、消えてしまうことを意味しています)。低レイテンシのストレージ空間としての使い方はSSDの延長の使い方で、データを書いて保持しておくことになり、頻繁にデータの書き換えが行われる揮発性メモリ空間の拡張空間としての使い方よりも、長い保持期間が要求されます。
顧客要求や製品仕様など、具体的な数値を書くと怒られそうなので、ここには書きません。
次回こそは、CXLの仕様の詳細について書いていこうと思っています。