TWI470552B - Data processor - Google Patents

Data processor Download PDF

Info

Publication number
TWI470552B
TWI470552B TW96137873A TW96137873A TWI470552B TW I470552 B TWI470552 B TW I470552B TW 96137873 A TW96137873 A TW 96137873A TW 96137873 A TW96137873 A TW 96137873A TW I470552 B TWI470552 B TW I470552B
Authority
TW
Taiwan
Prior art keywords
virtual machine
access
central processing
register
management module
Prior art date
Application number
TW96137873A
Other languages
English (en)
Other versions
TW200834420A (en
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of TW200834420A publication Critical patent/TW200834420A/zh
Application granted granted Critical
Publication of TWI470552B publication Critical patent/TWI470552B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

資料處理器
本發明係關於一種具備複數中央運算處理裝置,或者可於不同作業系統之管裡下執行程式之資料處理器,且例如有關一種適用於具有形成在1個半導體晶片之多CPU(中央運算處理裝置)之經半導體積體電路化之微處理器之有效技術。
近年來,微處理器之積體化進展,將搭載有複數搭載單一中央運算處理裝置之微處理器之系統予以積體化,開發搭載有複數中央運算處理裝置之微處理器。於搭載有複數中央運算處理裝置之微處理器中,主要由於端子數相對於LSI面積之限制,關於各中央運算處理裝置所利用之記憶體或輸出入裝置一般係於微處理器內共用化,主要藉由微處理器內之匯流排或控制器之設計來實現。於共用記憶體之情況下,例如若由於控制軟體之錯誤(bug)等而發生不當存取,於記憶體區域引起衝突,則發生圖像資料未正確處理之問題,因此避免記憶體區域衝突係甚為重要。於專利文獻1中,表示有一種提供電路量之開銷少之對於不當位址之存取之檢測、遮斷電路之技術。
另一方面,於搭載有複數中央運算處理裝置之微處理器上,使程式動作之情況時,需要與其相對應之作業系統,但此等作業系統之設計係與上述記憶體或輸出入裝置之共有化方式關連甚深。作為與搭載有複數中央運算處理裝置之微處理器相對應之作業系統方式,自以往即存在有以下兩種方式。
第一方式為對稱型多處理器方式,其係單一作業系統管理複數中央運算處理裝置、及單一記憶體、輸出入裝置全部。第二方式為非對稱型多處理器方式,其係於複數中央運算處理裝置分別搭載作業系統。特別在適合組入機器之微處理器中,以往考慮到容易進行軟體資產之移轉而利用非對稱型多處理器方式。
[專利文獻1]日本特開2004-334410號公報
前述非對稱型多處理器方式,特別是藉由微處理器之軟體來實現記憶體或輸出入裝置之共有化之系統係具有以下兩點問題。
作為第一點可舉出由於作業系統之方式與硬體之記憶體、輸出入裝置之共有化方式具有深厚之依存關係,因此即使於小規模之規格變更等時,仍須再設計作業系統或硬體之點。作為第二點可舉出原本在搭載有複數單一中央運算處理裝置之系統中為個別之記憶體或輸出入裝置,因藉由積體化而共有化,從而系統之可靠性或安全性降低之點。此係若記憶體或輸出入裝置未共有化,則於某中央運算處理裝置進行動作之作業系統或程式之非意圖之動作所造成之影響,不會波及在其他某中央運算處理裝置進行動作之作業系統或程式,相對地,於共有化之情況下會波及。
本發明之目的係於可在不同作業系統之管裡下,執行使用共有資源之程式之資料處理器中,減輕伴隨於系統規格變更之再設計。
本發明之其他目的係於可在不同作業系統之管裡下,執行使用共有資源之程式之資料處理器中,針對防止因資源競爭所造成之誤動作等而有助於提升系統之可靠性。
本發明進一步之其他目的係於可在不同作業系統之管裡下,執行使用共有資源之程式之資料處理器中,有助於提升安全性。
本發明之前述及其他目的與新特徵可從本說明書之記述及附圖來闡明。
簡單說明本申請案中所揭示之發明中之代表者之概要如下。亦即,藉由組合對於搭載於資料處理器之中央運算處理裝置之硬體延伸、及控制其延伸部分之軟體,來解決上述問題。對於中央運算處理裝置之硬體延伸主要係進行以下延伸而構成:(a)用以使控制延伸部分之軟體動作之動作模式延伸;及(b)用以檢測在作業系統或其管理下執行之程式(應用程式)之特定動作,將處理轉移至控制延伸部分之軟體(實現虛擬機管理器之程式)之延伸。
[1]進一步詳述。關於本發明之資料處理器(1)係包含:中央運算處理裝置(CPU),其係按照設定於模式暫存器(140,150,151)之資訊,而選擇性地構成於不同作業系統之控制下執行應用程式之複數虛擬機(101)及進行前述虛擬機控制之虛擬機管理器(190);及資源存取管理模組(110),其係管理對於前述虛擬機可利用之硬體資源之存取。且前述資源存取管理模組係輸入:從前述經設定之模式暫存器獲取之資訊、及根據前述中央運算處理裝置之對於前述硬體資源之存取控制資訊,並比較該輸入資訊及設定於控制暫存器(111)之資訊,來控制可否按照前述存取控制資訊對於前述硬體資源進行存取。因此,藉由虛擬機,於不同作業系統之管裡下執行使用共有硬體資源之程式時,可按照控制暫存器之設定,抑制對於硬體資源之非期望之存取之競爭或工作資料之消失等。部分虛擬機之變更完全不會對其他虛擬機造成影響,可藉由進行對於複數虛擬機之控制之虛擬機管理器所進行控制動作之設計變更,來應付部分虛擬機之變更。
作為本發明之一具體型態,前述控制暫存器可藉由前述虛擬機管理器來變更其設定資訊。藉此,即使對於特定應用程式或作業系統之不當存取成功,於某中央運算處理裝置所構成並動作之虛擬機之非意圖之動作所造成之影響,難以經由共有硬體資源來波及其他虛擬機之動作,可對於安全性強化有助益。
作為本發明之一具體型態,前述中央運算處理裝置係進行若輸入中斷信號,則構成前述虛擬機管理器並判斷中斷要因,若辨別為第一中斷要因,則為了回應前述中斷而執行前述作業系統之命令,若辨別為第二中斷要因,則前述虛擬機管理器回應前述中斷之處理。由於可切割來自作業系統之中斷回應與來自虛擬機管理器之中斷回應,因此關於中斷回應,亦可保證與虛擬機管理器分開地設計虛擬機。
作為本發明之一具體型態,前述模式暫存器包含:虛擬機ID暫存器(140),其係特定出複數虛擬機內之1個虛擬機;CPU動作模式暫存器(151),其係表示於虛擬機中,可執行應用程式亦或可執行作業系統;及延伸CPU動作模式暫存器(150),其係表示構成虛擬機管理器亦或構成虛擬機。
作為本發明之一具體型態係包含複數個前述中央運算處理裝置;於前述中央運算處理裝置所輸出之對於前述硬體資源之存取控制資訊中,包含該中央運算處理裝置之識別碼資訊(src)。於虛擬機ID在CPU間重複之情況下,可容易應付。此時,前述控制暫存器包含用以儲存構成被許可對於作為前述硬體資源之記憶體區域之存取之虛擬機之中央運算處理裝置之識別碼資訊之暫存器區域(SRC)。
作為本發明進一步之具體型態,前述控制暫存器包含用以對於作為前述硬體資源之記憶體區域之前頭位址儲存到前述虛擬機固有之記憶體區域之位址偏移資訊之暫存器區域(OFFSET)。各虛擬機只要對於從0號開始之位址空間進行位址管理即可。
作為本發明之一具體型態係進一步包含:連接前述中央運算處理裝置及前述資源存取管理模組之內部匯流排(BUS);及連接於前述資源存取管理模組之作為硬體資源之記憶體(120)及輸出入電路(130、131);且形成於1個半導體晶片。例如於1晶片之情況下,根據面積效率之觀點,相較於多晶片,由複數虛擬機來共有硬體資源之必然性會提高。
[2]按照其他觀點之有關本發明之資料處理器包含:複數中央運算處理裝置,其係可按照經設定之動作模式,於不同作業系統之控制下執行程式;及資源存取管理模組,其係管理對於前述複數中央運算處理裝置可利用之硬體資源之存取。且前述資源存取管理模組係輸入:對應前述經設定之動作模式之資訊、及根據前述中央運算處理裝置之對於前述硬體資源之存取控制資訊,並比較該輸入資訊及設定於控制暫存器之資訊,來控制可否按照前述存取控制資訊對於前述硬體資源進行存取。因此,於不同作業系統之管理下執行使用共有硬體資源之程式時,可按照控制暫存器之設定,抑制對於硬體資源之非期望之存取之競爭或工作資料之消失等。部分作業系統或於其控制下所執行之程式之變更完全不會對其他作業系統或於其控制下所執行之程式造成影響,可藉由進行對於資源存取管理模組之控制動作之設計變更來應付。
作為本發明之一具體型態,作為前述動作模式,包含第一動作模式(使用者模式)、第二動作模式(特權模式)及第三動作模式(虛擬機管理器模式);第一動作模式係前述中央運算處理裝置按照應用程式來執行命令之動作模式;第二動作模式係前述中央運算處理裝置按照作業系統來執行命令之動作模式;第三動作模式係控制前述第一動作模式之命令執行及前述第二動作模式之命令執行之動作模式。
作為更具體之型態,前述控制暫存器可於前述第三模式變更。藉此,即使對於特定應用程式或作業系統之不當攻擊成功,於某中央運算處理裝置所構成並動作之虛擬機之非意圖動作所造成之影響難以經由共有硬體資源波及其他虛擬機之動作,可對於安全性強化有助益。
簡單說明本申請案中所揭示之發明中由具代表性者所獲得之效果如下。
亦即,於可在不同作業系統之管理下執行使用共有資源之程式之資料處理器中,可減輕伴隨系統規格變更之再設計。針對防止因資源競爭所造成之錯誤動作等,可有助於提升系統之可靠性。可有助於提升安全性。
於圖1至圖15,從硬體觀點來表示本發明之結構。於圖1例示有關本發明之微處理器之硬體結構。
微處理器1係藉由例如CMOS積體電路製造技術,於諸如單結晶矽之1個半導體晶片形成。微處理器1係具有代表性表示之3個中央運算處理裝置(CPU 0、CPU 1、CPU 2)100、102、103及物理位址管理模組(PAM)110,其等共同連接於內部匯流排BUS。於物理位址管理模組(PAM)110,作為中央運算處理裝置100、102、103之共有硬體資源而連接於記憶體(MEM)120及輸出入電路(I/O)130、131。於物理位址管理模組(PAM)110與記憶體(MEM)120間,配置有記憶體控制器(MC)1831。記憶體控制器1831係因應記憶體之種類來控制匯流排寬等記憶體介面。中央運算處理裝置(CPU 0、CPU 1、CPU 2)100、102、103之任一或總稱其等時,亦僅記為中央運算處理裝置(CPU)。作為共有硬體資源之記憶體(MEM)120與輸出入電路(I/O)130、131亦可有別於微處理器1而於另外之晶片構成。
中央運算處理裝置100、102、103係根據儲存於主記憶之記憶體(MEM)120上之程式及資料,來進行資料處理,而且經由輸出入裝置(I/O)130、131,進行連接於其之省略圖示之各種裝置(周邊裝置)之操作。而且,於中央運算處理裝置(CPU)100、102、103之內部設置有:進行運算處理之執行部(EXEC)104、進行虛擬位址管理之記憶體管理單元(MMU)105、用以使對於主記憶之記憶體(MEM)120之存取高速化之快取記憶體(Cache)106、及調停來自各種裝置之中斷要求之中斷控制器(INTC)107。
特別於圖1中,在執行部104之內部表示有中央運算處理裝置(CPU)之動作模式及語法資源,而且在與中央運算處理裝置(CPU)聯合動作之物理位址管理模組(PAM)110之內部,表示有儲存參數項目(PAMENTRY)之參數項目暫存器111及檢查閘極電路(CHCGT)113、114、115。於此,中央運算處理裝置100、102、103係採用非對稱型多CPU語法,個別之中央運算處理裝置100、102、103分別個別利用作業系統(OS)。若按照圖1之例,中央運算處理裝置100係按照模式暫存器之設定,選擇性地構成於不同OS(OS0~OS255)之控制下,執行作為應用程式之使用者程式(User Prog)之複數虛擬機101。虛擬機101係意味由應用程式、作業系統及中央運算處理裝置(CPU)所組成之功能實現機構。於此,虛擬機101係藉由虛擬機ID(VMID)來區別,可選擇VMID=0~VMID=255之虛擬機。並且,中央運算處理裝置(CPU)可按照前述模式暫存器之設定,來選擇性地構成進行前述虛擬機之控制之虛擬機管理器(Virtual Machine Manager)190。虛擬機管理器190係意味由虛擬機管理器程式及中央運算處理裝置(CPU)所組成之功能實現機構。虛擬機管理器190係有於特定1個中央運算處理裝置構成之方法、及由所有中央運算處理裝置全體來構成單一功能之方法。後者之情況下,由模式暫存器選擇構成虛擬機管理器190之中央運算處理裝置,係執行虛擬機管理器程式所需之程式模組來進行資料處理。
此外,圖1中並未圖示中央運算處理裝置(CPU)以外之匯流排主控模組,但實際上亦可有直接記憶體存取控制器(DMAC)或具備定址功能之控制器等CPU以外之匯流排主控裝置。前述CPU以外之匯流排主控裝置係藉由執行使用者程式之特定虛擬機來控制,並對於匯流排BUS輸出與該虛擬機所進行存取相同之存取控制資訊。總言之,由於中央運算處理裝置(CPU)以外之匯流排主控模組具有與由該中央處理裝置所構成之虛擬機所進行之存取等價之存取型態,因此物理位址管理模組110係對於來自中央運算處理裝置(CPU)以外之匯流排主控模組之匯流排存取及來自中央運算處理裝置(CPU)之匯流排存取同樣地發揮作用即可。
作為前述模式暫存器係準備有XVSVMID.VMID暫存器140、XVSCR.MD暫存器150、及SR.MD暫存器151。作為其他語法資源暫存器係設有XVSCR.PIDSEL暫存器160、XVR.XVR暫存器170、及XVSET.CODE暫存器180。
SR.MD暫存器151為1位元之暫存器,按照其值來決定中央運算處理裝置(CPU)之動作模式為使用者模式(第一動作模式:User Mode)亦或特權模式(第二動作模式:Priv Mode)。作為使用者模式,通常之應用程式(使用者程式)為稼動模式。於使用者模式,限制特定之中央運算處理裝置(CPU)命令之執行或特定之中央運算處理裝置(CPU)暫存器資源之存取。特權模式係指可執行對於中央運算處理裝置(CPU)之稼動狀態造成影響之特定之中央運算處理裝置(CPU)命令之模式。設計為作業系統(OS0~OS255)動作時,以特權模式運行,使用者程式(User Prog)以使用者模式運行,並設計為使用者模式程式之動作不會對於作業系統之動作造成影響。
XVSCR.MD暫存器150為1位元之暫存器,按照其值來決定動作模式是否為虛擬機管理器模式(第三動作模式:XVS Mode)。於此,虛擬機管理器模式係指進行對於複數作業系統或虛擬機,分配由記憶體120及輸出入電路130所代表之共有硬體資源之控制,或遮斷由於作業系統或程式(或虛擬機)之不適切動作而影響波及其他作業系統或程式(或虛擬機)之控制等之模式。總言之,虛擬機管理器模式係控制使用者模式之命令執行及特權模式之命令執行之動作模式。
XVSVMID.VMID暫存器140為8位元之暫存器,按照其值,使用者模式及特權模式分別被分割為VMID=0至VMID=255之256模式。具體而言,(1)XVSCR.MD暫存器150為1之情況時,成為虛擬機管理器模式(XVSMODE)。(2)XVSCR.MD暫存器150為0且SR.MD暫存器151為1之情況時,按照XVSVMID.VMID暫存器140之值而成為特權模式之VMID=0至VMID=255模式。(3)XVSCR.MD暫存器150為0且SR.MD暫存器為0之情況時,按照XVSVMID.VMID暫存器140之值而成為使用者模式之VMID=0至VMID=255模式。
物理位址管理模組(PAM)110係定位作為管理對於複數中央運算處理裝置100、102、103可利用之硬體資源120、130、131之存取之資源存取管理模組。物理位址管理模組110係輸入從經設定之模式暫存器獲取之資訊及藉由前述中央運算處理裝置(CPU)對於前述硬體資源120、130、131之存取控制資訊,並以檢查閘極電路(CHCGT)113、114、115來比較該輸入資訊與設定於參數項目暫存器111之資訊,以控制可否因應前述存取控制資訊對於前述硬體資源120、130、131存取。
藉由利用虛擬機管理器模式(XVS MODE)來執行中央運算處理裝置(CPU)內之語法資源、或進行物理位址管理模組110之控制之軟體(虛擬機管理器程式),控制由記憶體120及輸出入電路130、131所代表之資源對於複數作業系統之分配,藉由VMID=0至VMID=255之模式,使中央運算處理裝置作為分別獨立之動作域(虛擬機)來動作,並進一步進行遮斷作業系統及使用者程式之不適切或不當動作之影響之控制。以下,藉由以虛擬機管理器模式(XVS MODE)執行,來進行對於複數作業系統之記憶體、I/O資源之分配,或進行遮斷作業系統、程式之不適切動作之影響之控制之軟體,係稱為虛擬機管理器程式;中央運算處理裝置執行符合程式所實現之功能係稱為虛擬機管理器。
於圖2例示中央運算處理裝置(CPU)之動作控制用之主要暫存器。例如表示有關僅能以虛擬機管理器模式(XVS MODE)來存取之中央運算處理裝置(CPU)之暫存器資源中,直接與CPU之硬體動作控制相連結之暫存器。XVSCR暫存器為32位元之暫存器,於位元17至16之2位元部分具有命名為PIDSEL之欄位(field),於位元0部分具有命名為MD之欄位。其以外之位元部分為未使用。XVSVMID暫存器係於位元7至0之8位元部分具有VMID欄位。其以外之位元部分為未使用。XVR暫存器係位元31至0之32位元全體為XVR欄位。XVSEVT暫存器係於位元11至0之12位元部分具有碼(CODE)欄位。其以外之位元部分為未使用。SR暫存器具有位元0之MD欄位。
於本說明書中,亦有具某位元寬之暫存器之一部分位元欄位部分記為(暫存器名).(位元欄位名),其本身稱呼為暫存器之情況。前述XVSCR.MD暫存器係依照本稱呼方法,實際上則與XVSCR暫存器之MD欄位相對應。
於圖3表示構成MMU 105之轉換後備緩衝區(TLB)之結構。轉換後備緩衝區(TLB)係保持用以將由執行部(EXEC)所發行之作為存取位址之虛擬位址,轉換為物理位址之位址轉換設定。於轉換後備緩衝區(TLB),藉由保持位址轉換對或其位址範圍之存取權限等資訊之欄位來構成項目(Entry)。於此例中,說明有關具備0至63之64組項目之情況。例如項目係分為3部分,稱呼為位址陣列(Address Array)、資料陣列(Data Array)及VMID陣列(VMID Array)。於轉換後備緩衝區(TLB),其特徵為具備VMID陣列所含之8位元之VMID欄位。於VMID欄位儲存與位址轉換對相對應之VMID(虛擬機識別符)。於ASID欄位儲存MMU所管理之位址空間ID。於VPN欄位儲存對應之虛擬頁號。於PPN欄位儲存對應之物理頁號。於SZ欄位儲存頁大小資訊。於V欄位儲存表示項目之有效性之有效位元。SH為共有旗標,C為可快取旗標,PR為保護旗標,D為壞旗標(dirty flag),WT為寫入旗標。
MMU 105之位址轉換係對於已執行之命令所發出之虛擬位址、前述XVSVMID.VMID暫存器值、設定於MMU 105之位址空間識別符(ASID)之值,於各項目進行使用轉換後備緩衝區(TLB)之位址陣列內之VPN欄位、VMID欄位、ASID欄位、V欄位及資料陣列內之SZ欄位之命中判斷。於任一項目命中之情況時,以該命中之項目之資料陣列內之PPN欄位之值來置換位址值,進行往物理位址之轉換。具體而言,於完全符合以下所述條件之情況時,判斷為項目命中。第一條件係已執行之命令所發出之虛擬位址,包含於藉由VPN欄位之值及SZ欄位之值所決定之位址範圍。第二條件係XVSVMID.VMID暫存器值與VMID欄位值一致。第三條件係設定於MMU 105之ASID暫存器之值與轉換後備緩衝區(TLB)之ASID欄位之值一致。第四條件係V欄位之值為1。
於圖4表示MMU 105所實施之存取權限判斷之運算法。特別是於MMU 105所實施之存取權限判斷中,於執行作為發行存取之根據之命令之時點之XVSCR.MD暫存器值、SR.MD暫存器值、以及轉換後備緩衝區(TLB)之PR欄位及D欄位之值會影響判斷。PR欄位值為2位元之值,00意味僅許可在特權模式之讀出,01意味許可在特權模式之讀出及寫入,10意味僅許可在特權及使用者模式之讀出,11意味許可在特權及使用者模式之讀出及寫入。而且,D欄位係意味是否對於符合項目之位址範圍已進行過寫入。作為判斷結果而許可或拒絕存取,於拒絕時會產生因應拒絕理由之例外處理要求。
拒絕之情況下所產生之例外處理要求之種類,有保護違反例外(Protection Error Exception)、初始頁寫入例外(Initial Write Exception)。保護違反例外係於即使存在與已存取之虛擬位址一致之位址轉換資訊,因指定之存取權而未許可實際存取之情況下所發生之例外。而且,初始頁寫入例外係即使存在有與經資料存取(寫入)之虛擬位址一致之位址轉換資訊且許可存取權,但仍發生之例外。
於MMU 105之存取權限判斷運算法中,首先於401,藉由XVSCR.MD暫存器值及SR.MD暫存器值來進行判斷。於使用者模式之情況下,分路為402,特權模式為虛擬機管理器模式(XVS MODE)之情況下,分路為403。於使用者模式之情況下,分路為402後,於411藉由PR欄位之值來進行判斷。於PR欄位之值為00或01,亦即於僅許可在特權模式之存取之位址區域,分路為412,判斷為保護違反例外。於PR欄位之值為10,亦即於僅許可在使用者模式之讀出之位址區域,分路為413。於PR欄位之值為11,亦即於許可在使用者模式之讀出及寫入之位址區域,分路為414。經過前述413之分路,於421藉由存取是否為讀出來進行判斷。於讀出之情況下,分路為422,判斷為存取許可。於非讀出,亦即於寫入之情況下,分路為423,判斷為保護違反例外。經過前述414之分路,於431亦藉由存取是否為讀出來進行判斷。於讀出之情況下,分路為432,判斷為存取許可。於寫入之情況下,分路為433。經過433之分路,於441藉由D欄位之值來進行判斷。於D欄位之值為0之情況下,分路為442,判斷為初始頁寫入例外。於D欄位之值為1之情況下,分路為443,判斷為存取許可。經過前述403之分路,於451,與411相同地藉由PR欄位之值來進行判斷。於PR欄位之值為00或10,亦即於特權模式中僅許可讀出之位址區域,分路為452。於PR欄位之值為01或11,亦即於特權模式中許可讀出及寫入之位址區域,分路為453。分路為452、453後,於461、471分別藉由存取是否為讀出來進行判斷,於讀出之情況下分別分路為462、472,於寫入之情況下分別分路為463、473。分路為462、472之情況下,判斷作為存取許可。分路為463之情況下,判斷為保護違反例外。分路為473後,於481藉由D欄位之值來進行判斷。D欄位之值為0之情況下,分路為482,判斷為初始頁寫入例外。於1之情況下,分路為483,判斷為存取許可。
根據圖3、圖4所說明之MMU之特徵係無須對於前述VMID=0~255之使用者模式及特權模式所構成之複數作業系統環境,設定與各個相對應之轉換後備緩衝區(TLB),可抑制硬體規模增大,同時實現本發明之方式。
於圖5表示有快取記憶體(Cache)106之結構。快取記憶體(Cache)106係藉由快取中之資料本身及與該資料相對應之物理位址之值之配對來構成。於此,以稱為組相聯之快取記憶體之結構作為一例。包含複數組資料及對應物理位址之配對而構成路(way),包含複數組路而構成項目。例如具備0至255之快取項目,各項目包含路0至路3。各項目大致區別為位址陣列(Address Array)、資料陣列(Data Array)及VMID陣列(VMID Array)。位址陣列包含標籤(Tag)欄位、U欄位及V欄位;資料陣列係保存圖1之記憶體(MEM)120之對應位址之資料,而且記憶該資料為何狀態。標籤欄位係記憶位址之高位側之複數位元。U欄位係記憶資料陣列之LW0~LW7欄位之資料是否與圖1之記憶體(MEM)120相同,或不記憶是否不同而是記憶資料陣列之LW0~7欄位之資料是否為最新。V欄位係記憶該項目是否為有效資料。資料陣列包含LW0~LW7欄位,LW0~LW7欄位記憶圖1之記憶體(MEM)之資料內容。VMID欄位係記憶從圖1之記憶體(MEM)120對於資料陣列LW0~LW7欄位進行資料複製之時點之XVSVMID.VMID暫存器值。圖6係表示於快取記憶體106之命中判斷中未命中之情況下往快取記憶體106及內部匯流排BUS之資料流向之圖。未快取命中之情況下,經由內部匯流排BUS來讀入與物理位址(Address(P))相對應之內容,將當時之物理位址儲存於對應之路之標籤欄位,將讀出之資料儲存於LW0~LW7欄位,於中央運算處理裝置(CPU)則同時將XVSVMID.VMID暫存器值儲存於VMID欄位。
圖7係表示中央運算處理裝置(CPU)之快取記憶體106之命中判斷動作之圖。快取記憶體106之命中判斷係藉由比較因命令執行而從執行部104輸出有邏輯位址時,由記憶體管理單元105所轉換之物理位址,與將XVSVMID.VMID暫存器值儲存於快取記憶體106之位址陣列內之標籤欄位、V欄位、及VMID陣列之VMID欄位之內容而進行。特別是於組相聯方式中,比較對象係藉由已執行之命令所發出之虛擬位址之低位部分而索引化之項目所含之所有路。存在有命中之路之情況時,讀出儲存於對應之路之資料陣列LW0~LW7之資料。
若藉由上述快取記憶體106,不須設置與VMID=0~255之各個相對應之快取記憶體,可抑制硬體規模增大。
圖8係表示中央運算處理裝置(CPU)之pid信號(pid)之產生方法之圖。pid信號為8位元之信號,其表示匯流排存取是從中央運算處理裝置(CPU)內之何個作業系統發出之信號。pid信號係按照前述XVSCR.PIDSEL暫存器之值而決定有輸出模式為VMID8、VMID4+ASID4、ASID8之任一。
(1)VMID8模式之情況下,對於pid信號輸出有執行發生匯流排存取之命令之時點之XVSVMID.VMID暫存器之值。
(2)VMID4+ASID4模式之情況下,分別對於pid信號之高位4位元,輸出有執行命令之時點之XVSVMID.VMID暫存器之低位4位元之值,對於pid信號之低位4位元,輸出有命中之TLB項目之ASID暫存器之高位4位元之值。此情況下,前提為中央運算處理裝置(CPU)在VMID=0~16之範圍內進行資料處理。
(3)ASID8模式之情況下,對於pid信號輸出有命中之TLB項目之ASID暫存器之值。此情況下,前提為中央運算處理裝置(CPU)僅於VMID=0進行資料處理。
pid信號係經由內部匯流排BUS而輸入於後述之物理位址管理模組(PAM)110。PAM模組110係位於內部匯流排BUS與記憶體120或輸出入電路(I/O裝置)130、131間,利用檢查閘極電路(CHCGT)113、114、115,來將pid信號等之信號值與參數項目暫存器111所保有之參數項目(PAMENTRY)進行比較等,並進行經由內部匯流排BUS之來自中央運算處理裝置(CPU)之存取之權限檢查、或對於位址之偏移加算等。物理位址管理模組(PAM)110位於內部匯流排BUS與記憶體120或I/O裝置130、131間之理由,係為了可於1處檢查來自複數個中央運算處理裝置(CPU)或CPU以外之匯流排主控裝置之存取。
圖9係物理位址管理模組(PAM)110所具有之參數項目暫存器(設定暫存器表)111之1項目份之結構。1項目係由16位元組來構成,其具有複數欄位。對於設定暫存器表111之寫入以外之匯流排存取,亦即對於所連接之匯流排裝置之存取係按照該表111之值而被許可或拒絕,並進一步對於位址進行偏移之加算。
ADDR欄位、AMSK欄位係使用於從匯流排輸入之位址信號(addr)之命中判斷之值。於ADDR欄位設定有用以特定出作為存取對象之位址區域之位址資訊。SRC欄位、SMSK欄位係使用於從匯流排輸入之來源ID信號(src)之命中判斷之值。於SRC欄位儲存有識別作為存取主體之中央運算處理裝置(CPU)等之匯流排主控裝置之識別碼。來源ID信號係表示匯流排存取是從何個匯流排主控裝置發出之信號。PID欄位、PMSK欄位係使用於從匯流排輸入之pid信號之命中判斷之值。pid信號係如前述從中央運算處理裝置(CPU)輸出。於PID欄位儲存有與pid信號比較之PID資訊。PID資訊係依據圖8之pid信號之定義之資料。偏移(OFFSET)欄位係於許可匯流排存取時,應加算於位址信號之值之偏移植。前述偏移係對於例如記憶體120之最前位址,到由VMID所特定出之虛擬機固有之記憶體區域之位址偏移資訊。於PR欄位儲存有表示是否許可讀出匯流排存取之讀出保護資訊。於PW欄位儲存有表示是否許可寫入匯流排存取之寫入保護資訊。設定暫存器表111之項目係例如對於各個匯流排主控之VMID逐一設置即可。
圖10係表示對於匯流排從屬裝置120、130、131之存取之權限檢查運算法。對於物理位址管理模組(PAM)110之參數項目暫存器(設定暫存器表)111之表設定係由虛擬機管理器190來進行。物理位址管理模組(PAM)110係例如按照其硬體邏輯來進行圖10之處理。
作為第一判斷係於1000判斷匯流排之位址信號(addr)。進行位址信號(addr)之值與AMSK欄位之邏輯積,若其值與ADDR欄位之值不一致,則拒絕存取(1006)。作為第二判斷係於1001判斷匯流排之來源ID信號(src)。進行來源ID信號(src)之值與SMSK欄位之值延伸為來源ID信號之位元寬者之邏輯積,若其值與SRC欄位之值不一致,則拒絕存取(1006)。作為第三判斷係於1002判斷匯流排之pid信號(pid)。進行pid信號(pid)之值與PMSK欄位之值延伸為pid信號之位元寬者之邏輯積,若其值與PID欄位之值不一致,則拒絕存取(1006)。作為最後之判斷係藉由匯流排存取種類進行判斷。於1003為讀出存取之情況時,若於1004,PR欄位不是1,則拒絕存取(1006)。於1003為寫入存取之情況時,若於1005,PW欄位不是1,則拒絕存取(1006)。此外,物理位址管理模組(PAM)110之設定暫存器表111實際上包含複數項目,本圖之判斷係對於各個項目來進行。判斷為存取許可之項目若有1項目,則判斷為存取許可(1007)。
於圖11例示物理位址管理模組110之全體結構。於圖12表示物理位址管理模組110所含之比較電路COMP之一例。於圖13表示物理位址管理模組110所含之偏移加算電路OFFSET之一例。
物理位址管理模組110與內部匯流排BUS間之信號係作為從內部匯流排BUS輸入於物理位址管理模組110而有存取權限信號(auth)、存取種類信號(opc)、來源ID信號(src)、pid信號(pid)、位址信號(addr)及寫入資料信號(wd)。特別是存取權限信號(auth)係輸出有執行於中央運算處理裝置(CPU)發生匯流排存取之原因之命令之時點之XVSCR.MD暫存器值及SR.MD暫存器值。而且,作為從物理位址管理模組(PAM)對於LSI內部匯流排輸出之信號,有讀出資料信號(rd)、存取權限違反通知信號(err)。而且,物理位址管理模組110與中斷控制器(INTC)107間之信號有存取權限違反中斷通知信號ERRINT。而且,物理位址管理模組110與記憶體120或I/O裝置130、131等匯流排從屬裝置間之信號係作為物理位址管理模組110所輸出之信號而有存取種類信號(opc')、來源ID信號(src')、位址信號(addr')及寫入資料信號(wd'),作為匯流排從屬裝置所輸出之信號而有讀出資料信號(rd')。於物理位址管理模組110內具有前述圖9所示之設定項目表111為例如16項目份之參數項目_1~16。從內部匯流排BUS輸入之信號係輸入於物理位址管理模組110內之比較電路AUTHCOMP。
於比較電路AUTHCOMP,按照位址信號及存取權限信號,於存取對象為物理位址管理模組110之設定項目表之情況時,將存取分配給PAMENTRY_1~16,於其以外之通常存取之情況時,分配給後段之比較電路COMP。而且,檢查存取權限信號,對於區塊電路BLOCKADE,輸出對於PAMENTRY_1~16之存取是否是來自在虛擬機管理器模式(XVS MODE)下動作之程式者。於比較電路COMP,進行非對於PAMENTRY_1~16之存取之通常匯流排存取之權限判斷。按照物理位址管理模組110設定項目表之內容,將從比較電路AUTHCOMP輸入之位址信號、位址種類信號、來源ID信號、pid信號之內容予以遮罩並進行一致比較,將其結果作為deny信號而輸出至區塊電路BLOCKADE。而且,從比較電路AUTHCOMP輸入之各信號亦輸出至區塊電路BLOCKADE。於區塊電路BLOCKADE,使用比較電路AUTHCOMP,COMP所產生之比較結果之值,來進行PAMENTRY_1~16去向存取、通常匯流排存取之遮斷。於PAMENTRY_1~16去向存取,除了來自在虛擬機管理器模式(XVS MODE)下動作之程式之存取以外均遮斷,於通常匯流排存取,如前述於不存在有存取許可之項目之情況下進行遮斷。於區塊電路BLOCKADE遮斷匯流排存取之情況時,對於內部匯流排BUS、中斷控制器107,分別經由err信號、ERRINT信號來通知已發生匯流排存取遮斷。err信號、ERRINT信號之供給對象係按照當時輸入之信號pid而控制。偏移加算電路OFFSET係針對未於區塊電路BLOCKADE遮斷之通常匯流排存取,於其位址信號之值進行偏移加算。將判斷為存取許可之項目作為命中項目(hitentry)信號而接受,加算該項目之偏移(OFFSET)欄位之值,並輸出至匯流排標的裝置。圖1之檢查閘極114、115係由比較電路COMP及偏移加算電路OFFSET所構成。檢查閘極113係由比較電路AUTHCOMP及區塊電路BLOCKADE所構成。此外,圖10所說明之處理係由比較電路COMP所進行之處理。
按照上述及圖8至圖11所示之方式,來進行對於記憶體120或I/O裝置130、131之存取權限檢查或位址偏移。PAMENTRY_1~16可僅藉由虛擬機管理器190來設定,而且進行對於匯流排存取之存取許可判斷參數之追加、偏移電路之導入。藉此,利用虛擬機管理器190對於物理位址管理模組110之硬體之適當控制,可實現記憶體120或I/O裝置130、131對於由前述VMID=0~255之使用者模式、特權模式所構成之複數作業系統環境之分配、分離。
於圖14例示中央運算處理裝置(CPU)之中斷及例外之種類、及其等發生時之變遷去處位址。於本說明書中,實施型態欄之說明係區分中斷與例外,但於其以外,中斷之概念亦包含例外。於1400所示之"例外(Exception)"行係表示可能於此中央運算處理裝置(CPU)發生之例外種類,於1410所示之"向量位址(w/XVS support)"係表示於中央運算處理裝置(CPU)之變遷去處位址。於以往,發生例外或中斷時,會發生往儲存於重設向量或稱為VBR之暫存器之位址之變遷,但於中央運算處理裝置(CPU),則往儲存於前述XVR暫存器之位址變遷。中斷或例外之處理一般係於藉由硬體進行變遷後,藉由存在於該變遷去處之作業系統程式來進行,但於中央運算處理裝置(CPU),可變遷為有別於作業系統所使用之VBR暫存器而另外準備之XVR暫存器之值,可藉由虛擬機管理器190進行適當之處理。
於圖15表示中斷控制器(INTC)107之一例。中斷控制器107係針對從微處理器1之外部端子輸入之不可遮罩式中斷(NMI)或外部中斷要求(External IRQ)、或從微處理器內部輸入之內部中斷要求(Internal IRQ),於優先控制部PRIORITY判斷其優先順序,對於執行部(EXEC)104通知優先順序最高之要求之要求位準(IRQ Priority Level)。中斷控制器107係於內部具有暫存器RSTTOIRQ,於輸入有內部重設信號或外部重設信號(Internal/External RESET)時,按照暫存器RSTTOIRQ之值來控制對於對應之執行部104之重設信號之有效/無效。於暫存器RSTTOIRQ之值為"0"之情況時,內部重設信號及外部重設信號直接作為對於所有執行部104之重設信號RESET而輸出。總言之,重設微處理器1全體。於暫存器RSTTOIRQ之值為"1"之情況時,內部重設信號及外部重設信號係作為中斷信號之一來處理,可僅對於對應之執行部104來進行與重設處理相同之處理。
藉此,可由虛擬機管理器190來控制來自內部重設信號及外部重設信號之重設要求,可作為對於特定作業系統環境之重設來處理。
接著,一面參考圖18至圖32,一面從軟體觀點來說明有關微處理器1之架構。軟體係藉由控制硬體來實現其功能,特別已將重點放在虛擬機管理器程式來說明。
於圖18表示藉由虛擬機管理器190所進行之中央運算處理裝置(CPU)、記憶體120、I/O裝置130、131之硬體資源對於複數作業系統之分配之一例。物理硬體資源係指LSI所實際具備之硬體1830。於此,中央運算處理裝置(CPU)係作為CPU 0~2而連接有合計3個。而且,位址連續之記憶體(MEM)120係經由物理位址管理模組(PAM)110而連接於1個記憶體控制器(MC)1831。作為I/O資源而具備例如:具有複數通道(Ch0~Ch2)之裝置I/O Dev0、及具有單一通道之裝置I/O Dev1~4,並經由物理位址管理模組(PAM)110來連接。虛擬機管理器190係將上述物理硬體資源作為虛擬硬體資源而分配給複數作業系統,各個作業系統可排他地利用分配到之硬體資源。於此,對於3個作業系統OS0~OS2,虛擬機管理器190分別作為虛擬機VM0~VM2來分配。VM0為VMID=0之虛擬機,VM1為VMID=1之虛擬機,VM2為VMID=2之虛擬機。1個虛擬機(VM)係與圖1之1個VMID之使用者程式(User Prog.)及作業系統之配對相對應。
圖19係例示用以設定由虛擬機管理器所進行之硬體資源之分配之VM定義檔。中央運算處理裝置(CPU)之分配係由圖19之VM定義檔之欄位"CPU:"來決定。每當電源重新開啟時,微處理器讀入VM定義檔,按照此每次進行硬體資源之分配亦可,於此,於微處理器1之設計階段,按照VM定義檔來進行硬體資源之分配。因此,製成之微處理器1中以中央運算處理單位之硬體資源之分配係固定化。於圖19之例中,對於VM0分配CPU 0,對於VM1分配CPU 1,對於VM2分配CPU 1及2。此分配指定係設想OS0及OS1在單一中央運算處理裝置(CPU)上動作之作業系統,且OS2對應於對稱型多處理器方式而於複數中央運算處理裝置(CPU)上動作之作業系統。於此,關於中央運算處理裝置(CPU)之分配,於上述設定中,應注意2種分配方式係暗地指示。其為1對1分配方式及1對n分配方式。1對1分配方式係例如CPU 0對於VM0之分配即對應於其。由於CPU 0不分配給其他虛擬機(VM),VM0可不與其他虛擬機(VM)共有CPU 0而使用,因此虛擬機管理器190僅於微處理器1之啟動時,於CPU 0上起動OS0即可。另一方面,1對n分配方式係CPU 1對於VM1、VM2之分配即對應於其。此時,虛擬機管理器係於微處理器1之動作中,於CPU 1上,以時間分割控制等方法來切換OS1與OS2並使其動作。此控制宜利用藉由硬體之獨立動作域管理機構來進行。
記憶體120之分配係由圖19之VM定義檔中之欄位"PMem_Start:"、欄位"PMem_Size:"及欄位"VMem_Start:"來決定。欄位"PMem_Start:"及"PMem_Size:"係規定將作為物理硬體資源而存在之記憶體之何個位址區域,對於虛擬機(VM)分配。欄位"VMem_Start:"係規定被分配之記憶體配置於虛擬機(VM)上之何個位址區域。於本實施例中,對於VM0分配物理記憶體之位址0x00000000至大小0x04000000之64 MBytes,亦即分配位址0x00000000~0x03FFFFFF。而且,從VM0上,此記憶體區域可作為位址0x00000000~0x03FFFFFF來存取。對於VM1係分配0x04000000~0x07FFFFFF之64 MBytes,但藉由虛擬機管理器190之控制,從VM1上,此記憶體區域可作為位址0x00000000~0x03FFFFFF來存取。對於VM2係分配0x08000000~0x0FFFFFFF之128 MBytes,從VM2上,此記憶體區域可作為位址0x00000000~0x07FFFFFFF來存取。於此,關於記憶體之分配方式應注意不僅分配作為物理硬體資源之記憶體之位址區域,而且可設定其等分配給虛擬機(VM)之何個位址區域之點。因為作業系統所使用之記憶體位址區域之開始位址設計為固定,為了變更其而會有須改變作業系統本身之情況,若無法使虛擬機(VM)上之位址區域成為可變,結果若不改變作業系統,即無法實現作業系統之複數動作。關於上述記憶體之分配控制,宜利用上述物理位址管理模組(PAM)110來進行。輸出入裝置(I/O)之分配係由圖19之VM定義檔中之欄位"Exclusive(排他)I/O:"、欄位"Partitioned(分割)I/O:"及欄位"Shared(分享)I/O:"來決定。關於指定給欄位"Exclusive I/O:"之I/O裝置,係排他地分配給對應之虛擬機(VM)。關於指定給欄位"Partitioned I/O:"之I/O裝置,係以I/O裝置所規定之通道單位,排他地分配給對應之虛擬機(VM)。關於指定給欄位"Shared I/O:"之I/O裝置,係以複數虛擬機(VM)共有之型態來分配。關於複數VM之I/O裝置之共有,需要虛擬機管理器190捕捉從作業系統對於虛擬機(VM)發行之存取,並進行調停之動作。關於捕捉,宜利用上述物理位址管理模組(PAM)110來進行。而且,於後面會敘述由虛擬機管理器190所進行之調停方法。
於以上,已說明有關由虛擬機管理器190所進行之物理硬體資源之分配,但於虛擬機管理器190中不僅進行分配,而且進行將從在某虛擬機(VM)上動作之作業系統、程式,對於其他VM之物理硬體資源之存取予以遮斷之域分離。此控制宜利用上述物理位址管理模組(PAM)110來進行。
而且,於以上已敘述有關藉由虛擬機管理器190所進行之物理硬體資源之分配及域分離之方法,於以下敘述虛擬機管理器軟體本身與複數作業系統之並存方式。於上述架構中,虛擬機管理器程式宜在對於中央運算處理裝置(CPU)新追加之虛擬機管理器模式(XVS MODE)中動作。
根據圖20及圖21來說明有關本發明之虛擬機管理器之動作概要及模組結構。於圖20表示作為微處理器1之起動時之動作流程,虛擬機管理器程式內之初始化程式進行初始化處理之程序。起動係以對於硬體輸入電源重新開啟信號(2000)來進行,於微處理器1全體施行重設,進行通常之重設處理。於其後,開始執行虛擬機管理器IPL(IPL:Initial Program Loader(初始程式載入器))(2001),按照圖20之流程進行系統之初始化及虛擬機管理器程式之起動、各作業系統之起動。以下針對圖20之流程依序說明。
若電源重新開啟,控制移至特定CPU 0之虛擬機管理器之IPL。IPL係從ROM(圖1之121)將本身之執行影像載入記憶體,並將控制移至該項目。此項目中具有虛擬機管理器初始化常式,進行初始化。此等一連串處理均於CPU 0執行(步驟2001)。於虛擬機管理器初始化常式執行以下處理。進行物理位址管理模組(PAM)110之初始化(步驟2002)、對於CPU 0之域之物理位址管理模組(PAM)110之表項目PAMENTRY之登錄(步驟2003)、域間共有記憶體之初始化(步驟2004,2005)、及全域用之物理位址管理模組(PAM)110之表項目登錄(步驟2006),於此時點,藉由物理位址管理模組(PAM)110之位址轉換機構,將記憶體120設定為各中央運算處理裝置(CPU)可作為邏輯上獨立之空間而佔有。並且,設定CPU 0以外之中央運算處理裝置(CPU)之重設向量(步驟2007),解除CPU 0以外之中央運算處理裝置(CPU)之時鐘停止(步驟2008)。於此時點,CPU 0以外之中央運算處理裝置(CPU)重設(步驟2009),從可視為各個所佔有之記憶體區域可載入IPL。接著,CPU 0進行域產生,將該中央運算處理裝置(CPU)之作業系統用IPL載入該半物理位址空間(步驟2010、2012),於虛擬機管理器,分路為各作業系統用IPL之項目。與步驟2010、2012獨立地於CPU 0以外之中央運算處理裝置(CPU)進行以下處理。產生各域,將各作業系統用IPL載入該半物理位址空間(步驟2011),於各虛擬機管理器,分路為各作業系統用IPL之項目(步驟2013)。藉由以上流程,虛擬機管理器及各域上之作業系統開始動作。圖20之例係中央運算處理裝置CPU 0最先進行初始化處理,但不限定於其。
於圖21表示在微處理器1中,圖20所示之起動順序結束而成為動作中之虛擬機管理器190之模組架構,及虛擬機管理器與作業系統間之執行流程變遷。若初始化結束,於虛擬機管理器190上,作業系統起動,則控制會從虛擬機管理器190離開而移至使用者程式或作業系統(2110),其後,虛擬機管理器190僅於控制因中斷或例外而轉移時動作。虛擬機管理器190係包含:因中斷或例外而轉移至所需服務之例外/中斷處理部(2101)及從其叫出之虛擬機管理器服務部分(2102)、以及因中斷或例外之要因而傳輸至作業系統或其他虛擬機管理器之傳輸處理部分(2103、2104)。若從應用軟體或作業系統發生中斷、例外(2105),則控制轉移至虛擬機管理器190。此係於與通常機器中之例外/中斷處理相同之機構,將以往機器與作業系統之組合中由位於作業系統核心之例外/中斷處置器處理者,在本發明之系統中,進行控制轉移至虛擬機管理器190內。
此時,中央運算處理裝置(CPU)係轉移至具有作業系統稼動之特權模式以上之權限之虛擬機管理器模式(虛擬機管理器模式(XVS MODE))。虛擬機管理器係於例外/中斷處理部分,按照其要因而進行以下之必要處理。亦即,第一係於TLB失誤或一般例外等通常之中斷或例外之情況時,未有在虛擬機管理器之處理,直接分路為發生源之作業系統,並傳輸事件(2103、2104)。第二係於檢測到來自物理位址管理模組(PAM)之保護違反之情況時,將其作為中斷而通知。藉由PAM保護違反處理來處理其(2106)。第三係於來自多核心之其他中央運算處理裝置(CPU)之中斷之情況時,CPU間中斷處置器(2107)處理此,作為虛擬機管理器於內部製作之虛擬中斷(2108)。虛擬機管理器190應接受中斷而於中央運算處理裝置(CPU)之中斷暫存器設定其要因,藉由將控制移至作業系統來處理該中斷。
圖22係表示藉由虛擬機管理器190之對於物理記憶體之虛擬機(VM)之分配處理。圖22之VM0或VM1等之1個虛擬機(VM)係對應於圖1之1個VMDID與作業系統之組合之虛擬機101。本發明中,藉由虛擬機管理器190之對於虛擬機(VM)之物理記憶體分配,係藉由虛擬機管理器190設定物理位址管理模組(PAM)110之項目表111來實現。於項目表111,設定有與各虛擬機(VM)之VMID相對應之物理記憶體區域之資訊,由於來自VM之記憶體存取係藉由物理位址管理模組(PAM)110進行位址轉換,因此可減少虛擬機管理器190所造成之開銷。圖23係表示藉由虛擬機管理器190所進行之利用共有記憶體之域間通信之處理概要之圖。圖23之VM0或VM1等之1個虛擬機(VM)係與圖1之1個VMID與作業系統之組配之虛擬機101相對應。
於微處理器1,在不同虛擬機(VM)間進行通信之情況時,利用共有記憶體來進行資訊之授受。共有記憶體區域之設定係與VM用記憶體之設定相同,由域構造體來定義,並於物理位址管理模組(PAM)110設定。於藉由虛擬機管理器190所進行之利用共有記憶體之通信中,由於虛擬機管理器190具有監查由域構造體所定義之VM單位之存取權限之機構,因此可遮斷於域構造體未被許可之不當存取,安全地執行通信。於某虛擬機(VM)動作之應用軟體或作業系統要與在其他虛擬機(VM)動作之應用軟體或作業系統進行通信之情況時,利用共有記憶體存取服務,對於虛擬機管理器190請託對於共有記憶體之存取。虛擬機管理器190之記憶體管理模組係按照作業系統之共有記憶體存取服務之要求,判斷要求源虛擬機(VM)之存取權限,若具有存取權限,則許可VM所需之存取。於未有存取權限之情況時,對於VM送回錯誤。利用圖27至圖31,於後面敘述共有記憶體之VM間通信中之物理位址管理模組(PAM)之項目設定及存取權限判斷、控制流程。
圖24係表示來自複數虛擬機(VM)之對於共有硬體資源之存取之調停處理。其時間序列式地表示圖1所示之輸出入裝置(I/O)130等之共有硬體資源與在1個中央運算處理裝置(CPU)稼動之VM(101)之存取之處理。本實施例中,共有硬體資源係相當於例如對於圖3所示之轉換後備緩衝區(TLB)之位址陣列之存取、或對於存在於微處理器1內之計時器裝置之存取等。若從應用軟體,於2410所示之地點發生對於資源之要求,則發行系統呼叫,控制轉移至作業系統核心,執行2430所示之該系統呼叫處理。於該處理過程中,若於2440執行必要之特權命令,則中央運算處理裝置(CPU)發生例外,並轉移至虛擬機管理器模式(XVS MODE),藉由虛擬機管理器190進行服務。系統呼叫為對於諸如計時器之各虛擬機所共有之實源之存取之情況時,無法從要求源之作業系統存取計時器之物理實體,會變成存取計時器之各作業系統之實例。此稱為代理執行。藉由2460進行代理執行。虛擬機管理器190可藉由系統呼叫之種類或存取之裝置之位址,來得知應代理執行之對象,例如若為計時器,則於作為各該作業系統之實例所確保之區域進行存取,藉由於該處寫入或讀出來進行代理執行。若存取結束,持有必要之結果值而回到例外發行源。此返回處理係可藉由利用一般處理器所準備之從例外之重回命令等來實現。在從虛擬機管理器之代理執行重回之作業系統核心,作為執行由2450所獲得之結果值之系統呼叫之結果值而往2420最終回到系統呼叫發行源之應用軟體。此重回步驟係與通常之作業系統中從系統呼叫重回之程序相同。藉由以上程序,於應用軟體或作業系統中未有程式變更,如通常地處理系統呼叫,維持於資料進行存取之處理,即可實現從複數作業系統對於共有資源之存取。
圖25係表示從複數虛擬機(VM)對於共有輸出入裝置(I/O)之存取調停處理。與圖24之情況相同,其表示共有圖1所示之輸出入裝置(I/O)130等,並時間序列式地表示與其等於複數中央運算處理裝置(CPU)稼動之虛擬機(VM)101之存取處理。於此所示之處理係相當於對於圖18所示之I/O Dev4之存取等。特別於此表示共有輸出入裝置(I/O)具有中斷介面之情況。而且,一併說明從複數虛擬機(VM)對於未共有之排他使用之輸出入裝置(I/O)之存取處理之流程。
I/O處理之順序之前半部係與圖24所示之流程相同,若從應用軟體發行I/O要求之系統呼叫,則作業系統核心接受此,並進行處理。於該過程中,發生對於I/O暫存器之存取。於本發明之中央運算處理裝置(CPU)中,若藉由圖1之物理位址管理模組(PAM)110存取I/O暫存器之區域,則發生例外並轉移至虛擬機管理器模式(XVS MODE),藉由虛擬機管理器進行服務。
於此,由虛擬機管理器所進行之服務係依I/O裝置之類型而分為以下情況。第一型態係I/O裝置由1個作業系統佔有之情況。此時,由於虛擬機管理器190辨識佔有該裝置之作業系統,因此若是來自佔有之作業系統之I/O要求,則直接重回作業系統核心。於作業系統核心,進行通常之I/O操作,回到系統呼叫發行源。第二型態係I/O裝置由複數作業系統共有之情況。此時,由於進行使用裝置之作業系統間之排他控制,因此虛擬機管理器係於共有之區域,針對各共有裝置設置旗標以作為排他控制機構。
如前述,由虛擬機管理器進行代理執行,對於I/O暫存器之存取係置換為對於各作業系統之實例之存取。而且,於上述排他控制機構中,對於此裝置設定本身之虛擬機管理器在使用中之旗標。於此,此旗標既已豎起(ON)之情況時,由於該裝置為使用中,因此對於作業系統核心送回錯誤。對於作業系統核心之重回及從作業系統核心對於應用軟體之重回係如前述。
於I/O處理中,除了上述處理以外,從接受到要求之I/O裝置,加入該處理之結束中斷。如同中斷處理之例,中斷係由中斷控制器(INTC)107來控制。作為第一型態係於I/O裝置由1個作業系統佔有之情況時,藉由中斷控制器(INTC)107之分配,佔有該裝置之作業系統之虛擬機管理器190領取中斷。虛擬機管理器190係利用虛擬中斷機構,來對於本身所管理之作業系統聯絡I/O結束中斷。於接受到中斷之作業系統核心,進行通常之I/O結束操作,並回到等待I/O結束之系統呼叫發行源。作為第二型態係於I/O裝置由複數作業系統共有之情況時,藉由中斷控制器(INTC)107之分配,對於所有中央運算處理裝置(CPU)送出中斷,成為最先反應之中央運算處理裝置(CPU)進行處理之自動分配模式。領取到該中斷之中央運算處理裝置(CPU)之虛擬機管理器190係參考排他控制機構,檢測何個虛擬機管理器190正在使用該裝置。對於檢測到之虛擬機管理器190所管理之作業系統,與上述同樣地利用虛擬中斷機構來聯絡I/O結束中斷。
於接受到中斷之作業系統核心,進行通常之I/O結束操作,並回到等待I/O結束之系統呼叫發行源。於I/O裝置由複數作業系統共有之情況時,上述說明中係有將自動分配模式下領取到之結束中斷交付正確之作業系統之處理,但亦可由中斷控制器(INTC)107將來自裝置之中斷直接送至對應之中央運算處理裝置(CPU),以使上述I/O裝置由複數作業系統共有之情況下之處理與I/O裝置由1個作業系統佔有之情況成為相同處理。具體而言,對於來自內建周邊裝置之中斷,不設為自動分配模式而設為固定分配模式,於虛擬機管理器使用該裝置時,可設定分配對象之中央運算處理裝置(CPU)。於共有裝置之執行中,存在進行排他控制之處理。於設定共有裝置在使用中之處理中,將對於該中斷信號之分配對象設定為要求該裝置使用之虛擬機管理器190之中央運算處理裝置(CPU)。若裝置之使用結束,於解除排他控制之處理中,將中斷控制器(INTC)107再設定為自動分配模式。
接著,說明有關由虛擬機管理器所設定之虛擬機(VM)間之通信控制之例。首先,於圖26及圖27,敘述有關VM間通信用之共有記憶體之存取權限之設定方法。
於圖26例示使用虛擬機管理器之VM間通信時之架構。圖26之處理係圖1之虛擬機管理器190操作物理位址管理模組(PAM)110來執行。以下,VM0、VM1、VM2係與圖1之101相對應之VMID所示之虛擬機。虛擬機管理器190係設定VM(VM0、VM1、VM2)使用於通信之共有記憶體區域2450。此時,使用物理位址管理模組(PAM)110內之設定項目表111,利用如圖9所說明之項目表資料,對於分配給各虛擬機VM0、VM1、VM2之共有記憶體區域2460、2462、2464,設定來自其他虛擬機VM之存取權限。總言之,共有記憶體區域2460係被保證由虛擬機VM0來利用,但由虛擬機VM1、VM2所進行之利用係依設定項目表111之設定內容而可變。藉此,將共有記憶體區域邏輯地分割(2460、2462、2464),實現遮斷違反設定之存取權限之存取,亦即遮斷未由虛擬機管理器許可知通信。由於在VM間通信時,成為對於所有通信藉由物理位址管理模組(PAM)110實施強制存取控制之架構,因此實現將物理位址管理模組(PAM)110作為參考監視器之存取控制。
物理位址管理模組(PAM)110之設定項目表111可僅由虛擬機管理器190來設定。虛擬機管理器190以虛擬機管理器模式(XVS MODE)動作之情況時,會防止於特權模式下動作之作業系統或於使用者模式下動作之使用者程式(應用程式)等於虛擬機(VM)上動作之軟體所造成之物理位址管理模組(PAM)110之設定項目表111內之位址範圍或存取權限之不當重寫。
而且,於不具有虛擬機管理器模式(XVS MODE)之硬體中,虛擬機管理器在特權模式下動作,於此情況下亦防止來自在使用者模式下動作之應用程式之不當重寫,並且於作業系統正常地動作之範圍內,防止物理位址管理模組(PAM)110之設定項目表之不當重寫。可作為VM間通信用共有記憶體來使用之記憶體,有位於可藉由物理位址管理模組(PAM)110進行存取控制之位置之微處理器1內部之記憶體或SDRAM(Synchronous Dynamic Random Access(同步動態隨機存取)記憶體(MEM)120等作為主記憶裝置使用之記憶體等。於圖1中,記憶體120係於微處理器1製成單晶片,但亦可為不同晶片。
圖27係物理位址管理模組(PAM)110之設定項目表111內之SRC欄位/SMSK欄位/PID欄位/PMSK欄位/PR欄位/PW欄位之設定例。於ADDR欄位及AMSK欄位,指定作為VM間通信用之共有記憶體所分配之位址範圍。設定為ADDR=H' AFF0、AMSK=H' FFF0(H'意味16進位)之情況時,係宣言H' AFF0_0000至H' AFFF_FFFF之1百萬位元組之區域,對於物理位址管理模組(PAM)110輸入此設定值以外之addr信號之情況時,按照圖10之存取許可判斷運算法,不許可對於此區域之存取。於SRC欄位(2500)及SMSK欄位(2502),設定許可VM間通信之匯流排主控裝置。SRC=H' 03、SMSK=B' 1(B'意味2進位)之情況時,按照圖10之存取許可判斷運算法,僅於輸入於物理位址管理模組(PAM)110之src信號為H' 03之情況下許可存取。SRC=H' 00、SMSK=B' 0之情況時,按照圖10之存取許可判斷運算法,任意之src信號值均許可存取。於PID欄位(2504)及PMSK欄位(2506)設定許可VM間通信之VM識別號碼(VMID)。PID=H' 02、PMSK=B' 1之情況時,按照圖10之存取許可判斷運算法,僅於pid信號為H' 02之情況下許可存取。PID=H' 00、PMSK=B' 0之情況時,按照圖10之存取許可判斷運算法,任意之pid信號值均許可存取。
於PR欄位(2508)設定讀出權限,於PW欄位(2510)設定寫入權限。PR=B' 1、PW=B' 1之情況時為讀出許可/寫入許可,PR=B' 1、PW=B' 0之情況時僅許可讀出,PR=B' 0、PW=B' 0之情況時不可存取。
藉由前述組合,來實現物理位址管理模組(PAM)110對於設定項目表111之存取權限之靈活設定。如圖27(1)設定有項目之情況時,成為無存取限制之狀態,可從任何虛擬機(VM)讀出、寫入。於圖27(2)及(3)所示之項目設定中,使ADDR/AMSK為相同設定值之情況時,成為可從src=H' 03上之虛擬機(VM)及pid=H' 02之虛擬機(VM)讀出、寫入之區域。於圖27(2)及(5)所示之項目設定中,使ADDR/AMSK為相同設定值之情況時,成為可從src=H' 03上之虛擬機(VM)讀出、寫入,並可從src=H' 1B且pid=H' 77之虛擬機(VM)讀出之區域。對於某ADDR/AMSK設定僅設定圖27(4)所示之項目之情況時,該區域成為src=H' 05且pid=H' 0A之虛擬機(VM)專用之區域。
如此,藉由對於共有記憶體設定存取權限,於該共有記憶體上或其間,製成訊息傳送用之佇列,或使用共有記憶體來進行資料複製,可實現能藉由物理位址管理模組(PAM)110進行強制存取控制之通信。藉此,提高通信路之可靠性及安全性,以便實現於虛擬機(VM)上動作之作業系統之可靠性及安全性之提升。
接著,參考圖28至圖30,來說明有關對於VM間通信用共有記憶體之存取時之控制流程。圖28係對於VM間通信用共有記憶體之寫入時之控制流程。圖28之處理係圖1之虛擬機管理器190操作物理位址管理模組(PAM)110來執行。以下,虛擬機(VM)係與圖1之101相對應之VMID所示之1個虛擬機。任意虛擬機(VM)為了VM間通信而欲對於共有記憶體執行寫入之情況時(步驟2602),對於虛擬機管理器發行排他存取權要求(鎖定要求)(步驟2604)。若虛擬機管理器190接收到來自虛擬機(VM)之鎖定要求,則判斷是否已由其他虛擬機(VM)加以鎖定(步驟2606)。其他虛擬機(VM)鎖定中之情況時,等待至鎖定解除。其他虛擬機(VM)未鎖定之情況時,對於要求源虛擬機(VM)許可鎖定(步驟2608)。被許可鎖定之要求源虛擬機(VM)係發行寫入指令(步驟2610)。物理位址管理模組(PAM)110係從匯流排BUS輸入auth信號、opc信號、src信號、pid信號、addr信號,按照圖10之存取許可判斷流程,藉由虛擬機(VM)之要求與項目表之各欄位設定值之一致、不一致,來判斷是否有寫入權限(步驟2612)。判斷之結果為有寫入權限之情況時,執行對於共有記憶體之寫入(步驟2614)。若寫入結束,要求源虛擬機(VM)解除鎖定並結束處理。判斷結果為無存取權限之情況時,拒絕存取,送回錯誤(步驟2640),解除鎖定並結束處理(步驟2616、2618)。
為了實現圖28所示之功能,虛擬機管理器係具備對於虛擬機(VM)賦予排他存取權之功能(許可鎖定)及解除之功能(解除鎖定),及記憶、判斷是否對於虛擬機(VM)賦予排他存取權之功能,以避免對於共有記憶體之存取衝突。
而且,若由某虛擬機(VM)長時間佔有對於共有記憶體之存取權,則未能執行來自其他VM之通信,無法保障QoS(Quality of Service:服務品質),可能導致系統全體之可靠性降低。為了避免此,虛擬機管理器係具備強制解除對於虛擬機(VM)所賦予之鎖定權之功能。由虛擬機管理器所進行之強制鎖定解除係於步驟2616,在經過一定時間(時間暫停)之情況等實施。錯誤發行(步驟2640)後之鎖定解除(步驟2616)為要求源虛擬機(VM)所進行之鎖定解除或虛擬機管理器所進行之強制鎖定解除之任一均可。
於步驟2602,考慮到其他虛擬機(VM)對於任意VM要求寫入。為了實現此功能,虛擬機管理器係具備對於其他VM通知對於VM間通信用共有記憶體之寫入要求之中斷。藉由虛擬機管理器對於該要求對象VM發行寫入要求中斷,來通知寫入要求。接收到寫入要求中斷之虛擬機(VM)係對於虛擬機管理器發行鎖定要求,並進行步驟2604以後之處理。
圖29係VM間通信用共有記憶體之讀出時之控制流程。圖29之處理係圖1之虛擬機管理器190操作物理位址管理模組(PAM)110來執行。以下,VM係與圖1之101相對應之VMID所示之1個虛擬機。任意虛擬機(VM)為了VM間通信而欲對於共有記憶體執行讀出之情況時(步驟2702),對於虛擬機管理器發行排他存取權要求(鎖定要求)(步驟2704)。若虛擬機管理器接收到來自虛擬機(VM)之鎖定要求,則判斷是否已由其他VM加以鎖定(步驟2706)。其他虛擬機(VM)為鎖定中之情況時,等待至鎖定解除。其他虛擬機(VM)未鎖定之情況時,對於要求源VM許可鎖定(步驟2708)。被許可鎖定之要求源VM係發行讀出指令(步驟2710)。物理位址管理模組(PAM)110係從匯流排輸入auth信號、opc信號、src信號、pid信號、addr信號,按照圖10之存取許可判斷流程,藉由虛擬機(VM)之要求與項目表之各欄位設定值之一致、不一致,來判斷是否有讀出權限(步驟2712)。判斷之結果為有讀出權限之情況時,執行對於共有記憶體之讀出(步驟2714)。若讀出結束,要求源VM解除鎖定並結束處理。判斷結果為無存取權限之情況時,拒絕存取,送回錯誤(步驟2740),解除鎖定並結束處理(步驟2716、2718)。
於步驟2702,於某虛擬機(VM)對於共有記憶體之寫入結束後,會有欲對於通信對象VM通知已成為可讀出之狀態之情況等其他VM對於任意VM要求讀出之情況。為了實現此功能,虛擬機管理器係具備對於其他VM通知對於VM間通信用共有記憶體之讀出要求之中斷。藉由虛擬機管理器對於其要求對象VM發行讀出要求中斷,來通知讀出要求。接收到讀出要求中斷之虛擬機(VM)係對於虛擬機管理器發行鎖定要求,進行步驟2704以後之處理。
鎖定控制係使用先前於圖28之說明部分敘述之虛擬機管理器之鎖定功能。錯誤發行(步驟2740)後之鎖定解除(步驟2716)為要求源VM所進行之鎖定解除或虛擬機管理器所進行之強制鎖定解除之任一均可。
圖30係虛擬機管理器代為執行從某虛擬機(VM)之通信用共有記憶體對於其他VM之通信用共有記憶體之資料複製之情況下之控制流程。圖30之處理係圖1之虛擬機管理器190操作物理位址管理模組(PAM)110來執行。以下,虛擬機(VM)係與圖1之101相對應之VMID所示之1個虛擬機。此控制係使用於在物理位址管理模組(PAM)內之設定項目表,對於某共有記憶體區域範圍(ADDR/AMSK設定),僅設定有例如圖27(4)所示之項目,亦即共有記憶體區域設定作為特定VM專用區域之情況。此特定VM專用區域係對於不信賴在其他VM上動作之作業系統、應用程式等軟體,不許可來自其他VM之干擾之需要高可靠性、安全性之虛擬機(VM)來設定。由於虛擬機管理器190係於虛擬機管理器模式(XVS MODE)下動作,因此不會受到作業系統或應用程式等之錯誤或感染電腦病毒、惡意軟體之情況之影響等,比在VM上動作中之軟體更高可靠性、高安全性。故,由虛擬機管理器190所進行之資料複製係比虛擬機(VM)上之軟體所進行之資料複製,可獲得更高可靠性、安全性。若有發行從某虛擬機(VM)對於其他VM之資料複製要求(步驟2802),則虛擬機管理器發行鎖定要求(步驟2804)。虛擬機管理器係判斷是否已由其他虛擬機(VM)加以鎖定(步驟2806),於其他VM已鎖定之情況下,等待鎖定解除。其他虛擬機(VM)未鎖定之情況時,執行將要求源VM所指定之資料對於接收對象VM之共有記憶體複製之處理(步驟2808)。物理位址管理模組(PAM)110係從匯流排輸入auth信號、opc信號、src信號、pid信號、addr信號,按照圖10之存取許可判斷流程,判斷要求源VM之要求是否與項目表之各欄位設定值一致,是否有接收對象共有記憶體之寫入權限(步驟2810)。判斷之結果為無寫入權限之情況時,執行錯誤處理(步驟2840),解除鎖定(步驟2828、2830)並結束處理。判斷之結果為有寫入權限之情況時,對於接收對象VM之共有記憶體執行資料複製(步驟2812)。資料複製結束後,虛擬機管理器係將物理位址管理模組(PAM)110內之接收對象VM之共有記憶體用項目之設定,設定為接收對象VM專用且不可寫入(PW=B' 0)(步驟2814)。藉此,減低機密資料等重要資訊被無關係之VM參考或重寫之危險性。此設定之重寫係僅適用於複製有資料之區域,或接收對象VM之所有共有記憶體區域之任一即可。
若物理位址管理模組(PAM)110內之接收對象VM之共有記憶體用項目設定結束,虛擬機管理器係將鎖定許可賦予接收對象VM(步驟2816),對於接收對象VM發行讀出要求中斷(步驟2818)。接收對象VM發行讀出指令(步驟2820)。由物理位址管理模組(PAM)110所進行判斷結果(步驟2822)為對於複製有資料之區域之寫入等未被許可之存取之情況時,執行錯誤處理(步驟2840)。若為許可之讀出,等待來自接收對象VM之鎖定解除要求或等待超時(步驟2824),對於在步驟2814已進行過重寫之項目,執行重寫為重寫前之設定之處理(步驟2826)。其後,對於要求源VM通知資料複製結束(步驟2827),解除鎖定(步驟2828),結束處理。鎖定控制係使用於先前圖28之說明部分敘述之虛擬機管理器之鎖定功能。
於圖31、圖32中,說明有關來自虛擬機管理器之例外、中斷要求之分配方式。3110係與圖1之101相對應之1個作業系統。於安裝有虛擬機管理器190之多核心系統中,按照圖31來處理中斷及例外。中斷或例外係有從外部通知中央運算處理裝置(CPU)者、及從中央運算處理裝置(CPU)內部通知者。來自外部之通知係不論要因為何,均經由中斷控制器(INTC)107,並從INTC 107通知中央運算處理裝置(CPU)。
圖15為中斷分配控制機構。於虛擬機管理器190,設定圖15之PRIORITY內之遮罩暫存器。輸入之中斷信號係送至由遮罩指定有去處之1個或複數中央運算處理裝置(CPU)。設定此遮罩之動作係於計算機起動時,虛擬機管理器被起動並進行初始化之時點,該情況下,可指定因應計算機系統之結構所預先設定之中斷之傳輸路徑。而且,即使於應用程式之動作中,控制移至虛擬機管理器之時點,亦可進行此設定,亦可因應執行狀態或中斷要因,動態地變更中斷之傳輸去處。虛擬機管理器190係按照圖32之中斷要因種類別及分配模式之對應表,進行上述遮罩暫存器之設定。3200係將中斷種類別與分配模式賦予對應之對應表。此對應表係於虛擬機管理器190之計算機系統之初始化時設定。藉此,例如來自進行動態圖像處理之硬體裝置之中斷係作為「來自內建周邊之佔有裝置之中斷」來處理,成為固定分配模式。若於圖32,從動態圖像處理裝置發生中斷,並進入中斷控制器(INTC)107,則對於藉由中斷遮罩暫存器3231之遮罩來因應其要因而預先設定之中央運算處理裝置(CPU)(該CPU直接控制該動態圖像處理硬體)100,傳送中斷信號3250。另一方面,若是來自由複數中央運算處理裝置(CPU)所共有之例如硬碟裝置之共有裝置之中斷,則成為自動分配模式,未施加有遮罩,對於所有中央運算處理裝置(CPU)傳送中斷信號,最先受理之中央運算處理裝置(CPU)送回中斷受理信號3260,處理該中斷。若對於中央運算處理裝置(CPU)通知中斷及例外,則參考圖31之例外向量表,因應要因來進行處理。至此係與一般中央運算處理裝置(CPU)及其控制系統之處理相同。
其後,於具有虛擬機管理器190之本發明之多核心系統中,藉由圖31之架構而如下處理。要因為TLB失誤或處理器之一般例外者,從中央運算處理裝置(CPU)內部通知,此係藉由虛擬機管理器直接分路為作業系統等發生源之程式來傳輸。之後,藉由作業系統或控制程式所個別具備之中斷/例外處理機構來處理。要因為來自外部之中斷之情況時,利用以下分類來處理。第一係來自多核心之其他中央運算處理裝置(CPU)之CPU間中斷之情況時,藉由圖15及圖32之中斷分配機構之中斷控制器(INTC)107,適當之中央運算處理裝置(CPU)及虛擬機管理器領取該中斷。由圖31之「CPU間中斷處置器」來處理,設定例外碼及中斷暫存器,產生狀似來自領取之中央運算處理裝置(CPU)之內建模組之中斷般之「虛擬中斷」。傳輸至領取此虛擬中斷之虛擬機管理器190所管理之作業系統,藉此進行與上述相同之處理。第二係來自佔有裝置之中斷之情況,與上面同樣藉由中斷控制器,由於該中斷係由應處理其之中央運算處理裝置(CPU)及虛擬機管理器領取,因此藉由傳輸至領取該中斷之虛擬機管理器所管理之作業系統,以與要因為TLB失誤或處理器之一般例外之情況進行相同之處理。第三係來自如直接記憶體存取機構等之各通道之佔有裝置之中斷之情況,與第二情況相同,藉由中斷控制器107,該中斷係由應處理其之中央運算處理裝置(CPU)及虛擬機管理器領取。藉由傳輸至領取該中斷之虛擬機管理器所管理之作業系統,以與要因為TLB失誤或處理器之一般例外之情況進行相同之處理。第四係來自物理位址管理模組(PAM)110之保護違反之中斷之情況,與上面同樣藉由中斷控制器107,該中斷係由應處理其之中央運算處理裝置(CPU)及虛擬機管理器190領取。該中斷之情況下,由於在虛擬機管理器190進行共有記憶體存取之控制,因此產生用以通知操作對象之中央運算處理裝置(CPU)之CPU間中斷。產生之CPU間中斷係送至中斷控制器(INTC)107,於對象中央運算處理裝置(CPU)及虛擬機管理器作為上述第二情況來處理。
圖33係表示對於本發明之微處理器1,由於外部或內部要求而輸入有重設信號之情況之動作。3300之韌體係圖1之虛擬機管理器190內之控制程式,3310為101之1個VMID所特定出之作業系統稼動之環境。於此微處理器1輸入有重設信號3340。重設信號為電源重新開啟之情況時,於此微處理器之晶片全體藉由重設信號3331而施行重設,進行通常之重設處理。重設信號為功能表重設之情況時,該信號由圖15之RSTTOIRQ來選擇,此暫存器為"1",作為中斷要因處理,作為重設中斷信號3332發出,成為圖15之PRIORITY之中斷分配之對象。重設中斷信號3332係按照在圖32所示之中斷控制器(INTC)107之分配模式選擇而成為自動分配模式,作為3333送至所有中央運算處理裝置(CPU),最先受理之中央運算處理裝置(CPU)係藉由該處之虛擬機管理器190處理。其處理係以3300所示之重設中斷處理流程來進行,若是對於物理中央運算處理裝置(CPU)之重設(步驟3301),輸出對於對應之物理中央運算處理裝置(CPU)之重設信號(步驟3302)。此係藉由與對象之中央運算處理裝置(CPU)相對應而將RSTTOIRQ設定為"0",從虛擬機管理器再度發行功能表重設來進行。對於虛擬機之重設之情況時,視為虛擬機管理器內部發生虛擬之重設中斷而處理。領取到中斷之虛擬機管理器所管理(位於自域)之虛擬機之重設(步驟3303)之情況時,使屬於該虛擬機管理器之管理下之1個或複數虛擬機成為初始狀態,作為軟體處理而強制轉移(步驟3304)。領取到中斷之虛擬機管理器不管理(位於他域)之虛擬機之情況(步驟3305)時,將此虛擬之重設中斷作為「虛擬中斷」,並通知管理應處理其之虛擬機之中央運算處理裝置(CPU)。藉由中斷處理程序,按照中斷控制器(INTC)107之分配模式選擇,以固定分配模式對於對象之中央運算處理裝置(CPU)傳送重設虛擬中斷,藉由管理該中央運算處理裝置(CPU)之虛擬機管理器,使1個或複數虛擬機成為初始狀態,並作為軟體處理而強制轉移。
以上根據實施型態,具體說明由本發明者所實現之發明,但本發明不限定於其,當然可於不脫離其要旨之範圍內進行各種變更。
例如亦可對於圖1之例,組合以往之中央運算處理裝置與物理位址管理模組(PAM)110來構成微處理器(第一變形例)。此時,前述虛擬機管理器190及作業系統均以特權模式運行。但於此情況下,複數動作域間之相互影響之減輕之效果會降低。而且,對於圖1之例,亦可組合具有圖16、圖17之方式之中央運算處理裝置(CPU)及物理位址管理模組(PAM)110(第二變形例)。此情況下,複數動作域間之相互影響之減輕之效果亦會降低。圖16係與圖3所示之例相對應,圖17係與圖5相對應。圖16中,稱為STID之暫存器部分相當於圖3之VMID暫存器,相對於VMID暫存器為8位元,STID為1位元之暫存器。而且,於圖17中,稱為NS之暫存器部分相當於圖5之VMID記憶體,相對於VMID記憶體為8位元,NS為1位元。於具有上述圖16、圖17所示之硬體之第二變形例之微處理器中,藉由虛擬機管理器進行其控制,亦可限定地實現本發明所實施之方式。
於前述第一變形例中,從圖9之表項目刪除PID欄位、PMSK欄位即成為設定暫存器表。於第一變形例中,採用圖10中刪除步驟1002之pid信號之判斷後之運算法即可。於第一變形例中,圖11中於比較電路AUTHCOMP之存取權限信號之檢查不同。具體而言,圖11中,對於PAMENTRY_1~16之存取必須來自於虛擬機管理器模式(XVS MODE)下動作之程式,於第一變形例中則必須來自於特權模式下動作之程式。於第一變形例中,關於中央運算處理裝置(CPU)之中斷、例外之種類、及其等發生時之變遷去處位址之方式係與以往之中央運算處理裝置(CPU)相同。而且,於第一變形例中,虛擬機管理器軟體宜在特權模式下與作業系統進行協調動作。
1...微處理器
101...虛擬機(VM0,VM1,VM2)
100,102,103...中央運算處理裝置(CPU,CPU 0,CPU 1,CPU 2)
107...中斷控制器(INTC)
110...物理位址管理模組(PAM)
111...物理位址管理模組項目表(PAMENTRY)
120...記憶體(MEM)
130,131...輸出入電路(I/O)
140...虛擬機識別符暫存器(XVSVMID.VMID)
150...延伸CPU動作模式暫存器(XVSCR.MD)
151...CPU動作模式暫存器(SR.MD)
160...虛擬機識別符輸出模式暫存器(XVSCR.PIDSEL)
170...延伸例外變遷去處位址暫存器(XVR.XVR)
180...延伸例外碼暫存器(XVSEVT.CODE)
190...虛擬機管理器
VMID...虛擬機識別符
ASID...位址空間識別符
VPN...虛擬頁號
PPN...物理頁號
SZ...頁大小
SH...共有旗標
C...可快取旗標
PR...保護旗標
VMID...虛擬機識別符
LW0~7...快取資料
Address(V)...虛擬位址
Address(P)...物理位址
addr...LSI內部匯流排存取位址
data...LSI內部匯流排存取資料
pid...LSI內部匯流排pid信號
ADDR...物理位址管理模組項目表位址欄位
AMSK...物理位址管理模組項目表位址遮罩欄位
SRC...物理位址管理模組項目表來源識別符欄位
SMSK...物理位址管理模組項目表來源識別符遮罩欄位
PID...物理位址管理模組項目表pid信號值欄位
PMSK...物理位址管理模組項目表pid信號值遮罩欄位
OFFSET...物理位址管理模組項目表偏移位址欄位PR...物理位址管理模組項目表讀出許可位元欄位
PW...物理位址管理模組項目表寫入許可位元欄位
ERRINT...匯流排存取權限違反通知中斷信號
AUTHCOMP...位址/存取權限信號解碼/匯流排存取分配電路部
COMP...通常匯流排存取權限判斷電路部
BLOCKADE...匯流排存取遮斷電路部
OFFSET...匯流排存取位址偏移加算電路部
PAMENTRY_1~16...物理位址管理模組項目表
pamentry_deny...物理位址管理模組項目表存取時匯流排存取權限違反通知內部信號
deny...通常匯流排存取時匯流排存取權限違反通知內部信號
hitentry...存取許可判斷項目通知內部信號
RSTTOIRQ...LSI內部重設通知方法設定暫存器
PRIORITY...中斷優先順位判斷電路部
NMI...不可遮罩式中斷信號
External IRQ...外部中斷信號
Internal IRQ...內部中斷信號
Internal/External RESET...內部/外部重設通知信號
RESET...重設信號
STID...安全模式識別符
ASID...位址空間識別符
VA...虛擬位址
V...有效位元
PA...物理位址
ATTR...屬性欄位
NS...安全模式識別符
Tag...標籤位址
U...壞位元
V...有效位元
Data...快取資料
UserProg....使用者程式(應用程式)
OS0,OS1,OS2...作業系統程式
Offset...偏移位址
圖1係全體性地表示有關本發明之一例之微處理器之區塊圖。
圖2為XVS設定用系統暫存器(XVSCR、XVSVMID、XVR、XVSEVT)之說明圖。
圖3係追加有VMID欄位及CPU權限欄位之TLB項目之說明圖。
圖4係例示藉由TLB項目VMID欄位及CPU權限欄位之存取權限判斷運算法之流程圖。
圖5係追加有VMID欄位之快取項目之說明圖。
圖6係例示快取項目VMID欄位之更新運算法之流程圖。
圖7係表示藉由快取項目VMID欄位之命中判斷運算法之流程圖。
圖8係存取屬性資訊輸出模式(VMID8、VMID4+ASID4、ASID8)之說明圖。
圖9為PAM項目之架構說明圖。
圖10係例示藉由PAM之存取許可判斷運算法(通常存取通過、不通過、偏移加算)之流程圖。
圖11為PAM之區塊圖。
圖12係PAM所含之比較電路COMP之邏輯電路圖。
圖13係PAM所含之偏移加算電路OFFSET之邏輯電路圖。
圖14係例示用以變遷為虛擬機管理器模式(XVS MODE)之例外要因之說明圖。
圖15係與中斷分配及重設信號中斷化相對應之中斷控制器之區塊圖。
圖16係追加有STID欄位之TLB項目之說明圖。
圖17係追加有NS欄位之快取項目之說明圖。
圖18係將虛擬機管理器之功能(記憶體、I/O分割、CPU共有)作為主體來掌握之微處理器之功能說明圖。
圖19係表示分配給各VM之硬體(記憶體、I/O、CPU)資源之指定及管理型態之VM定義檔之說明圖。
圖20係明示虛擬機管理器起動時之功能分擔及叫出關係之流程圖。
圖21係明示虛擬機管理器之模組結構圖及通常動作時之功能分擔及叫出關係之區塊圖。
圖22係表示針對來自複數VM之記憶體存取如何於PAM及虛擬機管理器模式(XVS MODE)下實現偏移加算、權限檢查之說明圖。
圖23係表示於複數VM間如何於PAM及虛擬機管理器模式(XVS MODE)下實現經由記憶體之通信之說明圖。
圖24係表示針對複數VM所共有之CPU硬體資源之存取,由虛擬機管理器捕捉並代理執行(模擬)時之處理之流程之說明圖。
圖25係針對分割為複數VM之I/O之著重於處理起動至結束之順序之順序圖。
圖26係表示VM間通信時之架構之區塊圖。
圖27係表示PAM模組內之項目表之設定例之說明圖。
圖28為對於VM間通信用共有記憶體之寫入時之控制流程圖。
圖29為對於VM間通信用共有記憶體之讀出時之控制流程圖。
圖30係VM間通信時之藉由虛擬機管理器之資料複製之控制流程圖。
圖31係表示藉由虛擬機管理器之處理流程及按照例外事件之例外處理選擇之表之說明圖。
圖32係例示中斷分配模式之設定規則之說明圖。
圖33係例示重設選擇機構及處理流程之說明圖。
1...微處理器
100,102,103...中央運算處理裝置(CPU 0,CPU 1,CPU 2)
101...虛擬機
104...執行部(EXEC)
105...記憶體管理單元(MMU)
106...快取記憶體(Cache)
107...中斷控制器(INTC)
110...物理位址管理模組(PAM)
111...物理位址管理模組項目表(PAMENTRY
113,114,115...檢查閘極電路(CHCGT)
120...記憶體(MEM)
121...ROM
130,131...輸出入電路(I/O)
140...虛擬機識別符暫存器(XVSVMID.VMID)
150...延伸CPU動作模式暫存器(XVSCR.MD)
151...CPU動作模式暫存器(SR.MD)
160...虛擬機識別符輸出模式暫存器(XVSCR.PIDSEL)
170...延伸例外變遷去處位址暫存器(XVR.XVR)
180...延伸例外碼暫存器(XVSEVT.CODE)
190...虛擬機管理器
1831...記憶體控制器(MC)
BUS...內部匯流排
OS0,OS1,OS255...作業系統
Priv Mode...特權模式(第二動作模式)
User Mode...使用者模式(第一動作模式)
User Prog...使用者程式
XVS Mode...虛擬機管理器模式(第三動作模式)
VMID...虛擬機ID

Claims (15)

  1. 一種資料處理器,其包含:中央運算處理裝置,其按照設定於模式暫存器之資訊,而選擇性地構成於不同作業系統之控制下執行應用程式之複數虛擬機及進行前述複數虛擬機控制之虛擬機管理器,其中前述模式暫存器包含虛擬機ID暫存器、CPU動作模式暫存器及延伸CPU動作模式暫存器;資源存取管理模組,其管理對於前述複數虛擬機可利用之硬體資源之存取,前述資源存取管理模組包含控制暫存器及比較電路;其中,前述控制暫存器儲存讀出保護資訊及寫入保護資訊以讓各虛擬機存取硬體資源;及內部匯流排(BUS),其連接前述中央運算處理裝置及前述資源存取管理模組;其中,前述資源存取管理模組從前述中央運算處理裝置經由前述內部匯流排接受,作為輸入,設定在前述模式暫存器之資訊、及前述中央運算處理裝置之對於前述硬體資源之存取控制資訊;前述存取控制資訊包含前述虛擬機之識別號碼,前述虛擬機係要求對於前述硬體資源之前述存取;前述資源存取管理模組利用比較電路比較前述資訊,藉此隨著設定在包含於前述資源存取管理模組之前述控制暫存器內之資訊來輸入,及依據前述存取控制資訊控制存取前述硬體資源;且 前述資源存取管理模組更包含另一比較電路,且前述資源存取管理模組設置為利用前述另一比較電路來控制存取前述控制暫存器。
  2. 如請求項1之資料處理器,其中前述控制暫存器設置使前述虛擬機管理器可變更其設定資訊。
  3. 如請求項2之資料處理器,其中回應接收中斷信號,前述中央運算處理裝置構成前述虛擬機管理器並判斷中斷要因;若辨別前述中斷要因為第一中斷要因,則前述中央運算處理裝置執行前述作業系統之命令以回應前述中斷;若辨別前述中斷要因為第二中斷要因,則前述虛擬機管理器執行程序以回應前述中斷。
  4. 如請求項1之資料處理器,其中前述虛擬機ID暫存器,其特定出前述複數虛擬機內之1個虛擬機;前述CPU動作模式暫存器,其表示應用程式是否可執行及作業系統是否可執行於前述複數虛擬機中;及前述延伸CPU動作模式暫存器,其表示是否構成虛擬機管理器或構成虛擬機。
  5. 如請求項4之資料處理器,其中包含複數個前述中央運算處理裝置;且於前述中央運算處理裝置所輸出之對於前述硬體資源之存取控制資訊中,包含有問題之前述中央運算處理裝置之識別碼資訊。
  6. 如請求項5之資料處理器,其中前述控制暫存器包含暫存器區域,其用以儲存中央運算處理裝置之識別碼資訊,前述中央運算處理裝置構成被許可存取作為前述硬體資源之記憶體區域之虛擬機。
  7. 如請求項6之資料處理器,其中前述控制暫存器包含暫存器區域,其用以儲存對於作為前述硬體資源之前述記憶體區域之前頭位址之前述虛擬機固有之記憶體區域之位址偏移資訊。
  8. 如請求項1之資料處理器,其中進一步包含:連接於前述資源存取管理模組之作為硬體資源之記憶體及輸出入電路;且前述資料處理器包含於1個半導體晶片。
  9. 如請求項1之資料處理器,其中前述資源存取管理模組設置為依據存取權限信號之狀態來控制對前述控制暫存器之存取。
  10. 一種資料處理器,其包含:複數中央運算處理裝置,其可按照經設定之動作模式,於不同作業系統之控制下執行程式,各前述中央運算處理裝置包含虛擬機ID暫存器、CPU動作模式暫存器及延伸CPU動作模式暫存器;資源存取管理模組,其管理對於前述複數中央運算處理裝置可利用之硬體資源之存取,前述資源存取管理模組包含控制暫存器及比較電路;其中,前述控制暫存器儲存讀出保護資訊及寫入保護 資訊以讓各虛擬機存取硬體資源;及內部匯流排(BUS),其連接前述複數中央運算處理裝置及前述資源存取管理模組;其中,前述資源存取管理模組從至少一前述中央運算處理裝置經由前述內部匯流排接受,作為輸入,對應前述經設定之動作模式之資訊、及前述中央運算處理裝置之對於前述硬體資源之存取控制資訊;前述存取控制資訊包含前述虛擬機之識別號碼,前述虛擬機係要求對於前述硬體資源之前述存取;前述資源存取管理模組利用比較電路前述資訊,藉此隨著設定在包含於前述資源存取管理模組之前述控制暫存器內之資訊來輸入,及依據前述存取控制資訊許可存取前述硬體資源;且前述資源存取管理模組更包含另一比較電路,且前述資源存取管理模組設置為利用前述另一比較電路來控制存取前述控制暫存器。
  11. 如請求項10之資料處理器,其中作為前述動作模式,包含第一動作模式、第二動作模式及第三動作模式;在第一動作模式係前述複數中央運算處理裝置按照應用程式來執行命令;在第二動作模式係前述複數中央運算處理裝置按照作業系統來執行命令;且在第三動作模式係控制前述第一動作模式之命令執行及前述第二動作模式之命令執行。
  12. 如請求項11之資料處理器,其中前述控制暫存器可於前述第三模式變更。
  13. 如請求項12之資料處理器,其中當前述中央運算處理裝置接收中斷信號,則轉變為前述第三模式並判斷中斷要因;若辨別前述中斷要因為第一中斷要因,則前述中央運算處理裝置轉變為前述第二模式,且執行前述作業系統之命令,回應前述中斷;若辨別前述中斷要因為第二中斷要因,則前述中央運算處理裝置執行前述管理程式之命令,以執行程序回應前述中斷。
  14. 如請求項10之資料處理器,其中進一步包含:連接於前述資源存取管理模組之作為硬體資源之記憶體及輸出入電路;且前述資料處理器包含於1個半導體晶片。
  15. 如請求項10之資料處理器,其中前述資源存取管理模組設置為依據存取權限信號之狀態來控制對前述控制暫存器之存取。
TW96137873A 2006-10-10 2007-10-09 Data processor TWI470552B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006276066A JP4756603B2 (ja) 2006-10-10 2006-10-10 データプロセッサ

Publications (2)

Publication Number Publication Date
TW200834420A TW200834420A (en) 2008-08-16
TWI470552B true TWI470552B (zh) 2015-01-21

Family

ID=39275939

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96137873A TWI470552B (zh) 2006-10-10 2007-10-09 Data processor

Country Status (4)

Country Link
US (1) US8713563B2 (zh)
JP (1) JP4756603B2 (zh)
CN (1) CN101162443B (zh)
TW (1) TWI470552B (zh)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527673B2 (en) 2007-05-23 2013-09-03 Vmware, Inc. Direct access to a hardware device for virtual machines of a virtualized computer system
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8140834B2 (en) 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
US20100161879A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient and Secure Main Memory Sharing Across Multiple Processors
US20100161909A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20100161908A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient Memory Allocation Across Multiple Accessing Systems
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
WO2010097925A1 (ja) * 2009-02-26 2010-09-02 株式会社日立製作所 情報処理装置
CN101819564B (zh) * 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置
JP5398309B2 (ja) * 2009-03-09 2014-01-29 三菱電機株式会社 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法
JP5578698B2 (ja) 2009-04-23 2014-08-27 ルネサスエレクトロニクス株式会社 半導体データ処理装置及びデータ処理システム
US8990433B2 (en) * 2009-07-01 2015-03-24 Riverbed Technology, Inc. Defining network traffic processing flows between virtual machines
JP5491102B2 (ja) 2009-08-27 2014-05-14 ルネサスエレクトロニクス株式会社 データプロセッサ
US9565207B1 (en) 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8102881B1 (en) 2009-09-08 2012-01-24 Amazon Technologies, Inc. Streamlined guest networking in a virtualized environment
US8601170B1 (en) 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8640220B1 (en) * 2009-09-09 2014-01-28 Amazon Technologies, Inc. Co-operative secure packet management
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
JP2011118578A (ja) 2009-12-02 2011-06-16 Renesas Electronics Corp 情報処理装置
JP5493976B2 (ja) * 2010-02-18 2014-05-14 富士通株式会社 情報処理装置、計算機システム及びプログラム
US8826271B2 (en) 2010-04-28 2014-09-02 Cavium, Inc. Method and apparatus for a virtual system on chip
US20140108701A1 (en) * 2010-07-16 2014-04-17 Memory Technologies Llc Memory protection unit in a virtual processing environment
CN102346680B (zh) * 2010-08-02 2014-04-09 财团法人资讯工业策进会 虚拟机器的资源调整***及方法
US8806481B2 (en) * 2010-08-31 2014-08-12 Hewlett-Packard Development Company, L.P. Providing temporary exclusive hardware access to virtual machine while performing user authentication
WO2012033484A1 (en) * 2010-09-07 2012-03-15 Verigy (Singapore) Pte. Ltd. Systems, methods and apparatus using virtual appliances in a semiconductor test environment
US8479042B1 (en) * 2010-11-01 2013-07-02 Xilinx, Inc. Transaction-level lockstep
WO2012060148A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
US8621496B2 (en) * 2011-04-05 2013-12-31 Netapp, Inc. Decoupled application program-operating system computing architecture
CN102156665B (zh) * 2011-04-13 2012-12-05 杭州电子科技大学 一种虚拟化***竞争资源差异化服务方法
US9026630B2 (en) * 2011-06-14 2015-05-05 Vmware, Inc. Managing resources in a distributed system using dynamic clusters
US9170840B2 (en) * 2011-11-02 2015-10-27 Lenova Enterprise Solutions (Singapore) Pte. Ltd. Duration sensitive scheduling in a computing environment
WO2013082749A1 (zh) * 2011-12-06 2013-06-13 华为技术有限公司 一种硬件资源保护方法和***以及虚拟机管理器
CN103164260B (zh) * 2011-12-15 2016-06-01 ***股份有限公司 用于移动终端的应用程序管理***及方法
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP5914145B2 (ja) * 2012-05-01 2016-05-11 ルネサスエレクトロニクス株式会社 メモリ保護回路、処理装置、およびメモリ保護方法
JP5933356B2 (ja) * 2012-06-12 2016-06-08 ルネサスエレクトロニクス株式会社 コンピュータシステム
US9659183B2 (en) * 2012-06-18 2017-05-23 Honeywell International Inc. Pattern for secure store
US9912517B1 (en) 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
US9588788B1 (en) * 2012-08-23 2017-03-07 Amazon Technologies, Inc. Optimized communication between program components executing in virtual machines
US9424199B2 (en) * 2012-08-29 2016-08-23 Advanced Micro Devices, Inc. Virtual input/output memory management unit within a guest virtual machine
JP2014081819A (ja) * 2012-10-17 2014-05-08 Renesas Electronics Corp 情報処理装置
CN103346981B (zh) * 2013-06-28 2016-08-10 华为技术有限公司 虚拟交换方法、相关装置和计算机***
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
US9076017B2 (en) * 2013-11-27 2015-07-07 Cisco Technology, Inc. Hardware virtualization module for exclusive controlled access to CPU
CN104714846B (zh) * 2013-12-17 2018-06-05 华为技术有限公司 资源处理方法、操作***及设备
WO2015100622A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 虚拟机热迁移的方法和服务器
US20150254364A1 (en) * 2014-03-04 2015-09-10 Vmware, Inc. Accessing a file in a virtual computing environment
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US9678903B1 (en) * 2014-10-15 2017-06-13 Intel Corporation Systems and methods for managing inter-CPU interrupts between multiple CPUs
FR3028065B1 (fr) * 2014-10-30 2017-12-22 Stmicroelectronics Rousset Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante
CN104731559A (zh) * 2015-04-14 2015-06-24 福州瑞芯微电子有限公司 一种寄存器的配置方法及装置
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、***及电子设备
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10412114B1 (en) * 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US9891945B2 (en) * 2016-03-21 2018-02-13 Qualcomm Incorporated Storage resource management in virtualized environments
US10235211B2 (en) 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
JP6235088B2 (ja) * 2016-08-24 2017-11-22 ルネサスエレクトロニクス株式会社 情報処理装置
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
US10838786B2 (en) * 2016-09-05 2020-11-17 Mitsubishi Electric Corporation Embedded system, embedded system control method and data consistency judgment method
JP6745174B2 (ja) * 2016-09-09 2020-08-26 株式会社日立産機システム コントローラ及びコントロール管理システム
JP6726088B2 (ja) * 2016-12-15 2020-07-22 ルネサスエレクトロニクス株式会社 データ処理装置、及びアクセス制御方法
US10339068B2 (en) * 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10554685B1 (en) * 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US11126474B1 (en) * 2017-06-14 2021-09-21 Amazon Technologies, Inc. Reducing resource lock time for a virtual processing unit
US10509666B2 (en) * 2017-06-29 2019-12-17 Ati Technologies Ulc Register partition and protection for virtualized processing device
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作***的多操作***运行方法及装置
US10592281B1 (en) 2017-09-28 2020-03-17 Amazon Technologies, Inc. Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit
CN107707665A (zh) * 2017-10-19 2018-02-16 郑州云海信息技术有限公司 一种网络存储方法、装置、***及计算机可读存储介质
JP6974254B2 (ja) * 2018-05-18 2021-12-01 ルネサスエレクトロニクス株式会社 データ処理装置
JP6963534B2 (ja) 2018-05-25 2021-11-10 ルネサスエレクトロニクス株式会社 メモリ保護回路及びメモリ保護方法
CN110688194B (zh) * 2018-07-06 2023-03-17 中兴通讯股份有限公司 基于云桌面的磁盘管理方法、虚拟机及存储介质
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
JP7259537B2 (ja) * 2019-05-16 2023-04-18 オムロン株式会社 情報処理装置
JP2021022061A (ja) 2019-07-25 2021-02-18 キオクシア株式会社 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法
JP6885635B1 (ja) * 2020-03-04 2021-06-16 Necプラットフォームズ株式会社 情報処理装置、情報処理方法及び情報処理装置用プログラム
TWI752458B (zh) * 2020-04-09 2022-01-11 招慶 林 匯流排上元件動態定址系統
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
CN115190167B (zh) * 2022-06-29 2024-04-09 深圳市联软科技股份有限公司 一种基于共享内存通信的代理***及方法
WO2024089832A1 (ja) * 2022-10-27 2024-05-02 三菱電機株式会社 バス帯域制御装置およびバス帯域制御方法
CN117009128B (zh) * 2023-09-14 2023-12-22 飞腾信息技术有限公司 一种错误上报方法及计算机***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924127A (en) * 1995-09-19 1999-07-13 Hitachi, Ltd. Address translation buffer system and method for invalidating address translation buffer, the address translation buffer partitioned into zones according to a computer attribute
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
US20030217250A1 (en) * 2002-04-16 2003-11-20 Steve Bennett Control register access virtualization performance improvement in the virtual-machine architecture
WO2004046934A2 (en) * 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US20060123416A1 (en) * 2004-12-03 2006-06-08 Ivan Cibrario Bertolotti Process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
TW200627275A (en) * 2004-12-21 2006-08-01 Microsoft Corp Computer security management, such as in a virtual machine or hardened operating system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960652A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd デ−タ処理装置
DE3689287T2 (de) * 1985-02-18 1994-05-26 Nippon Electric Co Datenverarbeitungsgerät.
JPS6346545A (ja) * 1986-08-14 1988-02-27 Nippon Telegr & Teleph Corp <Ntt> 仮想計算機制御方式
US4835667A (en) * 1987-06-15 1989-05-30 Prescolite, Inc. Thermal protector device for a lighting unit
JPH02146634A (ja) * 1988-11-29 1990-06-05 Fujitsu Ltd 仮想計算機システムにおける割込み制御方式
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
JP2640871B2 (ja) * 1990-10-20 1997-08-13 富士通株式会社 仮想計算機システム
US5701493A (en) * 1995-08-03 1997-12-23 Advanced Risc Machines Limited Exception handling method and apparatus in data processing systems
JP3729407B2 (ja) * 2002-08-06 2005-12-21 ブラザー工業株式会社 縫製装置及び縫製装置の針棒位置変更制御プログラム
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
JP2004334410A (ja) 2003-05-06 2004-11-25 Hitachi Ltd 情報処理装置及びプロセッサ
US20060190532A1 (en) * 2005-02-23 2006-08-24 Kalyana Chadalavada Apparatus and methods for multiple user remote connections to an information handling system via a remote access controller

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924127A (en) * 1995-09-19 1999-07-13 Hitachi, Ltd. Address translation buffer system and method for invalidating address translation buffer, the address translation buffer partitioned into zones according to a computer attribute
JP2002073358A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
US20030217250A1 (en) * 2002-04-16 2003-11-20 Steve Bennett Control register access virtualization performance improvement in the virtual-machine architecture
WO2004046934A2 (en) * 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US20060123416A1 (en) * 2004-12-03 2006-06-08 Ivan Cibrario Bertolotti Process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
TW200627275A (en) * 2004-12-21 2006-08-01 Microsoft Corp Computer security management, such as in a virtual machine or hardened operating system

Also Published As

Publication number Publication date
JP2008097173A (ja) 2008-04-24
CN101162443A (zh) 2008-04-16
TW200834420A (en) 2008-08-16
US20080086729A1 (en) 2008-04-10
JP4756603B2 (ja) 2011-08-24
CN101162443B (zh) 2012-06-27
US8713563B2 (en) 2014-04-29

Similar Documents

Publication Publication Date Title
TWI470552B (zh) Data processor
US9479431B1 (en) Route prediction in packet switched networks
US10235515B2 (en) Method and apparatus for on-demand isolated I/O channels for secure applications
US6449699B2 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
JP2003186746A (ja) ハードウェア実施セマフォおよび他の同様のハードウェア実施直列化および順位付け機構を使用する、コンピュータ内でのメモリへのアクセスのハードウェア実施制御の方法
WO2010097925A1 (ja) 情報処理装置
JP5263602B2 (ja) アクセス制御システム、アクセス制御方法、電子装置、及び制御プログラム
US10140148B1 (en) Copy based IOMMU emulation for out-of-process emulated devices
CN116166609A (zh) 存储器防火墙的动态管理
TW202324158A (zh) 以安全分區記憶體空間於系統單晶片中錯誤管理
Kornaros et al. Towards full virtualization of heterogeneous noc-based multicore embedded architectures
Bost Hardware support for robust partitioning in freescale qoriq multicore socs (p4080 and derivatives)
KR20080079124A (ko) 시스템 자원에 대한 접근 제어 장치 및 방법
US20110213936A1 (en) Processor, multiprocessor system, and method of detecting illegal memory access
CN118227344A (zh) 一种共享内存保护方法和微处理芯片
US20200302048A1 (en) Circuitry
WO2023283004A1 (en) Debug in system on a chip with securely partitioned memory space
Uchiyama et al. Software Environments
WO2009113571A1 (ja) 複数の基盤ソフトウェアを動作可能な情報処理装置および方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees