主流固态除了SLC,就只剩MLC了!
数码2019-10-297064阅读 · 307喜欢 · 105评论 风沙鸽粉丝:14.5万文章:56已关注前段日子见某“大佬”在群里吹B的时候说自己买了MLC的三星970PRO,嘲讽我们这些用TLC的不行我上去插了一句:嘚瑟啥,别人用的也是MLC,不信你看三星官网!接下来就开始我漫长的装逼之旅~~~
MLCMulti-Level Cell百度百科翻译为:多层单元维基百科翻译为:多阶存储单元一般科普翻译为:双层储存单元(我尼玛这什么几把瞎翻译???)但就算我们一个词一个词的来,这个Multi就是多个的意思,翻译为双层是啥意思?你当汉堡呢?给我来个三层~~~好吧,还真有三层的TLC...采用哪个翻译都与我无关,站在一个严谨的角度来讲这玩意不好翻译我认为这玩意从物理的角度解释能更好的解释原理,从计算机的角度能更好的解释命名从物理角度说,固态存储信息的最小储存器是Cell,中文翻译为单元没啥大毛病刚开始的时候,每个单元要没有电,要么没电,主控在读取这个单元的时候,看见有电就是高电位翻译为1,没电就是低电位翻译为0所以每个固态硬盘的闪存颗粒就仿佛是电池一般!每个Cell都能存放一些电荷!0和1是电脑能听懂的底层语言二进制,说人话就是通电或者不通电,开或者关然后二进制被翻译为字符串再通过各种编码,成为人们能看得懂的各种文字二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。计算机中的单位:位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。字节 byte:8个二进制位为一个字节(B),最常用的单位。1B(bytes) = 8bit1KB (Kilobyte 千字节)=1024B,1MB (Megabyte 兆字节 简称“兆”)=1024KB,1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,1TB(Trillionbyte 万亿字节 太字节)=1024GB,1PB(Petabyte 千万亿字节 拍字节)=1024TB,1EB(Exabyte 百亿亿字节 艾字节)=1024PB,1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,1YB (Yottabyte 一亿亿亿字节 尧字节)= 1024 ZB,1BB (Brontobyte 一千亿亿亿字节)= 1024 YB单一的要么有电有么没电,就叫做SLCSLCSingle-Level Cell百度百科翻译为:单层单元维基百科翻译为:单阶存储单元一般科普翻译为:单层次储存单元(得嘞,这玩意还分层次的)一个Cell只存储1bit数据太浪费空间了,为了能利用空间,也为了省钱,一个Cell存储多个数据势在必行!坐着空想当然简单,行动起来就是飞一般的复杂在二进制下的2位数有多少种可能呢?四种:00 01 10 11所以这个固态必须想办法把这四种情况都表达出来至于为啥什么要有四个状态,你总不可能还是沿用之前的思路,这个Cell有电就是00,没电就是11把?那人家字母小写c翻译成二进制的01100011怎么显示?两组各取一个吗?人家要一个Cell里塞俩数据,然后把几个Cell排列起来才能翻译成字符,有没有听讲啊你小子?于是某个研究人员去菜市场称两斤白糖的时候,一拍屁股:我往里面塞电荷,然后测量电压不就是了嘛!
于是研究人员改良了颗粒,让它能精准的往Cell里塞进去电荷但也没多精准,也就能让测出来四种电压而已也就是表示没电的00、有点电01、差不多的10、要满了的11同时主控还要负责小心的往里面塞入电子,保证能让充进去的电是能表示差不多的10,而不是要满了的11读取数据的时候就是在测量电压,就像你去买白糖的时候,老板问你要多少,你说两斤,老板拿起已经打包好的一包白糖往称上放,你一看确实是两斤,拿了白糖就走了但写入数据的时候不一样啊!老板要拿个塑料袋放称上,舀一瓢白糖看一眼称1.2斤!不够加点,再舀一瓢2.4斤!多了舀出来点1.8斤!少了,再加1.89斤!法克.....而且老板不会只舀一包,而是会连着准备很多包用来批发
因为要更省钱,所以更麻烦由于测量(读取)电压不咋费事,故读取速度几乎不怎么受影响,受影响最大的是写入速度!但人们日常用硬盘又不会一次性写入过大的东西进去只要主控撑得住,且有更大的缓存支撑住临时的大数据写入那么是继续研发下去,是十分有必要的!所以按照这个逻辑,TLC在众望所盼中诞生了!
TLCTriple-Level Cell百度百科翻译为:翻译个球,搜不到维基百科翻译为:三阶存储单元一般科普翻译为:三层储存单元(惊了,居然准了!)他有个更准确的名字:3bit MLC(3bit Multi-Level Cell)刚才我们说了,MLC中的M 既Multi是:多 的意思所以没人强行规定MLC必须指2bit/Cell,它可以每个Cell放N个数据都成也就是说马上就要到来的QLC( Quad-Level Cell)、还在规划的(Penta-level cell)以及什么........HLC(Hexa-Level Cell)SELC(Sep-Level Cell)OLC(Octa-Level Cell)NLC(Non-Level Cell)DLC(Dec-Level Cell)ULC(Undec-Level Cell)它们都叫MLC!!!!!!
好像被我这么一通忽悠,对方也慢慢开始回味起了有啥不对!“我那玩意是2bit MLC 而别人的则是3bit甚至更大的MLC,这本质上是不同的玩意!”
谁知我嘴角微杨邪魅一笑:
是吗?刚才那些个知识,其实是在2D颗粒时代的事情了以前的问题就是单颗颗粒的容量太小了,因为芯片就那么点体积,你想想搞大容量,就必须得曾加面积,要么就得缩小制程,也就是每个Cell的体积,还得优化架构啥的为了能更好的利用空间,也为了进一步压缩成本,更好的搞定性价比!还为了解决一些蛋疼的问题不知道是不是设计师看哲♂学的时候想出来的男上加男策略,直接把这玩意给堆起来,然后中间用几根线连起来,做成了3D NAND Flash,也就是大家常说的3D颗粒这样既能简单的解决空间问题,又能简单的获得更大的容量,岂不美哉?
有了更大的容量,就得开始动歪脑筋于是镁光和英特尔开始搞事,折腾了几年折腾出个3D MLC,准确的说是L06B制程的颗粒这玩意的特点是遇到合适的主控后(比如慧荣的2258),就能把这个MLC开成TLC,还能多出一半的容量!(不如说原本就是打算开成TLC的,开成MLC浪费了空间)现在的TLC都有一个叫SLC缓存的玩意(模拟 SLC Cache),这玩意的特点就是,将一部分的TLC空间折叠三分二变成SLC,将一部分的QLC折叠四分之三变成SLC,以提高自身的写入速度看到这你们想到点啥没?虽然好像谁都没说,但从实际的角度上,现在的固态硬盘,已经没有了SLC MLC TLC啥的之分了亲因为Cell的本质是不变的,就是一个单元了,变化的只是这个单元能接受识别多少种电压而已!那么这个闪存生产出来,它能接受识别的电压种类再多只要固态指定它是SLC,它就能整个盘变成SLC!只要指定这玩意是MLC,整个固态它就是MLC!付出的只是容量上的代价而已(而且相较于TLC要多次调整电荷,MLC或者SLC需要调整的次数越少,对单个Cell造成的伤害少,自然寿命理论上更长。当然这是抛开更游戏的纠错和垃圾回收机制的理论)以前不这么玩,是因为本身容量就不大,现在不这么玩是因为实际使用中,用户并不需要那么高的写入速度和那么多的寿命,用户需要的是性价比~~~时代变了大人,是时候放下心中的坚持了...
好吧,虽然我这么说,但我个做U盘玩固态的,经常接触一些优秀的服务器固态,很多还都是全新的(至于哪来的就不透露了,有想法的可以私聊)所以在我面装逼实在无效,价值1W3的闪迪6.4T PCI-E固态不也就被我拿来放放游戏吃吃灰么。这年头,装逼给谁看啊?