專利名稱:多節(jié)點(diǎn)計(jì)算機(jī)中存儲(chǔ)器分配的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域是數(shù)據(jù)處理,或者更具體地說,是用于多節(jié)點(diǎn)計(jì)算機(jī)中存儲(chǔ)器分配的方法、裝置和產(chǎn)品。
背景技術(shù):
通常將1948年開發(fā)的EDVAC計(jì)算機(jī)系統(tǒng)作為計(jì)算機(jī)時(shí)代的開端。從那時(shí)起,計(jì)算機(jī)系統(tǒng)已經(jīng)發(fā)展成非常復(fù)雜的設(shè)備。現(xiàn)今的計(jì)算機(jī)比早期的諸如EDVAC之類的系統(tǒng)更加完善。計(jì)算機(jī)系統(tǒng)通常包括硬件組件和軟件組件、應(yīng)用程序、操作系統(tǒng)、處理器、總線、存儲(chǔ)器、輸入/輸出設(shè)備等的組合。由于半導(dǎo)體處理和計(jì)算機(jī)體系結(jié)構(gòu)的進(jìn)步使計(jì)算機(jī)的性能不斷提高,更加完善的計(jì)算機(jī)軟件已經(jīng)發(fā)展為利用高性能的硬件,這導(dǎo)致今天的計(jì)算機(jī)系統(tǒng)比僅僅幾年以前的計(jì)算機(jī)系統(tǒng)強(qiáng)大得多。
隨著計(jì)算機(jī)系統(tǒng)變得更加復(fù)雜,它們的設(shè)計(jì)也日益模塊化。通常使用多個(gè)模塊化的節(jié)點(diǎn)來實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng),每個(gè)節(jié)點(diǎn)都包含一個(gè)或多個(gè)計(jì)算機(jī)處理器、一定數(shù)量的存儲(chǔ)器,或同時(shí)包含處理器和存儲(chǔ)器。復(fù)雜的計(jì)算機(jī)系統(tǒng)可能包括許多節(jié)點(diǎn)和用于在節(jié)點(diǎn)之間傳輸數(shù)據(jù)的復(fù)雜總線結(jié)構(gòu)。
節(jié)點(diǎn)上的處理器訪問節(jié)點(diǎn)上的存儲(chǔ)器的訪問時(shí)間隨著哪個(gè)節(jié)點(diǎn)包含處理器以及哪個(gè)節(jié)點(diǎn)包含要訪問的存儲(chǔ)器的不同而不同。處理器對(duì)與其在同一節(jié)點(diǎn)上的存儲(chǔ)器進(jìn)行的存儲(chǔ)器訪問所用的時(shí)間短于處理器對(duì)在其他節(jié)點(diǎn)上的存儲(chǔ)器進(jìn)行的存儲(chǔ)器訪問所用的時(shí)間。訪問同一節(jié)點(diǎn)上的存儲(chǔ)器較快是因?yàn)樵L問遠(yuǎn)程節(jié)點(diǎn)上的存儲(chǔ)器必須經(jīng)過節(jié)點(diǎn)之間更多的計(jì)算機(jī)硬件、更多的總線、總線驅(qū)動(dòng)器、存儲(chǔ)器控制器等。
包含處理器和存儲(chǔ)器的節(jié)點(diǎn)之間的計(jì)算機(jī)硬件分離的級(jí)別稱為“存儲(chǔ)器親合性”或簡稱為“親合性”。節(jié)點(diǎn)與其自身具有最大的存儲(chǔ)器親合性,因?yàn)槠涮幚砥髟L問其存儲(chǔ)器快于訪問其他節(jié)點(diǎn)上的存儲(chǔ)器。包含處理器的節(jié)點(diǎn)與其上安裝了存儲(chǔ)器的一個(gè)或多個(gè)節(jié)點(diǎn)之間的存儲(chǔ)器親合性隨著硬件分離級(jí)別的增加而減小。
考慮具有下表中信息特征的計(jì)算機(jī)系統(tǒng)的實(shí)例
該表描述了具有三個(gè)節(jié)點(diǎn)(節(jié)點(diǎn)0、1和2)的系統(tǒng),其中處理器能力的比例表示相對(duì)于整個(gè)系統(tǒng)的每個(gè)節(jié)點(diǎn)上的處理器能力,并且存儲(chǔ)器能力的比例表示相對(duì)于整個(gè)系統(tǒng)的安裝在每個(gè)節(jié)點(diǎn)上的隨機(jī)存取存儲(chǔ)器的比例。操作系統(tǒng)可以實(shí)施親合性,僅從與處理器在同一節(jié)點(diǎn)上的存儲(chǔ)器將存儲(chǔ)器分配給該處理器上的進(jìn)程。在此實(shí)例中,節(jié)點(diǎn)0受益于實(shí)施親合性,因?yàn)楣?jié)點(diǎn)0(具有系統(tǒng)中一半的存儲(chǔ)器)很可能具有充足的存儲(chǔ)器來滿足在其處理器上運(yùn)行的進(jìn)程的需要。節(jié)點(diǎn)0還受益于實(shí)施存儲(chǔ)器親合性,因?yàn)樵L問與處理器在同一節(jié)點(diǎn)上的存儲(chǔ)器比較快。
對(duì)于節(jié)點(diǎn)1就不是這種情況。節(jié)點(diǎn)1(僅具有系統(tǒng)中百分之五的存儲(chǔ)器)不太可能具有足夠的存儲(chǔ)器來滿足在其處理器上運(yùn)行的進(jìn)程的需要。在實(shí)施親合性中,每次執(zhí)行進(jìn)程或線程獲得對(duì)節(jié)點(diǎn)1上的處理器的控制,所述進(jìn)程或線程都可能遇到將RAM的內(nèi)容交換到磁盤驅(qū)動(dòng)器以清空存儲(chǔ)器,并且從磁盤加載其存儲(chǔ)器的內(nèi)容,即稱為‘交換’或‘系統(tǒng)失效’的效率非常低的操作。對(duì)處理器的本地節(jié)點(diǎn)上的存儲(chǔ)器完全關(guān)閉親合性實(shí)施可以減輕系統(tǒng)失效,但是在沒有實(shí)施親合性的情況下運(yùn)行也會(huì)喪失在良好平衡的節(jié)點(diǎn)(如以上實(shí)例中的節(jié)點(diǎn)0)上的處理器與存儲(chǔ)器之間的親合性實(shí)施的收益。
發(fā)明內(nèi)容
本發(fā)明披露了通過評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估分配存儲(chǔ)器來降低多節(jié)點(diǎn)計(jì)算機(jī)中存儲(chǔ)器分配的系統(tǒng)失效的風(fēng)險(xiǎn)的方法、裝置和產(chǎn)品。評(píng)估存儲(chǔ)器親合性可以包括將存儲(chǔ)器親合性的加權(quán)系數(shù)指派給節(jié)點(diǎn),其中每個(gè)加權(quán)系數(shù)都表示將節(jié)點(diǎn)的存儲(chǔ)器分配給節(jié)點(diǎn)的處理器的需求度,并且分配存儲(chǔ)器可以包括根據(jù)所述存儲(chǔ)器親合性的加權(quán)系數(shù)來分配存儲(chǔ)器。
如附圖中示出的,從以下對(duì)本發(fā)明的示例性實(shí)施例的更具體的描述,本發(fā)明的上述和其他目標(biāo)、特征和優(yōu)點(diǎn)將變得顯而易見,其中相同的標(biāo)號(hào)通常代表本發(fā)明的示例性實(shí)施例的相同部件。
圖1是根據(jù)本發(fā)明的實(shí)施例的包括用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的示例性計(jì)算機(jī)的自動(dòng)計(jì)算機(jī)器的方塊圖;圖2是用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性計(jì)算機(jī)的方塊圖;圖3是示出根據(jù)本發(fā)明的實(shí)施例的包括評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的示例性方法的流程圖;圖4是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖;圖5是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖;圖6是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖;圖7是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖;圖8是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖;以及圖9是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖。
具體實(shí)施例方式
參考附圖(開始于圖1)描述了根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的示例性方法、裝置和產(chǎn)品。通常使用計(jì)算機(jī)(即,自動(dòng)計(jì)算機(jī)器)來實(shí)現(xiàn)根據(jù)本發(fā)明的多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配。因此,為了進(jìn)一步說明,圖1是根據(jù)本發(fā)明的實(shí)施例的包括用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的示例性計(jì)算機(jī)(152)的自動(dòng)計(jì)算機(jī)器的方塊圖。圖1的計(jì)算機(jī)(152)包括至少一個(gè)節(jié)點(diǎn)(202)。節(jié)點(diǎn)是包含一個(gè)或多個(gè)計(jì)算機(jī)處理器、一定數(shù)量的存儲(chǔ)器,或同時(shí)包含處理器和存儲(chǔ)器的計(jì)算機(jī)硬件模塊。在本說明書中,包含一個(gè)或多個(gè)處理器的節(jié)點(diǎn)有時(shí)稱為‘處理器節(jié)點(diǎn)’,并且包含存儲(chǔ)器的節(jié)點(diǎn)有時(shí)稱為‘存儲(chǔ)器節(jié)點(diǎn)’。同時(shí)包含一定數(shù)量的存儲(chǔ)器和處理器的節(jié)點(diǎn)可以稱為處理器節(jié)點(diǎn)和存儲(chǔ)器節(jié)點(diǎn)兩者。圖1的節(jié)點(diǎn)(202)包括至少一個(gè)計(jì)算機(jī)處理器(156)或‘CPU’以及通過系統(tǒng)總線(160)連接到處理器(156)和計(jì)算機(jī)的其他組件的隨機(jī)存取存儲(chǔ)器(168)(‘RAM’)。實(shí)際上,根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的系統(tǒng)通常包括多個(gè)節(jié)點(diǎn)、多個(gè)計(jì)算機(jī)處理器以及多個(gè)RAM電路。
存儲(chǔ)在RAM(168)中的是應(yīng)用程序(153),即實(shí)現(xiàn)執(zhí)行線程的用戶級(jí)數(shù)據(jù)處理的計(jì)算機(jī)程序指令。還存儲(chǔ)在RAM(168)中的是操作系統(tǒng)(154)。根據(jù)本發(fā)明的實(shí)施例,計(jì)算機(jī)中使用的操作系統(tǒng)包括UNIXTM、LinuxTM、Microsoft XPTM、AIXTM、IBM的i5/OSTM和本領(lǐng)域的技術(shù)人員可想到的其他操作系統(tǒng)。操作系統(tǒng)(154)包含稱為內(nèi)核(157)的核心組件,該核心組件用于將諸如處理器和物理存儲(chǔ)器之類的系統(tǒng)資源分配給應(yīng)用程序(153)實(shí)例或操作系統(tǒng)(154)的其他組件。在圖1的方法中,包括內(nèi)核(157)的操作系統(tǒng)(154)顯示在RAM(168)中,但是此類軟件的許多組件通常還存儲(chǔ)在非易失性存儲(chǔ)器(166)中。
圖1的操作系統(tǒng)(154)包括加載器(158)。加載器(158)是從諸如盤驅(qū)動(dòng)器、磁帶或網(wǎng)絡(luò)連接之類的加載源加載可執(zhí)行程序以便例如由計(jì)算機(jī)處理器執(zhí)行的計(jì)算機(jī)程序指令模塊。加載器讀取并解釋可執(zhí)行程序的元數(shù)據(jù)內(nèi)容、分配程序所需的存儲(chǔ)器、將程序的代碼和數(shù)據(jù)段加載到存儲(chǔ)器中,以及向操作系統(tǒng)中的調(diào)度器登記程序以便執(zhí)行(通常通過將新程序的標(biāo)識(shí)符置于調(diào)度器的準(zhǔn)備隊(duì)列中)。在此實(shí)例中,加載器(158)是根據(jù)本發(fā)明的實(shí)施例改進(jìn)的計(jì)算機(jī)程序指令模塊,它通過評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估分配存儲(chǔ)器來在多節(jié)點(diǎn)計(jì)算機(jī)中分配存儲(chǔ)器。
圖1的操作系統(tǒng)(154)包括存儲(chǔ)器分配模塊(159)。圖1的存儲(chǔ)器分配模塊(159)是提供應(yīng)用編程接口(‘API’)的計(jì)算機(jī)程序指令模塊,應(yīng)用程序和操作系統(tǒng)的其他組件可以通過該接口來動(dòng)態(tài)地分配存儲(chǔ)器、重新分配存儲(chǔ)器或釋放先前分配的存儲(chǔ)器。對(duì)存儲(chǔ)器分配模塊(159)的API的函數(shù)調(diào)用(例如,‘malloc()’、‘realloc()’和‘free()’)滿足了程序執(zhí)行期間的動(dòng)態(tài)存儲(chǔ)器分配要求。在此實(shí)例中,存儲(chǔ)器分配模塊(159)是根據(jù)本發(fā)明的實(shí)施例改進(jìn)的計(jì)算機(jī)程序指令模塊,它通過評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估分配存儲(chǔ)器來在多節(jié)點(diǎn)計(jì)算機(jī)中分配存儲(chǔ)器。
還存儲(chǔ)在RAM(168)中的是頁表(432),頁表(432)將計(jì)算機(jī)系統(tǒng)的虛擬存儲(chǔ)器地址空間與圖1的系統(tǒng)中的物理存儲(chǔ)器地址空間之間的映射表示為數(shù)據(jù)結(jié)構(gòu)。虛擬存儲(chǔ)器地址空間被分成稱為‘頁’的固定大小的塊,而物理存儲(chǔ)器地址空間被分成稱為‘幀’的相同大小的塊。虛擬存儲(chǔ)器地址空間為程序提供的用于在其中執(zhí)行的存儲(chǔ)器塊要遠(yuǎn)大于計(jì)算機(jī)系統(tǒng)中安裝的實(shí)際物理存儲(chǔ)器的數(shù)量。雖然程序在似乎連續(xù)的虛擬存儲(chǔ)器空間塊中執(zhí)行,但是包含該程序的實(shí)際物理存儲(chǔ)器可以分散在整個(gè)計(jì)算機(jī)系統(tǒng)中。當(dāng)在程序執(zhí)行期間引用虛擬存儲(chǔ)器的頁時(shí),操作系統(tǒng)(154)在與做出引用的程序關(guān)聯(lián)的頁表(432)中查找物理存儲(chǔ)器的相應(yīng)的幀。因此,頁表(432)允許程序在虛擬地址空間中執(zhí)行而不考慮其在物理存儲(chǔ)器中的位置。在將圖1的頁表(432)與程序關(guān)聯(lián)中,某些操作系統(tǒng)為每個(gè)執(zhí)行程序維護(hù)頁表(432),而其他操作系統(tǒng)可能將為整個(gè)系統(tǒng)維護(hù)的大型頁表(432)的一部分指派給每個(gè)程序。
在創(chuàng)建、擴(kuò)展或修改用于程序的頁表(432)時(shí),操作系統(tǒng)(154)將物理存儲(chǔ)器的幀分配給頁表(432)中的頁。操作系統(tǒng)(154)通過幀表(424)定位未分配的幀以指派給頁表(432)。幀表(424)存儲(chǔ)在RAM(168)中并表示與圖1的系統(tǒng)中的物理存儲(chǔ)器的幀有關(guān)的信息。在將圖1的幀表(424)與節(jié)點(diǎn)上的幀關(guān)聯(lián)中,某些操作系統(tǒng)可能為每個(gè)節(jié)點(diǎn)維護(hù)包含該節(jié)點(diǎn)上未分配幀的列表的幀表(424),而其他操作系統(tǒng)可能為整個(gè)系統(tǒng)維護(hù)包含與所有節(jié)點(diǎn)中的所有幀有關(guān)的信息的大型幀表(424)。幀表(424)指示幀是否被映射到虛擬存儲(chǔ)器空間中的頁。未映射到頁的幀是未分配的并且因此可用于存儲(chǔ)代碼和數(shù)據(jù)。
還存儲(chǔ)在RAM(168)中的是表示處理器節(jié)點(diǎn)與存儲(chǔ)器節(jié)點(diǎn)之間的存儲(chǔ)器親合性的評(píng)估的存儲(chǔ)器親合性表(402)。非常接近的處理器節(jié)點(diǎn)與存儲(chǔ)器節(jié)點(diǎn)之間存在較高的存儲(chǔ)器親合性評(píng)估,因?yàn)橄蚺c處理器節(jié)點(diǎn)具有高存儲(chǔ)器親合性的節(jié)點(diǎn)寫入數(shù)據(jù)(或從其讀取數(shù)據(jù))時(shí),在向(或者從)此類高親合性存儲(chǔ)器節(jié)點(diǎn)的傳輸中,將通過較少的計(jì)算機(jī)硬件、存儲(chǔ)器控制器以及總線驅(qū)動(dòng)器。此外,對(duì)于具有相對(duì)較多部分的可用存儲(chǔ)器的存儲(chǔ)器節(jié)點(diǎn),存儲(chǔ)器親合性評(píng)估也會(huì)很高。例如,比其他存儲(chǔ)器節(jié)點(diǎn)(具有相似的對(duì)處理器節(jié)點(diǎn)的物理接近度)包含更多未分配幀的存儲(chǔ)器節(jié)點(diǎn)就該處理器節(jié)點(diǎn)而言可以具有較高的存儲(chǔ)器親合性評(píng)估??梢允褂么鎯?chǔ)器親合性等級(jí)或存儲(chǔ)器親合性的加權(quán)系數(shù)在存儲(chǔ)器親合性表(402)中表示存儲(chǔ)器親合性的評(píng)估。存儲(chǔ)器親合性等級(jí)可以例如是指示從其將幀分配給執(zhí)行程序的處理器節(jié)點(diǎn)的存儲(chǔ)器節(jié)點(diǎn)順序的序數(shù)。存儲(chǔ)器親合性的加權(quán)系數(shù)可以例如指示將做出的從存儲(chǔ)器節(jié)點(diǎn)到處理器節(jié)點(diǎn)的幀分配比例。在將圖1的存儲(chǔ)器親合性表(402)與處理器節(jié)點(diǎn)關(guān)聯(lián)中,某些操作系統(tǒng)為每個(gè)處理器節(jié)點(diǎn)維護(hù)存儲(chǔ)器親合性表(402),而其他操作系統(tǒng)可能將為整個(gè)系統(tǒng)維護(hù)的大型存儲(chǔ)器親合性表(402)的一部分指派給每個(gè)處理器節(jié)點(diǎn)(156)。
圖1的計(jì)算機(jī)(152)包括通過系統(tǒng)總線(160)連接到處理器(156)和計(jì)算機(jī)(152)的其他組件的非易失性計(jì)算機(jī)存儲(chǔ)器(166)。非易失性計(jì)算機(jī)存儲(chǔ)器(166)可以被實(shí)現(xiàn)為硬盤驅(qū)動(dòng)器(170)、光盤驅(qū)動(dòng)器(172)、電可擦除可編程只讀存儲(chǔ)器空間(所謂的“EEPROM”或“閃速”存儲(chǔ)器)(174)、RAM驅(qū)動(dòng)器(未示出)或本領(lǐng)域的技術(shù)人員可想到的任何其他類型的計(jì)算機(jī)存儲(chǔ)器。在圖1的方法中,頁表(432)、幀表(424)、存儲(chǔ)器親合性表(402)和應(yīng)用程序(153)在RAM(168)中示出,但是此類軟件的許多組件通常存儲(chǔ)在非易失性存儲(chǔ)器(166)中。
圖1的實(shí)例計(jì)算機(jī)包括一個(gè)或多個(gè)輸入/輸出接口適配器(178)。計(jì)算機(jī)中的輸入/輸出接口適配器通過例如軟件驅(qū)動(dòng)程序和計(jì)算機(jī)硬件來實(shí)現(xiàn)面向用戶的輸入/輸出,以便控制到諸如計(jì)算機(jī)顯示屏幕之類的顯示設(shè)備(180)的輸出以及來自諸如鍵盤和鼠標(biāo)之類的輸入設(shè)備(181)的用戶輸入。
圖1的示例性計(jì)算機(jī)(152)包括用于實(shí)現(xiàn)與其他計(jì)算機(jī)(182)的數(shù)據(jù)通信(184)的通信適配器(167)??梢酝ㄟ^串行RS-232連接、外部總線(如USB)、數(shù)據(jù)通信網(wǎng)絡(luò)(如IP網(wǎng)絡(luò))和本領(lǐng)域的技術(shù)人員可想到的其他方式來執(zhí)行此類數(shù)據(jù)通信。通信適配器實(shí)現(xiàn)硬件級(jí)別的數(shù)據(jù)通信,通過所述適配器,一臺(tái)計(jì)算機(jī)直接地或通過網(wǎng)絡(luò)將數(shù)據(jù)通信發(fā)送到另一臺(tái)計(jì)算機(jī)。根據(jù)本發(fā)明的實(shí)施例,用于確定目的地的可用性的通信適配器的實(shí)例包括用于有線撥號(hào)通信的調(diào)制解調(diào)器、用于有線網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE802.3)適配器和用于無線網(wǎng)絡(luò)通信的802.11b適配器。
為了進(jìn)一步說明,圖2是用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性計(jì)算機(jī)(152)的方塊圖。圖2的系統(tǒng)包括實(shí)現(xiàn)為存儲(chǔ)器集成電路(稱為‘存儲(chǔ)器芯片’(205))的隨機(jī)存取存儲(chǔ)器,所述芯片包括在安裝在背板(206)上的節(jié)點(diǎn)(202)中,每個(gè)背板通過系統(tǒng)總線(160)連接到計(jì)算機(jī)(152)的其他組件。節(jié)點(diǎn)(202)還可以包括計(jì)算機(jī)處理器(204),它也以集成電路的形式安裝在節(jié)點(diǎn)上。連接背板上的節(jié)點(diǎn)以便通過背板總線(212)進(jìn)行數(shù)據(jù)通信,并且連接節(jié)點(diǎn)上的處理器芯片和存儲(chǔ)器芯片以便通過節(jié)點(diǎn)總線進(jìn)行數(shù)據(jù)通信,所述節(jié)點(diǎn)總線在節(jié)點(diǎn)(222)上的標(biāo)號(hào)(210)處示出,其擴(kuò)展了節(jié)點(diǎn)(221)的圖形表示。
節(jié)點(diǎn)可以例如被實(shí)現(xiàn)為多芯片模塊(‘MCM’)。MCM是具有兩個(gè)或更多組裝在襯底上的裸集成電路(裸片)或‘芯片尺寸的封裝’的電子系統(tǒng)或子系統(tǒng)。在圖2的方法中,MCM中的芯片是計(jì)算機(jī)處理器和計(jì)算機(jī)存儲(chǔ)器。例如,襯底可以是印刷電路板或具有互連圖形的厚或薄的陶瓷膜或硅膜。襯底可以是MCM封裝的整體部分,也可以安裝在MCM封裝內(nèi)。MCM在計(jì)算機(jī)硬件體系結(jié)構(gòu)中非常有用,因?yàn)樗鼈兇砹藢S眉呻娐?‘ASIC’)與印刷電路板之間的封裝級(jí)別。
圖2的節(jié)點(diǎn)示出了硬件存儲(chǔ)器分離或存儲(chǔ)器親合性的級(jí)別。節(jié)點(diǎn)(222)上的處理器(214)可以訪問在以下存儲(chǔ)器芯片中的物理存儲(chǔ)器·在與訪問存儲(chǔ)器芯片的處理器(214)位于同一節(jié)點(diǎn)上的存儲(chǔ)器芯片(216)中,·在同一背板(208)的另一個(gè)節(jié)點(diǎn)上的存儲(chǔ)器芯片(218)中,或者·在另一個(gè)背板(206)的另一個(gè)節(jié)點(diǎn)上的存儲(chǔ)器芯片(220)中。
就處理器(214)而言,存儲(chǔ)器芯片(216)被稱為‘本地’,因?yàn)榇鎯?chǔ)器芯片(216)與處理器(214)位于同一節(jié)點(diǎn)上。但是,就處理器(214)而言,存儲(chǔ)器芯片(218和220)被稱為‘遠(yuǎn)程’,因?yàn)榇鎯?chǔ)器芯片(218和220)位于與處理器(214)所在節(jié)點(diǎn)不同的節(jié)點(diǎn)上。訪問同一背板上的遠(yuǎn)程存儲(chǔ)器所用的時(shí)間比訪問本地存儲(chǔ)器要長,因?yàn)橛商幚砥鲗懭脒h(yuǎn)程存儲(chǔ)器或從遠(yuǎn)程存儲(chǔ)器讀取的數(shù)據(jù)在向(或者從)遠(yuǎn)程存儲(chǔ)器的傳輸中,將經(jīng)過更多的計(jì)算機(jī)硬件、存儲(chǔ)器控制器和總線驅(qū)動(dòng)器。出于相同的原因,遠(yuǎn)程地訪問其他背板上的存儲(chǔ)器將花費(fèi)更長的時(shí)間。處理器節(jié)點(diǎn)的最高存儲(chǔ)器親合性是與其自身的親合性;本地存儲(chǔ)器提供了最快的可用存儲(chǔ)器訪問。與處理器節(jié)點(diǎn)位于同一背板上的存儲(chǔ)器節(jié)點(diǎn)與該處理器節(jié)點(diǎn)具有的存儲(chǔ)器親合性評(píng)估要高于位于其他背板上的存儲(chǔ)器節(jié)點(diǎn)。如此描述的計(jì)算機(jī)體系結(jié)構(gòu)僅用于說明,而不是限制計(jì)算機(jī)存儲(chǔ)器。例如,可以將若干節(jié)點(diǎn)安裝在印刷電路板上,并且將該印刷電路板插入背板,由此創(chuàng)建圖2中未示出的其他存儲(chǔ)器親合性級(jí)別。本領(lǐng)域的技術(shù)人員可想到的計(jì)算機(jī)體系結(jié)構(gòu)的其他方面都可能影響處理器-存儲(chǔ)器親合性,并且所有這些方面都在根據(jù)本發(fā)明的實(shí)施例的在多節(jié)點(diǎn)計(jì)算機(jī)中分配存儲(chǔ)器的范圍中。
為了進(jìn)一步說明,圖3是示出根據(jù)本發(fā)明的實(shí)施例的包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的示例性方法的流程圖。在圖3的方法中,通過根據(jù)系統(tǒng)參數(shù)來計(jì)算可用于處理器節(jié)點(diǎn)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406),可以完成評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性。在圖3的方法中,可以由指示其中操作系統(tǒng)將存儲(chǔ)器從存儲(chǔ)器節(jié)點(diǎn)分配到處理器節(jié)點(diǎn)的順序的序數(shù)來表示存儲(chǔ)器親合性等級(jí)(406)。在計(jì)算存儲(chǔ)器親合性等級(jí)(406)中使用的系統(tǒng)參數(shù)可以是靜態(tài)的并由系統(tǒng)管理員在安裝計(jì)算機(jī)系統(tǒng)時(shí)存儲(chǔ)到非易失性存儲(chǔ)器中,所述參數(shù)例如是處理器節(jié)點(diǎn)數(shù)、節(jié)點(diǎn)上安裝的存儲(chǔ)器量,或節(jié)點(diǎn)的物理位置(MCM、背板等)。但是,所述系統(tǒng)參數(shù)可以隨計(jì)算機(jī)系統(tǒng)的運(yùn)行而動(dòng)態(tài)改變,例如,在通過釋放、分配或重新分配來動(dòng)態(tài)改變每個(gè)節(jié)點(diǎn)中未分配幀的數(shù)量時(shí)。此外,可以在系統(tǒng)上電或初始程序加載(‘引導(dǎo)’)期間計(jì)算系統(tǒng)參數(shù)并將其存儲(chǔ)到RAM或非易失性存儲(chǔ)器中。
圖3的存儲(chǔ)器親合性表(402)存儲(chǔ)了節(jié)點(diǎn)之間的存儲(chǔ)器親合性評(píng)估。表(402)中的每個(gè)記錄都指定了存儲(chǔ)器節(jié)點(diǎn)(404)到處理器節(jié)點(diǎn)(403)的存儲(chǔ)器親合性評(píng)估(406)。在圖3的方法中,存儲(chǔ)器親合性評(píng)估(406)是由指示其中操作系統(tǒng)將存儲(chǔ)器從存儲(chǔ)器節(jié)點(diǎn)(404)分配給處理器節(jié)點(diǎn)(403)的順序的序數(shù)存儲(chǔ)器親合性等級(jí)(406)表示的存儲(chǔ)器親合性值。較低的序數(shù)表示較高的存儲(chǔ)器親合性等級(jí)(406)-序數(shù)1是高于序數(shù)2的存儲(chǔ)器親合性等級(jí),序數(shù)2是高于序數(shù)3的存儲(chǔ)器親合性等級(jí),依此類推,并且最低的序數(shù)對(duì)應(yīng)于與處理器節(jié)點(diǎn)具有最高存儲(chǔ)器親合性評(píng)估的存儲(chǔ)器節(jié)點(diǎn),最高的序數(shù)對(duì)應(yīng)于與處理器節(jié)點(diǎn)具有最低存儲(chǔ)器親合性評(píng)估的存儲(chǔ)器節(jié)點(diǎn)。
圖3的方法還包括根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。按照?qǐng)D3的方法的根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器包括判定(412)系統(tǒng)中是否存在任何與處理器節(jié)點(diǎn)(即,要為其分配存儲(chǔ)器的處理器節(jié)點(diǎn))具有已評(píng)估的親合性的存儲(chǔ)器節(jié)點(diǎn)。在圖3的實(shí)例中,通過判定表中是否存在用于要向其分配存儲(chǔ)器的特定處理器節(jié)點(diǎn)的已評(píng)估親合性,可以完成判定系統(tǒng)中是否存在任何與處理器節(jié)點(diǎn)具有已評(píng)估的親合性的存儲(chǔ)器節(jié)點(diǎn)。在此實(shí)例中,缺少已評(píng)估的存儲(chǔ)器親合性由表中的空表項(xiàng)來表示。
如果系統(tǒng)中沒有與處理器節(jié)點(diǎn)具有已評(píng)估的親合性的存儲(chǔ)器節(jié)點(diǎn),則圖3的方法包括在不考慮存儲(chǔ)器親合性的情況下分配(414)在系統(tǒng)的任意位置可用的任何空閑存儲(chǔ)器幀。例如,存儲(chǔ)器親合性表(402)中的處理器節(jié)點(diǎn)1沒有與存儲(chǔ)器節(jié)點(diǎn)的已評(píng)估親合性(由列(406)中的空值指示),所以可以從系統(tǒng)存儲(chǔ)器中的任意位置的任何空閑幀向處理器節(jié)點(diǎn)1分配存儲(chǔ)器而不考慮其位置。
如果系統(tǒng)中存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn),則圖3的方法繼之以標(biāo)識(shí)(420)具有最高存儲(chǔ)器親合性等級(jí)(406)的存儲(chǔ)器節(jié)點(diǎn),并且如果該節(jié)點(diǎn)具有未分配的幀,則通過將來自該存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器幀的幀號(hào)(428)存儲(chǔ)(430)在頁表(432)中來從該節(jié)點(diǎn)分配存儲(chǔ)器。頁表(432)的每個(gè)記錄都將頁號(hào)(436)與幀號(hào)(434)相關(guān)聯(lián)。根據(jù)圖3的方法,如箭頭(440)所示,幀號(hào)‘1593’表示已將來自具有最高存儲(chǔ)器親合性等級(jí)(406)的存儲(chǔ)器節(jié)點(diǎn)的幀分配給頁表(432)中的頁號(hào)‘1348’。
如果具有最高存儲(chǔ)器親合性等級(jí)(406)的存儲(chǔ)器節(jié)點(diǎn)沒有未分配的幀,則圖3的方法繼之以從存儲(chǔ)器親合性表(402)移除(425)該節(jié)點(diǎn)的表項(xiàng),并且循環(huán)以再次判定(412)系統(tǒng)中是否存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn),標(biāo)識(shí)(420)具有最高存儲(chǔ)器親合性等級(jí)(406)的存儲(chǔ)器節(jié)點(diǎn)等。
通過使用諸如在圖3中的標(biāo)號(hào)(424)處示出的幀表之類的幀表,可以判定(422)具有最高存儲(chǔ)器親合性等級(jí)(406)的節(jié)點(diǎn)是否具有未分配的幀。幀表(424)中的每個(gè)記錄都表示由幀號(hào)(428)標(biāo)識(shí)的存儲(chǔ)器幀并由分配標(biāo)志(426)指定該幀是否被分配。已分配幀的關(guān)聯(lián)分配標(biāo)志被設(shè)置為‘1’,并且空閑幀的分配標(biāo)志被重置為‘0’。從此類幀表(424)分配幀包括將幀的分配標(biāo)志設(shè)置為‘1’。在圖3的幀表(424)中,分配了幀號(hào)‘1591’、‘1592’和‘1594’。但是幀號(hào)‘1593’仍未分配。
幀表的替代形式可以被實(shí)現(xiàn)為僅包含可分配幀的幀號(hào)的‘空閑幀表’。從空閑幀表分配幀包括從該空閑幀表刪除已分配幀的幀號(hào)。本領(lǐng)域的技術(shù)人員可以想到其他形式的幀表,指示空閑幀和已分配幀的方法,并且所有這些形式都在本發(fā)明的范圍之內(nèi)。
為了進(jìn)一步說明,圖4示出了根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖,該方法包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。在圖4的方法中,評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性包括向節(jié)點(diǎn)指派(500)存儲(chǔ)器親合性的加權(quán)系數(shù)(502),其中每個(gè)加權(quán)系數(shù)(502)表示將節(jié)點(diǎn)存儲(chǔ)器分配給節(jié)點(diǎn)的處理器的需求度。通過根據(jù)系統(tǒng)參數(shù)來計(jì)算每個(gè)處理器節(jié)點(diǎn)和與處理器節(jié)點(diǎn)具有已評(píng)估存儲(chǔ)器親合性的存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502),并且將存儲(chǔ)器親合性加權(quán)系數(shù)(502)存儲(chǔ)在如標(biāo)號(hào)(402)處所示的存儲(chǔ)器親合性表中,可以完成指派(500)存儲(chǔ)器親合性的加權(quán)系數(shù)(502)。存儲(chǔ)器親合性表(402)的每個(gè)記錄都指定了存儲(chǔ)器節(jié)點(diǎn)(404)與處理器節(jié)點(diǎn)(403)的存儲(chǔ)器親合性的加權(quán)系數(shù)(502)。如圖所示,處理器節(jié)點(diǎn)0具有與存儲(chǔ)器節(jié)點(diǎn)0的存儲(chǔ)器親合性系數(shù)0.80,即,處理器節(jié)點(diǎn)0與自身的存儲(chǔ)器親合性系數(shù)為0.80。處理器節(jié)點(diǎn)0與存儲(chǔ)器節(jié)點(diǎn)1的存儲(chǔ)器親合性系數(shù)為0.55。依此類推。在計(jì)算存儲(chǔ)器親合性加權(quán)系數(shù)(502)中使用的系統(tǒng)參數(shù)可以包括例如系統(tǒng)中的處理器節(jié)點(diǎn)數(shù)、節(jié)點(diǎn)的物理位置(MCM、背板等)、每個(gè)存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量、每個(gè)存儲(chǔ)器節(jié)點(diǎn)中未分配的幀數(shù),以及本領(lǐng)域的技術(shù)人員可以想到的與存儲(chǔ)器親合性評(píng)估有關(guān)的其他系統(tǒng)參數(shù)。
存儲(chǔ)器親合性表(402)中的存儲(chǔ)器親合性(502)的評(píng)估是存儲(chǔ)器親合性加權(quán)系數(shù)(502)。較高的存儲(chǔ)器親合性加權(quán)系數(shù)(502)表示存儲(chǔ)器親合性的評(píng)估較高。加權(quán)系數(shù)0.65表示的存儲(chǔ)器親合性評(píng)估高于加權(quán)系數(shù)0.35表示的存儲(chǔ)器親合性評(píng)估;加權(quán)系數(shù)1.25表示的存儲(chǔ)器親合性評(píng)估高于加權(quán)系數(shù)0.65表示的存儲(chǔ)器親合性評(píng)估;依此類推,并且最高的存儲(chǔ)器親合性加權(quán)系數(shù)對(duì)應(yīng)于與處理器節(jié)點(diǎn)具有最高存儲(chǔ)器親合性評(píng)估的存儲(chǔ)器節(jié)點(diǎn),最低的存儲(chǔ)器親合性加權(quán)系數(shù)對(duì)應(yīng)于與處理器節(jié)點(diǎn)具有最低存儲(chǔ)器親合性評(píng)估的存儲(chǔ)器節(jié)點(diǎn)圖4的方法還包括根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。按照?qǐng)D4的方法根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器包括根據(jù)存儲(chǔ)器親合性的加權(quán)系數(shù)來分配(510)存儲(chǔ)器。在圖4的方法中,根據(jù)存儲(chǔ)器親合性的加權(quán)系數(shù)來分配(510)存儲(chǔ)器包括判定(410)系統(tǒng)中是否存在任何與處理器節(jié)點(diǎn)(即,要為其分配存儲(chǔ)器的處理器節(jié)點(diǎn))具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)。在圖4的實(shí)例中,通過判定表中是否存在用于要向其分配存儲(chǔ)器的特定處理器節(jié)點(diǎn)的已評(píng)估親合性,可以完成判定系統(tǒng)中是否存在任何與處理器節(jié)點(diǎn)具有已評(píng)估的親合性的存儲(chǔ)器節(jié)點(diǎn)。在此實(shí)例中,缺少已評(píng)估的存儲(chǔ)器親合性由表中的空表項(xiàng)來表示。
如果系統(tǒng)中沒有與處理器節(jié)點(diǎn)具有已評(píng)估的親合性的存儲(chǔ)器節(jié)點(diǎn),則圖4的方法包括在不考慮存儲(chǔ)器親合性的情況下分配(414)在系統(tǒng)的任意位置可用的任何空閑存儲(chǔ)器幀。例如,存儲(chǔ)器親合性表(402)中的處理器節(jié)點(diǎn)1沒有與存儲(chǔ)器節(jié)點(diǎn)的已評(píng)估親合性(由列(502)中的空值指示),所以可以從系統(tǒng)存儲(chǔ)器中的任意位置的任何空閑幀向處理器節(jié)點(diǎn)1分配存儲(chǔ)器而不考慮其位置。
如果系統(tǒng)中存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn),則圖4的方法繼之以標(biāo)識(shí)(520)具有最高存儲(chǔ)器親合性加權(quán)系數(shù)(502)的存儲(chǔ)器節(jié)點(diǎn),并且如果該節(jié)點(diǎn)具有未分配的幀,則通過將來自該存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器幀的幀號(hào)(428)存儲(chǔ)(430)在頁表(432)中來從該節(jié)點(diǎn)分配存儲(chǔ)器。如果具有最高存儲(chǔ)器親合性加權(quán)系數(shù)(502)的存儲(chǔ)器節(jié)點(diǎn)沒有未分配的幀,則圖4的方法繼之以從存儲(chǔ)器親合性表(402)移除(525)該節(jié)點(diǎn)的表項(xiàng),并且循環(huán)以再次判定(412)系統(tǒng)中是否存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn),標(biāo)識(shí)(520)具有最高存儲(chǔ)器親合性加權(quán)系數(shù)(502)的存儲(chǔ)器節(jié)點(diǎn)等。
可以從具有最高存儲(chǔ)器親合性加權(quán)系數(shù)(502)的節(jié)點(diǎn)的幀表(424)來判定(422)該節(jié)點(diǎn)是否具有未分配的幀。圖4的幀表(424)和圖4的頁表(432)類似于圖3的幀表和頁表。在圖4中,幀表(424)被表示為將分配標(biāo)志(426)與存儲(chǔ)器節(jié)點(diǎn)中的幀的幀號(hào)(428)相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。圖4的頁表(432)被表示為將存儲(chǔ)器節(jié)點(diǎn)中的幀的幀號(hào)(434)與虛擬存儲(chǔ)器空間中的頁號(hào)(436)相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。根據(jù)圖4的方法,如箭頭(440)所示,幀號(hào)‘1593’表示已將來自具有最高存儲(chǔ)器親合性加權(quán)系數(shù)(502)的存儲(chǔ)器節(jié)點(diǎn)的幀分配給頁表(432)中的頁號(hào)‘1348’。
為了進(jìn)一步說明,圖5是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖,所述方法包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。通過根據(jù)系統(tǒng)參數(shù)來計(jì)算每個(gè)處理器節(jié)點(diǎn)和與處理器節(jié)點(diǎn)具有已評(píng)估存儲(chǔ)器親合性的存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502),并且將存儲(chǔ)器親合性加權(quán)系數(shù)(502)存儲(chǔ)在存儲(chǔ)器親合性表(402)中,可以完成根據(jù)圖5的方法的評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性。每個(gè)記錄都指定了存儲(chǔ)器節(jié)點(diǎn)(404)與處理器節(jié)點(diǎn)(403)的存儲(chǔ)器親合性的評(píng)估(502)。存儲(chǔ)器親合性表(402)中的存儲(chǔ)器親合性評(píng)估(502)是指示要分配的存儲(chǔ)器總量的比例的存儲(chǔ)器親合性加權(quán)系數(shù)。
圖5的方法還包括根據(jù)存儲(chǔ)器親合性評(píng)估,即根據(jù)存儲(chǔ)器親合性的加權(quán)系數(shù)(502)來分配(410)存儲(chǔ)器。按照?qǐng)D5的方法根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器包括按照要分配的存儲(chǔ)器總量的比例來從節(jié)點(diǎn)分配(610)存儲(chǔ)器。通過按照要分配給處理器節(jié)點(diǎn)的存儲(chǔ)器總量的比例來從節(jié)點(diǎn)分配存儲(chǔ)器,可以完成按照要分配的存儲(chǔ)器總量的比例來從節(jié)點(diǎn)分配(610)存儲(chǔ)器。可以將要分配的存儲(chǔ)器總量標(biāo)識(shí)為要分配的存儲(chǔ)器的預(yù)定量,例如,下一個(gè)要分配的5兆字節(jié)。
根據(jù)圖5的方法的按照要分配的存儲(chǔ)器總量的比例來從節(jié)點(diǎn)分配(610)存儲(chǔ)器包括從節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)來計(jì)算(612)要分配的存儲(chǔ)器總量的比例(624)。存儲(chǔ)器節(jié)點(diǎn)要從與處理器具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)分配給處理器節(jié)點(diǎn)的存儲(chǔ)器總量的比例(610)可以按以下方法來計(jì)算要分配的存儲(chǔ)器總量乘以存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性的加權(quán)系數(shù)(502)的值與相對(duì)于處理器節(jié)點(diǎn)具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)的所有存儲(chǔ)器親合性加權(quán)系數(shù)(502)的總值的比率。
對(duì)于表(402)中的處理器節(jié)點(diǎn)0,與處理器節(jié)點(diǎn)0具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)(即,存儲(chǔ)器節(jié)點(diǎn)0、1和2)的所有存儲(chǔ)器親合性加權(quán)系數(shù)的總和為1.5。使用圖5的實(shí)例中的5兆字節(jié)的要分配的存儲(chǔ)器總量,可以如下分別計(jì)算要從與存儲(chǔ)器節(jié)點(diǎn)0、1和2關(guān)聯(lián)的節(jié)點(diǎn)的存儲(chǔ)器分配的存儲(chǔ)器總量的比例(624)·節(jié)點(diǎn)0(0.75節(jié)點(diǎn)0的已評(píng)估存儲(chǔ)器親合性)÷(1.5總的已評(píng)估存儲(chǔ)器親合性)×5MB=2.5MB
·節(jié)點(diǎn)1(0.60節(jié)點(diǎn)1的已評(píng)估存儲(chǔ)器親合性)÷(1.5總的已評(píng)估存儲(chǔ)器親合性)×5MB=2.0MB·節(jié)點(diǎn)2(0.15節(jié)點(diǎn)0的已評(píng)估存儲(chǔ)器親合性)÷(1.5總的已評(píng)估存儲(chǔ)器親合性)×5MB=0.5MB在此實(shí)例中,根據(jù)圖5的方法的按照要分配的5MB的存儲(chǔ)器總量的比例從節(jié)點(diǎn)分配(610)存儲(chǔ)器可以通過將下一個(gè)5MB分配給節(jié)點(diǎn)0(通過從節(jié)點(diǎn)0分配5MB分配量的最初2.5MB,從節(jié)點(diǎn)1分配下一個(gè)2.0MB,以及從節(jié)點(diǎn)2分配5MB分配量的最后0.5MB)來完成。所有這些分配都根據(jù)存儲(chǔ)器節(jié)點(diǎn)中的幀的可用性。具體地說,在圖5的實(shí)例中,按照要分配的存儲(chǔ)器總量的比例從節(jié)點(diǎn)分配(610)存儲(chǔ)器還包括根據(jù)幀的可用性從節(jié)點(diǎn)上的存儲(chǔ)器分配(630)要分配的存儲(chǔ)器總量的已計(jì)算的比例(624)??梢酝ㄟ^使用幀表(424)來判定存儲(chǔ)器節(jié)點(diǎn)上是否存在未分配的幀。幀表(424)將存儲(chǔ)器節(jié)點(diǎn)中的幀的幀號(hào)(428)與指示是否分配了存儲(chǔ)器幀的分配標(biāo)志(426)相關(guān)聯(lián)。
根據(jù)圖5的方法的分配(630)存儲(chǔ)器總量的已計(jì)算的比例(624)可以包括計(jì)算分配要分配的存儲(chǔ)器總量的已計(jì)算的比例(624)所需的幀數(shù)。計(jì)算所需的幀數(shù)可以通過將幀的大小分為要分配的存儲(chǔ)器總量的比例(624)來完成。繼續(xù)以上實(shí)例的計(jì)算,其中與處理器節(jié)點(diǎn)0具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)的所有存儲(chǔ)器親合性加權(quán)系數(shù)的總和為1.5,要分配的存儲(chǔ)器總量為5兆字節(jié),要從節(jié)點(diǎn)0、1和2分配的存儲(chǔ)器總量的比例分別為2.5MB、2.0MB和0.5MB,并且?guī)笮?KB,則按照下面的方法計(jì)算要從節(jié)點(diǎn)0、1和2分配的幀數(shù)·節(jié)點(diǎn)02.5MB÷2KB/幀=1280幀·節(jié)點(diǎn)12.0MB÷2KB/幀=1024幀·節(jié)點(diǎn)20.5MB÷2KB/幀=256幀根據(jù)圖5的方法的分配(630)存儲(chǔ)器總量的已計(jì)算的比例(624)還可以通過以下步驟來完成對(duì)于在處理器節(jié)點(diǎn)上執(zhí)行的程序,將來自存儲(chǔ)器節(jié)點(diǎn)的所有未分配幀的幀號(hào)(428)(最高到從存儲(chǔ)器節(jié)點(diǎn)分配要分配的存儲(chǔ)器總量的已計(jì)算的比例(624)所需的幀數(shù)并且包括該幀數(shù))存儲(chǔ)在頁表(432)中。圖5的頁表(432)的每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)上的幀的幀號(hào)(434)與處理器節(jié)點(diǎn)上執(zhí)行的程序所使用的虛擬存儲(chǔ)器空間中的頁號(hào)(436)相關(guān)聯(lián)。因此,在圖5的實(shí)例中,如箭頭(440)所示,幀號(hào)‘1593’表示已將來自具有最高存儲(chǔ)器親合性加權(quán)系數(shù)(502)的存儲(chǔ)器節(jié)點(diǎn)的幀分配給頁表(432)中的頁號(hào)‘1348’。
在已分配要從存儲(chǔ)器節(jié)點(diǎn)分配要分配的存儲(chǔ)器總量的比例(624)所需的幀數(shù)之后,或從存儲(chǔ)器節(jié)點(diǎn)分配所有未分配的幀之后(無論哪一個(gè)在前),圖5的方法繼續(xù)(632)以循環(huán)到存儲(chǔ)器親合性表(402)中與存儲(chǔ)器節(jié)點(diǎn)關(guān)聯(lián)的下一個(gè)表項(xiàng),并且再次從節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)來計(jì)算(612)要分配的存儲(chǔ)器總量的比例,根據(jù)幀的可用性來分配(630)要從節(jié)點(diǎn)上的存儲(chǔ)器分配的存儲(chǔ)器總量的已計(jì)算的比例(624)等,直到根據(jù)幀的可用性,為與處理器節(jié)點(diǎn)(將為其分配一定數(shù)量的存儲(chǔ)器)具有已評(píng)估存儲(chǔ)器親合性(502)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)分配了要分配的存儲(chǔ)器總量的比例(624)發(fā)生為止。在根據(jù)幀的可用性,按照?qǐng)D5的方法為與處理器節(jié)點(diǎn)(將為其分配一定數(shù)量的存儲(chǔ)器)具有已評(píng)估存儲(chǔ)器親合性(502)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)分配要分配的存儲(chǔ)器總量的比例(624)時(shí),分配總量中任何未分配的部分都可以來自系統(tǒng)上任何位置的存儲(chǔ)器而不考慮存儲(chǔ)器親合性。
為了進(jìn)一步說明,圖6是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖,該方法包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。通過根據(jù)系統(tǒng)參數(shù)為每個(gè)處理器節(jié)點(diǎn)計(jì)算每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502),并且將存儲(chǔ)器親合性加權(quán)系數(shù)(502)存儲(chǔ)在存儲(chǔ)器親合性表(402)中,可以完成根據(jù)圖6的方法的評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性。存儲(chǔ)器親合性表(402)的每個(gè)記錄都指定了存儲(chǔ)器節(jié)點(diǎn)(404)與處理器節(jié)點(diǎn)(403)的存儲(chǔ)器親合性的評(píng)估(502)。存儲(chǔ)器親合性表(402)中的存儲(chǔ)器親合性評(píng)估(502)是指示要從存儲(chǔ)器節(jié)點(diǎn)分配給處理器節(jié)點(diǎn)的存儲(chǔ)器分配總數(shù)的比例的存儲(chǔ)器親合性加權(quán)系數(shù)(502)。
圖6的方法還包括根據(jù)存儲(chǔ)器親合性評(píng)估,即根據(jù)存儲(chǔ)器親合性的加權(quán)系數(shù)(502)來分配(410)存儲(chǔ)器。按照?qǐng)D6的方法根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器包括按照存儲(chǔ)器分配總數(shù)的比例來從節(jié)點(diǎn)分配(710)存儲(chǔ)器。通過按照到處理器節(jié)點(diǎn)的存儲(chǔ)器分配總數(shù)的比例來從節(jié)點(diǎn)分配存儲(chǔ)器,可以完成按照存儲(chǔ)器分配總數(shù)的比例來從節(jié)點(diǎn)分配(710)存儲(chǔ)器。在圖6中,可以將存儲(chǔ)器分配總數(shù)標(biāo)識(shí)為預(yù)定的存儲(chǔ)器分配數(shù),例如,到處理器節(jié)點(diǎn)的下一個(gè)500次存儲(chǔ)器分配。
根據(jù)圖6的方法的按照存儲(chǔ)器分配總數(shù)的比例從節(jié)點(diǎn)分配(710)存儲(chǔ)器包括從節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)來計(jì)算(712)存儲(chǔ)器分配總數(shù)的比例(724)。存儲(chǔ)器節(jié)點(diǎn)要從與處理器具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)分配給處理器節(jié)點(diǎn)的存儲(chǔ)器分配總數(shù)的比例(724)可以按照以下方法來計(jì)算將存儲(chǔ)器分配的總數(shù)乘以存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)的值與相對(duì)于處理器節(jié)點(diǎn)具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)的所有存儲(chǔ)器親合性加權(quán)系數(shù)(502)的總值的比率。
對(duì)于表(402)中的處理器節(jié)點(diǎn)0,與處理器節(jié)點(diǎn)0具有已評(píng)估親合性的存儲(chǔ)器節(jié)點(diǎn)(即,存儲(chǔ)器節(jié)點(diǎn)0、1和2)的所有親合性加權(quán)系數(shù)的總和為1.5。使用圖6的實(shí)例中的500次分配的存儲(chǔ)器分配總數(shù),可以如下分別計(jì)算從存儲(chǔ)器節(jié)點(diǎn)0、1和2到處理器節(jié)點(diǎn)的存儲(chǔ)器分配總數(shù)的比例(724)·節(jié)點(diǎn)0(0.75節(jié)點(diǎn)0的已評(píng)估存儲(chǔ)器親合性)÷(1.5總的已評(píng)估存儲(chǔ)器親合性)×500次分配=250次分配·節(jié)點(diǎn)1(0.60節(jié)點(diǎn)1的已評(píng)估存儲(chǔ)器親合性)÷(1.5總的已評(píng)估存儲(chǔ)器親合性)×500次分配=200次分配·節(jié)點(diǎn)2(0.15節(jié)點(diǎn)0的已評(píng)估存儲(chǔ)器親合性)÷(1.5總的已評(píng)估存儲(chǔ)器親合性)×500次分配=50次分配在此實(shí)例中,根據(jù)圖6的方法的按照500次存儲(chǔ)器分配總數(shù)的比例從節(jié)點(diǎn)分配(710)存儲(chǔ)器可以通過將下一個(gè)500次分配分配給節(jié)點(diǎn)0(通過從節(jié)點(diǎn)0分配500次分配的最初250次,從節(jié)點(diǎn)1分配下一個(gè)200次,以及從節(jié)點(diǎn)2分配500次的最后50次)來完成。所有這些分配都根據(jù)存儲(chǔ)器節(jié)點(diǎn)中的幀的可用性,并且所有這些分配都在不考慮已分配的存儲(chǔ)器量的情況下實(shí)現(xiàn)。具體地說,在圖6的實(shí)例中,按照存儲(chǔ)器分配總數(shù)的比例從節(jié)點(diǎn)分配(710)存儲(chǔ)器還包括根據(jù)幀的可用性從節(jié)點(diǎn)上的存儲(chǔ)器分配(730)存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724)。可以通過使用幀表(424)來判定存儲(chǔ)器節(jié)點(diǎn)上是否存在未分配的幀。幀表(424)將存儲(chǔ)器節(jié)點(diǎn)中的幀的幀號(hào)(428)與指示是否分配了存儲(chǔ)器幀的分配標(biāo)志(426)相關(guān)聯(lián)。
根據(jù)圖6的方法的分配(730)存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724)還可以通過以下步驟來完成對(duì)于在處理器節(jié)點(diǎn)上執(zhí)行的程序,將來自存儲(chǔ)器節(jié)點(diǎn)的所有未分配幀的幀號(hào)(428)(最高到并且包括存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724))存儲(chǔ)在頁表(432)中。圖6的頁表(432)的每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)上的幀的幀號(hào)(434)與處理器節(jié)點(diǎn)上執(zhí)行的程序所使用的虛擬存儲(chǔ)器空間中的頁號(hào)(436)相關(guān)聯(lián)。因此,在圖6的實(shí)例中,如箭頭(440)所示,幀號(hào)‘1593’表示已將來自具有到處理器節(jié)點(diǎn)的已評(píng)估存儲(chǔ)器親合性(此處為加權(quán)的存儲(chǔ)器親合性)的存儲(chǔ)器節(jié)點(diǎn)的幀分配給頁表(432)中的頁號(hào)‘1348’。
在從存儲(chǔ)器節(jié)點(diǎn)分配存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724)后,或從存儲(chǔ)器節(jié)點(diǎn)分配所有未分配的幀之后(無論哪一個(gè)在前),圖6的方法繼續(xù)(732)以循環(huán)到存儲(chǔ)器親合性表(402)中與存儲(chǔ)器節(jié)點(diǎn)關(guān)聯(lián)的下一個(gè)表項(xiàng),并且再次從節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)來計(jì)算(712)存儲(chǔ)器分配總數(shù)的比例(724),根據(jù)幀的可用性來從節(jié)點(diǎn)上的存儲(chǔ)器分配(730)存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724)等,直到根據(jù)幀的可用性,為與處理器節(jié)點(diǎn)(將為其分配存儲(chǔ)器)具有已評(píng)估存儲(chǔ)器親合性(502)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)分配了存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724)發(fā)生為止。在根據(jù)幀的可用性,按照?qǐng)D6的方法為與處理器節(jié)點(diǎn)(將為其分配存儲(chǔ)器)具有已評(píng)估存儲(chǔ)器親合性(502)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)分配存儲(chǔ)器分配總數(shù)的已計(jì)算的比例(724)時(shí),分配總數(shù)中任何未分配的部分都可以來自系統(tǒng)上任何位置的存儲(chǔ)器而不考慮存儲(chǔ)器親合性。
為了進(jìn)一步說明,圖7是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖,該方法包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。根據(jù)圖7的方法的評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性包括根據(jù)節(jié)點(diǎn)之間的存儲(chǔ)器可用性來評(píng)估(800)存儲(chǔ)器親合性。
在圖7的方法中,根據(jù)節(jié)點(diǎn)之間的存儲(chǔ)器可用性來評(píng)估(800)存儲(chǔ)器親合性包括確定(804)每個(gè)存儲(chǔ)器節(jié)點(diǎn)的未分配的幀數(shù)??梢詮膸?424)來確定每個(gè)存儲(chǔ)器節(jié)點(diǎn)的未分配的幀數(shù)。在圖7的方法中,幀表(424)被表示為將存儲(chǔ)器節(jié)點(diǎn)中的幀的幀號(hào)(428)與指示是否分配了存儲(chǔ)器幀的分配標(biāo)志(426)相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。根據(jù)圖7的方法的確定(804)每個(gè)存儲(chǔ)器節(jié)點(diǎn)的未分配的幀數(shù)可以通過以下步驟來完成對(duì)位于每個(gè)存儲(chǔ)器節(jié)點(diǎn)中的未分配幀的數(shù)量進(jìn)行計(jì)數(shù)并將每個(gè)存儲(chǔ)器節(jié)點(diǎn)的未分配幀的總數(shù)存儲(chǔ)在未分配幀總數(shù)表(806)中。在某些實(shí)施例中,操作系統(tǒng)可以以空閑幀列表的形式為每個(gè)存儲(chǔ)器節(jié)點(diǎn)維護(hù)幀表(424)。在這些實(shí)施例中,確定(804)每個(gè)存儲(chǔ)器節(jié)點(diǎn)的未分配幀的數(shù)量可以通過以下步驟來完成對(duì)每個(gè)存儲(chǔ)器節(jié)點(diǎn)的空閑幀列表中的表項(xiàng)數(shù)進(jìn)行計(jì)數(shù)并將每個(gè)存儲(chǔ)器節(jié)點(diǎn)的未分配幀的總數(shù)存儲(chǔ)在未分配幀總數(shù)表(如標(biāo)號(hào)(806)處示出的表)中。
圖7的未分配幀總數(shù)表(806)存儲(chǔ)了系統(tǒng)的每個(gè)節(jié)點(diǎn)上安裝的存儲(chǔ)器中的未分配幀的數(shù)量。未分配幀總數(shù)表(806)的每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)(404)與未分配幀總數(shù)(808)相關(guān)聯(lián)。
按照?qǐng)D7的方法的根據(jù)節(jié)點(diǎn)之間的存儲(chǔ)器可用性來評(píng)估(800)存儲(chǔ)器親合性還包括根據(jù)以下公式1來計(jì)算(810)處理器節(jié)點(diǎn)與存儲(chǔ)器節(jié)點(diǎn)之間的存儲(chǔ)器親合性的加權(quán)系數(shù)(502)公式1Ai=FiΣn=0N-1Fn]]>其中Ai是處理器節(jié)點(diǎn)與第i個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502),F(xiàn)i是第i個(gè)存儲(chǔ)器節(jié)點(diǎn)上的未分配幀的數(shù)量,N是系統(tǒng)中的存儲(chǔ)器節(jié)點(diǎn)數(shù),公式1的分母是所有存儲(chǔ)器節(jié)點(diǎn)上的所有未分配幀的總數(shù)。例如,對(duì)于存儲(chǔ)器親合性表(402)中的處理器節(jié)點(diǎn)0和存儲(chǔ)器節(jié)點(diǎn)0,可以根據(jù)公式1來計(jì)算存儲(chǔ)器親合性加權(quán)系數(shù)Ai,其中從表(806)獲得的第i個(gè)存儲(chǔ)器節(jié)點(diǎn)上的未分配幀數(shù)Fi為100,存儲(chǔ)器節(jié)點(diǎn)數(shù)N為3,從表(806)的列(808)相加的所有存儲(chǔ)器節(jié)點(diǎn)上的所有未分配幀的總數(shù)為200,計(jì)算出的Ai為0.5=100÷200。
在圖7的方法中,存儲(chǔ)器親合性的評(píng)估(502)是存儲(chǔ)器親合性加權(quán)系數(shù)(502),但是這些存儲(chǔ)器親合性加權(quán)系數(shù)(502)僅用于示例性目的。實(shí)際上,圖7的存儲(chǔ)器親合性的評(píng)估(502)還可以被表示為指示其中操作系統(tǒng)將存儲(chǔ)器從存儲(chǔ)器節(jié)點(diǎn)分配給處理器節(jié)點(diǎn)的順序和本領(lǐng)域的技術(shù)人員所想到的其他方式的存儲(chǔ)器親合性等級(jí)。
在圖7的方法中,計(jì)算(810)存儲(chǔ)器親合性加權(quán)系數(shù)(502)可以包括將每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)存儲(chǔ)在存儲(chǔ)器親合性表(402)中。存儲(chǔ)器親合性表(402)的每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)(404)的存儲(chǔ)器親合性評(píng)估(502)與處理器節(jié)點(diǎn)(403)相關(guān)聯(lián)。
圖7的方法還包括根據(jù)存儲(chǔ)器親合性的評(píng)估來分配(410)存儲(chǔ)器。如以上在本說明書中詳細(xì)描述的,根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器可以通過以下步驟來完成判定系統(tǒng)中是否存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的任何存儲(chǔ)器節(jié)點(diǎn),標(biāo)識(shí)具有最高存儲(chǔ)器親合性等級(jí)的存儲(chǔ)器節(jié)點(diǎn),以及判定具有最高存儲(chǔ)器親合性等級(jí)的節(jié)點(diǎn)是否具有未分配的幀等。
為了進(jìn)一步說明,圖8是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖,該方法包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。根據(jù)圖8的方法的評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性包括根據(jù)位于節(jié)點(diǎn)上的總系統(tǒng)存儲(chǔ)器的比例來評(píng)估(900)該節(jié)點(diǎn)的存儲(chǔ)器親合性??傁到y(tǒng)存儲(chǔ)器表示系統(tǒng)的存儲(chǔ)器節(jié)點(diǎn)上安裝的隨機(jī)存取存儲(chǔ)器的總量。
在圖8的方法中,根據(jù)位于節(jié)點(diǎn)上的總系統(tǒng)存儲(chǔ)器的比例來評(píng)估(900)該節(jié)點(diǎn)的存儲(chǔ)器親合性包括確定(902)每個(gè)存儲(chǔ)器節(jié)點(diǎn)上安裝的存儲(chǔ)器量。根據(jù)圖8的方法的確定(902)每個(gè)存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量可以通過讀取安裝存儲(chǔ)器節(jié)點(diǎn)時(shí)系統(tǒng)管理員輸入的包含存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量(912)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)的系統(tǒng)參數(shù)來完成。在其他實(shí)施例中,確定(902)每個(gè)存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量可以通過在初始啟動(dòng)系統(tǒng)期間(即,當(dāng)系統(tǒng)‘引導(dǎo)’時(shí))對(duì)存儲(chǔ)器進(jìn)行計(jì)數(shù)來完成。
在圖8的方法中,確定(902)每個(gè)存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量可以包括將每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器量(912)存儲(chǔ)在總存儲(chǔ)器表(904)中。圖8的總存儲(chǔ)器表(904)的每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)(404)與表(904)中標(biāo)識(shí)的每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器量(912)相關(guān)聯(lián)。
根據(jù)圖8的方法,根據(jù)位于節(jié)點(diǎn)上的總系統(tǒng)存儲(chǔ)器的比例來評(píng)估(900)該節(jié)點(diǎn)的存儲(chǔ)器親合性還包括根據(jù)下面的公式2來計(jì)算(906)系統(tǒng)上安裝的處理器節(jié)點(diǎn)與存儲(chǔ)器節(jié)點(diǎn)之間的存儲(chǔ)器親合性加權(quán)系數(shù)(502)公式2Ai=MiΣn=0N-1Mn]]>其中Ai為處理器節(jié)點(diǎn)與第i個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502),Mi為第i個(gè)存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量,N為系統(tǒng)中的存儲(chǔ)器節(jié)點(diǎn)數(shù),公式2的分母為所有存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器總量。例如,對(duì)于存儲(chǔ)器親合性表(402)中的處理器節(jié)點(diǎn)0和存儲(chǔ)器節(jié)點(diǎn)0,可以根據(jù)公式2來計(jì)算存儲(chǔ)器親合性加權(quán)系數(shù)Ai,其中從表(904)獲得的第i個(gè)存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器量Mi為500MB,存儲(chǔ)器節(jié)點(diǎn)數(shù)N為3,從表(904)的列(912)相加的所有存儲(chǔ)器節(jié)點(diǎn)上的存儲(chǔ)器總量為1000MB,計(jì)算出Ai為0.50=500÷1000。
在圖8的方法中,計(jì)算(906)存儲(chǔ)器親合性加權(quán)系數(shù)(502)可以例如在系統(tǒng)上電期間或在早期引導(dǎo)階段完成,并且可以包括將每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性加權(quán)系數(shù)(502)存儲(chǔ)在存儲(chǔ)器親合性表(如在圖8的標(biāo)號(hào)(402)處所示的表)中。存儲(chǔ)器親合性表(402)的每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)(404)的存儲(chǔ)器親合性評(píng)估(502)與處理器節(jié)點(diǎn)(403)相關(guān)聯(lián)。
圖8的方法還包括根據(jù)存儲(chǔ)器親合性的評(píng)估來分配(410)存儲(chǔ)器。如以上在本說明書中詳細(xì)描述的,根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器可以通過以下步驟來完成判定系統(tǒng)中是否存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的任何存儲(chǔ)器節(jié)點(diǎn),標(biāo)識(shí)具有最高存儲(chǔ)器親合性等級(jí)的存儲(chǔ)器節(jié)點(diǎn),以及判定具有最高存儲(chǔ)器親合性等級(jí)的節(jié)點(diǎn)是否具有未分配的幀等。
為了進(jìn)一步說明,圖9是示出根據(jù)本發(fā)明的實(shí)施例的用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的另一個(gè)示例性方法的流程圖,該方法包括評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器。根據(jù)圖9的方法的評(píng)估(400)節(jié)點(diǎn)之間的存儲(chǔ)器親合性包括根據(jù)節(jié)點(diǎn)上的存儲(chǔ)器的比例(1006)和節(jié)點(diǎn)上的處理器能力的比例(1008)來評(píng)估(1000)存儲(chǔ)器親合性。可以通過存儲(chǔ)器節(jié)點(diǎn)上安裝的存儲(chǔ)器量與系統(tǒng)存儲(chǔ)器總量的比來表示每個(gè)節(jié)點(diǎn)的存儲(chǔ)器的比例(1006)??梢酝ㄟ^處理器節(jié)點(diǎn)上的處理器能力與系統(tǒng)中所有處理器節(jié)點(diǎn)的處理器總能力的總量的比來表示每個(gè)節(jié)點(diǎn)上的處理器能力的比例(1008)。在圖9中,每個(gè)節(jié)點(diǎn)的存儲(chǔ)器的比例(1006)和每個(gè)節(jié)點(diǎn)的處理器能力的比例(1008)可以從安裝系統(tǒng)時(shí)由系統(tǒng)管理員輸入的系統(tǒng)參數(shù)來獲得。
圖9的實(shí)例中的節(jié)點(diǎn)處理器-存儲(chǔ)器配置(1002)是將存儲(chǔ)器的比例(1006)和處理器能力的比例(1008)與節(jié)點(diǎn)標(biāo)識(shí)符(1004)相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)(在此實(shí)例中是表)。在此實(shí)例中,節(jié)點(diǎn)0包含50%的總系統(tǒng)存儲(chǔ)器和50%的系統(tǒng)處理器能力,節(jié)點(diǎn)1包含5%的總系統(tǒng)存儲(chǔ)器和45%的系統(tǒng)處理器能力,節(jié)點(diǎn)2包含45%的總系統(tǒng)存儲(chǔ)器但是沒有安裝在節(jié)點(diǎn)上的處理器,節(jié)點(diǎn)3沒有安裝在其上的存儲(chǔ)器并且包含5%的系統(tǒng)處理器能力。
在圖9的方法中,根據(jù)節(jié)點(diǎn)上的存儲(chǔ)器的比例(1006)和節(jié)點(diǎn)上的處理器能力的比例(1008)來評(píng)估(1000)存儲(chǔ)器親合性包括計(jì)算(1010)節(jié)點(diǎn)的處理器-存儲(chǔ)器比。根據(jù)圖9的方法的計(jì)算(1010)節(jié)點(diǎn)的處理器-存儲(chǔ)器比可以通過以下步驟來完成將節(jié)點(diǎn)上的處理器能力的比例(1008)除以節(jié)點(diǎn)上安裝的存儲(chǔ)器的比例(1006),并將結(jié)果(1016)存儲(chǔ)在處理器-存儲(chǔ)器比率表(1012)中。
圖9的處理器-存儲(chǔ)器比率表(1012)將節(jié)點(diǎn)標(biāo)識(shí)符(1004)與處理器-存儲(chǔ)器比率(1016)相關(guān)聯(lián)。在圖9中,為‘1’的處理器-存儲(chǔ)器比率(1016)指示節(jié)點(diǎn)相對(duì)于整個(gè)系統(tǒng)包含相等比例的處理器能力和存儲(chǔ)器。處理器-存儲(chǔ)器比率(1016)大于‘1’指示節(jié)點(diǎn)相對(duì)于整個(gè)系統(tǒng)包含的處理器能力的比例大于存儲(chǔ)器的比例,而處理器-存儲(chǔ)器比率(1016)小于‘1’指示節(jié)點(diǎn)相對(duì)于整個(gè)系統(tǒng)包含的處理器能力的比例小于存儲(chǔ)器的比例。在圖9中,處理器-存儲(chǔ)器比率(1016)為‘0’指示節(jié)點(diǎn)上沒有安裝處理器,而處理器-存儲(chǔ)器比率(1016)為‘NULL’指示節(jié)點(diǎn)上沒有安裝存儲(chǔ)器。例如,對(duì)于其上未安裝存儲(chǔ)器的節(jié)點(diǎn)3,將節(jié)點(diǎn)上的處理器能力的比例(1008)除以節(jié)點(diǎn)上安裝的存儲(chǔ)器的比例(1006)將會(huì)除零,這由表(1012)中的節(jié)點(diǎn)3的NULL表項(xiàng)來指示。NULL表項(xiàng)是適當(dāng)?shù)?;在處理器?jié)點(diǎn)與其上沒有存儲(chǔ)器的其他節(jié)點(diǎn)之間,沒有用于存儲(chǔ)器分配目的的有用的存儲(chǔ)器親合性。
根據(jù)圖9的方法,根據(jù)節(jié)點(diǎn)上的存儲(chǔ)器的比例(1006)和節(jié)點(diǎn)上的處理器能力的比例(1008)來評(píng)估(1000)存儲(chǔ)器親合性還包括使用存儲(chǔ)器-處理器比率來確定(1020)每個(gè)處理器節(jié)點(diǎn)對(duì)每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)。使用存儲(chǔ)器-處理器比率來確定(1020)每個(gè)處理器節(jié)點(diǎn)對(duì)每個(gè)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)可以包括將處理器節(jié)點(diǎn)對(duì)存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)存儲(chǔ)在存儲(chǔ)器親合性表(402)中。每個(gè)記錄都將存儲(chǔ)器節(jié)點(diǎn)(404)的存儲(chǔ)器親合性評(píng)估(406)與處理器節(jié)點(diǎn)(403)相關(guān)聯(lián)。存儲(chǔ)器親合性表(402)中的存儲(chǔ)器親合性評(píng)估是序數(shù)存儲(chǔ)器親合性等級(jí)(406),其指示了操作系統(tǒng)將存儲(chǔ)器從表中標(biāo)識(shí)的存儲(chǔ)器節(jié)點(diǎn)(404)分配給處理器節(jié)點(diǎn)(403)的順序。
存儲(chǔ)器親合性是在存儲(chǔ)器節(jié)點(diǎn)與處理器節(jié)點(diǎn)之間,而不是在存儲(chǔ)器節(jié)點(diǎn)與其他存儲(chǔ)器節(jié)點(diǎn)之間。節(jié)點(diǎn)具有為0的處理器-存儲(chǔ)器比率(1016)意味著節(jié)點(diǎn)不包含處理器,僅包含存儲(chǔ)器并且因此在該節(jié)點(diǎn)與任何其他包含存儲(chǔ)器的節(jié)點(diǎn)之間,沒有用于存儲(chǔ)器分配目的的有用的存儲(chǔ)器親合性。為了良好的順序以及完整性,表(402)仍然將每個(gè)此類處理器的表項(xiàng)包含在其‘處理器節(jié)點(diǎn)’列(403)中,盡管此類節(jié)點(diǎn)實(shí)質(zhì)上已不是‘處理器節(jié)點(diǎn)’。因此,在圖9的方法中,對(duì)于節(jié)點(diǎn)2(具有為‘0’的處理器-存儲(chǔ)器比率(1060)的處理器節(jié)點(diǎn)),確定(1020)該節(jié)點(diǎn)與其他存儲(chǔ)器節(jié)點(diǎn)之間的存儲(chǔ)器親合性等級(jí)可以通過將‘NULL’存儲(chǔ)為此類節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406)來完成。例如,在圖9中,將NULL存儲(chǔ)在處理器節(jié)點(diǎn)2(不包含處理器的‘處理器節(jié)點(diǎn)’)的所有存儲(chǔ)器親合性等級(jí)(406)中。
節(jié)點(diǎn)具有的處理器-存儲(chǔ)器比率等于或小于1指示該節(jié)點(diǎn)的資源通常是相當(dāng)平衡的。可以合理地期望具有系統(tǒng)的一半處理能力和一半存儲(chǔ)器的節(jié)點(diǎn)能夠使用來自同一節(jié)點(diǎn)的存儲(chǔ)器來滿足所有其存儲(chǔ)器要求。因此,在圖9的方法中,對(duì)于節(jié)點(diǎn)0(處理器-存儲(chǔ)器比率(1060)小于或等于‘1’的處理器節(jié)點(diǎn)),使用存儲(chǔ)器-處理器比率來確定(1020)存儲(chǔ)器親合性還可以通過為表示同一節(jié)點(diǎn)的存儲(chǔ)器節(jié)點(diǎn)(404)將‘1’存儲(chǔ)在此類處理器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406)中以及將‘NULL’存儲(chǔ)在與所述處理器節(jié)點(diǎn)關(guān)聯(lián)的其他存儲(chǔ)器親合性等級(jí)(406)中來完成。在這種情況下,存儲(chǔ)器親合性等級(jí)為‘1’指示最高的存儲(chǔ)器親合性,‘2’指示較小的存儲(chǔ)器親合性,‘3’指示更小的存儲(chǔ)器親合性等。例如,在圖9中,節(jié)點(diǎn)0具有處理器-存儲(chǔ)器比率‘1’,并且為處理器節(jié)點(diǎn)0與存儲(chǔ)器節(jié)點(diǎn)0(同一節(jié)點(diǎn))指定為‘1’的存儲(chǔ)器親合性等級(jí),而將‘NULL’存儲(chǔ)為處理器節(jié)點(diǎn)0的所有其他存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406)。
處理器節(jié)點(diǎn)具有大于1的處理器-存儲(chǔ)器比率意味著該節(jié)點(diǎn)相對(duì)于存儲(chǔ)器具有較多的處理能力;此類節(jié)點(diǎn)很可能需要從其他節(jié)點(diǎn)分配的存儲(chǔ)器。此類節(jié)點(diǎn)的最初存儲(chǔ)器分配可以在節(jié)點(diǎn)具有可用存儲(chǔ)器時(shí)來自其自身,并且當(dāng)存儲(chǔ)器必須來自其他節(jié)點(diǎn)時(shí),從其他節(jié)點(diǎn)分配存儲(chǔ)器可以首選來自具有小于1的處理器-存儲(chǔ)器比率的節(jié)點(diǎn)(即,具有相對(duì)較多存儲(chǔ)器的節(jié)點(diǎn))的存儲(chǔ)器。因此,在圖9的方法中,對(duì)于節(jié)點(diǎn)1(具有大于‘1’的處理器-存儲(chǔ)器比率(1016)的處理器節(jié)點(diǎn)),使用存儲(chǔ)器-處理器比率來確定(1020)存儲(chǔ)器親合性等級(jí)可以通過以下步驟來完成為表示同一節(jié)點(diǎn)的存儲(chǔ)器節(jié)點(diǎn)(404)將值‘1’存儲(chǔ)為此類處理器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406),將不斷增大的序數(shù)存儲(chǔ)為具有小于‘1’的處理器-存儲(chǔ)器比率(1016)的其他存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406),以及為與處理器節(jié)點(diǎn)具有已評(píng)估親合性的其他存儲(chǔ)器節(jié)點(diǎn)將‘NULL’存儲(chǔ)為存儲(chǔ)器親合性等級(jí)(406)。
在此實(shí)例中,低存儲(chǔ)器親合性等級(jí)值表示高存儲(chǔ)器親合性。存儲(chǔ)器親合性等級(jí)值為1表示最高的存儲(chǔ)器親合性,存儲(chǔ)器親合性等級(jí)值為2是較低的存儲(chǔ)器親合性,3是更低的存儲(chǔ)器親合性等。按照具有最低處理器-存儲(chǔ)器比率(1016)的存儲(chǔ)器節(jié)點(diǎn)被評(píng)級(jí)為‘2’,具有第二低的處理器-存儲(chǔ)器比率(1016)的存儲(chǔ)器節(jié)點(diǎn)被評(píng)級(jí)為‘3’等對(duì)大于1的非空存儲(chǔ)器親合性等級(jí)值進(jìn)行排序。例如,在圖9的表(402)中,為存儲(chǔ)器節(jié)點(diǎn)1將‘1’存儲(chǔ)為處理器節(jié)點(diǎn)1的存儲(chǔ)器親合性等級(jí)。為存儲(chǔ)器節(jié)點(diǎn)2將‘2’存儲(chǔ)為處理器節(jié)點(diǎn)1的存儲(chǔ)器親合性等級(jí)。將NULL存儲(chǔ)為處理器節(jié)點(diǎn)1的所有其他存儲(chǔ)器親合性等級(jí)。
處理器節(jié)點(diǎn)具有為空的處理器-存儲(chǔ)器比率意味著該節(jié)點(diǎn)其上沒有安裝存儲(chǔ)器;此類節(jié)點(diǎn)需要從其他節(jié)點(diǎn)分配的存儲(chǔ)器。可以根據(jù)系統(tǒng)中存儲(chǔ)器節(jié)點(diǎn)的處理器-存儲(chǔ)器比率來完成為沒有存儲(chǔ)器的節(jié)點(diǎn)評(píng)估存儲(chǔ)器親合性。例如,就是說,為沒有存儲(chǔ)器的節(jié)點(diǎn)評(píng)估存儲(chǔ)器親合性可以通過將相對(duì)較高的存儲(chǔ)器親合性指派給具有小于1的處理器-存儲(chǔ)器比率的存儲(chǔ)器節(jié)點(diǎn)(即,具有相對(duì)較多存儲(chǔ)器的節(jié)點(diǎn))來完成。
因此,在圖9的方法中,對(duì)于節(jié)點(diǎn)3(處理器-存儲(chǔ)器比率(1016)為NULL的處理器節(jié)點(diǎn)),使用存儲(chǔ)器-處理器比率來確定(1020)存儲(chǔ)器親合性等級(jí)可以通過將不斷增大的序數(shù)存儲(chǔ)為具有小于‘1’的處理器-存儲(chǔ)器比率(1016)的存儲(chǔ)器節(jié)點(diǎn)的存儲(chǔ)器親合性等級(jí)(406),并且為與處理器節(jié)點(diǎn)具有已評(píng)估親合性的其他存儲(chǔ)器節(jié)點(diǎn)將‘NULL’存儲(chǔ)為存儲(chǔ)器親合性等級(jí)(406)來完成。在此實(shí)例中,低存儲(chǔ)器親合性等級(jí)值表示高存儲(chǔ)器親合性。存儲(chǔ)器親合性等級(jí)值為1表示最高的存儲(chǔ)器親合性,存儲(chǔ)器親合性等級(jí)為2是較低的存儲(chǔ)器親合性,存儲(chǔ)器親合性等級(jí)為3是更低的存儲(chǔ)器親合性等。按照具有最低處理器-存儲(chǔ)器比率(1016)的存儲(chǔ)器節(jié)點(diǎn)被評(píng)級(jí)為‘1’,具有第二低的處理器-存儲(chǔ)器比率(1016)的存儲(chǔ)器節(jié)點(diǎn)被評(píng)級(jí)為‘2’等對(duì)非空的存儲(chǔ)器親合性等級(jí)值進(jìn)行排序。例如,在圖9的表(402)中,將‘1’存儲(chǔ)在處理器節(jié)點(diǎn)3和存儲(chǔ)器節(jié)點(diǎn)2的存儲(chǔ)器親合性等級(jí)中。將NULL存儲(chǔ)在處理器節(jié)點(diǎn)3的所有其他存儲(chǔ)器親合性等級(jí)中。
圖9的方法還包括根據(jù)存儲(chǔ)器親合性的評(píng)估來分配(410)存儲(chǔ)器。如以上在本說明書中詳細(xì)描述的,根據(jù)所述評(píng)估來分配(410)存儲(chǔ)器可以通過以下步驟來完成判定系統(tǒng)中是否存在與處理器節(jié)點(diǎn)具有已評(píng)估親合性的任何存儲(chǔ)器節(jié)點(diǎn),標(biāo)識(shí)具有最高存儲(chǔ)器親合性等級(jí)的存儲(chǔ)器節(jié)點(diǎn),以及判定具有最高存儲(chǔ)器親合性等級(jí)的節(jié)點(diǎn)是否具有未分配的幀等。
很大程度上在用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的完整功能計(jì)算機(jī)系統(tǒng)的上下文中描述了本發(fā)明的示例性實(shí)施例。但是,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明還可以包含在布置在用于與任何適合的數(shù)據(jù)處理系統(tǒng)一起使用的信號(hào)承載介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品中。此類信號(hào)承載介質(zhì)可以是用于機(jī)器可讀信息的傳輸介質(zhì)或可記錄介質(zhì),包括磁介質(zhì)、光介質(zhì)或其他適合的介質(zhì)??捎涗浗橘|(zhì)的實(shí)例包括硬盤驅(qū)動(dòng)器中的磁盤或軟盤、用于光學(xué)驅(qū)動(dòng)器的光盤、磁帶以及本領(lǐng)域的技術(shù)人員可想到的其他介質(zhì)。傳輸介質(zhì)的實(shí)例包括用于語音通信的電話網(wǎng)絡(luò)、諸如以太網(wǎng)TM之類的數(shù)字?jǐn)?shù)據(jù)通信網(wǎng)絡(luò)、使用網(wǎng)際協(xié)議通信的網(wǎng)絡(luò)以及萬維網(wǎng)。本領(lǐng)域的技術(shù)人員將立即認(rèn)識(shí)到,任何具有適合的編程裝置的計(jì)算機(jī)系統(tǒng)都將能夠執(zhí)行包含在程序產(chǎn)品中的本發(fā)明的方法的步驟。本領(lǐng)域的技術(shù)人員將立即認(rèn)識(shí)到,雖然在本說明書中描述的某些示例性實(shí)施例面向在計(jì)算機(jī)硬件上安裝和執(zhí)行的軟件,但是作為固件或硬件實(shí)現(xiàn)的替代實(shí)施例也在本發(fā)明的范圍之內(nèi)。
從以上描述可以理解,可以在本發(fā)明的各個(gè)實(shí)施例中做出修改和更改而不偏離本發(fā)明的真正精神。本說明書中的描述只是出于示例目的并且不應(yīng)被理解為進(jìn)行限制。本發(fā)明的范圍僅由以下權(quán)利要求的語言來限制。
權(quán)利要求
1.一種用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的方法,所述方法包括評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性;以及根據(jù)所述評(píng)估來分配存儲(chǔ)器。
2.根據(jù)權(quán)利要求1的方法,其中評(píng)估存儲(chǔ)器親合性還包括向節(jié)點(diǎn)指派存儲(chǔ)器親合性加權(quán)系數(shù),每個(gè)加權(quán)系數(shù)都表示將節(jié)點(diǎn)的存儲(chǔ)器分配給節(jié)點(diǎn)的處理器的需求度;以及分配存儲(chǔ)器還包括根據(jù)所述存儲(chǔ)器親合性加權(quán)系數(shù)來分配存儲(chǔ)器。
3.根據(jù)權(quán)利要求1的方法,其中根據(jù)所述評(píng)估來分配存儲(chǔ)器還包括按照要分配的存儲(chǔ)器總量的比例從節(jié)點(diǎn)分配存儲(chǔ)器。
4.根據(jù)權(quán)利要求1的方法,其中根據(jù)所述評(píng)估來分配存儲(chǔ)器還包括按照存儲(chǔ)器分配總數(shù)的比例從節(jié)點(diǎn)分配存儲(chǔ)器。
5.根據(jù)權(quán)利要求1的方法,其中評(píng)估存儲(chǔ)器親合性還包括根據(jù)所述節(jié)點(diǎn)之間的存儲(chǔ)器可用性來評(píng)估存儲(chǔ)器親合性。
6.根據(jù)權(quán)利要求1的方法,其中評(píng)估存儲(chǔ)器親合性還包括根據(jù)位于節(jié)點(diǎn)上的總系統(tǒng)存儲(chǔ)器的比例來評(píng)估該節(jié)點(diǎn)的存儲(chǔ)器親合性。
7.根據(jù)權(quán)利要求1的方法,其中評(píng)估存儲(chǔ)器親合性還包括根據(jù)所述節(jié)點(diǎn)上的存儲(chǔ)器的比例和所述節(jié)點(diǎn)上的處理器能力的比例來評(píng)估存儲(chǔ)器親合性。
8.一種用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的裝置,所述裝置包括計(jì)算機(jī)處理器和操作地連接到所述計(jì)算機(jī)處理器的計(jì)算機(jī)存儲(chǔ)器,所述計(jì)算機(jī)存儲(chǔ)器其中布置有能夠執(zhí)行以下步驟的計(jì)算機(jī)程序指令評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性;以及根據(jù)所述評(píng)估來分配存儲(chǔ)器。
9.根據(jù)權(quán)利要求8的裝置,其中評(píng)估存儲(chǔ)器親合性還包括向節(jié)點(diǎn)指派存儲(chǔ)器親合性加權(quán)系數(shù),每個(gè)加權(quán)系數(shù)都表示將節(jié)點(diǎn)的存儲(chǔ)器分配給節(jié)點(diǎn)的處理器的需求度;以及分配存儲(chǔ)器還包括根據(jù)所述存儲(chǔ)器親合性加權(quán)系數(shù)來分配存儲(chǔ)器。
10.根據(jù)權(quán)利要求8的裝置,其中根據(jù)所述評(píng)估來分配存儲(chǔ)器還包括按照要分配的存儲(chǔ)器總量的比例從節(jié)點(diǎn)分配存儲(chǔ)器。
11.根據(jù)權(quán)利要求8的裝置,其中根據(jù)所述評(píng)估來分配存儲(chǔ)器還包括按照存儲(chǔ)器分配總數(shù)的比例從節(jié)點(diǎn)分配存儲(chǔ)器。
12.一種用于多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品布置在信號(hào)承載介質(zhì)上,所述計(jì)算機(jī)程序產(chǎn)品包括能夠執(zhí)行根據(jù)權(quán)利要求1-7中的任一權(quán)利要求的方法中的步驟的計(jì)算機(jī)程序指令。
13.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中所述信號(hào)承載介質(zhì)包括可記錄介質(zhì)。
14.根據(jù)權(quán)利要求12的計(jì)算機(jī)程序產(chǎn)品,其中所述信號(hào)承載介質(zhì)包括傳輸介質(zhì)。
全文摘要
本發(fā)明披露了多節(jié)點(diǎn)計(jì)算機(jī)中的存儲(chǔ)器分配,包括評(píng)估節(jié)點(diǎn)之間的存儲(chǔ)器親合性并根據(jù)所述評(píng)估來分配存儲(chǔ)器。評(píng)估存儲(chǔ)器親合性可以包括向節(jié)點(diǎn)指派存儲(chǔ)器親合性加權(quán)系數(shù),其中每個(gè)加權(quán)系數(shù)都表示將節(jié)點(diǎn)的存儲(chǔ)器分配給節(jié)點(diǎn)的處理器的需求度,并且分配存儲(chǔ)器可以包括根據(jù)所述存儲(chǔ)器親合性加權(quán)系數(shù)來分配存儲(chǔ)器。
文檔編號(hào)G06F12/02GK1940891SQ20061010150
公開日2007年4月4日 申請(qǐng)日期2006年7月18日 優(yōu)先權(quán)日2005年9月29日
發(fā)明者K·R·艾倫, K·C·沃森, W·A·布朗, R·K·柯克曼 申請(qǐng)人:國際商業(yè)機(jī)器公司