[知乎]老狼:UFS VS NVMe
https://zhuanlan.zhihu.com/p/26652622
最近某手機廠商的快閃記憶體門在知乎上被人踢爆,在所謂“爵士水軍”和“友商水軍”的口水大戰中,至少eMMC, UFS等火星名詞被廣泛的科普了一把。蘋果粉也不時摻和進來,NVMe在蘋果手機上的應用讓這個群體平添了一份“高冷”,安卓的小夥伴們被鄙視的都不敢回嘴了!
本著看熱鬧不怕事大的原則,我這個低端山寨手機擁躉決定以一個吸引眼球的故事開始本系列:到底UFS 2.1和NVMe誰效能好,誰能“代表社會先進生產力”呢?
UFS VS NVMe
UFS是為了替代eMMC而生,主要面向手機等嵌入式場景。NVMe是目標是取代SATA SSD硬碟介面,主要應用在計算機平臺。兩者似乎沒有必要也沒有機會正面PK,但是蘋果就是這麼任性,偏偏要在手機上使用NVMe。這就像一場荒(YOU)誕(QU)的穿越劇,關公(NVMe)和秦瓊(UFS)被強行穿越到我們眼前PK,而且被要求fight to death!作為資深吃瓜群眾,在他們開打之前,我先來介紹下兩位選手的個人情況。
秦瓊:UFS
UFS(Universal Flash Storage)目標是取代eMMC。在2008年,JEDEC就開始為並行的eMMC尋找序列方案。到了2012年,UFS 1.0誕生了,知道今天已經是2.1版了。UFS相較eMMC最大的不同是並行訊號改為了更加先進的序列訊號,從而可以迅速提高頻率,同時半雙工改為全雙工。如圖:
關公:NVMe
NVMe(NVM Express)目標是替換掉SATA介面。早在2009年Intel就開始著手尋找SATA的替代方案,在2011年有了1.0。最新的版本是1.2.1。NVMe實際上是一種通訊協議,在通訊協議裡是應用層,它使用PCIe協議作為資料和鏈路層。如下:
NVMe是為SSD而生。在此之前SSD都用SATA介面。有人會好奇SATA也是序列介面,為啥還要創造個新的介面。SATA介面採用AHCI規範,其已經成為制約SSD速度的瓶頸。AHCI只有1個命令佇列,佇列深度32;而NVMe可以有65535個佇列,每個佇列都可以深達65536個命令。NVMe也充分使用了MSI的2048箇中斷向量優勢,延遲大大減小。
戰力分析
介紹完了兩位猛將,我們來看看他們的裝備。因為他們都基於NAND Flash技術,我們就從他們的區別最明顯的部分比起。
1。坐騎
秦瓊坐下黃驃馬,入選唐朝七駿圖。關公胯下赤兔馬,人中龍鳳,馬中赤兔。都是大名頂頂。坐騎是速度的保證,要不關二爺也做不到溫酒斬華雄。協議的頻寬也是速度的象徵,UFS採用兩條lane,2.1的最大頻寬為11.6Gbps,約為1200MB/s,如下圖:
NVMe鏈路層採用PCIe,目前PCIe是3.0,一般採用4條lane,如果你看過前面我們PCIe的介紹(傳送門:深入PCI與PCIe之一:硬體篇 - 知乎專欄),我們就知道頻寬是4000MB/s,如下圖:
就算2個lane,也是2000MB/s,>1200MB/s。看來黃驃馬跑不過赤兔馬啊。有人說不公平,UFS 3.0要來了,速度會加倍,如下圖:
可是PCIe 4.0也會在今年面世,相信最需要頻寬的NVMe會立刻採用,PCIe 4.0 * 4 lane的頻寬將達到恐怖的8000MB/s,兩個lane也有4000MB/s。完全是碾壓式的。
2。武器
秦瓊手拿兩根四稜金裝熟銅鐗,關羽手持青龍偃月刀。兵器的好壞也決定PK的強弱。UFS採用UCS命令集,它是SCSI命令的一個子集。NVMe採用為NAND flash量身定製的精簡ATA命令集,大大減少命令的複雜度,恐怖的命令佇列數目和深度又保證了4K小檔案的迅速讀寫。兩者相比UFS命令集和理論處理能力上又大大落於下風。看來還是青龍偃月刀厲害啊。
實戰
閒話休提,是騾子是馬拉出來溜溜!PK是打出來的,不是說出來的。我們來看看實際的benchmark:
某廠UFS 2.1:
最高的我們算作800MB/s。
蘋果iphone 6s plus 128GB版本:
benchmark網站測試結果。
順序讀:1840MB/s。順序寫:279MB/s
三星950 pro 512GB M.2 NVMe
最後,我們欣賞一下三星的效能王:
結語
看來關二爺勇冠三軍啊,是不是關二爺一定會越來越好,步入人生巔峰呢?造化弄人,歷史上秦瓊秦叔寶輔佐李唐立國,配享凌煙閣,富貴而終,甚至變成門神。而我們公認勇武的關羽關二爺卻敗走麥城,掉了腦袋,只能在關帝廟裡吸食些香火。市場歡迎的技術才是好技術,而誰又能真正準確預測市場呢?
滾滾長江東逝水,浪花淘盡英雄。
是非成敗轉頭空。
青山依舊在,幾度夕陽紅。
白髮漁樵江渚上,慣看秋月春風。
一壺濁酒喜相逢。
古今多少事,都付笑談中。