共享的存儲器系統的制作方法
【專利說明】共享的存儲器系統
【背景技術】
[0001] 現代計算系統能執行大范圍的軟件應用,這些軟件應用可使用不同量的資源,諸 如處理器執行時間和存儲器消耗等等。例如,一些軟件應用可執行復雜的操作,這些操作導 致大量的處理器執行時間的使用。在其他示例中,一些軟件應用可以是存儲器密集型的,因 此使用大量的存儲器以在軟件應用執行期間存儲結果。在一些實施例中,軟件應用可在多 個計算設備之間共享數據。
【附圖說明】
[0002] 在下面的詳細描述中并且參照圖描述某些示例,圖中:
[0003] 圖1是可在本地存儲器設備與外部存儲器設備之間共享數據的示例計算系統的 框圖;
[0004] 圖2是圖示用于在本地存儲器設備與外部存儲器設備之間共享數據的方法的示 例的過程流程圖;
[0005] 圖3是可用于在本地存儲器設備的存儲器地址空間與外部存儲設備的存儲器地 址空間之間進行轉換的配置表的示例;
[0006] 圖4是圖示用于從外部存儲器設備請求數據的方法的示例的過程流程圖;以及
[0007] 圖5是描述有形的、非瞬態的計算機可讀介質的示例的框圖,該計算機可讀介質 可在本地存儲器設備與外部存儲器設備之間共享數據。
【具體實施方式】
[0008] 根據本文描述的主題的實施例,計算系統可使用兩個分離的存儲器空間在本地存 儲器設備與外部存儲器設備之間共享數據。在一些實施例中,本地存儲器設備駐留在第一 計算系統中,而外部存儲器設備駐留在第二計算系統中。本地存儲器設備和外部存儲器設 備都可存儲數據,該數據使用存儲器地址空間通過存儲器控制器從處理器可訪問。如本文 所指的,存儲器地址空間包括任何適合的一系列離散的存儲器地址,其中每個離散的存儲 器地址可與存儲在任何適合的計算設備中的數據對應。在一些示例中,離散的存儲器地址 可與硬盤驅動器、固態驅動器、網絡主機、外圍存儲設備、或者DRAM、PCM、STT_MRAM或ReRAM 存儲器中的緩存線等的扇區對應。在一些實施例中,計算系統可通過將與本地存儲器設備 對應的本地存儲器地址空間轉換成與外部存儲器設備對應的外部存儲器地址空間而獲取 在外部存儲器設備中存儲的數據。
[0009] 圖1是可在本地存儲器設備與外部存儲器設備之間共享數據的計算系統100的示 例的框圖。計算系統100可包括例如服務器計算機、移動電話、便攜式計算機、桌面計算機 或平板電腦等。計算系統100可包括適于執行所存儲的指令的處理器102。處理器102可 以是單核處理器、多核處理器、計算集群、或任何數量的其他適當的配置。
[0010] 處理器102可以通過系統總線104(例如,AMBAd PCI?、PCI Express?、 Hyper Transport?、串行ATA等)連接到輸入/輸出(I/O)設備接口 106,輸入/輸出(I/ 0)設備接口 106適于將計算系統100連接到一個或多個I/O設備108。I/O設備108可包 括例如鍵盤和指向設備,其中指向設備可包括觸摸板或觸摸屏等。I/O設備108可以是計算 系統100的內置組件,或可以是外部連接到計算系統100的設備。
[0011] 處理器102還可通過系統總線104鏈接到顯示設備接口 110,顯示設備接口 110適 于將計算系統100連接到顯示設備112。顯示設備112可包括作為計算系統100的內置組 件的顯示屏。顯示設備112還可包括外部連接到計算設備100的計算機監視器、電視、或投 影機等。此外,處理器102還可通過系統總線104鏈接到網絡接口卡(NIC) 114。NIC 114 可適于通過系統總線104將計算系統100連接到網絡(未描繪)。該網絡(未描繪)可以 是廣域網(WAN)、局域網(LAN)或互聯網等。
[0012] 處理器102還可通過系統總線104鏈接到存儲器設備116。在一些實施例中,存儲 器設備116可包括隨機存取存儲器(例如,SRAM、DRAM、eDRAM、EDO RAM、DDR RAM、RRAIM(^、 PRAM等)、只讀存儲器(例如,Mask ROM、EPROM、EEPROM等)、非易失性存儲器(PCM、STT_ MRAM、ReRAM、憶阻器等)或任何其他適合的存儲器系統。在一些示例中,存儲器設備116可 包括各自與任何適合數量的數據值對應的任何適合數量的存儲器地址。在一些實施例中, 與存儲器設備116關聯的存儲器地址與本地存儲器地址空間對應。例如,本地存儲器地址 空間可包括與存儲器設備116中存儲的數據對應的任何適合數量的單值存儲器地址。
[0013] 在一些實施例中,存儲器設備116可以通過存儲器控制器118由處理器102訪問。 存儲器控制器118可包括使處理器102能夠從存儲器設備116讀取數據并向存儲器設備 116寫入數據的邏輯。
[0014] 處理器還可通過系統總線104鏈接到數據轉換模塊120。在一些實施例 中,數據轉換模塊120可集成到存儲器控制器118中。在一些實施例中,數據轉換 模塊120可通過第二存儲器控制器125和系統連接件126(例如,以太網、PCI?、 PCI Express?、HyperTi_ansport?·、串行ΑΤΑ、消息傳遞接口等)檢測對來自第二計算設 備124中的外部存儲器設備122的數據的請求。外部存儲器設備122可包括隨機存取存儲 Mask R0M、EPR0M、EEPR0M等)、非易失性存儲器或任何其他適合的存儲器系統。在一些實施 例中,外部存儲器設備122可包括第二存儲器控制器125。在一些實施例中,諸如存儲器設 備116和外部存儲器設備122的每個存儲器設備可使用唯一的存儲器地址空間存儲數據。 例如,外部存儲器設備122可通過將所存儲的數據與外部存儲器地址空間中的存儲器地址 關聯來訪問所存儲的數據。類似地,存儲器設備116可通過將所存儲的數據與本地存儲器 地址空間中的存儲器地址關聯來訪問所存儲的數據。
[0015] 在一些實施例中,第二計算設備124還可包括第二數據轉換模塊128,第二數據轉 換模塊128可將數據存儲在外部存儲器設備122中。定期地,第二數據轉換模塊128可從 外部存儲器設備122獲取由計算設備100中的數據轉換模塊120請求的數據。第二數據轉 換模塊128還可將從外部存儲器設備122獲取的所請求的數據發送到計算系統100中的數 據轉換模塊120。在一些實施例中,數據轉換模塊120可將與所請求的數據關聯的存儲器地 址從外部存儲器地址空間轉換成本地存儲器地址空間。數據轉換模塊120可隨后使用與本 地存儲器地址空間關聯的存儲器地址向任何正在請求的操作系統、應用、或硬件組件提供 所請求的數據。
[0016] 應理解,圖1的框圖不旨在指示計算系統100將包括圖1示出的所有組件。相反, 計算系統100可包括更少的組件或圖1未圖示的附加組件(例如,附加存儲器設備、視頻 卡、附加網絡接口等)。此外,數據轉換模塊120的任何功能可以部分或全部實現在諸如處 理器102的任何適合的硬件組件中。例如,功能可利用專用集成電路實現,以邏輯實現在處 理器102、存儲器設備116、存儲器控制器或外圍設備的處理器等中。
[0017] 圖2是圖示用于在本地存儲器設備與外部存儲器設備之間共享數據的方法的示 例的過程流程圖。方法200可利用任何適合的計算設備(諸如圖1的計算系統100)實現。
[0018] 在框202處,第一計算設備的數據轉換模塊120可配置本地存儲器設備,以存儲外 部存儲器設備的數據。在一些實施例中,配置可包括分配本地存儲器設備的任何適合的部 分,以存儲外部存儲器設備的數據。例如,數據轉換模塊120可使用任何適合的分配技術 (諸如動態存儲器分配或靜態存儲器分配)來分配本地存儲器設備的部分,以存儲外部存 儲設備的數據。在一些示例中,在具有本地存儲器設備的計算設備中的處理器不能檢測被 分配給遠程節點或第二計算系統的存儲器的存在。在一些示例中,數據轉換模塊120可在 計算設備的初始化(諸如引導過程)期間管理本地存儲器設備中的存儲器空間的分配。在 一些示例中,數據轉換模塊120還可動態地管理本地存儲器設備中的存儲器空間的分配。 例如,數據轉換模塊120可響應于軟件應用的終止而為外部數據存儲重新分配本地存儲器 設備中的不同數量的存儲器。
[0019] 在框204處,數據轉換模塊120可檢測來自外部數據轉換模塊的數據請求。在一些 實施例中,來自外部數據轉換模塊的數據請求可通過數據轉換模塊120傳送到本地存儲器 設備。例如,數據轉換模塊120可連接到任何適合的系統互連,諸如總線、以太網、無限帶寬 技術或PCIe等。當第二計算系統中的外部數據轉換模塊要從本地存儲器設備獲取數據時, 外部數據轉換模塊可通過系統互連向第一計算設備的數據轉換模塊120發送數據請求。
[0020] 在框206處,數據轉換模塊120可將與所請求的數據對應的存儲器地址從外部存 儲器地址空間轉換成本地存儲器地址空間。在一些實施例中,數據轉換模塊120可維護包 括本地存儲器地址空間中的存儲器地址列表和外部存儲器地址空間中的對應存儲器地址 列表的配置表。配置表可使數據轉換模塊120能夠將存儲器地址從第一存儲器地址空間轉 換成第二存儲器地址空間。在一些實施例中,配置表存儲在每個計算系統中的存儲器控制 器中。配置表可定期地更新,諸如在計算系統的初始化期間或在應用的終止之后等其他場 景中。下面關于圖3更詳細地描述配置表。
[0021] 在框208處,數據轉換模塊120可基于來自本地存儲器地址空間的本地存儲器地 址獲取所請求的數據。在一些實施例中,數據轉換模塊120可使用來自配置表的本地存儲 器地址來獲取從外部存儲器設備請求的數據。在框210處,數據轉換模塊120可向第二計 算系統中的外部數據轉換模塊發送所獲取的數據。在一些實施例中,數據轉換模塊120可 使用任何適合的通信協議(諸如TCP/IP、消息傳遞接口等)向外部存儲器設備傳送所獲取 的數據。根據特定的應用,圖2的過程流程圖可包括方法200內的任何數量的附加步驟。
[0022] 圖3是可用于在本地存儲器設備的存儲器地址空間與外部存儲器設備的存儲器 地址空間之間進行轉換的配置表的示例。如上面討論的,配置表300可