点击上方“
朱小厮的博客
”,选择“
设为星标
”
回复”
1024
“获取独家整理的学习资料
混迹技术版“十万个为什么”多日,皮皮特来分享,先讲一则“尬笑话”。一教授去中关村买电脑。售后推荐,我们的电脑
性能卓越,
不超过2kg,适合您使用,
于是买之。
次日,教授又来,“我昨天称量,一共2.04kg,你们这是欺骗消费者。”客服解释,“您称不准。”教授暴怒:“我是国内首屈一指的称类专家,标准砝码就是从我手里出去的!”
客服退下,经理上,“您看,当天买下的时候,确实少于2kg,但是您在这里装了很多软件,还存了很多东西,您想想,这些东西换成书,要多重啊,即使我们这么先进的电脑,也要重一点啊。”
遂教授满意而归。
皮皮
只想真诚地发问:
so?
存满数据的硬盘比空硬盘重?
为此,
皮皮
决定从多方渠道资料入手,找到真相。
在验证真相之前,首先我们要对硬盘有一个浅显的认识。
空硬盘什么样?
空硬盘什么也没有?其实并不是。磁介质机械硬盘出厂时做过低级格式化,拿到用户的手上时已经被写入柱面、磁道、扇区等等信息,在没有内容的数据区,都被磁化成0的内容。所以空机械硬盘是绝大部分为0的内容,很小部分为数据(假设0,1参半)。
/ 存满数据后有什么变化?/
磁介质硬盘数据是通过调整磁介质磁极方向来存储的。有人比喻:机械硬盘是一个筐子,磁介质是里面放的很多香蕉。0是香蕉柄朝北,1是香蕉柄朝南。
存满数据就相当于,原来香蕉柄都朝北,现在一半朝北一半朝南。
请问筐子重量会不会变化呢?
当然不会!
SSD的NAND Flash存储,有人认为是测量被囚禁在浮动栅(Floating Gate)里面的电子的数量,大于100就是1,小于就是0。因为电子有质量,空的SSD以前都是0,现在被囚禁了很多电子,导致0,1参半,所以会重一点点。但是空SSD实际上绝大部分是1,存满数据实际上是0变多了,
那是不是意味着存满数据,SSD变轻了呢?
实际上,存0比存1重,所以SSD会变重。那么为什么存0反倒比存1重呢?这要从NAND Flash的存储原理说起。
闪存采用MOSFET来存放数据,
它由:
源极(Source)、漏极(Drain)、浮动栅(Floating Gate)和控制栅(Control Gate)组成。
相对场效应管的单栅极结构,闪存是双栅极结构。
浮动栅是由氮化物夹在二氧化硅材料(Insulator)之间构成。
MOSFET结构如下图:
数据就存放在Floating Gate之中,一个门可以存放1bit数据。如图所示,门中电压有个阈值Vth。如果检测到电压超过Vth,那么便认为这个bit是0,数据的写入和擦除,都通过Control Gate来完成。
在
Control Gate
加正电压,将电子(带负电)吸入
Floating Gate
。在此后,由于
Floating Gate
上下的二氧化硅材料并不导电,这些电子被囚禁(Trap)在
Floating Gate
之中,出不去了。这样无论今后
Control Gate
电压有否,这个状态都会保持下去,所以闪存可以掉电保存数据。操作完毕后,该闪存单元存储的是0,擦除操作(Erase)刚好相反:
在
Source
加正电压利用
Floating Gate
与
Drain
之间的隧道效应,将注入到
Floa
ting
Gate
的负电荷吸引到
Source
,排空
Floa
ti
ng
Gate
的电子。这时读取的状态是1。
那为什么有电子是0,没电子是1呢?因为读取的时候,需要给
Control Gate
加一个低的读取电压,对于被Program过的闪存单元来说,被囚禁的电子可以抵消该读取电压,造成
Source和Drain
之间是处于被关闭的状态:
如果是被擦除过的就刚好相反,
Source和
Drain
在
Control Gate
的低电压作用下,处于导通状态:
通过向
Control Gate
加读取电压,判断
Source-
Drain
之间是否处于导通状态来读取闪存单元的状态,如果被Program过的,就是处于关闭OFF状态,为0;而被Erase过的,就是处于导通状态ON,为1。
总结一下,就是Floating Gate里面没有电子,就是1;
如果有电子,就是0。
因为0有少许电子,比没有电子的1的状态要重一些。