JP4352086B2 - 情報処理装置およびオペレーティングシステム判別方法 - Google Patents

情報処理装置およびオペレーティングシステム判別方法 Download PDF

Info

Publication number
JP4352086B2
JP4352086B2 JP2007331056A JP2007331056A JP4352086B2 JP 4352086 B2 JP4352086 B2 JP 4352086B2 JP 2007331056 A JP2007331056 A JP 2007331056A JP 2007331056 A JP2007331056 A JP 2007331056A JP 4352086 B2 JP4352086 B2 JP 4352086B2
Authority
JP
Japan
Prior art keywords
operating system
acpi
bit
compatible
smi
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.)
Active
Application number
JP2007331056A
Other languages
English (en)
Other versions
JP2009151707A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007331056A priority Critical patent/JP4352086B2/ja
Priority to US12/340,002 priority patent/US7937577B2/en
Publication of JP2009151707A publication Critical patent/JP2009151707A/ja
Application granted granted Critical
Publication of JP4352086B2 publication Critical patent/JP4352086B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Description

この発明は、32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれもが動作し得るパーソナルコンピュータ等に適用して好適なオペレーティングシステムの自動判別技術に関する。
近年、ノートブックタイプやデスクトップタイプ等、様々なタイプのパーソナルコンピュータが広く普及している。この種のパーソナルコンピュータは、オペレーティングシステム(OS)によってリソース管理が司られ、このOSの制御下において、ユーティリティを含む各種アプリケーションプログラムが実行される。
このように、OSは、パーソナルコンピュータにおいて重要な役割を担うものであるために、当該OSの取り扱いに関する提案が、これまでも種々なされている(例えば特許文献1等参照)。
特開平2−280229号公報
OSは、リソース管理を行うにあたり、BIOS(Basic Input/Output System)に対して、そのパーソナルコンピュータのリソース、即ち、当該OSが管理すべきリソースを問い合わせる(リソース報告)。そして、OSは、このBIOSからのリソース報告の内容に基づき、リソース管理を実施する。
最近では、最大4Gバイトまでメモリ領域を利用可能な32ビットOSに代わり、それ以上のメモリ領域を利用可能な64ビットOSが主流になりつつある。これに伴って、増設できるメモリの容量が飛躍的に大きくなっている。
BIOSは、そのパーソナルコンピュータ上で動作するOSが、32ビットOSであるのか64ビットOSであるのかを、例えばユーティリティプログラム等を使ったユーザの設定によって与えられ、この設定内容に基づき、OSに対するリソース報告を行うのが一般的である。従って、仮に、64ビットOSであるにも関わらず、32ビットOSであるかのごとく設定が行われてしまうと、搭載されるメモリの容量が4Gバイトを遙かに越える場合であっても、BIOSは、32ビットOSが対応可能な4Gバイト分のリソース報告をOSに行ってしまう。
逆に、32ビットOSであるにも関わらず、64ビットOSであるかのごとく設定が行われてしまうと、搭載されるメモリの容量が4Gバイトを越えていた場合、32ビットOSが対応不可能な4Gバイト以上のリソース報告がOSに行われ、パーソナルコンピュータの誤動作を招くおそれがある。
このようなことから、BIOS自身が、そのパーソナルコンピュータ上で動作するOSが、32ビットOSであるのか64ビットOSであるのかを自動的に判別する仕組みを備えることが強く望まれている。
この発明は、このような事情を考慮してなされたものであり、オペレーティングシステムの自動判別をBIOSにて実現する情報処理装置およびオペレーティングシステム判別方法を提供することを目的とする。
前述の目的を達成するために、この発明の情報処理装置は、ACPI対応のオペレーティングシステムがACPI Enableコマンドを発行したことを要因とするSMIが発生した場合に、SMI発生時のCPUの状態が保持されるCPU STATE MAP領域を参照して、前記オペレーティングシステムのカーネルの種類を判別する判別手段を、ACPI対応のBIOSが備えるSMIハンドラ内に設けたことを特徴とする。
また、この発明のオペレーティングシステム判別方法は、ACPI対応のオペレーティングシステムおよびACPI対応のBIOSが動作する情報処理装置におけるオペレーティングシステム判別方法であって、前記ACPI対応のBIOSが、前記ACPI対応のオペレーティングシステムがACPI Enableコマンドを発行したことを要因とするSMIが発生した場合に、SMI発生時のCPUの状態が保持されるCPU STATE MAP領域を参照して、前記オペレーティングシステムのカーネルの種類を、SMIハンドラによって判定する、ことを特徴とする。
この発明によれば、オペレーティングシステムの自動判別をBIOSにて実現する情報処理装置およびオペレーティングシステム判別方法を提供することができる。
以下、図面を参照して本発明の一実施形態を説明する。
図1は、本実施形態に係る情報処理装置のシステム構成を示す図である。この情報処理装置は、例えばノートブックタイプやデスクトップタイプ等の各種パーソナルコンピュータとして実現される。
本コンピュータは、図1に示すように、CPU11、ノースブリッジ12、主メモリ13、表示コントローラ14、ビデオメモリ(VRAM)14A、サウスブリッジ15、BIOS−ROM16、ハードディスクドライブ(HDD)17、光磁気ディスクドライブ(ODD)18、エンベデッドコントローラ/キーボードコントローラ(EC/KBC)19、電源回路20、ネットワークコントローラ21および各種デバイス22等を備えている。
CPU11は、本コンピュータの動作を制御するプロセッサであり、HDD16から主メモリ13にロードされる、オペレーティングシステム(OS)100や、このOS100の制御下で動作する、ユーティリティソフトウェアを含む各種アプリケーションプログラム200を実行する。また、CPU11は、BIOS−ROM16に格納されたBIOSも実行する。以下では、このBIOS−ROM16に格納されたBIOS自体についてもBIOS16と表記することがある。BIOS16は、ハードウェア制御のためのプログラムである。このCPU11によって実行されるOS100およびBIOS−ROM16は、電力制御や周辺機器の活栓挿抜制御用に規定されたACPI(Advanced Configuration and Power Interface)に対応している。
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ15との間を接続するブリッジデバイスである。ノースブリッジ12は、バスを介して表示コントローラ14との通信を実行する機能を有しており、また、主メモリ13をアクセス制御するメモリコントローラも内蔵されている。表示コントローラ14は、本コンピュータに内蔵または外部接続される表示装置を駆動制御する。
サウスブリッジ15は、PCIバス上の各種デバイス22を制御するコントローラである。サウスブリッジ15には、BIOS−ROM16、HDD17、ODD18が直接的に接続され、これらを制御する機能も有している。また、サウスブリッジ15は、後述するSMI(System Management Interrupt)の発生を通知する信号をCPU11に供給する機能も有している。
HDD17は、各種ソフトウェアおよびデータを格納する記憶装置である。また、ODD18は、CD(Compact Disc)やDVD(Digital versatile Disc)等の記憶メディアを駆動するためのドライブユニットである。
EC/KBC19は、電力管理のためのエンベデッドコントローラと、キーボード24およびタッチパッド25を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC19は、電源回路20と協働して、バッテリや外部AC電源等からの電力を各部に供給制御する。そして、ネットワークコントローラ21は、例えばインターネットなどの外部ネットワークとの通信を実行する通信装置である。
このようなシステム構成をもつ本コンピュータのリソース管理は、OS100によって司られている。また、このOS100に対するリソース報告は、BIOS16によって実施される。本コンピュータでは、32ビットOSおよび64ビットOSのいずれもが動作し得るものと想定する。即ち、BIOS16は、64ビットOSに対しては64ビットOS用のリソース報告を行い、32ビットOSに対しては32ビットOS用のリソース報告を行う必要がある。そこで、本コンピュータは、このBIOS16自身が、OS100が64ビットOSであるのか32ビットOSであるのかを自動的に判別する仕組みを備えたものであり、以下、この点について詳述する。
ここでは、まず、以下の説明の理解を助けるために、(1)SMIの概略、(2)Long Modeの概略、(3)ACPI OSの動作の概略、について説明する。
(1)SMIの概略
SMIは、OS稼働中でもBIOSが処理しなければならない割込み要因を処理するための割込みである。SMIが発生すると、CPUは、汎用レジスタをはじめとしたCPUの状態をCPU STATE MAPと呼ばれる領域に保存し、BIOSのSMIハンドラを呼び出す。CPU STATE MAPには、CPUの動作モードに関する情報も含まれており、この情報を基に稼働中のOSが64ビットOSか否かを判断することができる。SMIハンドラが終了すると、CPUは、CPU STATE MAPからCPUの動作モードを復帰して、SMI発生前の処理を再開する。
(2)Long Modeの概略
Intel64, AMD64アークテクチャのCPUでは、Long Mode(IA-32e mode)と呼ばれるCPUの動作モードを持っており、CPUの動作モードがLong Modeか否かは、EFER(Extended Feature Enable MSR), CR4と呼ばれるレジスタを参照することによって判断できる。
64ビット(x64エディションの)OSでは、このLong Modeを利用しており、一方、32ビットOSでは、このLong Modeを利用しないため、OS稼働中のCPUの動作モードがLong Modeであるか否かを調べれば、64ビットOSか否かを判別できる。
(3)ACPI OSの動作の概略
BIOSは、ACPI OSに対して、中間言語(AML:ACPI Machine Language)で記述されたプログラムを提供する。ACPI OSは、ACPI Enableコマンドにより、BIOSに対してACPI OSが起動することを通知し、以後、OS自身が持つインタプリタ(OSPM)によりAMLを解釈しながら当該プログラムを実行する。
また、このACPI Enableコマンドの発行により、SMIが発生するので、BIOSは、SMIハンドラの中で、ACPI OSが起動したことを検出する。
(第1実施形態)
以上の「SMIの概要」、「Long Modeの概略」、「ACPI OSの動作の概略」を踏まえて、まず、本コンピュータにおけるBIOS16によるOS100の自動判別の第1実施形態について説明する。
図1に示されるように、BIOS16は、(OS100に提供する)中間言語プログラム161、SB設定モジュール162およびSMIハンドラ163を有している。
中間言語プログラム161は、目的のSMIを発生させるための、「(サウスブリッジ15に割り当てられた)I/Oアドレス空間のxx番地にyy値を書き込む」といった情報を管理するテーブルを保持する。一方、SB設定モジュール162は、「(サウスブリッジに割り当てられた)I/Oアドレス空間のxx番地にyy値が書き込まれたらSMIの発生を通知する信号をCPU11に供給する」ように、当該サウスブリッジ15を設定する。そして、SMIハンドラ163は、この中間言語プログラム161およびSB設定モジュール162の協働によって発生可能となるSMIが実際に発生した場合に、各々の要因に対応する処理を実行する。
本コンピュータでは、このSMIハンドラ163に、OS判別ルーチンを設け、このOS判別ルーチンによって、OS100が64ビットOSか32ビットOSかを自動的に判別する。図2には、CPU STATE MAPに格納される情報をOSの種類別に一覧するためのテーブルが示されている。
「SMIの概略」で説明したように、SMIが発生すると、CPU11は、汎用レジスタをはじめとしたCPUの状態をCPU STATE MAPと呼ばれる領域に保存する。OS100が64ビットOSであれば、「Long Modeの概略」で説明したように、この時のCPU11の動作モードはLong Modeとなる。そして、Long Modeの場合は、EFERレジスタのLMEビットの値は"1"となるようになっている。つまり、このEFERレジスタのLMEビットの値を参照することで、OS100が64ビットOSか否かを判別することができる。
また、「ACPI OSの動作の概略」で説明したように、OS100は、ACPI OSの起動をACPI EnableコマンドによってBIOS16に通知する。そして、このACPI Enableコマンドの発行時にはSMIが発生する。そこで、SMIハンドラ163は、このACPI Enableコマンドを要因とするSMIが発生した場合に、OS判別ルーチンがEFERレジスタのLMEビットの値を参照し、OS100が64ビットOSか否かを自動判別する。その後、OS100からリソース報告の要求を受けたら、BIOS16は、この時の判定結果に基づき、64ビットOS用または32ビットOS用のリソース報告を適切に実行する。
図3は、本コンピュータで実行されるBIOS16によるOS100の自動判別の動作手順を示すフローチャートである。
BIOS16のSMIハンドラ163は、SMIが発生すると、まず、その要因を判別する(ステップA1)。もし、このSMI要因がACPI Enableコマンドによるものであった場合(ステップA2のYES)、SMIハンドラ163は、この要求されたACPI Enable処理を実行した後(ステップA3)、(OS判別ルーチンによって)CPU STATE MAP内のEFERレジスタのLMEビットの値を参照する(ステップA4)。
そして、このEFERレジスタのLMEビットの値が"1"ならば(ステップA4のYES)、SMIハンドラ163(のOS判別ルーチン)は、OS100は64ビットOSであると判定し(ステップA5)、一方、"1"でなければ(ステップA4のNO)、OS100は32ビットOSであると判定する(ステップA6)。
また、SMI要因がACPI Enableコマンド以外によるものであれば(ステップA2のNO)、SMIハンドラ163は、その要求された従来のハンドラ処理を実行する(ステップA7)。
このように、本第1実施形態のコンピュータは、BIOS16によるOS100の自動判別を実現する。
(第2実施形態)
次に、本コンピュータにおけるBIOS16によるOS100の自動判別の第2実施形態について説明する。本第2実施形態では、OS100のカーネル判別についても説明する。
例えば図4に示すように、64ビットOSのブート過程において、Long Modeへの移行(a2)が、ACPI Enableコマンド発行(a1)後に行われるような場合には、ACPI Enableコマンドを要因とするSMIの発生時、SMIハンドラ163は、当該OS100は32ビットOSであると判別する。このような場合は、64ビットOSに対して32ビットOS用のリソース報告(a3)を行ってしまうことになる。このようなブート過程を採るOSは一般的には存在し得ないが、万全を期すために、本第2実施形態では、このような状況下においても適切なリソース報告が行えるようにすべくOS判別を行うための仕組みを備える。
そのために、まず、BIOS16がOS100に提供する中間言語プログラム161の初期化処理ルーチン部(ACPIの_INIメソッド)、即ち、OS100のOSPMが最初に実行するメソッド中に、「OS判別要求」を要因とするSMIを発生させる手続きを記述する。そして、SMIハンドラ163は、この「OS判別要求」を要因とするSMIが発生したら、OS判別ルーチンによるOS100の自動判別を実行する。
この初期化処理ルーチン部は、Long Modeへの移行後に実行されると考えられるので、64ビットOSを32ビットOSと誤認することはない。即ち、上述のような状況下においても、適切なリソース報告を行うことができる。
ここで、図5および図6を参照して、この第2実施形態のコンピュータで実行されるBIOS16によるOS100の自動判別の動作手順を説明する。図5には、BIOS16がOS100に提供する中間言語プログラム161の初期化処理ルーチン部の流れ、図6には、BIOS16のSMIハンドラ163の流れ、がそれぞれ示されている。
ACPI Enableコマンドを発行し、BIOSに対してACPI OSが起動することを通知したOS100は、自身のOSPMにより、図5に示す、BIOS16から提供された中間言語プログラム161を解釈しながら初期化処理ルーチン部を実行する。
即ち、まず、「OS判別要求」を要因とするSMIを発生させ(ステップB1)、その後に、従来の初期化処理を実行する(ステップB2)。
一方、SMIハンドラ163は、SMIが発生すると、まず、その要因を判別する(ステップC1)。このSMI要因がACPI Enableコマンドによるものであった場合(ステップC2のYES)、SMIハンドラ163は、この要求されたACPI Enable処理を実行した後(ステップC3)、(OS判別ルーチンによって)CPU STATE MAP内のCR4レジスタのPAE Enableビットの値およびEFERレジスタのLMEビットの値を参照する(ステップC4,ステップC6)。CPUの動作モードがLong Modeか否か、即ち、64ビットOSか否かは、(第1実施形態の図3のフローチャートに示すように、)EFERレジスタのLMEビットが"1"か否かで判別可能であるが、この第2実施形態では、更に、CR4レジスタのPAE Enableビットの値が"1"か"0"かを調べて、OS100が64ビットOSか否かを判定する。図2に示すように、非PAEカーネルの場合、PAE Enableビットの値は"0"となるようになっている。64ビットOSはPAEカーネルのみであるので、このPAE Enableビットの値が"1"でなければ、OS100は64ビットOSではないことがわかる。
そこで、SMIハンドラ163(のOS判別ルーチン)は、このPAE Enableビットの値が"1"でなければ(ステップC4のNO)、まずは、その時点で、OS100は32ビットOS(非PAEカーネル)であると判定する(ステップC5)。
続いて、SMIハンドラ163(のOS判別ルーチン)は、EFERレジスタのLMEビットの値が"1"ならば(ステップC6のYES)、SMIハンドラ163(のOS判別ルーチン)は、OS100は64ビットOSであると判定し(ステップC7)、一方、"1"でなければ(ステップC6のNO)、OS100は32ビットOS(PAEカーネル)であると判定する(ステップC8)。
また、SMIハンドラ163は、SMI要因が「OS判別要求」によるものであった場合も(ステップC2のNO,ステップC9)、ステップC4〜ステップ8の処理、即ち、OS自動判別処理を実行する。これにより、中間言語プログラム161の初期化処理ルーチン部実行時に、当該OS自動判別処理が必ず実施されることになる。更に、SMI要因がACPI Enableコマンドおよび「OS判別要求」以外によるものであれば(ステップC9のNO)、SMIハンドラ163は、その要求された従来のハンドラ処理を実行する(ステップC10)。
このように、本第2実施形態のコンピュータは、BIOS16によるOS100の自動判別を実現する。
ところで、ここでは、図4に示すように、Long Modeへの移行がACPI Enableコマンド発行後に行われるような場合における誤認を防止する仕組みを、中間言語プログラム161の初期化処理ルーチン部において「OS判別要求」を要因とするSMIを発生させることによって実現する例を説明したが、その他の例として、OS100がリソース報告を要求してきた時に、BIOS16が、この「OS判別要求」を要因とするSMIを発生させることによっても実現できる。図7は、OS100からリソース報告の要求を受けた場合におけるBIOS16の動作手順を示すフローチャートである。
OS100からリソース報告の要求を受けると、BIOS16は、「OS判別要求」を要因とするSMIを発生させ(ステップD1)、図6に示すSMIハンドラ163によるOS自動判別処理を実施させる。その後、BIOS16は、64ビットOSに対しては64ビットOS用のリソース報告を行い(ステップD2のYES,ステップD3)、一方、32ビットOSに対しては(ステップD2のNO、ステップD4)、PAEカーネルであれば32ビットOS(PAEカーネル)用のリソース報告を行い(ステップD4のYES,ステップD5)、非PAEカーネルであれば32ビットOS(非PAEカーネル)用のリソース報告を行う(ステップD4のNO,ステップD6)。
なお、中間言語プログラム161の初期化処理ルーチン部において「OS判別要求」を要因とするSMIを発生させる仕組み、および、リソース報告の要求受け付け時に「OS判別要求」を要因とするSMIを発生させる仕組みは、必ずしも排他選択的にその一方のみを搭載する必要はなく、(中間言語プログラム161の初期化処理ルーチン部において「OS判別要求」を要因とするSMIを発生させる仕組みによる判定結果は、リソース報告の要求受け付け時に「OS判別要求」を要因とするSMIを発生させる仕組みによる判定結果によって更新されるために冗長的なものとなってしまうが、)その両方を搭載しても構わない。
(第3実施形態)
次に、本コンピュータにおけるBIOS16によるOS100の自動判別の第3実施形態について説明する。
BIOSは、通常、セットアップなどと称される、動作環境を設定するための画面をユーザに提示する機能を有している。そこで、本第3実施形態では、BIOS16が、例えば図8に示すようなセットアップを提示する。即ち、OS100が32ビットOSなのか64ビットOSなのかを設定する選択肢(b2,b3)に加えて、OSをBIOS16に自動判別させるための選択肢(b1)を新設する。このセットアップ上で、自動判別用の選択肢(b1)が選択されたら、BIOS16は、例えば第2実施形態で説明した「OS判別要求」を要因とするSMIを発生させる。
このセットアップによっても、ユーザの手を煩わせることなく、64ビットOSに対しては64ビットOS用のリソース報告、32ビットOSに対しては32ビットOS用のリソース報告が適切に行われることになる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
この発明の実施形態に係る情報処理装置のシステム構成を示す図 CPU STATE MAPに格納される情報をオペレーティングシステムの種類別に一覧するためのテーブルを示す図 同第1実施形態の情報処理装置で実行されるBIOSによるオペレーティングシステムの自動判別の動作手順を示すフローチャート Long Modeへの移行をACPI Enableコマンド発行後に行う64ビットオペレーティングシステムのブート手順を示すタイムチャート 同第2実施形態の情報処理装置のBIOSがオペレーティングシステムに提供する中間言語プログラムの初期化処理ルーチン部の流れを示すフローチャート 同第2実施形態の情報処理装置のBIOSのSMIハンドラの流れを示すフローチャート 同第2実施形態の情報処理装置のオペレーティングシステムからリソース報告の要求を受けた場合におけるBIOSの動作手順を示すフローチャート 同第3実施形態の情報処理装置のBIOSが提示するセットアップ(画面)を示す図
符号の説明
11…CPU、12…ノースブリッジ、13…主メモリ、14…表示コントローラ、14A…VRAM、15…サウスブリッジ、16…BIOS−ROM、17…HDD、18…ODD、19…エンベデッドコントローラ/キーボードコントローラ(EC/KBC)、20…電源回路、21…ネットワークコントローラ、22…各種デバイス、100…オペレーティングシステム(OS)、161…中間言語(AML)プログラム、162…SB設定モジュール、163…SMIハンドラ、200…各種アプリケーション。

Claims (14)

  1. ACPI(Advanced Configuration and Power Interface)対応のオペレーティングシステムがACPI Enableコマンドを発行したことを要因とするSMI(System Management Interrupt)が発生した場合に、SMI発生時のCPUの状態が保持されるCPU STATE MAP領域を参照して、前記オペレーティングシステムのカーネルの種類を判別する判別手段を、ACPI対応のBIOS(Basic Input/Output System)が備えるSMIハンドラ内に設けたことを特徴とする情報処理装置。
  2. 前記オペレーティングシステムのカーネルが32ビットカーネルか64ビットカーネルかを判別することで、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるかを判別することを特徴とする請求項1記載の情報処理装置。
  3. 前記判別手段は、前記CPU STATE MAP領域のEFER(Extended Feature Enable MSR)レジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項2記載の情報処理装置。
  4. 前記ACPI対応のオペレーティングシステムに対して前記ACPI対応のBIOSが提供する、当該ACPI対応のBIOSに対して各種処理を要求すべくSMIを発生させるためのプログラムの初期化処理ルーチン部に、前記ACPI対応のオペレーティングシステムの判別要求がなされたことを要因とするSMIを発生させる手続きを含め、
    前記判別手段は、当該判別要求がなされたことを要因とするSMIが発生した場合、前記CPU STATE MAP領域のCR4(Control Register 4)レジスタのPAE Enableビットの値およびEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項2記載の情報処理装置。
  5. 前記ACPI対応のオペレーティングシステムに対して前記ACPI対応のBIOSが提供する、当該ACPI対応のBIOSに対して各種処理を要求すべくSMIを発生させるためのプログラムは、中間言語(AML:ACPI Machine Language)で記述されることを特徴とする請求項4記載の情報処理装置。
  6. 前記ACPI対応のBIOSは、当該情報処理装置のリソース報告要求、前記ACPI対応のオペレーティングシステムの判別要求がなされたことを要因とするSMIを前記ACPI対応のオペレーティングシステムに発生させる手段を有し、
    前記判別手段は、当該判別要求がなされたことを要因とするSMIが発生した場合、前記CPU STATE MAP領域のCR4レジスタのPAE Enableビットの値およびEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項2記載の情報処理装置。
  7. 前記ACPI対応のBIOSは、前記ACPI対応のオペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを選択させるための選択画面であって、前記ACPI対応のオペレーティングシステムを自動判別させる選択肢を含む選択画面を提示するセットアップ手段を具備し、
    前記セットアップ手段は、前記選択画面上で前記ACPI対応のオペレーティングシステムを自動判別させる選択肢が選択された場合、前記ACPI対応のオペレーティングシステムの判別要求がなされたことを要因とするSMIを前記ACPI対応のオペレーティングシステムに発生させる手段を有し、
    前記判別手段は、当該判別要求がなされたことを要因とするSMIが発生した場合、前記CPU STATE MAP領域のEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項2記載の情報処理装置。
  8. ACPI対応のオペレーティングシステムおよびACPI対応のBIOSが動作する情報処理装置におけるオペレーティングシステム判別方法であって、
    前記ACPI対応のBIOSが、
    前記ACPI対応のオペレーティングシステムがACPI Enableコマンドを発行したことを要因とするSMIが発生した場合に、SMI発生時のCPUの状態が保持されるCPU STATE MAP領域を参照して、前記オペレーティングシステムのカーネルの種類を、SMIハンドラによって判定する、
    ことを特徴とするオペレーティングシステム判別方法。
  9. 前記オペレーティングシステムのカーネルが32ビットカーネルか64ビットカーネルかを判別することで、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるかを判別することを特徴とする請求項8記載のオペレーティングシステム判別方法。
  10. 前記CPU STATE MAP領域のEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項9記載のオペレーティングシステム判別方法。
  11. 前記ACPI対応のオペレーティングシステムに対して前記ACPI対応のBIOSが提供する、当該ACPI対応のBIOSに対して各種処理を要求すべくSMIを発生させるためのプログラムの初期化処理ルーチン部に、前記ACPI対応のオペレーティングシステムの判別要求がなされたことを要因とするSMIを発生させる手続きを含め、
    前記ACPI対応のBIOSは、
    当該判別要求がなされたことを要因とするSMIが発生した場合、前記CPU STATE MAP領域のCR4レジスタのPAE Enableビットの値およびEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項9記載のオペレーティングシステム判別方法。
  12. 前記ACPI対応のオペレーティングシステムに対して前記ACPI対応のBIOSが提供する、当該ACPI対応のBIOSに対して各種処理を要求すべくSMIを発生させるためのプログラムは、中間言語で記述されることを特徴とする請求項11記載のオペレーティングシステム判別方法。
  13. 前記ACPI対応のBIOSは、
    当該情報処理装置のリソース報告要求、前記ACPI対応のオペレーティングシステムの判別要求がなされたことを要因とするSMIを前記ACPI対応のオペレーティングシステムに発生させ、
    当該判別要求がなされたことを要因とするSMIが発生した場合、前記CPU STATE MAP領域のCR4レジスタのPAE Enableビットの値およびEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項9記載のオペレーティングシステム判別方法。
  14. 前記ACPI対応のBIOSは、
    前記ACPI対応のオペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを選択させるための選択画面であって、前記ACPI対応のオペレーティングシステムを自動判別させる選択肢を含む選択画面を提示し、
    前記選択画面上で前記ACPI対応のオペレーティングシステムを自動判別させる選択肢が選択された場合、前記ACPI対応のオペレーティングシステムの判別要求がなされたことを要因とするSMIを前記ACPI対応のオペレーティングシステムに発生させ、
    当該判別要求がなされたことを要因とするSMIが発生した場合、前記CPU STATE MAP領域のEFERレジスタのLMEビットの値に基づき、前記オペレーティングシステムが32ビットオペレーティングシステムおよび64ビットオペレーティングシステムのいずれであるのかを判定することを特徴とする請求項9記載のオペレーティングシステム判別方法。
JP2007331056A 2007-12-21 2007-12-21 情報処理装置およびオペレーティングシステム判別方法 Active JP4352086B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007331056A JP4352086B2 (ja) 2007-12-21 2007-12-21 情報処理装置およびオペレーティングシステム判別方法
US12/340,002 US7937577B2 (en) 2007-12-21 2008-12-19 Information processing apparatus and operating system determination method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007331056A JP4352086B2 (ja) 2007-12-21 2007-12-21 情報処理装置およびオペレーティングシステム判別方法

Publications (2)

Publication Number Publication Date
JP2009151707A JP2009151707A (ja) 2009-07-09
JP4352086B2 true JP4352086B2 (ja) 2009-10-28

Family

ID=40790065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007331056A Active JP4352086B2 (ja) 2007-12-21 2007-12-21 情報処理装置およびオペレーティングシステム判別方法

Country Status (2)

Country Link
US (1) US7937577B2 (ja)
JP (1) JP4352086B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120663B2 (en) * 2014-03-28 2018-11-06 Intel Corporation Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02280229A (ja) 1989-04-21 1990-11-16 Nec Corp プログラム実行方式
US6732280B1 (en) * 1999-07-26 2004-05-04 Hewlett-Packard Development Company, L.P. Computer system performing machine specific tasks before going to a low power state
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US20040205730A1 (en) * 2001-06-11 2004-10-14 Week Jon J. System and method for building libraries and groups of computer programs
JP2003196096A (ja) * 2001-12-07 2003-07-11 Internatl Business Mach Corp <Ibm> コンピュータシステム、その起動制御方法及びプログラム
US7100037B2 (en) * 2002-11-27 2006-08-29 Intel Corporation Method for reducing BIOS resume time from a sleeping state
US20060288197A1 (en) * 2005-06-16 2006-12-21 Swanson Robert C Identifying an operating system associated with a boot path
US7856630B2 (en) * 2006-01-05 2010-12-21 International Business Machines Corporation System, method and program to manage program updates
JP2007207074A (ja) 2006-02-03 2007-08-16 Ricoh Co Ltd オペレーションシステム、スレッド制御機構、及び情報処理装置
US7694125B2 (en) * 2006-12-01 2010-04-06 Dell Products, Lp System and method of booting an operating system in an optimal performance state
US7941810B2 (en) * 2006-12-28 2011-05-10 Intel Corporation Extensible and flexible firmware architecture for reliability, availability, serviceability features
US8056084B2 (en) * 2007-01-25 2011-11-08 Hewlett-Packard Development Company, L.P. Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
US7783872B2 (en) * 2007-03-30 2010-08-24 Dell Products, Lp System and method to enable an event timer in a multiple event timer operating environment
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software

Also Published As

Publication number Publication date
US20090164768A1 (en) 2009-06-25
US7937577B2 (en) 2011-05-03
JP2009151707A (ja) 2009-07-09

Similar Documents

Publication Publication Date Title
TWI407300B (zh) 電源管理控制器與方法
EP2380081B1 (en) Method and system for hibernation or suspend using a non-volatile-memory device
JP5489182B2 (ja) プリロードする方法及びコントローラ
JP5385347B2 (ja) メイン・メモリのフリー・メモリ量を拡大する方法およびコンピュータ
JPH06187133A (ja) オペレーティングシステムのロードシステム、装置接続検出システム、及びオペレーティングシステムローダ決定方法
US20160231935A1 (en) Memory Configuration Operations for a Computing Device
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
US10564986B2 (en) Methods and apparatus to suspend and resume computing systems
JP4155545B2 (ja) コンピュータシステムおよびデータ転送制御方法
US7310725B2 (en) Common platform pre-boot and run-time firmware services
US8291436B2 (en) Synchronization of event handlers
US20070260761A1 (en) Inter-module data communication control method and system for ACPI and BIOS
US20070198822A1 (en) Method for changing booting sources of a computer system and a related backup/restore method thereof
US20130097412A1 (en) Performing A Boot Sequence In A Multi-Processor System
US7293184B2 (en) Programmatic binding for power management events involving execution of instructions in a first programming system with a first interface and a second programming system with a second interface
US7568091B2 (en) Computer platform system control unit data programming control method and system
JP4352086B2 (ja) 情報処理装置およびオペレーティングシステム判別方法
TWI559227B (zh) 具有內建雙可隨機關閉開啟電源作業裝置的電腦系統
US20110314203A1 (en) Resource adjustment methods and systems for virtual machines
WO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法
US10061597B2 (en) Computing device with first and second operating systems
US11023139B2 (en) System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs
US20120239715A1 (en) Information processing apparatus with log output function, mobile terminal device, and log output control method
JP2006040063A (ja) 情報処理装置および情報処理装置のsmi処理方法
US11340835B2 (en) Virtual non-volatile memory system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090630

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090727

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4352086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130731

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350