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

    文章

    101

    浏览量

    23547
收藏 人收藏

    评论

    相关推荐

    UFS4.0主控进入6nm,把握生成式AI脉动,厂商新品迭出

    进行升级。UFS4.0首先应用于旗舰智能手机,UFS3.1也因其性价比满足中低阶智能设备的需求。在最近,我们看到许多存储主控芯片厂商都推出了UFS解决方案,布局智能手机等市场。   群联 群联电子在1月一口气发布了四款全新的
    的头像 发表于 03-23 01:09 2226次阅读
    <b class='flag-5'>UFS4.0</b>主控进入6nm,把握生成式AI脉动,厂商新品迭出

    三星半导体UFS新品即将来袭,UFS 4.0UFS 5.0即将推出

    UFS 4.0的技术升级令人瞩目。与旧版本相比,其通道数量翻倍,从原先的2路升至4路,如同拓宽的高速公路,让数据传输通道更为畅通,能够并行处理更多数据流。
    的头像 发表于 03-21 15:31 462次阅读

    美光推出增强版通用闪存(UFS)4.0移动解决方案

    美光科技股份有限公司近日宣布推出其增强版通用闪存(UFS4.0移动解决方案,标志着手机存储技术的新里程碑。这一方案不仅具备创新的专有固件功能,还采用了业界领先的紧凑型UFS封装(9 x 13mm),为智能手机市场带来了前所未有
    的头像 发表于 03-01 09:41 232次阅读

    生成式 AI令智能手机UFS4.0进阶

    亿参数,大多数机型的闪存都配置了512GB这一容量。   在闪存规格上,主要为UFS4.0UFS是一种允许设备同时读取和写入的全双工接口,并且在标准层面能帮助设备以更低的功耗实现高速读写,UFS4.0理论速度达到4,640MB
    的头像 发表于 03-01 00:16 3967次阅读
    生成式 AI令智能手机<b class='flag-5'>UFS4.0</b>进阶

    美光推出紧凑封装型 UFS 4.0,助力下一代智能手机设计搭载更大容量电池

    2024 年 2 月 28 日,中国上海 –Micron Technology, Inc.(美光科技股份有限公司,纳斯达克股票代码:MU)宣布开始送样增强版通用闪存(UFS4.0 移动解决方案
    的头像 发表于 02-29 16:46 199次阅读
    美光推出紧凑封装型 <b class='flag-5'>UFS</b> <b class='flag-5'>4.0</b>,助力下一代智能手机设计搭载更大容量电池

    美光推出业界领先的增强版通用闪存UFS 4.0移动解决方案

    2024 年 2 月28日,Micron Technology, Inc.(美光科技股份有限公司,纳斯达克股票代码:MU)今日宣布开始送样增强版通用闪存(UFS4.0 移动解决方案,该方案具有突破性专有固件功能并采用业界领先的紧凑型
    的头像 发表于 02-28 10:58 253次阅读

    铠侠正式发布业界首款车载UFS 4.0嵌入式闪存

    存储器解决方案的全球领导者铠侠株式会社宣布,该公司已开始提供业界首款面向车载应用的通用闪存(UFS)4.0版嵌入式闪存设备的样品。
    的头像 发表于 02-22 16:21 659次阅读

    UFS 3.1误传为4.0,一加 12R 256GB版退款,UFS4.0持续走向主流

    近日,一加官方对外宣布,一加 12R 所有机型均配备 UFS 3.1,因之前UFS 3.1误传为4.0 一加 12R 256GB版开放全额退款。具体操作可以咨询客户服务,截止日期为 2024
    的头像 发表于 02-20 18:24 3077次阅读
    <b class='flag-5'>UFS</b> 3.1误传为<b class='flag-5'>4.0</b>,一加 12R 256GB版退款,<b class='flag-5'>UFS4.0</b>持续走向主流

    ufs3.1和ufs4.0有什么区别?ufs4.0ufs3.1实际使用区别

    ufs3.1和ufs4.0有什么区别?ufs4.0ufs3.1实际使用区别  UFS是一种高速、节能、可靠的非易失性存储器,旨在提供更快的
    的头像 发表于 01-17 11:05 8929次阅读

    UFS 4.0是如何帮助手机加速的?

    存储的读写性能更是在其中占据了重要因素。有意思的是,新发售的智能手机中,大多数都不约而同的选择了UFS 4.0*1存储方案。那么UFS 4.0是如何改变移动端的使用体验,又为何可以受到
    的头像 发表于 01-08 10:58 496次阅读
    <b class='flag-5'>UFS</b> <b class='flag-5'>4.0</b>是如何帮助手机加速的?

    基于232层3D TLC NAND闪存的美光UFS 4.0模块能效提升25%

    基于232层3D TLC NAND闪存的美光UFS 4.0模块能效提升25% 此前美光推出了其首个UFS 4.0移动存储解决方案,采用了232层3D TLC NAND闪存;速度提升很大
    发表于 07-19 19:02 892次阅读

    ufs4.0和3.1差别大吗 ufs40对比ufs3.1提升多少

    UFS(Universal Flash Storage)是一种用于移动设备存储的闪存存储标准。UFS 3.1和UFS 4.0UFS标准的不
    的头像 发表于 07-18 14:57 6w次阅读

    铠侠推出第二代UFS 4.0嵌入式闪存设备

    更高性能的第二代UFS 4.0嵌入式闪存设备已开始送样(2)。以小封装尺寸提供快速的嵌入式存储传输速度,适用于各种下一代移动应用。铠侠 UFS 产品性能的改进使这些应用程序能够利用 5G 的连接优势,从而加快下载速度、减少延迟时
    发表于 06-06 14:30 1552次阅读
    铠侠推出第二代<b class='flag-5'>UFS</b> <b class='flag-5'>4.0</b>嵌入式闪存设备

    Kioxia推出了新一代UFS Ver.4.0设备

    持续推进通用闪存存储技术[1](UFS)的发展,Kioxia Corporation是全球领先的存储解决方案提供商,今天宣布推出新一代高性能UFS Ver. 4.0嵌入式闪存存储设备,并已开始进行
    的头像 发表于 06-02 09:55 459次阅读

    利用高级RPMB实现更快、更安全的UFS 4.0身份验证

    在 5G 世界中,快速安全的连接非常重要。JEDEC 通用闪存 (UFS4.0 版有助于确保在我们的日常设备中实现这一点。作为附加的安全元素,UFS 设备中包含重放保护内存块 (RPMB),作为安全存储加密数据的一种方式,只
    的头像 发表于 05-25 16:03 2232次阅读
    利用高级RPMB实现更快、更安全的<b class='flag-5'>UFS</b> <b class='flag-5'>4.0</b>身份验证