TWI443508B - 用於超管理器負載之記憶體管理 - Google Patents

用於超管理器負載之記憶體管理 Download PDF

Info

Publication number
TWI443508B
TWI443508B TW098122469A TW98122469A TWI443508B TW I443508 B TWI443508 B TW I443508B TW 098122469 A TW098122469 A TW 098122469A TW 98122469 A TW98122469 A TW 98122469A TW I443508 B TWI443508 B TW I443508B
Authority
TW
Taiwan
Prior art keywords
memory
computer
program
partitions
virtual machines
Prior art date
Application number
TW098122469A
Other languages
English (en)
Other versions
TW201007450A (en
Inventor
Kaushik C Barde
Original Assignee
Hewlett Packard Co
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40974121&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=TWI443508(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of TW201007450A publication Critical patent/TW201007450A/zh
Application granted granted Critical
Publication of TWI443508B publication Critical patent/TWI443508B/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

用於超管理器負載之記憶體管理
本發明大體上係關於個人電腦及共用類似架構之裝置。更特定言之,本發明係關於一種用於實現超管理器程式相關應用程式之改良效能及安全性的系統及方法。
現代化地,PC(個人電腦)之使用係非常常見的,且仍在增長。負擔的起之硬體速度變得一年比一年更快且具有一年比一年更高之能力與容量。處置新任務之應用軟體及處置新裝置之系統軟體持續出現。
一典型使用者可遇到已部署之新版本軟體與舊版本相比較的優點及缺點兩者。可以公平的說,隨著時間的推移,一典型使用者對一電腦部署越來越多的能力及增長數量之軟體。
典型電腦使用者需面對一個長期之問題係採用一新版本硬體或軟體(或完全一新應用程式)之利益(及財務成本)相對於保持使用個人已經學會習慣使用之較舊產品之利益。影響此一選擇之因素係複雜的(且非於本發明範疇),但是整合式軟體解決方案因其等傾向於限制不同應用程式(或甚至相同應用程式之不同變體)以和平共存之能力而引起更多關切。例如,若具有經設計僅搭配MicrosoftWindowsXPTM OS(作業系統)運作之一特定硬體的一裝置驅動程式及經設計僅搭配MicrosoftWindowsVista OS下運作之一應用程式之裝置驅動程式,則可引起此類型之一共同問題。無解決方案係完全滿意且必須容許權衡。
一典型使用者之另一重要考量係電腦啟動時間。通常,常駐軟體容納越多,電腦從電源開啟至一就緒使用條件(或至少和平共存)需要更長的時間。甚至在多個軟體(特別係多個OS)係可互操作及有用的(或至少和平共存)及提供足夠的效能之情況下,與使用一單個OS相比,其等仍需要很長時間初始化及進入一就緒狀態。電腦啟動時間可容易令只是希望繼續手頭任務之一使用者變得煩躁。
一進一步及發展之問題係惡意軟體。已提出針對惡意軟體之多種改良,但該等改良亦經常取決於依賴一特定廠商之整合式解決方案,或更差地,依賴來自一特定廠商之一特定軟體版本。此可使管理多個軟體變體更難。而且,該等解決方案可太頻繁使用「藉由隱匿實現安全性」之一方法,該方法令使用者減少所屬控制權且更不適於使用開放原始碼產品(open source product)。
相應地,本發明提供用於初始化一電腦以支援虛擬機之方法。亦可使用可包含電腦或完全不同之數位控制器之其他電子裝置。
本發明方法可包含分配記憶體區域及將程式從非揮發性記憶體載入至該等區域中。該等程式可包含一超管理器程式、載入超管理器之一程式及虛擬裝置應用程式(Appliance program)。同樣可建立用於不同目的之記憶體堆積(memory heap),並且及可處理非揮發性記憶體(諸如磁碟機),諸如用以載入作業系統。
亦連同替代之例示性實施例一起討論此等態樣之一些變體。揭示之韌體及/或軟體的改良設計實現關於上文概述問題及其它之極佳權衡。
在結合附圖檢閱本發明[實施方式]後,可更充分地認識並瞭解本發明之上述及相關的優點及特徵,附圖係併入於本說明書中並構成本說明書之一部分,該等附圖說明本發明之一實施例,且其中相似元件符號表示相似元件。
為描述方便,在不同圖式中,同一組件被賦予相同之元件符號。
在以下描述中,為了本發明之清晰及簡明,並非所有繪示於圖表及/或圖式中之眾多組件會被描述。繪示於圖式中之眾多組件為一般技術者提供本發明之一完整、詳盡內容。許多組件之操作對一熟悉此項技術者而言係易於理解及明顯的。
眾所周知之組件之描述並不包含於此描述中,以免模糊本發明或脫離或相反地減少本發明之新穎度及藉此提供之主要優點。
現在參考圖1來描述本發明之一例示性實施例。
圖1係根據本發明之一實施例實施記憶體用法功能之一電子裝置之一示意性方塊圖。在一例示性實施例中,將電子裝置10實施為一個人電腦,例如,一桌上型電腦、一筆記型電腦、一平板電腦或其他適合之計算裝置。
儘管該描述概述一個人電腦之操作,但一般技術者應瞭解可將電子裝置10實施為一PDA、無線通信裝置,例如,一蜂巢式電話、嵌入式控制器或適於操作或與本發明互操作之裝置,例如,機上盒(視訊轉換器)、印刷裝置或其他適合之裝置或其等之組合。
個人電腦10可包含至少一控制器或處理器12,其經組態以控制該電子裝置10之整體操作。此一處理器或控制器經常被稱為一CPU(中央處理單元)或一MPU(微處理單元)。處理器12可包含用於執行運算之一ALU(算術/邏輯單元),用於暫時儲存資料及指令之一或多個暫存器,及用於控制個人電腦10之操作之一定序器或控制器。在一實施例中,處理器12可包含由Intel公司製造之Celeron及CentrinoTM 微處理器,或由International Business Machine銷售之Power-PC處理器中之任何一者。另外,包含來自Sun Microsystems、MIPS、NEC、Cyrix之多種其他處理器中任何一者及其他者可被用於實施處理器12。處理器12並不限於微處理器,而是可採用其他形式,諸如微處理器、數位信號處理器、專屬硬體,例如,ASIC(特定應用積體電路)、狀態機,或在跨一網路分散之一或多個處理器上執行的軟體。
憑藉一CPU匯流排13可將處理器12耦接至一匯流排控制器14。匯流排控制器14可包含整合於其中之一記憶體控制器15。在一替代實施例中,記憶體控制器15可與匯流排控制器14分離。記憶體控制器15可提供用以供處理器12或其他裝置存取讀寫系統記憶體16(例如RAM(隨機存取記憶體))的一介面。
可將匯流排控制器14耦接至一系統匯流排18,例如一PCI(周邊組件互連匯流排)。亦被稱作一輸入/輸出控制器之一周邊裝置控制器24可耦接至系統匯流排18。繼而,將周邊裝置控制器24耦接至多種其他裝置25、26、27,諸如鍵盤、滑鼠、印表機或等等。有可能存在其他組件(未繪示於圖1中),例如耦接至一顯示器之一顯示控制器及一網路通信控制器會係常見的。
亦可將系統匯流排18耦接至許多非揮發性記憶體30、31、32、33。舉實例而言,圖1繪示四種非揮發性記憶體,在實務中可具有更少或更多之非揮發性記憶體。在其他實施例中,可用其他方法耦接記憶體,例如將記憶體直接耦接至匯流排控制器14。
如在圖1中所示,例示性非揮發性記憶體30、31、32、33可具有不同科技及各自能力。如在圖1中繪示,可將非揮發性記憶體30實施為ROM(唯讀記憶體)及於此記憶體中可已記錄一POST(開機自我測試)40及一CSS(核心系統軟體)41以及其他組件,諸如DD(裝置驅動程式)。
仍參考圖1,可將一進一步非揮發性記憶體31實施為具有構成整體之磁碟機機構31之一磁碟控制器。一基於磁碟之非揮發性記憶體可典型包含一MBR(主啟動記錄)51及OS(作業系統軟體)52及其它,包含程式及資料二者。
再次參考圖1,第三非揮發性記憶體32及第四非揮發性記憶體33可含有多種組件。典型地,可將非揮發性記憶體中之一者實施為一快閃記憶體或SDM(安全數位記憶體),並且該非揮發性記憶體可被用於儲存主要由POST使用之系統組態資訊,該POST通常被包括於一BIOS(基本輸入輸出系統韌體)42內。通常將快閃記憶體體現為一區塊導向類型之EEPROM(電可擦除可程式化唯讀記憶體)。
可將其他軟體組件(例如來自Phoenix Technologies有限公司之HyperspaceTM )儲存於任何非揮發性記憶體中,例如第三非揮發性記憶體32可含有一超管理器程式61(亦被稱作一VMM(虛擬機監控器))及/或被稱為虛擬裝置62(或小應用程式(Applet))之較小的應用程式的一複本。
儘管可將韌體及軟體儲存於非揮發性記憶體中,在憑藉一區塊導向式裝置驅動程式或藉由一影子記憶體技術執行之前將韌體及軟體轉移至系統記憶體16,如此項技術所熟知。例外地,可於ROM或等等之外直接執行指令(特別係用作早期電腦啟動之POST指令),諸如用於實施影子記憶體操作自身之指令。
在組合及許多排列中,圖1之非揮發性記憶體可含有用於執行下文參考其他圖式描述之步驟或動作之指令(韌體及軟體)。
圖2繪示電子裝置在實施本發明之實施例時執行之步驟的流程圖,其開始於開機條件200。圖2純粹係例示性及在本發明之大體範圍內可有許多替代之實施例。而且,圖2係相當高階的,並且於下文中參考其他圖式描述進一步細節。
在步驟210中,在啟動硬體處理程序中初始化硬體作為一早期動作,致使可達成其他能力。然後接著開始POS(開機自我測試)220,其具有未繪示於圖2中之許多特徵。
在POST處理程序之某刻,存在人員介入240之一機會230,以允許手動重新組態非揮發性記憶體參數,諸如迷你SDM(迷你安全數位記憶體)。典型地,後續接著返回至一開機初始化序列210。
在步驟250中,將進行關於是否請求超管理器服務(諸如Phoenix Technologies有限公司HypercoreTM )之一檢查。該請求可為一開機時間服務,諸如可回應於一BIOS組態參數。如此做了決定(步驟260),如果未請求超管理器服務,則在步驟270執行一習知之記憶體設置,在步驟280,諸如一OS(作業系統)被啟動載入,及在步驟299,自BIOS交出控制權(在此實例中交出給OS)。
在步驟300中,已請求超管理器服務,及下文參考圖3描述回應之超管理器設置及超管理器啟動載入。在超管理器設置之後係完成步驟299。
圖3繪示根據本發明之實施例之具有超管理器啟動載入及相關聯動作之Hypercore設置及以Hypercore設置之起始而開始300。典型地,在此執行階段,指令代碼係BIOS或其他韌體之部份及可將該等指令代碼影複製於記憶體中。
在步驟303中,對於HV(超管理器)安全資料,分配在一系統管理記憶體(SMM)分割區中的空間。在一暫時較少使用之CPU模式(系統管理模式)中存取SMM記憶體,該系統管理模式意欲用於低階服務,諸如CPU溫度監控。
接下來,在步驟305中,從空閒記憶體分配空間以用於一HV(超管理器),例如PVMM(Phoenix虛擬機監控器)。在繪示之實例中,此分配可來自TSEG(記憶體區段最上層(Top of Memory Segment))RAM空間。此新分配之空間可被稱作PVMMS(Phoenix虛擬機監控器區段)。
在步驟310中,從一非揮發性記憶體載入一HSC(超管理器啟動器代碼(Hypervisor Starter Code)),例如從快閃記憶體載入至PVMMS。軟體重新定位技術係眾所周知之技術,其包含應用經調整之基底位址至位移以及類似之技術,以使代碼完全獨立於絕對記憶體位址。在一實施例中,HSC主要在IntelX86及類似之小端(little-endian)CPU架構中之大真實模式(Big Real Mode)(亦被稱作虛構(Unreal Mode)或平真實模式(Flat Real Mode))中執行。
在一些實施方案中,代碼之重新定位亦被稱作載入,特別是在支援Unix用語之環境中。嚴格地說,載入比重新定位稍微廣義之處在於,載入非必然包含位址調整;即使在高比例情況中進行此等調整。
在一實施例中,HSC可接著操作(步驟315)以載入HV(超管理器)程式。有時並不直接載入一HV,而是作為替代地載入一載入器(Loader),該載入器操作以載入諸如以一級聯載入配置之HV。
HV程式在此項技術中係普遍的,該等HV程式被用於建立及代管VM(虛擬機)環境,在該等環境中,由HV裝載實質上能夠在電腦中「裸」運行(亦即不用一HV)的程式。VM眾所周知係一機制,其用以防止VM執行個體間之可見度,使得在VM中運行之程式不會「意識」(事實上係可見度)到其等在電腦之類似同等程式之中並不係單獨的。
儘管未繪示於圖3中,接著,控制權可從HSC返回至一BIOS執行緒,其中分配系統記憶體(RAM)以用於進一步空間需要,例如用於ACPI(進階組態及電源介面)之空間。
通常,BIOS代碼之一晚期動作將設置(圖3,步驟320)「記憶體堆積」,亦被稱作「空閒儲存區」。該堆積趨向於實質上由可供作業系統及作業系統載入之程式使用的所有空閒儲存區(通常係RAM)組成。在電腦科技中,動態記憶體分配係用於在一電腦程式運行時間期間於該程式中使用之記憶體儲存的分配。此亦可看作為在許多筆資料與代碼之間分配有限之記憶體資源之所有權的一種方式。在本發明之實施例中,該堆積明確地將專屬於HV之記憶體排除在外,此動作消除(或實質上減少)從稍後載入之程式(尤其從一般用途之作業系統,諸如MicrosoftWindows或Linux)發現之HV的可見度。
在一實施例中,在設置堆積之後,BIOS轉移控制權回至HSC,該HSC接著載入及起始HV之受保護模式及/或虛擬記憶體模式。通常地,HV及/或BIOS一起作用將從記憶體(或一些其他完善隱藏之非揮發性記憶體)讀出用於BIOS組態之參數控制資訊,該資訊可被用於將堆積分割(步驟325)為專屬於多個VM之記憶體。如此指導操縱之資訊直接或藉由其等各自之載入器而用於HSC或HV。
仍參考圖3,在步驟330中,載入超管理器程式;典型地,可藉由HSC載入超管理器程式。在其他實施例中,可在分配及/或分割記憶體堆積(步驟320、325)之前載入超管理器。在一實施方案中,HSC可運行於CPU大真實模式中,但HV很大程度上或完全運行於一更常見之CPU模式諸如受保護模式或虛擬記憶體模式。當進入HV時離開真實模式之步驟335很大程度上係具體實施的。
如此在步驟340中,為了能夠使用VM之記憶體堆積分割資訊,HV可進入繼續設置VM。在步驟345中,可將稱作虛擬裝置(Appliance)或小應用程式(Applet)之小應用程式從一非揮發性記憶體載入,留出該非揮發性記憶體用於以上用途或否則分離於及受保護於主非揮發性記憶體(典型係一硬碟驅動器)。
當然,藉由HV載入之程式典型可(如果程式如此期望)將其等記憶體分配當做自身之堆積及可進一步在各種應用軟體、裝置驅動程式等等之間分割該堆積。
在此方面,HV可沿循一非HV CPU啟動載入程序之路徑,例如,在步驟350中,HV可發佈一19h中斷。該19h中斷可藉由代碼來「獲取」,該代碼(步驟355)可從主非揮發性記憶體(通常係硬碟)載入MBR及將控制權傳遞(步驟360)至經發現使用MBR之一程式(及該程式可(例如)為包含於MBR內之一啟動載入器或其可為包含於MBR內之一些間接資訊形式(例如,,「磁碟指標」)之一程式)。在步驟399,此完成分配空間用以載入及運行HSC及HV及藉由HV代管之虛擬裝置程式及/或主OS程式之動作。
當然,如此項技術所熟知,大多數之HV做得比在此描述之更多,包含虛擬化I/O(輸入/輸出)請求(無論係定址至硬體或裝置驅動程式)及其他系統請求之半虛擬化(paravirtualization)。例如,在x86架構中,一HV可攔截中斷15h,以便該HV可虛擬化眾所周知之「Int.15h/EAX=E820h」之記憶體請求,以便一OS具有對自身堆積分割區之可見度及不具有對整個堆積之可見度。BIOS通常提供可見度至整個堆積,及HV可起防止此可見度之作用(除了起源於HV自身之請求之外或至少不是來自藉由HV載入之代碼內亦不是駐留在堆積中之代碼)。
如此,一旦HV具有控制權,其可經常回應於藉由SMM(系統管理模式)控制(該控制通常被用於主要事件,諸如過熱偵測或早期系統關機)之介入而保留電腦之控制權直至下一系統重設。
圖4繪示藉由使用本發明之HV執行之虛擬化之實例。在步驟400,回應於一記憶體請求而進入一服務函式,將藉由HV虛擬化該記憶體請求。此一記憶體請求通常體現為用於一Int 15h軟體中斷之一ISR(中斷服務常式)。
在步驟420中,檢查請求是否係特定格式支援之一記憶體資訊(Int=15h/EAX=E820h),許多該等格式在此項技術中係眾所周知的。如果中斷請求係一些其他種類,則在425控制權退至鏈中之下一ISR。
接著假設請求將被服務,則在步驟430中對關於哪個VM正請求記憶體資訊做出決定。如果請求根本不係來自VM(步驟440),則不虛擬化該請求,而且在步驟445,僅順著在鏈中之另一ISR(如果有的話)的動作來傳遞該請求。
在步驟450中,將一回應編譯為Int=15h/EAX=E820h請求,但虛擬化具體VM之請求。有效的是,為了編譯對記憶體請求的虛擬化回應之目的,將VM的記憶體分割區當作整個堆積處理。在步驟499,此完成服務於虛擬機記憶體請求之ISR。
現在轉向圖5,圖中描述當執行與運行時期相關聯之Hypercore服務轉變至減少設施、流線型操作形式時的HV之動作。此能力很大程度上係藉由上文參考其他圖式描述之設施實現且互補於該等設施。
本發明之一例示性實施例可使用一減少設施模式,其中暫停/關閉經由MBR載入之主要OS及將相關聯之(缺少能量)硬碟置於一電源關閉狀態,但虛擬裝置程式仍使用半導體非揮發性記憶體運行。但是具有低電力操作之一減少設施狀態之使用僅係一實例,該兩項態樣可潛在地完全彼此分離。
在圖5之步驟500中,進入切換至低電力狀態操作之處理程序。在步驟510中,通知電腦使用者電腦正進入虛擬裝置模式,可能在認可一刺激請求(stimulus requesting)下這樣做。
接著在步驟520中,發信號通知經載入至VM之(若干)OS以警示OS致力於操作,該等操作可包含完成待處理I/O(輸入/輸出)操作。典型地,為此目的,根據硬體及/軟體實施方案選擇,OS具有攔截程式,其與進入「睡眠狀態」或類似模式之機器關聯。
在步驟530,提出關閉硬碟之一請求,及或許減少CPU時脈速度或多處理器CPU作用中之數量,或其他能量節約改變(若適當)。典型地,由運行於SMM中之軟體處置控制權,如果如此,可必要發佈具有一適當請求區塊之一SMI以作必要之服務。
在步驟540中,待暫停之VM標記為不具共享權,或幾乎無共享到CPU可用時間(及換入虛擬記憶體頁及/或等等)。
及在步驟599,虛擬裝置之執行憑藉適合之結束/返回代碼重新開始。
關於圖6A,可使用多種媒體630,將在一電子裝置12中之電腦指令作為經製造之韌體及/或軟體電腦產品610予以散佈,該等媒體630使用一儲存記錄器620將指令記錄於其上。經常在如同部署本發明之產品一樣複雜之產品中其等散佈及製造相關之產品二者中可使用一種以上媒體。為清晰起見在圖6A中只繪示一種媒體,但可使用一種以上媒體及可在複數個媒體之間劃分一單個電腦產品。
關於圖6B,此外,及特別地因網際網路使用之增長,可藉由將電腦產品610編碼為經調變為一波之信號來散佈電腦產品610。接著可藉由一傳輸器640傳輸所得波形,作為經調變之電磁載波650被傳播及藉由一接收器660予以接收。一旦接收,該等波可被解調變及將該信號解碼為在一記憶體或儲存裝置11中之電腦產品611之一進一步版本或複本。
亦可使用其他拓撲裝置來建構本發明之替代實施例。
上文描述之實施例係例示性,而不係限制且本發明之範圍應決定於申請專利範圍。儘管本發明之較佳實施例已具體描述於上文中,但應清楚明白於此向熟悉此項技術者教示之基本發明概念之許多變動及/或修改仍在定義於附加之專利申請範圍中之本發明之精神及範圍內。
10...電子裝置/個人電腦
11...電子裝置
12...控制器
12...電子裝置
13...CPU匯流排
14...匯流排控制器
15...記憶體控制器
16...系統記憶體
18...系統匯流排
24...周邊裝置控制器
25...周邊裝置
26...周邊裝置
27...周邊裝置
30...第一非揮發性記憶體
31...第二非揮發性記憶體
32...第三非揮發性記憶體
33...第四非揮發性記憶體
40...開機自我測試
41...核心系統軟體
42...基本輸入輸出系統
51...主啟動系統
52...作業系統
61...超管理器
62...虛擬裝置
610...電腦產品
611...電腦產品
620...儲存記錄器
630...記錄媒體
640...傳輸器
650...電磁載波
660...傳輸器
圖1係根據本發明之實施例之電子裝置的示意性方塊圖,該元件符號經組態以實施用於初始化電腦之電腦程式產品及/或方法;圖2繪示電子裝置實施本發明之實施例時執行之步驟的流程圖;圖3繪示在本發明例示性實施例中實施載入及運行一超管理器、虛擬裝置及主作業系統時執行之步驟的流程圖。圖4繪示在本發明例示性實施例中虛擬化來自VM(虛擬機)之記憶體資訊請求時執行之步驟的流程圖;圖5繪示在本發明之例示性實施例中切換至一減少設施模式時執行之步驟的流程圖;圖6A繪示可如何將本發明之例示性實施例編碼至一或多個電腦媒體或媒體;及圖6B繪示可如何使用電磁波編碼、傳輸、接收及解碼本發明之例示性實施例。
10...電子裝置/個人電腦
12...控制器
13...CPU匯流排
14...匯流排控制器
15...記憶體控制器
16...系統記憶體
18...系統匯流排
24...周邊裝置控制器
25...周邊裝置
26...周邊裝置
27...周邊裝置
30...第一非揮發性記憶體
31...第二非揮發性記憶體
32...第三非揮發性記憶體
33...第四非揮發性記憶體
40...開機自我測試
41...核心系統軟體
42...基本輸入輸出系統
51...主啟動系統
52...作業系統
61...超管理器
62...虛擬裝置

Claims (14)

  1. 一種用於初始化一電腦以支援虛擬機之方法,其包括以下步驟:分配讀寫記憶體之一第一區域;將一超管理器程式從一第一非依電性記憶體載入至該第一區域;建立該讀寫記憶體之一記憶體堆積,該記憶體堆積排除該第一區域;響應於該電腦內之一基本輸入輸出系統(BIOS)程式已知之參數,分割該記憶體堆積以建立多個分割區,其中該等多個分割區專屬於對應的虛擬機;以及藉由該超管理器程式使用該等多個分割區設置該等虛擬機。
  2. 如請求項1之方法,其中:該分配及該載入係以一中央處理單元(CPU)真實模式操作;且該超管理器程式至少部份係以從由以下項目組成之群組選出之一模式操作:一受保護模式;及一虛擬記憶體模式。
  3. 如請求項1之方法,進一步包括:回應於該超管理器程式之一動作,執行一第二程式,該第二程式係包含於一主啟動記錄(MBR)內或使用該MBR定位,其中該MBR駐留在一第二非依電性記憶體 上。
  4. 如請求項1之方法,進一步包括:使該第一區域對於比該超管理器程式更晚載入該電腦之程式為不可見。
  5. 如請求項1之方法,進一步包括:使該第一區域對來自定位於該記憶體堆積內之指令的記憶體位置查詢係不可見的。
  6. 如請求項1之方法,其中該超管理器程式:為該等虛擬機中之一第一虛擬機建立一第一環境;將從該等多個分割區選出之一分割區分配予該第一虛擬機;及虛擬化來自該第一虛擬機之一請求。
  7. 如請求項1之方法,進一步包含:將一裝置應用程式儲存於該第一非依電性記憶體或一不同的非依電性記憶體中。
  8. 如請求項7之方法,進一步包含:響應於將該電腦切換成一低電力狀態之一要求,發信號宣告該等虛擬機之中止;以及在該等虛擬機中止時於該低電力狀態期間執行該裝置應用程式。
  9. 如請求項1之方法,其中該記憶體堆積構成可供作業系統及該等作業系統載入之程式使用的自由記憶體空間。
  10. 一種經製造之電腦程式產品,其包括:至少一非暫時性電腦可讀媒體,該媒體具有編碼於 其中的電腦指令,該等指令在由至少一電腦執行時,使該至少一電腦進行下列動作:分配讀寫記憶體之一第一區域;將一超管理器程式從一第一非依電性記憶體載入至該第一區域;建立該讀寫記憶體之一記憶體堆積,該記憶體堆積排除該第一區域;使用BIOS組配資訊將該記憶體堆積分割成多個分割區,其中該等多個分割區專屬於對應的虛擬機;以及藉由該超管理器程式使用該等多個分割區設置該等虛擬機。
  11. 如請求項10之電腦程式產品,其中有一裝置應用程式儲存於該第一非依電性記憶體或一不同的非依電性記憶體中,其中該等指令在執行時,致使該至少一電腦進一步進行下列動作:響應於將該電腦切換成一低電力狀態之一要求,發信號宣告該等虛擬機之中止;以及在該等虛擬機中止時於該低電力狀態期間執行該裝置應用程式。
  12. 一種電子裝置,其包括:至少一控制器或CPU(中央處理單元);及多個非依電性記憶體,該等多個非依電性記憶體具有編碼於其中之電腦指令,該等指令在由該控制器或CPU執行時,致使該控制器或CPU進行下列動作: 分配讀寫記憶體之一第一區域;將一超管理器程式從一第一非依電性記憶體載入至該第一區域;建立該讀寫記憶體之一記憶體堆積,該記憶體堆積排除該第一區域;使用BIOS組配資訊將該記憶體堆積分割成多個分割區,其中該等多個分割區專屬於對應的虛擬機;以及藉由該超管理器程式使用該等多個分割區設置該等虛擬機。
  13. 如請求項12之電子裝置,進一步包含儲存在該等多個非依電性記憶體之一者中的一裝置應用程式,其中該等指令在執行時,致使該控制器或CPU進一步進行下列動作:將一裝置應用程式儲存在該等非依電性記憶體之一者中;響應於將該電腦切換成一低電力狀態之一要求,發信號宣告該等虛擬機之中止;以及在該等虛擬機中止時於該低電力狀態期間執行該裝置應用程式。
  14. 如請求項12之電子裝置,其中該記憶體堆積構成可供作業系統及該等作業系統載入之程式使用的自由記憶體空間。
TW098122469A 2008-07-02 2009-07-02 用於超管理器負載之記憶體管理 TWI443508B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/217,240 US9286080B2 (en) 2008-07-02 2008-07-02 Memory management for hypervisor loading

Publications (2)

Publication Number Publication Date
TW201007450A TW201007450A (en) 2010-02-16
TWI443508B true TWI443508B (zh) 2014-07-01

Family

ID=40974121

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098122469A TWI443508B (zh) 2008-07-02 2009-07-02 用於超管理器負載之記憶體管理

Country Status (7)

Country Link
US (1) US9286080B2 (zh)
EP (1) EP2307958B1 (zh)
JP (1) JP5308522B2 (zh)
CN (1) CN102203735B (zh)
BR (1) BRPI0910188B1 (zh)
TW (1) TWI443508B (zh)
WO (1) WO2010001313A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
US20100211769A1 (en) * 2009-02-19 2010-08-19 Subramonian Shankar Concurrent Execution of a Smartphone Operating System and a Desktop Operating System
WO2011159882A2 (en) * 2010-06-16 2011-12-22 Indiana University Research And Technology Corporation Novel stabilized insulin agonists
EP2616380B1 (en) 2010-09-17 2019-11-06 Harken Italy S.p.A. Winch provided with adjustable self-tailing and relative operation
TWI421683B (zh) * 2010-11-01 2014-01-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
WO2013165383A1 (en) 2012-04-30 2013-11-07 Hewlett-Packard Development Company, L.P. Configurable computer memory
US9747116B2 (en) * 2013-03-28 2017-08-29 Hewlett Packard Enterprise Development Lp Identifying memory of a blade device for use by an operating system of a partition including the blade device
US9323539B2 (en) * 2013-06-27 2016-04-26 Intel Corporation Constructing persistent file system from scattered persistent regions
TW201504937A (zh) * 2013-07-31 2015-02-01 Ibm 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
US9292684B2 (en) 2013-09-06 2016-03-22 Michael Guidry Systems and methods for security in computer systems
US10157008B2 (en) * 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US5951685A (en) 1996-12-20 1999-09-14 Compaq Computer Corporation Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
JP2001236237A (ja) 2000-02-23 2001-08-31 Hitachi Ltd マルチos構成方法
JPH11282685A (ja) 1998-03-27 1999-10-15 Matsushita Electric Ind Co Ltd 情報処理装置
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6694346B1 (en) * 1999-04-30 2004-02-17 International Business Machines Corporation Long running, reusable, extendible, virtual machine
JP2001256066A (ja) 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
US6892383B1 (en) 2000-06-08 2005-05-10 International Business Machines Corporation Hypervisor function sets
US7003771B1 (en) 2000-06-08 2006-02-21 International Business Machines Corporation Logically partitioned processing system having hypervisor for creating a new translation table in response to OS request to directly access the non-assignable resource
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6701421B1 (en) 2000-08-17 2004-03-02 International Business Machines Corporation Application-level memory affinity control
US6915402B2 (en) * 2001-05-23 2005-07-05 Hewlett-Packard Development Company, L.P. Method and system for creating secure address space using hardware memory router
US7266658B2 (en) 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
WO2004046924A1 (en) * 2002-11-18 2004-06-03 Arm Limited Processor switching between secure and non-secure modes
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7082509B2 (en) 2003-02-06 2006-07-25 Intel Corporation Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
US7380136B2 (en) 2003-06-25 2008-05-27 Intel Corp. Methods and apparatus for secure collection and display of user interface information in a pre-boot environment
US7318148B2 (en) 2003-07-31 2008-01-08 Sap Ag Automatically configuring a computer
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US7370186B1 (en) 2003-12-01 2008-05-06 Nvidia Corporation Multi-tasking bootstrap system and method
US20050160424A1 (en) 2004-01-21 2005-07-21 International Business Machines Corporation Method and system for grid-enabled virtual machines with distributed management of applications
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US7380119B2 (en) 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7174174B2 (en) * 2004-08-20 2007-02-06 Dbs Communications, Inc. Service detail record application and system
US8145872B2 (en) * 2004-11-08 2012-03-27 International Business Machines Corporation Autonomic self-tuning of database management system in dynamic logical partitioning environment
US7325163B2 (en) 2005-01-04 2008-01-29 International Business Machines Corporation Error monitoring of partitions in a computer system using supervisor partitions
US20060236122A1 (en) 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
JP2007004661A (ja) 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US7366887B2 (en) 2005-07-11 2008-04-29 Lenovo (Singapore) Pte. Ltd. System and method for loading programs from HDD independent of operating system
TW200705273A (en) 2005-07-26 2007-02-01 Mitac Technology Corp Method instantly initializing and executing a computer program by using a high-speed data access memory to load kernel program of operating system
JP2009543236A (ja) * 2006-07-14 2009-12-03 インテル コーポレイション マルチタスク仮想マシンのためのヒープ組織
WO2008017204A1 (en) * 2006-08-01 2008-02-14 Intel Corporation Heap manager for a multitasking virtual machine
US8032899B2 (en) 2006-10-26 2011-10-04 International Business Machines Corporation Providing policy-based operating system services in a hypervisor on a computing system
US20100306773A1 (en) 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
CN101038556B (zh) 2007-04-30 2010-05-26 中国科学院软件研究所 可信引导方法及其系统

Also Published As

Publication number Publication date
EP2307958B1 (en) 2019-06-12
US20100005267A1 (en) 2010-01-07
JP2011526714A (ja) 2011-10-13
CN102203735B (zh) 2015-01-14
TW201007450A (en) 2010-02-16
BRPI0910188B1 (pt) 2019-10-22
BRPI0910188A2 (pt) 2016-01-19
JP5308522B2 (ja) 2013-10-09
EP2307958A1 (en) 2011-04-13
CN102203735A (zh) 2011-09-28
WO2010001313A1 (en) 2010-01-07
US9286080B2 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
TWI443508B (zh) 用於超管理器負載之記憶體管理
US10691363B2 (en) Virtual machine trigger
RU2398267C2 (ru) Иерархическая виртуализация посредством многоуровневого механизма виртуализации
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US7937700B1 (en) System, processor, and method for incremental state save/restore on world switch in a virtual machine environment
KR101668399B1 (ko) 프로세서 코어들의 하이퍼바이저 격리
US7743389B2 (en) Selecting between pass-through and emulation in a virtual machine environment
CN105264506B (zh) 向内存映射配置分配处理器
US9864626B2 (en) Coordinating joint operation of multiple hypervisors in a computer system
US7539986B2 (en) Method for guest operating system integrity validation
JP2008257687A (ja) マルチモードコンピュータオペレーション
US20160357602A1 (en) Information processing system and apparatus for migrating operating system
Kanda et al. SIGMA system: A multi-OS environment for embedded systems
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
JP5819350B2 (ja) 計算機システム及び起動方法
US11714756B2 (en) Information handling systems and methods to improve the security and performance of a shared cache memory contained within a multi-core host processor
Im et al. On-demand virtualization for live migration in bare metal cloud
Murata et al. A study on asymmetric operating systems on symmetric multiprocessors

Legal Events

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