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