JP4281421B2 - Information processing system, control method therefor, and computer program - Google Patents
Information processing system, control method therefor, and computer program Download PDFInfo
- Publication number
- JP4281421B2 JP4281421B2 JP2003162288A JP2003162288A JP4281421B2 JP 4281421 B2 JP4281421 B2 JP 4281421B2 JP 2003162288 A JP2003162288 A JP 2003162288A JP 2003162288 A JP2003162288 A JP 2003162288A JP 4281421 B2 JP4281421 B2 JP 4281421B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- priority
- storage device
- processing apparatus
- storage unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
【0001】
【発明の属する技術分野】
パーソナル・コンピュータや携帯端末を始めとする情報処理システム及びその制御方法、並びにコンピュータ・プログラムに係り、特に、システムの使用状況が低下したときなどに内部の各電気回路に対する電力供給を適宜低下若しくは停止させる節電動作機能を備えた情報処理システム及びその制御方法、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、電源遮断時にシステムの状態情報を不揮発性の2次記憶装置に退避し、電源再投入時に退避した状態情報を復元して処理を再開させるハイバーネーション機能を備えた情報処理システム及びその制御方法、並びにコンピュータ・プログラムに係り、特に、ハイバーネーション動作時における状態情報の退避並びに復元処理の所要時間を短縮化する情報処理システム及びその制御方法、並びにコンピュータ・プログラムに関する。
【0003】
【従来の技術】
昨今の技術革新に伴い、デスクトップ型、ノートブック型など各種パーソナル・コンピュータ(以下、「PC」又は「システム」ともいう)が開発され市販されている。このうち、ノートブック型のPCは、屋外での携帯的・可搬的な使用を考量して小型且つ軽量に設計・製作されたものである。
【0004】
ノートブック型PCの1つの特徴は、内蔵したバッテリでも駆動できる「バッテリ駆動型」である点である。これは、商用電源が届かない場所でも使用できるようにしたためである。ノートブックPCが内蔵するバッテリは、一般には、Li−Ionなどの充電式のバッテリ・セルを複数本接続してパッケージ化した「バッテリ・パック」の形態を採っている。バッテリ・パックは充電により再利用可能ではあるが、1回当りの充電容量はシステムのオペレーション時間にして精々2〜3時間程度に過ぎない。バッテリ・ライフを少しでも長時間化するべく、節電のためのさまざまな工夫が凝らされている。
【0005】
また、最近では、商用電源によって無尽蔵に給電可能なデスクトップ型PCに対しても、エコロジー的な観点から、省電力の要求が高まってきている。米環境保護庁(EPA)は、1993年6月に"Energy Star Computer Program"と呼ばれる自主規制を発表し、動作待ち状態での消費電力が一定基準以下(駆動電力が30W以下、又はCPU稼働時の30%以下)になることを要求している。
【0006】
PCの節電は、オペレーション時の装置全体の消費電力を低減させる以外に、システムの使用状況が低下したことに応答してシステムの一部又は全体への電力供給を適宜低下若しくは遮断することによっても実現される。但し、電源を遮断することによりタスクが中断されることから、電源再投入時に中断した時点からタスクを再開できるように、電源を遮断する前にシステムの状態情報を退避し、電源再投入時に退避した状態情報を復元する必要がある。システムの状態情報を退避してタスクを中断する動作のことを「サスペンド」と呼び、状態情報を復元してタスクを再開する動作のことを「レジューム」と呼ぶ。
【0007】
サスペンド・レジューム機能を実現するために、2通りの方法が挙げられる。1つは、計算機装置の電源切断前後で揮発性の主記憶装置などに電源を供給し続けてシステムの状態情報を保持する方式である。また、もう1つは、主記憶装置などに展開されているシステムの状態情報を電源切断時に不揮発性の2次記憶装置に退避し、電源投入時に退避した状態情報を主記憶装置などに復元する方式である。後者は、特に、「ハイバーネーション機能」と呼ばれている。
【0008】
前者の方式では、バッテリ・バックアップされた揮発性の主記憶装置などにシステムの状態情報を保存する。このため、計算機装置の退避・復帰の処理が非常に高速であるが、計算機装置の停止中も主記憶装置による記憶保持動作のために電力を消費するため、節電の効果は低い。一方、後者のハイバーネーション機能の場合、タスク再開に必要なシステムの状態情報を不揮発性の2次記憶装置で保存するため、計算機装置内のほとんどすべてのコンポーネントの電源遮断することができ、節電の効果が高い。しかしながら、2次記憶装置としてのハード・ディスク・ドライブ(あるいはフラッシュ・メモリ)は、一般に主記憶装置よりもアクセス速度が低い。ハイバーネーション機能は、主記憶装置上のメモリ・イメージを2次記憶装置に格納したり展開したりする処理動作を含むので、多くの時間を要するという欠点がある。
【0009】
このようなハイバーネーション機能における退避・復帰処理の所要時間の問題に対しては、これまでもさまざまな改善が試みられてきた。例えば、主記憶装置の使用中の領域のみを退避・復帰する方法(例えば、特許文献1を参照のこと)や、高速な不揮発性記憶装置と低速な不揮発性記憶装置(いずれも非主記憶装置)に揮発性の主記憶装置の内容を転送し退避・復帰処理の高速化を図る方法(例えば、特許文献2を参照のこと)などがその例である。しかしながら、いずれの場合も、主記憶装置とこれよりも低速な2次記憶装置とのデータ転送が一通り完了するまで退避・復帰処理を待つ必要があり、これがハイバーネーション機能の退避・復帰処理における律速過程となっている。
【0010】
【特許文献1】
特開平9−319667号公報
【特許文献2】
特開2001−125659公報
【0011】
【発明が解決しようとする課題】
本発明の目的は、電源遮断時にシステムの状態情報を不揮発性の記憶装置に退避し、電源再投入時に退避した状態情報を復元して処理を再開させるハイバーネーション機能を備えた、優れた情報処理システム及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
【0012】
本発明のさらなる目的は、ハイバーネーション動作時における状態情報の退避並びに復元処理の所要時間を短縮化することができる、優れた情報処理システム及びその制御方法、並びにコンピュータ・プログラムを提供することにある。
【0013】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、処理継続に必要な情報を不揮発的に保持してから電源遮断するとともに電源投入時に該不揮発的に保持された情報を利用して処理を再開するタイプの情報処理装置であって、
情報を揮発的に保持する揮発性記憶部と情報を不揮発的に保持する不揮発性記憶部を備えた主記憶装置と、
電源遮断時において実行中の処理継続に必要な前記揮発性記憶部上の情報を前記不揮発性記憶部に退避する情報退避手段と、
電源投入時において前記不揮発性記憶部に保持されている情報を利用して電源遮断により中断された処理を再開する処理再開手段と、
を具備することを特徴とする情報処理装置である。
【0014】
ノートブックPCや携帯端末を始めとする情報処理装置においては、システムの状態情報を退避してタスクを中断するサスペンド動作、並びに状態情報を復元してタスクを再開するレジューム動作からなるハイバーネーション機能は、低消費電力化を実現する上で必須の技術である。ところが、ハイバーネーション機能は、主記憶装置上のメモリ・イメージを2次記憶装置に格納したり展開したりする処理動作を含むので、多くの時間を要するという欠点がある。
【0015】
これに対し、本発明によれば、主記憶装置上に情報を不揮発的に保持することができる不揮発性記憶部を配置して、この不揮発性記憶部を利用して情報の退避処理を行なうようにしたので、サスペンド・レジューム機能の退避・復帰処理に要する時間を大幅に短縮することができる。特に、ノートPCなどの携帯端末におけるユーザの操作性(退避・復帰処理の待ち時間)を格段に改善することができる。
【0016】
また、本発明によれば、サスペンド・レジューム機能の退避・復帰処理に要する消費電力を削減し、特にノートPCなどの携帯端末におけるバッテリの持ちを改善することができる。
【0017】
ここで、情報処理装置は、ハード・ディスク装置などの不揮発性の2次記憶装置をさらに備えていてもよい。このような場合、前記情報退避手段は、所定の優先度に従って前記揮発性記憶部上の情報を前記不揮発性記憶部に退避するとともに、該情報退避動作において前記不揮発性記憶部から溢れた情報を前記2次記憶装置に退避することができる。
【0018】
また、前記処理再開手段は、再開した処理を実行中、2次記憶装置上に退避された情報を必要に応じて適宜主記憶装置上の元の場所に復元するようにすればよい。
【0019】
電源の遮断及び投入の間に、揮発性記憶部内の情報を退避し復元するために、処理の再開に必要な情報を識別し、該識別した情報に対して優先度を付与する優先度付け手段をさらに備えていてもよい。このような場合、前記情報退避手段は、優先度の高い情報から順に前記不揮発性記憶部に格納するとともに、前記不揮発性記憶部に格納できなかった前記主記憶装置上の情報を前記2次記憶装置に退避するようにして、サスペンド並びにレジューム処理を効率的に行なうことができる。
【0020】
例えば、前記優先度付け手段は、最近アクセスされた情報の順に優先度を与えることができる。最近アクセスされた情報の順は、例えば、仮想メモリ・システムにおいて、LRU(Least Recently Used)アルゴリズムに基づいて管理されている。
【0021】
あるいは、前記優先度付け手段は、最近のアイドル時間の小さい処理に関連する情報の順に優先度を与えることができる。アイドル時間は、例えばオペレーティング・システムのプロセス管理機構において保持されている。
【0022】
また、前記主記憶装置上の情報領域に対する優先度をユーザにとって有意な情報単位に対する優先度に変換する手段をさらに備えていてもよい。
【0023】
また、前記優先度付け手段は、情報単位が保有する前記主記憶装置上の領域の中で優先度が最も高い領域に着目し、該領域の優先度の大小に基づいて情報領域の優先度を与えるようにしてもよい。
【0024】
あるいは、前記優先度付け手段は、情報単位が保有する前記主記憶装置上の領域の中で優先度が最も高いものから順に一定個に着目し、該領域内での優先度の平均値の大小に基づいて情報領域の優先度を与えるようにしてもよい。
【0025】
また、前記処理再開手段は、前記2次記憶装置に退避された情報を優先度に従って前記主記憶装置上の元の場所に復元するようにしてもよい。
【0026】
ここで、再開した処理の続行に必要な情報が発生した場合には、優先度に従った情報の復元を中断して、該必要な情報を前記主記憶装置上の元の場所に復元するようにしてもよい。
【0027】
レジューム処理中に、主記憶装置に未だ復帰していないプログラムやデータが必要になったとする。例えば、主記憶装置に復帰していないプログラムをレジューム処理中にユーザが実行したいとする。この場合、現在復帰中の情報の転送を中断し、ユーザが現在必要とする情報を優先して主記憶装置に転送して、その転送処理が完了した後に中断した転送処理を再開する、という方法を行なえば、ユーザの操作性をさらに向上させることができる。
【0028】
そして、再開した処理の続行に必要な情報が複数発生した場合には、各々に優先度を与えるようにしてもよい。例えば、時間軸上で前に必要とされた情報から順に高い優先度を与えるようにする。
【0029】
また、前記主記憶装置及び前記2次記憶装置上の記憶空間は仮想記憶機構に基づいて管理されている場合には、電源の遮断及び投入に伴う情報の退避及び復元を所定のページ単位で行なうようにしてもよい。
【0030】
既に周知のように、仮想メモリ・システムによれば、ハード・ディスクなどの外部記憶装置に対して論理的なアドレス(仮想アドレス)を割り振り、これらが見かけ上は物理メモリ空間の一部であるかのように扱うことで、少ない物理メモリ容量で論理的には大きなアドレス空間を実現することができる。仮想メモリ方式を採用する情報処理装置においても、本発明に係るハイバーネーション機能を実現することができる。この場合、サスペンド及びレジューム処理におけるシステムの状態情報の退避や復元を、仮想アドレス空間におけるページング動作と並行して実現することができる。
【0031】
また、ユーザにとって有意な情報単位に対してユーザ自身が一意な優先度を与える手段をさらに備えていてもよい。例えば、ユーザが一部の情報単位に対して優先度を与える第1の手段と、ユーザが優先度を与えなかった情報単位に対して自動的に優先度を与える第2の手段と、前記第1及び第2の手段を用いてすべての情報単位に対して一意な優先度を与える第3の手段とを用いて、情報単位毎に一意な優先度を与えることができる。
【0032】
また、本発明の第2の側面は、処理継続に必要な情報を不揮発的に保持してから電源遮断するとともに電源投入時に該不揮発的に保持された情報を利用して処理を再開するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
主記憶装置は、情報を揮発的に保持する揮発性記憶部と情報を不揮発的に保持する不揮発性記憶部で構成され、
電源遮断時において実行中の処理継続に必要な前記揮発性記憶部上の情報を前記不揮発性記憶部に退避する情報退避ステップと、
電源投入時において前記不揮発性記憶部に保持されている情報を利用して電源遮断により中断された処理を再開する処理再開ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【0033】
本発明の第2の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係る情報処理装置と同様の作用効果を得ることができる。
【0034】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0035】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0036】
サスペンド・レジューム機能の退避・復帰処理の高速化に対するためのアプローチとして、主記憶装置自体を不揮発性記憶素子で構成する方法が考えられる。すなわち、主記憶装置自体を不揮発性にすることで、サスペンド・レジューム時の処理(例えば、ハード・ディスクなどの2次記憶装置への退避など)が大幅に省略できるため、明らかに高速化が期待できる。しかしながら、コスト的な観点からすると、主記憶装置をすべて不揮発性にするよりも、安価な揮発性記憶装置とそれよりも高価な不揮発性記憶装置を混在して主記憶空間を構成することが望ましい場面が想定される。
【0037】
このような揮発性及び不揮発性の記憶部が混在した主記憶空間を持つ計算機装置では、主記憶装置のうち揮発性記憶部に格納されている内容は電源切断時に失われてしまう。このため、ハイバーネーション機能をサポートするには、主記憶装置の揮発性記憶部上の情報を主記憶装置内の不揮発性記憶部あるいは2次記憶装置に退避する必要が生じる。それ故に、ハイバーネーション機能の高速化のためには、主記憶装置の不揮発性記憶部を情報の退避先として有効活用することが鍵となってくる。
【0038】
なお、主記憶装置が揮発性記憶部と不揮発性記憶部から構成される計算機装置に関しては特許第3275398号公報などで考案されているが、このような計算機装置におけるハイバーネーション機能の詳細に関してはこれまで考案されていない。
【0039】
図1には、本発明の一実施形態に係る計算機装置のハードウェア構成を模式的に示している。図示の計算機装置は、CPU(Central Processing Unit)101と、主記憶装置102と、2次記憶装置105と、入出力装置106を備えている。
【0040】
メイン・コントローラであるCPU101は、オペレーティング・システム(OS)の制御下で、各種プログラムを実行するようになっている。CPU101は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるバス110を介して各部と連絡している。
【0041】
主記憶装置102は、主記憶空間を構成し、CPU101が実行する各プログラム(OSやアプリケーション・プログラムなど)をロードしたり、CPU101が作業領域として用いたりするために使用される。
【0042】
本実施形態に係る計算機装置は、主記憶装置102の構成の点で特徴がある。既存の計算機装置(図2を参照のこと)では主記憶装置はDRAM(Dynamic RAM)などの揮発性記憶部のみからなるが、本発明の計算機装置では主記憶装置102は、揮発性記憶部103と不揮発性記憶部104から構成される。主記憶装置102の揮発性記憶部103は、DRAMなどの高速な揮発性記憶装置を用いて構成され、記憶内容を保持するためにはバッテリ・バックアップすなわち電源の継続的な供給が必要である。一方、不揮発性記憶部104は、記憶内容の保持のためにバッテリ・バックアップが不要な構成である。例えば、MRAMやFeRAMなどのメモリ・チップを利用して不揮発性記憶部104を構成することができ、速度的にもアクセス寿命的にもCPU101の主記憶空間として十分な性能を有している。
【0043】
2次記憶装置105は、ハード・ディスク・ドライブ(HDD)やフラッシュ・メモリなどの不揮発性の記憶装置で構成される。2次記憶装置105は、主記憶装置102に比べてアクセス速度は低速であるが、大容量であり、主記憶空間を補助するために装備されている。また、2次記憶装置105は、コスト的に安価である低速なMRAMやFeRAMなどを用いることもできる。
【0044】
ここで、MRAM(Magnetic RAM)は、トンネル磁気抵抗効果を利用したTMR(Tunneling MagnetoResistance)素子で構成され、電子の電荷ではなく電子のスピンで情報を保持することができる。MRAMは、書き換え/読み出しなどのアクセス速度、集積度、消費電力、ビット単価などの点で主記憶装置としての条件をほぼ満足する他、不揮発性であるという特徴を持つ。また、FeRAM(Ferroelectric RAM)は、強誘電体薄膜材料を記憶素子として用いた不揮発性メモリであり(強誘電体は電界を印加しない自然の状態で誘電分極している)、MRAM同様に主記憶装置としての条件をほぼ満足する。
【0045】
また、HDDは、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり(周知)、記憶容量やデータ転送速度などの点でCD/DVDなど他のディスク型記憶装置よりも優れている。ソフトウェア・プログラムを実行可能な状態でHDD上に置くことを、プログラムのシステムへの「インストール」と呼ぶ。通常、HDDには、CPU101が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。
【0046】
入出力装置106には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インターフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオRAM(VRAM)(図示しない)に一旦書き込まれた後、表示出力される。
【0047】
バス110上の各デバイスには、I/O空間上の固有のアドレス(I/Oアドレス)が割り振られており、I/Oアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはI/Oレジスタ(図示しない)を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦I/Oレジスタに書き込まれた後、バス転送が行なわれる。
【0048】
なお、計算機装置を構成するためには、図1に示した以外にも多くの回路コンポーネントが必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も一部しか図示していない点を了承されたい。
【0049】
図3には、図1に示した計算機装置におけるサスペンド・レジューム処理の概略的な動作をフローチャートの形式で示している。
【0050】
まず、ユーザが計算機装置の電源スイッチをオフにすることにより(ステップS1)、サスペンド処理が起動される(ステップS2)。本実施形態では、電源スイッチをオフにする操作でサスペンド動作が起動しているが、オペレーティング・システムのGUI(Graphical User Interface)画面上を介してユーザが「サスペンド処理」を選択する、ユーザ入力が所定時間以上途絶える、あるいはローバッテリ状態になることによってサスペンド処理を起動するなど、他のシステム・イベントを利用してサスペンドを起動するようにしてもよい。
【0051】
ステップS2において、計算機装置の状態を不揮発性記憶装置に保存した後、計算機装置はハイバーネーション状態に遷移し、バッテリなどの主電源を切断する。
【0052】
このハイバーネーション期間中、電源スイッチが再び押されるかどうか(あるいは、ハイバーネーション状態からのレジュームを要求する他のイベントが発生したかどうか)を判定する(ステップS3)。レジューム処理の起動に関しては、キーボードへのキー入力やマウスの動作によって起動するなど、他のシステム・イベントを利用することができる。
【0053】
そして、電源スイッチが押されなかった場合は電源停止状態を続ける。すなわち、電源スイッチが押されるまで計算機装置は電源停止状態を続け、電源スイッチが押された時点で、レジューム処理を起動する(ステップS4)。レジューム処理により、計算機装置は、電源スイッチを押す前の状態に復帰する。
【0054】
ステップS4において、計算機装置の状態を復帰し、中断前(サスペンド処理の直前)の処理を再開し、サスペンド・レジュームに関する一連の処理を終了する。
【0055】
次に、本発明に係るサスペンド処理並びにレジューム処理の詳細について説明する。
【0056】
本発明に係るハイバーネーション動作の実施形態として、仮想メモリ方式を採用する場合のみに適用可能な形態と、仮想メモリ方式を採用しない場合でも適用可能な形態とに大別することができる。
【0057】
仮想メモリ・システムは、ハード・ディスクなどの外部記憶装置に対して論理的なアドレス(仮想アドレス)を割り振り、これらが見かけ上は物理メモリ空間の一部であるかのように扱うことで、少ない物理メモリ容量で論理的には大きなアドレス空間を実現することができる。
【0058】
仮想メモリ・システムでは、一般に、「ページ」と呼ばれる単位で細かく分割して仮想アドレス空間が管理されている。そして、プログラムの実行やデータへのアクセスの際に、ハード・ディスクへのページの退避(ページ・アウト)やハード・ディスクからメモリへの復元(ページ・イン)などが行なわれる。論理アドレスと物理アドレスの関係をページ単位で掌握するために、各アドレス空間の対応表であるページ・テーブルを用意する。また、一部のページ・テーブル・エントリは、CPU11内のメモリ管理ユニット(MMU)(図示しない)にTLB(Table Lookup Block)として保持される。
【0059】
仮想メモリ・システムが適用される計算機装置上では、サスペンド及びレジューム処理におけるシステムの状態情報の退避や復元を、仮想アドレス空間におけるページング動作と並行して実現することができる。まず、仮想メモリ・システムを適用した本発明の第1の実施形態について説明する。
【0060】
図4には、計算機装置が仮想メモリ・システムを適用した場合におけるサスペンド処理の動作手順をフローチャートの形式で示している。また、図5には、この場合のサスペンド処理の直前における計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示している。
【0061】
図5に示すように、通常の動作状態では、複数のアプリケーション・プログラムAP1、AP2、AP3やデータD1、D2が主記憶装置102上に配置(展開)され、CPU101によって実行されている。なお、図5では、主記憶装置102上のオペレーティング・システム並びに2次記憶装置105内のプログラムやデータのイメージは省略されている。
【0062】
図5に示す記憶空間の状態から計算機装置をサスペンド状態に至らしめるためには、レジュームにより同じ時点からタスクを再開させるために必要なプログラムやデータを適宜不揮発性の記憶装置に退避する必要がある。ここで言う不揮発性の記憶装置は、主記憶装置102内の不揮発性記憶部104と2次記憶装置105に相当する。このようなサスペンド処理の手順について、図4に示したフローチャートを参照しながら説明する。
【0063】
サスペンド処理が起動されると、計算機装置に接続しているデバイスなどの状態(以下では、「システム状態情報(ST)」と呼ぶ)を主記憶装置102上に退避する(ステップS11)。
【0064】
ここでいうシステム状態情報とは、バス110上の各デバイスにおけるI/Oレジスタの内容や、VRAM上のメモリ・イメージなどである。これらはタスクを継続するために必要なデータであり、言い換えれば、ハイバーネーション期間中も保持しておくべき退避データとなる。
【0065】
次いで、主記憶装置103上の各ページに一意な優先度を与える(ステップS12)。ここで言う優先度は、後のレジューム処理によるタスク再開時において必要となる優先度、言い換えれば、サスペンド処理による電源遮断時において不揮発性記憶部104に配置すべき優先度を意味する。
【0066】
本実施形態では、優先度割り振りの一例として、仮想メモリ・システムにおいてページング管理に利用されるLRU(Least recently Used)アルゴリズム(後述)での優先度をそのまま与えるものとする。但し、上記のシステム状態情報は、通常の仮想メモリ・システムの管理下には置かれないが、タスクを継続するために必須のデータであることから、最も高い優先度を与える(あるいはステップS11において不揮発性記憶部104に直接退避する)ようにする。他の優先度の与え方もあるが、これらの方法の詳細については後述に譲る。
【0067】
ステップS13からステップS20では、ステップS12で定めた優先度に基づいて、ページの退避処理を行なう。すなわち、優先度の高いページから順に、主記憶装置の不揮発性記憶部104に優先的に退避していく。
【0068】
ステップS13において、未退避のページの中で最も優先度が高いものが揮発性記憶部103に存在するかどうかを判定する。未退避のページの中で最も優先度が高いものが揮発性記憶部103に存在する場合は次ステップS14に進む。一方、退避対象となっているページが既に不揮発性記憶部104に存在する場合には、退避済みであることを記録するだけでよいので、ステップS17に進む。なお、ページが退避済みであるかどうかは、例えば各ページが退避領域として使われているかどうかを判定するビットマップを不揮発性記憶部104に配設し、ページ退避時に該当するビット位置に記録することで実現できる。
【0069】
ステップS14では、不揮発性記憶部104に存在するページの中で最も優先度が低いものを2次記憶装置105にスワップ・アウトし、このスワップ・アウト処理で空いた不揮発性記憶部104のページ領域に、未退避のページの中で最も優先度が高いものを退避する。なお、主記憶装置102上の情報が不揮発性記憶部104にすべて退避できる場合には、2次記憶装置105にスワップ・アウトせずに、不揮発性記憶部104内で元々空いている領域に退避することも可能である。
【0070】
ステップS15では、前ステップS14で不揮発性記憶部104に退避したページについて、ページ・テーブルの書き換え処理を行なう。
【0071】
仮想メモリ・システムをサポートした計算機装置では、プログラム実行中にメモリ空間上のプログラム又はデータにアクセスする際、通常、仮想アドレスを用いてページ・テーブルを検索することにより物理アドレスを得る(前述)。前ステップS14におけるページの退避動作によって、仮想アドレスに対応する物理アドレスが揮発性記憶部103から不揮発性記憶部104に変更されるため、ページ・テーブルにおいて、この整合性を取らなくてはならない。これは、該当するページ・テーブル・エントリを書き換えることで行なわれる。
【0072】
さらにステップS16では、前ステップS15で書き換えたページ・テーブル・エントリに対応するTLBエントリを無効化する。
【0073】
TLBは、ページ・テーブルのキャッシュに相当するものであり、こちらも仮想アドレスと物理アドレスのマッピングの整合性が取られていなくてはならない。ステップS16での処理は、主記憶装置102上のプログラム又はデータで電源切断までにアクセスされる可能性があるものがある場合の対策となっている。電源切断までにアクセスしないことが保証されているページに関しては、ステップS16におけるTLBエントリの無効化処理を省略することも可能である(TLB自体は電源切断でフラッシュ(消去)される)。
【0074】
ステップS17では、ページの退避が完了したことを記録する。この記録は、ステップS13の場合と同様、不揮発性記憶部104のページ集合を表すビットマップなどを用い、退避が完了したビット位置に記録するようにすればよい(不揮発性記憶部104に格納されているシステム情報の一部として用意する)
【0075】
ステップS18では、すべての未退避のページが退避されたことを判定する。すなわち、揮発性記憶部103内のすべてのページが不揮発性記憶部104(あるいは2次記憶装置105)に退避されているかどうかを判定する。すべてのページの退避が完了している場合はステップS21に進み、サスペンド処理を終了する。他方、未退避のページが存在する場合は、次ステップS19に進む。
【0076】
ステップS19では、不揮発性記憶部104に空きがある場合はステップS13に戻り、揮発性記憶部103から不揮発性記憶部104へのページの退避処理を続ける。一方、不揮発性記憶部104にもはや空きがない場合は、2次記憶装置105への退避処理を行なうために、次ステップS20へ進む。
【0077】
ステップS20では、揮発性記憶部103に残されている未退避(すなわち優先度の低い)のページを、不揮発性記憶部104ではなく2次記憶装置105にスワップ・アウトする。以上の処理によって、主記憶装置102上のページの退避処理は完了し、タスク再開に必要なデータが確保される。
【0078】
ステップS20で、不揮発性記憶部104に退避できなかったページを2次記憶装置105にスワップ・アウトする。すべての未退避のページについてのスワップ・アウトが完了した後、次ステップS21に進んで、計算機装置の電源を切断し、サスペンド処理を終了する。
【0079】
図6には、上記のサスペンド処理が完了した時点での計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示している。図示の状態のまま、計算機装置はユーザが復帰操作(例えば、計算機装置の電源スイッチを押すなど)を行なうまで停止する。
【0080】
図6に示す例では、揮発性記憶部103に配置されていたプログラムAP1とデータD1、並びにシステム状態STは、不揮発性記憶部104に退避されている。また、優先度の低いプログラムAP2やデータD2は、より優先度の高いプログラムやデータで不揮発性記憶部104の退避領域が満杯となってしまったことから、2次記憶装置105に退避されている。また、元々は不揮発性記憶部104に配置されていたプログラムAP3やデータD2は、優先度の高いプログラムやデータのための退避領域を設けるために、2次記憶装置105に退避されている。
【0081】
ここで言う優先度は、後のレジューム処理によるタスク再開時において必要となる優先度を意味する。プログラム及びデータの退避先を図6に示したように配置することにより、レジューム処理が起動されると、不揮発性記憶部104に格納された情報を基に復帰処理が行なわれるとともに、中断中のタスク処理がそのまま再開される。
【0082】
サスペンド状態にある計算機装置は、ユーザのスイッチ押下操作などにより、レジューム処理を開始する。図7には、計算機装置が仮想メモリ・システムを適用した場合におけるレジューム処理の動作手順をフローチャートの形式で示している。
【0083】
まず、レジューム処理が起動されると、主記憶装置102の不揮発性記憶部104に退避されている情報を用いて、デバイスの復帰処理などを行なう(ステップS31)。
【0084】
デバイスの復帰処理は、不揮発性記憶部104内のシステム状態情報として保存されている各デバイスのI/Oレジスタ値やVRAMのメモリ・イメージをそれぞれ元の場所に書き戻すことにより行なわれる。
【0085】
次いで、不揮発性記憶部104上の情報を用いて、サスペンド処理により中断したタスクの再開を行なうことによって、レジューム処理を終了する(ステップS32)。
【0086】
サスペンド処理において2次記憶装置105にスワップ・アウトされたページは、レジューム処理後で必要となった時点で適宜主記憶装置103上に配置される。但し、2次記憶装置105にスワップ・アウトされたページ群は、サスペンド処理の直前において最近のアクセスがなかった情報である。このため、例えば、不揮発性記憶部704の容量に比べて、巨大なアプリケーション・ソフトやデータ・ファイルを用いているような場合でない限り、レジューム処理直後に多数のスワップ・イン処理が生じる可能性は少ないと言える。
【0087】
図6に示した状態から一連のレジューム処理が完了した時点での記憶内容の配置状態を図8に示している。これは図6とほぼ同一であるが、不揮発性記憶部104上のデバイスの状態情報が復帰されているなど、システム内部的な状態は異なっている。
【0088】
既存の計算機装置ではサスペンド時に主記憶装置102上の情報をすべて2次記憶装置のみに保存する。これに対し、本実施形態では、保存すべき情報をステップS12で定めた優先度に基づいて不揮発性記憶部104に保存していき、不揮発性記憶部103に保存しきれなかった情報を2次記憶装置105に保存する、という点が異なる。
【0089】
ここで、図9にはサスペンド処理前とサスペンド処理後、並びにレジューム処理後のページ移動の様子を示している。サスペンド処理前に主記憶装置102の揮発性記憶部103にあったページは、優先度に応じて、主記憶装置102の不揮発性記憶部103又は2次記憶装置105に移動する。また、主記憶装置の不揮発性記憶部103に配置されていたページは、優先度に応じて、主記憶装置102の不揮発性記憶部103に留まるか、又は2次記憶装置105に移動する。このように、サスペンド処理時において、より低速な2次記憶装置105への退避すべき情報量が削減されるため、既存のサスペンド処理よりも高速な退避処理を実現することができる。
【0090】
また、レジューム処理が起動されると、不揮発性記憶部104に格納された情報を基に復帰処理が行なわれるとともに、中断中のタスク処理が再開される。従来のレジューム処理では低速な2次記憶装置に退避された情報を主記憶装置に転送し終わるまで待たなくてはならない。これに対し、本実施形態では、図9で示したよう、レジューム処理では高速な主記憶装置の不揮発性記憶部104上の情報のみで復帰処理が行なうことができるので、レジューム処理の所要時間が飛躍的に短縮される。
【0091】
このように、本発明の第1の実施形態では、仮想メモリ・システムに主記憶装置の不揮発性記憶部への退避優先度という概念を導入することにより、サスペンド処理及びレジューム処理の所要時間の短縮を達成することができる。特に、レジューム処理が単純化されるため、同レジューム処理を従来技術よりも格段に高速化することができる。
【0092】
続いて、仮想メモリ・システムを適用しない場合でも採用可能な、本発明の第2の実施形態について説明する。
【0093】
図10には、計算機装置が仮想メモリ・システムを適用しない場合におけるサスペンド処理の動作手順をフローチャートの形式で示している。また、図11には、この場合のサスペンド処理の直前における計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示している。
【0094】
図11に示すように、通常の動作状態では、複数のアプリケーション・プログラムAP1、AP2、AP3やデータD1、D2が主記憶装置102上に配置(展開)され、CPU101によって実行されている。なお、図11では、主記憶装置102上のオペレーティング・システム並びに2次記憶装置105内のプログラムやデータのイメージは省略されている。
【0095】
図11に示す記憶空間の状態から計算機装置をサスペンド状態に至らしめるためには、レジュームにより同じ時点からタスクを再開させるために必要なプログラムやデータを適宜不揮発性の記憶装置に退避する必要がある。ここで言う不揮発性の記憶装置は、主記憶装置102内の不揮発性記憶部104と2次記憶装置105に相当する。このようなサスペンド処理の手順について、図10に示したフローチャートを参照しながら説明する。ここでは、各プログラム及びデータが主記憶装置102上又は2次記憶装置105上で連続した領域を占有しているものとするが、非連続な領域を占有している場合についても容易に拡張することができる。
【0096】
まず、サスペンド処理が起動されると、システムが保存すべき情報の識別処理を行なう(ステップS41)。
【0097】
主記憶装置102上の情報はオペレーティング・システムが管理しており、この管理情報を活用する。具体的には、オペレーティング・システムなどのシステムに関する情報、主記憶装置102上で実行されているプログラム及びデータに関する情報である。これに加え、計算機装置に接続されている入出力装置に関するシステム状態情報(前述)も保存すべき情報の対象となる。
【0098】
次いで、前ステップS41において識別した各情報に対して、レジューム処理が起動されてタスクが再開した直後に必要とされるかに基づいて優先度を与える(ステップS42)。
【0099】
優先度の与え方については後に詳解するが、システムがタスクを再開するために必須な情報(オペレーティング・システムなど)に対しては、あらかじめ最高の優先度を与えるものとする。
【0100】
本実施形態では、退避する各情報についての優先度や元の格納場所並びに退避先の場所を管理するためのデータ構造を主記憶装置102の不揮発性記憶部104内に用意する。図12には、このデータ構造の構成例を示している。図示のデータ構造では、各情報はIDで一意に示されるものとし、各情報のエントリは、「優先度」、「退避元の位置」、「退避先の位置」、「サイズ」を格納するフィールドを持つ。「退避元の位置」にはサスペンド前の各退避すべき情報の先頭番地を格納し、「退避先の位置」にはサスペンド後の各退避すべき情報の格納位置(不揮発性記憶部104上の番地、又は2次記憶装置105上での先頭位置)を格納する。また、「サイズ」には各情報の大きさを格納する。また、「復帰?」は、復帰ビットであり、サスペンド処理時に未復帰を示すフラグで初期化される。
【0101】
次いで、前ステップS42で定めた優先度に基づいて、保存すべき情報の退避処理を行なう(ステップS43)。
【0102】
次いで、すべての保存すべき情報を退避できたかを判定する(ステップS44)。そして、すべて退避できた場合(すべての保存すべき情報を不揮発性記憶部104に退避することができた場合)は、計算機装置の電源を切断し、サスペンド処理を終了する(ステップS7)。すべての保存すべき情報がまだ退避できていない場合は、次ステップS45に進む。
【0103】
ステップS45では、不揮発性記憶部104の空き容量を判定する。不揮発性記憶部104に十分な容量が残っている場合は、ステップS43に戻り、上述の不揮発性記憶部104への情報の退避処理を繰り返し実行する。また、不揮発性記憶部104に十分な容量が残っていない場合は次ステップS46に進む。
【0104】
ステップS46では、保存すべき情報のうち不揮発性記憶部104に退避しきれなかったもの(すなわち、優先順位の低い情報)をすべて2次記憶装置105に退避する。
【0105】
そして、計算機装置の電源を切断した時点でサスペンド処理を終了する(ステップS47)。
【0106】
図13には、上記のサスペンド処理が完了した時点での計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示している。図示の状態のまま、計算機装置はユーザが復帰操作(例えば、計算機装置の電源スイッチを押すなど)を行なうまで停止する。
【0107】
図13に示す例では、揮発性記憶部103に配置されていたプログラムAP1とデータD1、並びにシステム状態STは、不揮発性記憶部104に退避されている。また、優先度のより低いプログラムAP2やデータD2は、より優先度の高いプログラムやデータで不揮発性記憶部104の退避領域が満杯となってしまったことから、2次記憶装置105に退避されている。また、元々は不揮発性記憶部104に配置されていたプログラムAP3やデータD2は、優先度の高いプログラムやデータの退避領域を設けるために、2次記憶装置105に退避されている。
【0108】
ここで言う優先度は、後のレジューム処理によるタスク再開時において必要となる優先度を意味する。プログラム及びデータの退避先を図13に示したように配置することにより、レジューム処理が起動されると、不揮発性記憶部104に格納された情報を基に復帰処理が行なわれるとともに、中断中のタスク処理がそのまま再開される。
【0109】
サスペンド状態にある計算機装置は、ユーザのスイッチ押下操作などにより、レジューム処理を開始する。図14には、計算機装置が仮想メモリ・システムを適用しない場合におけるレジューム処理の動作手順をフローチャートの形式で示している。
【0110】
まず、レジューム処理が起動されると、図12に示したデータ構造の該当情報エントリを参照して、主記憶装置102の不揮発性記憶部104に退避されている各情報を、「退避元の位置」で示す番地に復帰させ、復帰が完了した情報については「復帰ビット」を立てる(ステップS51)。
【0111】
次いで、主記憶装置102上の情報を用いて、システムの再開を行なう(ステップS52)。
【0112】
ここで、すべての必要な情報が不揮発性記憶部104に退避されているかどうかを判別する(ステップS53)。必要な情報がすべて不揮発性記憶部104に退避されていた場合は、既に計算機装置の状態が復帰されており、後続のタスク実行処理を行なうことができるので、レジューム処理を終了する。一方、不揮発記憶装置の情報のみでは復帰処理が完了していなかったと判断された場合には、次ステップS54に進む。
【0113】
ステップS54では、主記憶装置102上の情報を用いてシステムが再開する一方、そのバックグラウンド処理として、2次記憶装置105に退避している残りの保存情報をサスペンド処理時に決定した優先度の順に従って主記憶装置102に読み込む。このとき、復帰が完了した情報については、データ構造(図12を参照のこと)の該当情報エントリにおいて、その復帰ビットを立てる。
【0114】
ステップS55では、次ステップS54に付随する復帰処理を行なう。なお、ステップS54及びステップS55では、復帰中の情報は復帰処理が完了するまでは利用できないものとする。すなわち、同情報を用いるには復帰処理の完了を待つ必要がある。
【0115】
ステップS56では、2次記憶装置105上のすべての退避情報についての復帰が完了したかどうかを判断する。そして、これが完了している場合はレジューム処理を完了する。まだ完了していない場合は、ステップS54に戻り、再開したタスク実行のバックグラウンドにおいて復帰処理を続ける。
【0116】
図13に示した状態から一連のレジューム処理が完了した時点での記憶内容の配置状態を図15に示している。これは図13とほぼ同一であるが、不揮発性記憶部104上のデバイスの状態情報が復帰されているなど、システム内部的な状態は異なっている。
【0117】
本実施形態に係る計算機装置では、レジューム処理が起動されると、不揮発性記憶部104に格納された情報を基に計算機装置の状態を復帰するとともに、不揮発性記憶部104に格納されたプログラムAP1やデータD1を実行する。このように、不揮発性記憶部104上のプログラムが実行された時点で、計算機装置のユーザには、計算機装置が通常動作状態に復帰した効果を与える。
【0118】
第1の実施形態の場合と同様に、本発明の第2の実施形態では、保存すべき情報をステップS42で定めた優先度に基づいて主記憶装置102の不揮発性記憶部104に保存していき、不揮発性記憶部104に保存できなかった情報を2次記憶装置105に保存するという点で、従来のサスペンド処理とは相違する。
【0119】
ここで、図16には、サスペンド処理前とサスペンド処理後、並びにレジューム処理後の情報の移動の様子を示している。サスペンド処理前に主記憶装置102の揮発性記憶部103にあった情報は、優先度に応じて、主記憶装置102の不揮発性記憶部104又は2次記憶装置105に移動する。また、主記憶装置102の不揮発性記憶部104にあった情報は、優先度に応じて、主記憶装置102の不揮発性記憶部104に留まるか、又は2次記憶装置105に移動する。このように、低速な2次記憶装置105への退避すべき情報量が削減されるため、既存のサスペンド処理よりも高速な退避処理を実現することができる。また、低速な2次記憶装置105からの転送処理を待たずして、計算機装置の処理が再開されるため、ユーザの体感所要時間を既存のレジューム処理に比べて大幅に短縮することができる。
【0120】
このように、本発明の第2の実施形態では、タスク再開時における必要度合いによる優先度に基づいて、主記憶装置102の不揮発性記憶部104を有効活用することにより、サスペンド処理及びレジューム処理の所要時間の短縮を達成することができる。また、上述した第1の実施形態とは異なり、仮想メモリ・システムをサポートしない環境(例えば、組み込み用途のように、CPUにMMUを搭載していない機器など)においても適用することが可能である。
【0121】
続いて、サスペンド処理時における、退避すべき情報に対する優先度付けに関する3通りの手段について説明する。これら優先度付け手段は、上述した本発明の第1及び第2の実施形態のいずれにも適用することができる。
【0122】
第1の優先度付けの手段は、オペレーティング・システムにおいて提供される仮想メモリ・システムを利用した方法である。但し、第2の実施形態で適用する場合は、仮想メモリ・システムをサポートしている環境のみ適用可能である(仮想メモリ・システムをサポートしていない環境では、後述の第2の優先順位付け手段、あるいは第3の優先順位付け手段を用いることができる)。仮想メモリ・システムは、計算機装置に搭載している主記憶装置の容量よりも多くのメモリを必要とするプログラムやデータを扱うためのメカニズムである
【0123】
図17には、仮想メモリ・システムの構成を模式的に示している。物理メモリすなわち主記憶装置102の容量は例えば数十〜数百メガバイト程度である。これに対し、仮想メモリは、例えば32ビット・アーキテクチャであれば4ギガバイト(=232)程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他のデータはハード・ディスク上に退避されている。
【0124】
仮想メモリ・システムを実現する際、タスク切り替えの度にタスクに関するメモリの内容をハード・ディスクに退避したりハード・ディスクから回復したりするのでは効率的でない。そこで、仮想アドレス空間を「ページ」と呼ばれる単位で細かく分割し、ページ単位で論理アドレス空間と物理アドレス空間のマッピングが行なわれる。ページ単位で管理することにより、物理メモリ上には常に複数のタスクのページが配置された状態となり、タスク切り替え時にハード・ディスクへのページの退避(ページ・アウト)や復元(ページ・イン)が頻繁に起こることはなくなる。仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。仮想メモリ・システムでは、論理アドレスと物理アドレスの関係をページ単位で掌握するために、ページ・テーブルを用意する。
【0125】
仮想メモリ・システムにおけるページ・アウトやページ・インなどのページ置き換え処理では、LRU(Least Recently Used)すなわち最近最も参照されなくなった主記憶装置上のページを置き換えるというアルゴリズム及びその近似アルゴリズムが広く用いられている。オペレーティング・システムは、このLRUアルゴリズムを実現するために、主記憶上の各ページに対するアクセス時刻情報を管理している。本発明では、仮想メモリ・システムにおけるこのようなページ管理情報を活用して、最近アクセスされたページから順に高い優先度を与えていくという優先度付けを行なう。
【0126】
既に述べたように、第1の実施形態に対しては、仮想メモリ・システムにおけるページ管理情報を直接用いることができる。一方、このページ管理情報を第2の実施形態で活用する場合には、ページ単位ではなく、プログラム及びデータ単位の優先度に変換する方法が必要である。このような優先度の与え方としては、例えば、(1)プログラム及びデータが保有するページの最高優先度のものに着目し、この優先度が高い順に高い優先度を与える方法、(2)プログラム及びデータが保有するページの優先度の上位数個の平均の大きいものから順に高い優先度を与える方法、などが考えられる。
【0127】
第2の優先度付けの手段は、一般的なオペレーティング・システムにおいて管理している「実行中のプログラムの最近のアイドル時間」に関する情報を優先度付けに活用する方法である。すなわち、アイドル時間の小さいプロセス(最近実行されているプロセス)から順に高い優先度を与えていき、アイドル時間が大きいプロセス(最近実行されていないプロセス)ほど低い優先度を与えるようにする。
【0128】
ここで、プロセス同士の間で一意な優先度を与えるには、例えば、アイドル時間の等しいプロセスの間には、システムの管理するプロセスIDの大小関係などで優先度の大小を決するようにすればよい。また、データ(アプリケーションが使うファイルなど)に対する優先度は、そのデータを用いるプロセスの中で最高優先度を持つプロセスの優先度に準ずるようにする。1つのプロセスが複数のデータを用いる場合は、プロセスの場合と同様に、IDなどで大小を決すればよい。第2の実施形態では、プログラム及びデータに一意な優先度を与えることで、アイドル時間に関する情報を優先度付けにそのまま活用することができる。
【0129】
一方、第1の実施形態において、アイドル時間に関する情報を優先度付けに適用するには、プログラムやデータに与えた優先度をページ単位の優先度に変換することで実現できる。すなわち、優先度の高いプログラムやデータに属するページほど高い優先度を与えるという変換を行なう。一般に、プログラムやデータには複数のページが属するが、その間に一意な優先度を与えるには、前述のLRUアルゴリズムにおける優先度を適用する方法などがある。
【0130】
第3の優先度付けの手段は、ユーザからの定義を優先度付けに反映させる方法である。すなわち、ユーザが主記憶装置102の不揮発性記憶部104に残したいプログラムやデータの優先度をあらかじめ指定し、サスペンド時において、この優先度を考慮してプログラムやデータを退避する。ユーザが優先度を定義する方法としては、例えば、(1)サスペンドを行なう前にユーザが優先度リストを編集し、システムに与える方法、(2)サスペンド直前にシステムがユーザに優先度を尋ねる方法、などが挙げられる。
【0131】
ここで、ユーザがすべてのプログラムやデータに関して優先度を与えるとは限らない。この場合には、ユーザが優先度を与えなかったプログラムやデータに対してシステムが自動的に優先度を付ける方法を適用することができる。すなわち、ユーザが付けた優先度リストにおける最低優先度の退避すべき情報に続いて、残りの退避すべき情報に対してシステムが自動的に優先度付けしたリストを加え、すべての退避すべき情報に関する優先度リストを作成する。システムが自動的に優先度付けする方法としては、例えば上述した第1並びに第2の優先度付けの手段などを適用することができる。
【0132】
また、ユーザがプログラムやデータに優先度を与えるのが煩わしいという場合には、主記憶装置102の不揮発性記憶部104に残しておきたいプログラムやデータの候補をユーザがシステムに与えるという方法も考えられる。この場合、まず、ユーザが与えた候補リストに対して、システムが自動的に優先度を与える。その後、残りの退避すべき情報に対してもシステムが自動的に優先度付けを行ない、候補リストに対する優先度付けの結果に残りの退避すべき情報(候補でないもの)に対する優先度付けの結果を加えて、すべての情報に対する優先度リストを作成する。この方法においても、システムが自動的に優先度付けする方法として、上述した第1並びに第2の優先度付けの手段を適用することができる。
【0133】
第3の優先度付け手段については、第2の実施形態に直接適用することができる。また、第2の優先度付け手段によりプログラムやデータの優先度をページ単位の優先度に変換する手法を用いることで、第1の実施形態に適用することも可能である。
【0134】
次に、レジューム処理時の復帰処理中において未復帰の情報が呼び出されたときに対処する手段について説明する。
【0135】
第2の実施形態では、レジューム処理時には、主記憶装置102上のプログラムやデータを用いて中断していたタスクを再開しながら、タスク実行のバックグラウンドで、2次記憶装置105に退避されていたプログラムやデータを退避元の位置に復元する処理が行なわれる。ここで、バックグラウンド処理で未復帰の情報がタスクにより呼び出された場合に、当該手段を用いることができる。
【0136】
レジューム処理中に、主記憶装置102に未だ復帰していないプログラムやデータが必要になったとする。例えば、主記憶装置102に復帰していないプログラムをレジューム処理中にユーザが実行したいとする。この場合、現在復帰中の情報の転送を中断し、ユーザが現在必要とする情報を優先して主記憶装置102に転送して、その転送処理が完了した後に中断した転送処理を再開する、という方法を行なえば、ユーザの操作性を向上させることができる。
【0137】
ユーザが現在必要とする情報を優先して復帰させる場合も、図12に示したようなデータ構造を参照する。図18には、レジューム処理時の復帰処理中において未復帰の情報が呼び出されたときに対処するための処理手順を、フローチャートの形式で示している。
【0138】
まず、途中で復帰処理を中断するプログラムやデータに対して、中断箇所に関する情報を図12に示したデータ構造に保存する(ステップS61)。ここで、中断時の2次記憶装置105上の位置を「退避先の位置」に、中断時の主記憶装置102上の位置を「退避元の位置」に、中断時の残りの転送量を「サイズ」に記録する。
【0139】
次いで、割り込み復帰処理リストを主記憶装置102上に生成して、すぐに復帰しなくてはならないプログラムやデータの復帰処理を当該リストの末尾に追加する(ステップS62)。
【0140】
そして、割り込み復帰処理リストの先頭から順に処理を開始する(ステップS63)。
【0141】
ここで、新たに割り込み復帰処理が発生した場合は(ステップS64)、ステップS62に戻り、新たな割り込み復帰処理を割り込み復帰処理リストの末尾に加える。ステップS63では、現在実行中の割り込み復帰処理が再び選ばれるため、続きの処理を継続することになる。
【0142】
一方、新たな割り込み復帰処理が発生しない場合は、次ステップS65に進み、現在実行中の復帰処理が完了したかどうかを判断する。復帰処理が完了していない場合は、ステップS63に戻り、現在実行中の復帰処理を再開する。
【0143】
次いで、現在実行中の復帰処理が完了したかどうかを判別する(ステップS65)。そして、復帰処理が完了したと判断される場合は、次ステップS66に進む。
【0144】
ステップS66では、割り込み復帰処理リストの先頭の処理(直前まで行なっていた割り込み復帰処理)を除去する。
【0145】
次いで、割り込み復帰処理リストが空になったかどうかを判別する(ステップS67)。割り込み復帰処理リストが空になっている場合は、現時点で緊急に行なうべき復帰処理がないことを意味し、割り込み復帰処理を終了する。その後、2次記憶装置105上の最高優先度の情報の復帰処理に戻る。また、割り込み復帰処理リストが空になっていない場合には、ステップS63に戻り、割り込み復帰処理を続ける。
【0146】
このように、割り込み復帰処理リストというデータ構造を用いることで、複数の割り込み復帰処理に対応することができる。また、割り込み復帰処理が発生する直前まで実行していた復帰処理が緊急に必要になった場合にも対応することができる。
【0147】
次に、2次記憶装置105から主記憶装置102へのデータの復帰処理中に、復帰が未完了の情報へのアクセスを禁ずるための手段について説明する。この手段も、第2の実施形態におけるサスペンドからレジューム処理において活用することができる。
【0148】
本発明の第2の実施形態のようにシステム再開後もレジューム処理をバックグラウンドで継続処理するような計算機装置において、バックグラウンドで主記憶装置102に転送しているプログラムやデータをシステム内のあるプログラムが呼び出した場合、これを禁止する機構が必要である。何故ならば、復帰が完了していないメモリ領域にはでたらめな情報が書き込まれているにも拘らず、このような呼び出しを許してしまえば、復帰中のプログラムやデータの一部とみなしてしまい、呼び出したプログラムが誤動作したり暴走したりする可能性が生じるからである。
【0149】
このような問題を解決するために、図12に示したデータ構造を用いてアクセス許可を判定することができる。また、図19には、レジューム処理中に復帰が未完了の情報へのアクセスを禁止するための処理手順をフローチャートの形式で示している。
【0150】
まず、サスペンド前に主記憶装置102上に存在した情報へのアクセスがあった場合、図12に示したデータ構造の該当情報エントリを参照し、その情報の復帰ビットを調べる(ステップS71)。
【0151】
この復帰ビットが「未復帰」を示していた場合には、次ステップS72に進み、復帰の完了を待つ。また、「復帰」を示していた場合、既に主記憶装置102上に情報が存在するため、ステップS73に進み、アクセスを許可する。
【0152】
ステップS72では、アクセスしようとした情報が主記憶装置102上に復帰されるのを待つ。そして、当該情報が主記憶装置102に復帰された時点で次ステップS73に進み、この情報にアクセスすることができる。
【0153】
ステップS73では、アクセスを試みた情報が主記憶装置102上に存在するので、これにアクセスして所望の処理を行なう。
【0154】
以上のように、第2の実施形態において、2次記憶装置105から主記憶装置102への情報の復帰中に、復帰が未完了の情報にアクセス要求が生じた場合の対応を行なうことができる。
【0155】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0156】
【発明の効果】
以上詳記したように、本発明によれば、電源遮断時にシステムの状態情報を不揮発性の記憶装置に退避し、電源再投入時に退避した状態情報を復元して処理を再開させるハイバーネーション機能を備えた、優れた情報処理システム及びその制御方法、並びにコンピュータ・プログラムを提供することができる。
【0157】
本発明によれば、計算機装置において、サスペンド・レジューム機能の退避・復帰処理に要する時間を大幅に短縮し、特にノートPCなどの携帯端末におけるユーザの操作性(退避・復帰処理の待ち時間)を格段に改善することができる。
【0158】
また、本発明によれば、サスペンド・レジューム機能の退避・復帰処理に要する消費電力を削減し、特にノートPCなどの携帯端末におけるバッテリの持ちを改善することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る計算機装置のハードウェア構成を模式的に示した図である。
【図2】既存の計算機装置の構成を模式的に示した図である。
【図3】サスペンド・レジューム処理の概略的な動作を示したフローチャートである。
【図4】本発明の第1の実施形態におけるサスペンド処理の動作手順を示したフローチャートである。
【図5】サスペンド処理の直前における計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示した図である。
【図6】サスペンド処理が完了した時点での計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示した図である。
【図7】本発明の第1の実施形態におけるレジューム処理の動作手順を示したフローチャートである。
【図8】レジューム処理が完了した時点での計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示した図である。
【図9】サスペンド処理前とサスペンド処理後、並びにレジューム処理後におけるページ移動の様子を示した図である。
【図10】本発明の第2の実施形態におけるサスペンド処理の動作手順を示したフローチャートである。
【図11】サスペンド処理の直前における計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示した図である。
【図12】退避する各情報についての優先度や元の格納場所並びに退避先の場所を管理するためのデータ構造を示した図である。
【図13】サスペンド処理が完了した時点での計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示した図である。
【図14】本発明の第2の実施形態におけるレジューム処理の動作手順を示したフローチャートである。
【図15】レジューム処理が完了した時点での計算機装置内の主記憶装置102並びに2次記憶装置105の記憶内容を模式的に示した図である。
【図16】サスペンド処理前とサスペンド処理後、並びにレジューム処理後におけるページ移動の様子を示した図である。
【図17】仮想メモリ・システムの構成を模式的に示した図である。
【図18】レジューム処理時の復帰処理中において未復帰の情報が呼び出されたときに対処するための処理手順を示したフローチャートである。
【図19】レジューム処理中に復帰が未完了の情報へのアクセスを禁止するための処理手順を示したフローチャートである。
【符号の説明】
101…CPU
102…主記憶装置
103…揮発性記憶部
104…不揮発性記憶部
105…2次記憶装置
106…入出力装置
110…バス[0001]
BACKGROUND OF THE INVENTION
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing system including a personal computer and a portable terminal, a control method thereof, and a computer program. The present invention relates to an information processing system having a power saving operation function, a control method thereof, and a computer program.
[0002]
More specifically, the present invention provides information with a hibernation function that saves system state information to a non-volatile secondary storage device when the power is shut off, restores the saved state information when the power is turned on again, and resumes processing. The present invention relates to a processing system, a control method thereof, and a computer program, and more particularly, to an information processing system, a control method thereof, and a computer program for shortening the time required for saving and restoring state information during a hibernation operation.
[0003]
[Prior art]
With the recent technological innovation, various personal computers (hereinafter also referred to as “PC” or “system”) such as desktop type and notebook type have been developed and marketed. Of these, notebook-type PCs are designed and manufactured in a compact and lightweight manner considering outdoor and portable use.
[0004]
One feature of the notebook PC is that it is “battery-driven” that can be driven by a built-in battery. This is because it can be used even in places where commercial power does not reach. The battery built in the notebook PC generally takes the form of a “battery pack” in which a plurality of rechargeable battery cells such as Li-Ion are connected and packaged. Although the battery pack can be reused by charging, the charge capacity per time is only about 2 to 3 hours as the operation time of the system. In order to extend the battery life as much as possible, various efforts have been made to save power.
[0005]
In recent years, there has been an increasing demand for power saving from an ecological point of view even for desktop PCs that can be fed indefinitely with a commercial power source. The US Environmental Protection Agency (EPA) announced a self-regulation called “Energy Star Computer Program” in June 1993, and the power consumption in the standby state is below a certain standard (drive power is 30W or less, or when the CPU is running) 30% or less).
[0006]
In addition to reducing the power consumption of the entire device during operation, PC power saving can also be achieved by appropriately reducing or cutting off the power supply to part or all of the system in response to a decline in the system usage status. Realized. However, because the task is interrupted when the power is turned off, the system status information is saved before the power is turned off and saved when the power is turned on again so that the task can be resumed from the point of interruption when the power is turned on again. Restored state information needs to be restored. The operation of saving the system state information and suspending the task is called “suspend”, and the operation of restoring the state information and restarting the task is called “resume”.
[0007]
There are two methods for realizing the suspend / resume function. One is a system in which power is continuously supplied to a volatile main storage device or the like before and after turning off the power of the computer device and system status information is retained. The other is that the status information of the system deployed in the main storage device or the like is saved to a non-volatile secondary storage device when the power is turned off, and the status information saved when the power is turned on is restored to the main storage device or the like. It is a method. The latter is particularly called “hibernation function”.
[0008]
In the former method, system state information is stored in a battery-backed volatile main storage device or the like. For this reason, the saving / restoring process of the computer apparatus is very fast, but the power saving effect is low because power is consumed for the memory holding operation by the main storage device even when the computer apparatus is stopped. On the other hand, in the case of the latter hibernation function, since the system state information necessary for resuming the task is stored in a non-volatile secondary storage device, it is possible to shut off power to almost all the components in the computer device, and to save power High effect. However, a hard disk drive (or flash memory) as a secondary storage device generally has an access speed lower than that of a main storage device. Since the hibernation function includes a processing operation for storing or expanding a memory image on the main storage device in the secondary storage device, it has a drawback that it takes a lot of time.
[0009]
Various improvements have been attempted to solve the problem of the time required for the save / restore process in the hibernation function. For example, a method of saving and restoring only the area in use of the main storage device (see, for example, Patent Document 1), a high-speed nonvolatile storage device, and a low-speed nonvolatile storage device (both are non-main storage devices) For example, a method of transferring the contents of the volatile main storage device to speed up the saving / restoring process (see, for example, Patent Document 2). However, in either case, it is necessary to wait for the save / restore processing until data transfer between the main storage device and the secondary storage device slower than this is completed. This is the process in the save / restore processing of the hibernation function. It is a rate-limiting process.
[0010]
[Patent Document 1]
JP-A-9-319667
[Patent Document 2]
JP 2001-125659 A
[0011]
[Problems to be solved by the invention]
An object of the present invention is to provide excellent information processing with a hibernation function that saves system state information to a non-volatile storage device when the power is turned off and restores the saved state information when the power is turned on again. A system, a control method thereof, and a computer program are provided.
[0012]
A further object of the present invention is to provide an excellent information processing system, its control method, and computer program capable of shortening the time required for saving and restoring the state information during the hibernation operation. .
[0013]
[Means and Actions for Solving the Problems]
The present invention has been made in consideration of the above-mentioned problems. The first aspect of the present invention is to hold information necessary for continuation of processing in a non-volatile manner and then shut off the power and be held in the non-volatile manner when the power is turned on. A type of information processing apparatus that uses the information to resume processing,
A main storage device including a volatile storage unit that holds information in a volatile manner and a nonvolatile storage unit that holds information in a nonvolatile manner;
Information saving means for saving information on the volatile storage unit necessary for continuation of processing being executed at the time of power-off to the nonvolatile storage unit;
A process resuming means for resuming a process interrupted by power-off using information stored in the non-volatile storage unit at power-on;
It is an information processing apparatus characterized by comprising.
[0014]
In information processing devices such as notebook PCs and portable terminals, the hibernation function is composed of a suspend operation that saves system state information and interrupts the task, and a resume operation that restores state information and resumes the task. This is an essential technology for realizing low power consumption. However, the hibernation function includes a processing operation for storing or developing a memory image on the main storage device in the secondary storage device, and thus has a drawback that it takes a lot of time.
[0015]
In contrast, according to the present invention, a non-volatile storage unit that can hold information in a non-volatile manner is disposed on the main storage device, and information is saved using the non-volatile storage unit. Therefore, the time required for the save / restore processing of the suspend / resume function can be greatly reduced. In particular, user operability (waiting time for evacuation / return processing) in a portable terminal such as a notebook PC can be remarkably improved.
[0016]
Further, according to the present invention, it is possible to reduce the power consumption required for the save / restore process of the suspend / resume function, and particularly to improve the battery life in a portable terminal such as a notebook PC.
[0017]
Here, the information processing apparatus may further include a non-volatile secondary storage device such as a hard disk device. In such a case, the information saving unit saves the information on the volatile storage unit to the nonvolatile storage unit in accordance with a predetermined priority, and the information overflowing from the nonvolatile storage unit in the information saving operation. The data can be saved in the secondary storage device.
[0018]
In addition, the process resuming unit may restore the information saved on the secondary storage device to the original location on the main storage device as necessary during execution of the resumed process.
[0019]
Prioritizing means for identifying information necessary for resuming processing and giving priority to the identified information in order to save and restore information in the volatile storage unit during power-off and on May be further provided. In such a case, the information saving unit stores the information on the main storage device that could not be stored in the non-volatile storage unit in the secondary storage, while storing the information in the non-volatile storage unit in order from the highest priority information. Suspending and resuming processing can be efficiently performed by retracting to the apparatus.
[0020]
For example, the prioritizing means can give priorities in the order of recently accessed information. The order of recently accessed information is managed based on the LRU (Least Recently Used) algorithm in, for example, a virtual memory system.
[0021]
Alternatively, the prioritizing means can give priorities in the order of information related to the latest processing with a small idle time. The idle time is maintained, for example, in the process management mechanism of the operating system.
[0022]
The information processing apparatus may further include means for converting a priority for the information area on the main storage device into a priority for an information unit significant for the user.
[0023]
Further, the prioritizing means pays attention to an area having the highest priority among the areas on the main storage device held by the information unit, and sets the priority of the information area based on the priority of the area. You may make it give.
[0024]
Alternatively, the prioritization means pays attention to a certain number in order from the highest priority among the areas on the main storage device held by the information unit, and the magnitude of the average value of the priority in the area The priority of the information area may be given based on the above.
[0025]
Further, the processing resumption means may restore the information saved in the secondary storage device to the original location on the main storage device according to the priority.
[0026]
Here, when information necessary for continuing the resumed processing occurs, the restoration of the information according to the priority is interrupted, and the necessary information is restored to the original location on the main storage device. It may be.
[0027]
Assume that a program or data that has not yet been restored to the main storage device is required during the resume process. For example, assume that the user wants to execute a program that has not been returned to the main storage device during the resume process. In this case, a method of interrupting the transfer of the currently restored information, preferentially transferring the information currently required by the user to the main storage device, and restarting the interrupted transfer process after the transfer process is completed If this is performed, the user operability can be further improved.
[0028]
Then, when a plurality of pieces of information necessary for continuing the resumed process are generated, a priority may be given to each. For example, the higher priority is given in order from the information previously required on the time axis.
[0029]
In addition, when the storage space on the main storage device and the secondary storage device is managed based on a virtual storage mechanism, information is saved and restored when the power is turned off and turned on in predetermined page units. You may do it.
[0030]
As already known, according to the virtual memory system, logical addresses (virtual addresses) are allocated to external storage devices such as hard disks, and are these apparently part of the physical memory space? By handling like this, a logically large address space can be realized with a small physical memory capacity. Even in an information processing apparatus that employs a virtual memory system, the hibernation function according to the present invention can be realized. In this case, saving and restoring system state information in the suspend and resume processing can be realized in parallel with the paging operation in the virtual address space.
[0031]
Moreover, the user himself / herself may further include means for giving a unique priority to an information unit significant to the user. For example, a first means for giving priority to some information units by the user, a second means for automatically giving priority to information units for which the user has not given priority, A unique priority can be given to each information unit by using the first and second means and the third means for giving a unique priority to all information units.
[0032]
The second aspect of the present invention is to hold information necessary for continuation of processing in a non-volatile manner and then shut down the power and use the information held in a non-volatile manner at the time of power-on to restart the processing. A computer program written in a computer readable format for executing processing on a computer system,
The main storage device includes a volatile storage unit that holds information in a volatile manner and a nonvolatile storage unit that holds information in a nonvolatile manner.
An information saving step for saving information on the volatile storage unit necessary for continuation of the processing being executed at the time of power-off to the nonvolatile storage unit;
A process resuming step of resuming a process interrupted by power-off using information stored in the nonvolatile storage unit at power-on;
A computer program characterized by comprising:
[0033]
The computer program according to the second aspect of the present invention defines a computer program described in a computer-readable format so as to realize predetermined processing on a computer system. In other words, by installing the computer program according to the second aspect of the present invention in the computer system, a cooperative action is exhibited on the computer system, and the information processing according to the first aspect of the present invention is performed. The same effect as the apparatus can be obtained.
[0034]
Other objects, features, and advantages of the present invention will become apparent from more detailed description based on embodiments of the present invention described later and the accompanying drawings.
[0035]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0036]
As an approach for increasing the speed of the save / restore process of the suspend / resume function, a method of configuring the main memory device itself with a nonvolatile memory element is conceivable. In other words, by making the main storage device itself non-volatile, processing at the time of suspend / resume (for example, saving to a secondary storage device such as a hard disk) can be omitted significantly, so obviously high speed is expected. it can. However, from a cost standpoint, it is preferable to configure a main storage space by mixing inexpensive volatile storage devices and more expensive nonvolatile storage devices than making all the main storage devices nonvolatile. A scene is assumed.
[0037]
In a computer device having a main storage space in which such volatile and nonvolatile storage units are mixed, the contents stored in the volatile storage unit of the main storage device are lost when the power is turned off. For this reason, in order to support the hibernation function, it is necessary to save the information on the volatile storage unit of the main storage device to the nonvolatile storage unit or the secondary storage device in the main storage device. Therefore, in order to increase the speed of the hibernation function, it is important to effectively use the nonvolatile storage unit of the main storage device as the information saving destination.
[0038]
Incidentally, a computer device in which the main storage device is composed of a volatile storage unit and a nonvolatile storage unit has been devised in Japanese Patent No. 3275398, etc., but details of the hibernation function in such a computer device have been devised. Until not devised.
[0039]
FIG. 1 schematically shows a hardware configuration of a computer apparatus according to an embodiment of the present invention. The computer apparatus shown in the figure includes a CPU (Central Processing Unit) 101, a
[0040]
The
[0041]
The
[0042]
The computer apparatus according to this embodiment is characterized in the configuration of the
[0043]
The secondary storage device 105 is composed of a nonvolatile storage device such as a hard disk drive (HDD) or a flash memory. The secondary storage device 105 has a lower access speed than the
[0044]
Here, an MRAM (Magnetic RAM) is composed of a TMR (Tunneling MagnetoResistance) element using a tunnel magnetoresistive effect, and can hold information not by an electron charge but by an electron spin. The MRAM has characteristics of being non-volatile in addition to substantially satisfying the conditions as a main storage device in terms of access speed such as rewriting / reading, integration degree, power consumption, and unit price of bits. FeRAM (Ferroelectric RAM) is a non-volatile memory using a ferroelectric thin film material as a memory element (a ferroelectric is dielectrically polarized in a natural state where no electric field is applied), and is the main memory as in MRAM. The conditions as a device are almost satisfied.
[0045]
The HDD is an external storage device in which a magnetic disk as a storage carrier is fixedly mounted (well-known), and is superior to other disk-type storage devices such as a CD / DVD in terms of storage capacity and data transfer speed. Yes. Placing the software program on the HDD in an executable state is called “installation” of the program in the system. Usually, the HDD stores an operating system program code to be executed by the
[0046]
The input /
[0047]
Each device on the bus 110 is assigned a unique address (I / O address) in the I / O space, and access to each device is realized by designating the I / O address. The bus interface of each device has an I / O register (not shown), and write data and commands to the device, read data from the device, device status, etc. are once written to the I / O register. Bus transfer is performed.
[0048]
In order to configure the computer apparatus, many circuit components other than those shown in FIG. 1 are required. However, since these are well known to those skilled in the art and do not constitute the gist of the present invention, they are omitted in the present specification. Also, it should be noted that only a part of the connections between the hardware blocks in the figure is shown in order to avoid the confusion of the drawings.
[0049]
FIG. 3 shows a schematic operation of the suspend / resume process in the computer apparatus shown in FIG. 1 in the form of a flowchart.
[0050]
First, when the user turns off the power switch of the computer apparatus (step S1), the suspend process is started (step S2). In this embodiment, the suspend operation is activated by turning off the power switch. However, the user selects “Suspend processing” via the GUI (Graphical User Interface) screen of the operating system. Suspend may be activated using other system events, such as suspend processing being activated when it has been interrupted for a predetermined time or more, or when a low battery state is reached.
[0051]
In step S2, after the state of the computer apparatus is stored in the non-volatile storage device, the computer apparatus transitions to the hibernation state and cuts off the main power source such as a battery.
[0052]
During the hibernation period, it is determined whether or not the power switch is pressed again (or whether or not another event requiring resume from the hibernation state has occurred) (step S3). Regarding the activation of the resume process, other system events can be used, such as activation by a key input to the keyboard or a mouse operation.
[0053]
And when a power switch is not pushed, a power supply stop state is continued. That is, the computer apparatus continues to be in a power stop state until the power switch is pressed, and resume processing is started when the power switch is pressed (step S4). By the resume process, the computer apparatus returns to the state before the power switch is pressed.
[0054]
In step S4, the state of the computer apparatus is restored, processing before suspension (immediately before suspend processing) is resumed, and a series of processing relating to suspend / resume is completed.
[0055]
Next, details of the suspend process and the resume process according to the present invention will be described.
[0056]
Embodiments of the hibernation operation according to the present invention can be broadly classified into forms that can be applied only when the virtual memory system is employed and forms that can be applied even when the virtual memory system is not employed.
[0057]
Virtual memory system allocates logical addresses (virtual addresses) to external storage devices such as hard disks, and treats them as if they are part of physical memory space. A logically large address space can be realized with the physical memory capacity.
[0058]
In a virtual memory system, generally, a virtual address space is managed by dividing it into units called “pages”. When the program is executed or data is accessed, pages are saved to the hard disk (page out) or restored from the hard disk to the memory (page in). In order to grasp the relationship between the logical address and the physical address in units of pages, a page table that is a correspondence table of each address space is prepared. Some page table entries are held in a memory management unit (MMU) (not shown) in the CPU 11 as a TLB (Table Lookup Block).
[0059]
On a computer apparatus to which a virtual memory system is applied, saving and restoring system state information in suspend and resume processing can be realized in parallel with a paging operation in a virtual address space. First, a first embodiment of the present invention to which a virtual memory system is applied will be described.
[0060]
FIG. 4 is a flowchart showing the operation procedure of the suspend process when the computer apparatus applies the virtual memory system. FIG. 5 schematically shows the storage contents of the
[0061]
As shown in FIG. 5, in a normal operation state, a plurality of application programs AP1, AP2, AP3 and data D1, D2 are arranged (expanded) on the
[0062]
In order to bring the computer device from the storage space state shown in FIG. 5 to the suspended state, it is necessary to appropriately save programs and data necessary for resuming the task from the same time point by resume to the nonvolatile storage device. . The nonvolatile storage device referred to here corresponds to the
[0063]
When the suspend process is activated, the state of the device connected to the computer apparatus (hereinafter referred to as “system state information (ST)”) is saved on the main storage device 102 (step S11).
[0064]
The system status information here is the contents of the I / O register in each device on the bus 110, the memory image on the VRAM, and the like. These are data necessary for continuing the task, in other words, the data to be retained during the hibernation period.
[0065]
Next, a unique priority is given to each page on the main storage device 103 (step S12). The priority mentioned here means a priority that is required when the task is resumed by the subsequent resume process, in other words, a priority that should be placed in the
[0066]
In the present embodiment, as an example of priority allocation, the priority in a LRU (Least Recently Used) algorithm (described later) used for paging management in a virtual memory system is given as it is. However, the above system state information is not under the control of the normal virtual memory system, but is the data that is essential for continuing the task, and therefore gives the highest priority (or in step S11). The data is directly saved in the nonvolatile storage unit 104). There are other ways of assigning priorities, but details of these methods will be given later.
[0067]
In step S13 to step S20, a page saving process is performed based on the priority determined in step S12. That is, the pages are preferentially saved in the
[0068]
In step S <b> 13, it is determined whether or not the unreserved page having the highest priority exists in the
[0069]
In step S14, the page having the lowest priority among the pages existing in the
[0070]
In step S15, a page table rewriting process is performed for the page saved in the
[0071]
In a computer device that supports a virtual memory system, when accessing a program or data in a memory space during program execution, a physical address is usually obtained by searching a page table using a virtual address (described above). Since the physical address corresponding to the virtual address is changed from the
[0072]
In step S16, the TLB entry corresponding to the page table entry rewritten in the previous step S15 is invalidated.
[0073]
The TLB corresponds to a cache of the page table, and here, the mapping between the virtual address and the physical address must be consistent. The processing in step S16 is a countermeasure when there is a program or data on the
[0074]
In step S17, it is recorded that the saving of the page has been completed. As in the case of step S13, this recording may be performed using a bit map representing a page set of the
[0075]
In step S18, it is determined that all unsaved pages have been saved. That is, it is determined whether all pages in the
[0076]
In step S19, if there is a vacancy in the
[0077]
In step S <b> 20, the unsaved (that is, low priority) pages remaining in the
[0078]
In step S 20, the pages that could not be saved in the
[0079]
FIG. 6 schematically shows the storage contents of the
[0080]
In the example illustrated in FIG. 6, the program AP1 and data D1 and the system state ST that have been arranged in the
[0081]
The priority mentioned here means a priority required when a task is resumed by a subsequent resume process. By arranging the save destination of the program and data as shown in FIG. 6, when the resume process is started, the return process is performed based on the information stored in the
[0082]
The computer apparatus in the suspended state starts the resume process by a user's switch pressing operation or the like. FIG. 7 is a flowchart showing the operation procedure of the resume process when the computer apparatus applies the virtual memory system.
[0083]
First, when the resume process is started, a device restoration process or the like is performed using information saved in the
[0084]
The device restoration process is performed by writing back the I / O register value of each device and the VRAM memory image stored as system state information in the
[0085]
Next, the resume process is terminated by resuming the task suspended by the suspend process using the information on the nonvolatile storage unit 104 (step S32).
[0086]
Pages swapped out to the secondary storage device 105 in the suspend process are appropriately placed on the
[0087]
FIG. 8 shows an arrangement state of stored contents when a series of resume processing is completed from the state shown in FIG. This is almost the same as in FIG. 6, but the internal state of the system is different, for example, the device state information on the
[0088]
In the existing computer device, all the information on the
[0089]
FIG. 9 shows the state of page movement before suspend processing, after suspend processing, and after resume processing. The page that was in the
[0090]
When the resume process is activated, the return process is performed based on the information stored in the
[0091]
As described above, in the first embodiment of the present invention, the time required for the suspend process and the resume process is reduced by introducing the concept of the priority of saving to the nonvolatile storage unit of the main storage device in the virtual memory system. Can be achieved. In particular, since the resume process is simplified, the resume process can be significantly faster than the conventional technique.
[0092]
Next, a second embodiment of the present invention that can be adopted even when the virtual memory system is not applied will be described.
[0093]
FIG. 10 is a flowchart showing the operation procedure of the suspend process when the computer apparatus does not apply the virtual memory system. FIG. 11 schematically shows the storage contents of the
[0094]
As shown in FIG. 11, in a normal operation state, a plurality of application programs AP1, AP2, AP3 and data D1, D2 are arranged (expanded) on the
[0095]
In order to bring the computer apparatus from the storage space state shown in FIG. 11 to the suspended state, it is necessary to appropriately save programs and data necessary for resuming the task from the same time point by resume to the nonvolatile storage device. . The nonvolatile storage device referred to here corresponds to the
[0096]
First, when the suspend process is started, an identification process of information to be stored by the system is performed (step S41).
[0097]
Information on the
[0098]
Next, a priority is given to each piece of information identified in the previous step S41 based on whether it is required immediately after the resume process is started and the task is resumed (step S42).
[0099]
The method of giving priority will be described in detail later. However, the highest priority is given in advance to information (such as an operating system) necessary for the system to resume the task.
[0100]
In the present embodiment, a data structure for managing the priority, the original storage location, and the save destination location for each piece of information to be saved is prepared in the
[0101]
Next, based on the priority set in the previous step S42, the information to be saved is saved (step S43).
[0102]
Next, it is determined whether all information to be saved has been saved (step S44). If all the information can be saved (when all the information to be saved can be saved in the nonvolatile storage unit 104), the computer apparatus is turned off and the suspend process is terminated (step S7). If all the information to be saved has not been saved yet, the process proceeds to the next step S45.
[0103]
In step S45, the free capacity of the
[0104]
In step S <b> 46, all of the information to be saved that could not be saved in the nonvolatile storage unit 104 (that is, information with low priority) is saved in the secondary storage device 105.
[0105]
Then, the suspend process is terminated when the computer apparatus is powered off (step S47).
[0106]
FIG. 13 schematically shows the storage contents of the
[0107]
In the example illustrated in FIG. 13, the program AP1 and data D1 and the system state ST that have been arranged in the
[0108]
The priority mentioned here means a priority required when a task is resumed by a subsequent resume process. By arranging the program and data save destinations as shown in FIG. 13, when the resume process is started, the return process is performed based on the information stored in the
[0109]
The computer apparatus in the suspended state starts the resume process by a user's switch pressing operation or the like. FIG. 14 is a flowchart showing the operation procedure of the resume process when the computer apparatus does not apply the virtual memory system.
[0110]
First, when the resume process is activated, each information saved in the
[0111]
Next, the system is restarted using the information on the main storage device 102 (step S52).
[0112]
Here, it is determined whether all necessary information has been saved in the nonvolatile storage unit 104 (step S53). If all necessary information has been saved in the
[0113]
In step S54, the system restarts using the information on the
[0114]
In step S55, a return process associated with the next step S54 is performed. In step S54 and step S55, the information being returned cannot be used until the return process is completed. That is, in order to use the same information, it is necessary to wait for the completion of the return process.
[0115]
In step S56, it is determined whether or not the restoration for all save information on the secondary storage device 105 has been completed. If this is completed, the resume process is completed. If it is not completed yet, the process returns to step S54, and the return process is continued in the background of the resumed task execution.
[0116]
FIG. 15 shows the arrangement of stored contents when a series of resume processing is completed from the state shown in FIG. This is almost the same as in FIG. 13, but the internal state of the system is different, for example, the state information of the device on the
[0117]
In the computer apparatus according to the present embodiment, when the resume process is activated, the computer AP returns the state of the computer apparatus based on the information stored in the
[0118]
As in the case of the first embodiment, in the second embodiment of the present invention, the information to be stored is stored in the
[0119]
Here, FIG. 16 shows a state of information movement before suspend processing, after suspend processing, and after resume processing. Information in the
[0120]
As described above, in the second embodiment of the present invention, the suspend process and the resume process are performed by effectively using the
[0121]
Next, three means for prioritizing information to be saved during the suspend process will be described. These prioritizing means can be applied to both the first and second embodiments of the present invention described above.
[0122]
The first prioritization means is a method using a virtual memory system provided in the operating system. However, when applied in the second embodiment, it can be applied only to an environment that supports a virtual memory system (in an environment that does not support a virtual memory system, the second prioritization means described later) Or a third prioritization means can be used). The virtual memory system is a mechanism for handling programs and data that require more memory than the capacity of the main memory installed in the computer.
[0123]
FIG. 17 schematically shows the configuration of the virtual memory system. The capacity of the physical memory, that is, the
[0124]
When realizing a virtual memory system, it is not efficient to save the contents of a memory related to a task to the hard disk or restore from the hard disk each time the task is switched. Therefore, the virtual address space is finely divided in units called “pages”, and the logical address space and physical address space are mapped in units of pages. By managing in page units, multiple task pages are always placed on the physical memory, and when tasks are switched, pages are saved (page out) or restored (page in) to the hard disk. It does not happen frequently. Access to the virtual memory is performed in the form of referring to a page address in the virtual address space. In the virtual memory system, a page table is prepared in order to grasp the relationship between logical addresses and physical addresses in units of pages.
[0125]
In page replacement processing such as page-out and page-in in a virtual memory system, an algorithm for replacing an LRU (Least Recently Used), that is, a page on a main storage device that has been least referenced recently, and its approximation algorithm are widely used. ing. In order to realize this LRU algorithm, the operating system manages access time information for each page on the main memory. In the present invention, such page management information in the virtual memory system is utilized, and prioritization is performed such that higher priorities are given in order from recently accessed pages.
[0126]
As already described, the page management information in the virtual memory system can be directly used for the first embodiment. On the other hand, when this page management information is used in the second embodiment, a method for converting the priority to a program and data unit instead of a page unit is required. As a method of giving such priority, for example, (1) paying attention to the highest priority of the page held by the program and data, a method of giving higher priority in descending order of priority, (2) program In addition, a method of giving a higher priority in descending order of the average of the top several priorities of pages held by data may be considered.
[0127]
The second prioritization means is a method of utilizing information related to “recent idle time of a running program” managed in a general operating system for prioritization. That is, a process with a low idle time (recently executed process) is given a higher priority in order, and a process with a longer idle time (a process not executed recently) is given a lower priority.
[0128]
Here, in order to give a unique priority among the processes, for example, between the processes having the same idle time, the magnitude of the priority is determined based on the magnitude relation of the process ID managed by the system. Good. Also, the priority for data (such as a file used by an application) is made to conform to the priority of the process having the highest priority among the processes using the data. When one process uses a plurality of data, the size may be determined by an ID or the like as in the case of the process. In the second embodiment, by giving unique priority to programs and data, information regarding idle time can be used as it is for prioritization.
[0129]
On the other hand, in the first embodiment, the information regarding the idle time can be applied to prioritization by converting the priority given to the program or data into the priority of the page unit. That is, conversion is performed such that a higher priority is given to a page belonging to a program or data having a higher priority. In general, a plurality of pages belong to a program or data. To give a unique priority among them, there is a method of applying the priority in the aforementioned LRU algorithm.
[0130]
The third prioritization means is a method of reflecting the definition from the user in prioritization. That is, the priority of a program or data that the user wants to remain in the
[0131]
Here, the user does not always give priority to all programs and data. In this case, it is possible to apply a method in which the system automatically assigns priorities to programs and data for which the user has not given priorities. That is, after the information to be saved with the lowest priority in the priority list given by the user, a list automatically prioritized by the system is added to the remaining information to be saved, and all information to be saved Create a priority list for. As a method for automatically prioritizing the system, for example, the first and second prioritizing means described above can be applied.
[0132]
In addition, when it is troublesome for the user to give priority to the program or data, a method may be considered in which the user gives the system a candidate for the program or data that is desired to remain in the
[0133]
The third prioritizing means can be directly applied to the second embodiment. In addition, it is also possible to apply to the first embodiment by using a method of converting the priority of a program or data into a priority of a page unit by the second prioritizing means.
[0134]
Next, a description will be given of means for dealing with a case where non-returned information is called during the return process during the resume process.
[0135]
In the second embodiment, at the time of the resume process, the suspended task is resumed by using the program and data on the
[0136]
Assume that a program or data that has not yet been restored to the
[0137]
Also in the case where information that the user currently needs is restored with priority, the data structure as shown in FIG. 12 is referred to. FIG. 18 shows a processing procedure in a form of a flowchart for dealing with a case where non-returned information is called during the return process during the resume process.
[0138]
First, for a program or data that interrupts the return process in the middle, information about the interruption location is stored in the data structure shown in FIG. 12 (step S61). Here, the position on the secondary storage device 105 at the time of interruption is set to “save destination position”, the position on the
[0139]
Next, an interrupt return process list is generated on the
[0140]
Then, processing is started in order from the top of the interrupt return processing list (step S63).
[0141]
If a new interrupt return process occurs (step S64), the process returns to step S62, and the new interrupt return process is added to the end of the interrupt return process list. In step S63, since the interrupt return process that is currently being executed is selected again, the subsequent process is continued.
[0142]
On the other hand, if a new interrupt return process does not occur, the process proceeds to the next step S65, and it is determined whether or not the currently executed return process is completed. If the return process has not been completed, the process returns to step S63, and the currently executed return process is resumed.
[0143]
Next, it is determined whether or not the currently executing return process is completed (step S65). If it is determined that the return process has been completed, the process proceeds to the next step S66.
[0144]
In step S66, the first process in the interrupt return process list (interrupt return process performed immediately before) is removed.
[0145]
Next, it is determined whether or not the interrupt return processing list is empty (step S67). If the interrupt return process list is empty, it means that there is no emergency return process to be performed at this time, and the interrupt return process is terminated. Thereafter, the process returns to the restoration process of the highest priority information on the secondary storage device 105. If the interrupt return process list is not empty, the process returns to step S63 to continue the interrupt return process.
[0146]
In this way, by using a data structure called an interrupt return processing list, a plurality of interrupt return processes can be handled. Further, it is possible to cope with a case where the return process that has been executed immediately before the interrupt return process is urgently needed.
[0147]
Next, means for prohibiting access to information that has not been restored during the data restoration process from the secondary storage device 105 to the
[0148]
In a computer apparatus in which resume processing is continued in the background even after the system is restarted as in the second embodiment of the present invention, programs and data transferred to the
[0149]
In order to solve such a problem, access permission can be determined using the data structure shown in FIG. FIG. 19 is a flowchart showing a processing procedure for prohibiting access to information that has not been restored during the resume processing.
[0150]
First, when there is access to information existing on the
[0151]
If the return bit indicates “not restored”, the process proceeds to the next step S72, and the completion of the return is awaited. If “return” is indicated, the information already exists on the
[0152]
In step S72, it waits for the information to be accessed to be restored on the
[0153]
In step S73, the information to be accessed exists on the
[0154]
As described above, in the second embodiment, it is possible to cope with an access request for information that has not yet been restored during restoration of information from the secondary storage device 105 to the
[0155]
[Supplement]
The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiment without departing from the gist of the present invention. That is, the present invention has been disclosed in the form of exemplification, and the contents described in the present specification should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.
[0156]
【The invention's effect】
As described above in detail, according to the present invention, the hibernation function that saves system state information to a nonvolatile storage device when the power is turned off, restores the saved state information when the power is turned on again, and resumes processing. An excellent information processing system, a control method thereof, and a computer program can be provided.
[0157]
According to the present invention, in the computer device, the time required for the save / restore process of the suspend / resume function is greatly reduced, and the user operability (especially, the waiting time for the save / restore process) in a portable terminal such as a notebook PC is reduced. It can be remarkably improved.
[0158]
Further, according to the present invention, it is possible to reduce the power consumption required for the save / restore process of the suspend / resume function, and particularly to improve the battery life in a portable terminal such as a notebook PC.
[Brief description of the drawings]
FIG. 1 is a diagram schematically illustrating a hardware configuration of a computer apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram schematically showing the configuration of an existing computer apparatus.
FIG. 3 is a flowchart showing a schematic operation of a suspend / resume process.
FIG. 4 is a flowchart illustrating an operation procedure of a suspend process according to the first embodiment of the present invention.
FIG. 5 is a diagram schematically showing the storage contents of the
FIG. 6 is a diagram schematically showing the storage contents of the
FIG. 7 is a flowchart showing an operation procedure of a resume process according to the first embodiment of the present invention.
FIG. 8 is a diagram schematically showing the storage contents of the
FIG. 9 is a diagram showing a state of page movement before suspend processing, after suspend processing, and after resume processing.
FIG. 10 is a flowchart illustrating an operation procedure of a suspend process according to the second embodiment of the present invention.
FIG. 11 is a diagram schematically showing the storage contents of the
FIG. 12 is a diagram illustrating a data structure for managing the priority, the original storage location, and the save destination location for each piece of information to be saved.
FIG. 13 is a diagram schematically showing the storage contents of the
FIG. 14 is a flowchart illustrating an operation procedure of a resume process according to the second embodiment of the present invention.
FIG. 15 is a diagram schematically showing the storage contents of the
FIG. 16 is a diagram showing how pages are moved before suspend processing, after suspend processing, and after resume processing;
FIG. 17 is a diagram schematically showing a configuration of a virtual memory system.
FIG. 18 is a flowchart showing a processing procedure for dealing with a case where non-returned information is called during a return process during a resume process.
FIG. 19 is a flowchart showing a processing procedure for prohibiting access to information that has not been restored during resume processing;
[Explanation of symbols]
101 ... CPU
102: Main storage device
103: Volatile memory unit
104: Nonvolatile storage unit
105 ... Secondary storage device
106: I / O device
110 ... Bus
Claims (35)
情報を揮発的に保持する揮発性記憶部と情報を不揮発的に保持する不揮発性記憶部を備えた主記憶装置と、
電源遮断時において実行中の処理継続に必要な前記揮発性記憶部上の情報を前記不揮発性記憶部に退避する情報退避手段と、
電源投入時において前記主記憶装置内の前記不揮発性記憶部に保持されている情報を利用して電源遮断により中断された処理を再開する処理再開手段と、
を具備することを特徴とする情報処理装置。An information processing apparatus of a type that holds information necessary for continuation of processing in a nonvolatile manner and then shuts off the power and resumes processing by using the information held in the nonvolatile manner when the power is turned on.
A main storage device including a volatile storage unit that holds information in a volatile manner and a nonvolatile storage unit that holds information in a nonvolatile manner;
Information saving means for saving information on the volatile storage unit necessary for continuation of processing being executed at the time of power-off to the nonvolatile storage unit;
A process resuming means for resuming a process interrupted by power-off using information held in the nonvolatile storage unit in the main storage device at power-on;
An information processing apparatus comprising:
前記情報退避手段は、所定の優先度に従って前記揮発性記憶部上の情報を前記不揮発性記憶部に退避するとともに、該情報退避動作において前記不揮発性記憶部から溢れた情報を前記2次記憶装置に退避する、
ことを特徴とする請求項1に記載の情報処理装置。A non-volatile secondary storage device;
The information saving unit saves information on the volatile storage unit to the nonvolatile storage unit in accordance with a predetermined priority, and information overflowing from the nonvolatile storage unit in the information saving operation is stored in the secondary storage device. To evacuate,
The information processing apparatus according to claim 1.
前記情報退避手段は、優先度の高い情報から順に前記不揮発性記憶部に格納するとともに、前記不揮発性記憶部に格納できなかった前記主記憶装置上の情報を前記2次記憶装置に退避する、The information saving means stores the information on the main storage device that could not be stored in the non-volatile storage unit to the secondary storage device while storing the information in the non-volatile storage unit in order from the information with the highest priority.
ことを特徴とする請求項2に記載の情報処理装置。The information processing apparatus according to claim 2.
ことを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3.
ことを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3.
ことを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3.
ことを特徴とする請求項6に記載の情報処理装置。The information processing apparatus according to claim 6.
ことを特徴とする請求項6に記載の情報処理装置。The information processing apparatus according to claim 6.
ことを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3.
ことを特徴とする請求項9に記載の情報処理装置。The information processing apparatus according to claim 9.
ことを特徴とする請求項10に記載の情報処理装置。The information processing apparatus according to claim 10.
ことを特徴とする請求項2に記載の情報処理装置。The information processing apparatus according to claim 2.
前記処理再開手段により再開された処理を実行中にページ・ミスした情報が適宜前記2次記憶装置から元の場所にページ・インされる、Information that has been page-missed during execution of the process resumed by the process resumer is paged in from the secondary storage device to the original location as appropriate.
ことを特徴とする請求項12に記載の情報処理装置。The information processing apparatus according to claim 12.
ことを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3.
ユーザが優先度を与えなかった情報単位に対して自動的に優先度を与える第2の手段と、A second means for automatically assigning priority to information units for which the user has not given priority;
前記第1及び第2の手段を用いてすべての情報単位に対して一意な優先度を与える第3の手段と、Third means for giving a unique priority to all information units using the first and second means;
をさらに備えることを特徴とする請求項14に記載の情報処理装置。The information processing apparatus according to claim 14, further comprising:
各々の情報単位の属する主記憶装置上の領域に対して一意な優先度を与える第2の手段と、A second means for giving a unique priority to the area on the main storage device to which each information unit belongs;
前記の各手段を用いて主記憶装置上の全領域に対して一意な優先度を与える第3の手段と、A third means for giving a unique priority to all areas on the main memory using each of the above means;
をさらに備えることを特徴とする請求項3に記載の情報処理装置。The information processing apparatus according to claim 3, further comprising:
ことを特徴とする請求項16に記載の情報処理装置。The information processing apparatus according to claim 16.
前記情報処理装置は、情報を揮発的に保持する揮発性記憶部と情報を不揮発的に保持する不揮発性記憶部からなる主記憶装置を備えており、The information processing apparatus includes a main storage device including a volatile storage unit that holds information in a volatile manner and a nonvolatile storage unit that holds information in a nonvolatile manner.
電源遮断時において実行中の処理継続に必要な前記揮発性記憶部上の情報を前記不揮発性記憶部に退避する情報退避ステップと、An information saving step for saving information on the volatile storage unit necessary for continuation of the processing being executed at the time of power-off to the nonvolatile storage unit;
電源投入時において前記主記憶装置内の前記不揮発性記憶部に保持されている情報を利用して電源遮断により中断された処理を再開する処理再開ステップと、A process resuming step of resuming a process interrupted by power-off using information stored in the nonvolatile storage unit in the main storage device when the power is turned on;
を有することを特徴とする情報処理装置の制御方法。A method for controlling an information processing apparatus, comprising:
前記情報退避ステップでは、所定の優先度に従って前記揮発性記憶部上の情報を前記不揮発性記憶部に退避するとともに、該情報退避動作において前記不揮発性記憶部から溢れた情報を前記2次記憶装置に退避する、In the information saving step, information on the volatile storage unit is saved to the nonvolatile storage unit according to a predetermined priority, and information overflowed from the nonvolatile storage unit in the information saving operation is stored in the secondary storage device. To evacuate,
ことを特徴とする請求項18に記載の情報処理装置の制御方法。The method for controlling an information processing apparatus according to claim 18.
前記情報退避ステップでは、優先度の高い情報から順に前記不揮発性記憶部に格納するとともに、前記不揮発性記憶部に格納できなかった前記主記憶装置上の情報を前記2次記憶装置に退避する、In the information saving step, the information on the main storage device that could not be stored in the nonvolatile storage unit is saved in the secondary storage device while being stored in the nonvolatile storage unit in order from the information with the highest priority.
ことを特徴とする請求項19に記載の情報処理装置の制御方法。The information processing apparatus control method according to claim 19.
ことを特徴とする請求項20に記載の情報処理装置の制御方法。21. A method for controlling an information processing apparatus according to claim 20, wherein:
ことを特徴とする請求項20に記載の情報処理装置の制御方法。21. A method for controlling an information processing apparatus according to claim 20, wherein:
ことを特徴とする請求項20に記載の情報処理装置の制御方法。21. A method for controlling an information processing apparatus according to claim 20, wherein:
ことを特徴とする請求項23に記載の情報処理装置の制御方法。24. The method of controlling an information processing apparatus according to claim 23.
ことを特徴とする請求項23に記載の情報処理装置の制御方法。24. The method of controlling an information processing apparatus according to claim 23.
ことを特徴とする請求項20に記載の情報処理装置の制御方法。21. A method for controlling an information processing apparatus according to claim 20, wherein:
ことを特徴とする請求項26に記載の情報処理装置の制御方法。27. A method for controlling an information processing apparatus according to claim 26.
ことを特徴とする請求項27に記載の情報処理装置の制御方法。28. A method for controlling an information processing apparatus according to claim 27.
ことを特徴とする請求項19に記載の情報処理装置の制御方法。The information processing apparatus control method according to claim 19.
前記処理再開ステップにより再開された処理を実行中にページ・ミスした情報が適宜前記2次記憶装置から元の場所にページ・インされる、Information that is page-missed during execution of the process resumed in the process resume step is paged in from the secondary storage device to the original location as appropriate.
ことを特徴とする請求項29に記載の情報処理装置の制御方法。30. A method of controlling an information processing apparatus according to claim 29.
ことを特徴とする請求項20に記載の情報処理装置の制御方法。21. A method for controlling an information processing apparatus according to claim 20, wherein:
ユーザが優先度を与えなかった情報単位に対して自動的に優先度を与える第2のステップと、
前記第1及び第2のステップによりすべての情報単位に対して一意な優先度を与える第3のステップと、
をさらに有することを特徴とする請求項31に記載の情報処理装置の制御方法。 A first step in which a user gives priority to some information units;
A second step of automatically assigning priority to information units for which the user has not given priority;
A third step of providing a unique priority for all information units by prior Symbol first and second steps,
The information processing apparatus control method according to claim 31, further comprising:
各々の情報単位の属する主記憶装置上の領域に対して一意な優先度を与える第2のステップと、A second step of giving a unique priority to an area on the main storage device to which each information unit belongs;
前記の各ステップを用いて主記憶装置上の全領域に対して一意な優先度を与える第3のステップと、A third step of giving a unique priority to all areas on the main memory using each of the above steps;
をさらに有することを特徴とする請求項20に記載の情報処理装置の制御方法。The information processing apparatus control method according to claim 20, further comprising:
ことを特徴とする請求項33に記載の情報処理装置の制御方法。34. A method for controlling an information processing apparatus according to claim 33.
主記憶装置は、情報を揮発的に保持する揮発性記憶部と情報を不揮発的に保持する不揮発性記憶部で構成され、The main storage device includes a volatile storage unit that holds information in a volatile manner and a nonvolatile storage unit that holds information in a nonvolatile manner.
電源遮断時において実行中の処理継続に必要な前記揮発性記憶部上の情報を前記不揮発性記憶部に退避する情報退避ステップと、An information saving step for saving information on the volatile storage unit necessary for continuation of the processing being executed at the time of power-off to the nonvolatile storage unit;
電源投入時において前記主記憶装置内の前記不揮発性記憶部に保持されている情報を利用して電源遮断により中断された処理を再開する処理再開ステップと、A process resuming step of resuming a process interrupted by power-off using information stored in the nonvolatile storage unit in the main storage device when the power is turned on;
を有することを特徴とするコンピュータ・プログラム。A computer program characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003162288A JP4281421B2 (en) | 2003-06-06 | 2003-06-06 | Information processing system, control method therefor, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003162288A JP4281421B2 (en) | 2003-06-06 | 2003-06-06 | Information processing system, control method therefor, and computer program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004362426A JP2004362426A (en) | 2004-12-24 |
JP4281421B2 true JP4281421B2 (en) | 2009-06-17 |
Family
ID=34054477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003162288A Expired - Fee Related JP4281421B2 (en) | 2003-06-06 | 2003-06-06 | Information processing system, control method therefor, and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4281421B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08327926A (en) * | 1995-03-22 | 1996-12-13 | Samsung Electro Mech Co Ltd | Scanning optical device |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007334383A (en) * | 2006-06-12 | 2007-12-27 | Sony Corp | Information processor, method of starting it, and program |
JP4595937B2 (en) | 2006-12-28 | 2010-12-08 | ソニー株式会社 | Information processing apparatus, information processing method, and program |
JP4517303B2 (en) | 2006-12-28 | 2010-08-04 | ソニー株式会社 | Information processing apparatus, activation method, and program |
JP4748057B2 (en) | 2006-12-28 | 2011-08-17 | ソニー株式会社 | Information processing apparatus, activation method, and program |
JP5034861B2 (en) * | 2007-10-22 | 2012-09-26 | セイコーエプソン株式会社 | Data management apparatus, information processing apparatus, and program |
JP5012599B2 (en) * | 2008-03-18 | 2012-08-29 | 富士通株式会社 | Memory content restoration device, memory content restoration method, and memory content restoration program |
US8719610B2 (en) * | 2008-09-23 | 2014-05-06 | Qualcomm Incorporated | Low power electronic system architecture using non-volatile magnetic memory |
JP5304154B2 (en) * | 2008-10-01 | 2013-10-02 | 富士通セミコンダクター株式会社 | Drive device, mount program, and mount method |
JP2010165251A (en) * | 2009-01-16 | 2010-07-29 | Toshiba Corp | Information processing device, processor, and information processing method |
KR20100091544A (en) * | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | Memory system and wear leveling method thereof |
JP5321866B2 (en) | 2009-09-16 | 2013-10-23 | 株式会社東芝 | Computer system |
JP5486297B2 (en) * | 2009-12-25 | 2014-05-07 | キヤノン株式会社 | Image forming apparatus and control method thereof |
JP5146495B2 (en) | 2010-07-08 | 2013-02-20 | コニカミノルタビジネステクノロジーズ株式会社 | Image processing apparatus and hibernation activation method |
US8543849B2 (en) | 2010-12-06 | 2013-09-24 | Microsoft Corporation | Fast computer startup |
US8788798B2 (en) | 2010-12-06 | 2014-07-22 | Microsoft Corporation | Fast computer startup |
US9032194B2 (en) * | 2010-12-06 | 2015-05-12 | Microsoft Technology Licensing, Llc | Fast computer startup |
JP5340335B2 (en) * | 2011-03-24 | 2013-11-13 | 株式会社東芝 | Information processing device |
JP5754287B2 (en) * | 2011-08-04 | 2015-07-29 | 大日本印刷株式会社 | IC chip, processing method in IC chip, UIM, portable terminal, and processing program for IC chip |
US8997171B2 (en) | 2011-08-19 | 2015-03-31 | Microsoft Technology Licensing, Llc | Policy based application suspension and termination |
JP5564020B2 (en) * | 2011-08-31 | 2014-07-30 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus |
US8578394B2 (en) * | 2011-09-09 | 2013-11-05 | Microsoft Corporation | Exempting applications from suspension |
JP2013073498A (en) * | 2011-09-28 | 2013-04-22 | Toshiba Corp | Information processor and control method |
WO2013076913A1 (en) * | 2011-11-24 | 2013-05-30 | パナソニック株式会社 | Virtual computer system, virtual computer system control method and virtual computer system control program |
JP5960519B2 (en) * | 2012-06-22 | 2016-08-02 | 株式会社半導体エネルギー研究所 | Computer memory management method |
JP5990430B2 (en) | 2012-08-29 | 2016-09-14 | 株式会社バッファローメモリ | SSD (solid state drive) device |
JP6219560B2 (en) * | 2012-09-21 | 2017-10-25 | 株式会社フィックスターズ | Information processing apparatus, information processing method, and program |
KR101987144B1 (en) | 2012-10-10 | 2019-06-11 | 삼성전자주식회사 | Main memory system storing Operating System program and computer system including the same |
JP6046978B2 (en) | 2012-10-26 | 2016-12-21 | キヤノン株式会社 | Information processing apparatus and method |
JP6087662B2 (en) | 2013-02-28 | 2017-03-01 | 株式会社東芝 | Control device, control program, and information processing system |
EP3029572A4 (en) | 2013-07-31 | 2016-07-20 | Fujitsu Ltd | INFORMATION PROCESSING DEVICE, MEMORY MANAGEMENT METHOD, AND MEMORY MANAGEMENT PROGRAM |
JP5901698B2 (en) * | 2014-06-17 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Memory management method |
JP6399821B2 (en) * | 2014-06-23 | 2018-10-03 | キヤノン株式会社 | Information processing apparatus, information processing method, and computer program |
JP6351397B2 (en) * | 2014-06-23 | 2018-07-04 | キヤノン株式会社 | Information processing apparatus, information processing method, and computer program |
US10445233B2 (en) | 2014-06-23 | 2019-10-15 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, and storage medium |
JP2017157156A (en) * | 2016-03-04 | 2017-09-07 | 富士通株式会社 | Smart device, data save processing method and data save processing program |
-
2003
- 2003-06-06 JP JP2003162288A patent/JP4281421B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08327926A (en) * | 1995-03-22 | 1996-12-13 | Samsung Electro Mech Co Ltd | Scanning optical device |
Also Published As
Publication number | Publication date |
---|---|
JP2004362426A (en) | 2004-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4281421B2 (en) | Information processing system, control method therefor, and computer program | |
KR101713051B1 (en) | Hybrid Memory System and Management Method there-of | |
US8838918B2 (en) | Information processing apparatus and data backup method | |
JP4902501B2 (en) | Power control method, computer system, and program | |
CN102841674B (en) | Embedded system based on novel memory and hibernation and awakening method for process of embedded system | |
JP2009525555A (en) | Reduce power consumption by disabling refresh of unused portions of DRAM during periods of device inactivity | |
US20070294550A1 (en) | Memory Management With Defragmentation In A Computing Device | |
US20110099339A1 (en) | Information processing apparatus, method for controlling information processing apparatus and storage medium | |
US20140297927A1 (en) | Information processing apparatus, information processing method, and recording medium | |
JP2011186555A (en) | Memory management device and method | |
JPH07219848A (en) | Cache control system | |
JP2011186553A (en) | Memory management device | |
US8930732B2 (en) | Fast speed computer system power-on and power-off method | |
KR101392062B1 (en) | Fast speed computer system power-on & power-off method | |
US20020103984A1 (en) | Information processing system, information processing method and readable-by-computer recording medium | |
JPH0944418A (en) | Information-processing system and its control method | |
JP5166211B2 (en) | Device using non-volatile memory as main memory | |
US20130332662A1 (en) | Information processing apparatus and method and program | |
US20140289486A1 (en) | Information processing apparatus, information processing method, and recording medium | |
JP2008158773A (en) | Information processing device and memory management method | |
JP2008262451A (en) | Memory power supply management device and memory power supply management method | |
WO2005069148A2 (en) | Memory management method and related system | |
JP2011186558A (en) | Memory management device and method | |
JP3541349B2 (en) | Cache memory backup system | |
JP2002099390A (en) | Disk controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090129 |
|
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: 20090224 |
|
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: 20090309 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120327 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130327 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |