在多線程數(shù)據(jù)處理裝置中的事件監(jiān)控的制作方法
【專利摘要】本公開涉及在多線程數(shù)據(jù)處理裝置中的事件監(jiān)控。在執(zhí)行多線程數(shù)據(jù)處理的裝置中,事件處理電路自數(shù)據(jù)處理電路接收指示已在數(shù)據(jù)處理操作期間發(fā)生的事件的事件信息。可見性配置儲存器保持一組可見性配置值,各可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián)且事件處理電路調(diào)適此電路對事件信息的使用以限制事件信息對線程的軟件的可見性,這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。如此允許支持多線程事件監(jiān)控,同時(shí)保護(hù)事件信息不受希望將其可見性對其他線程的軟件限制的特定線程的影響。
【專利說明】
在多線程數(shù)據(jù)處理裝置中的事件監(jiān)控
技術(shù)領(lǐng)域
[0001]本公開關(guān)于一種數(shù)據(jù)處理裝置。更特定言之,本公開關(guān)于可執(zhí)行多線程數(shù)據(jù)處理操作的數(shù)據(jù)處理裝置。
【背景技術(shù)】
[0002]已知提供具有執(zhí)行多線程數(shù)據(jù)處理能力的數(shù)據(jù)處理裝置,根據(jù)此數(shù)據(jù)處理裝置,軟件的多個(gè)線程藉由多線程數(shù)據(jù)處理裝置的數(shù)據(jù)處理電路處理。數(shù)據(jù)處理裝置隨后根據(jù)經(jīng)定義的方案在諸線程之間切換,以在由各線程中的指令定義的數(shù)據(jù)處理操作中前進(jìn)。例如,此舉可涉及時(shí)分復(fù)用方法,且亦可涉及當(dāng)阻止第一線程時(shí)自第一線程至第二線程的上下文切換,例如同時(shí)等待由負(fù)載操作請求的數(shù)據(jù)自內(nèi)存返回。另一方法為同時(shí)多線程處理,其中處理器在各循環(huán)中根據(jù)自所有線程可用的指令集確定要執(zhí)行哪個(gè)循環(huán),且可因此同時(shí)地執(zhí)行來自相同線程的指令。存在本領(lǐng)域普通技術(shù)人員將熟悉的用于處理數(shù)據(jù)處理裝置中的多個(gè)線程的各種已知技術(shù)。進(jìn)一步已知提供在數(shù)據(jù)處理裝置之內(nèi)的各種類型的監(jiān)控能力,此能力可收集與數(shù)據(jù)處理裝置的數(shù)據(jù)處理電路正在執(zhí)行的數(shù)據(jù)處理操作有關(guān)的事件信息。
【發(fā)明內(nèi)容】
[0003]自第一方面來看,本發(fā)明的技術(shù)提供一種用于多線程數(shù)據(jù)處理的裝置,此裝置包含:數(shù)據(jù)處理電路,用以對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作;事件處理電路,用以自數(shù)據(jù)處理電路接收指示在數(shù)據(jù)處理操作期間已發(fā)生的事件的事件信息;及可見性配置儲存器,用以保持一組可見性配置值,每一可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián),其中事件處理電路響應(yīng)于接收到事件信息以調(diào)適此電路對事件信息的使用,以限制該事件信息對以下線程的軟件的可見性:這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0004]自第二方面來看,本發(fā)明的技術(shù)提供一種多線程數(shù)據(jù)處理的方法,此方法包含以下步驟:對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作;儲存一組可見性配置值,每一可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián);接收指示在數(shù)據(jù)處理操作期間已發(fā)生的事件的事件信息;及調(diào)適對事件信息的使用,以限制該事件信息對以下線程的軟件的可見性:這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0005]自第三方面來看,本發(fā)明的技術(shù)提供一種用于多線程數(shù)據(jù)處理的裝置,此處理包含以下步驟:對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作;儲存一組可見性配置值,每一可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián);接收指示在數(shù)據(jù)處理操作期間已發(fā)生的事件的事件信息;及調(diào)適對事件信息的使用,以限制該事件信息對以下線程的軟件的可見性:這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0006]自第四方面來看,本發(fā)明的技術(shù)提供一種儲存于非瞬時(shí)形式的軟件中的計(jì)算機(jī)可讀存儲介質(zhì),當(dāng)此非瞬時(shí)形式的軟件在計(jì)算裝置執(zhí)行時(shí),引起該計(jì)算裝置執(zhí)行第二方面的方法。
[0007]自第五方面來看,本發(fā)明的技術(shù)提供一種軟件,當(dāng)該軟件在計(jì)算裝置上執(zhí)行時(shí),引起該計(jì)算裝置執(zhí)行第二方面的方法。
【附圖說明】
[0008]本發(fā)明的技術(shù)將僅舉例而言參照如在附圖中所示的本發(fā)明的實(shí)施例進(jìn)一步描述,在這些附圖中:
[0009]圖1示意地圖示在一實(shí)施例中的用于多線程數(shù)據(jù)處理的裝置;
[0010]圖2A、圖2B及圖2C圖示在一些實(shí)施例中,在由多線程數(shù)據(jù)處理裝置執(zhí)行的不同線程之間用于控制事件計(jì)數(shù)的可見性的可見性配置值的使用的不同實(shí)例;
[0011]圖3A、圖3B、圖3C及圖3D圖示在一些實(shí)施例中,于正在執(zhí)行的四個(gè)線程之間的四種不同類型的可見性配置值及產(chǎn)生四種不同式樣的事件計(jì)數(shù)的這些可見性配置值的示例性值;
[0012]圖4示意地圖示在一實(shí)施例中,藉由事件處理電路的事件信息的接收及基于經(jīng)接收的事件信息及可見性配置值來收集事件計(jì)數(shù)信息的該事件處理電路的配置。
[0013]圖5為圖示當(dāng)執(zhí)行一實(shí)施例的方法以確定特定計(jì)數(shù)器是否應(yīng)計(jì)數(shù)來源于事件信息的事件時(shí)所采取的一系列步驟的流程圖;
[0014I圖6A示意地圖示在一實(shí)施例的裝置中實(shí)施的四個(gè)執(zhí)行位準(zhǔn)(特權(quán)位準(zhǔn));及
[0015]圖6B示意地圖示在一實(shí)施例中的裝置至非安全世界及安全世界的細(xì)分。
【具體實(shí)施方式】
[0016]至少一些實(shí)施例提供用于多線程數(shù)據(jù)處理的裝置,此裝置包含:數(shù)據(jù)處理電路,用以對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作;事件處理電路,用以自數(shù)據(jù)處理電路接收指示在數(shù)據(jù)處理操作期間已發(fā)生的事件的事件信息;及可見性配置儲存器,用以保持一組可見性配置值,每一可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián),其中事件處理電路響應(yīng)于接收到事件信息以調(diào)適此電路對事件信息的使用,以限制線程的軟件對該事件信息的可見性,這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0017]自數(shù)據(jù)處理電路接收事件信息以收集關(guān)于該數(shù)據(jù)處理電路的數(shù)據(jù)處理操作的信息的事件處理電路已由本發(fā)明的技術(shù)識別以呈現(xiàn)在多線程數(shù)據(jù)處理裝置的上下文中的潛在安全性弱點(diǎn)。例如,正在藉由數(shù)據(jù)處理電路執(zhí)行的多個(gè)線程可在由數(shù)據(jù)處理裝置支持的不同操作系統(tǒng)上執(zhí)行,因?yàn)槠鹪从谝徊僮飨到y(tǒng)的事件信息需要對其他操作系統(tǒng)不可見。此舉的一實(shí)例為其中正在一操作系統(tǒng)中執(zhí)行的一線程正在執(zhí)行關(guān)于此操作系統(tǒng)需要提供保護(hù)的數(shù)據(jù)的數(shù)據(jù)處理,諸如密碼上下文中的私人密匙或需要小心保護(hù)的特定數(shù)據(jù)內(nèi)容(例如,個(gè)人資料)。盡管事件信息可能僅與針對似乎不具有安全性含義(諸如快取未中)的每一線程進(jìn)行的數(shù)據(jù)處理操作期間發(fā)生的事件相關(guān),但是本發(fā)明的技術(shù)認(rèn)識到,即使此簡單的基于硬件的信息也可能以某些方式危及關(guān)于對將得以小心保護(hù)的數(shù)據(jù)執(zhí)行數(shù)據(jù)處理操作的線程所維持的所需安全性。
[0018]本發(fā)明的技術(shù)藉由提供可見性配置儲存器(例如,以系統(tǒng)控制寄存器的形式)來同時(shí)識別且解決此問題,此可見性配置儲存器保持一組可見性配置值,各可見性配置值與多個(gè)線程中的一個(gè)線程相關(guān)聯(lián)。若對于給定線程保持的可見性配置值采用指示事件信息的可見性應(yīng)得以限制的特定(預(yù)定)值,則自數(shù)據(jù)處理電路接收與數(shù)據(jù)處理電路執(zhí)行的數(shù)據(jù)處理操作有關(guān)的事件信息的事件處理電路可隨后采取步驟以確保與該線程的執(zhí)行有關(guān)的事件信息的可見性對于除了產(chǎn)生此事件信息的線程之外的其他線程的軟件受限制。產(chǎn)生事件信息的線程,且特定言之此線程處理的數(shù)據(jù)因此較好地得以保護(hù)。對事件信息的可見性的限制可在不同實(shí)施例中采取數(shù)個(gè)形式(如在下文中詳述),例如此限制可能為絕對的,以便嚴(yán)格地說僅產(chǎn)生事件信息的線程的軟件具有此事件信息的可見性,或可能稍微更加容許某些其他線程的軟件亦得以允許可見此事件信息,這些其他線程被認(rèn)為與產(chǎn)生事件信息的線程相結(jié)合而可信賴。
[0019]在一些實(shí)施例中,不僅事件信息的可見性對于除了產(chǎn)生事件信息的線程之外的線程的軟件受限(依賴于相應(yīng)可見性配置值),而且各可見性配置值對于除了此相應(yīng)線程之外的線程的軟件不可訪問。如此為該相應(yīng)線程提供進(jìn)一步保護(hù)位準(zhǔn),因?yàn)椴粌H可防止其他線程的軟件查看與該線程相關(guān)的事件信息,而且亦可甚至防止其他線程的軟件知道為該線程保持的可見性配置值,且當(dāng)然無法將其修改。
[0020]事件處理電路可采取各種形式,但在一些實(shí)施例中,事件處理電路包含至少一個(gè)事件計(jì)數(shù)器?;谧詳?shù)據(jù)處理電路接收的事件信息,至少一個(gè)事件計(jì)數(shù)器可因此累加特定預(yù)定種類的事件數(shù)目的總數(shù),基于該接收的事件信息而確定這些事件已發(fā)生。
[0021 ]在事件處理電路包含至少一個(gè)事件計(jì)數(shù)器的情況下,事件計(jì)數(shù)器的數(shù)目可變化;但是在一些實(shí)施例中,至少一個(gè)事件計(jì)數(shù)器包含對于多個(gè)線程的每一線程的事件計(jì)數(shù)器。相應(yīng)地,可針對多個(gè)線程中的每一線程保持相應(yīng)累積的事件計(jì)數(shù)。
[0022]雖然各事件計(jì)數(shù)器可經(jīng)配置僅計(jì)數(shù)單個(gè)相應(yīng)線程的事件,但是在一些實(shí)施例中,至少一個(gè)事件計(jì)數(shù)器可配置用于多線程事件計(jì)數(shù)且至少一個(gè)事件計(jì)數(shù)器計(jì)數(shù)多于一個(gè)線程的事件。因此,此多線程計(jì)數(shù)事件計(jì)數(shù)器可配置為針對事件計(jì)數(shù)的一系列方式,自僅計(jì)數(shù)較小子集的多個(gè)線程,直至計(jì)數(shù)由數(shù)據(jù)處理電路正執(zhí)行的所有多個(gè)線程的事件。然而,借助于設(shè)定其相應(yīng)可見性配置值至預(yù)定值,且響應(yīng)于此事件處理電路不允許來自該線程的事件信息被暫存為多線程事件計(jì)數(shù)計(jì)數(shù)器中的計(jì)數(shù),此舉可受制于根據(jù)本發(fā)明的技術(shù)的附加約束,即藉由產(chǎn)生事件計(jì)數(shù)器所接收的事件信息的數(shù)據(jù)處理電路執(zhí)行的線程可從該經(jīng)多線程事件計(jì)數(shù)配置的事件計(jì)數(shù)器中排除。
[0023]因此,在一些實(shí)施例中,響應(yīng)于執(zhí)行多線程事件計(jì)數(shù)的至少一個(gè)事件計(jì)數(shù)器,該至少一個(gè)事件計(jì)數(shù)器對當(dāng)線程的可見性配置具有預(yù)定值時(shí)產(chǎn)生事件信息的線程的事件不進(jìn)行計(jì)數(shù)。
[0024]由可見性配置儲存器保持的該組可見性配置值可采取各種形式,但是在一些實(shí)施例中,該可見性配置儲存器經(jīng)布置以保持單比特位(single bit)配置可見性配置值。例如,單比特位可見性配置值可藉由對于多個(gè)線程中的每一線程的可見性配置儲存器保持,此多個(gè)線程藉由數(shù)據(jù)處理電路處理。因此,各線程可具有其他線程的軟件的此線程的事件信息可見性,此事件信息可見性由此線程自身的相應(yīng)單比特位配置可見性值定義。
[0025]在一些實(shí)施例中,可見性配置儲存器經(jīng)布置以保持多比特位(mult1-bit)可見性配置值,其中事件處理電路響應(yīng)于接收到事件信息以調(diào)適此事件處理電路對事件信息的使用,以使得除了產(chǎn)生事件信息的線程之外的多個(gè)線程中的每一線程的軟件的事件信息的可見性藉由針對產(chǎn)生事件信息的線程儲存的多比特位可見性配置值的相應(yīng)比特位來定義。由可見性配置儲存器保持的這些多比特位可見性配置值可采取一系列形式,但是在一些實(shí)施例中,多比特位可見性配置值藉由針對多個(gè)線程中的每一線程的可見性配置儲存器保持。對于各線程保持的多比特位可見性配置值可因此定義由該線程產(chǎn)生的事件信息是否分別對其他多個(gè)線程的每一線程上的軟件可見。
[0026]可能存在線程的分組(例如具有邏輯、安全性或其他關(guān)系),在這些分組之內(nèi),認(rèn)為共享事件信息是可以接受的且在一些實(shí)施例中,產(chǎn)生事件信息的線程被包含于線程群組中,且事件處理電路響應(yīng)于接收到事件信息以調(diào)適此事件處理電路對事件信息的使用,以使得事件信息對于程的群組中的線程的軟件可見且以使得事件信息對不包含于線程群組中的線程的軟件不可見。因此,群組之內(nèi)的線程具有在群組之內(nèi)的相互事件信息可見性,且群組之外的線程不具有在群組之內(nèi)的事件信息的可見性。
[0027]在一些實(shí)施例中,線程群組藉由群組識別符定義,且事件處理電路響應(yīng)于接收到事件信息以使用群組識別符作為可見性配置值。換言之,對除了產(chǎn)生事件信息的線程之外的線程的軟件的事件信息的可見性限制可藉由群組識別符自身確定,此群組識別符將線程群組特性化為群組。
[0028]在其他實(shí)施方式中,可定義線程群組的群組可見性配置值,且在這些實(shí)施例中,產(chǎn)生事件信息的線程被包含于線程群組中;且可見性配置值藉由線程群組的群組可見性配置值給出。
[0029]在一些實(shí)施例中,事件處理電路可利用嚴(yán)格的“僅產(chǎn)生線程”可見性規(guī)則,其中(當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí))允許可見事件信息的軟件僅為產(chǎn)生該事件信息的線程,且在這些實(shí)施例中,事件處理電路響應(yīng)于接收到事件信息以調(diào)適此事件處理電路對事件信息的使用,以使得此事件信息對線程的軟件不可見,這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)的產(chǎn)生事件信息的線程。
[0030]多個(gè)線程可經(jīng)分組在一起成為至少一個(gè)線程群組,針對該至少一個(gè)線程群組,為群組整體定義可見性配置值,且因此在一些實(shí)施例中,至少一個(gè)可見性配置值對應(yīng)于多個(gè)線程的線程群組,且事件處理電路響應(yīng)于接收到事件信息以調(diào)適此事件處理電路對事件信息的使用,以使得事件信息對線程群組中的線程之外的線程的軟件不可見,此線程群組包括當(dāng)線程群組(包括產(chǎn)生事件信息的線程)的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0031]以此方式的線程的分組可對應(yīng)于一系列不同的邏輯且基于安全的,或其他經(jīng)選擇的分組,例如在一些實(shí)施例中,線程群組可經(jīng)定義以對應(yīng)于在裝置之內(nèi)使用的給定虛擬機(jī)識別符,其中數(shù)據(jù)處理電路能夠支持各自由此虛擬機(jī)識別符識別的多個(gè)虛擬機(jī)。在線程經(jīng)定義為屬于相同虛擬機(jī)識別符分組的情況下,則這些線程將具有該此的事件信息的可見性。
[0032]在一些實(shí)施例中,數(shù)據(jù)處理電路經(jīng)布置以在多個(gè)執(zhí)行位準(zhǔn)中經(jīng)選擇的執(zhí)行位準(zhǔn)下對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作,其中各可見性配置值對于在比經(jīng)選擇執(zhí)行位準(zhǔn)低的執(zhí)行位準(zhǔn)下執(zhí)行的線程不可訪問。因此,多個(gè)執(zhí)行位準(zhǔn)可經(jīng)布置為特權(quán)階層,較高執(zhí)行位準(zhǔn)據(jù)此可訪問較低執(zhí)行位準(zhǔn)的可見性配置值,但反之則不然。
[0033]實(shí)際上,在一些實(shí)施例中,各可見性配置值皆對在與經(jīng)選擇執(zhí)行位準(zhǔn)相同的執(zhí)行位準(zhǔn)下執(zhí)行的線程的軟件不可訪問。此舉可特定言之在執(zhí)行位準(zhǔn)的特權(quán)階層的下端處利用,以使得正在較低執(zhí)行位準(zhǔn)處執(zhí)行的線程的軟件可僅訪問其自身的可見性配置值。
[0034]多個(gè)執(zhí)行位準(zhǔn)可采取各種形式,但是在一些實(shí)施例中,多個(gè)執(zhí)行位準(zhǔn)包含多個(gè)異常位準(zhǔn)。在一些實(shí)施例中,多個(gè)執(zhí)行位準(zhǔn)包含多個(gè)安全性位準(zhǔn)。無論特權(quán)階層所采用的特定形式,特權(quán)階層的完整性的維持從而藉由在這些實(shí)施例中的本發(fā)明的技術(shù)來支持。
[0035]無論執(zhí)行位準(zhǔn)可采用的形式,在一些實(shí)施例中,裝置經(jīng)布置以當(dāng)上下文在執(zhí)行位準(zhǔn)之間切換時(shí)更新可見性配置值。如此亦有助于當(dāng)裝置上下文切換時(shí)維持特權(quán)階層的完整性。
[0036]在一些實(shí)施例中,數(shù)據(jù)處理電路經(jīng)布置以響應(yīng)于指令執(zhí)行數(shù)據(jù)處理操作且選擇此數(shù)據(jù)處理電路執(zhí)行的指令的子集以便歸檔(profiling),此歸檔是基于對于指令的子集產(chǎn)生的事件信息,其中歸檔包含將歸檔數(shù)據(jù)儲存至儲存單元,該歸檔數(shù)據(jù)包含事件信息或來源于事件信息的進(jìn)一步信息,且其中數(shù)據(jù)處理電路經(jīng)布置以當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)防止歸檔數(shù)據(jù)的儲存??梢虼酥С钟糜趫?zhí)行指令子集的歸檔的能力,同時(shí)仍然保護(hù)產(chǎn)生事件信息的線程(藉由將可見性配置值設(shè)定至預(yù)定值),因?yàn)榛诮?jīng)接收的事件信息的歸檔數(shù)據(jù)(對于受保護(hù)的線程)將不會(huì)被儲存至儲存單元。防止儲存歸檔數(shù)據(jù)的方式可有所不同,例如,此方式可包含基于可見性配置值自子集中排除指令。此方式可包含經(jīng)采用以防止特定事件信息(來源于此事件信息的進(jìn)一步信息)作為歸檔數(shù)據(jù)儲存至儲存單元的步驟。
[0037]至少一些實(shí)施例提供一種數(shù)據(jù)處理系統(tǒng),此數(shù)據(jù)處理系統(tǒng)包含如在上述實(shí)施例及儲存單元中的任一者中所述的裝置。
[0038]至少一些實(shí)施例提供一種多線程數(shù)據(jù)處理的方法,此方法包含以下步驟:對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作;儲存一組可見性配置值,每一可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián);接收指示在數(shù)據(jù)處理操作期間已發(fā)生的事件的事件信息;及調(diào)適對事件信息的使用,以限制該事件信息對線程的軟件的可見性,這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0039]至少一些實(shí)施例提供一種多線程數(shù)據(jù)處理的裝置,此裝置包含:用于對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作的構(gòu)件;儲存一組可見性配置值的構(gòu)件,每一可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián);自用于執(zhí)行數(shù)據(jù)處理操作的構(gòu)件接收指示在數(shù)據(jù)處理操作期間已發(fā)生的事件的事件信息的構(gòu)件;及調(diào)適對事件信息的使用的構(gòu)件,以限制該事件信息對線程的軟件的可見性,這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。
[0040]至少一些實(shí)施例提供一種以非瞬時(shí)形式儲存軟件的計(jì)算機(jī)可讀取存儲介質(zhì),當(dāng)此軟件在計(jì)算裝置上執(zhí)行時(shí),引起此計(jì)算裝置執(zhí)行上述方法。
[0041]至少一些實(shí)施例提供當(dāng)在計(jì)算裝置上執(zhí)行時(shí)引起計(jì)算裝置執(zhí)行上述方法的軟件。
[0042]圖1示意地圖示在一實(shí)施例中的多線程數(shù)據(jù)處理裝置。此多線程數(shù)據(jù)處理裝置10具有一整體配置,數(shù)據(jù)處理電路根據(jù)此配置基于數(shù)據(jù)處理指令執(zhí)行數(shù)據(jù)處理操作。在圖1的實(shí)例中,數(shù)據(jù)處理電路藉由執(zhí)行管線12表示,提供其提取/發(fā)出單元22以按一般技術(shù)者將熟悉的方式自內(nèi)存20擷取一系列數(shù)據(jù)處理指令且以適當(dāng)?shù)匕l(fā)出這些數(shù)據(jù)處理指令至執(zhí)行管線12中。此外,執(zhí)行管線12包含最終回寫(Writeback5WB)階段12F,此階段引起數(shù)據(jù)處理操作的結(jié)果亦按照一般技術(shù)者將熟悉的方式得以回寫至內(nèi)存20。數(shù)據(jù)處理裝置10不僅能夠執(zhí)行數(shù)據(jù)處理指令的單個(gè)線程,而且經(jīng)配置為多線程數(shù)據(jù)處理裝置,以使得數(shù)據(jù)處理指令的多個(gè)線程可藉由數(shù)據(jù)處理裝置10并行地處理,且提取/發(fā)出單元22經(jīng)配置以管理這些相應(yīng)多個(gè)線程的每一線程的指令的擷取與發(fā)出,且適當(dāng)?shù)貫檫@些線程中的一者發(fā)出下一數(shù)據(jù)處理指令至執(zhí)行管線12中。一般技術(shù)者將熟悉多線程數(shù)據(jù)處理裝置可處理此裝置的多個(gè)線程且在此多個(gè)線程之間切換的各種方式,且為了簡潔起見,本文將忽略數(shù)據(jù)處理裝置的操作的此方面的進(jìn)一步詳細(xì)描述。
[0043]當(dāng)數(shù)據(jù)處理指令通過執(zhí)行管線12前進(jìn)時(shí),執(zhí)行管線階段(12A至12F)的響應(yīng)可引起產(chǎn)生事件信息,該事件信息被傳遞至此組計(jì)數(shù)器14。對此事件信息可具有的本質(zhì)沒有特定約束,且此事件信息可能關(guān)于數(shù)據(jù)處理裝置10的執(zhí)行管線12的操作的任何方面,或?qū)嶋H上關(guān)于由與更廣泛的數(shù)據(jù)處理系統(tǒng)的組件相關(guān)的數(shù)據(jù)處理裝置10接收的指示(數(shù)據(jù)處理裝置10形成該更廣泛的數(shù)據(jù)處理系統(tǒng)的一部分,例如包括在圖1的實(shí)例中的內(nèi)存20及高速緩存30)。
[0044]一種將事件信息用于圖1的實(shí)例的方式藉由提供與執(zhí)行管線12相關(guān)聯(lián)的此組計(jì)數(shù)器14來實(shí)現(xiàn)。事件信息指示與關(guān)聯(lián)于此事件信息的進(jìn)一步屬性信息(例如,引起事件信息產(chǎn)生的線程的指示)一起藉由計(jì)數(shù)器14接收自執(zhí)行管線12。計(jì)數(shù)器14包含一組計(jì)數(shù)器屬性電路14A及多個(gè)單獨(dú)計(jì)數(shù)器14B,在圖1的實(shí)例中,此多個(gè)單獨(dú)計(jì)數(shù)器包含16個(gè)獨(dú)立的單獨(dú)計(jì)數(shù)器。基于所接收的事件信息及相關(guān)聯(lián)的屬性,計(jì)數(shù)器屬性可引起單獨(dú)計(jì)數(shù)器14B中的至少一個(gè)計(jì)數(shù)器增加其計(jì)數(shù)。參看圖4及圖5在下文中給出計(jì)數(shù)器屬性電路14A的操作的進(jìn)一步細(xì)節(jié)。計(jì)數(shù)器屬性電路14A將操作的特定方式藉由計(jì)數(shù)器配置單元16來定義,此計(jì)數(shù)器配置單元在圖1的實(shí)例中采用系統(tǒng)控制寄存器的形式,且根據(jù)本案的技術(shù),這些寄存器可保持所示的值EVSEL〈n>.MT、EVSEL〈n>.SEL及PMCRPE〈m>.MTD,這些值的使用將參看圖4描述于下文中。本發(fā)明的技術(shù)的中心在于對于各線程的值MTD( “可見性配置值”),此值的使用將參看圖2A至圖2C描述于下文中。
[0045]圖1的數(shù)據(jù)處理裝置10的配置的進(jìn)一步方面藉由歸檔選擇電路24及歸檔取樣產(chǎn)生電路26提供。為了收集與數(shù)據(jù)處理裝置的操作相關(guān)的歸檔信息,特定言之有關(guān)于特定指令藉由數(shù)據(jù)處理裝置10處理的方式,歸檔選擇電路12監(jiān)控藉由提取/發(fā)出單元22擷取自內(nèi)存的指令,且具有用于當(dāng)那些指令中的經(jīng)選擇的指令通過執(zhí)行管線12時(shí)致使這些經(jīng)選擇的指令得以標(biāo)記以便歸檔的配置。對于已經(jīng)選擇用于藉由歸檔選擇電路24歸檔的經(jīng)標(biāo)記指令,歸檔樣品產(chǎn)生電路26產(chǎn)生歸檔數(shù)據(jù),隨后使得此歸檔數(shù)據(jù)儲存在內(nèi)存20中以便稍后分析。為了確定應(yīng)選擇何指令用于歸檔,歸檔選擇電路24亦可訪問系統(tǒng)控制寄存器;且根據(jù)本發(fā)明的技術(shù),特定言之保持PMCRpE〈m>.MTD的系統(tǒng)控制寄存器,對于特定線程η的此值的設(shè)定致使該線程的指令退出歸檔。
[0046]圖2Α至圖2C給出一組十六個(gè)單獨(dú)計(jì)數(shù)器(諸如在圖1的多線程數(shù)據(jù)處理裝置10中的十六個(gè)計(jì)數(shù)器14Β)可如何經(jīng)配置以計(jì)數(shù)在多線程處理系統(tǒng)之內(nèi)發(fā)生的事件的概觀(其中正在處理四個(gè)線程)。如在圖2Α至圖2C中所標(biāo)記,這些四個(gè)(硬件)線程藉由處理組件(processing element;PE)0至3表示。如亦可在圖2A至圖2C的實(shí)例中所見,線程PE O至2正在執(zhí)行平臺操作系統(tǒng)(“OS平臺”),同時(shí)線程PE 3正在執(zhí)行專屬視頻譯碼器。
[0047]如在圖2A至圖2C中可見,各線程(PE)經(jīng)分配有四個(gè)計(jì)數(shù)器。在圖2A中所示的實(shí)例中,分配給各PE的計(jì)數(shù)器中的兩個(gè)計(jì)數(shù)器經(jīng)配置用于單線程(single-threacUST)計(jì)數(shù)。這些計(jì)數(shù)器經(jīng)標(biāo)記為PMC 2及PMC 3。相反地,各個(gè)計(jì)數(shù)器已經(jīng)配置用于多線程(mult1-threachMT) 計(jì)數(shù), S卩: PMC O及PMC I用于PE O;PMC O用于PE 2;及PMCO用于PE 3。無陰影的計(jì)數(shù)器(用于PE I的PMC O及PMC I,及用于PE 2及PE 3的PMC I)被禁用。在圖2A的實(shí)例中,對于PE 3,控制位MTD已經(jīng)設(shè)定為I;而對于PE O至2,控制位MTD已經(jīng)設(shè)定為O。此舉自其它線程(亦即,執(zhí)行OS平臺的那些線程)的多線程視圖中“退出”PE 3(亦即,執(zhí)行視頻譯碼器的線程)。在對于PE O至2清除了此控制位(亦即,零值)的情況下,這些線程中的每一線程的數(shù)據(jù)處理操作對于當(dāng)前MT叢集(亦即,PE O至2)中的其他MT線程可見。當(dāng)圖2A中的操作設(shè)置藉由為OS平臺提供一虛擬機(jī)(VM)且為視頻譯碼器提供另一虛擬機(jī)而由數(shù)據(jù)處理裝置實(shí)施時(shí),且當(dāng)系統(tǒng)上下文的超管理器在這些VM之間切換時(shí),控制位由超管理器以及客操作系統(tǒng)的狀態(tài)來更新,以便可自另一虛擬機(jī)(亦即,操作系統(tǒng))隱藏來自更安全VM(亦即,視頻譯碼器)的信息。
[0048]因此,在圖2A中所示的實(shí)例中,配置為MT且分配給任何PE的計(jì)數(shù)器可用于監(jiān)控(計(jì)數(shù))OS平臺事件(在附圖中,左上至右下的對角影線),亦即,可歸屬于PE O至2的事件。PE 3正在執(zhí)行超管理器已確定應(yīng)被保護(hù)的專屬視頻譯碼器(在附圖中,左下至右上的對角影線),且自O(shè)S平臺隱藏此視頻譯碼器的操作。因此,已為此PE設(shè)定控制位MTD,以使得視頻譯碼器事件(亦即,可歸屬于PE 3的事件)僅對于PE 3可見,且因此視頻譯碼器事件從不由分配給PE O至2的計(jì)數(shù)器計(jì)數(shù)。因此,藉由對每一處理組件的MTD控制位的此使用,可支持多線程事件計(jì)數(shù),同時(shí)維持正在執(zhí)行的線程之間所需的安全性。
[0049]圖2B圖示關(guān)于圖2A的配置的變化,特定言之其中2位控制值(在此實(shí)例中標(biāo)識為MTG)用以將PE分組在一起,以便多線程(MT)計(jì)數(shù)可在分配給相同群組的PE之間發(fā)生。在圖2B的實(shí)例中,MTG控制值為二位值且經(jīng)設(shè)定用于相應(yīng)PE,以使得PE O至2形成一群組(MTG =ObOO),同時(shí)PE 3形成其自身的“群組”(MTG = ObOl )。關(guān)于可歸屬于PE O至2(與圖2A的實(shí)例相比)的事件的可見性的此分組的特定效應(yīng)為可歸屬于PE O至2的事件目前不再對PE 3可見。如此是歸因于PE 3形成其自身的“群組”的事實(shí)(藉由作為具有MTG值ObOl的唯一PE)。
[0050]類似結(jié)果由圖2C中所示的替代情況產(chǎn)生,其中代替藉由設(shè)定圖2B的MTG值而提供的PE的分組,在圖2C中,此分組參考VMID值(亦即,歸屬于在此多線程處理器中提供的不同虛擬機(jī)(VM)的識別符值)而提供。在圖2C的實(shí)例中,PE O至2屬于VM0(VMID = 0x0),同時(shí)PE 3屬于 VMl (VMID = Oxl )。
[0051]圖3A至圖3D圖標(biāo)用于配置一方式的控制值的不同實(shí)例,在此方式中,在分別歸屬于該四個(gè)PE的四個(gè)計(jì)數(shù)器上計(jì)數(shù)對于一組四個(gè)PE發(fā)生的事件。在圖3A的實(shí)例中,控制位MTD對于PEO及PEl清零(O),而控制位MTD對于PE 2及PE 3設(shè)定為(I)。如此具有以下效應(yīng),且應(yīng)注意,在此實(shí)例中的所有計(jì)數(shù)器對于多線程(MT)計(jì)數(shù)而配置,且分配給任何PE的計(jì)數(shù)器將計(jì)數(shù)來自PE O及PE I的事件,但來自PE 2的事件將僅藉由分配給PE 2的計(jì)數(shù)器來計(jì)數(shù),且類似地,僅在分配給PE 3的計(jì)數(shù)器上計(jì)數(shù)來自PE 3的事件。
[0052]在圖3B的實(shí)例中,為了事件計(jì)數(shù)及事件計(jì)數(shù)可見性的目的的分組參考上述VMID值來達(dá)成。如在圖3B中可見,PE O及PE I屬于VMID 0,同時(shí)PE 2及PE 3屬于VMID I。結(jié)果,且再次考慮到,在此實(shí)例中的所有計(jì)數(shù)器針對MT操作而配置,且提供其中來自VMID群組中的PE的計(jì)數(shù)是僅在歸屬于該VMID群組的計(jì)數(shù)器上計(jì)數(shù)的配置,并且所得計(jì)數(shù)隨后僅對該VMID群組之內(nèi)的PE可見。因此,在圖3B中所示的實(shí)例中,可以看出,對于VMID群組,在分配給PE O及PE I (唯一的)的計(jì)數(shù)器上進(jìn)行來自PE O及PE I的事件的計(jì)數(shù),同時(shí)在分配給PE 2及PE 3的計(jì)數(shù)器上計(jì)數(shù)(唯一的)來自PE 2及PE 3的事件。在兩個(gè)VMID群組之間無交叉計(jì)數(shù)。
[0053]圖3C圖示關(guān)于圖3B的實(shí)施例的變體,此實(shí)施例的變體再次使用虛擬機(jī)識別符VMID,但此外亦使用相關(guān)聯(lián)的群組控制位(VMTD)以進(jìn)一步定義在兩個(gè)群組之間的事件計(jì)數(shù)的可見性。在此實(shí)例中,PE O及PE I屬于第一虛擬機(jī)(VMID = O)且PE 2及PE 3屬于第二虛擬機(jī)(VMID = I);且相應(yīng)地,為PE O及PE I設(shè)定的VMTD的值為O且為PE 2及PE 3設(shè)定的VMTD的值為I。如可在圖6中所見,與圖3B的實(shí)例相比,此舉具有以下效應(yīng),在分配給PE 2及PE 3的計(jì)數(shù)器上計(jì)數(shù)另外的事件。
[0054]最后,圖3D圖示其中在線程之間的事件計(jì)數(shù)的可見性藉由使用為每一線程儲存的屏蔽值(MTMASK)而控制的實(shí)例。為每一線程儲存的MTMASK值經(jīng)圖示在圖3D的底部,對應(yīng)于在相應(yīng)線程的行上的“計(jì)數(shù)事件”。MTMASK值根據(jù)線程編號以從小到大的格式示出,且因此可見,并未為線程本身儲存顯式值(且此值取而代之地在圖中由“X”指示,此值經(jīng)有效地作為設(shè)定值“I”處理)。用圖3D中所示的位圖案設(shè)定這些屏蔽值的效應(yīng)在于,在所有計(jì)數(shù)器上計(jì)數(shù)來自PE O及PE I的事件,同時(shí)僅在分配給PE 2及PE 3的計(jì)數(shù)器上計(jì)數(shù)來自PE 2的事件。PE 2及PE 3的計(jì)數(shù)器為其自身且為該此計(jì)數(shù)事件,且此外,在分配給PE O的計(jì)數(shù)器上計(jì)數(shù)來自PE 3的事件。
[0055]圖4圖示圖1的計(jì)數(shù)器電路14如何在一實(shí)施例中配置的實(shí)例。因此,在圖4中,計(jì)數(shù)器屬性電路(圖1中的14A)藉由組件符號50圖標(biāo),而示例性計(jì)數(shù)器(圖1中的14B)藉由組件符號52圖標(biāo)。計(jì)數(shù)器屬性電路50包含事件選擇電路(實(shí)質(zhì)上為多任務(wù)器)54及屬性電路56。計(jì)數(shù)器52包含加法器58及歸屬于此特定計(jì)數(shù)器的值儲存器60(標(biāo)記“η”)。事件選擇多任務(wù)器54基于控制值EVSEL〈n>.SEL來控制,事件選擇多任務(wù)器54自計(jì)數(shù)器配置單元(在圖1的實(shí)例中的16)接收此控制值。此處,“η”對應(yīng)于在考慮之中的特定計(jì)數(shù)器,且因此EVSEL〈n>.SEL值為計(jì)數(shù)器<n>選擇經(jīng)接收事件中的一事件。在所示的實(shí)例中(其中事件選擇多任務(wù)器經(jīng)圖示為自8個(gè)不同源接收事件信息),EVSEL〈n>.SEL為3位選擇值,允許選擇八個(gè)事件中的一事件。經(jīng)選擇的事件信息(指示已觀察到可為其記錄計(jì)數(shù)的事件的單比特位)經(jīng)傳遞至屬性電路56。屬性電路56將傳遞給定計(jì)數(shù)器經(jīng)分配至其的線程(如由與該信息,該事件信息一起接收的屬性值所指示)的事件計(jì)數(shù)信號至事件計(jì)數(shù)器52上,而無需進(jìn)一步濾波。然而,屬性電路56亦接收EVSEL〈n>值的位值MT,此值指示是否計(jì)數(shù)器η當(dāng)前經(jīng)配置用于多線程計(jì)數(shù)。因此,對于歸屬于不同線程的經(jīng)接收的事件計(jì)數(shù),屬性電路56亦確定是否允許計(jì)數(shù)器累積此計(jì)數(shù)值。若事件計(jì)數(shù)器經(jīng)配置用于多線程計(jì)數(shù),則屬性電路56進(jìn)一步確定是否對應(yīng)于由經(jīng)接收的屬性信息指示的線程的MTD位(由PMCRpE〈thread〉.MTD給出)得以設(shè)定。若設(shè)定了此值,則如此指示產(chǎn)生此事件信息的線程已經(jīng)配置以“退出”其他線程的多線程視圖,且屬性電路56不將所發(fā)生事件的指示傳遞至未分配給該線程的任何計(jì)數(shù)器52上。然而,若未對擁有此事件信息的線程設(shè)定MTD位,則屬性電路56不將事件(計(jì)數(shù))指示傳遞至分配給其他線程的其他事件計(jì)數(shù)器52上(且經(jīng)配置(藉由設(shè)定其MT位)用于多線程計(jì)數(shù))。對于由此計(jì)數(shù)器為線程η所經(jīng)歷的計(jì)數(shù)數(shù)目,單獨(dú)的計(jì)數(shù)器52隨后(使用加法器58)加入此事件發(fā)生的指示至其當(dāng)前儲存(在儲存器60中)的值。
[0056]圖5圖示指示用于確定是否經(jīng)接收的事件信息及屬性應(yīng)對特定計(jì)數(shù)器產(chǎn)生增量計(jì)數(shù)的一實(shí)施例中采用的步驟順序的流程圖。在步驟100處接收新的事件信息及屬性(此事件信息及屬性可例如僅為一設(shè)定位及所擁有線程的指示,此設(shè)定位指示特定事件的發(fā)生)。隨后,在步驟102處,確定事件信息的經(jīng)指示的屬性(亦即,所擁有的線程)是否對應(yīng)于在考慮之中的特定計(jì)數(shù)器所分配至的線程。若此屬性對應(yīng)于在考慮之中的特定計(jì)數(shù)器所分配至的線程,則流程直接進(jìn)行至步驟104,在此步驟中,允許此事件增量此計(jì)數(shù)器(NB假定當(dāng)前啟用此計(jì)數(shù)器)。然而,若在步驟102處確定事件信息對應(yīng)于不與此計(jì)數(shù)器關(guān)聯(lián)的線程,則流程進(jìn)行至步驟106,在此步驟處,確定是否在考慮之中的計(jì)數(shù)器當(dāng)前經(jīng)配置用于多線程計(jì)數(shù)。若否,則流程進(jìn)行至步驟108且不允許相應(yīng)計(jì)數(shù)器增量。然而,若此計(jì)數(shù)器經(jīng)配置用于多線程計(jì)數(shù),則流程進(jìn)行至步驟110,在此步驟中,確定是否當(dāng)前為由與此事件指示相關(guān)聯(lián)的屬性信息指示的線程設(shè)定MTD位。若設(shè)定了此MTD位,則流程亦前進(jìn)至步驟108且不允許計(jì)數(shù)器增量。然而,若在步驟110處,發(fā)現(xiàn)未設(shè)定MTD位,則流程進(jìn)行至步驟104,在此步驟處,允許相關(guān)計(jì)數(shù)器的增量(假定計(jì)數(shù)器當(dāng)前啟用)。
[0057]如上所述,一些實(shí)施例可利用虛擬機(jī)識別符(VMID)來代替控制位MTD,或除利用控制位MTD之外,還利用虛擬機(jī)識別符;并且圖6A示意地圖示支持多個(gè)虛擬機(jī)的數(shù)據(jù)處理裝置的邏輯內(nèi)部配置。因而,圖6A示意地圖示其中提供虛擬操作環(huán)境的實(shí)施例。圖標(biāo)了兩個(gè)客操作系統(tǒng)OS A 150及OS B 152(然而可支持更多的操作系統(tǒng),但是為了清楚起見此處并未圖示),相應(yīng)的應(yīng)用程序154、156、158及160在此兩個(gè)客操作系統(tǒng)的控制下執(zhí)行。對這些客操作系統(tǒng)及這些客操作系統(tǒng)執(zhí)行的應(yīng)用程序的整體控制藉由超管理器162維持,此超管理器進(jìn)一步維持虛擬化操作環(huán)境的整體控制且指定特定虛擬機(jī)(亦即,客操作系統(tǒng)及此客操作系統(tǒng)正在執(zhí)行的應(yīng)用程序)可經(jīng)歷且在系統(tǒng)中交互的內(nèi)容。在圖6A中所示的實(shí)例中,客操作系統(tǒng)OS A 150及此客操作系統(tǒng)執(zhí)行的應(yīng)用程序表示第一虛擬機(jī)(VMO),且第二客操作系統(tǒng)OSB 152及此客操作系統(tǒng)執(zhí)行應(yīng)用程序可被視為第二虛擬機(jī)(VMl)。圖6A亦示意地圖標(biāo)所示系統(tǒng)的不同組件在不同“異常位準(zhǔn)”(EL0至EL3)操作的事實(shí),這些“異常位準(zhǔn)”實(shí)質(zhì)上表示在系統(tǒng)之內(nèi)的特權(quán)的不同位準(zhǔn)且對應(yīng)于控制位準(zhǔn)及給定組件具有的對系統(tǒng)的其他組件的可見性。因而,特權(quán)階層用操作在該階層的最低位準(zhǔn)的應(yīng)用程序154至160、操作在該階層的下一較高位準(zhǔn)的客操作系統(tǒng)150及152,及在更較高位準(zhǔn)操作的超管理器160來支持。亦應(yīng)注意,在圖6A中圖式此特權(quán)階層的進(jìn)一步更高位準(zhǔn),即安全監(jiān)視器164,此監(jiān)視器在系統(tǒng)中支持的特權(quán)的最高位準(zhǔn)操作以保持嚴(yán)格控制將系統(tǒng)細(xì)分為“安全世界”及“非安全世界”,以在可處理安全敏感數(shù)據(jù)的可信賴應(yīng)用程序/操作系統(tǒng)與不向其提供此信賴的其他應(yīng)用程序/操作系統(tǒng)之間提供可靠的安全性劃分。此舉將參考圖6B論述于下文中。特定地參考本發(fā)明的技術(shù),如上所述,經(jīng)執(zhí)行以運(yùn)行應(yīng)用程序154至160中的一應(yīng)用程序的給定PE(線程)具有控制位集合的特定值(此值可為諸如儲存于系統(tǒng)控制寄存器中的諸如MTD的專用控制位,或此值可由虛擬機(jī)識別符VMID(由用于識別虛擬機(jī)VMO及VMl的系統(tǒng)保持)表示,或可為上文論述的在其上的其他變體中的任一者)。超管理器162負(fù)責(zé)在虛擬機(jī)之間的上下文切換,且因此當(dāng)進(jìn)行此上下文切換且一客OS(且更通常的為虛擬機(jī))的狀態(tài)經(jīng)該此替代,超管理器162負(fù)責(zé)適當(dāng)?shù)厍袚Q相關(guān)控制位(是否根據(jù)上述實(shí)施例實(shí)施為單個(gè)每線程位,或?qū)嵤槿航M位,或?qū)嵤槠帘沃?以使得保持對線程之間的可見性的所需控制。特定言之,如此確保可自較低信賴的虛擬機(jī)隱藏對更加信賴(安全的)虛擬機(jī)的事件信息(例如,計(jì)數(shù)值)。
[0058]圖6B示意地圖標(biāo)數(shù)據(jù)處理系統(tǒng)至上述安全(secure ; S)及非安全(non-secure ;NS)世界的細(xì)分。此舉可藉由使用由Cambridge,UK的ARM Limited提供的TrustZone技術(shù)來實(shí)施。此細(xì)分及安全與非安全世界之間的轉(zhuǎn)變的控制藉由安全監(jiān)視器164來維持,因此安全監(jiān)視器164自身形成安全世界170的一部分,且根據(jù)圖6A中所示的特權(quán)階層,此安全監(jiān)視器在此特權(quán)階層的最高位準(zhǔn)操作。亦包含在安全世界170之內(nèi)的系統(tǒng)為任何客操作系統(tǒng),例如安全操作系統(tǒng)172,此客操作系統(tǒng)被信賴而在此空間中操作;以及至少一個(gè)可信賴應(yīng)用程序174。非安全世界180包含非安全平臺操作系統(tǒng)182、超管理器183,及至少一個(gè)開放應(yīng)用程序184。由此,系統(tǒng)成為安全世界170及非安全世界180的劃分從而表示系統(tǒng)細(xì)分成諸部分的另一實(shí)例,對于這些部分,在一側(cè)上的事件信息可能需要根據(jù)其對另一側(cè)上的組件的可見性受限。因而,作為安全監(jiān)視器164整體地施加于系統(tǒng)上的控制的一部分,可以確保,用于在安全世界之內(nèi)執(zhí)行的給定線程的可見性配置值(亦即,控制位、群組位、VMID值、屏蔽值等)經(jīng)適當(dāng)?shù)卦O(shè)定,以使得與該線程的執(zhí)行相關(guān)的事件信息對操作于非安全世界中的線程的軟件不可見(若需要)。此外,安全監(jiān)視器164進(jìn)一步確保為操作于安全世界中的線程保持的值甚至對于操作于非安全世界中的線程不可見。
[0059]因此,藉由整體概述,在執(zhí)行多線程數(shù)據(jù)處理的裝置中,事件處理電路自數(shù)據(jù)處理電路接收指示已在數(shù)據(jù)處理操作期間發(fā)生的事件的事件信息??梢娦耘渲脙Υ嫫鞅3忠唤M可見性配置值,各可見性配置值與多個(gè)線程中的一線程相關(guān)聯(lián)且事件處理電路調(diào)適此電路對事件信息的使用以限制事件信息對線程的軟件的可見性,這些線程不同于當(dāng)產(chǎn)生事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生事件信息的線程。如此允許多線程事件監(jiān)控得以支持,同時(shí)保護(hù)事件信息不受希望將其可見性對其他線程的軟件限制的特定線程的影響。
[0060]在本案中,“經(jīng)配置以……”及“經(jīng)布置以”用于意謂裝置的組件具有能夠執(zhí)行經(jīng)定義的操作的配置。在此上下文中,“配置”意謂硬件或軟件的布置或互連的方式。例如,裝置可能具有提供經(jīng)定義操作的專用硬件,或處理器或其他處理裝置可經(jīng)程序化以執(zhí)行此函數(shù)?!敖?jīng)配置以”或“經(jīng)布置以”不意味裝置組件需要以任何方式改變以提供經(jīng)定義操作。
[0061]盡管已參看附圖在本文中詳細(xì)描述說明性實(shí)施例,但是應(yīng)將理解,本發(fā)明不限于那些精確實(shí)施例,且在不背離如由附加申請專利范圍所定義的本發(fā)明的范疇及精神的情況下,可由熟習(xí)該項(xiàng)技術(shù)者在本文中實(shí)現(xiàn)各種變化、添加及修改。例如,在不背離本發(fā)明的范圍的情況下,可對獨(dú)立項(xiàng)的特征進(jìn)行附屬項(xiàng)的特征之各種組合。
【主權(quán)項(xiàng)】
1.一種用于多線程數(shù)據(jù)處理的裝置,包含: 數(shù)據(jù)處理電路,用于對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作; 事件處理電路,用于自該數(shù)據(jù)處理電路接收指示已在該數(shù)據(jù)處理操作期間發(fā)生的事件的事件?目息;以及 可見性配置儲存器,用于保持一組可見性配置值,各可見性配置值與該多個(gè)線程中的一線程相關(guān)聯(lián), 其中該事件處理電路響應(yīng)于接收到該事件信息以調(diào)適該電路對該事件信息的使用,以限制該事件信息對以下線程的軟件的可見性:這些線程不同于當(dāng)產(chǎn)生該事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生該事件信息的線程。2.如權(quán)利要求1所述的裝置,其中各可見性配置值對于除了相應(yīng)線程之外的線程的軟件不可訪問。3.如權(quán)利要求1所述的裝置,其中該事件處理電路包含至少一個(gè)事件計(jì)數(shù)器。4.如權(quán)利要求3所述的裝置,其中該至少一個(gè)事件計(jì)數(shù)器包含對該多個(gè)線程中的每一線程的事件計(jì)數(shù)器。5.如權(quán)利要求3所述的裝置,其中該至少一個(gè)事件計(jì)數(shù)器可配置用于多線程事件計(jì)數(shù)且該至少一個(gè)事件計(jì)數(shù)器計(jì)數(shù)多于一個(gè)線程的事件。6.如權(quán)利要求5所述的裝置,其中響應(yīng)于執(zhí)行多線程事件計(jì)數(shù)的至少一個(gè)事件計(jì)數(shù)器,該至少一個(gè)事件計(jì)數(shù)器對于當(dāng)線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生所述事件信息的線程的事件不計(jì)數(shù)。7.如權(quán)利要求1所述的裝置,其中該可見性配置儲存器經(jīng)布置以保持單比特位可見性配置值。8.如權(quán)利要求1所述的裝置,其中該可見性配置儲存器經(jīng)布置以保持多比特位可見性配置值, 其中該事件處理電路響應(yīng)于接收到該事件信息以調(diào)適該電路對該事件信息的使用,以使得對除了產(chǎn)生該事件信息的線程之外的該多個(gè)線程中的每一線程的軟件的事件信息的可見性藉由針對產(chǎn)生該事件信息的線程所儲存的多比特位可見性配置值的相應(yīng)比特位來定義。9.如權(quán)利要求1所述的裝置,其中產(chǎn)生該事件信息的線程被包含于線程群組中, 且該事件處理電路響應(yīng)于接收到該事件信息以調(diào)適該電路對該事件信息的使用,以使得該事件信息對該線程群組中的線程軟件可見且以使得該事件信息對不包含于該線程群組中的線程軟件不可見。10.如權(quán)利要求9所述的裝置,其中該線程群組藉由群組識別符定義,且該事件處理電路響應(yīng)于接收到該事件信息以使用該群組識別符作為可見性配置值。11.如權(quán)利要求1所述的裝置,其中產(chǎn)生該事件信息的線程包含于線程群組中,且該可見性配置值藉由該線程群組的群組可見性配置值給出。12.如權(quán)利要求1所述的裝置,其中該事件處理電路響應(yīng)于接收到該事件信息以調(diào)適該電路對該事件信息的使用,以使得該事件信息對以下線程的軟件不可見:這些線程不同于當(dāng)產(chǎn)生該事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生該事件信息的線程。13.如權(quán)利要求1所述的裝置,其中該數(shù)據(jù)處理電路經(jīng)布置以在多個(gè)執(zhí)行位準(zhǔn)中經(jīng)選擇的執(zhí)行位準(zhǔn)下對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作,其中各可見性配置值對于在比該經(jīng)選擇執(zhí)行位準(zhǔn)低的執(zhí)行位準(zhǔn)下執(zhí)行的線程不可訪問。14.如權(quán)利要求13所述的裝置,其中該多個(gè)執(zhí)行位準(zhǔn)包含多個(gè)異常位準(zhǔn)。15.如權(quán)利要求13所述的裝置,其中該多個(gè)執(zhí)行位準(zhǔn)包含多個(gè)安全性位準(zhǔn)。16.如權(quán)利要求13所述的裝置,其中該裝置經(jīng)布置以當(dāng)在執(zhí)行位準(zhǔn)之間上下文切換時(shí)更新該可見性配置值。17.如權(quán)利要求1所述的裝置,其中該數(shù)據(jù)處理電路經(jīng)布置以響應(yīng)于指令執(zhí)行該數(shù)據(jù)處理操作且選擇該數(shù)據(jù)處理電路執(zhí)行的這些指令的子集以便歸檔,該歸檔基于針對該指令的子集所產(chǎn)生的事件信息, 其中該歸檔包含將歸檔數(shù)據(jù)儲存至儲存單元,該歸檔數(shù)據(jù)包含該事件信息或來源于該事件信息的進(jìn)一步信息, 且其中該數(shù)據(jù)處理電路經(jīng)布置以當(dāng)產(chǎn)生該事件信息的線程的可見性配置值具有該預(yù)定值時(shí)防止該歸檔數(shù)據(jù)的儲存。18.—種數(shù)據(jù)處理系統(tǒng),包含如權(quán)利要求1所述的裝置及儲存單元。19.一種多線程數(shù)據(jù)處理的方法,包含以下步驟: 對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作; 儲存一組可見性配置值,各可見性配置值與該多個(gè)線程中的一線程相關(guān)聯(lián); 接收指示已在這些數(shù)據(jù)處理操作期間發(fā)生的事件的事件信息;以及調(diào)適該事件信息的使用,以限制該事件信息對以下線程的軟件的可見性:這些線程不同于當(dāng)產(chǎn)生該事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生該事件信息的線程。20.—種用于多線程數(shù)據(jù)處理的裝置,包含: 用于對多個(gè)線程中的每一線程執(zhí)行數(shù)據(jù)處理操作的構(gòu)件; 用于儲存一組可見性配置值的構(gòu)件,各可見性配置值與該多個(gè)線程中的一線程相關(guān)聯(lián); 用于自該用于執(zhí)行數(shù)據(jù)處理操作的構(gòu)件接收指示已在這些數(shù)據(jù)處理操作期間發(fā)生的事件的事件信息的構(gòu)件;以及 調(diào)適對事件信息的使用的構(gòu)件,以限制該事件信息對以下線程的軟件的可見性:這些線程不同于當(dāng)產(chǎn)生該事件信息的線程的可見性配置值具有預(yù)定值時(shí)產(chǎn)生該事件信息的線程。21.—種以非瞬時(shí)形式儲存軟件的計(jì)算機(jī)可讀存儲介質(zhì),當(dāng)該軟件在計(jì)算裝置上執(zhí)行時(shí),引起該計(jì)算裝置執(zhí)行如權(quán)利要求19所述的方法。22.—種當(dāng)在計(jì)算裝置上執(zhí)行時(shí)引起該計(jì)算裝置執(zhí)行如權(quán)利要求19所述的方法的軟件。
【文檔編號】G06F11/30GK106055448SQ201610180138
【公開日】2016年10月26日
【申請日】2016年3月25日 公開號201610180138.3, CN 106055448 A, CN 106055448A, CN 201610180138, CN-A-106055448, CN106055448 A, CN106055448A, CN201610180138, CN201610180138.3
【發(fā)明人】邁克爾·約翰·威廉姆斯, 西蒙·約翰·克拉斯克
【申請人】Arm 有限公司