企業級SSD需要在大量企業數據讀寫下保持超高穩定性,以及24 小時全天候運行,SSD的讀寫速度、使用壽命、穩定性及可靠性是企業級用戶關注的重點。為滿足用戶對企業級SSD高性能、低延時、輕量級、高可靠等需求,憶聯設計并開發了適合SSD的嵌入式操作系統(Operating System,縮寫:OS),并在其上構建了可復制性強的SSD 控制器軟件系統。
嵌入式軟件分為三個層次,即驅動層、OS層、業務層。業務層集結了龐大復雜的產品功能,負責處理業務邏輯的部分,通常包括接口協議、業務功能實現、系統數據保存等;驅動層把設備的硬件訪問抽象成軟件接口,為OS層和業務層服務;OS層為業務層提供軟件平臺服務,讓業務層可以聚焦在實現龐大復雜的軟件功能上。
圖1
通用的OS功能很多,包括處理器管理、內存管理、設備管理、文件管理、作業管理等,而對于嵌入式OS來說,主要聚焦在處理器管理、內存管理等核心功能上,本文則重點闡述處理器管理、互斥、通信。
SSD系統的處理器架構和OS部署
在PCIe 4.0時,SSD的讀寫帶寬達到8GB/s, PCIe 5.0時SSD的讀寫帶寬可能達到16GB/s。為了實現SSD的高性能,通常SSD控制器會使用多CPU、甚至多Cluster的處理器架構,分別用于SSD業務計算和Nand flash操作。
圖2
在多處理器、多Cluster架構下,業務部署時可以選擇SMP模式、AMP模式、或者SMP和AMP混合模式。在SSD系統里,基本上都是SMP模式和AMP模式混合,OS要負責程序調度、互斥、通信功能。在嵌入式系統中的AMP模式的通信,可以類比為通用系統里多進程之間的通信,因為沒有全局數據可用,要借助外部存儲空間進行通信。
憶聯OS的調度策略
常規的OS調度對象都是線程,且每個線程有自己的堆棧和優先級,具有搶占機制。憶聯在設計SSD嵌入式系統時,通過分析發現,線程調度開銷大、線程之間存在較為復雜的互斥問題、容易出現優先級逆轉死鎖問題,加之線程運行的隨機性和無序性,讓系統時刻處于“不確定”狀態。因此,憶聯SSD選擇了自創的“功能代碼(入口函數及其調用的全部函數)”調度策略。為了描述方便,本文把這些可以被OS調度的“功能代碼(入口函數及其調用的全部函數)”,稱為SSD系統里的“事務”。
在SSD系統里的程序,不再以線程方式組織,而是以一個個不會阻塞的獨立“事務處理流程”方式組織。這些“事務處理流程”可以以各種方式被OS調度。
-
事務的主要特征:
(1)不會阻塞。一個事務完成一個特定的計算,它在計算過程中,不需要等待外設動作,會一直運行到結束。如果一個流程會被阻塞,則需要在阻塞點切分為多個獨立的事務。一旦一個事務被CPU執行,則一定會執行到事務結束。在系統里,除了每個CPU正在執行的事務是運行狀態,其他事務都處在結束狀態。比起線程的阻塞狀態態,事務狀態變得極其簡單。
(2) 事務共享堆棧。事務執行完成時,不再有局部變量需要保存在堆棧里。事務共享堆棧,堆棧需求小,調度時也沒有了堆棧切換的開銷。
(3)同一個CPU,事務串行執行。一個CPU里的事務,一定是執行完畢一個事務后,才能開始執行下一個事務。同一個事務,在一個CPU上不會重入。
(4)SMP模式下事務間互斥變得簡單。見圖3。
圖3
備注:
(1)事務完成時,不會持有全局變量的訪問鎖。
(2)AMP之間不存在全局共享數據,不存在互斥。
-
事務的調度方式
圖4
-
事務優先級和實時性
一次性事務具有事務優先級功能。OS接受一次性事務調度請求,通過高優先級來處理系統里一些緊急事務,以此達成特定事件的實時處理。
圖5
-
中斷與事務
前面已經講述在憶聯OS里,同一個CPU里事務之間不會出現搶占,只有當一個事務運行完成后,才會運行另外一個事務,但是中斷依然具有搶占功能。
中斷處理程序遵循常規的中斷處理流程,中斷到來時,還是會搶占當前事務。當中斷到來時,OS會把當前運行的事務程序壓棧,跳轉到中斷處理程序運行,中斷處理程序完成后,被中斷的事務程序被恢復運行。
中斷處理程序運行時也是使用事務程序運行時的堆棧。
中斷處理程序具備的搶占功能,可以滿足系統里對于實時性要求高的場景,但同時也帶來了中斷和事務之間的互斥問題。中斷和事務的互斥方式如圖六。
圖6
中斷處理程序實現時,可分為中斷上半部和下半部。上半部讀取外設數據,下半部發送事務消息到OS調度處理。中斷下半部的互斥就變成了事務之間的簡單互斥方式了。中斷發給OS的事務調度消息,可以根據需要選擇使用“緊急、高、常規”優先級。
-
中斷處理舉例:IPC中斷
一般來說,IPC中斷用于AMP與 CPU之間的通信。
發送方把數據寫入共享的DDR后,發送IPC中斷給接受方。
接收方的IPC中斷程序讀取DDR里的通信數據,然后發送事務消息到自己的OS,OS按照事務進行調度處理該事務消息。
中斷處理程序讀取DDR里的通信數據,就是中斷上半部。讀取通信數據并做具體處理,則是事務完成,是中斷的下半部。
總結
通過事務調度思路,憶聯實現了旗下企業級SSD產品的高性能和高可靠性,業務功能的設計、實現、擴展都變得更加簡單和靈活,業務功能的代碼復用也變得更簡單,這讓憶聯在開發新代次SSD時,可以很好地繼承已有代次SSD產品的功能和品質,保障憶聯可以持續為客戶提供高品質SSD產品與存儲解決方案。
長按識別關注更多憶聯資訊
原文標題:嵌入式OS設計策略解讀|憶聯企業級SSD高可靠、高性能的實現方法
文章出處:【微信公眾號:UnionMemory憶聯】歡迎添加關注!文章轉載請注明出處。
-
存儲
+關注
關注
13文章
4296瀏覽量
85800 -
SSD
+關注
關注
21文章
2857瀏覽量
117370
原文標題:嵌入式OS設計策略解讀|憶聯企業級SSD高可靠、高性能的實現方法
文章出處:【微信號:UnionMemory憶聯,微信公眾號:UnionMemory憶聯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論