NVM Casual Talks
~今更聞けないSSDの基本~
2018/10/10
アジェンダ
自己紹介
ごあいさつ
古今東西不揮発メモリ
Why NAND flash memory
SSDの典型的な構造
FTLって何ですか?
2
自己紹介
3
所属
株式会社フィックスターズ
(いろんなハードウェアを使い倒すソフトウェアを作る会社)
過去のお仕事
CPUのマイクロアーキテクチャ設計エンジニア
画像処理ソフトウェア開発チームマネージャ
SSD開発チームのマネージャ
など
現在のお仕事
いろいろやっています
こんばんは!
NANDフラッシュメモリとSSDの
中身をおさらいします
– 詳しい人が多そうなのでさらっと
SSD(Solid State Drive)と言えば?
– NANDフラッシュメモリが使われているらしいよ
– HDDに比べて
• 値段が高い?
– QLC(Quad Level Cell)が出てきた今、お安いSSDも出てきて
いる(Intel SSD 660p 2TB $399 ⇔ Seagate HDD 2TB $100)
• 速い?
– ランダムアクセス性能はQLCでもHDDの2桁速い
• メカ的な衝撃に強いよ
– でもQLC(Quad Level Cell)の寿命は短い…
– そんなQLCヤバい話は後半戦で
4
古今東西不揮発メモリ
 ストレージを作るには?
– データの蓄積と参照ができる
– 書き込んだデータが永続的に参照できる
不揮発デバイスが必要
 不揮発性メモリ
– 電源供給を行わない状態でも書き込まれたデータが消えない半導
体メモリの総称
– 例えば
• FeRAM(強誘電体型)
• MRAM(磁気抵抗型)
• PCM(相変化型)
• ReRAM(抵抗変化型)
• フラッシュメモリ
– EEPROM
(Electrically Erasable Programmable Read-Only Memory)
– NOR Flash Memory
– NAND Flash Memory
– 何が一番いいの?
• ストレージの容量対コストの観点で、NANDフラッシュめちゃ強い
5
詳しくは
福田昭のセミコン業界最前線
https://pc.watch.impress.co.jp/docs/column/semicon/
Why NAND flash memory
 様々なメモリ素子があるが、所詮は集積されたトランジスタ
ご存知の通り微細化には限界が見えてきている
 集積回路のトランジスタ数は18か月毎に倍になるという例のアレ
 ダイ面積≒コスト
 bits/面積でメモリの容量密度が決まる
6
“Microprocessors no longer scale at the level of performance they used to
— the end of what you would call Moore’s Law,
Jensen Huang(nVIDIA CEO)@COMPUTEX TAIPEI2017も
こう言っています
微細化界のグル、2018年9月 An Steegen氏、imecを去る
https://www.semiconportal.com/archive/blog/insiders/hattori/181005-minitualization.html
Why NAND flash memory
ダイ当たりの容量にステータス全振りした
不揮発性メモリ
どうやって容量を稼ぐのか?
– メモリセルあたりの面積
• Cell area factor:4F2で不揮発メモリで最小
– メモリを構成するセルアレイの面積を大きくして、
セルアレイ以外の回路資源(配線)を減らす
– メモリセルあたりの容量を増やす
• 1bit SLC
• 2bit MLC
• 3bit TLC
• 4bit QLC
– 面積が足りない?縦に積めばいいじゃない
• 3D NAND
7
Why NAND flash memory
(配線資源をけちる)
データの読み書きのためには、データを保
持するメモリセルの他に、読出し、書き込
みに必要な配線とロジックを配置する必要
がある
8
Not NAND flash memory NAND flash memory
(注)概念図です
メモリセルごとのアクセスが可能
配線がメモリセル面積を圧迫
複数のメモリセルにまとめてアクセス
減らした配線分の面積をメモリセルに充当
Why NAND flash memory
(配線資源をけちった代償)
 読み/書き/消去単位が大きい
– Program:ページごと(同一ページの上書き不可)
– Read:ページごと
– Erase:ブロックごと
 例
– ページ 16KB
– ブロック 1152ページ(約18MB)
9
Cell array
Plane 0
Cell array
Plane n
Page Buffer Page Buffer
Peripheral
Rowdecoder
Rowdecoder
Rowdecoder
Rowdecoder
ISSCC2018
東芝-WDの3D NANDフラッシュ
「福田昭のセミコン業界最前線」
https://pc.watch.impress.co.jp/docs/column/semicon/1108255.html
Why NAND flash memory(多値化、積層)
 メモリセルあたりの多値化
 積層構造による更なる高集積化
10
東芝メモリHPより
SLC MLC TLC QLC
Bits/cell 1 2 3 4
P/E cycles 100,000 3,000 1,000 100?
Read time 25us 50us 75us >100us?
Program time 200-300us 600-900us 900us-1350us >1500us?
Erase time 1.5-2ms 3ms 5ms >6ms?
出展:https://flashdba.com/2014/07/03/understanding-flash-slc-mlc-and-tlc/
NAND controller
SSDの典型的な構造
 OSからはブロックレイヤドライバからLBA(Logical
Block Address)空間に対してIOコマンドが発行される
 NANDコントローラがホストインタフェース経由でコマ
ンドを解釈
 FTL(Flash Translation Layer)が論理アドレスと物理アド
レスの対応関係を管理
– 不良ブロック管理
• 初期不良ブロック
(歩留まりと製造コストとのトレードオフ)
• 後発不良ブロック
(経年劣化)
– Wear leveling
– 必要に応じて誤り訂正
– Read disturb対策
– Data retention対策
– NANDフラッシュメモリへのインターリーブアクセス
11
OS
File system
Low-level driver
Host interface
Flash Translation Layer(FTL)
不良ブロック管理 Wear leveling
Interleave
Error collection
Garbage collection
Logical to physical
Address mapping
NAND interface
NAND flash memory
FTL(Flash Translation Layer)って何ですか?
 ホストから見たリニアな論理アドレス空間を、NANDフラシュメモ
リの物理アドレスと関連付ける
 FTLの実装によってNANDフラッシュメモリがはじめてストレージ
になる
– 性能や寿命も支配する超重要な役割
– NANDフラッシュメモリちゃんはとってもわがまま
• 世代が変わると性格も変わっちゃう
– 「QLC怖い」に人類はどう立ち向かうのか!!!
12
Host view
LBA space
#0 addr0 write
#1 addr1 write #2 addr1 read
#3 addr1 overwrite
#4 addr1 read
NAND flash
PBA space
#0 addr0 write
#1 addr1 write
#3 addr1 overwrite
#0 LBA0:PBA0
#1 LBA1:PBA1
#3 LBA1:PBA2
NAND flash
LBA-PBA table

NVMCT #1 ~今さら聞けないSSDの基本~

  • 1.
  • 2.
  • 3.
  • 4.
    こんばんは! NANDフラッシュメモリとSSDの 中身をおさらいします – 詳しい人が多そうなのでさらっと SSD(Solid StateDrive)と言えば? – NANDフラッシュメモリが使われているらしいよ – HDDに比べて • 値段が高い? – QLC(Quad Level Cell)が出てきた今、お安いSSDも出てきて いる(Intel SSD 660p 2TB $399 ⇔ Seagate HDD 2TB $100) • 速い? – ランダムアクセス性能はQLCでもHDDの2桁速い • メカ的な衝撃に強いよ – でもQLC(Quad Level Cell)の寿命は短い… – そんなQLCヤバい話は後半戦で 4
  • 5.
    古今東西不揮発メモリ  ストレージを作るには? – データの蓄積と参照ができる –書き込んだデータが永続的に参照できる 不揮発デバイスが必要  不揮発性メモリ – 電源供給を行わない状態でも書き込まれたデータが消えない半導 体メモリの総称 – 例えば • FeRAM(強誘電体型) • MRAM(磁気抵抗型) • PCM(相変化型) • ReRAM(抵抗変化型) • フラッシュメモリ – EEPROM (Electrically Erasable Programmable Read-Only Memory) – NOR Flash Memory – NAND Flash Memory – 何が一番いいの? • ストレージの容量対コストの観点で、NANDフラッシュめちゃ強い 5 詳しくは 福田昭のセミコン業界最前線 https://pc.watch.impress.co.jp/docs/column/semicon/
  • 6.
    Why NAND flashmemory  様々なメモリ素子があるが、所詮は集積されたトランジスタ ご存知の通り微細化には限界が見えてきている  集積回路のトランジスタ数は18か月毎に倍になるという例のアレ  ダイ面積≒コスト  bits/面積でメモリの容量密度が決まる 6 “Microprocessors no longer scale at the level of performance they used to — the end of what you would call Moore’s Law, Jensen Huang(nVIDIA CEO)@COMPUTEX TAIPEI2017も こう言っています 微細化界のグル、2018年9月 An Steegen氏、imecを去る https://www.semiconportal.com/archive/blog/insiders/hattori/181005-minitualization.html
  • 7.
    Why NAND flashmemory ダイ当たりの容量にステータス全振りした 不揮発性メモリ どうやって容量を稼ぐのか? – メモリセルあたりの面積 • Cell area factor:4F2で不揮発メモリで最小 – メモリを構成するセルアレイの面積を大きくして、 セルアレイ以外の回路資源(配線)を減らす – メモリセルあたりの容量を増やす • 1bit SLC • 2bit MLC • 3bit TLC • 4bit QLC – 面積が足りない?縦に積めばいいじゃない • 3D NAND 7
  • 8.
    Why NAND flashmemory (配線資源をけちる) データの読み書きのためには、データを保 持するメモリセルの他に、読出し、書き込 みに必要な配線とロジックを配置する必要 がある 8 Not NAND flash memory NAND flash memory (注)概念図です メモリセルごとのアクセスが可能 配線がメモリセル面積を圧迫 複数のメモリセルにまとめてアクセス 減らした配線分の面積をメモリセルに充当
  • 9.
    Why NAND flashmemory (配線資源をけちった代償)  読み/書き/消去単位が大きい – Program:ページごと(同一ページの上書き不可) – Read:ページごと – Erase:ブロックごと  例 – ページ 16KB – ブロック 1152ページ(約18MB) 9 Cell array Plane 0 Cell array Plane n Page Buffer Page Buffer Peripheral Rowdecoder Rowdecoder Rowdecoder Rowdecoder ISSCC2018 東芝-WDの3D NANDフラッシュ 「福田昭のセミコン業界最前線」 https://pc.watch.impress.co.jp/docs/column/semicon/1108255.html
  • 10.
    Why NAND flashmemory(多値化、積層)  メモリセルあたりの多値化  積層構造による更なる高集積化 10 東芝メモリHPより SLC MLC TLC QLC Bits/cell 1 2 3 4 P/E cycles 100,000 3,000 1,000 100? Read time 25us 50us 75us >100us? Program time 200-300us 600-900us 900us-1350us >1500us? Erase time 1.5-2ms 3ms 5ms >6ms? 出展:https://flashdba.com/2014/07/03/understanding-flash-slc-mlc-and-tlc/
  • 11.
    NAND controller SSDの典型的な構造  OSからはブロックレイヤドライバからLBA(Logical BlockAddress)空間に対してIOコマンドが発行される  NANDコントローラがホストインタフェース経由でコマ ンドを解釈  FTL(Flash Translation Layer)が論理アドレスと物理アド レスの対応関係を管理 – 不良ブロック管理 • 初期不良ブロック (歩留まりと製造コストとのトレードオフ) • 後発不良ブロック (経年劣化) – Wear leveling – 必要に応じて誤り訂正 – Read disturb対策 – Data retention対策 – NANDフラッシュメモリへのインターリーブアクセス 11 OS File system Low-level driver Host interface Flash Translation Layer(FTL) 不良ブロック管理 Wear leveling Interleave Error collection Garbage collection Logical to physical Address mapping NAND interface NAND flash memory
  • 12.
    FTL(Flash Translation Layer)って何ですか? ホストから見たリニアな論理アドレス空間を、NANDフラシュメモ リの物理アドレスと関連付ける  FTLの実装によってNANDフラッシュメモリがはじめてストレージ になる – 性能や寿命も支配する超重要な役割 – NANDフラッシュメモリちゃんはとってもわがまま • 世代が変わると性格も変わっちゃう – 「QLC怖い」に人類はどう立ち向かうのか!!! 12 Host view LBA space #0 addr0 write #1 addr1 write #2 addr1 read #3 addr1 overwrite #4 addr1 read NAND flash PBA space #0 addr0 write #1 addr1 write #3 addr1 overwrite #0 LBA0:PBA0 #1 LBA1:PBA1 #3 LBA1:PBA2 NAND flash LBA-PBA table