问题：﻿写满数据的硬盘是否比空硬盘重？ 数据是否有重量？
话题：﻿计算机、物理学、冷知识、硬盘、计算机科学
回答：﻿谢邀。刚好前一阵有感而发写了篇文章：老狼：存满数据的硬盘是不是比空硬盘重？。刚好回答这个问题，简单来说就是存了数据后，机械硬盘只有磁级变化，质量不变；而SSD因为锁住了更多的电子（但要记住，是0变多了，而不是1），所以变重了，尽管只有几乎可以忽略的一点点！平时就喜欢听喜马拉雅的《卓老板聊科技》，作为路上打发时间的利器，卓克的这个节目强调科学思维，其内容深度和广度确实让我大开眼界。昨天偶尔听到一集，关于“存满数据的硬盘是不是比空硬盘重？”的问题，角度十分刁钻，让我也开了脑洞。不过，其中关于SSD固态硬盘的存储部分有些许错误，虽然瑕不掩瑜而且结论正确，我还是想要澄清部分对SSD原理广泛的误解。和卓克一样，我也将硬盘分为传统磁介质硬盘和固态硬盘两种，两种硬盘有不同的答案。和他不同的是，我希望从空硬盘什么样，存满数据的硬盘什么样的角度来推导出结论。空硬盘什么样？大家买回去的硬盘上面什么也没有，还需要重新分区等等操作，是不是硬盘上面就空空如也，什么也没有呢？其实并不是。磁介质机械硬盘出厂时做过低级格式化，拿到用户的手上时已经被写入柱面、磁道、扇区等等信息，在没有内容的数据区，都被磁化成0的内容。所以空机械硬盘是绝大部分为0内容，很小部分为数据（假设0，1参半）。SSD存储介质采取NANDFlash。为了简化起见，我们只讨论SLC。MLC/TCL/QLC也类似，并不影响结果。空的SSD出厂前已经被写入原始的FTL映射表，空闲块也已经被预擦除（不是必须，结果一样）。和卓克认为的不一样，被擦除后是全1，也就是说空SSD是绝大部分是1，很小部分是数据（也假设0，1参半）。存满数据后有什么变化？为了简化起见，我们假设存满的数据也都是0，1参半。那么存满数据后硬盘发生了什么变化呢？磁介质硬盘数据是通过调整磁介质磁极方向来存储的。卓克的比喻十分形象，这里借用一下：机械硬盘是一个筐子，磁介质是里面放的很多香蕉。0是香蕉把朝北，1是香蕉把朝南。存满数据就相当于，原来香蕉把都朝北，现在一半朝北一半朝南。请问筐子重量会不会变化呢？当然不会！SSD的NANDFlash存储，卓克认为是测量被囚禁在浮动栅（FloatGate）里面的电子的数量，大于100就是1，小于就是0。因为电子有质量，因为空的SSD以前都是0，现在被囚禁了很多电子，导致0，1参半，所以会重一点点。但是我们前面提到，空SSD实际上绝大部分是1，存满数据实际上是0变多了，那是不是意味着存满数据，SSD变轻了呢？实际上，是会重一点。卓克犯了两个错误，负负的正，结论反倒是正确的。实际上存0比存1重，所以SSD会变重点。那么为什么存0反倒比存1重呢？这要从NANDFlash的存储原理说起。闪存的工作原理闪存的基本原理在1980年代之后基本就没有变化过。它的构成和场效应管(MOSFET)十分类似：它由：源极（Source）、漏极（Drain）、浮动栅（FloatGate）和控制栅（ControlGate）组成。相对场效应管的单栅极结构，闪存是双栅极结构。浮动栅是由氮化物夹在二氧化硅材料（Insulator）之间构成。我们的写操作（Program)是这样：在控制栅加正电压，将电子（带负电）吸入浮动栅。在此后，由于浮动栅上下的二氧化硅材料并不导电，这些电子被囚禁（Trap）在浮动栅之中，出不去了。这样无论今后控制栅电压有否，这个状态都会保持下去，所以闪存可以掉电保存数据。注意写操作完毕后，该闪存单元存储的是0，后面我们将会介绍为什么。我们的擦除操作（Erase）刚好相反：在源极加正电压利用浮空栅与漏极之间的隧道效应，将注入到浮空栅的负电荷吸引到源极，排空浮动栅的电子。这时读取的状态是1。那为什么有电子是0，没电子是1呢？以为读取的时候，需要给控制栅加一个低的读取电压，对于被Program过的闪存单元来说，被囚禁的电子可以抵消该读取电压，造成源极和漏极之间是处于被关闭的状态：如果是被擦除过的就刚好相反，源极和漏极在控制栅的低电压作用下，处于导通状态：也就是说通过向控制栅加读取电压，判断漏极-源极之间是否处于导通状态来读取闪存单元的状态，如果被Program过的，就是处于关闭OFF状态，为0；而被Erase过的，就是处于导通状态ON，为1。总结一下，就是浮动栅（FloatGate）里面没有电子，就是1；如果有电子，就是0。因为0有少许电子，比没有电子的1的状态要重一些。空的SSD大部分是1，没有电子；写满后0状态变多了，有了更多的电子，所以重一些。答疑今天我就其中思考比较深入的问题统一就我的理解做一个解释。Q:好像也不对，虽然局部锁住了电子，但整体上SSD是电中性的，所以应该也会有些局部的原因抵消了电子的电负性，比如正离子、空穴之类。Q:这样会造成电源流出和流入的电子数量不匹配，电荷不守恒了。我猜电子是从衬底中来的，浮栅充电后衬底多了相应数量的空穴。Q:但是电子带负电，电子多了如果不是本来就在里面的，那还有别的什么离子进去啊。A:总的来说疑问就是多余的电子从哪里来？半导体不是电中性吗？思考这些问题的同学应该是具有一定的半导体的知识。这很好，我们都知道场效应管(MOSFET)其中虽然分为N型和P型，但整体是电中性的，即正负电荷总数相等。昨天的这幅图：让很多同学认为电荷是从基底/衬底，也就是P型半导体抽上来的，总体电子数量不变，因为电中性。这是因为我为了面向一般受众，将一些具体的细节没有提及，难怪产生误解。下面这个图应该就比较清楚了：我们可以看到源极Source和漏极Drain都是N型半导体，基底是P型半导体。与一般MOSFET不同的是，这里有两个Gate,他们之前由氧化物绝缘层隔离。Program（写0）的过程是这样：源极接地，漏极接正电压，同时在控制gate接正电压。电子就从源极向漏极流动，在控制gate上电压足够高时，电子会穿过氧化物绝缘层（tunneling）,被捕获(trap)在浮动gate中。这个电压要刚刚好，既要让电子穿过第一个氧化物绝缘层，又不能让它们继续穿过下一个氧化物绝缘层到达控制gate。看到这里，相信同学们已经清楚电子从哪里来的，半导体的电中性怎么样了吧。电子是从source的ground来的，没有东西被电离。电子确确实实是多出来了，它们会被关在那里，直到下一次越狱的机会。值得一提的是，电子并不会被永远关在那里，如果闲着不动的话，有逃离的机会：老狼：杂说闪存番外：我们的数据存在固态硬盘上安全吗？​zhuanlan.zhihu.comQ:感觉应该是充放电造成电势能变化，进而E=mc2造成质量变化。Q:不只有内能，假设内能完全不变，电子从分散到聚集电势能肯定增加的。磁场排列从无序到有序能量肯定也是增加。Q:是不是熵增加了？A:是势能发生了变化，从这个角度理解也可以。熵实际上应该是减小了。Q:要是能做实验观测到重量变化就好了哈哈哈哈，原来一直在想这个问题，是不是写满了就变重了A:这个目前来说没法做实验。电子质量是9.10938356×10（-31）kg，就算trap了一亿个电子，我们的测量仪器还没有这种灵敏度。其他的干扰因素，如风吹啊，灰尘啊等等带来的影响就比这增加的一点点质量要高得多。结论存满数据后，机械硬盘只有磁级变化，质量不变；而SSD因为锁住了更多的电子（但要记住，是0变多了，而不是1），所以变重了，尽管只有几乎可以忽略的一点点！生活中真是充满了各种有趣的意想不到的知识！欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog"，在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿！用微信扫描二维码加入UEFIBlog公众号