目錄
五、UFS協議棧
六、UFS技術演進與詳解
1、UFS應用層
設備管理器
任務管理器
2、UFS傳輸層
3、UFS互聯層
UFS協議—新手快速入門(一)【1-4】
五、UFS協議棧
UFS(Universal Flash Storage)協議是針對固態存儲設備(如UFS存儲卡)的接口規范,它由JEDEC(聯合電子設備工程委員會)制定。UFS協議的設計初衷是為了提供一種高性能、低功耗的存儲解決方案,以滿足移動設備對存儲速度和容量的需求。
UFS協議之所以被設計為四層結構,主要是為了滿足以下幾個方面的需求:
-
物理層(Physical Layer):這是UFS協議棧的最頂層,它負責處理如讀寫命令等存儲操作。UFS應用層使用的是簡化的SCSI命令集,這些命令由UCS(UFS命令集)生成。負責與存儲設備的物理連接和電氣特性,確保數據可以正確地在設備之間傳輸。
-
傳輸層(Transport Layer):傳輸層負責將應用層的命令和數據封裝成UPIU(UFS Protocol Information Unit),并確保它們在設備和主機之間可靠地傳輸。處理數據的傳輸協議,確保數據在物理層之上可靠地傳輸。
-
協議層(Protocol Layer):在這一層,UFS使用MIPI UniPro規范,它支持數據的傳輸、錯誤檢測和糾正、流量控制等功能。其定義了UFS設備的操作命令和數據結構,包括讀寫操作、塊管理、錯誤處理等。
-
應用層(Application Layer):物理層由MIPI M-PHY規范定義,它負責在物理介質上傳輸電氣信號,包括信號編碼、速率匹配、電壓級別等。與操作系統和應用層軟件交互,提供文件系統和存儲管理的功能。
這種分層設計使得UFS協議能夠靈活地適應不同的硬件平臺和應用場景,同時也便于實現標準化和模塊化。每一層都有其特定的功能和職責,這有助于簡化開發過程,提高系統的可維護性和可擴展性。
UFS協議棧的構建是借鑒和整合了現有的技術規范來實現其功能。這種集成不同組織定義的技術來創建新的標準的做法在技術發展中是相當常見的。
應用層:UFS協議棧的應用層并沒有定義自己的原生命令集,而是采用了簡化版的SCSI命令集,這些命令集由INCITS T10組織定義。SCSI(Small Computer System Interface)是一種廣泛使用的存儲設備接口標準,它定義了存儲設備如何與計算機系統通信。
傳輸層:UFS的傳輸層(UTP,UFS Transport Protocol)是JEDEC(Joint Electron Device Engineering Council)自己定義的。這一層負責將應用層的命令和數據封裝成UPIU(UFS Protocol Information Unit),并管理它們在UFS設備和主機之間的傳輸。
數據鏈路層:UFS協議棧的數據鏈路層基于MIPI(Mobile Industry Processor Interface)聯盟的UniPro規范。UniPro是一個靈活的互連協議,支持多種通信接口,包括UFS。
物理層:UFS的物理層同樣采用了MIPI聯盟的M-PHY規范。M-PHY定義了電氣和物理特性,如信號傳輸方式、電壓級別等,以支持高速數據傳輸。
通過整合T10的SCSI命令集、MIPI的UniPro和M-PHY以及JEDEC自己的UTP,UFS能夠為移動設備提供一種高性能、高可靠性的存儲解決方案。這種集成方式使得UFS能夠利用現有技術的優勢,加速開發過程,并確保與現有生態系統的兼容性。
JEDEC的這種做法確實體現了一種高效的技術整合能力,它不是從頭開始創建所有內容,而是通過集成和適配現有的技術標準來構建新的技術規范。這不僅節省了研發時間和成本,還確保了新技術能夠快速融入現有的技術生態系統中。這種策略在快速發展的科技領域中是一種非常實用的方法。
六、UFS技術演進與詳解
1、UFS應用層
在UFS協議棧中,應用層扮演著至關重要的角色,其主要功能如下:
-
UFS命令集:應用層定義了一套UFS命令集,這些命令用于控制UFS設備執行各種操作,如讀寫數據、擦除塊、查詢設備信息等。
-
設備管理器(Device Manager):設備管理器負責管理UFS設備的生命周期,包括設備的初始化、配置、狀態監控和異常處理等。
-
任務管理器(Task Manager):任務管理器負責調度和管理UFS設備上的任務,確保命令的執行順序和優先級符合要求。
應用層作為協議棧的最高層,它充當用戶與UFS設備之間的橋梁,將用戶的命令或請求轉化為具體的UFS命令,并通過網絡層、傳輸層和內聯層等下層協議進行處理和執行。應用層的決策和命令對于整個UFS系統的運作至關重要,它決定了如何高效地管理UFS設備,以及如何優化數據的存取和傳輸。
設備管理器
UFS(Universal Flash Storage)協議棧中,設備管理器(Device Manager)是核心組件之一,它負責管理和控制UFS設備的各種操作和配置。
設備級操作:設備管理器負責執行和管理與UFS設備相關的各種操作。這包括但不限于:
- 功耗管理:控制設備的功耗,以優化電池壽命或系統性能。
- 數據傳輸參數設置:配置數據傳輸的速率、模式等參數,以確保數據傳輸的效率和可靠性。
- 后臺操作(Background Operation):使能或禁止設備在后臺執行的操作,如垃圾回收、塊擦除等。
- 其他設備相關操作:例如設備重置、健康狀態監測等。
1、設備級配置管理:
設備管理器還負責維護和存儲設備的配置信息。這通常通過一系列的描述符(Descriptor)來實現,這些描述符包含了設備的詳細信息和配置參數。設備管理器可以通過Query請求來修改或獲取這些配置信息。
2、與傳輸層的交互:
設備管理器通過傳輸層為其提供服務,這種交互通常是通過特定的服務訪問點(Service Access Point,簡稱SAP)來實現的。例如,UDM_SAP(Universal Device Management Service Access Point)是設備管理器與傳輸層之間通信的接口。
3、描述符:
描述符是UFS協議中用于描述設備屬性和配置的一組數據結構。它們可以包含設備的制造商信息、產品信息、序列號、固件版本、容量、性能參數等。通過Query命令,設備管理器可以查詢或修改這些描述符中的信息。
4、命令集:
除了基本的讀寫命令和TRIM(UNMAP)命令外,UFS還定義了其他命令,用于執行更復雜的操作,如安全擦除、固件升級等。
從UFS(Universal Flash Storage)的層次架構圖來看,設備管理器(Device Manager)與傳輸層(Transport Layer)之間的交互是通過服務訪問點(Service Access Point,簡稱SAP)來實現的。UDM_SAP(Universal Device Management Service Access Point)是設備管理器與傳輸層之間通信的接口,它允許設備管理器發送命令和接收響應,以及執行各種設備管理任務。?
在UFS協議棧中,設備管理器(Device Manager)除了可以通過傳輸層(Transport Layer)進行操作外,還可以通過用戶空間直接輸入輸出(User-space I/O,簡稱UIO)服務訪問點(UIO_SAP)直接管理與控制互聯層(Interconnect Layer)。UIO_SAP提供了一種機制,允許設備管理器在用戶空間直接與硬件設備交互,繞過內核空間的某些層。?
任務管理器
當系統中某個命令執行超時,即該命令沒有在預定時間內完成,系統可能會采取一些措施來確保系統的穩定性和響應性。在許多系統中,"Abort"命令就是用來中斷或終止一個超時的命令或進程的。執行Abort命令后,系統會嘗試停止該命令的執行,釋放它占用的資源,并可能返回一個錯誤信息或狀態碼,以便用戶或系統管理員了解發生了什么。
2、UFS傳輸層
在UFS架構中,傳輸層起著至關重要的作用,它位于協議層和物理層之間,負責將應用層的命令和請求轉換為可以發送到接收端的數據包。
想象一下,UFS傳輸層就像是一位忙碌的將軍,它站在戰場(也就是數據傳輸的前線)上,指揮著千軍萬馬——也就是那些數據包。
當應用層的統帥下達命令時,傳輸層這位將軍就會迅速行動起來,把命令翻譯成敵軍(也就是接收端)能夠理解的語言——也就是UPIU。
將軍(傳輸層)不僅需要確保命令被正確傳達,還要確保它們以最高效的方式被執行。這就像是在戰場上,將軍需要確保每支箭都射中目標,每匹馬都跑到正確的位置。而且,如果命令在戰場上迷失了方向或者遇到了障礙,將軍還得迅速做出反應,可能是重新組織隊伍,或者調整戰術。
在這個過程中,將軍還得時刻關注敵情——也就是接收端的反饋。如果接收端傳來了“一切順利”的消息,那么將軍就可以松一口氣,繼續執行下一個命令。但如果接收端傳來了“遇到問題”的消息,那么將軍就得立刻采取行動,可能是重新發送命令,或者調整策略。
所以,雖然UFS傳輸層的工作聽起來很復雜,但其實它就像是一位在戰場上運籌帷幄的將軍,既要保證命令的傳達,又要確保數據的安全和效率。在這個數字化的戰場上,傳輸層這位將軍可是至關重要的角色。
3、UFS互聯層
在UFS互聯層中,UniPro和M-PHY共同工作,以實現主機和存儲設備之間的高效通信。UniPro在數據鏈路層上處理數據包的組織、傳輸和錯誤控制,而M-PHY則在物理層上確保這些數據包能夠準確地在物理介質上被傳輸。這種分層的方法使得UFS能夠提供高性能的數據傳輸能力,同時保持對不同設備和應用場景的兼容性。
MIPI UniPro 是一種高性能的串行通信協議,它在UFS互聯層中扮演數據鏈路層的角色。UniPro的設計旨在提供高效的數據傳輸速率和強大的錯誤檢測與糾正機制。它不僅定義了數據鏈路層的功能,還包含了一整套協議棧,這使得UniPro能夠支持復雜的通信需求,如數據包的路由、流量控制、以及服務質量管理等。UniPro的這些特性使其成為UFS高速數據傳輸的理想選擇。
M-PHY 是一種物理層接口,負責在物理介質上傳輸電信號。M-PHY的設計允許它支持多種不同的數據傳輸速率,并且能夠適應不同的信號完整性要求。作為物理層的一部分,M-PHY確保了信號在傳輸過程中的完整性和可靠性,無論數據傳輸速率如何變化。M-PHY的靈活性和魯棒性使其成為實現UFS物理連接的關鍵技術。
UniPro和OSI七層模型的對比:
看來我們要聊聊UFS互聯層的兩位大明星——MIPI UniPro和M-PHY,它們就像是UFS世界的超級英雄組合。
首先,讓我們來認識一下UniPro,這位數據鏈路層的超級英雄。UniPro不僅僅是一個簡單的數據鏈路層,它其實是一個全能型的協議棧。想象一下,UniPro就像是一個多才多藝的特工,不僅能夠確保主機和設備之間的鏈接,還能夠處理數據的打包、傳輸、錯誤檢測和恢復等一系列任務。UniPro的超能力包括但不限于:高效的數據傳輸、靈活的鏈路管理、以及強大的錯誤處理機制。
然后,我們有M-PHY,這位物理層的超級英雄。M-PHY的職責是傳輸那些實實在在的物理信號,就像是在幕后默默工作的特技演員,雖然不常出現在聚光燈下,但其作用至關重要。M-PHY確保了電信號在物理介質上的準確傳輸,無論是高速的還是低速的,都能夠保證信號的完整性和穩定性。
這兩位英雄的合作,就像是一場精彩的舞臺劇,UniPro在前臺指揮著數據的流動,而M-PHY在幕后確保信號的傳輸。他們共同確保了UFS設備能夠以最高的效率和最佳的性能運行。
所以,下次當你聽到UFS互聯層時,不妨想象一下UniPro和M-PHY這兩位超級英雄,他們正在一起努力,確保你的數據傳輸既快速又安全。這就像是一場精彩的動作大片,只不過這一次,場景換成了你的設備內部!
下期預告:UFS協議—新手快速入門(三)?