今天,就让我们从芯片角度,了解一下存储设备实际容量总是小于标称值更深层次的原因。
随着存储技术的飞速发展,存储芯片的存储密度和存储速度都得到了很大的提升,而存储芯片的成本却在不断降低,还记得几年前买个8G的U盘需要60块大洋,而现在仅需要20多块钱,手机也从几年前的4G机身内存飙升到现在的64G、128G内存。
话虽这么说,但是我们买到手上的货,不管是优盘,硬盘或是手机甚至是存储芯片,可用的存储容量很多都和标称容量不一致,总是会少个几兆甚至几G。我们不禁会问,现在存储成本越来越低,这些厂商怎么还这么抠。而在这里,我要反问一句:8G的芯片,我们能用多少。
说到存储芯片,种类可谓是五彩缤纷,EEPROM、Nor Flash、Nand Flash、eMMC等等,Nor Flash和Nand Flash是现在市场上两种主要的非易失闪存芯片,Nand flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,Nand结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。同时由于Nand Flash 擦除速度远高于Nor Flash,因此Nand Flash在大容量存储领域应用更加广泛,比如U盘、SSD固态硬盘和eMMC存储器里面的主要存储单元等都是应用的Nand Flash。
还记得我的问题吗,8G的芯片,我们到底能用多少,实际容量小于标称容量的情况一般发生于Nand Flash和eMMC芯片,而eMMC芯片的主要存储单元也是Nand,Nand Flash虽然背后有无数光环,但是家家有本难念的经,Nand由于生产工艺及结构的原因,无法避免的会产生坏块,之前某些厂家也有做过消除坏块的努力,但是效果都不理想,坏块是随机产生的,因此厂家并不能完全控制可用存储块的容量,一般eMMC芯片用户可用的存储容量都会达到标称容量的90%以上,比如三星的一款eMMC芯片的存储容量如下图:
正是由于坏块的存在,我们拿到手的芯片,数据手册上明明标明的8G容量,我们却用不了8G。
其次,很多小伙伴们都有一个误区,认为1GB=1024MB=1024KB=1024Byte,这在大部分情况下是正确的,但是其实很多标称容量是按照1GB=1000MB=1000KB=1000Byte计算,1999年国际电工协会(IEC)制定了“KiB、MiB、GiB”二进制单位,其实这些单位才是按照1024进行换算的。这样,我们购买的8G芯片,即使在没有坏块的情况下,也只有约为8×1000^3&pide;1024^3≈7.45G的容量,这个容量是不是很熟悉。目前主流操作系统所采用的存储单位如下:
微软、安卓都是采用的是GiB这个单位,而U盘、硬盘很多都是采用的GB这个单位,这也解释了买到手的U盘少了好几百兆的问题。