u盘是怎样保存数据的 闪存又是怎么一回事
admin 9月 08, 2021 9 0
大家好我是狗蛋,今天来给大家分享u盘是怎样保存数据的 闪存又是怎么一回事
首先先了解U盘的工作原理,它是怎么存储数据的。我们知道所有的东西,图片,视频,文件等等,但对于计算机来说都只要两种形式,也就是0和1.所以这些东西在往U盘存的时候,也是以0和1两种形式 保存在u盘里面的。关于图片 文件 视频到底是怎么变成0和1的我的前面的文章有详细讲过感兴趣的可以去看一下。
咱们u盘的结构大体就是usb接口然后一个主控芯片 负责控制,剩下的那个大块芯片就是保存数据的地方也就是咱们说的闪存颗粒。
闪存就和咱们现实中的超市一样,超市里面会有几个大的分区。每个分区里面又分了好几排货架。货架又分了好几排,好几列。东西就存在货架上的某个小格子里。咱们的闪存也一样,也有好几个大的分区,这几个分区里面又分了好几部分,每个部分又分了很多块,这一块又包含了一个个小单元,这个小单元就是刚才货架上的小格子。0和1最终就保存在这个小单元里面。
这些小单元实际上是一个个晶体管(MOSTET-金氧半场效晶体管),咱们看到的就是晶体管 (MOSTET-金氧半场效晶体管)的结构,晶体管上面的一块像是一个开关,它的工作就是负责调整电压,我们提高电压就相当于打开了开关,这个时候 在电场的影响下。下面源极的电子就会流向右边的漏极,也就是说左右两边都接通了。当我们降低电压就又断开了。
那咱就以这个晶体管(MOSTET-金氧半场效晶体管)为基础,在晶体管中间再加上一层,这一层就是来存东西(电子)的,同时这层还被绝缘体包裹着,用来保存电子,即使断电了里面的电子也不会很快消失,所以咱们的U盘 固态硬盘即使断电了,里面的数据也能保存很长一段时间,这一层保存里面的电子,就决定了这个小单元,它是保存的0,还是保存的1,这里咱们可以先 暂时简单的想象成,小单元里面没有电子,那这个小单元就代表1,里面有电子就代表0
比如咱们现在往U盘里存东西,也就是往这个小单元写入0或者1,因为在对闪存进行写入操作之前,需要以块为单位 先擦出 在写入。把这一块里面的所有小单元进行放电,这一步,咱们可以想象成是把新的商品放到货架上,但在放到货架上之前,要先把货架上的东西全部清理掉,再把新的商品放上去,擦除完成之后,这一块里面的小单元就都被放电了,小单元这层就没有电子了。所以这一块里面的小单元就都代表的是1,如果咱们写入的数据正好是1,那这个小单元什么也不用做继续往下一个单元写入就好。
这个小单元写入的是0,只需要让小单元上面的开关提高电压,下面的原极和漏极就接通了,有电子不断流向右边,这个时候只要电场的强度够,一部分电子就会直接穿过绝缘层 到达里面的空间,最后降低电压 电子就被困在绝缘层里面了u盘的数据就保存完成了。
但是这里有一个问题,这个小单元并不是他一个,而是有无数个小单元相互连接在一起。那这种情况下我们该如何写入数据呢?这里有九个和刚才一样的小单元,小单元上面 负责控制电压的开关,分别被一条线连接起来这条线就是咱们说的字线,下面红色都是位线,被字线连接起来的小单元被称为“页”
闪存在读取和写入的时候,都是以“页”为单位进行的,也就是说,我读完这一页 再读下一页。写完这一页 在写下一页并不是一个单元一个单元进行的。
如咱们要读取中间这一页的数据,第一步先提高不读取页的电压,提高电压之后不读取这些小单元。就和咱们刚开始说的,它下面的源极和漏极就接通了。同时咱们一定要掌握好这个电压,既要让小单元处于接通状态,但电压也不能太高 导致穿过绝缘层改变小单元的本身状态。
咱们要读取的这一也 调低电压,如果小单元代表是0里面自然有电子,这条线的电流要低一些。如果小单元代表的是1自然里面没有电子,那电流高一些,或者说,小单元里面的电子会影响到每个小单元最后的检测数值,最后把检测都数值和闪存自带的参考数进行对比
就和咱们的考试分数一样80-100为优,不管是80分还是99分成绩单上写的都是优,这里也一样只要检测到都数值在某一个范围内,就判定为0,不然就判定为1接下来咱们看是怎么写入。咱们现在往旁边的这一页的三个小单元 写入001。写入我们刚才说过通过字线提高电压,让电子穿过绝缘层就完成写入。
但是这一页里面有一个小单元是1,因为小单元本身的状态就是1,咱们什么都不做就好。
但这一页小单元是共用一条线的写入1的这个小单元电压自然也被提高了这样一来岂不是把小单元都变成了0了?这个时候咱们是需要提高这小单元的位线电压,这样就可以阻止电子穿过绝缘层,让这个小单元依旧维持原来的状态就完成写入这个就是u盘的工作原理。
狗蛋在这里补充一下:文章中的0或1 就是1比特(bit) 而8比特(bit)组成1字节 (byte)其实咱们一个英文字母的标点就是1字节 (byte) 常见的一个汉字 大小是2字节 (byte)。那512个汉字大小就是1024个字节 (byte)也就1KB