- 已加入
- 3/12/04
- 訊息
- 3,329
- 互動分數
- 2
- 點數
- 38
請問一下 trim 的功能是什麼呢?
MLC SSD寫入檔案以page為單位,但是刪除檔案卻是以1個block(5 pages組成)
SSD 1個page有4KB,所以一次刪除就要刪除20KB的檔案
![trim1.png](http://reddeamo.myweb.hinet.net/x25v/trim1.png)
現在有三個圖檔,分別是4K、8K、12K
![trim2A.png](http://reddeamo.myweb.hinet.net/x25v/trim2A.png)
![trim2B.png](http://reddeamo.myweb.hinet.net/x25v/trim2B.png)
![trim2C.png](http://reddeamo.myweb.hinet.net/x25v/trim2C.png)
如果把第一、第二張圖寫入SSD內,再刪除第一張圖,SSD並不會馬上刪除該檔案(作業系統會標記以刪除檔案,但實際上沒有刪除)
![trim3.png](http://reddeamo.myweb.hinet.net/x25v/trim3.png)
現在要把第三張圖寫入該block內,需要三個pages的空間,但是實際上卻只有兩個pages的空間
所以SSD會把該block的資料讀到cache中,把該block完全清空
![trim4.png](http://reddeamo.myweb.hinet.net/x25v/trim4.png)
在cache中,才把之前要刪除的檔案刪除
![trim5.png](http://reddeamo.myweb.hinet.net/x25v/trim5.png)
接下來在cache中,寫入第三張圖的資料
![trim6.png](http://reddeamo.myweb.hinet.net/x25v/trim6.png)
cache才再把資料寫回SSD上
![trim7.png](http://reddeamo.myweb.hinet.net/x25v/trim7.png)
Trim的功用就是刪除檔案的時候,作業系統會在空閒的時候自動先進行上面的刪除檔案動作,以免在要寫入檔案的時候才刪除檔案
這樣可以避免SSD發生停頓現象、提升WL(wear leveling)
最後編輯: