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