28
SSDの基礎 #so’lab_study 2012/11/14 @syu_cream

2012/11/14 softlab_study 発表資料「SSDの基礎」

Embed Size (px)

DESCRIPTION

2012/11/14 のsoftlab_study の発表資料 「SSDの基礎」

Citation preview

Page 1: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDの基礎  #so'lab_study

2012/11/14  @syu_cream

Page 2: 2012/11/14 softlab_study 発表資料「SSDの基礎」

アジェンダ

•  SSDの基礎  –  SSDの基本構成  – NANDフラッシュメモリの基礎  

•  MOSFETについて  •  NANDフラッシュメモリのセルについて  •  NANDフラッシュメモリの基本構成  

–  SSDのNANDコントローラについて  •  FTL(Flash  TranslaEon  Layer)  

•  SSD絡みの最新動向  –  PCIe  SSD  – 余談:  君の知らないSSD物語  

Page 3: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDの基礎

Page 4: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDとは?

•  一般的には…  –  フラッシュメモリを用いた高速なディスクデバイス  

•  そう言うとUSBメモリとあまり違いが分からない  •  PCIe  SSDはSSDじゃねぇんだよ  

•  →NANDフラッシュメモリを用いた、「インタフェースがHDD互換」な、「ハード内部でバリバリ最適化している」ストレージ

Page 5: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDの利点・欠点

•  利点  – ランダムアクセスが高速  – 騒音が少ない  – 対衝撃性が高い  – 省電力  

•  だが、将来的に電力消費上がる可能性アリ  

•  欠点  – フラッシュメモリの書換可能回数(寿命)が存在  – 使い込まれるとランダムライト性能が低減する  

Page 6: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDの基本構成

•  インタフェース  –  SATA,  mSATAコネクタ  

•  DRAM  –  キャッシュに用いられる  

•  コントローラ  –  SSDの心臓部とも言える肝心要の部位  –  高速化、寿命の長期化、高信頼性等、仕事多し  

•  NANDフラッシュメモリ  –  実際にデータが保持される部位  –  セル辺りに保持するビット数が変動したり(後述)

Page 7: 2012/11/14 softlab_study 発表資料「SSDの基礎」

NANDフラッシュメモリの基礎

Page 8: 2012/11/14 softlab_study 発表資料「SSDの基礎」

MOSFET  (電界効果トランジスタ)の仕組み

•  ゲート電極に電圧を加えて動作させるトランジスタ  –  ゲートに電圧を加えるとチャネルが生成される  –  チャネル幅によりソース-­‐>ドレイン間を流れる電流が変化

   

p型半導体

ゲート

ソース ドレイン

チャネル n型半導体 n型半導体

正電圧

電流が流れる

Page 9: 2012/11/14 softlab_study 発表資料「SSDの基礎」

MOSFETを用いた  NANDフラッシュメモリセル

•  MOSFETのゲートを二種類に分割  –  制御ゲート  

•  従来と同じゲートの役割  

–  浮遊ゲート  •  絶縁膜に囲まれた導体  

 p型半導体

絶縁膜     ソース ドレイン

n型半導体 n型半導体

浮遊ゲート

制御ゲート

Page 10: 2012/11/14 softlab_study 発表資料「SSDの基礎」

NANDフラッシュメモリでの読込み処理

•  制御ゲートに電圧を加えソース-­‐ドレイン電流を読む  –  浮遊ゲートに電子が有る場合…  

•  チャネルは生成されず電流は流れない    

–  浮遊ゲートに電子が無い場合…  •  チャネルが生成され電流が流れる  

 

GND

-­‐   -­‐  

正電圧

+ +電子に阻害され電圧通らず

チャネル

電流が流れる

Page 11: 2012/11/14 softlab_study 発表資料「SSDの基礎」

NANDフラッシュメモリでの書込み処理

•  制御ゲートに電子を注入することでデータ書込  –  制御ゲートに高電圧をかける  –  電子が絶縁膜を越えて浮遊ゲートへ注入される  

•  絶縁膜があるので勝手に電子が出ていけない→揮発しない!

 

-­‐   -­‐  

高電圧

GND GND

GND

高電圧により電子注入

Page 12: 2012/11/14 softlab_study 発表資料「SSDの基礎」

NANDフラッシュメモリでの削除処理

•  書込みと逆方向に高電圧を掛ける  – トンネル効果により浮遊ゲートの電子が放出

 

正電圧

-­‐   -­‐  

GND

正電圧 正電圧

トンネル効果で  電子放出

Page 13: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SLCとMLC

•  セル毎に複数ビットの情報を持たせる事も可能  – 浮遊ゲートに注入する電子量をビット数分持つ  

•  SLC(Single  Level  Cell)  – セル辺り1ビットの情報を持つ  – 容量拡大が難しく高価だが,高速かつ高寿命  

•  MLC(MulE  Level  Cell)  – セル辺り2,3ビットの情報を持つ  – 容量拡大が容易で安価.しかし低速で寿命は短い  – 最近は単にMCLと言うと2ビット,TLC(Triple  Level  Cell)

と言うと3ビットらしい

Page 14: 2012/11/14 softlab_study 発表資料「SSDの基礎」

NANDフラッシュメモリセルの寿命

•  セルに書込み/削除を繰り返すと絶縁膜が摩耗する  –  書込み/削除のため、何度も高電圧を掛ける必要がある  –  絶縁破壊が起き,絶縁膜が通電するようになってしまう  

  絶縁破壊により  

電子を保持できなくなる!

Page 15: 2012/11/14 softlab_study 発表資料「SSDの基礎」

NANDフラッシュメモリの構成

•  メモリセルを直列接続して記憶領域を形成  •  動作原理上、二種類の管理単位が存在  –  ページ  

•  読込み/書込みの単位  •  4kB~8kB  程度  

–  ブロック  •  削除の単位  •  512kB  程度  

– ここで言うページとブロックはあくまでSSD内部の独立した管理単位です。  

Page 16: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDの記憶領域                  

フラッシュメモリの構造に起因した  ランダムライト性能低下問題

•  データ書き込みの前に既存データの削除が必要  •  削除処理対象領域が書き込み処理対象領域と比較して大きい  

–  削除に巻き込まれるページは,一旦バッファに退避しなければならない  –  記録済ページが多いほど,つまり使い込まれているほどこの処理は頻発!  

未使用ページ 記録済ページ ブロック

未使用ページへの書込みは細かい粒度で実行可能

記録済ページへの書込みは粗い粒度(ブロックの赤枠)で実行されコスト大!

Page 17: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDのNANDコントローラ  

Page 18: 2012/11/14 softlab_study 発表資料「SSDの基礎」

SSDのNANDコントローラ

•  SSDの肝心要となる制御機構  – HDD互換なインタフェース提供  – NANDフラッシュメモリ制御  – FTL(Flash  TranslaEon  Layer)の提供  

Page 19: 2012/11/14 softlab_study 発表資料「SSDの基礎」

FTL(Flash  TranslaEon  Layer)

•  基本的にHDD互換インタフェース提供の為のレイヤ  –  しかし実際は…名前以上の仕事をしている!  

•  FTLの持つ仕事  –  論理アドレスから物理アドレスへの変換  –  不良ブロックの管理  –  誤り訂正  –  ウェアレベリング  –  deduplicaEon  ←!?  –  compression  ←!!?

Page 20: 2012/11/14 softlab_study 発表資料「SSDの基礎」

ウェアレベリング

•  セル当りの書換回数を平滑化  –  ブロックに対する書換回数をモニタリング  –  書換回数が少ないブロックに書かれるよう変換  –  データが静的かどうかを判別して平滑化  

•  拡張領域を使ったセル書換頻度低減  –  昨今のSSDは拡張領域を持つ事も  

•  エンタープライズ向けとかだと有り得る  

–  拡張領域にページ単位で書込み→通常の領域にブロック単位で一気に書換え処理を行うなど

Page 21: 2012/11/14 softlab_study 発表資料「SSDの基礎」

色々なウェアレベリング

•  その他、我々の理解を越えた泥臭い延命作業をしている可能性も。。。

Page 22: 2012/11/14 softlab_study 発表資料「SSDの基礎」

The  OpenSSD  Project

•  オープンソースのSSDファームウェア  –  Programmable  FTL  が実現出来る!  

•  オレオレウェアレベリングを詰んだSSDとか実現可能に  

•  hap://www.openssd-­‐project.org/wiki/The_OpenSSD_Project  

•  余力があればそのうちコード読んで紹介します  

Page 23: 2012/11/14 softlab_study 発表資料「SSDの基礎」

PCIe  SSD  

Page 24: 2012/11/14 softlab_study 発表資料「SSDの基礎」

(  ^o^)  SSD,良きに計らってくれてすごい!

(  ˘⊖˘)  。o(待てよ?流石にハードウェアレベルで色々やり過ぎでは?)   (;˘⊖˘)  。o(更に待てよ?そもそもインタフェースの互換の為に性能縛られているのでは?)

|Fusion-­‐io|┗(☋` )┓三

(  ◠‿◠  )☛そこに気づいたか・・・ioDrive  を使ってもらう

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ

Page 25: 2012/11/14 softlab_study 発表資料「SSDの基礎」

ioDrive

•  インタフェースにPCI  Express  を使用  •  SSDのFTLと同等の機構をデバイスドライバで持つ  

•  ioDrive  専用ファイルシステムまで存在  –  DFS[W  K.  Josephson  et  al.,  FAST’10]  

Page 26: 2012/11/14 softlab_study 発表資料「SSDの基礎」

余談:  君の知らないSSD物語  

Page 27: 2012/11/14 softlab_study 発表資料「SSDの基礎」

メモリセルを自動修復するSSD

•  Exploi=ng  Heat-­‐Accelerated  Flash  Memory  Wear-­‐Out  Recovery  to  Enable  Self-­‐Healing  SSDs[Q  Wu  et  al.,  HotStorage’11]  

•  NANDフラッシュチップを熱して延命(??)  –  フラッシュチップを三次元構成  –  最下層に加熱層を設置  –  データを別チップに退避し加熱して延命。その後データを

復帰  –  すみません、あまり読込んでないです。誤解があるかも  

Page 28: 2012/11/14 softlab_study 発表資料「SSDの基礎」

自爆ボタンがあるSSD

•  RunCore  InVincible  –  軍用の、物理的破壊ボタン搭載SSD  

•  hap://japanese.engadget.com/2012/05/16/ssd-­‐runcore-­‐invincible/  

–  コントローラに大電流を流してメモリセルをブッ壊す  •  NANDフラッシュメモリチップから煙が上がる模様  

–  SSDはFTLにより隠蔽された領域のデータが削除しきれない問題が有るが物理的にブッ壊せば無問題か  •  Reliably  Erasing  Data  From  Flash-­‐Based  Solid  State  Drives[M  Wei  et  al.,  FAST’11]