ICT架构师技术交流(微信号ICT_Architect)

介绍分析和交流ICT行业最前沿技术,分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步。

每种技术和产品的出现都是为了满足时代的某种需求,当然闪存也毫不例外。闪存出道进入大众视野时,人们更多的认为它是划分存储厂商类型的一个代言词,也使得闪存厂商成为一个刚刚降温的热词,如今闪存技术已经迅速发展为存储厂商必须具备基本技术。此刻正是闪存串红并登上历史舞台指点江山、激扬文字的时刻,闪存(NAND Flash)的每一个细微动作都牵动着千万颗客户热血沸腾的心。

闪存颗粒分类

闪存(Flash)是一对孪生兄弟,学名分别称为NOR Flash和NAND Flash,它两虽外貌相似、但性情和喜好却大相径庭。

NOR Flash采用标准总线接口,包括地址线、数据线和控制线,所以可以直接连接处理器当作内存使用直接执行程序(XIP),相比DDR、SDRAM 或者 RDRAM,NOR Flash还具有掉电数据不丢失等特点,所以在嵌入式设备(ARM、MIPS等)中通常采用NOR Flash来存储BootLoader和OS程序。NAND Flash则无法直接寻址执行程序,所以需要专门的接口控制器来实现数据读写。但NAND Flash支持大容量,同时具备良好的随机读些能力,非常适合作为外置存储介质使用。所以目前绝大多数SSD都采用NAND Flash为存储介质。

闪存介质颗粒

SSD是相对于HDD而言的一种非易失性存储器。在技术原理上,SSD和HDD的最大区别在于,SSD是通过Flash控制电路选通原理来读/写数据,而HDD则采用笨拙的机械磁头来定位、读取数据。所以相比HDD,SSD具有更快的数据访问速度和更高的可靠性。

NAND Flash的基本单元称为Cell(是一种类MOS场效应三极管晶体单元),Cell采用电场来控制金属氧化物半导体,通过充放电的原理实现数据写入和擦除。写入和擦除的正个操作过程,还需要在Cell的源极(Source)、漏极(Drain)和浮栅(Floating Gate)等部件的辅助下才能完成。

对Cell单元充电过程就是编程或写入数据的过程,通过判断冲入电平的高低来判断具体数据。以SLC颗粒类型为例,当SLC颗粒冲入电荷后,读取到阈值电平为高电平时,则表示数据0;否则表示1。对Cell的放电过程就是数据擦除过程,在Flash中,在数据写入之前,必须要把原有的数据清除掉才能写入新数据。

对Cell的一个完整充电和放电过程称为一次P/E(编程/擦出),不同Flash颗粒的P/E操作次数是不同的,P/E操作次数越多(写入次数越多),对应Flash颗粒的SSD寿命越长,可靠性越好,价格也越高。

Flash颗粒可根据Cell可以储存bit数据位的不同,目前分为SLC, MLC和TLC三种,其中MLC还分为eMLC和cMLC两种。

SLC(single level Cell)是单层存储单元,一个Cell中只存储1bit数据,数据值判定结果只有两种情况(0/1)。

MLC(multi-level Cell)是多层式储存单元,存储密度较大,一个Cell中可以存储2bit数据(00/01/10/11);其实eMLC(Enterprise MLC)和cMLC (Consumer MLC)都是采用MLC技术,主要差别就是NAND Flash颗粒筛选参数、制作工艺和测试方法不同。首先经过严格测试和企业级标准筛选出的颗粒称为eMLC,然后筛选出的是MLC,最后剩余的颗粒定义为cMLC。

TLC(Triple level Cell)是三层式存储单元,一个Cell中存放3bit数据(从000至111),TLC颗粒数据密度最大,所以判定写入Cell具体数据的难度也大。所以SLC颗粒的擦写次数(P/E)只有几百次到上千次。

其实Cell就相当于一座庙,方丈相当于数据判别电路,对于SLC来说,由于庙里(Cell)只居住一个和尚,所以年迈的方丈很容易就知道这个和尚是在勤快干活还是在偷懒;对于MLC来说,由于庙里住了两个和尚,若有其中一个和尚在偷懒,方丈都需要更多信息来确认偷懒的到底是那个和尚(识别出存入Cell中的数据)。对于TLC来说,庙里住了三个和尚,如果有一个或两个在偷懒,方丈分辨偷懒的具体和尚就十分困难,除了需要更多信息外,还需要更多时间。

随着方丈自然衰老、头晕眼花、记忆下降等(闪存颗粒老化)因素,相比一个和尚(SLC颗粒),从两个和尚(MLC颗粒)、三个和尚(TLC颗粒)中找到具体偷懒和尚的难度依次增大,这就是为什么TLC颗粒的寿命(P/E操作)最短的原因。

闪存磁盘结构

Flash颗粒是构成闪存基本单元和存储媒介,NAND Flash则需要由成千上万的Cell按照一定组织结构组成的。在闪存结构上,NAND Flash(Device)由多个Die组成,Die是接收和执行Flash命令的基本单元;不同的Die可以并发执行读写等操作。每个Die又可以分为多个Plane,Plane分为若干个Block,Block是NAND Flash的最小可擦除单元,由Block可分为多个Page,Page就是NAND Flash的最小数据写入单元。

麻雀虽小五脏俱全,要构成NAND Flash SSD闪存磁盘磁盘设备(健康的麻雀),除了Flash存储单元(消化系统),还需要SSD主控电路、芯片(麻雀的大脑和心脏)、缓存(麻雀的食道)及SSD固件算法(麻雀的大脑皮层)等,才能使SSD有机地、系统的完成数据存储和读取工作。

SSD控制器是一种嵌入式微CPU芯片,是整个闪存的命令控制中心和SSD的大脑中枢,从实际读取/写入数据、执行垃圾回收和耗损均衡算法等功能需要SSD控制器发出操作请求命令完成。而缓存则是充当内存的角色,通过暂存中间待处理数据到缓存,提高SSD整体性能。

SSD固件主要用于驱动SSD控制器工作。主控通过运行SSD中固件控制程序去执行自动信号处理、磨损平衡、错误校正码(ECC)、坏块管理、垃圾回收和与主机设备通信,以及执行数据加密等任务。SSD固件以冗余保护的方式存储至NAND闪存中。

为了进一步提高SSD磁盘的寿命,SSD厂商采用Over Provisioning技术提高闪存寿命。SSD的P/E操作对某一块Block擦写次数达到一定数量时就会导致Block失效,失效后写入的数据无法被判定识别,当失效Block的容量超过Over Provisioning容量,整个SSD容量小于其宣称容量时,该SSD就失效了。所以SSD也提供了额外的容量,以便替换坏块来提高整个SSD寿命。

闪存存储系统

SSD相当于给闪存系统提供了强劲的引擎,但是闪存存储系统能否发挥出这个强劲引擎的性能,这是闪存系统设计时需要考虑的问题。例如赛车系统,强劲的引擎是必不可少的,但是需要变速箱、车身设计、汽箱、尾翼、散热器和遥感系统等在设计上匹配引擎,才能完全发挥出引擎的潜能。

闪存存储系统的设计过程与赛车类似,为了发挥出SSD磁盘的性能,必须要匹配SSD的特点来设计闪存架构。闪存最明显特点就是稳定性能,低时延和高随机IOPS。所以,闪存必须采用高速前后端数据通信互联接口(如16Gbps FC、56Gbps IB、12Gbps SAS和PCIe 3.0等)、Scale Out横向扩展能力、控制器对称Active/Active架构、Cache算法调优和增值特性增强等。

一般情况下HDD存储性能瓶颈在磁盘,所以HDD需要通过预取、IO聚合技术来增加下盘的顺序性,减少对机械盘的操作来提升性能。对于闪存,需要考虑的是如何减少Flash颗粒的P/E操作、如何节约数据存储空间;一般性能瓶颈在系统处理能力上,所以闪存在设计上要考虑如何优化元数据。

闪存存储重删压缩、FTL(Flash Tranform Layer)、Thin分配和数据复制功能可以用来减少数据下盘次数,节省存储空间,增强数据可靠性。针对元数据管理,两层元数据管理架构是实现元数据管理的趋势,简化元数据管理开销和复杂度,即数据逻辑地址(LBA)->块索引(Block ID)->Block物理位置的映射形式,当数据逻辑地址->块索引的映射变化时,不会影响块索引的->Block物理位置的关系。

以项目拓展支持流程为例,说明两层元数据管理架构。如果让销售人员找研发进行技术支持,销售人员需要维护和更新一张负责不同产品、不同模块的研发人员信息表(单层信息表管理方式),当销售人员越来越多、且分布在不用区域时,信息表的信息量将变得相当庞大,使得项目拓展支持流程运作效率低下。

如果在销售和研发中间加入销售接口人员,分别维护一张销售与接口人信息表和接口人与研发信息表(双层信息表管理方式),那么对销售人员来说就只需要记住这个接口人,每次有技术问题时找对应唯一接口人员,而不需要记住每个产品对应的研发人员,对研发人员来说也只需要找到对应接口人,不需关注销售人员是来自那个区域,从而提高了项目拓展支持效率。

另外,SSD自身的FTL只能完成数据LAB/重删后数据块到物理存储块的影射;只能实现简单的垃圾回收、RAID和ROW数据写能力,所以闪存储存需要Global FTL机制配合SSD控制器(需要SSD开放内部接口给阵列),通过阵列Global FTL完成ROW数据满条带下盘,全局负载均衡,整块对齐擦除、垃圾回收等高级优化功能;从而规避读、修改、写放大操作,解决Write Hole等问题。

为了使SSD中冷热数据均匀分布提高SSD寿命,闪存存储必须提供磨损均衡功能,磨损均衡分为动态磨损均衡和静态磨损均衡;动态磨损均衡是由主机更新数据触发的,静态磨损均衡是由SSD内部机制实现,将冷SSD上的冷数据进行转移,使冷数据Block有机会成为热Block,从而使SSD中所有Block的冷热度达到平衡。

为了防止SSD磁盘中缓存数据由于掉电丢失,SSD还需要提供掉电保护功能,把SSD磁盘缓存数据刷到Flash颗粒中,防止数据丢失。闪存阵列也应该提供一种机制,当阵列主动下电或升级维护时,下发命令给SSD控制器,让SSD进入刷写缓存数据保证数据一致性。

闪存生态或趋势

生态系统的建立和发展对闪存系统也尤为重要的,这如同赛车为什么需要车载系统一样,良好的车载系统不但可以通过数据分析可以监控赛车的监控状况、而且可以通过网络享受更多增值服务。如果要充分发挥闪存存储的性能,就需要提供基于生态链的端到端闪存方案。最常见的服务器加速方案就是PCIe SSD加速卡,现在绝大多数PCIe SSD都是采用PCIe协议,但是目前PCIe SSD没有标准存储协议,需要存储厂商提供私有驱动来支持PCIe SSD来正常工作,兼容性和通用性很弱。所以NVMe标准的出现使得不同PCIe SSD设备互通成为可能。

NVM express是一个针对使用PCI express SSD的企业和普通客户端系统开发的可扩展的主机控制芯片接口标准。NVMe就像是秦始皇,统一了各个国家的语言和文字(不同厂商PCIe SSD卡通信协议),各个国家采用统一标准语言和文字来沟通交流,只要服务器和PCIe接口卡都遵循NVMe规范,PCIe SSD接口卡就可以安装在任何服务器上,而不用担心通信兼容性问题。

NVMe是针对下一代存储设备提出的指令和协议规范,除了支持PCIe标准插槽接口外,VNMe还可以应用到不同的硬件接口规范上,如支持U.2接口(即SFF-8639接口)和M.2接口等,具有更好的底层硬件兼容性。

虽然NAND Flash目前处于绝对的王者地位,但是传统的NAND Flash是一种线性串列的颗粒存储结构,这种结构限制其容量很难做大。目前NAND Flash的存储密度已经可以做到微米、甚至到纳米级别;但是随着密度增高,存储单元Cell的浮栅周围产生电容耦合,存储数据能力和可靠性极速降低。

3D Flash技术的出现给闪存的未来发展指明了方向,目前3D-Flash技术主要有下面三个方向。

忆阻Memristor存储技术,忆阻器本质上是一种有记忆功能的非线性电阻,通过控制电流的变化可改变其阻值,如果把高阻值定义为“1”,低阻值定义为“0”,通过这种电阻变化实现存储数据的功能。美光/英特尔联合推出3D XPoint忆阻器存储技术,SanDisk/惠普也提出了企业级忆阻器存储方案。忆阻器存储在访问速度上Flash存储快1000倍。

3D-水平NAND Flash堆叠技术,基本思路是对现有的NAND浮栅结构进行堆叠,获得与普通 NAND 浮栅相同的横向可扩展性和存储密度,另外采用氮化硅串接技术来代替浮栅的电荷捕获闪存方法。

3D-垂直NAND Flash堆叠技术,三星电子推出3D V-NAND闪存技术,提升了产品的容量、速度和可靠性。3D V-NAND不是使用新工艺来缩小Cell单元和提供存储密度,而是选择了堆叠更多层数。这些技术的出现为未来SSD的发展开辟非常广阔的空间。

本文已经同步至同名微信公众号,请关注公众号,获取更多精彩内容。

温馨提示:

请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。

【精华】构建闪存系统和生态环境相关推荐

  1. 50TB ExaDrive SSD投入商用,EB级容量闪存系统来日可期

    Nimbus Data在2016年8月宣布推出了ExaFlash阵列.之后又推出ExaDrive并将其作为OEM SSD产品提供给Viking和SMART Modular Technologies这样 ...

  2. ESP8266WiFi-begin调用储存在ESP8266的闪存系统中的WiFi设置

    ESP8266WiFi 有开发经验的同学,一定了解esp8266的WiFi的连接. 一般情况下,我们通过ESP8266WiFi库-begin()函数,配置wifi名称和wifi密码例如下程序片段 #i ...

  3. 进销存系统_项目环境搭建代码生成登录接口(2)

    一.环境搭建 1.1.项目使用Maven 多模块进行构建 1.2.添加静态资源 二.用户模块设计 2.1.E-R图 2.1.SQL脚本 /*Navicat Premium Data TransferS ...

  4. 闪存联盟启动“百强架构师”行动 迎接认知时代架构挑战

    近日,以"从领先到顶尖,从局限到无限"为主题的2016 IBM全闪存时代峰会暨闪存联盟第六季在京盛大召开.IBM携手中国闪存联盟及两百余位企业和合作伙伴,共论认知时代下闪存解决方案 ...

  5. 2015中国闪存峰会:Memblaze联合创始人唐志波畅谈闪存标准化及产品寿命

    2015年8月5日,一年一度的中国闪存峰会在北京开幕.专注固态存储产品及解决方案的Memblaze现身大会,与众多到场嘉宾就闪存技术及生态做了全面的交流. Memblaze联合创始人唐志波受邀参加了大 ...

  6. 全闪存存储时代 NVMe到底是什么?

    在最近几年,介质发展突飞猛进,容量和性能都在持续快速提升,各大介质厂商都推出了高性能的NVMe SSD,几乎全球所有的存储大厂都在大力研发基于NVMe的新一代存储产品,一时间NVMe成了存储行业最热门 ...

  7. 全闪存存储 NetApp AFF A 系列 ——引领闪存的未来发展

    产品规格 NetApp AFF A 系列--引领闪存的未来发展 NetApp AFF A 系列 主要优势 一.提升应用程序性能 •利用行业最快的端到端 NVMe 企业级全闪存阵列加快关键应用程序的运行 ...

  8. NetApp AFF A 系列全闪存存储阵列

    NetApp® AFF A 系列全闪存阵列是一款智能.至强.至信的解决方案,它可利用现代云技术为您的 Data Fabric 提供所需的速度.效率和安全性. 是时候实现数据现代化了 进行任何 IT 转 ...

  9. 全闪存助攻:数据存储迎来又一个“新元年”

    每一次数据存储产业的发展,都离不开存储技术的进步.闪存技术发展的日新月异,也带来了全闪存阵列的创新与崛起. 2020进入了全闪存元年 源自企业级用户应用需求对存储性能有了更高的要求,最终驱动闪存技术飞 ...

最新文章

  1. 秋天六食物吃出好皮肤
  2. 浅谈高风险多团队协同的项目管理方法
  3. 解决android Stadio 升级之后 出现乱码
  4. ***工具CC***的思路及防范方法
  5. 【转】服务器维护工程师悲惨的一个星期
  6. scala部分应用函数_Scala中的部分函数
  7. Uber 提出损失变化分配方法 LCA,揭秘神经网络“黑盒” 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_source=csdn_bw
  8. Ubuntu下wxWidgets学生公寓管理编程,sqlite3的用法(mysql数据库),窗体,下面是部分添加和删除功能,其他功能可以联系我。。...
  9. Atitit fms Strait (海峡) lst 数据列表目录1. 4大洋 12. 著名的海大约40个,总共约55个海 13. 海区列表 23.1. 、波利尼西亚(Polynesia,
  10. 【无标题】AMAZINGIC晶焱科技:预防TVS闩锁风险的方法与实际案例分析
  11. 区块链专利全球第一竟是它?
  12. 虚拟机安装与双系统(win10+ubuntu)安装及其他
  13. 异地电脑如何共享文件?
  14. Archlinux的灵魂──PKGBUILD、AUR 和 ABS
  15. 第0期-前言-学习软件测试是否需要培训
  16. MySQL必知必会2
  17. php 排它性,排他性
  18. c语言打印字母金字塔图形,C程序打印金字塔和图案
  19. bitly短网址v4版本的操作及sample code
  20. 计算机组成原理sltu指令,计算机组成原理第二次作业题及答案.doc

热门文章

  1. 开心档开发入门网之C++ Web 编程
  2. ios技术分享| iOS 发布 framework 到 Cocoapods 以及常见问题
  3. FreeRTOS学习记录 01--中断管理
  4. [JAVA词形还原工具]Snowball
  5. 对计算机英语课的作文,有趣的电脑课作文5篇
  6. GLAD应用:高斯光束的吸收和自聚焦效应
  7. 【音频测评】全参考测评
  8. 前端基础知识点总结CSS篇(问题实例)
  9. 中国有微信和支付宝, 你为啥还费力不讨好去做区块链? | 人物志
  10. 表白网站|程序猿的爱情记录网站模版|情侣日记网页