2011-03-14 20:50:50| 分類: 測評探索 | 標(biāo)簽:trim ssd 寫入 刪除 數(shù)據(jù) |字號大中小 訂閱
本文轉(zhuǎn)自http://bbs.pceva.com.cn/thread-2407-1-1.html
我相信聽到過買SSD要買支持Trim的玩家不在少數(shù),不過我敢肯定大多數(shù)玩家到目前為止還搞不懂Trim到底是干啥的,只是一味跟風(fēng),今天在這里我就稍微詳細(xì)的解釋下Trim這個命令。
Q: 為啥我們需要Trim?
A: 我們都知道,當(dāng)一個文件被刪除后,操作系統(tǒng)其實并沒有刪除數(shù)據(jù) - “事實上,它只是在硬盤前的索引區(qū)里標(biāo)記這塊文件占用的區(qū)域為可覆蓋的,所以下次數(shù)據(jù)將要再次寫入的時候,可以覆蓋寫入這塊被標(biāo)記的區(qū)域。這也就是為啥那些所謂的文件恢復(fù)軟件能恢復(fù)的道理。(數(shù)據(jù)依然存在)。”
這里要注意一點: 硬盤本身是不知道當(dāng)前數(shù)據(jù)的狀態(tài)的,他只是被控制著做這做那。 上面這一套在普通的機械硬盤上工作起來非常完美,因為他們可以直接覆寫舊的區(qū)域,但是當(dāng)用到NAND閃存上就行不通了,當(dāng)全部閃存被寫滿一遍后,沒有空余(從未寫過)的塊可以被使用的情況下,速度就下來了。
在固態(tài)硬盤閃存內(nèi),數(shù)據(jù)存儲一般是以page(頁)為最小單位存儲的(典型的為4KB),而128個page組成了一個block(塊),數(shù)據(jù)可以以4KB大小的頁來讀取和寫入,但卻只能以512KB(128 page)的塊大小來刪除。當(dāng)讀取數(shù)據(jù)或者寫入到一個沒有被使用過的page上時,固態(tài)硬盤的速度是很快的,但是覆寫數(shù)據(jù)的話,就比較復(fù)雜了,需要許多步驟來完成。步驟可見下圖:
1. 系統(tǒng): Win7, 2008R2 , Linux核心2.6.28以上。
2. 固件: SSD的廠商在固件里要放有Trim算法。
3. 驅(qū)動: MS的驅(qū)動,Intel的AHCI驅(qū)動目前支持。 別的要看之后的更新了。
以上3點缺一不可。
RAID陣列里的盤明確不支持TRIM,不過RAID可以支持GC。詳細(xì)操作請看 手動GC
當(dāng)前固件下的SF1200和SF1500主控SSD,請使用Intel的AHCI驅(qū)動,MSAHCI不支持TRIM。這個bug是因為此主控算法極其特殊,采用改革的壓縮算法,造成刪除數(shù)據(jù)時,Trim命令發(fā)送給了錯誤的頁和塊,造成Trim無效。
附:百度文庫中關(guān)于Trim的描述http://baike.baidu.com/view/926428.htm
Trim的作用
原本在機械硬盤上,寫入數(shù)據(jù)時,Windows會通知硬盤先將以前的擦除,再將新的數(shù)據(jù)寫入到磁盤中。而在刪除數(shù)據(jù)時,Windows只會在此處做個標(biāo)記,說明這里應(yīng)該是沒有東西了,等到真正要寫入數(shù)據(jù)時再來真正刪除,并且做標(biāo)記這個動作會保留在磁盤緩存中,等到磁盤空閑時再執(zhí)行。 這樣一來,磁盤需要更多的時間來執(zhí)行以上操作,速度當(dāng)然會慢下來。
而當(dāng)Windows識別到SSD并確認(rèn)SSD支持Trim后,在刪除數(shù)據(jù)時,會不向硬盤通知刪除指令,只使用Volume Bitmap來記住這里的數(shù)據(jù)已經(jīng)刪除。Volume Bitmap只是一個磁盤快照,其建立速度比直接讀寫硬盤去標(biāo)記刪除區(qū)域要快得多。這一步就已經(jīng)省下一大筆時間了。然后再是寫入數(shù)據(jù)的時候,由于NAND閃存保存數(shù)據(jù)是純粹的數(shù)字形式,因此可以直接根據(jù)Volume Bitmap的情況,向快照中已刪除的區(qū)塊寫入新的數(shù)據(jù),而不用花時間去擦除原本的數(shù)據(jù)。
以上就是Trim的原理以及真正作用。
注意:如果SSD組RAID0后,將失去Trim功能
win7下Trim啟用的驗證方法
其實Windows 7默認(rèn)狀態(tài)下Trim指令是開啟的,如果想查詢目前的Trim指令狀態(tài),我們可以在管理員權(quán)限下,進入命令提示符界面,輸入“fsutil behavior QUERY DisableDeleteNotify”,之后會得到相關(guān)查詢狀態(tài)的反饋。在這里,提示為“DisableDeleteNotify = 0”即Trim指令已啟用;提示為“DisableDeleteNotify = 1”即為Trim指令未啟用。 并不是操作系統(tǒng)提供Trim指令支持,所有SSD都能享受到Trim技術(shù)所帶來的好處,這還需要固態(tài)硬盤的固件支持才能實現(xiàn)。一些主要的固態(tài)硬盤主控芯片廠商已經(jīng)提供了支持Trim的固件(例如英特爾"X25-M G2"),不過也有廠商開發(fā)出不依賴操作系統(tǒng)的垃圾回收技術(shù),通過回收不再使用的閃存區(qū)塊加入負(fù)載平衡算法,防止固態(tài)硬盤在長期使用后速度下滑,并延長閃存使用壽命,過程完全在固態(tài)硬盤內(nèi)部完成。
那么Trim到底解決了什么問題?就是之前SSD刪除數(shù)據(jù)時,操作系統(tǒng)只是標(biāo)記數(shù)據(jù)被刪除,而數(shù)據(jù)實際上還保存在SSD上,當(dāng)有新的數(shù)據(jù)寫入時,SSD需要將原來在SSD上的數(shù)據(jù)搬家,而搬家過程就產(chǎn)生了無謂的寫入,而Trim實際上就是解決了這個問題,讓數(shù)據(jù)真正的被刪除,或者說不再出現(xiàn)搬家的情況!
而這個功能也并非非要win7才行,xp也一樣可以,用intel ssd toolbox就可以了,里面有內(nèi)置的優(yōu)化器,可以完成優(yōu)化功能。以下組合都可以讓Trim技術(shù)生效。
1:如果是win7,安裝微軟的native ahci,不需要安裝intel ssd toolbox
2:如果是win7,安裝Intel的Intel Matrix Storage Manager驅(qū)動,并安裝intel ssd tool box
3:如果是winxp,安裝Intel的Intel Matrix Storage Manager驅(qū)動,并安裝intel ssd tool box
聯(lián)系客服