TWI528162B - 電腦系統及其作業系統切換方法 - Google Patents

電腦系統及其作業系統切換方法 Download PDF

Info

Publication number
TWI528162B
TWI528162B TW100102799A TW100102799A TWI528162B TW I528162 B TWI528162 B TW I528162B TW 100102799 A TW100102799 A TW 100102799A TW 100102799 A TW100102799 A TW 100102799A TW I528162 B TWI528162 B TW I528162B
Authority
TW
Taiwan
Prior art keywords
memory
operating system
state
unit
switching
Prior art date
Application number
TW100102799A
Other languages
English (en)
Other versions
TW201232249A (en
Inventor
吳青晃
黃宗慶
張國航
林泰余
Original Assignee
威盛電子股份有限公司
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 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Priority to TW100102799A priority Critical patent/TWI528162B/zh
Priority to CN2011100636954A priority patent/CN102122250B/zh
Priority to US13/110,098 priority patent/US8769256B2/en
Publication of TW201232249A publication Critical patent/TW201232249A/zh
Application granted granted Critical
Publication of TWI528162B publication Critical patent/TWI528162B/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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/461Saving or restoring of program or task context
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

電腦系統及其作業系統切換方法
本發明係有關於電腦系統,特別是具有多作業系統之電腦系統,並可進行快速作業系統切換及低功率消耗之電腦系統。
在習知電腦系統中(例如使用Microsoft Windows作業系統的電腦系統),其電源管理係可藉由進階組態與電源介面(Advanced Configuration and Power Interface,ACPI)所定義的待機狀態來減少電源的消耗,在進階組態與電源介面中定義了S0~S5共六種狀態:S0狀態係代表電腦系統工作狀態;在S1待機狀態時,CPU停止工作;在S2待機狀態時,CPU關閉,不供電;S3待機狀態,僅有記憶體供電,亦稱為掛載至記憶體(Suspend to RAM),在S3狀態係為一種低喚醒(Resume)時間(約5秒或更短)的待機狀態,電腦系統可以很快速地恢復到工作狀態(例如S0狀態);S4狀態亦可稱為掛載至磁碟(Suspend to Disk),且為一種低耗電量、長喚醒延遲時間(例如:約20秒或更長)的待機狀態。上述的S1~S4為不同程度的省電狀態,S5狀態則是關機狀態。
另一方面,現今之電腦系統或手持裝置,為了配合使用者的需求,可能會安裝兩套作業系統,例如:Windows作業系統及Android作業系統。在同時安裝的兩套作業系統中進行轉換,必需有適當的切換機制,而目前常用的作業系統切換機制有兩種,第一種切換機制為重新開機(Reboot),以從一系統切換至另一作業系統,例如在個人電腦上安裝多個作業系統(如Windows Vista、Windows 7及Linux),使用者可透過重新開機的方式來進行作業系統之間的切換,然而這裡的重新開機係指整個系統需先從工作狀態(S0)進入關機狀態(S5),再至工作狀態(S0),故需要花費相當長的時間才能切換至另一作業系統。第二種切換機制為使用虛擬化(Virtualization)的技術,然而,透過虛擬化以在雙作業系統之間進行切換時,電腦系統需要同時支援兩套作業系統。當切換至另一套作業系統時,原本的作業系統仍然處於工作狀態(S0狀態),只是透過設計,讓使用者無法察覺另一作業系統仍在運作。這表示處理器需要同時執行兩套作業系統,並且會消耗更多電力。而且,若處理速度不佳,特別是在行動裝置上,電力消耗會更為明顯。因此,亟需一種能在雙作業系統之間進行快速切換,且不耗電的電腦系統。
有鑑於此,本發明提供了一種作業系統切換方法,用以在具有多作業系統之電腦系統上快速切換作業系統,並避免無謂的電力消耗。本發明之作業系統切換方法,用於至少包括一控制單元、一記憶單元及一儲存單元之一電腦系統,其中該儲存單元至少包括一第一作業系統及一第二作業系統,該作業系統切換方法之步驟包括:分別載入該第一作業系統及該第二作業系統於該記憶單元所劃分出之一第一記憶體與一第二記憶體中,並且使第一記憶體與第二記憶體分別處於工作狀態及省電狀態;以及進行作業系統切換,使第一記憶體與第二記憶體分別處於省電狀態及工作狀態。
本發明更提供一種電腦系統,包含:一控制單元;一記憶體,具有一第一記憶體及一第二記憶體,其中一BIOS程式碼用以劃分記憶單元為第一記憶體及第二記憶體以分別供第一作業系統及第二作業系統使用;一儲存單元,具有一第一作業系統及一第二作業系統;以及一處理器,用以執行BIOS程式碼,分別載入第一作業系統及第二作業系統於第一記憶體與第二記憶體中,並且使第一記憶體與第二記憶體分別處於工作狀態及省電狀態,並依據一切換訊號,使第一記憶體與第二記憶體分別處於省電狀態及工作狀態。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式第1~4圖之較佳實施例的詳細說明中,將可清楚的呈現。
第1圖係顯示依據本發明一實施例之具有多作業系統之電腦系統100之簡化架構方塊圖,其至少包括晶片組110、處理器120、控制單元130、記憶單元140、儲存單元150。在一實施例中,電腦系統100可為個人電腦、手持式裝置或智慧型手機等。在本實施例中,電腦系統100更可包括唯讀記憶體160,其與控制單元130電性耦接。在唯讀記憶體160中,更具有基本輸入輸出系統(以下簡稱BIOS)程式碼(Code)160a與控制單元程式碼160b。上述的BIOS程式碼160a為控制整個開機流程的核心機制。通常在電腦系統開機時,由處理器120去執行儲存於唯讀記憶體160的BIOS程式碼160a。同樣地,控制單元130亦會依照控制單元程式碼160b去執行特定的指令。
晶片組110係電性耦接於處理器120、控制單元130及記憶單元140之間,用以傳送電腦系統100中的各元件之控制訊號。在一實施例中,晶片組110可為南北橋合一的晶片或是南橋晶片。此外,晶片組110更可包括記憶體控制器111,用以控制記憶單元140,其例如是動態隨機存取記憶體控制器(DRAM Controller)。在本實施例中,此記憶體控制器111更包括第一通道(Channel)111a與第二通道111b,以分別控制記憶單元140中的不同位址空間。
處理器120係透過晶片組110,用以控制電腦系統中的各個元件。此外,控制單元130例如是嵌入式控制器(Embedded Controller,EC),而控制單元程式碼160b為嵌入式控制器程式碼(EC Code)。在本實施例中,控制單元130更包括第一狀態單元130a、第二狀態單元130b、第三狀態單元130c,這些狀態單元例如是暫存器(Register)或是旗標(Flag),用以記錄與本案開機以及作業系統切換之相關訊息。
記憶單元140可為揮發式記憶體(Volatile Memory),如動態隨機存取記憶體(DRAM)或快取記憶體。在本實施例中,記憶單元140具有第一記憶體141及第二記憶體142,其為不同的位址空間,以供不同的作業系統載入。在本實施例中,記憶體控制器111的第一通道111a與第二通道111b係分別控制記憶單元140中的第一記憶體141及第二記憶體142。值得一提的是,在本案中,當電腦系統100開機後,上述的第一記憶體141與第二記憶體142僅有其中之一為工作狀態,另一則為省電狀態;亦即,在同一時間區間中,第一記憶體141與第二記憶體142具有不同的電源狀態。同樣地,第一通道111a與第二通道111b係具有與對應的第一記憶體141與第二記憶體142相同的電源狀態。換言之,雖然作業系統皆會載入第一記憶體141與第二記憶體142,但是電腦系統100只會使用其中一作業系統。因此,相較於先前技術利用虛擬化技術來達到多作業系統的切換,但實際上所有的作業系統皆處於工作狀態,本案較為省電。
儲存單元150係至少儲存一第一作業系統151、一第二作業系統152,其例如是快閃記憶體以及硬碟等非揮發性記憶體(Non-Volatile Memory,NVM),但本發明不限於此。儲存單元150更可包括開機載入器(boot loader)153,開機載入器153可在載入作業系統之前將作業系統所需的各種啟動環境預先設置好,並協助作業系統載入。值得注意的是,在本實施例中,雖僅以二作業系統為例,但不限於此,只要記憶體控制器111有足夠的通道可以分別控制記憶體140中的不同的位址空間,本案則可應用於三個以上之作業系統。
值得一提的是,在本案中,透過開機的過程會將第一作業系統151與第二作業系統152分別載入第一記憶體141及第二記憶體142之不同位址空間。在一實施例中,記憶單元140之不同位址空間的劃分可透過BIOS程式碼160a的設定來完成。舉例來說,在電腦系統100出廠之前,可以將預定如何分配記憶單元140的位址空間的相關訊息寫入BIOS程式碼中,或是由使用者自由地進行記憶單元140的位址空間設定,並寫入BIOS程式碼中。當系統開機時,處理器120係透過晶片組110與控制單元130去讀取唯讀記憶體160中的BIOS程式碼160a,以完成記憶單元140之不同位址空間的劃分。更進一步而言,當處理器120去讀取BIOS程式碼160a時,由於BIOS程式碼160a包含相關的劃分訊息(例如:第一作業系統151及第二作業系統152之容量大小或執行時所需的記憶體大小),故可依據儲存單元150中所儲存的第一作業系統151及第二作業系統152之容量大小或執行時所需的記憶體大小來分割不同作業系統在記憶單元140中的記憶體位址空間。舉例來說,Windows 7作業系統的容量較Android作業系統大許多,則Windows 7作業系統在記憶單元140中所分配的記憶體位址空間(例如:第一記憶體141)相較於Android作業系統所分配的記憶體位址空間(例如:第二記憶體142)就會比較大,但本發明不限於此。
除此之外,為了使本案之多作業系統之間可以快速切換,控制單元130更可配置第一狀態單元130a、第二狀態單元130b、第三狀態單元130c,以在開機以及作業系統切換時,提供電腦系統100充足的訊息。第一狀態單元130a例如是紀錄欲使用之作業系統等相關訊息,此訊息可供BIOS或開機載入器使用。舉例來說,假設第一狀態單元130a具有2位元,則可能的情形有:「00」表示由使用者自行設定,當設定值為「00」時,系統會出現選擇畫面供使用者選擇與設定;設定值「01」表示使用第一作業系統,例如Windows 7作業系統;設定值「10」表示使用第二作業系統,例如Android作業系統。第二狀態單元130b例如是記錄是否為自動喚醒(Auto-Resume)等相關訊息,此訊息可供控制單元130使用。舉例來說,假設第二狀態單元130b有1位元,則可能的情形有:設定值「0」預表示自動喚醒;設定值「1」表示非自動喚醒。第三狀態單元130c例如是紀錄是否為第一次開機等相關訊息,此訊息可供BIOS使用。舉例來說,假設第三狀態單元130c具有1位元,則可能的情形有:設定值「0」表示第一次開機;設定值「1」表示非第一次開機。上述的狀態單元僅為舉例說明,並非用以限定本發明。若在其他實施例中,具有三個以上的作業系統,則狀態單元的數目與參數可依使用者需求而進行調整與設定。
第2圖係顯示依據本發明一實施例之具有多作業系統之電腦系統開機及作業系統切換之流程圖。請同時參照第1圖與第2圖,在步驟S200,開啟電源。接著,在步驟S210,分別載入第一作業系統151及第二作業系統152於第一記憶體141與第二記憶體142中,並且使第一記憶體141與第二記憶體142分別處於工作狀態及省電狀態。在此步驟S210中,當電腦系統100進入開機程序時,處理器120會透過晶片組110與控制單元130去讀取BIOS程式碼160a。由於本案的BIOS程式碼160a具有劃分記憶單元140的訊息,故除了其他元件(未繪示)透過BIOS程式碼160a初始化之外,BIOS程式碼160a亦會完成記憶體140的位址空間的劃分,而使記憶單元140具有不同位址空間的第一記憶體141與第二記憶體142。此外,在初始化的過程中,處理器120亦會設定晶片組110的記憶體控制器111,而使第一通道111a與第二通道111b分別控制記憶單元140中的第一記憶體141及第二記憶體142。另外,在初始化完成之後,第一作業系統151及第二作業系統152會分別載入第一記憶體141與第二記憶體142中,並且透過控制單元130中的狀態單元130a、130b或130c的設定值,使得第一記憶體141與第二記憶體142分別處於工作狀態及省電狀態。在本實施例中,上述的省電狀態為第二記憶體142仍被供電的狀態,例如:符合ACPI所定義之S3狀態,而此時記憶體控制器111的第二通道111b亦處於省電狀態。另外,工作狀態例如是符合ACPI所定義之S0狀態。
然後,在步驟S220,進行作業系統之切換,以使第一記憶體141與第二記憶體142分別處於省電狀態及工作狀態。在此步驟S220中,由於控制單元130中的狀態單元130a、130b或130c係記錄與開機以及作業系統切換的相關訊息,因此處理器120與控制單元130可依據狀態單元130a、130b或130c的設定值,進行多作業系統之間的切換。值得一提的是,上述的多作業系統之間的切換是在第一記憶體141與第二記憶體142仍被供電狀態下進行切換,例如:二記憶體141與142在ACPI所定義之S0狀態與S3狀態之間進行互換。更進一步來說,二記憶體雖分別處於S0狀態S3狀態,但此電源狀態皆是對二記憶體供電,只是二者供電的程度不同。因此,相較於先前技術藉由重新開機系統來切換多作業系統(即在ACPI所定義之S0狀態與S5狀態之間進行互換),本案可更為快速地切換作業系統。
第3圖係顯示依據本發明一實施例之具有多作業系統之電腦系統開機及作業系統切換之流程圖。請同時參照第1圖與第3圖,在步驟S300,開啟電源。在步驟S310,劃分記憶單元140為第一記憶體141與第二記憶體142,以分別提供第一作業系統151及第二作業系統152使用,並且選擇第一作業系統151作為欲使用之作業系統。在此步驟S310中,記憶體140的劃分以及晶片組110中的記憶體控制器111之第一通道111a與第二通道111b的設定係與步驟S210類似,於此不再贅述。
另一方面,可以利用控制單元130中的第一狀態單元130a來進行作業系統的選擇,其中第一狀態單元130a例如是暫存器或是旗標。在一實施例中,假設第一狀態單元130a具有2位元,則廠商或使用者可以預先設定第一狀態單元130a的預設值(例如:「00」),以讓使用者自行設定並儲存欲使用之作業系統(例如:Windows 7或Android)。在另一實施例中,廠商或使用者可以將欲使用之作業系統預先設定好,此時第一狀態單元130a會指示欲使用之作業系統的訊息。當電源開啟時,使用者將不需進行選擇,而直接進入之作業系統載入之步驟。
在步驟S320,載入選擇之第一作業系統151,而使載入有第一作業系統151之第一記憶體141進入工作狀態,第二記憶體142維持關機狀態。其中,工作狀態例如是ACPI所定義的S0狀態,關機狀態例如是ACPI所定義的S5狀態。在此步驟S320中,開機載入器153依據第一狀態單元130a的設定值(例如:設定值「01」,Windows 7作業系統)將儲存單元150中的第一作業系統151載入至記憶單元140中的第一記憶體141中。此時,第一記憶體141將處於工作狀態,而整個電腦系統100也因為第一作業系統151的載入而可開始運作。另一方面,使用者在使用電腦系統100之第一作業系統151的同時,第二記憶體142仍繼續維持在關機狀態。當使用者欲切換至另一作業系統,則繼續下面的步驟。
在步驟S330,進行作業系統的切換,使載入有第一作業系統151的第一記憶體141進入省電狀態,並且載入第二作業系統152至第二記憶體142,使其進入工作狀態。值得注意的是,當第一記憶體141因切換訊號進入省電狀態時,系統仍會供電給第一記憶體141,而此時第一記憶體141例如是處於ACPI所定義的S3狀態。另一方面,欲進行作業系統切換時,使用者可按下切換按鈕或是設定選擇畫面,而發出切換訊號以進行步驟S330。此時,控制單元130中的第一狀態單元130a會因使用者的選擇而修改成欲使用作業系統(例如:第二作業系統152)的設定值(例如:設定值「10」,Android作業系統),從而開機載入器153會依據第一狀態單元130a的設定值載入第二作業系統152至第二記憶體142,而使第二記憶體142進入工作狀態。此時,二作業系統151與152皆已載入記憶單元240中,並且有不同的電源狀態。若使用者欲再次進行切換,則繼續下面步驟。
在步驟S340,再次進行作業系統的切換,使載入有第二作業系統152的第二記憶體142進入省電狀態,並且使載入有第一作業系統151的第一記憶體141進入工作狀態。特別是,當第二記憶體142因切換訊號進入省電狀態時,系統仍會供電給第二記憶體142,而此時第二記憶體142例如是處於ACPI所定義的S3狀態。另一方面,在進行此二作業系統151與152切換時,可依據控制單元130中的第一狀態單元130a與第二狀態單元130b的設定值進行,其中狀態單元130a、130b例如是暫存器或是旗標。在本實施例中,第一狀態單元130a例如是指示欲使用之作業系統(例如:第一作業系統151)的訊息。第二狀態單元130b例如是記錄是否為自動喚醒,特別是,當多作業系統皆已載入記憶體中時,就需要第二狀態單元130b的訊息來指示是否為自動喚醒。更詳細的說明是,欲進行作業系統切換時,使用者可按下切換按鈕或是設定選擇畫面,而發出切換訊號以進行步驟S340。此時,第一狀態單元130a會因使用者的選擇而修改成欲使用作業系統(例如:第一作業系統151)的設定值;第二狀態單元130b會因使用者的選擇而修改成自動喚醒的設定值(例如:設定值「0」,自動喚醒),從而控制單元130會依據第二狀態單元130b的設定值(例如:設定值「0」,自動喚醒)以及BIOS會依據第一狀態單元130a的設定值(例如:設定值「01」,Windows 7作業系統),使第一記憶體141由原本的省電狀態再次進入工作狀態。
接著,若使用者欲再次進行作業系統的切換時,則在步驟S350,使載入有第一作業系統151的第一記憶體141進入省電狀態,並且使載入有第二作業系統152的第二記憶體142進入工作狀態。在此步驟S350中,其同樣可透過控制單元130中的第一狀態單元130a、第二狀態單元130b的設定值以使第二記憶體142由原本的省電狀態再次進入工作狀態。步驟S350的詳細說明係類似步驟S340,於此不再贅述。之後,若使用者欲在二作業系統之間進行切換,則利用步驟S340或S350進行切換。
在本案中,由於用於存放多作業系統之對應的記憶體,其具有不同的電源狀態,因此相較先前技術採取虛擬化技術記憶體皆需處於工作狀態,更為省電。此外,本案之多作業系統係在對應的記憶體中以省電模式與工作模式之間(即記憶體皆供電的狀態下)進行切換,因此相較先前技術採取先關機後開機的方式進行切換,更為快速。
第4圖係顯示依據本發明一實施例之具有多作業系統之電腦系統開機及作業系統切換之流程圖。請同時參照第1圖與第4圖,在步驟S400,開啟電源。在步驟S410,劃分記憶單元140為第一記憶體141與第二記憶體142,以分別提供第一作業系統151及第二作業系統152使用,並且選擇第一作業系統151作為欲使用之作業系統。關於此步驟S410係與上述步驟S310類似,於此不再贅述。
在步驟S420,載入未選擇作為欲使用之第二作業系統。在此步驟S420中係利用開機載入器153載入第二作業系統152於第二記憶體142。值得注意的是,雖控制單元130中的第一狀態單元130a是指示作為欲使用之第一作業系統151的訊息,但在步驟S420中卻是先載入第二作業系統152,再載入第一作業系統151(後述步驟S440)。換言之,在本實施例中,步驟S420中利用第一狀態單元130a進行指示欲使用之作業系統,係表示需進行步驟S420、S430與S440。此時,第二記憶體142處於工作狀態,而第一記憶體141仍處於關機狀態,此工作狀態例如是ACPI所定義的S0狀態,而關機狀態例如是ACPI所定義的S5狀態。
在步驟S430,使載入有第二作業系統152的第二記憶體142進入省電狀態。當第二記憶體142進入省電狀態時,系統仍會供電給第二記憶體142,例如:第二記憶體142處於ACPI所定義的S3狀態。此外,第一記憶體到目前為止仍為關機狀態,關機狀態例如是ACPI所定義的S5狀態。
在步驟S440,載入第一作業系統151至第一記憶體141,使其進入工作狀態。值得注意的是,此步驟S440係欲載入第一作業系統151,且控制單元130中的第一狀態單元130a亦指示欲使用之第一作業系統151的訊息。更進一步說,在此實施例中,在開機時,控制單元130中的第一狀態單元130a的設定值係指示欲使用之第一作業系統151的設定值(例如:步驟S410),但第一個被載入卻是第二152作業系統(例如:步驟S420),其與第一狀態單元130a的設定值不同,直到步驟S440才載入欲使用之第一作業系統151,而符合對應之第一狀態單元130a的設定值。在此步驟S440中,在開機載入器153載入第一作業系統151於第一記憶體141後,第一記憶體141進入工作狀態,其例如是ACPI所定義的S0狀態。另外,第二記憶體141處於省電狀態,其例如是ACPI所定義的S3狀態。也就是說,此時第一作業系統151及第二作業系統152係已分別載入第一記憶體141與第二記憶體142,其中第一記憶體141與第二記憶體142分別處於工作狀態及省電狀態而且整個電腦系統也可以開始運作。接著,若使用者欲進行作業系統切換,則進行下面步驟。
在步驟S450,進行作業系統的切換,使載入有第一作業系統151的第一記憶體141進入省電狀態,並且使載入有第二作業系統152的第二記憶體142進入工作狀態。特別是,當第一記憶體141因切換訊號進入省電狀態時,系統仍會供電給第一記憶體141,此時第一記憶體141例如是處於ACPI所定義的S3狀態。另一方面,在進行此二作業系統151與152切換時,可依據控制單元130中的第一狀態單元130a、第二狀態單元130b以及第三狀態單元130c的設定值進行,其中狀態單元130a、130b、130c例如是暫存器或是旗標。在本實施例中,第一狀態單元130a與第二狀態單元130b係與步驟S340中描述的狀態單元類似,於此不再贅述。另外,值得注意的是,由於本實施例在開機時係先載入未選擇作為欲使用之作業系統(即,先載入的作業系統與第一狀態單元130a的設定值不一致)與此步驟S450直接執行第一狀態單元130a的設定值不同,故為了避免步驟S450執行錯誤,本實施例更可配置第三狀態單元130c,以記錄是否為第一次開機。更詳細的說明是,欲進行作業系統切換時,使用者可按下切換按鈕或是設定選擇畫面,而發出切換訊號以進行步驟S450。此時,控制單元130依據第二狀態單元130b的設定值(例如:設定值「0」,自動喚醒)、BIOS依據第三狀態單元130c的設定值(例如:設定值「1」,非第一次開機)、BIOS依據第一狀態單元130a的設定值(例如:設定值「10」,Android作業系統),使第二記憶體142由原本的省電狀態再次進入工作狀態。
接著,若使用者欲再次進行作業系統的切換時,則在步驟S460,進行作業系統切換,使載入有第二作業系統152的第二記憶體142進入省電狀態,並且使載入有第一作業系統151的第一記憶體141進入工作狀態。在此步驟S460中,其同樣可透過控制單元130中的第一狀態單元130a、第二狀態單元130b、第三狀態單元130c的設定值,以使第一記憶體141由原本的省電狀態再次進入工作狀態。步驟S460的詳細說明係類似步驟S450,於此不再贅述。之後,若使用者欲在二作業系統之間進行切換,則利用步驟S450或S460進行切換。
值得一提的是,第3圖與第4圖的實施例差異在於,使用者在參照第3圖的實施例時,可以先載入欲先使用的第一作業系統,並進行電腦系統操作,直到想要切換到第二作業系統時,再將第二作業系統載入。當第一與第二作業系統皆載入之後,之後的作業系統切換就不需再進行載入的動作,而可直接切換。另一方面,使用者在參照第4圖的實施例時,係先將第一作業系統與第二作業系統皆載入後,再開始使用電腦系統。同樣地,當第一與第二作業系統皆載入之後,之後的作業系統切換就不需再進行載入的動作,而可直接切換。
在本案中,由於用於存放多作業系統之對應的記憶體,其具有不同的電源狀態,因此相較先前技術採取虛擬化技術記憶體皆需處於工作狀態,更為省電。此外,本案之多作業系統係在對應的記憶體中以省電模式與工作模式之間(即記憶體皆供電的狀態下)進行切換,因此相較先前技術採取先關機後開機的方式進行切換,更為快速。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用以輔助專利文件搜尋之用,並非用以限制本發明之權利範圍。
100...電腦系統
110...晶片組
111...記憶體控制器
111a...第一通道
111b...第二通道
120...處理器
130...控制單元
130a...第一狀態單元
130b...第二狀態單元
103c...第三狀態單元
140...記憶體單元
141...第一記憶體
142...第二記憶體
150...儲存單元
151...第一作業系統
152...第二作業系統
153...開機載入器
160...唯讀記憶體
160a...BIOS程式碼
160b...控制單元程式碼
第1圖係顯示依據本發明一實施例之具有多作業系統之一電腦系統的簡化架構方塊圖。
第2圖係顯示依據本發明一實施例之具有多作業系統之電腦系統的作業系統切換的流程圖。
第3圖係顯示依據本發明又一實施例之具有多作業系統之電腦系統的作業系統切換的流程圖。
第4圖係顯示依據本發明另一實施例之具有多作業系統之電腦系統的作業系統切換的流程圖。
100...電腦系統
110...晶片組
111...記憶體控制器
111a...第一通道
111b...第二通道
120...處理器
130...控制單元
130a...第一狀態單元
130b...第二狀態單元
103c...第三狀態單元
140...記憶單元
141...第一記憶體
142...第二記憶體
150...儲存單元
151...第一作業系統
152...第二作業系統
153...開機載入器
160...唯讀記憶體
160a...BIOS程式碼
160b...控制單元程式碼

Claims (16)

  1. 一種作業系統切換方法,用於至少包括一控制單元、一記憶單元及一儲存單元之一電腦系統,其中該儲存單元至少包括一第一作業系統及一第二作業系統,該作業系統切換方法之步驟包括:分別載入該第一作業系統及該第二作業系統於該記憶單元所劃分出之一第一記憶體與一第二記憶體中,並且使該第一記憶體與該第二記憶體分別處於工作狀態及省電狀態,其中該記憶單元為一揮發性記憶體;以及進行作業系統的一第一切換,使該第一記憶體與該第二記憶體分別處於省電狀態及工作狀態,其中該電腦系統更包括一記憶體控制器,其具有一第一通道及一第二通道,以分別透過該第一通道及該第二通道以控制該第一記憶體與該第二記憶體,其中該第一通道及該第二通道的電源狀態係與對應的該第一記憶體與該第二記憶體的電源狀態相同。
  2. 如申請專利範圍第1項所述之作業系統切換方法,其中該工作狀態為ACPI所定義的S0狀態,該省電狀態為ACPI所定義的S3狀態,該第一切換為該第一記憶體與該第二記憶體的電源狀態於S0狀態與S3狀態之間相互切換。
  3. 如申請專利範圍第1項所述之作業系統切換方法,其中在分別載入該第一作業系統及該第二作業系統於該記憶單元所劃分出之該第一記憶體與該第二記憶體中之前的步驟更包括:根據一BIOS程式碼,將該記憶單元劃分為該第一記憶體及該第二記憶體,以分別供該第一作業系統 及該第二作業系統使用。
  4. 如申請專利範圍第1項所述之作業系統切換方法,其中分別載入該第一作業系統及該第二作業系統於該記憶單元所劃分出之該第一記憶體與該第二記憶體中之步驟包括:開啟該電腦系統之電源;將該記憶單元劃分為該第一記憶體及該第二記憶體;載入該第一作業系統至該第一記憶體,以使該第一記憶體進入工作狀態,而該第二記憶體維持關機狀態;進行作業系統的一第二切換,以使該第一記憶體進入省電狀態,並且使該第二作業系統載入至該第二記憶體,而使該第二記憶體進入工作狀態;以及進行作業系統的一第三切換,以使該第一記憶體進入工作狀態以及該第二記憶體進入省電狀態。
  5. 如申請專利範圍第4項所述之作業系統切換方法,其中在載入該第一作業系統至該第一記憶體之後,以及在進行該第二切換之前,更包括:使用者使用該電腦系統中的該第一作業系統。
  6. 如申請專利範圍第1項所述之作業系統切換方法,其中分別載入該第一作業系統及該第二作業系統於該記憶單元所劃分出之該第一記憶體與該第二記憶體中之步驟包括:開啟該電腦系統之電源;將該記憶單元劃分為該第一記憶體及該第二記憶體;載入該第二作業系統至該第二記憶體,以使該第二記 憶體進入工作狀態,而該第一記憶體維持關機狀態;使載入有該第二作業系統的該第二記憶體進入省電狀態,並且載入該第一作業系統至該第一記憶體,以使該第一記憶體進入工作狀態。
  7. 如申請專利範圍第6項所述之作業系統切換方法,其中在載入該第一作業系統至該第一記憶體之後,以及在進行該第一切換之前,更包括:使用者使用該電腦系統中的該第一作業系統。
  8. 如申請專利範圍第1項所述之作業系統切換方法,其中該控制單元為一嵌入式控制器。
  9. 一種電腦系統,包含:一控制單元;一記憶單元,具有一第一記憶體及一第二記憶體,其中一BIOS程式碼用以劃分該記憶單元為該第一記憶體及該第二記憶體以分別供該第一作業系統及該第二作業系統使用,其中該記憶單元為一揮發性記憶體;一儲存單元,具有一第一作業系統及一第二作業系統;以及一處理器,用以分別載入該第一作業系統及該第二作業系統於該第一記憶體與該第二記憶體中,並且使該第一記憶體與該第二記憶體分別處於工作狀態及省電狀態,並依據一切換訊號,進行作業系統之一切換以使該第一記憶體與該第二記憶體分別處於省電狀態及工作狀態,其中該電腦系統更包括一記憶體控制器,其具有一第一通道及一第二通道,以分別透過該第一通道及該第二通 道以控制該第一記憶體與該第二記憶體,其中該第一通道及該第二通道的電源狀態係與對應的該第一記憶體與該第二記憶體的電源狀態相同。
  10. 如申請專利範圍第9項所述之電腦系統,其中該工作狀態為ACPI所定義的S0狀態,該省電狀態為ACPI所定義的S3狀態,該切換為該第一記憶體與該第二記憶體的電源狀態於S0狀態與S3狀態之間相互切換。
  11. 如申請專利範圍第9項所述之電腦系統,其中該控制單元為一嵌入式控制器。
  12. 如申請專利範圍第9項所述之電腦系統,其中該控制單元更包括一第一狀態單元以記錄欲使用之作業系統。
  13. 如申請專利範圍第12項所述之電腦系統,其中依據一切換按鈕或於該電腦系統之一顯示單元設定一選擇畫面以產生該切換訊號,該處理器接收該切換訊號以切換作業系統,並修改該第一狀態單元之設定值。
  14. 如申請專利範圍第9項所述之電腦系統,其中該控制單元更包括一第二狀態單元以記錄是否為自動喚醒記憶體。
  15. 如申請專利範圍第14項所述之電腦系統,其中當載入有該第二作業系統的該第二記憶體處於省電狀態時,該控制單元依據該切換訊號以及該第二狀態單元之設定值,決定是否自動喚醒該第二記憶體以進入工作狀態。
  16. 如申請專利範圍第9項所述之電腦系統,其中,該控制單元更包括一第三狀態單元,該第三狀態單元係記 錄是否為第一次開機。
TW100102799A 2011-01-26 2011-01-26 電腦系統及其作業系統切換方法 TWI528162B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW100102799A TWI528162B (zh) 2011-01-26 2011-01-26 電腦系統及其作業系統切換方法
CN2011100636954A CN102122250B (zh) 2011-01-26 2011-03-16 计算机系统及其操作系统切换方法
US13/110,098 US8769256B2 (en) 2011-01-26 2011-05-18 Fast switching between multiple operating systems using standby state

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100102799A TWI528162B (zh) 2011-01-26 2011-01-26 電腦系統及其作業系統切換方法

Publications (2)

Publication Number Publication Date
TW201232249A TW201232249A (en) 2012-08-01
TWI528162B true TWI528162B (zh) 2016-04-01

Family

ID=44250812

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100102799A TWI528162B (zh) 2011-01-26 2011-01-26 電腦系統及其作業系統切換方法

Country Status (3)

Country Link
US (1) US8769256B2 (zh)
CN (1) CN102122250B (zh)
TW (1) TWI528162B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924958B1 (en) 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US10089093B1 (en) * 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US10791538B1 (en) 2011-07-06 2020-09-29 BlueStack Systems, Inc. Cloud-based data synchronization
GB2493340A (en) * 2011-07-28 2013-02-06 St Microelectronics Res & Dev Address mapping of boot transactions between dies in a system in package
KR101780052B1 (ko) * 2011-08-24 2017-09-19 한국전자통신연구원 정보처리 시스템에서 운영체제 전환방법
US9804864B1 (en) 2011-10-07 2017-10-31 BlueStack Systems, Inc. Method of mapping inputs and system thereof
CN103136157A (zh) * 2011-11-22 2013-06-05 联想(北京)有限公司 双系统显示方法和电子设备
US9354942B2 (en) * 2012-01-05 2016-05-31 Lenovo (Singapore) Pte. Ltd. Coordinating power states in a hybrid information handling device
CN103246455A (zh) * 2012-02-01 2013-08-14 深圳市天方信安电子科技有限公司 一种屏幕双解锁系统
CN103294545B (zh) * 2012-02-23 2017-07-04 纬创资通股份有限公司 切换双操作系统的方法以及电子装置
CN103886267B (zh) * 2012-12-20 2017-06-27 联想(北京)有限公司 内外网隔离切换方法、装置、芯片、计算机主板和计算机
CN103076868B (zh) * 2013-01-06 2015-08-26 威盛电子股份有限公司 电源管理方法及应用该方法的电子系统
CN104050031B (zh) * 2013-03-15 2018-10-12 联想(北京)有限公司 状态切换方法和装置以及电子设备
CN104104786B (zh) * 2013-04-12 2016-09-28 中国银联股份有限公司 一种对外接载体持续供电的方法和终端设备
CN104123146A (zh) * 2013-04-25 2014-10-29 深圳市天方信安电子科技有限公司 一种双系统之间实现热切换的方法
CN104123147A (zh) * 2013-04-25 2014-10-29 深圳市天方信安电子科技有限公司 一种双系统之间实现热切换的电子装置
TWI588747B (zh) * 2014-01-14 2017-06-21 仁寶電腦工業股份有限公司 切換作業系統的方法及電子裝置
US9934047B2 (en) * 2014-03-20 2018-04-03 Intel Corporation Techniques for switching between operating systems
US20150277934A1 (en) * 2014-03-25 2015-10-01 Microsoft Technology Licensing, Llc One time dual boot mobile phone device
US9697010B2 (en) 2014-03-25 2017-07-04 Microsoft Technology Licensing, Llc User selectable operating systems
TW201537458A (zh) 2014-03-31 2015-10-01 Quanta Comp Inc 操作多重作業系統之方法及其電子裝置
US9910677B2 (en) * 2014-07-07 2018-03-06 Lenovo (Singapore) Pte. Ltd. Operating environment switching between a primary and a secondary operating system
US9690596B1 (en) * 2014-09-02 2017-06-27 Phoenix Technologies Ltd. Firmware based runtime operating system switch
CN105528064B (zh) * 2014-09-30 2018-07-24 宇龙计算机通信科技(深圳)有限公司 一种终端及终端多系统显示方法
CN104506719A (zh) * 2014-12-12 2015-04-08 酷派软件技术(深圳)有限公司 一种终端通信的方法及装置
CN104571464A (zh) * 2015-01-19 2015-04-29 宇龙计算机通信科技(深圳)有限公司 一种多操作系统的省电模式控制方法、装置和终端
CN104571466A (zh) * 2015-01-22 2015-04-29 宇龙计算机通信科技(深圳)有限公司 一种多系统终端的省电方法及装置
CN105630277B (zh) * 2015-06-02 2018-11-30 南京酷派软件技术有限公司 用于终端的屏幕解锁方法及解锁装置
CN105224402A (zh) * 2015-09-11 2016-01-06 上海斐讯数据通信技术有限公司 一种多系统快速切换方法及系统
EP3547195B1 (en) 2016-12-29 2020-11-25 Huawei Technologies Co., Ltd. System-on-chip and method for switching secure operating systems
JP2021022414A (ja) * 2019-07-29 2021-02-18 キオクシア株式会社 半導体記憶装置
US11972265B2 (en) * 2022-04-22 2024-04-30 Red Hat, Inc. Parallel booting operating system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571333B1 (en) 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
KR100471056B1 (ko) * 2000-11-18 2005-03-07 삼성전자주식회사 컴퓨터시스템 및 컴퓨터시스템의 대기모드제어방법
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
CN1658185A (zh) * 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作系统的计算机系统与其切换方法
US7886136B2 (en) * 2004-05-21 2011-02-08 Samsung Electronics Co., Ltd. Computer system, method, and medium for switching operating system
JP5017785B2 (ja) * 2005-03-18 2012-09-05 富士通株式会社 情報処理装置、高速起動方法、及びプログラム
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
US7797555B2 (en) * 2006-05-12 2010-09-14 Intel Corporation Method and apparatus for managing power from a sequestered partition of a processing system
US20080162866A1 (en) * 2006-12-28 2008-07-03 Siddiqi Faraz A Apparatus and method for fast and secure memory context switching
US7831850B2 (en) * 2007-03-29 2010-11-09 Microsoft Corporation Hybrid operating systems for battery powered computing systems
TW200903266A (en) 2007-07-02 2009-01-16 Kuo-Ching Chiang Dual system computer
KR101228934B1 (ko) * 2007-08-28 2013-02-01 삼성전자주식회사 컴퓨터 시스템, 그 제어 방법 및 데이터 처리 장치
TWI362612B (en) * 2007-09-05 2012-04-21 Htc Corp System and electronic device using multiple operating systems and operating method thereof
CN101667140B (zh) * 2008-09-03 2013-02-13 联想(北京)有限公司 控制操作系统切换的方法、装置及系统
US8239667B2 (en) * 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
US8230239B2 (en) * 2009-04-02 2012-07-24 Qualcomm Incorporated Multiple power mode system and method for memory
US8171280B2 (en) * 2009-06-22 2012-05-01 Matthew Laue Method of running multiple operating systems on an X86-based computer system having a dedicated memory region configured as a do not use region
CN101620471B (zh) * 2009-08-07 2011-06-15 福建升腾资讯有限公司 一种单主机多系统的实现方法
US9041720B2 (en) * 2009-12-18 2015-05-26 Advanced Micro Devices, Inc. Static image retiling and power management method and circuit
US8589650B2 (en) * 2010-05-17 2013-11-19 Texas Instruments Incorporated Dynamically configurable memory system

Also Published As

Publication number Publication date
CN102122250A (zh) 2011-07-13
US8769256B2 (en) 2014-07-01
CN102122250B (zh) 2013-09-25
US20120191961A1 (en) 2012-07-26
TW201232249A (en) 2012-08-01

Similar Documents

Publication Publication Date Title
TWI528162B (zh) 電腦系統及其作業系統切換方法
US8898495B2 (en) Method and apparatus for switching an operating system by determining whether a boot-up mode is a general mode or a switch mode
TWI407300B (zh) 電源管理控制器與方法
US20090172439A1 (en) System and method for fast platform hibernate and resume
US8499174B2 (en) Method and controller for power management
JPH1097353A (ja) コンピュータシステム及び同システムに適用するレジューム処理方法
JP5885881B2 (ja) コンピューティングデバイスにおける電源オフ状態の実施
KR20160145791A (ko) 상시-온 프로세서를 갖는 시스템 온 칩
JP2006120114A (ja) 多機能電源ボタンを有するコンピューター及び関連方法
JPH1091519A (ja) ハードディスクキャッシュの制御方法
JP2008090435A (ja) 情報処理装置、およびその制御方法。
US20140129759A1 (en) Low power write journaling storage system
JP2006252754A (ja) ポータブルデジタルオーディオ/ビデオ再生装置
TWI534707B (zh) 電腦系統及其開關機方法
TWI485623B (zh) 快速喚醒電腦系統方法與電腦系統
KR20120118738A (ko) 전자 장치 및 그 부팅 방법
JP2003085041A (ja) ディスクキャッシュシステム
JP2005182473A (ja) 周波数制御方法および情報処理装置
US10042650B2 (en) Computer startup method, startup apparatus, state transition method and state transition apparatus
TWI522924B (zh) 電子裝置及其切換作業系統的方法
JP5894044B2 (ja) ハイブリッド・ディスク・ドライブにデータを記憶する方法および携帯式コンピュータ
JP2011013836A (ja) メモリ配置管理装置及びマイクロプロセッサ
JP2002351585A (ja) コンピュータ装置、電源供給装置およびコンピュータ装置の電源供給方法
JP2003345474A (ja) コンピュータシステムおよびデータ転送制御方法
CN105224399A (zh) 电子装置及其切换作业系统的方法