本發(fā)明涉及信息技術領域,尤其涉及一種不同數據處理系統(tǒng)之間數據傳輸的設備、方法和系統(tǒng)。
背景技術:
在大數據的潮流下,通常會采用多副本的方式來保障數據的可靠性。而采用多副本方式,往往會導致節(jié)點間的數據遷移操作非常多。
rdma(remotedirectmemoryaccess,遠程直接數據存取)技術是一種實現網絡上兩個節(jié)點間數據讀取的技術。rdma通過網絡把數據直接傳入計算機的內存,將數據從本地節(jié)點快速移動到遠程節(jié)點內存中,而不對操作系統(tǒng)造成任何影響。
在網絡上傳輸的rdma信息包含目標虛擬地址、內存鑰匙和數據本身.請求完成既可以完全在用戶空間中處理(通過輪詢用戶級完成排列),或者在應用一直睡眠到請求完成時的情況下通過內核內存處理。rdma操作使應用可以從一個遠程應用的內存中讀數據或向這個內存寫數據。目標主機的網絡適配器確認內存鑰匙,直接將數據寫人應用緩存中。
rdma要求傳輸的數據必須要通過內存才能進行兩個相互通信的服務器之間的數據傳輸。如果不通過內存的話,則無法進行數據傳輸。導致數據傳輸的時延和內存占用率較高。
技術實現要素:
本發(fā)明實施例提供一種系統(tǒng)和數據處理方法,以提高在兩個數據處理系統(tǒng)之間傳輸數據時的效率和設備利用率。
本發(fā)明實施例提供了一種數據處理系統(tǒng),包括中央處理器cpu、內存、快捷外圍部件互連標準pcie控制器、網絡適配器和至少一個pcie存儲設備,其特征在于,還包括:
管理單元,用于在所述數據處理系統(tǒng)接收數據請求時,根據所述數據請求中攜帶的第一地址信息,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是內存映射輸入輸出mmio地址;
所述網絡適配器,根據所述第一存儲地址從所述pcie存儲設備直接讀取數據傳送給第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備中,所述第二數據處理系統(tǒng)是與所述第一數據處理系統(tǒng)通過網絡通信的數據處理系統(tǒng)。
可選的,所述pcie存儲設備包括地址轉換單元,用于根據所述第一存儲地址獲取所述數據請求所請求的數據在所述pcie存儲設備的第二存儲地址。
可選的,所述第二存儲地址是物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
可選的,所述地址轉換單元還用于配置第一基地址寄存器bar,所述第一bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址之間的對應關系,所述第二存儲地址是線性連續(xù)的存儲地址。
可選的,所述地址轉換單元還用于配置第二bar地址寄存器,所述第二bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址的虛擬地址之間的對應關系,所述第二存儲地址是非線性連續(xù)的存儲地址,所述第二存儲地址的虛擬地址是所述第二存儲地址經過線性排序后的地址。
可選的,所述cpu為每個所述pcie存儲設備分配一個唯一標識,所述唯一標識用于標識每個所述pcie存儲設備。
可選的,所述第一地址信息包括所述pcie存儲設備的唯一標識和邏輯區(qū)塊地址lba。
可選的,所述管理單元還用于建立所述唯一標識與所述pcie存儲設備的bar中的基地址之間的對應關系。
所述唯一標識包括供應商識別碼venderid、設備識別碼deviceid或硬盤序列號中的至少一個;或者所述唯一標識是對venderid、deviceid或硬盤序列號中的至少一個進行哈希處理后得到的標識。
可選的,所述管理單元包括基地址獲取單元和存儲地址獲取單元:
所述基地址獲取單元,用于在所述數據處理系統(tǒng)接收到與其通過網絡通信的第二數據處理系統(tǒng)的第一數據請求時,根據所述第一數據請求中攜帶的pcie存儲設備的唯一標識,獲取請求的數據的bar中的基地址;
存儲地址獲取單元,用于根據所述bar中的基地址以及所述第一數據請求攜帶的lba地址,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址。
可選的,所述cpu將獲取到的所述第一存儲地址注冊在所述網絡適配器中。
可選的,所述數據處理系統(tǒng)還包括發(fā)送單元,所述發(fā)送單元用于將所述管理單元獲取的所述第一存儲地址發(fā)送給所述第二數據處理系統(tǒng)。
可選的,所述pcie控制器獲取所述網絡適配器發(fā)出的攜帶所述第一存儲地址的數據請求,所述地址轉換單元獲取第二存儲地址的數據,并將獲取到的數據返回給所述網絡適配器,或將網絡適配器發(fā)送的數據寫入所述第二存儲地址。
可選的,所述管理單元還包括全局基地址獲取單元和全局存儲地址獲取單元:
所述全局基地址獲取單元,用于在所述數據處理系統(tǒng)接收到第二數據請求時,根據所述第二數據請求中攜帶的pcie存儲設備的唯一標識,獲取所述第二數據請求所請求的數據的在所述第二數據處理系統(tǒng)的bar中的基地址,所述第二數據請求是向所述第二數據處理系統(tǒng)發(fā)送數據或從所述第二數據處理系統(tǒng)讀取數據的請求;
所述全局存儲地址獲取單元,用于根據所述第二數據處理系統(tǒng)的bar中的基地址以及所述第二數據請求中攜帶的所述lba地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址。
可選的,所述第二數據處理系統(tǒng)的pcie控制器中的數據轉換單元,根據所述數據處理系統(tǒng)發(fā)送的所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
本發(fā)明實施例還提供了一種
數據處理方法,所述方法應用于包括中央處理器cpu、內存、快捷外圍部件互連標準pcie控制器、網絡適配器和至少一個存儲設備的數據處理系統(tǒng)中,所述方法包括:
在所述數據處理系統(tǒng)接收到數據請求時,獲取所述數據請求攜帶的第一地址信息;
根據所述第一地址信息,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址;
所述網絡適配器根據所述第一存儲地址直接從所述pcie存儲設備讀取數據傳送給所述第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備中,所述第二數據處理系統(tǒng)是與所述第一數據處理系統(tǒng)通過網絡通信的數據處理系統(tǒng)。
可選的,所述pcie存儲設備根據所述第一存儲地址獲取所述數據請求所請求的數據在所述pcie存儲設備的第二存儲地址。
可選的,所述第二存儲地址是物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
可選的,所述方法還包括:
所述pcie控制器配置第一bar地址寄存器,所述第一bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址之間的對應關系,所述第二存儲地址是線性連續(xù)的存儲地址。
可選的,所述方法還包括:
所述pcie控制器配置第二bar地址寄存器,所述第二bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址的虛擬地址之間的對應關系,所述第二存儲地址是非線性連續(xù)的存儲地址,所述第二存儲地址的虛擬地址是所述第二存儲地址經過線性排序后的地址。
可選的,所述cpu為每個所述pcie存儲設備分配一個唯一標識,所述唯一標識用于標識每個所述pcie存儲設備。
可選的,所述第一地址信息包括所述pcie存儲設備的唯一標識和邏輯區(qū)塊地址lba。
可選的,所述方法還包括:
建立所述唯一標識與所述pcie存儲設備的bar中的基地址之間的對應關系。
可選的,所述唯一標識包括供應商識別碼venderid、設備識別碼deviceid或硬盤序列號中的至少一個;或者所述唯一標識是對venderid、deviceid或硬盤序列號中的至少一個進行哈希處理后得到的標識。
可選的,所述獲取請求的數據在所述存儲設備中的第一存儲地址包括:
根據所述第一數據請求中攜帶的pcie存儲設備的唯一標識,獲取請求的數據的bar中的基地址;
根據所述bar中的基地址以及所述第一數據請求中的lba地址,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址。
可選的,所述cpu將獲取到的所述第一存儲地址注冊在所述網絡適配器中。
可選的,所述方法還包括:
所述數據處理系統(tǒng)將獲取到的所述第一存儲地址發(fā)送給所述第二數據處理系統(tǒng)。
可選的,所述pcie控制器獲取所述網絡適配器發(fā)出的攜帶所述第一存儲地址的數據請求,并獲取第二存儲地址的數據,將獲取到的數據返回給所述網絡適配器,或將網絡適配器發(fā)送的數據寫入所述第二存儲地址。
可選的,所述方法還包括:
在所述數據處理系統(tǒng)接收到第二數據請求時,根據所述第二數據請求中攜帶的pcie存儲設備的唯一標識,獲取所述第二數據請求所請求的數據的在所述第二數據處理系統(tǒng)的bar中的基地址,所述第二數據請求用于向所述第二數據處理系統(tǒng)發(fā)送數據或從所述第二數據處理系統(tǒng)讀取數據的請求;
根據所述第二數據處理系統(tǒng)的bar中的基地址以及所述第二數據請求中攜帶的所述lba地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址。
可選的,所述第二數據處理系統(tǒng)中的pcie控制器,根據所述數據處理系統(tǒng)發(fā)送的所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
本發(fā)明實施例提供的數據處理系統(tǒng)和數據處理方法,通過獲取數據請求的mmio地址,該mmio地址能夠直接獲取pcie存儲設備中存儲的數據,網絡適配器根據該mmio地址,能夠直接從所述數據處理系統(tǒng)的pcie存儲設備中讀取數據并傳送給第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備中。使得所述處理系統(tǒng)能夠實現在網絡通信的兩個數據處理系統(tǒng)間傳遞數據時,數據的傳輸從pcie存儲設備直接到網絡適配器之間傳遞,不需要經過內存。降低了在兩個數據處理系統(tǒng)件傳遞數據時對內存、cpu等資源的占用率,并提高了數據傳輸的效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有技術中一種將遠程節(jié)點存儲設備中的數據搬到本地節(jié)點存儲設備中的流程示意圖;
圖2為本發(fā)明實施例一種數據處理系統(tǒng)的結構示意圖;
圖3為本發(fā)明實施例數據處理系統(tǒng)的一種具體實現結構示意圖;
圖4為本發(fā)明實施例一種數據處理方法的流程示意圖;
圖5為本發(fā)明實施例數據處理系統(tǒng)一種實現方式的基本硬件結構示意圖;
圖6為本發(fā)明實施例管理單元存儲的pcie存儲設備唯一標識與pcie存儲設備的bar中的基地址之間的對應關系的示例圖;
圖7為本發(fā)明實施例一中配置pcie存儲設備內部地址到cpu的mmio地址之間映射的結構關系示意圖;
圖8為本發(fā)明實施例兩個數據處理系統(tǒng)之間傳遞數據的數據流向示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應屬于本發(fā)明保護的范圍。
圖1為現有技術中一種將遠程節(jié)點存儲設備中的數據搬到本地節(jié)點存儲設備中的流程示意圖。其中節(jié)點可以是服務器等實現計算或存儲功能的設備。當節(jié)點node1需要通過網絡從節(jié)點node2讀取存儲在node2的存儲設備中的數據時,其實現過程如下:
步驟1,node1的cpu發(fā)起請求讀取數據的遠程連接;
步驟2,node1中的網絡適配器將該請求報文發(fā)送至指定節(jié)點(即node2)的網絡適配器;
步驟3,node2的網絡適配器將該請求報文轉發(fā)給node2的cpu;
步驟4,node2的cpu解析請求報文后,向其pcie控制器發(fā)起數據請求;
步驟5,pcie控制器將請求的數據通過dma的方式讀至內存;
步驟6,node2的cpu將讀到內存的請求數據發(fā)送到其網絡適配器;
步驟7,node2的網絡適配器將請求的數據通過網絡發(fā)送至node1的網絡適配;
步驟8,node1的cpu從其網絡適配器讀取請求的數據后將該數據緩沖至內存;
步驟9,node1的cpu將緩存在內存中的數據發(fā)送給pcie控制器以請求將數據寫入存儲設備;
步驟10,node1的pcie控制器將接收到的數據寫入存儲設備中。
從上述現有技術中數據遠程讀取的過程可以看出,參與讀取的節(jié)點的cpu參與到了數據讀取與寫入,每個節(jié)點都需要申請一段內存空間來存儲cpu讀取或是待寫入的數據。這樣在整個數據搬移過程中,由于數據搬移的次數較多必然導致時延遲的增大,同時cpu與內存的占用率也居高不下。
為解決現有技術中遠程數據遷移時時延大,cpu和內存占用率高的問題,本發(fā)明實施例提供了一種數據處理系統(tǒng),以解決現有技術中數據處理系統(tǒng)間遠程讀寫數據時,因占用內存和cpu資源帶來的資源消耗和時延的問題。
為解決現有技術中在跨節(jié)點數據傳輸時占用cpu、內存資源多,傳輸延遲大的問題,本發(fā)明實施例提供了一種數據處理系統(tǒng),結合網絡技術與pcie存儲設備的mmio地址映射技術,使用節(jié)點間數據遠程直接訪問技術來進行數據的直接拷貝,拷貝過程中無須cpu參與數據的搬移,只需要cpu進行控制,同時也不需要將數據預先搬移到內存處理,這樣就降低了cpu與內存的使用率;同時減少了數據在cpu和內存之間的遷移過程,降低了數據處理的時延,提高了數據傳輸的效率。
參考圖2,圖2為本發(fā)明實施例一種數據處理系統(tǒng)200的結構示意圖。該數據處理系統(tǒng)200包括中央處理器cpu202、內存206、快捷外圍部件互連標準pcie控制器203、網絡適配器205和至少一個pcie存儲設備204,其特征在于,還包括:
管理單元201,用于在所述數據處理系統(tǒng)接收數據請求時,根據所述數據請求中攜帶的第一地址信息,獲取請求的數據在所述存儲設備中的第一存儲地址,所述第一存儲地址是mmio(memorymappingi/o,內存映射輸入輸出)地址;
所述網絡適配器205,根據所述第一存儲地址從所述pcie存儲設備204直接讀取數據傳送給第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備204中,所述第二數據處理系統(tǒng)是與所述第一數據處理系統(tǒng)通過網絡通信的數據處理系統(tǒng)。
通過上述數據處理系統(tǒng)中的管理單元201獲取數據請求的mmio地址,該mmio地址能夠直接獲取pcie存儲設備中存儲的數據,網絡適配器205根據該mmio地址,能夠直接從所述數據處理系統(tǒng)200的pcie存儲設備204中讀取數據并傳送給第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備204中;使得所述處理系統(tǒng)能夠實現在網絡通信的兩個數據處理系統(tǒng)間傳遞數據時,數據的傳輸從pcie存儲設備直接到網絡適配器之間傳遞,不需要經過內存。降低了在兩個數據處理系統(tǒng)件傳遞數據時對內存、cpu等資源的占用率,并提高了數據傳輸的效率。
參考圖3,圖3為本發(fā)明實施例數據處理系統(tǒng)200的一種具體實現結構示意圖。如圖3所示,所述pcie存儲設備203還包括地址轉換單元2031,用于根據所述第一存儲地址獲取所述數據請求所請求的數據在所述pcie存儲設備的第二存儲地址。所述第二存儲地址可以是物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
通過所述地址轉換單元2031將第一存儲地址,即mmio地址轉換為第二存儲地址,所述第二存儲地址是所述pcie存儲設備203的可訪問介質的物理地址,能夠使得所述pcie存儲設備在收到網絡適配器205的數據請求時,根據數據請求中攜帶的mmio地址,獲取與該mmio地址對應的可訪問介質的物理地址,并通過該物理地址讀取數據。在pcie存儲設備中可訪問介質地址不是用mmio地址表示時,能夠使得網絡適配器獲取所請求數據的可訪問介質地址,實現了數據的直接讀取和寫入。
作為一種可選的實現方式,所述地址轉換單元2031還用于配置第一基地址寄存器bar(baseaddressregister,基地址寄存器),所述第一bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址之間的對應關系,所述第二存儲地址是線性連續(xù)的存儲地址。如果所述第二存儲地址是非線性連續(xù)的存儲地址,所述地址轉換單元用于配置第二bar地址寄存器,所述第二bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址的虛擬地址之間的對應關系,所述第二存儲地址的虛擬地址是所述第二存儲地址經過線性排序后的地址。
通過上述地址轉換單元2031配置bar地址寄存器,將pcie存儲設備中的線性連續(xù)的物理地址與mmio地址一一對應,將pcie存儲設備中的非線性連續(xù)的物理地址經過線性排序后的邏輯地址與mmio地址一一對應,實現mmio地址與pcie存儲設備可訪問介質地址的映射,使得網絡適配器根據mmio地址,通過pcie控制器映射到與mmio地址一一對應的pcie可訪問存儲介質地址,實現了數據的直接讀取和寫入。
作為一種可選的實現方式,所述cpu202為每個所述pcie存儲設備分配一個唯一標識,所述唯一標識用于標識每個所述存儲設備。相應的,所述管理單元201還用于建立所述唯一標識與所述pcie存儲設備的bar中的基地址之間的對應關系。通過pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系,管理單元201能夠根據數據處理系統(tǒng)200接收到的數據請求消息中包含的pcie存儲設備的唯一標識,獲取與該唯一標識對應的pcie存儲設備的bar中的基地址。由于所述數據處理系統(tǒng)接收的數據請求中的第一地址信息包括pcie存儲設備的唯一標識和lba(logicalblockaddress,邏輯區(qū)塊地址)地址,管理單元201通過獲取到的pcie存儲設備的bar中的基地址與lba地址,能夠獲取請求數據的mmio地址。
可選的,所述唯一標識包括venderid、deviceid或硬盤序列號中的至少一個;或者所述唯一標識是對venderid、deviceid或硬盤序列號中的至少一個進行哈希處理后得到的標識。
作為一種可選的實現方式,如圖3所示,所述管理單元201包括基地址獲取單元2011和存儲地址獲取單元2012:
所述基地址獲取單元2011,用于在所述數據處理系統(tǒng)200接收到與其通過網絡通信的第二數據處理系統(tǒng)的第一數據請求時,根據所述第一數據請求中攜帶的pcie存儲設備204的唯一標識,獲取請求的數據的bar中的基地址;
存儲地址獲取單元2012,用于根據所述bar中的基地址以及所述第一數據請求中的lba地址,獲取請求的數據在所述存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址。
作為一種可選的實現方式,所述cpu202將獲取到的所述第一存儲地址注冊在所述網絡適配器中。將所述第一存儲地址注冊在所述網絡適配器中,網絡適配器205在接收到第二數據處理系統(tǒng)攜帶有第一存儲地址的數據請求時,能夠將所述第一存儲地址在pcie總線上發(fā)布,pcie控制器203接收到網絡適配器205發(fā)送的攜帶第一存儲地址的數據請求時,獲取該請求,并將請求的數據發(fā)送給網絡適配器205,或將網絡適配器接收到的第二數據處理系統(tǒng)發(fā)送的數據寫入pcie存儲設備中所述第一存儲地址對應的位置。
作為一種可選的實現方式,所述數據處理系統(tǒng)200還包括發(fā)送單元207,所述發(fā)送單元207用于將所述管理單元200獲取的所述第一存儲地址發(fā)送給所述第二數據處理系統(tǒng)。
可選的,所述pcie控制器203獲取所述網絡適配器205發(fā)出的攜帶所述第一存儲地址的數據請求,所述地址轉換單元2031獲取第二存儲地址的數據,并將獲取到的數據返回給所述網絡適配器,或將網絡適配器發(fā)送的數據寫入所述第二存儲地址。
本發(fā)明實施例中,所述數據處理系統(tǒng)200與其它的數據處理系統(tǒng),例如第二數據處理系統(tǒng),通過網絡通信,實現數據在不同數據處理系統(tǒng)之間的傳輸。所述網絡包括但不限于以太網、支持多并發(fā)鏈接的轉換線纜技術ib網絡或fc(fiberchannel,光纖信道)網絡等。上述第二數據處理系統(tǒng)可以是實現本發(fā)明實施例所述方案的系統(tǒng),也可以現有技術中的數據處理系統(tǒng)。當所述第二數據處理系統(tǒng)為實現本發(fā)明實施例所述方案的系統(tǒng)時,第二數據處理系統(tǒng)也能夠實現網絡適配器到pcie存儲設備的直接數據讀取或寫入。
作為一種可選的實現方案,所述管理單元203還包括全局基地址獲取單元2033和全局存儲地址獲取單元2034:
所述全局基地址獲取單元2033,用于在所述數據處理系統(tǒng)接收到第二數據請求時,根據所述第二數據請求中攜帶的pcie存儲設備的唯一標識,獲取所述第二數據請求所請求的數據的在所述第二數據處理系統(tǒng)的bar中的基地址,所述第二數據請求是向所述第二數據處理系統(tǒng)發(fā)送數據或從所述第二數據處理系統(tǒng)讀取數據;
所述全局存儲地址獲取單元2034,用于根據所述第二數據處理系統(tǒng)的bar中的基地址以及所述第二數據請求中攜帶的所述lba地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址。
相應的,所述第二數據處理系統(tǒng)的pcie控制器中的數據轉換單元,根據所述數據處理系統(tǒng)發(fā)送的所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
上述實施例中,管理單元203還保存有第二數據處理系統(tǒng)中pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系,在數據處理系統(tǒng)200接收到向所述第二數據處理系統(tǒng)發(fā)送數據或從所述第二數據處理系統(tǒng)讀取數據的第二數據請求時,能夠獲取所述第二數據請求所請求的數據的在所述第二數據處理系統(tǒng)的bar中的基地址,并進一步獲取第二數據請求所請求數據的mmio地址,從而實現兩個數據處理系統(tǒng)數據的直接傳輸,不需要cpu和內存的參與,節(jié)省了cpu和內存的資源,并挺高了數據傳輸的效率。例如圖8所示的第一數據處理系統(tǒng)與第二數據處理系統(tǒng)之間實現數據的傳輸,其中黑色虛線部分即為兩個數據處理系統(tǒng)之間數據傳輸的軌跡和流向。
本發(fā)明實施例的數據處理系統(tǒng)200還可以與多個數據處理系統(tǒng)通過通信網絡連接,并進行數據的傳輸。所述數據處理系統(tǒng)200可以獲取其它多個數據處理系統(tǒng)發(fā)送的pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系,以實現數據處理系統(tǒng)之間的直接傳輸。也可以向其它多個數據處理系統(tǒng)請求pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系并保存,以實現數據處理系統(tǒng)之間的直接傳輸。當然,在所述數據處理系統(tǒng)200獲取其它數據處理系統(tǒng)pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系后,當其它數據處理系統(tǒng)pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系發(fā)生變化時,發(fā)生變化的數據處理系統(tǒng)可以將變化后的對應關系發(fā)送給數據處理系統(tǒng)200。
參考圖4,圖4為本發(fā)明實施例一種數據處理方法的流程示意圖。本發(fā)明實施例的數據處理方法應用于包括中央處理器cpu、內存、快捷外圍部件互連標準pcie控制器、網絡適配器和至少一個存儲設備的數據處理系統(tǒng)中,其特征在于,所述方法包括:
步驟400:在所述數據處理系統(tǒng)接收到數據請求時,獲取所述數據請求攜帶的第一地址信息;
步驟402:根據所述第一地址信息,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址;
步驟404:所述網絡適配器根據所述第一存儲地址直接從所述pcie存儲設備讀取數據傳送給所述第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備中,所述第二數據處理系統(tǒng)是與所述第一數據處理通過網絡通信的數據處理系統(tǒng)。
上述方法實施例的步驟400和步驟402,可以由所述數據處理系統(tǒng)中的管理單元來實現,該管理單元可以是所述cpu中的一個模塊或邏輯單元,也可以是所述數據處理系統(tǒng)中單獨的硬件實體,本發(fā)明實施例不限定管理單元的具體實現方式。
通過上述實施例中步驟402獲取數據請求的mmio地址,該mmio地址能夠直接獲取pcie存儲設備中存儲的數據,網絡適配器根據該mmio地址,能夠直接從所述數據處理系統(tǒng)的pcie存儲設備中讀取數據并傳送給第二數據處理系統(tǒng),或將從所述第二數據處理系統(tǒng)接收的數據直接寫入所述pcie存儲設備中;使得所述處理系統(tǒng)能夠實現在網絡通信的兩個數據處理系統(tǒng)間傳遞數據時,數據的傳輸從pcie存儲設備直接到網絡適配器之間傳遞,不需要經過內存。降低了在兩個數據處理系統(tǒng)件傳遞數據時對內存、cpu等資源的占用率,并提高了數據傳輸的效率。
作為一種可選的實現方式,所述數據處理方法還包括,所述pcie存儲設備根據所述第一存儲地址獲取所述數據請求所請求的數據在所述pcie存儲設備的第二存儲地址。所述第二存儲地址是物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
可選的,所述pcie控制器配置第一bar地址寄存器,所述第一bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址之間的對應關系,所述第二存儲地址是線性連續(xù)的存儲地址?;蛘?,所述pcie控制器配置第二bar地址寄存器,所述第二bar地址寄存器存儲所述第一存儲地址與所述第二存儲地址的虛擬地址之間的對應關系,所述第二存儲地址是非線性連續(xù)的存儲地址,所述第二存儲地址的虛擬地址是所述第二存儲地址經過線性排序后的地址。
通過上述配置bar地址寄存器,將pcie存儲設備中的線性連續(xù)的物理地址與mmio地址一一對應,將pcie存儲設備中的非線性連續(xù)的物理地址經過線性排序后的邏輯地址與mmio地址一一對應,實現mmio地址與pcie存儲設備可訪問介質地址的映射,使得網絡適配器根據mmio地址,通過pcie控制器映射到與mmio地址一一對應的pcie可訪問存儲介質地址,實現了數據的直接讀取和寫入。
作為一種可選的實現方式,所述數據處理方法還包括:所述cpu為每個所述pcie存儲設備分配一個唯一標識,所述唯一標識用于標識每個所述pcie存儲設備。根據所述唯一標識,建立所述唯一標識與所述pcie存儲設備的bar中的基地址之間的對應關系。
可選的,所述第一地址信息包括所述pcie存儲設備的唯一標識和邏輯區(qū)塊地址lba。
可選的,所述唯一標識包括venderid、deviceid或硬盤序列號中的至少一個;或者所述唯一標識是對venderid、deviceid或硬盤序列號中的至少一個進行哈希處理后得到的標識。
通過pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系,能夠根據所述數據處理系統(tǒng)接收到的數據請求消息中包含的pcie存儲設備的唯一標識,獲取與該唯一標識對應的pcie存儲設備的bar中的基地址。由于所述數據處理系統(tǒng)接收的數據請求中的第一地址信息包括pcie存儲設備的唯一標識和lba地址,通過獲取到的pcie存儲設備的bar中的基地址與lba地址,能夠獲取請求數據的mmio地址。
作為一種可選的實現方式,所述獲取請求的數據在所述存儲設備中的第一存儲地址包括:
根據所述第一數據請求中攜帶的pcie存儲設備的唯一標識,獲取請求的數據的bar中的基地址;
根據所述bar中的基地址以及所述第一數據請求中的lba地址,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址。
可選的,所述cpu將獲取到的所述第一存儲地址注冊在所述網絡適配器中。所述數據處理系統(tǒng)將獲取到的所述第一存儲地址發(fā)送給所述第二數據處理系統(tǒng)。在所述數據處理系統(tǒng)的網絡適配器接收到所述第二數據處理系統(tǒng)發(fā)送的攜帶有所述第一存儲地址的數據請求時,所述網絡適配器在pcie總線上發(fā)布接收到的數據請求,該請求能夠被所述數據處理系統(tǒng)中的pcie控制器接收到。所述pcie控制器獲取所述網絡適配器發(fā)出的攜帶所述第一存儲地址的數據請求后,根據所述第一存儲地址獲取對應的第二存儲地址,并從所述第二存儲地址獲取數據,將獲取到的數據返回給所述網絡適配器,或將網絡適配器發(fā)送的數據寫入所述第二存儲地址。
作為一種可選的實現方式,所述方法還包括:
在所述數據處理系統(tǒng)接收到第二數據請求時,根據所述第二數據請求中攜帶的pcie存儲設備的唯一標識,獲取所述第二數據請求所請求的數據的在所述第二數據處理系統(tǒng)的bar中的基地址,所述第二數據請求用于向所述第二數據處理系統(tǒng)發(fā)送數據或從所述第二數據處理系統(tǒng)讀取數據;
根據所述第二數據處理系統(tǒng)的bar中的基地址以及所述第二數據請求中攜帶的所述lba地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址。
相應的,所述第二數據處理系統(tǒng)中的pcie控制器,根據所述數據處理系統(tǒng)發(fā)送的所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的mmio地址,獲取所述第二數據請求所請求的數據在所述第二數據處理系統(tǒng)的物理地址或邏輯地址,所述物理地址是能夠直接讀取數據的線性連續(xù)地址,所述邏輯地址是對非線性連續(xù)的物理地址進行線性排序后的地址。
通過上述獲取第二數據處理系統(tǒng)中pcie存儲設備的唯一標識與pcie存儲設備的bar中的基地址之間的對應關系,能夠獲取所述第二數據請求所請求的數據的在所述第二數據處理系統(tǒng)的bar中的基地址,并進一步獲取第二數據請求所請求數據的mmio地址,從而實現兩個數據處理系統(tǒng)數據的直接傳輸,不需要cpu和內存的參與,節(jié)省了cpu和內存的資源,并挺高了數據傳輸的效率。
圖5示意性的示出了根據本發(fā)明實施例數據處理系統(tǒng)一種實現方式的基本硬件結構示意圖。該數據處理系統(tǒng)包括cpu、內存、pcie控制器、pcie總線、pcie存儲設備和網絡適配器等基本硬件組成。其中,該數據處理系統(tǒng)中的網絡適配器是支持網絡直接訪問技術的基于pcie總線技術的網絡適配器,所述網絡直接訪問技術包括但不限于rdma(遠程直接數據存取,remotedirectmemoryaccess)技術等;所述網絡適配器包括但不限于以太網卡、ibhca(infinibandhostchanneladapter,支持多并發(fā)鏈接的轉換線纜技術主機通道適配器)、iwarphca(internetwideareardmaprotocolhostchanneladapter,支持互聯網廣域rdma協(xié)議主機通道適配器)、rapidiohca(rapidiohostchanneladapter,支持快速讀寫的主機通道適配器)等;所述基于pcie總線技術是指此網絡適配器的上行總線接口為pcie。該數據處理系統(tǒng)還包括至少一個基于pcie總線的pcie存儲設備,該pcie存儲設備包括但不限于內存、硬盤、ssd(solidstatedisk,固態(tài)硬盤)、flash、nvram(non-volatilerandomaccessmemory,非易失性隨機訪問存儲器)等。該數據處理系統(tǒng)的實現方式,包括但不限于服務器(機架式、刀塔式、機框式等)、存儲設備或小型機等設備。
本發(fā)明實施例的數據處理系統(tǒng),在圖5所示的硬件基本架構的基礎上,增加一個管理單元,該管理單元用于在所述數據處理系統(tǒng)接收數據請求時,根據所述數據請求中攜帶的第一地址信息,獲取請求的數據在所述pcie存儲設備中的第一存儲地址,所述第一存儲地址是mmio地址。該管理單元可以是在cpu中實現,也可以通過單獨的硬件實現,本發(fā)明實施例不限定管理單元在所述數據處理系統(tǒng)中的實現方式。
具體的,所述管理單元通過建立的所述pcie存儲設備的bar中的基地址與所述pcie存儲設備的唯一標識之間的對應關系,獲取所述數據處理系統(tǒng)接收到的數據請求的數據在所述pcie存儲設備中的地址。
所述pcie存儲設備的唯一標識,例如guid(globallyuniqueidentifier,全球唯一標識),是所述數據處理系統(tǒng)為每個pcie存儲設備分配的唯一確定該pcie存儲設備的標識。該唯一標識可以是所述cpu分配的唯一標識,也可以是所述管理單元分配的唯一標識。該唯一標識可以由pcie存儲設備的venderid(venderidentity,供應商識別碼)、deviceid(deviceidentity,設備識別碼)以及pcie存儲設備下掛的存儲設備的唯一標記id(如硬盤序列號)等組成一個唯一的一組字符串,或者對所述字符串進行哈希后得到的標識。本發(fā)明實施例不限定該唯一標識的組成,只要能夠唯一的標記此節(jié)點內部的存儲設備信息即可。
所述pcie存儲設備的bar中的基地址是在所述數據處理系統(tǒng)啟動時分配的,所述數據處理系統(tǒng)啟動完成后,所述管理單元獲取每個pcie存儲設備的bar中的基地址。所述管理單元可以通過掃描所述數據處理系統(tǒng)中所有的pcie存儲設備,獲取每個pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識。
所述管理單元根據獲取到的每個pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識,并記錄每個pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識之間的對應關系。
所述數據處理系統(tǒng)在接收到數據請求時,該數據請求會攜帶請求的數據所在的pcie存儲設備的唯一標識和lba(logicalblockaddress,邏輯區(qū)塊地址)地址。所述管理單元根據所述數據請求中攜帶的唯一標識,以及建立的每個pcie存儲設備的bar中的基地址與該pcie存儲設備的唯一標識之間的對應關系,獲取所請求數據所在pcie存儲設備的bar中的基地址;并結合lba地址獲取所請求的數據的mmio地址。所述管理單元可以通過下述方式獲取所請求的數據的mmio地址的起始地址和結束地址:
起始地址=映射的bar中的基地址+(lba×塊大小)
結束地址=映射的bar中的基地址+((lba+塊數量)×塊大小)-1。
所述管理單元還用于維護在pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識之間的對應關系,在pcie存儲設備的bar中的基地址發(fā)生變化時,刷新pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識之間的對應關系。例如,pcie存儲設備的bar中的基地址可能會因為所述數據處理系統(tǒng)的重新啟動而改變,即所述數據處理系統(tǒng)為每個pcie存儲設備分配的pcie存儲設備的bar中的基地址可能與上一次不同。所述管理單元需要根據每個pcie存儲設備的唯一標識,刷新pcie存儲設備唯一標識與pcie存儲設備的bar中的基地址之間的對應關系。
所述管理單元還可以獲取其它數據處理系統(tǒng)中pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識之間的對應關系。通過該其它數據處理系統(tǒng)中pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識之間的對應關系,能夠實現在對其它數據處理系統(tǒng)進行數據讀寫時,獲取該其它數據處理系統(tǒng)中pcie存儲設備的存儲地址。獲取其它數據處理系統(tǒng)中pcie存儲設備的bar中的基地址以及該pcie存儲設備的唯一標識之間的對應關系,可以由本數據處理系統(tǒng)主動向其它數據處理系統(tǒng)發(fā)起請求以獲取,也可以接收其它數據處理系統(tǒng)主動發(fā)送后獲取。本發(fā)明實施例不限定具體獲取的方式。
參考圖6,圖6為本發(fā)明實施例管理單元存儲的pcie存儲設備唯一標識與pcie存儲設備的bar中的基地址之間的對應關系的示例圖。該示例圖中,ip地址用于標識所述數據處理系統(tǒng)在其所在的網絡內的唯一地址,guid為pcie存儲設備的唯一標識,映射空間起始地址是pcie存儲設備地址在cpu尋址空間所映射區(qū)域的起始地址;設備邏輯地址是指由存儲設備內部的邏輯起始地址;空間長度指系統(tǒng)所映射的這段區(qū)域的整個長度。
本發(fā)明實施例中,pcie存儲設備唯一標識與pcie存儲設備的bar中的基地址之間的對應關系,可以由pcie存儲設備的驅動建立,也可以由所述管理單元建立。具體可以通過添加腳本的方式在所述數據處理系統(tǒng)啟動后自動加載,也可以通過手動方式加載。當由pcie存儲設備的驅動建立時,首先由pcie存儲設備的驅動配置pciebar地址寄存器,管理單元讀取配置后的映射關系。當由管理單元建立時,通過配置pcie存儲設備的寄存器來實現。
本發(fā)明實施例的pcie存儲設備,還包括地址轉換單元,用于根據所述第一存儲地址獲取所述數據請求所請求的數據在所述pcie存儲設備的第二存儲地址。
所述地址轉換單元可以在pcie設備控制器中實現,建立pcie存儲設備內的介質可訪問地址與所述mmio地址之間的對應關系,在接收到對所述mmio地址進行的數據讀寫請求時,能夠根據所述mmio地址獲取與該mmio地址對應pcie存儲設備內的介質可訪問地址,例如pcie存儲設備的存儲地址,以進行數據的讀寫。
以pcie存儲設備為pcienvram為例,根據其遵循的pcie協(xié)議規(guī)范,將該pcienvram內部的可訪問介質的地址空間直接映射到cpu的mmio地址空間,使得所有對該pcienvram的讀寫請求等同于對mmio地址的請求。mmio地址空間對應nvram所有可訪問的空間,即建立了pcie存儲設備內的介質可訪問地址與所述mmio地址之間的對應關系,通過該mmio地址空間的訪問,可以直接訪問其對應nvram空間。將該pcienvram內部的可訪問介質的地址空間直接映射到cpu的mmio地址空間,可以通過配置bar地址寄存器的方式實現。
如圖7所示,圖7為本發(fā)明實施例一中配置pcie存儲設備內部地址到cpu的mmio地址之間映射的結構關系示意圖。圖中pcie控制器中的pcieendpoint作為地址轉換單元,配置pciebar地址寄存器,映射pcie存儲設備內的地址到cpu的mmio地址,使得對cpu地址(可供dma的地址)空間的訪問,可以直接映射到pcie存儲設備可訪問介質的地址。
本發(fā)明實施例中建立pcie存儲設備內的介質可訪問地址與所述mmio地址之間的對應關系,即建立pcie存儲設備的地址空間與cpu中的mmio地址空間之間的映射關系。該映射關系的建立,依據pcie存儲設備的物理地址是否是線性連續(xù)的存儲地址,實現方式有所不同。
當pcie存儲設備的物理地址是線性連續(xù)的存儲地址時,地址轉換單元配置的bar地址寄存器,映射一段與實際存儲設備大小一致的cpu地址空間,由于pcie存儲設備地址是線性連續(xù)的,該pcie存儲設備地址與映射的cpu地址空間的地址一一對應。cpu對這段地址空間的操作能夠被地址轉換單元獲取,地址轉換單元將接收到的請求轉換為實際的pcie存儲設備的物理地址。
當pcie存儲設備的物理地址不是線性連續(xù)的存儲地址時,地址轉換單元將經過線性排序后的存儲地址與cpu的地址建立映射。即配置bar地址寄存器,映射一段與虛擬地址大小一致的cpu地址空間,該虛擬地址是該非線性連續(xù)的存儲地址經過線性排序后的地址。例如,可以將扇區(qū)、塊或其它最小單元單位連續(xù)的打上標簽,形成一個“虛擬”的線性空間,再與cpu地址空間建立映射關系。
通過上述數據處理系統(tǒng)中的管理單元建立的所述pcie存儲設備的bar中的基地址與所述pcie存儲設備的唯一標識之間的對應關系,所述管理單元能夠獲取所述數據處理系統(tǒng)接收到的數據請求的請求的數據的mmio地址,并依據該mmio地址,向pcie控制器發(fā)起數據請求;pcie控制器中的地址轉換單元依據建立的pcie存儲設備內的介質可訪問地址與所述mmio地址之間的對應關系,獲取請求的數據在pcie存儲設備的介質可訪問地址,即實際的物理地址,通過該介質可訪問地址,能夠直接讀取數據或寫入數據。
相應的,所述數據處理系統(tǒng)中的網絡適配器能夠根據上述mmio地址,直接從所述pcie存儲設備讀取數據或向所述pcie存儲設備寫入數據。避免了現有技術中需要將pcie存儲設備上相關的數據先讀取到物理內存,然后再通過該物理內存?zhèn)鬟f到遠程數據處理系統(tǒng)時對內存和cpu資源的消耗和帶來的傳輸時延問題。
下面以第一數據處理系統(tǒng)需要將pciessdf的偏移地址0x1000~0x2000共4kbytes的數據寫入第二數據處理系統(tǒng)的pciessdg的0x3000~0x4000的位置為例,對本發(fā)明實施例的數據處理系統(tǒng)和數據處理方法的實現方式做詳細說明。其中,pciessd即pcie存儲設備的一種具體實現方式。本實施例以第一數據處理系統(tǒng)不僅創(chuàng)建了自身的pciessd的唯一標識與pciessd的bar中的基地址之間的對應關系,而且還獲取了第二數據處理系統(tǒng)中pciessd的唯一標識與pciessd的bar中的基地址之間的對應關系為例進行說明。
步驟500:第一數據處理系統(tǒng)獲取pciessd的bar中的基地址;
第一數據處理系統(tǒng)通過管理單元中pciessd的唯一標識與pciessd的bar中的基地址之間的對應關系,獲取pciessdf的pciebar中的基地址為0xff000000,得到偏移地址0x1000對應的mmio地址,例如0xff001000;同時還獲取pciessdg的pciebar中的基地址0xfe000000,得到偏移地址的0x3000~0x4000對應的mmio地址,例如0xfe003000。
步驟502:第一數據處理系統(tǒng)的網絡適配器發(fā)起數據寫請求;
第一數據處理系統(tǒng)的網絡適配器通過pciessdf的新的mmio地址0xff001000向pciessdf設備發(fā)起數據請求,pciessdf設備內部pcie接口將mmio地址轉換為內部可訪問的存儲介質地址xxx,這個xxx的結果根據不同的映射單元實現會有所不同。pciessdf讀取存儲介質地址xxx對應的數據,讀取完成后將數據通過pcie總線發(fā)送給網絡適配器,這整個過程中cpu無需參與數據的傳輸過程,同時也不需要內存的占用。
步驟504:第二數據處理系統(tǒng)的網絡適配器接收所述第一數據處理系統(tǒng)的網絡適配器發(fā)送的數據,并發(fā)送給pciessdg;
第二數據處理系統(tǒng)的網絡適配器通過pciessdg的新的mmio地址0xfe003000向pciessdg設備發(fā)起寫數據請求,pciessdg設備pcie接口將mmio地址轉換為內部可訪問的存儲介質地址yyy,這個yyy的結果根據不同的映射單元實現會有所不同。pciessdg將網絡適配器傳送來的數據寫入存儲介質地址yyy,這整個過程中cpu無需參與數據的傳輸過程,同時也不需要內存的占用。
上述pciessdf設備內部pcie接口將mmio地址轉換為內部可訪問的存儲介質地址xxx,以及pciessdg設備pcie接口將mmio地址轉換為內部可訪問的存儲介質地址yyy,是針對第二存儲地址是線連續(xù)的物理地址的情況。當第二存儲地址是邏輯地址時,pciessdf設備內部pcie接口將mmio地址轉換為內部可訪問的存儲介質地址xxx,還需要一個從邏輯地址到非線性連續(xù)地址之間的轉換,此處不再贅述。
對于第一數據處理系統(tǒng)未獲取第二數據處理系統(tǒng)中pciessd的唯一標識與pciessd的bar中的基地址之間的對應關系的情況,第二數據處理系統(tǒng)的管理單元建立該第二數據處理系統(tǒng)中的pciessd的唯一標識與pciessd的bar中的基地址之間的對應關系,在第二數據處理系統(tǒng)的網絡適配器接收到第一數據處理系統(tǒng)發(fā)送的數據讀寫請求時,依據所述第二數據處理系統(tǒng)中的pciessd的唯一標識與pciessd的bar中的基地址之間的對應關系,獲取要寫入數據的pciessd的bar中的基地址,直接寫入對應的pciessd中。
本發(fā)明的上述實施例中,是以pcie存儲設備為例說明在不同數據處理系統(tǒng)之間傳遞數據時直接讀取或寫入數據的實現方式。對于通過內存接口的存儲設備,例如scm(storageclassmemory)、rram(resistiverandomaccessmemory)、nvdimm(non-volatiledimms)等,也可以參照上述pcie存儲設備的實現方式,通過管理單元對scm、rram和nvdimm進行數據的直接讀寫處理。當系統(tǒng)啟動時,存儲設備(nvdimm\rram\scm)在初始化的時候會將其訪問的空間在系統(tǒng)內注冊,通過訪問注冊后的地址,即可以對存儲設備進行訪問。與上述實施例不同的是,無需進行pcie存儲設備內地址可訪問介質地址與mmio地址的映射,也不需要地址轉換,但為了讓網絡上其它的數據處理系統(tǒng)獲取所要訪問的數據的地址,需要獲取存儲設備(nvdimm\rram\scm)在系統(tǒng)內的地址并同步其它的數據處理系統(tǒng)。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發(fā)明的范圍。
所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機械的或其它的形式連接。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本發(fā)明實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分,或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到各種等效的修改或替換,這些修改或替換都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。