美文网首页
SSD原理学习笔记

SSD原理学习笔记

作者: CPinging | 来源:发表于2021-01-25 10:25 被阅读0次

    本文为清华大学存储课程的学习笔记,以及一些体会,图片主要来自课程的PPT,附带一些Note来做补充说明。

    非遗失性存储主要介于Storage以及Memory之间,延时在100-1000ns,非常接近Memory的60ns,而远高于Storage的性能。

    传统的磁盘由于机械式的部件,使得性能非常慢 - 两个马达要转

    该图表现出,从1990年开始磁盘的延迟在不断降低,直到2005左右,就基本没变化了。

    带宽也是,2000年之后变化就比较少了,很难提升了。

    能耗开销也非常大,包括了磁盘以及冷却的开销,限制了可扩展性。右图表示,到2020年需要500万块磁盘才能满足性能需求。

    单位为MB/s,表示了两种盘的对比。

    现在我们常见的闪存主要是NAND,按照页去读写,擦除按照block进行。而NOR可以原地改写。

    NOR有个地线,所以可以原地更新,但是缺点是空间有限,放的东西不够多。

    写是把电子放进Floating Gate中;读的话通过不同的电压加载,看对应的状态;擦除是把电子打出去;

    与传统CMOS的差异:

    CMOS的简化图(晶体管)。达到某个阈值电压就接通。

    Flash的区别是多了一块(两个红色的长方体),多了Floating gate。下面为氧化层,且加压后电子可以通过氧化层,进入Floating gate,被保存进去。

    具体来看:

    现在有两个阈值对应两个状态。

    Row为word line,Column为bit line,横着一行为页(读写单元),整个方块叫block(擦除单元),选中后放到Sense Amplifiers(行选中)。

    左上角门限为2V,右上角为3V,所以加载2.5V可以将其选通。

    假如我们要读第二行,则其他行加上5V电压,第二行2.5V即可。

    如图,2.5V无法通过前两行,所以竖着无法通过,后面两行可以通过,所以呈现0 0 1 1的情况。从而选中page2的数据。

    该图表示了MLC下,闪存存储的容量变大,但是可靠性变差。

    每一行的一个单元是有两个bit(wordline),如何写入呢?

    下面为写入顺序:

    这个顺序的原因是:加电压的时候会对周边的数据有影响,使得相邻数据偏移。连续写两次同一个位置会对周边影响过大。

    但是当写了第一行、第二行,再写第一行的第二个数据的时候,就可以把偏移的电压调整过来。

    下面阐述了Flash的其他特性:

    寿命影响可靠性。Retention是放了时间久了之后电子跑掉了,耐久性是写的越来越多,设备(Floating gate)越来越薄,这个变薄的时间就是耐久性。

    为了使用上述特性,所以设计了FTL。

    1 不写在一个地方,新写在一个地方,通过修改指针。旧的数据无效化,放过去

    • 地址映射

    • 垃圾回收

    • 磨损均衡

    SSD内部结构如上图所示。

    其内部是多通道进行,Channel Level使得SSD内部有很强的并行性,速度变快。其中每个Chip中都有Register,数据会提前准备到Register,然后通过总线传输。

    1 垃圾回收

    闪存每一个page分类三种状态,上图右侧:有效的叫Live page,无效的叫Dead page。

    垃圾回收的目的就是把无效的D擦掉,所以需要把有效的挪走,把一整块擦掉。如下图:

    已经挪走后,直接擦除:

    这里存在两个开销:

    • 1 复制Live数据

    • 2 擦除块

    垃圾回收的策略需要考虑:

    1 什么时候启动?
    2 选择哪些块回收?
    3 新的数据放哪?

    考虑冷热数据,分特性去放数据。

    2 磨损均衡

    动态磨损均衡:分配空间的时候尽可能把数据分配到擦除空间少的地方。

    静态磨损均衡:对现有数据进行转移。

    3 FTL - 地址映射

    维持一个Page页表,虚拟地址到物理地址的转换

    类似于查表的过程。数据为LPN,通过查表然后得出物理地址。

    相关文章

      网友评论

          本文标题:SSD原理学习笔记

          本文链接:https://www.haomeiwen.com/subject/jpbioktx.html