使用邏輯到物理映射以與數據存儲裝置進行直接用戶空間通信的制作方法
【專利說明】使用邏輯到物理映射以與數據存儲裝置進行直接用戶空間通信
[0001]對相關串請案的交叉參考
[0002]本申請案主張2012年12月10日申請的名為“使用邏輯到物理映射以與數據存儲裝置進行直接用戶空間通信(USING A LOGICAL TO PHYSICAL MAP FOR DIRECT USER SPACECOMMUNICAT1N WITH A DATA STORAGE DEVICE) ” 的第 13/709,976 號美國非臨時專利申請案的優(yōu)先權且是所述申請案的接續(xù)申請案,所述申請案的全文是以引用方式并入本文中。
技術領域
[0003]此描述涉及用于使用邏輯到物理映射以與數據存儲裝置進行直接用戶空間通信的系統(tǒng)及技術。
【發(fā)明內容】
[0004]在一個一般方面,一種數據存儲裝置包含多個快閃存儲器裝置,其中快閃存儲器裝置中的每一者被布置成具有用于存儲數據的多個頁的多個塊。數據存儲裝置包含與快閃存儲器裝置操作地耦合的存儲器控制器。存儲器控制器經配置以從主機裝置接收邏輯到物理地址轉換映射,其中物理地址包含快閃存儲器裝置中的一者的物理地址。存儲器控制器經配置以將邏輯到物理地址轉換映射存儲在存儲器控制器上的存儲器模塊中,直接從在主機裝置上運行的應用程序接收讀取命令,其中讀取命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址,及使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址。
[0005]實施方案可包含以下特征中的一或多者。例如,存儲器控制器可經配置以通過多個隊列中的一者直接從在主機裝置上運行的應用程序接收讀取命令。存儲器控制器可經配置以將讀取錯誤消息的兩個副本傳達到主機裝置,其中讀取錯誤消息中的一者被指定用于應用程序且一個讀取錯誤消息被指定用于主機裝置上的驅動器。存儲器控制器可經配置以從主機上的驅動器接收寫入命令,其中寫入命令是由在主機上運行的應用程序起始,且來自驅動器的寫入命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址及指定快閃存儲器裝置上用于寫入數據的位置的物理存儲器地址,使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址以獲得數據的先前位置,將先前物理存儲器地址作為寫入響應的部分發(fā)送到主機,及更新邏輯到物理地址轉換映射。寫入命令可以原子方式處理。
[0006]存儲器控制器可經配置以從主機上的驅動器接收部分寫入命令,其中部分寫入命令是由在主機上運行的應用程序起始,且來自驅動器的部分寫入命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址及指定快閃存儲器裝置上用于寫入數據的位置的物理存儲器地址,使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址以獲得要寫入的數據的部分的當前位置,將數據的另一部分從當前位置讀取到緩沖器,在指定物理存儲器位置處將數據的兩個部分寫入到快閃存儲器裝置,更新邏輯到物理地址轉換映射,及將先前物理存儲器地址作為部分寫入響應的部分發(fā)送到主機。部分寫入命令可以原子方式處理。
[0007]在另一個一般方面,一種方法包含在存儲器控制器處從主機裝置接收邏輯到物理地址轉換映射,其中物理地址包含快閃存儲器裝置中的一者的物理地址。所述方法包含將邏輯到物理地址轉換映射存儲在存儲器控制器上的存儲器模塊中,直接從在主機裝置上運行的應用程序接收讀取命令,其中讀取命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址,及使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址。
[0008]實施方案可包含以下特征中的一或多者。接收讀取命令可包含通過多個隊列中的一者直接從在主機裝置上運行的應用程序接收讀取命令。所述方法可包含將讀取錯誤消息的兩個副本傳達到主機裝置,其中讀取錯誤消息中的一者被指定用于應用程序且一個讀取錯誤消息被指定用于主機裝置上的驅動器。所述方法可包含從主機上的驅動器接收寫入命令,其中寫入命令是由在主機上運行的應用程序起始,且來自驅動器的寫入命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址及指定快閃存儲器裝置上用于寫入數據的位置的物理存儲器地址,使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址以獲得數據的先前位置,將先前物理存儲器地址作為寫入響應的部分發(fā)送到主機,及更新邏輯到物理地址轉換映射。寫入命令可以原子方式處理。
[0009]所述方法可包含從主機上的驅動器接收部分寫入命令,其中部分寫入命令是由在主機上運行的應用程序起始,且來自驅動器的部分寫入命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址及指定快閃存儲器裝置上用于寫入數據的位置的物理存儲器地址,使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址以獲得要寫入的數據的部分的當前位置,將數據的另一部分從當前位置讀取到緩沖器,在指定物理存儲器位置處將數據的兩個部分寫入到快閃存儲器裝置,更新邏輯到物理地址轉換映射,及將先前物理存儲器地址作為部分寫入響應的部分發(fā)送到主機。
[0010]在另一個一般方面,一種系統(tǒng)包含經配置以產生邏輯到物理地址轉換映射的主機裝置。主機裝置包含存儲器、至少一個處理器、驅動器及在主機上運行的至少一個應用程序。所述系統(tǒng)包含與主機裝置操作地耦合的數據存儲裝置。數據存儲裝置包含多個快閃存儲器裝置??扉W存儲器裝置中的每一者被布置成具有用于存儲數據的多個頁的多個塊。數據存儲裝置包含與快閃存儲器裝置操作地耦合的存儲器控制器。存儲器控制器經配置以從主機裝置接收邏輯到物理地址轉換映射,其中物理地址包含快閃存儲器裝置中的一者的物理地址,將邏輯到物理地址轉換映射存儲在存儲器控制器上的存儲器模塊中,直接從在主機裝置上運行的應用程序接收讀取命令,其中讀取命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址,及使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址。
[0011]實施方案可包含以下特征中的一或多者。例如,存儲器控制器可經配置以通過多個隊列中的一者直接從在主機裝置上運行的應用程序接收讀取命令。存儲器控制器可經配置以將讀取錯誤消息的兩個副本傳達到主機裝置,其中讀取錯誤消息中的一者被指定用于應用程序且一個讀取錯誤消息被指定用于主機裝置上的驅動器。存儲器控制器可經配置以從主機上的驅動器接收寫入命令,其中寫入命令是由在主機上運行的應用程序起始,且來自驅動器的寫入命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址及指定快閃存儲器裝置上用于寫入數據的位置的物理存儲器地址,使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址以獲得數據的先前位置,將先前物理存儲器地址作為寫入響應的部分發(fā)送到主機,及更新邏輯到物理轉換映射。寫入命令可以原子方式處理。
[0012]存儲器控制器可經配置以從主機上的驅動器接收部分寫入命令,其中部分寫入命令是由在主機上運行的應用程序起始,且來自驅動器的部分寫入命令包含引用快閃存儲器裝置上的邏輯位置的邏輯存儲器地址及指定快閃存儲器裝置上用于寫入數據的位置的物理存儲器地址,使用邏輯到物理地址轉換映射將邏輯地址轉換為物理存儲器地址以獲得要寫入的數據的部分的當前位置,將數據的另一部分從當前位置讀取到緩沖器,在指定物理存儲器位置處將數據的兩個部分寫入到快閃存儲器裝置,更新邏輯到物理地址轉換映射,及將先前物理存儲器地址作為部分寫入響應的部分發(fā)送到主機。部分寫入命令可以原子方式處理。
[0013]以下附圖及描述中陳述一或多個實施方案的細節(jié)。將從描述及圖以及權利要求書明白其它特征。
【附圖說明】
[0014]圖1是說明根據實例實施方案的計算系統(tǒng)的方框圖。
[0015]圖2是說明根據實例實施方案的另一計算系統(tǒng)的方框圖。
[0016]圖3是說明根據實例實施方案的實例快閃存儲器裝置的方框圖。
[0017]圖4是說明用于與數據存儲裝置進行直接用戶空間通信的示范性過程的示范性流程圖。
【具體實施方式】
[0018]此文檔描述用于實現在主機裝置上運行的應用程序與數據存儲裝置的直接用戶空間通信的系統(tǒng)及技術。數據存儲裝置可包含多個存儲器裝置。在主機裝置上運行的應用程序可在對數據存儲裝置的命令中使用邏輯地址,其中邏輯地址是指數據存儲裝置上的存儲器裝置上的邏輯存儲位置。在初始化期間,主機裝置可產生邏輯到物理地址轉換映射,且將映射傳達到數據存儲裝置以存儲在數據存儲裝置上且在其上使用。以此方式,在主機裝置上運行的應用程序可直接將某些命令發(fā)送到數據存儲裝置且繞過主機裝置上的驅動器/內核空間。數據存儲裝置上的存儲器控制器可使用存儲在數據存儲裝置上的映射將命令中使用的邏輯地址轉換為物理地址,其中物理地址是指數據存儲裝置上的存儲器裝置上的數據的實際物理位置。在操作期間,數據存儲裝置可將對映射的更新傳回到主機裝置。
[0019]例如,在主機上運行的應用程序可將使用邏輯地址的讀取命令直接發(fā)送到數據存儲裝置且繞過主機裝置上的內核/驅動器。存儲器控制器可接收讀取命令且查找邏輯地址或將邏輯地址轉換為存儲器裝置上的所請求數據的實際存儲位置的物理地址。
[0020]對于其它類型的命令(例如寫入命令),應用程序可指定要將數據寫入的邏輯地址,且主機裝置上的驅動器/內核可提供要寫入數據的位置的物理地址。主機裝置可使用存儲在主機裝置上的位圖以確定存儲器裝置中的哪些頁可供寫入。存儲器控制器可接收寫入命令且將數據寫入到由驅動器指定的物理地址。存儲器控制器可使用邏輯到物理地址轉換映射以查找對應于由應用程序提供的邏輯地址的物理地址,其對應于數據的舊位置。存儲器控制器將舊的物理地址傳達到主機裝置使得主機裝置可更新存儲在主機裝置上的位圖。以此方式,以原子方式執(zhí)行寫入使得不會因為嘗試同時或接近同時寫入數據到相同邏輯地址而發(fā)生錯誤。存儲器控制器保證讀取舊的物理地址且以原子方式寫入新的物理地址使得不會發(fā)生錯誤。
[0021]以此方式,快閃轉換層分處于主機裝置與數據存儲裝置上。主機裝置產生邏輯到物理地址