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

利用線程id和線程特權(quán)級的事件檢測的限定的制作方法

文檔序號:6477700閱讀:188來源:國知局
專利名稱:利用線程id和線程特權(quán)級的事件檢測的限定的制作方法
技術(shù)領(lǐng)域
一般地,本發(fā)明涉及處理器領(lǐng)域,尤其是用于監(jiān)視多線程處理器的執(zhí)行的方法和設(shè)備。
背景和相關(guān)領(lǐng)域在典型的處理器系統(tǒng)中,一個或多個應(yīng)用程序正在運行(例如,由處理器執(zhí)行)。在該領(lǐng)域中已知,應(yīng)用程序的代碼可以被分成多個進程,并且每個進程又可以被分成多個線程。因此線程可以是由處理器為實現(xiàn)一個給定任務(wù)(例如,一個子程序)執(zhí)行的一系列指令。處理器通常在進程的線程之間和一個或多個應(yīng)用程序的進程之間轉(zhuǎn)換(例如,在多任務(wù)環(huán)境中),但是這些單線程處理器,如在當(dāng)前領(lǐng)域中所知的,僅能支持當(dāng)時執(zhí)行的一個線程。換句話說,單線程處理器不能超過兩個或多個線程同步執(zhí)行指令,并且多線程的使用需要這些處理器在線程之間連續(xù)地來回轉(zhuǎn)換。但是,處理器技術(shù)的最新進步已經(jīng)允許多線程處理器的發(fā)展,能夠支持同步執(zhí)行的兩個或多個線程。
在同步多線程發(fā)展之前,通過測量和監(jiān)視影響處理器性能的不同參數(shù),計算機設(shè)計者能夠進一步改善它們的機器的性能。例如,當(dāng)其執(zhí)行預(yù)期的應(yīng)用程序的時候,通過測量機器的系統(tǒng)性能,該計算機設(shè)計者能被更好的輔助他或她努力設(shè)計平衡的計算機系統(tǒng)。系統(tǒng)性能監(jiān)視典型地通過使用片上性能寄存器完成,片上執(zhí)行寄存器能夠監(jiān)視能夠特征化處理器性能的確定的處理器事件。例如,在Intel Pentium處理器的幾個模式中,在片上提供下面的性能寄存器64位時間標(biāo)記計數(shù)器(TSC),兩個可編程事件計數(shù)器(CTR0,CTR1),以及控制和事件選擇寄存器(CESR)。該CESR是可編程的,以允許事件計數(shù)器(CTR0,CTR1)對特定事件的發(fā)生計數(shù),或者當(dāng)事件條件存在或者不存在的時候,對時鐘信號計數(shù)。例如,通過將適當(dāng)?shù)娜掌谥捣胖迷贑ESR中,該第一計數(shù)器,即CTR0,能夠設(shè)置成對由處理器執(zhí)行的數(shù)據(jù)讀操作的次數(shù)計數(shù)。一旦CTR0被設(shè)置為執(zhí)行該任務(wù),每一次處理器執(zhí)行一個數(shù)據(jù)讀操作,CTR0將其內(nèi)部計數(shù)加一。類似地,該CESR是可編程的,以允許第二計數(shù)器,即CTR1,對不同的事件同步計數(shù)。該事件計數(shù)最終被存儲在能夠被用戶訪問的事件計數(shù)器(CTR0,CTR1)的寄存器中,以檢測特征化處理器性能的事件。存在能夠利用該系統(tǒng)被監(jiān)視的多個事件,例如數(shù)據(jù)高速緩沖讀/寫失敗,段寄存器裝載等等。
上述的性能監(jiān)視系統(tǒng)對于軟件程序員是有用的。例如,該性能監(jiān)視系統(tǒng)能夠檢測用于在軟件應(yīng)用程序設(shè)計中表示無效的事件。此外,處理器設(shè)計者和計算機結(jié)構(gòu)設(shè)計者也能夠得到收益,因為該系統(tǒng)允許他們觀察軟件應(yīng)用程序?qū)⑷绾卧谔幚砥魃蠄?zhí)行。因此,能夠優(yōu)化硬件設(shè)計,以提供用于通用軟件(例如,操作系統(tǒng))執(zhí)行的最佳性能。
前述性能監(jiān)視系統(tǒng)的缺點是,最初關(guān)注處理器的操作,而不考慮多線程處理器的哪一個線程正在被執(zhí)行。例如,在結(jié)合了音頻進程和視頻進程的多媒體應(yīng)用程序中,用戶能夠使用前面的系統(tǒng)以確定在應(yīng)用程序的執(zhí)行過程中,大于已經(jīng)發(fā)生的數(shù)據(jù)高速緩沖讀/寫失敗的正常數(shù)目。但是,利用在當(dāng)前領(lǐng)域中已知的技術(shù),用戶將不能確定哪些獨立的執(zhí)行線程,例如,那些包含在音頻和視頻進程中的線程,對數(shù)據(jù)高速緩沖讀/寫失敗的數(shù)目起作用。在多線程處理器中該限制甚至更加有問題,其中線程同步執(zhí)行,因為對處理器在線程之間的轉(zhuǎn)換保持跟蹤不足以正確確定事件在哪一個線程處發(fā)生。最后,如果被監(jiān)視的特定事件對應(yīng)用程序的操作有不利影響,將優(yōu)先確定事件從哪一個線程發(fā)生以及在什么特權(quán)級發(fā)生。
那么所需要的則是用于檢測由多線程處理器的特定線程、或者一組線程產(chǎn)生的事件的方法和裝置。下面將要看到,本發(fā)明能夠確定某些事件是否由單獨的線程產(chǎn)生或者由一系列同步執(zhí)行的線程產(chǎn)生。通常,本發(fā)明能夠通過結(jié)合利用線程ID的事件限定和利用線程當(dāng)前特權(quán)級(CPL)的事件限定來實現(xiàn)。
發(fā)明概述在本發(fā)明設(shè)備的一個實施例中,提供了一個多線程處理器,適合于在多個線程同步執(zhí)行指令。該處理器包括多個事件檢測器,用于檢測在處理器指令執(zhí)行期間特定處理器事件的發(fā)生。該處理器也包括多個特定事件選擇控制寄存器,它們被編程以控制被監(jiān)視的事件的選擇,掩蔽和限定。通過事件的線程ID和線程當(dāng)前權(quán)限級別(CPL)對事件限定,因此本發(fā)明能夠?qū)⑻幚砥魇录w因于特定線程的執(zhí)行。被限定的事件利用保持對被監(jiān)視的所有處理器事件跟蹤的幾個可編程事件計數(shù)器中的一個進行最終計數(shù)。該事件計數(shù)器的內(nèi)容可以通過程序指令被訪問和采樣,從而提供關(guān)于處理器性能的信息。
附圖的簡要說明根據(jù)詳細描述和附圖,本發(fā)明將得到更充分的理解,但是,不應(yīng)當(dāng)作為對本發(fā)明所示特定實施例的限制,而僅是為了解釋說明和理解。


圖1是本發(fā)明的性能監(jiān)視器特征的框圖。
圖2表示了用于控制事件選擇,掩蔽和限定的控制和事件選擇寄存器。
詳細說明下面描述了用于監(jiān)視涉及多線程處理器性能的事件的方法和設(shè)備。通常,本發(fā)明用于對基于單線程的實際系統(tǒng)中的多線程處理器進行特征化。該特征化能夠用于調(diào)整(或改善)應(yīng)用程序以及操作系統(tǒng)的性能。這一能力是在調(diào)整的時候,獲得計算機系統(tǒng)在需要的性能級別下操作的關(guān)鍵,例如,多媒體和/或?qū)崟r應(yīng)用程序。在下面的描述中,提出了多個特定細節(jié),例如事件類型,位長度,寄存器數(shù)量和大小等,以便于提供對本發(fā)明的完全理解。但是,對于熟知本領(lǐng)域的人員顯而易見這些特定細節(jié)在實現(xiàn)本發(fā)明的時候可以不需要。換句話說,公知的計算機體系元件和電子電路不必在特定的細節(jié)中描述,從而避免對本發(fā)明不必要的誤解。
對于本發(fā)明的目的,術(shù)語“多線程處理器”應(yīng)當(dāng)是指任何能夠超過多個內(nèi)部線程同步執(zhí)行一指令序列(例如,宏指令或微指令)的機器。此外,“處理器”應(yīng)該包括,但是不限于此,通用微處理器,專用微處理器,圖形控制器,音頻控制器,多媒體控制器,微控制器,或者網(wǎng)絡(luò)控制器。而且,術(shù)語“處理器”應(yīng)當(dāng)指,和其他的事物,復(fù)雜指令集計算機(CISC),精簡指令集計算機(RISC),或者超長指令字(VLIW)處理器。
對于本發(fā)明的目的,術(shù)語“事件”應(yīng)當(dāng)指任何邏輯信號或者其它電信號,它們指出多線程處理器上一些特定活動的發(fā)生或持續(xù)時間。例如,硬件性能事件(通常是指EMON事件)和微斷點事件都能夠利用本發(fā)明進行檢測。EMON事件用于理解應(yīng)用程序或操作系統(tǒng)如何執(zhí)行,以及指出由硬件/軟件交互產(chǎn)生的處理器活動的發(fā)生和持續(xù)時間。一旦發(fā)生一定數(shù)量的這些事件,微斷點事件用于調(diào)試并允許設(shè)計者凍結(jié)處理器的操作。典型地,包括由本發(fā)明監(jiān)視的事件列表的信號是已經(jīng)存在或者產(chǎn)生的,作為多線程處理器正常操作的部分。
所描述的本發(fā)明的特定的示范實施例最初以硬件或者軟件的形式實現(xiàn)。盡管如此,熟知本領(lǐng)域的人員意識到許多特征將以硬件,軟件或者硬件與軟件結(jié)合的形式實現(xiàn)。
包括本發(fā)明的實施例的計算機結(jié)構(gòu)的一個例子在圖1中表示。圖1表示包括多線程處理器10的集成電路,具有中央處理單元(CPU),能夠執(zhí)行指令序列。在集成電路上包括一個設(shè)備,用于監(jiān)視多線程微處理器的性能——尤其是與處理器正常操作相關(guān)的不同參數(shù)和事件。
在本發(fā)明的一個實施例中,多線程處理器10被分成4個本地區(qū)域,并且每個本地區(qū)域進一步被分成本地子區(qū)域。處理器10中的子區(qū)域總數(shù)為24,并且每個區(qū)域中子區(qū)域的數(shù)目介于3和8之間。每個本地子區(qū)域包括兩個事件選擇控制寄存器(ESCR)。每個ESCR能夠控制產(chǎn)生于其各自本地子區(qū)域的事件的檢測。處理器10也包括事件計數(shù)器70,其總共包括18個40位可編程事件計數(shù)器。此外,前述4個本地區(qū)域中的每一個包括4到6個事件計數(shù)器。處理器10的每個ESCR能夠耦合到一個獨立的事件計數(shù)器,只要該事件計數(shù)器包括在同樣的本地區(qū)域內(nèi)。例如,ESCR30是用于控制事件計數(shù)器70的部分的諸多ESCR中的一個。如圖1中所示,ESCR30可以耦合到可編程計數(shù)器1或者可編程計數(shù)器2,因為它們包括在和ESCR30相同的本地區(qū)域內(nèi);但是,ESCR30不可以耦合到可編程計數(shù)器18,因為它不包括在同一個本地區(qū)域內(nèi)。
ESCR30控制事件選擇,掩蔽以及限定。ESCR30通過幾個可編程位的字段完成這些任務(wù)。如圖2所示,這些字段包括一個6位事件選擇(ES)字段,一個16位事件掩蔽(EM)字段,以及4個附加事件限定(EQ)位(T0_USR,T0_OS,T1_USR,T1_OS)。如前面提到的,ESCR30能夠耦合到由事件計數(shù)器70代表的幾個可編程事件計數(shù)器。事件計數(shù)器70中每一個事件計數(shù)器中的內(nèi)容可以被來自處理器10的指令編程,以及事件計數(shù)器的編程將啟動其耦合至ESCR,以便其可以開始對所選擇的事件計數(shù)。應(yīng)當(dāng)理解,事件計數(shù)器或者ESCR的數(shù)量可以在替換實施例中有所不同,而不影響本發(fā)明的實現(xiàn)的結(jié)果。
當(dāng)事件信號被包括在多線程處理器10中的事件檢測器發(fā)送的時候,事件監(jiān)視開始。這些事件信號包括下列部分高速緩沖命中,時鐘脈沖,地址產(chǎn)生互鎖等等。在本發(fā)明的一個實施例中,處理器10包括40至50個事件檢測器,并且每個檢測器能夠在一個或多個線程(T0,T1,……TX)同步執(zhí)行期間檢測特定事件的發(fā)生。該事件的檢測將觸發(fā)將事件信號20從處理器10傳輸至一組串聯(lián)的兩個多路復(fù)用器(MUX40和50)。當(dāng)ESCR30的ES字段指示MUX40選擇來自事件信號20的一類事件以便進一步被MUX50多路復(fù)用的時候,事件選擇的第一步驟發(fā)生。隨后,ESCR30的EM字段指示MUX50選擇事件的子類進行掩蔽——保留,最后,只有一個單獨的事件信號被傳輸給邏輯塊60。
可以由ES字段選擇的事件類的例子為分支引退。該類進一步被分成6個分支引退的子類微,宏,不執(zhí)行,執(zhí)行,預(yù)測和誤預(yù)測。EM字段將有效地過濾出沒有被計數(shù)的事件的子類,僅留下將被限定的分支引退的一個子類(例如,微分支引退)。
在事件選擇和掩蔽之后,在被事件計數(shù)器計數(shù)之前,事件必須在附加條件組下限定。事件限定發(fā)生在邏輯塊60處,并且被ESCR30的4個EQ位(T0_USR,T0_OS,T1_USR和T1_OS)數(shù)值組控制。這些位的功能在下面的表1中表示。這些位以特定順序設(shè)置,以便利用線程ID和線程當(dāng)前特權(quán)級(CPL)限定一個事件。該線程ID指明事件源,即,事件發(fā)生在該處的線程。該線程CPL指明當(dāng)事件發(fā)生的時候,線程正在操作的特權(quán)級。為0的CPL指明線程正在執(zhí)行應(yīng)用程序級指令,為1,2,或3的CPL指明線程正在執(zhí)行管理級指令。例如,CPL限定使之可能在系統(tǒng)級(OS)高速緩沖錯誤率和用戶(USR)級高速緩沖錯誤率之間區(qū)別。
表1位 名稱 描述/功能0 T1_USR 如果(Thread=T1)且(T1_CPL=1|2|3),輸出事件計數(shù)1 T1_OS 如果(Thread=T1)且(T1_CPL=0),輸出事件計數(shù)2 T0_USR 如果(Thread=T0)且(T0_CPL=1|2|3),輸出事件計數(shù)3 T0_OS 如果(Thread=T0)且(T0_CPL=0),輸出事件計數(shù)應(yīng)當(dāng)理解本發(fā)明的使用不限于僅包括兩個線程(T0和T1)的多線程處理器。本發(fā)明可以用于使用多個線程的處理器,并且通過擴展用于在事件選擇控制寄存器中的EQ位的數(shù)目實現(xiàn)。
應(yīng)該意識到,通過結(jié)合利用線程當(dāng)前特權(quán)級(CPL)的事件限定和利用線程ID的事件限定,提供了比如果代替定義的兩組位可獲得的更好程度的限定一組被線程限定,一組被CPL限定(例如,4位T0,T1,OS和USR)。例如,僅使用T0,T1,OS和USR位,沒有辦法獲得設(shè)置T0_USR和T1_OS位的效果。
邏輯塊60通過相對于由EQ位提出的條件,進行邏輯測試其線程ID和線程CPL來限定一個事件。例如,如果T0_OS和T1_OS都被設(shè)置,則僅由T0(線程0)或T1(線程T1)產(chǎn)生的事件將被檢測和報告給事件計數(shù)器70,而它們各自的CPL值等于0。類似地,如果僅T0_USR和T0_OS位被設(shè)置,則在任何特權(quán)級僅由T0產(chǎn)生的事件將被報告給事件計數(shù)器70。如果所有上述位被設(shè)置,則關(guān)于線程ID或CPL基本上沒有做出限定,所有被檢測的事件將被報告給事件計數(shù)器70。沒有被邏輯塊60限定的任何事件將被拒絕并且將不再被計數(shù)。
通過本發(fā)明的將被監(jiān)視的事件可以認(rèn)為分成兩種類型對發(fā)生計數(shù)的事件和對持續(xù)時間計數(shù)的事件。發(fā)生事件將在一個單獨的時鐘周期中被計數(shù)。如果事件在一個時鐘周期中發(fā)生兩次,該計數(shù)器加2。對于持續(xù)時間事件,事件計數(shù)器對條件為真的時鐘總數(shù)進行計數(shù)。
性能監(jiān)視設(shè)備進一步包括時間標(biāo)記計數(shù)器90,其在多線程處理器10的每一個時鐘周期中加1。在一個實施例中,示出了時間標(biāo)記計數(shù)器90是不同步的64位計數(shù)器,其持續(xù)計數(shù)除非被處理器10專門復(fù)位,預(yù)設(shè)或禁止。訪問事件計數(shù)器70的一個方法是利用用戶級讀時間標(biāo)記計數(shù)器指令。提供該指令以允許任何特限級的程序采樣事件計數(shù)器的值。該操作的發(fā)生不會擾亂計數(shù)或處理器的操作。該操作系統(tǒng)在安全環(huán)境中也可以禁止時間標(biāo)記計數(shù)器特征。
在使用為一個實施例中提供的來自模式專用寄存器的讀(RDMSR)指令的任何時間,管理者模式程序能夠用于對事件計數(shù)器70的18個事件計數(shù)器中的任何一個的內(nèi)容進行訪問和采樣。應(yīng)當(dāng)注意,只要處理器被復(fù)位,事件計數(shù)器就被清零。使用向模式專用寄存器寫(WRMSR)的指令,管理者模式程序也可以復(fù)位或者預(yù)設(shè)事件計數(shù)器。RDMSR或者WRMSR指令拷備特定計數(shù)器中的內(nèi)容到一對寄存器中。這些事件計數(shù)器中的每一個也可以被編程,以對任何來自預(yù)定事件列表的事件計數(shù)。將被事件計數(shù)器70計數(shù)的事件通過對ESCR中的一個(例如,ESCR30)進行編程而被選擇。
每一個事件計數(shù)器被48個事件控制寄存器中的一個獨立地控制。這意味著除了編程,圖1中所示的每一個事件計數(shù)器可以同步啟動或者同步禁止。這一特征允許事件計數(shù)器彼此之間共同操作,因此在時間函數(shù)上獲得同時計數(shù)。應(yīng)當(dāng)注意的是,當(dāng)多個線程同步操作的時候,這一特征在多線程處理器中是決定性的,因此可以同步產(chǎn)生事件。而且,由于監(jiān)視處理器性能的特殊方面有時需要特定比率的計算(例如,高速緩沖失敗率,命中率,每個指令的時鐘等等),保持事件計數(shù)器的同步操作是決定性的。
在監(jiān)視進程的任何時間,通過單獨指令的執(zhí)行,系統(tǒng)軟件能夠?qū)κ录嫈?shù)器70中每一個寄存器的內(nèi)容進行編程/采樣用于編程的WRMSR指令,以及用于采樣的RDMSR指令。計數(shù)器的讀動作不干擾計數(shù)器本身的操作;也就是說,通過使用RDMSR指令,事件計數(shù)器70的寄存器的內(nèi)容可以在非干擾方式下被訪問。而且,事件計數(shù)器70對多線程處理器10不干擾;也就是說,某些事件的計數(shù)不改變處理器的行為或者減慢處理器的操作。
如本發(fā)明的通用性的例子考慮的,作為其中處理器的三個線程同步操作的情況的例子,并且希望監(jiān)視第一線程的用戶級高速緩沖失敗率,與第二和第三線程的用戶級高速緩沖失敗率比較。對于這種情況,一個事件計數(shù)器能夠被編程,以對發(fā)生在1,2,或3的CPL上操作的第一線程中的讀/寫操作計數(shù)。另一個計數(shù)器能夠被編程,以對失敗數(shù)計數(shù)。這兩個事件計數(shù)可以一起用于獲得在第一線程中的高速緩沖失敗率(失敗數(shù)目除以讀/寫數(shù)目)。類似地,該方法能夠應(yīng)用于第二和第三線程,并且本發(fā)明將允許對由同步操作的所有三個線程產(chǎn)生的事件進行計數(shù)。通常,該性能監(jiān)視器特征可以用于監(jiān)視幾個關(guān)鍵事件,將它們結(jié)合則能夠產(chǎn)生關(guān)于處理器操作的統(tǒng)計。
在已經(jīng)閱讀了前面的描述后,本發(fā)明的諸多更改和修改,對本領(lǐng)域的技術(shù)人員無疑將是顯而易見的,應(yīng)當(dāng)理解,通過說明的方式所表示和描述的特定實施例不能作為限制。例如,盡管本公開提到了為所示的監(jiān)視的目的特定的事件,但是其它事件,條件或信號也可以被監(jiān)視,而不有損于本發(fā)明的精神實質(zhì)和范圍。因此,參考所示附圖的詳細描述不限制權(quán)利要求的范圍,權(quán)利要求本身僅詳細敘述那些涉及本發(fā)明實質(zhì)的特征。
權(quán)利要求
1.一種計算機系統(tǒng),包括用于監(jiān)視多線程處理器的性能的設(shè)備,所述設(shè)備包括處理器,用于同步執(zhí)行多個線程,每一個線程包括一系列指令;多個可編程事件計數(shù)器,對由所述多個線程中的一個或多個產(chǎn)生的兩個或多個獨立的事件計數(shù),所述兩個或多個事件選自由所述處理器正常操作產(chǎn)生的預(yù)定事件列表;一個或多個寄存器,用來控制所述事件計數(shù)器的操作,每一個寄存器也從所述事件列表中選擇將被計數(shù)的事件;以及訪問位置,允許對所述事件計數(shù)器進行訪問,以確定所述事件的當(dāng)前計數(shù)。
2.權(quán)利要求1的計算機系統(tǒng),其中所述訪問位置允許對決定所述計數(shù)的訪問,而不干擾所述計數(shù)器的操作。
3.權(quán)利要求2的計算機系統(tǒng),其中每一個寄存器包括位的第一字段,用于選擇將被計數(shù)的一個或多個事件。
4.權(quán)利要求3的計算機系統(tǒng),其中,每一個寄存器進一步包括位的第二字段,用于選擇將被掩蔽和不計數(shù)的一個或多個事件。
5.權(quán)利要求4的計算機系統(tǒng),其中,每一個寄存器進一步包括位的第三字段,用于根據(jù)每一個線程的ID,從所述多個線程中選擇將被計數(shù)的一個事件。
6.權(quán)利要求5的計算機系統(tǒng),其中所述位的第三字段能夠進一步根據(jù)每一個線程的當(dāng)前特權(quán)級(CPL),從所述多個線程中選擇將被計數(shù)的一個事件。
7.權(quán)利要求6的計算機系統(tǒng),其中所述計數(shù)器在新的事件被選擇之前能夠被停止和被清零。
8.權(quán)利要求7的計算機系統(tǒng),其中所述計數(shù)器能夠被預(yù)設(shè)為一定狀態(tài)。
9.權(quán)利要求5的計算機系統(tǒng),其中所述預(yù)定事件列表包括硬件性能和斷點事件。
10.用于監(jiān)視多線程處理器性能的設(shè)備,包括處理裝置,用于同步處理多個線程,每一個線程包括一系列指令;計數(shù)裝置,用于對由所述多個線程的一個或多個產(chǎn)生的一個或多個事件計數(shù),所述一個或多個事件選自由所述處理器正常操作產(chǎn)生的預(yù)定事件列表;控制裝置,用于控制所述計數(shù)裝置,以及用于從所述列表中選擇所述一個或多個事件;以及訪問裝置,用于訪問所述計數(shù)裝置,以確定所述一個或多個事件的計數(shù)。
11.權(quán)利要求10的設(shè)備,其中所述計數(shù)裝置包括多個可編程計數(shù)器。
12.權(quán)利要求11的設(shè)備,其中所述控制裝置包括一個或多個寄存器,每一個寄存器包括位的第一字段,用于選擇將被計數(shù)的一個或多個事件。
13.權(quán)利要求12的設(shè)備,其中,每一個寄存器進一步包括位的第二字段,用于選擇將被掩蔽和不計數(shù)的一個或多個事件。
14.權(quán)利要求13的設(shè)備,其中,每一個寄存器進一步包括位的第三字段,用于根據(jù)每一個線程的ID,從所述多個線程中選擇將被計數(shù)的一個事件。
15.權(quán)利要求14的設(shè)備,其中,所述位的第三字段能夠進一步根據(jù)每一個線程的當(dāng)前特權(quán)級(CPL),從所述多個線程中選擇將被計數(shù)的一個事件。
16.權(quán)利要求15的設(shè)備,其中所述訪問裝置包括所述處理器中的指令裝置,用于從每一個所述計數(shù)器中讀計數(shù)。
17.權(quán)利要求14的設(shè)備,其中所述預(yù)定事件列表包括硬件性能和斷點事件。
18.一種用于監(jiān)視多線程處理器執(zhí)行情況的方法,所述方法包括同步執(zhí)行多個線程,每一個線程包括一系列指令;對由所述多個線程的一個或多個產(chǎn)生的多個獨立事件計數(shù),所述多個事件選自由所述處理器正常操作產(chǎn)生的預(yù)定事件列表;控制所述事件計數(shù)器的操作,每一個寄存器也從所述事件列表中選擇將被計數(shù)的事件;以及訪問所述事件計數(shù)器,以確定所述事件的當(dāng)前計數(shù)。
19.權(quán)利要求18的方法,進一步包括在計數(shù)之前,選擇和限定將被計數(shù)的所述多個獨立事件。
20.權(quán)利要求19的方法,其中所述限定包括請求具有預(yù)選線程ID的所述多個事件。
21.權(quán)利要求20的方法,其中所述限定進一步包括請求具有預(yù)選線程當(dāng)前特權(quán)級(CPL)的所述多個事件。
22.一種結(jié)合在集成電路(IC)中的設(shè)備,通過記錄由所述CPU的正常操作產(chǎn)生的事件發(fā)生,用于監(jiān)視多線程中央處理單元(CPU)的性能,每一個事件包括一個表示在所述IC中特定活動的發(fā)生的電信號,所述設(shè)備包括處理器,用于同步執(zhí)行多個線程,每一個線程包括一系列指令;同時操作的第一和第二可編程計數(shù)器,分別用于記錄第一和第二所選事件;邏輯電路,將所述第一和第二所選事件分別耦合至所述第一和第二可編程計數(shù)器;耦合至所述邏輯電路的控制寄存器,以選擇所述第一和第二所選事件;以及訪問位置,允許訪問所述計數(shù)器。
23.權(quán)利要求22的設(shè)備,其中所述邏輯電路包括耦合的多個多路復(fù)用器,用于接收多個事件。
24.權(quán)利要求23的設(shè)備,其中所述邏輯電路用于根據(jù)它們的線程ID,從所述多個事件中選擇所述第一和第二所選事件。
全文摘要
用于監(jiān)視同步執(zhí)行來自兩個或多個線程的指令的多線程處理器(10)的性能特征的方法和設(shè)備。事件檢測器在來自多線程處理器的線程的指令執(zhí)行期間檢測特定處理器事件(20)的發(fā)生。專用事件選擇控制寄存器(30)被編程以控制將被監(jiān)視的事件的選擇,掩蔽和限定。根據(jù)其線程ID和線程的當(dāng)前特權(quán)級(CPL)進行事件限定。每一個被限定的事件由幾個可編程事件計數(shù)器(70)中的一個計數(shù),這些計數(shù)器保持對被監(jiān)視的所有處理器事件的跟蹤。事件計數(shù)器的內(nèi)容則可以通過程序指令進行訪問和采樣。
文檔編號G06F11/34GK1500248SQ01822830
公開日2004年5月26日 申請日期2001年11月26日 優(yōu)先權(quán)日2000年12月29日
發(fā)明者M·克蘭福德, M 克蘭福德, S·D·羅杰斯, 羅杰斯, S·卡拉法蒂斯, ǖ偎, B 斯普恩特, H·M·B·斯普恩特 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
襄城县| 恩施市| 格尔木市| 寿光市| 台南县| 靖边县| 乃东县| 长子县| 义马市| 内丘县| 东平县| 明溪县| 奈曼旗| 铁岭市| 广宁县| 巴彦县| 凤庆县| 崇左市| 和平区| 利津县| 吉安市| 娄底市| 十堰市| 廉江市| 南康市| 聊城市| 平和县| 临桂县| 自贡市| 钦州市| 二连浩特市| 丹巴县| 临朐县| 青铜峡市| 嵊州市| 鹿泉市| 白银市| 阿城市| 澎湖县| 合江县| 凤阳县|