(57)【要約】【課題】ハイバーネーションイメージの全ての転送を完了する前に、オペレーティングシステムの実行を開始する。【解決手段】先行転送部２０１は転送ページリスト５０４に従ってハイバーネーションイメージ５０２の一部をシステムＲＡＭ６１０に先行転送する。オペレーティングシステムの起動後、遅延転送部２０２は先行転送部２０１によって転送されなかったハイバーネーションイメージ５０２のページを、他のアプリケーションの実行と並行してシステムＲＡＭ６１０に転送する。遅延転送部２０２によって転送されていないハイバーネーションイメージ５０２のページにプロセッサ２１０がアクセスした場合には、そのページを必要ページ転送部２０３がシステムＲＡＭ６１０へ動的に転送する。【選択図】図１５
2007334383.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータと、
前記コンピュータがプログラムを実行する際の実行状態を保持する実行状態保持手段と、
所定のプログラム位置の実行の際の特定の実行状態を退避する実行状態退避手段と、
前記実行状態退避手段に退避される特定の実行状態の前記実行状態保持手段への転送履歴を保持する転送履歴保持手段と、
前記実行状態保持手段に保持される実行状態に前記コンピュータがアクセスしたことを検出するアクセス検出手段と、
前記アクセスが検出されると前記転送履歴を参照して当該アクセスに係る所定領域が前記実行状態退避手段から前記実行状態保持手段に転送されていない場合には前記所定領域を前記実行状態退避手段から前記実行状態保持手段に転送する必要領域転送手段と
を具備することを特徴とする情報処理装置。
【請求項２】
前記実行状態保持手段に保持される実行状態はオペレーティングシステムにより管理されるメモリイメージを含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記実行状態退避手段は、不揮発性メモリを備えることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記所定領域は前記実行状態保持手段による保持領域を一定容量毎に分割したページであることを特徴とする請求項１記載の情報処理装置。
【請求項５】
当該情報処理装置の起動が行われると前記実行状態退避手段に退避される特定の実行状態の一部を転送対象として前記実行状態保持手段に転送する先行転送手段をさらに具備し、
前記転送履歴保持手段は、前記先行転送手段によって退避された前記特定の実行状態の一部について前記転送履歴を保持することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記実行状態退避手段に退避される特定の実行状態のうち前記先行転送手段によって転送されなかった実行状態を前記実行状態保持手段に転送する遅延転送手段をさらに具備することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記所定のプログラム位置の実行の前に前記実行状態保持手段に保持される実行状態に前記コンピュータがアクセスしたことを検出する第２のアクセス検出手段と、
前記第２のアクセス検出手段によるアクセスが検出されると当該アクセスの履歴を前記先行転送手段による転送対象として保持する先行転送対象保持手段と
をさらに具備することを特徴とする請求項５記載の情報処理装置。
【請求項８】
コンピュータとそのコンピュータがプログラムを実行する際の実行状態を保持する実行状態保持手段と、所定のプログラム位置の実行の際の特定の実行状態を退避する実行状態退避手段と、前記実行状態退避手段に退避される特定の実行状態の前記実行状態保持手段への転送履歴を保持する転送履歴保持手段とを備える情報処理装置の起動方法であって、
前記実行状態保持手段に保持される実行状態に前記コンピュータがアクセスしたことを検出するアクセス検出手順と、
前記アクセスが検出されると前記転送履歴を参照して当該アクセスに係る所定領域が前記実行状態退避手段から前記実行状態保持手段に転送されていない場合には前記所定領域を前記実行状態退避手段から前記実行状態保持手段に転送する必要領域転送手順と
を具備することを特徴とする情報処理装置の起動方法。
【請求項９】
コンピュータとそのコンピュータがプログラムを実行する際の実行状態を保持する実行状態保持手段と、所定のプログラム位置の実行の際の特定の実行状態を退避する実行状態退避手段と、前記実行状態退避手段に退避される特定の実行状態の前記実行状態保持手段への転送履歴を保持する転送履歴保持手段とを備える情報処理装置におけるプログラムであって、
前記実行状態保持手段に保持される実行状態に前記コンピュータがアクセスしたことを検出するアクセス検出手順と、
前記アクセスが検出されると前記転送履歴を参照して当該アクセスに係る所定領域が前記実行状態退避手段から前記実行状態保持手段に転送されていない場合には前記所定領域を前記実行状態退避手段から前記実行状態保持手段に転送する必要領域転送手順と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に起動を高速に行う情報処理装置およびその起動方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
オペレーティングシステムは、ハードウェアを抽象化してアプリケーションプログラムの動作環境を提供する基本ソフトウェアである。情報処理装置の電源スイッチがオンにされると、ブートローダの働きによってオペレーティングシステムのカーネルがローディングされ、オペレーティングシステムが起動する。近年のオペレーティングシステムの高機能化により、このオペレーティングシステムの起動には例えば数十秒程度の時間を要するようになっている。
【０００３】
オペレーティングシステムを高速に起動させるために、従来、様々な手法が試みられている。例えば、電源プラグが挿入された直後にオペレーティングシステムのカーネルをメモリにローディングして伸張処理を施しておいて、電源スイッチがオンにされた際にオペレーティングシステムのカーネルをメモリ上で速やかに実行させる技術が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００５−１４９２２５号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の従来技術では、オペレーティングシステムのローディングに要する時間を短縮できるものの、オペレーティングシステムの実行を開始するためには、オペレーティングシステムのローディングの完了を待つ必要がある。
【０００５】
また、オペレーティングシステムのメモリイメージを不揮発メモリに退避しておいて、起動時に装置内のメモリへ転送するハイバーネーション（hibernation）と呼ばれる技術があるが、そのメモリイメージ（ハイバーネーションイメージ）を転送するためにも一定の時間を必要とする。
【０００６】
一方、オペレーティングシステム起動直後の初期状態では、オペレーティングシステムが使用するメモリ領域は一部に過ぎず、カーネルの全てを事前にローディングしておくことは必ずしも必要ではない。
【０００７】
そこで、本発明は、ハイバーネーションを前提として、ハイバーネーションイメージの全ての転送を完了する前に、オペレーティングシステムの実行を開始することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、コンピュータと、上記コンピュータがプログラムを実行する際の実行状態を保持する実行状態保持手段と、所定のプログラム位置の実行の際の特定の実行状態を退避する実行状態退避手段と、上記実行状態退避手段に退避される特定の実行状態の上記実行状態保持手段への転送履歴を保持する転送履歴保持手段と、上記実行状態保持手段に保持される実行状態に上記コンピュータがアクセスしたことを検出するアクセス検出手段と、上記アクセスが検出されると上記転送履歴を参照して当該アクセスに係る所定領域が上記実行状態退避手段から上記実行状態保持手段に転送されていない場合には上記所定領域を上記実行状態退避手段から上記実行状態保持手段に転送する必要領域転送手段とを具備することを特徴とする情報処理装置である。これにより、実行状態保持手段に転送されていない領域にアクセスがあった場合にその領域を実行状態退避手段から実行状態保持手段に転送させるという作用をもたらす。したがって、実行状態退避手段から実行状態保持手段に全ての領域が転送される前にコンピュータの実行を開始することが可能になる。
【０００９】
また、この第１の側面において、上記実行状態保持手段に保持される実行状態はオペレーティングシステムにより管理されるメモリイメージを含んでもよい。また、この第１の側面において、上記実行状態退避手段は不揮発性メモリを備えてもよい。また、この第１の側面において、上記所定領域は上記実行状態保持手段による保持領域を一定容量毎に分割したページであってもよい。
【００１０】
また、この第１の側面において、当該情報処理装置の起動が行われると上記実行状態退避手段に退避される特定の実行状態の一部を転送対象として上記実行状態保持手段に転送する先行転送手段をさらに具備してもよい。これにより、実際にアクセスが起こる前に実行状態退避手段から実行状態保持手段に転送しておくことができ、アクセス発生時の転送速度を向上させるという作用をもたらす。
【００１１】
また、この第１の側面において、上記実行状態退避手段に退避される特定の実行状態のうち上記先行転送手段によって転送されなかった実行状態を上記実行状態保持手段に転送する遅延転送手段をさらに具備してもよい。これにより、先行転送後にアクセスが起こる前に実行状態退避手段から実行状態保持手段に転送しておくことができ、アクセス発生時の転送速度を向上させるという作用をもたらす。
【００１２】
また、この第１の側面において、上記所定のプログラム位置の実行の前に上記実行状態保持手段に保持される実行状態に上記コンピュータがアクセスしたことを検出する第２のアクセス検出手段と、上記第２のアクセス検出手段によるアクセスが検出されると当該アクセスの履歴を上記先行転送手段による転送対象として保持する先行転送対象保持手段とをさらに具備してもよい。これにより、実際のアクセス履歴に基づいて先行転送を行わせるという作用をもたらす。
【００１３】
また、本発明の第２の側面は、コンピュータとそのコンピュータがプログラムを実行する際の実行状態を保持する実行状態保持手段と、所定のプログラム位置の実行の際の特定の実行状態を退避する実行状態退避手段と、上記実行状態退避手段に退避される特定の実行状態の上記実行状態保持手段への転送履歴を保持する転送履歴保持手段とを備える情報処理装置の起動方法であって、上記実行状態保持手段に保持される実行状態に上記コンピュータがアクセスしたことを検出するアクセス検出手順と、上記アクセスが検出されると上記転送履歴を参照して当該アクセスに係る所定領域が上記実行状態退避手段から上記実行状態保持手段に転送されていない場合には上記所定領域を上記実行状態退避手段から上記実行状態保持手段に転送する必要領域転送手順とを具備することを特徴とする情報処理装置の起動方法またはこれら手順をコンピュータに実行させることを特徴とするプログラムである。これにより、実行状態保持手段に転送されていない領域にアクセスがあった場合にその領域を実行状態退避手段から実行状態保持手段に転送させるという作用をもたらす。
【発明の効果】
【００１４】
本発明によれば、ハイバーネーションイメージの全ての転送を完了する前に、オペレーティングシステムの実行を開始することができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１５】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
図１は、本発明の実施の形態における転送の概要を示す図である。本発明の実施の形態では、情報処理装置においてコンピュータがプログラムを実行する際の実行状態が予めＲＯＭ（Read Only Memory）２２０に退避されていることを想定する。ここで、実行状態とは、情報処理装置におけるレジスタの内容やオペレーティングシステムにより管理されるメモリイメージなどをいう。情報処理装置におけるレジスタは、例えばプロセッサ（ＣＰＵ：Central Processing Unit）のレジスタや周辺回路のレジスタなどを含む。この実行状態の保持されるプログラム位置（プログラムカウンタ）は、後述する解析機器によって任意に設定され得る。
【００１７】
ここでは、ＲＯＭ２２０に保持される実行状態が、一例として＃１から＃２４の２４個の領域により表されている。この領域としては、例えば、固定サイズの連続するメモリ領域であるページにより実現することができる。このＲＯＭ２２０は、例えばフラッシュメモリ（flash memory）などの不揮発性メモリにより構成される。これにより、情報処理装置の電源がオフになった後であっても実行状態をそのまま維持することができる。
【００１８】
情報処理装置の電源がオンになってオペレーティングシステムの起動（情報処理装置の起動）が行われると、実行状態がＲＯＭ２２０からＲＡＭ（Random Access Memory）２３０に転送される。このＲＡＭ２３０は、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などの揮発性メモリにより構成される。ＲＯＭ２２０に退避されている実行状態をＲＡＭ２３０に転送する仕組みはハイバーネーションと呼ばれ、ＲＯＭ２２０に退避されている実行状態はハイバーネーションイメージと呼ばれる。
【００１９】
本発明の実施の形態においては、起動直後にハイバーネーションイメージを部分転送し、全てのハイバーネーションイメージの転送完了前にオペレーティングシステムの実行を開始する。この起動直後の部分的転送を、本発明の実施の形態においては「先行転送」と称する。この先行転送すべきページは、ＲＯＭ２２０内の転送ページリスト５０４に示されている。この転送ページリスト５０４を生成するのが解析機器（図２）であり、この転送ページリスト５０４に基づいて先行転送を行うのが実行機器（図１１）である。
【００２０】
先行転送が終了すると、オペレーティングシステムの実行が開始される。その後、先行転送の対象とならなかったページは、オペレーティングシステムの実行中に並行してバックグラウンドでＲＯＭ２２０からＲＡＭ２３０に転送される。このオペレーティングシステム実行中の転送を、本発明の実施の形態においては「遅延転送」と称する。この遅延転送により、オペレーティングシステムの実行開始から一定時間経過後には全ての実行状態がＲＡＭ２３０に転送される。
【００２１】
図２は、本発明の実施の形態における解析機器１００の一構成例を示す図である。この解析機器１００は、プロセッサ１１０と、ＲＯＭ１２０と、ＲＡＭ１３０と、バス１４０と、入出力インターフェース１５０と、操作部１６０と、通信部１７０と、記憶部１８０と、バスアナライザ１９０とを備えている。
【００２２】
プロセッサ１１０は、解析機器１００の主な処理を行うプロセッサであり、そのアーキテクチャは特に限定されるものではない。ＲＯＭ１２０は、プロセッサ１１０の動作に必要な作業領域を保持するものであり、フラッシュメモリ（flash memory）などの不揮発性メモリにより構成される。ＲＡＭ１３０は主記憶メモリであり、プロセッサ１１０の動作に必要な作業領域、すなわち実行状態を保持し、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などの揮発性メモリにより構成される。
【００２３】
バス１４０は、解析機器１００内の信号のやりとりを行うものである。入出力インターフェース１５０は、操作部１６０、通信部１７０および記憶部１８０と、バス１４０との間の接続を行うものである。
【００２４】
操作部１６０は、ユーザからの操作を受け付けるボタンなどである。この解析機器１００では、解析の終了を外部から指示するための解析終了ボタンがこの操作部１６０に含まれる。ユーザがこの解析終了ボタンを押下すると、入出力インターフェース１５０を介してプロセッサ１１０にその旨の信号が伝達される。
【００２５】
通信部１７０は、外部機器を接続するためのインターフェースであり、例えば、ＲＳ−２３２ＣやＩ２Ｃ等を想定することができる。通信プロトコルについても特に限定されるものではない。
【００２６】
記憶部１８０は、主記憶メモリ以外の記憶装置であり、例えばハードディスクなどを想定することができる。この記憶部１８０にハイバーネーションイメージやファイルシステムなどの各種のデータを記憶することができる。但し、これのデータはＲＯＭ１２０に保持してもよい。
【００２７】
バスアナライザ１９０は、バス１４０上のメモリアクセスを監視して、何れのメモリアドレスにアクセスがあったかを記録するためのものである。バスアナライザ１９０は、一般的には、ＦＰＧＡ（Field Programmable Gate Array）やＰＬＤ（Programmable Logic Devices）などの半導体デバイスによって実現され得る。
【００２８】
なお、バス１４０上のメモリアクセスの監視は、バスアナライザ１９０を使用せずにソフトウェアにより実現することもできる。以下では、バスアナライザ１９０を使用するものをハードウェア方式、ソフトウェアにより実現するものをソフトウェア方式と称する。
【００２９】
図３は、本発明の実施の形態におけるバスアナライザ１９０の一構成例を示す図である。このバスアナライザ１９０は、メモリデータキャプチャ１９１と、デュアルポートメモリ１９２と、シリアルインターフェース１９３とを備えている。
【００３０】
メモリデータキャプチャ１９１は、バス１４０を経由して、プロセッサ１１０からＲＡＭ１３０に対するリードアクセスの履歴を取得するものである。このメモリデータキャプチャ１９１により取得されたリードアクセスの履歴は、デュアルポートメモリ１９２に供給される。
【００３１】
デュアルポートメモリ１９２は、メモリデータキャプチャ１９１により取得されたリードアクセスの履歴を保持するものである。このデュアルポートメモリ１９２は２組のポートを有しており、一方のポートがメモリデータキャプチャ１９１に接続され、他方のポートがシリアルインターフェース１９３に接続される。
【００３２】
デュアルポートメモリ１９２に保持される内容の単位は、プロセッサ１１０がアクセスする物理アドレスに対応したページアドレス単位になる。例えばオペレーティングシステムが動作していればプロセッサ１１０のＭＭＵ（Memory Management Unit）を使うことになるため、アクセスはページ単位で行われる。そのため、アクセスの監視をバイトやワード単位で行うことは無意味であり、本発明の実施の形態におけるメモリアクセス監視もページ単位で行われる。ページサイズとしては、例えば４ＫＢや８ＫＢ等を想定することができるが、これに限定されるものではない。
【００３３】
デュアルポートメモリ１９２では、例えば１ページ当り１バイトが割り当てられ、各ページが何回アクセスされたかが記録される。例えばプロセッサ１１０がＲＡＭ１３０にリードサイクルを１回実行した場合、メモリデータキャプチャ１９１はプロセッサ１１０のリードサイクルを検知し、その物理アドレスに対応するページアドレスに変換する。例えば１ページ４ＫＢとした場合、物理アドレスｘ００２０４Ｃ００番地（ｘ以降の各桁は１６進数を表す。以下、同様。）は、ページアドレスｘ００２０４番地となる。メモリデータキャプチャ１９１は、一旦、デュアルポートメモリ１９２から対応するページのメモリ内容を１バイト読み込み、その値を「１」加算した後、再び対応するメモリ位置に書き込む。カウント値が上限まで達するとそれ以降の書込み処理は行われない。これにより、そのページに何回アクセスしたかを記録することができる。
【００３４】
なお、ここでは、１ページ当り１バイトを割り当てる例について説明したが、例えば１ページ当り１ビットずつを割り当て、各ページがアクセスされたか否かを記録するようにしてもよい。また、デュアルポートメモリ１９２は、例えば、ＦＰＧＡのデュアルポートメモリライブラリにより実現することができる。
【００３５】
シリアルインターフェース１９３は、通信部１７０とのインターフェースである。プロセッサ１１０から特定のコマンド等を発行することにより、デュアルポートメモリ１９２に対してリードサイクルを発行し、デュアルポートメモリ１９２に保持されているデータをリードすることができる。そして、パラレル／シリアル変換後、通信部１７０を経由してプロセッサ１１０にその内容を伝える機能が実装されている。プロトコルや転送速度については特に限定されるものではない。
【００３６】
図４は、本発明の実施の形態における解析機器１００のＲＡＭ１３０のメモリマップの一例を示す図である。このＲＡＭ１３０には、システムＲＡＭ４１０、転送ページリスト作成マップ４２０、および、転送ページリスト作成作業領域４３０の領域が用意されている。
【００３７】
システムＲＡＭ４１０は、ハイバーネーションイメージが転送されるＲＡＭ領域である。また、システムＲＡＭ４１０は、このオペレーティングシステムの動作に必要な記憶領域でもある。ハイバーネーションイメージの内容についてはＲＯＭ１２０の内容と併せて説明する。なお、このハイバーネーションイメージには、ＭＭＵテーブル４１１が含まれる。
【００３８】
転送ページリスト作成マップ４２０は、メモリアクセス監視の際に、アクセスのあったメモリを含むページの番号を記録するものである。具体的には、例えば図５に示すように、Ｎ個のページのそれぞれに対して１ビットずつの領域を設け、アクセスのあったメモリを含むページをオフセット４２１として、該当する領域のアクセス有無４２２を設定することにより、アクセスのあったメモリを含むページの番号を記録する。例えば、このアクセス有無４２２が「１」であれば該当ページへのアクセスが有ったことを示し、「０」であれば該当ページへのアクセスが無いことを示す。
【００３９】
転送ページリスト作成作業領域４３０は、転送ページリスト作成マップ４２０から転送ページリスト５０４を作成するための作業領域である。すなわち、最終的にはこの転送ページリスト作成作業領域４３０に転送ページリスト５０４と同じ内容のリストが保持されることになる。このリストはインサーキットエミュレータ（ＩＣＥ）もしくは同様の処理を行うソフトウェアにより抜き出され、実行機器のＲＯＭ２２０に転送ページリスト５０４として保持される。
【００４０】
図５は、本発明の実施の形態における転送ページリスト作成マップ４２０の一構成例を示す図である。この転送ページリスト作成マップ４２０は、オペレーティングシステムの動作中にアクセスのあったページを記録するためのものである。
【００４１】
転送ページリスト作成マップ４２０の各エントリは、アクセス有無４２２によって構成され、エントリの個数はハイバーネーションイメージのサイズを包含し得るページの数になる。例えば、ハイバーネーションイメージのサイズをSIZE_OF_IMAGE、各ページのサイズをPAGE_SIZEとすると、必要なページ数NUM_PAGEは、次式により求められる。
NUM_PAGE＝（SIZE_OF_IMAGE／PAGE_SIZE）＋１
【００４２】
図６は、本発明の実施の形態におけるＭＭＵテーブル７００の一例を示す図である。このＭＭＵテーブル７００は、解析機器１００ではＲＡＭ１３０のＭＭＵテーブル４１１として実現されるものであり、ＲＯＭ１２０のハイバーネーションイメージにも含まれる。なお、後述の実行機器２００ではＲＡＭ２３０のＭＭＵテーブル６１１として実現されるものであり、ＲＯＭ２２０のハイバーネーションイメージにも含まれる。このＭＭＵテーブル７００は、仮想アドレス７１０の各ページに対してエントリを備える。各エントリは、対応するページの物理アドレス７２０と、ページ有効フラグ７３０と、ページ保護フラグ７４０とを備える。
【００４３】
物理アドレス７２０は、仮想アドレス７１０に対する物理アドレスを示すフィールドである。仮想アドレス７１０によってＭＭＵテーブル７００を索引して、この物理アドレス７２０を参照することにより、仮想アドレスから物理アドレスへの変換を行うことができる。但し、以下に説明するページ有効フラグ７３０が無効を示している場合には、ページフォルトを発生して、ページフォルトハンドラが呼ばれる仕組みになっている。
【００４４】
ページ有効フラグ７３０は、対応するページの有効性を示すフラグである。例えば、このページ有効フラグ７３０が「１」であれば有効を示し、「０」であれば無効を示す。仮想アドレス７１０に対するページ有効フラグ７３０が無効を示している場合には、後述するようにページフォルトハンドラが呼び出される。
【００４５】
ページ保護フラグ７４０は、対応するページの保護属性を示すフラグである。例えば、このページ保護フラグ７４０が「１」であれば特権ページであることを示し、「０」であれば特権ページでないことを示す。
【００４６】
なお、本発明の実施の形態では、システムメモリ上のページがスワッピングやフラグメント等によってハードディスクなどの外部記憶装置にスワップアウトされないことを前提としている。
【００４７】
図７は、本発明の実施の形態における解析機器１００のＲＯＭ１２０のメモリマップの一例を示す図である。このＲＯＭ１２０には、ブートローダ３０１、ハイバーネーションイメージ３０２、プロセッサ・入出力レジスタ初期化パラメータ３０３、バスアナライザコンフィギュレーションデータ３０４、および、ファイルシステム３０５の領域が用意されている。
【００４８】
ブートローダ３０１は、解析機器１００を暫定的に初期化してハイバーネーションイメージ３０２をシステムＲＡＭ４１０に転送できる状態にして、システムを起動するためのものである。ハイバーネーションイメージ３０２は、システムＲＡＭ４１０におけるメモリイメージを退避したものである。プロセッサ・入出力レジスタ初期化パラメータ３０３は、ハイバーネーション復帰の際に、入出力レジスタの復帰、および、プロセッサレジスタの復帰を行うためのパラメータである。バスアナライザコンフィギュレーションデータ３０４は、ＦＰＧＡをバスアナライザ１９０として動作可能状態にさせるための回路データである。ファイルシステム３０５は、オペレーティングシステム３３０によって管理されるファイル管理システムである。
【００４９】
ブートローダ３０１は、ブートローダ初期化モジュール３１１、ハイバーネーションイメージ転送モジュール３１２、システム起動モジュール３１３、バスアナライザ初期化モジュール３１４、および、ＭＭＵ変更モジュール３１５の各プログラムモジュールを備えている。
【００５０】
ブートローダ初期化モジュール３１１は、解析機器１００を暫定的に初期化してハイバーネーションイメージ３０２をシステムＲＡＭ４１０に転送できる状態するプログラムモジュールである。この処理には、ＲＡＭ１３０の初期化やＭＭＵテーブル３３６の初期設定などが含まれる。
【００５１】
ハイバーネーションイメージ転送モジュール３１２は、ハイバーネーションイメージ３０２をシステムＲＡＭ４１０に転送するプログラムモジュールである。
【００５２】
システム起動モジュール３１３は、ハイバーネーションイメージ３０２がシステムＲＡＭ４１０に転送された後、オペレーティングシステムを起動させるプログラムモジュールである。このシステム起動モジュール３１３は、ハイバーネーション復帰モジュール３２０を呼び出すことによりオペレーティングシステムを起動させる。
【００５３】
バスアナライザ初期化モジュール３１４は、バスアナライザ１９０を初期化するプログラムモジュールである。例えばバスアナライザをＦＰＧＡによって構成する場合、内蔵メモリ等からＦＰＧＡのコンフィギュレーションデータを読み出して、コンフィギュレーション作業を行うこと等が想定される。なお、このバスアナライザ初期化モジュール３１４はハードウェア方式において用いられるプログラムモジュールであり、ソフトウェア方式では使用されない。
【００５４】
ＭＭＵ変更モジュール３１５は、システムＲＡＭ４１０に対応するＭＭＵテーブル４１１のページエントリのページ有効フラグ７３０を無効にするプログラムモジュールである。但し、メモリアクセス監視の際に必要なシステムＲＡＭ４１０の一部のページ（メモリアクセス監視のためのページフォルトハンドラ（ハイバーネーションイメージ３０２におけるページフォルトハンドラ３３２に相当）、一般のページフォルトハンドラ（ハイバーネーションイメージ３０２におけるページフォルトハンドラ３３３に相当）、および、ＭＭＵテーブル４１１を含むページ）、ならびに、転送ページリスト作成マップ４２０および転送ページリスト作成作業領域４３０に該当するページについてはページ有効フラグ７３０を有効にする。なお、このＭＭＵ変更モジュール３１５は、ソフトウェア方式において用いられるプログラムモジュールであり、ハードウェア方式では使用されない。
【００５５】
ハイバーネーションイメージ３０２には、ハイバーネーション復帰モジュール３２０のプログラムモジュールの他、オペレーティングシステム３３０の実行状態、および、機器判別ハイバーネーション域が用意されている。
【００５６】
ハイバーネーション復帰モジュール３２０は、オペレーティングシステム３３０とは独立しており、ハイバーネーション起動を実現するためのプログラムモジュールである。ブートローダ３０１のシステム起動モジュール３１３から呼び出される。ハイバーネーション復帰モジュール３２０はＲＯＭ１２０のプロセッサ・入出力レジスタ初期化パラメータ ３０３を用いて、入出力レジスタの復帰、および、プロセッサレジスタの復帰を行い、ハイバーネーションが発生したアドレスへ復帰することにより、ハイバーネーションを実現する。起動後、オペレーティングシステム３３０はファイルシステム３０５をマウントして稼動を始める。
【００５７】
オペレーティングシステム３３０は、オペレーティングシステムのメモリイメージである。
【００５８】
機器判別フラグ３４０は、情報処理装置が解析機器１００であるのか、実行機器２００（図１１参照）であるのかを示すフラグである。例えば、解析機器１００であれば「１」を、実行機器２００であれば「０」を示す。
【００５９】
オペレーティングシステム３３０の実行状態には、未転送ページアクセス保護のためのページフォルトハンドラ３３１、メモリアクセス監視のためのページフォルトハンドラ３３２、一般のページフォルトハンドラ３３３、遅延転送モジュール３３４、その他のカーネル３３５、ＭＭＵテーブル３３６、バスアナライザ制御モジュール３３７、操作監視モジュール３３８、および、転送ページリスト作成モジュール３３９が含まれている。
【００６０】
未転送ページアクセス保護のためのページフォルトハンドラ３３１は、実行機器２００において、ＲＯＭ２２０からＲＡＭ２３０に転送されていないページにアクセスがあった際に必要ページを転送するためのページフォルトハンドラである。すなわち、解析機器１００においては、このページフォルトハンドラ３３１は使用されない。
【００６１】
メモリアクセス監視のためのページフォルトハンドラ３３２は、解析機器１００においてソフトウェア方式が採用される場合に、アクセスのあったページの履歴を取得するためのページフォルトハンドラである。ページフォルトハンドラ３３２は、ページフォルトが発生したページがどのページであるかを解析して、転送ページリスト作成マップ４２０の該当ページに対応するエントリにアクセスがあったことを記録し、またＭＭＵテーブル４１１の該当ページに対応するエントリのページ有効フラグ７３０を有効にして、以後このページのアクセスによってページフォルトが発生しないようにし、その後、ページフォルトの発生した場所へ処理を戻す、という一連の処理を行う。
【００６２】
一般のページフォルトハンドラ３３３は、ページフォルト時に最初に呼ばれるページフォルトハンドラである。プロセッサ１１０が不正なページ（アクセス権限がないページや無効なページ）にアクセスしたことによってページフォルトが発生すると、このページフォルトハンドラ３３３が呼ばれ、機器判別フラグ３４０が解析機器１００であることを示していれば、メモリアクセス監視のためのページフォルトハンドラ３３２を呼び出す。
【００６３】
遅延転送モジュール３３４は、実行機器２００において、オペレーティングシステムの実行開始後に、ＲＯＭ２２０からＲＡＭ２３０への転送を行うプログラムモジュールである。すなわち、解析機器１００においては、この遅延転送モジュール３３４は使用されない。
【００６４】
ＭＭＵテーブル３３６は、図６により説明したＭＭＵテーブル７００であり、ＭＭＵが仮想アドレスを物理アドレスに変換し、もしくは、特定のページのアクセスを保護するために用いられるテーブルである。
【００６５】
バスアナライザ制御モジュール３３７は、ハードウェア方式が採用される場合に、バスアナライザ１９０からメモリアクセス情報を取得するプログラムモジュールである。すなわち、バスアナライザ制御モジュール３３７は、ハードウェア方式のみで使われるプログラムモジュールであり、プロセッサ１１０とバスアナライザ１９０との間の通信を担うものである。
【００６６】
なお、バスアナライザ制御モジュール３３７からバスアナライザ１９０に対して発行されるコマンドとしては、例えば、（１）バスアナライザ初期化、（２）記録内容リセット、（３）記録開始、（４）記録終了、（５）記録結果取得の５つが想定される。（１）バスアナライザ初期化は、バスアナライザ１９０をＦＰＧＡなどで実装する場合、ＦＰＧＡをバスアナライザ１９０として動作可能状態にさせるためのバスアナライザコンフィギュレーションデータ３０４をＦＰＧＡに与えるためのコマンドである。但し、この処理はバスアナライザ初期化モジュール３１４によっても実現可能である。（２）記録内容リセットは、バスアナライザ１９０のデュアルポートメモリ１９２の内容を全てリセットするためのコマンドである。これにより、アクセス記録が全て「メモリアクセス無し」の状態になる。（３）記録開始は、メモリアクセス監視を開始するためのコマンドである。この記録開始は、システム起動モジュール３１３から発行される。（４）記録終了は、メモリアクセス監視を終了するためのコマンドである。この記録終了は、操作監視モジュール３３８から発行される。（５）記録結果取得は、メモリアクセスの記録結果をバスアナライザ１９０から取得するためのコマンドである。
【００６７】
操作監視モジュール３３８は、操作部１６０における監視終了ボタンが押下された否かを監視して、押下されると転送ページリスト作成モジュール３３９に対してその処理を開始するように通知するプログラムモジュールである。
【００６８】
転送ページリスト作成モジュール３３９は、転送ページリスト作成マップ４２０から転送ページリスト５０４を作成するプログラムモジュールである。この転送ページリスト作成モジュール３３９は、ハードウェア方式が採用される場合には、バスアナライザ制御モジュール３３７を介してバスアナライザ１９０からメモリアクセス情報を取得し、転送ページリスト作成マップ４２０に変換する。ソフトウェア方式が採用される場合には、ＲＡＭ１３０上の転送ページリスト作成マップ４２０を用いて、これを転送ページリスト５０４に変換する。
【００６９】
図８は、本発明の実施の形態における解析機器１００の機能構成例を示す図である。この解析機器１００は、図２により説明したように、プロセッサ１１０、ＲＯＭ１２０、および、ＲＡＭ１３０を備えている。ＲＯＭ１２０には、ハイバーネーションイメージ３０２が保持されている。ＲＡＭ１３０には、システムＲＡＭ４１０および転送ページリスト作成マップ４２０の領域が設けられている。
【００７０】
また、この解析機器１００は、イメージ転送部１０１と、アクセス監視部１０８と、転送ページリスト作成部１０９と、監視終了指示部１６１とを備えている。イメージ転送部１０１は、プロセッサ１１０上で動作するプログラム（ハイバーネーションイメージ転送モジュール３１２）により実現される。アクセス監視部１０８は、ハードウェア方式の場合にはバスアナライザ１９０により実現され、ソフトウェア方式の場合にはプロセッサ１１０上で動作するプログラム（ページフォルトハンドラ３３２等）により実現される。監視終了指示部１６１は、操作部１６０の監視終了ボタンにより実現される。転送ページリスト作成部１０９は、プロセッサ１１０上で動作するプログラム（転送ページリスト作成モジュール３３９）により実現される。
【００７１】
イメージ転送部１０１は、ハイバーネーションイメージ３０２をシステムＲＡＭ４１０に転送するものである。この解析機器１００では、ハイバーネーションイメージ３０２は全てシステムＲＡＭ４１０に転送される。
【００７２】
アクセス監視部１０８は、システム起動を契機として、プロセッサ１１０のＲＡＭ１３０に対するリードアクセスを監視するものである。監視の終了は、監視終了指示部１６１によって指示される。その結果、ＲＡＭ１３０上に転送ページリスト作成マップ４２０が生成される。
【００７３】
転送ページリスト作成部１０９は、転送ページリスト作成マップ４２０から転送ページリスト５０４を作成するものである。このようにして作成された転送ページリスト５０４は、ＲＯＭ１２０に退避される。
【００７４】
図９は、本発明の実施の形態における解析機器１００の処理手順例を示す流れ図である。
【００７５】
解析機器１００の電源がオンになると、ブートローダ初期化モジュール３１１において、ブートローダ３０１の初期化が行われる（ステップＳ９１１）。これにより、ＲＡＭ１３０の初期化やＭＭＵの初期設定など、ハイバーネーションイメージ３０２を転送するための設定が行われる。その後、ハイバーネーションイメージ転送モジュール３１２において、ハイバーネーションイメージ３０２がシステムＲＡＭ４１０に全て転送される（ステップＳ９１２）。
【００７６】
そして、アクセス解析のための準備処理が行われる（ステップＳ９１３）。すなわち、ソフトウェア方式の場合、ＭＭＵ変更モジュール３１５においてＭＭＵテーブル４１１のエントリの書き換えが行われる。ハードウェア方式の場合、バスアナライザ１９０が初期化される。
【００７７】
そして、転送ページリスト作成マップ４２０が全てアクセス無しに初期化された後（ステップＳ９１４）、システム起動モジュール３１３においてオペレーティングシステムが起動される（ステップＳ９１５）。すなわち、ハイバーネーション復帰モジュール３２０のエントリへ飛び、ハイバーネーション起動が完了し、オペレーティングシステム３３０が起動される。また、オペレーティングシステム３３０上でアプリケーションが起動される（ステップＳ９１６）。
【００７８】
オペレーティングシステム３３０（ならびにアプリケーション）の動作中のメモリアクセスが監視される（ステップＳ９２０）。このメモリアクセスの監視は、監視終了ボタンが押下されるまで行われる（ステップＳ９１７）。
【００７９】
すなわち、システムＲＡＭ４１０に対するリードアクセスがあると、そのメモリのアドレスを含むページのアクセスが記録される。このアクセス監視にはソフトウェア方式とハードウェア方式の２通りがある。
【００８０】
ソフトウェア方式の場合には、アクセスがあるたびにページフォルトが発生し、ページフォルトハンドラ３３２において転送ページリスト作成マップ４２０に当該アクセスの履歴が記録される。なお、一度アクセスが記録されたページはＭＭＵテーブル４１１のエントリのページ有効フラグ７３０が有効に設定されるため、２度目からのそのページのアクセスではページフォルトは発生しない。
【００８１】
ハードウェア方式の場合には、バスアナライザ１９０の内部で記録が行われる。例えばＳＲＡＭ（Static Random Access Memory）の場合は、アドレス信号（ＡＤ＃）、チップセレクト信号（ＣＳ＃）、データリード信号（ＲＤ＃）などの信号が監視される。プロセッサ１１０がリードサイクルを発行すると、これらの信号がアサートされる。バスアナライザ１９０はそれを検出し、その際の物理アドレスを取り込み、上述したページアドレスに変換し、そのページにアクセスされた回数をバスアナライザ１９０のデュアルポートメモリ１９２に蓄積する。
【００８２】
アクセス監視が終了すると、転送ページリスト作成モジュール３３９において、転送ページリスト作成マップ４２０が取得される（ステップＳ９１８）。ソフトウェア方式の場合、メモリ上にある転送ページリスト作成マップ４２０が利用される。ハードウェア方式の場合、バスアナライザ制御モジュール３３７において、バスアナライザ１９０のデュアルポートメモリ１９２からアクセス記録データが取得されて、転送ページリスト作成マップ４２０のフォーマットに変換される。
【００８３】
その後、転送ページリスト作成モジュール３３９において、転送ページリスト作成マップ４２０のフォーマットから転送ページリスト５０４のフォーマットに変換される（ステップＳ９１９）。
【００８４】
図１０は、本発明の実施の形態における解析機器１００のメモリアクセス監視処理（図９のステップＳ９２０に相当）の処理手順例を示す流れ図である。
【００８５】
プロセッサ１１０によって同ページ内で最初のリードアクセスが行われると、ページフォルトが発生する。ページフォルトが発生すると（ステップＳ９２１）、以下の処理が行われる。
【００８６】
まず、ページフォルトのあったアドレスが取得される（ステップＳ９２２）。そして、ページフォルトの発生したアドレスを含むページ番号（PAGE_NUM）が計算される（ステップＳ９２３）。
【００８７】
ページフォルトの発生したアドレスがシステムＲＡＭ４１０の外であれば（ステップＳ９２４）、通常のページフォルト処理が行われる（ステップＳ９２８）。なお、組込系のシステムの場合は、通常、この時点でシステム停止となる。
【００８８】
ページフォルトの発生したアドレスがシステムＲＡＭ４１０上であれば（ステップＳ９２４）、ページフォルトの発生したアドレスを含むページ番号（PAGE_NUM）に対応する転送ページリスト作成マップ４２０上のエントリのデータがアクセス有に設定される（ステップＳ９２５）。また、ページフォルトの発生したアドレスを含むページ番号（PAGE_NUM）に対応するＭＭＵテーブル４１１のエントリのページ有効フラグ７３０が有効に設定される（ステップＳ９２６）。その後、ページフォルトの発生したアドレスに復帰する（ステップＳ９２７）。
【００８９】
図１１は、本発明の実施の形態における実行機器２００の一構成例を示す図である。この実行機器２００は、プロセッサ２１０と、ＲＯＭ２２０と、ＲＡＭ２３０と、バス２４０と、入出力インターフェース２５０と、操作部２６０と、記憶部２８０とを備えている。
【００９０】
これらの構成は、図２における解析機器１００のプロセッサ１１０、ＲＯＭ１２０、ＲＡＭ１３０、バス１４０、入出力インターフェース１５０、操作部１６０、および、記憶部１８０と同様であるため、説明を省略する。この実行機器２００では、解析機器１００のようにメモリアクセスの履歴を取得する必要がないため、バスアナライザ１９０および通信部１７０に相当する構成要素を備えていない。
【００９１】
図１２は、本発明の実施の形態における実行機器２００のＲＡＭ２３０のメモリマップの一例を示す図である。このＲＡＭ２３０には、システムＲＡＭ６１０の領域が用意されている。実行機器２００では、解析機器１００のようにメモリアクセスの履歴を取得する必要がないため、ＲＡＭ２３０には転送ページリスト作成マップ４２０や転送ページリスト作成作業領域４３０に相当する領域は設けられていない。
【００９２】
システムＲＡＭ６１０は、システムＲＡＭ４１０と同様にハイバーネーションイメージが転送されるＲＡＭ領域であり、ＭＭＵテーブル６１１が含まれる。
【００９３】
図１３は、本発明の実施の形態における実行機器２００のＲＯＭ２２０のメモリマップの一例を示す図である。このＲＯＭ２２０には、ブートローダ５０１、ハイバーネーションイメージ５０２、プロセッサ・入出力レジスタ初期化パラメータ５０３、転送ページリスト５０４、および、ファイルシステム５０５の領域が用意されている。
【００９４】
これらのうち、ハイバーネーションイメージ５０２、プロセッサ・入出力レジスタ初期化パラメータ５０３、および、ファイルシステム５０５については、解析機器１００におけるハイバーネーションイメージ３０２、プロセッサ・入出力レジスタ初期化パラメータ３０３、および、ファイルシステム３０５と同様であるため、個別の説明は省略する。
【００９５】
ブートローダ５０１は、実行機器２００を暫定的に初期化してハイバーネーションイメージ５０２をシステムＲＡＭ６１０へ転送できる状態にして、オペレーティングシステムを起動するためのものである。このブートローダ５０１は、ブートローダ初期化モジュール５１１、ハイバーネーションイメージ部分転送モジュール５１２、システム起動モジュール５１３、および、ＭＭＵ部分変更モジュール５１５の各プログラムモジュールを備えている。
【００９６】
ブートローダ初期化モジュール５１１は、解析機器１００のブートローダ初期化モジュール３１１と同様であり、実行機器２００を暫定的に初期化してハイバーネーションイメージ５０２を転送できる状態するプログラムモジュールである。この処理には、ＲＡＭ２３０の初期化やＭＭＵの初期設定などが含まれる。
【００９７】
ハイバーネーションイメージ部分転送モジュール５１２は、ハイバーネーションイメージ５０２をシステムＲＡＭ６１０に部分的に先行転送するプログラムモジュールである。転送ページリスト５０４に含まれるページに対応したハイバーネーションイメージ５０２上のページのみがハイバーネーションイメージ部分転送モジュール５１２によって転送される。
【００９８】
システム起動モジュール５１３は、解析機器１００のシステム起動モジュール３１３と同様であり、ハイバーネーションイメージ５０２が部分的に先行転送された後、システム起動をさせるプログラムモジュールである。このシステム起動モジュール５１３は、ハイバーネーション復帰モジュール５２０を呼び出すことによりオペレーティングシステムを起動させる。
【００９９】
ＭＭＵ部分変更モジュール５１５は、システムＲＡＭ６１０に対応するＭＭＵテーブル６１１のページエントリにおいて、ハイバーネーションイメージ部分転送モジュール ５１２によって転送されなかったページ（未転送ページ）のエントリのページ有効フラグ ７３０を全て無効にするプログラムモジュールである。
【０１００】
これにより、システムＲＡＭ６１０上のハイバーネーションイメージ５０２の未転送のページにメモリアクセスがあると、ページフォルトが発生するようになる。従って、オペレーティングシステムが起動されて以降、この未転送ページへアクセスがあるとオペレーティングシステムのページフォルトハンドラ５３３を経由して未転送ページアクセス保護のためのページフォルトハンドラ５３１が呼ばれることとなる。
【０１０１】
未転送ページアクセス保護のためのページフォルトハンドラ５３１では、未転送のページに対応したハイバーネーションイメージ５０２上のページをシステムＲＡＭ６１０上の所定の場所に転送して、ＭＭＵページテーブル６１１上のこのページに対応したエントリのページ有効フラグ７３０を有効にして、ページフォルトの発生した場所へ処理を戻す（ページフォルト発生前の状態に戻す）、という一連の処理が行われる。これにより、以降はこのページにアクセスがあってもページフォルトは発生しなくなる。
【０１０２】
システム起動後の一定期間にアクセスされるページは、ハイバーネーションイメージ部分転送モジュール５１２により既に転送済みであるが、ＲＴＣなどの割り込みやユーザの突発的な操作によって、解析機器１００によるメモリアクセス記録時にはアクセスの無かったメモリにアクセスが発生してしまう可能性があるため、このような処理が必要になる。
【０１０３】
ハイバーネーション復帰モジュール５２０は、ＲＯＭ２２０のプロセッサ・入出力レジスタ初期化パラメータ５０３を用いて、入出力レジスタやプロセッサレジスタの復帰を行い、ハイバーネーションイメージ５０２が退避された際の元のアドレスへジャンプすることにより、ハイバーネーションを実現する。オペレーティングシステムの起動後、オペレーティングシステムはファイルシステム５０５をマウントして稼動を開始する。
【０１０４】
機器判別フラグ５４０は、ＲＯＭ１２０の機器判別フラグ３４０と同様に、情報処理装置が解析機器１００であるのか、実行機器２００であるのかを示すフラグである。ページフォルトハンドラ５３３は、この機器判別フラグ５４０を参照して、解析機器１００であるか実行機器２００であるのかを判別して、呼び出すハンドラを決定する。実行機器２００の場合、未転送ページアクセス保護のためのページフォルトハンドラ５３１が呼び出される。また、遅延転送モジュール５３４は、この機器判別フラグ５４０を参照して、実行機器２００である場合には自分自身を動作させるように制御する。
【０１０５】
オペレーティングシステム５３０のページフォルトハンドラ５３３、その他のカーネル５３５、ＭＭＵテーブル５３６は、本来のオペレーティングシステムに存在するものと同様である。
【０１０６】
ページフォルトハンドラ５３３は、ページフォルトが発生した際に呼ばれるハンドラである。プロセッサ２１０が不正なページ（アクセス権限がないページや無効なページ）にアクセスしたことによってページフォルトが発生するとこのページフォルトハンドラ５３３が呼ばれる。そして、機器判別フラグ５４０が実行機器２００であることを示している場合、未転送ページアクセス保護のためのページフォルトハンドラ５３１が呼ばれる。
【０１０７】
ＭＭＵテーブル５３６は、ＭＭＵが仮想メモリを物理メモリに変換し、または、特定のページのアクセスを保護するために使用されるテーブルである。
【０１０８】
なお、バスアナライザ制御モジュール５３７、操作監視モジュール５３８、および、転送ページリスト作成モジュール５３９は、実行機器２００では使用されない。但し、メモリアクセスの振る舞いを解析機器１００と一致させるために、ハイバーネーションイメージ５０２として保持しておく必要がある。
【０１０９】
図１４は、本発明の実施の形態における転送ページリスト５０４の一構成例を示す図である。この転送ページリスト５０４は、ＲＯＭ先頭番地５０４１、ＲＡＭ先頭番地５０４２、転送対象エントリ５０４３乃至５０４８、および、終了コード５０４９を備えている。
【０１１０】
ＲＯＭ先頭番地５０４１は、ＲＯＭ２２０における転送元の先頭番地を格納するものである。ＲＡＭ先頭番地５０４２は、ＲＡＭ２３０における転送先の先頭番地を格納するものである。具体的には、このＲＡＭ先頭番地５０４２はシステムＲＡＭ６１０の先頭の物理アドレスになる。
【０１１１】
転送対象エントリ５０４３乃至５０４８は、転送対象となるページ番号を格納するものである。この転送対象エントリの数は可変であり、最終の転送対象エントリの後ろには終了コード５０４９が付加される。この終了コード５０４９としては、ページ番号として使用されない値（例えば、ｘＦＦＦＦＦＦＦＦ）が用いられる。
【０１１２】
図１５は、本発明の実施の形態における実行機器２００の機能構成例を示す図である。この実行機器２００は、図１１により説明したように、プロセッサ２１０、ＲＯＭ２２０、および、ＲＡＭ２３０を備えている。ＲＯＭ２２０には、ハイバーネーションイメージ５０２および転送ページリスト５０４が保持されている。ＲＡＭ２３０には、システムＲＡＭ６１０の領域が設けられている。
【０１１３】
また、この実行機器２００は、先行転送部２０１と、遅延転送部２０２と、必要ページ転送部２０３と、アクセス検出部２０９とを備えている。先行転送部２０１は、プロセッサ１１０上で動作するプログラム（ハイバーネーションイメージ部分転送モジュール５１２）により実現される。遅延転送部２０２は、プロセッサ１１０上で動作するプログラム（遅延転送モジュール５３４）により実現される。必要ページ転送部２０３は、プロセッサ１１０上で動作するプログラム（ページフォルトハンドラ５３１）により実現される。アクセス検出部２０９は、プロセッサ１１０上で動作するプログラム（ページフォルトハンドラ５３３等）により実現される。
【０１１４】
先行転送部２０１は、転送ページリスト５０４に示される転送対象のページについてハイバーネーションイメージ５０２からシステムＲＡＭ６１０に転送するものである。この先行転送部２０１による先行転送は、ブート時にブートローダ５０１におけるハイバーネーションイメージ部分転送モジュール５１２によって行われる。
【０１１５】
遅延転送部２０２は、先行転送部２０１による先行転送が終了してオペレーティングシステムが起動された後に、転送ページリスト５０４に示される転送対象のページ以外のページについてハイバーネーションイメージ５０２からシステムＲＡＭ６１０に転送するものである。この遅延転送部２０２による遅延転送は、オペレーティングシステム５３０の遅延転送モジュール５３４によって他のアプリケーションプログラムの実行と並行して行われる。その際、遅延転送部２０２は、転送ページリスト５０４を参照してもよく、また、後述のようにＭＭＵテーブル６１１を全てチェックしてもよい。
【０１１６】
必要ページ転送部２０３は、先行転送部２０１による先行転送が終了してオペレーティングシステムが起動された後、遅延転送部２０２による遅延転送が行われる前に未転送ページにアクセスが生じた際に、当該ページについてハイバーネーションイメージ５０２からシステムＲＡＭ６１０に転送するものである。この必要ページ転送部２０３による動的な転送は、ページフォルト発生時にページフォルトハンドラ５３１によって行われる。
【０１１７】
アクセス検出部２０９は、プロセッサ２１０からのメモリアクセスを検出して論理アドレスから物理アドレスへの変換を行い、また、ＭＭＵテーブル６１１を変更するものである。アクセス検出部２０９は、各ページがハイバーネーションイメージ５０２からシステムＲＡＭ６１０に転送される度に、ＭＭＵテーブル６１１の対応するエントリのページ有効フラグ７３０を有効に設定する。
【０１１８】
図１６は、本発明の実施の形態における実行機器２００の処理手順例を示す流れ図である。
【０１１９】
実行機器２００の電源がオンになると、ブートローダ初期化モジュール５１１において、ブートローダ５０１の初期化が行われる（ステップＳ９５１）。これにより、ＲＡＭ２３０の初期化やＭＭＵの初期設定など、ハイバーネーションイメージ５０２を転送するための設定が行われる。その後、ハイバーネーションイメージ部分転送モジュール５１２において、転送ページリスト５０４に従って、ハイバーネーションイメージ５０２の一部がシステムＲＡＭ６１０に先行転送される（ステップＳ９６０）。
【０１２０】
そして、ＭＭＵ部分変更モジュール５１５において、ＭＭＵテーブル６１１のエントリの書換えが行われる（ステップＳ９５４）。すなわち、先行転送で転送されなかったページに対応するＭＭＵテーブル６１１のエントリのページ有効フラグ７３０は全て無効にされる。これにより、未転送ページにアクセスがあった場合に、ページフォルトが発生するようになる。
【０１２１】
その後、システム起動モジュール５１３においてオペレーティングシステムが起動される（ステップＳ９５５）。すなわち、ハイバーネーション復帰モジュール５２０のエントリへ飛び、ハイバーネーション起動が完了し、オペレーティングシステム５３０が起動される。また、オペレーティングシステム５３０上でアプリケーションが起動される（ステップＳ９５６）。さらに、遅延転送および未転送ページの保護が起動される（ステップＳ９５７およびＳ９５８）。これにより、アプリケーションの処理と並行して、遅延転送（ステップＳ９７０）および未転送ページ保護（ステップＳ９８０）が行われる。
【０１２２】
図１７は、本発明の実施の形態における実行機器２００の先行転送（図１６のステップＳ９６０に相当）の処理手順例を示す流れ図である。
【０１２３】
まず、転送ページリスト５０４からＲＯＭ先頭番地５０４１およびＲＡＭ先頭番地５０４２が取得される（ステップＳ９６１およびＳ９６２）。そして、カウンタｉが「０」にリセットされる（ステップＳ９６３）。
【０１２４】
転送ページリスト５０４からｉ番目の転送対象のページ番号が取得される（ステップＳ９６４）。この取得されたページ番号が終了コードを示していれば、先行転送は終了する（ステップＳ９６５）。そうでなければ、１ページ分の転送が行われる（ステップＳ９６６）。ここで、ＲＯＭ先頭番地５０４１をrom_start、ＲＡＭ先頭番地５０４２をram_start、転送対象のページ番号をpage_num、１ページを４ＫＢとすると、「rom_start＋（page_num×4KB）」から４ＫＢ分のデータが、「ram_start＋（page_num×4kb）」に転送される。
【０１２５】
１ページ分の転送が行われた後は、カウンタｉが「１」加算されて（ステップＳ９６７）、ＭＭＵテーブル６１１のエントリのページ有効フラグ７３０が有効に設定される（ステップＳ９６８）。
【０１２６】
図１８は、本発明の実施の形態における実行機器２００の遅延転送（図１６のステップＳ９７０に相当）の処理手順例を示す流れ図である。
【０１２７】
まず、ＭＭＵテーブル６１１の検索用のポインタが初期化される（ステップＳ９７１）。そして、ＭＭＵテーブル６１１においてポインタが示すエントリが索引され、そのページ有効フラグ７３０が有効を示しているか否かが判断される（ステップＳ９７２）。
【０１２８】
ステップＳ９７２においてページ有効フラグ７３０が無効を示している場合には、以下の処理が行われる。すなわち、そのエントリの物理アドレスが取得され（ステップＳ９７３）、その物理アドレスから転送ページリスト５０４のＲＡＭ先頭番地５０４２に保持される物理アドレスを減算することにより、転送対象の先頭からのオフセットが求められる。ＲＯＭ２２０上のハイバーネーションイメージ５０２のページのオフセットも同様である。これにより、このオフセットから１ページ分が転送される（ステップＳ９７４）。そして、ＭＭＵテーブル６１１のエントリのページ有効フラグ７３０が有効に設定され（ステップＳ９７５）、上述のステップＳ９７２以降の処理が繰り返される。
【０１２９】
ＭＭＵテーブル６１１のポインタがＭＭＵテーブル６１１の最終エントリを示している場合には、遅延転送を終了する（ステップＳ９７６）。そうでない場合には、ＭＭＵテーブル６１１のポインタが次のエントリを示すように更新される（ステップＳ９７７）。
【０１３０】
図１９は、本発明の実施の形態における実行機器２００の未転送ページ保護（図１６のステップＳ９８０に相当）の処理手順例を示す流れ図である。
【０１３１】
ページ有効フラグ７３０が有効でなく、ページフォルトが発生すると（ステップＳ９８１）、はじめに、遅延転送（図１６のステップＳ９７０に相当）の処理が全て終了しているか否かが判断される（ステップＳ９８２）。遅延転送が終了していれば、未転送ページは存在しないため未転送ページ保護を終了する。一方、遅延転送が終了していなければ、そのページフォルトのあったアドレスが取得され（ステップＳ９８３）、そのアドレスを含むページ番号が算出される（ステップＳ９８４）。
【０１３２】
ページフォルトの発生したアドレスがシステムＲＡＭ６１０の外であれば（ステップＳ９８５）、通常のページフォルト処理が行われる（ステップＳ９８９）。なお、組込系のシステムの場合は、通常、この時点でシステム停止となる。
【０１３３】
ページフォルトの発生したアドレスがシステムＲＡＭ６１０上であれば（ステップＳ９８５）、ページフォルトの発生したアドレスを含むページ番号（PAGE_NUM）に対応するハイバーネーションイメージ５０２上のページがシステムＲＡＭ６１０に転送される（ステップＳ９８６）。また、ページフォルトの発生したアドレスを含むページ番号（PAGE_NUM）に対応するＭＭＵテーブル６１１のエントリのページ有効フラグ７３０が有効に設定される（ステップＳ９８７）。その後、ページフォルトの発生したアドレスに復帰する（ステップＳ９８８）。
【０１３４】
このように、本発明の実施の形態によれば、解析機器１００によって生成された転送ページリスト５０４に基づいて、実行機器２００の先行転送部２０１がＲＯＭ２２０のハイバーネーションイメージ５０２をＲＡＭ２３０へ部分的に先行転送し、オペレーティングシステムの起動後に遅延転送部２０２がハイバーネーションイメージ５０２の残りを遅延転送することにより、ハイバーネーションイメージ５０２を全て転送するのを待つことなく、オペレーティングシステムを起動することができる。
【０１３５】
また、遅延転送によって未だ転送されていないページにアクセスが生じた場合には、必要ページ転送部２０３がＲＡＭ２３０へ動的に転送を行うため、解析機器１００によって想定されていなかったアクセスについても対応することができる。
【０１３６】
情報処理装置の適用例として、例えばデジタルスチルカメラにおいては、起動直後に通常使用されると考えられるユーザインターフェースおよびシャッター操作のためには、ハイバーネーションイメージの２０乃至３０％程度しか必要とされないと推測される。したがって、先行転送としてハイバーネーションイメージの一部を転送した後に、速やかに動作を開始することができると推定される。
【０１３７】
なお、本発明の実施の形態では、先行転送部２０１において予めハイバーネーションイメージの一部が先行転送されることを想定していたが、必要ページ転送部２０３による動的転送が行われる場合には、先行転送を省略することも可能である。但し、例外処理を行うためのメモリ領域（例外ベクタを含む）およびＭＭＵテーブルの領域は、予めＲＯＭからＲＡＭに転送しておく必要がある。オペレーティングシステムが起動されると、まず、オペレーティングシステムのエントリポイントにおいてページフォルトが発生し、ＲＡＭ上で例外処理が行われて、必要ページ転送部２０３によってＲＯＭからＲＡＭへの転送が動的に行われる。もっとも、この必要ページ転送部２０３による転送はある程度の時間を要するため、起動直後にアクセスされることが予想される領域については先行転送により予め転送を済ませておく方が性能的に有利であると考えられる。
【０１３８】
また、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【０１３９】
すなわち、請求項１において、コンピュータは例えばプロセッサ２１０に対応する。また、実行状態保持手段は例えばＲＡＭ２３０に対応する。また、実行状態退避手段は例えばＲＯＭ２２０に対応する。また、転送履歴保持手段は例えばＭＭＵテーブル６１１に対応する。また、アクセス検出手段は例えばアクセス検出部２０９に対応する。また、必要領域転送手段は例えば必要ページ転送部２０３に対応する。
【０１４０】
また、請求項５において、先行転送手段は例えば先行転送部２０１に対応する。
【０１４１】
また、請求項６において、遅延転送手段は例えば遅延転送部２０２に対応する。
【０１４２】
また、請求項７において、コンピュータは例えばプロセッサ１１０に対応する。また、第２のアクセス検出手段は例えばアクセス監視部１０８に対応する。また、先行転送対象保持手段は例えば転送ページリスト５０４に対応する。
【０１４３】
また、請求項８および９において、コンピュータは例えばプロセッサ２１０に対応する。また、実行状態保持手段は例えばＲＡＭ２３０に対応する。また、実行状態退避手段は例えばＲＯＭ２２０に対応する。また、転送履歴保持手段は例えばＭＭＵテーブル６１１に対応する。また、アクセス検出手順は例えばステップＳ９８１に対応する。また、必要領域転送手順は例えばステップＳ９８５に対応する。
【０１４４】
なお、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。
【図面の簡単な説明】
【０１４５】
【図１】本発明の実施の形態における転送の概要を示す図である。
【図２】本発明の実施の形態における解析機器１００の一構成例を示す図である。
【図３】本発明の実施の形態におけるバスアナライザ１９０の一構成例を示す図である。
【図４】本発明の実施の形態における解析機器１００のＲＡＭ１３０のメモリマップの一例を示す図である。
【図５】本発明の実施の形態における転送ページリスト作成マップ４２０の一構成例を示す図である。
【図６】本発明の実施の形態におけるＭＭＵテーブル７００の一例を示す図である。
【図７】本発明の実施の形態における解析機器１００のＲＯＭ１２０のメモリマップの一例を示す図である。
【図８】本発明の実施の形態における解析機器１００の機能構成例を示す図である。
【図９】本発明の実施の形態における解析機器１００の処理手順例を示す流れ図である。
【図１０】本発明の実施の形態における解析機器１００のメモリアクセス監視処理の処理手順例を示す流れ図である。
【図１１】本発明の実施の形態における実行機器２００の一構成例を示す図である。
【図１２】本発明の実施の形態における実行機器２００のＲＡＭ２３０のメモリマップの一例を示す図である。
【図１３】本発明の実施の形態における実行機器２００のＲＯＭ２２０のメモリマップの一例を示す図である。
【図１４】本発明の実施の形態における転送ページリスト５０４の一構成例を示す図である。
【図１５】本発明の実施の形態における実行機器２００の機能構成例を示す図である。
【図１６】本発明の実施の形態における実行機器２００の処理手順例を示す流れ図である。
【図１７】本発明の実施の形態における実行機器２００の先行転送の処理手順例を示す流れ図である。
【図１８】本発明の実施の形態における実行機器２００の遅延転送の処理手順例を示す流れ図である。
【図１９】本発明の実施の形態における実行機器２００の未転送ページ保護の処理手順例を示す流れ図である。
【符号の説明】
【０１４６】
１００  解析機器
１０１  イメージ転送部
１０８  アクセス監視部
１０９  転送ページリスト作成部
１１０、２１０  プロセッサ
１２０、２２０  ＲＯＭ
１３０、２３０  ＲＡＭ
１４０、２４０  バス
１５０、２５０  入出力インターフェース
１６０、２６０  操作部
１６１  監視終了指示部
１７０  通信部
１８０、２８０  記憶部
１９０  バスアナライザ
１９１  メモリデータキャプチャ
１９２  デュアルポートメモリ
１９３  シリアルインターフェース
２００  実行機器
２０１  先行転送部
２０２  遅延転送部
２０３  必要ページ転送部
２０９  アクセス検出部
３３６、４１１、５３６、６１１、７００  ＭＭＵテーブル
４２０  転送ページリスト作成マップ
５０４  転送ページリスト
【図１】
2007334383.tif 000003
【図２】
2007334383.tif 000004
【図３】
2007334383.tif 000005
【図４】
2007334383.tif 000006
【図５】
2007334383.tif 000007
【図６】
2007334383.tif 000008
【図７】
2007334383.tif 000009
【図８】
2007334383.tif 000010
【図９】
2007334383.tif 000011
【図１０】
2007334383.tif 000012
【図１１】
2007334383.tif 000013
【図１２】
2007334383.tif 000014
【図１３】
2007334383.tif 000015
【図１４】
2007334383.tif 000016
【図１５】
2007334383.tif 000017
【図１６】
2007334383.tif 000018
【図１７】
2007334383.tif 000019
【図１８】
2007334383.tif 000020
【図１９】
2007334383.tif 000021