專利名稱:多處理器數(shù)據(jù)處理系統(tǒng)中對(duì)分區(qū)指派處理器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),具體涉及用于在數(shù)據(jù)處理系統(tǒng)中管理高速緩存的方法和裝置。更具體而言,本發(fā)明涉及用于在邏輯分區(qū)的數(shù)據(jù)處理系統(tǒng)內(nèi)優(yōu)化高速緩存的方法,裝置,和計(jì)算機(jī)指令。
背景技術(shù):
越來越大型的對(duì)稱性多處理器數(shù)據(jù)處理系統(tǒng),如可從IBM公司獲得的IBM eSever P690,可從Hewlett-Packard公司獲得的DHP9000Superdome Enterprise Sever,可從Sun Microsystems公司獲得的Sunfire 15K服務(wù)器,不再是用作單個(gè)大型的數(shù)據(jù)處理系統(tǒng)。而是將這些類型的數(shù)據(jù)處理系統(tǒng)進(jìn)行分區(qū),將其用作更小的系統(tǒng)。這些系統(tǒng)還被稱為邏輯分區(qū)(LPAR)的數(shù)據(jù)處理系統(tǒng)。在數(shù)據(jù)處理系統(tǒng)內(nèi)進(jìn)行邏輯分區(qū)的功能允許在單個(gè)數(shù)據(jù)處理系統(tǒng)平臺(tái)上同時(shí)運(yùn)行單個(gè)操作系統(tǒng)的多個(gè)拷貝或多個(gè)異構(gòu)型操作系統(tǒng)。對(duì)其中運(yùn)行操作系統(tǒng)鏡像的分區(qū)指派平臺(tái)資源的非重疊子集。這些平臺(tái)可分配資源包括一個(gè)或多個(gè)體系結(jié)構(gòu)不同的具有各自中斷管理區(qū)域,系統(tǒng)存儲(chǔ)器區(qū),和輸入/輸出(I/O)適配器總線槽的處理器。分區(qū)的資源由平臺(tái)固件表示至操作系統(tǒng)鏡像。
運(yùn)行在平臺(tái)內(nèi)的每個(gè)不同操作系統(tǒng)或操作系統(tǒng)的鏡像彼此之間受到保護(hù),以使在一個(gè)邏輯分區(qū)上的軟件錯(cuò)誤不會(huì)影響任何其他分區(qū)的正確操作。該保護(hù)是通過分配所要由各操作系統(tǒng)鏡像直接管理的平臺(tái)資源的不相交集合,以及提供用于確保多種鏡像不會(huì)控制未分配給那個(gè)鏡像的任何資源,來提供。此外,防止在操作系統(tǒng)分配資源的控制中出現(xiàn)的軟件錯(cuò)誤影響任何其他鏡像的資源。這樣,操作系統(tǒng)的每個(gè)鏡像或每個(gè)不同的操作系統(tǒng)直接控制在平臺(tái)內(nèi)可分配資源的不同集合。
至于在邏輯分區(qū)的數(shù)據(jù)處理系統(tǒng)中的硬件資源,這些資源在多個(gè)分區(qū)之間不相交地共享。這些資源可包括,例如,輸入/輸出(I/O)適配器,存儲(chǔ)器DIMM,非異失性隨機(jī)存取存儲(chǔ)器(NVRAM)和硬盤驅(qū)動(dòng)器。在不必重開啟整個(gè)數(shù)據(jù)處理系統(tǒng)的條件下,可對(duì)LPAR數(shù)據(jù)處理系統(tǒng)內(nèi)的每個(gè)分區(qū)進(jìn)行數(shù)次引導(dǎo)和關(guān)閉。在分區(qū)中的處理器數(shù)量取決于用戶需求,而與處理器對(duì)高速緩存之比無關(guān)。本發(fā)明認(rèn)識(shí)到,依據(jù)關(guān)于處理器位置的處理器指派以及這些處理器所使用的高速緩存,對(duì)那些不同分區(qū)指派處理器的方式可對(duì)性能產(chǎn)生顯著影響。
因此,提供一種用于在邏輯分區(qū)的數(shù)據(jù)處理系統(tǒng)中根據(jù)對(duì)具體分區(qū)的處理器選擇來優(yōu)化高速緩存的改進(jìn)方法,裝置和計(jì)算機(jī)指令,將會(huì)有益。
發(fā)明內(nèi)容
本發(fā)明提供了用于在多處理器數(shù)據(jù)處理系統(tǒng)中對(duì)分區(qū)指派處理器的方法,裝置,和計(jì)算機(jī)指令。對(duì)于高速緩存級(jí)別,對(duì)多處理器數(shù)據(jù)處理系統(tǒng)中未分配的處理器產(chǎn)生最優(yōu)分配集合。每個(gè)集合包括對(duì)至少一個(gè)分區(qū)的未分配處理器的分配。判定在最優(yōu)分配集合中的集合是否匹配對(duì)于數(shù)據(jù)處理系統(tǒng)所選一組分區(qū)的要求。當(dāng)匹配時(shí),從未分配的處理器中去除集合中的處理器,其中,對(duì)高速緩存級(jí)別使處理器對(duì)高速緩存的利用率得到優(yōu)化。
在所附權(quán)利要求中給出了認(rèn)為是本發(fā)明特性的新穎特征。不過,結(jié)合附圖,參照后面說明性實(shí)施例的詳細(xì)描述,將更好地理解本發(fā)明本身,和優(yōu)選實(shí)施方式,以及其目的和優(yōu)點(diǎn),其中圖1的方塊圖表示在其中可實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng);圖2的方塊圖表示在其中可實(shí)現(xiàn)本發(fā)明的示例性邏輯分區(qū)的平臺(tái);圖3A表示處理器的較差分配;圖3B表示根據(jù)本發(fā)明優(yōu)選實(shí)施例的最優(yōu)處理器分配的示例;
圖4表示根據(jù)本發(fā)明優(yōu)選實(shí)施例用于在邏輯分區(qū)處理系統(tǒng)中分配處理器的處理流程圖;和圖5表示根據(jù)本發(fā)明的優(yōu)選實(shí)施例執(zhí)行通過(pass)的流程圖。
具體實(shí)施例方式
現(xiàn)參照附圖,具體參照?qǐng)D1,圖1的方塊圖表示在其中可實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)100為可使用本發(fā)明分配處理器以優(yōu)化高速緩存利用率的數(shù)據(jù)處理系統(tǒng)示例。數(shù)據(jù)處理系統(tǒng)100可為包括與系統(tǒng)總線106相連的多個(gè)處理器單元101,102,103和104的對(duì)稱性多處理器(SMP)系統(tǒng)。例如,數(shù)據(jù)處理系統(tǒng)100可為IBM公司(在Armonk處)的產(chǎn)品IBM eSever,該產(chǎn)品作為在網(wǎng)絡(luò)內(nèi)的服務(wù)器。
與系統(tǒng)總線106相連的還有存儲(chǔ)器控制器/高速緩存108,存儲(chǔ)器控制器/高速緩存108提供到多個(gè)局部存儲(chǔ)器160~163的接口。I/O總線橋110與系統(tǒng)總線106相連,并提供到I/O總線112的接口??砂慈缢龇绞郊纱鎯?chǔ)器控制器/高速緩存108和I/O總線橋110。
數(shù)據(jù)處理系統(tǒng)100為邏輯分區(qū)(LRAR)的數(shù)據(jù)處理系統(tǒng)。從而,數(shù)據(jù)處理系統(tǒng)100可具有同時(shí)運(yùn)行的多個(gè)異構(gòu)型操作系統(tǒng)(或單個(gè)操作系統(tǒng)的多個(gè)實(shí)例)。這些多操作系統(tǒng)的每個(gè)均可在其中具有任何數(shù)量的軟件程序執(zhí)行。對(duì)數(shù)據(jù)處理系統(tǒng)100進(jìn)行邏輯分區(qū),以便可將不同的PCI I/O適配器120~121,128~129和136,圖形適配器148,和硬盤適配器149指派給不同的邏輯分區(qū)。在此情形中,圖形適配器148提供用于顯示設(shè)備(未顯示出)的連接,而硬盤適配器149提供用于控制硬盤150的連接。
從而,例如假設(shè)將數(shù)據(jù)處理系統(tǒng)100分為三個(gè)邏輯分區(qū),P1,P2和P3。各PCI I/O適配器120~121,128~129,136,圖形適配器148,硬盤適配器149,各處理器單元101~104,以及自局部存儲(chǔ)器160~163的存儲(chǔ)器被指派給三個(gè)分區(qū)的每個(gè)分區(qū)。在這些示例中,存儲(chǔ)器160~163可采用雙列直插式存儲(chǔ)器模塊(DIMM)的形式。通常不會(huì)基于每個(gè)DIMM向分區(qū)指派DIMM。而是,分區(qū)將獲得由平臺(tái)所看到的整個(gè)存儲(chǔ)器的一部分。例如,可將處理器101,自局部存儲(chǔ)器160~163某些部分的存儲(chǔ)器,以及I/O適配器120,128和129指派給邏輯分區(qū)P1;將處理器102~103,自局部存儲(chǔ)器160~163某些部分的存儲(chǔ)器,以及PCI I/O適配器121和136指派給邏輯分區(qū)P2;將處理器104,自局部存儲(chǔ)器160~163某些部分的存儲(chǔ)器,圖形適配器148和硬盤適配器149指派給邏輯分區(qū)P3。
將執(zhí)行在數(shù)據(jù)處理系統(tǒng)100內(nèi)的各操作系統(tǒng)指派給不同的邏輯分區(qū)。這樣,執(zhí)行在數(shù)據(jù)處理系統(tǒng)100內(nèi)的各操作系統(tǒng)可訪問僅在其邏輯分區(qū)內(nèi)的那些I/O單元。從而,例如高級(jí)交互執(zhí)行程序(AIX)操作系統(tǒng)的一個(gè)實(shí)例可執(zhí)行在分區(qū)P1內(nèi),AIX操作系統(tǒng)的第二個(gè)實(shí)例(鏡像)可執(zhí)行在分區(qū)P2內(nèi),Windows XP操作系統(tǒng)可操作在邏輯分區(qū)P3內(nèi)。Windows XP為微軟公司(華盛頓,Redmond)的產(chǎn)品和商標(biāo)。
與I/O總線112相連的外設(shè)部件互連(PCI)主機(jī)橋114提供到PCI局部總線115的接口??赏ㄟ^PCI至PCI橋116,PCI總線118,PCI總線119,I/O槽170,和I/O槽171將多個(gè)PCI輸入/輸出適配器120~121與PCI總線115相連。PCI至PCI橋116提供到PCI總線118和PCI總線119的接口。PCI I/O適配器120和121分被設(shè)置在I/O槽170和171中。典型的PCI總線裝置將支持四和八個(gè)之間的I/O適配器(即用于內(nèi)插連接器的擴(kuò)展槽)。各PCI I/O適配器120~121在數(shù)據(jù)處理系統(tǒng)100與輸入/輸出設(shè)備(例如作為連接數(shù)據(jù)處理系統(tǒng)100的客戶機(jī)的其他網(wǎng)絡(luò)計(jì)算機(jī))之間提供接口。
附加PCI主機(jī)橋122為附加PCI總線123提供接口。PCI總線123與多個(gè)PCI I/O適配器128~129相連。PCI I/O適配器128~129可通過PCI至PCI橋124,PCI總線126,PCI總線127,I/O槽172,和I/O槽173與PCI總線123相連。PCI至PCI橋124提供到PCI總線126和PCI總線127的接口。PCI I/O適配器128和129分別設(shè)置在I/O槽172和173中。以此方式,可通過各PCI I/O適配器128~129支持附加I/O設(shè)備,如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。從而,數(shù)據(jù)處理系統(tǒng)100允許到多個(gè)網(wǎng)絡(luò)計(jì)算機(jī)的連接。
插到I/O槽174中的存儲(chǔ)器映射圖形適配器148可通過PCI總線144,PCI至PCI橋142,PCI總線141,和PCI主機(jī)橋140與I/O總線112相連。硬盤適配器149可放置在I/O槽175中,I/O槽175與PCI總線145相連。該總線又與PCI至PCI橋142相連,PCI至PCI橋142通過PCI總線141與PCI主機(jī)橋140相連。
PCI主機(jī)橋130提供用于PCI總線131連接到I/O總線112的接口。PCI I/O適配器136與I/O槽176相連,I/O槽176通過PCI總線133與PCI至PCI橋132相連。PCI至PCI橋132與PCI總線131相連。該P(yáng)CI總線還將PCI主機(jī)橋130與服務(wù)處理器郵箱接口和ISA總線訪問直通式邏輯194以及PCI至PCI橋132相連。服務(wù)處理器郵箱接口和ISA總線訪問直通式邏輯194轉(zhuǎn)發(fā)目的地到PCI/ISA橋193的PCI訪問。NVRAM存儲(chǔ)裝置192與ISA總線196相連。服務(wù)處理器135通過其局部PCI總線195與服務(wù)處理器郵箱接口和ISA總線訪問直通式邏輯194相連。服務(wù)處理器135還通過多個(gè)JTAG/I2C總線134與處理器101~104相連。JTAG/I2C總線134為JTAG/scan總線(參見IEEE 1149.1)和菲利普I2C總線的組合。不過,或者,可僅用菲利普I2C總線或僅用JTAG/scan總線來代替JTAG/I2C總線134。主機(jī)處理器101,102,103和104的所有SP-ATTN信號(hào)連接在一起成為服務(wù)處理器的中斷輸入信號(hào)。服務(wù)處理器135具有其自身的局部存儲(chǔ)器191,并具有到硬件OP-面板(hardware OP-panel)190的訪問。
當(dāng)初次給數(shù)據(jù)處理系統(tǒng)100加電時(shí),服務(wù)處理器135使用JTAG/I2C總線134詢問系統(tǒng)(主機(jī))處理器101~104,存儲(chǔ)器控制器/高速緩存108,和I/O橋110。完成該步驟后,服務(wù)處理器135具有關(guān)于數(shù)據(jù)處理系統(tǒng)的清單(inventory)和拓?fù)淅斫?。服?wù)處理器135還對(duì)通過詢問主機(jī)處理器101~104,存儲(chǔ)器控制器/高速緩存108,和I/O橋110而發(fā)現(xiàn)的所有部件執(zhí)行內(nèi)置自檢(BIST,Built-In-Self-Test),基本保證測(cè)試(BAT,Basic Assurance Test),和存儲(chǔ)器測(cè)試。由服務(wù)處理器135收集和報(bào)告在BIST,BAT,以及存儲(chǔ)器測(cè)試期間所檢測(cè)的對(duì)于失效的所有錯(cuò)誤信息。
如果在BIST,BAT以及存儲(chǔ)器測(cè)試期間發(fā)現(xiàn)部件有錯(cuò)誤而系統(tǒng)資源的配置仍可能有意義/有效,則允許數(shù)據(jù)處理系統(tǒng)100繼續(xù)將可執(zhí)行碼裝載到局部(主機(jī))存儲(chǔ)器160~163中。然后,服務(wù)處理器135釋放處理器單元101~104,以執(zhí)行加載到局部存儲(chǔ)器160~163中的碼。當(dāng)處理器單元101~104執(zhí)行來自數(shù)據(jù)處理系統(tǒng)內(nèi)各自操作系統(tǒng)的碼時(shí),服務(wù)處理器135進(jìn)入監(jiān)控并報(bào)告錯(cuò)誤的模式。由服務(wù)處理器135所監(jiān)控的項(xiàng)目類型包括,例如,冷卻風(fēng)扇的轉(zhuǎn)速和操作,熱傳感器,電源調(diào)節(jié)器,和由處理器單元101~104,局部存儲(chǔ)器160~163,和I/O橋110報(bào)告的可恢復(fù)和不可恢復(fù)錯(cuò)誤。
服務(wù)處理器135負(fù)責(zé)保存和報(bào)告關(guān)于在數(shù)據(jù)處理系統(tǒng)100中所有監(jiān)控項(xiàng)目的錯(cuò)誤信息。服務(wù)處理器135還基于錯(cuò)誤類型和所定義的閾值采取行動(dòng)。例如,服務(wù)處理器135可在處理器的高速緩存存儲(chǔ)器上記錄過多的可恢復(fù)錯(cuò)誤,并判定這是否預(yù)示存在有硬失效?;诖伺卸ǎ?wù)處理器135可標(biāo)記在當(dāng)前運(yùn)行會(huì)話和未來初始程序裝入(IPL,InitialProgram Load)期間用于重新配置的資源。IPL有時(shí)又稱為“引導(dǎo)”或“自舉”。
數(shù)據(jù)處理系統(tǒng)100可使用市場(chǎng)上可獲得的多種計(jì)算機(jī)系統(tǒng)來實(shí)現(xiàn)。例如,可使用可從IBM公司獲得的IBM eSever iSeries Model 840系統(tǒng)來實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)100。這種系統(tǒng)可支持使用OS/400操作系統(tǒng)進(jìn)行邏輯分區(qū),OS/400操作系統(tǒng)也可從IBM公司獲得。
本領(lǐng)域普通技術(shù)人員應(yīng)該理解,可對(duì)在圖1中所示硬件進(jìn)行變化。例如,除所示硬件外,還可使用其他外設(shè),如光盤驅(qū)動(dòng)器等,或者用這些外設(shè)代替所示硬件。所述示例并不意在表示對(duì)本發(fā)明進(jìn)行結(jié)構(gòu)上的限制。
現(xiàn)參照?qǐng)D2,圖2的方塊圖表示在其中可實(shí)現(xiàn)本發(fā)明的示例性邏輯分區(qū)的平臺(tái)??蓪⒃谶壿嫹謪^(qū)平臺(tái)200中的硬件實(shí)現(xiàn)為,例如,如圖1所示的數(shù)據(jù)處理系統(tǒng)100。邏輯分區(qū)平臺(tái)200包括分區(qū)硬件230,操作系統(tǒng)202,204,206,208,和系統(tǒng)管理程序210。操作系統(tǒng)202,204,206,208可為同時(shí)運(yùn)行在平臺(tái)200上的單個(gè)操作系統(tǒng)的多個(gè)拷貝或多個(gè)異構(gòu)型操作系統(tǒng)??墒褂肙S/400實(shí)現(xiàn)這些操作系統(tǒng),OS/400被設(shè)計(jì)用來與系統(tǒng)管理程序相接口。操作系統(tǒng)202,204,206,208處在分區(qū)203,205,207,和209中。
另外,這些分區(qū)還包括固件加載器211,213,215,和217??墒褂肐EEE-1275標(biāo)準(zhǔn)開放固件(Standard Open Firmware)和運(yùn)行時(shí)抽象軟件(RTAS,runtime abstraction software)來實(shí)現(xiàn)固件加載器211,213,215,和217,RTAS可從IBM公司獲得。當(dāng)實(shí)例化分區(qū)203,205,207,和209時(shí),通過系統(tǒng)管理程序的分區(qū)管理器將開放固件的拷貝加載到每個(gè)分區(qū)中。然后,將與分區(qū)相關(guān)聯(lián)的或指派給分區(qū)的處理器指派給分區(qū)的存儲(chǔ)器,以執(zhí)行分區(qū)固件。
分區(qū)硬件230包括多個(gè)處理器232~238,多個(gè)系統(tǒng)存儲(chǔ)器單元240~246,多個(gè)輸入/輸出(I/O)適配器248~262,和存儲(chǔ)單元270。分區(qū)硬件230還包括服務(wù)處理器290,服務(wù)處理器290可用于提供多種服務(wù),如對(duì)分區(qū)中錯(cuò)誤的處理??蓪⒏魈幚砥?32~238,存儲(chǔ)器單元240~246,NVRAM存儲(chǔ)裝置298,和I/O適配器248~262指派給在邏輯分區(qū)平臺(tái)200內(nèi)多個(gè)分區(qū)的其中一個(gè),每個(gè)分區(qū)與操作系統(tǒng)202,204,206,和208中的一個(gè)相對(duì)應(yīng)。
分區(qū)管理固件(系統(tǒng)管理程序)210執(zhí)行用于分區(qū)203,205,207,和209的多個(gè)功能和服務(wù),以創(chuàng)建并強(qiáng)制進(jìn)行邏輯分區(qū)平臺(tái)200的分區(qū)。系統(tǒng)管理程序210是實(shí)現(xiàn)為等同于基本硬件的虛擬機(jī)的固件。系統(tǒng)管理程序軟件可從IBM公司獲得。固件為存儲(chǔ)在存儲(chǔ)器芯片中的“軟件”,存儲(chǔ)器芯片在無需供電的條件下即可保持其內(nèi)容,如只讀存儲(chǔ)器(ROM),可編程ROM(PROM),可擦可編程ROM(EPROM),電可擦可編程ROM(EEPROM),和非異失性隨機(jī)存取存儲(chǔ)器(非異失性RAM)。從而,系統(tǒng)管理程序210允許通過虛擬化邏輯分區(qū)平臺(tái)200的所有硬件資源使獨(dú)立的OS鏡像202,204,206,和208同時(shí)執(zhí)行。
可通過硬件管理控制臺(tái),如控制臺(tái)264,來控制不同分區(qū)的操作。控制臺(tái)264為分離的數(shù)據(jù)處理系統(tǒng),系統(tǒng)管理員通過該分離數(shù)據(jù)處理系統(tǒng)可對(duì)不同分區(qū)執(zhí)行包括資源再分配的多種功能。
邏輯分區(qū)平臺(tái)200中資源的分配方式影響著高速緩存的利用率。尤其是,處理器的分配方式能影響系統(tǒng)的性能。對(duì)分區(qū)較差的處理器分配可導(dǎo)致在邏輯分區(qū)平臺(tái)200中高速緩存的低效使用。如果使處理器分配得更高效,則可能需要保留數(shù)據(jù)的多個(gè)拷貝。
現(xiàn)參看圖3A,圖3A表示處理器的較差分配。該示例表示出現(xiàn)了對(duì)分區(qū)較差分配處理器的問題。在該示例中,表示出包含有多個(gè)芯片模塊300,302,304,和306的32處理器系統(tǒng)。多芯片模塊300包含處理器308,310,312,314,316,318,320,和322。處理器308分配給分區(qū)P1,處理器310分配給分區(qū)P2,處理器312分配給分區(qū)P3,處理器314分配給分區(qū)P4,處理器316分配給分區(qū)P3,處理器318分配給分區(qū)P4,處理器320分配給分區(qū)P1,以及處理器322分配給分區(qū)P2。該多芯片模塊還包括第二級(jí)高速緩存324,326,328,和330。在多芯片模塊300中還存在第三級(jí)高速緩存332。
其次,多芯片模塊302包含處理器334,336,338,340,342,344,346,和348。處理器334分配給分區(qū)P1,處理器336分配給分區(qū)P2,處理器338分配給分區(qū)P3,處理器340分配給分區(qū)P4,處理器342分配給分區(qū)P3,處理器344分配給分區(qū)P4,處理器346分配給分區(qū)P1,以及處理器348分配給分區(qū)P2。多芯片模塊302還包括第二級(jí)高速緩存350,352,354,和356。在多芯片模塊302中還存在第三級(jí)高速緩存358。
再者,在多芯片模塊304中,存在處理器360,362,364,366,368,370,372,和374。處理器360分配給分區(qū)P1,處理器362分配給分區(qū)P2,處理器364分配給分區(qū)P3,處理器366分配給分區(qū)P4,處理器368分配給分區(qū)P3,處理器370分配給分區(qū)P4,處理器372分配給分區(qū)P1,以及處理器374分配給分區(qū)P2。在多芯片模塊304中存在第二級(jí)高速緩存376,378,380,和382,以及第三級(jí)高速緩存384。
在多芯片模塊306中,存在處理器386,388,390,392,394,396,398,和301。處理器386分配給分區(qū)P1,處理器388分配給分區(qū)P2,處理器390分配給分區(qū)P3,處理器392分配給分區(qū)P4,處理器394分配給分區(qū)P3,處理器396分配給分區(qū)P4,處理器398分配給分區(qū)P1,以及處理器301分配給分區(qū)P2。在多芯片模塊306中存在第二級(jí)高速緩存303,305,307,和309,以及第三級(jí)高速緩存311。
正如所看到的,在該示例中,由于在具體分區(qū)的每個(gè)處理器不與同一分區(qū)中的任何其他處理器共享第二級(jí)高速緩存,對(duì)分區(qū)的處理器分配較差。此外,僅僅與同一分區(qū)內(nèi)的一個(gè)其他處理器共享每個(gè)模塊中的第三級(jí)高速緩存。這些多芯片模塊表示處理單元,如圖1所示處理單元101,102,103,和104,的示例。
在訪問數(shù)據(jù)時(shí),更壞的情形是,在第二級(jí)高速緩存中存儲(chǔ)數(shù)據(jù)的8份拷貝,在第三級(jí)高速緩存中存儲(chǔ)數(shù)據(jù)的4份拷貝。在該示例中,對(duì)于最好的情形,分區(qū)1處在首8個(gè)處理器中,分區(qū)2包含其次8個(gè)處理器,依次類推。這種類型的分配僅在其中4個(gè)第二級(jí)高速緩存和1個(gè)第三級(jí)高速緩存放置同樣的數(shù)據(jù)。對(duì)于更壞的情形,使第二級(jí)高速緩存的尺寸加倍,使第三級(jí)高速緩存的大小增至三倍。
當(dāng)前已知的解決方法是沿物理邊界建立分區(qū),忽略問題,并承受性能損失,或者使用蠻力且嘗試各種組合。對(duì)于16個(gè)分區(qū)和32個(gè)處理器,具有20.9萬億種可能的組合。
本發(fā)明提供了用于根據(jù)分配處理器使分區(qū)設(shè)置最優(yōu)化的一種方法,裝置和計(jì)算機(jī)指令。此外,如果處理未運(yùn)行結(jié)束,該機(jī)制可最優(yōu)化設(shè)置分區(qū)的子集。這以次優(yōu)化方式使設(shè)置剩余分區(qū)的影響最小化。本發(fā)明的機(jī)制不搜索將要被分配的分區(qū)以及使它們與硬件相匹配。相反,本發(fā)明的機(jī)制通過產(chǎn)生對(duì)于硬件而言最優(yōu)的分區(qū)并查找是否存在那樣類型的分區(qū)來進(jìn)行搜索。該機(jī)制可在HSC,如圖2所示的硬件系統(tǒng)控制臺(tái)280,中實(shí)現(xiàn)。
該機(jī)制進(jìn)行搜索使用了利用以下事實(shí)的方法在定義上,更高級(jí)高速緩存是更低級(jí)高速緩存的更低倍數(shù)。從而,搜索可對(duì)于高速緩存級(jí)別向下進(jìn)行。本發(fā)明的機(jī)制通過搜索更大高速緩存級(jí)別而啟動(dòng),首先去除更大的分區(qū)。當(dāng)對(duì)于處理器發(fā)現(xiàn)最優(yōu)設(shè)置時(shí),考慮去除處理器和分區(qū)。在所示示例中,每個(gè)搜索級(jí)別具有多個(gè)通過(pass)。每個(gè)級(jí)別的通過數(shù)量由處理器數(shù)量與當(dāng)前搜索級(jí)別以及前一搜索級(jí)別之間的扇出因數(shù)來決定。根據(jù)圖3A中所示示例,由于在更高級(jí)存在32個(gè)處理器,在當(dāng)前級(jí)存在8個(gè)處理器,從而在第三級(jí)執(zhí)行4個(gè)通過。
此外,對(duì)于每個(gè)通過,在所產(chǎn)生的所有分區(qū)組中,每個(gè)分區(qū)中CPU的數(shù)量為當(dāng)前級(jí)別處理器數(shù)量的倍數(shù),且其中,在所有分區(qū)中處理器的數(shù)量總計(jì)達(dá)到前一級(jí)別處理器的數(shù)量。如果發(fā)現(xiàn)匹配,自未分配的機(jī)器去除那些處理器,并從未分配的分區(qū)去除該分區(qū)。在所示示例中,所產(chǎn)生的集合將如下通過1{32};通過2{24,8}{16,16};通過3{16,8,8};和通過4{8,8,8,8},通過1產(chǎn)生將32個(gè)處理器指派給單個(gè)分區(qū)的情形。通過2產(chǎn)生對(duì)兩個(gè)分區(qū)顯示出最優(yōu)處理器分配的兩個(gè)集合。通過3顯示出對(duì)于三個(gè)分區(qū)的最優(yōu)處理器分配。通過4產(chǎn)生對(duì)于4個(gè)分區(qū)的處理器分配。這些是對(duì)于不同分區(qū)數(shù)量的最優(yōu)集合示例。
這些集合表示通用處理器資源(generic processor resource)。當(dāng)生成這些集合時(shí),集合并不表示專用處理器分配。相反,集合表示通用最優(yōu)處理器集合。可能會(huì)發(fā)現(xiàn)將與通用最優(yōu)處理器集合相匹配的多個(gè)專用處理器分配。例如在圖3中,如果未分配任何處理器,且產(chǎn)生諸如{8,8,8,8}的集合,表示4個(gè)用于任何8個(gè)處理器的最優(yōu)處理器集合。在處理器單元300,302,304,和306中的處理器分別作為示例。出于簡(jiǎn)單考慮,最容易的是按照某些類型相似性順序設(shè)置處理器。該順序通常為由系統(tǒng)所表示處理器的順序,如1,2,3,4,和5。
如果處理器已不按正確的順序,可將處理器按樹形結(jié)構(gòu)設(shè)置。那么,可能會(huì)使用十分簡(jiǎn)單的最左邊樹遍歷來設(shè)置處理器的選擇。一旦處理器排好順序,則可使用該順序分配處理器。
在這些示例中,對(duì)于最高級(jí)別的通過數(shù)量為0,這是由于沒有用于進(jìn)行比較的更高級(jí)別。從而,在最高級(jí)別上的通過是不可能的。通過利用是在該級(jí)別處理器數(shù)量倍數(shù)的或示例中所給出數(shù)量或分區(qū)數(shù)量進(jìn)行的最小化,可進(jìn)一步縮減通過的數(shù)量。該規(guī)則阻止對(duì)不可能具有匹配的多個(gè)通過進(jìn)行搜索。此外,不會(huì)產(chǎn)生冗余集合。例如,將{1,3,1}和{1,1,3}認(rèn)為是相同的集合,只產(chǎn)生這樣集合中的僅一個(gè)。
此外,如果沒有產(chǎn)生任何匹配的集合,其總處理器利用率總計(jì)至最高級(jí)別,在以下的級(jí)別上重復(fù)進(jìn)行搜索。如果搜索處在第三級(jí)高速緩存級(jí)別上,則搜索移動(dòng)到以下的級(jí)別,即第二級(jí)高速緩存級(jí)別。如果存在多于一個(gè)的前一級(jí)別,首先,必須產(chǎn)生恰好落在前一級(jí)別上的組合,順利移除對(duì)恰好落在更低級(jí)別上級(jí)別的限制。
下面,參看圖3B,圖3B表示根據(jù)本發(fā)明優(yōu)選實(shí)施例的最優(yōu)處理器分配的示例。在該示例中,在圖3A中的32處理器系統(tǒng)顯示出包含具有最優(yōu)處理器分配以優(yōu)化高速緩存利用率的多芯片模塊300,302,304,和306。這如所看到的,在多芯片模塊300中的所有處理器都分配給分區(qū)P1,在多芯片模塊302中的處理器分配給分區(qū)P2,在多芯片模塊304中的處理器分配給分區(qū)P3,以及在多芯片模塊306中的處理器分配給分區(qū)P4。
現(xiàn)參看圖4,圖4表示根據(jù)本發(fā)明優(yōu)選實(shí)施例在邏輯分區(qū)處理系統(tǒng)中分配處理器的處理流程圖。可在硬件管理控制臺(tái)(如圖2中所示的硬件管理控制臺(tái)208)中實(shí)現(xiàn)如圖4中所示的處理。
處理由設(shè)置變量level(級(jí)別)等于最高高速緩存級(jí)別開始,且變量n等于處理器的總數(shù)(步驟400)。例如,在圖3所示示例中最高高速緩存級(jí)為3。在該示例中,處理器的總數(shù)為32。
然后執(zhí)行通過(步驟402)。判定所有通過是否會(huì)導(dǎo)致匹配(步驟404)。如果出現(xiàn)匹配,則從n中除去所匹配的處理器(步驟406)。這些匹配的處理器不再是未分配的處理器,且在以后的通過中不加以考慮。從未分配的分區(qū)中去除匹配的分區(qū)(步驟408)。
此后,判定n是否小于或等于1(步驟410)。此步驟用于判定處理是否完成。如果n不小于或等于1,處理返回到步驟402,進(jìn)行如上所述的處理。否則,處理結(jié)束。
再次參看步驟404,如果在步驟402中不出現(xiàn)匹配,則將level設(shè)置成等于level減1(步驟412)。換而言之,使級(jí)別遞減以在下一個(gè)更低級(jí)別進(jìn)行搜索。判定在級(jí)別中的處理器數(shù)量是否大于1(步驟414)。如果在級(jí)別中的處理器數(shù)量大于1,則處理返回到步驟402。否則,處理結(jié)束。
下面參看圖5,圖5表示根據(jù)本發(fā)明優(yōu)選實(shí)施例執(zhí)行通過的流程圖。在圖5中所示處理更詳細(xì)地描述了在圖4中的步驟402。
處理由設(shè)置變量pass(通過)等于1開始(步驟500)。對(duì)于level和pass生成集合(步驟502)。步驟502相當(dāng)于求出整個(gè)級(jí)別的通過。通過的值等于需要處理器的分區(qū)數(shù)量。所求出的通過數(shù)可達(dá)處理器數(shù)量除以級(jí)別。如果有四個(gè)分區(qū),用于向分區(qū)分配處理器的通過數(shù)為4。在對(duì)pass生成集合中,產(chǎn)生等于通過數(shù)的成員數(shù)。換而言之,在集合中每個(gè)成員的數(shù)量為級(jí)別中處理器數(shù)量的倍數(shù),且少于或等于[n-n(level)(pass-1)],其中,n為處理器的數(shù)量,n(level)為在級(jí)別中的處理器數(shù)量。有效的集合數(shù)增至n。
在集合中的每個(gè)成員可僅與可獲得處理器的數(shù)量n同樣大。在集合中的每個(gè)成員可僅同級(jí)別n(level)中的處理器數(shù)量同樣少。由于所有成員的總數(shù)必須小于或等于可獲得處理器的數(shù)量n。當(dāng)存在多于一個(gè)的成員時(shí),沒有單個(gè)成員能夠與n同樣大,這是由于其他成員將不得不為0。當(dāng)pass大于1時(shí),存在多于一個(gè)的成員。以上方程顯示出,對(duì)于在集合中的成員,最大可能值為n減去對(duì)于在集合中其他成員的最小值。根據(jù)集合生成如果實(shí)現(xiàn),當(dāng)生成集合時(shí),了解這些將是有用的。這表示,當(dāng)通過增多時(shí),集合成員的可能值范圍會(huì)減小,這稍稍抵消生成更大集合的額外工作。
然后判定在集合中的處理器是否匹配分區(qū)要求(步驟504)。如果向某一分區(qū)指派了處理器,在分配處理器中不會(huì)再考慮該分區(qū)。從而,如果四個(gè)分區(qū)需要分配,那么,將通過數(shù)設(shè)置為3的值,而不是4。如果在集合中的處理器匹配分區(qū)要求,則表示匹配(步驟506),此后處理結(jié)束。
再次參看步驟504,如果在集合中的處理器不匹配分區(qū)要求,變量pass遞增(步驟508)。判定變量pass是否大于處理器數(shù)量除以級(jí)別中處理器的數(shù)量(步驟510)。如果變量pass不大于處理器數(shù)量除以級(jí)別中處理器的數(shù)量,處理按如上所述返回到步驟502。否則,表明不匹配(步驟512),此后處理結(jié)束。
從而,本發(fā)明提供用于向分區(qū)分配處理器的改進(jìn)方法,裝置,和計(jì)算機(jī)指令。本發(fā)明的機(jī)制通過對(duì)硬件產(chǎn)生最優(yōu)分區(qū)并檢查這些分區(qū)是否存在而分配處理器。換而言之,對(duì)不同分區(qū)進(jìn)行最優(yōu)處理器分配,以產(chǎn)生集合,并對(duì)集合進(jìn)行檢查,以查看分區(qū)是否具有那些類型處理器分配的要求。此外,本發(fā)明的機(jī)制以更大高速緩存級(jí)別啟動(dòng)搜索,如寧肯用第三級(jí)高速緩存也不用第二級(jí)高速緩存。以此方式,可避免或減少在較差分配的系統(tǒng)中與較差高速緩存利用率相關(guān)的問題。
重要的是應(yīng)注意,即便鑒于完全功能的數(shù)據(jù)處理系統(tǒng)來描述本發(fā)明,本領(lǐng)域普通技術(shù)人員應(yīng)該理解,本發(fā)明的處理能夠以指令性計(jì)算機(jī)可讀介質(zhì)的形式以及多種形式分布,且同樣本發(fā)明的應(yīng)用不在乎實(shí)際用于實(shí)現(xiàn)分布的信號(hào)承載介質(zhì)的具體類型。計(jì)算機(jī)可讀介質(zhì)的示例包括可讀類型介質(zhì),如軟盤,硬盤驅(qū)動(dòng)器,RAM,CD-ROM,DVD-ROM,和傳輸類型介質(zhì),諸如使用例如無線電頻率和光波傳輸?shù)膫鬏斝问降臄?shù)據(jù)和模擬通信鏈路,有線或無線通信鏈路。計(jì)算機(jī)可讀介質(zhì)可采用編碼形式,并在具體數(shù)據(jù)處理系統(tǒng)中為實(shí)際應(yīng)用要進(jìn)行解碼。
本發(fā)明的描述是出于說明及描述目的,并不意在以所批露的形式詳盡列舉出本發(fā)明或限制本發(fā)明。顯而易見,本領(lǐng)域普通技術(shù)人員能夠易于想到多種修改和變形。所選及所述實(shí)施例是出于更好地說明本發(fā)明的原理以及實(shí)際應(yīng)用,并能夠使本領(lǐng)域其他普通技術(shù)人員以多種修改的多種實(shí)施例想到本發(fā)明,這些修改的實(shí)施例適用于他們所想到的具體應(yīng)用。
權(quán)利要求
1.一種在多處理器數(shù)據(jù)處理系統(tǒng)中向分區(qū)指派處理器的方法,所述方法包括針對(duì)高速緩存級(jí)別在多處理器數(shù)據(jù)處理系統(tǒng)中為未分配的處理器產(chǎn)生最優(yōu)分配集合,其中,每個(gè)集合包括對(duì)至少一個(gè)分區(qū)的未分配處理器的分配;判定在最優(yōu)分配集合中的集合是否匹配對(duì)數(shù)據(jù)處理系統(tǒng)所選一組分區(qū)的要求;以及當(dāng)匹配時(shí),從未分配處理器中去除集合中的處理器,其中,針對(duì)高速緩存級(jí)別使處理器對(duì)高速緩存的利用率得到優(yōu)化。
2.根據(jù)權(quán)利要求1的方法,還包括對(duì)每個(gè)高速緩存級(jí)別,重復(fù)執(zhí)行產(chǎn)生步驟、判定步驟、和去除步驟。
3.根據(jù)權(quán)利要求2的方法,其中,所述方法在最高高速緩存級(jí)別啟動(dòng),依次移向更低高速緩存級(jí)別,直到處理所有高速緩存級(jí)別。
4.根據(jù)權(quán)利要求1的方法,還包括當(dāng)向分區(qū)分配集合時(shí),從分區(qū)組中去除分區(qū)。
5.根據(jù)權(quán)利要求1的方法,其中,多處理器數(shù)據(jù)處理系統(tǒng)為對(duì)稱性多處理數(shù)據(jù)處理系統(tǒng)。
6.根據(jù)權(quán)利要求1的方法,其中,多處理器數(shù)據(jù)處理系統(tǒng)包括L3高速緩存和L2高速緩存。
7.根據(jù)權(quán)利要求1的方法,其中,處理器處在多芯片模塊上,在多芯片模塊中,依據(jù)多芯片模塊上的處理器位置,對(duì)分區(qū)的最優(yōu)處理器分配用于優(yōu)化高速緩存利用率。
8.一種在多處理器數(shù)據(jù)處理系統(tǒng)中分配處理器以使高速緩存利用率得到優(yōu)化的方法,所述方法包括選擇在多處理器數(shù)據(jù)處理系統(tǒng)中未進(jìn)行處理的最高高速緩存級(jí)別;產(chǎn)生具有所需高速緩存優(yōu)化級(jí)別的處理器分配集合,其中,集合包括未分配的處理器;當(dāng)執(zhí)行產(chǎn)生步驟時(shí),判定集合是否匹配分區(qū)組內(nèi)分區(qū)的要求;當(dāng)匹配時(shí),將集合中的處理器分配給分區(qū),以形成分配的處理器;以及當(dāng)不匹配時(shí),重復(fù)產(chǎn)生集合,以產(chǎn)生處理器分配的不同集合。
9.一種在多處理器數(shù)據(jù)處理系統(tǒng)中對(duì)分區(qū)指派處理器的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括總線系統(tǒng);與總線系統(tǒng)相連的通信單元;與總線系統(tǒng)相連的存儲(chǔ)器,其中,存儲(chǔ)器包括一組指令;以及與總線系統(tǒng)相連的處理單元,其中,處理單元執(zhí)行該組指令以對(duì)于高速緩存級(jí)別為多處理器數(shù)據(jù)處理系統(tǒng)中未分配的處理器產(chǎn)生最優(yōu)分配集合,其中每個(gè)集合包括對(duì)至少一個(gè)分區(qū)的未分配處理器的分配;判定在最優(yōu)分配集合中的集合是否匹配對(duì)數(shù)據(jù)處理系統(tǒng)所選一組分區(qū)的要求;當(dāng)匹配時(shí),從未分配的處理器中去除集合中的處理器,其中對(duì)高速緩存級(jí)別使處理器對(duì)高速緩存的利用率得到優(yōu)化。
10.一種在多處理器數(shù)據(jù)處理系統(tǒng)中向分區(qū)指派處理器的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括產(chǎn)生單元,用于對(duì)高速緩存級(jí)別在多處理器數(shù)據(jù)處理系統(tǒng)中為未分配的處理器產(chǎn)生最優(yōu)分配集合,其中,每個(gè)集合包括對(duì)至少一個(gè)分區(qū)的未分配處理器的分配;判定單元,用于判定在最優(yōu)分配集合中的集合是否匹配對(duì)數(shù)據(jù)處理系統(tǒng)所選一組分區(qū)的要求;以及去除單元,用于當(dāng)匹配時(shí),從未分配處理器中去除集合中的處理器,其中,對(duì)高速緩存級(jí)別使處理器對(duì)高速緩存的利用率得到優(yōu)化。
11.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),還包括對(duì)每個(gè)高速緩存級(jí)別,重復(fù)執(zhí)行產(chǎn)生單元、判定單元、和去除單元。
12.根據(jù)權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中,所述系統(tǒng)在最高高速緩存級(jí)別啟動(dòng),依次移向更低高速緩存級(jí)別,直到處理所有高速緩存級(jí)別。
13.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中,去除單元為第一去除單元,此外還包括第二去除單元,用于當(dāng)向分區(qū)分配集合時(shí),從分區(qū)組中去除分區(qū)。
14.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中,多處理器數(shù)據(jù)處理系統(tǒng)為對(duì)稱性多處理數(shù)據(jù)處理系統(tǒng)。
15.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中,多處理器數(shù)據(jù)處理系統(tǒng)包括L3高速緩存和L2高速緩存。
16.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中,處理器處在多芯片模塊上,在多芯片模塊中,依據(jù)多芯片模塊上的處理器位置,對(duì)分區(qū)的最優(yōu)處理器分配用于優(yōu)化高速緩存利用率。
17.一種在計(jì)算機(jī)可讀介質(zhì)中用于在多處理器數(shù)據(jù)處理系統(tǒng)中向分區(qū)指派處理器的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括第一指令,用于對(duì)高速緩存級(jí)別在多處理器數(shù)據(jù)處理系統(tǒng)中為未分配的處理器產(chǎn)生最優(yōu)分配集合,其中,每個(gè)集合包括對(duì)至少一個(gè)分區(qū)的未分配處理器的分配;第二指令,用于判定在最優(yōu)分配集合中的集合是否匹配對(duì)數(shù)據(jù)處理系統(tǒng)所選一組分區(qū)的要求;第三指令,當(dāng)匹配時(shí),用于從未分配處理器中去除集合中的處理器,其中,對(duì)高速緩存級(jí)別使處理器對(duì)高速緩存的利用率得到優(yōu)化。
18.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,還包括第四指令,用于對(duì)每個(gè)高速緩存級(jí)別重復(fù)執(zhí)行產(chǎn)生步驟、判定步驟、和去除步驟。
19.根據(jù)權(quán)利要求18的計(jì)算機(jī)程序產(chǎn)品,其中,在最高高速緩存級(jí)別啟動(dòng),依次移向更低高速緩存級(jí)別,直到處理所有高速緩存級(jí)別。
20.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,還包括子指令,用于當(dāng)向分區(qū)分配集合時(shí),從分區(qū)組中去除分區(qū)。
21.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,多處理器數(shù)據(jù)處理系統(tǒng)為對(duì)稱性多處理數(shù)據(jù)處理系統(tǒng)。
22.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,多處理器數(shù)據(jù)處理系統(tǒng)包括L3高速緩存和L2高速緩存。
23.根據(jù)權(quán)利要求17的計(jì)算機(jī)程序產(chǎn)品,其中,處理器處在多芯片模塊上,在多芯片模塊中,依據(jù)多芯片模塊上的處理器位置,對(duì)分區(qū)的最優(yōu)處理器分配用于優(yōu)化高速緩存利用率。
全文摘要
一種用于在多處理器數(shù)據(jù)處理系統(tǒng)中對(duì)分區(qū)指派處理器的方法,裝置,和計(jì)算機(jī)指令。對(duì)于高速緩存級(jí)別,對(duì)多處理器數(shù)據(jù)處理系統(tǒng)中未分配的處理器產(chǎn)生最優(yōu)分配集合。每個(gè)集合包括對(duì)至少一個(gè)分區(qū)的未分配處理器的分配。判定在最優(yōu)分配集合中的集合是否匹配對(duì)于數(shù)據(jù)處理系統(tǒng)所選一組分區(qū)的要求。當(dāng)匹配時(shí),從未分配的處理器中去除集合中的處理器,其中,對(duì)高速緩存級(jí)別使處理器對(duì)高速緩存的利用率得到優(yōu)化。
文檔編號(hào)G06F12/00GK1604041SQ20041001174
公開日2005年4月6日 申請(qǐng)日期2004年9月24日 優(yōu)先權(quán)日2003年10月2日
發(fā)明者喬爾·霍華德·舒普 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司