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

數(shù)據(jù)處理系統(tǒng)中的硬件資源管理的制作方法

文檔序號:6350903閱讀:137來源:國知局

專利名稱::數(shù)據(jù)處理系統(tǒng)中的硬件資源管理的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域。更具體而言,本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件資源的管理。
背景技術(shù)
:數(shù)據(jù)處理系統(tǒng)通常具有很多硬件資源,諸如性能監(jiān)視器計數(shù)器、配置儲存寄存器、調(diào)試事件產(chǎn)生資源、追蹤(trace)資源等等。在特定處理器內(nèi)提供的這些資源的數(shù)目可特定于具體實施方式。在數(shù)據(jù)處理系統(tǒng)領(lǐng)域內(nèi),朝向使用虛擬化的趨勢與日俱增。這樣的虛擬化可允許軟件被提供一運行環(huán)境,該運行環(huán)境看起來具有就軟件角度而言的形式,然而實際上其具有不同的底層(underlying)實體形式。舉例而言,處理器可被提供為運行負責(zé)管理虛擬化的系統(tǒng)管理程序(hypervisor)軟件以及通常在系統(tǒng)管理程序軟件權(quán)限等級以下的權(quán)限等級運行的一個或多個來賓操作系統(tǒng)。來賓操作系統(tǒng)可由系統(tǒng)管理程序軟件呈現(xiàn)一通向處理器的接口,諸如對可用特定硬件資源的數(shù)量目的指示,其不同于物理事實。此虛擬化通常由系統(tǒng)管理程序軟件管理以捕捉(trapping)對軟件資源的訪問,而后運行系統(tǒng)管理程序以管理對底層來賓操作系統(tǒng)的響應(yīng),以給予與被呈現(xiàn)給來賓操作系統(tǒng)的虛擬系統(tǒng)相匹配的適當響應(yīng)。捕捉訪問和在系統(tǒng)管理程序控制下產(chǎn)生適當?shù)能浖憫?yīng)的處理會消耗數(shù)百個處理器周期并且且運行相對較慢。在一半虛擬化(paravirtual)方法中,來賓操作系統(tǒng)可具有與系統(tǒng)管理程序相同的權(quán)限特級,并且被“信任”為除非藉由對系統(tǒng)管理程序的已發(fā)布接口的適當呼叫否則不使用某些資源。希望被虛擬化的某些硬件資源不適于捕捉訪問并產(chǎn)生軟件的適當響應(yīng)的方法。舉例而言,在處理器內(nèi)提供硬件性能計數(shù)器以監(jiān)視系統(tǒng)性能的各方面變得越來越有用。系統(tǒng)管理程序可使用這樣的性能計數(shù)器來控制諸如電壓和頻率尺度之類的參數(shù),以減少處理器的能量使用并同時仍滿足所要求的性能標準。在另一等級,來賓操作系統(tǒng)或使用來賓操作系統(tǒng)運行的應(yīng)用程序可利用硬件性能計數(shù)器來控制其自己的操作或作為該應(yīng)用軟件或來賓操作系統(tǒng)開發(fā)期間所執(zhí)行的診斷/調(diào)試操作的部份。在這樣的性能計數(shù)器的上下文(context)中,捕捉對性能計數(shù)器的訪問以支持這些硬件資源的虛擬化的開銷大大影響被監(jiān)視的軟件的性能和行為。并從而影響所產(chǎn)生的結(jié)果的有效性。還希望能同時支持用于高等級控制的系統(tǒng)管理程序和用于不同目的的諸如來賓操作系統(tǒng)等其它程序二者對硬件資源的使用。此外,在實體實施中所提供的硬件資源的數(shù)目可改變。需要在虛擬化系統(tǒng)內(nèi)管理的硬件資源的另一示例為用于指向系統(tǒng)存儲器管理單元的配置數(shù)據(jù)之上下文指針。在支持安全域和非安全域(例如ARMTrustzone)的系統(tǒng)中,通常需要根據(jù)被呈現(xiàn)給正運行的軟件的環(huán)境來交換硬件存儲器管理單元的配置。指示配置數(shù)據(jù)儲存于何處的硬件指針提供用于快速訪問此數(shù)據(jù)以便于保存和重新存儲的目的的機制。因此,捕捉對于這些指針的軟件訪問對切換上下文的速度有不利的影響。然而,重要的是,該系統(tǒng)應(yīng)能夠提供適當環(huán)境,包含這些指針的數(shù)目以及支持可改變指針數(shù)目的不同實體實施的能力。
發(fā)明內(nèi)容根據(jù)本發(fā)明的一方面,提供一種用于在多個程序控制下處理數(shù)據(jù)的裝置,該裝置包含多個硬件資源,這多個硬件資源具有預(yù)定的序列,以使得這多個硬件資源中的每一硬件資源具有所述序列內(nèi)的一預(yù)定位置;邊界指示電路,該邊界指示電路被配置為儲存指示在所述序列內(nèi)的邊界位置的邊界值,所述邊界位置將所述序列分割為處于所述序列內(nèi)的所述邊界位置的第一側(cè)上的第一部份以及處于所述序列內(nèi)的所述邊界位置的第二側(cè)上的第二部份;程序指令執(zhí)行電路,該程序指令執(zhí)行電路被配置為執(zhí)行程序指令;資源控制電路,該資源控制電路被耦合至所述邊界指示電路并且被配置為當所述程序執(zhí)行電路正執(zhí)行第一程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回一第一值;并且當所述程序執(zhí)行電路正執(zhí)行第二程序時,響應(yīng)于查詢所述該裝置所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述第二部份的那些硬件資源的值。本發(fā)明技術(shù)提供按照可編程邊界值所指示將多個硬件資源分割為第一部份和第二部份的硬件支持。資源控制電路被提供,以使得當?shù)谝怀绦虿樵兯龆鄠€硬件資源有多少時,傳回第一值,然而當?shù)诙绦虿樵兯龆鄠€硬件資源有多少時,傳回對應(yīng)于所述第二部份內(nèi)的那些硬件資源的值。因此,第一程序和第二程序可被提供關(guān)于現(xiàn)有的硬件資源的數(shù)目的不同觀點。第一程序和第二程序可查詢此數(shù)目,以考慮在不同實施中可以有不同數(shù)目的硬件資源的事實。此外,針對此查詢對第一程序和第二程序傳回的不同結(jié)果允許第一程序和第二程序可做出硬件資源使用之間的分隔。舉例而言,傳回第一程序的對資源數(shù)目的第一值對應(yīng)于在所述第一部份和所述第二部份內(nèi)的硬件資源的總和。第一程序因此可被允許控制所有的硬件資源,然而第二程序僅可感知所述第二部份內(nèi)的那些硬件資源并且將其互動限制到所述第二部份內(nèi)的那些硬件資源。在一替代性實例中,傳回第一程序的第一值可對應(yīng)于所述第一部份內(nèi)的硬件資源,這給予第一程序?qū)@些硬件資源的訪問。第一程序和第二程序可以程序指令執(zhí)行電路所支持的多個權(quán)限等級內(nèi)的不同權(quán)限等級進行操作。在此環(huán)境中,資源控制電路可被配置為使得以第一權(quán)限等級運行的第一程序被允許在程序指令控制下寫入邊界值,然而以第二權(quán)限等級運行的第二程序不被允許寫入邊界值。以此方式,第一程序可控制呈現(xiàn)給第二程序的硬件資源的示圖(view)。資源控制電路可被配置為當該系統(tǒng)處于第二權(quán)限等級時以不同的方式響應(yīng)對第一部份內(nèi)的那些硬件資源的訪問。一般而言,相比于程序執(zhí)行電路以第一權(quán)限等級進行操作時,當以第二權(quán)限等級進行操作時,資源控制電路可給予對所述第一部份內(nèi)的那些硬件資源較少的訪問權(quán)。就此的一個示例是當程序執(zhí)行電路以第二權(quán)限等級進行操作時,不被給予對所述第一部份內(nèi)的硬件資源的訪問權(quán)。傳回第一程序或第二程序的對關(guān)于有多少硬件資源的查詢的精確響應(yīng)可改變。在一實施例中,可向第一程序傳回存在的硬件資源的數(shù)目的真實值,并且向第二程序傳回由邊界值所指定的值。多個權(quán)限等級可包含權(quán)限等級層次,該層中的至少一些較高的權(quán)限等級相比于該層次中較低的權(quán)限等級具有對硬件資源的適當超集(superset)的訪問權(quán)。在前述中,已描述了結(jié)合有資源控制電路響應(yīng)的邊界值的系統(tǒng)。在進一步的實施例中,邊界指示電路可被配置為儲存進一步的邊界值,所述進一步的邊界值將所述第二部份分割為進一步的第一部份和進一步的第二部份。當以第二權(quán)限等級進行操作中,程序?qū)⒈辉试S寫入該進一步的邊界值并且以對應(yīng)于進一步的第一部份和進一步的第二部份內(nèi)的那些硬件資源的總和的值來響應(yīng)關(guān)于有多少硬件資源的查詢。同時,以第三權(quán)限等級進行操作的程序?qū)⒉槐辉试S寫入該進一步的邊界值,并且將傳回對應(yīng)于進一步的第二部份內(nèi)的那些硬件資源的值來響應(yīng)關(guān)于有多少硬件資源的查詢。因此,可見,硬件資源被分割為第一部份和第二部份可具有第二部份被進一步分割為進一步的第一部份和進一步的第二部份的層次。以類似的方式,該進一步的第二部份等等可藉由另外的邊界值被進行進一步的子分割。雖然可理解由本發(fā)明技術(shù)所管理的硬件資源可采取各種不同的形式,但是本發(fā)明技術(shù)適用于其中硬件資源包含指向存儲器管理單元的配置數(shù)據(jù)的指針表內(nèi)的多個條目的實施例。在這些實施例中,配置數(shù)據(jù)可包含一個或多個轉(zhuǎn)換表基指針寄存器值;故障地址和上下文寄存器值;轉(zhuǎn)換查考緩沖區(qū)維持寄存器值(translationlookasidebuffermaintenanceregistervalues);虛擬地址大盤物理地址運算寄存器值;存儲器管理單元配置和控制寄存器值;上下文庫值,該上下文庫值包含轉(zhuǎn)換表基指針寄存器值、故障地址和上下文寄存器值、轉(zhuǎn)換查考緩沖區(qū)維持寄存器值、虛擬地址到物理地址運算寄存器值和存儲器管理單元配置和控制寄存器值;旁路屬性寄存器;響應(yīng)于由第一程序和第二程序中的一個或多個發(fā)起的活動而引起的中斷輸出;及用于映映射數(shù)據(jù)流的交易識別寄存器值。在其它適用于本發(fā)明技術(shù)的實施例中,多個硬件資源可包含多個性能監(jiān)視電路。這些性能監(jiān)視電路可包含如下內(nèi)容中的一者或多者多個計數(shù)器,這多個計數(shù)器包含一個或多個計數(shù)器寄存器、使能寄存器、溢出狀態(tài)標志以及溢出事件中斷使能寄存器;以及事件選擇電路,該事件選擇電路用于從多個事件中選擇用以計數(shù)的事件。本發(fā)明技術(shù)可應(yīng)用的多個硬件資源的又一示例是如下示例,多個硬件資源包含作為整體被訪問并且為配置寄存器和狀態(tài)寄存器中之一的寄存器的多個字段,所述多個字段中的每個字段表示各自的進一步資源,所述邊界值指定所述第一程序可訪問所述多個字段中的哪個字段以及所述第二程序可訪問所述多個字段中的哪個字段。在此上下文中,多個硬件資源可包含對應(yīng)于性能監(jiān)視電路中的各性能監(jiān)視電路的配置寄存器內(nèi)的比特,每一比特控制相應(yīng)性能監(jiān)視電路的某方面,諸如該電路是否被使能。這也可被應(yīng)用于狀態(tài)寄存器,此時每一比特報告而非控制相應(yīng)電路的某方面。可具有多對一的比特映射,例如針對每個電路的比特為一個字段。本發(fā)明技術(shù)可應(yīng)用的多個硬件資源的又一示例為多個硬件資源包含供第一程序或第二程序使用的多個寄存器。舉例而言,這些寄存器可為映射寄存器,儲存將被使用的在被訪問的數(shù)據(jù)流和該裝置所關(guān)心的相關(guān)處理上下文之間的映射。如果第二程序試圖讀取第一部份內(nèi)的某硬件資源(例如,其不具有適當訪問的部份),則在一些實施例中,針對此硬件資源的默認值可被傳回。以類似的方式,如果第二程序試圖對第一部份內(nèi)的某硬件資源寫入,則該寫入將不被執(zhí)行,并且異常(故障)處理可被觸發(fā)。前面所討論的多個不同權(quán)限等級可具有各種不同的形式和用途。在本發(fā)明技術(shù)可使用的一示例中,這多個權(quán)限等級包含系統(tǒng)管理程序權(quán)限等級,系統(tǒng)管理程序以該系統(tǒng)管理程序權(quán)限等級運行虛擬化的底層硬件;以及操作系統(tǒng)權(quán)限等級,操作系統(tǒng)程序以該操作系統(tǒng)權(quán)限等級運行。系統(tǒng)管理程序訪問第一部份內(nèi)的那些硬件資源和第二部份內(nèi)的那些硬件資源,并且操作系統(tǒng)程序僅訪問第二部份內(nèi)的那些資源。本發(fā)明技術(shù)可在其中被使用的另一示例環(huán)境是如下環(huán)境,其中,多個不同的權(quán)限等級包含安全程序在其中運行的安全域內(nèi)的至少一個安全權(quán)限等級,以及非安全程序在其中運行的非安全域內(nèi)的至少一個非安全權(quán)限等級。在此上下文中,安全程序可訪問第一部份內(nèi)的那些硬件資源以及第二部份內(nèi)的那些硬件資源,然而非安全程序僅訪問第二部份內(nèi)的那些硬件資源。資源控制電路以及對硬件資源的門控訪問(gatingaccess)可根據(jù)邊界值重新標引多個硬件資源。以此方式,不同的程序能夠就好像他們從索引值序列內(nèi)的某設(shè)定的索引值開始而訪問資源,即使那些索引被映射的物理資源根據(jù)哪部份被訪問以及第一位置和第二位置之間的邊界的位置而改變。根據(jù)本發(fā)明的另一方面,提供多個硬件資源構(gòu)件,這多個硬件資源構(gòu)件具有預(yù)定的序列,以使得這多個硬件資源構(gòu)件具有所述序列內(nèi)的一預(yù)定位置;邊界指示構(gòu)件,該邊界指示構(gòu)建用于儲存指示在所述序列內(nèi)的邊界位置的邊界值,所述邊界位置將所述序列分割為處于所述序列內(nèi)的所述邊界位置的第一側(cè)上的第一部份和處于所述序列內(nèi)的所述邊界位置的第二側(cè)上的第二部份;程序指令執(zhí)行構(gòu)件,該程序指令執(zhí)行構(gòu)件用于執(zhí)行程序指令;資源控制構(gòu)件,該資源控制構(gòu)件被耦合至邊界指示構(gòu)件,用于當程序指示構(gòu)件正執(zhí)行第一程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源構(gòu)件有多少的一個或多個程序指令,傳回第一值;并且當程序執(zhí)行構(gòu)件正執(zhí)行第二程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源構(gòu)件有多少的一個或多個程序指令,傳回對應(yīng)于第二部份內(nèi)的那些硬件資源的值。根據(jù)本發(fā)明的又一方面,提供儲存指示在所述序列內(nèi)的邊界位置的邊界值,所述邊界位置將所述序列分割為處于所述序列內(nèi)的所述邊界位置的第一側(cè)上的第一部份和處于所述序列內(nèi)的所述邊界位置的第二側(cè)上的第二部份;當程序執(zhí)行電路正執(zhí)行第一程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回第一值;并且當程序執(zhí)行電路正執(zhí)行第二程序時,響應(yīng)于查詢在所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于第二部份內(nèi)的那些硬件資源的值?,F(xiàn)在將參考附圖借助于示例來描述本發(fā)明的實施例,在附圖中圖I示意性地圖示用于在程序指令的控制下處理數(shù)據(jù)并且包含有不同類型的硬件資源的裝置;圖2示意性地圖示多個硬件資源,這多個硬件資源在由邊界寄存器內(nèi)所儲存的邊界值所指定的邊界處被分割成第一部份和第二部份;圖3示意性地圖示多個資源,這多個資源為寄存器內(nèi)的控制比特并且由邊界寄存器內(nèi)所保持的邊界值被分割成第一部份和第二部份;圖4圖示以不同權(quán)限等級操作的不同程序的層次;圖5圖示在具有安全域和非安全域的系統(tǒng)中的權(quán)限等級的另一布置;圖6是圖示對第一部份內(nèi)的硬件資源訪問的控制的流程圖;圖7圖示使用一邊界和另一邊界對硬件資源的分割;圖8示意性地圖示多個邊界,這多個邊界使用由不同權(quán)限等級的程序所寫的各邊界值來分割多個資源;圖9圖示具有指向存儲器管理單元配置的儲存位置的指針的表格形式的多個硬件資源;圖10示意性地圖示用于讀取資源大小指示的電路;圖11示意性地圖示用于當本發(fā)明水印技術(shù)(watermarkingtechnique)被利用時用于讀取資源的電路;圖12示意性地圖示用于當本發(fā)明水印技術(shù)被利用時用于寫入資源的電路。具體實施例方式圖I示意性地圖示用于在多個程序控制下處理數(shù)據(jù)的裝置2。這些程序被儲存在存儲器4內(nèi),存儲器4被稱合至片上系統(tǒng)(systemonchip)集成電路6。集成電路6包括處理器核心8,處理器核心8執(zhí)行從存儲器4所讀取的程序指令。集成電路6還包括系統(tǒng)存儲器管理單元(MMU)10,MMU10用于在系統(tǒng)等級控制例如經(jīng)由連接其他組件的ARMAXI總線(未示出)對存儲器4的訪問。集成電路6包括根據(jù)下面進一步描述的技術(shù)的可用于以不同權(quán)限等級運行的不同程序的硬件資源。在本示例中,硬件資源的一種形式包括具有性能計數(shù)器形式的性能監(jiān)視電路12。與這些性能監(jiān)視電路12(對應(yīng)于多個硬件資源)相關(guān)聯(lián),提供有性能監(jiān)視器邊界寄存器14(邊界指示電路)和性能監(jiān)視器控制電路16(資源控制電路)。性能監(jiān)視器邊界寄存器14儲存指示性能監(jiān)視電路12的第一部份內(nèi)的性能計數(shù)器和性能監(jiān)視電路12的第二部份內(nèi)的性能計數(shù)器之間的分割的邊界值。性能監(jiān)視電路內(nèi)的性能計數(shù)器具有預(yù)定的序列,從而使得每個硬件資源在該序列內(nèi)具有預(yù)定位置。因此,通過在該序列內(nèi)的某點定義邊界,可確定哪些性能計數(shù)器落于該邊界的一側(cè)的第一部份內(nèi),以及哪些性能監(jiān)視器落于該邊界的另一側(cè)的第二部份內(nèi)。性能監(jiān)視器控制電路16被提供指示處理器核心8正操作和執(zhí)行處理指令的當前權(quán)限等級的信號。性能監(jiān)視器控制電路16響應(yīng)于此權(quán)限等級來確定當由處理器核心8執(zhí)行的程序試圖訪問硬件資源(例如性能監(jiān)視器或用于性能監(jiān)視器的控制開關(guān))中的一個硬件資源時是否允許該訪問。若允許此訪問,則允許例如進行寫入或讀取。若不允許此訪問,則該訪問將不被執(zhí)行,并且可執(zhí)行默認動作,例如傳回一默認值、觸發(fā)異常(exertion)處理、允許讀取但不允許寫入或簡單地忽視寫入。圖I還圖示出另一形式的包含多個上下文指針18的硬件資源。這些上下文指針儲存指示用于編程系統(tǒng)MMU10的上下文數(shù)據(jù)就其當前上下文/模式被儲存于存儲器4內(nèi)的地址值。因此,當上下文/模式改變時,對系統(tǒng)MMU10的配置數(shù)據(jù)可快速地被擷取到MMU10,并且當前的數(shù)據(jù)被儲存至存儲器4。上下文/模式可對應(yīng)于處理器核心8當前是在ARMTrustzone系統(tǒng)的安全域還是非安全域操作。與多個上下文指針(具有預(yù)定序列(例如指針編號)的硬件資源)相關(guān)聯(lián),提供、有上下文指針邊界寄存器20,上下文指針邊界寄存器20儲存將上下文指針分割成一第一部份和第二部份的邊界值;以及上下文指針控制電路22,上下文指針控制電路22響應(yīng)于處理器核心8正在其中操作的域來通過程序指令來控制對上下文指針18的訪問。如前文關(guān)于性能監(jiān)視電路12所描述的,上下文指針18在他們的預(yù)定序列內(nèi)通過下文指針邊界寄存器20內(nèi)儲存的上下文指針邊界值被分割成第一部份和第二部份。響應(yīng)上下文指針的控制邏輯對查詢有多少硬件資源的運行第一程序指令作出響應(yīng),以傳回第一值,該第一值可為第一部份內(nèi)的上下文指針的數(shù)目或第一部份和第二部份內(nèi)的上下文指針的總和。訪問第一部份的第一程序被允許在上下文指針邊界寄存器20內(nèi)寫入邊界值。訪問上下文指針18的第二部份的第二程序不被允許寫入上下文指針邊界值,并且當其查詢存在的上下文指針的數(shù)目時,對應(yīng)于來自第二部份的上下文指針的數(shù)目的值被傳回。圖2示意性地圖示多個硬件資源CO到C7。這些硬件資源24具有對應(yīng)于各自在這多個硬件資源內(nèi)的數(shù)值位置的預(yù)定序列。儲存在邊界寄存器26內(nèi)的邊界值指示此序列內(nèi)的邊界位置。該邊界值是ー變量,并且相應(yīng)地邊界的位置可通過向邊界寄存器26寫入而被改變。在所圖示出的示例中,硬件資源的第一部份包括寄存器C3至C7。硬件資源的第二部份對應(yīng)于寄存器CO到C2。硬件資源的第一部份僅可由在安全域中運行的安全程序訪問。硬件資源的第二部份可由在安全域中運行的安全程序和在非安全域中運行的非安全程序訪問。如本領(lǐng)域技術(shù)人所熟悉的,安全程序通常負責(zé)對集成電路6的底層硬件架構(gòu)至少部份地虛擬化并提供對非安全程序的虛擬硬件接ロ,以便以受保護的方式對非安全軟件提供服務(wù)。安全程序和非安全系統(tǒng)二者需要查詢可用硬件資源24的數(shù)目,因為這可隨著實施情況而改變。然而,根據(jù)本發(fā)明的技術(shù),響應(yīng)于此查詢而傳回的值將根據(jù)正在發(fā)出查詢的是在安全域中運行的安全程序還是在非安全域中操作的非安全程序而改變。安全程序?qū)⒈粋骰卮嬖诘馁Y源的真實總數(shù)目,而非安全程序?qū)⒈粋骰貙?yīng)于第二部份內(nèi)存在的那些硬件資源的數(shù)目。以此方式,第一部份內(nèi)的硬件資源可相對非安全程序被隱藏,并被預(yù)留以供安全程序使用。由儲存于邊界寄存器26內(nèi)的邊界值所控制的邊界的位置可通過向邊界寄存器26寫入邊界值來改變。安全程序可向邊界寄存器26寫入。非安域中的非安全程序或其它程序不允許向邊界寄存器26寫入。系統(tǒng)MMU10按照類似于處理器MMU為處理器產(chǎn)生的訪問提供地址轉(zhuǎn)換和保護服務(wù)的方式來為設(shè)備產(chǎn)生的訪問提供地址轉(zhuǎn)換和保護服務(wù)。與系統(tǒng)MMU的主要差別在于所支持的同時發(fā)生的轉(zhuǎn)換配置的數(shù)目。處理器MMU—般僅支持一個活動上下文,因為其一次支持對軟件的ー個“世界”的轉(zhuǎn)換。類似于系統(tǒng)管理程序的管理性軟件當對來賓操作系統(tǒng)的運行進行時間劃片時,其將進行布置以切換此狀態(tài),并且當對應(yīng)用的運行進行時間劃片時,每個來賓操作系統(tǒng)將執(zhí)行等同的操作。系統(tǒng)MMU10支持對在短時間內(nèi)/同時地來自多個設(shè)備的訪問進行轉(zhuǎn)換,這潛在地提供了對每個設(shè)備的単獨轉(zhuǎn)換/保護。使用運用ARMTrustZone技術(shù)的系統(tǒng)作為示例,系統(tǒng)MMU10可支持對來自兩組設(shè)備的交易進行轉(zhuǎn)換I.由安全軟件配置的那些設(shè)備2.由非安全軟件配置的那些設(shè)備轉(zhuǎn)換交易的處理需要配置轉(zhuǎn)換處理的ー些上下文(例如轉(zhuǎn)換表基指針寄存器、轉(zhuǎn)換表控制寄存器)。在系統(tǒng)MMU10下,每個不同組所希望的轉(zhuǎn)換將需要単獨的轉(zhuǎn)換上下文。因而,系統(tǒng)MMU10將提供ー轉(zhuǎn)換上下文池,并且希望找到系統(tǒng)MMU10可以簡單方式在安全和非安全軟件之間共享這些上下文的方式。與利用ARMTrustZone技術(shù)的系統(tǒng)的安全性方法相一致,非安全軟件不應(yīng)能夠觀察或影響具有安全性的轉(zhuǎn)換上下文。此外,一旦安全軟件需要使用由系統(tǒng)MMU提供的服務(wù),非安全軟件必須不能請求所有的轉(zhuǎn)換上下文。所提出的解決方案是實現(xiàn)邊界寄存器,邊界寄存器將轉(zhuǎn)換上下文池分為ニ組一組用于安全軟件,而ー組用于非安全軟件。此方法具有為非安全軟件提供對上下文池的適當部份的直接訪問而不會有安全軟件干預(yù)的優(yōu)點。此系統(tǒng)MMU示例的另外的優(yōu)點是根據(jù)資源駐留于第一部分還是第二部份,希望資源有不同行為。例如,駐留于第一部份的轉(zhuǎn)換上下文可具有與駐留于第二部份的轉(zhuǎn)換上下文不同的格式。此格式選擇可根據(jù)邊界值做出,從而使得資源被設(shè)計為能夠支持ニ種格式并且基于他們落入第一部分還是第二部份來選擇他們呈現(xiàn)何種格式。在系統(tǒng)MMU10中,使用邊界值將轉(zhuǎn)換上下文劃分為兩個群組(安全、非安全),非安全群組中的轉(zhuǎn)換上下文使用進ー步的邊界值被劃分為兩個部份。這些部份提供第一階段轉(zhuǎn)換上下文格式或第二階段轉(zhuǎn)換上下文格式,這些轉(zhuǎn)換上下文格式分別提供從虛擬地址至中間物理地址及從中間物理地址至物理地址的轉(zhuǎn)換。第一階段轉(zhuǎn)換上下文格式被提供以供來賓操作系統(tǒng)使用;第二階段轉(zhuǎn)換上下文格式被提供用于系統(tǒng)管理程序。另外,系統(tǒng)MMU10可被配置用于第一階段轉(zhuǎn)換的輸出饋入第二階段轉(zhuǎn)換的輸入的嵌套(nested)轉(zhuǎn)換,因此在虛擬化系統(tǒng)的上下文中執(zhí)行從虛擬地址至物理地址的地址轉(zhuǎn)換。系統(tǒng)管理程序可允許虛擬化的來賓操作系統(tǒng)對非安全群組中的執(zhí)行第一階段轉(zhuǎn)換的部份的訪問;執(zhí)行第二階段轉(zhuǎn)換的部份對于來賓操作系統(tǒng)而言是不能訪問的。圖3圖示可根據(jù)本發(fā)明技術(shù)管理的多個硬件資源的另ー示例。在此示例中,多個硬件資源包括作為整體被訪問(即,作為整體被讀取或?qū)懭?的控制寄存器內(nèi)的控制比持。圖3中所示的寄存器內(nèi)的每ー比特用于控制相對應(yīng)的性能監(jiān)視器(例如,性能計數(shù)器電路)是被使能還是被禁用。儲存于邊界寄存器28內(nèi)的邊界值將性能監(jiān)視使能寄存器30內(nèi)的比特分割為第一部份和第二部份。第一部份內(nèi)的使能比特可被系統(tǒng)管理程序進行讀取和寫入訪問,但是不能被來賓操作系統(tǒng)有效地訪問。作為當訪問不被允許時的默認動作的示例,來賓操作系統(tǒng)對這些比特中的某比特的寫入可被忽略,并且如果來賓操作系統(tǒng)讀取這些比特中某比特,則“O”值被傳回,而不論由系統(tǒng)管理程序?qū)ο嚓P(guān)比特設(shè)定的實際值如何(或?qū)嶋H值可被傳回)。使能寄存器30的第二部份可被系統(tǒng)管理程序和來賓操作系統(tǒng)二者進行讀取和寫入訪問。在本示例中,應(yīng)了解,性能監(jiān)視器使能寄存器30內(nèi)的使能比特是在儲存于邊界寄存器28內(nèi)的邊界值的控制下被授權(quán)選擇性訪問的硬件資源。底層性能計數(shù)器也是允許所選訪問的硬件資源。這些技術(shù)的另一可能特征為提供了全局使能寄存器(諸如用于硬件特征(例如切換動態(tài)電壓標定(scaling))的全局使能寄存器)并且當存在資源供應(yīng)的分割時提供了這些增益陰影(gainshadow)值。因此,替代單個全局使能寄存器(其為呈現(xiàn)給來賓操作系統(tǒng)的虛擬機的程序員模型),可有以下ニ個控制第一部份的第一全局使能寄存器;及控制第二部份的第二全局使能寄存器。第二使能寄存器對應(yīng)于虛擬機的全局使能。圖4示意性地圖示可由處理器6執(zhí)行的多個程序的布置。系統(tǒng)管理程序32負責(zé)處理器6對ニ個底層來賓操作系統(tǒng)34、36的虛擬化。這些來賓操作系統(tǒng)34、36的每ー者被提供有到由系統(tǒng)管理程序32所管理的處理器6的接ロ,以給予來賓操作系統(tǒng)34、36對應(yīng)于不是實體處理器6的真實實體形式的虛擬處理器的環(huán)境。例如,處理器6可具有并控制比來賓操作系統(tǒng)34、36允許訪問的硬件資源數(shù)目更多的硬件資源,這些硬件資源中一些被預(yù)留以供系統(tǒng)管理程序32使用。當來賓操作系統(tǒng)34、36查詢可用硬件資源的數(shù)目吋,不代表存在的硬件資源的數(shù)目的真實值的值被傳回。圖4還圖示在各個來賓操作系統(tǒng)34、36的控制下執(zhí)行的各個應(yīng)用程序以及與所圖示的不同程序相關(guān)聯(lián)的不同權(quán)限等級(即,系統(tǒng)管理程序權(quán)限等級、特許權(quán)限等級、用戶權(quán)限等級)。本領(lǐng)域技術(shù)人員將熟知本
技術(shù)領(lǐng)域
中的此布置。圖5圖示具有不同權(quán)限等級的不同程序的布置的另ー示例。在圖5的布置中,也有安全域S和非安全域NS。在安全域內(nèi),具有在特許權(quán)限等級操作的特許等級代碼38和在用戶權(quán)限特級操作的用戶代碼40。在非安全域內(nèi),類似地具有在特許權(quán)限等級操作的特許等級代碼42和在用戶權(quán)限等級操作的用戶代碼44。在此環(huán)境內(nèi),僅有在安全域內(nèi)運行的程序代碼訪問硬件資源的第一部份,而在非安全域中操作的程序代碼不訪問第一部份內(nèi)的硬件資源。圖6是圖示響應(yīng)于對硬件資源的訪問請求而執(zhí)行的處理控制的流程圖。此處理控制由圖I的性能監(jiān)視控制電路16或上下文指針控制電路22執(zhí)行。在步驟46,該處理等待,直到接收到對硬件資源的訪問為止。在步驟48,判斷所關(guān)注的硬件資源是否在這多個硬件資源的第一部份內(nèi)。此判斷可通過在所訪問的硬件資源的索引值和性能監(jiān)視器邊界寄存器14或上下文指針邊界寄存器20中指定的當前邊界值之間進行比較來完成。若訪問不是針對第一部份內(nèi)的硬件資源,則處理則進行至步驟50,在此步驟中所關(guān)注的訪問被允許。不在第一部份內(nèi)的訪問將在第二部份內(nèi),第一程序和第二程序二者不論其權(quán)限等級如何都可訪問第二部份。若在步驟48中的判斷為訪問針對第一部份內(nèi)的硬件資源,則步驟52判斷處理器6的當前操作模式是否為系統(tǒng)管理程序模式。若當前操作模式為系統(tǒng)管理程序模式,則所關(guān)注的訪問被允許并在步驟50中被執(zhí)行。若當前模式不是系統(tǒng)管理程序模式,則處理進行至步驟54。系統(tǒng)管理程序模式為其中若某程序被允許訪問第一部份內(nèi)的硬件資源,則該程序必定運行的模式。步驟54判斷所關(guān)注的訪問是否為讀取訪問。若該訪問為讀取訪問,則步驟56傳回一默認值,例如“0”,以取代真實值。如在步驟54中判斷該訪問不是讀取訪問,則步驟58產(chǎn)生故障并且忽略寫入訪問。其它默認動作也是可以的,例如,忽略寫入并且傳回讀取時的實際值。圖7示意性地圖示本發(fā)明技術(shù)如何使用ー個以上邊界來分割硬件資源的。由系統(tǒng)管理程序?qū)懭氲牡谝贿吔鐚⒂布Y源分成僅可由系統(tǒng)管理程序訪問的第一部份和可由系統(tǒng)管理程序和來賓操作系統(tǒng)二者訪問的第二部份。由系統(tǒng)管理程序或來賓操作系統(tǒng)寫入的另ー邊界值將第二部份分割成進ー步的第一部份和進一歩的第二部份。進一歩的第一部份可由系統(tǒng)管理程序和來賓操作系統(tǒng)程序二者訪問。進ー步的第二部份可由系統(tǒng)管理程序、來賓操作系統(tǒng)程序和用戶程序訪問。當用戶等級的用戶程序查詢存在的硬件資源的數(shù)目吋,對應(yīng)于進ー步的第二部份內(nèi)的硬件資源的數(shù)目的值被傳回。當在特許權(quán)限等級操作的來賓操作系統(tǒng)查詢存在的硬件資源的數(shù)目吋,對應(yīng)于第二部份內(nèi)的硬件資源的數(shù)目的值被傳回。當系統(tǒng)管理程序在系統(tǒng)管理程序權(quán)限模式內(nèi)從其位置發(fā)出關(guān)于存在的硬件資源的數(shù)目的查詢時,對應(yīng)于第一部份和第二部份內(nèi)的硬件資源的數(shù)目的總和的硬件資源的數(shù)目的真實值被傳回。響應(yīng)于關(guān)于存在的資源的數(shù)目的查詢不僅傳回不同的值,資源控制電路16、22還對硬件資源重新標引,以使得每ー程序的訪問看起來在相同的給定點(索引值)開始,而不論他們在實體存在的硬件資源的真實序列內(nèi)的實際位置如何。因此,舉例而言,每ー程序不論其在哪ー權(quán)限等級運行并且不論其被允許訪問硬件資源的哪部份,都將被提供對都以某固定值開始的那些硬件資源的索引,例如不論他們在真實的實體硬件資源內(nèi)的位置如何,所有的索引都可開始于“O”值并且從此值向上延伸。在圖2的示例中,第二部份索引自然地以“O”為根,并且第一部份條目被重新標弓丨為以“O”開始。圖8圖示硬件資源被分割成不同部份的又一示例。在本示例中,圖示出4個邊界值,每個邊界值用于進ー步對硬件資源作子分割。在給出的示例中,權(quán)限從第零等級延伸至第三等級,其中第零等級邊界值僅允許被在第零權(quán)限等級操作的程序?qū)懭?。第一等級邊界值可由在第一?quán)限等級或更高的權(quán)限等級操作的程序?qū)懭搿R灶愃频姆绞?,進ー步的邊界值利用由在相應(yīng)權(quán)限等級或更高權(quán)限等級運行的程序?qū)懭氲墓潭ㄟ吔绲奈恢玫倪吔缰担瑢⒁驯辉L問的硬件資源的部份進行子分割為進一歩的第一部份和第二部份。因此,從圖8可見,可使用可在各個權(quán)限等級寫入的多個邊界值來得到對硬件資源子分割的層次。圖9示意性地圖示硬件資源的另ー示例,在此情況中,對應(yīng)于用于存儲器管理單元(MMU)的指向儲存上下文數(shù)據(jù)的存儲器地址的指針的表格。第一部份和第二部份之間的邊界被儲存在首要(override)寄存器60中。該首要寄存器60僅可由在系統(tǒng)管理程序權(quán)限等級運行的系統(tǒng)管理程序?qū)懭?。系統(tǒng)管理程序大小寄存器62儲存指示落于圖9的第一部份和第二部份內(nèi)的寄存器的真實總數(shù)目的值。來賓操作系統(tǒng)大小寄存器64被提供,當在特許權(quán)限等級操作的來賓操作系統(tǒng)讀取時,其返回對于可用指針值的數(shù)目的值。來賓操作系統(tǒng)大小寄存器64內(nèi)存儲的的來賓操作系統(tǒng)大小具有對應(yīng)于位置66的默認值。該默認值將響應(yīng)于來自來賓戶操作系統(tǒng)的讀取而被傳回,除非首要寄存器60已被系統(tǒng)管理程序?qū)懭肓藢⑦吔缫浦聊J位置66以外的位置的不同值。這是在圖9中所示的情況。因此,硬件資源的默認數(shù)目可被提供至來賓操作系統(tǒng),并且系統(tǒng)管理程序可在適當時選擇性地向來賓操作系統(tǒng)提供更多硬件資源。在本示例中,來賓操作系統(tǒng)使用的指針值小于系統(tǒng)管理程序所需的指針值。因此,若一般僅由系統(tǒng)管理程序使用的指針被配置以供來賓操作系統(tǒng)使用,則由于需要存儲儲存用于來賓操作系統(tǒng)的較小指針,其將具有過剩的比特空間。此額外空間可簡單地被忽略。圖10示意性地圖示資源大小指示電路。所提供的硬件資源為寄存器池68。大小指示寄存器70(其儲存常數(shù)或只讀值)指向指示所關(guān)注的系統(tǒng)中所實現(xiàn)的寄存器的總數(shù)目的值。由較高權(quán)限等級代碼寫入的邊界寄存器72當在較低權(quán)限等級操作時指示將被提供作為資源大小指示的邊界位置。復(fù)用器74響應(yīng)于對大小數(shù)據(jù)的讀取請求,根據(jù)指示當前為更高權(quán)限等級的訪問的復(fù)用切換信號,在提供儲存于大小指示寄存器70的值和儲存于邊界寄存器72的值之間切換。因此,就軟件而言,該大小指示可總是被認為儲存于固定的寄存器內(nèi),而當該寄存器被讀取時,依賴于系統(tǒng)正操作的權(quán)限的當前模式,所傳回的值將來自大小指示寄存器70或邊界寄存器72。從較低權(quán)限等級的代碼來看,更高權(quán)限等級的代碼可被寫入至邊界寄存器72并相應(yīng)地可改變資源大小。儲存于大小指示寄存器內(nèi)的值可特定于硬件實施方式,并傳回將要由較高權(quán)限等級的代碼使用的值。圖11示意性地圖示用于讀取資源中的資源的電路。復(fù)用器76根據(jù)經(jīng)譯碼的地址來選擇資源寄存器中的ー資源寄存器進行讀取。然而,若被讀取的資源在該模式中可用資源寄存器的范圍外,則另ー復(fù)用器78將傳回針對被讀取的資源的內(nèi)容的固定默認值。因此,復(fù)用器78將該默認值切換為讀取的數(shù)據(jù)輸出,除非該系統(tǒng)在更高權(quán)限訪問模式中操作或者被訪問的資源的地址小于或等于儲存在邊界寄存器內(nèi)的值,儲存在邊界寄存器內(nèi)該值被設(shè)定為當在較低權(quán)限訪問等級操作時系統(tǒng)可用的資源地址的范圍的限值。圖12示意性地圖示用于向資源68寫入的電路。在此布置中,寫入的地址被傳送至譯碼器80,該譯碼器80生成獨熱(one-hot)信號,該獨熱信號作為寫入使能被提供至資源68內(nèi)的寄存器中的適當?shù)募拇嫫?。來自譯碼器80的信號與來自訪問控制與(AND)門82的另外的信號進行與運算。訪問控制AND門82將寫入使能信號與指示系統(tǒng)在較高權(quán)限訪問模式操作或被訪問的寄存器的地址小于或等于該寄存器在較低權(quán)限等級可訪問的邊界位置的信號進行AND運算。因此,在較高的權(quán)限訪問等級,任何寄存器可被寫入,然而在較低權(quán)限等級,僅有處于或低于邊界的寄存器可被寫。在較低權(quán)限等級對所允許范圍外的寄存器的寫入將簡單地被視為即使在該寄存器的輸入端施加寫入數(shù)據(jù)也不產(chǎn)生寫入使能信號。圖9中的由指針所指向的配置數(shù)據(jù)可采用多種不同的形式。圖I的存儲器管理10可使用此配置數(shù)據(jù)。此配置數(shù)據(jù)可包含以下內(nèi)容中的ー個或多個轉(zhuǎn)換表基指針寄存器值(translationtablebasepointerregistervalue);故障地址和上下文寄存器值;轉(zhuǎn)換后備緩沖器維持寄存器值(translatinglookasidebufferregistervalue);虛擬地址至實體地址運算(operation)寄存器值;存儲器管理単元配置和控制寄存器值;上下文庫值,上下文庫值包含轉(zhuǎn)換表基指針寄存器值、故障地址和上下文寄存器值、轉(zhuǎn)換后備緩沖器維持寄存器值、虛擬地址至實體地址運算寄存器值和存儲器管理単元配置和控制寄存器值;旁路屬性寄存器;響應(yīng)于由第一程序和第二程序中的一個或多個發(fā)起的活動而發(fā)出的中斷輸出;以及用于映射數(shù)據(jù)流的交易識別寄存器值。關(guān)于圖I和圖3討論的性能監(jiān)視電路可具有各種不同的形式。性能監(jiān)視電路可包含一個或多個計數(shù)器中的ー個或多個,這ー個或多個計數(shù)器包含一個或多個計數(shù)器寄存器、使能寄存器、溢出狀態(tài)標志和溢出事件中斷使能寄存器。性能監(jiān)視電路可另外地或替代性地包含事件選擇電路,用于從多個事件中選擇用以計數(shù)的事件。在此上下文中,所述裝置可另外包含;多個計數(shù)器,這多個計數(shù)器包含一個或多個計數(shù)器寄存器、使能寄存器、溢出狀態(tài)標志和溢出事件中斷使能寄存器;及事件選擇電路,其用于從多個事件選擇用以計數(shù)的事件。這些元件可用于提供對圖3的布置的實體實現(xiàn)。圖3中邏輯性地圖示的性能監(jiān)視使能寄存器在實踐中可由前文所討論的各種使能寄存器實體地提供。本發(fā)明技術(shù)可應(yīng)用的硬件資源的另一形式為供第一程序和第二程序使用的多個寄存器。例如,這些寄存器可以為多個映射寄存器,映射寄存器儲存將要被使用的在被訪問的數(shù)據(jù)流和所述裝置相關(guān)處理上下文之間的映射。因此,當所述裝置切換上下文時,新的映射可快速地可用于新的上下文,就好像其儲存于包含系統(tǒng)的硬件資源中的某硬件資源的物理寄存器內(nèi)一祥。本發(fā)明技術(shù)還可被用在對調(diào)試/診斷事件產(chǎn)生資源的管理中。舉例而言,實體地提供的斷點(breakpoint)和觀察點(watchpoint)資源可根據(jù)本發(fā)明技術(shù)被虛擬化為在虛擬層次內(nèi)的較低等級執(zhí)行的程序。在一示例中,這些斷點和觀察點資源可為斷點比較器和觀察點比較器。根據(jù)本發(fā)明技術(shù)可管理的診斷資源的其它示例為處理器6的追蹤數(shù)據(jù)產(chǎn)生単元內(nèi)的地址比較器。根據(jù)本發(fā)明技術(shù)可管理的資源的其它示例對于本領(lǐng)域技術(shù)人員而言是很明顯的。權(quán)利要求1.一種用于在多個程序控制下處理數(shù)據(jù)的裝置,該裝置包含多個硬件資源,這多個硬件資源具有預(yù)定的序列,以使得這多個硬件資源中的每一硬件資源具有在所述序列內(nèi)的一預(yù)定位置;邊界指示電路,該邊界指示電路被配置為儲存指示在所述序列內(nèi)的邊界位置的邊界值,所述邊界位置將所述序列分割為處于所述序列內(nèi)的所述邊界位置的第一側(cè)上的第一部份以及處于所述序列內(nèi)的所述邊界位置的第二側(cè)上的第二部份;程序指令執(zhí)行電路,該程序指令執(zhí)行電路被配置為執(zhí)行程序指令;資源控制電路,該資源控制電路被耦合至所述邊界指示電路并且被配置為當所述程序電路正執(zhí)行第一程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回第一值;并且當所述程序電路正執(zhí)行第二程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述第二部份內(nèi)的那些硬件資源的值。2.如權(quán)利要求I所述的裝置,其中,所述第一值對應(yīng)于所述第一部份和所述第二部份內(nèi)的硬件資源的總和。3.如權(quán)利要求I所述的裝置,其中,所述第一值對應(yīng)于所述第一部份內(nèi)的那些硬件資源。4.如權(quán)利要求I所述的裝置,其中所述程序指令執(zhí)行電路被配置為以多個權(quán)限等級中可選擇的一個權(quán)限等級進行操作,所述多個權(quán)限等級內(nèi)的不同權(quán)限等級對所述多個硬件資源具有不同訪問權(quán);并且所述資源控制電路被配置為使得當所述程序執(zhí)行電路正以運行第一程序的第一權(quán)限等級進行操作時,允許所述邊界值在程序指令控制下被寫'及當所述程序執(zhí)行電路正以運行第二程序的第二權(quán)限等級進行操作時,不允許所述邊界值在程序指令控制下被寫。5.如權(quán)利要求4所述的裝置,其中,所述資源控制電路被配置為使得當所述程序執(zhí)行電路以所述第二權(quán)限等級進行操作時,試圖訪問所述第一部份內(nèi)的硬件資源的一個或多個程序指令被允許對所述第一部份內(nèi)的硬件資源具有與當所述程序執(zhí)行電路正以所述第一權(quán)限等級進行操作時相比更少的訪問權(quán)。6.如權(quán)利要求5所述的裝置,其中,當所述程序執(zhí)行電路以所述第二權(quán)限等級進行操作時,試圖訪問所述第一部份內(nèi)的硬件資源的所述一個或多個程序指令被允許對所述第一部份內(nèi)的硬件資源無訪問權(quán)。7.如前述權(quán)利要求中任一項所述的裝置,其中,當所述第一程序的一個或多個程序指令查詢在所述裝置所述多個硬件資源有多少時,傳回對于所述裝置內(nèi)所述多個硬件資源有多少的真實值,并且所述第二程序的一個或多個程序指令查詢所述裝置內(nèi)所述多個硬件資源有多少時,傳回由所述邊界值所指定的值。8.如權(quán)利要求5所述的裝置,其中,所述多個權(quán)限等級包含權(quán)限等級的層次,所述層次中的所述第一權(quán)限等級高于所述層次內(nèi)的所述第二權(quán)限等級和任何給定的權(quán)限等級,所述第一權(quán)限等級相比于所述層次中低于所述給定的等級的任何權(quán)限等級具有對所述硬件資源的適當超集的訪問權(quán)。9.如前述權(quán)利要求中任一項所述的裝置,其中,所述邊界指示電路被配置為儲存進一步的邊界值,所述進一步的邊界值將所述第二部份分割為進一步的第一部份和進一步的第二部份,所述資源控制電路被配置為當所述程序執(zhí)行電路正以所述第二權(quán)限等級進行操作時,在程序指令控制下允許所述進一步的邊界值被寫入,并且響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述進一步的第一部份和所述進一步的第二部份內(nèi)的那些硬件資源的總和的值;及當所述程序執(zhí)行電路正以第三權(quán)限等級進行操作時,在程序指令控制下不允許所述進一步的邊界值被寫入,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述進一步的第二部份內(nèi)的那些硬件資源的值。10.如權(quán)利要求I至8中任一項所述的裝置,其中,所述邊界指示電路被配置為儲存N個進一步的邊界值,其中N是非零的正整數(shù),所述N個進一步的邊界值形成以所述邊界值開始的邊界值序列,所述邊界值序列內(nèi)的第n個邊界值將所述邊界值序列內(nèi)的由第n-1個邊界值所定義的第二部份分割為第n個第一部份和第n個第二部份,所述資源控制電路被配置為當所述程序執(zhí)行電路正以針對所述第n-1個邊界值的第二權(quán)限等級進行操作時,允許所述第n個邊界值在程序指令控制下被寫入,并且響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述第n個第一部份和所述第n個第二部份內(nèi)的那些硬件資源的總和的值;及當所述程序執(zhí)行電路正以針對所述第n個邊界值的第二權(quán)限等級進行操作時,不允許所述第n個邊界值在程序指令控制下被寫入,并且響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述第n個第二部份內(nèi)的那些硬件資源的值。11.如前述權(quán)利要求中任一權(quán)利要求所述的裝置,其中,所述多個硬件資源包含指向存儲器管理單元的配置數(shù)據(jù)的指針表內(nèi)的多個條目。12.如權(quán)利要求11所述的裝置,其中,所述配置數(shù)據(jù)包含如下內(nèi)容中的一者或多者轉(zhuǎn)換表基指針寄存器值;故障地址和上下文寄存器值;轉(zhuǎn)換后備緩沖器維持寄存器值;虛擬地址到物理地址運算寄存器值;存儲器管理單元配置和控制寄存器值;上下文庫值,所述上下文庫值包含轉(zhuǎn)換表基指針寄存器值、默認地址和上下文寄存器值、轉(zhuǎn)換后備緩沖器維持寄存器值、虛擬地址大物理地址運算寄存器值和存儲器管理單元配置和控制寄存器值;芳路屬性寄存器;響應(yīng)于由所述第一程序和所述第二程序中的一個或多個所發(fā)起的活動而引起的中斷輸出;以及用于映射數(shù)據(jù)流的交易識別寄存器值。13.如權(quán)利要求I至10中任一項所述的裝置,其中,所述多個硬件資源包含多個性能監(jiān)視電路。14.如權(quán)利要求13所述的裝置,其中,所述多個性能監(jiān)視電路包含如下內(nèi)容中的一者或多者多個計數(shù)器,這多個計數(shù)器包含一個或多個計數(shù)器寄存器、使能寄存器、溢出狀態(tài)標志以及溢出事件中斷使能寄存器;以及事件選擇電路,該事件選擇電路用于從多個事件中選擇用以計數(shù)的事件。15.如權(quán)利要求13所述的裝置,包含如下內(nèi)容中一者或多者全局使能寄存器,該全局使能寄存器用于選擇性地使能所述多個性能監(jiān)視電路;陰影全局使能寄存器以及架構(gòu)全局使能全局使能寄存器,所述陰影全局使能寄存器可訪問所述第一程序以選擇性地使能所述第一部份內(nèi)的所述多個性能監(jiān)視電路,所述架構(gòu)全局使能緩存器可訪問所述第一程序和所述第二程序以選擇性地使能所述第二部份內(nèi)的所述多個性能監(jiān)視電路。16.如權(quán)利要求I至10中任一項所述的裝置,其中,所述多個硬件資源包含作為整體被訪問并且為配置寄存器和狀態(tài)寄存器中之一的寄存器的多個字段,所述多個字段中的每個字段表示各自的進一步資源,所述邊界值指定所述第一程序可訪問所述多個字段中的哪個字段以及所述第二程序可訪問所述多個字段中的哪個字段。17.如權(quán)利要求16所述的裝置,其中,所述多個硬件資源包含對應(yīng)于多個性能監(jiān)視電路中的各性能監(jiān)視電路的配置寄存器內(nèi)的一個或多個比特的字段,各字段控制所述多個性能監(jiān)視電路中的相應(yīng)性能監(jiān)視電路是否被使能。18.如權(quán)利要求I至10中任一項所述的裝置,其中,所述多個硬件資源包含供所述第一程序或所述第二程序使用的多個寄存器。19.如權(quán)利要求I至10中任一項所述的裝置,其中,所述多個硬件資源包含多個映射寄存器,用于儲存將被使用的在被訪問的數(shù)據(jù)流和所述裝置的相關(guān)處理上下文之間的映射。20.如權(quán)利要求I至10中任一項所述的裝置,其中,所述多個硬件資源包含多個斷點寄存器和多個觀察點寄存器中的至少一者。21.如前述權(quán)利要求中的任一項所述的裝置,其中,如果所述第二程序試圖讀取所述第二部份內(nèi)的一硬件資源,則針對該硬件資源的默認值被傳回。22.如前述權(quán)利要求I中任一項所述的裝置,其中,如果所述第二程序試圖寫入所述第二部份內(nèi)的一硬件資源,則所述寫入不被執(zhí)行。23.如權(quán)利要求I至15中任一項所述的裝置,其中,如果所述第二程序試圖訪問所述第二部份內(nèi)的一硬件資源,則所述訪問被放棄并且異常處理被調(diào)用。24.如權(quán)利要求I至8中任一項所述的裝置,其中,所述多個不同的權(quán)限等級包含管理程序權(quán)限等級,系統(tǒng)管理程序以該系統(tǒng)管理程序權(quán)限等級運行;操作系統(tǒng)權(quán)限等級,操作系統(tǒng)程序以該操作系統(tǒng)權(quán)限等級運行,所述系統(tǒng)管理程序訪問所述第一部份內(nèi)的那些硬件資源和所述第二部份內(nèi)的那些硬件資源,并且所述操作系統(tǒng)程序訪問所述第二部份內(nèi)的那些硬件資源。25.如權(quán)利要求I至8中任一項所述的裝置,其中,所述多個不同的權(quán)限等級包含至少一個安全域內(nèi)的安全權(quán)限等級,安全程序以該安全權(quán)限等級運行;以及至少一個非安全域內(nèi)的非安全權(quán)限等級,非安全程序以該非安全權(quán)限等級運行,所述安全程序訪問所述第一部份內(nèi)的那些硬件資源和所俗話第二部份內(nèi)的那些硬件資源,并且所述非安全程序訪問所述第二部份內(nèi)的那些硬件資源。26.如前述權(quán)利要求中的任一項所述的裝置,其中,所述資源控制電路根據(jù)所述邊界值重新標引所述多個硬件資源。27.一種用于在多個程序的控制下處理數(shù)據(jù)的裝置,該裝置包含多個硬件資源構(gòu)件,這多個硬件資源構(gòu)件具有預(yù)定的序列,以使得這多個硬件資源構(gòu)件中的每一硬件資源構(gòu)件具有在所述序列內(nèi)的一預(yù)定位置;邊界指示構(gòu)件,該邊界指示構(gòu)件用于儲存指示在所述序列內(nèi)的邊界位置的邊界值,所述邊界位置將所述序列分割處于所述序列內(nèi)的所述邊界位置的第一側(cè)上的第一部份及處于所述序列內(nèi)的所述邊界位置的第二側(cè)上的第二部份;程序指令執(zhí)行構(gòu)件,該程序指令執(zhí)行構(gòu)件其用于執(zhí)行程序指令;資源控制構(gòu)件,該資源控制構(gòu)件被耦至所述界指示構(gòu)件,以當所述程序執(zhí)行構(gòu)件正執(zhí)行第一程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回第一值;并且當所述程序執(zhí)行構(gòu)件正執(zhí)行第二程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述第二部份內(nèi)的那些硬件資源的值。28.一種用于利用裝置在多個程序的控制下處理數(shù)據(jù)的方法,其中,所述裝置具有多個硬件資源,這多個硬件資源具有預(yù)定的序列,以使得這多個硬件資源中的每一硬件資源具有在所述列內(nèi)的一預(yù)定位置,所述方法包含以下步驟儲存指示在所述序列內(nèi)的邊界位置的邊界值,所述邊界位置將所述序列分割為所述序列內(nèi)的所述邊界位置的第一側(cè)上的一第一部份以及所述序列內(nèi)的所述邊界位置的第二側(cè)上的第二部份;當所述程序執(zhí)行電路執(zhí)行第一程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回第一值;并且當所述程序指令執(zhí)行電路執(zhí)行第二程序時,響應(yīng)于查詢所述裝置內(nèi)所述多個硬件資源有多少的一個或多個程序指令,傳回對應(yīng)于所述第二部份內(nèi)的那些硬件資源的值。全文摘要一種處理器(6)被提供,該處理器(6)具有多個硬件資源,諸如性能監(jiān)視器(12)和上下文指針(18)。邊界指示電路(14、20)儲存邊界值,該邊界值是可編程的并且指示將硬件資源分割成第一部份和第二部份的邊界位置。資源控制電路(16、22)控制對硬件資源的訪問,以使得當程序執(zhí)行電路(8)正執(zhí)行第一程序時,其響應(yīng)于關(guān)于所述多個硬件資源有多少的查詢而傳回第一值,而當程序執(zhí)行電路正執(zhí)行第二程序時,其通過傳回對應(yīng)于第二部份內(nèi)的那些硬件資源的值來響應(yīng)這樣的查詢。文檔編號G06F9/50GK102667722SQ201080047900公開日2012年9月12日申請日期2010年8月23日優(yōu)先權(quán)日2009年10月21日發(fā)明者斯圖亞特·大衛(wèi)·貝爾斯,邁克爾·約翰·威廉斯申請人:Arm有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平泉县| 翁源县| 彝良县| 叙永县| 张掖市| 平顺县| 启东市| 高阳县| 嘉义市| 溆浦县| 大同市| 加查县| 佛学| 海林市| 廊坊市| 合川市| 同仁县| 芜湖市| 滁州市| 孝义市| 驻马店市| 大厂| 当雄县| 石渠县| 菏泽市| 兴城市| 盐亭县| 娱乐| 高安市| 中西区| 武威市| 寻乌县| 柳江县| 兴安盟| 密山市| 宝应县| 天水市| 五家渠市| 宽甸| 浮山县| 三江|