zoukankan      html  css  js  c++  java
  • eMMC真能优化成UFS?谈谈手机闪存的文件系统

    和UFS闪存相比,eMMC的性能更弱,同一型号的手机混用这两种规格的闪存,让一些消费者感到了不满。对此,厂商称通过优化,eMMC的产品也可以获得优秀的体验。这个优化到底是怎么回事?根据以往的一些宣传,可以推断出是由于储存器使用了更先进的文件系统——F2FS。

    对于储存器的文件系统,很多朋友或许并不太关注。但在使用上,不可避免地会感受到不同文件系统之间的区别——最直观的,莫过于兼容问题,例如NTFS文件系统的硬盘插到Mac电脑中无法写入,WinXP无法辨别exFAT文件系统等等。为什么储存器会选择不同的文件系统?一个优秀的文件系统,真的能把eMMC优化成UFS吗?今天就一起来谈谈这问题吧。

    <ignore_js_op>  

    文件系统有啥用?

    我们知道,在使用硬盘、U盘等储存器之前,需要进行格式化。而格式化的时候,会看到有很多文件系统可以选择。例如,在Win系统下,可以把格式化为NTFS、FAT32等等,在Linux下可以格式化为Ext3、Ext4等等,在macOS中可以格式化为HFS+、APFS等等。这些不同的文件系统,都有着一个共同的作用,那就是组织起储存器上的数据,让操作系统和用户更容易辨认和操作。

    <ignore_js_op>  

    例如,在HDD硬盘上,数据是由扇区来储存的。什么是扇区?HDD的盘片是一个同心圆,把圆分成一个个小小的扇形,数据在这些扇形中储存,这些扇形就被称之为扇区。扇区储存着数据,但是操作系统并不会直接让用户访问一个个扇区——辨认不同的扇区靠的是物理地址,作为一个用户,面对着“01DE”“02FD”这样的物理地址,压根就无从下手。大家找苍老师的影视作品,都是到“摇杆驱动程序”的文件夹中去找,哪有找扇区物理地址的道理?

    要把扇区组织起来,变成用户易于理解的各种文件、文件夹,就得文件系统来发挥作用了。我们知道,几十百来个人的广场舞,尚有令人眼花缭乱的阵仗,更何况是天文数字一般的扇区。不同的操作系统,组织数据的方式各不相同,于是就诞生了各种各样的文件系统。


    <ignore_js_op>  

    这些不同的文件系统,特性也不尽相同,而且还有这优劣之分。例如大家非常熟悉的FAT32和NTFS,NTFS就明显要比FAT32更加先进——FAT32无法建立起2T以上的分区、储存4G以上的文件,而NTFS则可以轻松做到;在安全方面,NTFS支持文件加密、权限控制等特性,还支持日志,而FAT32则都不支持。另外,在性能方面,NTFS对FAT32也是有着明显优势。因此,如果文件系统更先进,的确可以把储存器“优化”得更上一个档次。

    专为闪存而生的文件系统F2FS

    文件系统的选择是有讲究的。例如在大容量硬盘流行、注重安全性的今天,在Win系统中使用的硬盘基本都会格式化成NTFS;而为了寿命和兼容性的考虑(NTFS的日志会请求更多读写,对闪存寿命不利),U盘、存储卡又往往格式化成为FAT32。安卓手机又普遍使用什么文件系统呢?我们知道安卓基于Linux,因此也继承了Linux的很多特性,大多数安卓机的闪存都跟随了Linux的主流文件系统,格式化成为了Ext4。

    <ignore_js_op>  

    Ext4是一种很优秀的文件系统,它支持无限子目录、多块分配、日志记录等先进特性。不过,它是否适合手机?还真不一定。Ext4在2006年首次出现,当时的储存介质普遍还是HDD。而现在安卓机使用的都是闪存,Ext4并没有针对闪存作太多的优化。

    HDD和闪存的结构天差地别,数据的组织也并不一样。在物理结构上,闪存并不存在扇区,因此需要经由FTL层来模拟HDD的扇区以实现对文件系统的兼容。加上文件系统没有对闪存作什么优化,所以效率会受到影响。那么有没有为闪存作优化的文件系统?F2FS便是了。

    <ignore_js_op>  

    F2FS文件系统的全称是“Flash Friendly File System”,看名字就知道,这是专门为闪存而生的文件系统。这个文件系统来自三星,在2012年底被Linux内核所支持,自然也能够用于安卓机上。F2FS的确做了很多针对闪存的优化,最重要的就是基于闪存的块来进行读写,小文件的随机读写性能大大提高。

    eMMC真能优化成UFS?

    以上的问题也可以这么说:eMMC使用F2FS,到底能不能获得和UFS同等的性能?

    根据已有的测试数据来看,F2FS的确比Ext4性能更高,甚至能让eMMC 5.1在随机写入性能超过UFS 2.1。不过,在持续读写速度方面,UFS 2.1仍要遥遥领先。而USF 2.1配合F2FS,取得了非常理想的测试成绩,在随机写入方面甚至能十倍于采用Ext 4的UFS 2.1。无论是eMMC还是UFS,换用后F2FS,都有明显提升,而UFS换用F2FS的提升幅度更大,性能表现更加完美。

    那能不能说F2FS能让eMMC优化成UFS?这要分开不同方面看。在随机读写性能方面,使用F2FS的eMMC的确可以媲美Ext4的UFS。

    这个性能对App的开启速度很重要,某些使用F2FS的eMMC安卓机在App开启速度方面,就因此不输使用UFS的竞品机型。但是,eMMC的物理瓶颈,是无法依靠F2FS来补全的——eMMC持续读写速度慢,而且是半双工,每通道同一时间只能读数据或者写数据,不能同时读写。在复杂的应用环境下,eMMC依然会是瓶颈。因此,UFS搭配F2FS,才是最完美的性能方案。


    无论如何,UFS从硬件规格上,明显优于eMMC。eMMC使用F2FS后,或许能在某些方面胜过使用Ext4的UFS,但仍不能掩盖硬件规格更低的事实——UFS可以换用F2FS,eMMC却是变不了UFS的。目前同时使用UFS和F2FS的设备不多,如果很看重闪存性能,那还是UFS更值得选购——无论用的是Ext4还是F2FS文件系统。

  • 相关阅读:
    poj 3528 (三维几何求凸包+凸包表面积)
    dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)
    最大空凸包模板
    ICPC 2017–2018, NEERC, Northern Subregional Contest St Petersburg, November 4, 2017 I题
    hdu 5248 序列变换
    hdu 2063(二分图模板测试)
    组合数
    85. Maximal Rectangle 由1拼出的最大矩形
    750. Number Of Corner Rectangles四周是点的矩形个数
    801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数
  • 原文地址:https://www.cnblogs.com/F4natasy/p/7417117.html
Copyright © 2011-2022 走看看