一、前言
存儲器件作為系統(tǒng)中存儲數(shù)據(jù)的物理單元,承擔著非常重要的責任,它的運行狀態(tài)時刻影響著整個系統(tǒng)的運行效率,存儲容量和數(shù)據(jù)安全。所以整個產業(yè)針對存儲器件的壽命,穩(wěn)定性,容量,性能以及價格等方面進行著長期持續(xù)的探索與改進,進而衍生出了多種多樣的存儲器件應用于不同階段和不同場景需求的系統(tǒng)。
而手機系統(tǒng)場景尤其復雜,對存儲性能(包括IO的帶寬,延遲和穩(wěn)定性)的要求更加嚴苛。那么應對如此高要求的手機系統(tǒng),存儲器件在手機系統(tǒng)中是如何應用和發(fā)展呢?下面我們一探究竟。
二.UFS與NVMe全面對比
首先,我們可以知道,目前手機系統(tǒng)主流的存儲器件有兩種,一種是安卓手機使用的UFS,另外一種是蘋果用的NVMe。我們依次介紹:
2.1UFS簡介
UFS,Universal Flash Storage,通用閃存存儲。為什么現(xiàn)在主流使用UFS呢?很簡單,就是快。我們看下主流2lan的UFS,其順序讀的數(shù)據(jù)傳輸速率可以達到4.2GB/s:
UFS為什么這么快呢,對比手機以前使用的eMMC,有如下優(yōu)勢:
UFS采用差分串行傳輸,而eMMC采用并行數(shù)據(jù)傳輸。并行最大的問題是速度上不去,因為一旦時鐘頻率提升,干擾就變大,信號完整性無法保證。隨著時鐘頻率越來越高,高速串行傳輸?shù)膬?yōu)勢就很明顯了。
支持多通道數(shù)據(jù)傳輸(目前是兩通道),多通道可以讓UFS在成本,功耗和性能之間做取舍。
UFS是全雙工工作模式,意味著讀寫可以并行。而eMMC是半雙工,讀寫是不能同時進行的。
UFS支持命令隊列,可以異步處理命令,而eMMC無命令隊列,只能進行同步處理。
綜合串行,多通道,全雙工和異步的巨大優(yōu)勢,UFS流行也是大勢所趨。
UFS(全雙工+串行)vs eMMC(半雙工+并行)
2.2 NVMe簡介
NVMe是專門為高速閃存芯片設計的協(xié)議,主要是為企業(yè)級和數(shù)據(jù)中心的PCIe SSD設計的接口標準,來充分發(fā)揮閃存的性能。NVMe通訊協(xié)議+PCIe總線協(xié)議是實現(xiàn)高速SSD性能的基礎,為什么這種組合可以充分發(fā)揮SSD的性能呢?
在NVMe之前,除了自成體系的SCSI協(xié)議(SAS SSD),其它SSD基本用的是AHCI+SATA協(xié)議。其實AHCI和SATA是為HDD服務的,而且SATA是由PATA進化而來,也是使用到了我們前面提到的高速串行的全雙工傳輸。奈何SSD具有更低的延遲和更高的性能,SATA已經(jīng)嚴重制約了SSD的速度,此時就需要PCIe了。
相比SATA/SAS,我們先看下PCIe到底有多快:
常見的4 lan的PCIe4.0 SSD,傳輸速度就可達7GB/s
那么,如果把SATA換成PCIe是不是就可以了,有NVMe什么事情呢?這就需要看SATA的難兄難弟AHCI了,如果不用NVMe,老舊的AHCI同樣會嚴重制約SSD性能。下面的對比圖可以看到AHCI與NVMe的差距了:
講到這里,這些協(xié)議錯綜復雜,大家是不是已經(jīng)云里霧里了。不著急,我們用下面這張圖幫助大家理解他們的關系:
參照SAS SSD的協(xié)議棧,我們可以簡單明了的看到,SATA和PCIe是物理接口和協(xié)議,AHCI和NVMe則是上層軟件協(xié)議
2.3 UFS與NVMe比較
從上面的介紹可以看到,UFS擁有很好的性能,尤其是到了UFS4.0時代,2lan的順序讀可以達到4GB/s。但是,同時我們也可以看到,NVMe作為專為SSD所設計的協(xié)議,確實也有著無以倫比的性能,尤其是PCIe6.0,單lan就可以達到恐怖的8GB/s。
那么蘋果為什么會采用NVMe而安卓還在繼續(xù)使用UFS呢?孰優(yōu)孰劣?
接下來我們針對UFS和NVMe從以下幾個維度進行全面詳細的剖析:
2.3.1底層器件材料:
器件使用的材料可以說對性能起著決定性的影響,目前來看各個廠家的UFS和NVMe SSD都采用的NAND顆粒,在這塊來說,UFS和NVMe是旗鼓相當?shù)?,可以造成差距的就是UFS因為尺寸原因,無法做更多的堆疊而導致通道數(shù)不夠,導致器件并行度有限從而影響性能。
2.3.2總線傳輸協(xié)議:
我們前面介紹過,NVMe是基于PCIe總線進行數(shù)據(jù)傳輸?shù)?,那么UFS用的什么傳輸協(xié)議呢?
先看下UFS的架構圖,
最下層的互連層(UIC):由MIPI(Mobile Industry Processor Interface ,移動產業(yè)處理器接口)聯(lián)盟的M-PHY作為物理層和MIPI的UniPro作為數(shù)據(jù)鏈路層組合而成。
中間的傳輸層(UTP):是JEDEC(固態(tài)技術協(xié)會)自己定義的。
最上層的應用層(UCS):使用的簡化的SCSI子集組成UCS,由T10組織定義的。
我們可以看到UFS整個協(xié)議棧是借用了M-PHY,UniPro和SCSI組合而成,需要互相配合,數(shù)據(jù)傳輸?shù)男士赡軙兴劭邸D敲丛倏纯碞VMe就顯得很簡潔,底層全部使用PCIe,傳輸效率也會相應的快很多。
2.3.3 上層軟件層次:
底層協(xié)議UFS和PCIe的速率我們前面比較過,PCIe確實強。
那么,上層協(xié)議SCSI和NVMe相比的話,孰優(yōu)孰劣?
既然UFS使用古老的SAS SSD的SCSI子集,那么作為新興的協(xié)議,NVMe與SCSI相比,是否有優(yōu)勢呢?我們看看它們的協(xié)議棧對比:
NVMe是簡潔的高速協(xié)議,從上圖我們也可以看到NVMe傳輸只需要一層,而SCSI則需要多層傳遞,比較臃腫,UFS子系統(tǒng)隸屬于SCSI低層。而且UFS自身也分了三層,簡單介紹一下:
UFS平臺層:獲取平臺相關的屬性,通過ufshcd_pltfrm_probe調用公共層ufshcd_init。獲取底層UFS host驅動并傳遞到公共層。
UFS公共層:提供UFS公共行為,策略,錯誤處理等。實現(xiàn)ufshcd_init等。
UFS host物理層:實現(xiàn)scsi控制器驅動。
UFS和NVMe協(xié)議有一些顯而易見的差異也會導致性能差距,尤其是IO隊列個數(shù)和隊列深度:
2.3.4驅動代碼差異:
上面我們了解了UFS SCSI和NVMe協(xié)議棧的差異,NVMe簡潔高效而SCSI略顯臃腫,那么體現(xiàn)到驅動代碼層面,IO到底需要經(jīng)歷多少波折呢?通過下圖的函數(shù)調用,我們簡單看下IO提交的請求在兩種驅動中是如何進行處理的,然后最終發(fā)送成功,器件進行處理。
request從block層下來,通過queue_rq可以調到scsi或者NVMe驅動。
NVMe處理request相對簡單,block層調用nvme_queue_rq,只需要經(jīng)過準備命令之后,就可以放到提交隊列里了,緊接著再去寫doorbell,設備就可以去接著去處理命令了。
UFS需要處理的過程就比較復雜了,block層調用scsi_queue_rq之后,經(jīng)過scsi中層準備命令,然后發(fā)送到scsi低層ufs的隊列中,然后ufs驅動再進行組合處理去發(fā)送,最后通過寫寄存器完成命令的發(fā)送,設備才可以進行處理。
2.3.5 特性差異:
通過前面的比較,我們可以看到UFS在性能方面確實不如NVMe,但是畢竟NVMe SSD主要運用在企業(yè)和數(shù)據(jù)中心服務器中,而UFS是用在手機等終端設備中,使用場景有著相當大的差異,他們所需要的特性也是不盡相同。站在存儲行業(yè)的角度來看,服務器存儲(軟件+硬件)發(fā)展的早而且應用廣泛,所以對終端存儲的很多特性有著極具價值的參考意義。譬如UFS的LU的概念就與NVMe的namespace相似。
我們以最新的UFS4.0和NVMe2.0來做對比,探下究竟。
UFS4.0的新feature主要集中在傳輸速率和性能提升方面,還有一些安全和可用性的提升。尤其是MCQ的提出,完全可以與NVMe的多隊列媲美。
2.NVMe2.0新增的feature也不少,因為NVMe SSD主要應用于企業(yè)和數(shù)據(jù)中心,所以這些feature主要集中在數(shù)據(jù)管理和可靠性方面,最為重要的幾個是NVMe Set和ZNS的提出,為數(shù)據(jù)管理提供了更多的方式和應用場景。尤其值得一提的是,NVMe支持KV存儲這種新型的存儲形式,將對存儲的性能和效率有極大的提升。
下面列一些已有feature的增強,我們從已有的feature可以看到NVMe的特性是相當?shù)呢S富。
安全方面:PI,TLS,in-band驗證等
和可靠性方面:log記錄(CEL,PEL),Non-MDT,預測機制Telemetry,擦除期間防中斷,OOB讀引導分區(qū)等
性能方面:TTR
易用性方面:SGL,ZNS status notification等
?
綜合起來看,NVMe特性要比UFS豐富很多,后面UFS可以參考NVMe增加更多的feature,使UFS為終端場景提供更高的性能,更好的安全性,可靠性和易用性。
三.UFS和NVMe如何取舍
前面比較了這么多,我想大家心里都有個數(shù)了,這么看蘋果使用NVMe那是相當明智了,到這里很多同學應該會問,NVMe這么好,那么為何安卓廠家都還在使用UFS呢?這個問題我們可以從下面兩個角度思考:
3.1 從蘋果的角度來講
首先可以肯定的是,蘋果無法將普通的NVMe SSD直接放在手機里,一個是尺寸不允許,二來現(xiàn)有SSD的功耗也是手機無法承受的,所以可以肯定的是,蘋果憑借其強大的整合能力和話語權,特殊定制了適用于手機的NVMe SSD。
其次可以思考的是,服務器上的PCIe總線在手機上是用不了,蘋果需要采用新的總線來進行傳輸。真實的情況是什么呢?
蘋果采用了一種移動版的PCIe,叫M-PCIe。但是呢,總歸是服務器總線協(xié)議,所以PCIe標準下,phy層的功耗較高,而低功耗情況下,狀態(tài)遷移延遲太大。如下圖,M-PCIe就把標準的PCIe物理層換成了M-PHY,看到這個大家是不是很眼熟,對的,M-PHY就是UFS用的物理層。
做好了這些,只需要上層搭配NVMe協(xié)議和驅動,蘋果就可以使用NVMe的先進特性了,尤其是多隊列。
我們要知道,蘋果用nvme的時候還是在2015年的iphone6s上,那個時候大部分安卓廠商還在emmc階段,nvme可以說是天下無敵。我們看下當時AnandTech的測試,iPhone 6s的順序讀寫速率那是一騎絕塵。
?
?
?
3.2 從安卓各個廠家的角度來講,為什么不采用NVMe呢?
最關鍵的一點就是現(xiàn)在UFS的性能已經(jīng)不比NVMe差了,根據(jù)下圖,我們以iPhone 14 pro max上的NVMe速率來看,連續(xù)讀取也只有1500M/s,已經(jīng)比現(xiàn)在的UFS4.0速度差了很多,這也是安卓廠家能夠繼續(xù)使用UFS的最大驅動力。
所以順序讀寫性能:UFS4.0 > NVMe = UFS 3.0 > UFS 2.1 > eMMC 5.1
當然,在2015年的時候,安卓廠家不用NVMe,可能還有以下的原因:
原因1:整合成本問題,蘋果整合能力強是毋庸置疑的,安卓廠商成本,精力和話語權有限。
原因2:軟硬件生態(tài)問題,蘋果系統(tǒng)和芯片都自己掌握,機型也少,軟硬件生態(tài)打造相對容易。安卓廠商則相反,芯片需要高通和mtk,系統(tǒng)需要安卓,而且安卓的機型也是多種多樣,很難去打造自己的生態(tài)。
原因3:UFS與NVMe本質速度差不多,安卓使用NVMe不見得快。
原因4:競爭差異化,安卓廠商需要有自己的特點,如果跟隨蘋果,那么市場上也很難站穩(wěn)腳跟。
原因5:前面介紹過的,NVMe本質是軟件接口協(xié)議,所以根本是硬件顆粒差異,NVMe搬移到手機上肯定有很大的性能損失,電腦可以通過多閃存顆粒形成多通道,提高傳輸帶寬,手機空間則沒有辦法。
原因6:能使用 NVMe閃存,跟蘋果A9 芯片開始用 PCIE 接口有關,后續(xù)蘋果家的 WiFi、基帶都使用 PCIE 接口,自己家的芯片接口自己定義,其他廠商真的學不來。
四.未來終端器件的發(fā)展
經(jīng)過上面的介紹和分析,我們可以了解到,UFS和NVMe各有特點,而且會長期共存并且性能也會越來越好。
那么我們只需要UFS和NVMe就夠了嗎?顯然不會的,隨著科技的發(fā)展,新的存儲器件也會孕育而生。我們提到的UFS和NVMe的物理介質其實本質上都是NAND半導體顆粒。其實存儲行業(yè)中已經(jīng)有一些新型的介質已經(jīng)開始嶄露頭角,未來應用到手機終端存儲也是很有可能的,我們找?guī)讉€火熱的一起來盤一盤:
4.1 PCM(Phase Change Material):
相變材料,是指在物質發(fā)生相變時,可吸收或釋放大量能量的一類材料。由于相變材料是利用潛熱儲能,儲熱密度大,蓄熱裝置結構緊湊,并且在相變過程中本身溫度基本不變,易于管理,現(xiàn)在成為新型存儲的一個主要方向。
PCM相變存儲對比原來NAND FLASH有更快的讀寫速度,幾乎永久的使用壽命,存儲密度極高,當然價格目前來說也是比較可觀的。
而且PCM有另外的名字,那就是Intel的3D Xpoint技術,我們熟知的Optane就是用到這個技術。
4.2 MRAM(Magnetic Random Access Memory):
磁性隨機存取存儲器,其核心原理是自旋電子學,利用電子自旋特性,自旋磁性方向會出現(xiàn)不同的電阻特性,電阻狀態(tài)可以表示0和1。
MRAM具有非易失性、讀寫速度快、能耗低、集成密度高、耐久力強、天然抗輻射和隨工藝節(jié)點等比微縮等優(yōu)點,等于兼具Flash的非易失性、媲美DRAM的高速讀寫特性、媲美FeRAM的極高擦寫次數(shù)
4.3 FeRAM:鐵電存儲器,
優(yōu)點:斷電能保存數(shù)據(jù),同時速度比NAND快很多,功耗低,讀寫速度快,具有抗輻照能力
缺點:工藝困難,價格貴
4.4 ReRAM:阻變存儲器,是以非導性材料的電阻在外加電場作用下,在高阻態(tài)和低阻態(tài)之間實現(xiàn)可逆轉換為基礎的非易失性存儲器。具備一般小于100ns的高速度、耐久性強、多位存儲能力的特點。
五.結語
天下大勢,分久必合,合久必分。雖然目前手機終端主流存儲器件是UFS和NVMe,并且隨著需求變化,都會增加新的特性去不斷完善,但是未來是否會合二為一也說不準。同時伴隨著時代的發(fā)展,物聯(lián)網(wǎng),人工智能,云計算等對數(shù)據(jù)存儲的需求快速增長,不斷有新型存儲出現(xiàn)和發(fā)展,憑借它們超強的性能,超長壽命,超高可靠性,或者超低價格(所有企業(yè)都敏感),隨時可能有顛覆性的改變,讓我們一起期待和關注,到時再聊聊。
編輯:黃飛
?
評論
查看更多