扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
目前,人们多数使用的是基于Flash闪存的固态盘。相变存储尚在实验室,DRAM固态盘采用常见内存颗粒,数据需要额外的电源才能保存,使用者不多。
固态盘常见接口有SATA(普通PC使用的串行ATA接口)、PCI-Express(常见于显卡设备的接口,特点在于高速)等多种。不同的接口,其实都是为了通用、高速的目的。
Flash的最小存储单元是晶浮栅晶体管,对应于磁盘中的一个bit的存储单元。
磁盘中,利用磁极的不同来标记0,1,当磁头扫过盘面,通过感应电流就可以识别出不同状态,即读取数据;增强磁头的磁性,可以改变盘面记录单元的状态,实现写入数据。
固态盘中,在存储单元晶体管的栅(Gate)中,注入不同数量的电子,通过改变栅的导电性能,改变晶体管的导通效果,实现对不同状态的记录和识别。有些晶体管,栅中的电子数目多与少,带来的只有两种导通状态,对应读出的数据就只有0/1;有些晶体管,栅中电子数目不同时,可以读出多种状态,能够对应出00/01/10/11等不同数据。所以,Flash的存储单元可分为SLC(一个萝卜一个坑)和MLC(2个/多个萝卜一个坑)两种。
区别在于SLC的状态简单,所以读取很容易,MLC有多种状态,读取时,容易出错,需要校验,速度相对较慢。实际MLC的状态识别过程比上述复杂很多,读取一次MLC的功耗比SLC大很多。由于材料本身的缘故,SLC可以接受10万次级的擦写,而MLC材料只能接受万次级擦写操作,所以MLC的寿命比SLC少很多。但是,也是最重要的,由于MLC中的信息量大,同一个存储单元,信息量是SLC的N倍,所以相同容量的磁盘,MLC类型Flach成本更低,存储单元体积更小,这也导致市面上多数固态盘都采用了MLC型的Flash颗粒。SLC由于其特性,仅在高端的高速存储设备中使用。
有了上述介绍,不难理解,固态盘写入,就是改变晶体管里栅中电子数目的过程。读出,就是向晶体管施加电压,获取不同导通状态,对应识别存储数据的过程。
Flash颗粒便是大量这种浮栅晶体管的阵列,一般的U盘中会有1-2粒这种Flash颗粒,视容量而定;在SSD硬盘中,常见会有8-16粒Flash颗粒。
不过,用户在使用过程中,对器件的负面特性并不需要担心太多,生产厂商已经做出了考虑。如,由于单个存储单元的访问次数有限,如果长期在同一个区域重复读写,会导致该存储区域失效,进而影响整块盘的寿命。于是,业界研究了负载平衡技术,将用户的访问请求均匀分布在所有存储单元中,以延长整个盘寿命。而这个“不要在一只羊身上薅羊毛”的事情,就是固态盘控制器的任务了~~~。
呃,暂时就这多吧,其实固态盘读、写过程中还有很多好玩儿的,比方说,存储单元和地址的映射关系,单个存储单元状态转换不可逆等等~~有兴趣的朋友,可以再交流。
所知有限,有些描述可能不够准确,请大家拍砖,我再修改。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者