本發(fā)明涉及計算機領域,尤其涉及一種實現(xiàn)內存訪問的方法、裝置及系統(tǒng)。
背景技術:
數(shù)據(jù)中心(Data Center)是數(shù)據(jù)計算、存儲的中心。進入云數(shù)據(jù)中心時代后,通過引用虛擬化技術,將數(shù)據(jù)中心的計算機、存儲設備集中管理,形成統(tǒng)一的共享資源池,提高資源利用率,并有效地降低硬件的成本以及后續(xù)的運營費用。
然而,在現(xiàn)有技術中,各計算機的處理器和該計算機的內存之間通過雙列直插式存儲模塊(Dual-Inline-Memory-Modules,DIMM)總線直接連接,處理器直接通過該DIMM總線訪問本計算機上的內存。由于DIMM總線布線要求限制了處理器和內存的距離,因此各計算機只能訪問本計算機上的內存,而計算機內部所能提供的內存槽數(shù)量受限,因此在實際應用中往往存在內存空間不足的問題。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種實現(xiàn)內存訪問的方法、裝置和系統(tǒng),用于解決現(xiàn)有技術中存在的內存空間不足的問題。
第一方面,提供了一種實現(xiàn)內存訪問的方法,所述方法應用于包括計算機、內存管理設備和內存池的系統(tǒng),其中,所述計算機通過系統(tǒng)總線與所述 內存管理設備相連,所述內存管理設備與所述內存池相連,所述內存池包括多個存儲器;所述方法包括:
所述計算機的操作系統(tǒng)通過調用所述計算機的統(tǒng)一可擴展固件接口基本輸入輸出系統(tǒng)UEFI BIOS的接口向所述UEFI BIOS發(fā)送內存訪問請求,所述內存訪問請求包括訪問地址和訪問長度;
所述UEFI BIOS根據(jù)所述訪問地址確定所述內存訪問請求所請求訪問的內存空間屬于所述內存池中為所述計算機分配的內存空間,通過所述系統(tǒng)總線向所述內存管理設備發(fā)送所述內存訪問請求以請求訪問起始位置的物理地址為所述訪問地址、長度為所述訪問長度的內存空間。
在第一方面的第一種可能的實現(xiàn)方式中,所述根據(jù)所述訪問地址確定所述內存訪問請求所請求訪問的內存空間屬于所述內存池中為所述計算機分配的內存空間,具體包括:根據(jù)物理地址空間表確定所述訪問地址在所述內存池中為所述計算機分配的內存空間的物理地址范圍,所述物理地址空間表包括所述內存池中為所述計算機分配的內存空間的物理地址范圍。
結合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述方法還包括:所述UEFI BIOS在所述計算機啟動時確定需要所述內存管理設備為所述計算機分配的內存空間的長度,并向所述內存管理設備發(fā)送包括所述長度的內存分配請求,以請求所述內存管理設備在所述內 存池中為所述計算機分配所述長度的內存空間。
結合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述確定需要所述內存管理設備為所述計算機分配的內存空間的長度具體包括:檢查所述第一計算機中的本地內存的長度,將預設的所述第一計算機需要使用的總內存空間的長度與所述本地內存的長度的差值確定為需要所述內存管理設備為所述第一計算機分配的內存空間的長度。
第二方面,提供了一種實現(xiàn)內存訪問的方法,所述方法由內存管理裝置執(zhí)行;所述方法包括:
接收與所述內存管理裝置相連的第一計算機發(fā)送的內存訪問請求,所述內存訪問請求用于請求訪問待訪問內存空間,包括訪問地址和訪問長度,所述訪問地址為所述內存訪問請求所請求訪問的待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
確定內存池中的已分配給所述第一計算機的內存空間的地址信息,所述內存池包括多個存儲器,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,并根據(jù)所述起始位置在所述內存池中的地址和所述訪問長度訪問所述待訪問內存空間。
在第二方面的第一種可能的實現(xiàn)方式中,所述確定所述內存池中的已分配給所述第一計算機的內存空間之前還包括:
在所述內存池中為所述第一計算機分配所述內存空間,所述內存空間包括至少一個連續(xù)的子內存空間,記錄用于標識所述第一計算機的計算機標識和所述內存空間的地址信息,所述內存空間的地址信息包括各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的映射關系;
所述確定所述內存池中的已分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,具體包括:
根據(jù)所述第一計算機的標識確定記錄的分配給所述第一計算機的內存空間的地址信息,根據(jù)所述訪問地址、以及記錄的各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的的映射關系,確定所述待訪問內存空間的起始位置在所述內存池中的地址。
結合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述在所述內存池中為所述第一計算機分配所述內存空間之后還包括:
在接收到所述第一計算機發(fā)送的內存釋放請求時釋放為所述第一計算機分配的內存空間,并將釋放的所述內存空間標為空閑狀態(tài);
在接收到與所述內存管理裝置相連的第二計算機發(fā)送的內存分配請求時,從所述內存池中標為空閑狀態(tài)的內存空間中為所述第二計算機分配內存 空間。
結合第二方面或第二方面的第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述內存管理裝置部署在實現(xiàn)內存訪問的系統(tǒng)的內存管理設備中,所述系統(tǒng)還包括所述第一計算機和所述內存池,其中,所述第一計算機通過所述系統(tǒng)總線與所述內存管理設備相連,所述內存管理設備與所述內存池相連。
結合第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述內存管理設備包括內存交換機和內存控制設備,所述內存交換機與所述內存控制設備相連,所述內存控制設備和所述內存池相連;
所述內存管理裝置部署在所述內存交換機中;其中,所述訪問單元具體用于通過所述內存控制設備訪問所述待訪問內存空間;或者,
所述內存管理裝置部署在所述內存控制設備中;其中,所述接收第一計算機發(fā)送的內存訪問請求具體為,所述內存控制設備通過所述內存交換機接收所述第一計算機發(fā)送的所述內存訪問請求,所述內存訪問請求包括所述內存交換機添加的所述第一計算機的計算機標識;所述確定內存池中的已分配給所述第一計算機的內存空間具體為,所述內存控制設備根據(jù)所述計算機標識確定分配給所述第一計算機的內存空間。
第三方面,提供了一種實現(xiàn)內存訪問的方法,其特征在于,所述方法應 用于包括計算機、內存交換機、內存控制設備和內存池的系統(tǒng),其中,所述計算機通過系統(tǒng)總線與所述內存交換機相連,所述內存交換機與所述內存控制設備相連,所述內存控制設備與內存池相連,所述內存池包括多個存儲器;所述方法包括:
所述內存交換機接收所述計算機發(fā)送的內存訪問請求,所述內存訪問請求用于請求訪問待訪問內存空間,包括訪問地址和訪問長度,所述訪問地址為所述內存訪問請求所請求訪問的待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
所述內存交換機根據(jù)與所述計算機所連接的端口確定發(fā)送所述內存訪問請求的計算機為所述計算機,將用于標識所述計算機的計算機標識添加到所述內存訪問請求中,并將攜帶所述計算機標識的內存訪問請求發(fā)送給所述內存控制設備,以使得所述內存控制設備根據(jù)所述計算機標識確定分配給所述計算機的內存空間,并訪問所述內存空間中的所述待訪問內存空間。
在第三方面的第一種可能的實現(xiàn)方式中,所述系統(tǒng)包括至少兩個內存控制設備,各內存控制設備分別和一個所述內存池相連;
所述內存交換機向所述內存控制設備發(fā)送攜帶所述計算機標識的內存訪問請求之前還包括:
所述內存交換機在接收到所述計算機發(fā)送的內存分配請求時,選擇所述 至少兩個內存控制設備中的第一內存控制設備為所述計算機分配所述內存空間,并記錄所述計算機的計算機標識和所述第一內存控制設備的裝置標識的對應關系;
所述內存交換機根據(jù)所述對應關系確定需要將所述內存訪問請求發(fā)送給所述第一內存控制設備。
第四方面,提供了一種計算機,所述計算機通過系統(tǒng)總線與內存管理設備相連,所述內存管理設備與內存池相連,所述內存池包括多個存儲器;所述計算機包括操作系統(tǒng)模塊和BIOS模塊,所述操作系統(tǒng)模塊用于實現(xiàn)所述計算機的操作系統(tǒng)的功能,所述BIOS模塊用于實現(xiàn)所述計算機的UEFI BIOS的功能;
所述操作系統(tǒng)模塊,用于通過調用所述BIOS模塊的接口向所述BIOS模塊發(fā)送內存訪問請求,所述內存訪問請求包括訪問地址和訪問長度;
所述BIOS模塊,用于根據(jù)所述訪問地址確定所述內存訪問請求所請求訪問的內存空間屬于所述內存池中為所述計算機分配的內存空間,通過所述系統(tǒng)總線向所述內存管理設備發(fā)送所述內存訪問請求以請求訪問起始位置的物理地址為所述訪問地址、長度為所述訪問長度的內存空間。
在第四方面的第一種可能的實現(xiàn)方式中,所述BIOS模塊用于根據(jù)所述訪問地址確定所述內存訪問請求所請求訪問的內存空間屬于所述內存池中為所 述計算機分配的內存空間具體包括:所述BIOS模塊用于根據(jù)物理地址空間表確定所述訪問地址在所述內存池中為所述計算機分配的內存空間的物理地址范圍,所述物理地址空間表包括所述內存池中為所述計算機分配的內存空間的物理地址范圍。
結合第四方面或第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述BIOS模塊,還用于在所述計算機啟動時確定需要所述內存管理設備為所述計算機分配的內存空間的長度,向所述內存管理設備發(fā)送包括所述長度的內存分配請求,以請求所述內存管理設備在所述內存池中為所述計算機分配所述長度的內存空間。
結合第四方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述BIOS模塊用于確定需要所述內存管理設備為所述計算機分配的內存空間的長度具體包括:所述BIOS模塊,用于檢查所述計算機中的本地內存的長度,將預設的所述第一計算機需要使用的總內存空間的長度與所述本地內存的長度的差值確定為需要所述內存管理設備為所述第一計算機分配的內存空間的長度。
第五方面,提供了一種內存管理裝置,所述內存管理裝置包括:接收單元、確定單元和訪問單元;
所述接收單元,用于接收與所述內存管理裝置相連的第一計算機發(fā)送的 內存訪問請求,所述內存訪問請求用于請求訪問待訪問內存空間,包括訪問地址和訪問長度,所述訪問地址為所述內存訪問請求所請求訪問的待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
所述確定單元,用于確定內存池中的已分配給所述第一計算機的內存空間的地址信息,并根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,所述內存池包括多個存儲器;
所述訪問單元,用于根據(jù)所述起始位置在所述內存池中的地址和所述訪問長度訪問所述待訪問內存空間。
在第五方面的第一種可能的實現(xiàn)方式中,所述內存管理裝置還包括分配單元和記錄單元;
所述分配單元,用于在所述內存池中為所述第一計算機分配所述內存空間,所述內存空間包括至少一個連續(xù)的子內存空間;
所述記錄單元,用于記錄所述第一計算機的計算機標識和所述內存空間的地址信息,所述內存空間的地址信息包括各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的映射關系;
所述確定單元,具體用于根據(jù)所述第一計算機的標識確定記錄的分配給所述第一計算機的內存空間的地址信息,根據(jù)所述訪問地址、以及記錄的各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的的 映射關系,確定所述待訪問內存空間的起始位置在所述內存池中的地址。
結合第五方面或第五方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述分配單元還用于,在所述接收單元接收到所述第一計算機發(fā)送的內存釋放請求時釋放為所述第一計算機分配的內存空間,并將釋放的所述內存空間標為空閑狀態(tài),在所述接收單元接收到與所述內存管理裝置相連的第二計算機發(fā)送的內存分配請求時,從所述內存池中標為空閑狀態(tài)的內存空間中為所述第二計算機分配內存空間。
結合第五方面或第五方面的第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述內存管理裝置部署在實現(xiàn)內存訪問的系統(tǒng)的內存管理設備中,所述系統(tǒng)還包括所述第一計算機,其中,所述第一計算機通過系統(tǒng)總線與所述內存管理設備相連,所述內存管理設備與所述內存池相連。
結合第五方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述內存管理設備包括內存交換機和內存控制設備,所述內存交換機與所述內存控制設備相連,所述內存控制設備與所述內存池相連;
所述內存管理裝置部署在所述內存交換機中;其中,所述訪問單元具體用于通過所述內存控制設備訪問所述待訪問內存空間;或者,
所述內存管理裝置部署在所述內存控制設備中;其中,所述接收單元具體用于通過所述內存交換機接收所述第一計算機發(fā)送的所述內存訪問請求, 所述內存訪問請求包括所述內存交換機添加的所述第一計算機的計算機標識;所述確定單元用于確定內存池中的已分配給所述第一計算機的內存空間具體包括,所述確定單元用于根據(jù)所述計算機標識確定分配給所述第一計算機的內存空間。
第六方面,提供了一種內存交換機,包括所述內存交換機的實現(xiàn)內存訪問的系統(tǒng)還包括計算機、內存控制設備和內存池,其中,所述計算機通過系統(tǒng)總線與所述內存交換機相連,所述內存交換機與所述內存控制設備相連,所述內存控制設備與內存池相連,所述內存池包括多個存儲器;所述內存交換機包括:接收單元、添加單元和發(fā)送單元;
所述接收單元,用于接收所述計算機發(fā)送的內存訪問請求,所述內存訪問請求用于請求訪問待訪問內存空間,包括訪問地址和訪問長度,所述訪問地址為所述內存訪問請求所請求訪問的待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
所述添加單元,用于根據(jù)與所述計算機所連接的端口確定發(fā)送所述內存訪問請求的計算機為所述計算機,將用于標識所述計算機的計算機標識添加到所述內存訪問請求中;
所述發(fā)送單元,用于將攜帶所述計算機標識的內存訪問請求發(fā)送給所述內存控制設備,以使得所述內存控制設備根據(jù)所述計算機標識確定分配給所 述計算機的內存空間,并訪問所述內存空間中的所述待訪問內存空間。
在第六方面的第一種可能的實現(xiàn)方式中,所述系統(tǒng)包括至少兩個內存控制設備,各內存控制設備分別和一個所述內存池相連;所述內存交換機還包括內存控制設備管理單元;
所述內存控制設備管理單元,用于在所述接收單元接收到所述計算機發(fā)送的內存分配請求時,選擇所述至少兩個內存控制設備中的第一內存控制設備為所述計算機分配所述內存空間,并記錄所述計算機的計算機標識和所述第一內存控制設備的裝置標識的對應關系;還用于根據(jù)所述對應關系確定需要將所述內存訪問請求發(fā)送給所述第一內存控制設備。
第七方面,提供了一種實現(xiàn)內存訪問的系統(tǒng),所述系統(tǒng)包括內存管理設備和至少兩個計算機,其中,各計算機分別通過系統(tǒng)總線與所述內存管理設備相連,所述內存管理設備與內存池相連,所述內存池包括多個存儲器;
所述至少兩個計算機中的第一計算機,用于向所述內存管理設備發(fā)送內存訪問請求,以請求訪問待訪問內存空間,所述內存訪問請求包括訪問地址和訪問長度,所述訪問地址為所述待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間長度;
所述內存管理設備,在接收到所述內存訪問請求時,確定所述內存池中的已分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地 址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,并根據(jù)所述起始位置在所述內存池中的地址和所述訪問長度訪問所述待訪問內存空間。
在第七方面的第一種可能的實現(xiàn)方式中,所述內存管理設備還用于,在所述內存池中為所述第一計算機分配所述內存空間,所述內存空間包括至少一個連續(xù)的子內存空間,記錄用于標識所述第一計算機的計算機標識和所述內存空間的地址信息,所述內存空間的地址信息包括各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的映射關系;
所述內存管理設備用于確定所述內存池中的已分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,具體包括:
所述內存管理設備,用于根據(jù)所述第一計算機的標識確定記錄的分配給所述第一計算機的內存空間的地址信息,根據(jù)所述訪問地址、以及記錄的各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的的映射關系,確定所述待訪問內存空間的起始位置在所述內存池中的地址。
結合第七方面或第七方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述內存管理設備包括內存交換機和內存控制設備,各計算機分別通過系統(tǒng)總線與所述內存交換機相連,所述內存交換機與所述內存控制設 備相連,所述內存控制設備和所述內存池相連;
所述第一計算機,具體用于向所述內存交換機發(fā)送所述內存訪問請求;
所述內存交換機,用于在接收到所述內存訪問請求時,根據(jù)與所述第一計算機所連接的端口確定發(fā)送所述內存訪問請求的計算機為所述第一計算機,將所述第一計算機的計算機標識添加到所述內存訪問請求中,并將攜帶所述計算機標識的內存訪問請求發(fā)送給所述內存控制設備;
所述內存控制設備,用于在接收到所述內存訪問請求時,根據(jù)所述計算機標識確定分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,并根據(jù)所述起始位置在所述內存池中的地址和所述訪問長度訪問所述待訪問內存空間。
結合第七方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述內存管理設備包括至少兩個內存控制設備,各內存控制設備分別和一個所述內存池相連;
所述內存交換機還用于在接收到所述第一計算機發(fā)送的內存分配請求時,選擇所述至少兩個內存控制設備中的第一內存控制設備為所述第一計算機分配所述內存空間,并記錄所述第一計算機的計算機標識和所述第一內存控制設備的裝置標識的對應關系;并在向所述第一內存控制設備發(fā)送攜帶所 述計算機標識的內存訪問請求前根據(jù)所述對應關系確定需要將所述內存訪問請求發(fā)送給所述第一內存控制設備。
結合第七方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述內存訪問請求具體為讀內存請求;
所述第一內存控制設備,還用于將所述計算機標識和從所述待訪問內存空間中讀取的數(shù)據(jù)發(fā)送給所述內存交換機;
所述內存交換機,還用于通過與所述計算機標識所標識的所述第一計算機連接的端口將所述數(shù)據(jù)發(fā)送給所述第一計算機。
結合第七方面、第七方面的第一種至第四種任一可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述系統(tǒng)還包括所述內存池。
根據(jù)本發(fā)明實施例,計算機的操作系統(tǒng)可以通過統(tǒng)一可擴展固件接口(Unified Extensible Firmware Interface,UEFI)基本輸入輸出系統(tǒng)(Basic Input/Output System,BIOS)訪問內存,而不是直接訪問內存,而且,計算機的UEFI BIOS可以通過系統(tǒng)總線訪問到部署在計算機外部的內存池中的內存空間,因此,該計算機可以使用計算機外部的內存池中的內存空間,從而解決了現(xiàn)有技術存在的內存空間不足的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例或現(xiàn)有技 術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1A、1B和圖2是本發(fā)明實施例提供的用于實現(xiàn)內存訪問的系統(tǒng)100的組網結構示意圖;
圖3A和3B是本發(fā)明實施例1提供的內存空間示意圖;
圖4是本發(fā)明實施例2提供的計算機200的結構示意圖;
圖5A和5B是本發(fā)明實施例3提供的內存管理裝置300的結構示意圖;
圖6A和6B是本發(fā)明實施例4提供的內存交換機400的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1A為本發(fā)明實施例提供的一種用于實現(xiàn)內存訪問的系統(tǒng)100的組網結構示意圖,系統(tǒng)100包括至少兩個計算機110和內存管理設備120。
各計算機110分別通過系統(tǒng)總線與內存管理設備120相連,所述系統(tǒng)總線具體可以是快速外設組件互連(Peripheral Component Interconnect Express,PCIe)總線。具體實現(xiàn)時,各計算機110的處理器通過系統(tǒng)總線與內存管理設備120相連。
內存管理設備120與內存池相連,所述內存池包括多個存儲器。內存管理設備120將所述內存池中的多個存儲器的內存空間作為一個整體內存空間進行管理。具體實現(xiàn)時,所述內存池可以是一個或兩個以上。
在具體實現(xiàn)時,如圖1B所示,所述存儲器通常為雙列直插式存儲模塊(Dual-Inline-Memory-Modules,DIMM),一個內存池中的DIMM通過雙倍速率(Double Data Rate,DDR)接口連接在一個或多個內存擴展芯片上,內存管理設備120具體與內存擴展芯片相連。內存管理設備120具體可以是通過系統(tǒng)總線、存儲總線(如DIMM總線)或以太網與內存擴展芯片相連。
如圖2所示,內存管理設備120可以包括內存交換機120-1和至少1個內存控制設備120-2,各計算機110與內存交換機120-1相連,內存交換機120-1與各內存控制設備120-2相連,內存控制設備120-2與各自對應的內存池相連。其中,內存交換機120-1與各內存控制設備120-2可以通過系統(tǒng)總線、存儲總線或以太網相連。在如圖2所示的系統(tǒng)100中,1個內存控制設備120-2連接的所有存儲器構成一個內存池。
在具體實現(xiàn)時,如果1個內存交換機120-1連接1個內存控制設備120-2,內存交換機120-1和內存控制設備120-2可以位于同一個物理實體,也可以位于不同的物理實體;如果1個內存交換機120-1連接至少兩個內存控制設備120-2,內存交換機120-1和各個內存控制設備120-2分別位于一個獨立的物理實體。
如圖2所示的系統(tǒng)100有兩種實現(xiàn)方式,實現(xiàn)方式A和實現(xiàn)方式B。
在實現(xiàn)方式A中,內存交換機120-1對內存池中分配給各計算機的內存空間進行管理,如記錄分配的內存空間的地址信息,根據(jù)接收的內存訪問請求中的訪問地址、訪問長度和記錄的地址信息定位待訪問內存空間并執(zhí)行訪問操作。實現(xiàn)方式A主要適用于部署一個內存池的系統(tǒng)100中。
在實現(xiàn)方式B中,內存控制設備120-2對其連接的內存池中分配給各計算機的內存空間進行管理。實現(xiàn)方式B既適用于部署一個內存池的系統(tǒng)100,也適用于部署兩個以上內存池的系統(tǒng)100。
部署在圖1A的內存管理設備120、圖2的內存交換機120-1或內存控制設備120-2中用于對內存池中分配給各計算機的內存空間進行管理的裝置可以統(tǒng)稱為內存管理裝置。
在本發(fā)明實施例中,某一計算機可訪問的內存可以包括所述計算機內部的內存(后續(xù)稱為本地內存)和內存管理設備120在內存池中為所述計算機分配的內存(后續(xù)稱為擴展內存),相應地,所述計算機的物理地址空間包括本地內存的物理地址空間和擴展內存的物理地址空間。
計算機在啟動時,所述計算機的UEFI BIOS會生成物理地址空間表,所述物理地址空間表包括所述計算機的本地內存的物理地址范圍和所述擴展內存的物理地址范圍。如表1所示,所述計算機的物理地址空間包括16G本地內存和64G擴展內存,相應地,所述計算機的物理地址空間表包括16G本地內存的物理地址范圍和64G擴展內存的物理地址范圍。
表1
內存管理設備為其中一個計算機分配的內存空間包括至少一個連續(xù)的子內存空間,如圖3A和圖3B所示。其中,圖3A所示的內存空間包括1個子內存空間,圖3B所示的內存空間包括3個子內存空間,這3個子內存空間之間彼此不連續(xù)。
各計算機利用物理地址空間中的地址(即物理地址)訪問內存中的位置。如圖3B所示,內存池中地址為A2的位置P,在該計算機的物理地址空間中對應的物理地址是A1,計算機利用物理地址A1訪問位置P,內存管理設備可以將物理地址A1映射為A2,從而利用A2可訪問到該位置。
下面結合圖1A和圖2介紹系統(tǒng)100的工作過程。
內存分配:
當其中一個計算機(后續(xù)稱為第一計算機)啟動時,所述第一計算機通過 所述系統(tǒng)總線向內存管理設備120發(fā)送內存分配請求,所述內存分配請求包括起始地址和長度,以請求所述內存管理設備120為所述第一計算機分配該長度的內存空間。所述內存分配請求中的起始地址,為待分配內存空間的起始位置的物理地址。
具體地,所述第一計算機的UEFI BIOS在所述第一計算機啟動時確定需要所述內存管理設備為所述第一計算機分配的內存空間的長度,并通過所述系統(tǒng)總線向所述內存管理設備發(fā)送所述內存分配請求。具體實現(xiàn)方式為:在所述第一計算機啟動時,所述第一計算機的UEFI BIOS檢查本計算機中的本地內存的長度(如16G),將預設的所述第一計算機需要使用的總內存空間的長度(如80G)與所述本地內存的長度的差值確定為需要內存管理設備120為所述第一計算機分配的內存空間的長度(如64G),生成如表1所示的物理地址空間表,并通過所述系統(tǒng)總線向內存管理設備120發(fā)送所述內存分配請求。
需要說明的是,所述第一計算機的UEFI BIOS運行在所述第一計算機的處理器上,即,所述第一計算機的處理器執(zhí)行計算機程序實現(xiàn)所述UEFI BIOS的功能。用于實現(xiàn)UEFI BIOS功能的計算機程序存儲在所述第一計算機的存儲器(即本地內存)或BIOS芯片中。
內存管理設備120收到所述內存分配請求后,在所述至少一個內存池的第 一內存池中為所述第一計算機分配該長度的內存空間。所述內存空間包括至少一個連續(xù)的子內存空間,如果分配的內存空間包括兩個以上子內存空間(如圖3B所示),則所述兩個以上子內存空間的總長度等于所述內存分配請求中的長度。另外,內存管理設備120還會將分配給所述第一計算機的內存空間標為已分配狀態(tài)。當前處于已分配狀態(tài)的內存空間不會被分配給其它計算機。
內存管理設備120在分配所述內存空間后記錄用于標識所述第一計算機的計算機標識和所述內存空間的地址信息,所述內存空間的地址信息包括各子內存空間的起始位置的物理地址和該起始位置在所述第一內存池中的地址的映射關系。內存管理設備120還可以記錄各子內存空間的長度。
如果分配的內存空間包括一個子內存空間(如圖3A所示)。則相應地在內存分配表中增加一條記錄,如表2A所示,在該記錄中,該內存空間的起始位置的物理地址即為所述內存分配請求中的起始地址,長度即為所述內存分配請求中的長度。
表2A
如果分配的內存空間包括兩個以上子內存空間(如圖3B所示)。則相應地在所述內存分配表中增加兩條以上記錄,如表2B所示,在這兩條以上記錄中,分配的兩個以上子內存空間的第一個子內存空間的起始位置的物理地址為所述內存分配請求中的起始地址,第N個子內存空間的起始位置的物理地址為第N-1個子內存空間的起始位置的物理地址和第N-1個子內存空間的長度的和(N>=1)。
表2B
所述內存分配表中記錄的某個計算機的計算機標識用于唯一標識該計算機,具體可以是內存管理設備120上與該計算機連接的端口的端口號。
另外,當所述第一計算機關機時,會向內存管理設備120發(fā)送內存釋放請求,內存管理設備120收到所述內存釋放請求時會將分配給所述第一計算機的內存空間釋放掉,并將其標為空閑狀態(tài)。當前處于空閑狀態(tài)的內存空間可以 被分配給任一計算機,如,在接收到與所述內存管理裝置相連的第二計算機發(fā)送的內存分配請求時,從所述內存池中標為空閑狀態(tài)的內存空間中為所述第二計算機分配內存空間。
如果系統(tǒng)100通過圖2所示的結構實現(xiàn),具體地,所述第一計算機將所述內存分配請求發(fā)送給內存交換機120-1。后續(xù)可以通過兩種方式實現(xiàn)內存分配。
分配方式A:對應于前述實現(xiàn)方式A,內存交換機120-1指示與其連接的內存控制設備120-2在與其相連的內存池中分配所述長度的內存并接收內存控制設備120-2返回的分配的內存空間的信息(如地址信息、各子內存空間的長度等)后,并在內存分配表中記錄所述第一計算機的計算機標識和所述內存空間的信息,記錄的內容如上所述,不再贅述。
分配方式B:對應于前述實現(xiàn)方式B,內存交換機120-1將所述第一計算機的計算機標識添加到所述內存分配請求中,并向與其連接的內存控制設備120-2發(fā)送包括所述第一計算機的計算機標識的內存分配請求,以請求內存控制設備120-2為所述第一計算機分配內存。如果內存交換機120-1與不止一個內存控制設備120-2相連,則選擇一個內存控制設備120-2,向選擇的內存控制設備120-2發(fā)送所述內存分配請求。選擇為所述第一計算機分配內存的內存控制設備的方式有多種,可以是隨機選擇一個內存控制設備120-2,也可以是 選擇可用空間最大的內存池對應的內存控制設備120-2。為便于描述,后續(xù)將為所述第一計算機分配內存的內存控制設備120-2稱為第一內存控制設備。所述第一內存控制設備收到所述內存分配請求后,在與其相連的內存池中為所述第一計算機分配所述內存空間。內存管理設備120在分配所述內存空間后在內存分配表中記錄所述第一計算機的計算機標識和所述內存空間的信息,記錄的內容如上所述,不再贅述。另外,內存交換機120-1還可以記錄所述第一計算機的計算機標識和所述第一內存控制設備的設備標識的對應關系。
內存訪問:
當所述第一計算機的操作系統(tǒng)要訪問內存時,通過調用所述第一計算機的UEFI BIOS的接口向所述UEFI BIOS發(fā)送內存訪問請求,以請求訪問待訪問內存空間,所述內存訪問請求包括訪問地址和訪問長度,所述訪問地址為所述待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度。在具體實現(xiàn)時,可以在UEFI BIOS中增加用于實現(xiàn)接收內存訪問請求的接口,該接口的參數(shù)包括訪問地址參數(shù)和訪問長度參數(shù),所述操作系統(tǒng)可以通過調用該接口向該UEFI BIOS發(fā)送該內存訪問請求。
所述待訪問內存空間的長度小于為所述第一計算機分配的內存空間的長度,所述待訪問內存空間的長度的數(shù)量級通常為K,為所述第一計算機分配的 內存空間的長度的數(shù)量級通常為G。實際應用時所述待訪問內存空間的長度一般為4K。
所述內存訪問請求還包括訪問類型以請求對所述待訪問內存空間執(zhí)行所述訪問類型對應的訪問操作。所述訪問類型,具體可以是讀或寫,相應地,所述內存訪問請求具體為讀請求或寫請求。如果是寫請求,所述內存訪問請求還包括待寫入所述待訪問內存空間的數(shù)據(jù)。
需要說明的是,所述第一計算機的操作系統(tǒng)運行在所述第一計算機的處理器上,即,所述第一計算機的處理器執(zhí)行計算機程序實現(xiàn)所述操作系統(tǒng)的功能。用于實現(xiàn)操作系統(tǒng)功能的計算機程序存儲在所述第一計算機的本地內存中。
所述UEFI BIOS根據(jù)所述訪問地址判斷所述待訪問內存空間屬于本地內存還是屬于擴展內存。具體可以是根據(jù)所述第一計算機的物理地址空間表判斷所述訪問地址屬于本地內存的物理地址范圍還是屬于擴展內存的物理地址范圍,如果是屬于本地內存的物理地址范圍,則所述待訪問內存空間屬于本地內存,如果是屬于擴展內存的物理地址范圍,則所述待訪問內存空間屬于擴展內存。
如果屬于本地內存,則所述UEFI BIOS直接根據(jù)所述訪問地址和所述訪問長度在本地內存中訪問所述待訪問內存空間;如果屬于內存池,則所述UEFI BIOS通過所述系統(tǒng)總線向內存管理設備120發(fā)送所述內存訪問請求以請求訪問內存池中的所述待訪問內存空間。
內存管理設備120確定所述第一內存池中的已分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述第一內存池中的地址,并根據(jù)所述起始位置在所述第一內存池中的地址和所述訪問長度訪問所述待訪問內存空間,如,讀取所述待訪問內存空間中的數(shù)據(jù),或將所述內存訪問請求中包括的數(shù)據(jù)寫入所述待訪問內存空間。如果所述內存訪問請求具體為讀請求,還將讀取的數(shù)據(jù)通過所述系統(tǒng)總線返回給所述第一計算機,具體是返回給所述UEFI BIOS,所述UEFIBIOS將所述讀取的數(shù)據(jù)發(fā)送給所述操作系統(tǒng)。
下面結合示例介紹所述起始位置在所述第一內存池中的地址的計算方式。
將包括所述待訪問內存空間的子內存空間作為目標子內存空間。如果分配給所述第一計算機的內存空間只包括一個子內存空間,則所述子內存空間即為所述目標子內存空間;如果包括兩個以上子內存空間,則根據(jù)所述訪問地址和記錄的各子內存空間的起始位置的物理地址確定所述待訪問內存空間所屬的子內存空間,將其作為所述目標子內存空間。
計算所述訪問地址與所述目標子內存空間的起始位置的物理地址的第一差值,將所述目標子內存空間的起始位置在所述第一內存池中的地址和所述第一差值的和作為所述待訪問內存空間的起始位置在所述第一內存池中的地址。
如,分配給所述第一計算機的內存空間包括1個子內存空間,長度為100,起始位置的物理地址為100,起始位置在所述第一內存池中的地址為200,當所述訪問地址為110、所述訪問長度為10時,計算出的所述第一差值為110-100=10,所述第二待訪問內存空間的起始位置在所述第一內存池中的地址為200+10=210。
又如,分配給所述第一計算機的內存空間包括3個子內存空間,長度分別為50,起始位置的物理地址分別為100、150和200,起始位置在內所述第一內存池中的地址分別為200、300和500。當所述訪問地址為160、所述訪問長度為10時,所述待訪問內存空間屬于第二個子內存空間,計算出的所述第一差值為160-150=10,所述待訪問內存空間的起始位置在所述第一內存池中的地址為300+10=310。
如果系統(tǒng)100通過圖2所示的結構實現(xiàn),具體地,所述內存訪問命令是發(fā)送給內存交換機120-1的。后續(xù)可以通過兩種方式實現(xiàn)內存訪問。
訪問方式A:對應于前述實現(xiàn)方式A,內存交換機120-1確定所述第一內存池中的已分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述第一內存池中的地址,并指示內存控制設備120-2根據(jù)所述起始位置在所述第一內存池中的地址和所述訪問長度訪問所述待訪問內存空間。具體可以是通過上述方式確定所述起始位置在所述第一內存池中的地址。
訪問方式B:對應于前述實現(xiàn)方式B,內存交換機120-1根據(jù)與所述第一計算機所連接的端口確定發(fā)送所述內存訪問請求的計算機為所述第一計算機,將所述第一計算機的計算機標識添加到所述內存訪問請求中,并將攜帶所述計算機標識的所述內存訪問請求發(fā)送給所述第一內存控制設備,所述第一內存控制設備根據(jù)所述計算機標識確定與其相連的內存池(即所述第一內存池)中的已分配給所述第一計算機的內存空間的地址信息,根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述第一內存池中的地址,并根據(jù)所述起始位置在所述第一內存池中的地址和所述訪問長度訪問所述待訪問內存空間。具體可以是通過上述方式確定所述起始位置在所述第一內存池中的地址。如果所述內存訪問請求具體為讀請求,所述第一內存控制設備還將讀取的數(shù)據(jù)和所述第一計算機的標識返回給內存交換機120-1,內存交換機120-1根據(jù)所述第一計算機的標識確定所述第一計算機,并通過與所 述第一計算機連接的端口將所述讀取的數(shù)據(jù)返回給所述第一計算機。如果內存交換機120-1與兩個以上內存控制設備120-2相連,則在向所述第一內存控制設備發(fā)送攜帶所述計算機標識的內存訪問請求前,根據(jù)記錄的所述第一計算機的計算機標識和所述第一內存控制設備的設備標識的對應關系確定需要將所述內存訪問請求發(fā)送給所述第一內存控制設備。
根據(jù)本發(fā)明實施例1,計算機的操作系統(tǒng)可以通過UEFI BIOS訪問內存,而不是通過處理器和內存之間的DIMM總線直接訪問內存,而且,所述計算機的UEFI BIOS可以通過系統(tǒng)總線訪問部署在所述計算機外部的內存池中的內存空間,因此,根據(jù)本發(fā)明實施例1提供的系統(tǒng)100中的計算機及其實現(xiàn)方法,該計算機可以使用計算機外部的內存池中的內存空間,從而解決了現(xiàn)有技術存在的內存空間不足的問題。另外,內存池中分配給某個計算機的內存空間釋放后可以分配給其它計算機,因此多個計算機可以共享內存池,從而提升了內存利用率。
相應地,部署在內存管理設備(或具體部署在內存交換設備或內存控制設備)中的內存管理裝置在接收到任一計算機發(fā)送的內存訪問請求時,可以根據(jù)所述內存訪問請求中的訪問地址和訪問長度定位到內存池中的待訪問內存空間并執(zhí)行訪問操作,因此,通過該內存管理裝置,任一計算機均可以訪問到外部的內存池中分配給該計算機的內存空間,因此,根據(jù)本發(fā)明實施例1 提供的系統(tǒng)100中的內存管理設備中部署的內存管理裝置,任一與其相連的計算機都可以使用該計算機外部的內存池中的內存空間,從而解決了現(xiàn)有技術存在的內存空間不足的問題。另外,內存池中分配給某個計算機的內存空間釋放后可以分配給其它計算機,因此多個計算機可以共享內存池,從而提升了內存利用率。
參見圖4,本發(fā)明實施例2提供了一種計算機200。計算機200通過系統(tǒng)總線與內存管理設備相連,所述內存管理設備與內存池相連,所述內存池包括多個存儲器。
如圖4所示,計算機200包括包括操作系統(tǒng)模塊210和BIOS模塊220,操作系統(tǒng)模塊210用于實現(xiàn)計算機200的操作系統(tǒng)的功能,BIOS模塊220用于實現(xiàn)計算機200的UEFI BIOS的功能。
操作系統(tǒng)模塊210,用于通過調用BIOS模塊220的接口向BIOS模塊220發(fā)送內存訪問請求,以請求訪問待訪問內存空間,所述內存訪問請求包括訪問地址和訪問長度,所述訪問地址為所述待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
BIOS模塊220,用于根據(jù)所述訪問地址確定所述內存訪問請求所請求訪問的內存空間(即所述待訪問內存空間)屬于所述內存池中為計算機200分 配的內存空間,如,根據(jù)物理地址空間表確定所述訪問地址在所述內存池中為計算機200分配的內存空間的物理地址范圍,所述物理地址空間表包括計算機200的本地內存的物理地址范圍和所述內存池中為計算機200分配的內存空間的物理地址范圍;還用于通過所述系統(tǒng)總線向所述內存管理設備發(fā)送所述內存訪問請求以請求訪問所述內存池中為計算機200分配的內存空間中的所述待訪問內存空間。
BIOS模塊220,還用于在計算機200啟動時確定需要所述內存管理設備為計算機200分配的內存空間的長度,如,檢查計算機200中的本地內存的長度,將預設的計算機200需要使用的總內存空間的長度與所述本地內存的長度的差值確定為需要所述內存管理設備為計算機200分配的內存空間的長度;并用于向所述內存管理設備發(fā)送包括所述長度的內存分配請求,以請求所述內存管理設備在所述內存池中為所述計算機分配所述長度的內存空間。
本發(fā)明實施例2提供的計算機200可以是本發(fā)明實施例1中的所述第一計算機,相應地,操作系統(tǒng)模塊210用于實現(xiàn)所述第一計算機的操作系統(tǒng)的功能,BIOS模塊220用于實現(xiàn)所述第一計算機的UEFI BIOS的功能。
根據(jù)本發(fā)明實施例2,計算機200的操作系統(tǒng)模塊可以通過BIOS模塊訪問內存,而不是通過處理器和內存之間的DIMM總線直接訪問內存,而且,計算機200的BIOS模塊可以通過系統(tǒng)總線訪問部署在計算機200外部的內存池中的內存空間,因此,根據(jù)本發(fā)明實施例2提供的計算機200,計算機200可以使用計算機200外部的內存池中的內存空間,從而解決了現(xiàn)有技術存在的 內存空間不足的問題。另外,內存池中分配給某個計算機200的內存空間釋放后可以分配給其它計算機200,因此多個計算機200可以共享計算機200外部的內存池,從而提升了內存利用率。
參見圖5A和5B,本發(fā)明實施例3提供了一種內存管理裝置300。
如圖5A所示,內存管理裝置300包括:接收單元310、確定單元320和訪問單元330。
接收單元310,用于接收第一計算機發(fā)送的內存訪問請求,所述內存訪問請求用于請求訪問待訪問內存空間,包括訪問地址和訪問長度,所述訪問地址為所述內存訪問請求所請求訪問的待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
確定單元320,用于確定內存池中的已分配給所述第一計算機的內存空間的地址信息,并根據(jù)所述內存空間的地址信息和所述訪問地址確定所述起始位置在所述內存池中的地址,所述內存池包括多個存儲器;
訪問單元330,用于根據(jù)所述起始位置在所述內存池中的地址和所述訪問長度訪問所述待訪問內存空間。
如圖5B所示,進一步地,內存管理裝置300還可以包括分配單元340和記錄單元350;分配單元340,用于在所述內存池中為所述第一計算機分配所述內存空間,所述內存空間包括至少一個連續(xù)的子內存空間;記錄單元350,用于記錄用于標識所述第一計算機的計算機標識和所述內存空間的地址信 息,所述內存空間的地址信息包括各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的映射關系;確定單元320,具體用于根據(jù)所述第一計算機的標識確定記錄的分配給所述第一計算機的內存空間的地址信息,根據(jù)所述訪問地址、以及記錄的各子內存空間的起始位置的物理地址和該起始位置在所述內存池中的地址的的映射關系,確定所述待訪問內存空間的起始位置在所述內存池中的地址。
分配單元340,還可以用于在接收單元310接收到所述第一計算機發(fā)送的內存釋放請求時釋放為所述第一計算機分配的內存空間,并將釋放的所述內存空間標為空閑狀態(tài),在接收單元310接收到與所述內存管理裝置相連的第二計算機發(fā)送的內存分配請求時,從所述內存池中標為空閑狀態(tài)的內存空間中為所述第二計算機分配內存空間。
在具體實現(xiàn)時,內存管理裝置300可以部署在實現(xiàn)內存訪問的系統(tǒng)的內存管理設備中,所述系統(tǒng)還包括所述第一計算機,其中,所述第一計算機通過系統(tǒng)總線與所述內存管理設備相連,所述內存管理設備與所述內存池相連。
所述內存管理設備可以包括內存交換機和內存控制設備,所述內存交換機與所述內存控制設備相連,所述內存控制設備與所述內存池相連。
在一種實現(xiàn)方式中,內存管理裝置300可以部署在所述內存交換機中,其中,訪問單元330具體用于通過所述內存控制設備訪問所述待訪問內存空 間。
在另一種實現(xiàn)方式中,內存管理裝置300部署在所述內存控制設備中,其中,接收單元310具體用于通過所述內存交換機接收所述第一計算機發(fā)送的所述內存訪問請求,所述內存訪問請求包括所述內存交換機添加的所述第一計算機的計算機標識;確定單元320用于確定內存池中的已分配給所述第一計算機的內存空間具體包括,確定單元320用于根據(jù)所述計算機標識確定分配給所述第一計算機的內存空間。
本發(fā)明實施例3提供的內存管理裝置300可以部署在本發(fā)明實施例1中如圖1A和1B所示的系統(tǒng)100的內存管理設備120中,可以部署在本發(fā)明實施例1中如圖2所示的系統(tǒng)100的內存交換機120-1中,也可以部署在本發(fā)明實施例1中如圖2所示的系統(tǒng)100的內存控制設備120-2中。
根據(jù)本發(fā)明實施例3,內存管理裝置300在接收到任一計算機發(fā)送的內存訪問請求時,可以根據(jù)所述內存訪問請求中的訪問地址和訪問長度定位到內存池中的待訪問內存空間并執(zhí)行訪問操作,因此,通過內存管理裝置300,任一計算機均可以訪問到外部的內存池中分配給該計算機的內存空間,因此,根據(jù)本發(fā)明實施例3提供的內存管理裝置300,任一與其相連的計算機都可以使用該計算機外部的內存池中的內存空間,從而解決了現(xiàn)有技術存在的內存空間不足的問題。另外,內存池中分配給某個計算機的內存空間釋放后可以 分配給其它計算機,因此多個計算機可以共享內存池,從而提升了內存利用率。
參見圖6A和6B,本發(fā)明實施例4提供了一種內存交換機400,包括內存交換機400的實現(xiàn)內存訪問的系統(tǒng)還包括至少兩個計算機和內存控制設備,其中,各計算機分別通過系統(tǒng)總線與內存交換機400相連,內存交換機400與所述內存控制設備相連,所述內存控制設備與內存池相連,所述內存池包括多個存儲器。
如圖6A所示,內存交換機400包括:接收單元410、添加單元420和發(fā)送單元430。
接收單元410,用于接收所述至少兩個計算機中的第一計算機發(fā)送的內存訪問請求,所述內存訪問請求用于請求訪問待訪問內存空間,包括訪問地址和訪問長度,所述訪問地址為所述內存訪問請求所請求訪問的待訪問內存空間的起始位置的物理地址,所述訪問長度為所述待訪問內存空間的長度;
添加單元420,用于根據(jù)與所述第一計算機所連接的端口確定發(fā)送所述內存訪問請求的計算機為所述第一計算機,將用于標識所述第一計算機的計算機標識添加到所述內存訪問請求中;
發(fā)送單元430,用于將攜帶所述計算機標識的內存訪問請求發(fā)送給所述內 存控制設備,以使得所述內存控制設備根據(jù)所述計算機標識確定分配給所述第一計算機的內存空間,并訪問所述內存空間中的所述待訪問內存空間。
在具體實現(xiàn)時,所述系統(tǒng)可以包括兩個以上內存控制設備,各內存控制設備分別和一個所述內存池相連。相應地,如圖6B所示,內存交換機400還可以包括內存控制設備管理單元440。
所述內存控制設備管理單元,用于在接收單元410接收到所述第一計算機發(fā)送的內存分配請求時,選擇所述至少兩個內存控制設備中的第一內存控制設備為所述第一計算機分配所述內存空間,并記錄所述第一計算機的計算機標識和所述第一內存控制設備的裝置標識的對應關系;還用于根據(jù)所述對應關系確定需要將所述內存訪問請求發(fā)送給所述第一內存控制設備。
本發(fā)明實施例4提供的內存交換機400具體可以是本發(fā)明實施例1提供的系統(tǒng)100的內存交換機120-1。
根據(jù)本發(fā)明實施例4,內存交換機400在接收到任一計算機發(fā)送的內存訪問請求時,可以識別出該計算機,并將該計算機的計算機標識攜帶在所述內存訪問請求中發(fā)送給管理內存池的內存控制設備,以使得所述內存控制設備根據(jù)所述計算機標識確定分配給所述第一計算機的內存空間,并訪問所述內存空間中的待訪問內存空間,因此,通過該內存管理裝置,因此,根據(jù)本發(fā)明實施例4提供的內存交換機400,任一計算機均可以訪問到外部的內存池中分配給該計算機的內存空間,從而解決了現(xiàn)有技術存在的內存空間不足的問題。另外,內存池中分配給某個計算機的內存空間釋放后可以分配給其它計 算機,因此多個計算機可以共享內存池,從而提升了內存利用率。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產品銷售或使用 時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。