独家揭秘|小米14魔改存储芯片多出8GB空间背后的秘诀 |
您所在的位置:网站首页 › 存储芯片的公司有哪些品牌呢 › 独家揭秘|小米14魔改存储芯片多出8GB空间背后的秘诀 |
在昨天发表的文章下面,有粉丝朋友要求“评价下小米256GB多8GB的技术”。小编也是好奇,本文就让我们一起来看看这个“高科技”背后的秘密。(提前声明:本文内容仅代表个人观点,如果不当之处,小米公司不要投诉我哈,我支持雷总!) 首先,让我们看看雷总在小米14发布会上对这个“小创新”的阐述: 发布会内容中,提到的256GB内存,其实就是一个UFS4.0设备(基于NAND存储颗粒的移动存储产品)。这里还有一个名词“FBO焕新存储”。小编认为这个就是可以多8GB的关键。 根据公开信息查到,针对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= 1000*1000KB= 1000*1000*1000Byte= 10^9Byte (1,000,000,000Byte). NAND闪存 1GB(GibiByte)= 1024MB= 1024*1024KB =1024*1024*1024Byte =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给用户。 小编理解大概是这个逻辑,不知道各位是否有其他的看法,欢迎评论区留言交流! 小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢! 精彩推荐: SSD IO性能优化是一项复杂但很有趣的工程 双11即将来临,挑选SSD硬盘最全避坑指南 性能领域:你知道的越多,不知道的也就越多 NVMe SSD:ZNS与FDP对决,你选谁? 如何通过优化Read-Retry机制降低SSD读延迟? 关于硬盘质量大数据分析的思考 存储系统性能优化中IOMMU的作用是什么? 全景解析SSD IO QoS性能优化 NVMe IO数据传输如何选择PRP or SGL? 浅析nvme原子写的应用场景 多维度深入剖析QLC SSD硬件延迟的来源 浅析PCIe链路LTSSM状态机 浅析Relaxed Ordering对PCIe系统稳定性的影响 实战篇|浅析MPS对PCIe系统稳定性的影响 浅析PCI配置空间 浅析PCIe系统性能 存储随笔《NVMe专题》大合集及PDF版正式发布! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |