如今,面向個人用戶的消費級SSD固態硬盤產品,主流容量已經來到TB級別。
在筆記本電腦等便攜設備上,SSD已經實現了對傳統機械硬盤的幾乎完全替代,而面向數據中心的企業級SSD,最大容量已做到122TB,遠超尺寸更大的機械硬盤。
但是關於SSD的容量如何計算、如何顯示,很多用戶依然存在疑惑,這裡就給大家集中講一講!

容量為30.72TB的NVMe SSD
1、SSD容量的定義
根據JEDEC固態技術協會)給出的定義,SSD容量指的是用戶可以尋址訪問的容量,即User-Addressable Capacity,通常又被稱為SSD的“容量點”或“用戶容量”,用戶發出的所有讀、寫操作均不能超出該容量范圍。
目前,幾乎所有硬盤廠家都以GB或TB作為硬盤的容量單位,如512GB、0.72TB。
- GB:Gigabyte的簡寫,1GB=10^9字節,512GB=512×10^9字節
- TB:Terabyte的簡寫,1TB=10^12字節,30.72TB=30720GB=30.72×10^12字節
GB、TB由IEC國際電工協會定義,在IEC60027-2(最新版本為IEC60027-2:2019)規范標准中有詳細說明,而G、T等十進倍數詞頭在國務院制定的法定計量單位中也被認可和使用。

除了GB、TB,形容硬盤容量的單位還可以是MB、PB、EB等,不同單位的換算關系參考上述表格。
在“容量點”、“用戶容量”之外,SSD通常還存在用戶無法尋址訪問的容量,也就是所謂的“預留空間”Over-Provision,簡稱OP),用於SSD實現磨損均衡、垃圾回收、存放映射表、替換壞塊等用途。
相同固件、硬件的前提下,SSD的預留空間越大,硬盤可以實現的每天全盤寫入次數就越高,4k隨機寫入性能也會越好。
為了讓SSD能夠在市場競爭中提供領先的寫入壽命與性能,不同廠家對預留空間的配置策略存在差異,不過由於它並不包含在用戶容量之內,在此也就不做展開。
2、容量在操作系統中的顯示
目前,所有基於馮·諾依曼提出的存儲程序概念設計的計算機,其指令與數據都以二進制形式儲存在存儲器當中,SSD的容量在計算機操作系統中的顯示也是如此。
GiB、TiB同樣由IEC國際電工協會定義,專門用來表示“1024進位”的數據大小,即二進制換算下,SSD所提供的容量。
這一方法也在2008年被納入國際標准化組織(ISO)文件當中。
- GiB:Giga Binary Byte的簡寫,1GiB=2^30字節,1GB約合0.9313GiB
- TiB:Tera Binary Byte的簡寫,1TiB=2^40字節,1TB約合0.9095TiB
- KiB、MiB、PiB等,以此類推。
由上可知,標注容量為1TB的SSD(以十進制計算時表示為1000GB),在操作系統中也就是二進制下為931GiB,在此基礎上扣除EXT4、NTFS等文件系統帶來的開銷,最終顯示容量會低於931GiB。
計算公式為:(1000×1000×1000)÷(1024×1024×1024)≈0.93132
1000GB×0.93132≈931.32GiB;
不過,也有些硬盤廠商不是1000GB計算的,而是按照1024GB,這時候操作系統最終顯示容量為:
1024GB×0.93132≈953.67GiB;
此外,在大部分操作系統的圖形界面中,GiB還會被顯示為GB而不經過任何換算。
當然,大部分時候無論廠商、經銷商還是用戶,都不會刻意用GiB這樣的寫法,而是依然直接寫作GB,難免造成更進一步的混亂。

3、SSD容量的識別和計算
SSD上電初始化過程中,主機通過Identify命令識別SSD可尋址的邏輯區塊地址(Logical Block Address,以下簡稱“LBA”)數量以及對應的邏輯區塊大小(Logical Block Size),經計算得出SSD的容量,也就是用戶可尋址的容量。
4、固態硬盤容量的識別和計算
4.1、IDEMA LBA1-03標准(LBA數量和SSD容量計算)
目前,國際普遍使用的LBA計算方法和SSD容量計算公式,遵循IDEMA(International Disk Drive Equipmentand Materials Association,國際磁盤設備和材料協會)LBA1-03標准規范。
IDEMA成立於1986年,成員單位包括東芝、日立、三星、西部數據、希捷等存儲行業領軍企業,戴爾、惠普等OEM廠商,以及微軟等操作系統供應商。
在過去的幾十年間,通過IDEMA和成員單位的共同努力,為存儲設備的小型化、實現更高的存儲密度、不斷優化的存儲成本等推動行業持續前進做出卓越貢獻。
具體公式如下:
- 邏輯區塊大小為512字節:
LBA數量=97696368+1953504×(SSD容量(GB)-50.0)
SSD容量(GB)=(LBA數量-97696368)/1953504+50.0
- 邏輯區塊大小為4096字節:
LBA數量=12212046+244188×(SSD容量(GB)–50.0)
SSD容量(GB)=(LBA數量–12212046)/244188+50.0
其中,97696368、1953504、12212046、244188和50均為常數。
以3.84TB SSD為例:
- 邏輯區塊大小為512字節:
LBA數量=97696368+1953504×(3840-50.0)=7501476528
SSD容量(GB)=(7501476528-97696368)/1953504+50.0=3840GB
- 邏輯區塊大小為4096字節:
LBA數量=12212046+244188×(3840–50.0)=937684566
SSD容量(GB)=(937684566–12212046)/244188+50.0=3840GB=3.84TB
需要指出的是,LBA1-03中的公式並不適用於早年間(ATA時代或更早)容量在50GB以下的硬盤。
對於T10PI(Protection Information,保護信息)的使用,IDEMALBA1-03也做了相關規定:
將硬盤格式化為支持T10PI,會在每個區塊後面添加額外的8個字節,使邏輯區塊大小變為512+8字節或4096+8字節。
但由於這額外的8個字節並不能夠被用戶使用,而是屬於協議開銷,因此硬盤格式化為支持T10PI之後所能提供給用戶的LBA數量,應和沒有被格式化為支持T10PI的情況保持一致。

憶恆創源PBlaze7 7940 E1.S 15.36TB
4.2、JESD218標准(LBA數量和SSD容量計算)
JESD218規范提出,為實現在同一應用下,SSD和機械硬盤的兼容,與IDEMA容量計算方法保持一致,SSD的LBA數量計算方法和容量換算,應遵循以下公式:
- 邏輯區塊大小為512字節
LBA數量=21168+1953504×SSD容量(GB)
SSD容量(GB)=(LBA數量–21168)/1953504
- 邏輯區塊大小為4096字節
LBA數量=2646+244188×SSD容量(GB)
SSD容量(GB)=(LBA數量–2646)/244188
通過和IDEMA公式對比,可發現JESD218對IDEMA公式中的50GB進行了LBA數量的轉換,兩個公式在計算和結果層面完全相同。
還是以3.84TBSSD為例:
邏輯區塊大小為512字節
LBA數量=21168+1953504×3840=7501476528
SSD容量(GB)=(7501476528–21168)/1953504=3840GB=3.84TB
邏輯區塊大小為4096字節
LBA數量=2646+244188×3840=937684566
SSD容量(GB)=(937684566–2646)/244188=3840GB=3.84TB
不管是LBA1-03,還是JESD218,它們都不會對SSD的預留空間進行統計;而對於PI或者DIF的使用,兩者的規定也是完全相同。
4.3、SFF-8447標准(LBA數量計算)
為滿足存儲技術以及硬盤容量的未來發展需求,SNIA(Storage Networking Industry Association,全球網絡存儲工業協會)針對8TB以上大容量硬盤、更多類型的邏輯區塊大小以及PI的使用,對IDEMALBA1-03進行了補充,推出SFF-8447規范:
對於當前容量不超過8000GB,邏輯區塊大小512字節、512+8字節PI/DIF,以及邏輯區塊大小為4096字節、4096+8字節PI/DIF的SSD,其LBA計算方法和IDEMALBA1-03保持一致;
對於容量超過8000GB,邏輯區塊大小為5XX字節或4XXX字節的SSD,則引入CEILING、FLOOR函數,計算也會相對復雜。
其中,5XX指512、520、524或528字節的邏輯區塊大小;4XXX指4096、4160、4192或4224字節的邏輯區塊大小。
- 邏輯區塊大小為512字節,不含PI或DIF:
LBA數量=ceiling(SSD容量字節數/512,2^21)
- 邏輯區塊大小為520字節、524字節或528字節,以及5XX字節+PI或DIF:
LBA數量=floor[ceiling(SSD容量字節數/512,2^21)×512/(邏輯區塊字節數+PI或DIF字節數)×0.995,2^21]
- 邏輯區塊大小為4096字節,不含PI或DIF:
LBA數量=ceiling(SSD容量字節數/4096,2^18)
- 邏輯區塊大小為4160字節、4192字節或4224字節,以及4XXX字節+PI或DIF:
LBA數量=floor[ceiling(SSD字節數/4096,2^18)×4096/(邏輯區塊字節數+PI或DIF字節數)×0.995,2^18]
0.995是適應性調整因子(Fit Adjustment Factor),為常數。










