我們知道,我們電腦由三大件組成:CPU,內存和硬盤。CPU用以計算和控制,內存用以臨時存儲程序運行時所需的數據(掉電數據丟失),而硬盤用以長久保存數據(掉電數據不丟失)。
我們每天使用的手機,其本質是一個移動的小型計算機,同樣由三大件組成:CPU,內存和存儲設備。其中的存儲設備相當于電腦的硬盤,用以長久保存手機上的數據,比如視頻、照片、音樂、系統等數據。
電腦的硬盤有機械硬盤(HDD)和固態硬盤(SSD),前者是機械存儲設備,存儲介質是磁盤;而后者是電子存儲設備,存儲介質是閃存。我們不可能在小小的手機中塞入一個機械設備,所以手機上的存儲設備只能是電子存儲設備,存儲介質也都是閃存。
現在是人手一個手機的時代,手機成了人們身體的一部分,一天不帶手機,就感覺缺少了什么,吃嘛嘛不香。
因此,人們對手機的要求也越來越高: 速度要快,容量要大,流暢不卡頓…為了讓手機更快,手機廠商使用更快、更多核的CPU,加大系統內存(4GB不夠用6GB,6GB不夠用8GB),使用更快的存儲設備。無論是電腦還是手機,三駕馬車(CPU,內存和存儲設備)中,跑得最慢的就是存儲設備了。CPU和內存的快步向前,促使最慢的存儲設備也需要努力跟上,不然再快的CPU和再大容量的內存,你的手機用起來還是讓你覺得不爽。
近年來,由于閃存技術的應用和發展,無論是電腦上的硬盤,還是手機中的存儲設備,都在變得越來越快。
電腦上,從HDD 到SSD,從SATA SSD到PCIe SSD,硬盤是越來越快;
手機上,從SD卡,到eMMC卡,再到UFS卡,存儲卡的速度也是越來越快。現在一般手機配的是eMMC,旗艦高端手機配的是UFS。
我們這個系列的主角UFS已登場。為什么UFS是主角?為什么我要帶大家去了解UFS? 因為,UFS將是未來一段時間內手機存儲的主流,我們有必要去了解UFS以及其相關的技術。
那么,什么是UFS?Universal Flash Storage,通用閃存存儲。它有兩個意思,一是指手機存儲接口協議,類似SATA,PCIe/NVMe;二是使用該協議的存儲設備。后面文章出現UFS,讀者請根據上下文理解。
為什么說UFS是手機存儲的未來?無他,快也!
大家感受一下:
UFS最新標準是UFS3.0,于2018年1月30日發布。它最大帶寬可以達到2163MB/s!4倍SATA3.0的速度 (600MB/s),超過PCIe3.0x2的速度(2GB/s單向速度)。
不過,目前市面上的UFS產品還是UFS2.0/2.1,其最大帶寬1081MB/s,也是秒殺一般的SSD。
UFS協議是JEDEC(www.jedec.org)組織制定的,三星、海力士、東芝等公司力捧。下面是UFS協議的發展歷程:
我們可以看到,UFS協議一直在大踏步的朝著更高更快的目標前進。
UFS為什么能那么快?
首先,它在數據信號傳輸上,使用的是差分串行傳輸。這是UFS快的基礎。所有的高速傳輸總線,如SATA,PCIe,SAS,都是串行差分信號。串行,可以使用更快的時鐘(時鐘信息可以嵌在數據流中);差分信號,即用兩根信號線上的電平差表示0或者1。與單端信號傳輸相比,差分信號抗干擾能力強,能提供更寬的帶寬(跑得更快)。打個比方,假設用兩個信號線上電平差表示0和1,具體來講,差值大于0,表示1,差值小于0,表示0。如果傳輸過程中存在干擾,兩個線上加了近乎同樣大小的干擾電平,兩者相減,差值幾乎不變,你大爺還是你大爺。但對單端信號傳輸來說,就很容易受干擾,比如0-1V表示0,1-3V表示1,一個本來是0.8V的電壓,加入干擾,變成1.5V,相當于0變成1,數據就出錯了,你大媽已經不是你大媽了。抗干擾能力強,因而可以用更快的速度進行數據傳輸,從而能提供更寬的帶寬了。
UFS的前輩是eMMC,使用的是并行數據傳輸。并行最大的問題是速度上不去,因為一旦時鐘上去,干擾就變大,信號完整性無法保證。
其次,UFS和PCIe一樣,支持多通道數據傳輸,目前最多支持兩個通道。多通道可以讓UFS在成本、功耗和性能之間做取舍。
還有,它是全雙工工作模式,就是讀寫可以并行。它的前輩eMMC是半雙工,讀寫不能同時進行。
要讓UFS速度快,這些基礎設施是必須的。但要充分利用底層高速數據傳輸通道,還需要上層數據傳輸協議配合。就好比我們現在有一條又寬敞又平坦的高速公路,我們需要一輛高速的汽車行駛在上面。你如果讓一輛拖拉機在上面跑,高速公路算是白修了。
UFS協議上層,怎樣來充分發揮底層速度快的優勢呢?
UFS支持命令隊列,就是主機一下可以發很多個命令下去,然后UFS設備支持并行和亂序執行,誰先完成誰先返回狀態。這種命令處理方式叫做異步命令處理。而它的前輩eMMC,是不支持命令隊列的,命令一個一個執行,或者一包一包(每個包里面含有若干個命令)執行,前面命令沒有執行完成,后面的命令是不能發下去的。這種命令處理方式叫做同步命令處理。
我們來比較一下“全雙工+異步命令處理”和“半雙工+同步命令處理”兩者命令處理方式和命令執行效率。
?半雙工+同步
主機發了一個寫命令W1給設備,然后主機把數據寫到設備;由于是同步傳輸模式,命令處理是一個一個處理的,所以在發讀命令R2之前,必須等前一個寫命令W1完成;同樣,在發送寫命令W3之前,必須等R2命令完成。
全雙工+異步
由于支持命令隊列,主機一下可以發若干個命令給設備,如上圖,主機一下發了一個寫命令W1和讀命令R2給設備。設備可以并行處理這兩個命令,由于協議支持全雙工操作,主機傳輸寫命令W1的數據給設備的同時,設備也可以把讀命令R2的數據返回給主機。后面命令R3,R4,W5…的處理方式類似。
再形象一點,我們以搬運貨物的例子來比較一下eMMC和UFS命令執行方式:
現在的手機,應用非常豐富,你要一邊斗地主,一邊聽歌,還要聊微信,多線程操作。由于全雙工和命令隊列的存在,UFS處理命令的效率大大提高,給用戶極好的體驗。
前面我們拿UFS和eMMC做了幾個對比,但我好像忘了說什么是eMMC。有人可能懵逼,什么是eMMC?
eMMC,Embedded Multi Media Card,和UFS一樣,也是JEDEC制定的移動存儲協議,它是UFS前一代協議標準。
eMMC最新標準是2015年發布的eMMC5.1,最高速度是400MB/s。JEDEC已經有了UFS,不確定會不會再發布新的eMMC標準。畢竟,并行傳輸的eMMC由于受限于物理信號,速度想要有個質的飛躍是不太現實。
行文至此,讓我不由的想起去年那事件。
同一款手機,有人UFS和eMMC混著賣,手機還賣一個價錢,真是無德!UFS和eMMC,速度差異那么大(見下圖,來自網絡),價格能一樣嗎?你系統再優化,能把eMMC順序讀寫速度優化到401MB/s?別扯什么用戶體驗,用戶都被耍猴了,體驗還能好?水能載舟,亦能覆舟,不要太得意忘形。
如果說eMMC是手機中的HDD,那么UFS就是手機中的SSD。UFS取代eMMC成為主流手機存儲協議,這是毫無疑問的。不過,UFS一統天下的道路上還有一個攔路虎,那就是NVMe。有人說,NVMe不是SSD的協議標準嗎?沒錯,不過,我要提醒大家的是,蘋果現在手機中存儲協議是NVMe而不是UFS。在短期,UFS和NVMe會分別在安卓和蘋果手機中存在。長期來說,UFS和NVMe是二分天下,還是合二為一,我們只能拭目以待了。
在本章結束前,給大家看看UFS(BGA形式)的實物圖:
大小如大拇指手指蓋大小。麻雀雖小,五臟俱全。UFS存儲芯片內部封裝了UFS控制器和閃存陣列,和SSD結構很相似。不過和SSD相比,由于它的容量更小,因此閃存die比較少,閃存的通道數也少。另外,出于功耗和成本考慮,UFS芯片一般是不帶DRAM的架構。
UFS芯片內部設計與實現不是我們本系列的重點,本系列后續文章將專注于UFS協議。
-
數據傳輸
+關注
關注
9文章
1880瀏覽量
64555 -
存儲芯片
+關注
關注
11文章
896瀏覽量
43133 -
UFS
+關注
關注
6文章
103瀏覽量
24037
原文標題:蛋蛋讀UFS之一:UFS簡介
文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論