|
发表于 2017-9-19 23:42:32
|
显示全部楼层
是这样这个问题涉及的比较复杂。首先这个问题要先从HDD也就是机械硬盘说起。
众所周知,计算机存储中一般是按照1024进位的,也就是说1KB=1024Byte。而HDD厂商是按照1000进位来计算的,所以买到的1TB硬盘只有930多GB。
为什么这样计算呢,其实主要原因不是说厂家为了偷奸耍滑。是因为面向实际硬盘存储的是时候在物理上按1024进是一件很麻烦的事情。
打个比方,中国传统习惯按4位一进,也就是万、亿等等,比如说金额都是多少多少万元,1万元=10000元,那么好了假设我们定义1万元=10240元,那么请问19.37万元是多少元?……这是不是很尴尬?
K、M、G等构成千进位的名词词头本身就是按1000进的,只不过在计算机领域,对于某些特殊的器件(主要就是半导体类型的存储器)由于物理结构的原因(二进制,比如8位、16位的寻址)逻辑器件和数据结构都是2的若干次幂,而2的10次幂=1024正好接近1000,所以这种特殊的情况下就按照1024进了。所以你会发现半导体存储器件说是多少容量就是多少容量,比如一根4GB的内存,就是4GB,不会是3.8GB,如果安在电脑里面显示不足4GB都是因为别的原因比如说操作系统是32位的、集成显卡占用一部分等等。
那为什么U盘、存储卡(SD卡)、SSD(固态硬盘)容量都达不到标称值呢?很多时候媒体商家甚至有些厂家也都是按照和HDD一样的说法来解释的。但实际上并不是这样。这些设备所用的存储颗粒都是足容量的,4GB的U盘,颗粒就是4096MByte的不会少,120GB的SSD(家用),颗粒总容量就是128GB的,不会少。注意没有120GB的颗粒,或者,也没有56GB的颗粒,120GB不是用不同容量拼出来120的,就是128GB的颗粒总容量,比如1颗128GB的或2颗64GB或4颗32GB等等。那么少的容量去哪了?简单来说主要是两个原因,一个是固件,一个是备用(或类似用途空间)。
第一个好理解,U盘、SSD什么的本身要有固件,固件也需要空间来存放,一般就直接划走一部分存储空间存放固件了,这里还包括一些可增长的底层信息,比如说坏块等等。
第二个怎么理解呢,简单理解就是说,①这些设备在工作时候,可能需要一些空间来临时存放或整理数据,这个不能去使用用户可见(可用)的空间,因为打个比方,用户把U盘都装满了,就没有可以临时使用的空间了。
②用来做后备的空间(预留空间)。什么意思,Flash存储芯片擦写一定次数后会损坏,也就是说有可见的寿命,这个是与HDD一个很重要的区别。为了保证在产品的寿命周期内用户的数据不会损坏,用户的可用空间不会越用越小,(为什么要保证?还是刚才的例子,把U盘装满了)需要一些空间进行替换,以保证在可预见的寿命周期内,SSD能可靠使用。
结合①和②,对于SSD来说,这个空间叫做OP空间,这是很重要的,它涉及到SSD的垃圾回收、磨损均衡等等比较复杂而又底层的事情。OP空间可以有多个级别,一级、二级甚至三级或以上,120GB的SSD就是有二级OP,第一级就是很容易看到的颗粒的128GB减去标称的120GB=8GB的空间,二级OP是不容易看到的120GB减去实际格式化容量112GB左右=8GB左右的空间。一般来说Sandforce主控有两级OP,Marvell主控有一级。
所以你买了120GB的SSD格式化之后只有110GB多一点的空间,这个是正常的,也是SSD这种特殊设备所必须的。
那么说点题外的,OP空间就是一部分小容量的存储空间嘛,不能单独用一个存储颗粒吗?有的,有用专门的颗粒做OP空间的SSD,这样可用空间就能保证了,但都不是家用领域的,成本高,家庭用户很难接受,也没有必要。
补充内容 (2017-10-17 21:45):
对了,还有内部底层ECC之类的娇艳,也需要一部分空间。 |
|