高速率儲存器UFS

大雄45發表於2022-05-13
導讀 隨著智慧手機的快速發展,手機已經變成了一種生活中的必需品。人們對於智慧手機的要求也越來越高。卓越的手機效能可以給使用者帶來指尖跳舞的感覺。為了滿足這種需求,各大廠家對手機的CPU,記憶體,儲存裝置都投入了大量的研發。
一、UFS簡介

隨著智慧手機的快速發展,手機已經變成了一種生活中的必需品。人們對於智慧手機的要求也越來越高。卓越的手機效能可以給使用者帶來指尖跳舞的感覺。為了滿足這種需求,各大廠家對手機的CPU,記憶體,儲存裝置都投入了大量的研發。現在CPU和記憶體的發展已經是相當地迅速,執行速度在成倍增長。但是傳統的儲存裝置執行速度已經遠遠落後於CPU和記憶體。高速的CPU和記憶體搭配低速的儲存裝置,就像是大牛拉小車發揮不出自己的優勢。所以對於快速儲存裝置的需求尤為迫切,從而有了UFS(Universal Flash Storage)的誕生。

二、UFS與eMMC

說起UFS,必須要講講它的前輩eMMC。eMMC是一種嵌入式多媒體卡,是由JEDEC協會所制定的一種嵌入式非易失性儲存器。它採用並行傳輸技術,讀寫必須分開執行,雖然僅提供單路讀寫功能,但仍具備體積小、高度整合與低複雜度的優勢。目前最新的 eMMC 5.1 標準,連續讀取速度約為 250MB/s。

UFS最早是由JEDEC在2011年推出的,採用全新的序列傳輸技術,可同時讀寫操作。第一代 UFS 由於與當時 eMMC 標準速度差異不大,且成本較為高昂,因此並未成功普及。直至 2014 年 UFS 2.0 標準問世後,連續讀取速度約達 800MB/s,UFS 才成為 Android 旗艦手機逐漸採用的標準配置。目前最新的 UFS 3.1 標準,連續讀取速度約為 1,700MB/s。這時,UFS的傳輸速度已遠遠領先於eMMC。

高速率儲存器UFS高速率儲存器UFS

高速率儲存器UFS高速率儲存器UFS

上圖分別是用AndroBench實測的UFS和eMMC的讀寫速率。新手機發布後,很多手機測評自媒體都會使用AndroidBench測試手機的讀寫速率來判斷其效能。對於AndroBench所測的資料,業內也是比較認可的。從圖1和圖2來看,UFS的速率是eMMC的兩倍,但也不難發現,這一速率和理想的資料還是有差距的。理想總歸是理想,實際的速率還要結合整機的效能。

為什麼UFS的速率要高於eMMC?具體有兩方面的原因:

1. 資料訊號的處理方式不同

UFS是差分序列傳輸,與單端訊號傳輸相比,差分訊號抗干擾能力強,能提供更寬的頻寬處理,速度更快。eMMC使用的是並行資料傳輸。並行最大的問題是速度上不去,因為一旦時鐘上去,干擾就變大,訊號完整性無法保證。

高速率儲存器UFS高速率儲存器UFS

2.協議的不同

好的器件如果沒有優良的上層軟體(firmware)就相當於法拉利不加98號汽油,再好也跑不快。eMMC和UFS的協議都是由JEDEC制定的,器件廠家根據協議來設計器件。eMMC的通訊方式是半雙工的,讀寫不能同時進行。UFS是全雙工通訊,讀寫是可以同時進行的。簡單來說,eMMC的通訊方式是一種應答式的,host傳送資料給eMMC 需要等eMMC應答之後才可以繼續傳送資料。UFS則不一樣,host只管向UFS傳送資料誰先完成誰先返回狀態不需要等待。所以,速度就會比eMMC要快,如圖3。

三、UFS架構設計

高速率儲存器UFS高速率儲存器UFS

整個UFS協議棧可以分為三層:應用層(UFS Application Layer(UAP)),傳輸層(UFS Transport Layer(UTP)),鏈路層(UIC InterConnect Layer(UIC))。應用層發出SCSI (UFS沒有自己的 使用的是簡化的SCSI命令),在傳輸層將SCSI分裝為UPIU,再經過鏈路層將命令傳送給Devices。下面分別介紹這三層:

1.應用層(UFS Application Layer(UAP))
  1. UFS command set(UCS):使用的命令是簡化的SCSI命令(SCSI Primary Command(SPC),SCSI Block Command(SBC)),如讀寫命令等。
  1. Device Manager: 用於管理UFS裝置、裝置集操作(對裝置的工作模式或狀態進行控制),裝置集配置(對裝置硬體屬性進行設定)。
  1. Task Manager:工作管理員用於管理命令佇列中的命令。比如工作管理員可以發Abort命令,終止之前發下去的命令。它也可以清空命令佇列中的所有命令。
2.傳輸層(UFS Transport Layer(UTP))

這一層是JEDEC協議制定的,其他兩層都是引用別人的協議。這一層也是UFS最重要的一層。在這一層將應用層的SCSI命令封裝為 UFS可以識別的UPIU(固定格式的資料結構,用以傳輸應用層發來的命令或者請求),通過互聯層到Devices實現端到端的資料傳輸。

高速率儲存器UFS高速率儲存器UFS

最小的UPIU是32位元組,根據不同的Transaction Type這個大小也是不同的。0~11是12位元組的幀頭。具體的UPIU型別和12位元組的幀頭可以參考“JESD220D_UFS3.0”,這裡就不在贅述。

3.鏈路層(UIC InterConnect Layer(UIC))

主要包括MIPI UniPro 資料鏈路層和MIPI M-PHY 物理層。其中,MIPI UniPro 資料鏈路層負責主機和裝置的連結,它本身是一個完整的協議棧;MIPI M-PHY 物理層負責傳輸實實在在的物理訊號,使用8/10編碼、差分訊號序列資料傳輸。資料傳輸分高低速模式,每種模式下又有幾種不同的速度檔。

四、結語

UFS的整個架構要比eMMC的複雜,有些知識點可以用晦澀難懂來形容。十分考驗個人的功底。UFS的整個系統很龐大,本文只是一個入門的介紹,如果想深入去學習,建議先啃協議,後續結合協議看程式碼。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2893904/,如需轉載,請註明出處,否則將追究法律責任。

相關文章