JP2021026603A - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP2021026603A
JP2021026603A JP2019145466A JP2019145466A JP2021026603A JP 2021026603 A JP2021026603 A JP 2021026603A JP 2019145466 A JP2019145466 A JP 2019145466A JP 2019145466 A JP2019145466 A JP 2019145466A JP 2021026603 A JP2021026603 A JP 2021026603A
Authority
JP
Japan
Prior art keywords
setting data
tag
written
boot process
boot
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.)
Granted
Application number
JP2019145466A
Other languages
English (en)
Other versions
JP6775651B1 (ja
Inventor
和哉 柴山
Kazuya Shibayama
和哉 柴山
佐々木 健
Takeshi Sasaki
健 佐々木
勇作 森重
Yusaku Morishige
勇作 森重
直幸 荒木
Naoyuki Araki
直幸 荒木
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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2019145466A priority Critical patent/JP6775651B1/ja
Priority to US16/775,447 priority patent/US11249661B2/en
Application granted granted Critical
Publication of JP6775651B1 publication Critical patent/JP6775651B1/ja
Publication of JP2021026603A publication Critical patent/JP2021026603A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】BIOSによる起動を簡便な方法で以前の設定に戻して行うこと。【解決手段】情報処理装置は、BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行する処理部と、ブート処理の期間内の所定のタイミングで、不揮発性メモリ内の所定領域に、当該タイミングに対応するタグを書き込む書き込み部と、不揮発性メモリ内の所定領域にタグより以前に書き込まれた設定データを使用してブート処理を実行するように処理部に指示する指示部と、を備える。【選択図】図1

Description

本発明は、情報処理装置、制御方法、及びプログラムに関する。
BIOS(Basic Input Output System)の設定を変更した場合に起動できなくなるといったシステム障害が発生することがある。この設定変更によるシステム障害は、設定を初期化することによりリカバリーする方法がある(例えば、特許文献1参照)。
しかしながら、BIOSの設定を初期化した場合には、それまでユーザがカスタマイズした設定が反映されなくなるため、BIOSによる初期化処理の対象となる周辺装置が初期化されなくなってしまうことや、初期化処理の手順等に変化が生じたりするといった問題が生じることがある。そのため、問題なく起動していたときの設定のスナップショットを保存しておき、その保存しておいた設定を使用してリカバリーする方法もある。
特開2011−81617号公報
しかしながら、スナップショットで保存しておく方法では、単なる初期化とは違いユーザが保存した以前の設定に戻してリカバリーできる反面、ユーザがリカバリー用として設定を保存するための作業を自ら行う必要があるため、作業を行うのが煩わしく実行性が低くなるという懸念がある。
本発明は、上記した事情に鑑みてなされたもので、BIOSによる起動を簡便な方法で以前の設定に戻して行うことができる情報処理装置、制御方法、及びプログラムを提供することを目的の一つとする。
本発明は上記の課題を解決するためになされたものであり、本発明の第1態様に係る情報処理装置は、BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行する処理部と、前記ブート処理の期間内の所定のタイミングで、前記不揮発性メモリ内の前記所定領域に、当該タイミングに対応するタグを書き込む書き込み部と、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示する指示部と、を備える。
上記情報処理装置において、前記所定のタイミングには、前記ブート処理の終了タイミングが含まれてもよい。
上記情報処理装置において、前記所定のタイミングには、前記不揮発性メモリにデータを書き込み可能となるタイミングが含まれてもよい。
上記情報処理装置において、前記ブート処理には、前記ブート処理に使用する設定データをユーザが変更可能なセットアップ処理が含まれ、前記所定のタイミングには、前記セットアップ処理の開始タイミングが含まれてもよい。
上記情報処理装置において、前記指示部は、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データのうち設定項目ごとの最新の設定データを使用して前記ブート処理を実行するように前記処理部に指示してもよい。
上記情報処理装置において、前記書き込み部は、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データの少なくとも一部を、前記ブート処理に使用する設定データとして、最後に書き込まれた設定データの後に書き込んでもよい。
上記情報処理装置において、前記指示部は、ユーザの操作に基づいて、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示してもよい。
上記情報処理装置において、前記指示部は、前記不揮発性メモリ内の前記所定領域に書き込まれた複数の前記タグの種類及び連続性に基づいて、前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示してもよい。
上記情報処理装置において、前記指示部は、前記不揮発性メモリ内の前記所定領域に書き込まれた複数の前記タグのうちユーザに選択された前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示してもよい。
上記情報処理装置は、前記不揮発性メモリ内の前記所定領域の書き込み可能な領域の残量に基づいて、前記所定領域に書き込まれた設定データのうち、最後に書き込まれた前記タグから所定数分遡った前記タグ以前の領域において、設定項目ごとの最新の設定データ以外の設定データを少なくとも消去するメモリ制御部、を備えてもよい。
上記情報処理装置において、前記メモリ制御部は、最後に書き込まれた前記タグから所定数分遡った前記タグ以降の各タグ間の領域のそれぞれにおいて、設定項目ごとの最新の設定データ以外の設定データを消去してもよい。
また、本発明の第2態様に係る情報処理装置の制御方法は、処理部が、BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行するステップと、書き込み部が、前記ブート処理の期間内の所定のタイミングで、前記不揮発性メモリ内の前記所定領域に、当該タイミングに対応するタグを書き込むステップと、指示部が、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように指示するステップと、を有する。
また、本発明の第3態様に係るプログラムは、コンピュータに、BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行するステップと、 前記ブート処理の期間内の所定のタイミングで、前記不揮発性メモリ内の前記所定領域に、当該タイミングに対応するタグを書き込むステップと、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように指示するステップと、を実行させる。
本発明の上記態様によれば、BIOSによる起動を簡便な方法で以前の設定に戻して行うことができる。
実施形態に係る情報処理装置の構成例を示すブロック図。 Flashメモリへのデータ書き込み制御の概念図。 タグが書き込まれている設定データ保存領域の一例を示す模式図。 ブート処理においてタグを書き込むタイミングを示す図。 Setup処理後の設定データ保存領域の一例を示す図。 前回のブート処理の設定に戻す場合の設定データの一例を示す図。 BIOS設定が変更される前の設定に戻す場合の設定データの一例を示す図。 複数回の起動により複数のタグが書き込まれている状態の一例を示す図。 実施形態に係るリカバリーモードにおける処理の概要を示す図。 実施形態に係るリカバリーモード確認処理の一例を示すフローチャート。 実施形態に係るリカバリーデータ収集処理の一例を示すフローチャート。 実施形態に係るリカバリーデータ適用処理の一例を示すフローチャート。 実施形態に係るガベージコレクション処理の一例を示すフローチャート。
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
(情報処理装置10の構成)
まず、本発明の第1の実施形態について説明する。
図1は、本実施形態に係る情報処理装置10の構成例を示すブロック図である。情報処理装置10は、例えば、パーソナルコンピュータである。情報処理装置10は、デスクトップ型、ラップトップ型、タブレット型等いずれのパーソナルコンピュータであってもよい。例えば、情報処理装置10は、通信部11と、入力部12と、表示部13と、スピーカ14と、制御部15と、RAM(Random Access Memory)16と、Flashメモリ17とを備えている。これらの各部は、バスを介して通信可能に接続されている。
通信部11は、例えば、複数のイーサネット(登録商標)ポートや複数のUSB等のデジタル入出力ポート、WiFi(登録商標)等の無線通信等を含んで構成される。
入力部12は、パーソナルコンピュータ100に設けられたキーボードやタッチパッド、電源ボタンなどの操作ボタン、または表示部13の表示画面に対する操作を検出するタッチパネルなどに対するユーザの操作入力を受け付ける。なお、入力部12は、USB(Universal Serial Bus)などにより接続されるキーボードやマウスなど、外付けの操作デバイスに対するユーザの操作入力を受け付けてもよい。入力部12は、受け付けた操作入力に基づく操作信号を出力する。
表示部13は、映像、画像、テキスト等を表示するディスプレイであり、例えば、液晶ディスプレイパネル、有機ELディスプレイパネルなどを含んで構成される。スピーカ14は、電子音や音声などを出力する。
制御部15は、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、EC(Embedded Controller)などを含んで構成される。制御部15は、BIOS(Basic Input Output System)、OS(Operating System)、または各種のアプリケーションなどのプログラムを実行することにより、BIOSやOSなどのシステムをブート(起動)し、各種の演算及び処理などを行う。また、制御部15は、RAM16、Flashメモリ17などに対してデータの読み書きや消去などのメモリ制御を行う。
RAM16は、制御部15が演算や制御、処理などを行うプログラムやデータが展開され、適宜、各種データの保存または消去が行われる。なお、RAM16は、揮発性メモリであるため、給電が停止されるとデータを保持できない。
Flashメモリ17は、Flash−ROM(Resad Only Memory)などの不揮発性メモリである。つまり、Flashメモリ17は、給電が停止されでもデータを保持できる。例えば、Flashメモリ17は、SPI(Serial Peripheral Interface) Flashメモリである。例えば、Flashメモリ17は、BIOSのコードを保存する領域や、BIOSの設定についての設定データを保存する領域、制御部15が実行する処理に必要なデータを保存する領域など、複数のデータ領域に区分されている。以下では、BIOSの設定データを保存する領域(以下、「設定データ保存領域」という)に関する制御について説明する。
設定データ保存領域には、BIOSによるブート時の処理(例えば、POST(Power On Self Test)処理)で使用する複数の設定項目についての設定データなどが保存される。一つの設定項目に対して、「Name」、「ID」、「内容(設定データ)」、及び「Status」が一つのブロックとして保存される。「Name」は、設定項目の名称を示すデータである。「ID」は、設定項目の識別情報である。「内容(設定データ)」は、設定の値である。「Status」は、そのデータが有効/無効であるかを示す。各ブロックは、時系列順に設定データ保存領域に保存される。設定データが書き込まれると「Status」が有効のブロックが追加され、同じ設定項目のブロックが以前に書き込まれている場合には、そのブロックの「Status」が無効に変更される。
図2は、Flashメモリ17へのデータ書き込み制御の概念図である。図2の(a)〜(c)に示す図は、Flashメモリ17の設定データ保存領域に書き込まれているデータの状態を時系列の順に表している。なお、この図では簡易的に設定データ保存領域を15ブロック分の領域とし、設定項目及び設定データをアルファベット及び数字で表している。また、設定データ保存領域の左上から右下に向かう方向の順にデータが書き込みされるものとする。以下、(a)〜(c)に示す図の順に従って説明する。
(a)設定データ保存領域に何もデータが書き込まれていない状態(消去された状態)から、制御部15の制御によりA及びBの設定データとして「A=1」及び「B=2」が書き込まれた状態を示している。書き込まれた最新の設定データ(現在の設定データ)が有効な設定データである。
(b)次に、制御部15は、A及びBの設定データを「A=2」及び「B=0」に変更し、且つ新たにCの設定データとして「C=5」を書き込む場合、前回書き込んだ「A=1」及び「B=2」を無効なデータとし(背景がハッチングされているブロック)、新たなブロックとして「A=2」及び「B=0」、そして「C=5」を書き込む。つまり、「A=2」、「B=0」、及び「C=5」が有効なデータとなる。
(c)さらに、制御部15は、A及びCの設定データを「A=0」及び「C=3」に変更する場合、前回書き込んだ「A=2」及び「C=5」を無効なデータとし、新たな領域(ページ)に「A=0」及び「C=3」を書き込む。つまり、「A=0」、「B=0」、及び「C=3」が有効なデータとなる。
このように、Flashメモリ17の特性により、同一の設定項目の設定データの更新は、前回書き込まれた設定データを無効にし、新たな領域に有効なデータが書き込まれることになる。つまり、最新(現在)の設定データのみではなく、過去に書き込まれた設定データも「Status」が無効に設定されているものの、データ自体は残っていることになる。制御部15は、BIOSによるブート処理が正常に終了しないなどのシステム障害が発生した場合、この過去に書き込まれた設定データを使用してリカバリー処理を実行する。
例えば、制御部15は、BIOSによるブート処理の期間内の所定のタイミングでタグをFlashメモリ17の設定データ保存領域に書き込んでおく。タグとは、ブート処理の期間内の所定のタイミングを特定するためのしるし(マーカー)となるデータである。BIOSの設定が変更されたことなどによりブート処理に異常が生じたときには、制御部15は、この書き込んでおいたタグを手掛かりにして、過去にブート処理が正常に終了したときのBIOSの設定に戻すことが可能である。例えは、タグを書き込むタイミングは、BIOSによるブート処理の終了タイミング(正常に終了したタイミング)である。
図3は、タグが書き込まれている設定データ保存領域の一例を示す模式図である。図示する設定データ保存領域D10の符号TG1に示すブロックには、BIOSによるブート処理の終了タイミングで「Boot」タグが書き込まれている。「Boot」タグは、ブートが正常に終了したことを示すタグである。「Boot」タグ以前において、背景が白のブロックが現時点で最新の設定データ(有効な設定データ)が書き込まれているブロックであり、背景がハッチングされているブロックが過去の設定データ(無効な設定データ)が書き込まれているブロックである。「Boot」タグ以降(現時点以降)のブロックは、データが書き込まれていない空き領域である。つまり、設定データ保存領域D10に書き込まれている現時点でのBIOSの設定(Current Setting)は、符号D11に示すように現時点での最新の設定データ(有効な設定データ)であり、この設定データを使用してBIOSによるブート処理が正常に終了したことを示している。そのため、この後にBIOSの設定を変更したことによりブート処理が正常に終了しなくなった場合、「Boot」タグを検索して、「Boot」タグが書き込まれている時点での最新の設定データ(「Boot」タグ以前の最新の設定データ)を使用してブート処理を正常に行なうことが可能となる。
次に、タグを書き込むタイミングについて詳しく説明する。図4は、ブート処理においてタグを書き込むタイミングを示す図である。この図は、情報処理装置10の電源ボタンに対する操作等に応じて実行される起動処理の概要を示す図である。横軸が時間tである。時刻t10から時刻t20までがBIOSによるブート処理(BIOS boot)の期間であり、BIOSによるブート処理が正常に終了すると、OSによるブート処理(OS boot)が実行される。制御部15は、上述したように、BIOSによるブート処理の終了タイミング(時刻t20)で、「Boot」タグを設定データ保存領域に書き込む。
また、タグを書き込むタイミングには、ブート処理の終了タイミングに代えてまたは加えて他のタイミングが含まれてもよい。図4に示すように、制御部15は、BIOSによるブート処理を、SEC(Security)、PEI(Pre EFI Initialization)、DXE(Driver Execution Environment)、BDS(Boot Device Select)の順に実行する。また、DXE処理の期間に特定の操作がされると、制御部15は、Setup処理(セットアップ処理)を実行する。Setup処理は、BIOSの設定(ブート処理に使用する設定データ)をユーザが変更するときに実行される処理である。制御部15は、入力部12から出力された操作信号に基づいて、Setup処理を開始すると、Setup画面を表示部13に表示させる。そして、制御部15は、Setup画面に対するユーザの操作に基づいてBIOSの設定が変更された場合、変更された設定に基づく設定データを設定データ保存領域に書き込む。また、Setup画面における操作が終了すると、制御部15は、Setup画面の表示を終了させ、再起動により最新の設定データを使用したブート処理を実行する。
例えば、制御部15は、DXE処理の開始タイミングで「Start」タグを設定データ保存領域に書き込んでもよい。DXE処理の開始タイミングは、Flashメモリ17へのデータの書き込みが可能になるタイミングに相当する。また、制御部15は、Setup処理の開始タイミングで「Setup」タグを設定データ保存領域に書き込んでもよい。また、制御部15は、BDS処理の開始タイミングで「BDS」タグを設定データ保存領域に書き込んでもよい。
タグには、書き込まれたタイミングに対応する情報(Start、Setup、Bootなど)、そのタイミングの日時情報(タイムスタンプ)などが含まれる。例えば、同じ種類のタグが複数書き込まれている場合、同じ種類のタグのそれぞれを日時情報に基づいて区別することが可能である。
次に、図5及び図6を参照して、ユーザがSetup画面でBIOSの設定を変更した後に、前回のBIOSのブート処理を実行したときの設定に戻す(リカバリーする)例を説明する。図5は、Setup画面でBIOSの設定を変更したときのSetup処理後の設定データ保存領域の一例を示す図である。図示する設定データ保存領域D20の符号TG2に示すブロックには、Setup処理の開始タイミングで「Setup」タグが書き込まれている。「Setup」タグ以降に書き込まれているブロックの設定データは、Setup画面に対するユーザの操作によりSetup処理で変更された最新の設定データ(有効な設定データ)である。変更された設定項目の過去に書き込まれた設定データは無効に設定され、変更されていない設定項目の過去に書き込まれた設定データのうち最新の設定データ(図示の「K=0x0A」)は有効のままである。つまり、設定データ保存領域D20に書き込まれている現時点でのBIOSの設定(Current Setting)は、符号D21に示すように現時点での最新の設定データ(有効な設定データ)である。また、符号TG1に示すブロックには、「Setup」タグが書き込まれる以前に実行されたBIOSによるブート処理の終了タイミングで「Boot」タグが書き込まれている。
例えば、このSetup画面に対するユーザの操作により変更された設定データを使用したブート処理が正常に終了しなかった場合、制御部15は、変更前のBIOSの設定を使用してリカバリーする。具体的には、制御部15は、「Setup」タグ以前に書き込まれている「Boot」タグを検索し、「Boot」タグ以前の最新の設定データを使用する(即ち、前回の正常終了したブート処理の設定に戻す)。
図6は、前回のブート処理の設定に戻す場合の設定データ保存領域における設定データの一例を示す図である。この図では、図5に示す設定データ保存領域D20において、「Boot」タグ以前の最新の設定データ(即ち、前回のブート時の設定データ)が書き込まれているブロックを太枠で示している。符号D22に示すように前回のブート時のBIOSの設定(Boot時 Setting)は、この太枠で示すブロックに書き込まれている設定データである。制御部15は、リカバリー処理を行なう際には、図5の符号D21に示す現時点でのBIOSの設定(Current Setting)を使用せずに、図6の符号D22に示す前回のブート時のBIOSの設定(Boot時 Setting)を使用してブート処理を実行する。
例えば、制御部15は、図6に示す設定データ保存領域において、「Setup」タグ以降に書き込まれているブロックの設定データを無効にし、その後の領域に、「Boot」タグ以前の太枠で示すブロックに書き込まれている前回のブート時の設定データを、あらたに有効なデータとして書き込む。その後、制御部15は、再起動(リブート)させることで、前回のブート時の設定データを使用して、BIOSによるブート処理を実行することができる。
なお、制御部15は、変更前のBIOSの設定を使用してリカバリーする際に、Setup」タグ以前の最新の設定データを使用してもよい(即ち、Setup画面に対するユーザの操作によりBIOSの設定が変更される前の設定に戻してもよい)。
図7は、BIOSの設定が変更される前の設定に戻す場合の設定データ保存領域における設定データの一例を示す図である。この図では、図5に示す設定データ保存領域D20において、「Setup」タグ以前の最新の設定データ(即ち、Setup処理前の設定データ)が書き込まれているブロックを太枠で示している。符号D23に示すようにSetup処理前のBIOSの設定(Setup前 Setting)は、この太枠で示すブロックに書き込まれている設定データである。制御部15は、リカバリー処理を行なう際には、図5の符号D21に示す現時点でのBIOSの設定(Current Setting)を使用せずに、図7の符号D23に示すSetup処理前のBIOSの設定(Boot時 Setting)を使用してブート処理を実行する。
例えば、制御部15は、図7に示す設定データ保存領域において、「Setup」タグ以降に書き込まれているブロックの設定データを無効にし、その後の領域に、「Setup」タグ以前の太枠で示すブロックに書き込まれているSetup処理前の設定データを、あらたに有効なデータとして書き込む。その後、制御部15は、再起動(リブート)させることで、Setup処理前の設定データを使用して、BIOSによるブート処理を実行することができる。
(制御部15の構成)
次に、制御部15の機能構成について詳細に説明する。
図1に戻り、制御部15は、動作制御部151と、処理部152と、書き込み部153と、指示部154と、メモリ制御部155と、表示制御部156とを備えている。
動作制御部151は、入力部12から出力される操作信号を取得し、取得した操作信号に基づいて、起動やシャットダウン、及びスタンバイへの遷移、スタンバイからの復帰などの指示を行う。例えば、電源OFFの状態で電源ボタンに対する操作入力が入力部12に入力されると、動作制御部151は、起動の指示を処理部152へ受け渡す。
処理部152は、BIOSによるブート処理、OSによるブート処理、ブート後のOSによる各種処理、OS上で動作するアプリケーションの処理などを、それぞれのプログラムに基づいて実行する。処理部152は、各処理に応じた表示情報を表示部13に表示する際には、その旨を表示制御部156へ指示する。また、処理部152は、上記の各処理の実行中に、Flashメモリ17へのデータの書き込みや消去を必要に応じて行う。
例えば、処理部152は、図2を参照して説明したように、BIOSによるブート処理で使用する設定データを、変更された順(時系列順)にFlashメモリ17内の設定データ保存領域にブロック単位で書き込み、同じ設定項目のブロックが以前に書き込まれている場合には、そのブロックの「Status」を無効に変更する(そのブロックの設定データを無効にする)。そして、処理部152は、設定データ保存領域に書き込んだ設定データ(有効な設定データ)を使用してBIOSによるブート処理を実行する。
書き込み部153は、BIOSによるブート処理の期間内の所定のタイミングで、Flashメモリ17内の設定データ保存領域に、当該タイミングに対応するタグを書き込む。例えば、タグを書き込む所定のタイミングには、BIOSによるブート処理の終了タイミングが含まれる。書き込み部153は、BIOSによるブート処理の終了タイミングで「Boot」タグを設定データ保存領域に書き込む。また、タグを書き込む所定のタイミングには、Flashメモリ17にデータを書き込み可能となるタイミングが含まれてもよい。例えば、書き込み部153は、Flashメモリ17にデータを書き込み可能となるタイミングで「Start」タグを設定データ保存領域に書き込む。また、タグを書き込む所定のタイミングには、Setup処理の開始タイミングが含まれてもよい。例えば、書き込み部153は、Setup処理の開始タイミングで「Setup」タグを設定データ保存領域に書き込む。
なお、タグを書き込む所定のタイミングには、BDS処理の開始タイミングが含まれてもよい。例えば、書き込み部153は、BDS処理の開始タイミングで「BDS」タグを設定データ保存領域に書き込む。
書き込み部153は、Flashメモリ17内の設定データ保存領域にタグ(例えば、「Boot」タグ、「Setup」タグなど)より以前に書き込まれた設定データの少なくとも一部をブート処理に使用する設定データとして、最後に書き込まれた設定データの後に書き込む。例えば、書き込み部153は、リカバリー処理において、設定データ保存領域内の最新設定データを無効にし、その後の領域に、「Boot」タグまたは「Setup」タグ以前の設定項目ごとの最新の設定データ(即ち、前回のブート時の設定データまたはSetup処理前の設定データ)を、あらたに有効なデータとして書き込む。
指示部154は、リカバリー処理において、書き込み部153が「Boot」タグまたは「Setup」タグ以前の設定項目ごとの最新の設定データ(即ち、前回のブート時の設定データまたはSetup処理前の設定データ)を、あらたに有効なデータとして書き込んだ後、リブートを指示する。つまり、指示部154は、Flashメモリ17内の設定データ保存領域にタグ(例えば、「Boot」タグ、「Setup」タグなど)より以前に書き込まれた設定データを使用してブート処理を実行するように処理部152に指示する。例えば、指示部154は、設定データ保存領域にタグ(例えば、「Boot」タグ、「Setup」タグなど)より以前に書き込まれた設定データのうち設定項目ごとの最新の設定データを使用してブート処理を実行するように処理部152に指示する。これにより、現在の設定データを使用してブート処理が正常に終了しない場合に、以前の設定データを使用してブート処理を再実行することでリカバリーすることができる。
ここで、上述したリカバリー処理を実行する動作モードのことを、「リカバリーモード」と称する。例えば、制御部15は、ユーザの操作をトリガとしてリカバリーモードへ遷移させる。リカバリーモードへ遷移させるトリガとなるユーザの操作とは、例えば、BIOSによるブート処理が開始されてからの所定の期間においてキーボードの特定のキーに対する操作である。指示部154は、ユーザの操作に基づいて、設定データ保存領域にタグ(例えば、「Boot」タグ、「Setup」タグなど)より以前に書き込まれた設定データを使用してブート処理を実行するように処理部152に指示する。
図8は、複数回の起動により設定データ保存領域に複数のタグが書き込まれている状態の一例を示す図である。ある「Start」タグから次の「Start」タグの前までが、1回のブート処理の中で変更された設定データである。各タグも設定データと同様に、ブート処理毎に書き込まれる。制御部15は、各タグが書き込まれている時点での最新の設定データにリカバリーすることができる。この図に示す例では、ある「Start」タグから次の「Start」タグとの間に、「Setup」タグまたは「Boot」タグが書き込まれている。「Setup」タグが書き込まれているのはブート処理中にSetup処理に遷移したことを示している。Setup処理に遷移した場合には、Setup処理の終了後に再起動されるため、次に書き込まれるタグは、「Start」タグとなる。「Boot」タグが書き込まれているのはブート処理が正常に終了したことをしており、その次に書き込まれるタグは、次回の起動時の「Start」タグとなる。このように、BIOSのブート処理に異常が生じていない場合には、ある「Start」タグと次の「Start」タグとの間に他のタグが書き込まれる。一方、複数の「Start」タグが連続して書き込まれた場合には、ブート処理が正常に終了することなく且つSetup処理に遷移もせずに、繰り返し起動されていることになるため、システムの起動に異常が生じているものと判断できる。
そこで、制御部15は、設定データ保存領域に書き込まれた複数の「Start」タグが複数回(例えば、2回)連続して書き込まれていることを条件として、リカバリーモードへ遷移させてもよい。即ち、制御部15は、設定データ保存領域に書き込まれた複数のタグの種類及び連続性に基づいて、リカバリーモードへ遷移させるか否かを自動で判定してもよい。例えば、指示部154は、設定データ保存領域に書き込まれた複数のタグの種類及び連続性に基づいて、設定データ保存領域にタグより以前に書き込まれた設定データを使用してブート処理を実行するように処理部152に指示する。
なお、リカバリーモードへ遷移させる条件として、複数のタグの種類及び連続性に基づく条件とユーザの操作に基づく条件との両方を含めてもよい。例えば、制御部15は、設定データ保存領域に書き込まれた複数の「Start」タグが連続して書き込まれていること、及びリカバリーモードへ遷移させるトリガとなるユーザの操作がされたことの両方の条件が満たされた場合に、リカバリーモードへ遷移させてもよい。
メモリ制御部155は、Flashメモリ17の設定データ保存領域の残量が少なくなってきたときに、当該設定データ保存領域に対してガベージコレクションを実行する。ガベージコレクションとは、設定データ保存領域に書き込まれているデータのうち処理に不要なデータを消去する処理である。例えば、設定データ保存領域へデータの書き込みを続けると、設定データ保存領域内に無効なデータが増え、書き込み済みの領域が増加する。これにより、新たに書き込める空き領域が少なくなり残量が減少する。設定データ保存領域がほぼ容量いっぱい(Almost Full)になった場合(空き領域が不足しそうな場合)、メモリ制御部155は、ガベージコレクションを実行することにより空き領域を増加させる。具体的には、メモリ制御部155は、設定データ保存領域に書き込まれているデータのうち処理に必要なデータを設定データ保存領域以外のデータ領域に一旦保存してから設定データ保存領域に書き込まれている全てのデータを消去し、消去後に、一旦保存しておいた処理に必要なデータを設定データ保存領域に書き込む(書き戻す)。
例えば、メモリ制御部155は、設定データ保存領域の書き込み可能な領域の残量に基づいて、設定データ保存領域に書き込まれた設定データのうち、最後に書き込まれたタグから所定数分遡ったタグ(予め設定した最古のタグ)以前の領域において、設定項目ごとの最新の設定データ以外の設定データを少なくとも消去する。また、メモリ制御部155は、最後に書き込まれたタグから所定数分遡ったタグ以降の各タグ間の領域において、設定項目ごとの最新の設定データ以外の設定データを消去する。これにより、設定データ保存領域の残量が少なくなってきた場合に、リカバリーに使用可能な設定データを残しつつ、設定データ保存領域の書き込み可能な空き領域を確保することができる。
なお、メモリ制御部155は、ガベージコレクションを実行するか否かを、設定データ保存領域の書き込み可能な領域の残量が予め設定された閾値未満であるか否かに基づいて判定してもよい。また、メモリ制御部155は、設定データ保存領域の書き込み可能な領域の残量が予め設定された閾値未満であるか否かを、設定データ保存領域に書き込まれたデータ量が予め設定された閾値以上であるか否かに基づいて判定してもよい。
表示制御部156は、処理部152による処理に基づいて、表示部13に表示する各種の表示情報を出力する。また、表示制御部156は、処理部152からの指示に基づいて、表示情報の出力のON/OFF(即ち、画面のON/OFF)を制御する。なお、表示部13がバックライトを用いた液晶ディスプレイパネルを含んで構成されている場合、表示情報の出力のON/OFFの制御にはバックライトのON/OFFの制御も含まれる。
(リカバリーモードの処理の動作)
次に、制御部15が実行するリカバリーモードの処理の動作について説明する。
図9は、本実施形態に係るリカバリーモードにおける処理の概要を示す図である。この図では、図4に示すブート処理を基準にリカバリーモードの処理の例を示している。制御部15は、BIOSによるブート処理を開始すると(時刻t10)、リカバリーモードに遷移させるトリガの有無(リカバリーモードに遷移させるか否か)を確認するリカバリーモード確認処理(ステップS100)を実行する。リカバリーモードに遷移させるトリガあった場合、制御部15は、リカバリーに使用する設定データ(リカバリーデータ)を収集するリカバリーデータ収集処理(S120)を実行する。次に、制御部15は、収集した設定データ(リカバリーデータ)をブート処理に使用する有効な設定データとして適用するリカバリーデータ適用処理(S140)を実行する。ここで、制御部15は、収集した設定データを有効な設定データとして設定データ保存領域に書き込んだ後、設定データをリカバリーしたことを示す「Recovered」タグを書き込む。そして、制御部15は、制御部15は、適用した設定データ(リカバリーデータ)を使用して、システムを再起動(リブート)させる(S160)。
続いて、リカバリーモードの各処理について詳しく説明する。まず、図9のステップS100のリカバリーモード確認処理の動作について説明する。
図10は、本実施形態に係るリカバリーモード確認処理の一例を示すフローチャートである。
(ステップS101)制御部15は、BIOSによるブート処理の開始後にリカバリーモードのトリガが入力されると、ステップS103の処理に進む。上記トリガは、ユーザの特定の操作がされたこと、「Start」タグが複数回(例えば、2回)連続して書き込まれていること、またはその両方などである。
(ステップS103)制御部15は、設定データ保存領域内に書き込まれているタグを、最後に書き込んだブロックから過去に遡る順に検索する。そして、ステップS105の処理に進む。
(ステップS105)制御部15は、ステップS103においてタグを検索した結果に基づいて、「Recovered」タグが最初に見つかったか否かを判定する。制御部15は、「Recovered」タグが最初に見つかったと判定した場合(YES)、前回の起動時にリカバリーが実行された状態であるため、リカバリー処理を実行しないでリカバリーモードを終了する。この場合、制御部15は、そのままブート処理を継続してもよいし、再起動させてもよい。一方、制御部15は、最初に見つかったタグが「Recovered」タグではなかった場合(NO)、ステップS107の処理に進む。
(ステップS107)制御部15は、ステップS103においてタグを検索した結果に基づいて、リカバリーに使用できるタグが見つかったか否かを判定する。リカバリーに使用できるタグとは、例えば、「Boot」タグ、「Setup」タグなどである。リカバリーに使用できるタグは、予め1種類のタグに決められていてもよいし、複数種類の中から予め設定された優先順位に基づいて選択されてもよい。予め設定された優先順位とは、例えば、検索された順番に基づく優先順位であってもよいし(例えば、リカバリーに使用できるタグのうち最初に見つかったタグを優先など)、種類に基づく優先順位であってもよい(例えば、「Boot」タグと「Setup」タグの両方が見つかった場合には、「Boot」タグを優先など)。制御部15は、リカバリーに使用できるタグが見つからないと判定した場合(NO)、リカバリー処理を実行しないでリカバリーモードを終了する。この場合、制御部15は、そのままブート処理を継続してもよいし、再起動させてもよい。一方、制御部15は、リカバリーに使用できるタグが見つかったと判定した場合(YES)、ステップS120(図9参照)のリカバリーデータ収集処理に進む。
図11は、本実施形態に係るリカバリーデータ収集処理の一例を示すフローチャートである。ここでは、リカバリーに使用できるタグが「Boot」タグであるものとして説明する。
(ステップS121)制御部15は、リカバリーするための「Boot」タグを検索し、ステップS123の処理に進む。
(ステップS123)制御部15は、「Boot」タグ以前の最新の設定データを、リカバリーに使用する設定データとして収集し、ステップS140(図9参照)のリカバリーデータ適用処理に進む。
図12は、本実施形態に係るリカバリーデータ適用処理の一例を示すフローチャートである。
(ステップS141)制御部15は、リカバリーデータ収集処理で収集された「Boot」タグ以前の最新の設定データ(リカバリーデータ)を設定データ保存領域に書き込む。そして、ステップS143の処理に進む。
(ステップS143)制御部15は、「Recovered」タグを設定データ保存領域に書き込む。そして、ステップS145の処理に進む。
(ステップS145)制御部15は、リカバリーしたことを示すメッセージを表示部13に表示させる。そして、ステップS147の処理に進む。
(ステップS147)制御部15は、システムの再起動を指示する。
これにより、制御部15は、図9のステップS160の処理に進み、「Boot」タグ以前の最新の設定データ(リカバリーデータ)を使用してシステムを再起動させる(ブート処理を実行する)。つまり、制御部15は、前回の正常にブート処理が終了した時のBIOSの設定を使用して再起動することによりリカバリーする。
(ガベージコレクションの処理の動作)
次に、制御部15が実行するガベージコレクションの処理の動作について説明する。
図13は、本実施形態に係るガベージコレクション処理の一例を示すフローチャートである。
(ステップS201)制御部15は、設定データ保存領域内の最後に書き込まれたタグから所定数分遡ったタグ(予め設定した最古のタグ)以前での最新の設定データとタグデータを読み出して、設定データ保存領域以外のFlashメモリ17のデータ領域に一旦保存して退避させる。このとき、制御部15は、元々書き込まれていた順に従って、読み出した設定データとタグデータを保存する。そして、ステップS203の処理に進む。
(ステップS203)制御部15は、設定データ保存領域内の予め設定した最古のタグ以降の各タグ間の最新の設定データ及びタグデータを読み出して、設定データ保存領域以外のFlashメモリ17のデータ領域に一旦保存して退避させる。このとき、制御部15は、元々書き込まれていた順に従って、読み出した設定データとタグデータを保存する。そして、ステップS205の処理に進む。
(ステップS205)制御部15は、データ保存領域内の全てのデータを消去し、ステップS207の処理に進む。
(ステップS207)制御部15は、退避しておいた設定データ及びタグデータを、保存したあった順に従って設定データ保存領域に書き込む(書き戻す)。
以上説明したように、本実施形態に係る情報処理装置10は、処理部152と、書き込み部153と、指示部154とを備えている。処理部152は、BIOSによるブート処理で使用する設定データを、変更された順に従ってFlashメモリ17(不揮発性メモリの一例)内の設定データ保存領域(所定領域の一例)に書き込むとともに、当該設定データを使用してBIOSによるブート処理を実行する。書き込み部153は、BIOSによるブート処理の期間内の所定のタイミングで、Flashメモリ17内の設定データ保存領域に、当該タイミングに対応するタグを書き込む。指示部154は、Flashメモリ17内の設定データ保存領域に上記タグより以前に書き込まれた設定データを使用してBIOSによるブート処理を実行するように処理部152に指示する。
これにより、情報処理装置10は、BIOSによるブート処理の期間内に所定のタイミングで書き込みしたタグを利用して、BIOSによる起動を簡便に以前の設定に戻して行うことができる。そのため、ユーザは、リカバリー用として設定を保存するための作業を自ら行うといった煩わしい作業を必要としない。例えば、情報処理装置10は、現在の設定データを使用してブート処理が正常に終了しない場合(例えば、システム障害が発生した場合)に、以前の設定データを使用してブート処理を再実行することでリカバリーすることができる。また、従来スナップショットでBIOSの設定データを保存する場合には、大きな容量の記憶装置が必要であるため、付加記憶装置が必要となる場合もある。付加記憶装置に設定情報を保存した場合には、少なくとも付加記憶装置にアクセス可能な段階までは起動する必要があり、状況によってはリカバリーできないこともあり得る。本実施形態によれば、Flashメモリ17に保存されている過去の設定データ(無効なデータ)を利用するため、付加記憶装置を必要とせず低コストで実現できるとともに、付加記憶装置にアクセス可能な段階までブート処理が進まなくてもリカバリーすることができる。
例えば、上記所定のタイミングには、BIOSによるブート処理の終了タイミングが含まれる。例えば、情報処理装置10は、BIOSによるブート処理の終了タイミングで「Boot」タグを設定データ保存領域に書き込む。
これにより、情報処理装置10は、現在の設定データを使用してブート処理が正常に終了しない場合(例えば、システム障害が発生した場合)、以前(例えば、前回)に正常にブート処理が終了したときのBIOSの設定に戻してブート処理を実行することができる。
例えば、上記所定のタイミングには、Flashメモリ17にデータを書き込み可能となるタイミングが含まれる。例えば、情報処理装置10は、Flashメモリ17にデータを書き込み可能となるタイミングで「Start」タグを設定データ保存領域に書き込む。
これにより、情報処理装置10は、設定データ保存領域において、「Start」タグから次の「Start」タグまでが1回のシステムの起動で変更された設定データであることが分かる。例えば、情報処理装置10は、「Start」タグを利用して、以前(例えば、前回)のブート処理で使用したBIOSの設定に戻してブート処理を実行することもできる。
また、BIOSによるブート処理には、当該ブート処理に使用する設定データをユーザが変更可能なセットアップ処理が含まれ、上記所定のタイミングには、Setup(セットアップ)処理の開始タイミングが含まれる。
これにより、情報処理装置10は、ユーザがBIOSの設定を変更したことによりブート処理が正常に終了しなくなった場合(例えば、システム障害が発生した場合)、変更前のBIOSの設定に戻してブート処理を実行することができる。
例えば、指示部154は、Flashメモリ17内の設定データ保存領域に上記タグより以前に書き込まれた設定データのうち設定項目ごとの最新の設定データを使用してBIOSによるブート処理を実行するように処理部152に指示する。
これにより、情報処理装置10は、BIOSによるブート処理の期間内に所定のタイミングで書き込みしたタグを利用して、簡便に当該タグ以前の最新の設定に戻してBIOSによる起動を行うことができる。
書き込み部153は、Flashメモリ17内の設定データ保存領域に上記タグより以前に書き込まれた設定データの少なくとも一部を、BIOSによるブート処理に使用する設定データとして、最後に書き込まれた設定データの後に書き込む。
これにより、情報処理装置10は、以前にブート処理に使用した無効な設定データを、最新の有効な設定データとしてブート処理に使用可能にすることができる。
指示部154は、ユーザの操作に基づいて、Flashメモリ17内の設定データ保存領域に上記タグより以前に書き込まれた設定データを使用してBIOSによるブート処理を実行するように処理部152に指示する。
これにより、情報処理装置10は、ユーザがリカバリーモードで起動したい場合に、ユーザの操作をトリガとして、リカバリーモードで起動させることができる。
指示部154は、Flashメモリ17内の設定データ保存領域に書き込まれた複数の上記タグの種類及び連続性に基づいて、設定データ保存領域に上記タグより以前に書き込まれた設定データを使用してBIOSによるブート処理を実行するように処理部152に指示する。例えば、指示部154は、複数の「Start」タグが複数回(例えば、2回)連続して書き込まれていることを条件として、以前に書き込まれた設定データを使用してBIOSによるブート処理を実行するように指示する。
これにより、情報処理装置10は、ブート処理が正常に終了しない場合(例えば、システム障害が発生した場合)、そのことを自動で検出して、以前に書き込まれた設定データを使用してBIOSによるブート処理を実行させることができる。
また、設定データ保存領域に複数のタグが書き込まれている場合、ユーザがどの時点の設定に戻すかを選択可能なようにしてもよい。例えば、情報処理装置10は、どの時点の設定に戻すかを選択可能なように、複数のタグのそれぞれが書き込まれた日時情報とタグに対応する処理の内容(「Boot」、「Setup」など)とが関連付けられた選択肢が表示される選択画面を表示部13に表示させてもよい。そして、情報処理装置10は、ユーザの操作に基づいて選択された選択肢のタグより以前の最新の設定データを使用して、ブート処理を実行してもよい。例えば、指示部154は、Flashメモリ17内の設定データ保存領域に書き込まれた複数の上記タグのうちユーザに選択された上記タグより以前に書き込まれた設定データを使用してBIOSによるブート処理を実行するように処理部152に指示する。
これにより、情報処理装置10は、BIOSの設定をどの時点の設定に戻すかをユーザが選択できるため、ユーザが所望する設定でシステムを起動させることができる。
また、情報処理装置10は、メモリ制御部155を備えている。メモリ制御部155は、Flashメモリ17内の設定データ保存領域の書き込み可能な領域の残量に基づいて、設定データ保存領域に書き込まれた設定データのうち、最後に書き込まれたタグから所定数分遡ったタグ以前の領域において、設定項目ごとの最新の設定データ以外の設定データを少なくとも消去する。
これにより、情報処理装置10は、最新の有効な設定データを残すのみではなく、リカバリーデータも残しつつ不要なデータを消去することができるため、リカバリー処理が可能な状態を維持しながら、Flashメモリ17内の設定データ保存領域の容量がいっぱいになって空き領域が不足してしまうことを防止することができる。
メモリ制御部155は、最後に書き込まれたタグ(最新のタグ)から所定数分遡ったタグ以降の各タグ間の領域のそれぞれにおいて、設定項目ごとの最新の設定データ以外の設定データを消去する。なお、メモリ制御部155は、最後に書き込まれたタグ(最新のタグ)以降の領域に設定データが書き込まれている場合には、当該領域において、設定項目ごとの最新の設定データ以外の設定データを消去してもよい。
これにより、情報処理装置10は、最新の有効な設定データを残すのみではなく、リカバリーデータも残しつつ不要なデータを消去することができるため、リカバリー処理が可能な状態を維持しながら、Flashメモリ17内の設定データ保存領域の容量がいっぱいになって空き領域が不足してしまうことを防止することができる。
以上、図面を参照してこの発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。例えば、上記実施形態で説明した構成は、任意に組み合わせてもよい。
上記実施形態では、複数の種類のタグを利用する例を説明したが、少なくとも一種類のタグを用いてもよい。
また、上記実施形態で説明したリカバリーモードの処理は、ブート処理が正常に終了しない場合(例えば、システム障害が発生した場合)に限らず、ブート処理が正常に終了する状況であっても、以前の設定に戻してブート処理を実行したい場合に適用することができる。
また、上記実施形態では、情報処理装置10は、Flashメモリ17の設定データ保存領域へのデータの書き込み状態(例えば、残量)に基づいてガベージコレクションを実行したが、設定データ保存領域へのデータの書き込み状態にかかわらず、一定の周期または予め設定されたタイミングでガベージコレクションを実行してもよい。
なお、上述した情報処理装置10は、内部にコンピュータシステムを有している。そして、上述した情報処理装置10が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理装置10が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理装置10が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した実施形態における情報処理装置10が備える各機能の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
10 情報処理装置、11 通信部、12 入力部、13 表示部、14 スピーカ、15 制御部、16 RAM、17 Flashメモリ、151 動作制御部、152 処理部、153 書き込み部、154 指示部、155 メモリ制御部、156 表示制御部

Claims (13)

  1. BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行する処理部と、
    前記ブート処理の期間内の所定のタイミングで、前記不揮発性メモリ内の前記所定領域に、当該タイミングに対応するタグを書き込む書き込み部と、
    前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示する指示部と、
    を備える情報処理装置。
  2. 前記所定のタイミングには、前記ブート処理の終了タイミングが含まれる、
    請求項1に記載の情報処理装置。
  3. 前記所定のタイミングには、前記不揮発性メモリにデータを書き込み可能となるタイミングが含まれる、
    請求項1または請求項2に記載の情報処理装置。
  4. 前記ブート処理には、前記ブート処理に使用する設定データをユーザが変更可能なセットアップ処理が含まれ、
    前記所定のタイミングには、前記セットアップ処理の開始タイミングが含まれる、
    請求項1から請求項3のいずれか一項に記載の情報処理装置。
  5. 前記指示部は、
    前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データのうち設定項目ごとの最新の設定データを使用して前記ブート処理を実行するように前記処理部に指示する、
    請求項1から請求項4のいずれか一項に記載の情報処理装置。
  6. 前記書き込み部は、
    前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データの少なくとも一部を、前記ブート処理に使用する設定データとして、最後に書き込まれた設定データの後に書き込む、
    請求項1から請求項5のいずれか一項に記載の情報処理装置。
  7. 前記指示部は、
    ユーザの操作に基づいて、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示する、
    請求項1から請求項6のいずれか一項に記載の情報処理装置。
  8. 前記指示部は、
    前記不揮発性メモリ内の前記所定領域に書き込まれた複数の前記タグの種類及び連続性に基づいて、前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示する、
    請求項1から請求項7のいずれか一項に記載の情報処理装置。
  9. 前記指示部は、
    前記不揮発性メモリ内の前記所定領域に書き込まれた複数の前記タグのうちユーザに選択された前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように前記処理部に指示する、
    請求項1から請求項8のいずれか一項に記載の情報処理装置。
  10. 前記不揮発性メモリ内の前記所定領域の書き込み可能な領域の残量に基づいて、前記所定領域に書き込まれた設定データのうち、最後に書き込まれた前記タグから所定数分遡った前記タグ以前の領域において、設定項目ごとの最新の設定データ以外の設定データを少なくとも消去するメモリ制御部、
    を備える請求項1から請求項9のいずれか一項に記載の情報処理装置。
  11. 前記メモリ制御部は、
    最後に書き込まれた前記タグから所定数分遡った前記タグ以降の各タグ間の領域のそれぞれにおいて、設定項目ごとの最新の設定データ以外の設定データを消去する、
    請求項10に記載の情報処理装置。
  12. 情報処理装置における制御方法であって、
    処理部が、BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行するステップと、
    書き込み部が、前記ブート処理の期間内の所定のタイミングで、前記不揮発性メモリ内の前記所定領域に、当該タイミングに対応するタグを書き込むステップと、
    指示部が、前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように指示するステップと、
    を有する制御方法。
  13. コンピュータに、
    BIOS(Basic Input Output System)によるブート処理で使用する設定データを、変更された順に従って不揮発性メモリ内の所定領域に書き込むとともに、当該設定データを使用して前記ブート処理を実行するステップと、
    前記ブート処理の期間内の所定のタイミングで、前記不揮発性メモリ内の前記所定領域に、当該タイミングに対応するタグを書き込むステップと、
    前記不揮発性メモリ内の前記所定領域に前記タグより以前に書き込まれた設定データを使用して前記ブート処理を実行するように指示するステップと、
    を実行させるためのプログラム。
JP2019145466A 2019-08-07 2019-08-07 情報処理装置、制御方法、及びプログラム Active JP6775651B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019145466A JP6775651B1 (ja) 2019-08-07 2019-08-07 情報処理装置、制御方法、及びプログラム
US16/775,447 US11249661B2 (en) 2019-08-07 2020-01-29 Information processing apparatus, control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019145466A JP6775651B1 (ja) 2019-08-07 2019-08-07 情報処理装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP6775651B1 JP6775651B1 (ja) 2020-10-28
JP2021026603A true JP2021026603A (ja) 2021-02-22

Family

ID=72938092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019145466A Active JP6775651B1 (ja) 2019-08-07 2019-08-07 情報処理装置、制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US11249661B2 (ja)
JP (1) JP6775651B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347519B2 (en) * 2020-05-27 2022-05-31 Dell Products L.P. Systems and methods for detecting short-term changes to BIOS setup

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009271864A (ja) * 2008-05-09 2009-11-19 Toshiba Tec Corp 情報処理装置
US20120173859A1 (en) * 2010-12-29 2012-07-05 Brocade Communications Systems, Inc. Techniques for stopping rolling reboots
JP2014115928A (ja) * 2012-12-12 2014-06-26 Nec Corp Bios復旧制御装置及びその復旧制御方法、情報処理装置、並びにコンピュータ・プログラム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884073A (en) * 1996-10-28 1999-03-16 Intel Corporation System and method for providing technical support of an electronic system through a web bios
US5974546A (en) * 1997-05-08 1999-10-26 Micron Electronics, Inc. Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt
GB2332541B (en) * 1997-12-20 2002-12-04 Ibm Boot failure recovery system and method
US6640316B1 (en) * 2000-05-23 2003-10-28 Dell Products L.P. Boot recovery of simple boot BIOS
US6721881B1 (en) * 2000-09-29 2004-04-13 Dell Products L.P. System and method for determining if a display device configuration has changed by comparing a current indicator with a previously saved indicator
US20070050612A1 (en) * 2005-08-26 2007-03-01 Inventec Corporation Boot program update and restoration system and method thereof
TW200713037A (en) * 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
DE102006048171A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zum Neubooten eines Signalverarbeitungssystems
US8775758B2 (en) * 2007-12-28 2014-07-08 Sandisk Technologies Inc. Memory device and method for performing a write-abort-safe firmware update
US7984282B2 (en) * 2009-01-21 2011-07-19 Hewlett-Packard Development Company, L.P. Evasion of power on self test during an operating system initiated reboot
JP5064463B2 (ja) 2009-10-07 2012-10-31 東芝テック株式会社 情報処理端末および起動プログラム
US9930112B2 (en) * 2012-02-21 2018-03-27 Hewlett Packard Enterprise Development Lp Maintaining system firmware images remotely using a distribute file system protocol
US9442831B1 (en) * 2013-02-22 2016-09-13 American Megatrends, Inc. Automated testing of program code for processing a simple boot flag data structure
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
JP6054908B2 (ja) * 2014-05-22 2016-12-27 レノボ・シンガポール・プライベート・リミテッド 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
US9003176B1 (en) * 2014-06-03 2015-04-07 Kasepersky Lab ZAO System and methods for full disk encryption with a check for compatibility of the boot disk
US9792168B2 (en) * 2015-04-15 2017-10-17 Dell Products, Lp System and method for cloud remediation of a client with a non-bootable storage medium
US9846640B2 (en) * 2015-04-22 2017-12-19 Dell Products, Lp System and method for retrieving wireless access point credentials from a BIOS NVRAM
JP6376472B2 (ja) * 2015-10-20 2018-08-22 京セラドキュメントソリューションズ株式会社 画像形成装置及びプログラム
US10410202B1 (en) * 2016-12-31 2019-09-10 Square, Inc. Expedited booting with brownout monitoring
SG10201700003SA (en) * 2017-01-03 2018-08-30 Intel Corp Hardware assisted fault injection detection
WO2018190846A1 (en) * 2017-04-13 2018-10-18 Hewlett-Packard Development Company, L.P. Boot data validity
US11150911B2 (en) * 2018-06-15 2021-10-19 Dell Products, L.P. System and method for managing UEFI boot device path based on custom selection
US11226827B2 (en) * 2019-03-01 2022-01-18 Dell Products L.P. Device and method for remote management of information handling systems
US11657157B2 (en) * 2019-06-06 2023-05-23 Macronix International Co., Ltd. Secure boot system, method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009271864A (ja) * 2008-05-09 2009-11-19 Toshiba Tec Corp 情報処理装置
US20120173859A1 (en) * 2010-12-29 2012-07-05 Brocade Communications Systems, Inc. Techniques for stopping rolling reboots
JP2014115928A (ja) * 2012-12-12 2014-06-26 Nec Corp Bios復旧制御装置及びその復旧制御方法、情報処理装置、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP6775651B1 (ja) 2020-10-28
US20210042047A1 (en) 2021-02-11
US11249661B2 (en) 2022-02-15

Similar Documents

Publication Publication Date Title
KR100283243B1 (ko) 운영체제의 부팅방법
US9612824B2 (en) Firmware variable update method
EP2649517B1 (en) Fast computer startup
KR101602360B1 (ko) 시스템 고속 부팅 장치 및 방법
US20140325496A1 (en) Apparatus and method for firmware upgrade using usb
JP2002244874A (ja) 情報処理装置およびファームウェア更新方法
TW201502764A (zh) 用以從睡眠狀態加速回復之專用啟動路徑
JP2009134692A (ja) 単一キー制御を使用するシステム構成の自動修復方法
TW200805159A (en) Method and apparatus for fast boot of an operating system
JP2015102889A (ja) ファームウェアの更新方法、電子機器、コンピュータおよびコンピュータ・プログラム
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
CN106873954B (zh) 初始化周边装置的方法与使用此方法的电子装置
US20180095693A1 (en) Information processing apparatus, information processing system, and method for controlling information processing apparatus
JP2003296042A (ja) コンピュータ装置、データのデッドコピー方法、プログラム、コンピュータ装置の稼動方法
CN110874237A (zh) 软件升级方法、装置、终端以及可读存储介质
TWI546661B (zh) 使用狀態資訊回復系統之技術
JP2007058699A (ja) 情報処理装置、情報処理装置制御プログラム、情報処理装置制御方法
TWI515557B (zh) 電腦系統與控制方法
JP6775651B1 (ja) 情報処理装置、制御方法、及びプログラム
CN103106161A (zh) 一种基于io访问方式的显卡bios更新方法
US20200133562A1 (en) Information processing device, controlling method and program
WO2008048581A1 (en) A processing device operation initialization system
US20150317181A1 (en) Operating system switching method
JP2008009494A (ja) 画像形成装置
JP2008015725A (ja) 情報処理装置およびプログラム起動方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200904

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: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201006

R150 Certificate of patent or registration of utility model

Ref document number: 6775651

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250