0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度解读UFS 4.0的FBO特性

江波龙电子 2022-09-22 10:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

UFS简介

UFS(Universal Flash Storage, 通用闪存存储)协议是JEDEC为移动存储设备制定的通讯接口协议,业界通常将基于UFS协议的移动存储产品称为UFS设备。UFS设备广泛应用于智能手机、平板电脑VR(虚拟现实)设备、AR(增强现实)设备、无人机、3D游戏、监控系统、PDA、数字记录器、MP3播放器、电子玩具等领域。

UFS是eMMC的替代者,它提供比eMMC更高的性能和能效比。图1是eMMC和各代UFS的性能数据对比。

0f046c84-39e7-11ed-b180-dac502259ad0.jpg

(图 1:eMMC和UFS最大带宽)

从图1可以看到,最新UFS 4.0的最大带宽可达到4GB/s以上,是eMMC最大带宽的10倍有余。目前eMMC已停止演进,而UFS正在慢慢取代eMMC。

UFS经历几次迭代,目前最新版本是UFS 4.0(2022年8月发布)。从图1可以看到,每一次迭代,UFS性能都是在前一代的基础上翻倍。UFS 4.0也不例外,它在UFS 3.0/3.1的基础上性能翻倍,最大带宽达到4GB/s以上。除此之外,UFS 4.0在UFS 3.0/3.1的基础上,引入了一些新的特性,比如引入Barrier命令、高级RPMB、FBO等。今天我们将重点解读FBO特性。

FBO,全称为File Based Optimization,基于文件的优化,顾名思义,它是基于文件来做性能优化。在继续FBO介绍之前,首先交代一下背景知识,了解什么是文件的逻辑碎片和物理碎片。

文件的逻辑碎片和物理碎片

对于一个文件来说,文件系统会为其分配若干个逻辑块(Logical Block,用LBA寻址)用于存储文件数据。当文件系统在为一个文件分配逻辑块时,会尽量为其分配连续的逻辑块,但如果分配不到所需的连续逻辑块,则会分配不连续的块。

0f14084c-39e7-11ed-b180-dac502259ad0.jpg

(图 2:一个文件分配逻辑块的两个场景)

在这里,我们把LBA连续简称为“逻辑连续”。图2场景1为“逻辑连续”,场景2则为“逻辑不连续”。一个文件的LBA如果“逻辑不连续”,通俗来讲就是这个文件存在逻辑碎片化——该文件的LBA越离散,则表示其逻辑碎片化程度越高。

文件数据最终都是要存储在存储设备上,即这些逻辑块(不管连续还是不连续)都是要写到存储设备的闪存物理块上去。在设备端,如果没有其它写入命令插入,存储设备会把上述文件数据写入到连续的闪存空间里。


如图3所示:

0f240cf6-39e7-11ed-b180-dac502259ad0.jpg

(图 3:存储设备把文件数据写入到连续的闪存空间)

我们把文件的数据在闪存空间连续写入的场景称之为“物理连续”。

但主机端在写入上述文件的时候,可能会混杂着其它的写入,比如该文件元数据的写入,或者其它文件数据的写入,设备端按接收到的写命令依次接收写入数据,由于各种数据的穿插写入,就可能导致上述文件的数据不是被连续写到闪存空间。

如图4所示:

0f34e86e-39e7-11ed-b180-dac502259ad0.jpg

(图 4:存储设备把文件数据写入到不连续的闪存空间)

我们把文件数据在闪存空间不是连续写入的场景称之为“物理不连续”,通俗来讲就是文件存在物理碎片化——一个文件的数据在闪存空间存储越分散,则表示其物理碎片化程度越高。

值得一提的是,即使文件刚开始写入到闪存是连续的,但由于后续存储设备内部的一些操作,比如垃圾回收,也有可能导致文件数据最后存储在闪存空间的位置不是连续的。

文件碎片化对性能的影响

对存储设备(比如UFS设备)来说,由于一个LBA的数据可能存储在闪存的任意一个物理位置,因此存储设备需要维护一张逻辑地址到物理地址的映射关系表,即L2P映射表。L2P映射表是一个大的数组:索引为LBA,内容是该LBA在闪存的物理地址(简称为PBA)。当存储设备要读取数据时,首先查找L2P映射表获得该LBA对应的PBA,然后根据该PBA读取该LBA对应的数据。L2P映射表大小一般为存储设备容量的1/1024,比如一个256GB的UFS设备,其L2P映射表大小为256MB。对消费级存储设备来说,一般不带DRAM所以L2P映射表数据大多数时间都是存储在闪存中的,而存储设备固件则按需加载部分L2P映射关系到小容量的SRAM中。

在访问一个文件的时候,如果该文件的LBA是连续的:一方面,主机端只要发很少的命令到存储设备,以图2场景1为例,要读该文件,只需要发一个读取命令即可,而对图2场景2,即文件存在逻辑碎片,要读取该文件,主机端需要发三个读取命令,增加了I/O命令的个数。I/O命令个数的增多,无论是对主机端软件,还是设备端固件,都带来了不小的负担。另一方面,如果文件LBA连续,存储设备从闪存设备一次加载4KB的L2P映射关系,就能满足4MB的LBA数据访问,相反,如果LBA不连续,则最坏情况是每读一个LBA,存储设备需要从闪存中加载一个4KB的映射关系,然而频繁的L2P加载,将会严重影响存储设备的读取性能。

简而言之,无论是主机端还是设备端,都是特别喜欢“逻辑连续”的,不喜欢文件逻辑碎片化。

那“物理连续”呢?很显然,存储设备也同样“喜闻乐见”。原因在于读取的时候,如果数据都集中在一起,一次读可以使用多Plane操作,比如对4 Plane闪存来说,一次读取可以获得64KB数据。但这64KB数据如果不是物理连续——分散在闪存中的不同地方,则最坏情况下要读取16次闪存(每个命令只读取4KB)。

至此我们能得出的结论是:“逻辑连续”和“物理连续”都满足的场景下,文件具有最好的读取性能。但只要其中任何一个场景不满足,文件读取性能则会受影响,最终可能导致手机出现“卡顿”的问题。因此,文件读取性能优化方向是避免或者减少文件逻辑碎片和物理碎片。

FBO特性

现在我们回到FBO特性上来。FBO作为UFS 4.0的一个扩展协议,概括下来就是:主机和设备一起配合,把文件数据从“物理不连续”转换成“物理连续”,以提升文件数据的读取性能。

具体来说,系统空闲的时候(比如夜深人静的时候),主机把需要性能优化的某个(或某些)文件的LBA信息告诉存储设备,让存储设备去检查这些LBA在闪存块上是否连续。设备会查询这些LBA的映射关系,通过这些LBA在闪存上的物理地址,来分析该文件在闪存空间上是否物理连续,以及不连续的程度(物理碎片化程度),然后把这些信息返回给主机。主机根据设备反馈信息,来指示存储设备下一步动作:如果该文件在闪存空间上很分散,就要叫存储设备把这些不连续的数据块都搬到连续的地方去。在设备接到指示后,便会执行数据的整理:将不连续的数据集中写到新的连续闪存块位置。FBO通过主机和设备的这种协作,就能够解决文件数据在存储空间的“碎片化”问题,从而改善文件的读取性能。

0f42ef68-39e7-11ed-b180-dac502259ad0.jpg

(图5:FBO把文件数据从物理不连续整理成物理连续)

FBO旨在解决文件物理碎片化问题。

FBO没有解决的问题

FBO解决了文件的物理碎片化问题,即把“物理不连续”变成“物理连续”,但他没有解决文件逻辑碎片化问题。有数据表明,文件“逻辑不连续”相比文件“物理不连续”,对文件性能影响更大,因此解决文件的逻辑碎片化问题显得更为重要。

文件逻辑碎片化问题从古(HDD时代)至今(固态存储时代)一直存在。业界对此做了不少努力。

首先是日志结构文件系统(log-structured file system)的出现,以F2FS(Flash Friendly File System,闪存友好文件系统)为代表。F2FS是专门为基于闪存的存储设备而设计的文件系统,是手机中最常用的两大文件系统之一(另一个是EXT4文件系统)。F2FS在为文件分配逻辑块的时候,一般采用追加方式分配逻辑块,即按顺序分配;只有当存储设备逻辑空间很满的时候,才采用一种叫Threaded Logging的逻辑块分配方式,这种方式可能为一个文件分配离散的逻辑块。尽管如此,F2FS的出现,仍然大幅缓解了文件的逻辑碎片化问题。

其次是SSD中的ZNS(Zoned Namespace)技术,它把整个存储空间划分成若干个区块(Zone),在区块内部强制顺序写入。这对存储设备来说是个好消息,它的L2P映射表可以变得很小(采用更大的映射粒度),因此L2P映射表可常驻内存,当固件在处理读取命令的时候,能够快速获取LBA的物理地址,从而提升读取性能。在制定UFS 4.0标准的过程中,业界很多企业建议把Zoned Storage的概念应用到UFS上来,但从结果来看,这个建议并没有在UFS 4.0上被采纳。但可以预见类似SSD的ZNS技术一定会出现在未来的某个UFS版本中。

点评FBO

虽然没有解决文件逻辑碎片问题,但FBO解决了文件物理碎片问题,一定程度上能提升文件的读取性能。如果考虑到类似F2FS文件系统的使用,即绝大多数文件的LBA是连续的,而现在有了FBO的加持,在手机上大文件的读取性能将会得到改善,手机“越用越卡”的问题“可能”会得到解决。(为什么说“可能”?前面分析了影响文件系统性能最大因素是文件逻辑碎片化,如果文件逻辑碎片化问题没有得到解决,FBO效果不会很好。)

俗话说“万事有得必有失”,文件碎片整理需要从一个闪存块把数据读出来,然后集中写到另外闪存块,而FBO这种额外的写会引入写放大,影响存储设备寿命。

另外,FBO是一种“亡羊补牢”的做法,即文件出现物理碎片,然后再将它们做整理。如果一开始存储设备对文件的物理碎片化问题有针对性设计,即一开始就拒绝文件物理碎片的产生,那么FBO就失去了其意义。

导致文件物理碎片化主要有两个原因:

1.由于各种数据混合着写,某个文件的LBA数据一开始就有可能被写到不连续的闪存空间;

2.还有就是有些存储设备在设计上没有意识到文件数据在闪存空间连续存放的意义,一些诸如垃圾回收的内部操作,可能会导致最初连续写入的文件数据,被分散写入到闪存空间,最终导致“物理不连续”。

如果知道物理碎片产生的原因,那么存储设备就可以有针对性设计了。

比如存储设备在算法上可以采用物理隔离的方式,将大尺寸数据写入到一个闪存块,而把小尺寸数据写到另外一个闪存块,这样避免了因小尺寸元数据写入,而导致大尺寸数据在物理空间上写入不连续的情况。

或者一开始文件数据被不连续地写入到闪存块,但是在对这个闪存数据块做垃圾回收的时候,将该闪存块上连续的LBA数据写到连续的新的物理块上,从而达到类似FBO的功效。

江波龙Smart GC技术

江波龙UFS3.1在设计之初就意识到文件的物理碎片化问题,当研发团队在设计垃圾回收算法时,不单只考虑到通过垃圾回收功能来回收闪存块,还利用执行垃圾回收的时机同时完成“物理不连续”到“物理连续”的整理。我们把这种“毕其功于一役”的垃圾回收技术称为Smart GC。

0f708400-39e7-11ed-b180-dac502259ad0.jpg

(图6:Smart GC:设备执行垃圾回收的同时完成物理碎片整理)

Smart GC这项创新技术不仅解决了文件物理碎片化问题,改善了大文件的读取性能,同时也避免了额外碎片整理对存储设备寿命带来的影响。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UFS
    UFS
    +关注

    关注

    6

    文章

    112

    浏览量

    26233
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    UFS 5.0存储标准即将完成!

    电子发烧友网综合报道,JEDEC固态技术协会宣布即将完成新一代UFS 5.0存储标准。UFS5.0专为需要高性能且低能耗的移动应用和计算系统而设计,计划提供比其前代更快的资料存取速度和更佳的性能表现
    的头像 发表于 10-10 08:23 7371次阅读
    <b class='flag-5'>UFS</b> 5.0存储标准即将完成!

    解密SMA接头:工作原理与技术特性深度解读

    正是凭借这些卓越的工作原理和技术特性,德索精密工业的SMA接头在通信基站的天线连接、雷达系统的信号传输,以及实验室的测试测量设备等场景中,都能稳定可靠地完成信号传输任务。随着科技的不断进步,德索精密工业也在持续对SMA接头进行优化和创新,未来将推出更多高性能产品,在更多领域发挥更大的作用。
    的头像 发表于 06-27 11:06 1056次阅读
    解密SMA接头:工作原理与技术<b class='flag-5'>特性</b><b class='flag-5'>深度</b><b class='flag-5'>解读</b>

    直播 | GB/T 45086与ISO11451标准深度解读研讨会笔记请查收!

    6月12日,《德思特GB/T 45086与ISO11451标准深度解读》线上研讨会圆满结束。感谢大家的观看与支持!在直播间收到一些观众的技术问题,我们汇总了热点问题并请讲师详细解答,在此整理分享给大家,请查收!
    的头像 发表于 06-18 11:06 859次阅读
    直播 | GB/T 45086与ISO11451标准<b class='flag-5'>深度</b><b class='flag-5'>解读</b>研讨会笔记请查收!

    瑞萨365 深度解读

    技术架构、核心功能、行业影响及未来展望四个维度进行深度解读: 一、技术架构:融合硬件与设计软件的跨领域协作平台 瑞萨365基于Altium 365云平台构建,整合了瑞萨的半导体产品组合与Altium的设计工具链,形成从芯片选型到系统部署的全流程数字环境。其核心架构围绕 五
    的头像 发表于 06-06 09:58 1874次阅读
    瑞萨365 <b class='flag-5'>深度</b><b class='flag-5'>解读</b>

    ARM Mali GPU 深度解读

    ARM Mali GPU 深度解读 ARM Mali 是 Arm 公司面向移动设备、嵌入式系统和基础设施市场设计的图形处理器(GPU)IP 核,凭借其异构计算架构、能效优化和生态协同,成为全球移动
    的头像 发表于 05-29 10:12 3081次阅读

    Arm 公司面向 PC 市场的 ​Arm Niva​ 深度解读

    面向 PC 市场的 ​ Arm Niva ​ 深度解读 ​ Arm Niva ​ 是 Arm 公司为 PC 市场推出的核心计算平台,属于其“平台优先”战略的关键布局。作为 ​ Arm 计算
    的头像 发表于 05-29 09:56 1337次阅读

    Analog Devices LT6654 AMPS6-3.3器件参数特性解读 EDA模型 数据手册免费下载

    Analog Devices LT6654AMPS6-3.3器件参数特性解读 EDA模型 数据手册免费下载
    的头像 发表于 05-27 11:03 782次阅读
    Analog Devices LT6654 AMPS6-3.3器件参数<b class='flag-5'>特性</b><b class='flag-5'>解读</b>  EDA模型 数据手册免费下载

    RK3588参数与主要特性 RK3588数据手册解读

    RK3588参数与主要特性 RK3588数据手册解读
    的头像 发表于 05-19 18:34 9945次阅读
    RK3588参数与主要<b class='flag-5'>特性</b>  RK3588数据手册<b class='flag-5'>解读</b>

    兆易创新人形机器人方案 深度解读

    三个维度展开深度解读: 一、核心产品型号与应用场景 (一)主控MCU:多场景精准适配 GD32H7系列(高性能计算) 代表型号 :GD32H75E(Cortex-M7内核,600MHz主频) 特性 : 双发射6级流水线架构+双精
    的头像 发表于 05-07 15:56 1341次阅读

    边缘AI MPU深度盘点:品牌、型号与技术特性全解析

    边缘AI MPU深度盘点:品牌、型号与技术特性全解析 随着边缘计算与人工智能的深度融合,边缘AI MPU(微处理器)已成为支撑物联网、智能制造、自动驾驶等场景的核心硬件。本文从品牌、型号、技术
    的头像 发表于 04-30 17:27 3398次阅读

    铠侠UFS闪存解决方案及产品介绍

    文章来源:鼎芯无限UFS4.0特性UFS4.0为下一代智能手机和移动应用提供闪电般快速的存储传输速度,使它们能够充分利用5G移动网络的高速率。UFS4.0采用
    的头像 发表于 04-25 16:32 1150次阅读
    铠侠<b class='flag-5'>UFS</b>闪存解决方案及产品介绍

    深度解读 30KPA64A 单向 TVS:64V 击穿机制与高效防护策略

    深度解读 30KPA64A 单向 TVS:64V 击穿机制与高效防护策略
    的头像 发表于 02-24 13:52 629次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>解读</b> 30KPA64A 单向 TVS:64V 击穿机制与高效防护策略

    5G与AI融合发展:德明利UFS丰富移动存储性能体验

    随着5G技术深入应用,轻薄化、专业化成为AI智能终端的新趋势,UFS凭借其高集成度、多功能化成为高性能移动终端应用首选。闪存技术迭代升级使UFS在速度、效率和可扩展性上,应用拓展至汽车信息娱乐系统、工业自动化等多元应用场景,充分展现UF
    的头像 发表于 01-21 09:40 1102次阅读
    5G与AI融合发展:德明利<b class='flag-5'>UFS</b>丰富移动存储性能体验

    EMMC与UFS的技术对比

    eMMC(Embedded Multi Media Card)与UFS(Universal Flash Storage)是两种不同的存储技术,它们在多个方面存在显著的技术差异。以下是对eMMC
    的头像 发表于 12-25 09:44 6729次阅读

    开源鸿蒙5.0 Release版本关键特性解读

    概述 开源鸿蒙 5.0 Release版本是开源鸿蒙操作系统的一个里程碑,在系统能力、性能优化等多个方面进一步增强。本文将从系统功能、性能优化,安全和隐私保护以及分布式能力等角度,解读该版本的关键
    的头像 发表于 12-23 13:58 4365次阅读