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固件刷新教程
    ×
    热门文章
    1英特尔透露Copilot本地运行条件:至少需要40 TOPS算力的NPU
    2英特尔Lunar Lake MX参考平台曝光:8核心CPU及GPU,集成LPDDR5X内存
    3矽速科技开发中的新掌机十分小巧,基于FPGA芯片打造
    4华硕发布RT-BE88U Wi-Fi 7双频路由器:10网口配置,无线速率达7200Mbps
    5京东方凭定价赢得苹果OLED订单,或成为第四代iPhone SE独家面板供应商
    6两个版本的微星Claw性能对比:酷睿Ultra 5的游戏性能几乎与酷睿Ultra 7相同
    7九州风神推出PN D/M系列电源:支持ATX 3.1规范,双金牌认证,399元起
    8《双人成行》销量突破1600万份,开发团队表示玩家的支持意味着一切
    9微星推出MAG 274UPF E2游戏显示器:4K@160Hz,采用Rapid IPS面板
    欢迎参与评论,每一条合规评论都是对我们的褒奖。
    登录快速注册 后发表评论
    登录 后发表评论,若无帐号可 快速注册 ,请留意 评论奖罚说明