亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

半導(dǎo)體設(shè)備的制作方法與工藝

文檔序號:12556838閱讀:225來源:國知局
半導(dǎo)體設(shè)備的制作方法與工藝
半導(dǎo)體設(shè)備相關(guān)申請的交叉引用本申請基于2012年3月30日提交的日本專利申請No.2012-082324,并要求其優(yōu)先權(quán),其全部公開作為參考包括在這里。技術(shù)領(lǐng)域本發(fā)明涉及一種半導(dǎo)體設(shè)備。例如,本發(fā)明涉及一種能夠通過管線處理并行執(zhí)行多個程序的半導(dǎo)體設(shè)備。

背景技術(shù):
近年來,在半導(dǎo)體設(shè)備中,已經(jīng)提出了若干個能夠在單個處理器中執(zhí)行多個程序的多線程處理器。這樣的多線程處理器包括多個線程,每個線程生成獨(dú)立的指令流。同時,有一種稱為“虛擬化”的技術(shù),它使一個硬件設(shè)備看起來像是多個硬件設(shè)備。這種虛擬化技術(shù)是通過在OS(操作系統(tǒng))和硬件(處理器或IO)之間插入一種稱為“VMM(虛擬機(jī)監(jiān)視器)”或“超級管理員程序”的管理軟件程序?qū)崿F(xiàn)的。圖20示出了應(yīng)用虛擬化技術(shù)的系統(tǒng)的層次結(jié)構(gòu)。圖20示出應(yīng)用了虛擬化技術(shù)的系統(tǒng)的體系結(jié)構(gòu)。如圖20所示,應(yīng)用虛擬化技術(shù)的系統(tǒng)具有這種配置:超級管理員程序(hypervisorprogram)插入在硬件和OS之間。當(dāng)邏輯地定義的多個虛擬機(jī)操作在多線程處理器中時,線程被分配給多個虛擬機(jī)中的一個。此外,在多線程處理器中,通過在硬件線程上執(zhí)行虛擬機(jī)實(shí)現(xiàn)虛擬機(jī)的并行執(zhí)行。圖21示出了虛擬機(jī)和線程之間的對應(yīng)關(guān)系。在圖21中示出的示例中,兩個線程被分配給虛擬機(jī)VM0至VM2的每一個。此外,根據(jù)要存取的資源的重要性,對要在處理器中執(zhí)行的一個或多個程序定義特權(quán)等級。此外,通過包括開發(fā)管理、編程和檢驗的多個因素確定軟件的質(zhì)量。此外,在要在處理器上執(zhí)行的程序中,要求高可靠性等級的一個或多個程序在嚴(yán)格管理下開發(fā),以便可以詳細(xì)掌握它的操作。也就是,程序的可靠性等級是基于開發(fā)該程序的開發(fā)過程的類型決定的。此外,例如,進(jìn)行控制,以便許可具有高可靠性等級的程序存取要求高特權(quán)等級的資源,但是不許可具有低可靠性等級的程序進(jìn)行存取。然而,即使在這樣的處理器中,響應(yīng)于來自為其定義了低特權(quán)等級的用戶應(yīng)用或客戶OS的請求,有必要為要求高特權(quán)等級的資源針對其存取執(zhí)行處理。在這種情況下,響應(yīng)于來自用戶應(yīng)用或客戶OS的請求,處理器啟動超級管理員程序,并通過該超級管理員程序執(zhí)行請求的處理。結(jié)果,當(dāng)為其存取從用戶應(yīng)用或客戶OS請求了對要求高特權(quán)等級存取的資源的存取時,處理需要花費(fèi)時間來切換程序,由此造成了處理器處理性能降低的問題。因此,日本未審專利申請公布No.2005-56017公開了一種減少切換程序所要求時間的技術(shù)。在日本未審專利申請公布No.2005-56017中,處理器具有客戶OS的特權(quán)寄存器。然后,當(dāng)發(fā)生對要求高可靠性資源的存取時,只要客戶OS的處理單獨(dú)可以滿足請求,不啟動超級管理員程序,就能完成處理。通過這種方式,在日本未審專利申請公布No.2005-56017中公開的技術(shù)降低了啟動超級管理員程序的頻率。

技術(shù)實(shí)現(xiàn)要素:
然而,本發(fā)明人已經(jīng)發(fā)現(xiàn)了以下問題。在多線程處理器上運(yùn)行的多個虛擬機(jī)中,這些虛擬機(jī)的多個可以并行操作。因此,當(dāng)發(fā)生定義為高特權(quán)等級的超級管理員程序存取時,所有虛擬機(jī)的操作必須暫時停止。因此,當(dāng)頻繁發(fā)生要求超級管理員程序執(zhí)行處理的存取時,會頻繁地發(fā)生虛擬機(jī)之間的干擾,由此妨礙其他虛擬機(jī)的操作。注意,日本未審專利申請公布No.2005-56017公開的技術(shù)涉及用單線程操作的處理器,其中多個虛擬機(jī)從不并行操作。因此,這種技術(shù)不能解決虛擬機(jī)之間的干擾問題。本發(fā)明的第一方面是一種半導(dǎo)體設(shè)備,其中定義了多個虛擬機(jī),每個虛擬機(jī)都發(fā)出屬于對應(yīng)于程序的指令流的指令代碼,該半導(dǎo)體設(shè)備包括:指令解碼器,其解碼指令代碼,由此產(chǎn)生指令信息;執(zhí)行單元,其通過管線處理,基于指令信息進(jìn)行操作;以及管線控制單元,其控制在管線處理中要處理的指令代碼的順序,其中:管線控制單元包括用來為每個虛擬機(jī)定義存在/不存在執(zhí)行第一特權(quán)程序的權(quán)限的寄存器,該第一特權(quán)程序要在一個虛擬機(jī)上執(zhí)行;以及管線控制單元參考該寄存器,并且當(dāng)已經(jīng)發(fā)出關(guān)于第一特權(quán)程序的指令代碼的虛擬機(jī)具有執(zhí)行第一特權(quán)程序的權(quán)限時,基于第一特權(quán)程序的操作,指令執(zhí)行單元基于關(guān)于第二特權(quán)程序的指令代碼執(zhí)行處理。本發(fā)明的另一方面是一種半導(dǎo)體設(shè)備,其進(jìn)行處理,同時在通過多個虛擬機(jī)并行執(zhí)行程序的虛擬機(jī)模式和通過獨(dú)占使用執(zhí)行單元的執(zhí)行時間執(zhí)行程序的本機(jī)模式之間切換操作模式,其中半導(dǎo)體設(shè)備以虛擬機(jī)模式執(zhí)行:用戶程序,具有用戶特權(quán)等級,對特定硬件資源的存取限于半導(dǎo)體設(shè)備內(nèi)部的硬件資源之中;管理員程序,其管理用戶程序;以及超級管理員存根程序,具有超級管理員特權(quán)等級,其響應(yīng)于來自管理員程序的調(diào)用而運(yùn)行,并且許可其存取包括特定硬件資源的硬件資源,為管理員程序定義存在/不存在執(zhí)行用來調(diào)用超級管理員存根程序的第一指令代碼的權(quán)限,以及響應(yīng)于來自許可執(zhí)行第一指令代碼的管理員程序的調(diào)用,啟動超級管理員存根程序,通過執(zhí)行第二指令代碼調(diào)用超級管理員程序,并將操作模式改變?yōu)楸緳C(jī)模式。根據(jù)本發(fā)明一方面的半導(dǎo)體設(shè)備,通過參考寄存器,確定已調(diào)用在一個虛擬機(jī)上運(yùn)行的第一特權(quán)程序的程序是否具有執(zhí)行第一特權(quán)程序的權(quán)限。然后,僅當(dāng)虛擬機(jī)具有執(zhí)行第一特權(quán)程序的權(quán)限時,半導(dǎo)體設(shè)備執(zhí)行第二特權(quán)程序。結(jié)果,該半導(dǎo)體設(shè)備可以防止第二特權(quán)程序被頻繁調(diào)用,由此防止了由于虛擬機(jī)之間的干擾造成的其它虛擬機(jī)處理性能降低。根據(jù)本發(fā)明一方面的半導(dǎo)體設(shè)備,可以防止由于一個虛擬機(jī)的操作造成其它虛擬機(jī)處理性能降低。附圖說明結(jié)合附圖,由下面某些實(shí)施例的描述,上述和其它方面、優(yōu)點(diǎn)和特征將變得更明顯,其中:圖1是根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備的方框圖;圖2是根據(jù)第一實(shí)施例的管線控制單元的方框圖;圖3是根據(jù)第一實(shí)施例的虛擬機(jī)控制電路的方框圖;圖4是根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備的一組虛擬機(jī)設(shè)置寄存器的示意圖;圖5是根據(jù)第一實(shí)施例的虛擬機(jī)設(shè)置寄存器的示例;圖6是根據(jù)第一實(shí)施例的虛擬機(jī)設(shè)置寄存器的示例;圖7是示出根據(jù)第一實(shí)施例的虛擬機(jī)控制電路的操作的時序圖;圖8是根據(jù)第一實(shí)施例的線程調(diào)度器的方框圖;圖9是示出根據(jù)第一實(shí)施例的線程調(diào)度器的操作的流程圖;圖10示出了在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中許可執(zhí)行的指令的示例和在執(zhí)行許可的指令時發(fā)生的軟件層上的狀態(tài)轉(zhuǎn)換的示例;圖11是示出當(dāng)在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中執(zhí)行HVTRAP指令時進(jìn)行的管線控制單元的操作的流程圖;圖12是示出通過根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中的HVCALL指令啟動超級管理員存根程序的過程的流程圖;圖13是示出根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中超級管理員存根程序的操作流程圖;圖14是示出根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備的操作的順序圖;圖15是示出當(dāng)在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中發(fā)生對超級管理員程序的未授權(quán)調(diào)用時進(jìn)行操作的順序圖;圖16是示出當(dāng)在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中發(fā)生對超級管理員存根程序的未授權(quán)調(diào)用時進(jìn)行的操作的順序圖;圖17是示出當(dāng)在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中在沒有賦予執(zhí)行權(quán)限的虛擬機(jī)中發(fā)生對超級管理員存根程序或超級管理員程序的調(diào)用時進(jìn)行的操作的順序圖;圖18是示出根據(jù)第一實(shí)施例的不包括管線控制單元的處理器的操作的順序圖;圖19是根據(jù)第二實(shí)施例的半導(dǎo)體設(shè)備的一組虛擬機(jī)設(shè)置寄存器的示意圖;圖20示出了在采用虛擬化技術(shù)的半導(dǎo)體設(shè)備中實(shí)現(xiàn)的軟件層的示例;以及圖21示出了在采用虛擬化技術(shù)的半導(dǎo)體設(shè)備中的線程和虛擬機(jī)之間的對應(yīng)關(guān)系。具體實(shí)施方式第一實(shí)施例在下文中參考附圖說明實(shí)施例。首先,在根據(jù)實(shí)施例的半導(dǎo)體設(shè)備中,通過虛擬機(jī)進(jìn)行信息處理。通常,虛擬機(jī)實(shí)現(xiàn)為軟件功能的一部分。然而,在根據(jù)實(shí)施例的半導(dǎo)體設(shè)備中,實(shí)現(xiàn)用虛擬機(jī)進(jìn)行程序執(zhí)行,作為硬件的一個功能。如上所述,作為硬件的一個功能,實(shí)現(xiàn)用虛擬機(jī)執(zhí)行程序的處理器稱為“硬件多線程處理器”。此外,下面示出的實(shí)施例是通過利用硬件多線程處理器作為半導(dǎo)體設(shè)備的示例說明的。然而,實(shí)施例并不限于硬件多線程處理器。也就是,它們可以應(yīng)用于能夠并行執(zhí)行多個線程的任何處理器。圖1示出了根據(jù)本發(fā)明的第一實(shí)施例的半導(dǎo)體設(shè)備1的方框圖。如圖1所示,半導(dǎo)體設(shè)備1包括處理器元件PE、數(shù)據(jù)存儲器和總線BUS。此外,在半導(dǎo)體設(shè)備1中,處理器元件PE和包括數(shù)據(jù)存儲器的外圍裝置通過總線BUS相互連接。注意,雖然在圖1中作為外圍裝置僅示出了數(shù)據(jù)存儲器,不必說,該半導(dǎo)體設(shè)備還包括例如定時器的其他外圍裝置(未示出)。處理器元件PE包括程序計數(shù)器10、選擇器11、指令存儲器12、指令緩存器13、指令解碼器14、管線控制單元15和執(zhí)行單元16。程序計數(shù)器10包括線程程序計數(shù)器10a至10d。每個線程程序計數(shù)器10a至10d生成程序計數(shù)器值,指示要從指令存儲器12提取到指令緩存器13的指令代碼的存儲位置。由于根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1包括四個硬件線程,所以在圖1中的程序計數(shù)器10中示出了四個線程程序計數(shù)器。注意,每個線程程序計數(shù)器10a至10d根據(jù)指令提取控制信號IFC遞增或改變程序計數(shù)器值。選擇器11根據(jù)指令提取控制信號IFC選擇由線程程序計數(shù)器10至10d產(chǎn)生的程序計數(shù)器值中的一個,并向指令存儲器12輸出選擇的程序計數(shù)器值。指令存儲器12向指令緩存器13輸出存儲在對應(yīng)于從選擇器11輸出的程序計數(shù)器值的區(qū)域中的指令代碼。指令緩存器13包括四個指令緩存器13a至13d,其對應(yīng)于要在半導(dǎo)體設(shè)備1中執(zhí)行的四個線程。此外,指令緩存器13根據(jù)指令解碼控制信號IDC,將從指令存儲器12輸出的指令代碼存儲到指令緩存器13a至13d的一個中。此外,指令緩存器13輸出管線狀態(tài)信號PST1,其包括指示存儲的指令代碼的狀態(tài)的信息。注意,指令緩存器13a至13d中的每個是FIFO(先入先出)型存儲器。半導(dǎo)體設(shè)備1利用程序計數(shù)器10、選擇器11和指令緩存器13生成四個獨(dú)立的指令流。像上述配置一樣,用于生成獨(dú)立指令流的電路配置稱為“硬件線程”。此外,在半導(dǎo)體設(shè)備1中,多個硬件線程邏輯地分配給虛擬機(jī),通過這樣做,定義了多個虛擬機(jī)。也就是,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中定義的多個虛擬機(jī)的每個都發(fā)出屬于對應(yīng)于程序的指令流的指令代碼。指令解碼器14解碼指令代碼,由此產(chǎn)生指令信息。更具體地,指令解碼器14根據(jù)線程選擇信號TSEL,從指令緩存器13a至13d中的一個讀出指令代碼,通過解碼讀出的指令代碼,產(chǎn)生指令信息,并輸出產(chǎn)生的指令信息作為解碼結(jié)果DR。管線控制單元15控制要在管線處理中處理的指令代碼的順序。更具體地,管線控制單元15基于解碼結(jié)果DR向執(zhí)行單元16發(fā)出具體操作指令(例如,輸出執(zhí)行單元控制信號EUC)。此外,根據(jù)從指令緩存器13輸出的管線狀態(tài)信號PST1、從執(zhí)行單元16輸出的管線狀態(tài)信號PTS2和指令執(zhí)行信息EXR,管線控制單元15產(chǎn)生線程選擇信號TSEL、指令解碼控制信號IDC和指令提取控制信號IFC。注意,管線狀態(tài)信號指示通過管線處理的指令的執(zhí)行狀態(tài),并且包括關(guān)于存在/不存在發(fā)生高速緩存誤擊的信息、關(guān)于存在/不存在發(fā)生異常處置的信息、關(guān)于滿足/不滿足分支條件的信息等。此外,管線控制單元15包括用來定義存在/不存在要執(zhí)行對于每個虛擬機(jī)來說在一個虛擬機(jī)上執(zhí)行的第一特權(quán)程序(例如,超級管理員存根程序)的權(quán)限的一個或多個寄存器。此外,管線控制單元15參考該寄存器,并且當(dāng)已經(jīng)發(fā)出關(guān)于超級管理員存根程序的指令代碼的虛擬機(jī)具有執(zhí)行超級管理員存根程序的權(quán)限時,基于超級管理員存根程序的操作,指令執(zhí)行單元16基于關(guān)于超級管理員程序的指令代碼進(jìn)行處理。注意,在分配給一個虛擬機(jī)的執(zhí)行時間內(nèi)執(zhí)行超級管理員存根程序,并且通過獨(dú)占性使用執(zhí)行單元16的執(zhí)行時間,執(zhí)行該超級管理員程序。另一方面,當(dāng)已經(jīng)發(fā)出關(guān)于超級管理員存根程序的指令代碼的虛擬機(jī)不具有執(zhí)行第一特權(quán)程序的權(quán)限時,管線控制單元15確定在已經(jīng)發(fā)出關(guān)于超級管理員存根程序的指令代碼的虛擬機(jī)中已經(jīng)產(chǎn)生執(zhí)行權(quán)限異常。然后,管線控制單元15指令已經(jīng)發(fā)出關(guān)于超級管理員存根程序的指令代碼的虛擬機(jī)進(jìn)行異常處置。具體地,通過輸出指令解碼控制信號IDC、指令提取控制信號IFC等,管線控制單元15指令執(zhí)行異常處置,作為用于客戶OS(操作系統(tǒng))的處理。注意,客戶OS的細(xì)節(jié)將在后面描述。此外,根據(jù)第一實(shí)施例的管線控制單元15的一個或多個寄存器包括用來為每個虛擬機(jī)定義存在/不存在執(zhí)行超級管理員程序的權(quán)限的一個或多個值。此外,管線控制單元15參考該寄存器,并且當(dāng)發(fā)出關(guān)于超級管理員程序的指令代碼的虛擬機(jī)具有執(zhí)行超級管理員程序的權(quán)限時,指令執(zhí)行單元16基于指令代碼執(zhí)行處理,以便繼續(xù)超級管理員程序的操作。另一方面,當(dāng)發(fā)出關(guān)于超級管理員程序的指令代碼的虛擬機(jī)不具有執(zhí)行超級管理員程序的權(quán)限時,管線控制單元15確定在發(fā)出關(guān)于超級管理員程序的指令代碼的虛擬機(jī)中出現(xiàn)執(zhí)行權(quán)限異常。然后,管線控制單元15指令發(fā)出關(guān)于超級管理員程序的指令代碼的虛擬機(jī)進(jìn)行異常處置。具體地,管線控制單元15,通過輸出指令解碼控制信號IDC、指令提取控制信號IFC等,指令執(zhí)行作為用于客戶OS的處理的異常處置。將在后面進(jìn)行管線控制單元15的更詳細(xì)的說明。執(zhí)行單元16通過管線處理基于指令信息進(jìn)行操作。在圖1所示的示例中,執(zhí)行單元16包括寄存器文件161、運(yùn)算單元162、系統(tǒng)控制指令執(zhí)行單元163和加載存儲單元164。在寄存器文件161中,存儲在運(yùn)算單元162中執(zhí)行操作時使用的數(shù)據(jù)。寄存器文件161包括對于每個硬件線程的獨(dú)立數(shù)據(jù)存儲區(qū)。注意,在寄存器文件161中,寫數(shù)據(jù)的位置和讀數(shù)據(jù)的位置根據(jù)寄存器控制信號RFC來指定。運(yùn)算單元162基于從管線控制單元15輸出的執(zhí)行單元控制信號EUC執(zhí)行操作。運(yùn)算單元162進(jìn)行各種操作,包括加、減、乘和除。此外,運(yùn)算單元162利用寫反饋信號WB將運(yùn)算結(jié)果寫入到寄存器文件161中。此外,運(yùn)算單元162輸出指示指令執(zhí)行狀態(tài)的管線狀態(tài)信號PST2。當(dāng)執(zhí)行單元控制信號EUC是關(guān)于系統(tǒng)控制指令的執(zhí)行指令時,系統(tǒng)控制指令執(zhí)行單元163基于執(zhí)行單元控制信號EUC進(jìn)行處理。例如,系統(tǒng)控制指令執(zhí)行單元163執(zhí)行關(guān)于某些指令的處理,如HVTRAP指令和HVCALL指令,這些是對具有特權(quán)等級的程序的調(diào)用指令。此外,系統(tǒng)控制指令執(zhí)行單元163輸出處理結(jié)果,作為指令執(zhí)行信息EXR。該指令執(zhí)行信息EXR是指示執(zhí)行的指令時何種類型的處理的信號。例如,指令執(zhí)行信息EXR包括:指示已經(jīng)發(fā)出處理的指令的虛擬機(jī)的虛擬機(jī)標(biāo)識符、指示已經(jīng)執(zhí)行了HVTRAP指令的HVTRAP指令信號,指示已經(jīng)執(zhí)行了HVCALL指令的HVCALL指令信號、以及指示被HVCALL指令調(diào)用的超級管理員存根程序的執(zhí)行狀態(tài)的HV存根執(zhí)行狀態(tài)信號。此外,系統(tǒng)控制指令執(zhí)行單元163輸出指示指令執(zhí)行狀態(tài)的管線狀態(tài)信號PST2。注意,HVTRAP指令是調(diào)用超級管理員程序的指令,HVCALL指令是調(diào)用超級管理員存根程序的指令。加載存儲單元164,基于執(zhí)行單元控制信號EUC,執(zhí)行用于從例如數(shù)據(jù)存儲器的其他存儲器讀出數(shù)據(jù)的處理(例如,加載處理),并且執(zhí)行用于向例如數(shù)據(jù)存儲器的其他存儲器中寫入在寄存器文件中存儲的數(shù)據(jù)的處理(例如,存儲處理)。此外,加載存儲單元164輸出指示指令執(zhí)行狀態(tài)的管線狀態(tài)信號PST2。當(dāng)超級管理員程序模仿由用戶程序(例如,用戶應(yīng)用)或客戶OS指令的存取時,根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1通過超級管理員存根程序啟動超級管理員程序。根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1確定通過執(zhí)行超級管理員存根程序調(diào)用超級管理員存根程序的調(diào)用方程序的有效性。然后,當(dāng)由調(diào)用方程序指令的請求有效時,基于超級管理員存根程序的操作,管線控制單元15指令執(zhí)行單元16基于關(guān)于超級管理員程序的指令代碼執(zhí)行處理。此外,根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1,通過超級管理員存根程序的操作,監(jiān)視其它虛擬機(jī)(例如,除了發(fā)出關(guān)于超級管理員存根程序的指令代碼的虛擬機(jī)之外的虛擬機(jī))的操作。此外,管線控制單元15基于相關(guān)超級管理員程序的指令代碼延遲指令執(zhí)行單元16執(zhí)行處理,直到其他虛擬機(jī)的操作可以被停止的狀態(tài)。接下來,詳細(xì)說明管線控制單元15。圖2示出了管線控制單元15的方框圖。如圖2所示,管線控制單元15包括虛擬機(jī)控制電力20、線程調(diào)度器21和管線控制信號產(chǎn)生電路22。虛擬機(jī)控制電路20控制定義在處理器元件PE上的虛擬機(jī)的操作狀態(tài)。更具體地,虛擬機(jī)控制電路20輸出信號S1至S5,指示是否在多個虛擬機(jī)中的一個中啟動了HVCALL指令或HVTRAP指令的執(zhí)行。此外,虛擬機(jī)控制電路20輸出信號S6,指示處理器元件PE處于虛擬機(jī)模式還是本機(jī)模式,在虛擬機(jī)模式中,一個或多個程序通過多個虛擬機(jī)并行地執(zhí)行;在本機(jī)模式中,以獨(dú)自使用執(zhí)行單元16的執(zhí)行時間的方式執(zhí)行程序。后面將說明虛擬機(jī)控制電路20的細(xì)節(jié)。注意,在下面的說明中,信號S1代表虛擬機(jī)標(biāo)識符;信號S2代表HVCALL執(zhí)行通知信號;信號S3代表HVTRAP執(zhí)行通知信號;信號S4代表HVCALL執(zhí)行權(quán)限異常信號;信號S5代表HVTRAP執(zhí)行權(quán)限異常信號;以及信號S6代表實(shí)體機(jī)操作信號。線程調(diào)度器21調(diào)度要從多個硬件線程放入執(zhí)行單元16的指令。更具體地,線程調(diào)度器21基于實(shí)體機(jī)操作信號S6、預(yù)先定義在線程調(diào)度器21內(nèi)的調(diào)度和管線狀態(tài)信號PST(包括管線狀態(tài)信號PST1和PST2的信號),確定應(yīng)該將下一條指令代碼發(fā)送到執(zhí)行單元16的硬件線程。然后,線程調(diào)度器21輸出指示確定的硬件線程的線程選擇信號TSEL。管線控制信號產(chǎn)生電路22,基于線程選擇信號TSEL、管線狀態(tài)信號PST、虛擬機(jī)標(biāo)識符S1、HVCALL執(zhí)行通知信號S2、HVTRAP執(zhí)行通知信號S3、HVCALL執(zhí)行權(quán)限異常信號S4、HVTRAP執(zhí)行權(quán)限異常信號S5、解碼結(jié)果DR等,控制管線。當(dāng)管線控制信號產(chǎn)生電路22控制管線時,管線控制信號產(chǎn)生電路22生成指令提取控制信號IFC、指令解碼控制信號IDC、寄存器控制信號RFC和執(zhí)行單元控制信號EUC。指令提取控制信號IFC是指定提取下一條指令代碼的硬件線程的信號。指令解碼控制信號IDC是指定要放入管線的下一條指令代碼的信號。寄存器控制信號RFC是指示在寄存器文件中的當(dāng)存儲執(zhí)行單元16執(zhí)行操作時使用的值的存儲位置和在寄存器文件中寫入計算值的位置的信號。執(zhí)行單元控制信號EUC是指示在執(zhí)行單元16中執(zhí)行哪種處理的信號。接下來,說明虛擬機(jī)控制電路20的細(xì)節(jié)。圖3示出了虛擬機(jī)控制電路20的詳細(xì)方框圖。如圖3所示,虛擬機(jī)控制電路20包括虛擬機(jī)控制寄存器組30、選擇器31、OR電路32和34、AND電路33和35、ExOR電路36和37以及虛擬機(jī)操作信號產(chǎn)生電路38。虛擬機(jī)控制寄存器組30包括多個寄存器(在下文中稱為“虛擬機(jī)控制寄存器”),用來為每個虛擬機(jī)定義執(zhí)行第一特權(quán)程序(例如,超級管理員存根程序)的權(quán)限和執(zhí)行第二特權(quán)程序(例如,超級管理員程序)的權(quán)限。此外,虛擬機(jī)控制寄存器包括虛擬機(jī)允許標(biāo)志和HV特權(quán)標(biāo)志,對于每個虛擬機(jī),虛擬機(jī)允許標(biāo)志指示該虛擬機(jī)的操作應(yīng)該被允許或不允許,HV特權(quán)標(biāo)志指示對于該虛擬機(jī)是否應(yīng)該許可對僅可通過超級管理員程序操作的資源的存取。虛擬機(jī)控制寄存器組30的細(xì)節(jié)將在后面說明。選擇器31根據(jù)虛擬機(jī)標(biāo)識符選擇多個虛擬機(jī)控制寄存器中的一個,并輸出存儲在該選擇的虛擬機(jī)控制寄存器中的一個或多個值。注意,虛擬機(jī)標(biāo)識符是包括在指令執(zhí)行信息EXR中的信號。OR電路32輸出包括在虛擬機(jī)控制寄存器中的HVCALL許可標(biāo)志HVCE和HV特權(quán)標(biāo)志HVP之間的邏輯和運(yùn)算結(jié)果。AND電路33輸出OR電路32的輸出和HVCALL指令信號之間的邏輯乘運(yùn)算結(jié)果。然后,AND電路33的輸出成為HVCALL執(zhí)行通知信號S2。注意,當(dāng)HVCALL許可標(biāo)志HVCE處于允許狀態(tài)(例如,“1”)并且HVCALL指令信號變?yōu)閳?zhí)行通知狀態(tài)(例如,“1”)時,HVCALL執(zhí)行通知信號S2指示執(zhí)行狀態(tài)(例如,“1”)。然而,在HV特權(quán)標(biāo)志HVP處于禁止?fàn)顟B(tài)(例如,“0”)且HVCALL許可標(biāo)志HVCE處于禁止?fàn)顟B(tài)(例如,“0”)的狀態(tài)下,即使HVCALL指令信號變?yōu)閳?zhí)行通知狀態(tài)(例如,“1”)時,HVCALL執(zhí)行通知信號S2也指示非執(zhí)行狀態(tài)(例如,“0”)。OR電路34輸出包括在虛擬機(jī)控制寄存器中的HVTRAP許可標(biāo)志HVTE、HV特權(quán)標(biāo)志HVP和HV存根執(zhí)行狀態(tài)信號的邏輯和運(yùn)算結(jié)果。AND電路35輸出OR電路34的輸出和HVTRAP指令信號之間的邏輯乘運(yùn)算結(jié)果。然后,AND電路33的輸出成為HVTRAP執(zhí)行通知信號S3。注意,當(dāng)HVTRAP許可標(biāo)志HVTE處于允許狀態(tài)(例如,“1”)并且HVTRAP指令信號變?yōu)閳?zhí)行通知狀態(tài)(例如,“1”)時,HVTRAP執(zhí)行通知信號S3指示執(zhí)行狀態(tài)(例如,“1”)。然而,在HV特權(quán)標(biāo)志HVP處于禁止?fàn)顟B(tài);HVTRAP許可標(biāo)志HVTE處于禁止?fàn)顟B(tài)(例如,“0”);并且HV存根執(zhí)行狀態(tài)信號是非執(zhí)行狀態(tài)(例如,“0”)的狀態(tài)下,即使HVTRAP指令信號變?yōu)閳?zhí)行通知狀態(tài)(例如,“1”)時,HVTRAP執(zhí)行通知信號S3也指示非執(zhí)行狀態(tài)(例如,“0”)。此外,在HV特權(quán)標(biāo)志HVP處于禁止?fàn)顟B(tài)(例如,“0”)且HVTRAP許可標(biāo)志HVTE處于禁止?fàn)顟B(tài)(例如,“0”)的狀態(tài)下,當(dāng)HV存根執(zhí)行狀態(tài)信號是執(zhí)行狀態(tài)(例如,“1”)時,即使HVTRAP指令信號處于非執(zhí)行通知狀態(tài)(例如,“0”),HVTRAP執(zhí)行通知信號S3也指示執(zhí)行狀態(tài)(例如,“1”)。也就是,當(dāng)客戶OS發(fā)出HVTRAP指令,或者當(dāng)客戶OS發(fā)出使超級管理員存根程序執(zhí)行的HVCALL指令時,作為HVTRAP指令執(zhí)行的結(jié)果,HVTRAP執(zhí)行通知信號S3變?yōu)閳?zhí)行狀態(tài)。ExOR電路36輸出HVCALL執(zhí)行信號和HVCALL執(zhí)行通知信號S2之間的異或操作結(jié)果,作為HVCALL執(zhí)行權(quán)限異常信號S4。也就是,當(dāng)沒有執(zhí)行HVCALL指令權(quán)限的虛擬機(jī)執(zhí)行HVCALL指令時,HVCALL執(zhí)行權(quán)限異常信號S4變?yōu)樵试S狀態(tài)(例如,“1”)。ExOR電路37輸出HVTRAP執(zhí)行信號和HVTRAP執(zhí)行通知信號S3之間的異或操作結(jié)果,作為HVTRAP執(zhí)行權(quán)限異常信號S5。也就是,當(dāng)沒有執(zhí)行HVTRAP指令權(quán)限的虛擬機(jī)執(zhí)行HVTRAP指令時,HVTRAP執(zhí)行權(quán)限異常信號S5變?yōu)樵试S狀態(tài)(例如,“1”)?;贖VTRAP執(zhí)行通知信號S3和包括在虛擬機(jī)控制寄存器組30中的虛擬機(jī)控制寄存器中的單線程操作位MT,虛擬機(jī)操作信號產(chǎn)生電路38產(chǎn)生實(shí)體機(jī)操作信號S6。注意,將在后面說明單線程操作位MT的細(xì)節(jié)。注意,實(shí)體機(jī)操作信號S6是當(dāng)虛擬機(jī)處于禁止?fàn)顟B(tài)并且執(zhí)行單元16的執(zhí)行時間被硬件線程之一獨(dú)占使用時變?yōu)樵试S狀態(tài)(例如,“1”)的信號。例如,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,當(dāng)執(zhí)行超級管理員程序時,實(shí)體機(jī)操作信號S6變?yōu)樵试S狀態(tài)。接下來,詳細(xì)說明虛擬機(jī)控制寄存器組30。圖4示出了包括在虛擬機(jī)控制寄存器組30中的虛擬機(jī)控制寄存器的示意圖。如圖4所示,根據(jù)要定義的虛擬機(jī)的數(shù)目,確定虛擬機(jī)控制寄存器組30中提供的虛擬機(jī)控制寄存器的數(shù)目。在圖4所示的示例中,每一個虛擬機(jī)使用兩個寄存器。此外,每個虛擬機(jī)控制寄存器包括虛擬機(jī)允許標(biāo)志EN、HV特權(quán)標(biāo)志HVP、HVTRAP許可標(biāo)志HVTE和HVCALL許可標(biāo)志VHCE。對于每個標(biāo)志,當(dāng)其值是1時,指示該標(biāo)志處于允許狀態(tài),而當(dāng)其值為0時,指示該標(biāo)志處于禁止?fàn)顟B(tài)。此外,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,圖4示出的虛擬機(jī)控制寄存器被實(shí)現(xiàn)為存儲其它設(shè)置的寄存器的一部分。在下文中說明虛擬機(jī)控制寄存器的示例。圖5示出了寄存器的示意圖,其中,在虛擬機(jī)控制寄存器的設(shè)置值中,存儲了虛擬機(jī)允許標(biāo)志EN。圖5中示出的寄存器具有32位數(shù)據(jù)區(qū)。此外,在圖5所示的寄存器中,虛擬機(jī)允許標(biāo)志EN存儲在第31位的域中。此外,當(dāng)處理器具有HV特權(quán)(例如,超級管理員特權(quán))并且處理器處于處理器執(zhí)行關(guān)于虛擬機(jī)的信息組(例如,虛擬機(jī)環(huán)境VC(virtualmachinecontextVC))的處理的模式中時,許可對虛擬機(jī)允許標(biāo)志EN進(jìn)行寫或讀。此外,當(dāng)處理器具有HV特權(quán)(例如,超級管理員特權(quán))并且處理器操作處于處理器執(zhí)行虛擬機(jī)環(huán)境VC的處理的模式之外的其它模式中時,僅許可讀虛擬機(jī)允許標(biāo)志EN。此外,在關(guān)于處理器的整體操作的信息組(例如,本機(jī)環(huán)境)中,虛擬機(jī)允許標(biāo)志EN的初始值是1,并且在虛擬機(jī)環(huán)境中初始值是0。此外,在圖5所示的寄存器中,多線程操作位MT存儲在第30位的域中。無論處理器是否具有HV特權(quán)(例如,超級管理員特權(quán)),該多線程操作位MT都許可寫和讀。此外,當(dāng)處理器從虛擬機(jī)模式變成本機(jī)模式時,多線程操作位MT從1重新寫入為0,并且當(dāng)處理器從本機(jī)模式變成虛擬機(jī)模式時,多線程操作位MT從0重新寫入為1。此外,基于在處理器上運(yùn)行的程序的操作,進(jìn)行多線程操作位MT的重新寫入。注意,圖5中示出的寄存器包括其他設(shè)置值。然而,由于其對虛擬機(jī)控制電路20的操作沒有任何直接影響,這里省略了它們的說明。此外,圖6示出了寄存器的示意圖,其中,在虛擬機(jī)控制寄存器的設(shè)置值中,存儲了HV特權(quán)標(biāo)志HVP、HVCALL許可標(biāo)志HVCE和HVTRAP許可標(biāo)志HVTE。圖6中示出的寄存器具有32位數(shù)據(jù)區(qū)。此外,在圖6所示的寄存器中,HV特權(quán)標(biāo)志HVP存儲在第二位的域中,并且HVCALL許可標(biāo)志HVCE存儲在第一位的域中。此外,HVTRAP許可標(biāo)志HVTE存儲在第0位的域中。此外,當(dāng)處理器具有HV特權(quán)并且處理器處于處理器執(zhí)行虛擬機(jī)環(huán)境VC的處理的模式中時,許可這些標(biāo)志的寫和讀。此外,當(dāng)處理器具有HV特權(quán),并且處理器處于處理器執(zhí)行虛擬機(jī)環(huán)境VC的處理的模式之外的模式中時,僅許可這些標(biāo)志的讀操作。在涉及整個處理器操作的信息組(例如,本機(jī)環(huán)境)中,這些標(biāo)志的初始值是1,而在虛擬機(jī)環(huán)境中初始值是0。注意,圖6中示出的寄存器包括其他設(shè)置值。然而,由于其對虛擬機(jī)控制電路20的操作沒有任何直接影響,這里省略了它們的說明。通過配置寄存器,使得僅具有超級管理員特權(quán)的一個或多個程序可以重新寫入圖5和6中所示的虛擬機(jī)控制寄存器的值,能夠提高這些設(shè)置值的可靠性。在下文中將更詳細(xì)地說明根據(jù)第一實(shí)施例的虛擬機(jī)控制電路20的操作。圖7示出了示出根據(jù)第一實(shí)施例的虛擬機(jī)控制電路20的操作的時序圖。首先,圖7示出了基于虛擬機(jī)控制寄存器操作處理器的示例,在虛擬機(jī)控制寄存器中:HV特權(quán)標(biāo)志HVP處于禁止?fàn)顟B(tài);HVCALL許可標(biāo)志HVCE處于允許狀態(tài);以及HVTRAP許可標(biāo)志HVTE處于禁止?fàn)顟B(tài)(即,對應(yīng)于圖4中示出的虛擬機(jī)VM0的虛擬機(jī)控制寄存器)。在圖7所示的示例中,HVCALL指令信號在T1時刻變?yōu)閳?zhí)行通知狀態(tài)。此外,響應(yīng)于HVCALL指令信號向執(zhí)行通知狀態(tài)的改變,虛擬機(jī)控制電路20使HVCALL執(zhí)行通知信號S2進(jìn)入到執(zhí)行狀態(tài)。此外,響應(yīng)于在T1時刻執(zhí)行的HVCALL指令,在T2時刻和隨后的時刻上執(zhí)行超級管理員存根程序。結(jié)果,在T2時刻HV存根執(zhí)行狀態(tài)信號變?yōu)閳?zhí)行狀態(tài)。然后,在T3時刻,在超級管理員存根程序中執(zhí)行HVTRAP指令。結(jié)果,在T3時刻,HVTRAP指令信號變?yōu)閳?zhí)行通知狀態(tài)。在這一點(diǎn)上,在圖7所示的示例中,HV存根執(zhí)行狀態(tài)信號在T3時刻保持在執(zhí)行通知狀態(tài)。因此,響應(yīng)于HVTRAP指令信號向執(zhí)行通知狀態(tài)的改變,不管HVTRAP許可標(biāo)志HVTE的值是多少,使HVTRAP執(zhí)行通知信號S3進(jìn)入執(zhí)行狀態(tài)。然后,響應(yīng)于HVTRAP指令的執(zhí)行,在T4時刻,超級管理員程序?qū)⒍嗑€程操作位MT從1重新寫入為0。結(jié)果,處理器操作在本機(jī)模式,直到多線程操作位NT重新寫入為1。此外,響應(yīng)于HVTRAP執(zhí)行通知信號S3向執(zhí)行狀態(tài)的改變,這產(chǎn)生在T3時刻和T4時刻之間,在T4時刻,虛擬機(jī)控制電路20使實(shí)體機(jī)操作信號S6進(jìn)入允許狀態(tài)。然后,在T4時刻啟動的超級管理員程序?qū)⒍嗑€程操作位MT重新寫入為1,由此在T5時刻完成操作。此外,響應(yīng)于多線程操作位MT從1重新寫入為0,虛擬機(jī)操作信號產(chǎn)生電路38使實(shí)體機(jī)操作信號S6進(jìn)入禁止?fàn)顟B(tài)。之后,在T6時刻,響應(yīng)于超級管理員存根程序的操作完成,使HV存根執(zhí)行狀態(tài)信號進(jìn)入非執(zhí)行通知狀態(tài)。接下來,詳細(xì)說明線程調(diào)度器21。圖8示出線程調(diào)度器21的方框圖。如圖8所示,線程調(diào)度器21包括操作線程選擇電路40、虛擬機(jī)/線程對應(yīng)表41和調(diào)度提示42。虛擬機(jī)/線程對應(yīng)表41,例如,可以存儲在處理器元件PE的內(nèi)部存儲器或一個或多個寄存器中。虛擬機(jī)/線程對應(yīng)表41是示出虛擬機(jī)和硬件線程之間的對應(yīng)關(guān)系的表格。調(diào)度提示42,例如,可以存儲在處理器元件PE的內(nèi)部存儲器或一個或多個寄存器中。調(diào)度提示42是定義產(chǎn)生要在執(zhí)行單元16中執(zhí)行的指令代碼的硬件線程、應(yīng)該優(yōu)先處理的硬件線程等的順序的信息。也就是,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,基于調(diào)度提示42和在虛擬機(jī)/線程對應(yīng)表41中指定的對應(yīng)關(guān)系,定義由虛擬機(jī)執(zhí)行的硬件線程。例如,在由本申請的申請人提交的日本專利申請No.2008-252232中,示出了該調(diào)度提示42的示例性實(shí)施例。基于實(shí)體機(jī)操作信號S6、管線狀態(tài)信號PST1和PST2、虛擬機(jī)/線程對應(yīng)表41和調(diào)度提示42,操作線程選擇電路40產(chǎn)生線程選擇信號TSEL,其指令發(fā)出下一條指令代碼的硬件線程。圖9是示出操作線程選擇電路40的更具體操作的流程圖。如圖9所示,通過參考實(shí)體機(jī)操作信號S6,操作線程選擇電路40確定處理器元件PE是否操作在虛擬機(jī)模式或本機(jī)模式(步驟ST1)。然后,當(dāng)在步驟ST1中確定處理器元件PE操作在本機(jī)模式時,通過參考虛擬機(jī)/線程對應(yīng)表41,操作線程選擇電路40選擇要執(zhí)行的硬件線程(步驟ST2)。另一方面,當(dāng)在步驟ST1中確定處理器元件PE操作在虛擬機(jī)模式時,操作線程選擇電路40確定是否存在調(diào)度提示42(步驟ST3)。然后,當(dāng)在步驟ST3中確定存在調(diào)度提示42時,通過參考調(diào)度提示42和虛擬機(jī)/線程對應(yīng)表41,操作線程選擇電路40選擇要執(zhí)行的硬件線程(步驟ST4)。另一方面,當(dāng)在步驟ST3中確定沒有調(diào)度提示42時,基于管線狀態(tài)信號PST,操作線程選擇電路40選擇具有最佳執(zhí)行效率的硬件線程(步驟ST5)。接下來,說明根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作。在下面的說明中,具體地,說明超級管理員存根程序的調(diào)用處理,這是根據(jù)本發(fā)明的第一實(shí)施例的半導(dǎo)體設(shè)備1的特征之一。首先,圖10示出了,在虛擬機(jī)控制寄存器具有圖4所示的設(shè)置的情況下,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中許可執(zhí)行的指令的示例,以及在許可的指令執(zhí)行時產(chǎn)生的軟件層上的狀態(tài)轉(zhuǎn)換的示例。如圖10所示,半導(dǎo)體設(shè)備1執(zhí)行:在一個虛擬機(jī)上運(yùn)行的用戶程序,管理用戶程序的管理員程序(例如,客戶OS),在一個虛擬機(jī)上運(yùn)行且響應(yīng)于來自管理員程序的調(diào)用運(yùn)行的超級管理員存根程序,以及管理多個管理員程序的超級管理員程序。注意,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,超級管理員存根程序?qū)?yīng)于第一特權(quán)程序,超級管理員程序?qū)?yīng)于第二特權(quán)程序。此外,在半導(dǎo)體設(shè)備1中,超級管理員程序在本機(jī)模式下執(zhí)行,并且超級管理員存根程序、客戶OS和應(yīng)用程序在虛擬機(jī)模式下執(zhí)行。此外,半導(dǎo)體設(shè)備1當(dāng)執(zhí)行應(yīng)用程序時操作在用戶模式,當(dāng)執(zhí)行客戶OS時操作在管理特權(quán)等級,并且當(dāng)執(zhí)行超級管理員存根程序和超級管理員程序時操作在超級管理員特權(quán)等級。注意,關(guān)于操作模式的可靠性,對用戶模式比對管理特權(quán)等級要確保更高的可靠性。此外,對管理特權(quán)等級比對超級管理員特權(quán)等級要確保更高的可靠性。此外,在圖4所示的寄存器設(shè)置示例中,半導(dǎo)體設(shè)備1利用三個虛擬機(jī)VM0至VM2進(jìn)行處理。因此,如圖10所示,在半導(dǎo)體設(shè)備1中,在虛擬機(jī)模式中虛擬機(jī)VM0至VM2彼此獨(dú)立地進(jìn)行處理。此外,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,當(dāng)發(fā)生從應(yīng)用程序?qū)Y源的存取需要超級管理員特權(quán)時,通過執(zhí)行HVTRAP指令或HVCALL指令,調(diào)用超級管理員程序。在這個過程中,在半導(dǎo)體設(shè)備1中,基于來自應(yīng)用程序的存取請求,客戶OS發(fā)出HVTRAP指令或HVCALL指令。在根據(jù)圖4中示出的寄存器設(shè)置示例操作的半導(dǎo)體設(shè)備1中,能夠根據(jù)虛擬機(jī)的可靠性確定調(diào)用超級管理員程序的方法。例如,在圖10所示的示例中,HVTRAP指令許可標(biāo)志HVTE和HVCALL指令許可標(biāo)志HVCE兩者都設(shè)置為允許狀態(tài)的虛擬機(jī)VM1具有最高可靠性。此外,基于許可標(biāo)志設(shè)置,許可虛擬機(jī)VM1的客戶OS執(zhí)行HVCALL指令和HVTRAP指令。此外,虛擬機(jī)VM1的客戶OS可以利用HVTRAP指令直接調(diào)用超級管理員程序,而不用通過執(zhí)行HVTRAP指令調(diào)用超級管理員存根程序。此外,虛擬機(jī)VM1的客戶OS還許可利用HVCALL指令調(diào)用超級管理員存根程序,并許可從超級管理員存根程序調(diào)用超級管理員程序。同時,對于虛擬機(jī)VM0,HVTRAP指令許可標(biāo)志HVTE設(shè)置為禁止?fàn)顟B(tài),并且HVCALL指令許可標(biāo)志HVCE設(shè)置為允許狀態(tài)。因此,虛擬機(jī)VM0的可靠性比虛擬機(jī)VM1的可靠性低。也就是,基于許可標(biāo)志的設(shè)置,虛擬機(jī)VM0的客戶OS不許可利用HVTRAP指令直接調(diào)用超級管理員程序。因此,當(dāng)虛擬機(jī)VM0的客戶OS調(diào)用超級管理員程序時,需要通過執(zhí)行HVCALL指令調(diào)用超級管理員存根程序,然后從超級管理員存根程序調(diào)用超級管理員程序。此外,對于虛擬機(jī)VM2,HVTRAP指令許可標(biāo)志HVTE和HVCALL指令許可標(biāo)志HVCE兩者都設(shè)為禁止?fàn)顟B(tài)。因此,虛擬機(jī)VM2的可靠性低于虛擬機(jī)VM0的可靠性。也就是,基于許可標(biāo)志設(shè)置,沒有賦予虛擬機(jī)VM2的客戶OS執(zhí)行HVTRAP指令和HVCALL指令的權(quán)限。因此,虛擬機(jī)VM2的客戶OS不能調(diào)用超級管理員程序,也不能調(diào)用超級管理員存根程序。也就是,根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1執(zhí)行處理,同時在虛擬機(jī)模式和本機(jī)模式之間切換操作模式,在虛擬機(jī)模式中,通過多個虛擬機(jī)并行地執(zhí)行一個或多個程序;在本機(jī)模式中,通過獨(dú)占使用執(zhí)行單元的執(zhí)行時間執(zhí)行程序。此外,在虛擬機(jī)模式中半導(dǎo)體設(shè)備1執(zhí)行:用戶程序,具有用戶特權(quán)等級,對一個或多個特定硬件資源的存取限于半導(dǎo)體設(shè)備內(nèi)部的硬件資源(例如,寄存器、存儲器和外圍電路等);管理員程序,其管理用戶程序(例如,客戶OS);以及超級管理員存根程序,具有超級管理員特權(quán)等級,其響應(yīng)于來自客戶OS的調(diào)用運(yùn)行,并且許可其存取包括特定硬件資源的硬件資源。此外,在半導(dǎo)體設(shè)備1中,為客戶OS定義存在/不存在執(zhí)行調(diào)用超級管理員存根程序的第一指令代碼(例如,HVCALL指令)的權(quán)限。此外,響應(yīng)于來自許可執(zhí)行HVCALL指令的客戶OS的調(diào)用,啟動超級管理員存根程序。此外,半導(dǎo)體設(shè)備1通過執(zhí)行第二指令代碼(例如,HVTRAP指令)調(diào)用超級管理員程序,并由此將操作模式改變?yōu)楸緳C(jī)模式。此外,當(dāng)不許可執(zhí)行HVCALL指令的客戶OS執(zhí)行HVCALL指令時,半導(dǎo)體設(shè)備1在客戶OS內(nèi)執(zhí)行異常處置,而不調(diào)用超級管理員存根程序。此外,在半導(dǎo)體設(shè)備1中,為客戶OS設(shè)置存在/不存在執(zhí)行HVTRAP指令的權(quán)限。此外,半導(dǎo)體設(shè)備1響應(yīng)于來自許可執(zhí)行HVTRAP指令的客戶OS的調(diào)用,啟動超級管理員程序。此外,當(dāng)不許可執(zhí)行HVTRAP指令的客戶OS執(zhí)行HVTRAP指令時,半導(dǎo)體設(shè)備1在客戶OS內(nèi)執(zhí)行異常處置,而不調(diào)用超級管理員程序。接下來,說明在執(zhí)行直接調(diào)用超級管理員程序的HVTRAP指令的情況下根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作。圖11示出了在執(zhí)行HVTRAP指令的情況下根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作的流程圖。如圖11所示,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,當(dāng)通過客戶OS執(zhí)行HVTRAP指令時,管線控制單元15檢測:基于從執(zhí)行單元16輸出的指令執(zhí)行信息EXR啟動HVTRAP指令的執(zhí)行(步驟ST10)。在步驟ST11中,基于指示分配給虛擬機(jī)的編號的虛擬機(jī)標(biāo)識符,管線控制單元15的虛擬機(jī)控制電路20參考對應(yīng)于已經(jīng)執(zhí)行HVTRAP指令的虛擬機(jī)的虛擬機(jī)控制寄存器。然后,虛擬機(jī)控制電路20確定已經(jīng)執(zhí)行HVTRAP指令的虛擬機(jī)是否具有執(zhí)行HVTRAP指令的權(quán)限(步驟ST12)。在該步驟ST12中,當(dāng)確定虛擬機(jī)不具有執(zhí)行HVTRAP指令的權(quán)限時,半導(dǎo)體設(shè)備1認(rèn)識到發(fā)生執(zhí)行權(quán)限異常,并且執(zhí)行錯誤處理,作為虛擬機(jī)的客戶OS內(nèi)的處理(步驟ST13)。另一方面,當(dāng)確定虛擬機(jī)具有執(zhí)行HVTRAP指令的權(quán)限時,半導(dǎo)體設(shè)備1停止所有虛擬機(jī),并將操作權(quán)限轉(zhuǎn)換到超級管理員特權(quán)等級(步驟ST14)。更具體地,在步驟ST14中,虛擬機(jī)控制電路20使實(shí)體機(jī)操作信號S6進(jìn)入允許狀態(tài)。此外,響應(yīng)于實(shí)體機(jī)操作信號S6向允許狀態(tài)的改變,線程調(diào)度器21從虛擬機(jī)/線程對應(yīng)表41選擇要執(zhí)行的硬件線程。此外,響應(yīng)于HVTRAP執(zhí)行通知信號S3,管線控制信號產(chǎn)生電路22產(chǎn)生用來執(zhí)行超級管理員程序的指令提取控制信號IFC、指令解碼控制信號IDC、寄存器控制信號RFC和執(zhí)行單元控制信號EUC。此外,一旦完成了步驟ST14的處理,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中執(zhí)行超級管理員程序(步驟ST15)。接下來,說明在執(zhí)行調(diào)用超級管理員存根程序的HVCALL指令的情況下根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作。圖12示出了示出在通過HVCALL指令啟動超級管理員存根程序的情況下根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作的流程圖。如圖12所示,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,當(dāng)通過客戶OS執(zhí)行HVCALL指令時,基于從執(zhí)行單元16輸出的指令執(zhí)行信息EXR,管線控制單元15檢測啟動HVCALL指令的執(zhí)行(步驟ST20)。接下來,在步驟ST21中,基于指示分配給虛擬機(jī)的編號的虛擬機(jī)標(biāo)識符,虛擬機(jī)控制電路20的虛擬機(jī)控制電路20參考對應(yīng)于已經(jīng)執(zhí)行HVCALL指令的虛擬機(jī)的虛擬機(jī)控制寄存器。然后,虛擬機(jī)控制電路20確定已經(jīng)執(zhí)行HVCALL指令的虛擬機(jī)是否具有執(zhí)行HVCALL指令的權(quán)限(步驟ST22)。在該步驟ST22中,當(dāng)確定虛擬機(jī)不具有執(zhí)行HVCALL指令的權(quán)限時,半導(dǎo)體設(shè)備1認(rèn)識到發(fā)生執(zhí)行權(quán)限異常,并在虛擬機(jī)內(nèi)執(zhí)行錯誤處理(步驟ST23)。另一方面,當(dāng)確定虛擬機(jī)具有執(zhí)行HVCALL指令的權(quán)限時,半導(dǎo)體設(shè)備1臨時將超級管理員特權(quán)賦予已經(jīng)執(zhí)行HVCALL指令的虛擬機(jī)。此外半導(dǎo)體設(shè)備1繼續(xù)其它虛擬機(jī)的操作,同時在已經(jīng)執(zhí)行HVCALL指令的虛擬機(jī)中執(zhí)行超級管理員存根程序。之后,半導(dǎo)體設(shè)備1跳轉(zhuǎn)到在超級管理員存根程序中準(zhǔn)備的指令代碼(步驟ST24)。更具體地,在步驟ST24中,虛擬機(jī)控制電路20使實(shí)體機(jī)操作信號S6保持在禁止?fàn)顟B(tài)中。然后,響應(yīng)于實(shí)體機(jī)操作信號S6處于禁止?fàn)顟B(tài),線程調(diào)度器21基于虛擬機(jī)/線程對應(yīng)表41或調(diào)度提示42選擇要執(zhí)行的硬件線程。此外,響應(yīng)于HVCALL執(zhí)行通知信號S2,管線控制信號產(chǎn)生用來執(zhí)行超級管理員存根程序的電路22產(chǎn)生指令提取控制信號IFC、指令解碼控制信號IDC、寄存器控制信號RFC和執(zhí)行單元控制信號EUC。然后,半導(dǎo)體設(shè)備1通過跳轉(zhuǎn)到在步驟ST24中的超級管理員存根程序中準(zhǔn)備的指令代碼,完成超級管理員程序的啟動處理。注意,如圖12所示,通過執(zhí)行HVCALL指令,半導(dǎo)體設(shè)備1啟動超級管理員存根程序。然后,半導(dǎo)體設(shè)備1通過超級管理員存根程序調(diào)用超級管理員程序。此外,在該超級管理員存根程序中,執(zhí)行用來確認(rèn)來自調(diào)用方的請求的有效性、監(jiān)視其它虛擬機(jī)的操作等的處理。因此,在下文中詳細(xì)說明基于超級管理員存根程序的半導(dǎo)體設(shè)備1的操作。圖13示出了示出根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中超級管理員存根程序的操作的流程圖。如圖13所示,首先,執(zhí)行超級管理員存根程序的半導(dǎo)體設(shè)備1確定調(diào)用方指令的請求是否合適(步驟ST31)。更具體地,在步驟ST31中,當(dāng)應(yīng)用程序直接發(fā)出HVCALL指令,沒有插入具有管理特權(quán)等級的任何程序(如客戶OS)時,確定調(diào)用方指令的請求是非授權(quán)請求。此外,當(dāng)在步驟ST31中確定調(diào)用方指令的請求是非授權(quán)請求時,超級管理員存根程序?qū)Ψ祷刂翟O(shè)置錯誤數(shù),發(fā)出返回指令,并返回用戶應(yīng)用的處理(步驟ST38)。此外,當(dāng)在步驟ST31中確定調(diào)用方指令的請求是合適請求時,超級管理員存根程序確定在沒有停止其它虛擬機(jī)的情況下是否可以處理該請求的處理(步驟ST32)。例如,當(dāng)該請求是僅影響發(fā)出HVCALL指令的虛擬機(jī)的設(shè)置改變時,在不停止其它虛擬機(jī)的情況下可以完成請求的處理。此外,當(dāng)在步驟ST32中確定請求的處理可以在不停止其它虛擬機(jī)的情況下處理時,在虛擬機(jī)模式中,半導(dǎo)體設(shè)備1通過超級管理員存根程序提供一個或多個服務(wù)(步驟ST33)。然后,在步驟ST33的處理之后,半導(dǎo)體設(shè)備1根據(jù)處理設(shè)置返回值,發(fā)出返回指令,并返回對用戶應(yīng)用的處理(步驟ST38)。此外,當(dāng)在步驟ST32中確定請求的處理不可以在不停止其它虛擬機(jī)的情況下處理時,確定半導(dǎo)體設(shè)備1是否可以變成本機(jī)模式(步驟ST34)。例如,當(dāng)在其他虛擬機(jī)中執(zhí)行的一個或多個處理涉及需要實(shí)時能力的關(guān)鍵任務(wù)時,就不能停止在其他虛擬機(jī)中執(zhí)行的一個或多個處理。此外,當(dāng)在步驟ST34中確定半導(dǎo)體設(shè)備1可以變?yōu)楸緳C(jī)模式時,半導(dǎo)體設(shè)備1繼續(xù)進(jìn)行步驟ST35中的處理。在步驟ST35中,超級管理員存根程序發(fā)出HVTRAP指令,由此通過HVTRAP指令將半導(dǎo)體設(shè)備1變?yōu)楸緳C(jī)模式。結(jié)果,半導(dǎo)體設(shè)備1通過本機(jī)模式中的超級管理員程序提供一個或多個服務(wù)(步驟ST36)。注意,在半導(dǎo)體設(shè)備1中,步驟ST36中的處理包括在超級管理員程序的處理中。因此,超級管理員存根程序仍然執(zhí)行,同時執(zhí)行步驟ST36中的處理。此外,在半導(dǎo)體設(shè)備1中,即使對應(yīng)于該虛擬機(jī)的HVTRAP許可標(biāo)志處于禁止?fàn)顟B(tài),作為正常處理,也處理由超級管理員存根程序發(fā)出的HVTRAP指令。然后,當(dāng)完成了步驟ST36中的處理時,半導(dǎo)體設(shè)備1將操作模式從本機(jī)模式返回虛擬機(jī)模式,執(zhí)行超級管理員存根程序(步驟ST37)。之后,執(zhí)行超級管理員存根程序的半導(dǎo)體設(shè)備1,根據(jù)處理設(shè)置返回值,發(fā)出返回指令,并將處理返回到用戶應(yīng)用(步驟ST38)。接下來,參考順序圖(圖14至18),從不同角度說明根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作。首先,圖14示出了示出根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的操作的順序圖。圖14示出了半導(dǎo)體設(shè)備1中基于正常處理調(diào)用超級管理員程序的示例。注意,圖14至17示出了半導(dǎo)體設(shè)備1的順序圖,其中虛擬機(jī)的執(zhí)行權(quán)限根據(jù)圖4中示出的虛擬機(jī)寄存器設(shè)置定義。此外,圖18示出了示出在任何虛擬機(jī)中沒有插入超級管理員存根程序的情況下啟動超級管理員程序的半導(dǎo)體設(shè)備的操作的順序圖。也就是,圖18示出了根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1的比較示例。如圖14的上部所示,在半導(dǎo)體設(shè)備1中,當(dāng)虛擬機(jī)VM0執(zhí)行HVCALL指令時,響應(yīng)于HVCALL指令,虛擬機(jī)VM0在虛擬機(jī)模式中執(zhí)行超級管理員存根程序。然后,當(dāng)超級管理員存根程序執(zhí)行HVTRAP指令時,半導(dǎo)體設(shè)備1將操作模式改變成本機(jī)模式,并且執(zhí)行超級管理員程序。在該過程中,如圖14所示,即使在執(zhí)行超級管理員程序時,超級管理員存根程序也在后臺繼續(xù)運(yùn)行。然后,響應(yīng)于超級管理員程序處理的完成,半導(dǎo)體設(shè)備1將操作模式返回虛擬機(jī)模式,并將處理返回到超級管理員存根程序。之后,通過由超級管理員存根程序執(zhí)行返回指令,半導(dǎo)體設(shè)備1將操作模式返回到運(yùn)行用戶應(yīng)用的虛擬機(jī)模式。此外,如圖14的下部所示,在半導(dǎo)體設(shè)備1中,許可虛擬機(jī)VM1執(zhí)行HVTRAP指令。因此,在半導(dǎo)體設(shè)備1中,當(dāng)在虛擬機(jī)VM1中執(zhí)行HVTRAP指令時,半導(dǎo)體設(shè)備1將操作模式從虛擬機(jī)模式改變成本機(jī)模式,并且響應(yīng)于HVTRAP指令直接執(zhí)行超級管理員程序。然后,響應(yīng)于超級管理員程序處理的完成,半導(dǎo)體設(shè)備1將操作模式返回到虛擬機(jī)模式,并且將處理返回到用戶程序。接下來,圖15是示出在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備中當(dāng)發(fā)生對超級管理員程序的非授權(quán)調(diào)用時執(zhí)行的操作的順序圖。如圖15所示,在半導(dǎo)體設(shè)備1中,HVTRAP指令的執(zhí)行權(quán)限沒有被賦予虛擬機(jī)VM0。因此,當(dāng)在虛擬機(jī)VM0中執(zhí)行HVTRAP指令時,在關(guān)于HVTRAP指令的處理中,在客戶OS的處理周期期間,在管線控制單元15的虛擬機(jī)控制電路20中,HVTRAP執(zhí)行權(quán)限異常信號S5變?yōu)樵试S狀態(tài)。然后,響應(yīng)于HVTRAP執(zhí)行權(quán)限異常信號S5變?yōu)樵试S狀態(tài),管線控制信號產(chǎn)生電路22產(chǎn)生指令提取控制信號IFC、指令解碼控制信號IDC、寄存器控制信號RFC和執(zhí)行單元控制信號EUC,使執(zhí)行單元16執(zhí)行返回指令。然后,當(dāng)在虛擬機(jī)VM0中執(zhí)行返回指令時,虛擬機(jī)VM0的執(zhí)行權(quán)限返回到用戶模式。在該過程中,在半導(dǎo)體設(shè)備1中,由于在客戶OS的處理周期期間執(zhí)行了異常處置,這是在虛擬機(jī)模式中執(zhí)行的,所以繼續(xù)其它虛擬機(jī)的操作,而不管虛擬機(jī)VM0中HVTRAP指令的執(zhí)行。此外,即使當(dāng)在虛擬機(jī)VM0中執(zhí)行HVCALL指令時,在超級管理員存根程序的處理中,當(dāng)來自調(diào)用方的請求是非授權(quán)請求時,通過超級管理員存根程序執(zhí)行錯誤處理(或異常處置)。因此,圖16是示出當(dāng)發(fā)生對超級管理員存根程序的非授權(quán)調(diào)用時進(jìn)行的半導(dǎo)體設(shè)備1的操作的順序圖。如圖16所示,在半導(dǎo)體設(shè)備1中,即使當(dāng)執(zhí)行HVCALL指令時,當(dāng)來自調(diào)用方的請求是非授權(quán)請求時,操作權(quán)限可以返回到用戶模式,而不將操作模式變成本機(jī)模式。接下來,圖17是示出當(dāng)在虛擬機(jī)VM2中執(zhí)行HVCALL指令或HVTRAP指令時進(jìn)行的半導(dǎo)體設(shè)備1的操作的順序圖,其中虛擬機(jī)VM2沒有賦予HVCALL指令的執(zhí)行權(quán)限,也沒有賦予HVTRAP指令的執(zhí)行權(quán)限。HVCALL指令的執(zhí)行權(quán)限沒有賦予虛擬機(jī)VM2,HVTRAP指令的執(zhí)行權(quán)限也沒有賦予虛擬機(jī)VM2。因此,在半導(dǎo)體設(shè)備1中,當(dāng)在虛擬機(jī)VM2中執(zhí)行HVTRAP指令或HVCALL指令時,在客戶OS的處理周期期間,執(zhí)行異常處置。更具體地,在虛擬機(jī)VM2中,作為執(zhí)行HVTRAP指令或HVCALL指令的結(jié)果,在管線控制單元15的虛擬機(jī)控制電路20中,HVCALL執(zhí)行權(quán)限異常信號S4或HVTRAP執(zhí)行權(quán)限異常信號S5變?yōu)樵试S狀態(tài)。然后,響應(yīng)于HVCALL執(zhí)行權(quán)限異常信號S4或HVTRAP執(zhí)行權(quán)限異常信號S5向允許狀態(tài)的改變,管線控制信號產(chǎn)生電路22產(chǎn)生指令提取控制信號IFC、指令解碼控制信號IDC、寄存器控制信號RFC和執(zhí)行單元控制信號EUC,使執(zhí)行單元16執(zhí)行返回指令。然后,當(dāng)在虛擬機(jī)VM2中執(zhí)行返回指令時,虛擬機(jī)VM2將處理返回到用戶應(yīng)用程序,同時保持在虛擬機(jī)模式中。接下來,說明圖18所示的比較示例。在圖18所示的比較示例中,半導(dǎo)體設(shè)備沒有管理HVTRAP指令的執(zhí)行權(quán)限,也沒有通過超級管理員存根程序啟動超級管理員程序。因此,在根據(jù)比較示例的半導(dǎo)體設(shè)備中,虛擬機(jī)VM0至VM2的任一個都可以通過執(zhí)行HVTRAP指令調(diào)用超級管理員程序。在圖18所示的示例中,虛擬機(jī)VM0執(zhí)行HVTRAP指令。因此,如圖18所示,在根據(jù)比較示例的半導(dǎo)體設(shè)備中,當(dāng)由于某種應(yīng)用故障虛擬機(jī)VM0頻繁執(zhí)行HVTRAP指令時,能夠防止由HVTRAP指令造成向本機(jī)模式的轉(zhuǎn)換。此外,存在一個問題:當(dāng)頻繁產(chǎn)生像這樣的向本機(jī)模式的轉(zhuǎn)換時,會降低半導(dǎo)體設(shè)備的處理性能。這是因為每次轉(zhuǎn)換發(fā)生時都要停止其它虛擬機(jī)的處理。由上面的描述可以看出,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,管線控制單元15包括虛擬機(jī)控制寄存器,用來為每個虛擬機(jī)定義存在/不存在執(zhí)行第一特權(quán)程序(例如,超級管理員存根程序)的權(quán)限,第一特權(quán)程序是在一個虛擬機(jī)上執(zhí)行的。此外,管線控制單元15參考虛擬機(jī)控制寄存器,并且當(dāng)已經(jīng)發(fā)出關(guān)于超級管理員存根程序的指令代碼(例如,HVCALL指令)的虛擬機(jī)具有執(zhí)行超級管理員存根程序的權(quán)限時,基于超級管理員存根程序的操作,指令執(zhí)行單元16基于關(guān)于利用硬件資源運(yùn)行的第二特權(quán)程序(例如,超級管理員程序)的指令代碼執(zhí)行處理。結(jié)果,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,即使在發(fā)生由應(yīng)用程序頻繁調(diào)用超級管理員程序造成的故障時,也能夠防止超級管理員程序被超級管理員存根程序的操作直接調(diào)用。此外,由于類似這樣的操作,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中能夠防止頻繁產(chǎn)生向本機(jī)模式的轉(zhuǎn)換。此外,在半導(dǎo)體設(shè)備1中,能夠降低發(fā)生虛擬機(jī)之間干擾的頻率,這是當(dāng)頻繁產(chǎn)生向本機(jī)模式的轉(zhuǎn)換時所造成的,由此防止由于軟件故障造成的處理性能降低。此外,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,在虛擬機(jī)內(nèi)能夠執(zhí)行具有超級管理員特權(quán)的超級管理員存根程序。因此,當(dāng)出現(xiàn)在執(zhí)行該超級管理員存根程序的虛擬機(jī)內(nèi)完成的并要求超級管理員特權(quán)的操作時,可以在沒有停止其它虛擬機(jī)的情況下,完成請求超級管理員特權(quán)的過程。結(jié)果,根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1可以降低停止虛擬機(jī)操作的頻率,由此提高半導(dǎo)體設(shè)備的整體性能。此外,在根據(jù)第一實(shí)施例的半導(dǎo)體設(shè)備1中,為每個虛擬機(jī)設(shè)置用來調(diào)用超級管理員程序的HVTRAP指令的執(zhí)行權(quán)限和用來調(diào)用超級管理員存根程序的HVCALL指令的執(zhí)行權(quán)限。因此,能夠防止執(zhí)行具有低可靠性的應(yīng)用程序的虛擬機(jī)調(diào)用超級管理員存根程序和超級管理員程序。此外,能夠僅對執(zhí)行具有高可靠性的應(yīng)用程序的一個或多個虛擬機(jī)賦予HVTRAP指令的執(zhí)行權(quán)限。通過如上所述的為每個虛擬機(jī)設(shè)置HVCALL指令和HVTRAP指令的執(zhí)行權(quán)限,能夠提高具有低可靠性的一個或多個應(yīng)用程序的可靠性,并且降低為具有高可靠性的一個或多個應(yīng)用程序調(diào)用超級管理員程序時造成的開銷。此外,在半導(dǎo)體設(shè)備1中,僅許可以超級管理員特權(quán)等級運(yùn)行的一個或多個程序重新寫入虛擬機(jī)控制寄存器的HVCALL許可標(biāo)志HVCE、HVTRAP許可標(biāo)志HVTE、HV特權(quán)標(biāo)志HVP和虛擬機(jī)允許標(biāo)志EN。結(jié)果,能夠防止這些標(biāo)志的設(shè)置值被在例如用戶模式的具有低可靠性的操作模式中運(yùn)行的程序破壞。第二實(shí)施例作為第二實(shí)施例,說明超級管理員特權(quán)等級中的操作甚至對具有可靠性比超級管理員特權(quán)等級低的執(zhí)行權(quán)限等級的程序也是許可的實(shí)施例。因此,圖19示出了根據(jù)本發(fā)明的第二實(shí)施例的半導(dǎo)體設(shè)備的虛擬機(jī)控制寄存器的示例。在圖19所示的示例中,對應(yīng)于虛擬機(jī)VM1的虛擬機(jī)控制寄存器的HV特權(quán)標(biāo)志設(shè)置為1(例如,允許狀態(tài))。當(dāng)該HV特權(quán)標(biāo)志為1時,圖3中所示的虛擬機(jī)控制電路20的OR電路32的輸出始終為1。因此,HVTRAP指令和HVCALL指令的執(zhí)行權(quán)限被賦予虛擬機(jī)VM1,不管HVTRAP許可標(biāo)志HVTE和HVCALL許可標(biāo)志HVCE是允許或禁止。此外,當(dāng)該HV特權(quán)標(biāo)志HVP處于允許狀態(tài)時,根據(jù)第二實(shí)施例的半導(dǎo)體設(shè)備參考HV特權(quán)標(biāo)志HVP,由此,例如,對于以管理特權(quán)等級操作的客戶OS,許可存取僅對具有超級管理員特權(quán)等級的一個或多個程序許可的資源。注意,在根據(jù)第二實(shí)施例的半導(dǎo)體設(shè)備中,管線控制信號產(chǎn)生電路22參考HV特權(quán)標(biāo)志HVP,以便當(dāng)在客戶OS中發(fā)生存取超級管理員特權(quán)等級的資源時,在沒有進(jìn)行異常處置的情況下繼續(xù)處理。在根據(jù)第二實(shí)施例的半導(dǎo)體設(shè)備中,如上所述,通過對上述客戶OS賦予超級管理員特權(quán),在沒有執(zhí)行HVTRAP指令或HVCALL指令的情況下,可以存取僅能被具有超級管理員特權(quán)等級的一個或多個程序操作的資源。此外,如上所述,通過將超級管理員特權(quán)等級賦予具有管理特權(quán)等級的程序,能夠消除軟件程序之間的切換,由此提高半導(dǎo)體設(shè)備的處理性能?;趯?shí)施例上面已經(jīng)說明了本發(fā)明人制造的發(fā)明。然而,本發(fā)明并不限于上述實(shí)施例,并且不必說,在沒有偏離本發(fā)明的精神和范圍的情況下,可以對它們進(jìn)行各種修改。例如,根據(jù)半導(dǎo)體設(shè)備1的說明書所述,應(yīng)該使用哪種過程來選擇要在線程調(diào)度器21中執(zhí)行的線程是一個技術(shù)問題。此外,雖然在上面所示的實(shí)施例中說明了執(zhí)行單元16是單核CPU的示例,但是本發(fā)明的技術(shù)公開還可應(yīng)用于包括多個含有執(zhí)行單元的運(yùn)算電路的多核CPU。第一和第二實(shí)施例可以按照本領(lǐng)域的普通技術(shù)人員的期望組合。雖然基于若干實(shí)施例已經(jīng)描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將認(rèn)識到,在所附權(quán)利要求的范圍和精神內(nèi),本發(fā)明可以實(shí)踐各種修改,并且本發(fā)明并不限于上述示例。此外,權(quán)利要求的范圍并不受上述實(shí)施例的限制。另外,應(yīng)該注意,申請人的意圖是包括所有權(quán)利要求要素的等效,即使后來審查期間進(jìn)行了修改。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1