SSD 筆記整理
SSD優點
- 性能好
- 功耗低
- 抗震防摔
- 無噪聲
- 身形小巧百變
架構
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
流程
INPUT:Command
OUTPUT:Data、Command Status
三大模組
- 前端接口相關協議
- FTL模組
- 後端和NAND FLASH通信模組
接口 |
Protocol Command |
主機控制器接口 |
標準組織 |
SATA |
ATA/SATA |
AHCI |
ATA-IO |
SAS |
SCSI |
SCSI |
T10 of INCITS |
PCIe |
NVMe |
NVM |
PCIexpress/NVMexpress |
How to Read/Write
主機 -> SSD -> FTL ->flash address -> flash space
*Flash 不能覆寫
練習1
SSD = 128GB
Logical Data Block = 4 KB
要有 (128/4) 10001000 個 Logical Data Block
要有 (128/4) 10001000 * 4B 大小的 Mapping Table
名詞解釋
Over Provisioning = (SSD bare capacity -user capacity)/user capacity
TBW = Capacity * NAND PE cycles/WA
DWPD = TBW/(years * 365 * Capacity)
SLC、MLC、TLC差別
介質信息 |
Speed |
Price |
Capacity |
lifetime |
SLC |
fast |
expensive |
small |
long |
MLC |
medium |
medium |
medium |
medium |
TLC |
slow |
cheap |
big |
short |
SSD 可靠性指標
UBER = uncorrectable bit error rate
RBER = raw bit error rate
MTBF = mean time bwtween failure
What cause error data
- P/E cycle:因為擦寫需要對MOSFET施加高電壓,會導致TOX變薄,讓數據容易出錯,甚至變成壞塊
- Read Disturb:因為FG有電子進入(例如我要讀A,但是我的電壓影響到B或是C,但是A本身不會受影響),額外的電子(帶負電)會讓Vth增加(例如原本要用5V,現在要用多用一些電壓來讓額外的電子跑出來),不過可以透過重新擦寫來恢復
- Program Disturb:因為進行Program前,需要對其他WL施加Vpass電壓,因此會造成跟Read Disturb相似的問題,電子會進入FG中,這邊又可以細分成影響本身的Program Disturb跟影響其他WL的Pass Disturb
- Data Retention Error:因為長期使用下來,電壓的施加會造成TOX的厚度變薄(本來就只有幾nm),因此容易讓本來被trap在TOX或是FG裡面的電子逃脫
差別在於,Disturb會造成Vth增加(右移),而Retention會造成減少(左移)
SSD 功耗
- idle
- max
- standby/sleep
- Devsleep
System Power State
S0 = 工作模式,OS可以管理SATA SSD的Power State
S1 = 低喚醒延遲狀態,系統上下文不會丟失,HW會負責維持所有的系統上下文
S2 = 和S1相似,但處理器和系統Cache上下文會丟失
S3 = 睡眠模式,CPU不運行指令,SATA SSD關閉,內存以外的上下文都會丟失,HW會保存部分的處理器跟L2 cache配置上下文
S4 = 休眠模式,CPU不運行指令,SATA SSD關閉,DDR內容寫到SSD中,所有的系統上下文都會丟失,OS負責上下文的保存跟恢復
S5 = Soft off state,和S4相似,但OS不會保存跟恢復上下文,可以透過滑鼠鍵盤喚醒
SSD 應用場合
- 數據加速層: PCIe SSD
- 熱數據層: SATA/SAS SSD
- 溫數據層: 高性能 HDD
- 冷數據層: HDD
- 歸檔層: 便宜HDD或是磁帶
Flash Memory Chip Architecture
Chip -> DIE(LUN) -> Plane -> Block -> Page -> Word Line -> Storage Unit
在一個LUN中,一次只能獨立執行一個命令(read or write)
在操作Page時,先把Data傳輸到該Page所對應的Cache Register,再把Cache Regsiter中的Data傳輸到Flash Array
為什麼需要Cache Register跟Page Register
- 正常讀:閃存介質->Page Register->Cache Register->主控
- Cache讀:閃存介質->Page Register、Cache Register->主控
- 正常寫:主控->Cache Register->Page Register->閃存介質
- Cache寫:主控->Cache Register
目的:優化閃存的訪問速度
SSD 讀、寫、擦
- Erase:在擦除前,FG上可能有電子,讓Pwell加20V電壓(高電壓),經過足夠的時間,利用穿隧效應,將電子從FG吸引到溝道裡,就可以完成一個Block的Erase(因為一整個Block是共用同一個Substrate)
- Write:要寫的單元WL為高電壓,要寫的BL為0V,不寫的BL為2V
- Read:不讀的WL為5V,保持導通,要讀的為0V
3D Flash Memory
|
BiCS |
TCAT |
Cell Stack |
SONOS(Poly-Si Gate) |
TANOS(Metal Gate) |
Word Line |
Poly-Si(High Rs) |
W(Low Rs) |
Program/Erase 窗口 |
Narrow(SONOS) |
Wide(TANOS) |
Erase方法 |
GIDL |
Bulk Erase |
Result: TCAT is better but more expensive
Cons:
- 堆疊閘級層數目增加帶來的問題:
1.1.串電流的減小(Read Disturb上升->Vread下降->串電流下降)
1.2.高層和低層單元特徵的差異性增大
- 3D Flash size下降,單元間干擾上升(跟2D的問題一樣)
TCAT相較於BiCS:
- 單元間相互干擾降低84%
- 擦寫壽命提高10倍以上
- 編程時間減少50%
- 閥值電壓偏移降低67%
Charge Trap Flash Memory(CT)

距離下降->電容上升 公式:C = εS/4πkd
將原本的Floating Gate(導體)換成Charge Trap(絕緣,SI3N4)
Floating Gate像是水,Charge Trap像是奶酪
Flash Memory 特性
- Flash Bad Block:先天就會有壞塊,但是隨著使用次數增加,壞塊也會增加,因此需要搭配ECC糾錯碼保護,但如果無法糾正,則棄置不用
- Read Disturb:當頻繁的施加正電壓時,會導致輕微寫,但跟壞塊不一樣,可以透過重新擦寫來恢復功能,Read Disturb影響的不是本身,而是其他Page
- Program Disturb:Programmed Cells所在的是接地的,不需要寫的單元所在的String是接一個正電壓,所以也會被輕微寫,跟Read Disturb不同的是,連本身也會受到輕微寫的干擾,但是一樣都可以透過重新擦寫來恢復
- Cell to cell interference:因為FG是導體,所以會有耦合電容,讓電荷發生意外的變化,導致數據讀取錯誤
- Charge Leaked:電荷如果長期不使用,會導致洩漏,可以用重新擦寫來恢復
Flash Memory 壽命
經過擦寫,導致Tunnel Oxide(TOX)厚度變薄,不只是Floating Gate的電子容易釋放出來,連被TOX Trap住的電子也會容易釋放出來(學長認為是主因)
主要導致三種故障:
- Erase後的Vth變大,從原本的-Vth向0V靠近,所以讀的時候溝道的電流就會變小,Sensor就不容易檢測到,Read會出錯
- Write後的Vth變小,從原本的+Vth向0V靠近,Sensor容易誤檢測成讀過的,所以就不會寫
- Write後的Vth變大,有可能會大很多,導致即使施加更大的電壓也有可能是截止的
可以把所有的Wordline設定為0,來檢測所有Bitline的電流,如果電流為0(V=IR),也就代表Vth接近0,可以進一步的把該Block標為Bad Block
Solution of P/E Error
- Wear Leveling
- Decrease Write Amplification
- Better ECC
Trap-assisted tunneling(TAT):
Charge Detrapping:
Read Error 原因
- P/E cycle increase:TOX老化,導致電子進出變容易,因為儲存的電荷容易發生異常
- Data Retention:在儲存單元的電子流失,導致Vth分布向左移動
- Read Disturb:讀的時候,會先施加Vpass在其他Wordline上面,造成Read Disturb
- Disturbance Between Storage Unit:FG是導體,兩個導體之間會形成電容,所以相鄰的電荷會受影響
- Write Error:通常會發生在有Lower Page跟Upper Page的MLC或是TLC 2-pass
Read Retry
透過不斷改變vref來試著找到可以讀出數據的電壓點,理論上只要電壓分布沒有重疊就可以用Read Retry來恢復數據
ISPP
全名叫Increment Step Programming Pulse,每次電壓的步進增量都是設定好的,將Vpp施加在Cell CG上,檢查Vth是否有超過設定的值,如果有就結束,沒有就再施加更大的Vpp,如果施加的次數超過閥值則失敗
