欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用性能監(jiān)視器優(yōu)化系統(tǒng)性能的系統(tǒng)和方法

文檔序號(hào):6609089閱讀:253來(lái)源:國(guó)知局
專利名稱:使用性能監(jiān)視器優(yōu)化系統(tǒng)性能的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及一種使用性能監(jiān)視器來(lái)優(yōu)化系統(tǒng)性能的系統(tǒng)和方法。更特別地,本發(fā)明涉及一種監(jiān)視多個(gè)不相似的處理器中的線程并基于分析針對(duì)各個(gè)線程所收集的數(shù)據(jù)來(lái)優(yōu)化這些處理器之間的CPU時(shí)間的系統(tǒng)和方法。
背景技術(shù)
使用異類(heterogeneous)處理器的組合的計(jì)算系統(tǒng)變得日益普及。在這些環(huán)境中,一個(gè)或多個(gè)通用處理器與一個(gè)或多個(gè)專用處理器結(jié)合起來(lái)進(jìn)行工作。作為不同的處理器類型,通用處理器使用與專用處理器所使用的指令集架構(gòu)(ISA)不同的ISA。擁有不同的處理特性和ISA使得每個(gè)處理器類型能有效地執(zhí)行不同類型的任務(wù)。
因?yàn)樘幚砥鞯牟煌匦裕赃@種異類環(huán)境對(duì)于諸如多媒體、游戲以及數(shù)值密集型應(yīng)用之類的各種應(yīng)用來(lái)說(shuō)是具有吸引力的。在這種環(huán)境中,一個(gè)程序可以有多個(gè)線程。這些線程中的一些線程可以在通用處理器上執(zhí)行,而其他線程可以在專用處理器上執(zhí)行。然而,挑戰(zhàn)是常常直到應(yīng)用運(yùn)行時(shí)才知道資源可用性。由此,挑戰(zhàn)是預(yù)先確定應(yīng)當(dāng)分配給各種線程的CPU時(shí)間量。在異類處理環(huán)境中,這種挑戰(zhàn)加重了,在異類處理環(huán)境中一種類型的CPU(基于第一ISA)可能受到抑制,而另一種類型的CPU(基于第二ISA)可能不受抑制。
由此,需要一種在異類處理環(huán)境中監(jiān)視線程性能的系統(tǒng)和方法。還需要一種基于對(duì)線程性能數(shù)據(jù)的分析來(lái)動(dòng)態(tài)地改變線程所接收的CPU時(shí)間量的系統(tǒng)和方法。

發(fā)明內(nèi)容
已經(jīng)發(fā)現(xiàn),用一種使用性能監(jiān)視器來(lái)收集線程性能數(shù)據(jù)的系統(tǒng)和方法能解決前面所提及的挑戰(zhàn)。線程可以在基于第一指令集架構(gòu)(ISA)的第一處理器或基于第二ISA的第二處理器上運(yùn)行。單個(gè)計(jì)算機(jī)系統(tǒng)中可以包括多個(gè)第一處理器和多個(gè)第二處理器。第一處理器和第二處理器每個(gè)均可以存取存儲(chǔ)在公共共享內(nèi)存(memory)內(nèi)的數(shù)據(jù)。對(duì)所收集的線程性能數(shù)據(jù)進(jìn)行分析以確定相應(yīng)的線程是否需要額外的CPU時(shí)間來(lái)優(yōu)化系統(tǒng)性能。如果需要額外的CPU時(shí)間,則改變(增加)線程接收的CPU時(shí)間量,使得當(dāng)調(diào)度器進(jìn)行了調(diào)度時(shí),線程接收該額外的時(shí)間。在一個(gè)實(shí)施例中,通過(guò)改變對(duì)應(yīng)于線程的優(yōu)先級(jí)值來(lái)實(shí)現(xiàn)增加的CPU時(shí)間。
在另一個(gè)實(shí)施例中,用戶可以通過(guò)選擇由性能監(jiān)視器在收集數(shù)據(jù)時(shí)所存儲(chǔ)和使用的性能選項(xiàng)來(lái)配置系統(tǒng)。用戶還可以選擇哪些處理器監(jiān)視線程性能。以這種方式,如果一個(gè)處理器專用于特定任務(wù)而不換出(swapout)用于不同線程,則不太需要對(duì)運(yùn)行在該處理器上的專用線程進(jìn)行監(jiān)視。
在另一個(gè)實(shí)施例中,使用公共調(diào)度器將線程調(diào)度到第一處理器和第二處理器二者。在這個(gè)實(shí)施例中,線程性能數(shù)據(jù)存儲(chǔ)在共享內(nèi)存中。調(diào)度器確定特定的處理器是否以低于預(yù)定義的CPU利用率在運(yùn)行。如果處理器以低于預(yù)定義的利用率在運(yùn)行,則像上面所描述的那樣對(duì)線程所接收的針對(duì)該處理器的CPU時(shí)間進(jìn)行調(diào)整。然而,如果處理器以可接受的利用率水平在運(yùn)行,則不對(duì)線程所接收的CPU時(shí)間進(jìn)行調(diào)整。
前面所述的是概要并且因而包含必要的說(shuō)明、簡(jiǎn)化、總結(jié)以及對(duì)細(xì)節(jié)的省略;因此,本領(lǐng)域的普通技術(shù)人員將意識(shí)到該概要僅是說(shuō)明性的,并且不旨在以任何方式進(jìn)行限制。在下面給出的非限制性的詳細(xì)的說(shuō)明中,由權(quán)利要求書唯一限定的本發(fā)明的其他方面、創(chuàng)造性特征和優(yōu)點(diǎn)將變得顯而易見(jiàn)。


通過(guò)參考附圖,可以更好地理解本發(fā)明,并且本發(fā)明的眾多目的、特征和優(yōu)點(diǎn)對(duì)于本領(lǐng)域的普通技術(shù)人員而言變得顯而易見(jiàn)。
圖1是示出了在異類處理器環(huán)境中的收集由調(diào)度器用來(lái)分配CPU時(shí)間的線程性能數(shù)據(jù)的性能監(jiān)視器的示圖;圖2是示出了在異類處理器環(huán)境中使用性能監(jiān)視器來(lái)收集線程數(shù)據(jù)所采取的步驟的高級(jí)流程圖;圖3是示出了由性能監(jiān)視器采取的用來(lái)收集針對(duì)第一CPU的線程事件數(shù)據(jù)的步驟的流程圖,該第一CPU基于第一指令集架構(gòu)(ISA);圖4是示出了由性能監(jiān)視器采取的用來(lái)收集針對(duì)一個(gè)或多個(gè)第二CPU的線程事件數(shù)據(jù)的步驟的流程圖,該第二CPU每個(gè)均基于第二ISA;圖5是示出了由調(diào)度器采取的用來(lái)基于所收集的線程事件數(shù)據(jù)分配CPU時(shí)間的步驟的流程圖;圖6是在其中可以實(shí)現(xiàn)本發(fā)明的傳統(tǒng)信息處理系統(tǒng)的框圖;以及圖7是包括多個(gè)在其中可以實(shí)現(xiàn)本發(fā)明的異類處理器的寬帶引擎(engine)的框圖。
具體實(shí)施例方式
下面的內(nèi)容旨在提供對(duì)本發(fā)明的例子的詳細(xì)描述,而且不應(yīng)該將其作為對(duì)本發(fā)明自身的限制。相反,在該描述之后的權(quán)利要求書中所限定的本發(fā)明的范圍內(nèi)可以做出任何數(shù)量的變型。
圖1是示出了在異類處理器環(huán)境中的收集由調(diào)度器用來(lái)分配CPU時(shí)間的線程性能數(shù)據(jù)的性能監(jiān)視器的示圖。在所示出的例子中,使用兩種異類處理器類型,其中每種處理器類型均基于不同的指令集架構(gòu)(ISA)。由基于第一ISA的處理器執(zhí)行的進(jìn)程包括在方框130中,而由基于第二ISA的處理器執(zhí)行的進(jìn)程包括在方框160中。由兩個(gè)ISA所運(yùn)行的進(jìn)程包括性能監(jiān)視器和各種線程。性能監(jiān)視器150監(jiān)視在第一ISA中出現(xiàn)的線程事件,而性能監(jiān)視器180監(jiān)視在第二ISA中出現(xiàn)的線程事件。線程140代表由基于第一ISA的處理器執(zhí)行的各種線程,而線程170代表由基于第二ISA的處理器執(zhí)行的各種線程。兩個(gè)ISA的處理器能夠存取存儲(chǔ)在共享內(nèi)存100中的數(shù)據(jù)。如在圖7中更詳細(xì)解釋的那樣,在一個(gè)實(shí)施例中,基于第一ISA的處理器是主處理組件(PPE),而基于第二ISA的處理器是協(xié)作處理組件(SPE)。在這個(gè)實(shí)施例中,使用寬帶引擎總線來(lái)方便各種處理器對(duì)共享內(nèi)存的存取。
在圖1所示出的實(shí)施例中,線程事件數(shù)據(jù)存儲(chǔ)在共享內(nèi)存100中。針對(duì)運(yùn)行在第一ISA處理器上(例如在PPE之一上)的線程的線程事件數(shù)據(jù)存儲(chǔ)在內(nèi)存區(qū)域110中,而針對(duì)運(yùn)行在第二ISA處理器上(例如在SPE之一上)的線程的線程事件數(shù)據(jù)存儲(chǔ)在內(nèi)存區(qū)域120中。調(diào)度器190讀取線程事件數(shù)據(jù)并相應(yīng)地分配CPU時(shí)間。將已調(diào)度(schedule)的線程分派給基于第一ISA的處理器(例如處理器192)中的一個(gè)或者分派給基于第二ISA的處理器(例如處理器194)中的一個(gè)。在一個(gè)實(shí)施例中,公共調(diào)度器為兩種類型的處理器(處理器192和194)調(diào)度線程。這個(gè)實(shí)施例便于在調(diào)度主線程運(yùn)行在PPE之一上的同時(shí)對(duì)運(yùn)行在SPE之一上的“輔助”線程進(jìn)行調(diào)度。當(dāng)然,本領(lǐng)域的普通技術(shù)人員將意識(shí)到可以使用單獨(dú)的調(diào)度器,使得一個(gè)調(diào)度器對(duì)將在一種類型的處理器例如PPE上運(yùn)行的線程進(jìn)行調(diào)度,而另一個(gè)調(diào)度器對(duì)將在另一種類型的處理器例如SPE上運(yùn)行的線程進(jìn)行調(diào)度。
圖2是示出了在異類處理器環(huán)境中使用性能監(jiān)視器來(lái)收集線程數(shù)據(jù)所采取的步驟的高級(jí)流程圖。首先,始于200的橫在頂部的小流程圖示出用戶選擇性能選項(xiàng),在步驟210處性能選項(xiàng)被接收并且存儲(chǔ)在性能配置文件220中。另外,用戶可以選擇哪些處理器應(yīng)當(dāng)對(duì)運(yùn)行在處理器上的線程的性能進(jìn)行監(jiān)視。例如,特定的進(jìn)程或線程可以被專用于給定的處理器,諸如SPE之一。作為專用進(jìn)程,該進(jìn)程不會(huì)被換進(jìn)或換出,由此不需要對(duì)其性能進(jìn)行監(jiān)視以增加其CPU時(shí)間,因?yàn)樵撨M(jìn)程已經(jīng)專用于處理器。而且,用戶可以決定只對(duì)運(yùn)行在特定處理器類型上的線程進(jìn)行監(jiān)視,諸如只對(duì)運(yùn)行在PPE上的線程進(jìn)行監(jiān)視而不對(duì)運(yùn)行在SPE上的那些進(jìn)程進(jìn)行監(jiān)視,或者反之亦然。最后,用戶還可以在各種處理器上設(shè)置閾值,使得只在處理器的利用率低于用戶定義的閾值的時(shí)候才執(zhí)行這里所描述的CPU時(shí)間的改變。以這種方式,用戶可以選擇觸發(fā)針對(duì)線程以及處理器的額外CPU時(shí)間的閾值和事件,在處理器中由性能監(jiān)視器收集線程事件。另外,可以建立默認(rèn)的配置設(shè)置以設(shè)置要監(jiān)視的默認(rèn)事件以及默認(rèn)處理器和閾值。當(dāng)使用默認(rèn)設(shè)置時(shí),接著可以使用在小流程圖中所示出的機(jī)制來(lái)改變這些默認(rèn)設(shè)置。該小流程圖在此之后在215處結(jié)束。
在更大的流程圖中示出了性能監(jiān)視處理,并且性能監(jiān)視處理開(kāi)始于該流程圖上的225處,在步驟230處,檢查存儲(chǔ)在性能配置文件220中的性能選項(xiàng)。做出關(guān)于是否對(duì)在基于第一ISA(例如PPE)的處理器上運(yùn)行的線程事件進(jìn)行監(jiān)視的決定(判決240)。如果對(duì)在基于第一ISA的處理器上運(yùn)行的線程事件進(jìn)行監(jiān)視,則判決240轉(zhuǎn)移到“是”分支245,在該分支上在步驟250處讀取來(lái)自性能配置文件的選項(xiàng),其指示要針對(duì)線程收集的事件的類型,并且在預(yù)定義的進(jìn)程260處對(duì)收集針對(duì)運(yùn)行在第一ISA處理器上的線程的線程事件數(shù)據(jù)的性能監(jiān)視器進(jìn)行初始化(參見(jiàn)針對(duì)處理細(xì)節(jié)的圖3以及對(duì)應(yīng)的文字)。另一方面,如果不對(duì)運(yùn)行在基于第一ISA的處理器上的線程事件進(jìn)行監(jiān)視,則繞過(guò)步驟250和260,判決240轉(zhuǎn)移到“否”分支265。
做出關(guān)于是否對(duì)在基于第二ISA(例如SPE)的處理器上運(yùn)行的線程事件進(jìn)行監(jiān)視的決定(判決270)。如果對(duì)在基于第二ISA的處理器上運(yùn)行的線程事件進(jìn)行監(jiān)視,則判決270轉(zhuǎn)移到“是”分支275,在該分支上在步驟280處讀取來(lái)自性能配置文件的選項(xiàng),其指示要針對(duì)線程收集的事件的類型,并且在預(yù)定義的進(jìn)程285處對(duì)收集針對(duì)運(yùn)行在第二ISA處理器上的線程的線程事件數(shù)據(jù)的性能監(jiān)視器進(jìn)行初始化(參見(jiàn)針對(duì)處理細(xì)節(jié)的圖4以及對(duì)應(yīng)的文字)。另一方面,如果不對(duì)運(yùn)行在基于第二ISA的處理器上的線程事件進(jìn)行監(jiān)視,則繞過(guò)步驟280和285,判決270轉(zhuǎn)移到“否”分支290。在此之后處理在295處結(jié)束。
圖3是性能監(jiān)視器采取的用來(lái)收集針對(duì)基于第一指令集架構(gòu)(ISA)的第一CPU的線程事件數(shù)據(jù)的步驟的流程圖。當(dāng)只使用了特定類型的一個(gè)處理器時(shí),才使用圖3中所描述的性能監(jiān)視器。在一個(gè)實(shí)施例中,處理器組件包括單個(gè)主處理組件(PPE)處理器和多個(gè)協(xié)作處理組件(SPE)。在圖7中更詳細(xì)地描述了這個(gè)實(shí)施例。在具有單個(gè)PPE的實(shí)施例中,可以用圖3中所示出的步驟來(lái)對(duì)在處理器上運(yùn)行的線程進(jìn)行監(jiān)視。另一方面,當(dāng)在處理器組件中存在特定類型的多個(gè)處理器時(shí),使用圖4來(lái)監(jiān)視線程的性能。
回到圖3,處理開(kāi)始于300處,于是在步驟310處從性能配置文件220中取回針對(duì)被監(jiān)視的處理器類型的設(shè)置。在步驟320處,針對(duì)在性能配置文件中所指明的事件而開(kāi)啟事件跟蹤。在步驟330處,當(dāng)前正在處理器上運(yùn)行的線程完成或者超時(shí)。在步驟340處,性能監(jiān)視器收集在執(zhí)行剛剛完成的線程期間所積累的事件數(shù)據(jù)。在步驟350處,在共享內(nèi)存100內(nèi)的內(nèi)存區(qū)域110中存儲(chǔ)該事件數(shù)據(jù)。做出關(guān)于是否對(duì)配置設(shè)置進(jìn)行重置的決定(判決360)。例如,如果用戶對(duì)性能配置文件進(jìn)行了編輯(參見(jiàn)圖2,步驟200-215),則系統(tǒng)將對(duì)配置設(shè)置進(jìn)行重置。為了對(duì)配置設(shè)置進(jìn)行重置,判決360轉(zhuǎn)移到“是”分支365,其返回以清除配置設(shè)置并且取回存儲(chǔ)在性能配置文件中的配置設(shè)置。另一方面,如果不對(duì)配置設(shè)置進(jìn)行重置,則判決360轉(zhuǎn)移到“否”分支370,于是做出關(guān)于是否繼續(xù)對(duì)在處理器上運(yùn)行的線程進(jìn)行監(jiān)視的決定(判決375)。例如,用戶可以針對(duì)該處理器而關(guān)斷性能監(jiān)視或者關(guān)閉系統(tǒng)。如果繼續(xù)監(jiān)視,則判決375轉(zhuǎn)移到“是”分支380,其返回以收集針對(duì)下一個(gè)完成的線程的線程事件數(shù)據(jù)。這個(gè)循環(huán)繼續(xù)進(jìn)行直到關(guān)斷監(jiān)視或者發(fā)生系統(tǒng)關(guān)閉,在此時(shí)判決375轉(zhuǎn)移到“否”分支385而性能監(jiān)視在395處結(jié)束。
圖4是示出了由性能監(jiān)視器采取的用來(lái)收集針對(duì)一個(gè)或多個(gè)第二CPU的線程事件數(shù)據(jù)的步驟的流程圖,該第二CPU每個(gè)均基于第二ISA。當(dāng)只使用特定類型的多個(gè)處理器時(shí),使用圖4中所描述的性能監(jiān)視器。在一個(gè)實(shí)施例中,處理器組件包括多個(gè)協(xié)作處理組件(SPE)。在圖7中詳細(xì)描述這個(gè)實(shí)施例。在具有多個(gè)SPE的環(huán)境中,可以使用圖4所示出的步驟來(lái)監(jiān)視在處理器上運(yùn)行的線程。
處理開(kāi)始于400處,于是在步驟410處從性能配置文件220中取回針對(duì)被監(jiān)視的處理器類型的設(shè)置。在步驟420處,針對(duì)在性能配置文件中所指明的事件而開(kāi)啟事件跟蹤。在步驟430處,當(dāng)前正在處理器上運(yùn)行的線程完成或者超時(shí)。做出關(guān)于是否對(duì)線程正在其上運(yùn)行的處理器進(jìn)行監(jiān)視的決定(判決400)。例如,性能配置文件可以指示一個(gè)或多個(gè)處理器(例如SPE)未被監(jiān)視。如果性能監(jiān)視器正在對(duì)運(yùn)行剛剛完成的線程的處理器進(jìn)行監(jiān)視,則判決440轉(zhuǎn)移到“是”分支445,于是在步驟450處性能監(jiān)視器收集在執(zhí)行剛剛完成的線程期間所積累的事件數(shù)據(jù)。在步驟460處,在共享內(nèi)存100內(nèi)的內(nèi)存區(qū)域120中存儲(chǔ)該事件數(shù)據(jù)。另一方面,如果性能監(jiān)視器未監(jiān)視該SPE,則繞過(guò)步驟450和460,判決440轉(zhuǎn)移到“否”分支465。
做出關(guān)于是否對(duì)配置設(shè)置進(jìn)行重置的決定(判決470)。例如,如果用戶對(duì)性能配置文件進(jìn)行了編輯(參見(jiàn)圖2,步驟200-215),則系統(tǒng)將對(duì)配置設(shè)置進(jìn)行重置。為了對(duì)配置設(shè)置進(jìn)行重置,判決470轉(zhuǎn)移到“是”分支475,其返回以清除配置設(shè)置并且取回存儲(chǔ)在性能配置文件中的配置設(shè)置。另一方面,如果不對(duì)配置設(shè)置進(jìn)行重置,則判決470轉(zhuǎn)移到“否”分支478,于是做出關(guān)于是否繼續(xù)對(duì)在這種類型的處理器上運(yùn)行的線程進(jìn)行監(jiān)視的決定(判決480)。如果繼續(xù)進(jìn)行監(jiān)視,則判決480轉(zhuǎn)移到“是”分支485,其返回以收集針對(duì)在處理器之一(只要該處理器正被監(jiān)視著)上完成的下一個(gè)線程的線程事件數(shù)據(jù)。這個(gè)循環(huán)繼續(xù)進(jìn)行直到用戶關(guān)斷性能監(jiān)視或者發(fā)生系統(tǒng)關(guān)閉,在那時(shí)判決480轉(zhuǎn)移到“否”分支490而性能監(jiān)視在495處結(jié)束。
圖5是示出了由調(diào)度器采取的用來(lái)基于所收集的線程事件數(shù)據(jù)分配CPU時(shí)間的步驟的流程圖。在所示出的實(shí)施例中,使用單個(gè)調(diào)度器來(lái)調(diào)度針對(duì)兩種類型的處理器(基于例如PPE的第一ISA的那些處理器以及基于例如SPE的第二ISA的那些處理器)的線程。然而,可以容易地對(duì)所示出的調(diào)度器進(jìn)行修改,使得可以使用超過(guò)一個(gè)調(diào)度器來(lái)將線程調(diào)度到各種處理器類型。
處理開(kāi)始于500處,于是在步驟510處調(diào)度器從性能配置文件220取回CPU利用率閾值。在步驟520處,調(diào)度器取回關(guān)于下一個(gè)要分派給處理器之一的線程。在步驟530處,識(shí)別針對(duì)下一個(gè)線程的ISA和基于所識(shí)別ISA的處理器。例如,如果下一個(gè)線程運(yùn)行在第一ISA上,則識(shí)別基于第一ISA(例如,PPE)的處理器。另一方面,如果該線程運(yùn)行在第二ISA上,則識(shí)別基于第二ISA(例如,SPE之一)的處理器。
在所示出的實(shí)施例中,做出關(guān)于所識(shí)別的處理器的利用率是否低于針對(duì)該處理器所設(shè)置的閾值的決定(判決540)。在步驟510中事先讀取針對(duì)各個(gè)處理器的閾值。如果所識(shí)別的處理器的利用率低于針對(duì)該處理器所設(shè)置的閾值,則判決540轉(zhuǎn)移到“是”分支545,于是在步驟550處取回(根據(jù)它是運(yùn)行在第一ISA上的線程或運(yùn)行在第二ISA上的線程,從內(nèi)存110或內(nèi)存120中取回)由性能監(jiān)視器針對(duì)該線程所收集的性能數(shù)據(jù),并且對(duì)所取回的數(shù)據(jù)進(jìn)行分析。在步驟560處,如果有必要,就基于該分析對(duì)線程將接收的CPU時(shí)間量進(jìn)行調(diào)整。返回到判決540,如果所識(shí)別的處理器的利用率不低于針對(duì)該處理器所設(shè)置的閾值,則繞過(guò)步驟550到560,判決540轉(zhuǎn)移到“否”分支565。在替代性的實(shí)施例中,不執(zhí)行判決540,因此不管處理器的利用率如何,都執(zhí)行步驟550和560。
在步驟570處,一旦當(dāng)前正在所識(shí)別的處理器上運(yùn)行的線程結(jié)束或者被換出,就將線程分派給所識(shí)別的處理器。做出關(guān)于是否對(duì)閾值進(jìn)行重置的決定(判決575)。如果用戶使用圖2中所示出的步驟200到215對(duì)性能配置文件220進(jìn)行了編輯,則閾值將被重置。如果閾值被重置,則判決575轉(zhuǎn)移到“是”分支580,其返回到步驟510處讀取新的利用率閾值。另一方面,如果利用率閾值未被重置,則判決575轉(zhuǎn)移到“否”分支582。
做出關(guān)于是否繼續(xù)進(jìn)行處理的另一個(gè)決定(判決585)。在系統(tǒng)正在運(yùn)行的同時(shí),處理繼續(xù)進(jìn)行,目的是調(diào)度用于執(zhí)行的線程(也即,處理繼續(xù)進(jìn)行直到系統(tǒng)關(guān)閉)。如果處理繼續(xù)進(jìn)行,則判決585轉(zhuǎn)移到“是”分支588,其返回以調(diào)度并分派下一個(gè)用于執(zhí)行的線程。這個(gè)循環(huán)繼續(xù)進(jìn)行直到系統(tǒng)關(guān)閉,在那時(shí)判決585轉(zhuǎn)移到“否”分支590并且處理在595處結(jié)束。
圖6說(shuō)明了信息處理系統(tǒng)601,其是能夠執(zhí)行這里所描述的計(jì)算操作的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化例子。計(jì)算機(jī)系統(tǒng)601包括耦合到主機(jī)總線602的處理器600。第二級(jí)(L2)高速緩存604也耦合到主機(jī)總線602。主機(jī)-PCI橋606被耦合到主內(nèi)存608,包括高速緩存和主內(nèi)存控制功能,并且提供總線控制以處理在PCI總線610、處理器600、L2高速緩存604、主內(nèi)存608和主機(jī)總線602之間的傳輸。主內(nèi)存608耦合到主機(jī)-PCI橋606以及主機(jī)總線602。諸如LAN卡630之類的由主機(jī)處理器600單獨(dú)使用的設(shè)備耦合到PCI總線610。服務(wù)處理器接口和ISA存取通路612提供了在PCI總線610與PCI總線614之間的接口。以這種方式,PCI總線614與PCI總線610絕緣。諸如閃存618之類的設(shè)備耦合到PCI總線614。在一種實(shí)現(xiàn)中,閃存618包括BIOS代碼,該代碼結(jié)合了用于各種低級(jí)系統(tǒng)功能和系統(tǒng)啟動(dòng)功能的必需的處理器可執(zhí)行代碼。
PCI總線614提供了用于由主機(jī)處理器600和服務(wù)處理器616所共享的各種設(shè)備的接口,該設(shè)備包括例如閃存618。PCI-ISA橋635提供總線控制以處理在PCI總線614和ISA總線640、通用串行總線(USB)功能645、電源管理功能655之間的傳輸,并且可以包括其他未示出的功能組件,諸如實(shí)時(shí)時(shí)鐘(RTC)、DMA控制、終端支持、以及系統(tǒng)管理總線支持。非易失性RAM 620被附連到ISA總線640。服務(wù)處理器616包括用于在初始化步驟期間與處理器600進(jìn)行通信的JTAG和I2C總線622。JTAG/I2C總線622還耦合到L2高速緩存604、主機(jī)-PCI橋606和主內(nèi)存608,提供在處理器、服務(wù)處理器、L2高速緩存、主機(jī)-PCI橋以及主內(nèi)存之間的通信路徑。服務(wù)處理器616還可以使用系統(tǒng)電源資源,用于關(guān)斷信息處理設(shè)備601的電源。
外圍設(shè)備和輸入/輸出(I/O)設(shè)備可以被附連到各種接口(例如,并行接口622、串行接口664、鍵盤接口668和耦合到ISA總線640的鼠標(biāo)接口670)。作為替代,附連到ISA總線640的超級(jí)I/O控制器(未示出)可以適應(yīng)許多I/O設(shè)備。
為了將計(jì)算機(jī)系統(tǒng)601附連到另一個(gè)計(jì)算機(jī)系統(tǒng)以通過(guò)網(wǎng)絡(luò)來(lái)復(fù)制文件,將LAN卡630耦合到PCI總線610。類似地,為了將計(jì)算機(jī)系統(tǒng)601連接到ISP以使用電話線連接來(lái)連接到互聯(lián)網(wǎng),將調(diào)制解調(diào)器675連接到串行端口664和PCI-ISA橋635。
盡管圖6中所描述的計(jì)算機(jī)系統(tǒng)能夠執(zhí)行這里所描述的進(jìn)程,但是這種計(jì)算機(jī)系統(tǒng)只是計(jì)算機(jī)系統(tǒng)的一個(gè)例子。本領(lǐng)域的普通技術(shù)人員將意識(shí)到,許多其他的計(jì)算機(jī)系統(tǒng)設(shè)計(jì)能夠執(zhí)行這里所描述的進(jìn)程。
圖7是說(shuō)明具有主處理器和多個(gè)共享系統(tǒng)內(nèi)存的輔助處理器的處理組件的框圖。圖7描繪了可以用于實(shí)現(xiàn)本發(fā)明的一種異類處理環(huán)境。主處理器組件(PPE)705包括處理單元(PU)710,其在一個(gè)實(shí)施例中充當(dāng)主處理器并運(yùn)行操作系統(tǒng)。例如,處理單元710可以是執(zhí)行Linux操作系統(tǒng)的Power PC內(nèi)核。PPE 705還包括諸如SPE 745、765和785的多個(gè)協(xié)作處理組件(SPE)。SPE包括充當(dāng)PU 710的輔助處理單元的協(xié)作處理單元(SPU)、內(nèi)存存儲(chǔ)單元和本地存儲(chǔ)設(shè)備。例如,SPE 745包括SPU 760、MMU 755和本地存儲(chǔ)器(storage)759;SPE 765包括SPU770、MMU 775、和本地存儲(chǔ)器779;以及SPE 785包括SPU 790、MMU795和本地存儲(chǔ)器799。
可以將每個(gè)SPE配置成執(zhí)行不同的任務(wù),并且相應(yīng)地在一個(gè)實(shí)施例中可以使用不同的指令集來(lái)存取每個(gè)SPE。例如,如果在無(wú)線通信系統(tǒng)中使用PPE 705,則每個(gè)SPE可以負(fù)責(zé)諸如調(diào)制、碼片速率處理、編碼、網(wǎng)絡(luò)接口等單獨(dú)的處理任務(wù)。在另一個(gè)實(shí)施例中,SPE可以具有同樣的指令集并且可以彼此并行地使用以執(zhí)行受益于并行處理的操作。
PPE 705還可包括針對(duì)PU710的使用的第二級(jí)高速緩存,諸如L2高速緩存715。另外,PPE 705包括在PU 710和SPU間共享的系統(tǒng)儲(chǔ)存器720。例如,系統(tǒng)儲(chǔ)存器720可以存儲(chǔ)正在運(yùn)行的操作系統(tǒng)(其可以包括內(nèi)核)、設(shè)備驅(qū)動(dòng)程序、I/O配置等等的鏡像、正在執(zhí)行的應(yīng)用程序以及其他數(shù)據(jù)。系統(tǒng)內(nèi)存720包括一個(gè)或多個(gè)SPE的本地存儲(chǔ)單元,其被映射到系統(tǒng)內(nèi)存720中的區(qū)。例如,可以將本地存儲(chǔ)器759映射到映射區(qū)740,而可以將本地存儲(chǔ)器799映射到映射區(qū)742。PU 710和SPE彼此間進(jìn)行通信并且通過(guò)總線717與系統(tǒng)內(nèi)存720進(jìn)行通信,該總線717被配置成在這些設(shè)備間傳遞數(shù)據(jù)。
MMU負(fù)責(zé)在SPU的本地存儲(chǔ)器和系統(tǒng)內(nèi)存之間傳輸數(shù)據(jù)。在一個(gè)實(shí)施例中,MMU包括被配置成執(zhí)行該功能的直接存儲(chǔ)器存取(DMA)控制器。PU 710可以將MMU編程成控制哪些內(nèi)存區(qū)可以供MMU中的每個(gè)使用。通過(guò)改變可供每個(gè)MMU使用的映射,PU可以控制哪個(gè)SPU可以存取系統(tǒng)內(nèi)存720的哪個(gè)區(qū)。以這種方式,PU可以例如將系統(tǒng)內(nèi)存的區(qū)指定成專用的供特定的SPU單獨(dú)使用。在一個(gè)實(shí)施例中,PU 710以及其他SPU使用存儲(chǔ)器映射可以存取SPU的本地存儲(chǔ)器。在一個(gè)實(shí)施例中,PU 710管理用于所有SPU的公共系統(tǒng)內(nèi)存720的存儲(chǔ)器映射。存儲(chǔ)器映射表可以包括PU 710的L2高速緩存715、系統(tǒng)內(nèi)存720以及SPU的共享本地存儲(chǔ)器。
在一個(gè)實(shí)施例中,SPU在PU 710的控制下處理數(shù)據(jù)。SPU可以是例如數(shù)字處理內(nèi)核、微處理器內(nèi)核、微控制器內(nèi)核等,或者是上面這些內(nèi)核的組合。本地存儲(chǔ)器中的每個(gè)儲(chǔ)存均是與特定SPU相關(guān)聯(lián)的儲(chǔ)存器區(qū)域。在一個(gè)實(shí)施例中,每個(gè)SPU可以將其本地存儲(chǔ)器配置成專用的儲(chǔ)存區(qū)域、共享儲(chǔ)存區(qū)域,或者SPU可以將其本地存儲(chǔ)器配置成部分專用和部分共享的儲(chǔ)存。
例如,如果SPU需要大量的本地存儲(chǔ)器,則SPU可以將其本地存儲(chǔ)器100%地分派給只可由那個(gè)SPU存取的專用內(nèi)存。另一方面,如果SPU需要最小量的本地存儲(chǔ)器,則SPU可以將其本地存儲(chǔ)器的10%分派給專用內(nèi)存并且將剩余的90%分派給共享內(nèi)存。共享內(nèi)存可以由PU710和其他SPU存取。SPU可以保留其本地存儲(chǔ)器的一部分,目的是為了使SPU在執(zhí)行需要快速存取的任務(wù)的時(shí)候具有快速有保證的內(nèi)存存取。SPU還可以在處理敏感數(shù)據(jù)時(shí)將其本地存儲(chǔ)器的一部分保留為專用,例如當(dāng)SPU正在執(zhí)行加密/解密時(shí),就是這種情況。
本發(fā)明的優(yōu)選實(shí)現(xiàn)之一是客戶端應(yīng)用,也即是在代碼模塊中的指令集(程序代碼)或者其他功能描述性材料,例如該代碼模塊可以駐留計(jì)算機(jī)的隨機(jī)存取存儲(chǔ)器中。直到計(jì)算機(jī)需要,指令集可以存儲(chǔ)在另一個(gè)計(jì)算機(jī)存儲(chǔ)器中,例如存儲(chǔ)在硬盤驅(qū)動(dòng)中或諸如光盤(最終供在CDROM中使用)或軟盤(最終供在軟盤驅(qū)動(dòng)中使用)之類的可移動(dòng)存儲(chǔ)器中,或者經(jīng)由互聯(lián)網(wǎng)或其他計(jì)算機(jī)網(wǎng)絡(luò)來(lái)下載。因此,本發(fā)明可以實(shí)現(xiàn)為在計(jì)算機(jī)中使用的計(jì)算機(jī)程序產(chǎn)品。另外,盡管可以方便地在由軟件選擇性地激活或重新配置的通用計(jì)算機(jī)中實(shí)現(xiàn)所描述的各種方法,但是本領(lǐng)域的普通技術(shù)人員還將認(rèn)識(shí)到,可以以硬件、固件或構(gòu)造成執(zhí)行所需要的方法步驟的更專用的設(shè)備中實(shí)現(xiàn)這些方法。功能描述性材料是將功能性告知給機(jī)器的信息。功能描述性材料包括但不限于計(jì)算機(jī)程序、指令、規(guī)則、事實(shí)、可計(jì)算功能的定義、對(duì)象和數(shù)據(jù)結(jié)構(gòu)。
盡管已經(jīng)示出并描述了本發(fā)明的特定實(shí)施例,但是基于這里的教導(dǎo),本領(lǐng)域的普通技術(shù)人員將很清楚,在不偏離本發(fā)明以及其更寬的方面的條件下,可以做出改變和修改。由此,所附權(quán)利要求書將在其范圍中包括屬于本發(fā)明的真實(shí)精神和范圍內(nèi)的所有這種改變和修改。此外,將理解到,本發(fā)明唯一地由所附權(quán)利要求書來(lái)限定。本領(lǐng)域的普通技術(shù)人員將理解,如果特定數(shù)量的引入的權(quán)利要求要素是想要的,則將在權(quán)利要求中明確地書面敘述這種意圖,并且在缺少這種書面敘述的時(shí)候,不存在任何這樣的限制。針對(duì)用于幫助理解的非限制性的例子,后續(xù)所附的權(quán)利要求書包含使用介紹性的短語(yǔ)“至少一個(gè)”和“一個(gè)或多個(gè)”以介紹權(quán)利要求要素。然而,不應(yīng)該將使用這種短語(yǔ)解釋成暗示由非限制性冠詞“一”或“一個(gè)”來(lái)介紹權(quán)利要求要素會(huì)將包含所介紹的這種權(quán)利要求要素的任何特定的權(quán)利要求限制到只包含一個(gè)這樣的要素的發(fā)明,即使當(dāng)同一權(quán)利要求包括介紹性的短語(yǔ)“一個(gè)或多個(gè)”或“至少一個(gè)”以及諸如“一”或“一個(gè)”之類的非限定性冠詞,也是如此;同樣的情況適用于在權(quán)利要求書中對(duì)限定性冠詞的使用。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,其包括收集對(duì)應(yīng)于在一個(gè)或多個(gè)第一處理器上運(yùn)行的第一多個(gè)線程的線程性能數(shù)據(jù),所述第一處理器基于第一指令集架構(gòu)(ISA);收集對(duì)應(yīng)于在一個(gè)或多個(gè)第二處理器上運(yùn)行的第二多個(gè)線程的線程性能數(shù)據(jù),所述第二處理器基于第二ISA,其中所述第一處理器和所述第二處理器共享可以從所述第一處理器和所述第二處理器進(jìn)行存取的內(nèi)存;對(duì)針對(duì)所述第一多個(gè)線程和第二多個(gè)線程所收集的線程性能數(shù)據(jù)進(jìn)行分析;以及基于所述分析,對(duì)分配給所述第一多個(gè)線程和第二多個(gè)線程中所包括的至少一個(gè)線程的CPU時(shí)間量進(jìn)行調(diào)整。
2.根據(jù)權(quán)利要求1所述的方法,其中對(duì)CPU時(shí)間量進(jìn)行調(diào)整包括修改優(yōu)先級(jí)值。
3.根據(jù)權(quán)利要求1所述的方法,其還包括從用戶接收性能選項(xiàng);以及在存儲(chǔ)區(qū)域中存儲(chǔ)所述接收的性能選項(xiàng),其中所述收集的性能數(shù)據(jù)對(duì)應(yīng)于所述接收的性能選項(xiàng)。
4.根據(jù)權(quán)利要求3所述的方法,其還包括基于所述接收的性能選項(xiàng),選擇所述一個(gè)或多個(gè)第一處理器以及所述一個(gè)或多個(gè)第二處理器,其中僅針對(duì)在所選擇的第一處理器和第二處理器上運(yùn)行的線程來(lái)收集線程性能數(shù)據(jù)。
5.根據(jù)權(quán)利要求3所述的方法,其中所述分析還包括將所述收集的線程性能數(shù)據(jù)與在所述接收的性能選項(xiàng)中包括的一個(gè)或多個(gè)閾值進(jìn)行比較。
6.根據(jù)權(quán)利要求1所述的方法,其還包括使用公共調(diào)度器對(duì)所述第一多個(gè)線程和第二多個(gè)線程進(jìn)行調(diào)度,所述公共調(diào)度器從所述共享內(nèi)存中讀取所述收集的線程性能數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的方法,其中公共調(diào)度器對(duì)所述第一多個(gè)線程和第二多個(gè)線程進(jìn)行調(diào)度,所述方法還包括在所述共享內(nèi)存中存儲(chǔ)所收集的線程性能數(shù)據(jù);取回對(duì)應(yīng)于所述第一處理器中的至少一個(gè)和對(duì)應(yīng)于所述第二處理器中的至少一個(gè)的CPU線程利用率閾值;以及將所述取回的CPU線程利用率閾值與對(duì)應(yīng)于所述取回的CPU線程利用率閾值的當(dāng)前CPU利用率進(jìn)行比較,其中只對(duì)那些具有低于所述取回的CPU線程利用率閾值的當(dāng)前CPU利用率的處理器執(zhí)行所述分析和調(diào)整。
8.一種信息處理系統(tǒng),其包括多個(gè)異類處理器,其中所述多個(gè)異類處理器包括一個(gè)或多個(gè)基于第一指令集架構(gòu)(ISA)的第一處理器和一個(gè)或多個(gè)基于第二指令集架構(gòu)(ISA)的第二處理器;對(duì)應(yīng)于所述多個(gè)異類處理器中的每個(gè)的本地存儲(chǔ)器;可以由所述異類處理器來(lái)存取的共享內(nèi)存;以及存儲(chǔ)在所述本地存儲(chǔ)器中的一個(gè)本地存儲(chǔ)器中的一組指令,其中一個(gè)或多個(gè)所述異類處理器執(zhí)行該組指令以執(zhí)行下面的動(dòng)作收集對(duì)應(yīng)于在所述第一處理器上運(yùn)行的第一多個(gè)線程的線程性能數(shù)據(jù);收集對(duì)應(yīng)于在所述第二處理器上運(yùn)行的第二多個(gè)線程的線程性能數(shù)據(jù);分析針對(duì)所述第一多個(gè)線程和第二多個(gè)線程所收集的線程性能數(shù)據(jù);以及基于所述分析,對(duì)分配給所述第一多個(gè)線程和第二多個(gè)線程中所包括的至少一個(gè)線程的CPU時(shí)間量進(jìn)行調(diào)整。
9.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),其還包括執(zhí)行下面動(dòng)作的指令從用戶接收性能選項(xiàng);以及在存儲(chǔ)區(qū)域中存儲(chǔ)所述接收的性能選項(xiàng),其中所述收集的性能數(shù)據(jù)對(duì)應(yīng)于所述接收的性能選項(xiàng)。
10.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),其還包括執(zhí)行下面動(dòng)作的指令基于所述接收的性能選項(xiàng),選擇所述一個(gè)或多個(gè)第一處理器以及所述一個(gè)或多個(gè)第二處理器,其中僅針對(duì)在所選擇的第一處理器和第二處理器上運(yùn)行的線程來(lái)收集線程性能數(shù)據(jù)。
11.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),其還包括執(zhí)行下面動(dòng)作的指令將所述收集的線程性能數(shù)據(jù)與在所述接收的性能選項(xiàng)中包括的一個(gè)或多個(gè)閾值進(jìn)行比較。
12.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),其還包括執(zhí)行下面動(dòng)作的指令使用公共調(diào)度器對(duì)所述第一多個(gè)線程和第二多個(gè)線程進(jìn)行調(diào)度,所述公共調(diào)度器從所述共享內(nèi)存中讀取所述收集的線程性能數(shù)據(jù)。
13.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),其中公共調(diào)度器對(duì)所述第一多個(gè)線程和第二多個(gè)線程進(jìn)行調(diào)度,所述信息處理系統(tǒng)還包括執(zhí)行下面動(dòng)作的指令在所述共享內(nèi)存中儲(chǔ)存所收集的線程性能數(shù)據(jù);取回對(duì)應(yīng)于所述第一處理器中的至少一個(gè)和對(duì)應(yīng)于所述第二處理器中的至少一個(gè)的CPU線程利用率閾值;以及將所述取回的CPU線程利用率閾值與對(duì)應(yīng)于所述取回的CPU線程利用率閾值的當(dāng)前CPU利用率進(jìn)行比較,其中只對(duì)那些具有低于所述取回的CPU線程利用率閾值的當(dāng)前CPU利用率的處理器執(zhí)行所述分析和調(diào)整。
全文摘要
本發(fā)明提出了一種使用性能監(jiān)視器來(lái)優(yōu)化系統(tǒng)性能的系統(tǒng)、方法和程序產(chǎn)品。該系統(tǒng)使用性能監(jiān)視器來(lái)收集針對(duì)在第一ISA處理器或第二ISA處理器上運(yùn)行的線程的線程性能數(shù)據(jù)。在單個(gè)計(jì)算機(jī)系統(tǒng)中可以包括多個(gè)第一處理器和多個(gè)第二處理器。所述第一處理器和第二處理器每個(gè)均可以存取存儲(chǔ)在公共共享內(nèi)存中的數(shù)據(jù)。對(duì)所收集的線程性能數(shù)據(jù)進(jìn)行分析以確定對(duì)應(yīng)的線程是否需要額外的CPU時(shí)間以優(yōu)化系統(tǒng)性能。如果需要額外的CPU時(shí)間,則改變(增加)線程接收的CPU時(shí)間量,因此當(dāng)調(diào)度器進(jìn)行了調(diào)度時(shí)線程接收該額外的時(shí)間。在一個(gè)實(shí)施例中,通過(guò)改變對(duì)應(yīng)于線程的優(yōu)先級(jí)值來(lái)完成額外的CPU時(shí)間。
文檔編號(hào)G06F15/16GK101093456SQ200710103849
公開(kāi)日2007年12月26日 申請(qǐng)日期2007年5月16日 優(yōu)先權(quán)日2006年6月21日
發(fā)明者S·J·曼寧, J·M·斯塔福德, D·J·厄爾布, M·小阿吉拉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
武清区| 岳阳县| 汉川市| 马公市| 霞浦县| 岳阳市| 临江市| 渝北区| 道孚县| 仙游县| 五莲县| 牟定县| 淄博市| 合水县| 奎屯市| 漠河县| 科尔| 江华| 潞城市| 海兴县| 诸暨市| 三河市| 迁安市| 内丘县| 道真| 普兰县| 都兰县| 韶关市| 镇康县| 镇康县| 读书| 伊通| 阜城县| 皮山县| 绿春县| 水富县| 荣昌县| 石楼县| 东阿县| 曲阜市| 同仁县|