TW201335851A - 計算機、存取管理方法及記錄有存取管理程式之媒體 - Google Patents
計算機、存取管理方法及記錄有存取管理程式之媒體 Download PDFInfo
- Publication number
- TW201335851A TW201335851A TW101113163A TW101113163A TW201335851A TW 201335851 A TW201335851 A TW 201335851A TW 101113163 A TW101113163 A TW 101113163A TW 101113163 A TW101113163 A TW 101113163A TW 201335851 A TW201335851 A TW 201335851A
- Authority
- TW
- Taiwan
- Prior art keywords
- access
- allocation table
- memory
- unit
- computer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本發明係於產生自OS231a往I/O裝置110a的存取時,I/O分配部223係參照I/O分配表229,並判斷I/O裝置110a是否被分配給另外的OS231b。若I/O裝置110a被分配給另外的OS231b時,控制部228即對OS231a通知錯誤狀態。若I/O裝置110a並未被分配給OS231a.b之中任一者時,I/O分配部223為了將I/O裝置110a分配於OS231a,則將I/O分配表229予以更新,I/O模仿部222即模仿往I/O裝置110a之存取。
Description
本發明係關於例如管理自複數個OS(Operating System)往裝置的存取之計算機、存取管理方法及記錄有存取管理程式之媒體之技術。
虛擬計算機系統為能使複數個OS動作之系統。存在著例如Xen(註冊商標)或KVM(Kernel-based Virtual Machine)(註冊商標)等之虛擬計算機系統。
習知的虛擬計算機系統係對複數個OS的各者於事前設定所佔有的I/O裝置之後啟動複數個OS。此外,虛擬計算機顯示器(VMM:Virtual Machine Monitor)係許可自各OS往該OS所佔有的I/O裝置之記憶體或暫存器的存取,並拒絕自各OS往其他的OS所佔有的I/O裝置之記憶體或暫存器的存取。I/O裝置為PCI裝置(包含PCI Express裝置。以下相同)時,虛擬計算機顯示器則進行許可或拒絕往PCI組態暫存器的存取。如此處理,即可進行對各OS之I/O裝置的排他性之分配。
例如,Xen係將OS所佔有的I/O裝置指定於設定檔案。此外,KVM係指定OS的啟動選項所佔有之I/O裝置。
Xen或KVM等之習知的虛擬計算機系統係必須於事前設定各OS所佔有之I/O裝置。因此,當多數的OS動作而各OS為佔有多數的I/O裝置時,則事前設定即形成
煩雜之狀態。
專利文獻1揭示如下之處理,於執行中轉換佔有I/O裝置的OS之虛擬計算機系統。
在專利文獻1的虛擬計算機系統中,VMM係將OS之I/O裝置佔有要求或VMM的事件檢測作為要因而對OS提出I/O裝置的佔有許可。此外,OS係僅於提出I/O裝置的佔有許可時,才進行對I/O裝置的輸出輸入。因此,不須要用以將I/O裝置被任意一項的OS所佔有之事前設定。
但,由於未進行I/O裝置之記憶體或暫存器的保護,故有可能自未佔有I/O裝置之OS存取於該I/O裝置之記憶體或暫存器。因此,有其他的OS破壞某個OS所佔有中的I/O裝置之記憶體或暫存器的內容之可能性。
專利文獻1:日本特開2007-220086號公報
本發明係以例如能正確地管理自複數個OS往裝置之存取為目的。
本發明之計算機係能使存取於裝置之複數個OS(Operating System)動作。
前述計算機係具備:
裝置分配記憶部,其係記憶用以使裝置和裝置所被分配的OS相對應之裝置分配表;以及存取管理部,其係於產生往前述裝置的存取時,即根據前述裝置分配表而判定前述裝置所被分配的OS,當前述裝置並未被分配任一個OS時,則為了使前述裝置和存取處的OS相對應而將前述裝置分配表予以更新,並許可對前述裝置的存取,前述裝置若被分配給前述存取處的OS以外之OS時,則拒絕往前述裝置的存取。
根據本發明,則可以例如正確地管理自複數個OS往裝置之存取。
說明有關於將裝置分配於虛擬計算機的OS(Operating System)而於虛擬計算機的OS佔有裝置之虛擬計算機系統。虛擬計算機系統為使複數個OS動作的系統之一例。
第1圖係實施形態1的虛擬計算機系統100之構成圖。
根據第1圖說明關於實施形態1的虛擬計算機系統100之硬體構成、以及功能構成。
虛擬計算機系統100係具備物理計算機200、以及連接於物理計算機200之複數個I/O裝置110a至c(Input/Output裝置)。I/O裝置110的數量亦可為2或4個以上。
在實施形態中,I/O裝置110a至c係將PCI
(Peripheral Components Interconnect bus)作為介面而使用之PCI裝置者進行說明。但,連接於物理計算機200之I/O裝置亦可為PCI裝置以外之裝置。
PCI裝置係記憶含有BAR(基底位址暫存器)之PCI組態暫存器。PCI組態暫存器之BAR係表示分配於PCI裝置之記憶體空間或暫存器空間(均為記憶區域)之基底位址(前端位址)和尺寸。
顯示裝置、鍵盤、滑鼠、列表機、通信板、外部記憶裝置等係I/O裝置110之一例。
物理計算機200(計算機、電腦之一例)係具備處理器211a.b、主記憶體212、補助記憶裝置213、以及中斷控制器214等硬體210之電腦。
處理器211a.b係控制物理計算機200之處理裝置,CPU(Central Processing Unit)係處理器211a.b之一例。處理器211的數量亦可為1或3個以上。
主記憶體212係亦稱為一次記憶裝置之記憶裝置,RAM(Random Access Memory)或ROM(Read Only Memory)為主記憶體212之一例。
補助記憶裝置213係亦稱為二次記憶裝置之記憶裝置,磁碟裝置或快閃記憶體為補助記憶裝置213之一例。
中斷控制器214係控制來自I/O裝置110a至c的中斷之裝置。例如,中斷控制器214係將來自I/O裝置110a至c的中斷信息通知處理器211a.b。
物理計算機200更具備使用硬體210而動作之VMM
部220、以及複數個VM部230a.b。VM部230的數量亦可為3個以上。
VM部230a係執行OS231a、裝置驅動器232a、以及PCI驅動器233a,且作為虛擬計算機(VM)而動作。同樣地,VM部230b係執行OS231b、裝置驅動器232b、以及PCI驅動器233b,且作為虛擬計算機而動作。虛擬計算機係藉由後述之虛擬計算機顯示器(VMM)而虛擬建構之計算機。VM部230a係使用處理器211a而動作,VM部230b係使用處理器211b而動作。
OS231a.b係虛擬計算機之OS(或執行虛擬計算機之OS的執行部)。OS231a.b並未支持虛擬位址空間。此外,OS231a.b係藉由單一處理器或多功處理器而動作。實施形態係以藉由單一處理器而動作之OS231a.b為例而說明。但,OS231a.b亦可為藉由多功處理器而動作之OS。此外,OS231a.b係將藉由記憶體管理部224所建構之虛擬位址空間作為物理位址空間予以辨識而動作。
裝置驅動器232a.b係存取於I/O裝置110a至c的記憶體或暫存器,且用以個別控制I/O裝置110a至c的軟體(或執行軟體的執行部)。存取主要係指資料的讀取或資料的寫入(以下相同)。
PCI驅動器233a.b係用以存取於I/O裝置110a至c的PCI組態暫存器的軟體(或執行軟體的執行部)。
VMM部220(裝置分配記憶部、存取管理部之一例)係執行虛擬計算機顯示器(VMM)而控制複數台虛擬計算機
(VM部230a.b)。虛擬計算機顯示器係將硬體資源(例如處理器211、主記憶體212之記憶區域)分配於各虛擬計算機而用以建構複數台虛擬計算機之軟體。
VMM部220係具備PCI模仿部221、I/O模仿部222、I/O分配部223、記憶體管理部224、以及控制部228。
PCI模仿部221係模仿自PCI驅動器233a.b往PCI組態暫存器的存取動作。亦即,PCI模仿部221係搶先往PCI組態暫存器的存取,以取代PCI驅動器233a.b而存取於PCI組態暫存器。
I/O模仿部222係模仿自裝置驅動器232a.b往I/O裝置之記憶體或暫存器的存取動作。亦即,I/O模仿部222係搶先往I/O裝置之記憶體或暫存器的存取,以取代裝置驅動器232a.b而存取於I/O裝置之記憶體或暫存器。
I/O分配部223係參照後述之I/O分配表229,判定分配於產生存取之I/O裝置110的OS231,並將I/O分配表229予以更新。
記憶體管理部224係定義VM部230a.b(OS231a.b)用之虛擬位址空間。例如,記憶體管理部224係產生使表示虛擬位址空間內的記憶區域之虛擬位址和表示物理位址空間內的記憶區域之物理位址相對應之對映表(mapping table)。亦即,記憶體管理部224係使用對映表而映照虛擬位址空間和物理位址空間。映照主要係指能使虛擬位址空間之虛擬位址和物理位址空間之物理位址相對應之意(以下相同)。
控制部228係進行VM部230a.b之控制或後述之I/O分配表229的初始化。
第2圖係表示實施形態1的虛擬計算機系統100的動作之流程圖。
根據第2圖說明關於實施形態1的虛擬計算機系統100的動作。
在步驟S110中,啟動物理計算機200。當啟動物理計算機200時,物理計算機200之啟動處理部(圖示省略)即執行BIOS(Basic Imput/Output System)或啟動載入器等之預定的軟體(物理計算機200之啟動處理)。
例如,在物理計算機200之啟動處理中,進行物理位址空間的初始設定或PCI組態暫存器的初始設定。
第3圖係表示實施形態1的虛擬計算機系統100的記憶體圖之圖。
根據第3圖說明關於實施形態1的虛擬計算機系統100的記憶體圖。
物理記憶體第3第1圖0的資料係藉由處理器211或主記憶體212而進行記憶管理。
物理位址空間係確保有VM用記憶體空間311、I/O用記憶體空間312、I/O用暫存器空間313等。VM用記憶體空間311係分配於VMM或OS231用之記憶區域。I/O用記憶體空間312係分配於I/O裝置110a至c的記憶體用之記憶區域。I/O用暫存器空間313係分配於I/O裝置110a至c的暫存器用之記憶區域。
在物理計算機200之啟動處理(第2圖之步驟S110)中,進行如下述之物理位址空間的初始設定。
於物理位址空間確保有VM用記憶體空間311、I/O用記憶體空間312、I/O用暫存器空間313等。
於VM用記憶體空間311確保有VMM部220用之記憶區域,VMM之程式或資料係自補助記憶裝置213載入(讀入)於VMM部220用之記憶區域。後述之I/O分配表229係載入於VMM部220用之記憶區域的資料之一例。
於I/O用記憶體空間312確保有I/O裝置110a至c的各個記憶體空間。藉由存取於I/O裝置110a至c的記憶體空間,即可存取於I/O裝置110a至c的記憶體。
於I/O用暫存器空間313確保有I/O裝置110a至c的各個暫存器空間(第3圖係僅表示I/O裝置110b的暫存器空間)。藉由存取於I/O裝置110a至c的暫存器空間,即可存取於I/O裝置110a至c的暫存器。
虛擬記憶體第3第2圖0a係表示OS231a用之虛擬位址空間的用途之圖或資料,虛擬記憶體第3第2圖0b係表示OS231b用之虛擬位址空間的用途之圖或資料。虛擬記憶體第3第2圖0a.b的資料係藉由VMM部220之記憶體管理部224而進行記憶管理。有關於OS231a.b用之虛擬位址空間則容於後述。
第4圖係表示實施形態1的I/O分配表229的初始狀態之圖。
根據第4圖說明關於實施形態1的I/O分配表229。
I/O分配表229(裝置分配表之一例)係用以使I/O裝置110(之記憶體或暫存器)和I/O裝置110所分配之OS231相對應之資料。
I/O分配表229係含有:「裝置辨識符」、「分配處」、以及「區域(0至5)」。「區域n(n為0至5」所表示之記憶區域係對應於PCI組態暫存器的BARn所表示之記憶區域。亦可和PCI組態暫存器的BAR同樣地使用2個「區域n」而表示64位元的記憶區域,以取代使用1個「區域n」而表示32位元的記憶區域。
「區域(0至5)係含有:「基底位址」、「尺寸」、以及「屬性」。初始狀態並未設定任何之項目。此外,「區域(0至5)亦可含有另外的資訊(例如,可否預先擷取旗標)。
以下,所設定之各項目,其功能如下述。
「裝置辨識符」係表示I/O裝置110之辨識符。例如,PCI裝置之情形時,則將範圍編號、匯流排編號、裝置編號、功能編號的群組作為裝置辨識符而使用。
「分配處」係表示I/O裝置110所分配之OS231的辨識符。設定於「分配處」之「NULL」係指I/O裝置110並未分配於任一項的OS231。
「基底位址」係表示分配於I/O裝置110用之記憶區域的前端之物理位址。「區域n(n為0至5」之「基底位址」係設定PCI組態暫存器的BARn所示之基底位址。
「尺寸」係表示分配之記憶區域的大小。「區域n」之「尺寸」係設定PCI組態暫存器的BARn所示之尺寸。
「屬性」係表示分配之記憶區域的用途。「屬性」所設定之「記憶體」係指分配之記憶區域為記憶體空間之意,「屬性」所設定之「暫存器」係指分配之記憶區域為暫存器空間之意。
回到第2圖,繼續說明關於虛擬計算機系統100的動作。
在步驟S120中,啟動VMM部220。當啟動VMM部220時,VMM部220之控制部228即執行I/O分配表229(參照第4圖)之初始化處理。關於I/O分配表229之初始化處理則容於後述。
此外,VMM部220之控制部228係於VM用記憶體空間311(參照第3圖)確保OS231a.b用之記憶區域,並自補助記憶裝置213載入(讀取入)VM的程式或資料於OS231a.b用之記憶區域。OS231a.b、裝置驅動器232a.b、以及PCI驅動器233a.b係載入於OS231a.b用之記憶區域的程式之一例。OS231a.b用之記憶區域的確保、以及VM的程式或資料的載入亦可藉由物理計算機200之啟動處理(步驟S110)而執行。
此外,VMM部220之記憶體管理部224係定義OS231a.b用之虛擬位址空間,並將OS231a.b用之記憶區域映照於虛擬位址空間(參照第3圖之虛擬記憶體第3第2圖0a.b)。此時,記憶體管理部224係產生使物理位址空間的物理位址和虛擬位址空間的虛擬位址相對應之對映表。
此外,VMM部220之控制部228係啟動VM部230a.
b。
在步驟S130中,VM部230a.b係開始動作。當VM部230a.b開始動作時,則產生往I/O裝置110a至c的記憶體或暫存器的存取、以及往PCI組態暫存器的存取動作。關於產生存取時之處理則容於後述。
藉由如第2圖的流程圖所示之虛擬計算機系統100的動作,則在物理計算機200其VM部230a.b即開始運轉。
第5圖係表示實施形態1的I/O分配表229的初始化處理之流程圖。
根據第5圖說明關於實施形態1的I/O分配表229的初始化處理。
VMM部220之控制部228係依在物理計算機200所使用之I/O裝置110別執行步驟S210至步驟S213之處理。亦即,VMM部220之控制部228係分別對I/O裝置110a至c執行步驟S210至步驟S213之處理。
在步驟S210中,控制部228係判定I/O裝置110的記憶體空間和暫存器空間是否排列於分頁(page)邊界。
此時,控制部228係參照I/O裝置110的PCI組態暫存器內之各BAR。於各BAR係設定有I/O裝置110的記憶體空間或暫存器空間之基底位址和尺寸。控制部228係判定設定於各BAR的基底位址是否為分頁邊界的位址(分頁尺寸(例如,4K位元組)單位之位址。設定於各BAR的基底位址為分頁邊界的位址時,則I/O裝置110的記憶體空間和暫存器空間即為排列於分頁邊界。
當I/O裝置110的記憶體空間和暫存器空間為排列於分頁邊界時(YES),則處理係進入步驟S230。
當I/O裝置110的記憶體空間和暫存器空間並未排列於分頁邊界時(NO),則處理係進入步驟S220。
在步驟S220中,控制部228係設定該基底位址的前後之任意一個分頁邊界的位址於設定有非分頁邊界的位址之基底位址的BAR。
據此,即能將I/O裝置110的記憶體空間和暫存器空間排列於分頁邊界。
步驟S220之後,處理係進入步驟S230。
在步驟S230中,控制部228係使用I/O裝置110的PCI組態暫存器之設定值而設定I/O裝置110的「裝置辨識符」、「基底位址」、「尺寸」、以及「屬性」於I/O分配表229。此外,控制部228係於I/O分配表229之「分配處」設定「NULL(無分配之OS231」。
第6圖係表示實施形態1之初始化處理後的I/O分配表229之圖。將初始化處理後的I/O分配表229之一例表示於第6圖。
第7圖係表示實施形態1的I/O裝置110的分配處理之流程圖。
根據第7圖說明關於實施形態1的I/O裝置110的分配處理。
於未分配於任意一個OS231a.b之I/O裝置110的記憶體空間或暫存器空間產生存取時,則執行如下述之I
/O裝置110的分配處理。
以下,說明關於產生自OS231a存取於I/O裝置110a的記憶體空間之情形。但,產生自OS231a存取於I/O裝置110a的暫存器空間之情形、以及產生自OS231a存取於I/O裝置110b或c的記憶體空間或暫存器空間之情形,其處理內容亦和下述相同。此外,產生自OS231b存取於I/O裝置110a至c之任意一個記憶體空間或暫存器空間之情形,其處理內容亦和下述相同。
在步驟S310中,OS231a之裝置驅動器232a係存取於I/O裝置110a的記憶體空間。例如,裝置驅動器232a係指定I/O裝置110a的記憶體空間的物理位址,並將存取命令輸出於處理器211a。
步驟S310之後,處理係進入步驟S320。
在步驟S320中,處理器211a係參照於VMM部220的啟動時,由記憶體管理部224所產生之對映表。此時,對應於I/O裝置110a的記憶體空間的物理位址之虛擬位址並未設定(映照)於對映表。因此,處理器211a即產生分頁錯失(page fault)例外(或TLB失誤例外。以下相同)而傳呼VMM部220。分頁錯失例外之資訊(資料)係含有存取處之物理位址。
例如,亦可將分頁錯失例外的產生時之VMM部220的傳呼設定於OS231a.b之例外處理器。或者,亦可使用屬於物理計算機200之虛擬化支援功能的一部份之例外搶先功能而傳呼VMM部220。或者,亦可以非特權模式使
OS231a.b動作,亦可將分頁錯失例外(違返特權之一例)的產生時之VMM部220的傳呼設定於OS231a.b之例外向量。
步驟S320之後,處理係進入步驟S330。
在步驟S330中,VMM部220之I/O分配部223係參照I/O分配表229,判定分頁錯失例外的原因是否為往I/O裝置110a的記憶體空間或暫存器空間之存取。
此時,I/O分配部223係判定在登錄於I/O分配表229之各I/O裝置的各「區域(0至5)」是否含有存取處的物理位址。當存取處的物理位址包含於任意一個I/O裝置的「區域(0至5)」時,則分頁錯失例外的原因即為往該I/O裝置110的記憶體空間或暫存器空間之存取。
當分頁錯失例外的原因為往I/O裝置110a的記憶體空間或暫存器空間之存取時(YES),處理係進入步驟S331。
當分頁錯失例外的原因並非往I/O裝置110a的記憶體空間或暫存器空間之存取時(NO),處理係進入步驟S350。
在步驟S331中,VMM部220之I/O分配部223係參照I/O分配表229,判定存取處之I/O裝置110a是否為另外之OS231b所佔有。
此時,I/O分配部223係判定是否設定有另外之OS231b的辨識符於對應於I/O分配表229其存取處(I/O裝置110a)的「裝置辨識符」之「分配處」。當設定另外之OS231b的辨識符於「分配處」時,則存取處之I/O裝置
110a為另外之OS231b所佔有。
存取處之I/O裝置110a為另外之OS231b所佔有時(YES),處理係進入步驟S350。
存取處之I/O裝置110a未被另外之OS231b所佔有時(NO),處理係進入步驟S340。
在步驟S340中,VMM部220之I/O分配部223係進行I/O分配表229的設定。此時,I/O分配部223係將存取源(OS231a)的辨識符設定於對應於存取處(I/O裝置110a)的「裝置辨識符」之「分配處」。
步驟S340之後,處理係進入步驟S341。
在步驟S341中,VMM部220之記憶體管理部224係參照I/O分配表229,將對應於存取處(I/O裝置110a)的「裝置辨識符」之「區域(0至5)」所示之全部的記憶體空間和暫存器空間映照於存取源之OS231a之虛擬位址空間。亦即,記憶體管理部224為能使該「區域(0至5)」的物理位址和OS231a之虛擬位址空間之虛擬位址相對應而設定於對映表。
步驟S341之後,處理係進入步驟S342。
在步驟S342中,VMM部220之I/O模仿部222係模仿往I/O裝置110a之記憶體空間的存取。亦即,I/O模仿部222係存取於I/O裝置110a之記憶體空間,以取代OS231a的裝置驅動器232a。例如,I/O模仿部222係將存取命令輸出於處理器211a,處理器211a係於I/O裝置110a之記憶體空間進行存取。
步驟S342之後,處理係進入步驟S360。
在步驟S350中,VMM部220之控制部228係執行分頁錯失例外用之預定的異常處理。例如,控制部228係對OS231a進行錯誤通知,或模仿而執行分頁錯失例外。
步驟S350之後,處理係進入步驟S360。
在步驟S360中,VMM部220之控制部228係回到對OS231a進行控制。
藉由步驟S360,結束I/O裝置110的分配處理。
I/O裝置110a係分配於OS231a,當映照I/O裝置110a的記憶體空間和OS231a的虛擬位址空間時,處理器211a係即使產生自OS231a往I/O裝置110a的記憶體空間產生存取,亦不會產生分頁錯失例外之情形,根據存取命令而存取於I/O裝置110a的記憶體空間。該情形時,VMM部220則不模仿往I/O裝置110a的記憶體空間之存取。
第8圖係表示將實施形態1之I/O裝置110a.b分配後的I/O分配表229之圖。
將I/O裝置110a分配於存取於I/O裝置110a的記憶體之OS231a,將I/O裝置110b分配於存取於I/O裝置110b的記憶體或暫存器之OS231b時之I/O分配表229表示於第8圖。
第9圖係表示將實施形態1之I/O裝置110a.b分配後的虛擬記憶體第3第2圖0a.b之圖。
將I/O裝置110a的記憶體空間映照於OS231a的虛
擬位址空間時的虛擬記憶體第3第2圖0a、以及將I/O裝置110b的記憶體空間和暫存器空間映照於OS231b的虛擬位址空間時的虛擬記憶體第3第2圖0b表示於第9圖。
第10圖係表示往實施形態1之PCI組態暫存器的存取處理之流程圖。
根據第10圖說明關於當OS231a的PCI驅動器233a存取於I/O裝置110a的PCI組態暫存器時之處理。但,當OS231a的PCI驅動器233a存取於I/O裝置110b.c的PCI組態暫存器時之處理內容亦和下述相同。此外,當OS231b的PCI驅動器233b存取於I/O裝置110a至c的PCI組態暫存器時之處理內容亦和下述相同。
在步驟S410中,OS231a的PCI驅動器233a係存取於I/O裝置110a的PCI組態暫存器。例如,PCI驅動器233a係指定I/O裝置110a的PCI組態暫存器內的位址或暫存器編號,並將存取命令輸出於處理器211a。
步驟S410之後,處理係進入步驟S420。
在步驟S420中,VMM部220係搶先往I/O裝置110a的PCI組態暫存器的存取。
例如,將配置有往PCI組態空間的存取用的暫存器(CONFIG_ADDR暫存器、以及CONFIG_DATA暫存器)的分頁以作成無法由OS231a.b進行存取的分頁而設定於處理器211a.b。此外,當產生自OS231a.b往該分頁之存取(往PCI組態暫存器的存取)時,則處理器211a.b即產生分頁錯失例外(或TLB失誤例外。以下相同)而傳呼
VMM部220。此外,OS231a.b為了存取於往PCI組態空間的存取用的暫存器,亦可傳呼VMM部220。此外,往PCI組態空間的存取用的暫存器被映照於I/O位址空間而非記憶體空間時,亦可設成藉由I/O位址空間的保護功能而傳呼VMM部220。
步驟S420之後,處理係進入步驟S430。
在步驟S430中,VMM部220之PCI模仿部221係參照I/O分配表229,判定存取處之I/O裝置110a(PCI裝置)是否分配於存取源之OS231a。當存取源之(OS231a)的辨識符設定於對應於存取處(I/O裝置110a)之「裝置辨識符」的「分配處」時,則存取處之I/O裝置110a係分配於存取源之OS231a。
當存取處之I/O裝置110a為分配於存取源之OS231a時(YES),處理係進入步驟S440。
當存取處之I/O裝置110a未分配於存取源之OS231a時(NO),處理係進入步驟S450。
在步驟S440中,VMM部220之PCI模仿部221係判定存取內容是否包含PCI組態暫存器的BAR之變更。
存取內容若包含PCI組態暫存器的BAR之變更時(YES),處理係進入BAR變更判定處理(步驟S500),之後,進入步驟S441。另外說明關於BAR變更判定處理(步驟S500)。
存取內容若未包含PCI組態暫存器的BAR之變更時(NO),處理係進入步驟S442。
在步驟S441中,當BAR變更判定處理(步驟S500)的處理結果為「OK」時,處理係進入步驟S442。此外,當BAR變更判定處理(步驟S500)的處理結果為「NG」時,處理係進入步驟S450。
在步驟S442中,VMM部220之PCI模仿部221係模仿往PCI組態暫存器的存取。此時,PCI模仿部221係存取於PCI組態暫存器以取代PCI驅動器233a。例如,PCI模仿部221係將存取命令輸出於處理器211a,處理器211a則於PCI組態暫存器進行存取。
步驟S442之後,處理係進入步驟S460。
在步驟S450中,VMM部220之PCI模仿部221係執行往PCI組態暫存器的存取時之預定的異常處理。例如,PCI模仿部221係對OS231a進行錯誤通知。
步驟S450之後,處理係進入步驟S460。
在步驟S460中,VMM部220之PCI模仿部221係將控制返回至OS231a。
藉由步驟S460,結束往PCI組態暫存器的存取處理。
第11圖係表示實施形態1之BAR變更判定處理(S500)之流程圖。
根據第11圖說明關於包含於往PCI組態暫存器的存取處理(參照第10圖)之BAR變更判定處理(S500)。
在步驟S510中,VMM部220之PCI模仿部221係判定變更後之BAR所示之記憶區域是否為正確的記憶區域。例如,PCI模仿部221係於變更後的BAR之基底位址
和分頁邊界的位址為一致時,則判定變更後之BAR所示之記憶區域為正確的記憶區域。此外,PCI模仿部221係判定變更後之BAR所示之記憶區域為收斂於I/O用記憶體空間312或I/O用暫存器空間313。
變更後之BAR所示之記憶區域為正確的記憶區域時(YES),處理係進入步驟S511。
變更後之BAR所示之記憶區域非正確的記憶區域時(NO),BAR變更判定處理(S500)之處理結果為「NG」(S530)。
在步驟S511中,VMM部220之PCI模仿部221係參照I/O分配表229,判定變更後之BAR所示之記憶區域是否被另外之OS231b所佔有。
此時,PCI模仿部221係判定於對應於存取源以外之OS231b的辨識等所設定之「分配處」之「區域(0至5)」是否包含有變更後之BAR所示之記憶區域的部份或全部。
變更後之BAR所示之記憶區域為被另外之OS231b所佔有時(YES),BAR變更判定處理(S500)之處理結果為「NG」(S530)。
變更後之BAR所示之記憶區域未被另外之OS231b佔有時(NO),處理係進入步驟S520。
在步驟S520中,VMM部220之PCI模仿部221係於對應於I/O分配表229的存取處(I/O裝置110a)之「裝置辨識符」的「區域(0至5)」之中,變更對應於變更的BAR之「區域(0至5之任意一個)」的「基底位址」以及
「尺寸」。
步驟S520之後,處理係進入步驟S521。
在步驟S521中,VMM部220之記憶體管理部224係因應於BAR的變更而變更I/O裝置110a的對映表。亦即,記憶體管理部224並未自I/O裝置110a的虛擬位址空間映照變更前之BAR所示之記憶區域,而將變更後之BAR所示之記憶區域映照於I/O裝置110a的虛擬位址空間。
BAR變更判定處理(S500)之處理結果為「OK」(S522)
此處,補足關於實施形態的虛擬計算機系統100的硬體。
處理器211a.b係經由匯流排(圖示省略)而連接主記憶體212、補助記憶裝置213、中斷控制器214、I/O裝置110a至c、以及另外的硬體,並控制此等之硬體。
主記憶體212或補助記憶裝置213係記憶程式群或檔案群(圖示省略)。
程式群係包含在實施形態中執行「~部」所說明的功能之程式。程式(例如,存取控制程式、虛擬計算機程式)係藉由處理器211而讀取並執行。亦即,程式係使電腦具備作為「~部」的功能「~部」,此外,其係使電腦執行「~部」的順序或方法。
檔案群係包含實施形態中所說明的「~部」所使用之各種資料(輸入、輸出、判定結果、計算結果、處理結果等)。
在實施形態當中,包含於構成圖和流程圖的箭頭,主
要為表示資料或信號的輸出輸入。
根據流程圖等所說明之處理係使用硬體210(例如,處理器211)而執行。
在實施形態中,以「~部」所說明者亦可為「~電路」「~裝置」「~機器」,此外,亦可為「~步驟」「~順序」「~處理」。亦即,以「~部」所說明者亦可由韌體、軟體、硬體或此等之組合的任意一項所構裝。
實施形態1之虛擬計算機的OS231a.b係以物理計算機200而動作的複數個OS之一例。亦可將多功作業系統構裝於物理計算機200,而物理計算機200亦可使虛擬計算機的OS以外之複數個OS動作。
在實施形態中,物理計算機200其PCI裝置的暫存器空間係映照於記憶體空間。但,物理計算機200亦可如PC/AT互換機,其PCI裝置的暫存器空間亦可映照於I/O位址空間(PC/AT係註冊商標)。例如,Intel x86 CPU時,映照於I/O位址空間之PCI裝置的暫存器空間的保護,可藉由I/O特權準位或I/O許可位元映像(bit map),或使用硬體的虛擬化支援功能的I/O存取搶先功能而實現(Intel係註冊商標)。
在實施形態中,物理計算機200對OS231a.b並不進行I/O裝置110a至c的事前分配。取而代之是,物理計算機200係於產生OS231a的往I/O裝置110a之記憶體空間或暫存器空間之存取時,依先到順序而將該I/O裝置110a分配於該OS231a。據此,物理計算機200即可藉
由該OS231a以外的OS231b而保護該I/O裝置110a之記憶體空間和暫存器空間、以及PCI組態暫存器。亦即,物理計算機200係設成並無法藉由分配該I/O裝置110a之OS231a以外的OS231b而存取於該I/O裝置110a。
根據實施形態1,則不須I/O裝置110a至c之事前設定分配,且亦可藉由另外的OS231b而保護分配於OS231a的I/O裝置110a之記憶體空間和暫存器空間、以及PCI組態暫存器。
在實施形態中,說明關於例如下述之計算機(物理計算機200)。
計算機係使存取於裝置(I/O裝置110a至c)之複數個OS(OS231a.b)動作。
計算機係具備裝置分配記憶部、以及存取管理部(VMM部220)。
裝置分配記憶部係記憶用以使前述裝置和前述裝置所分配的OS相對應之裝置分配表(I/O分配表229)。
存取管理部係於產生往前述裝置的存取時,根據前述裝置分配表而判定前述裝置所分配之OS。存取管理部係於前述裝置未分配於任意一個之OS時,為了使前述裝置和存取源的OS相對應,則將前述裝置分配表予以更新,並許可往前述裝置的存取。存取管理部係於前述裝置分配於前述存取源的OS以外的OS時,則拒絕往前述裝置的存取。
前述裝置分配表係將前述裝置的物理位址空間和前述裝置所分配之OS相對應而表示之資料。
前述存取管理部係於前述裝置未分配於任意一個的OS時,進而將前述裝置分配表所示之前述裝置的物理位址空間映照於前述存取源的OS的虛擬位址空間。
前述存取管理部係於產生往前述裝置之PCI組態暫存器的存取時,根據前述裝置分配表而判定前述裝置所分配之OS。前述存取管理部係於前述裝置分配於存取源之OS時,則許可往前述PCI組態暫存器的存取。前述存取管理部係於前述裝置未分配於前述存取源的OS時,則拒絕往前述PCI組態暫存器的存取。
前述存取管理部係往前述PCI組態暫存器的存取為基底位址的變更,且前述裝置分配於前述存取源的OS時,則動作如下述。前述存取管理部係根據變更後之基底位址而將前述裝置分配表內之前述裝置的物理位址空間之資訊予以更新。前述存取管理部係將更新後之前述資訊所示之前述裝置的物理位址空間映照於前述存取源的OS之虛擬位址空間。
說明關於根據存取之裝置的種類而於複數的OS(或全部的OS)許可來自裝置的記憶體或暫存器的資料之讀取之形態。
以下,主要說明關於和實施形態1不同之事項。而關於省略說明之事項和實施形態1相同。
虛擬計算機系統100的構成和實施形態1相同(參照第1圖)。
但,I/O分配表229的構成則部分為不相同。
第12圖係表示實施形態2的I/O分配表229之圖。
根據第12圖說明關於實施形態2的I/O分配表229。
I/O分配表229除了實施形態1所說明的項目(參照第4、6、8圖)之外,尚具有「裝置種類」。
「裝置種類」係表示I/O裝置110的裝置種類(例如,橋接器)。
第12圖之I/O分配表229,其I/O裝置110c係表示為「橋接器」。I/O裝置110c(橋接器)並未分配於任意一個之OS231a.b。
由於PCI Express開關或PCI橋接器(任意一項均為橋接器之一例)的PCI組態暫存器係藉由樹枝構造而和另外的PCI裝置相關連,故有參照複數個OS231a.b之情形。
因此,實施形態2中,並未將分配種類為「橋接器」的I/O裝置110c分配於任意一個之OS231a.b,以僅能讀取(讀取專用)之方式而許可自各OS231a.b往PCI組態暫存器的存取。此外,往I/O裝置110c之PCI組態暫存器的寫入,則僅許可第3之VM部之OS(圖示省略)或物理計算機200之OS(圖示省略)等之特定的管理OS。但,亦可對OS231a.b僅能讀取橋接器以外之I/O裝置110a.b的記憶體、暫存器或PCI組態暫存器。
第13圖係表示實施形態2的虛擬計算機系統100的記憶體圖之圖。
如第13圖所示,I/O裝置110c的記憶體空間係映照
於OS231a和OS231b之雙方的虛擬記憶體第3第2圖0(虛擬位址空間)。此時,記憶體管理部224係將表示I/O裝置110c的記憶體空間為讀取專用的存取屬性設定於對映表。此外,記憶體管理部224係因應於需求而將I/O裝置110c的記憶體空間映照於管理OS之虛擬位址空間,並將表示I/O裝置110c的記憶體空間為能寫入的存取屬性設定於對映表。
第14圖係表示實施形態2的I/O分配表229的初始化處理之流程圖。
根據第14圖說明關於實施形態2的I/O分配表229之初始化處理。
I/O分配表229之初始化處理除了實施形態1所說明的處理(參照第5圖)之外,尚包含步驟S240和步驟S241。以下,說明關於步驟S240和步驟S241。
在步驟S240中,VMM部220的控制部228係參照I/O裝置110的PCI組態暫存器(包含裝置種類的資訊),判定I/O裝置110為PCI Express開關或PCI橋接器。
當I/O裝置110為PCI Express開關或PCI橋接器時(YES),處理係進入步驟S241。
當I/O裝置110並非PCI Express開關與PCI橋接器中之任一個時(NO),則結束對該I/O裝置110之處理。
在步驟S241中,VMM部220的控制部228係對I/O分配表,設定「橋接器」於對應於I/O裝置110的「裝置辨識符」之「裝置種類」。
藉由步驟S241,結束對該I/O裝置110之處理。
第15圖係表示實施形態2的I/O裝置110的分配處理之流程圖。
根據第15圖說明關於實施形態2的I/O裝置110的分配處理。
I/O裝置110的分配處理除了實施形態1所說明的處理(參照第7圖)之外,尚包含步驟S332和步驟S333。以下,說明關於步驟S332。
在步驟S332中,VMM部220的I/O分配部223係判定來自OS231a.b的存取是否為往橋接器(I/O裝置110c)的記憶體空間或暫存器空間的寫入或讀取。
此時,I/O分配部223係判定存取命令的內容是否為「寫入」或「讀入」。此外,I/O分配部223係參照I/O分配表229,判定對應於存取處的I/O裝置110的「裝置辨識符」之「裝置種類」是否為「橋接器」。存取命令的內容為「寫入」或「讀入」,且「裝置種類」為「橋接器」時,則來自OS231a.b的存取即為往橋接器(I/O裝置110c)的記憶體空間或暫存器空間的寫入或讀入。
來自OS231a.b的存取為往橋接器(I/O裝置110c)的記憶體空間或暫存器空間的寫入時(YES〔寫入〕),處理係進入步驟S350。
來自OS231a.b的存取為往橋接器(I/O裝置110c)的記憶體空間或暫存器空間的讀入時(YES〔讀入〕),處理係進入步驟S333。
來自OS231a.b的存取並非往橋接器(I/O裝置110c)的記憶體空間或暫存器空間的寫入和讀入時(NO),處理係進入步驟S331。
在步驟S333中,I/O分配部223並不進行往I/O分配表229的登錄,以讀取專用之方式將該I/O裝置110c的記憶體空間和暫存器空間映照於虛擬位址空間。
步驟S333之後,處理係進入步驟S342。
第16圖係表示往實施形態2之PCI組態暫存器的存取處理之流程圖。
根據第16圖說明關於往實施形態2之PCI組態暫存器的存取處理。
往PCI組態暫存器的存取處理除了實施形態1所說明的處理(參照第10圖)之外,尚包含步驟S421。以下,說明關於步驟S421。
在步驟S421中,VMM部220的PCI模仿部221係判定來自OS231a.b的存取是否為往橋接器(I/O裝置110c)的PCI組態暫存器的寫入或讀入。
來自OS231a.b的存取為往橋接器(I/O裝置110c)的PCI組態暫存器的寫入時(YES〔寫入〕),處理係進入步驟S450。
來自OS231a.b的存取為往橋接器(I/O裝置110c)的PCI組態暫存器的讀入時(YES〔讀入〕),則省略裝置是否分配於本身OS的檢查,並進入步驟S442。
來自OS231a.b的存取並非往橋接器(I/O裝置110c)
的PCI組態暫存器的寫入和讀入時(NO),處理係進入步驟S430。
在步驟S421中,PCI模仿部221係亦可判定往橋接器(I/O裝置110c)的PCI組態暫存器的寫入之存取是否為來自預定的管理OS的存取。往橋接器(I/O裝置110c)的PCI組態暫存器的寫入之存取為來自預定的管理OS的存取時,則不進入步驟S450,而進入步驟S430。亦即,PCI模仿部221係許可往PCI組態暫存器的寫入。
根據實施形態2,即可防止某OS231a任意佔有PCI橋接器(預定的種類的裝置之一例),或任意變更PCI橋接器的PCI組態暫存器之缺失現象。例如,可防止另外的OS231b不能存取於該PCI橋接器,且無法循著該PCI橋接器以下的PCI的樹枝構造之缺失現象。
在實施形態2中,說明關於例如下述之計算機(物理計算機200)。
存取管理部(VMM部220)係於產生往預定的種類的裝置(例如,橋接器)之PCI組態暫存器寫入之存取時,則拒絕前述寫入之存取。存取管理部係於產生往前述預定的種類的裝置之PCI組態暫存器讀取之存取時,則許可前述讀取之存取。
存取管理部係於自預定的管理OS而產生往前述預定的種類的裝置之PCI組態暫存器寫入之存取時,則許可前述寫入之存取。
說明關於以下次的虛擬計算機系統100使用前次的I/O裝置110a至c的分配結果之形態。
以下,主要說明關於和實施形態1、2不同的事項。關於省略說明之事項和實施形態1、2相同。
第17圖係實施形態3的虛擬計算機系統100之構成圖。
根據第17圖說明關於實施形態3的虛擬計算機系統100之構成。
物理計算機200之VMM部220除了實施形態1所說明的構成(參照第1圖)之外,尚具備表格保存部225。
表格保存部225係於結束VMM部220的執行時(或結束VM部230a.b的執行時),將I/O分配表229(參照第12圖)保存於補助記憶裝置213。被保存之I/O分配表229則於物理計算機200之下次以後之啟動時之I/O分配表229的初始化處理中被使用。
第18圖係表示實施形態3的I/O分配表229的初始化處理之流程圖。
根據第18圖說明關於實施形態3的I/O分配表229的初始化處理。
I/O分配表229的初始化處理除了實施形態2所說明的處理(參照第14圖)之外,尚包含步驟S250至步驟S253。以下,說明關於步驟S250至步驟S253。
步驟S240中,I/O裝置110並非PCI Express開關和PCI橋接器等中之任一個時(NO),處理係進入步驟
S250。
此外,使用實施形態3於實施形態1的I/O分配表229的初始化處理(參照第5圖)時,則於步驟S230之後,進入步驟S250。
在步驟S250中,VMM部220的控制部228係以利用藉由表格保存部225所保存之前次(或過去)的I/O分配表229之模式(以下,稱為「繼承模式」)而判定VMM部220是否啟動。例如,使用者指定表示是否為繼承模式的模式種類作為啟動選項而啟動VMM部220,控制部228即根據啟動選項的模式種類而判定。此外,使用者亦可藉由物理計算機200的指撥(DIP)開關而切換模式。以下,將前次(或過去)的I/O分配表229稱為「保存分配表」。
VMM部220係以繼承模式而啟動時(YES),處理係進入步驟S251。
VMM部220並未以繼承模式啟動時(NO),則結束對該I/O裝置110之處理。
在步驟S251中,控制部228係參照補助記憶裝置213的保存分配表,判定該I/O裝置110是否分配於任意一個之OS231a.b。亦即,控制部228係參照保存分配表,判定是否設定任意一個之OS231a.b於對應於該I/O裝置110的「裝置辨識符」之「分配處」。
該I/O裝置110分配於任意一個之OS231a.b時(YES),處理係進入步驟S252。
該I/O裝置110並未分配於任意一個之OS231a.b
時(NO),則結束對該I/O裝置110之處理。
在步驟S252中,控制部228係將該I/O裝置110分配於該I/O裝置110所分配之OS231(a或b)。亦即,控制部228係對I/O分配表229,將該I/O裝置110所分配之OS231之辨識符設定於對應於I/O裝置110的「裝置辨識符」之「分配處」。
步驟S252之後,處理係進入步驟S253。
在步驟S253中,控制部228(或記憶體管理部224)係參照I/O分配表229,將該I/O裝置110的記憶體空間和暫存器空間(物理位址空間)映照於該I/O裝置110所分配之OS231之虛擬位址空間。
藉由步驟S253,結束對該I/O裝置110之處理。
根據實施形態3,利用保存於補助記憶裝置213的I/O分配表229,即能削減對各OS231a.b之I/O裝置110a.b的分配和映照所需之負荷量。
在實施形態3當中,說明關於例如下列之計算機(物理計算機200)。
存取管理部(VMM部220)係於動作結束時,將裝置分配表(I/O分配表229)作為保存分配表而予以保存,於開始動作時,則使用前述保存的分配表而產生新的裝置分配表。
100‧‧‧虛擬計算機系統
110‧‧‧I/O裝置
110a至110c‧‧‧I/O裝置
200‧‧‧物理計算機
210‧‧‧硬體
211‧‧‧處理器
211a、211b‧‧‧處理器
212‧‧‧主記憶體
213‧‧‧補助記憶裝置
214‧‧‧中斷控制器
220‧‧‧VMM部
221‧‧‧PCI模仿部
222‧‧‧I/O模仿部
223‧‧‧I/O分配部
224‧‧‧記憶體管理部
225‧‧‧表格保存部
228‧‧‧控制部
229‧‧‧I/O分配表
230‧‧‧VM部
230a、230b‧‧‧VM部
231a、231b‧‧‧OS
232a、232b‧‧‧裝置驅動器
233a、233b‧‧‧PCI驅動器
310‧‧‧物理記憶體圖
311‧‧‧VM用記憶體空間
312‧‧‧I/O用記憶體空間
313‧‧‧I/O用暫存器空間
320‧‧‧虛擬記憶體圖
第1圖實施形態1的虛擬計算機系統100之構成圖。
第2圖表示實施形態1的虛擬計算機系統100的動作
之流程圖。
第3圖表示實施形態1的虛擬計算機系統100的記憶體圖之圖。
第4圖表示實施形態1的I/O分配表229的初始狀態之圖。
第5圖表示實施形態1的I/O分配表229的初始化處理之流程圖。
第6圖表示實施形態1之初始化處理後的I/O分配表229之圖。
第7圖表示實施形態1的I/O裝置110的分配處理之流程圖。
第8圖表示將實施形態1之I/O裝置110a.b分配後的I/O分配表229之圖。
第9圖表示將實施形態1之I/O裝置110a.b分配後的虛擬記憶體第3第2圖0a.b之圖。
第10圖表示往實施形態1之PCI組態暫存器的存取處理之流程圖。
第11圖表示實施形態1之BAR變更判定處理(S500)之流程圖。
第12圖表示實施形態2的I/O分配表229之圖。
第13圖表示實施形態2的虛擬計算機系統100的記憶體圖之圖。
第14圖表示實施形態2的I/O分配表229的初始化處理之流程圖。
第15圖表示實施形態2的I/O裝置110的分配處理之流程圖。
第16圖表示往實施形態2之PCI組態暫存器的存取處理之流程圖。
第17圖實施形態3的虛擬計算機系統100之構成圖。
第18圖表示實施形態3的I/O分配表229的初始化處理之流程圖。
100‧‧‧虛擬計算機系統
110a至110c‧‧‧I/O裝置
200‧‧‧物理計算機
210‧‧‧硬體
211a、211b‧‧‧處理器
212‧‧‧主記憶體
213‧‧‧補助記憶裝置
214‧‧‧中斷控制器
220‧‧‧VMM部
221‧‧‧PCI模仿部
222‧‧‧I/O模仿部
223‧‧‧I/O分配部
224‧‧‧記憶體管理部
228‧‧‧控制部
229‧‧‧I/O分配表
230a、230b‧‧‧VM部
231a、231b‧‧‧OS
232a、232b‧‧‧裝置驅動器
233a、233b‧‧‧PCI驅動器
Claims (9)
- 一種計算機,係能使存取於裝置之複數個作業系統(OS;Operating System)動作,其具備:裝置分配記憶部,係記憶用以使裝置和裝置所被分配的OS相對應之裝置分配表;以及存取管理部,係於產生往前述裝置的存取時,根據前述裝置分配表而判定前述裝置所被分配的OS,當前述裝置並未被分配於任意一個的OS時,為了使前述裝置和存取源的OS相對應而將前述裝置分配表予以更新,並許可往前述裝置的存取,當前述裝置被分配於前述存取源的OS以外之OS時,則拒絕往前述裝置的存取。
- 如申請專利範圍第1項所述之計算機,其中,前述裝置分配表為使前述裝置的物理位址空間和前述裝置所被分配的OS相對應而表示之資料,前述存取管理部係於前述裝置並未被分配於任意一個的OS時,進而將前述裝置分配表所示之前述裝置的物理位址空間映照(mapping)於前述存取源的OS之虛擬位址空間。
- 如申請專利範圍第2項所述之計算機,其中,前述存取管理部係於產生往前述裝置的周邊元件互連(PCI;Peripheral Components Interconnect bus)組態暫存器之存取時,根據前述裝置分配表而判定前述裝置所被分配的OS,當前述裝置被分配給存取源的 OS時,即許可前述存取,而前述裝置未被分配給前述存取源的OS時,則拒絕前述存取。
- 如申請專利範圍第3項所述之計算機,其中,當對前述PCI組態暫存器的存取為基底位址之變更,且前述裝置被分配給前述存取源的OS時,前述存取管理部係根據變更後之基底位址而將前述裝置分配表內的前述裝置的物理位址空間之資訊予以更新,並將更新後之前述資訊所示之前述裝置的物理位址空間映照於前述存取源的OS之虛擬位址空間。
- 如申請專利範圍第4項所述之計算機,其中,前述存取管理部係於產生對預定種類之裝置的PCI組態暫存器寫入的存取時,即拒絕前述寫入的存取,且於產生對前述預定種類之裝置的PCI組態暫存器讀取的存取時,則許可前述讀取的存取。
- 如申請專利範圍第5項所述之計算機,其中前述存取管理部係當對前述預定種類之裝置的PCI組態暫存器寫入的存取係自前述複數個OS以外之預定的管理OS產生時,許可前述寫入的存取。
- 如申請專利範圍第1項至第6項中之任一項所述之計算機,其中,前述存取管理部係於結束動作時,將前述裝置分配表作為保存分配表而予以保存,當開始動作時,則使用前述保存分配表而產生新的裝置分配表。
- 一種存取管理方法,係藉由使存取於裝置之複數個 OS(Operating System)動作的計算機而執行者,其特徵在於:前述計算機係具備記憶用以使裝置和裝置所被分配的OS相對應之裝置分配表的裝置分配記憶部、以及存取管理部,前述存取管理部係於產生對前述裝置的存取時,根據前述裝置分配表而判定前述裝置所被分配的OS,當前述裝置並未被分配給任意一個的OS時,為了使前述裝置和存取源的OS相對應而將前述裝置分配表予以更新,並許可對前述裝置的存取,當前述裝置被分配給前述存取源的OS以外之OS時,則拒絕往前述裝置的存取。
- 一種記錄有存取管理程式之媒體,於存取管理程式係用以使電腦執行申請專利範圍第8項所述的存取管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/054427 WO2013125012A1 (ja) | 2012-02-23 | 2012-02-23 | 計算機、アクセス管理方法およびアクセス管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201335851A true TW201335851A (zh) | 2013-09-01 |
Family
ID=49005232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101113163A TW201335851A (zh) | 2012-02-23 | 2012-04-13 | 計算機、存取管理方法及記錄有存取管理程式之媒體 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9558364B2 (zh) |
EP (1) | EP2819023A4 (zh) |
JP (1) | JP5925288B2 (zh) |
KR (1) | KR101571992B1 (zh) |
CN (1) | CN104137088A (zh) |
TW (1) | TW201335851A (zh) |
WO (1) | WO2013125012A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325563B (zh) * | 2015-06-15 | 2021-06-04 | 联想企业解决方案(新加坡)有限公司 | 用于标识电子设备的数据存储设备及相应的方法 |
CN106648877B (zh) * | 2015-10-28 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 资源申请、释放方法及装置 |
CN107783821A (zh) * | 2017-01-25 | 2018-03-09 | 问众智能信息科技(北京)有限公司 | 车载一体虚拟化方法和装置 |
CN109981434A (zh) * | 2019-03-25 | 2019-07-05 | 华勤通讯技术有限公司 | 一种车载智能系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6086657A (ja) | 1983-10-19 | 1985-05-16 | Hitachi Ltd | 入出力装置の占有制御装置 |
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
JP2972501B2 (ja) | 1993-09-20 | 1999-11-08 | 富士通株式会社 | I/oサブシステム及びi/oサブシステムにおける排他制御方法 |
JPH1083373A (ja) | 1996-09-06 | 1998-03-31 | Mitsubishi Electric Corp | プログラマブルコントローラ |
US6453392B1 (en) * | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
US6820164B2 (en) | 2001-04-17 | 2004-11-16 | International Business Machines Corporation | Peripheral component interconnect bus detection in logically partitioned computer system involving authorizing guest operating system to conduct configuration input-output operation with functions of pci devices |
JP2007509387A (ja) * | 2003-09-30 | 2007-04-12 | ジャルナ エスアー | オペレーティングシステム |
US7392172B2 (en) | 2005-04-28 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Providing virtual device access via firmware |
JP2007220086A (ja) | 2006-01-17 | 2007-08-30 | Ntt Docomo Inc | 入出力制御装置、入出力制御システム及び入出力制御方法 |
WO2007115425A1 (en) * | 2006-03-30 | 2007-10-18 | Intel Corporation | Method and apparatus for supporting heterogeneous virtualization |
JP2008158710A (ja) | 2006-12-22 | 2008-07-10 | Hitachi Ltd | 計算機システム |
JP5352848B2 (ja) | 2008-11-28 | 2013-11-27 | 株式会社日立製作所 | 仮想計算機の制御方法及び計算機装置 |
JP2010128943A (ja) | 2008-11-28 | 2010-06-10 | Toshiba Corp | 情報処理装置および情報処理装置の制御方法 |
US8239938B2 (en) | 2008-12-08 | 2012-08-07 | Nvidia Corporation | Centralized device virtualization layer for heterogeneous processing units |
JP4705982B2 (ja) | 2008-12-11 | 2011-06-22 | 株式会社日立製作所 | 情報処理システム、情報処理方法、及び管理装置 |
JP2010186456A (ja) | 2009-02-11 | 2010-08-26 | Saito Seisakusho:Kk | 電気自動車の運転音および警報の発生方法 |
JP2011145912A (ja) | 2010-01-15 | 2011-07-28 | Fujitsu Ltd | 仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラム |
US8977724B2 (en) * | 2010-03-31 | 2015-03-10 | International Business Machines Corporation | Method and system for automated operating system image loading |
-
2012
- 2012-02-23 EP EP12869300.9A patent/EP2819023A4/en not_active Withdrawn
- 2012-02-23 US US14/371,891 patent/US9558364B2/en active Active
- 2012-02-23 CN CN201280070396.6A patent/CN104137088A/zh active Pending
- 2012-02-23 WO PCT/JP2012/054427 patent/WO2013125012A1/ja active Application Filing
- 2012-02-23 JP JP2014500820A patent/JP5925288B2/ja not_active Expired - Fee Related
- 2012-02-23 KR KR1020147023181A patent/KR101571992B1/ko active IP Right Grant
- 2012-04-13 TW TW101113163A patent/TW201335851A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP5925288B2 (ja) | 2016-05-25 |
EP2819023A1 (en) | 2014-12-31 |
CN104137088A (zh) | 2014-11-05 |
JPWO2013125012A1 (ja) | 2015-05-21 |
EP2819023A4 (en) | 2016-06-08 |
US20150302222A1 (en) | 2015-10-22 |
US9558364B2 (en) | 2017-01-31 |
WO2013125012A1 (ja) | 2013-08-29 |
KR101571992B1 (ko) | 2015-11-25 |
KR20140124787A (ko) | 2014-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8127098B1 (en) | Virtualization of real mode execution | |
JP6306578B2 (ja) | メモリ保護装置及び保護方法 | |
EP2889777B1 (en) | Modifying memory permissions in a secure processing environment | |
US7380049B2 (en) | Memory protection within a virtual partition | |
JP5914145B2 (ja) | メモリ保護回路、処理装置、およびメモリ保護方法 | |
JP4668166B2 (ja) | ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 | |
CN108351826B (zh) | 监视处理器的操作 | |
AMD et al. | Technology (IOMMU) specification | |
WO2014184515A1 (en) | Page table data management | |
US10664304B2 (en) | Application memory protection using an extended page table switching virtual machine function | |
US20160188354A1 (en) | Efficient enabling of extended page tables | |
US20180136867A1 (en) | Address based host page table selection | |
US10963280B2 (en) | Hypervisor post-write notification of control and debug register updates | |
JP2013161299A (ja) | 情報処理装置、インタフェースアクセス方法 | |
US20160216985A1 (en) | Protection against interrupts in virtual machine functions | |
US9459907B2 (en) | Guest controlled malicious payload protection | |
US20130007379A1 (en) | Secure and virtualizable performance counters | |
Chakrabarti et al. | Intel® software guard extensions (Intel® SGX) architecture for oversubscription of secure memory in a virtualized environment | |
JP5925288B2 (ja) | 計算機、アクセス管理方法およびアクセス管理プログラム | |
US10162663B2 (en) | Computer and hypervisor-based resource scheduling method | |
JP2016018555A (ja) | 動作環境の切換方法、コンピュータ、およびコンピュータ・プログラム | |
US11188477B2 (en) | Page protection layer | |
Li et al. | A novel memory management for risc-v enclaves | |
Yao et al. | White Paper A Tour beyond BIOS Using Intel® VT-d for DMA Protection in UEFI BIOS |