的特權(quán)模式,及通過設(shè)定標(biāo)識第一異常類型(即,第二轉(zhuǎn)換異常)的信息,至少可將已發(fā)生的異常的性質(zhì)通知除錯器。
[0024]裝置可包括第一存儲器管理單元以執(zhí)行第一轉(zhuǎn)換,第一轉(zhuǎn)換基于由處理電路響應(yīng)于以低于預(yù)定特權(quán)模式的特權(quán)模式執(zhí)行的軟件而設(shè)定的第一配置數(shù)據(jù);及包括第二存儲器管理單元以執(zhí)行第二轉(zhuǎn)換,該第二轉(zhuǎn)換基于由處理電路響應(yīng)于以預(yù)定特權(quán)模式執(zhí)行的軟件而設(shè)定的第二配置數(shù)據(jù)。在其他實施例中,可僅有一個存儲器管理單元,該單元基于兩個配置數(shù)據(jù)集執(zhí)行兩個操作。特定而言,存儲器管理單元可執(zhí)行轉(zhuǎn)換旁看緩沖器中的結(jié)果的高速存取,這可高速存取轉(zhuǎn)換的結(jié)果及/或合并結(jié)果。
[0025]第一配置數(shù)據(jù)及第二配置數(shù)據(jù)可由處理電路(例如,響應(yīng)于軟件而)設(shè)定,以便指示與特定存儲器區(qū)塊相關(guān)聯(lián)的許可集。以此方式,可指示特定軟件應(yīng)用程序具有對于不同存儲器區(qū)段的不同存取等級。以將會違反許可的方式嘗試存取存儲器區(qū)域可導(dǎo)致發(fā)生存儲器故障。
[0026]預(yù)定特權(quán)模式可以是超管理器特權(quán)模式,并且該不同的特權(quán)模式可以是訪客操作系統(tǒng)特權(quán)模式。術(shù)語“超管理器”意在涵蓋對超管理器及主機操作系統(tǒng)的使用。超管理器或主機操作系統(tǒng)可由此使得的多數(shù)個訪客操作系統(tǒng)能夠直接在該超管理器或主機操作系統(tǒng)下執(zhí)行。每一訪客操作系統(tǒng)可向在訪客操作系統(tǒng)下執(zhí)行的一個或多個用戶應(yīng)用程序提供虛擬化環(huán)境。當(dāng)然,將了解,超管理器系統(tǒng)可包括多個其他特權(quán)模式。
[0027]超管理器系統(tǒng)可提供若干個情境,在這些情境中,存儲器的部分被限制于特定軟件。例如,訪客操作系統(tǒng)可能不允許一個應(yīng)用程序存取分配至另一應(yīng)用程序的存儲器區(qū)段。然而,訪客操作系統(tǒng)自身及超管理器能夠存取所有存儲器區(qū)域。同樣地,分配至一個訪客操作系統(tǒng)的存儲器區(qū)段無法由另一個訪客操作系統(tǒng)或其應(yīng)用程序存取。
[0028]也可使用其他特權(quán)模式。例如,一個或多個“主機應(yīng)用程序”可在超管理器下直接執(zhí)行,而非在于超管理器下執(zhí)行的訪客操作系統(tǒng)下執(zhí)行。在沒有訪客操作系統(tǒng)來管理主機應(yīng)用程序的情況下,無法由訪客操作系統(tǒng)處理異常。此外,可能存在與以超管理器特權(quán)模式處理異常相關(guān)的安全性問題。因此,預(yù)定特權(quán)模式可包括超管理器執(zhí)行模式及執(zhí)行該等主機應(yīng)用程序的模式(但不包括執(zhí)行其他軟件的模式)。
[0029]響應(yīng)于處于除錯狀態(tài)的處理電路及不具有預(yù)定值的控制參數(shù),可允許處理電路進入預(yù)定特權(quán)模式。因此,只要控制參數(shù)具有除預(yù)定值以外的值,可在處理電路處于超管理器特權(quán)模式的同時使除錯能夠發(fā)生。
[0030]在處理電路處于除錯狀態(tài)中及控制參數(shù)具有預(yù)定值的情況下,傳訊電路可響應(yīng)于正在被傳訊的將以預(yù)定特權(quán)模式處理的第三異常,以傳訊將以不同特權(quán)模式處理的第四異常,及不設(shè)定標(biāo)識第三異常類型的信息。對于一些異常而言,僅傳訊將以不同特權(quán)模式處理的第四異常是可接受的。換言之,可能無須設(shè)定標(biāo)識第三異常類型的信息。此情況例如為以下的情況:以預(yù)定特權(quán)模式產(chǎn)生異常,但該異常還可以以不同的特權(quán)模式處理。在該種情境下,可能無須設(shè)定標(biāo)識第三異常類型的信息,因為以該不同的特權(quán)模式運行的軟件能夠自行決定異常類型。
[0031]圖1示出了依據(jù)一個實施例的裝置100。該裝置包括處理電路105,該處理電路例如可為中央處理單元(central processing unit ;CPU)。處理電路105接收來自除錯器110的一個或多個指令。除錯器110例如可在不同的數(shù)據(jù)處理裝置上執(zhí)行。指令從除錯器110經(jīng)由除錯接115而被接收到,該除錯接口經(jīng)由輸入緩沖器120連接至處理電路105。換言之,除錯器110將指令傳輸至除錯接115,該除錯接115將指令儲存在輸入緩沖器120中。處理電路105可因此查詢輸入緩沖器120以便存取指令。在一些情況下,若指令由處理電路105執(zhí)行,則結(jié)果可儲存在輸出緩沖器125中。除錯器110可經(jīng)由除錯接115查詢輸出緩沖器125。以此方式,執(zhí)行特定指令的結(jié)果可從處理電路105被發(fā)送返回至除錯器110。這允許使用者決定執(zhí)行由除錯器110插入/注入的特定指令的效應(yīng)。
[0032]處理電路105可以以一個或多個不同的特權(quán)模式(執(zhí)行模式)運行。處理電路105可采用何種操作可依據(jù)處理電路105的當(dāng)前模式而定。例如,特定模式可限制當(dāng)前在處理電路105上執(zhí)行的軟件可采取的操作。因此,通過變更處理電路105的模式,可執(zhí)行多個軟件,其中每個軟件具有不同特權(quán)。
[0033]在圖1示出的實施例中,提供控制電路135,以在發(fā)生除錯的同時阻止以更高等級的執(zhí)行特權(quán)執(zhí)行指令。具體地,依據(jù)控制參數(shù),在處理電路105處于除錯狀態(tài)時,控制電路禁止處理電路105進入預(yù)定特權(quán)模式,及當(dāng)處理電路105處于預(yù)定特權(quán)模式時,控制電路禁止處理電路105進入除錯狀態(tài)。因此,用戶被阻止進行可能導(dǎo)致裝置100安全性降低的指令執(zhí)行。例如,可阻止用戶執(zhí)行導(dǎo)致私有或秘密數(shù)據(jù)被存取及返回除錯器的指令。同樣地,可阻止用戶中斷由處理電路105使用的數(shù)據(jù)。控制參數(shù)能夠使這些禁止操作失去能力。具體他,這些禁止操作在控制參數(shù)具有預(yù)定值時(例如在控制參數(shù)經(jīng)判定時)有效。
[0034]處理電路105使用存儲器管理單元140、145以便存取存儲器150。通過使用存儲器管理單元140、145,有可能不僅將虛擬地址轉(zhuǎn)換至實體地址,而且還管理虛擬地址或?qū)嶓w地址上的許可集,以便保證僅特定軟件能夠存取存儲器150的特定區(qū)域??稍O(shè)定許可以將存儲器區(qū)域(該區(qū)域可由起始地址與結(jié)束地址或特定長度定義)分配至特定軟件。該特定軟件(及該特定軟件執(zhí)行時所在的任何軟件,如訪客操作系統(tǒng)或超管理器)可自由存取該存儲器區(qū)域。然而,可假定其他軟件無法存取該存儲器區(qū)域。將了解,有數(shù)個不同方式可用以為存儲器的特定區(qū)域設(shè)定許可。除本文中明確說明的那些機制,其他機制將對本領(lǐng)域技術(shù)人員顯而易見。
[0035]裝置100還包括傳訊電路155。傳訊電路155 (例如異??刂破?可用于將異常傳訊至處理電路105。異常可通過傳訊電路155響應(yīng)于外源、響應(yīng)于存儲器管理單元140、145,及響應(yīng)于處理電路105自身而經(jīng)傳訊。當(dāng)異常經(jīng)傳訊時,可由在處理電路105上執(zhí)行的軟件來處理異常。依據(jù)異常性質(zhì)(即,已產(chǎn)生的異常的類型),可由在處理電路105上以特定特權(quán)模式執(zhí)行的軟件來處理異常。例如,在外部中止、中斷、第二階段故障,或指令陷阱的情況下,可以不得不由在最高特權(quán)等級運行的軟件來處理異常,如超管理器或主機操作系統(tǒng)。然而,如先前所論述,若例如當(dāng)處理電路105處于除錯狀態(tài)中時,控制電路135可禁止處理電路105進入特定特權(quán)模式。因此,可出現(xiàn)一情境,在該情境中,處理電路105被禁止進入特權(quán)模式,而為了響應(yīng)于已產(chǎn)生的異常,該特權(quán)模式是必需的。在一些情況下,有可能改換異常路由,以使得該異常以由控制電路135所允許的更低特權(quán)模式被處理。
[0036]當(dāng)除錯發(fā)生時,處理電路105暫停執(zhí)行從存儲器150獲得的指令,并改為執(zhí)行由除錯器110注入的指令。因此,在眾多情況下,這將僅足以指示異常已產(chǎn)生。換言之,無需執(zhí)行由以更高執(zhí)行特權(quán)模式執(zhí)行的軟件所提供的完整異常處理程序。因此,處理異常路由以便指示異常已發(fā)生的流程即可足以。具體地,處理路由可允許除錯器110的使用者決定由于執(zhí)行除錯器110所注入的最新指令而已發(fā)生特定異常,即使不執(zhí)行完整的異常處理程序亦如此。
[0037]盡管如此,對于一些異常而言,這種路由是不充足的。第二階段故障是一種存儲器轉(zhuǎn)換故障。第二階段故障是由兩次存儲器轉(zhuǎn)換中的第二者所導(dǎo)致之一種存儲器故障。在第一轉(zhuǎn)換中,虛擬地址轉(zhuǎn)換為中間地址,及在第二轉(zhuǎn)換中,中間地址轉(zhuǎn)換為實體地址。例如,第一轉(zhuǎn)換可基于由處理電路響應(yīng)于以更低特權(quán)模式(如訪客操作系統(tǒng))執(zhí)行的軟件而設(shè)定的第一存儲器管理單元140中的第一配置數(shù)據(jù),及第二轉(zhuǎn)換可基于由處理電路響應(yīng)于以更高特權(quán)模式執(zhí)行的軟件而設(shè)定的第二存儲器管理單元145中的第二配置數(shù)據(jù)。第二階段故障關(guān)于在第二轉(zhuǎn)換期間的故障發(fā)生。由于第二轉(zhuǎn)換基于由處理電路響應(yīng)于以更高的執(zhí)行特權(quán)模式(如超管理器)執(zhí)行的軟件而設(shè)定的第二配置數(shù)據(jù),因此在不處于除錯狀態(tài)時,