SlideShare a Scribd company logo
1 of 28
Download to read offline
SSDの基礎	
  
#so'lab_study	
  2012/11/14	
  
  @syu_cream
アジェンダ	
•  SSDの基礎	
  
  –  SSDの基本構成	
  
  –  NANDフラッシュメモリの基礎	
  
     •  MOSFETについて	
  
     •  NANDフラッシュメモリのセルについて	
  
     •  NANDフラッシュメモリの基本構成	
  
  –  SSDのNANDコントローラについて	
  
     •  FTL(Flash	
  TranslaEon	
  Layer)	
  
•  SSD絡みの最新動向	
  
  –  PCIe	
  SSD	
  
  –  余談:	
  君の知らないSSD物語	
  
SSDの基礎
SSDとは?	
•  一般的には…	
  
  –  フラッシュメモリを用いた高速なディスクデバイス	
  
    •  そう言うとUSBメモリとあまり違いが分からない	
  
    •  PCIe	
  SSDはSSDじゃねぇんだよ	
  


•  →NANDフラッシュメモリを用いた、「インタフェースが
   HDD互換」な、「ハード内部でバリバリ最適化してい
   る」ストレージ
SSDの利点・欠点	
•  利点	
  
   –  ランダムアクセスが高速	
  
   –  騒音が少ない	
  
   –  対衝撃性が高い	
  
   –  省電力	
  
      •  だが、将来的に電力消費上がる可能性アリ	
  
•  欠点	
  
   –  フラッシュメモリの書換可能回数(寿命)が存在	
  
   –  使い込まれるとランダムライト性能が低減する	
  
SSDの基本構成	
•  インタフェース	
  
   –  SATA,	
  mSATAコネクタ	
  
•  DRAM	
  
   –  キャッシュに用いられる	
  
•  コントローラ	
  
   –  SSDの心臓部とも言える肝心要の部位	
  
   –  高速化、寿命の長期化、高信頼性等、仕事多し	
  
•  NANDフラッシュメモリ	
  
   –  実際にデータが保持される部位	
  
   –  セル辺りに保持するビット数が変動したり(後述)
NANDフラッシュメモリの基礎
MOSFET	
  (電界効果トランジスタ)の仕組み	

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

                      正電圧	

                  ゲート	

        ソース	
               ドレイン	
                  チャネル	
       n型半導体	
              n型半導体	
                     	
  
                 電流が流れる	
                     	
  
                  p型半導体
MOSFETを用いた	
  
       NANDフラッシュメモリセル	
•  MOSFETのゲートを二種類に分割	
  
  –  制御ゲート	
  
     •  従来と同じゲートの役割	
  
  –  浮遊ゲート	
  
     •  絶縁膜に囲まれた導体	
  


                       制御ゲート	
                        絶縁膜	
  
                          	
  
                       浮遊ゲート	
             ソース	
       	
        ドレイン	
             n型半導体	
      	
      n型半導体	
                       p型半導体
NANDフラッシュメモリでの読込み処理	

•  制御ゲートに電圧を加えソース-­‐ドレイン電流を読む	
  
 –  浮遊ゲートに電子が有る場合…	
  
   •  チャネルは生成されず電流は流れない	
  	
  
 –  浮遊ゲートに電子が無い場合…	
  
   •  チャネルが生成され電流が流れる	
  

                                              正電圧	
        電子に阻害され
        電圧通らず	
                    +               +
                             	
  
                    -­‐	
   	
      -­‐	
  
                   チャネル	
                  電流が流れる	

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

•  制御ゲートに電子を注入することでデータ書込	
  
 –  制御ゲートに高電圧をかける	
  
 –  電子が絶縁膜を越えて浮遊ゲートへ注入される	
  
   •  絶縁膜があるので勝手に電子が出ていけない→揮発しない!	

                                  高電圧	


      GND	
                                GND	
                          	
  
                         	
       高電圧により
                                  電子注入	
               -­‐	
             -­‐	
  

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

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


                        GND	


     正電圧	
                             正電圧	
              	
  
             -­‐	
  
             	
          -­‐	
  
                                   トンネル効果で	
  
                                   電子放出	


                       正電圧
SLCとMLC	
•  セル毎に複数ビットの情報を持たせる事も可能	
  
    –  浮遊ゲートに注入する電子量をビット数分持つ	
  
•  SLC(Single	
  Level	
  Cell)	
  
    –  セル辺り1ビットの情報を持つ	
  
    –  容量拡大が難しく高価だが,高速かつ高寿命	
  
•  MLC(MulE	
  Level	
  Cell)	
  
    –  セル辺り2,3ビットの情報を持つ	
  
    –  容量拡大が容易で安価.しかし低速で寿命は短い	
  
    –  最近は単にMCLと言うと2ビット,TLC(Triple	
  Level	
  Cell)
       と言うと3ビットらしい
NANDフラッシュメモリセルの寿命	
•  セルに書込み/削除を繰り返すと絶縁膜が摩耗する	
  
 –  書込み/削除のため、何度も高電圧を掛ける必要がある	
  
 –  絶縁破壊が起き,絶縁膜が通電するようになってしまう	
  




                	
  
               	
      絶縁破壊により	
  
                       電子を保持できなくなる!
NANDフラッシュメモリの構成	
•  メモリセルを直列接続して記憶領域を形成	
  
•  動作原理上、二種類の管理単位が存在	
  
 –  ページ	
  
    •  読込み/書込みの単位	
  
    •  4kB~8kB	
  程度	
  
 –  ブロック	
  
    •  削除の単位	
  
    •  512kB	
  程度	
  


 –  ここで言うページとブロックはあくまでSSD内部の
    独立した管理単位です。	
  
フラッシュメモリの構造に起因した	
  
     ランダムライト性能低下問題	
•  データ書き込みの前に既存データの削除が必要	
  
•  削除処理対象領域が書き込み処理対象領域と比較して大きい	
  
  –  削除に巻き込まれるページは,一旦バッファに退避しなければならない	
  
  –  記録済ページが多いほど,つまり使い込まれているほどこの処理は頻発!	
  

                   SSDの記憶領域	
  
未使用ページへの                	
  
書込みは細かい粒                	
  
度で実行可能	
                	
  
                        	
        記録済ページへの書込み
                        	
        は粗い粒度(ブロックの赤
                                  枠)で実行されコスト大!	
                        	
  
                        	
  
                        	
  
                       	


           未使用ページ	
       記録済ページ	
         ブロック
SSDのNANDコントローラ	
  
SSDのNANDコントローラ	
•  SSDの肝心要となる制御機構	
  
 –  HDD互換なインタフェース提供	
  
 –  NANDフラッシュメモリ制御	
  
 –  FTL(Flash	
  TranslaEon	
  Layer)の提供	
  
FTL(Flash	
  TranslaEon	
  Layer)	
•  基本的にHDD互換インタフェース提供の為のレイヤ	
  
    –  しかし実際は…名前以上の仕事をしている!	
  
•  FTLの持つ仕事	
  
 –  論理アドレスから物理アドレスへの変換	
  
 –  不良ブロックの管理	
  
 –  誤り訂正	
  
 –  ウェアレベリング	
  
 –  deduplicaEon	
  ←!?	
  
 –  compression	
  ←!!?
ウェアレベリング	
•  セル当りの書換回数を平滑化	
  
 –  ブロックに対する書換回数をモニタリング	
  
 –  書換回数が少ないブロックに書かれるよう変換	
  
 –  データが静的かどうかを判別して平滑化	
  
•  拡張領域を使ったセル書換頻度低減	
  
 –  昨今のSSDは拡張領域を持つ事も	
  
   •  エンタープライズ向けとかだと有り得る	
  
 –  拡張領域にページ単位で書込み→通常の領域にブロック
    単位で一気に書換え処理を行うなど
色々なウェアレベリング	
•  その他、我々の理解を越えた泥臭い延命作
   業をしている可能性も。。。
The	
  OpenSSD	
  Project	
•  オープンソースのSSDファームウェア	
  
   –  Programmable	
  FTL	
  が実現出来る!	
  
      •  オレオレウェアレベリングを詰んだSSDとか実現可能に	
  
•  hap://www.openssd-­‐project.org/wiki/
   The_OpenSSD_Project	
  

•  余力があればそのうちコード読んで紹介します	
  
PCIe	
  SSD	
  
(	
  ^o^)	
  SSD,良きに計らってくれてすごい!	
(	
  ˘⊖˘)	
  。o(待てよ?流石にハードウェアレベルで色々
やり過ぎでは?)	
  
	
(;˘⊖˘)	
  。o(更に待てよ?そもそもインタフェースの互換
の為に性能縛られているのでは?)	
	
|Fusion-­‐io|┗(☋` )┓三	
	
(	
  ◠‿◠	
  )☛そこに気づいたか・・・ioDrive	
  を使ってもらう	
	
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ
ioDrive	
•  インタフェースにPCI	
  Express	
  を使用	
  
•  SSDのFTLと同等の機構をデバイスドライバで持つ	
  
•  ioDrive	
  専用ファイルシステムまで存在	
  
  –  DFS[W	
  K.	
  Josephson	
  et	
  al.,	
  FAST’10]	
  
余談:	
  君の知らないSSD物語	
  
メモリセルを自動修復するSSD	
•  Exploi=ng	
  Heat-­‐Accelerated	
  Flash	
  Memory	
  Wear-­‐Out	
  
   Recovery	
  to	
  Enable	
  Self-­‐Healing	
  SSDs[Q	
  Wu	
  et	
  al.,	
  
   HotStorage’11]	
  
•  NANDフラッシュチップを熱して延命(??)	
  
    –  フラッシュチップを三次元構成	
  
    –  最下層に加熱層を設置	
  
    –  データを別チップに退避し加熱して延命。その後データを
       復帰	
  
    –  すみません、あまり読込んでないです。誤解があるかも	
  
自爆ボタンがある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]	
  

More Related Content

What's hot

大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザインMasayuki Kobayashi
 
Fibre Channel 基礎講座
Fibre Channel 基礎講座Fibre Channel 基礎講座
Fibre Channel 基礎講座Brocade
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStackAkira Yoshiyama
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話Takanori Sejima
 
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークKVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークVirtualTech Japan Inc.
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfYasunori Goto
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門NVIDIA Japan
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
20201008 AWS独自設計推論チップInferentiaとInf1インスタンスHiroshi Tokoyo
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)智啓 出川
 
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみようTakashi Kajinami
 
詳説データベース輪読会: 分散合意その2
詳説データベース輪読会: 分散合意その2詳説データベース輪読会: 分散合意その2
詳説データベース輪読会: 分散合意その2Sho Nakazono
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことNVIDIA Japan
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法Sho Nakazono
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報Emma Haruka Iwao
 
ファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックスファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックスSho Nakazono
 

What's hot (20)

大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
Fibre Channel 基礎講座
Fibre Channel 基礎講座Fibre Channel 基礎講座
Fibre Channel 基礎講座
 
コンテナ時代のOpenStack
コンテナ時代のOpenStackコンテナ時代のOpenStack
コンテナ時代のOpenStack
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークKVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
 
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
 
詳説データベース輪読会: 分散合意その2
詳説データベース輪読会: 分散合意その2詳説データベース輪読会: 分散合意その2
詳説データベース輪読会: 分散合意その2
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
 
ファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックスファントム異常を排除する高速なトランザクション処理向けインデックス
ファントム異常を排除する高速なトランザクション処理向けインデックス
 

Viewers also liked

NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp hiyohiyo
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Sho A
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールKen Sawada
 
Favorite English YouTube Channels
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube ChannelsEmma Haruka Iwao
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)Shingo Kitayama
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackMasataka Tsukamoto
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-Takahiro Kida
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話Shohei Koyama
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Shingo Kitayama
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Kishin Yagami
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発hiyohiyo
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!hiyohiyo
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)NTT DATA OSS Professional Services
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。hiyohiyo
 
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策Amazon Web Services Japan
 

Viewers also liked (20)

Ansible+Docker
Ansible+DockerAnsible+Docker
Ansible+Docker
 
NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp NVMe でハァハァしようよ #sapporocpp
NVMe でハァハァしようよ #sapporocpp
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストールAnsibleを使ってサーバ100台にBaculaクライアントを簡単インストール
Ansibleを使ってサーバ100台にBaculaクライアントを簡単インストール
 
Favorite English YouTube Channels
Favorite English YouTube ChannelsFavorite English YouTube Channels
Favorite English YouTube Channels
 
運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)運用のためのPlaybook (Playbook for Operation)
運用のためのPlaybook (Playbook for Operation)
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Ansibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStackAnsibleで味わうHelion OpenStack
Ansibleで味わうHelion OpenStack
 
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング  -OneViewの連携-AnsibleによるHWプロビジョニング  -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
 
リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話リブセンスのインフラで使ってるAnsibleのお話
リブセンスのインフラで使ってるAnsibleのお話
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法Ansible Playbookの短時間デバッグ方法
Ansible Playbookの短時間デバッグ方法
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発
 
What is an Ansible?
What is an Ansible?What is an Ansible?
What is an Ansible?
 
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
Desktop App Converter で Microsoft ストアデビュー & 野良野良ライフ満喫!!
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
 
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
AWS 初心者向けWebinar 利用者が実施するAWS上でのセキュリティ対策
 

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

GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価Koichi Shirahata
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何かRyousei Takano
 
Robohanにおける回路構成
Robohanにおける回路構成Robohanにおける回路構成
Robohanにおける回路構成どと〜る
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 

Similar to 2012/11/14 softlab_study 発表資料「SSDの基礎」 (9)

20111028ssmjp
20111028ssmjp20111028ssmjp
20111028ssmjp
 
PC解体
PC解体PC解体
PC解体
 
Graph LSTM解説
Graph LSTM解説Graph LSTM解説
Graph LSTM解説
 
WalBの紹介
WalBの紹介WalBの紹介
WalBの紹介
 
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
GPUアクセラレータと不揮発性メモリを考慮したI/O性能の予備評価
 
Osc2011 Do
Osc2011 DoOsc2011 Do
Osc2011 Do
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
 
Robohanにおける回路構成
Robohanにおける回路構成Robohanにおける回路構成
Robohanにおける回路構成
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 

Recently uploaded

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Recently uploaded (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

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

  • 1. SSDの基礎   #so'lab_study 2012/11/14   @syu_cream
  • 2. アジェンダ •  SSDの基礎   –  SSDの基本構成   –  NANDフラッシュメモリの基礎   •  MOSFETについて   •  NANDフラッシュメモリのセルについて   •  NANDフラッシュメモリの基本構成   –  SSDのNANDコントローラについて   •  FTL(Flash  TranslaEon  Layer)   •  SSD絡みの最新動向   –  PCIe  SSD   –  余談:  君の知らないSSD物語  
  • 4. SSDとは? •  一般的には…   –  フラッシュメモリを用いた高速なディスクデバイス   •  そう言うとUSBメモリとあまり違いが分からない   •  PCIe  SSDはSSDじゃねぇんだよ   •  →NANDフラッシュメモリを用いた、「インタフェースが HDD互換」な、「ハード内部でバリバリ最適化してい る」ストレージ
  • 5. SSDの利点・欠点 •  利点   –  ランダムアクセスが高速   –  騒音が少ない   –  対衝撃性が高い   –  省電力   •  だが、将来的に電力消費上がる可能性アリ   •  欠点   –  フラッシュメモリの書換可能回数(寿命)が存在   –  使い込まれるとランダムライト性能が低減する  
  • 6. SSDの基本構成 •  インタフェース   –  SATA,  mSATAコネクタ   •  DRAM   –  キャッシュに用いられる   •  コントローラ   –  SSDの心臓部とも言える肝心要の部位   –  高速化、寿命の長期化、高信頼性等、仕事多し   •  NANDフラッシュメモリ   –  実際にデータが保持される部位   –  セル辺りに保持するビット数が変動したり(後述)
  • 8. MOSFET  (電界効果トランジスタ)の仕組み •  ゲート電極に電圧を加えて動作させるトランジスタ   –  ゲートに電圧を加えるとチャネルが生成される   –  チャネル幅によりソース-­‐>ドレイン間を流れる電流が変化 正電圧 ゲート ソース ドレイン チャネル n型半導体 n型半導体   電流が流れる   p型半導体
  • 9. MOSFETを用いた   NANDフラッシュメモリセル •  MOSFETのゲートを二種類に分割   –  制御ゲート   •  従来と同じゲートの役割   –  浮遊ゲート   •  絶縁膜に囲まれた導体   制御ゲート 絶縁膜     浮遊ゲート ソース ドレイン n型半導体   n型半導体 p型半導体
  • 10. NANDフラッシュメモリでの読込み処理 •  制御ゲートに電圧を加えソース-­‐ドレイン電流を読む   –  浮遊ゲートに電子が有る場合…   •  チャネルは生成されず電流は流れない     –  浮遊ゲートに電子が無い場合…   •  チャネルが生成され電流が流れる   正電圧 電子に阻害され 電圧通らず + +   -­‐   -­‐   チャネル 電流が流れる GND
  • 11. NANDフラッシュメモリでの書込み処理 •  制御ゲートに電子を注入することでデータ書込   –  制御ゲートに高電圧をかける   –  電子が絶縁膜を越えて浮遊ゲートへ注入される   •  絶縁膜があるので勝手に電子が出ていけない→揮発しない! 高電圧 GND GND   高電圧により 電子注入 -­‐   -­‐   GND
  • 12. NANDフラッシュメモリでの削除処理 •  書込みと逆方向に高電圧を掛ける   –  トンネル効果により浮遊ゲートの電子が放出 GND 正電圧 正電圧   -­‐   -­‐   トンネル効果で   電子放出 正電圧
  • 13. SLCとMLC •  セル毎に複数ビットの情報を持たせる事も可能   –  浮遊ゲートに注入する電子量をビット数分持つ   •  SLC(Single  Level  Cell)   –  セル辺り1ビットの情報を持つ   –  容量拡大が難しく高価だが,高速かつ高寿命   •  MLC(MulE  Level  Cell)   –  セル辺り2,3ビットの情報を持つ   –  容量拡大が容易で安価.しかし低速で寿命は短い   –  最近は単にMCLと言うと2ビット,TLC(Triple  Level  Cell) と言うと3ビットらしい
  • 14. NANDフラッシュメモリセルの寿命 •  セルに書込み/削除を繰り返すと絶縁膜が摩耗する   –  書込み/削除のため、何度も高電圧を掛ける必要がある   –  絶縁破壊が起き,絶縁膜が通電するようになってしまう     絶縁破壊により   電子を保持できなくなる!
  • 15. NANDフラッシュメモリの構成 •  メモリセルを直列接続して記憶領域を形成   •  動作原理上、二種類の管理単位が存在   –  ページ   •  読込み/書込みの単位   •  4kB~8kB  程度   –  ブロック   •  削除の単位   •  512kB  程度   –  ここで言うページとブロックはあくまでSSD内部の 独立した管理単位です。  
  • 16. フラッシュメモリの構造に起因した   ランダムライト性能低下問題 •  データ書き込みの前に既存データの削除が必要   •  削除処理対象領域が書き込み処理対象領域と比較して大きい   –  削除に巻き込まれるページは,一旦バッファに退避しなければならない   –  記録済ページが多いほど,つまり使い込まれているほどこの処理は頻発!   SSDの記憶領域   未使用ページへの   書込みは細かい粒   度で実行可能     記録済ページへの書込み   は粗い粒度(ブロックの赤 枠)で実行されコスト大!       未使用ページ 記録済ページ ブロック
  • 18. SSDのNANDコントローラ •  SSDの肝心要となる制御機構   –  HDD互換なインタフェース提供   –  NANDフラッシュメモリ制御   –  FTL(Flash  TranslaEon  Layer)の提供  
  • 19. FTL(Flash  TranslaEon  Layer) •  基本的にHDD互換インタフェース提供の為のレイヤ   –  しかし実際は…名前以上の仕事をしている!   •  FTLの持つ仕事   –  論理アドレスから物理アドレスへの変換   –  不良ブロックの管理   –  誤り訂正   –  ウェアレベリング   –  deduplicaEon  ←!?   –  compression  ←!!?
  • 20. ウェアレベリング •  セル当りの書換回数を平滑化   –  ブロックに対する書換回数をモニタリング   –  書換回数が少ないブロックに書かれるよう変換   –  データが静的かどうかを判別して平滑化   •  拡張領域を使ったセル書換頻度低減   –  昨今のSSDは拡張領域を持つ事も   •  エンタープライズ向けとかだと有り得る   –  拡張領域にページ単位で書込み→通常の領域にブロック 単位で一気に書換え処理を行うなど
  • 22. The  OpenSSD  Project •  オープンソースのSSDファームウェア   –  Programmable  FTL  が実現出来る!   •  オレオレウェアレベリングを詰んだSSDとか実現可能に   •  hap://www.openssd-­‐project.org/wiki/ The_OpenSSD_Project   •  余力があればそのうちコード読んで紹介します  
  • 24. (  ^o^)  SSD,良きに計らってくれてすごい! (  ˘⊖˘)  。o(待てよ?流石にハードウェアレベルで色々 やり過ぎでは?)   (;˘⊖˘)  。o(更に待てよ?そもそもインタフェースの互換 の為に性能縛られているのでは?) |Fusion-­‐io|┗(☋` )┓三 (  ◠‿◠  )☛そこに気づいたか・・・ioDrive  を使ってもらう ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ
  • 25. ioDrive •  インタフェースにPCI  Express  を使用   •  SSDのFTLと同等の機構をデバイスドライバで持つ   •  ioDrive  専用ファイルシステムまで存在   –  DFS[W  K.  Josephson  et  al.,  FAST’10]  
  • 27. メモリセルを自動修復するSSD •  Exploi=ng  Heat-­‐Accelerated  Flash  Memory  Wear-­‐Out   Recovery  to  Enable  Self-­‐Healing  SSDs[Q  Wu  et  al.,   HotStorage’11]   •  NANDフラッシュチップを熱して延命(??)   –  フラッシュチップを三次元構成   –  最下層に加熱層を設置   –  データを別チップに退避し加熱して延命。その後データを 復帰   –  すみません、あまり読込んでないです。誤解があるかも  
  • 28. 自爆ボタンがある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]