大部份SSD其內部的背景garbage collection機制完全獨立於Trim,就算在作業系統不支援Trim的情況下,SSD依然可以將本身的效能維持在良好的狀態。
Trim指令是不可逆的,沒有回復的可能性。
傳統Trim command定義無法被排入Queue裡,這使得它不容易跟read/write queue command混用,於是SATA 3.1協議針對這點推出了QUEUE TRIM COMMAND來補救。
TRIM is implemented under the DATA SET MANAGEMENT command (opcode 06h)
跟Trim相關支持的Bit如下:
Word 69 bit 14 Deterministic data in trimmed LBA range(s) is supported
Word 69 bit 5 Trimmed LBA range(s) returning zeroed data is supported
Word 169 bit 0 0 the TRIM bit in the DATA SET MANAGEMENT command is supported
TRIM SUPPORTED Bit
Device是否支援Trim command。
DRAT SUPPORTED Bit (Deterministic read after TRIM is supported)
此Bit為1時,每次Trim後Read LBA取得的資料都是固定的。
RZAT SUPPORTED Bit (Trimmed LBA range(s) returning zeroed data is supported)
此Bit為1時,每次Trim後Read LBA取得的資料都是固定的,且拿到的資料都為0。
| TRIM SUPPORTED | DRAT SUPPORTED | RZAT SUPPORTED | Description | 
| 0 | Should be 0 | Should be 0 | 不支援Trim功能。 | 
| 1 | 0 | Should be 0 | Device不保證每次Read Trimmed LBA會回一樣的數據。 | 
| 1 | 1 | 0 | Device保證每次Read Trimmed LBA的到的結果都是固定的,但FW可以選擇要寫什麼值進去。(換句話說,只要你能夠保證資料不變,讓它維持在原先的值也是可以的。) | 
| 1 | 1 | 1 | Device保證每次Read Trimmed LBA的結果都是固定且為零。 | 
沒有留言:
張貼留言