JP2003248580A - プログラムおよび情報処理装置 - Google Patents

プログラムおよび情報処理装置

Info

Publication number
JP2003248580A
JP2003248580A JP2002046296A JP2002046296A JP2003248580A JP 2003248580 A JP2003248580 A JP 2003248580A JP 2002046296 A JP2002046296 A JP 2002046296A JP 2002046296 A JP2002046296 A JP 2002046296A JP 2003248580 A JP2003248580 A JP 2003248580A
Authority
JP
Japan
Prior art keywords
program
computer
context
standby state
state
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.)
Withdrawn
Application number
JP2002046296A
Other languages
English (en)
Inventor
Eiji Nakatani
英司 中谷
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002046296A priority Critical patent/JP2003248580A/ja
Publication of JP2003248580A publication Critical patent/JP2003248580A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 APM又はACPIを用いず、OS自体に変
更を加えることなく、既存のブートローダをわずかに修
正することで、コンピュータにおいてスタンバイ状態を
実現することができるプログラム制御方法を提供する。 【解決手段】 OSの起動時にジャンプコードを検索す
るステップ(a)と、ステップ(a)においてジャンプ
コードが得られなかった場合に、ハードウェアを初期化
してローダ処理を行うステップ(b)と、ステップ
(a)においてジャンプコードが得られた場合に、ハー
ドウェアの初期化をせずにローダ処理を行うステップ
(c)と、ステップ(c)の後に、コンピュータ20を
スタンバイ状態にするステップ(d)と、所定のハード
ウェア割り込みが生じた場合に、コンピュータをスタン
バイ状態から動作状態に移行させるステップ(e)と、
ステップ(b)又はステップ(e)の後に、OSの初期
化を行うステップ(f)とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータにお
いて、ディスプレイ、ハードディスク、周辺機器等への
給電を停止し、必要なときに直ぐに動作状態に復帰でき
るように待機する状態であるスタンバイ状態を実現する
プログラム制御方法に関する。
【0002】
【従来の技術】コンピュータにおいて、ディスプレイ、
ハードディスク、周辺機器等への給電を停止し、必要な
ときに直ぐに動作状態に復帰できるように待機する状態
であるスタンバイ状態が実現されている。従来、このス
タンバイ状態は、(i)パワーマネジメント(電力管
理)機能を有するBIOS(Basic Input/Output Syste
m:基本入力/出力システムプログラム)が、OS(Ope
rating System)が認識できないSMI(System Manage
ment Interrupt)と呼ばれる割り込みを利用し、OSの
関与及び認識なしに単独で実現するか、(ii)BIO
Sと他のプログラム(OS、アプリケーションプログラ
ムを含む)との間のインタフェースであって、パワーマ
ネジメントに関するインタフェースの規格であるAPM
(Advanced Power Management)又はACPI(Advance
d Configuration and Power Interface)を用いて、A
PM又はACPIに対応したOSがAPM又はACPI
に対応したBIOSを呼び出すことにより、APM又は
ACPIに対応したOSとAPM又はACPIに対応し
たBIOSが協調することによって実現されていた。
【0003】現在、パワーマネジメント機能を有してい
ないOSが数多く存在している。そのようなパワーマネ
ジメント機能を有していないOSを用いたコンピュータ
では、スタンバイ状態を実現することができないか、ま
たは上記した(i)のように、パワーマネジメント機能
を有するBIOSがパワーマネジメント機能を有してい
ないOSの関与及び認識なしに単独でスタンバイ状態を
実現せざるを得ない。このようにパワーマネジメント機
能を有するBIOSがパワーマネジメント機能を有して
いないOSの関与及び認識なしに単独でスタンバイ状態
を実現する場合には、パワーマネジメント機能を有して
いないOSが、コンピュータがスタンバイ状態になる前
のメモリ等の状態とコンピュータがスタンバイ状態から
動作状態に復帰した後のメモリ等の状態とが同じである
と認識できること(メモリ等の状態がパワーマネジメン
ト機能を有していないOSにとって透過であること)が
必要となる。
【0004】しかしながら、パワーマネジメント機能を
有するBIOSがパワーマネジメント機能を有していな
いOSの関与及び認識なしに単独でスタンバイ状態を実
現する場合には、パワーマネジメント機能を有していな
いOSの計時機能によって管理される時刻にコンピュー
タがスタンバイ状態であった時間を反映させることがで
きない。
【0005】また、周辺デバイスの構成がコンピュータ
によって異なっており、パワーマネジメント機能を有す
るBIOSが認識できない周辺デバイス(以下、「認識
不可周辺デバイス」という)がコンピュータ内に存在す
る場合には、認識不可周辺デバイスに事前に完璧に対処
するのは事実上不可能である。そのため、パワーマネジ
メント機能を有していないOSが、コンピュータがスタ
ンバイ状態になる前の認識不可周辺デバイスの状態とコ
ンピュータがスタンバイ状態から動作状態に復帰した後
の認識不可周辺デバイスの状態とが同じであると認識で
きるようにすること(認識不可周辺デバイスの状態がパ
ワーマネジメント機能を有していないOSにとって透過
であること)は困難であった。
【0006】このような場合に、パワーマネジメント機
能を有するBIOS又はOSのプログラム内容を充実さ
せて完成度を高めることも考えられるが、プログラムミ
スによる危険の増大、プログラムコードの肥大化による
リソース消費の増大、処理が複雑化することによるレス
ポンスの低下を招くという問題がある。
【0007】一方、上記した(ii)のように、APM
又はACPIに対応したOSとAPM又はACPIに対
応したBIOSが協調してスタンバイ状態を実現する場
合には、APM又はACPIに対応したBIOSの負担
を低減させることができ、コンピュータがスタンバイ状
態になる前とコンピュータがスタンバイ状態から通常状
態に復帰した後のAPM又はACPIに対応したOSの
動作の連続性が高いという長所がある。
【0008】しかし、APM又はACPIに対応したO
SとAPM又はACPIに対応したBIOSが協調して
スタンバイ状態を実現する場合においても、アプリケー
ションプログラムが、コンピュータがスタンバイ状態に
なる前のAPM又はACPIに対応したOSの状態とコ
ンピュータがスタンバイ状態から動作状態に復帰した後
のAPM又はACPIに対応したOSの状態とが同じで
あると認識できること(APM又はACPIに対応した
OSの状態がアプリケーションプログラムにとって透過
であること)が必要である。そのため、APM又はAC
PIに対応したOSが、アプリケーションプログラムに
提供する全てのサービスがコンピュータがスタンバイ状
態になる前とコンピュータがスタンバイ状態から動作状
態に復帰した後とでアプリケーションプログラムに対し
て連続になるようなプログラムコードを備えるか、また
はアプリケーションプログラムに対してスタンバイ状態
を認識させること等が必要である。すなわち、基本的な
構図は、パワーマネジメント機能を有するBIOSがパ
ワーマネジメント機能を有しないOSの関与及び認識な
しに単独でスタンバイ状態を実現する場合と変わらな
い。さらに、コンピュータ全体で見たときのパワーマネ
ジメント処理は、益々複雑になってきており、危惧され
る問題も依然として残っている。
【0009】ところで、従来のOSの状態として、AC
PI規格においてハイバネーション(Hibernation)と
して規定されている休止状態、スタンバイ状態(サスペ
ンド状態)、コンピュータの電源がオフになっていると
きの終了状態、コンピュータの電源がオンになってお
り、ユーザのログオンを待っている状態等があった。
【0010】コンピュータの電源がオフになっておりO
Sが終了状態であるときにコンピュータの電源がオンに
されると、OSの起動に先立って、POSTと呼ばれる
ハードウェアの診断処理がBIOSにより行われ、外部
記憶装置(HDD等)からのOSイメージのメモリへの
展開処理がブートローダにより行われる。しかしなが
ら、ハードウェアの診断処理、外部記憶装置からのOS
イメージのメモリへの展開処理には少なからず時間がか
かるため、OSの起動に時間がかかっていた。
【0011】ところで、日本国特許出願公開(特開)平
5−242057号公報(以下、「文献1」ともいう)
には、複数の中央処理装置と、各中央処理装置ごとに設
けられた書込み読出しメモリと、各中央処理装置につい
てのオペレーティングシステムを格納するディスク装置
等の二次記憶装置とを備えたマルチプロセッサシステム
において、複数の中央処理装置のうち一の中央処理装置
についてのみ、電源投入時にシステムのブートを行うイ
ニシャルローダプログラムを格納した読出し専用メモリ
を設けるとともに、他の各中央処理装置用のそれぞれの
イニシャルローダプログラムを二次記憶装置に格納して
おき、システム起動に際し、一の中央処理装置は読出し
専用メモリ内のイニシャルローダプログラムを実行する
ことにより、二次記憶装置内のイニシャルローダプログ
ラムをそれぞれ対応する各書込み読出しメモリに転送し
て、各中央処理装置にリセット信号を送出するとととも
に、二次記憶装置から自己用のオペレーティングシステ
ムをロードし、他の中央処理装置は、リセット信号に応
じて対応する書込み読出しメモリに格納されたイニシャ
ルローダプログラムに従い二次記憶装置からそれぞれ自
己用のオペレーティングシステムをロードすることを特
徴とするマルチプロセッサシステムの起動方式が掲載さ
れている。
【0012】しかしながら、文献1に掲載されたマルチ
プロセッサシステムの起動方式は、一の中央処理装置に
ついてのみイニシャルローダプログラムを格納した読出
し専用メモリを設け、このイニシャルローダプログラム
を実行した一の中央処理装置が、他の中央処理装置が実
行するイニシャルローダプログラムを二次記憶装置から
書込み読出しメモリに転送し、他の中央処理装置が、書
込み読出しメモリに転送されたイニシャルローダプログ
ラムを実行することにより、イニシャルローダプログラ
ムの格納に要する読出し専用メモリのスペースを削減す
るものであり、システムのスタンバイ状態を実現するも
のではなく、OSの起動に必要な時間を短くするもので
もない。
【0013】また、特開平8−98098号公報(以
下、「文献2」ともいう)には、テレビジョン信号を受
信して復調し映像信号を出力する受信手段と、この受信
手段からの映像信号をディジタル信号に変換するアナロ
グディジタル変換手段と、このアナログディジタル変換
手段からのディジタル映像信号を保持する記憶手段と、
この記憶手段に格納されたディジタル映像信号を読出し
て表示画面上に画像を表示する表示手段と、アナログデ
ィジタル変換手段と記憶手段との間でディジタル映像信
号を転送するバスと、バスによるデータの転送を制御す
る転送制御手段と、オペレーティングシステムの起動を
含むブートストラッププログラムを格納するROMと、
電源投入直後に、ROMに格納されたブートストラップ
プログラムに基づいて、転送制御手段を初期化してバス
によるデータ転送を可能にした後にオペレーティングシ
ステムを起動してシステム全体をオペレーティングシス
テムの管理下に移行させるCPUとを具備したテレビジ
ョン受信機が掲載されている。
【0014】しかしながら、文献2に掲載されたテレビ
ジョン受信機は、ブートストラッププログラムに基づい
てテレビジョン映像を映出した後にオペレーティングシ
ステムを起動することにより、電源投入直後からテレビ
ジョン映像の視聴を可能にするものであり、スタンバイ
状態を実現するものではなく、OSの起動に必要な時間
を短くするものでもない。
【0015】また、特開平11−161385号公報
(以下、「文献3」ともいう)には、動作状態、オフ状
態、およびそれらの中間の複数のスリープ状態を有する
コンピュータシステムにおいて、コンピュータシステム
に対する電源供給状態の変化を検出する手段と、コンピ
ュータシステムが複数のスリープ状態の中のいずれかの
スリープ状態である期間に電源供給状態の変化が検出さ
れたとき、その電源供給状態の変化に応じて、コンピュ
ータシステムのスリープ状態を複数のスリープ状態の間
で遷移させるスリープ状態遷移手段とを具備するコンピ
ュータシステムが掲載されている。
【0016】しかしながら、文献3に掲載されたコンピ
ュータシステムは、ACPI仕様のS0〜S5の複数の
スリープ状態をとり得るバッテリ駆動のノートPC等に
おいて、スリープ状態の期間における電源供給状態(例
えばACアダプタの挿抜)の変化などに応じて動的にス
リープ状態の深さを切り替えられるようにし、システム
ステートを常に最適なスリープ状態に設定することを可
能にするものである。すなわち、パワーマネジメント機
能を有するBIOSがパワーマネジメント機能を有して
いないOSの関与及び認識なしに単独でスタンバイ状態
を実現する場合に、OSの計時機能によって管理される
時刻にコンピュータがスタンバイ状態であった時間を反
映させること、及びパワーマネジメント機能を有してい
ないOSが、コンピュータがスタンバイ状態になる前の
認識不可周辺デバイスの状態とコンピュータがスタンバ
イ状態から動作状態に復帰した後の認識不可周辺デバイ
スの状態とが同じであると認識できるようにすること
(認識不可周辺デバイスの状態がパワーマネジメント機
能を有していないOSにとって透過であること)を実現
するものではない。
【0017】また、文献3に掲載されたコンピュータシ
ステムは、APM又はACPIに対応したOSとAPM
又はACPIに対応したBIOSが協調してスタンバイ
状態を実現する場合に、アプリケーションプログラム
が、コンピュータがスタンバイ状態になる前のAPM又
はACPIに対応したOSの状態とコンピュータがスタ
ンバイ状態から動作状態に復帰した後のAPM又はAC
PIに対応したOSの状態とが同じであると認識できる
ようにすること(APM又はACPIに対応したOSの
状態がアプリケーションプログラムにとって透過である
こと)を実現するものでもない。さらに、OSの起動に
必要な時間を短くするものでもない。
【0018】
【発明が解決しようとする課題】そこで、上記の点に鑑
み、本発明は、APM又はACPIを用いることなく、
OS自体に変更を加えることなく、既存のブートローダ
をわずかに修正することで、コンピュータにおいてスタ
ンバイ状態を実現することができるプログラム制御方法
を提供することを第1の目的とする。また、本発明は、
OSの起動に必要な時間を短くすることができるプログ
ラム制御方法を提供することを第2の目的とする。
【0019】
【課題を解決するための手段】以上の課題を解決するた
め、本発明の第1の観点に係るプログラムは、コンピュ
ータにおいて、オペレーティングシステムを含むプログ
ラムの起動を制御するプログラム制御方法であって、プ
ログラム起動時にジャンプコードを検索するステップ
(a)と、ステップ(a)においてジャンプコードが得
られなかった場合に、ハードウェアを初期化してローダ
処理を行うステップ(b)と、ステップ(a)において
ジャンプコードが得られた場合に、ハードウェアの初期
化をせずにローダ処理を行うステップ(c)と、ステッ
プ(c)の後に、コンピュータをスタンバイ状態にする
ステップ(d)と、所定のハードウェア割り込みが生じ
た場合に、コンピュータをスタンバイ状態から動作状態
に移行させるステップ(e)と、ステップ(b)又はス
テップ(e)の後に、起動させるプログラムの初期化を
行うステップ(f)とを実行させる。
【0020】また、本発明の第2の観点に係るプログラ
ムは、コンピュータにおいて、オペレーティングシステ
ムを含むプログラムの起動を制御するプログラム制御方
法であって、プログラム起動時にジャンプコードを検索
するステップ(a)と、ステップ(a)においてジャン
プコードが得られなかった場合に、ハードウェアを初期
化してローダ処理を行うステップ(b)と、ステップ
(b)の後に、コンピュータをスタンバイ状態にするス
テップ(c)と、所定のハードウェア割り込みが生じた
場合に、コンピュータをスタンバイ状態から動作状態に
移行させるステップ(d)と、ステップ(a)において
ジャンプコードが得られた場合に、ハードウェアの初期
化をせずにローダ処理を行うステップ(e)と、ステッ
プ(c)又はステップ(e)の後に、起動させるプログ
ラムの初期化を行うステップ(f)とを実行させる。
【0021】ここで、ローダ処理は、コンテキストの有
無を検証し、コンテキストの有りの場合には、ソフトリ
セット処理を実行し、コンテキストの無しの場合には、
ハードリセット処理を実行することができる。また、ハ
ードリセット処理は、コンテキストの作成と、当該コン
テキストにプログラムのクラスタチェーン情報及びエン
トリポイント情報の記録を実行する処理とすることがで
きる。さらに、コンテキストは、プログラムのクラスタ
チェーン情報及びエントリポイント情報が記録されてお
り、ソフトリセット処理は、コンテキストに記録されて
いるエントリポイント情報によってプログラムのウォー
ムブートを実行し、コンテキストに記録されているクラ
スタチェーン情報によってプログラムのコールドブート
を実行する、ようにすることもできる。
【0022】本発明の第1の観点によれば、APM又は
ACPIを用いることなく、OS自体に変更を加えるこ
となく、既存のブートローダをわずかに修正し、ユーザ
からスタンバイ要求があったときにブートローダに通知
するとともに他のアプリケーションプログラムに終了要
求を発行するインタフェースプログラムを用意すること
で、コンピュータにおいてスタンバイ状態を実現するこ
とができる。従って、APM又はACPIに対応してい
ないOSを用いて、コンピュータにおいてスタンバイ状
態を実現することができる。また、工数の増加、及びパ
ワーマネジメント機能追加によるOSのプログラムコー
ドサイズ増加を最小に抑えることができる。さらに、コ
ンピュータにおけるスタンバイ状態を極めてシンプルに
実現することができ、コンピュータの安定性を高くする
ことができ、処理を高速にすることができる。
【0023】また、OSの計時機能によって管理される
時刻にコンピュータがスタンバイ状態であった時間を反
映させることができないこと、パワーマネジメント機能
を有していないOSが、コンピュータがスタンバイ状態
になる前の認識不可周辺デバイスの状態とコンピュータ
がスタンバイ状態から動作状態に復帰した後の認識不可
周辺デバイスの状態とが同じであると認識できるように
すること(認識不可周辺デバイスの状態がパワーマネジ
メント機能を有していないOSにとって透過であるこ
と)ができないこと、及び、APM又はACPIに対応
したOSとAPM又はACPIに対応したBIOSが協
調してスタンバイ状態を実現する場合に、アプリケーシ
ョンプログラムが、コンピュータがスタンバイ状態にな
る前のAPM又はACPIに対応したOSの状態とコン
ピュータがスタンバイ状態から動作状態に復帰した後の
APM又はACPIに対応したOSの状態とが同じであ
ると認識できるようにすること(APM又はACPIに
対応したOSの状態がアプリケーションプログラムにと
って透過であること)ができないといった問題をなくす
ことができる。
【0024】また、本発明の第2の観点によれば、OS
自体に変更を加えることなく、且つ一般的なハードウェ
ア構成で高速にOSを起動することができる。
【0025】
【発明の実施の形態】以下、図面に基づいて本発明の実
施の形態について説明する。図1は、本発明の実施形態
に係るプログラム制御方法を実施するためのコンピュー
タを示す図である。図1に示すように、コンピュータ2
0は、プログラム(ブートローダ、BIOS(Basic In
put/Output System:基本入出力システムプログラ
ム)、OS(Operating System)、アプリケーションプ
ログラム等を含む)などを実行するCPU(Central Pr
ocessing Unit)11と、起動時等に必要となるプログ
ラム(ブートローダ、BIOS(Basic Input/Output S
ystem)等を含む)が記憶されているROM(Read Only
Memory)13と、プログラムを実行するときにプログ
ラムデータを展開するためのRAM(Random Access Me
mory)15と、CPU11等に接続され、OS、アプリ
ケーションプログラム等が格納されているHDD(Hard
Disk Drive)17と、CPU11等に接続され、画像
などの出力制御を行うビデオコントローラ19とを具備
する。
【0026】図2は、コンピュータのプログラム制御処
理を示すフローチャートである。以下、本実施形態に係
るプログラム制御方法について、図1及び図2を参照し
ながら説明する。CPU11がソフトウェアリセット命
令を実行し(ソフトウェアリセット)、又はリセットボ
タン(図示せず)などからのリセット信号がCPU11
に入力されると(ハードウェアリセット)、CPU11
は、図2の処理を開始する。
【0027】図2の処理を開始すると、CPU11は、
ROM13内のリセットベクタに従ってリセット処理を
行う(ステップ101)。リセットベクタにはジャンプ
コード(ジャンプ先アドレス)が格納されており、その
データからジャンプ先が選択される(ステップ10
2)。
【0028】ハードウェアリセットによって図2の処理
を開始した場合には、アドレスは、例えば、「0」から
始まるので、POSTにジャンプする(ステップ10
2)。POSTでは、HDD17等のH/W(ハードウ
ェア)やRAM15やレジスタ等の初期化が行われる
(ステップ103)。
【0029】次に、POSTのブートストラップ処理で
ROM13に記憶されているブートローダをRAM15
へ読み込んで展開する(ステップ104)。なお、OS
のRAM15への展開が完了したら、暗号コードをI/
O入出力することによって、リセットベクタの示す内容
を改変可能にすることもできる。
【0030】そして、その内容をブートローダのエント
リに変更した後、ブートローダがHDD17からOSの
動作イメージをRAM15に読み込んで展開する(ステ
ップ105)。次に、ブートローダはコンテキストを作
成し(ステップ106)、そこに次回の起動に必要なデ
ータを記憶しておく。必要なデータとは、例えばRAM
13、HDD17等のディスク装置、ビデオコントロー
ラ19のパラメータ、OSのエントリーアドレス、OS
に渡すパラメータ、HDD17等のディスク装置内のO
Sに関係するOSイメージファイルのクラスタ情報、オ
リジナルのリセットベクタの内容などである。なお、こ
のコンテキストにある情報は、OS動作中も常にOSか
ら保護された状態でメモリに存在する。また、このコン
テキストエリアへはブートローダのみがアクセスするこ
とができる。
【0031】次に、ブートローダは、コンピュータ20
の高速起動のための待機を指示するパラメータを受け取
っているか否かをチェックし(ステップ107)、該パ
ラメータを受け取っている場合にはCPU11を停止さ
せ、コンピュータ20をスタンバイ状態に移行させる
(ステップ108)。ステップ108にてCPU11が
停止しているときに、ハードウェア割り込み(タイマ割
り込み、電源スイッチがオンにされること等を含む)が
生ずると(起動指示)、CPU11は動作を再開し、コ
ンピュータ20はスタンバイ状態から動作状態に移行す
る。
【0032】ステップ107にてコンピュータ20の高
速起動のための待機を指示するパラメータを受け取って
いない場合、又はステップ108にてハードウェア割り
込みが生じた場合、ブートローダは、RAM15上でO
Sを初期化する(ステップ109)。このとき、OSに
対して次回のブートローダ起動時に、OSからブートロ
ーダ動作のリクエストができる機構として、OSがリク
エストコードを記録するための手段(例えば、特定のメ
モリアドレス)をOSに渡すパラメータに含める形で通
知する。こうして、OSが動作し、OS上のアプリケー
ションを起動させることができ、ビデオコントローラ1
9等を制御できるようになる。
【0033】一方、ソフトウェアリセットによって図2
の処理を開始した場合には、ジャンプコードの情報を読
み取り、ブートローダにジャンプする(ステップ10
2)。続いて、RAM15内にコンテキストがあるかを
確認する(ステップ110)。
【0034】コンテキストがない場合は、ハードウェア
は初期化されているが、ブートローダのコンテキスト情
報が十分に記録されていない場合である。そのため、処
理をステップ105に移す(ステップ110)。
【0035】一方、コンテキストがある場合には、次
に、OSの終了要求があるかを確認する(ステップ11
1)。ここで、OSの終了処理要求がある場合には、O
Sの終了処理を行うこととなる(ステップ112)。
【0036】また、OSの終了処理要求がない場合に
は、ウォーム(WARM)ブートさせるか、コールド
(COLD)ブートさせるかを選択する(ステップ11
3)。具体的には、コンテキストからOSのエントリポ
イントを取得できる場合にはウォーム(WARM)ブー
トさせ、コンテキストからOSのエントリポイントを取
得できない場合にはコールド(COLD)ブートさせ
る。
【0037】ウォーム(WARM)ブートの場合には、
ブートローダは、スタンバイ状態となることを指示する
パラメータを受け取っているか否かをチェックし(ステ
ップ114)、該パラメータを受け取っている場合には
CPU11を停止させ、コンピュータ20をスタンバイ
状態に移行させる(ステップ115)。ステップ115
にてCPU11が停止しているときに、ハードウェア割
り込み(タイマ割り込み、電源スイッチがオンにされる
こと等を含む)が生ずると、CPU11は動作を再開
し、コンピュータ20はスタンバイ状態から動作状態に
移行する。
【0038】ステップ114にてスタンバイ状態となる
ことを指示するパラメータを受け取っていない場合、又
はステップ115にてハードウェア割り込みが生じた場
合、ブートローダは、コンテキストからOSのエントリ
ポイントを取得し、該エントリポイントにジャンプする
(ステップ116)。その後はステップ109に従い、
RAM15上でOSを初期化する。なお、ウォーム(W
ARM)ブートでは、RAM15の内容の保持だけを保
証すれば良いため、RAM15以外のデバイスに関して
は、一通りの標準的・一般的なパワーオフ/パワーオン
処理に止める。また、RAM15以外のデバイスは、O
Sがウォーム(WARM)ブート後に初期化する。
【0039】ステップ113にてコールド(COLD)
ブートの場合には、ブートローダはコンテキストからO
Sのエントリポイントを取得できないので、コンテキス
トからOSファイルのクラスタ情報を取得する(ステッ
プ117)。その情報に従って、HDD17からOSフ
ァイルをRAM15に高速に読み込んで(ステップ11
8)展開し、RAM15上でOSを初期化する(ステッ
プ109)。なお、ステップ117、118、109の
処理中に、ブートローダはコンテキストに次回の起動に
必要なデータを確実に記憶しておく。
【0040】なお、ステップ115においてコンピュー
タ20がスタンバイ状態になった場合には、OS上で動
作中のアプリケーションプログラムの状態は保存されな
い。そこで、OS上で動作するアプリケーションプログ
ラムであって、コンピュータ20の動作状態の監視を行
い、また、ユーザからスタンバイ要求があったときにブ
ートローダに通知するとともに他のアプリケーションプ
ログラムに終了要求を発行するインタフェースプログラ
ム(ダイナミックリンクライブラリとすることも可能)
を用意することにより、アプリケーションプログラムが
レジストリ(OSの動作に必要なパラメータ等を格納す
るシステムファイル)やデータファイルにデータを退避
できるようにすることが可能となる。
【0041】以上説明したように、本実施形態において
は、ステップ114においてスタンバイ状態となること
を指示するパラメータを受け取っているか否かをチェッ
クし、該パラメータを受け取っている場合には、ステッ
プ115においてコンピュータ20がスタンバイ状態に
移行する。このように、本実施形態においては、APM
又はACPIを用いることなく、OS自体に変更を加え
ることなく、既存のブートローダをわずかに修正し、ユ
ーザからスタンバイ要求があったときにブートローダに
通知するとともに他のアプリケーションプログラムに終
了要求を発行するインタフェースプログラムを用意する
ことで、コンピュータ20においてスタンバイ状態を実
現することができる。従って、APM又はACPIに対
応していないOSを用いて、コンピュータ20において
スタンバイ状態を実現することができる。また、工数の
増加、及びパワーマネジメント機能追加によるOSのプ
ログラムコードサイズ増加を最小に抑えることができ
る。さらに、コンピュータ20におけるスタンバイ状態
を極めてシンプルに実現しているので、コンピュータ2
0の安定性を高くすることができ、処理を高速にするこ
とができる。
【0042】また、OSの計時機能によって管理される
時刻にコンピュータがスタンバイ状態であった時間を反
映させることができないこと、パワーマネジメント機能
を有していないOSが、コンピュータがスタンバイ状態
になる前の認識不可周辺デバイスの状態とコンピュータ
がスタンバイ状態から動作状態に復帰した後の認識不可
周辺デバイスの状態とが同じであると認識できるように
すること(認識不可周辺デバイスの状態がパワーマネジ
メント機能を有していないOSにとって透過であるこ
と)ができないこと、及び、APM又はACPIに対応
したOSとAPM又はACPIに対応したBIOSが協
調してスタンバイ状態を実現する場合に、アプリケーシ
ョンプログラムが、コンピュータがスタンバイ状態にな
る前のAPM又はACPIに対応したOSの状態とコン
ピュータがスタンバイ状態から動作状態に復帰した後の
APM又はACPIに対応したOSの状態とが同じであ
ると認識できるようにすること(APM又はACPIに
対応したOSの状態がアプリケーションプログラムにと
って透過であること)ができないといった問題をなくす
ことができる。
【0043】また、本実施形態においては、ステップ1
07において高速起動のための待機を指示するパラメー
タを受け取っているか否かをチェックし、該パラメータ
を受け取っている場合には、ステップ108においてコ
ンピュータ20をスタンバイ状態に移行させて待機させ
る。そして、ハードウェア割り込み(起動指示)が生じ
た場合に、コンピュータ20をスタンバイ状態から動作
状態に移行させる。このように、本実施形態において
は、OS自体に変更を加えることなく、且つ一般的なハ
ードウェア構成で高速にOSを起動することができる。
具体的には、OSとしてWindowsCE(マイクロ
ソフト社の登録商標)を用いたコンピュータにおいて、
従来約30秒であったOS起動時間を5秒未満に短縮す
ることができる。
【0044】
【発明の効果】以上述べた様に、本発明の第1の観点に
よれば、APM又はACPIを用いることなく、OS自
体に変更を加えることなく、既存のブートローダをわず
かに修正することで、コンピュータにおいてスタンバイ
状態を実現することが可能となる。また、本発明の第2
の観点によれば、OS自体に変更を加えることなく、且
つ一般的なハードウェア構成で高速にOSを起動するこ
とが可能となる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るプログラム制御処
理を実行するコンピュータの一例を示す図である。
【図2】 本発明の一実施形態に係るプログラム制御処
理を示すフローチャートである。
【符号の説明】
11 CPU 13 ROM 15 RAM 17 HDD 19 ビデオコントローラ 20 コンピュータ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータにおいて、オペレーティン
    グシステムを含むプログラムの起動を制御するプログラ
    ムであって、 前記プログラムの起動時にジャンプコードを検索するス
    テップ(a)と、 ステップ(a)においてジャンプコードが得られなかっ
    た場合に、ハードウェアを初期化してローダ処理を行う
    ステップ(b)と、 ステップ(a)においてジャンプコードが得られた場合
    に、ハードウェアの初期化をせずにローダ処理を行うス
    テップ(c)と、 ステップ(c)の後に、前記コンピュータをスタンバイ
    状態にするステップ(d)と、 所定のハードウェア割り込みが生じた場合に、前記コン
    ピュータをスタンバイ状態から動作状態に移行させるス
    テップ(e)と、 ステップ(b)又はステップ(e)の後に、前記プログ
    ラムの初期化を行うステップ(f)と、を実行させるプ
    ログラム。
  2. 【請求項2】 コンピュータにおいて、オペレーティン
    グシステムを含むプログラムの起動を制御するプログラ
    ムであって、 プログラム起動時にジャンプコードを検索するステップ
    (a)と、 ステップ(a)においてジャンプコードが得られなかっ
    た場合に、ハードウェアを初期化してローダ処理を行う
    ステップ(b)と、 ステップ(b)の後に、前記コンピュータをスタンバイ
    状態にするステップ(c)と、 所定のハードウェア割り込みが生じた場合に、前記コン
    ピュータをスタンバイ状態から動作状態に移行させるス
    テップ(d)と、 ステップ(a)においてジャンプコードが得られた場合
    に、ハードウェアの初期化をせずにローダ処理を行うス
    テップ(e)と、 ステップ(c)又はステップ(e)の後に、起動させる
    プログラムの初期化を行うステップ(f)と、を実行さ
    せるプログラム。
  3. 【請求項3】 前記ローダ処理は、コンテキストの有無
    を検証し、前記コンテキストの有りの場合には、ソフト
    リセット処理を実行させ、前記コンテキストの無しの場
    合には、ハードリセット処理を実行させることを特徴と
    する請求項1又は2記載のプログラム。
  4. 【請求項4】 前記ハードリセット処理は、コンテキス
    トの作成と、当該コンテキストにプログラムのクラスタ
    チェーン情報及びエントリポイント情報の記録と、を実
    行させることを特徴とする請求項3記載のプログラム。
  5. 【請求項5】 前記コンテキストは、プログラムのクラ
    スタチェーン情報及びエントリポイント情報が記録され
    ており、 前記ソフトリセット処理は、 前記コンテキストに記録されている前記エントリポイン
    ト情報によって前記プログラムのウォームブートを実行
    させ、 前記コンテキストに記録されている前記クラスタチェー
    ン情報によって前記プログラムのコールドブートを実行
    させる、ことを特徴とする請求項3記載のプログラム。
  6. 【請求項6】コンピュータにおいて、オペレーティング
    システムを含むプログラムの起動を制御する情報処理装
    置であって、 前記プログラムの起動時にジャンプコードを検索するス
    テップ(a)と、 ステップ(a)においてジャンプコードが得られなかっ
    た場合に、ハードウェアを初期化してローダ処理を行う
    ステップ(b)と、 ステップ(a)においてジャンプコードが得られた場合
    に、ハードウェアの初期化をせずにローダ処理を行うス
    テップ(c)と、 ステップ(c)の後に、前記コンピュータをスタンバイ
    状態にするステップ(d)と、 所定のハードウェア割り込みが生じた場合に、前記コン
    ピュータをスタンバイ状態から動作状態に移行させるス
    テップ(e)と、 ステップ(b)又はステップ(e)の後に、前記プログ
    ラムの初期化を行うステップ(f)と、を実行する情報
    処理装置。
  7. 【請求項7】 コンピュータにおいて、オペレーティン
    グシステムを含むプログラムの起動を制御する情報処理
    装置であって、 プログラム起動時にジャンプコードを検索するステップ
    (a)と、 ステップ(a)においてジャンプコードが得られなかっ
    た場合に、ハードウェアを初期化してローダ処理を行う
    ステップ(b)と、 ステップ(b)の後に、前記コンピュータをスタンバイ
    状態にするステップ(c)と、 所定のハードウェア割り込みが生じた場合に、前記コン
    ピュータをスタンバイ状態から動作状態に移行させるス
    テップ(d)と、 ステップ(a)においてジャンプコードが得られた場合
    に、ハードウェアの初期化をせずにローダ処理を行うス
    テップ(e)と、 ステップ(c)又はステップ(e)の後に、起動させる
    プログラムの初期化を行うステップ(f)と、を実行す
    る情報処理装置。
  8. 【請求項8】 前記ローダ処理は、コンテキストの有無
    を検証し、前記コンテキストの有りの場合には、ソフト
    リセット処理を実行し、前記コンテキストの無しの場合
    には、ハードリセット処理を実行することを特徴とする
    請求項6又は7記載の情報処理装置。
  9. 【請求項9】 前記ハードリセット処理は、コンテキス
    トの作成と、当該コンテキストにプログラムのクラスタ
    チェーン情報及びエントリポイント情報の記録と、を実
    行することを特徴とする請求項8記載の情報処理装置。
  10. 【請求項10】 前記コンテキストは、プログラムのク
    ラスタチェーン情報及びエントリポイント情報が記録さ
    れており、 前記ソフトリセット処理は、 前記コンテキストに記録されている前記エントリポイン
    ト情報によって前記プログラムのウォームブートを実行
    し、 前記コンテキストに記録されている前記クラスタチェー
    ン情報によって前記プログラムのコールドブートを実行
    する、ことを特徴とする請求項8記載の情報処理装置。
JP2002046296A 2002-02-22 2002-02-22 プログラムおよび情報処理装置 Withdrawn JP2003248580A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002046296A JP2003248580A (ja) 2002-02-22 2002-02-22 プログラムおよび情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002046296A JP2003248580A (ja) 2002-02-22 2002-02-22 プログラムおよび情報処理装置

Publications (1)

Publication Number Publication Date
JP2003248580A true JP2003248580A (ja) 2003-09-05

Family

ID=28659756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002046296A Withdrawn JP2003248580A (ja) 2002-02-22 2002-02-22 プログラムおよび情報処理装置

Country Status (1)

Country Link
JP (1) JP2003248580A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008016020A (ja) * 2006-06-30 2008-01-24 Lenovo (Beijing) Co Ltd Biosの実行を加速化する方法
JP2012252454A (ja) * 2011-06-01 2012-12-20 Canon Inc 画像形成装置、画像形成装置の制御方法、及びプログラム
US9310877B2 (en) 2012-01-26 2016-04-12 Ricoh Company, Ltd. Apparatus and power-saving method for controlling a return to a normal power mode

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008016020A (ja) * 2006-06-30 2008-01-24 Lenovo (Beijing) Co Ltd Biosの実行を加速化する方法
US8037292B2 (en) 2006-06-30 2011-10-11 Lenovo (Beijing) Limited Method for accelerating BIOS running
JP2012252454A (ja) * 2011-06-01 2012-12-20 Canon Inc 画像形成装置、画像形成装置の制御方法、及びプログラム
US9245218B2 (en) 2011-06-01 2016-01-26 Canon Kabushiki Kaisha Image forming apparatus, control method of image forming apparatus and storage medium
US9310877B2 (en) 2012-01-26 2016-04-12 Ricoh Company, Ltd. Apparatus and power-saving method for controlling a return to a normal power mode

Similar Documents

Publication Publication Date Title
US7188239B2 (en) Apparatus with a standby mode, program and control method for an apparatus with a standby mode
US10452404B2 (en) Optimized UEFI reboot process
RU2435200C2 (ru) Быстрая загрузка операционной системы из выключенного состояния
KR100430468B1 (ko) 운영체제의 초기화 및 재시작 방법 및 장치
RU2451989C2 (ru) Поддержка нескольких операционных систем в мультимедийных устройствах
EP2189901B1 (en) Method and system to enable fast platform restart
US7386746B2 (en) Information processing apparatus, method of starting up the same, and startup program of the same
WO2004107168A1 (en) Booting from non-volatile memory
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
JP3777136B2 (ja) コンピュータ装置、データのデッドコピー方法、プログラム、コンピュータ装置の稼動方法
JPH077317B2 (ja) システム再起動装置
KR101813641B1 (ko) 화상형성장치 및 하이버네이션 기능을 갖는 화상형성장치를 부팅하는 방법
JP2015102889A (ja) ファームウェアの更新方法、電子機器、コンピュータおよびコンピュータ・プログラム
JPH11242631A (ja) コンピュータシステムおよび同システムにおけるデータ保存/復元方法
EP1037133A1 (en) Method and apparatus for alternation between instances of operating systems in computer systems
CN112506745A (zh) 内存温度读取方法、装置及计算机可读存储介质
TWI336436B (en) Information processor, and power-saving method and program product
JP2003248580A (ja) プログラムおよび情報処理装置
JPWO2009016708A1 (ja) コンピュータ装置、コンピュータ起動処理方法およびコンピュータ起動処理プログラム
WO2008048581A1 (en) A processing device operation initialization system
CN100407150C (zh) 信息处理设备与操作系统转换方法
US20150317181A1 (en) Operating system switching method
CN100392601C (zh) 于电脑系统中装置间转移控制权及由待机切换至运作的方法
KR20050070635A (ko) 비정상 종료된 시스템의 재부팅 시간을 단축할 수 있는임베디드 컴퓨터 시스템
JP3227628B2 (ja) 情報処理システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050510