E X P
  • 编辑
  • 评论
  • 标题
  • 链接
  • 查错
  • 图文
  • 全文浏览

    3.4 为啥越用越慢?NAND闪存的读写过程

      SSD与传统HDD有着不同的架构和原理,读写数据的过程也是不一样的,这种原理上的不同带给SSD优异的性能,但是也决定了SSD固有的一些缺点。

      HDD磁盘有扇区、柱面之分,SSD的基本组成也有Page(页面)、Block(区块)、Plane(平面)之分,page是最基本的组成,大小一般是4KB,,每个block通常包含64个page,容量是256KB,也有128个page的,容量就是512KB,不过目前主流的25nm工艺闪存普遍都是8KB page容量,128个page配置。

      多个block再组成plane,而plane就是就是闪存中的一颗核心(die)了,而我们看到的闪存片其实是多颗die封装在一起的,一般是2-8颗,而整个SSD上则会由多片闪存组成。

      实际上,如果SSD内部是以die颗粒的RAID 0模式组建的,那么block层级之上还有一个band之分,它是RAID 0模式中所有芯片的同一块block区块的总和。

      简单的描述就是这样:page→block→band→plane-die→闪存片→SSD。

      数据读写的主要过程就在page、block以及band三个层面上。

      在系统中,数据写入是以page为单位的,SSD写入新数据擦除原有的数据,但是擦除过程只能以block为单位,要清除就得擦除整个block单元,哪怕只写入了一个page的文件。

      在一篇国外博文中找到一个非常简单形象的SSD写数据的描述,我们来看看SSD到底是怎么写入数据的。

      这里为了简化说明,假设每个block只有12个page,每个page大小1Byte。


    无数据的情况就是这样的,SSD性能最好的状态


    打开笔记本程序


    输入1234并保存


    这个文件的大小正好是4Byte


    写入到SSD就是占用了block A的4个page


    改变原来的文档内容,变成56781234


    现在文档大小变成了8B


    保存时SSD不能直接覆盖原有文件,需要重新占用8个page文件


    现在就是这个样子了

      Block A实际上已经写“脏”了,要恢复性能就需要删除整个block区块,此时需要把有用的数据拷贝到另一个空白blokc中然后再清除Block A。


    数据写入到空白的block B中

      实际过程中数据显然不是只有这么简单,略微复杂一点的情况就如上图所示,1234.txt文档占用了8个page,xyz.dll也是占用8个page,但是分别在两个block区块中,word.doc文件也是占用了两个block,其中占满一个,另一个占用了8个page。

      此时如果用户删除了xyz.dll文件,那么数据就要重新洗牌,Block B中的1234.txt重新拷贝到block A中,dock文件中的4B也要写入block A中,还有多余的4个page要再占用block D的4个page空间,而block E中的数据是满的,不需要移动,此时的排列就如上图所示,腾出来的block B和block C也就可以清除数据以恢复性能了。

      上述过程还只是非常简单的例子,如果是真实的应用环境情况会更复杂,SSD需要不断地在各个block之间进行写入-转移-清空操作,而且SSD的写入速度与擦除速度相差很大,这也会影响SSD的性能发挥。

      总之,SSD的特性决定了它的写入方式,不能直接覆写数据使得SSD多了擦除的操作,而写入单位与擦除单位的不统一又让SSD不停地在各个Block区块之间折腾,而写入数据的延迟约为0.2ms,但擦除操作需要2ms左右,SSD用久了需要擦除的区块就会越多,性能自然也会变慢。

      这些问题都是SSD必须处理的,影响可大可小,也让很多人开始对SSD的可靠性不放心,下一个关注点自然就是SSD的使用寿命了。

    文章导航
    1.扉页
    29.5.7.1 三星830 128GB
    2.1 前言:HDD寻春苦未至,SSD花开正当时
    30.5.7.2 三星赠送软件: SSD Magician
    3.2.1 降价之风愈演愈烈,SSD飞入寻常百姓家
    31.5.8 超极速Hyper SLC 128GB
    4.2.2 睁大眼睛,市售热门SSD型号速览
    32.5.9 忆正FTM Plus 120GB
    5.3.1 速度不是唯一,SSD真正的优势在哪?
    33.5.10.1 OCZ Vertex 4
    6.3.2 主控芯片:SSD的大脑
    34.5.10.2 OCZ Vertex 3 Max IOPS
    7.3.3.1 闪存基础原理:为什么会写入次数限制
    35.5.10.3 OCZ Vertex 3
    8.3.3.2 SLC vs MLC:性能、成本与可靠性的纠结
    36.5.10.4 OCZ Agility 3
    9.3.3.3 闪存同步与异步的选择
    37.5.10.5 OCZ附送软件:OCZ Toolbox MX
    10.3.4 为啥越用越慢?闪存的读写过程
    38.5.11 浦科特 PX-128M3
    11.3.5.1 SSD不可靠?写入放大带来的难题
    39.6.1 测试平台与方法
    12.3.5.2 SSD延寿计划之“耗损均衡”
    40.6.2 如何解读测试成绩
    13.3.5.3 还我漂漂拳,TRIM与GC运作方式
    41.7.1 AS SSD Benchmark测试
    14.3.6.1 容量相差这么大,也谈SSD OP空间
    42.7.2 CrystalDiskMark测试
    15.3.6.2 SSD实际可用容量一览
    43.7.3 PCMark7测试
    16.4.1 好马要配好鞍,该为SSD选择怎样的主板
    44.7.4 Fastcopy测试
    17.4.2 为什么要开启磁盘模式AHCI模式?
    45.7.5 Photoshop CS5文件载入与保存测试
    18.4.3 SSD的4K对齐问题
    46.7.6 性能测试数据汇总及分析
    19.5.1 十四款SSD规格一览
    47. 7.7 GC效率测试-SF主控
    20.5.2.1 威刚XPG SX900 128GB
    48.7.9 GC效率测试-其他主控
    21.5.2.2 威刚附送软件:Acronis True Image HD
    49.7.10 TRIM性能
    22.5.3 海盗船Force GT 120GB
    50.8 SSD功耗测试
    23.5.4 Crucial M4 128GB
    51.9 128/120GB SSD选购参考意见
    24.5.5.1 Intel 520 120GB
    52.10 有关SSD发展趋势及感想
    25.5.5.2 Intel 330 120GB
    53.11.1 附录:Crucial M4固件刷新教程
    26.5.5.3 Intel附送软件:Intel SSD Toolbox
    54.11.2 附录:忆正FTM Plus固件刷新教程
    27.5.6.1 金士顿HyperX 3K 120GB
    55.11.3 附录:OCZ SSD固件更新教程
    28.5.6.2 金士顿软件:Kingston SSD Toolbox
    56.11.4 附录:浦科特M3P固件刷新教程
    ×
    热门文章
    1AMD Strix Halo渲染图:GCD极其巨大,比两个CCD加起来都要大
    2目前DP80 UHBR认证线材最长仅1.2米,难以满足DP 2.1 UHBR20实际使用需求
    3微星推出PAG FORGE M100L机箱:12个风扇位,支持400mm显卡,售价219元
    4长江存储推出PC41Q:旗下首款商用消费级QLC SSD,最大2TB,双尺寸可选
    5索尼可能在开发新款PlayStation掌机,首发运行PS4游戏
    6AMD宣布Alveo V80计算加速卡量产:配32GB HBM2E,针对内存密集型工作负载
    7育碧公布《不羁联盟》PC配置要求:4K需要RX 6800 XT或RTX 3080
    8英特尔Arc显卡31.0.101.5522 WHQL驱动:为近期新游戏和重要更新进行优化
    9夏日游戏节2024公布第一批合作伙伴,超过55间厂商加入
    欢迎参与评论,每一条合规评论都是对我们的褒奖。
    登录快速注册 后发表评论
    登录 后发表评论,若无帐号可 快速注册 ,请留意 评论奖罚说明