在昨天揭橥的文章下面,有粉丝朋友哀求“评价下小米256GB多8GB的技能”。
首先,让我们看看雷总在小米14发布会上对这个“小创新”的阐述:
发布会内容中,提到的256GB内存,实在便是一个UFS4.0设备(基于NAND存储颗粒的移动存储产品)。这里还有一个名词“FBO焕新存储”。
根据公开信息查到,针对UFS文件系统功能优化FBO特性是由小米与西部数据联合研发,并得到了其他厂商(比如美光、三星、海力士、铠侠等)支持,合入了UFS 4.0规范,在2022年8月正式发布在JEDEC组织。基于这一点,也得给小米点这个赞,创新不易!

小米工程师向linux社区提交的UFS FBO功能优化patch记录:
基于文件优化特性(FBO)是一种帮助移动设备在其利用寿命内保持性能上风的新技能,紧张目的是为理解决手机的碎片化。
碎片化的实质:碎片化会导致数据存储效率低下。随着韶光的推移,当一个存储设备被填满并且无法再按顺序写入数据时,或者当一个数据更新过程发生时,碎片化就会产生。在更新过程中,新的NAND块被利用,而未更新的数据仍旧保留在原始的NAND块中。纵然数据在逻辑上是顺序更新的,它也可能不是物理NAND块中的顺序存储。当这种情形发生时,数据会分散(随机)存储在存储设备的不同位置上。这反过来会导致较慢的性能,由于设备须要从各个物理位置网络数据时进行多次读取。
小米14中的UFS 4.0,跟SSD一样,底层存储颗粒都是NAND。那你知道NAND闪存是怎么事情的吗?实在,它便是由很多个晶体管组成的。这些晶体管里面存储着电荷,代表着我们的二进制数据,要么是“0”,要么是“1”。NAND闪存事理上是一个CMOS管,有两个栅极,一个是掌握栅极(Control Gate), 一个是浮栅(Floating Gate). 浮栅的浸染便是存储电荷,而浮栅与沟道之间的氧化层(Oxide Layer)的好坏决定着浮栅存储电荷的可靠性,也便是NAND闪存的寿命。
但是呢,这些晶体管的电荷可不是永久存在的。它们就像一群顽皮的孩子,喜好跑来跑去。如果你常常让它们进行“擦除”和“写入”的操作(NAND闪存中,P/E Cycle,也称为擦除次数),它们就会以为累,电荷的存储能力也会逐渐低落(浮栅与沟道之间的氧化层被磨损的越来越严重,导致浮栅中电子的掌握越来越困难)。直到有一天,它们再也不想存储电荷了,那这个时候,你的SSD的寿命也就差不多了。
以是呢,SSD寿命评估的底层机理,实在便是打算NAND闪存的擦除和写入次数(P/E Cycle)。每个晶体管都有一个固定的擦除和写入次数,就像我们的腿一样,跑多了会累,会磨损。当这些晶体管达到一定的磨损程度时,它们就再也存储不了电荷了,这时候你的SSD可就要退休了哦!
目前市情上紧张流利的便是4种NAND类型:SLC、MLC、TLC、QLC。随着每个寿命从高到低依次是SLC>MLC>TLC>QLC.
随着单个cell含有的bit数越多,NAND的可靠性也会有所降落。同时写延迟也在不断的增加。SLC写延迟在0.5ms级别,到QLC写延迟达到10-20ms,40倍的差距。
NAND存储产品的寿命,最怕垃圾数据太多,也便是碎片化严重,会导致NAND颗粒的写放大增加,降落NAND的寿命。
举个例子,最坏情形下的,如果我要写入一个4KB的数据Z覆盖A,并恰好目标块没有空余的页区,须要进行GC回收。这个时候就须要把B、C、D、E、F五分数据都搬走,然后擦除全体数据块,擦除完成后再整体写入6个数据页。这个全体过程,Host虽然只写了4KB的数据,但实际过程中,由于GC的问题,NAND终极写入了24KB。那么写放大WAF=24KB/4KB=6.
SSD产品中影响WAF的成分有很多,个中“OP预留空间”是跟本次雷总说的魔改8GB的空间有关。
SSD FTL算法的设计会影响写入放大的大小Wear Leveling,WL磨损均衡:这一机制紧张是通过均衡所有的闪存颗粒,从而延长整体的利用寿命,然而依旧是增加整体的写放大Over-Provisioning,OP预留空间:也会影响NAND写入的比例,终极影响写放大Garbage Collection,GC垃圾回收:比如上面的例子,便是GC垃圾回收迁居数据,擦除数据块后写入带来了整体写放大提升。业务读写的数据模型:随机写和顺序写对NAND的写入比例有非常大的影响,直接影响写放大的系数系统层的TRIM操作:会影响invalid无效数据是否在GC过程中迁居,对写放大影响也有主要的浸染。预留空间OP是什么呢?当一块SSD的数据写满时,须要额外的空间在启动垃圾回收之前接管新写入的数据,这块额外的空间,我们就称为预留空间。当然,这块预留空间是对用户不可见的。预留空间紧张分为两个部分:
(1)由于标称容量与NAND闪存打算差异造成的本征预留空间OP1。市场上SSD标称的容量是按照千进制(1000)来打算的,但是NAND闪存的容量是按照1024打算的。我们大略列个式子打算一下:
市场SSD标称 1GB(GigaByte)= 1000MB= 10001000KB= 100010001000Byte= 10^9Byte (1,000,000,000Byte).
NAND闪存 1GB(GibiByte)= 1024MB= 10241024KB =102410241024Byte =2^30Byte (1,073,741,824Byte).
这两个打算办法之间恰好相差7.37%。以是说SSD本征的预留空间就有7.37%。
(2)SSD由于性能哀求而预留空间OP2,这部分也是标称OP。这个部分预留空间紧张用于垃圾回收GC,存储SSD主控的固件(Firmware),备用数据块(Spare Blocks)等。标称预留空间OP=(SSD物理总容量-用户数据空间)/用户数据空间
从上面这个表格中我们看到标称预留空间(Marketed OP)为0%的时候,实在这时的内部仍旧有7%的本征预留空间。
预留空间OP有什么好处?预留空间捐躯了用户数据空间,那TA假如再没有什么好处,用户就真的要崩溃咯。实在预留空间OP的好处有很多:提高写入性能、降落写放大、提升NAND闪存利用寿命等。
以是,结合上面几个关键信息点,这个事情的逻辑该当是这样:
小米研发了基于文件优化的特性FBO,减小碎片化,增加NAND的顺序写入,降落了写放大,提升了UFS利用寿命。原来UFS 4.0 256GB预留了10GB空间,用于坏块管理和FW垃圾回收等功能,现在由于有FBO的涌现,只须要2GB就可以完本钱来10GB的事情,这样就省出来了8GB给用户。小编理解大概是这个逻辑,不知道各位是否有其他的意见,欢迎评论区留言互换!










