都1202年了,為什么SATA固態(tài)硬盤依舊跑不出理論性能6Gbps?
SATA3.0的正式名稱是SATA Revision 3.0,或者SATA 6Gbit/s。6Gbit/s即每秒可傳輸6G比特數(shù)據(jù),這個數(shù)字是如何跟我們常見的固態(tài)硬盤讀寫速度聯(lián)系起來的呢?

常見的SATA固態(tài)硬盤在CrystalDiskMark測得的順序讀取速度都在550MB/s左右。即便考慮到1字節(jié)=8比特,還是難以同750MB/s(6000/8)直接聯(lián)系起來。為什么SATA固態(tài)硬盤跑不到理論速度?

顯然,我們漏掉了一些影響因素。數(shù)據(jù)在電腦中以二進制0和1來表達,在傳輸過程中為保持信號DC平衡,連續(xù)的0或1不能超過5位。因此需要使用8B/10B算法將1個字節(jié)對應(yīng)的8個比特數(shù)據(jù)編碼成10比特。

8B/10B編碼廣泛應(yīng)用于SATA3.0、USB3.0和PCIE1.0/2.0中,它確保了數(shù)據(jù)傳輸穩(wěn)定,但也會損失20%的傳輸帶寬。

因此,SATA3.0的有效傳輸帶寬就從750MB/s縮水到600MB/s(750x8/10)。群聯(lián)PS3111主控支持數(shù)據(jù)壓縮,使用CrystalDiskMark全零測試可以得到的讀取速度峰值依舊達不到600MB/s的理論數(shù)值,這其中的差距又是怎樣產(chǎn)生的呢?

數(shù)據(jù)在SATA中的傳輸需要遵守一定的規(guī)則,傳輸層將控制信息和要傳輸?shù)臄?shù)據(jù)被封裝在幀信息結(jié)構(gòu)(FIS)當中,并負責(zé)流量管理和控制。

鏈路層計算CRC糾錯信息、加擾并進行8B/10B編碼,再加上SOF和EOF封裝成Frame。

這些復(fù)雜的控制過程都會產(chǎn)生一定的延遲和損耗,所以最終能實現(xiàn)的速度就會比600MB/s的理論數(shù)值低一些。

作為普通消費者我們無需詳細了解上面這些復(fù)雜的技術(shù)細節(jié)。我們只需知道,固態(tài)硬盤很少用到出純粹的順序讀取或順序?qū)懭?,作為系統(tǒng)盤使用時處理的更多是隨機存取,特別是讀取和寫入一起發(fā)生的混合讀寫,而這些使用模式通常并不會觸及到SATA3.0的帶寬限制。
當然,新一代NVMe協(xié)議可以降低存取延遲,并且支持HMB主機緩存加速技術(shù)。再加上目前入門級的NVMe固態(tài)硬盤和SATA型號的差價已經(jīng)很小,所以只要主板支持,還是NVMe SSD更香。