JP2020177390A - 半導体装置及び制御方法 - Google Patents

半導体装置及び制御方法 Download PDF

Info

Publication number
JP2020177390A
JP2020177390A JP2019078415A JP2019078415A JP2020177390A JP 2020177390 A JP2020177390 A JP 2020177390A JP 2019078415 A JP2019078415 A JP 2019078415A JP 2019078415 A JP2019078415 A JP 2019078415A JP 2020177390 A JP2020177390 A JP 2020177390A
Authority
JP
Japan
Prior art keywords
execution state
control unit
state data
suspend
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019078415A
Other languages
English (en)
Inventor
耕平 野崎
Kohei Nozaki
耕平 野崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2019078415A priority Critical patent/JP2020177390A/ja
Publication of JP2020177390A publication Critical patent/JP2020177390A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】サスペンド状態であった機器を高速に復帰させることが可能な半導体装置を提供する。【解決手段】半導体装置1は、記憶部10と、制御部20とを有する。記憶部10は、複数の実行状態データ12を格納する。機器がサスペンド状態になる条件を満たす場合、制御部20は、機器がサスペンド状態となるときの実行状態に基づいて、互いに異なる複数の実行状態データ12を生成する。制御部20は、生成された複数の実行状態データ12を記憶部10に格納する。その後、制御部20は、機器の状態をサスペンド状態に遷移させる。復帰要求に応じて機器がサスペンド状態から復帰するとき、制御部20は、復帰要求に応じた実行状態データ12を記憶部10から選択する。そして、制御部20は、選択された実行状態データ12に基づいて機器を復帰させる。【選択図】図1

Description

本発明は半導体装置及び制御方法に関し、例えば機器を制御する半導体装置及び制御方法に関する。
機器は、サスペンド状態となった後、何らかの操作等に応じた復帰要求によって復帰し得る。この復帰に要する時間は、できるだけ短い方が好ましい。このような技術に関連し、特許文献1は、オペレーティングシステムの起動後に復帰すべきプログラム位置を設定して、起動時にはそのプログラム位置に速やかに復帰させる情報処理装置を開示する。
特許文献1にかかる情報処理装置は、コンピュータと、そのコンピュータがプログラムを実行する際の実行状態を保持する実行状態保持手段とを備える。特許文献1にかかる情報処理装置は、当該情報処理装置の起動の後に復帰すべきプログラム位置を起動の前に設定する。特許文献1にかかる情報処理装置は、設定された復帰すべきプログラム位置の実行の際に実行状態保持手段に保持されている実行状態を起動の前に実行状態退避手段に退避する。特許文献1にかかる情報処理装置は、起動が行われると実行状態退避手段に退避されている実行状態を前記実行状態保持手段に転送する。
特開2007−249418号公報
しかし、特許文献1にかかる技術では、実行状態退避手段に退避されていた実行状態を、起動時に、実行状態保持手段(メモリ)に転送する必要がある。したがって、特許文献1にかかる技術では、この起動時の転送に要する時間による遅延が発生してしまう。よって、特許文献1にかかる技術では、サスペンド状態であった機器を高速に復帰させることができないおそれがあった。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、機器の実行状態を示す実行状態データを格納するように構成された記憶部と、前記機器の動作を制御する制御部とを有し、前記機器がサスペンド状態になる条件を満たすとき、前記制御部は、前記機器がサスペンド状態となるときの実行状態に基づいて互いに異なる複数の前記実行状態データを生成し、生成された前記複数の実行状態データを前記記憶部に格納し、その後、前記機器の状態をサスペンド状態に遷移させ、復帰要求に応じて前記機器がサスペンド状態から復帰するとき、前記制御部は、前記復帰要求に応じた前記実行状態データを前記記憶部から選択し、選択された前記実行状態データに基づいて前記機器を復帰させる半導体装置である。
また、一実施の形態によれば、制御方法は、機器がサスペンド状態になる条件を満たすとき、前記機器がサスペンド状態となるときの実行状態に基づいて互いに異なる複数の前記実行状態データを生成し、生成された前記複数の実行状態データを記憶部に格納し、その後、前記機器の状態をサスペンド状態に遷移させ、
復帰要求に応じて前記機器がサスペンド状態から復帰するとき、前記復帰要求に応じた前記実行状態データを前記記憶部から選択し、選択された前記実行状態データに基づいて前記機器を復帰させる
制御方法である。
前記一実施の形態によれば、サスペンド状態であった機器を高速に復帰させることが可能な半導体装置及び制御方法を提供できる。
本実施の形態にかかる半導体装置の概要を示す図である。 本実施の形態にかかる半導体装置によって実行される制御方法の概要を示すフローチャートである。 実施の形態1にかかる半導体装置の構成を示す図である。 実施の形態1にかかる半導体装置によって行われるサスペンド動作を示すフローチャートである。 実施の形態1にかかる半導体装置によって行われるサスペンド動作を示すフローチャートである。 実施の形態1にかかる半導体装置によって実行される、イメージのコピー処理を説明するための図である。 実施の形態1にかかる半導体装置によって実行される、イメージのコピー処理を説明するための図である。 実施の形態1にかかる半導体装置によって実行される、イメージのコピー処理を説明するための図である。 実施の形態1にかかる半導体装置によって実行される、イメージのコピー処理を説明するための図である。 実施の形態1にかかる半導体装置によって行われる復帰動作を示すフローチャートである。 実施の形態2にかかる半導体装置の構成を示す図である。 実施の形態2にかかる半導体装置によって行われるサスペンド動作を示すフローチャートである。 実施の形態2にかかる半導体装置によって行われるサスペンド動作を示すフローチャートである。 実施の形態2にかかるサスペンド動作における記憶部の領域の変化を説明するための図である。 実施の形態2にかかる半導体装置によって行われる復帰動作を示すフローチャートである。 実施の形態3にかかる半導体装置の構成を示す図である。 実施の形態3にかかる半導体装置によって行われるサスペンド動作を示すフローチャートである。 実施の形態3にかかる半導体装置によって行われるサスペンド動作を示すフローチャートである。 実施の形態3にかかる復帰要求スコアの生成方法を説明するための図である。
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。しかしながら、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。つまり、要素の数は、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができる。また、上記の各要素は、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
(実施の形態の概要)
実施の形態の説明に先立って、本実施の形態の概要について説明する。
図1は、本実施の形態にかかる半導体装置1の概要を示す図である。半導体装置1は、例えばSoC(System on a Chip)によって実現され得る。半導体装置1は、記憶部10と、制御部20とを有する。記憶部10は、例えばRAM等のメモリである。制御部20は、例えばCPU等の演算処理装置を含み得る。また、制御部20は、演算処理装置と、他の処理デバイスとを含んでもよい。半導体装置1は、機器の動作を制御する。半導体装置1は、機器に内蔵されてもよい。
記憶部10は、少なくとも、実行状態データ12−1〜12−M(Mは2以上の整数)を格納する。実行状態データは、例えばイメージ(システムイメージ等)である。実行状態データは、半導体装置1によって制御される機器の実行状態を示す。実行状態は、機器のプログラムの進行状態及び実行内容を示すものであるが、これに限られない。また、「プログラムの進行状態」は、例えばプログラムがどこまで進んだか、又は、プログラムのどこを実行しているか等を示す。また、「実行内容」は、例えば機器がどのようなアプリケーションを実行しているか等を示す。また、以降、実行状態データ12−1〜12−M等の、複数ある構成要素を区別しないで示す場合に、単に実行状態データ12などと称することがある。
図2は、本実施の形態にかかる半導体装置1によって実行される制御方法の概要を示すフローチャートである。制御部20は、機器がサスペンド状態になる条件を満たすか否かを判定する(ステップS102)。この条件が満たされる場合(S102のYES)、制御部20は、機器がサスペンド状態となるときの実行状態に基づいて、互いに異なる複数の実行状態データ12を生成する(ステップS104)。また、制御部20は、生成された複数の実行状態データ12を記憶部10に格納する。その後、制御部20は、機器の状態をサスペンド状態に遷移させる(ステップS106)。
例えば、機器がプリンタであるとする。この場合、実行状態データは、現在の実行状態を含み得る。また、実行状態データは、現在の実行状態からUSB(Universal Serial Bus)メモリの処理(例えば初期化処理)を省いた状態を含み得る。さらに、実行状態データは、現在の実行状態を印刷待ち状態に移行した状態、及び、現在の実行状態から画面を表示する状態に移行した状態を含み得る。
制御部20は、復帰要求が発生したか否かを判定する(ステップS110)。例えば、機器がプリンタである場合、復帰要求は、プリンタのボタンが押下された、プリンタのUSBポートにUSBメモリが挿入された、又はプリンタのカバーが開かれた等の操作によって発生し得る。復帰要求が発生した場合(S110のYES)、制御部20は、復帰要求に応じた実行状態データ12を記憶部10から選択する(ステップS112)。そして、制御部20は、選択された実行状態データ12に基づいて機器を復帰させる(ステップS114)。
例えば、上述したように機器がプリンタであるケースにおいて、プリンタのカバーが開かれた操作に対応する復帰要求が発生したとする。この場合、復帰時にUSBメモリの処理が不要である可能性が極めて高い。したがって、制御部20は、サスペンド時の実行状態からUSBメモリの処理が省かれた実行状態データを用いて、機器を復帰させる。これにより、復帰時にUSBメモリの処理が行われないので、機器は高速に復帰できる。一方、プリンタのUSBポートにUSBメモリが挿入された操作に対応する復帰要求が発生した場合は、制御部20は、USBメモリの処理を含む実行状態データを用いて、機器を復帰させる。
このように、本実施の形態にかかる半導体装置1は、機器がサスペンド状態に移行する際に、復帰時の状況に応じた複数の実行状態データ12(イメージ)を作成しておく。そして、機器がサスペンド状態から復帰するときには、半導体装置1は、復帰要求に対応する実行状態データ12を選択して復帰動作を行う。これにより、関連技術において必要であった、実行状態の転送(書き戻し)処理が不要となる。したがって、本実施の形態にかかる半導体装置1は、機器の高速な復帰動作を実現できる。
また、制御部20は、機器がサスペンド状態となるときの実行状態を示す実行状態データ12−1(第1の実行状態データ)を生成する。そして、制御部20は、第1の実行状態データにおける実行状態から変更された実行状態を示す1つ以上の第2の実行状態データ(実行状態データ12−2〜12〜M)を生成してもよい。このような構成により、本実施の形態にかかる半導体装置1は、容易に複数の実行状態データを生成できる。
(実施の形態1)
次に、実施の形態1について説明する。
図3は、実施の形態1にかかる半導体装置100の構成を示す図である。実施の形態1にかかる半導体装置100は、記憶部120と、アドレス制御機構301と、CPU302と、サスペンド制御部303と、復帰制御部304とを有する。これらの構成要素は、システムバス307を介して接続されている。記憶部120は、図1に示した記憶部10に対応する。また、図1に示した制御部20は、CPU302、サスペンド制御部303及び復帰制御部304で構成され得る。制御部20は、サスペンド制御部303及び復帰制御部304の少なくとも一方を有しなくてもよい。この場合、CPU302が、サスペンド制御部303及び復帰制御部304の機能を実現し得る。また、復帰制御部304は、領域テーブル310を有する。
記憶部120は、機器の復帰の際に復帰先となり得る複数のイメージ130−1〜130−Mと、イメージテーブル305とを保持する。上述したように、「イメージ130」は、図1に示した実行状態データ12に対応する。記憶部120は、機器の高速な復帰という観点から、RAMであることが好ましい。しかしながら、記憶部120は、読み書きが可能なものであれば、RAMに限られず、任意のメモリであってもよい。また、記憶部120は、複数のメモリで構成されてもよい。
CPU302は、機器の制御を行うプロセッサである。CPU302は、イメージ130を生成する。CPU302は、機器がサスペンド状態に遷移する際に、サスペンド制御部303を起動させる。また、CPU302は、機器がサスペンド状態に遷移する際に、複数のイメージ130を生成する。また、CPU302は、機器をサスペンド状態に遷移させるための処理を行う。また、CPU302は、機器がサスペンド状態から復帰する際に、復帰動作を行う。
イメージテーブル305は、復帰要求番号309とイメージ130とを対応付けるテーブルである。復帰要求番号309は、復帰要求を示す番号である。復帰要求番号309は、復帰要求の種類ごとに異なり得る。例えば、機器がプリンタである場合、復帰要求番号309は、ボタンが押下された、USBメモリが挿入された、又はカバーが開かれたといった操作ごとに異なり得る。領域テーブル310は、イメージ130とそのイメージ130が格納された領域とを対応付けるテーブルである。なお、領域テーブル310は、記憶部120に設けられていてもよい。
アドレス制御機構301は、復帰制御部304から入力される領域番号306に応じて、記憶部120のアドレスマップを切り替える機構である。これにより、CPU302は、記憶部120における領域のうち、アドレス制御機構301によって切り替えられたアドレスの領域にアクセスできる。領域番号306については後述する。
サスペンド制御部303は、CPU302からの要求に応じて、記憶部120のイメージのコピーを行う。つまり、サスペンド制御部303は、CPU302によって生成された複数のイメージ130を記憶部120に格納する。なお、サスペンド制御部303は、復帰制御部304から領域番号306を受け付けることで、CPU302が利用している領域を認識することができる。また、サスペンド制御部303は、システムバス307を介してCPU302から初期化要求及びコピー要求を受け取ることができる。また、サスペンド制御部303は、領域テーブル310の設定、及び、記憶部120にあるイメージ130のコピーを行うことができる。また、サスペンド制御部303は、CPU302への割り込み通知311を出力する。サスペンド制御部303の動作については後述する。
復帰制御部304は、復帰要求番号309を受信する。また、復帰制御部304は、アドレス制御機構301及びサスペンド制御部303に対して領域番号306を出力する。また、復帰制御部304は、CPU302に対して復帰指示308を出力する。復帰制御部304は、復帰要求番号309を受け取ると、イメージテーブル305及び領域テーブル310を用いて、復帰要求番号309に対応する領域番号306を出力する。復帰制御部304の動作については後述する。
図4A及び図4Bは、実施の形態1にかかる半導体装置100によって行われるサスペンド動作を示すフローチャートである。なお、図4A及び図4Bをまとめて示す場合に、単に「図4」と称する(後述する図11及び図15についても同様)。図4では、作成するイメージ130の数を「M」としている。また、サスペンド状態に遷移する際にCPU302が処理をするために使用しているイメージ130が格納されている領域の番号を「C」としている。
機器(システム)の実行タスクがなくなる等により機器からサスペンド要求が発行されると(ステップS400)、CPU302は、サスペンド制御部303に初期化要求を発行(出力)する(ステップS401)。そして、CPU302は、割り込み待ち状態へ移行する(ステップS425)。
サスペンド制御部303は、初期化要求(S401)を受け取ると、領域テーブル310の書き換え処理(ステップS402)及び内部のカウンタRのリセット処理(ステップS407)を行う。これらの処理が終了すると、サスペンド制御部303は、CPU302に対して割り込み通知を行う(ステップS408)。
S402の処理の詳細を説明する。まず、サスペンド制御部303は、イメージ番号カウンタI及び領域番号カウンタRを1に初期化する(ステップS410)。その後、S411〜S415のループ処理を行う。サスペンド制御部303は、イメージ番号カウンタIと領域テーブル数とを比較する(ステップS411)。そして、Iが(領域テーブル数−1)回であれば、処理はS416に遷移し、そうでなければ、処理はS412に遷移する。処理がS412に遷移すると、サスペンド制御部303は、領域テーブル310について、イメージ番号カウンタIに対応する領域番号をRに設定し(S412)、領域番号カウンタRをインクリメントする(ステップS413)。その後、サスペンド制御部303は、領域番号カウンタRが現在のイメージ番号Cと同じか否かを確認する(ステップS414)。そして、R=Cの場合(S414のYES)、サスペンド制御部303は、さらにもう一度、領域番号カウンタRをインクリメントする(S413)。その後、サスペンド制御部303は、イメージ番号カウンタIをインクリメントし(ステップS415)、処理はS411に戻る。そして、Iが(領域テーブル数−1)となった場合に、サスペンド制御部303は、イメージ番号カウンタIに対応する領域番号をC(つまり現在の領域)に設定する(ステップS416)。
CPU302は、割り込み通知(S408)を受け取ると、複数のイメージを生成する(ステップS403)。S403の処理の詳細について、まず、CPU302は、作成済みイメージカウンタXを1に初期化する(ステップS417)。その後、作成済みイメージカウンタXが指定数(M)に到達するまで(ステップS418のYES)、CPU302は、イメージ生成処理を繰り返す。
CPU302は、サスペンド制御部303に対してコピー要求を送信し(ステップS405)、割り込み待ち状態に移行する(ステップS419)。サスペンド制御部303は、コピー要求(S405)を受けると、現在のイメージ番号Cの領域に格納されたイメージを別領域にコピーする(ステップS404)。この処理が終了すると、サスペンド制御部303は、CPU302に対してコピー終了を知らせる割り込み通知を行う(ステップS409)。
S404の詳細について、サスペンド制御部303は、コピー要求を受けるごとに、領域カウンタRをインクリメントする(ステップS420)。そして、R=Cでなければ(ステップS421のNO)、サスペンド制御部303は、順番にイメージ領域Cをイメージ領域Rにコピーしていく(ステップS422)。なお、このとき、現在のイメージ番号Cをスキップするために、R=Cのときは(S421のYES)、サスペンド制御部303は、さらにインクリメントを行う(S420)。
その後、CPU302は、ドライバの変更等の、イメージの変更(つまり別のイメージの生成)を行う(ステップS406)。そして、CPU302は、作成済みイメージカウンタXをインクリメントし(ステップS423)、再度コピー要求を行う(S405)。また、作成済みイメージカウンタXがMとなった場合に(S418のYES)、CPU302は、イメージの生成を終了し、サスペンド状態に移行する(ステップS424)。つまり、イメージの生成及びコピーは(M−1)回行われ、システムはM個のイメージを保持した状態となる。この処理により、例えば領域数M=4、現在の領域番号C=3の場合、領域テーブル310において、領域#1〜#4に対応するイメージ番号は、それぞれ、#1、#2、#4、#3のように並ぶ。以下、ステップごとに説明を示す。
図5〜図8は、実施の形態1にかかる半導体装置100によって実行される、イメージのコピー処理を説明するための図である。記憶部120(RAM)は、イメージ130を格納する領域として領域#1〜領域#4を有しているとする。また、CPU302によって、現在、領域#3が使用されているとする。
図5の矢印Aで示すように、CPU302は、領域#3を用いて現在のイメージに対応するイメージ#1を生成する。このときに、サスペンド要求が発行されたとする。この場合、図5の矢印Bで示すように、サスペンド制御部303は、領域#3に格納されているイメージ#1を、領域#1にコピーする(S422)。
図6の矢印Aの状態から、CPU302は、現在の領域C(領域#3)を用いて次の状態へ以降するプログラムを実行し、図6の矢印Bで示すように、イメージ#1をイメージ#2に変更する処理を行う(S406)。そして、図6の矢印Cで示すように、サスペンド制御部303は、領域#3に格納されているイメージ#2を、領域#2にコピーする(S422)。
図7の矢印Aの状態から、CPU302は、現在の領域C(領域#3)を用いて次の状態へ以降するプログラムを実行し、図7の矢印Bで示すように、イメージ#2をイメージ#3に変更する処理を行う(S406)。このとき、R=Cとなる(S421のYES)。この場合、動作中の領域を書き換えることはできない。したがって、サスペンド制御部303は、コピー先の領域番号カウンタRを次に進め(S413、S414)、コピー動作を続ける。これにより、図7の矢印Cで示すように、サスペンド制御部303は、イメージ#3を領域#4にコピーする。
図8の矢印Aの状態から、CPU302は、現在の領域C(領域#3)で次の状態へ以降するプログラムを実行し、図8の矢印Bで示すように、イメージ#3をイメージ#4に変更する処理を行う(S406)。このとき、領域カウンタRが最後まで進み終わったため、コピー先の領域がなくなる(S418のYES)。この場合、サスペンド制御部303は、状態(イメージ)の遷移のみ行い、領域C(領域#3)を最後の領域とする。これにより、領域#1〜#4に対応するイメージ番号は、#1、#2、#4、#3のように並ぶこととなる。
図9は、実施の形態1にかかる半導体装置100によって行われる復帰動作を示すフローチャートである。復帰制御部304は、機器のサスペンド中に復帰要求番号309を受け取ると、イメージテーブル305を用いて、復帰要求番号309に対応するイメージ番号を求める(ステップS500)。その後、復帰制御部304は、領域テーブル310を用いて、イメージ番号に対応する領域番号を求める(ステップS501)。そして、復帰制御部304は、領域番号をアドレス制御機構301に通知する(ステップS502)。その後、復帰制御部304は、CPU302に対して、復帰指示308を発行(出力)する(ステップS503)。
CPU302は、復帰動作を行う(ステップS504)。すなわち、CPU302は、復帰指示308に応じて起動する(ステップS505)。その後、CPU302は、アドレス制御機構301により、復帰要求番号309に対応するイメージ130のエントリポイントに復帰する(ステップS506)。そして、半導体装置100にOS(Operating System)が具備されている場合は、定められた初期化シーケンスの実行などが行われる。そして、最終的に、CPU302は、イメージ130を用いて、アプリケーションの復帰点に復帰する(ステップS507)。なお、CPU302から記憶部120へのアクセスはアドレス制御機構301を介して行われるため、CPU302は、復帰制御部304で選択されたイメージ領域への復帰動作を行うことができる。
実施の形態1にかかる半導体装置100において、機器がサスペンド状態になる条件を満たすとき、CPU302(演算処理装置)は、複数のイメージ(実行状態データ)を生成する。サスペンド制御部303は、生成された複数のイメージを記憶部120に格納する。その後、CPU302は、機器の状態をサスペンド状態に遷移させる。また、機器がサスペンド状態から復帰するとき、復帰制御部304は、復帰要求(復帰要求番号309)を受け付けてイメージを記憶部120から選択する。また、CPU302は、選択されたイメージに基づいて機器を復帰させる。このような構成により、実施の形態1にかかる半導体装置100は、上述した「実施の形態の概要」にかかる効果と実質的に同様の効果を奏し得る。つまり、機器のサスペンド時に複数のイメージを保持することによって、復帰時の書き戻し動作が不要となるので、機器の復帰処理を高速に行うことができる。
また、実施の形態1にかかる半導体装置100は、上記のように、イメージ(実行状態データ)の生成をCPU302が行い、イメージの格納をサスペンド制御部303が行う。このように、異なるデバイスがイメージの生成及び格納をそれぞれ行うことで、サスペンド処理を高速に行うことができる。仮に、CPU302がイメージの生成及び格納を行うとする。この場合、CPU302は、イメージの格納中は、他のイメージを生成できないので、イメージの生成処理が停止する。したがって、CPU302がイメージの生成及び格納を行うと、サスペンド処理が遅くなる。これに対し、実施の形態1においては、異なるデバイスがイメージの生成及び格納をそれぞれ行うので、イメージの生成処理を停止することが抑制される。したがって、実施の形態1にかかる半導体装置100は、CPU302がイメージの生成及び格納を行う場合と比較して、サスペンド処理を高速に行うことができる。なお、このことは、後述する他の実施の形態においても同様である。
また、実施の形態1にかかる半導体装置100は、上記のように、復帰制御部304が、復帰要求(復帰要求番号309)を受け付けてイメージを記憶部120から選択する。そして、CPU302が、選択されたイメージに基づいて機器を復帰させる。これに対し、仮に、CPU302がイメージの選択も行うとすると、機器のサスペンド時にCPU302をサスペンドすることができない。したがって、実施の形態1のように、異なるデバイスがイメージの選択及び復帰動作をそれぞれ行うことで、機器のサスペンド中にCPU302もサスペンドできる。したがって、サスペンド中の電力の消費等を抑制できる。なお、このことは、後述する他の実施の形態においても同様である。
また、実施の形態1にかかるCPU302(制御部20)は、予め定められた数の複数のイメージ(実行状態データ)を生成するように構成されている。したがって、実施の形態1にかかる半導体装置100は、予め定められた数のイメージを、確実に生成できる。
(実施の形態2)
次に、実施の形態2について説明する。実施の形態1では、記憶部120上に、予め決められた数のイメージ用領域を用意しておき、その中に複数のイメージを保持していた。この方法では、復帰するイメージが増えるほど、記憶部120の記憶領域が多く使用されてしまう。これに対し、実施の形態2では、複数のイメージを、基準となるイメージ及び基準からの差分として保持しながら、機器を高速に復帰するように構成されている。
図10は、実施の形態2にかかる半導体装置200の構成を示す図である。実施の形態2にかかる半導体装置200は、記憶部120と、書き込み検知機構612と、CPU613と、サスペンド制御部611と、復帰制御部607とを有する。これらの構成要素は、システムバス307を介して接続されている。また、図1に示した制御部20は、CPU613、サスペンド制御部611及び復帰制御部607で構成され得る。制御部20は、サスペンド制御部611及び復帰制御部607の少なくとも一方を有しなくてもよい。この場合、CPU613が、サスペンド制御部611及び復帰制御部607の機能を実現し得る。また、復帰制御部607は、アドレステーブル614を有する。
実施の形態1では、アドレス制御機構301がアドレスの変換を行う。これに対し、実施の形態2では、CPU613が、仮想アドレスと物理アドレスとを変換するために使用されるMMU(Memory Management Unit;メモリ管理ユニット)テーブルを切り替える。これにより、CPU613は、復帰要求に対応するイメージが格納された領域にアクセスできる。
記憶部120は、基準イメージ601と、ワークイメージ602と、イメージ差分603と、ワークMMUテーブル604と、MMUテーブル605−1,605−2,・・・と、イメージテーブル305とを保持する。基準イメージ601は、生成される複数のイメージのうちの基準となるイメージである。ここで、基準イメージ601は、単一イメージを保持する場合のイメージに相当するものである。すなわち、機器は、基準イメージ601の復帰点に復帰した状態から、他のすべての復帰点に遷移できるものとする。
ワークイメージ602は、現在、CPU613が処理をするために使用しているイメージである。イメージ差分603は、生成された複数のイメージのうちの基準イメージ601とは異なるイメージと、基準イメージ601との差分を示すデータ(差分データ)である。ワークMMUテーブル604は、現在、CPU613が処理をするために使用している領域の仮想アドレスと物理アドレスとを変換するためのテーブルである。言い換えると、ワークMMUテーブル604は、ワークイメージ602に対応するMMUテーブルである。MMUテーブル605は、生成されたイメージが格納された領域の仮想アドレスと物理アドレスとを変換するためのテーブルである。ここで、MMUテーブル605−1は、基準イメージ601(イメージ#1)に対応するMMUテーブルである。MMUテーブル605−2は、2番目に生成されたイメージ#2に対応する。
CPU613は、実施の形態1にかかるCPU302と同様に、機器の制御を行うプロセッサである。CPU613は、複数のイメージを生成する。CPU613は、機器がサスペンド状態に遷移する際に、サスペンド制御部303を起動させる。また、CPU613は、機器がサスペンド状態に遷移する際に、複数のイメージを生成する。また、CPU613は、機器をサスペンド状態に遷移させるための処理を行う。また、CPU613は、機器がサスペンド状態から復帰する際に、復帰動作を行う。ここで、実施の形態2にかかるCPU613は、MMUにより仮想アドレスと物理アドレスの対応を行うアーキテクチャに従って動作する。
サスペンド制御部611は、実施の形態1にかかるサスペンド制御部303と同様に、機器がサスペンド状態に遷移する際の制御を行う。サスペンド制御部611は、CPU613からの要求に応じて、記憶部120のイメージのコピーを行う。また、サスペンド制御部611は、CPU613への割り込み通知311を出力する。サスペンド制御部611の動作については後述する。
復帰制御部607は、実施の形態1にかかる復帰制御部304と同様に、機器がサスペンド状態から復帰する際の動作の制御を行う。復帰制御部607は、復帰要求番号309を受信する。また、復帰制御部607は、CPU613に対して復帰指示308を出力する。また、復帰制御部607は、サスペンド中に復帰要求番号309を受け取ると、イメージテーブル305及びアドレステーブル614を用いて、対応するMMUのアドレスをCPU613に対して出力(発行)する。アドレス指定609は、この対応するMMUのアドレスを指定する信号である。アドレステーブル614は、イメージとMMUテーブルとを対応付けるテーブルである。なお、アドレステーブル614は、記憶部120に設けられていてもよい。
書き込み検知機構612は、記憶部120へのライトトランザクションを監視し、どのアドレスに書き込みが行われたかを、記憶領域のブロック(ページ)単位で検知および保持する機構である。これにより、CPU613は、記憶部120における領域のうち、アドレス指定609で指定されたアドレスの領域にアクセスできる。
図11A及び図11Bは、実施の形態2にかかる半導体装置200によって行われるサスペンド動作を示すフローチャートである。また、図12は、実施の形態2にかかるサスペンド動作における記憶部120の領域の変化を説明するための図である。図12において、領域800から領域805となるように、記憶部120の領域が変化していく。
ここで、図12における各セルは記憶領域上のブロック(ページ)を示している。図12において、「MW」は、対応するブロックにワークMMUテーブル604のデータが格納されていることを示す。「M1」、「M2」及び「M3」は、それぞれ、対応するブロックにMMUテーブル605−1〜605−3(MMU#1〜MMU#3)のデータが格納されていることを示す。「W」は、対応するブロックがワークイメージ602に属していることを示している。つまり、「W」が付されたブロックは、ワークイメージ602のために使用されている。また、「1」は、対応するブロックが基準イメージ601(イメージ#1)に属していることを示している。また、「2」及び「3」は、それぞれ、対応するブロックがイメージ#2,#3に属していることを示している。なお、図を簡単にするため、サスペンド動作中に変化の無いイメージテーブル305は図示されていない。
CPU613で実行されるS400、S401及びS425の処理については、図4に示した処理と実質的に同様であるので、説明を省略する。サスペンド制御部611は、CPU613から初期化要求(S401)を受け取ると、初期化処理を行う(ステップS700)。
サスペンド制御部611は、領域番号カウンタRを1に初期化する(ステップS713)。サスペンド制御部611は、ワークイメージ602をイメージ#1として別領域にコピーする(ステップS704)。また、サスペンド制御部611は、ワークMMUテーブル604をMMUテーブル#1(MMU#1)として別領域にコピーする(ステップS705)。図12において、コピー前の記憶部120の状態が、領域800に示されている。また、コピー後(S704,S705の処理の後)の記憶部120の状態が、領域801に示されている。領域800における「W」が付されたブロックのデータが、領域801における「1」が付されたブロックにコピーされている。また、領域800における「MW」が付されたブロックのデータが、領域801における「M1」が付されたブロックにコピーされている。「1」が付された複数のブロックのデータが、基準イメージ601に対応する。また、「M1」が付された複数のブロックのデータが、基準イメージ601に対応するMMUテーブル(MMU#1)に対応する。
ここで、基準イメージ601の生成には、ワークイメージ602(図12の「W」に対応)と同じサイズの空き領域が必要となる。そこで、空き領域不足によって基準イメージ601のコピーに失敗した場合(ステップS706のNO)、サスペンド制御部611は、サスペンド処理を終了する。このとき、サスペンド制御部611は、アドレステーブル614の全てにワークMMUテーブル604のアドレスを登録する(ステップS716)。つまり、サスペンド制御部611は、イメージ番号に対応するMMUテーブルのアドレスを、全て、ワークMMUテーブル604のアドレスに設定する。そして、この場合、CPU613は、サスペンド状態に移行する(ステップS424)。
コピーに成功した場合(S706のYES)、サスペンド制御部611は、コピーしたMMUテーブル#1(MMU#1)のアドレスを、アドレステーブル614の「1番」に登録する(ステップS707)。その後、サスペンド制御部611は、領域番号カウンタRをインクリメントし(ステップS714)、CPU613に対して割り込み通知を行う(ステップS408)。
CPU613は、割り込み通知(S408)を受け取ると、複数のイメージを生成する(ステップS701)。S701の処理の詳細について、イメージ変更(S406)を行う前に、CPU613は、書き込み検知機構612を有効化する(ステップS708)。これにより、記憶部120において変更されたブロック領域が保持された状態にする。そして、CPU613は、イメージ変更(つまり別のイメージの生成)を行う(ステップS406)。その後、CPU613は、書き込み検知を停止する(ステップS709)。そして、領域番号カウンタRが指定数(M)に到達するまで(ステップS711のYES)、CPU613は、イメージ生成処理を繰り返す。
つまり、M=Rでない場合(S711のNO)、CPU613は、サスペンド制御部611に対してコピー要求を送信し(S405)、割り込み待ち状態に移行する(ステップS419)。サスペンド制御部611は、コピー要求(S405)を受けると、生成されたイメージに関するデータのコピーを行う(ステップS702)。具体的には、サスペンド制御部611は、記憶部120の記憶領域(ワークイメージ602)のうちの変更のあったブロックのデータを、空き領域にコピーする(ステップS717)。また、サスペンド制御部611は、ワークMMUテーブル604をMMUテーブル#R(R=2であればMMUテーブル#2)にコピーする(ステップS718)。
図12において、領域802のハッチングが施されたセルが、変更されたブロックであるとする。この場合、領域803は、コピー後の領域を示す。図12の領域802における「W」が付され且つハッチングが施されたブロックのデータが、領域803における「2」が付されたブロックにコピーされている。また、領域802における「MW」が付されたブロックのデータが、領域803における「M2」が付されたブロックにコピーされている。「M2」が付された複数のブロックのデータが、イメージ#2に対応するMMUテーブル(MMU#2)に対応する。ここで、「M2」が付されたブロックのMMUテーブルは、領域804のハッチングが施されたブロックを参照している。この領域804のハッチングが施されたブロックが、イメージ#2を構成する。
なお、領域804において、「1」が付されており且つハッチングが施されていないブロックは、ワークイメージ602(「W」)において変更されたブロックの変更前のデータに対応する。したがって、このブロックは、イメージ#1(基準イメージ601)のみに対応するので、「M2」が付されたブロックのMMUテーブルによって参照されない。一方、「1」が付され且つハッチングが施されたブロックは、イメージ#1(基準イメージ601)だけでなくイメージ#2にも対応する。したがって、「1」が付され且つハッチングが施されたブロックは、「M2」が付されたブロックのMMUテーブルによって参照される。このように、変更のあったブロックのみコピーを行うことで、イメージ#2が格納される記憶部120の使用量(ブロック数)が削減される。図12の例では、イメージ#2について、変更されなかった7個のブロック分、削減できる。サスペンド制御部611がこの処理を繰り返し実行することで、S701において複数のイメージが生成される。
記憶部120の空き容量が十分であったためコピーが成功した場合(ステップS712のYES)、サスペンド制御部611は、MMU#Rのアドレスをアドレステーブル614の「R番」に登録する(ステップS719)。その後、サスペンド制御部611は、領域番号カウンタRをインクリメントする(ステップS720)。そして、サスペンド制御部611は、CPU613に対してコピー終了を知らせる割り込み通知を行う(ステップS409)。
M=Rである場合(S711のYES)、CPU613は、ワークMMUテーブル604のアドレスをアドレステーブル614の「R番」に登録する(ステップS703)。つまり、(指定数(M)−1)のイメージの生成及びコピーが終了した場合、CPU613は、現在のワークイメージの領域を最後のイメージ領域として登録する。あるいは、空き領域が足りなくなってコピーが失敗した場合(S712のNO)も、CPU613は、ワークMMUテーブル604のアドレスをアドレステーブル614の「R番」に登録する(S703)。
例えば、生成されたイメージが3つだった場合、ワークMMUテーブル604がMMUテーブル#3として登録される。したがって、図12の領域803の状態から、イメージ#3が生成されると(S709)、記憶部120は、領域805のような状態となる。つまり、領域803における「W」が付されたブロックが、領域805において、そのまま「3」が付されたブロックとなる。同様に、領域803における「MW」が付されたブロックが、領域805において、そのまま「M3」が付されたブロックとなる。
以上のような処理により、図12の領域805において、「1」が付されたブロックのデータが、基準イメージ601として格納される。また、「M1」が付されたブロックのデータが、MMUテーブル605−1として格納される。また、「2」が付されたブロックのデータが、イメージ差分603として格納される。また、「M2」が付されたブロックが、MMUテーブル605−2として格納される。また、「3」が付されたブロックが、ワークイメージ602として格納される。また、「M3」が付されたブロックが、MMUテーブル605−3として格納される。この状態で、機器がサスペンド状態となる。
図13は、実施の形態2にかかる半導体装置200によって行われる復帰動作を示すフローチャートである。復帰制御部607は、機器のサスペンド中に復帰要求番号309を受け取ると、イメージテーブル305を用いて、復帰要求番号309に対応するイメージ番号を求める(S500)。次に、復帰制御部607は、アドレステーブル614を用いて、イメージ番号に対応するMMUテーブル605のアドレスを求める(ステップS900)。そして、復帰制御部607は、CPU613がアクセスできるMMUテーブル605のアドレスを設定し、設定されたアドレスを示すアドレス指定609をCPU613に出力する(ステップS901)。なお、S503の処理以降については、図9に示したし処理と実質的に同様であるので、説明を省略する。なお、S506の処理においては、アドレス指定609によって、CPU302は、復帰要求番号309に対応するイメージ130のエントリポイントに復帰する。
実施の形態2にかかる半導体装置200においても、機器がサスペンド状態になる条件を満たすとき、CPU613(演算処理装置)は、複数のイメージ(実行状態データ)を生成する。サスペンド制御部611は、生成された複数のイメージを記憶部120に格納する。その後、CPU613は、機器の状態をサスペンド状態に遷移させる。また、機器がサスペンド状態から復帰するとき、復帰制御部607は、復帰要求(復帰要求番号309)を受け付けてイメージを記憶部120から選択する。また、CPU613は、選択されたイメージに基づいて機器を復帰させる。実施の形態2にかかる半導体装置200は、このような構成により、上述した実施の形態にかかる効果と実質的に同様の効果を奏し得る。つまり、機器のサスペンドの際に複数のイメージを保持することによって、復帰時の書き戻し動作が不要となるので、機器の復帰処理を高速に行うことができる。
また、実施の形態2にかかる半導体装置200は、基準イメージ601と他のイメージとの差分であるイメージ差分603を格納することで、複数のイメージを記憶部120に格納する。つまり、CPU613は、基準イメージ601(第1の実行状態データ)と、基準イメージから変更されたイメージ(第2の実行状態データ)とを生成する。そして、サスペンド制御部611は、基準イメージ、及び、基準イメージと変更されたイメージとの差分を、記憶部120に格納する。このような構成によって、実施の形態2にかかる半導体装置200は、複数のイメージを格納する場合であっても、記憶部120における記憶領域の使用量の増大を抑制できる。さらに、実施の形態1の場合と比較して、コピーするデータ量も減少するので、実施の形態1の場合と比較して、サスペンド処理に要する時間も短縮できる。
なお、上述した実施の形態2では、半導体装置200がMMUのアーキテクチャに準拠しているとした。つまり、サスペンド制御部611(制御部20)は、MMUテーブル605を、記憶部120に格納する。しかしながら、半導体装置200は、MMUのアーキテクチャに準拠している必要はない。一方、MMUのアーキテクチャを用いないと、CPU613は、イメージ差分603がどの領域に格納されているかを把握するのに、多大な時間を要する。この場合、CPU613は、イメージ差分603を用いてイメージを再生成する処理に、多大な時間を要する。したがって、サスペンド制御部611(制御部20)がMMUテーブル605を記憶部120に格納することによって、CPU613は、復帰処理を高速に行うことができる。
(実施の形態3)
次に、実施の形態3について説明する。
イメージの保持数は、記憶部120における記憶領域の容量の制限を受ける。一方、センサ及び機能が多い機器では、復帰ケースが多岐に渡り得る。ここで、上述した実施の形態2では、記憶部120の使用量の増大を抑制する方法を示した。しかしながら、復帰点が多様化した場合又はイメージサイズが大きい場合は、すべての復帰ケースに応じたイメージを保持することができないおそれがある。
実施の形態2では、イメージ番号順にイメージを作成しているため、イメージ番号が後になるほど、そのイメージを生成できる確率が低下する。復帰時に後の番号のイメージが選ばれる確率が高い場合、実施の形態2の方法では、復帰要求に対するイメージが格納されていない可能性が高いことから、復帰時間を短くすることが困難となる。このような問題に対して、実施の形態3では、サスペンド時に、復帰する際に選択されるイメージの確率を受け付ける。これにより、復帰する可能性の高いケースから優先してイメージを生成できるので、復帰時にイメージのミスヒットの確率が低減し得る。
図14は、実施の形態3にかかる半導体装置300の構成を示す図である。実施の形態3にかかる半導体装置300のハードウェア構成は、図10に示した実施の形態2にかかる半導体装置200のハードウェア構成と実質的に同様である。実施の形態3にかかる半導体装置300には、さらに、図10に示した構成に加え、復帰制御部607に入力される復帰確率1309が追加されている。復帰確率1309は、復帰要求番号309それぞれに対応した復帰確率を復帰制御部607に与える。復帰確率1309は、対応する復帰要求番号309が発生する確率を示す。
復帰確率1309は、例えばニューラルネットワーク等の機械学習によって学習を行うことで算出される。各復帰要求番号309に対応する復帰確率1309は、機器の種類及び使用される環境等によって変化し得る。したがって、復帰確率1309は、機器それぞれの入力パラメータと復帰要求番号309との関係を学習することで算出(推定)される。入力パラメータは、センサ等によって取得される。ここで、機器がプリンタの場合、入力パラメータは、例えば、サスペンド時の日時、サスペンド直前に実行したジョブ、最近のジョブの実行間隔、部屋の明るさ、周囲の音量などであってもよい。したがって、ある復帰要求番号309に対応する復帰確率1309は、サスペンド時の入力パラメータによって異なる。
図15A及び図15Bは、実施の形態3にかかる半導体装置300によって行われるサスペンド動作を示すフローチャートである。なお、S400〜S425及びS700の処理は、図11に示した処理と実質的に同様であるので、説明を省略する。CPU613は、複数のイメージの生成(S701)の前に、復帰要求スコアを算出する(ステップS1000)。CPU613は、この復帰要求スコアによって、イメージの優先順位付けを行って、複数のイメージの生成順序を決定する(ステップS1001)。ここで、復帰要求スコアは、復帰するイメージ番号それぞれに対して、サスペンド時の状態から復帰する際に選択される確率の高さを表すものである。復帰要求スコアが高いほど、対応するイメージが復帰先となる確率が高い。したがって、復帰要求スコアが高いイメージほど先に生成されるように、生成順序が決定される。
図16は、実施の形態3にかかる復帰要求スコアの生成方法を説明するための図である。まずサスペンド時の入力パラメータから、復帰要求番号309それぞれについての復帰確率1309が算出される。そして、復帰制御部607に復帰確率1309が入力される。CPU613は、復帰確率1309が与えられると、テーブル1100に示すように、復帰要求番号309それぞれに対応した復帰要求スコアを算出する。
テーブル1100は、復帰要求番号309(#1〜#7)と、イメージ番号(#1〜#4)と、復帰要求スコアとを対応付ける。テーブル1100における復帰要求スコアは、対応する復帰要求番号309に関する復帰確率1309に応じて定められる。したがって、復帰確率1309が高いほど、対応する復帰要求スコアは高くなる。
そして、CPU613は、得られた復帰要求スコアを、復帰先のイメージごとに合計する。これにより、CPU613は、テーブル1101に示すように、イメージ番号それぞれに応じた復帰要求スコア(優先度)を取得する(S1000)。CPU613は、この復帰要求スコアが高いものから先にイメージが生成されるように、イメージ生成順序を決定する(S1001)。図16の例では、例えば、イメージ番号#2の復帰要求スコアが最も高いので、イメージ番号#2のイメージが最初に生成される。
その後、CPU613は、イメージ生成順序を用いて、次に生成すべきイメージ番号Iを取得する(ステップS1002)。そして、CPU613は、書き込み検知機構612を有効化(S708)した後、イメージ番号Iの状態に、イメージを変更(つまり新しいイメージを生成)する(ステップS1003)。その後、上述したS709〜S424の処理が行われる。なお、サスペンド制御部611は、S719の代わりに、MMU#Rのアドレスをアドレステーブル614の「I番」に登録する(ステップS1004)。その後、S720,S409の処理の後、処理はS1002に戻る。これにより、CPU613は、S1001の処理で決定された生成順序に従って、順にイメージを生成する。
実施の形態3にかかる半導体装置300は、実施の形態2にかかる半導体装置200と同様の構成により、上述した実施の形態にかかる効果と実質的に同様の効果を奏し得る。つまり、機器のサスペンドの際に複数のイメージを保持することによって、復帰時の書き戻し動作が不要となるので、機器の復帰処理を高速に行うことができる。
また、実施の形態3にかかるCPU613(制御部20)は、実行状態の復帰確率に応じて当該実行状態に対応するイメージ(実行状態データ)それぞれの優先度(復帰要求スコア)を生成する。そして、CPU613は、優先度が高いイメージを先に生成する。このような構成によって、実施の形態3にかかる半導体装置300は、復帰確率が高いイメージ(実行状態データ)を優先的に格納できる。つまり、実施の形態3にかかる半導体装置300は、イメージの生成時に、サスペンド状態からの復帰の際に発生し得る復帰要求番号を推測し、イメージの優先度を設定する。そして、半導体装置300は、優先度の高いイメージから順にイメージを生成する。このような構成により、復帰時に復帰先がミスヒットとなる確率を低下させることができる。したがって、実施の形態2における、複数のイメージを保持する場合の性能低下(つまりイメージのミスヒット)を低減することができる。
(変形例)
なお、本実施の形態は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施の形態にかかる半導体装置によって制御される機器は、プリンタに限られず、サスペンド状態となり得る任意の機器であり得る。例えば、当該機器は、パソコン又はスマートフォンであってもよい。
また、上述した実施の形態にかかる半導体装置は、CPUだけでなく、サスペンド制御部及び復帰制御部を有するとしたが、このような構成に限られない。本実施の形態にあっかる半導体装置は、制御部20としてサスペンド制御部及び復帰制御部の少なくとも一方を有しなくてもよい。この場合、CPUが、サスペンド制御部及び復帰制御部の処理を行ってもよい。しかしながら、半導体装置が、CPUだけでなくサスペンド制御部及び復帰制御部を有することで、上述したように、処理を高速に行うことができる、又は、サスペンド中にCPUもサスペンドできるといった効果を奏することが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1 半導体装置
10 記憶部
12 実行状態データ
20 制御部
100,200,300 半導体装置
120 記憶部
130 イメージ
302,613 CPU
303,611 サスペンド制御部
304,607 復帰制御部
305 イメージテーブル
308 復帰指示
310 領域テーブル
601 基準イメージ
602 ワークイメージ
603 イメージ差分
604 ワークMMUテーブル
605 MMUテーブル
609 アドレス指定
614 アドレステーブル
1309 復帰確率

Claims (14)

  1. 機器の実行状態を示す実行状態データを格納するように構成された記憶部と、
    前記機器の動作を制御する制御部と
    を有し、
    前記機器がサスペンド状態になる条件を満たすとき、前記制御部は、前記機器がサスペンド状態となるときの実行状態に基づいて互いに異なる複数の前記実行状態データを生成し、生成された前記複数の実行状態データを前記記憶部に格納し、その後、前記機器の状態をサスペンド状態に遷移させ、
    復帰要求に応じて前記機器がサスペンド状態から復帰するとき、前記制御部は、前記復帰要求に応じた前記実行状態データを前記記憶部から選択し、選択された前記実行状態データに基づいて前記機器を復帰させる
    半導体装置。
  2. 前記制御部は、前記機器がサスペンド状態となるときの実行状態を示す第1の実行状態データと、前記第1の実行状態データにおける実行状態から変更された実行状態を示す1つ以上の第2の実行状態データとを生成する
    請求項1に記載の半導体装置。
  3. 前記制御部は、予め定められた数の複数の前記実行状態データを生成する
    請求項1に記載の半導体装置。
  4. 前記制御部は、前記機器がサスペンド状態となるときの実行状態を示す第1の実行状態データと、前記第1の実行状態データにおける実行状態から変更された実行状態を示す1つ以上の第2の実行状態データとを生成して、前記第1の実行状態データと、前記第1の実行状態データと前記第2の実行状態データとの差分を示す差分データとを、前記記憶部に格納する
    請求項1に記載の半導体装置。
  5. 前記制御部は、物理アドレスと仮想アドレスとを変換するために使用されるメモリ管理ユニットを用いて、前記第2の実行状態データに対応する仮想アドレスと、前記記憶部において前記差分データが格納されたブロックに対応する物理アドレスとを対応付けたテーブルを、前記記憶部に格納する
    請求項4に記載の半導体装置。
  6. 前記制御部は、実行状態の復帰確率に応じて当該実行状態に対応する前記実行状態データそれぞれの優先度を生成し、優先度が高い前記実行状態データを先に生成する
    請求項4に記載の半導体装置。
  7. 前記制御部は、
    演算処理装置と、
    前記機器がサスペンド状態になるときの制御を行うように構成されたサスペンド制御部と
    を有し、
    前記機器がサスペンド状態になる条件を満たすとき、
    前記演算処理装置は、複数の前記実行状態データを生成し、
    前記サスペンド制御部は、生成された複数の前記実行状態データを前記記憶部に格納し、
    前記演算処理装置は、前記機器をサスペンド状態に遷移させる
    請求項1に記載の半導体装置。
  8. 前記制御部は、
    演算処理装置と、
    前記サスペンド状態となった機器が復帰するときの制御を行うように構成された復帰制御部と
    を有し、
    前記機器がサスペンド状態から復帰するとき、
    前記復帰制御部は、前記復帰要求を受け付けて前記復帰要求に応じた前記実行状態データを前記記憶部から選択し、
    前記演算処理装置は、選択された前記実行状態データに基づいて前記機器を復帰させる
    請求項1に記載の半導体装置。
  9. 機器がサスペンド状態になる条件を満たすとき、前記機器がサスペンド状態となるときの実行状態に基づいて互いに異なる複数の実行状態データを生成し、生成された前記複数の実行状態データを記憶部に格納し、その後、前記機器の状態をサスペンド状態に遷移させ、
    復帰要求に応じて前記機器がサスペンド状態から復帰するとき、前記復帰要求に応じた前記実行状態データを前記記憶部から選択し、選択された前記実行状態データに基づいて前記機器を復帰させる
    制御方法。
  10. 前記機器がサスペンド状態となるときの実行状態を示す第1の実行状態データと、前記第1の実行状態データにおける実行状態から変更された実行状態を示す1つ以上の第2の実行状態データとを生成する
    請求項9に記載の制御方法。
  11. 予め定められた数の複数の前記実行状態データを生成する
    請求項9に記載の制御方法。
  12. 前記機器がサスペンド状態となるときの実行状態を示す第1の実行状態データと、前記第1の実行状態データにおける実行状態から変更された実行状態を示す1つ以上の第2の実行状態データとを生成して、前記第1の実行状態データと、前記第1の実行状態データと前記第2の実行状態データとの差分を示す差分データとを、前記記憶部に格納する
    請求項9に記載の制御方法。
  13. 物理アドレスと仮想アドレスとを変換するために使用されるメモリ管理ユニットを用いて、前記第2の実行状態データに対応する仮想アドレスと、前記記憶部において前記差分データが格納されたブロックに対応する物理アドレスとを対応付けたテーブルを、前記記憶部に格納する
    請求項12に記載の制御方法。
  14. 実行状態の復帰確率に応じて当該実行状態に対応する前記実行状態データそれぞれの優先度を生成し、優先度が高い前記実行状態データを先に生成する
    請求項12に記載の制御方法。
JP2019078415A 2019-04-17 2019-04-17 半導体装置及び制御方法 Pending JP2020177390A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019078415A JP2020177390A (ja) 2019-04-17 2019-04-17 半導体装置及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019078415A JP2020177390A (ja) 2019-04-17 2019-04-17 半導体装置及び制御方法

Publications (1)

Publication Number Publication Date
JP2020177390A true JP2020177390A (ja) 2020-10-29

Family

ID=72937514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019078415A Pending JP2020177390A (ja) 2019-04-17 2019-04-17 半導体装置及び制御方法

Country Status (1)

Country Link
JP (1) JP2020177390A (ja)

Similar Documents

Publication Publication Date Title
JP5655677B2 (ja) ハイパーバイザ置き換え方法および情報処理装置
JP5724477B2 (ja) 移行プログラム、情報処理装置、移行方法、及び情報処理システム
KR101562973B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
JP4281421B2 (ja) 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
KR101636870B1 (ko) 최소 부트 이미지의 생성 방법 및 장치
JP2011095916A (ja) 電子機器
JP2007058600A (ja) 画像処理装置
JP2010170295A (ja) 記憶装置、記憶装置のデータ転送方法
JP5124430B2 (ja) 仮想マシンの移行方法、サーバ、及び、プログラム
JP2018022440A5 (ja)
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
JP2018088048A (ja) マルチプロセッサ及びマルチプロセッサシステム
JP2013257679A (ja) 情報処理装置および方法、並びに、プログラム
JP5393813B2 (ja) メモリー管理装置および画像処理装置
JP2020177390A (ja) 半導体装置及び制御方法
JP2010198171A (ja) Usbホストコントローラ、及びusbホストコントローラの制御方法
JP2014038551A (ja) データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム
JP5694100B2 (ja) 情報処理装置、プログラムおよび情報処理方法
JP2011003060A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
KR102175598B1 (ko) 정보 처리 장치, 그 제어 방법 및 기억 매체
JP2009020776A (ja) スワップアウト制御装置
JP2006260092A (ja) 情報処理装置またはデータ転送制御装置
JP2016110513A (ja) 情報処理装置、情報処理装置の制御方法、プログラムおよび記録媒体
US11669268B2 (en) Information processing apparatus and control method therefor