JP2014531099A - Switching operating context - Google Patents

Switching operating context Download PDF

Info

Publication number
JP2014531099A
JP2014531099A JP2014538767A JP2014538767A JP2014531099A JP 2014531099 A JP2014531099 A JP 2014531099A JP 2014538767 A JP2014538767 A JP 2014538767A JP 2014538767 A JP2014538767 A JP 2014538767A JP 2014531099 A JP2014531099 A JP 2014531099A
Authority
JP
Japan
Prior art keywords
computing device
memory
power state
operating system
standby power
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2014538767A
Other languages
Japanese (ja)
Inventor
ロズマン、マイケル
ジェイ. ジマー、ビンセント
ジェイ. ジマー、ビンセント
ケオン シム、チー
ケオン シム、チー
ミン ハウ、ツェ
ミン ハウ、ツェ
ホルガー チン、イ
ホルガー チン、イ
ルイ、ユ
ワン、ジアンジャベン
ジャベン ワン、ジアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Priority to JP2014538767A priority Critical patent/JP2014531099A/en
Publication of JP2014531099A publication Critical patent/JP2014531099A/en
Pending legal-status Critical Current

Links

Images

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

Abstract

複数の動作コンテキストが、コンピューティングデバイスのスタンバイ電力状態から呼び出される。動作コンテキストは、コンピューティングデバイスの1つ又は複数のオペレーティングシステムで実行される。ユーザー開始行動又はホットキーを通してのアクティベート等により、所望の動作コンテキストが選ばれる場合、所望の動作コンテキストをサポートするオペレーティングシステムが、スタンバイ電力状態からブートアップされる。【選択図】図1Multiple operational contexts are invoked from the standby power state of the computing device. The operational context is executed on one or more operating systems of the computing device. When a desired operating context is selected, such as by user initiated behavior or activation through a hot key, an operating system that supports the desired operating context is booted up from a standby power state. [Selection] Figure 1

Description

コンピュータの実行を一時停止することによって節電し、マルチブートコンピューティングデバイスを実施するメカニズムが存在する。従来技術によるシステムでは、一度に1つのオペレーティングシステム(OS)が通常、ブートされる。第2のOSが必要な場合、コンピューティングデバイスは電源が切られ、ファームウェアがリブートされる。基本入出力システム(BIOS)ブート仕様及び/又は拡張可能ファームウェアインターフェース(EFI:Extensible Firmware Interface)ブートマネージャ等のブートプロセスに対する規格が存在することができる。   There are mechanisms to conserve power by suspending computer execution and implement multi-boot computing devices. In prior art systems, one operating system (OS) is usually booted at a time. If a second OS is required, the computing device is powered off and the firmware is rebooted. There may be standards for a boot process such as a basic input / output system (BIOS) boot specification and / or an extensible firmware interface (EFI) boot manager.

さらに、コンピューティングデバイスの電力管理に対する規格及び仕様が存在することができる。例えば、米国エネルギースター(U. S. Energy Star)格付けは、100ワットのみを消費するという、マシン(コンピューティングデバイス)への例示的な要件を提供する。アドバンスドコンフィグレーションアンドパワーインターフェースすなわちACPI(Advanced Configuration & Power Interface)(http://www.acpi.info参照)は、電力を管理する規格を識別するために、Intel社、Microsoft社、株式会社東芝、及びHewlett-Packard社によって合同で開発された業界仕様である。スリープ状態及び移行がACPI仕様によって規定される。例えば、S4スリープ状態すなわち休止状態をサポートするようにハードウェアをいかに構築するかを規定するACPI仕様がある。S4スリープ状態では、コンピューティングデバイスはディープスリープになり、節電する。S4スリープ状態では、コンピュータ装置のOSは、全てのメモリ内容を取り出し、ディスクファイル(ハードディスク)に保存する。別の状態はS3スリープ状態であり、この状態はスタンバイ状態と見なされる。S3では、内容はシステムのランダムアクセスメモリ(RAM)に保持される。小量の電力が、システムRAM及びチップセットに提供され、ラップトップの蓋が開けられること又はホットキーのアクティベート等の復帰イベントをキャッチするか、又はリッスンする。それとは対照的に、S4スリープ状態では、あらゆるものの電源が切られる。   In addition, there may be standards and specifications for power management of computing devices. For example, the US Energy Star rating provides an exemplary requirement for a machine (computing device) to consume only 100 watts. Advanced Configuration and Power Interface, or ACPI (Advanced Configuration & Power Interface) (see http://www.acpi.info), is used to identify standards for power management by Intel, Microsoft, Toshiba, And an industry specification jointly developed by Hewlett-Packard. Sleep states and transitions are defined by the ACPI specification. For example, there is an ACPI specification that defines how the hardware is built to support S4 sleep or hibernation. In the S4 sleep state, the computing device goes into deep sleep and saves power. In the S4 sleep state, the OS of the computer device extracts all memory contents and saves them in a disk file (hard disk). Another state is the S3 sleep state, which is considered a standby state. In S3, the contents are held in the system's random access memory (RAM). A small amount of power is provided to the system RAM and chipset to catch or listen for a return event such as a laptop lid being opened or hot key activation. In contrast, everything is turned off in the S4 sleep state.

コンピューティングデバイスは複数の動作コンテキストを用いることができ、アプリケーションは同じOS又は異なるOSで実行される。例えば、ユーザーは、Windows(登録商標)OS等の第1のOSで実行中のゲームをプレイすることができる。ゲームのプレイは1つの動作コンテキストである。次に、ユーザーは、Linux(登録商標) OS等の第2のOSで実行中のタッチパッドを用いたいと望む。タッチパッドアプリケーションは、別の動作コンテキストである。動作コンテキストの切り替えは、ラップトップコンピューティングデバイスの蓋を閉じること又はコンピューティングデバイスの指定のホットキーをアクティベートすること等のイベントを含むことができる。動作コンテキストの切り替えが、或るOSをシャットダウンし、別のOSを起動することを含むことを考えると、動作コンテキスト間の時間が長くなるおそれがある。最小の遅延で動作コンテキストを迅速に切り替えることがきわめて望ましい。コンピューティングデバイスで実行中の仮想マシンが、動作コンテキスト間に最小の遅延を提供可能なことを理解されたい。仮想マシンの実行には、コンピューティングデバイスの大きなコンピューティングリソース及び電力が必要である。これは、コンピューティングデバイスが、電力リソースを含め、限られたリソースを有する場合に問題になるおそれがある。これは、コンピューティングデバイスが、タブレット又はウルトラブック等のフォームファクタが小さい装置である場合に特に当てはまる。したがって、最小の遅延、コンピューティングリソース、及び電力で動作コンテキストを切り替え可能なことが望ましい。   Computing devices can use multiple operating contexts and applications run on the same OS or different OSs. For example, the user can play a game running on a first OS such as a Windows (registered trademark) OS. Game play is one action context. Next, the user wishes to use a touchpad running on a second OS, such as the Linux (registered trademark) OS. A touchpad application is another operational context. The switching of operating context can include events such as closing the lid of the laptop computing device or activating a designated hot key of the computing device. Considering that switching of operation contexts includes shutting down one OS and starting another OS, the time between the operation contexts may be long. It is highly desirable to switch operating contexts quickly with minimal delay. It should be understood that a virtual machine running on a computing device can provide minimal delay between operational contexts. Virtual machine execution requires large computing resources and power of the computing device. This can be a problem when the computing device has limited resources, including power resources. This is especially true when the computing device is a small form factor device such as a tablet or ultrabook. Therefore, it is desirable to be able to switch operating contexts with minimal delay, computing resources, and power.

詳細な説明は、添付図を参照して記載する。図中、参照符号の最も左側の桁(複数の場合もある)は、その参照符号が最初に現れる図を識別する。同じ符号が、同様の特徴及び構成要素を参照するのに図面全体を通して用いられる。   The detailed description is described with reference to the accompanying figures. In the figure, the leftmost digit (s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.

動作コンテキストを切り替えるフローチャートの一例である。It is an example of the flowchart which switches an operation context. 動作コンテキストを切り替える場合にオペレーティングシステムを実行するフローチャートの一例である。It is an example of the flowchart which performs an operating system, when switching an operation context. 動作コンテキストを切り替える場合にシステム管理(モード)割り込み又はSMIハンドラーを開始し実行するフローチャートの一例である。10 is an example of a flowchart for starting and executing a system management (mode) interrupt or SMI handler when switching between operation contexts. 動作コンテキストを切り替える場合に切り替えられたオペレーティングシステムコンテキストを保持するフローチャートの一例である。It is an example of the flowchart holding the operating system context switched when switching an operation context. 動作コンテキストを切り替える場合にターゲット切り替えコンテキストを再開するフローチャートの一例である。It is an example of the flowchart which restarts a target switching context when switching an operation context. 動作コンテキストを切り替える場合にオペレーティングシステム再開ベクトルにジャンプするフローチャートの一例である。It is an example of the flowchart which jumps to an operating system restart vector when switching an operation context. 動作コンテキストを切り替える場合に、基本入出力システム(BIOS)で実施される事前拡張可能ファームウェアインターフェース(Pre−EFIすなわちPEI:Pre Extensible Firmware Interface)においてスリープ状態から復帰するフローチャートの一例である。FIG. 10 is an example of a flowchart for returning from a sleep state in a pre-extensible firmware interface (Pre-EFI or PEI: Pre Extensible Firmware Interface) implemented in a basic input / output system (BIOS) when switching between operation contexts. 動作コンテキストを切り替える場合に、基本入出力システム(BIOS)で実施されるドライバー実行環境(DXE:Driver Execution Environment)においてスリープ状態から復帰するフローチャートの一例である。FIG. 6 is an example of a flowchart for returning from a sleep state in a driver execution environment (DXE) implemented in a basic input / output system (BIOS) when switching between operation contexts. 動作コンテキストの切り替えを実施するコンピューティングデバイスのアーキテクチャの一例のブロック図である。FIG. 2 is a block diagram of an example of a computing device architecture that implements switching of operating contexts. 動作コンテキストの切り替えを実施するメモリの一例のブロック図である。It is a block diagram of an example of the memory which implements switching of an operation context.

コンピューティングデバイスでの動作コンテキストの切り替えは、スタンバイ状態すなわちS3スリープ状態等の低電力状態を利用する。低電力状態を用いることにより、動作コンテキストの切り替え及び/又は動作コンテキストの呼び出しの時間を最小にすることができる。   The switching of the operation context in the computing device uses a low power state such as a standby state, that is, an S3 sleep state. By using the low power state, the operation context switching and / or operation context invocation time can be minimized.

概説
本明細書には、低電力状態を実施して、コンピューティングデバイスでの動作コンテキストの切り替え(例えば、変更)を可能にする方法、コンピューティングデバイス及びコンピュータ可読記憶媒体が記載される。通常、S3状態等のスタンバイ状態は、1つのプロセス及び1つのインスタンスに用いられるが、本明細書には、N個の動作コンテキストにスタンバイ状態すなわちS3状態を用いる方法、コンピューティングデバイス、及びコンピュータ可読記憶媒体が記載される。例えば、スタンバイ状態すなわちS3状態を用いて、時間効率的かつ応答的に動作コンテキストを切り替えることができる。動作は、プラットフォームに非依存又はOSに非依存であることができ、コンピューティングデバイスの基本入出力システム(BIOS)を用いて実施される。
Overview Described herein are methods, computing devices, and computer-readable storage media that implement a low power state to enable switching (eg, changing) of operating contexts on a computing device. Typically, a standby state, such as the S3 state, is used for one process and one instance, but the present specification describes a method, computing device, and computer readable method that uses the standby state, or S3 state, for N operational contexts. A storage medium is described. For example, the operation context can be switched in a time efficient and responsive manner using the standby state, that is, the S3 state. The operation can be platform independent or OS independent and is implemented using the basic input / output system (BIOS) of the computing device.

以下の詳細な説明では、本発明の完全な理解を提供するために、多くの特定の詳細が記載される。しかしながら、これらの特定の詳細なしでも本発明を実施可能なことが当業者には理解されよう。他の場合、既知の方法、手順、構成要素、及び回路は、本発明を曖昧にしないように詳述されていない。   In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, those skilled in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the present invention.

以下の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビット又は二進デジタル信号に対する演算のアルゴリズム的表現及び象徴的表現に関して提示される。これらのアルゴリズム的な説明及び表現は、データ処理分野の当業者が、他の当業者に仕事の本質を伝えるのに用いる技法とすることができる。   Some portions of the detailed descriptions that follow are presented in terms of algorithmic and symbolic representations of operations on data bits or binary digital signals within a computer memory. These algorithmic descriptions and representations can be the techniques used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art.

別途指定のある場合を除き、以下の考察から明らかなように、本明細書全体を通して、例えば「処理」、「コンピューティング」、「計算」、「決定」等の用語を利用する考察が、コンピューティングシステムのレジスタ及び/又はメモリ内の電子的数量等の物理的数量として表されるデータを操作し、及び/又はコンピューティングシステムのメモリ、レジスタ、他のそのような情報記憶装置、若しくは伝送装置内の物理的数量として同様に表される他のデータに変換するコンピュータすなわちコンピューティングシステム又は同様の電子コンピューティングデバイスの動作及び/又はプロセスを指すことが理解される。数量を指定しない("a" or "an")用語は、本明細書に用いられる場合、1つ又は2つ以上として定義される。複数という用語は、本明細書に用いられる場合、2つ又は3つ以上として定義される。別という用語は、本明細書に用いられる場合、少なくとも2つ目又は3つ目以上として定義される。含む(including)及び/又は有するという用語は、本明細書に用いられる場合、含む、備える(comprising)として定義されるが、これに限定されない。結合されるという用語は、本明細書で用いられる場合、任意の所望の形態で、例えば、機械的に、電子的に、デジタル的に、直接、ソフトウェアにより、ハードウェア等により、動作可能に結合されることとして定義される。本発明を様々な用途で用いることが可能なことを理解されたい。   Except where otherwise specified, as will be apparent from the discussion below, throughout this specification, considerations utilizing terms such as “processing”, “computing”, “calculation”, “decision”, etc. Manipulate data represented as physical quantities, such as electronic quantities in a register and / or memory of a computing system, and / or memory, registers, and other such information storage or transmission devices of a computing system It is understood that it refers to the operation and / or process of a computer or computing system or similar electronic computing device that translates into other data that is also represented as physical quantities within. A term that does not specify a quantity ("a" or "an"), as used herein, is defined as one or more. The term plural is defined as two or more as used herein. The term another, as used herein, is defined as at least a second or a third or more. The terms including and / or having, as used herein, are defined as including but not limited to. The term coupled as used herein is operably coupled in any desired form, eg, mechanically, electronically, digitally, directly, by software, hardware, etc. To be defined. It should be understood that the present invention can be used in a variety of applications.

幾つかの実施形態は、様々な装置及びシステム、例えば、パーソナルコンピュータ(PC)、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、タブレットコンピュータ、サーバーコンピュータ、ハンドヘルドコンピュータ、ハンドヘルド装置、個人情報端末(PDA)装置、ハンドヘルドPDA装置、オンボード装置、オフボード装置、ハイブリッド装置、車両装置、非車両装置、モバイル装置若しくはポータブル装置、消費者装置、非モバイル装置若しくは非ポータブル装置、無線通信基地局、及び/又は無線通信装置と併せて用いることができる。本明細書では、そのような装置は一括して「コンピューティングデバイス」と呼ばれる。   Some embodiments may include various devices and systems, such as personal computers (PCs), desktop computers, mobile computers, laptop computers, notebook computers, tablet computers, server computers, handheld computers, handheld devices, personal information terminals. (PDA) device, handheld PDA device, on-board device, off-board device, hybrid device, vehicle device, non-vehicle device, mobile device or portable device, consumer device, non-mobile device or non-portable device, wireless communication base station, And / or can be used in conjunction with a wireless communication device. Herein, such devices are collectively referred to as “computing devices”.

コンピューティングデバイスは低電力状態を実施し、例えば、コンピューティングデバイスはACPI仕様を用い、S3スリープ状態すなわちスタンバイ状態になることができる。コンピューティングデバイスは、「完全な」OS、専用OS、OS/アプリケーション等を含む1つ又は複数のOSを含む。コンピューティングデバイスで実行中のアプリケーションは、各自の動作コンテキストで実行することができる。各OS及び動作コンテキストは、低電力状態(例えば、スタンバイ状態すなわちS3状態)と互換性があるか、又は低電力状態を利用する。動作コンテキスト又はOSは、ラップトップコンピューティングデバイスの蓋を閉じること及び/又はコンピューティングデバイスのホットキーをアクティベートすること等のユーザー行動により、呼び出すことができるか、又は或るOS/動作コンテキストから別のOS/動作コンテキストに切り替えることができる。予めプログラムされ、及び/又はコンピューティングデバイスの一部として統合され、及び/又はユーザーによってプログラムされる他のトリガーイベントを実施することも可能なことを理解されたい。   The computing device implements a low power state, for example, the computing device may use the ACPI specification and enter an S3 sleep state or standby state. The computing device includes one or more OSs including a “complete” OS, a dedicated OS, an OS / application, etc. An application running on a computing device can run in its own operating context. Each OS and operating context is compatible with or utilizes a low power state (eg, a standby state or S3 state). The operational context or OS can be invoked by a user action such as closing the lid of the laptop computing device and / or activating a hot key of the computing device, or separated from an OS / operational context. The OS / operation context can be switched to. It should be understood that other trigger events may be implemented that are pre-programmed and / or integrated as part of a computing device and / or programmed by a user.

記載の方法及びプロセスは、コンピューティングデバイスの基本入出力システム(BIOS)の一環として実施することができる。さらに、コンピューティングデバイスは、特定のBIOSブート仕様及び/又は拡張可能ファームウェアインターフェース(EFI)ブートマネージャ仕様を実施する。本方法及びプロセスはまた、システム管理モード(SMM:System Management Mode)割り込み(SMI:SMM Interrupt)動作、特にSMIハンドラーを含む定義されたSMM動作を利用することもできる。SMIハンドラーは特に、OSをブートする際に「エラー」を検出してエラーに対処することに関連する。   The described methods and processes may be implemented as part of a basic input / output system (BIOS) of a computing device. In addition, the computing device implements certain BIOS boot specifications and / or extensible firmware interface (EFI) boot manager specifications. The method and process may also utilize a System Management Mode (SMM) interrupt (SMM) operation, particularly a defined SMM operation that includes an SMI handler. The SMI handler is particularly related to detecting an “error” and dealing with the error when booting the OS.

プロセス例
これより図面を参照すると、図1は、動作コンテキストを切り替えるプロセス100の一例を示す。ブロック102において、コンピューティングデバイスに電源が投入されることが前提されるが、コンピューティングデバイスは幾つかのスリープ状態のうちの1つであることができる。コンピューティングデバイスがスタンバイ状態、例えば、S3スリープ状態であるか否かが判断される。特に、ブロック104において、コンピューティングデバイスがスタンバイ状態すなわちS3スリープ状態から再開するか否かが判断される。
Example Process Referring now to the drawings, FIG. 1 illustrates an example process 100 for switching operational contexts. In block 102, it is assumed that the computing device is powered on, but the computing device can be in one of several sleep states. It is determined whether the computing device is in a standby state, eg, an S3 sleep state. In particular, at block 104, it is determined whether the computing device resumes from a standby state, ie, an S3 sleep state.

コンピューティングデバイスがスタンバイ状態すなわちS3スリープ状態から再開されていない場合、ブロック104の「NO」分岐を辿り、ブロック106において、コンピューティングデバイスはターゲットOS用のリソースを確保し、ターゲットOSは、コンピューティングデバイスが特定の動作コンテキストに用いるべきOSとして定義される。ブロック108において、OS切り替えコンテキスト用のリソースが確保される。例えば、OSをWindows(登録商標)OSからLinux(登録商標) OSに切り替えることができる。ブロック110において、所望のOSが開始される。   If the computing device has not been resumed from the standby state, ie, the S3 sleep state, the “NO” branch of block 104 is followed, and at block 106 the computing device reserves resources for the target OS, and the target OS It is defined as the OS that the device should use for a specific operating context. At block 108, resources for OS switching context are reserved. For example, the OS can be switched from a Windows (registered trademark) OS to a Linux (registered trademark) OS. At block 110, the desired OS is started.

コンピューティングデバイスがスタンバイ状態すなわちS3スリープ状態から来る場合、ブロック104の「YES」分岐を辿り、ブロック112において、OS切り替えフラグが設定されているか否かが判断される。特に、ブロック112において、所望の動作コンテキストをサポートするために、OSを切り替えるべきであるか、又は変更すべきであるか否かに判断が向けられる。判断が、以前の同じOSを用いるべきであるというものである場合、112の「NO」分岐を辿り、ブロック114において、スタンバイ状態すなわちS3状態からの通常の再開が実行される。次に、ブロック110において、OSが開始される。   If the computing device comes from the standby state, i.e., the S3 sleep state, the "YES" branch of block 104 is followed, and in block 112 it is determined whether the OS switch flag is set. In particular, at block 112, a determination is directed whether the OS should be switched or changed to support the desired operational context. If the decision is to use the same previous OS, then follow the “NO” branch of 112 and at block 114 a normal resume from the standby or S3 state is performed. Next, at block 110, the OS is started.

コンピューティングデバイス100がOSを変更すべきであるか、又は切り替えるべき場合、ブロック112の「YES」分岐を辿り、コンピューティングデバイスは、或るOSのスタンバイ状態すなわちS3状態から、別のOSで実行される動作コンテキストに移る。したがって、他方のOSを復帰させるか、又はブートアップする必要がある。   If the computing device 100 should change or switch the OS, it will follow the “YES” branch of block 112 and the computing device will run from another OS's standby or S3 state in another OS. Move to the operation context to be executed. Therefore, it is necessary to restore or boot up the other OS.

ブロック116において、OS切り替えフラグが、メンテナンス目的でクリアされる。ブロック118において、ブートターゲットへの更新が実行される。OSごとに、メモリが、各OSのブートアップ用に確保される。再開が、所望のOSの各メモリロケーションから実行される。ブロック120において、ターゲットOS用のリソースが確保される。ブロック122において、ブートモードからターゲット/切り替え先のOSの完全ブートへのオーバーライドが実行される。ブロック124において、コンピューティングデバイスのBIOS時、ブートが実行されて、異なるOS又はターゲットOSを開始する。ブロック126において、ターゲットOSがブートされ、ブロック110において、OSが開始される。   At block 116, the OS switch flag is cleared for maintenance purposes. At block 118, an update to the boot target is performed. For each OS, memory is reserved for booting up each OS. Resume is performed from each memory location of the desired OS. In block 120, resources for the target OS are reserved. In block 122, an override from the boot mode to a full boot of the target / switched OS is performed. At block 124, during the BIOS of the computing device, a boot is performed to start a different OS or target OS. At block 126, the target OS is booted, and at block 110, the OS is started.

図2は、動作コンテキストを切り替える場合にオペレーティングシステムを実行するプロセス200を示す。プロセス200はプロセス100から続く。ブロック110において、OSが開始される。ブロック202において、ラップトップの蓋を閉じる又はホットキーが押下される等のトリガーイベントが、異なる動作コンテキスト(すなわち、異なるOSで実行中の別の動作コンテキスト)を実行中の異なるOSへの切り替えを開始するか否かが判断される。異なるOSへの切り替えがないとの判断である場合、ブロック202の「NO」分岐を辿り、フロー200はブロック110に戻る。その他の場合、ブロック202の「YES」分岐を辿り、ブロック204において、OS切り替えフラグが設定される。ブロック206において、スタンバイ状態すなわちS3状態がトリガーされる。S3状態をトリガーすることにより、ブロック208において、SMIハンドラーが呼び出されるか、又は開始される(図3に関する考察において更に後述される)。SMIハンドラーは特に、OSをブートする際の「エラー」の検出及び対処に関連する。   FIG. 2 shows a process 200 for executing an operating system when switching between operating contexts. Process 200 continues from process 100. At block 110, the OS is started. In block 202, a trigger event, such as closing the laptop lid or pressing a hot key, switches to a different OS running a different operating context (ie, another operating context running on a different OS). It is determined whether or not to start. If it is determined that there is no switch to a different OS, the “NO” branch of block 202 is followed and flow 200 returns to block 110. In other cases, the “YES” branch of block 202 is followed, and in block 204, the OS switching flag is set. At block 206, a standby or S3 state is triggered. By triggering the S3 state, at block 208, the SMI handler is invoked or initiated (further described below in the discussion regarding FIG. 3). The SMI handler is particularly related to the detection and handling of “errors” when booting the OS.

ブロック110を実行することは、ブロック210において、OS切り替えフラグが設定されているか否かを判断することも含む。ブロック210の「NO」分岐を辿り、フロー200はブロック110に戻る。OSフラグ切り替えが設定されていた場合、ブロック210の「YES」分岐を辿り、フロー200はブロック206に進み、スタンバイ状態すなわちS3状態をトリガーする。   Performing block 110 also includes determining at block 210 whether an OS switch flag is set. Following the “NO” branch of block 210, flow 200 returns to block 110. If OS flag switching has been set, the “YES” branch of block 210 is followed and flow 200 proceeds to block 206 to trigger a standby state, ie, the S3 state.

図3は、システム管理(モード)割り込み又はSMIハンドラーを開始するプロセス300の一例を示す。スタンバイ状態すなわちS3状態をトリガーすることによって、ブロック208において、SMIハンドラーが開始される。プロセス300は、SMIハンドラーを呼び出すようなブロックを含め、アドバンスドコンフィグレーションアンドパワーインターフェースすなわちACPI規格に基づくことができる。ブロック302において、S3レジスタは、コンテキスト情報の保存を含め、ソースOSのメモリ(すなわち、RAM)に保存される。ディープスリープ状態すなわちS4状態とは対照的に、スタンバイ状態すなわちS3状態では、コンピューティングデバイスは、ディープスリープ状態すなわちS4状態よりも迅速に復帰し実行することができる。換言すれば、動作状態になるために、ディープスリープ状態すなわちS4状態と比較した場合、スタンバイ状態すなわちS3状態では初期化が最小である。   FIG. 3 illustrates an example process 300 for initiating a system management (mode) interrupt or SMI handler. By triggering the standby or S3 state, at block 208, the SMI handler is initiated. Process 300 may be based on an advanced configuration and power interface or ACPI standard, including blocks that invoke SMI handlers. In block 302, the S3 register is saved in the memory (ie, RAM) of the source OS, including saving context information. In contrast to the deep sleep state or S4 state, in the standby state or S3 state, the computing device can wake up and execute more quickly than the deep sleep state or S4 state. In other words, in order to enter the operating state, initialization is minimal in the standby state, ie, the S3 state, when compared to the deep sleep state, ie, the S4 state.

ブロック304において、OSを切り替えるか否かが判断される。OSを切り替えないとの判断である場合、ブロック304の「NO」分岐を辿り、ブロック306において、プロセスは継続する。OSを切り替えるべき場合、ブロック304の「YES」分岐を辿り、ブロック308において、OS切り替えコンテキストは保持されるか、又は保存される(図4に関する考察で更に後述する)。   In block 304, it is determined whether to switch the OS. If it is determined that the OS is not to be switched, the “NO” branch of block 304 is followed and the process continues at block 306. If the OS is to be switched, the “YES” branch of block 304 is followed, and at block 308, the OS switch context is retained or saved (discussed further below in the discussion regarding FIG. 4).

ブロック310において、ターゲットOSをブートすべきか否かが判断される。ターゲットOSをブートすべきではない場合、ブロック310の「NO」分岐を辿り、ブロック312において、OSの自動復帰が設定される。そのターゲットOSをブートすべき場合、ブロック310の「YES」分岐を辿り、ブロック314において、ターゲットOS切り替えコンテキストが再開される(図5に関する考察で更に後述する)。   At block 310, it is determined whether the target OS should be booted. If the target OS is not to be booted, the “NO” branch of block 310 is followed, and in block 312, automatic return of the OS is set. If the target OS is to be booted, the “YES” branch of block 310 is followed, and the target OS switching context is resumed at block 314 (discussed further below in the discussion regarding FIG. 5).

ブロック316において、ターゲットOSの再開ベクトルへのジャンプが実行される(図6に関する考察で更に後述する)。コンテキストを切り替える場合、ソフトウェアコードフローは効率的に、コンピューティングデバイスの初期リセットベクトルから開始される。BIOSコードが実行され、スタンバイ状態すなわちS3状態の通常の再開コードパスの一環として、ターゲットOSのローダーを実行する(すなわち、OSが効率的にロードされる)代わりに、メモリ内のロケーションに記憶することができるOS再開ベクトルへのジャンプが実行される。そのようなコードは、OSがそれ自体を、現存のスタンバイ状態すなわちS3状態から復帰させる手段によって実施することができる。BIOSがOSを再び復帰させようとする場合、このコードを実行することができる。ブロック318において、ターゲットOSが実行される。これは、所望の動作コンテキストを実行することを含むことができる。   At block 316, a jump to the resume vector of the target OS is performed (discussed further below in the discussion regarding FIG. 6). When switching context, the software code flow is efficiently started from the initial reset vector of the computing device. The BIOS code is executed and stored in a location in memory instead of executing the target OS loader (ie, the OS is efficiently loaded) as part of the normal resume code path in the standby or S3 state. A jump to an OS resumption vector that can be performed is performed. Such code can be implemented by means by which the OS returns itself from the existing standby or S3 state. This code can be executed if the BIOS tries to restore the OS again. At block 318, the target OS is executed. This can include executing a desired operational context.

図4は、動作コンテキストを切り替える場合に切り替えられたオペレーティングシステムコンテキストを保持するプロセス400の一例を示す。ブロック308に続き、規定されるACPI要件に従い、ブロック402において、ACPIテーブル内の値のコピーが保存される。ブロック404において、ソースOSコンテキスト用に確保された指定のメモリが、後に使用又は参照するために、保存又は保持される。特定の実施態様では、メモリ(すなわち、RAM)内の特定のエリアが指定される。例えば、RAM内の「N」MB未満のメモリが指定される。次に、プロセス400は、ブロック310におけるターゲットOSをブートすべきであるか否かの判断に戻る。   FIG. 4 shows an example of a process 400 for maintaining a switched operating system context when switching between operational contexts. Following block 308, a copy of the value in the ACPI table is saved at block 402 in accordance with the prescribed ACPI requirements. At block 404, the designated memory reserved for the source OS context is saved or retained for later use or reference. In particular implementations, a particular area in memory (ie, RAM) is specified. For example, a memory of less than “N” MB in the RAM is designated. The process 400 then returns to determining whether the target OS should be booted at block 310.

図5は、動作コンテキストを切り替える場合にターゲット切り替えコンテキストを再開するプロセス500の一例を示す。ブロック314に続き、ブロック502において、保存されたスタンバイ状態すなわちS3状態のレジスタが再開される。ブロック504において、保存されたACPIテーブルが呼び出され、再開される。ブロック506において、指定のメモリ(すなわち、例えばブロック404において保存されたメモリ)が呼び出され、実施される。   FIG. 5 shows an example of a process 500 for resuming a target switching context when switching between operational contexts. Following block 314, in block 502, the saved standby or S3 state register is resumed. At block 504, the saved ACPI table is invoked and resumed. At block 506, the specified memory (ie, memory stored at block 404, for example) is recalled and implemented.

図6は、動作コンテキストを切り替える場合にオペレーティングシステム再開ベクトルにジャンプするプロセス600の一例である。プロセス600は、BIOS内の論理として実施することができる。そのような論理を用いて、スタンバイモードである複数のOSを管理することができる。BIOSは、どのOS再開ベクトルが起動されるかを制御するか、又は決定する。したがって、コンテキストが切り替えられる場合、現在の再開ベクトルは以前の再開ベクトルに切り替えられる。切り替えを実行するために、現在の再開ベクトルのロケーションを一時的な記憶装置に書き込み、新しい宛先OSにアクティブな古い再開ベクトルをリストアし、それを現在の再開ベクトルとして確立し、最終的に、その古い再開ベクトルを用いることができる。これは、コンテキストを失わずに様々な再開ベクトル間で安全に往復して「ピンポン」する能力を提供することができる。或る特定の実施態様では、確保されたメモリ領域を実施して、このデータをBIOSのコンテキスト内に保持することができる。BIOSは、コンテキストの切り替えを理解する計算プラットフォーム内のエンティティである。OSの再開ベクトルへのジャンプが行われるブロック316後、ブロック602において、SMMが呼び出された場合に再開するメモリ領域のコピーの保存が実行される。特に、実行される保存は、切り替え元のOSに関連付けられた任意の他の必要なデータとともに、古い再開ベクトルデータである。これは、データの損失を回避することを可能にし、将来にリストアし再び切り替える能力を可能にする。ブロック604において、以前に実行されていない場合、以前のOSが再開する、以前のメモリ領域のリストアが実行される。   FIG. 6 is an example of a process 600 that jumps to the operating system resume vector when switching between operating contexts. Process 600 may be implemented as logic within the BIOS. By using such logic, a plurality of OSs in the standby mode can be managed. The BIOS controls or determines which OS resume vector is activated. Thus, when the context is switched, the current resume vector is switched to the previous resume vector. To perform the switch, write the location of the current resume vector to temporary storage, restore the active old resume vector to the new destination OS, establish it as the current resume vector, and finally The old restart vector can be used. This can provide the ability to “ping-pong” safely back and forth between the various resume vectors without losing context. In certain implementations, a reserved memory area may be implemented to hold this data in the BIOS context. The BIOS is an entity in the computing platform that understands context switching. After block 316 where the jump to the OS resume vector is performed, block 602 performs a save of a copy of the memory area that resumes when SMM is invoked. In particular, the save performed is the old resume vector data along with any other necessary data associated with the switching source OS. This makes it possible to avoid data loss and the ability to restore and switch back in the future. In block 604, a restore of the previous memory area is performed where the previous OS resumes if not previously executed.

用いられるメモリ領域は、BIOS内のプライベートに確保されたメモリストアとして見なすことができ、それにより、各動作コンテキストは効率的に、それぞれに確保された「スロット」を有するため、十分なスペースが、「N」個のコンテキストの確保に割り振られ、他の動作コンテキストをオーバーライトする必要性をなくす。例えば、2つの動作コンテキストが存在する場合、動作コンテキスト1のスロット1が存在し、動作コンテキスト2のスロット2が存在することができる。したがって、動作コンテキスト1から動作コンテキスト2に切り替える場合、動作コンテキスト1に関連付けられたアクティブ情報をスロット#1に保存することができる。スロット#2の再開ベクトル等の現在のアクティブな設定に用いられるデータは、スロット#2から読み出すことができる。ブロック606において、ブートストラッププロセスが実行され、このプロセスは、メモリ領域を、代替のOS再開ベクトルにジャンプすることができるようにするコードで置換することを含む。特に、ブロック606において、各プライベートストア又は「スロット」内のデータを用いて、現在の挙動を確立する。したがって、プライベートストア又は「スロット」は、データの「バックアップ」と見なすことができる。実際の構成データ(例えば、現在の再開情報)に、そのようなバックアップからのデータがプログラムされる。「mwait」等のコマンドがアプリケーションプロセスに用いられて、電力状態を設定することができる。ブロック608において、再開命令が開始されて、SMIハンドラープロセスから出る。SMIハンドラープロセスは、様々な事象によって開始することができるが、この例では、SMIハンドラープロセスは、SMIをトリガーする、スタンバイ状態すなわちS3状態になるACPI S状態移行によって定義されるように開始される。したがって、ブロック602は、SMIハンドラーに入る場合であり、ブロック608はSMIハンドラーから出ることである。ブロック610において、上述したように、動作はブロック318に続く。   The memory area used can be viewed as a private reserved memory store in the BIOS, so that each operational context efficiently has its own reserved “slot”, so there is enough space Allocated to reserve "N" contexts, eliminating the need to overwrite other operational contexts. For example, if there are two operational contexts, slot 1 of operational context 1 can exist and slot 2 of operational context 2 can exist. Therefore, when switching from the operation context 1 to the operation context 2, the active information associated with the operation context 1 can be stored in the slot # 1. Data used for the current active setting, such as the restart vector for slot # 2, can be read from slot # 2. At block 606, a bootstrap process is performed that includes replacing the memory area with code that allows jumping to an alternate OS resume vector. In particular, at block 606, the current behavior is established using the data in each private store or “slot”. Thus, a private store or “slot” can be considered a “backup” of data. Data from such a backup is programmed into actual configuration data (eg, current resume information). A command such as “mwait” can be used in the application process to set the power state. At block 608, a resume instruction is initiated to exit the SMI handler process. The SMI handler process can be initiated by various events, but in this example, the SMI handler process is initiated as defined by the ACPI S state transition that goes into the standby or S3 state that triggers the SMI. . Thus, block 602 is when entering the SMI handler and block 608 is exiting from the SMI handler. In block 610, operation continues to block 318 as described above.

BIOSプロセス
上述したように、実施態様は、コンピューティングデバイスのBIOSを用いて実行することができる。一般に、BIOSは、「電源投入」からの動作を実行して、コンピューティングデバイスのOSにハンドオフする。BIOS動作は様々なフェーズを含むことができる。BIOSの部分は、統合拡張ファームウェアインターフェースすなわちUEFI又はEFIとすることができる。Pre−EFIすなわちPEIは、コンピューティングデバイスBIOS初期化の早期フェーズである。ドライバー実行環境すなわちDXEは、コンピューティングデバイスのBIOS初期化の後半で行われる。DXEは、BIOSでの、OSが起動される場所である。
BIOS Process As described above, implementations can be performed using the BIOS of the computing device. In general, the BIOS performs an operation from “power on” and hands off to the OS of the computing device. The BIOS operation can include various phases. The BIOS portion can be a unified enhanced firmware interface, ie UEFI or EFI. Pre-EFI or PEI is an early phase of computing device BIOS initialization. The driver execution environment, DXE, is performed in the second half of the BIOS initialization of the computing device. DXE is a place where the OS is started in the BIOS.

スタンバイ状態すなわちS3状態では、メモリ(すなわち、RAM)への保存により、多くの初期化を再び行う必要がないため、OSへの再開は比較的迅速に行うことができる。スタンバイ状態すなわちS3状態では、起動はPEIフェーズにあることができる。DXEは、OSを少なくとも1回ブートすべき場合に実施され、各OSの完全なBIOS初期化の一部である。OSブートは、少なくとも1回実施されて、スタンバイ状態すなわちS3状態になる。   In the standby state, that is, the S3 state, it is not necessary to perform many initializations again due to the storage in the memory (that is, the RAM), so that the OS can be resumed relatively quickly. In the standby state or S3 state, the activation can be in the PEI phase. DXE is performed when the OS is to be booted at least once and is part of each OS's complete BIOS initialization. The OS boot is performed at least once and enters a standby state, that is, an S3 state.

一般に、S3フロー又はS3モードのいずれかで、PEIにおいてブートアップする場合、ブートターゲットOSが以前のターゲットであったか否かが判断される。例えば、Windows(登録商標)OSからS3モードに入り、Windows(登録商標)OSから戻る。この事例が当てはまる場合、通常フローが再開される。この事例が当てはまらない場合、代替のフロー又はOS再開ベクトルへの切り替えが実行される。他のOSが起動され、スタンバイ状態すなわちS3状態になりつつあるか否かが判断される。判断が真ではない場合、プロセスはDXE及び通常のブートフローに進み、DXEにおいてOSを起動する。   Generally, when booting up in PEI in either the S3 flow or the S3 mode, it is determined whether or not the boot target OS was the previous target. For example, the S3 mode is entered from the Windows (registered trademark) OS and the process returns from the Windows (registered trademark) OS. If this case is true, the normal flow is resumed. If this is not the case, a switch to an alternative flow or OS restart vector is performed. It is determined whether another OS is activated and is in a standby state, that is, an S3 state. If the determination is not true, the process proceeds to DXE and the normal boot flow and boots the OS in DXE.

図7は、動作コンテキストを切り替える場合に、事前のPre−EFIすなわちPEIにおいてスリープ状態から復帰するプロセス700の一例である。プロセス700は、BIOSによって実施することができる。ブロック702において、電源投入が開始されるか、又は以前のBIOSフローからの復帰が開始される。ブロック704において、ブートモードがスタンバイ状態すなわちS3状態から再開中であるか否かが判断される。   FIG. 7 is an example of a process 700 for returning from sleep state in prior Pre-EFI or PEI when switching between operational contexts. Process 700 may be performed by a BIOS. At block 702, power on is initiated or a return from a previous BIOS flow is initiated. At block 704, it is determined whether the boot mode is resuming from the standby state, ie, the S3 state.

スタンバイ状態すなわちS3状態からのブートモードが再開されない場合、ブロック704の「NO」分岐を辿り、ブロック706において、非スタンバイ状態すなわち非S3状態が実行される。ブロック708において、ブートターゲットが第2のOS又は他のOSからのものであるか否かが判断される。ブロック708の「NO」分岐を辿り、既存又は第1のOSブートフローが続く。ブロック712において、ハンドオフブロックが設定されて、ブートターゲットが既存のOS又は第1のOSであることを示す。ブロック714において、BIOSプロセスが継続される。ブロック708の「YES」分岐を辿り、ブロック716において、非スタンバイ状態すなわち非S3フローが実行される。ブロック718において、ハンドオフブロックが設定されて、ブートターゲットが第2のOS又は他のOSであることを示す。ブロック714において、BIOSが継続される。   If the boot mode from the standby or S3 state is not resumed, the “NO” branch of block 704 is followed, and at block 706, the non-standby or non-S3 state is executed. At block 708, it is determined whether the boot target is from the second OS or another OS. Following the “NO” branch of block 708, the existing or first OS boot flow continues. At block 712, a handoff block is set to indicate that the boot target is an existing OS or a first OS. At block 714, the BIOS process continues. Following the “YES” branch of block 708, at block 716, a non-standby state, ie, a non-S3 flow, is performed. At block 718, a handoff block is set to indicate that the boot target is the second OS or another OS. At block 714, the BIOS continues.

スタンバイ状態すなわちS3状態からのブートモードが再開される場合、ブロック704の「YES」分岐を辿り、ブロック720において、S3フローが続く。ブロック722において、ブートターゲットが以前のブートターゲットからのものであるか否かが判断される。ブロック722の「YES」分岐を辿り、ブロック724において、通常の再開フローが続く。ブロック722の「NO」分岐を辿り、代替のOS再開ベクトルへの切り替えが実行される。ブロック728において、OSがスタンバイ状態すなわちS3状態からブートされたか否かが判断される。ブロック728の「NO」分岐を辿り、ブロック708が実行される。728の「YES」分岐を辿り、ブロック730において、コンテキストが保存され、代替のOS再開ベクトルにジャンプする。   If the boot mode from the standby or S3 state is resumed, the “YES” branch of block 704 is followed, and at block 720, the S3 flow continues. At block 722, it is determined whether the boot target is from a previous boot target. Following the “YES” branch of block 722, the normal resume flow continues at block 724. Following the “NO” branch of block 722, a switch to the alternate OS resume vector is performed. At block 728, it is determined whether the OS has been booted from the standby state, ie, the S3 state. Following the “NO” branch of block 728, block 708 is executed. Following the “YES” branch at 728, at block 730, the context is saved and jumps to an alternate OS resume vector.

図8は、動作コンテキストを切り替える場合に、DXEにおいてスリープ状態から復帰するプロセス800の一例である。プロセス800は、BIOSによって実施することができる。ブロック802において、ブートオプションフローが実行される。ブロック804において、OS切り替えBIOSオプションがイネーブルされるか否かが判断される。ブロック804の「NO」分岐を辿り、ブロック806において、PEIフェーズからのハンドオフブロックが切り替えを示すか否かが判断される。ブロック806の「YES」分岐を辿り、ブロック808において、ブートオプションは、代替のOSを含むメモリストアを指すように変更される。ブロック806の「NO」分岐を辿り、ブロック810において、BIOSプロセスが継続される。OS切り替えBIOSオプションがイネーブルされる場合、ブロック804の「YES」分岐を辿り、動作コンテキストの呼び出しをトリガーした開始ホットキー又は開始アプレットをディセーブルするコードが適用される。ブロック810において、BIOSプロセスが継続される。   FIG. 8 is an example of a process 800 for returning from a sleep state in DXE when switching between operation contexts. Process 800 may be performed by a BIOS. At block 802, a boot option flow is executed. At block 804, it is determined whether the OS switch BIOS option is enabled. Following the “NO” branch of block 804, it is determined in block 806 whether the handoff block from the PEI phase indicates a switch. Following the “YES” branch of block 806, at block 808, the boot option is changed to point to the memory store containing the alternate OS. Following the “NO” branch of block 806, at block 810, the BIOS process continues. If the OS switch BIOS option is enabled, follow the “YES” branch of block 804 and code is applied that disables the start hotkey or start applet that triggered the call to the operational context. At block 810, the BIOS process continues.

コンピューティングデバイスの例
図9は、動作コンテキストの切り替えを実施するコンピューティングデバイス900の一例を示す。上述したように、コンピューティングデバイス900は、例えばタブレット、ラップトップコンピュータ等の様々な装置を含むことができる。
Example Computing Device FIG. 9 illustrates an example computing device 900 that performs operational context switching. As described above, computing device 900 may include a variety of devices such as tablets, laptop computers, and the like.

コンピューティングデバイス900は、1つ又は複数のプロセッサであるプロセッサ902を含む。プロセッサ902は、1つの処理ユニット又は幾つかの処理ユニットとすることができ、それらは全て1つ若しくは複数の計算ユニット又は複数のコアを含むことができる。プロセッサ902は、1つ又は複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラー、デジタル信号プロセッサ、中央演算処理装置、状態マシン、論理回路、及び/又は動作命令に基づいて信号を操作する任意の装置として実施することができる。機能の中でも特に、プロセッサ902は、メモリ904又は他のコンピュータ可読記憶媒体に記憶されたコンピュータ可読命令又はプロセッサアクセス可能な命令をフェッチして実行するように構成することができる。   Computing device 900 includes a processor 902 that is one or more processors. The processor 902 can be one processing unit or several processing units, all of which can include one or more computing units or multiple cores. The processor 902 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. can do. Among other functions, the processor 902 can be configured to fetch and execute computer-readable instructions or processor-accessible instructions stored in the memory 904 or other computer-readable storage medium.

メモリ904は、命令を記憶するコンピュータ可読記憶媒体の一例であり、命令は、プロセッサ902によって実行されると、プロセッサ902に、上述した様々な機能を実行させる。例えば、メモリ904は一般に、揮発性メモリ及び不揮発性メモリ(例えば、RAM、ROM等)の両方を含むことができる。メモリ904は、本明細書ではメモリ又はコンピュータ可読記憶媒体と呼ぶことができる。メモリ904は、コンピュータ可読のプロセッサ実行可能なプログラム命令をコンピュータプログラムコードとして記憶することが可能であり、コンピュータプログラムコードは、本明細書で実施態様において説明される動作及び機能を実行するように構成される特定のマシンとしてプロセッサ902によって実行することができる。   The memory 904 is an example of a computer-readable storage medium that stores instructions. The instructions, when executed by the processor 902, cause the processor 902 to perform the various functions described above. For example, the memory 904 can generally include both volatile and non-volatile memory (eg, RAM, ROM, etc.). Memory 904 may be referred to herein as memory or a computer readable storage medium. The memory 904 can store computer-readable processor-executable program instructions as computer program code, the computer program code configured to perform the operations and functions described in the embodiments herein. As a particular machine to be executed by the processor 902.

メモリ904は、1つ又は複数のオペレーティングシステム906を含むことができ、1つ又は複数のアプリケーション908を記憶することができる。オペレーティングシステム906は、パーソナルコンピュータ、視聴覚装置等に実施される様々な既知のオペレーティングシステム及び将来のオペレーティングシステムの1つとすることができる。アプリケーション908は、予め構成/インストールされたアプリケーション及びダウンロード可能なアプリケーションを含むことができる。加えて、メモリ904はデータ910を含むことができる。オペレーティングシステム906及びアプリケーション908は、上述したように動作コンテキストを定義することができる。   The memory 904 can include one or more operating systems 906 and can store one or more applications 908. The operating system 906 can be one of a variety of known and future operating systems implemented on personal computers, audiovisual devices, and the like. Applications 908 can include preconfigured / installed applications and downloadable applications. In addition, memory 904 can include data 910. Operating system 906 and application 908 can define operational contexts as described above.

メモリ904は特に、ランダムアクセスメモリ又はRAM912を含み、RAM912に、上記プロセスは、スタンバイ状態すなわちS3状態である間に情報を記憶する。さらに、BIOS914はメモリ904に含まれる。BIOS914は読み取り専用メモリ(ROM)に記憶することができる。   The memory 904 specifically includes random access memory or RAM 912, in which the process stores information while in the standby state, ie, the S3 state. Further, the BIOS 914 is included in the memory 904. The BIOS 914 can be stored in a read only memory (ROM).

コンピューティングデバイス900はメモリコントローラー916を含む。スタンバイ状態すなわちS3状態にある間、メモリコントローラー916を用いてメモリ内の動作を実行することができる。RAM912は自己リフレッシュモードに保つことができ、それにより、RAM912は、コンピューティングデバイスを作動状態(alive)に保つ最小のコンテキストを保持することができる。したがって、プロセッサ902及びコンピューティングデバイスの他の装置が復帰するとき、メモリが待機している。これにより、スタンバイ状態すなわちS3状態は、アプリケ−ション908が実行中の場合と比較して低電力消費状態であることができる。   Computing device 900 includes a memory controller 916. While in the standby state, that is, the S3 state, the memory controller 916 can be used to execute operations in the memory. The RAM 912 can be kept in a self-refresh mode so that the RAM 912 can maintain a minimal context that keeps the computing device alive. Thus, the memory is waiting when the processor 902 and other devices of the computing device wake up. Thereby, the standby state, that is, the S3 state can be a low power consumption state as compared with the case where the application 908 is being executed.

コンピューティングデバイスは、モニター、キーボード、ポインティングデバイス等の、様々な内部装置、外部装置、及び周辺機器に接続される入出力装置918を更に含むことができる。様々な既知のインターフェース及び将来のインターフェースを入出力装置918に含むことができる。特に、入出力装置918は、既存の動作コンテキスト又は異なる動作コンテキストへの移行を開始することができる、予めインストールされるか又はユーザーによってプログラムされるホットキーへのアクセスを提供することができる。   The computing device can further include an input / output device 918 that is connected to various internal devices, external devices, and peripherals, such as a monitor, keyboard, pointing device, and the like. Various known and future interfaces can be included in the input / output device 918. In particular, the input / output device 918 can provide access to pre-installed or user-programmed hot keys that can initiate a transition to an existing operating context or a different operating context.

本明細書に記載のコンピューティングデバイス900の例は、幾つかの実施態様に適する単なる一例であり、本明細書に記載のプロセス、構成要素、及び特徴を実施することができる環境、アーキテクチャ、及びフレームワークの使用又は機能の範囲としてのいかなる限定も示唆することを意図されない。   The example computing device 900 described herein is just one example that is suitable for some implementations, and is an environment, architecture, and architecture that can implement the processes, components, and features described herein. It is not intended to suggest any limitation as to the scope of use or functionality of the framework.

概して、図を参照して説明したいかなる機能も、ソフトウェア、ハードウェア(例えば、固定論理回路)、又はこれらの実施態様の組み合わせを用いて実施することができる。プログラムコードは、1つ又は複数のコンピュータ可読メモリ装置又は他のコンピュータ可読記憶装置に記憶することができる。したがって、本明細書に記載のプロセス及び構成要素はコンピュータプログラム製品によって実施することができる。   In general, any functionality described with reference to the figures can be implemented using software, hardware (eg, fixed logic circuitry), or a combination of these implementations. The program code may be stored in one or more computer readable memory devices or other computer readable storage devices. Accordingly, the processes and components described herein can be implemented by a computer program product.

上述したように、コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性媒体、不揮発性媒体、リムーバブル媒体、及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュメモリ、若しくは他のメモリ技術、CD−ROM、デジタル汎用ディスク(DVD)、若しくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、又はコンピューティングデバイスによるアクセスについての情報の記憶に用いることができる任意の他の媒体を含む。   As described above, a computer storage medium is a volatile medium, non-volatile medium, removable medium implemented in any method or technique for storing information such as computer readable instructions, data structures, program modules, or other data. And non-removable media. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory, or other memory technology, CD-ROM, digital versatile disk (DVD), or other optical storage device, magnetic cassette, magnetic tape, magnetic disk It includes storage devices, or other magnetic storage devices, or any other medium that can be used to store information for access by a computing device.

メモリ割り振り例
図10を参照すると、RAM912は、プロセスに関して上述した情報/データにセクションを割り振ることができるか、又は確保されたセクションを有することができる。TSEG1000は、SMMがCPU又はプロセッサ902の初期化について定義する、メモリ内のセグメントである。TSEG1000は、SMMコードと、SMMに関連付けられた論理とを含む。確保されたOS切り替えコンテキスト1002は、切り替え先又は切り替え元とすることができる複数の動作コンテキストに関連付けられた情報の追加の保存及びリストアを達成するのに、BIOSのオーバーヘッドとして確保される領域である。OS1メモリページ1004及びOS2メモリページ1006は、特定のOSのセクションである。他のOSを実施することもでき、そのようなOSにRAM912内のセクションを確保可能なことを理解されたい。互換性アドレス範囲1010は、特定のOSにアクセスするためのアドレスである。RAM912のセクション(複数の場合もある)は、動作コンテキストの切り替えに関連する他のデータ及び情報1008に確保することができる。残りのRAM1012は、説明されたプロセスに用いられないRAM912のセクションを示す。
Memory Allocation Example Referring to FIG. 10, RAM 912 can allocate sections or have reserved sections for the information / data described above with respect to the process. TSEG 1000 is a segment in memory that the SMM defines for initialization of the CPU or processor 902. TSEG 1000 includes SMM code and logic associated with the SMM. The reserved OS switching context 1002 is an area reserved as BIOS overhead to achieve additional storage and restoration of information associated with a plurality of operation contexts that can be a switching destination or a switching source. . The OS1 memory page 1004 and the OS2 memory page 1006 are specific OS sections. It should be understood that other OSes may be implemented and sections in RAM 912 may be reserved for such OSs. The compatible address range 1010 is an address for accessing a specific OS. The section (s) of RAM 912 can be reserved in other data and information 1008 related to switching of operating contexts. The remaining RAM 1012 shows a section of RAM 912 that is not used for the described process.

本発明による実現について、特定の実施形態のコンテキストの中で説明した。これらの実施形態は例示を意味し、限定を意味しない。多くの変形、変更、追加、及び改善が可能である。したがって、単一の事例として本明細書に記載される構成要素に、複数の事例を提供することができる。様々な構成要素、動作、及びデータストア間の境界はいくらか任意的なものであり、特定の動作が、特定の例示的な構成の文脈の中で示される。機能の他の割り振りが考えられ、以下の特許請求の範囲の範囲内にあることができる。最後に、様々な構成で離散した構成要素として提示される構造及び機能は、組み合わせられた構造又は構成要素として実施することも可能である。これら及び他の変形、変更、追加、及び改善は、以下の特許請求の範囲において規定される本発明の範囲内にあることができる。   An implementation according to the invention has been described in the context of a particular embodiment. These embodiments are meant to be illustrative and not limiting. Many variations, modifications, additions and improvements are possible. Thus, multiple instances can be provided for components described herein as a single instance. The boundaries between the various components, operations, and data stores are somewhat arbitrary, and specific operations are shown in the context of certain exemplary configurations. Other allocations of functions are contemplated and can be within the scope of the following claims. Finally, structures and functions presented as discrete components in various configurations can also be implemented as a combined structure or component. These and other variations, modifications, additions and improvements can be within the scope of the invention as defined in the following claims.

Claims (20)

動作コンテキストを切り替える方法であって、
実行可能な命令を用いて設定された1つ又は複数のプロセッサの制御下で、
コンピューティングデバイスをスタンバイ電力状態にする段階と、
前記スタンバイ電力状態から起動する複数のオペレーティングシステムのうちの1つを決定する段階と、
前記スタンバイ電力状態から、前記決定されたオペレーティングシステムで実行される所望の動作コンテキストを起動する段階と、
を含む、方法。
A method for switching operation contexts,
Under the control of one or more processors configured with executable instructions,
Putting the computing device into a standby power state;
Determining one of a plurality of operating systems to boot from the standby power state;
Activating from the standby power state a desired operational context to be executed in the determined operating system;
Including a method.
前記複数のオペレーティングシステムのうちの1つを決定する段階は、前記コンピューティングデバイスでのユーザー行動に基づく、請求項1に記載の方法。   The method of claim 1, wherein determining one of the plurality of operating systems is based on user behavior at the computing device. 前記決定する段階は、以前のオペレーティングシステムから異なるオペレーティングシステムに切り替える段階を含む、請求項1または請求項2に記載の方法。   3. A method according to claim 1 or claim 2, wherein the determining comprises switching from a previous operating system to a different operating system. 前記スタンバイ電力状態から起動することは、オペレーティングシステムをブートアップする際にエラーを検出する段階と、前記決定されたオペレーティングシステムをブートアップする段階とを含む、請求項1から請求項3のいずれか1つに記載の方法。   4. The method according to claim 1, wherein booting from the standby power state includes detecting an error when booting up an operating system and booting up the determined operating system. 5. The method according to one. 前記スタンバイ電力状態にする段階、前記決定する段階、及び前記起動する段階は、プラットフォーム及びオペレーティングシステムに依存しない、請求項1から請求項4のいずれか1つに記載の方法。   The method according to any one of claims 1 to 4, wherein the step of entering the standby power state, the step of determining and the step of starting are independent of a platform and an operating system. 前記起動することを実行するために、データをメモリに保存する段階を更に含む、請求項1から請求項5のいずれか1つに記載の方法。   6. The method of any one of claims 1-5, further comprising storing data in a memory to perform the activation. 前記複数のオペレーティングシステムを起動するためのデータのメモリを確保する段階を更に含む、請求項1から請求項6のいずれか1つに記載の方法。   7. The method according to any one of claims 1 to 6, further comprising reserving data memory for booting the plurality of operating systems. コンピューティングデバイスであって、
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサ用に構成されるメモリコントローラーと、
前記1つ又は複数のプロセッサ及び前記メモリコントローラー用に構成されるメモリと、
を備え
前記メモリは、前記コンピューティングデバイスがスタンバイ電力状態になる場合、所望の動作コンテキストをサポートするオペレーティングシステムが前記スタンバイ電力状態から起動されるような1つ又は複数のオペレーティングシステムを含む、コンピューティングデバイス。
A computing device,
One or more processors;
A memory controller configured for the one or more processors;
A memory configured for the one or more processors and the memory controller;
The memory includes one or more operating systems such that an operating system that supports a desired operating context is booted from the standby power state when the computing device is in a standby power state. device.
前記メモリコントローラーは、前記コンピューティングデバイスがスタンバイ電力状態である間、メモリからの動作を実行する、請求項8に記載のコンピューティングデバイス。   The computing device of claim 8, wherein the memory controller performs operations from memory while the computing device is in a standby power state. 前記メモリはランダムアクセスメモリを含み、前記ランダムアクセスメモリは、スタンバイ電力状態からの前記1つ又は複数のオペレーティングシステムの起動に割り振られる、請求項8または請求項9に記載のコンピューティングデバイス。   10. The computing device of claim 8 or claim 9, wherein the memory includes random access memory, the random access memory being allocated for booting the one or more operating systems from a standby power state. 前記メモリはランダムアクセスメモリを含み、前記1つ又は複数のオペレーティングシステムをスタンバイ電力状態から起動するためのデータがランダムアクセスメモリに保存される、請求項8または請求項9に記載のコンピューティングデバイス。   10. The computing device of claim 8 or claim 9, wherein the memory includes random access memory, and data for booting the one or more operating systems from a standby power state is stored in the random access memory. 前記メモリは、オペレーティングシステムを起動する際にエラーを検出し、所望の動作コンテキストについて適切な前記オペレーティングシステムを起動するシステム管理コードを含む、請求項8から請求項11のいずれか1つに記載のコンピューティングデバイス。   12. The memory according to any one of claims 8 to 11, wherein the memory includes system management code that detects an error when booting an operating system and launches the operating system appropriate for a desired operating context. Computing device. 装置及び周辺機器に接続され、動作コンテキストの起動を開始する入出力インターフェースを更に備える、請求項8から請求項12のいずれか1つに記載のコンピューティングデバイス。   13. The computing device according to any one of claims 8 to 12, further comprising an input / output interface connected to the device and peripheral devices to initiate activation of an operational context. 前記スタンバイ電力状態をサポートする基本入出力システム(BIOS)を更に備え、所望の前記オペレーティングシステムが起動される、請求項8から請求項13のいずれか1つに記載のコンピューティングデバイス。   14. A computing device according to any one of claims 8 to 13, further comprising a basic input / output system (BIOS) that supports the standby power state, wherein the desired operating system is booted. 前記BIOSは、所望の前記オペレーティングシステムの起動元である様々なフェーズを含む、請求項14に記載のコンピューティングデバイス。   15. The computing device of claim 14, wherein the BIOS includes various phases from which the desired operating system is booted. コンピューティングデバイスをスタンバイ電力状態にする段階と、
前記スタンバイ電力状態から、複数の動作コンテキストをサポートする1つ又は複数のオペレーティングシステムを起動するためのデータロケーションをメモリに保存する段階と、
前記スタンバイ電力状態から、所望の動作コンテキストをサポートするオペレーティングシステムを起動させる段階と、
を前記コンピューティングデバイスに実行させるためのプログラム。
Putting the computing device into a standby power state;
Storing in memory a data location for booting one or more operating systems that support multiple operating contexts from the standby power state;
Activating an operating system supporting a desired operating context from the standby power state;
For causing the computing device to execute the program.
前記コンピューティングデバイスをスタンバイ電力状態にする段階及び前記オペレーティングシステムを起動させる段階は、前記コンピューティングデバイスでのユーザー行動に基づく、請求項16に記載のプログラム。   The program of claim 16, wherein placing the computing device into a standby power state and activating the operating system are based on user behavior on the computing device. 前記データロケーションをメモリに保存する段階は、以前に実施されたオペレーティングシステムからのデータを保存する段階を含む、請求項16または請求項17に記載のプログラム。   18. A program according to claim 16 or claim 17, wherein storing the data location in memory comprises storing data from a previously implemented operating system. 前記起動させる段階は、前記1つ又は複数のオペレーティングシステムのブートに割り振られた保存メモリから読み出す段階を含む、請求項16から請求項18のいずれか1つに記載のプログラム。   The program according to any one of claims 16 to 18, wherein the step of starting includes reading from a storage memory allocated for booting the one or more operating systems. 前記オペレーティングシステムをブートアップする際にシステムエラーを特定する段階と、別のオペレーティングシステムを起動させる段階とを更に前記コンピューティングデバイスに実行させる、請求項16から請求項19のいずれか1つに記載のプログラム。   20. The computer device according to any one of claims 16 to 19, further causing the computing device to perform a step of identifying a system error when booting up the operating system and a step of starting another operating system. Program.
JP2014538767A 2011-10-28 2011-10-28 Switching operating context Pending JP2014531099A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014538767A JP2014531099A (en) 2011-10-28 2011-10-28 Switching operating context

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014538767A JP2014531099A (en) 2011-10-28 2011-10-28 Switching operating context

Publications (1)

Publication Number Publication Date
JP2014531099A true JP2014531099A (en) 2014-11-20

Family

ID=51938988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014538767A Pending JP2014531099A (en) 2011-10-28 2011-10-28 Switching operating context

Country Status (1)

Country Link
JP (1) JP2014531099A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550610B2 (en) 2019-03-13 2023-01-10 Continental Automotive Gmbh Vehicle system, vehicle and method for operating such a vehicle system

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04191927A (en) * 1990-11-27 1992-07-10 Oki Electric Ind Co Ltd Operating system switching device
US20010018717A1 (en) * 2000-02-29 2001-08-30 International Business Machines Corporation Computer system, operating system switching system, operating system mounting method, operating system switching method, storage medium, and program transmission apparatus
JP2004220345A (en) * 2003-01-15 2004-08-05 Nec Corp Computer system and boot device initializing method for computer system
US20050182922A1 (en) * 2004-02-18 2005-08-18 International Business Machines Corporation Computer systems with several operating systems coexisting thereon and swapping between these operating systems
US20050273663A1 (en) * 2004-05-21 2005-12-08 Samsung Electronics Co., Ltd. Computer system, method, and medium for switching operating system
US20070055860A1 (en) * 2005-09-07 2007-03-08 Szu-Chung Wang Method of fast booting for computer multimedia playing from standby mode
US20080189538A1 (en) * 2007-02-06 2008-08-07 Microsoft Corporation Supporting multiple operating systems in media devices
JP2009524121A (en) * 2005-11-21 2009-06-25 インテル コーポレイション Dynamic billboard service before system operation
US20100122077A1 (en) * 2008-11-13 2010-05-13 David Durham SWITCHING BETWEEN MULTIPLE OPERATING SYSTEMS (OSes) USING SLEEP STATE MANAGEMENT AND SEQUESTERED RE-BASEABLE MEMORY
US20100241839A1 (en) * 2009-03-20 2010-09-23 Phoenix Technologies Ltd Loading operating systems using memory segmentation and ACPI based context switch
US20100325405A1 (en) * 2009-06-22 2010-12-23 Matthew Laue Method of running multiple operating systems on an x86-based computer

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04191927A (en) * 1990-11-27 1992-07-10 Oki Electric Ind Co Ltd Operating system switching device
US20010018717A1 (en) * 2000-02-29 2001-08-30 International Business Machines Corporation Computer system, operating system switching system, operating system mounting method, operating system switching method, storage medium, and program transmission apparatus
JP2001256066A (en) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> Computer system, switching system of operating system, mounting method of operating system, switching method of operating system, storage medium and program transmitter
JP2004220345A (en) * 2003-01-15 2004-08-05 Nec Corp Computer system and boot device initializing method for computer system
US20050182922A1 (en) * 2004-02-18 2005-08-18 International Business Machines Corporation Computer systems with several operating systems coexisting thereon and swapping between these operating systems
US20050273663A1 (en) * 2004-05-21 2005-12-08 Samsung Electronics Co., Ltd. Computer system, method, and medium for switching operating system
US20070055860A1 (en) * 2005-09-07 2007-03-08 Szu-Chung Wang Method of fast booting for computer multimedia playing from standby mode
JP2007073026A (en) * 2005-09-07 2007-03-22 Mitac Technology Corp Method of fast booting for computer multimedia playing from standby mode
JP2009524121A (en) * 2005-11-21 2009-06-25 インテル コーポレイション Dynamic billboard service before system operation
US20080189538A1 (en) * 2007-02-06 2008-08-07 Microsoft Corporation Supporting multiple operating systems in media devices
JP2010518512A (en) * 2007-02-06 2010-05-27 マイクロソフト コーポレーション Multiple operating system support in media devices
US20100122077A1 (en) * 2008-11-13 2010-05-13 David Durham SWITCHING BETWEEN MULTIPLE OPERATING SYSTEMS (OSes) USING SLEEP STATE MANAGEMENT AND SEQUESTERED RE-BASEABLE MEMORY
US20100241839A1 (en) * 2009-03-20 2010-09-23 Phoenix Technologies Ltd Loading operating systems using memory segmentation and ACPI based context switch
US20100325405A1 (en) * 2009-06-22 2010-12-23 Matthew Laue Method of running multiple operating systems on an x86-based computer

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015029862; 中川  智尋: 'マルチOS環境におけるカーネル補助型難読化方式の提案' 情報処理学会研究報告  Vol.2007  No.98 第2007巻, 20070927, pp.33-40, 社団法人情報処理学会 *
JPN6015029863; 江口  悠利: '携帯端末向けサスペンド機能利用型マルチOS環境におけるOS間通信方式' 電子情報通信学会技術研究報告  Vol.107  No.559 第107巻, 20080320, pp.215-220, 社団法人電子情報通信学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550610B2 (en) 2019-03-13 2023-01-10 Continental Automotive Gmbh Vehicle system, vehicle and method for operating such a vehicle system

Similar Documents

Publication Publication Date Title
KR101646425B1 (en) Switching between operational contexts
US10775875B2 (en) Devices and methods for switching and communication among multiple operating systems and application management methods thereof
US9894605B2 (en) Low-power wearable devices and methods for switching and communication among multiple operating systems and application management methods thereof
US8151027B2 (en) System management mode inter-processor interrupt redirection
JP6627180B2 (en) Techniques for improved hybrid sleep power management
US10007552B2 (en) System and method for dual OS memory switching
EP1983431A2 (en) Method and apparatus for quickly changing the power state of a data processing system
TWI390410B (en) Operating system transfer and launch without performing post
JP6708333B2 (en) Device, method and computer-readable storage medium
JP5308522B2 (en) Memory management for hypervisor loading
JP5756144B2 (en) Operating system management method, computer program, and computer
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
JP2014531099A (en) Switching operating context
WO2016018349A1 (en) Computing device with first and second operating systems
US11829772B2 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
JP2003242026A (en) Information processing system, and program execution mode control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160609

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160913