要知道容量大小,需先讀取sata裝置的identify data,缺省略去此步。
假設已經讀取出sata device identify data,讀取word 100~103的lba資料(cf卡需讀取word 60~63)作為計算容量大小的資料來源(記為s),
容量大小以g為單位,計算式為 size = (s / 2 / 1024 / 1024) / 93%
ps: 因為每個扇區為512b或者4k,因為測試用到的硬碟基本都小於3t,這裡取512b計算,s/2後即可算得該裝置上 1k資料空間的個數。
簡化為,僅讀取word 61,62(記為s2),忽略低16位資料,
size = (s2 / 2 / 16 + 1) / 93%
ps:「+1」 的作用為, 可以保證顯示值為整數,比如,顯示為32.0g,而不是31.9g
93%為個人估算,93%~96%均可嘗試一下
實測結果:固態硬碟,cf卡,機械硬碟均可以正確計算。
資料儲存容量大小的描述
資料越來越多,硬碟也越來越大,開始是幾兆,然後幾十,幾百兆,目前都發展到以t來作為儲存單位了。這些單位都有哪些呢?如下 kilo k meg m giga g tera t peta p exa e zetta z yotta y 在電子及物理領域,如物理的質量 功率 能量 電壓 電流等,是以10為...
修改虛擬機器的硬碟容量大小
很多人在安裝虛擬機器linux的時候,為了節省硬碟空間,把硬碟容量設定得較小,可是後來發現硬碟容量不夠用了。在vmware中又不能直接修改虛擬機器的硬碟容量大小,或者重建虛擬機器系統,非常麻煩。其實在vmware6.0安裝目錄下有乙個命令列工具 vmware vdiskmanager.exe 程式,...
Linux管道的容量大小及管道的資料結構
一.管道容量 我們通過ulimit a命令檢視到的pipo size定義的是核心管道緩衝區的大小,這個值的大小是由核心設定的 而pipe capacity指的是管道的最大值,即容量,是核心記憶體中的乙個緩衝區。1.首先我們通過命令來看一下核心管道緩衝區的大小 2.我們可以通過乙個程式來測試管道的最大...