荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 3482|回复: 0

SSD总结

[复制链接]

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
发表于 2019-9-26 23:54 | 显示全部楼层 |阅读模式
SSD总结
一.颗粒
什么是SLC MLC TLCQLC PLC
其实并没有什么颗粒之说,SSD的基础单元就是一个个的闪存单元,使用这些闪存单元的方式才造成了区别
假设全新的闪存单元最大能加到1V的电压
那么SLC就类似于:
电压低于0.1V就表示这个单元表示0,电压高于0.1V就表示这个单元表示1,闪存单元每写入一次,就会有一定的损耗,损耗的表现就是最大能保持的电压降低,比如写入了1000次以后这个单元最高只能加到0.9V的电压了,此时这个闪存单元还是能正常使用的,然后写入9000次以后,这个单元最大就只能加到0.1V的电压的,这个时候这个闪存单元就算是寿命到了,因为单元是会随时间流逝慢慢的降低电压的,也许一天以后这个单元的电压就是0.09V了,即数据出现了错乱。闪存的单元生产出来有好有坏,好的可能能承受1.1V的电压,坏的可能只能承受0.5V的电压,当一个单元磨损到0.1V以后,主控就判断单元损坏,然后屏蔽这个单元,然后从候补的单元里面选一个放进来,即所谓的OP空间,有些SSD没有预留OP空间的话闪存磨损以后可能会表现为容量减少
这个是SLC的方式

MLC的方式就复杂一些
由于MLC一个单元要表示2bit数据,所以就要有4种电压
0.1V以下表示00
0.1V-0.2V表示01
0.2V-0.3V表示10
0.3V以上表示11
同样的,写入1000次以后单元最大承载电压下降到0.9V,此时这个单元还是正常的
但是当最大承载电压下降到0.3V的时候这个单元就到了使用寿命了
由于主控需要判断2个bit的数据,然后根据数据写入合适的电压,所以MLC的写入速度比SLC慢一些

TLC的方式就更复杂了
TLC一个单元要表示3bit数据,那么就要有8种电压
即最高一位就到0.8V了
也就是说一个单元被写入了1000次以后就寿命到了
主控的负载更高了,所以写入速度更慢了

QLC的方式有复杂了一倍
QLC一个单元要表示4bit数据,那么就要有16种电压
那么就不能按照0.1V来分了,按照0.05V来分
这样对主控的负担又重了,所以写入速度就更慢了

从SLC到MLC到TLC到QLC,读取速度衰减的不是很大,因为读取并不太消耗主控的性能

同一个闪存,
假如做成SLC能做成100G的
那么做成MLC就是200G
做成TLC就是300G
做成QLC就是400G

未来厂商还会出PLC,这对主控和闪存的要求更严格了,我估计写入会很难看,但是成本又降低了一些,怎么解决寿命和写入速度的问题,也许会主要应用于纯存储环境


二.制程
闪存颗粒是由晶圆制作的,制程越高级同一片晶圆能生产的闪存数量就越多,单片闪存颗粒的成本就越低
但是制程越高级每个闪存单元的性能就越低,比如22nm制程下一个闪存单元最大能承载1V的电压,那么12nm下一个闪存单元可能最大只能承载0.8V的电压了
但是也不是说制程越老越好,新制程伴随的是新主控,新主控的性能强那么闪存的性能就不会有损失,甚至可能更强

三.主控
主控的性能主要体现在算法上,这些估计是各个厂商的核心机密
有的主控算法强,则速度快一些,其实也快不了多少,闪存颗粒在那里呢,粉丝永远做不出鱼翅来
我们需要了解的是主控采用的加速算法
基本上大家采用的都是利用一部分闪存模拟SLC的方式来加速写入
目前有这几种方式
第一种是全盘模拟SLC
比如一个TLC硬盘,假设有300G容量,则全新的盘,往里面写入小于100G的数据的时候是相当于以SLC的方式写入的,写入速度非常快,数据写入完毕主控会慢慢的把数据归纳集中,把3个单元的数据集中到1个单元里面去,这个过程实在后台进行的,用户感知不到,这个全新的盘写入了100G的数据以后就把所有的闪存都写入了一遍,然后归纳以后又把其中三分之一的闪存单元多写入了一遍,这就是写入放大,这个无法避免
那么如果我们一次性往新盘里面写入200G数据会怎么样呢? 前期还是模拟SLC,当写入到100G的时候,所有的闪存单元都有数据了,但是后面还有100G的数据要写入,这个时候主控就会立刻开始一边把数据集中,一边以TLC的方式写入数据,表现形式就是写入速度断崖式的下跌
如果这个盘已经存储了200G的数据,剩余100G空间,那么相当于这块SSD只有33G的SLC加速空间,一次性写入33G以内的数据还是相当于SLC的速度的
这种全盘模拟SLC的方式好处是剩余容量足够的时候性能非常强,但是如果剩余容量很小了,那么就基本上暴露本质了,而且这种方式对颗粒的寿命损耗太快了

第二种方式是部分模拟SLC
比如一个TLC硬盘,假设有300G容量,然后拿出其中90G的容量当SLC,则一次性写入30G的数据的时候是满速的,写入完毕以后还是后台慢慢归纳集中。当一次性写入60G的数据的时候前30G是满速,后30G就会降速了,但是由于还有剩余空间,主控不需要先归纳再写入,所以降速以后的速度还是会比上面的全盘模拟快一丢丢
但是当一次性直接写入250G数据的时候,前30G是满速,30G-210G的速度都是TLC直写的速度,写入到210G的时候全部闪存已经写满了,这个时候主控就要把最开始模拟的那90G的SLC空间先归纳,然后再写入,表现为就是速度再次降低,不过这个降低也就是和上一种缓存用完以后的速度一样
这种方式写入放大就没有那么大了,SLC缓存用完以后就是纯TLC写入了

我个人觉得第一种方式最好,但是不知道为什么绝大部分主控厂商都是使用的第二种方式,我想了一下,可能是第一种方法需要主控随时运行,并且对颗粒的要求比较高,如果是垃圾颗粒,在缓存用完以后写入性能就及其堪忧

四.3D堆叠
一片闪存颗粒相当于一张纸,提升制程能提高容量,但是如果把多张纸堆起来呢,这就是3D堆叠,现在主流的是64层堆叠,比如国内的厂商就已经出货了64层堆叠的闪存了,国外的厂商比如三星intel等堆叠层数更高
堆叠能提升单位面积下的容量,但是堆叠对制程要求比较高,所以一般都是用老的制程来制作堆叠闪存,比如即使现在能用12nm制程制作闪存,堆叠还是使用22nm,因为22nm使用成熟的制作方法性能更强,堆叠可以不用太在乎单位面积的容量,当然厂商也是会继续研究新制程下的堆叠,毕竟能提升容量密度就能赚更多钱啊


五.接口
目前主流的接口是SATA3和NVME
SATA3接口最高速度6Gbps,即极限情况下750MB/S,但是这个只是理论值,事实上SATA3接口发送信息的速度为600MB/s,而受制于系统各部件的影响,实际速度会更低一些

NVME接口目前主流使用的都是PCI-E协议,(早期有使用SATA3协议的现在已经消失了),一般都是PCI-E x4,根据主板厂商的设计,也有x2的,具体速率我忘记了,反正就是比SATA3快多了

所以现在主流SSD都是NVME接口的

还有一种SSD是直接使用PCI-E接口的做成类似于显卡那样的,还有一种U.2接口的,一般都是企业级的SSD才会采用这两种接口,其实都是走的PCI-E协议,我个人觉得就是噱头,区分出来用来赚钱的


六.Intel傲腾
傲腾这个我不太了解原理,可以理解为比SLC速度还快很非常多的固态
目前intel对傲腾SSD的定价非常高,基本上是同容量SSD价格的5倍
优势是4K的写入读取速度超快和极低的响应延迟
普通人就别买了,没什么用,普通人用不到这些功能的,同样的价格买高端的SSD能买到4-5倍的容量的,而且使用起来几乎没差别,甚至某些地方还会被反超,比如单独大型文件的连续写入

Intel正在开发用傲腾为QLC加速的SSD,已经有成品了,价格嘛谁买谁傻子啊
本质上就是用一块小容量的傲腾当作是SSD的TLC缓存,但是价格却那么贵,同样的价格直接买一块TLC的SSD不更好,容量还差不多,缓外速度快多了

七.总结
买SSD还是需要根据自己的需求来,平时使用的环境不需要大量连续写入的,买QLC便宜够用(我个人持保留态度,我觉得偶尔大量写入的情况下速度很慢我是忍受不了的)
写入量不多也不频繁的话可以买TLC,现在的主流
如果平时的工作就是需要用到大量的写入的话那就买MLC的,现在还是有一些品牌高端型号使用MLC的

现阶段就全部买NVME接口的就行,主板几乎都带了,没有NVME接口的主板不建议买



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2025-6-18 05:43 , Processed in 0.012973 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表