對存儲設備的訪問信息處理方法和裝置、系統的制作方法
【技術領域】
[0001] 本發明實施例涉及計算機存儲技術領域,尤其涉及一種對存儲設備的訪問信息處 理方法和裝置、系統。
【背景技術】
[0002] 在現有技術中,對存儲介質的訪問方法主要包括兩種,第一種方法是通過內核訪 問存儲介質,圖8為現有技術提供的一種對存儲介質的訪問方法的系統架構圖,如圖8所 示:
[0003] 核將虛擬地址發送給內存管理單元(Memorymanagementunit,MMU),MMU查詢轉 換查詢緩存(Translationlookasidebuffer,TLB)表,發現要訪問的虛擬地址還沒有物 理地址與之對應。MMU向核發缺頁中斷,核響應中斷,保護運行環境后,陷入內核,內核中的 物理內存分配程序(如圖8所示位于操作系統0S中)為該虛擬地址分配物理地址,并建立 頁表,其中,頁表中保存有建立的虛擬地址與物理地址之間的對應關系,頁表被加載到TLB 表,即刷新TLB表,內核向核發送中斷程序完成,核恢復進程運行環境,重新向MMU發送虛擬 地址,MMU查詢TLB表,得到虛擬地址對應的物理地址,MMU發出包含物理地址訪問請求給緩 存(cache),cache向內存控制器發送訪存請求,內存控制器向動態隨機存儲器((Dynamic RandomAccessMemory,DRAM)發送訪問請求,DRAM響應訪問請求,若為讀則將數據從DRAM 經過內存控制器、cache直接到達核。
[0004] 另一種方法是通過直接內存訪問(Directmemoryaccess,DMA)方式訪問存儲介 質,圖9為現有技術提供的另一種對存儲設備的訪問方法的系統架構圖,如圖9所示:
[0005] 處理器向輸入輸出(Input/Output,1/0)總線發送命令,1/0總線將命令發送到對 應的1/0端口,1/0接口從1/0端口接受命令,1/0接口將命令轉換成磁盤命令發送給磁盤 控制器,磁盤控制器將命令發送給DMA,DMA操作內存總線將數據在磁盤和內存之間進行傳 送,DMA完成數據傳送,將消息返回給磁盤控制器,將消息依次傳送給處理器發中斷,告知核 數據傳送完畢。
[0006] 然而,在第一種述方法中,由于操作系統執行物理內存分配,當缺少物理頁而觸發 缺頁中斷時,處理器長時間陷入內核,且中斷前后要保護和恢復運行環境,開銷較大。在另 一種方法中,由于DRAM掛載在1/0總線,處理器需要經過多層路徑才能完成DRAM數據到內 存的拷貝,DMA與處理器競爭內存總線,開銷較大。
[0007] 因此,在現有的訪問UAS的過程中,存在開銷較大的問題,降低了訪問性能。
【發明內容】
[0008] 本發明實施例提供一種對存儲設備的訪問信息處理方法和裝置,用以解決現有的 訪問UAS的過程中,存在內存開銷較大的問題,可以提高UAS的訪問性能。
[0009] 第一方面,提供一種對存儲設備的訪問信息處理方法,所述存儲設備包括一種以 上的存儲介質,包括:
[0010] 訪問設備的處理器根據進程發起的存儲設備訪問請求指令中包括的虛擬地址,確 定與所述虛擬地址對應的存儲設備標識;
[0011] 生成訪問請求消息,所述訪問請求消息中包括訪問地址;
[0012] 根據所述存儲設備標識,向所述存儲設備標識指向的存儲設備的處理器發送所述 訪問請求消息,以使所述存儲設備的處理器根據所述訪問請求消息中包括的訪問地址,在 所述訪問地址指向的存儲介質中執行訪問請求操作。
[0013] 可選地,訪問設備的處理器根據進程發起的存儲設備訪問請求中包括的虛擬地 址,確定與所述虛擬地址對應的存儲設備標識,包括:
[0014] 訪問設備的處理器根據進程發起的訪問請求中包括的虛擬地址,確定是否存在與 所述虛擬地址對應的物理地址;
[0015] 若不存在與所述虛擬地址對應的物理地址,則確定與所述虛擬地址對應的存儲設 備標識;
[0016] 若存在與所述虛擬地址對應的物理地址,則根據所述物理地址確定所述物理地址 指向的存儲介質,根據所述存儲介質,確定包含所述存儲介質的存儲設備標識。
[0017] 可選地,若不存在與所述虛擬地址對應的物理地址,則所述生成的訪問請求消息 中包括的訪問地址為虛擬地址,且所述訪問請求消息中包括第一消息屬性和進程號;
[0018] 若存在與所述虛擬地址對應的物理地址,則所述生成的訪問請求消息中包括的訪 問地址為物理地址,且所述訪問請求消息中包括第二消息屬性。
[0019] 可選地,訪問設備的處理器根據進程發起的存儲設備訪問請求指令中包括的虛擬 地址,確定與所述虛擬地址對應的存儲設備標識,包括:
[0020] 訪問設備的處理器查詢段表,所述段表中保存有所述虛擬地址與所述存儲設備標 識之間的對應關系;
[0021] 從所述段表中獲取與所述虛擬地址對應的存儲設備標識。
[0022] 可選地,確定是否存在與所述虛擬地址對應的物理地址之前包括:
[0023] 接收所述存儲設備的處理器發送的所述虛擬地址與所述物理地址以及所述物理 地址指向的存儲介質之間的對應關系。
[0024] 第二方面,提供一種對存儲設備的訪問信息處理方法,所述存儲設備包括一種以 上的存儲介質,包括:
[0025] 存儲設備的處理器接收訪問設備的處理器發送的訪問請求消息,所述訪問請求消 息中包括訪問地址;
[0026] 根據所述訪問地址,在所述訪問地址指向的存儲介質中執行訪問請求操作。
[0027] 可選地,所述訪問請求消息中還包括第一消息屬性和進程號,則根據所述訪問地 址,在所述訪問地址指向的存儲介質中執行訪問請求操作,包括:
[0028] 存儲設備的處理器根據所述第一消息屬性,確定所述訪問請求消息中包括的訪問 地址為虛擬地址;
[0029] 根據所述進程號,查詢與所述進程號對應的進程信息表,確定與所述虛擬地址對 應的物理地址,所述進程信息表中包括操作系統預設的與所述虛擬地址對應的分配策略, 所述分配策略中包括與所述虛擬地址對應的物理地址以及所述物理地址指向的存儲介 質;
[0030] 根據所述確定的物理地址,在所述物理地址指向的存儲介質中執行訪問請求操 作。
[0031] 可選地,所述訪問請求消息中還包括第二消息屬性,則根據所述訪問地址,在所述 訪問地址指向的存儲介質中執行訪問請求操作,包括:
[0032] 存儲設備的處理器根據所述第二消息屬性,確定所述訪問請求消息中包括的訪問 地址為物理地址;
[0033] 在所述物理地址指向的存儲介質中執行訪問請求操作。
[0034] 可選地,根據所述進程號,查詢與所述進程號對應的進程信息表,確定與所述虛擬 地址對應的物理地址之后,包括:
[0035] 存儲設備的處理器建立所述虛擬地址與所述物理地址以及所述物理地址指向的 存儲介質之間的對應關系;
[0036] 將所述虛擬地址與所述物理地址以及所述物理地址指向的存儲介質之間的對應 關系發送給所述訪問設備的處理器。
[0037] 第三方面,提供一種對存儲設備的訪問信息處理裝置,所述存儲設備包括一種以 上的存儲介質,包括:
[0038] 確定模塊,用于根據進程發起的存儲設備訪問請求指令中包括的虛擬地址,確定 與所述虛擬地址對應的存儲設備標識;
[0039] 生成模塊,用于生成訪問請求消息,所述訪問請求消息中包括訪問地址;
[0040] 發送模塊,用于根據所述確定模塊確定的存儲設備標識,向所述存儲設備標識指 向的存儲設備的處理器發送所述生成模塊生成的訪問請求消息,以使所述存儲設備的處理 器根據所述訪問請求消息中包括的訪問地址,在所述訪問地址指向的存儲介質中執行訪問 請求操作。
[0041] 可選地,所述確定模塊具體用于:
[0042] 根據進程發起的訪問請求中包括的虛擬地址,確定是否存在與所述虛擬地址對應 的物理地址;
[0043] 若不存在與所述虛擬地址對應的物理地址,則確定與所述虛擬地址對應的存儲設 備標識;
[0044] 若存在與所述虛擬地址對應的物理地址,則根據所述物理地址確定所述物理地址 指向的存儲介質,根據所述存儲介質,確定包含所述存儲介質的存儲設備標識。
[0045] 可選地,若不存在與所述虛擬地址對應的物理地址,則所述生成模塊生成的訪問 請求消息中包括的訪問地址為虛擬地址,且所述訪問請求消息中包括第一消息屬性和進程 號;
[0046] 若存在與所述虛擬地址對應的物理地址,則所述生成模塊生成的訪問請求消息中 包括的訪問地址為物理地址,且所述訪問請求消息中包括第二消息屬性。
[0047] 可選地,所述確定模塊具體用于:查詢段表,所述段表中保存有所述虛擬地址與 所述存儲設備標識之間的對應關系;從所述段表中獲取與所述虛擬地址對應的存儲設備標 識。
[0048] 可選地,所述的裝置還包括:
[0049] 接收模塊,用于接收所述存儲設備的處理器發送的所述虛擬地址與所述物理地址 以及所述物理地址指向的存儲介質之間的對應關系。
[0050] 第四方面,提供一種對存儲設備的訪問信息處理裝置,所述存儲設備包括一種以 上的存儲介質,包括:
[0051] 接收模塊,用于接收訪問設備的處理器發送的訪問請求消息,所述訪問請求消息 中包括訪問地址;
[0052] 操作模塊,用于根據所述訪問地址,在所述訪問地址指向的存儲介質中執行訪問 請求操作。
[0053] 可選地,所述訪問請求消息中還包括第一消息屬性和進程號,則所述操作模塊具 體用于:
[0054] 根據所述第一消息屬性,確定所述訪問請求消息中包括的訪問地址為虛擬地址;
[0055] 根據所述進程號,查詢與所述進程號對應的進程信息表,確定與