• 四、固态硬盘存储技术的分析(论文)


    目录

    摘要

    一、固态硬盘的概念论述

    1.1 固态硬盘的定义

    1.2 固态硬盘的分类                                        

    1.2.1基于闪存的固态硬盘

    1.2.2基于DRAM类

    1.2.3基于3D XPoint类

    1.3 固态硬盘的特点及应用范围

    二、SSD系统架构

    三、SSD控制器

    四、存储介质

    五、FTL和ECC纠错

    5.1 FTL

    5.1.1 地址映射管理

    5.1.2 磨损均衡

    5.1.3 垃圾回收

    5.2 ECC纠错

    六、固态硬盘存储技术的应用

    七、参考文献


    摘要

    几十年来,机械硬盘由于存储容量高,成本低,非易失性等特点,一直是计算机系统中占主导地位的数据存储设备[1]。然而,机械硬盘的存储系统由于内部结构,其IO访问性能无法进一步提高,CPU与存储器之间的性能差距逐渐扩大。为了提高存储系统的运行速度,以Nand Flash为存储介质的固态硬盘技术得到了飞速发展,性能瓶颈得到缓解。

    固态硬盘的出现在于科技的发展, 人们对存储系统的要求越来越高而产生的, 固态硬盘在现代社会被广泛的应用在各种领域, 因为其独特的优势而被更多的人接受, 因此对于固态硬盘方向的研究也越来越深入, 许多专业的人才致力于这方面的研究, 希望能有更重要的科学进步。固态硬盘被广泛使用于军事方面、车载系统方面、工程控制技术方面、视频监控存储、网络监控存储、网络终端保存、电力系统方面、医疗信息存储方面、航空技术方面、导航设备存储等重要领域。

    关键词:固态硬盘,存储技术,FTL,ECC,应用

    一、固态硬盘的概念论述

    1.1 固态硬盘的定义

    固态硬盘也有固态电子盘或电子硬盘之称,主要由主控、缓存、闪存组成,数据通过接口进入主控,经主控中转调配后储存到各个闪存颗粒中。闪存的基本存储单元是"浮栅晶体管"。相较于普通硬盘而言, 使用方法、接口规范以及使用功能都表现出一定的相似性, 具体类型方面有3.5"、2.5"、1.8"等几种。由于缺少了传统硬盘的旋转介质, 固态硬盘有着极佳的抗震性能, 一般扩展温度控制在-45℃至85℃之间。随着信息技术的发展, 如今固态硬盘的应用已经十分普遍, 电力、军事、医疗、航空等领域都可以体现固态硬盘的使用性能。

    1.2 固态硬盘的分类                                        

    固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。最新还有英特尔的XPoint颗粒技术。

    1.2.1基于闪存的固态硬盘

    基于闪存的固态硬盘(IDEFLASH DISK、Serial ATA Flash Disk):采用FLASH芯片作为存储介质,这也是通常所说的SSD。它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、U盘等样式。这种SSD固态硬盘最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,适合于个人用户使用。寿命较长,根据不同的闪存介质有所不同。SLC闪存普遍达到上万次的PE,MLC可达到3000次以上,TLC也达到了1000次左右,最新的QLC也能确保300次的寿命,普通用户一年的写入量不超过硬盘的50倍总尺寸,即便最廉价的QLC闪存,也能提供6年的写入寿命。可靠性很高,高品质的家用固态硬盘可轻松达到普通家用机械硬盘十分之一的故障率。

    1.2.2基于DRAM类

    基于DRAM的固态硬盘:采用DRAM作为存储介质,应用范围较窄。它仿效传统硬盘的设计,可被绝大部分操作系统的文件系统工具进行卷设置和管理,并提供工业标准的PCI和FC接口用于连接主机或者服务器。应用方式可分为SSD硬盘和SSD硬盘阵列两种。它是一种高性能的存储器,理论上可以无限写入,美中不足的是需要独立电源来保护数据安全。DRAM固态硬盘属于比较非主流的设备。

    1.2.3基于3D XPoint类

    基于3D XPoint的固态硬盘:原理上接近DRAM,但是属于非易失存储。读取延时极低,可轻松达到现有固态硬盘的百分之一,并且有接近无限的存储寿命。缺点是密度相对NAND较低,成本极高,多用于发烧级台式机和数据中心。

    1.3 固态硬盘的特点及应用范围

    固态硬盘的结构和工作原理和机械硬盘大不一样。它主要由大量NAND Flash颗粒、Flash存储芯片、SSD控制器控制芯片构成。他们三者的关系通过下图进行表示:

     

    在一个固态硬盘上会有若干Flash存储芯片(可能有2颗、4颗、8颗等数值),每颗存储芯片内部包含大量NAND Flash颗粒,目前(2016年)NAND Flash颗粒的制作工艺已经达到12nm(2012年的主流工艺是90nm)。无论NAND Flash颗粒的制作工艺如何,每一个单位的存储容量都是512字节。

    固态硬盘的特点有速度快、噪音小、耗能低和没有碎片文件产生,因此,固态硬盘受到了广泛的欢迎。固态硬盘的应用范围极广, 从军事到科技再到民用, 都能看到固态硬盘的存在。除了上述的特点外,它之所以受众就是因为固态硬盘的应用极为便捷, 只需要flash存储颗粒, 再选择合适的控制芯片, 这样就可以制造固态硬盘, 固态硬盘可以容易的安装在电脑中, 即使不懂电脑的人, 也可以按照安装的步骤自己进行安装。

    二、SSD系统架构

    主要由两大模块构成---主控和闪存介质。另外可选的还有Cache缓存单元。主控是SSD的大脑,承担着指挥、运算和协调的作用,具体表现在:

    1. 前端实现标准主机接口与主机通信,接口包括SATA、SAS、PCIe等。
    2. 中间层SSD固件运行FTL(Flash Translation Layer)算法。

    后端实现与闪存的通信,主要包含数据编解码和ECC。

     

     

    SSD作为数据存储设备, 其实是一种典型的(System on Chip) 单机系统, 有主控CPU、 RAM、 操作加速器、 总线、 数据编码译码等模块(见图2-1) , 操作对象为协议、 数据命令、 介质, 操作目的是写入和读取用户数据[2]。

    三、SSD控制器

    SSD 控制器根据FTL不同大致可以分为2个大类。消费级SSD和服务器应用等也有所不同。阿里、百度等服务器SSD及SSD控制器也有自研IC和方案。

    SSD控制器是固态硬盘的主要控制芯片, 负责指挥、运算和协调SSD设备, FTL (Flash Translation Layer) 算法的运行[3]。主控CPU和普通的嵌入式设备相似, 缓存控制器负责控制DRAM和buffer等。Flash控制器负责把上位机指令转化为NAND可以识别的指令, 并完成ECC (Error Correction Code) 纠错和控制闪存的读写, CPU要能够在并行处理时负载均衡。对于一个称职的主控,需要有能力完成两项艰巨的任务:
    1. 为Host和NAND提供适当的对接界面(Interface)以及协议(protocol);
    2. 高效地处理数据,优化传输速率,同时保证数据的完整性。

    目前主流的SSD主控架构如下图:

     

    主要有三大部分组成:与Host对接的界面(Host interface), 闪存转换层FTL以及闪存对接界面(Flash interface)。
    Host interface采用的协议(protocol)包括SATA,PCIe/NVMe SSD协议。

    闪存转换层FTL是主控的核心部分,主要实现磨损平衡(Wear-leveling), 垃圾数据回收(Garbage Collection), 坏块管理(Bad Block Management)和数据纠错处理(ECC, Error Correction Code)。

    Flash interface包括了SSD主控的flash controller,用来控制主控与NAND闪存之间的数据传输。

    NAND闪存是数据归属地,NAND颗粒的存在,赋予了SSD储存数据的使命。为了提高存储的性能,主控会通过不同的通道(Channel)操作NAND闪存。

    四、存储介质

    闪存具有非易失性, 闪存芯片主要为NOR型和NAND型。NOR型主要应用于程序存储, NAND型应用于数据存储, 因此, 固态硬盘存储介质为NAND型。闪存的基本存储单元是一种双层浮栅MOS管, 被捕获电子的数量就像一个静电屏蔽, 最终会改变晶体管的阈值电压。通过仔细调节电子的数量, 可以产生多个阈值电压并将其转换成数字域。根据存储位数, 目前, NAND可以分为:SLC、MLC、TLC、QLC。

    五、FTL和ECC纠错

    5.1 FTL

    FTL(Flash Translation Layer)译为闪存转换层,是Flash Memory(存储介质)与Device Controller(设备主控器)之间的连接关系。

    5.1.1 地址映射管理

    不同于机械硬盘的磁头直接进行数据读写,SSD或者其它以Flash作为储存介质的硬盘无法直接进行数据读写操作。解决这个问题的办法,就是FTL层管理几张逻辑映射表做一个中间转换,Host给定一个逻辑地址,FTL根据这个逻辑地址在逻辑映射表上建立映射关系,连接到Flash上的物理地址。一般来说,FTL将逻辑地址处理后,建立的映射关系包含了Flash的Block编号、Page编号等,数据读取时便根据这些信息在Flash对应的位置上找到数据,传输至Host。

    5.1.2 磨损均衡

    以Flash为储存介质,其可编程次数是必须考虑的重点。拿目前的固态举例,多以TLC Flash为储存介质,其编程次数在1000-1500次之间,若对TLC Flash上的某些block擦除次数超过了次数限制,那么将导致坏块产生,所以FTL须实现磨损均衡,协调整个Flash上的Block,将使用次数少的Block拿出来分担使用次数多的Block的压力。通俗的说,磨损均衡就是以相对最优的选择使Flash上每个Block的擦除次数尽可能相同,以避免有些Block擦除次数过多成为坏块致使用户可用容量变小的问题[4]。

    5.1.3 垃圾回收

    当闪存的空闲空间减小到一定阈值时, FTL负责擦除闪存中无用的数据块, 即垃圾回收。垃圾回收策略由三部分构成, 垃圾回收机制的触发条件、回收块的选择和垃圾回收处理方式, 需要固件在写用户数据时记录和维护每个用户闪存块的有效数据量。

    5.2 ECC纠错

    由于擦写磨损、读取干扰、编程干扰等原因造成闪存比特翻转, 当擦除次数增加时, 内存中的氧化物层会逐渐被破坏, 使得捕获电子越来越难, 交叉概率增大。因此闪存需要纠错码方案, 即ECC技术[5]。纠错码从最初的汉明码逐渐到广泛应用的BCH码。随着Flash技术向高3D堆叠和QLC技术的发展, 低密度奇偶校验码 (Low-Density Parity-check Code, LDPC) 引起了广泛的关注, 因为它更接近香农极限。

    六、固态硬盘存储技术的应用

    得益于固态存储优越的性能和特点,SSD的应用场景非常广泛,除了日常中网络终端、电力、医疗、航空、导航设备等诸多领域。

    例如在互联汽车应用中,固态驱动器(SSD)被用于满足高性能图形、数据存储和通信的要求,并提供闪存解决方案,帮助交付高性能存储和可靠性在多种车载应用,包括司机辅助技术、娱乐系统、导航系统和3D地图等,在车联网和信息娱乐乘用车中得到了广泛应用。

    在航空气象领域, 实时气象数据、预报气象数据、以及数值预报计算数据量每年都以几何倍数增长。如何进行高效和安全的存储成为研究的新课题。随着科技的发展, 由固态电子存储芯片阵列制成的固态硬盘逐渐兴起。目前已被广泛应用于军事、航天、导航、医疗等领域。其高速读写的特性, 以及在固态硬盘组成盘阵后的极大优势, 适合在航空气象领域应用。

    随着云计算时代的到来,固态硬盘以其所带来的高效的存储性能优势和节约的能耗成本将使其是未来存储领域中数据中心和云计算的首选配置。

    从市场现状来看,目前SSD市场需求持续升温,TrendForce集邦咨询表示,自今年第二季以来,受惠于服务器出货量向上攀升,enterprise SSD采购量也同步增长。其中又以资料中心8TB容量出货占比成长最为明显,推估此一成长趋势将延续至第三季。然受限于晶圆代工产能吃紧,SSD相关零部件可能出现供应不及的情况,实际市场需求仍未得到实质提升。

    近年来SSD的爆发式增长也推动了相关技术的进步,在企业级SSD领域,涌现出了不少新技术,比如3D XPoint、QLC等新型存储介质,以及Open Channel SSD、定制化SSD等新产品。如今的存储产业正发生着翻天覆地的变化,而随着新技术的发展与广泛应用,也为闪存行业带来了新的机遇与挑战。

    七、参考文献

    [1]王发宽.基于NADA闪存的混合固态硬盘设计研究[D].杭州:杭州电子科技大学,2017.

    [2]SSD Fans.深入浅出SSD[M].机械工业出版社,2018.

    [3]李想.基于软件架构的固态硬盘FTL设计[D].武汉:华中科技大学,2015.

    [4]赵鹏,白石.基于随机游走的大容量固态硬盘磨损均衡算法[J].计算机学报,2012,35(5):972-978.

    [5]周懿,戴紫彬,面向Nand Flash自适应纠错码方案研究与设计[J].计算机工程与设计,2017,38(6):1681-1685.

  • 相关阅读:
    【操作系统】【考研408】文件系统和磁盘实例
    Unity——脚本与导航系统
    小程序入门及案例展示
    【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型
    Clean My Mac X破解版,让您的电脑跟新的一样好用
    本地跟单EA安装教程详解
    ORM模型--数据记录的创建操作,查询操作
    【已验证】微信小程序开发-绑定数据23.10.09
    如何自己开发一个前端监控SDK
    电子签名组件Vue
  • 原文地址:https://blog.csdn.net/weixin_46637351/article/details/126013567