欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程资源 > 编程问答 >内容正文

编程问答

有关emmc、nandflash、ssd、hdd的科普类说明 -凯发k8官方网

发布时间:2023/12/15 编程问答 31 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 有关emmc、nandflash、ssd、hdd的科普类说明 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

带着疑问,查了一些资料,梳理了一下思路。

闪存的更新换代速度特别快,电脑端从机械硬盘hdd到固态硬盘ssd,手机端从emmc到ufs3.0,同步存在的苹果的nvme,一直在完善协议,各大厂家都在追求更流畅的体验和更优质的质量。

目前的主要配置:手机存储用emmc,笔记本电脑用ssd,台式机ssd与hdd组合使用

=======================================第一部分:文章出处:https://www.cnblogs.com/christal-r/p/7230304.html============================================

  flash memory又叫做闪存,是一种非易失性存储器。非易失性是指断电之后数据不会丢失,这里就涉及到断电保护(后面详细讲解)。

总体思路

1、前言:hdd和ssd的比较引出flash。

2、flash的分类:nand flash和nor flash。

3、nand flash规则介绍。

4、ssd固件(firmware,fw)包括:映射表(mapping table)、垃圾回收(garbage collection)、磨损平衡(wear leveling,wl)等。

5、补充概念:写入放大(write application)、预留空间(over provisioning)、flash寿命(program/erase count,p/e)等。

6、断电保护机制。 

7、对ssd的评价标准:稳定性、性能、寿命。

1、前言

(1)hdd

  hdd是指机械硬盘,是传统普通的硬盘。

  介质:采用磁性碟片来存储。

  包括:盘片、磁头、磁盘旋转轴及控制电机、磁头控制器、数据转接器、接口、缓存。

机械式硬盘最大速率约为100mb/s,由于容易发热等原因已经无法再进一步提升速度,所以引入了固态硬盘

(2)ssd

  ssd(solid state drives)是固态硬盘。

  介质:采用闪存颗粒来存储。

  包括:控制单元、存储单元(dram芯片/flash芯片)。

(3)性能&外观区别

  hdd是机械式寻找数据,所以防震远低于ssd,数据寻找时间也远低于ssd。ssd(左图)和hdd(右图)的模样区别如下:

(图片来自百度)

2、flash的分类

  flash又分nand flash和nor flash,nor型存储内容以编码为主,其功能多与运算相关;nand型主要功能是存储资料,如数码相机中所用的记忆卡。

  现在大部分的ssd都是用来存储不易丢失的资料,所以ssd存储单元会选择nand flash芯片。这里我们讲的就是ssd中的nand flash芯片。

(1)nor flash:主要用来执行片上程序

  优点:具有很好的读写性能和随机访问性能,因此它先得到广泛的应用;

  缺点:单片容量较小且写入速度较慢,决定了其应用范围较窄。

(2)nand flash:主要用在大容量存储场合

  优点:优秀的读写性能、较大的存储容量和性价比,因此在大容量存储领域得到了广泛的应用;

  缺点:不具备随机访问性能。

3、nand flash的规则

(1)flash都不支持覆盖,即写入操作只能在空或已擦除的单元内进行。

  更改数据时,将整页拷贝到缓存(cache)中修改对应页,再把更改后的数据挪到新的页中保存,将原来位置的页标记为无效页;

  指定在已有无效数据的位置写入时,需要先擦除无效页才能在该位置写入新数据。

 

(2)以page为单位写入,以block为单位擦除;擦除block前需要先对里面的有效页进行搬迁。

(3)每个block都有擦除次数限制(有寿命),擦除次数过多会成为坏块(bad block)。

 4、ssd固件内容

(1)映射表 mapping table

  逻辑地址:用户程序中使用的相对地址;

  物理地址:实际存储单元的绝对地址;

  所以,映射表里面存储的内容是逻辑地址到物理地址的映射信息,利用逻辑地址查询映射表,找到对应的物理地址,再对实际存储单元做读写访问。

  ssd内部就维护了一张映射表;一般ssd内部会板载dram,用于存储程序运行的临时数据,断电会丢失;映射表存放在sdram中(方便快速访问),同时nand flash中会存储几份映射表(防止断电后映射关系丢失),而且会定期对nand flash中的映射便进行更新。

(2)垃圾回收 garbage collection

  垃圾回收就是把几个block中的有效数据集中搬移到新的block上去, 然后再把这几个block擦除掉。

  垃圾回收机制有很多,都是根据不同的侧重点提出的,所以没有最优的算法,就像伴侣一样只有适不适合之说。如:greedy算法,每次选择包含最少有效页的block来回收,也就是对垃圾的贪心,每次尽可能回收最多的垃圾。还有cost-benefit算法(考虑block的擦除次数)、cat回收算法、cicl算法等。

另外有两种回收策略:

  • 被动回收策略:当有写入请求的时候,首先判断当前可用空间大小与临界值大小的比较;如果空间足够,直接写入空闲空间;如果空间不够了,首先启用垃圾回收,再往空闲区域完成写入请求。
    • 不足之处:当空间不够的时候写请求会被延迟。
  • 主动回收策略:通过固件设定周期性任务,定时检查可用空间大小,如果需要就执行垃圾回收。
    • 巧妙之处:利用空闲时间提前进行垃圾回收,避免对请求造成不必要的延时。
    • 不足之处:倘若系统一直没有空闲时间,垃圾回收依旧无法有效执行。

(3)磨损平衡 wear leveling

  每个block都是有寿命(program/erase count,p/e值)的,他们的擦除次数是有限的。nand flash的寿命类似“木桶原理”,取决于所有block中的最小寿命。如果拼命对某一块进行擦除,nand flash的寿命将会被缩减到最小。所以引入了磨损平衡,平衡所有block的擦除次数。

  有很多不同的磨损平衡机制,大体可以分为两大类:动态wl、静态wl。

  • 动态wl:使用block进行擦写时,优先挑选p/e值低的block。
  • 静态wl:把p/e值低的block中的数据挪到p/e值高的block中存放。

5、补充概念

(1)写入放大 write application

  • 写放大原理

  写入放大倍数 = 闪存写入数据量 / 主控写入数据量 = 实际写入数据量 / 要求写入数据量

  例如,现在有一个写入一页的请求;即主控写入数据量为1;

 

  然而这个一页请求触发了垃圾回收,当前的写请求会被延迟,直到垃圾回收完毕后再执行写入操作;

  如果垃圾回收只挪了5页有效数据,那么实际的写入量应该为6页(1页写请求,5页挪动);即闪存写入数据量为6;

  所以写放大为6/1 = 6。

  理想的写放大为1,但是sandforce的数据写入时会进行压缩写入,最优情况下,写放大可以为0.5,打破了intel的“写放大不可能小于1”之说。

  • 压缩写入

  三大好处:减少待存储数量,节约存储空间;减小待存储数据翻转可能性,增加nand flash的寿命和减少能耗;获得较小nand flash的写放大,提高读写速度。

  压缩写入方法又分为有损压缩和无损压缩。

  有损压缩:存在信息丢失,无法100%的保存原始信息。

  无损压缩:不允许精度损失,能100%恢复原始信息;无损压缩的压缩和解码复杂度较高,往往会大大的降低了nand flash的读写速度上的优势。

  现如今,数据压缩编码算法还不够强大,所以大部分厂家都不会采用压缩写入。sandforce除外。

(2)预留空间 over provisioning

  • op介绍

  通过垃圾回收的过程,不难知道,垃圾回收的前提是要提供空闲区域来拷贝,如果连空闲区域都没有,垃圾回收将无法执行,这时将不再支持任何数据的写入。为了避免这种情况的发生,提出了预留空间。

  预留空间不仅仅只是用来保证垃圾回收的正常完成,还存储着ssd内部的系统数据(包括:出厂坏块信息、ssd固件、mapping table等)。

  所以如果说明存储大小为256gb,实际上的存储空间可能只有238gb(一般预留空间为7%)。

  另外,op越大,垃圾回收就会越快,相应写放大会变小,所以读写性能就会越好;但用户能使用的空间会被缩小。

  • op与sa区别

  over provisioning(op,预留空间)不仅仅只是用来保证垃圾回收的正常完成,还存储着ssd内部的系统数据(包括:出厂坏块信息、ssd固件、mapping table等)。是基于ssd的概念。

  spare area(sa区)一般用来标记坏块,和保存对main区数据的ecc校验码。是基于nand flash中一个block的概念。

(3)flash寿命 program/erase count

  前面也已经提及到了,每个block都是有擦除次数限制的,所以引入了寿命这个说法。

6、断电保护机制

  为了提升读写性能,通常使用sdram做缓存,如果在读写过程中遭遇异常掉电,sdram中的数据可能来不及写进nand flash导致数据丢失,或者更新的映射表来不及写进nand flash导致映射表丢失。

  中控里板载的sdram是易失性存储器,断电之后数据会丢失,这个时候sdram中的数据主要包括:用户数据、映射表;

  如果没有断电保护机制,再次上电时,先去nand flash中找上次更新时的映射表,这时拿到的信息并不是最新的,是上次更新nand flash中映射表时的数据信息,所以发生了大部分数据丢失。

  因此ssd板上会加上钽电容或者超级电容,当检测到非法断电时,首先停止数据操作,钽电容或超级电容开始放电,以保证sdram中的数据能够写入到nand flash中。

  至于是用钽电容还是超级电容,得看具体要保护的数据量;不是电容的容量越大越好,因为只要电容开始放电,就要等待它的电放完之后才可以进行其他操作。假如电容容量过大,用户只是点了个电脑重启,这时候ssd的电容会开始放电,放电还没完成的时候,电脑已经重新上电,这时无法认盘。所以电容电量应该选最时候的。

  基于sdram中的内容,断电保护机制主要分为3种:

(1)保存sdram中所有数据

  再次上电后,相当于断电前的操作被中断,重新上电后就可立马进入待命状态。

(2)只保存sdram中的用户数据

  再次上电后,需要先把上次nand flash中保存的映射表提取到sdram中,再将保存的用户数据提取出来,两者结合更新映射信息,更新完之后才进入待命状态。

(3)只保存sdram中的映射表

  再次上电后,需要先把上次nand flash中保存的映射表提取到sdram中,只是丢掉了用户断电前正在操作的数据,无法更新。

7、ssd的评价标准

(1)稳定性:ssd是否稳定,最大的影响因素是垃圾回收机制的选择,恰当的垃圾回收可以提供稳定的读写速率;例如主动垃圾回收机制,在空闲的时候做垃圾回收,读写速度不会因为延时而波动不定。

(2)性能:预留空间的大小主要决定了ssd的性能,op大,垃圾回收快,相应写放大小,读写性能就越好。

(3)寿命:所有block的p/e值越趋近于均衡,ssd的寿命就越趋近于最佳。

 

=======================================第二部分:文章出处:https://zhuanlan.zhihu.com/p/148770953=====================================================

最近做车联网中车载行业平台的方案涉及到服务器的配单

接下来将我总结的内容分享给大家

以下会从容量、价格、速度、写入次数、工作噪音、防震能力、数据恢复等几个角度去做区分

固态硬盘和机械硬盘的对比

0、前置知识

如图所示,需要知道计算机存储的工作原理

  • 计算机先从硬盘中读取数据
  • 数据从硬盘进入内存条
  • cpu往内存条中取数据进行运算
  • 所以对于计算机而言,硬盘的读取速度决定着平台的启动速度,而不是cpu以及内存条。

    计算机传输计算的工作原理

    一:容量

    固态硬盘存储容量较小,机械硬盘存储容量较大;

    涉及原理不同:

    固态硬盘的原理:半导体存储;数据直接存在闪存颗粒中,并且由主控单元记录数据存储位置和数据操作。

    每一个闪存颗粒的存储容量是有限的

    固态硬盘内部机构

    机械硬盘的原理:电磁存储;机械硬盘在盘面上写数据、磁盘转动,机械臂移动,也是比较原始的数据读写方式[1],就像近现代的留声机发声原理一样。

    机械硬盘内部结构

    硬盘扇区的基础知识

  • 如上图所示,一块原型盘面被分为若干个扇面
  • 同时根据中心点的远近被分为各类的同心圆,每一个同心圆包围的区域被叫做磁道
  • 同时不同的扇面被不同的磁道切割之后所形成的面积又被叫做扇区,对于单个扇区来说,通常大小为512个字节,这512个字节往往是01010101的对应组合(对应于计算机所能理解的二进制);
  • 同时,不同盘片上的相同扇区组成了硬盘的柱面。
  • 那么对应任意一块硬盘,他所能容纳的容量

    磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

    当磁盘高速旋转,去读取相应位置的二进制码(比如0000011111××)之后,对相应的01码进行解析,就能得出相应的数据内容

    二:价格

    目前市场上,同容量大小,固态硬盘价格差不多是机械硬盘的3倍。截止2020年6月16日

  • 500gb三星固态硬盘价格:500元,价格体现在芯片制造的工艺成本
  • 500gb西部数据机械硬盘:139元,因为有成熟的留声机写入技术支撑
  • 三、读取速度

  • 机械硬盘读写速度平均60~80m每秒,由于受限于转盘转速与指针寻址的时间限制,速度往往不会超过200m每秒[2]
  • 固态硬盘不同品牌型号之间差距非常大,平均大约在150-300m每秒,由于是闪存颗粒和闪存控制器直接寻址的方式,最大的速度能达到500m每秒
  • 如果你想要快速开机,有快速启动大型游戏的需求,可以将主程序装载在固态硬盘中

    如果有照片、电影这种对读取速度没显性需求的数据,当然首选机械硬盘,便宜又大碗

    四、写入次数[3]

  • 对于机械硬盘来说,就像是写铅笔字,可以说是无限次的写入次数
  • 对于固态硬盘来说,就像是写钢笔字,固态硬盘中需要把有效数据抄到草稿纸上,将原先的一整页撕掉,然后再把新的数据和草稿上的有效数据放回去。
  • 但其实,无需担心固态硬盘的读写次数限制,比如市面上一款120gb的固态硬盘是,按照1000次的p/e写入次数计算,这块硬盘的写入总量应该是120×1000=120000gb,也就是你需要写入至少120tb的文件才会损坏,如果是每天写满120gb,要写1000天,也就是2.7年。而且,这个数据是个保底数据,就是说到了这个次数也不一定会坏,就算坏也不是马上就坏,可能会继续坚挺下去。

    五、工作噪音

  • 机械硬盘:涉及到磁盘的高速旋转,所以噪声偏大
  • 固态硬盘:由于和机械硬盘原理不同,不存在高速旋转,数据直接存放在闪存颗粒中,所以无噪声。
  • 六、防震能力

  • 机械硬盘:使用时,会涉及到磁头与磁盘之间的精准感应,存在不同机械之间结构的碰撞接触,抗震等级不足时,容易发生位置偏移,势必造成数据的寻址地址错乱,防震能力较差,所以被推荐用于家庭的台式机中;
  • 固态硬盘:使用时,只需要使用闪存控制器介入寻址即可,无光盘、无磁头,抗震等级较强,所以适用于经常移动的便携式笔记本中。
  • 七、数据恢复能力

  • 机械硬盘:由于机械硬盘的存储机制是存于扇区的二进制存储;每个数据都有相应的寻址地址,数据与地址一一对应,容易恢复
  • 固态硬盘:使用固态硬盘的闪存颗粒进行数据存储时,为了使多个闪存颗粒的平均寿命相同(擦写次数限制),除了固态硬盘的控制器,各类数据的存放位置均由硬盘控制器的ftl的动态链表记录和维护,所以对于数据恢复软件,按着操作系统之前的记录位置进行数据恢复,那是肯定找不到的。很难恢复

     

  • 总结

    以上是凯发k8官方网为你收集整理的有关emmc、nandflash、ssd、hdd的科普类说明的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

    • 上一篇:
    • 下一篇:
    网站地图