和UFS閃存相比,eMMC的性能更弱,同一型號的手機混用這兩種規格的閃存,讓一些消費者感到了不滿。對此,廠商稱通過優化,eMMC的產品也可以獲得優秀的體驗。這個優化到底是怎么回事?根據以往的一些宣傳,可以推斷出是由于儲存器使用了更先進的文件系統——F2FS。
對于儲存器的文件系統,很多朋友或許并不太關注。但在使用上,不可避免地會感受到不同文件系統之間的區別——最直觀的,莫過于兼容問題,例如NTFS文件系統的硬盤插到Mac電腦中無法寫入,WinXP無法辨別exFAT文件系統等等。為什么儲存器會選擇不同的文件系統?一個優秀的文件系統,真的能把eMMC優化成UFS嗎?今天就一起來談談這問題吧。
文件系統有啥用?
我們知道,在使用硬盤、U盤等儲存器之前,需要進行格式化。而格式化的時候,會看到有很多文件系統可以選擇。例如,在Win系統下,可以把格式化為NTFS、FAT32等等,在Linux下可以格式化為Ext3、Ext4等等,在macOS中可以格式化為HFS+、APFS等等。這些不同的文件系統,都有著一個共同的作用,那就是組織起儲存器上的數據,讓操作系統和用戶更容易辨認和操作。
例如,在HDD硬盤上,數據是由扇區來儲存的。什么是扇區?HDD的盤片是一個同心圓,把圓分成一個個小小的扇形,數據在這些扇形中儲存,這些扇形就被稱之為扇區。扇區儲存著數據,但是操作系統并不會直接讓用戶訪問一個個扇區——辨認不同的扇區靠的是物理地址,作為一個用戶,面對著“01DE”“02FD”這樣的物理地址,壓根就無從下手。大家找蒼老師的影視作品,都是到“搖桿驅動程序”的文件夾中去找,哪有找扇區物理地址的道理?
要把扇區組織起來,變成用戶易于理解的各種文件、文件夾,就得文件系統來發揮作用了。我們知道,幾十百來個人的廣場舞,尚有令人眼花繚亂的陣仗,更何況是天文數字一般的扇區。不同的操作系統,組織數據的方式各不相同,于是就誕生了各種各樣的文件系統。
這些不同的文件系統,特性也不盡相同,而且還有這優劣之分。例如大家非常熟悉的FAT32和NTFS,NTFS就明顯要比FAT32更加先進——FAT32無法建立起2T以上的分區、儲存4G以上的文件,而NTFS則可以輕松做到;在安全方面,NTFS支持文件加密、權限控制等特性,還支持日志,而FAT32則都不支持。另外,在性能方面,NTFS對FAT32也是有著明顯優勢。因此,如果文件系統更先進,的確可以把儲存器“優化”得更上一個檔次。
專為閃存而生的文件系統F2FS
文件系統的選擇是有講究的。例如在大容量硬盤流行、注重安全性的今天,在Win系統中使用的硬盤基本都會格式化成NTFS;而為了壽命和兼容性的考慮(NTFS的日志會請求更多讀寫,對閃存壽命不利),U盤、存儲卡又往往格式化成為FAT32。安卓手機又普遍使用什么文件系統呢?我們知道安卓基于Linux,因此也繼承了Linux的很多特性,大多數安卓機的閃存都跟隨了Linux的主流文件系統,格式化成為了Ext4。
Ext4是一種很優秀的文件系統,它支持無限子目錄、多塊分配、日志記錄等先進特性。不過,它是否適合手機?還真不一定。Ext4在2006年首次出現,當時的儲存介質普遍還是HDD。而現在安卓機使用的都是閃存,Ext4并沒有針對閃存作太多的優化。
HDD和閃存的結構天差地別,數據的組織也并不一樣。在物理結構上,閃存并不存在扇區,因此需要經由FTL層來模擬HDD的扇區以實現對文件系統的兼容。加上文件系統沒有對閃存作什么優化,所以效率會受到影響。那么有沒有為閃存作優化的文件系統?F2FS便是了。
F2FS文件系統的全稱是“Flash Friendly File System”,看名字就知道,這是專門為閃存而生的文件系統。這個文件系統來自三星,在2012年底被Linux內核所支持,自然也能夠用于安卓機上。F2FS的確做了很多針對閃存的優化,最重要的就是基于閃存的塊來進行讀寫,小文件的隨機讀寫性能大大提高。
eMMC真能優化成UFS?
那么eMMC使用F2FS,到底能不能獲得和UFS同等的性能?這里為大家提供一些測試數據,分別是eMMC 5.1、UFS 2.1兩種閃存,Ext4、F2FS兩種文件系統不同的組合。注意,除了閃存類型和文件系統,測試數據還會受到閃存顆粒優劣、加密算法是否開啟、測試時閃存是否覆蓋寫入等因素的影響,數據僅供參考。
可以看到,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,才是最完美的性能方案。
不過,盡管F2FS性能很高,但目前使用F2FS的設備不多——甚至連三星自己也沒在安卓機中使用。這是因為F2FS還存在一些爭議,有觀點認為它會縮短閃存的壽命,摩托羅拉某些機型使用過F2FS,一段時間后性能大幅下滑。
無論如何,UFS從硬件規格上,明顯優于eMMC。eMMC使用F2FS后,或許能在某些方面勝過使用Ext4的UFS,但仍不能掩蓋硬件規格更低的事實——UFS可以換用F2FS,eMMC卻是變不了UFS的。目前同時使用UFS和F2FS的設備不多,如果很看重閃存性能,那還是UFS更值得選購——無論用的是Ext4還是F2FS文件系統。
評論