(57)【特許請求の範囲】
【請求項１】
主処理部と、
複数のコードブロックを含むプログラムを記憶した主記憶部と、
互いに独立して電源をオンオフ可能な複数のメモリブロックを含む補助記憶部を含み、前記複数のコードブロックの情報に基づいて、前記複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、前記複数のコードブロックの内少なくとも１つのコードブロックを、前記主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードする補助処理部と、
を含み、
前記コードブロックの情報はジャンプ先コードブロックを表す情報を含み、
前記補助処理部は、実行対象のコードブロックと、前記コードブロックの情報に、前記実行対象のコードブロックからのジャンプ先として設定されているジャンプ先コードブロックと、の各々を前記メモリブロックの内少なくとも１つのメモリブロックにロードする、
情報処理装置。
【請求項２】
主処理部と、
複数のコードブロックを含むプログラムを記憶した主記憶部と、
互いに独立して電源をオンオフ可能な複数のメモリブロックを含む補助記憶部を含み、前記複数のコードブロックの情報に基づいて、前記複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、前記複数のコードブロックの内少なくとも１つのコードブロックを、前記主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードする補助処理部と、
を含み、
前記コードブロックの情報は、個々のコードブロックのサイズを表す情報を含み、
前記補助処理部は、
複数のコードブロックをロードする際に、前記複数のコードブロックに含まれる第１のコードブロックをロードしたメモリブロックの空き容量が、前記複数のコードブロックに含まれる第２のコードブロックのサイズ以上である場合、当該メモリブロックに第２のコードブロックもロードする、
情報処理装置。
【請求項３】
前記補助処理部は、
電源をオンした前記少なくとも１つのメモリブロックにロードしたコードブロックの実行を終了した後、前記少なくとも１つのメモリブロックの電源をオフする、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記補助処理部は、
前記メモリブロックにロードしたコードブロックを実行する際に、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードが出現した場合に、前記コードの実行を中止する、
請求項１〜請求項３の何れか１項に記載の情報処理装置。
【請求項５】
メインプロセッサ、主記憶部及びコプロセッサを含む情報処理装置の互いに独立してオンオフ可能な複数のメモリブロックを有する補助記憶部を含むコプロセッサが、
複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、
複数のコードブロックの内少なくとも１つのコードブロックを、複数のコードブロックを含むプログラムを記憶した前記主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードし、
前記コードブロックの情報はジャンプ先コードブロックを表す情報を含み、
前記少なくとも１つのメモリブロックにロードする際に、実行対象のコードブロックと、前記コードブロックの情報に、前記実行対象のコードブロックからのジャンプ先として設定されているジャンプ先コードブロックと、の各々を前記メモリブロックの内少なくとも１つのメモリブロックにロードする、
コード実行方法。
【請求項６】
メインプロセッサ、主記憶部及びコプロセッサを含む情報処理装置の互いに独立してオンオフ可能な複数のメモリブロックを有する補助記憶部を含むコプロセッサが、
複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、
複数のコードブロックの内少なくとも１つのコードブロックを、複数のコードブロックを含むプログラムを記憶した前記主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードし、
前記コードブロックの情報は、個々のコードブロックのサイズを表す情報を含み、
複数のコードブロックをロードする際に、前記複数のコードブロックに含まれる第１のコードブロックをロードしたメモリブロックの空き容量が、前記複数のコードブロックに含まれる第２のコードブロックのサイズ以上である場合、当該メモリブロックに第２のコードブロックもロードする、
コード実行方法。
【請求項７】
メインプロセッサ、主記憶部及びコプロセッサを含む情報処理装置の互いに独立して電源をオンオフ可能な複数のメモリブロックを有する補助記憶部を含むコプロセッサに、
複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、
複数のコードブロックの内少なくとも１つのコードブロックを、複数のコードブロックを含む実行対象プログラムを記憶した主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードし、
前記コードブロックの情報はジャンプ先コードブロックを表す情報を含み、
前記少なくとも１つのメモリブロックにロードする際に、実行対象のコードブロックと、前記コードブロックの情報に、前記実行対象のコードブロックからのジャンプ先として設定されているジャンプ先コードブロックと、の各々を前記メモリブロックの内少なくとも１つのメモリブロックにロードする、
コード実行処理を実行させるコード実行プログラム。
【請求項８】
メインプロセッサ、主記憶部及びコプロセッサを含む情報処理装置の互いに独立して電源をオンオフ可能な複数のメモリブロックを有する補助記憶部を含むコプロセッサに、
複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、
複数のコードブロックの内少なくとも１つのコードブロックを、複数のコードブロックを含む実行対象プログラムを記憶した主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードし、
前記コードブロックの情報は、個々のコードブロックのサイズを表す情報を含み、
複数のコードブロックをロードする際に、前記複数のコードブロックに含まれる第１のコードブロックをロードしたメモリブロックの空き容量が、前記複数のコードブロックに含まれる第２のコードブロックのサイズ以上である場合、当該メモリブロックに第２のコードブロックもロードする、
コード実行処理を実行させるコード実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、情報処理装置、コード実行方法及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置の高性能化、高機能化に伴い、情報処理装置の消費電力は増大してきている。情報処理装置の消費電力を抑制するために、複数のＲＡＭ（Random Access Memory）を有する電子回路で、ＲＡＭ毎に電源をオン／オフし、使用するＲＡＭのみに電力を供給する技術が存在する。また、主記憶部のメモリの割り当て状況を調べ、未使用メモリバンクの電源をオフし、使用メモリバンクの電源をオンする技術も存在する。また、メモリ獲得時及びメモリ解放時に、メモリの使用部分及び未使用部分の情報を更新し、当該情報に基づいて電源制御を行う技術も存在する。また、複数アプリケーションの同時動作を禁止することなどにより、メモリの使用量を抑制し、メモリモジュール単位で給電を制御する技術も存在する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０５−１５１１０７号公報
【特許文献２】特開平０９−２１２４１６号公報
【特許文献３】特開２００５−１９６５４５号公報
【特許文献４】特開２００８−４６９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記ＲＡＭ及びメモリは情報処理装置の主処理部の記憶部である。しかしながら、現在、主処理部に加えて、補助処理部を含む情報処理装置が普及してきており、当該補助処理部で実行されるプログラムの大容量化に伴い、当該プログラムをロードする補助処理部の補助記憶部による消費電力も増大してきている。従って、補助処理部の補助記憶部による消費電力を抑制する技術が望まれている。
【０００５】
開示の技術は、１つの側面として、情報処理装置の補助処理部の補助記憶部による消費電力を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
開示の技術において、主記憶部は、複数のコードブロックを含むプログラムを記憶する。補助処理部は、互いに独立して電源をオンオフ可能な複数のメモリブロックを含む補助記憶部を含み、複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンする。また、補助処理部は、残りのメモリブロックの電源をオフし、複数のコードブロックの内少なくとも１つのコードブロックを、主記憶部から、電源をオンした少なくとも１つのメモリブロックにロードする。
【発明の効果】
【０００７】
開示の技術は、１つの側面として、情報処理装置の補助処理部の補助記憶部による消費電力を抑制することが可能となる、という効果を有する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理装置の要部機能の一例を示すブロック図である。
【図２】第１実施形態及び第２実施形態に係る情報処理装置の電気系の構成の一例を示すブロック図である。
【図３】実施形態に係るメインプロセッサのコプロセッサ初期化処理の一例を示すフローチャートである。
【図４Ａ】第１実施形態に係る管理表の一例を示す概念図である。
【図４Ｂ】第１実施形態に係るメモリブロック−コードブロック対応表の一例を示す概念図である。
【図４Ｃ】第１実施形態に係るメモリブロック−コードブロック対応表の一例を示す概念図である。
【図５】実施形態に係るメインプロセッサの管理表作成処理の一例を示すフローチャートである。
【図６】実施形態に係るコプロセッサのコード実行処理の一例を示すフローチャートである。
【図７】実施形態に係るコプロセッサのロード・アンロード処理の一例を示すフローチャートである。
【図８】第１実施形態及び第２実施形態に係るローダブルプログラムに含まれるコードブロックの一例を示す概念図である。
【図９Ａ】実施形態に係るジャンプコードの実行の一例を説明するための概念図である。
【図９Ｂ】実施形態に係るジャンプコードの実行の一例を説明するための概念図である。
【図９Ｃ】実施形態に係るジャンプコードの実行の一例を説明するための概念図である。
【図９Ｄ】実施形態に係るジャンプコードの実行の一例を説明するための概念図である。
【図１０Ａ】実施形態に係るジャンプコードの実行の一例を説明するための概念図である。
【図１０Ｂ】実施形態に係るジャンプコードの実行の一例を説明するための概念図である。
【図１１Ａ】第２実施形態に係る管理表の一例を示す概念図である。
【図１１Ｂ】第２実施形態に係るメモリブロック−コードブロック対応表の一例を示す概念図である。
【図１１Ｃ】第２実施形態に係るメモリブロック−コードブロック対応表の一例を示す概念図である。
【図１２】第３実施形態に係る情報処理装置の電気系の構成の一例を示すブロック図である。
【図１３】第３実施形態に係る情報処理装置で実行される歩行検知及び位置検出処理の一例を示すフローチャートである。
【図１４】第３実施形態に係るコプロセッサの割り当て決定処理の一例を示すフローチャートである。
【図１５Ａ】第３実施形態に係る管理表の一例を示す概念図である。
【図１５Ｂ】第３実施形態に係るメモリブロック−コードブロック対応表の一例を示す概念図である。
【図１５Ｃ】第３実施形態に係るメモリブロック−コードブロック対応表の一例を示す概念図である。
【図１６Ａ】第３実施形態に係るコプロセッサのローカルメモリのメモリブロックにロードされているコードブロックの一例を示す概念図である。
【図１６Ｂ】第３実施形態に係るコプロセッサのローカルメモリのメモリブロックにロードされるコードブロックの一例を示す概念図である。
【図１７】関連技術に係る情報処理装置の電気系の構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
［第１実施形態］
以下、図面を参照して開示の技術の実施形態の一例である第１実施形態を詳細に説明する。
【００１０】
一例として図１に情報処理装置１０を示す。情報処理装置１０は、主処理部１２及び補助処理部１４を含む。主処理部１２は、第１記憶部１８を含む。補助処理部１４は、補助記憶部である第２記憶部２２を含む。情報処理装置１０は、さらに、主記憶部２４を含む。補助処理部１４は、情報処理装置１０で実行すべき情報処理の一部を主処理部１２に代わって実行する。
【００１１】
情報処理装置１０は、一例として図２に示すように、メインプロセッサ３２、コプロセッサ３４、メインメモリ３６、二次メモリ３８及びセンサ４０を含む。メインプロセッサ３２、コプロセッサ３４、メインメモリ３６、及び二次メモリ３８は、バス５４を介して相互に接続されている。主処理部１２として機能するメインプロセッサ３２は、第１記憶部１８として機能するローカルメモリ４２を含み、補助処理部１４として機能するコプロセッサ３４は、第２記憶部２２として機能するローカルメモリ４６を含む。なお、ローカルメモリ４２は、メインプロセッサ３２に設けられたキャッシュメモリであってもよく、ローカルメモリ４６は、コプロセッサ３４に設けられたキャッシュメモリであってもよい。ローカルメモリ４６は、各々が０〜Ｎのメモリブロック番号を有するＮ＋１個のメモリブロックに分割されている。Ｎは１以上の任意の整数であってよい。コプロセッサ３４は、ローカルメモリ４６等に電力を供給する電源部４４を含み、メモリブロックの各々は相互に独立して、電源部４４によって給電（電源）がオン／オフ可能とされる。電源部４４は、例えば、電源ＩＣ（Integral Circuit）であってよい。  ローカルメモリ４６は、メモリブロックに分割されている。センサ４０は、コプロセッサ３４に接続されており、検出データをコプロセッサ３４へ出力する。
【００１２】
メインプロセッサ３２のローカルメモリ４２、コプロセッサ３４のローカルメモリ４６、及びメインメモリ３６は、ＲＡＭ（Random Access Memory）などの揮発性のメモリである。二次メモリ３８は、例えば、フラッシュメモリ、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、又はＳＳＤ（Solid State Drive）などの不揮発性のメモリである。
【００１３】
メインプロセッサ３２は、二次メモリ３８からプログラム、例えば、コプロセッサ初期化プログラム４８を読み出してローカルメモリ４２にロードし、当該プログラムを実行する。コプロセッサ３４は、後述するように、二次メモリ３８からプログラム、例えば、コード実行プログラム５０及び実行対象プログラムであるローダブルプログラム５２を読み出してローカルメモリ４６にロードし、当該プログラムを実行する。ローダブルプログラム５２は、例えば、センサ４０の作動を制御すると共にセンサ４０から検出データを取得する処理を実行するためのプログラムであってよい。
【００１４】
次に、本実施形態の作用として、コプロセッサ３４の作動時に情報処理装置１０で実行される処理について、説明する。図３は、メインプロセッサ３２によって実施されるコプロセッサ初期化処理の一例を示す。
【００１５】
例えば、情報処理装置１０の図示しない電源がオンに切り替えられた等の場合、メインプロセッサ３２は、ステップ１０２で、コプロセッサ３４の常駐プログラム、例えば、コード実行プログラム５０を二次メモリ３８から読み出し、メインメモリ３６にロードする。メインプロセッサ３２は、ステップ１０４で、コプロセッサ３４に当該常駐プログラムをコプロセッサ３４のローカルメモリ４６にロードするように指示する。メインプロセッサ３２は、ステップ１０６で、ローダブルプログラム５２に含まれるコードブロックの情報を登録した管理表４３をメインプロセッサ３２のローカルメモリ４２上に作成する。メインプロセッサ３２は、ステップ１０８で、当該管理表４３をコプロセッサ３４に送信し、処理を終了する。
【００１６】
コードブロックは、例えば、ローダブルプログラム５２に含まれるコードを機能毎に所定のメモリブロックサイズより小さいサイズに分割したブロックである。所定のメモリブロックサイズは、例えば、５０ＫＢであってよい。図８に、ローダブルプログラム５２に含まれるコードブロックＣ１〜Ｃ６及びコードブロックＣ１〜Ｃ６間のジャンプ関係の一例を示す。ローダブルプログラム５２のコードがコプロセッサ３４によって実行された場合、コードブロックＣ１のジャンプ先コードブロックはコードブロックＣ２である。また、コードブロックＣ２のジャンプ先候補コードブロックはコードブロックＣ３及びコードブロックＣ４である。ジャンプ先候補コードブロックとは、コードブロックに含まれるジャンプコードのジャンプ条件によってはジャンプ先コードブロックとなる可能性を有するコードブロックである。
【００１７】
図４Ａに管理表の一例を示す。管理表４５Ａは、例えば、コードブロックの名称であるコードブロック名と、当該コードブロックのコードサイズ及び当該コードブロックの先頭コードが記憶されたメインメモリ３６のアドレスであるコード格納アドレスと、を関連付けて登録する。
【００１８】
図５に、図３のステップ１０６の管理表作成処理の詳細を示す。メインプロセッサ３２は、ステップ１１２で、ローダブルプログラム５２に含まれるコードブロックの情報であるローダブルブロック情報５３を二次メモリ３８から読み出す。ローダブルブロック情報５３は、例えば、ローダブルプログラム５２に含まれるコードブロックの各々のコードブロック名及びコードサイズを含む。メインプロセッサ３２は、ステップ１１４で、ローダブルプログラム５２を二次メモリ３８から読み出し、メインメモリ３６にロードする。メインプロセッサ３２は、ステップ１１６で、ローダブルプログラム５２に含まれる個々のコードブロックについて、コードブロック名及びコードサイズをローダブルブロック情報から各々読み出して管理表４５Ａに各々登録する。また、メインプロセッサ３２は、個々のコードブロックの先頭コードが記憶されているメインメモリ３６のアドレスをコード格納アドレスとして管理表４５Ａに各々登録する。例えば、図４Ａに示す例では、コードブロックＣ１のコードサイズは１ＫＢであり、コード格納アドレスはＡ１である。
【００１９】
図６に、コプロセッサ３４がコード実行プログラム５０を実行することによって実施されるコード実行処理の一例を示す。初期状態では、コプロセッサ３４のローカルメモリ４６のメモリブロックは、常駐プログラムであるコード実行プログラム５０及び管理表４５Ａをロードしたメモリブロック以外は全て電源がオフに設定されている。なお、以下では、説明を容易にするために、ローダブルプログラム５２のコードブロックがロードされるメモリブロックについてのみ説明する。コプロセッサ３４は、ステップ１２２で、管理表４５Ａの先頭レコードに含まれているコードブロック名で示されるコードブロックを当該先頭レコードに含まれているコード格納アドレスで示されるメインメモリ３６のアドレスから読み出す。また、コプロセッサ３４は、読み出したコードブロックをロードするローカルメモリ４６のメモリブロックの電源をオンに切り替える。コプロセッサ３４は、ステップ１２４で、読み出したコードブロックをメモリブロック４６のうちステップ１２２で電源をオンに切り替えたメモリブロックにロードする。
【００２０】
コプロセッサ３４は、ステップ１２６で、メモリブロックにロードしたコードブロックのコードを実行する。コプロセッサ３４は、ステップ１２８で、ローダブルプログラム５２の実行が終了したか否かを判定する。ステップ１２８の判定が肯定された場合、コプロセッサ３４は、コード実行処理を終了する。ステップ１２８の判定が否定された場合、コプロセッサ３４は、ステップ１３０で、現在実行しているコードが、当該コードが含まれているコードブロックと異なるコードブロックへのジャンプコードであるか否か判定する。
【００２１】
ステップ１３０の判定が否定された場合、コプロセッサ３４は、ステップ１２６に戻り、コードブロックの次のコードを実行する。ステップ１３０の判定が肯定された場合、コプロセッサ３４は、ステップ１３１で、ジャンプ先コードブロックのコードブロック名を取得する。コプロセッサ３４は、ステップ１３２で、ジャンプ先コードブロックのコードブロック名が管理表４５Ａに登録されているか否か判定する。ステップ１３２の判定が否定された場合、コプロセッサ３４は、ステップ１３６で、ジャンプコードの実行を中止し、コード実行処理を終了する。ステップ１３２の判定が肯定された場合、コプロセッサ３４は、ステップ１３４で、メモリブロックにロードされているコードブロックをアンロードし、当該メモリブロックの電源をオフに切り替える。また、コプロセッサ３４は、ジャンプ先コードブロックをロードするメモリブロックの電源をオンに切り替え、当該メモリブロックにジャンプ先コードブロックをロードする。コプロセッサ３４は、ステップ１２６に戻り、ジャンプ先コードブロックのコードを実行する。
【００２２】
図７に、図６のステップ１３４のロード・アンロード処理の詳細を例示する。コプロセッサ３４は、ステップ１４２で、アンロードするコードブロックを特定する。アンロードするコードブロックとして特定されるコードブロックは、例えば、コードの実行が終了したコードブロックである。コプロセッサ３４は、ステップ１４４で、特定されたコードブロックをメインメモリ３６にアンロード、即ち、書き戻す。
【００２３】
コプロセッサ３４は、ステップ１４６で、メモリブロックにロードするコードブロックを特定する。ロードするコードブロックとして特定されるブロックは、例えば、ジャンプ先コードブロックである。コプロセッサ３４は、ステップ１４８で、特定されたコードブロックをロードするメモリブロックを決定する。決定されるメモリブロックは、例えば、現在コードブロックがロードされていないメモリブロックのうちメモリブロック番号が最小のメモリブロックである。
【００２４】
コプロセッサ３４は、ステップ１５０で、電源をオフに切り替えるメモリブロックを特定する。電源をオフに切り替えるメモリブロックとして特定されるメモリブロックは、例えば、ステップ１４４でコードブロックがアンロードされ、ステップ１４８で特定されたコードブロックをロードするメモリブロックとして決定されなかったメモリブロックである。コプロセッサ３４は、ステップ１５２で、特定されたメモリブロックの電源をオフに切り替える。コプロセッサ３４は、ステップ１５４で、ステップ１４８で決定されたメモリブロックであり、かつ、電源がオフであるメモリブロックの電源をオンに切り替える。コプロセッサ３４は、ステップ１５６で、ステップ１４６で特定されたコードブロックを、ステップ１４８で決定されたメモリブロックにロードする。
【００２５】
詳細には、コード実行処理が開始されると、例えば、メモリブロック番号が最も小さいメモリブロック０の電源がオンに切り替えられる。次に、図４Ａに例示する管理表の先頭レコードに含まれるコードブロックＣ１がメインメモリ３６からメモリブロック０にロードされる。図４Ｂにメモリブロック番号と当該メモリブロックにロードされているコードブロックのコードブロック名との関係を示すメモリブロック−コードブロック対応表を例示する。ここで、図８に例示するように、コードブロックＣ１のジャンプ先コードブロックがコードブロックＣ２であるとする。コードブロックＣ１に含まれるコードブロックＣ２へのジャンプコードが実行されると、コードブロックＣ１がメモリブロック０からアンロードされ、メモリブロック０の電源がオフに切り替えられる。次に、図４Ｃのメモリブロック−コードブロック対応表に例示するように、メモリ番号が最も小さく、コードブロックがロードされていないメモリブロック０の電源がオンに切り替えられ、メモリブロック０にコードブロックＣ２がロードされる。
【００２６】
次に、図６のステップ１２４でコードブロックをメモリブロックにロードする際にジャンプコードを置き換えることにより、ステップ１３０、１３１、１３２、１３４、１３６を実現する実施の一例を説明する。図９ＡにコードブロックＣ１の一例を示す。コードブロックＣ１は、コードブロックＣ１からコードブロックＣ２にジャンプするジャンプコード「ＪＭＰ  Ｃ１、Ｃ２」を含む。図６のステップ１２４で、コードブロックＣ１がメモリブロックにロードされる際に、当該ジャンプコードは、図９Ｂに例示するように、例えば、アドレスＢ１に退避させられ、図９Ｃに例示するように、割り込みコード「ＩＮＴ  Ｘ」に置き換えられる。
【００２７】
割り込みコード「ＩＮＴ  Ｘ」が実行されると（ステップ１３０）、図９Ｄに例示する割り込みテーブルが参照され、図６のコード実行処理の割り込みルーチンであるコードブロックＸ１が実行される。図９ＣのコードブロックＸ１及び図９Ｄの割り込みテーブルは、図３のステップ１０２及びステップ１０４で、常駐プログラムの一部として、二次メモリ３８からローカルメモリ４６にロードされている。ローカルメモリコードブロックＸ１が実行されると、図９Ｂに示す退避情報から、ジャンプ先コードブロックＣ２が取得され（ステップ１３１）、ジャンプ先コードブロックが正当であるか否か、即ち、ジャンプ先コードブロックのコードブロック名が管理表４５Ａに登録されているか否か判定される（ステップ１３２）。判定が肯定されると、ロード・アンロード処理が実行され（ステップ１３４）、コードブロックＣ２へのジャンプが実行される。即ち、コードブロックＸ２の処理が終了し、図６のステップ１２６に戻る。判定が否定されると、ジャンプコードの実行が中止され（ステップ１３６）、コード実行処理が終了される。
【００２８】
次に、図６のステップ１２４でコードブロックをメモリブロックにロードする際にジャンプコードを置き換えることにより、ステップ１３０、１３１、１３２、１３４、１３６を実現する実施の別の一例を説明する。図６のステップ１２４で、コードブロックＣ１がメモリブロックにロードされる際に、図１０Ａに例示するように、ジャンプコード「ＪＭＰ  Ｃ１、Ｃ２」は、スタック領域へのデータ格納コード「ＰＵＳＨ  Ｃ２、Ｃ１」及び図６のコード実行処理の割り込みルーチンであるコードブロックＸ２へのジャンプコード「ＪＭＰ  Ｘ２」に置き換えられる。スタック領域へのデータ格納コードが実行されると、図１０Ｂに例示するように、スタック領域にジャンプ元コードブロックのコードブロック名及びジャンプ先コードブロックのコードブロック名が格納される。コードブロックＸ２へのジャンプコードが実行されると（ステップ１３０）、次に、コードブロックＸ２のコードが実行される。図１０ＡのコードブロックＸ２は、図３のステップ１０２及びステップ１０４で、常駐プログラムの一部として、二次メモリ３８からローカルメモリ４６にロードされている。
【００２９】
コードブロックＸ２は、スタック領域からのデータ取り出しコード「ＰＯＰ  ＤＳＴ、ＳＲＣ」を含む。スタック領域からのデータ取り出しコードが実行されると、スタック領域に格納されているジャンプ先コードブロックのコードブロック名が取得される（ステップ１３１）。次に、ジャンプ先コードブロックが正当であるか否か、即ち、ジャンプ先コードブロックのコードブロック名が管理表４５Ａに登録されているか否か判定される（ステップ１３２）。判定が肯定されると、ロード・アンロード処理が実行され（ステップ１３４）、コードブロックＣ２が実行される。即ち、コードブロックＸ２の処理が終了し、図６のステップ１２６に戻る。判定が否定されると、ジャンプコードの実行が中止され（ステップ１３６）、コード実行処理が終了される。
【００３０】
なお、コードブロックが、プログラムに含まれるコードを機能毎に分割したブロックである例について説明したが、本実施形態は、これに限定されない。例えば、コードブロックは、プログラムに含まれるコードを所定のサイズ毎に分割したブロックであってもよい。
【００３１】
なお、ローダブルプログラム５２に含まれるコードブロックの情報であるローダブルブロック情報が、予め、二次メモリ３８に記憶されている例について説明した。しかしながら、本実施形態はこれに限定されない。例えば、メインプロセッサ３２がコプロセッサ初期化処理を実行する前に、メインプロセッサ３２が、ローダブルプログラム５２を解析し、当該ローダブルプログラム５２をコードブロックに分割すると共にローダブルブロック情報を作成してもよい。この場合、ローダブルブロック情報は、二次メモリ３８に記憶されてもよいし、メインメモリ３６に記憶されてもよい。
【００３２】
なお、コードの実行が終了したコードブロックをメモリブロックからアンロードし、メモリブロックの電源をオフに切り替える例について説明したが、本実施形態はこれに限定されない。例えば、コードの実行終了後に一定期間が経過した後、当該コードブロックへのジャンプが実施されない場合に、当該コードブロックをメモリブロックからアンロードし、当該メモリブロックの電源をオフに切り替えてもよい。
【００３３】
なお、メモリブロックの電源をオフに切り替える前に、メモリブロックのコードブロックをアンロードする例について説明したが、本実施形態はこれに限定されない。例えば、コードブロックがコードの実行によって変更されていない場合、当該コードブロックをアンロードせず、単にメモリブロックの電源をオフするようにしてもよい。ローカルメモリ４６は揮発性メモリであるため、メモリブロックの電源をオフすることにより、その内容は消去される。
【００３４】
なお、コードブロックをロードするメモリブロックを決定する際に、メモリブロックのうちメモリブロック番号が最小で、かつ、コードブロックがロードされていないメモリブロックをロードするメモリブロックとして決定する例について説明した。しかしながら、本実施形態はこれに限定されない。例えば、メモリブロック番号が最大のメモリブロック、または、使用頻度が最小のメモリブロック、或いは乱数等を用いてランダムに選択したメモリブロックを、コードブロックをロードするメモリブロックとして決定してもよい。
【００３５】
本実施形態では、コプロセッサ３４のローカルメモリ４６を複数のメモリブロックに分割し、コードブロックをロードするメモリブロックの電源をオンし、コードブロックをロードしないメモリブロックの電源をオフする。また、ローダブルプログラム５２の内、実行に用いられるコードブロックをメモリブロックにロードし、残りのコードブロックはメモリブロックにロードしない。これにより、電源をオンするメモリブロックの数を低減し、コプロセッサ３４のローカルメモリ４６による消費電力を抑制することが可能となる。
【００３６】
また、本実施形態では、メインメモリ３６からコプロセッサ３４のローカルメモリ４６のメモリブロックへのコードブロックのロード及びメモリブロックからメインメモリ３６へのコードブロックのアンロードを、コプロセッサ３４自身によって実行する。即ち、当該ロード・アンロードにメインプロセッサ３２を使用しないため、メインプロセッサ３２の消費電力を抑制することが可能となる。また、コプロセッサ３４によってコードが実行されている間、メインプロセッサ３２はスリープ状態にしてもよく、この場合、メインプロセッサ３２の消費電力をさらに抑制することが可能となる。
【００３７】
また、本実施形態では、ジャンプ先コードブロックが正当であるか否か判定し、ジャンプ先コードブロックが正当でないと判定された場合、即ち、管理表にジャンプ先コードブロックのコードブロック名が登録されていない場合、ジャンプコードの実行を中止する。これにより、コードを実行する際に、無限ループに陥る、などの異常動作を回避することが可能となる。
【００３８】
［第２実施形態］
次に、開示の技術の実施形態の一例である第２実施形態を説明する。第１実施形態と同様の構成及び作用については説明を省略する。
【００３９】
第２実施形態では、メインプロセッサ３２が、図５のステップ１１２で、ローダブルブロック情報５３を二次メモリ３８から読み出す。ローダブルブロック情報５３は、例えば、ローダブルプログラム５２に含まれるコードブロックの各々のコードブロック名、コードサイズ及びジャンプ先コードブロックまたはジャンプ先候補コードブロックのコードブロック名を含む。メインプロセッサ３２は、ステップ１１６で、コードブロックのコードブロック名、コードブロックのコードサイズ、及びメインメモリ３６におけるコード格納アドレスを、図１１Ａに例示するように、管理表４５Ｂに登録する。メインプロセッサ３２は、さらに、コードブロックのジャンプ先コードブロックまたはジャンプ先候補コードブロックのコードブロック名も管理表４５Ｂに登録する。
【００４０】
図１１Ａは、第２実施形態の管理表４５Ｂの一例を示す。図４Ａに示す第１実施形態の管理表４５Ａとの差異は、第２実施形態の管理表４５Ｂには、ジャンプ先コードブロックまたはジャンプ先候補コードブロックのコードブロック名がコードブロックのコードブロック名と対応付けて登録される点である。図８に例示したローダブルプログラム５２では、例えば、コードブロックＣ１のジャンプ先コードブロックはコードブロックＣ２であり、コードブロックＣ２のジャンプ先候補コードブロックはコードブロックＣ３及びＣ４である。図１１Ａに示す管理表４５Ｂには、これらのジャンプ先コードブロックまたはジャンプ先候補コードブロックのコードブロック名が登録されている。
【００４１】
また、コプロセッサ３４は、図６のステップ１２２で、管理表４５Ｂの先頭レコードに含まれるジャンプ先コードブロック名で示されるジャンプ先候補であるコードブロックの数も加えた数のメモリブロックの電源をオンに切り替える。コプロセッサ３４は、ステップ１２４で、管理表の先頭レコードに含まれるコードブロック名で示されるコードブロックをメモリブロックにロードする際、ジャンプ先コードブロック名で示されるコードブロックもメモリブロックにロードする。
【００４２】
すなわち、まず、図１１Ｂに例示するように、メモリブロック０及びメモリブロック１の２つのメモリブロックの電源がオンに切り替えられる。次に、メモリブロック０及びメモリブロック１の各々には、コードブロックＣ１及びコードブロックＣ１のジャンプ先コードブロックであるコードブロックＣ２がロードされる。
【００４３】
また、コプロセッサ３４は、図７のステップ１４６において、管理表４５Ｂのレコードに含まれるジャンプ先コードブロック名のコードブロックを、ロードするコードブロックとして特定する。当該レコードは、ジャンプコードが示すジャンプ先コードブロックのコードブロック名を含むレコードである。コプロセッサ３４は、図７のステップ１４８で、特定されたコードブロックをロードするメモリブロックを決定し、ステップ１５４で、コードブロックをロードするメモリブロックとして決定されたメモリブロックの電源をオンに切り替える。また、コプロセッサ３４は、ステップ１５６で、コードブロックの各々をローカルメモリ４６のメモリブロックの各々にロードする。
【００４４】
図８に例示するように、コードブロックＣ１からジャンプ先コードブロックであるコードブロックＣ２にジャンプした場合について検討する。この場合、図１１Ｃに例示するように、管理表４５Ｂのコードブロック名Ｃ２を含むレコードに含まれるジャンプ先コードブロックＣ３及びＣ４をロードするコードブロックとして特定する。２つのコードブロックをメモリブロックにロードするために、２つのメモリブロック、すなわち、メモリブロック０及びメモリブロック２の電源をオンに切り替え、コードブロックＣ３及びＣ４を各々メモリブロック０及びメモリブロック２にロードする。
【００４５】
なお、コプロセッサ３４は、図７のステップ１４２で、コードの実行を終了したコードブロックをアンロードするコードブロックとして特定する。したがって、図１１Ｃにおいて、コードの実行が終了したコードブロックＣ１はアンロードされているが、コードの実行が終了していない、即ち、実行中であるコードブロックＣ２はアンロードされていない。また、コプロセッサ３４は、図７のステップ１４２で、コードの実行を終了したコードブロックに加え、ジャンプ先コードブロックとしてメモリブロックにロードされたが、実行されなかったコードブロックもアンロードするコードブロックとして特定してもよい。
【００４６】
なお、管理表４５Ｂの先頭レコードに含まれるコードブロック名で示されるコードブロックをメモリブロックにロードする際、ジャンプ先コードブロック名で示されるコードブロックもメモリブロックにロードする例について説明した。また、コードブロックへのジャンプが実行された場合に、当該コードブロックのコードブロック名を含むレコードに含まれるジャンプ先コードブロック名で示されるコードブロックもメモリブロックにロードする例について説明した。しかしながら、本実施形態はこれに限定されない。例えば、ジャンプ先コードブロックまたはジャンプ先候補コードブロックからのジャンプ先コードブロックまたはジャンプ先候補コードブロックもメモリブロックにロードするようにしてもよい。
【００４７】
なお、コードブロックＣ２及びＣ３を各々メモリブロック０及びメモリブロック２にロードする例について説明したが、本実施形態はこれに限定されない。例えば、コードブロックＣ２及びＣ３はメモリブロック２及びメモリブロック３に各々ロードされてもよい。
【００４８】
本実施形態では、管理表４５Ｂがジャンプ先コードブロックまたはジャンプ先候補コードブロックのコードブロック名を含み、コプロセッサ３４のローカルメモリ４６のメモリブロックにジャンプ先コードブロックまたはジャンプ先候補コードブロックもロードする。これにより、ジャンプコードが実行される際に、ジャンプ先コードブロックはローカルメモリ４６にロードされているため、ジャンプ先コードブロックのコードが実行されるまでの時間を短縮することが可能となる。
【００４９】
本実施形態では、コプロセッサ３４のローカルメモリ４６を複数のメモリブロックに分割し、コードブロックをロードするメモリブロックの電源をオンに切り替え、コードブロックをロードしないメモリブロックの電源をオフに切り替える。また、ローダブルプログラム５２の内、実行に用いられるコードブロックをメモリブロックにロードし、残りのコードブロックはメモリブロックにロードしない。これにより、電源をオンに切り替えられたメモリブロックの数を低減し、コプロセッサ３４のローカルメモリ４６による消費電力を抑制することが可能となる。
【００５０】
また、本実施形態では、メインメモリ３６からコプロセッサ３４のローカルメモリ４６のメモリブロックへのコードブロックのロード及びメモリブロックからメインメモリ３６へのコードブロックのアンロードを、コプロセッサ３４自身によって実行する。即ち、当該ロード・アンロードにメインプロセッサ３２を使用しないため、メインプロセッサ３２の消費電力を抑制することが可能となる。また、コプロセッサ３４によってコードが実行されている間、メインプロセッサ３２をスリープ状態としてもよく、この場合、メインプロセッサ３２の消費電力をさらに抑制することが可能となる。
【００５１】
また、本実施形態では、ジャンプ先コードブロックが正当であるか否か判定し、ジャンプ先コードブロックが正当でないと判定された場合、即ち、管理表にジャンプ先コードブロックのコードブロック名が登録されていない場合、ジャンプコードの実行を中止する。これにより、コードを実行する際に、無限ループに陥る、などの異常動作を回避することが可能となる。
【００５２】
［第３実施形態］
次に、開示の技術の実施形態の一例である第３実施形態を説明する。第１実施形態と同様の構成及び作用については説明を省略する。図１２に例示するように、第３実施形態の情報処理装置１０は、コプロセッサ３４に加速度センサ４０Ａ及びＢｌｕｅｔｏｏｔｈ（登録商標）デバイス４０Ｂが接続され、ディスプレイ５６を含む点で、第１実施形態の情報処理装置１０と異なる。Ｂｌｕｅｔｏｏｔｈデバイス４０Ｂは、Ｂｌｕｅｔｏｏｔｈの規格に準拠した無線通信を行うことが可能なデバイスである。
【００５３】
また、第３実施形態では、ローダブルプログラム５４が、歩行検知コードブロックＲ１、歩行判定コードブロックＤ１、及び歩行判定・位置判定コードブロックＤ２を含む。図１３に例示するように、コプロセッサ３４は、ステップ１６２で、歩行検知コードブロックＲ１及び歩行判定コードブロックＤ１をコプロセッサ３４のローカルメモリ４６にロードする。また、コプロセッサ３４は、歩行検知コードブロックＲ１及び歩行判定コードブロックＤ１のコードを並行して実行する。加速度センサ４０Ａの信号に基づいて、コプロセッサ３４は、情報処理装置１０を携帯するユーザの歩行が停止されたか否かを判定する。ステップ１６４の判定が否定された場合、コプロセッサ３４は、ステップ１６２に戻る。
【００５４】
ステップ１６４の判定が肯定された場合、コプロセッサ３４は、ステップ１６６で、歩行検知コードブロックＲ１及び歩行判定・位置判定コードブロックＤ２をローカルメモリ４６にロードする。また、コプロセッサ３４は、歩行検知コードブロックＲ１及び歩行判定・位置判定コードブロックＤ２のコードを並行して実行する。Ｂｌｕｅｔｏｏｔｈデバイス４０Ｂが店舗からのビーコン信号を受信することにより、コプロセッサ３４が、ステップ１６８で、ユーザが店舗の前に位置するか否かを判定する。ステップ１６８の判定が肯定されると、メインプロセッサ３２が、ステップ１７０で、ディスプレイ５６に当該店舗のクーポンを表示して処理を終了する。ステップ１６８の判定が否定されると、コプロセッサ３４は、ステップ１６２に戻る。
【００５５】
以下、第３実施形態におけるコードブロックのロードについて詳述する。第３実施形態では、図７のステップ１４８に例示するように、コードブロックをロードするローカルメモリ４６のメモリブロックを決定する際に、ロードするコードブロックのコードブロック名を含むレコードに含まれるコードサイズを、管理表４５Ｃから取得する。管理表４５Ｃを図１５Ａに例示する。図１４のステップ１８２に一例を示す。ステップ１８４で、メモリブロックの空きサイズを取得し、ステップ１８６で、コードブロックサイズがメモリブロックの空きサイズより大きいか否か判定する。
【００５６】
ステップ１８６で、判定が否定された場合、コプロセッサ３４は、メモリブロックにコードブロックをロードする。ステップ１８６で、判定が肯定された場合、コプロセッサ３４は、ステップ１８４で、他のメモリブロックの空きメモリサイズを取得し、ステップ１８６に進む。
【００５７】
コードブロックＤ１、Ｄ２、及びＲ１の情報が図１５Ａに例示する管理表４５Ｃで示される。初期状態（図示せず）では、メモリブロックの各々のサイズは５０ＫＢである。コードブロックＲ１及びコードブロックＤ１のコードが並行して実行される場合、コードブロックＲ１のサイズは３０ＫＢであり、メモリブロック０の空きサイズ５０ＫＢより小さいので、コードブロックＲ１は、図１５Ｂ及び図１６Ａに例示されるように、メモリブロック０にロードされる。また、コードブロックＤ１は１０ＫＢであり、メモリブロック０の空きサイズ（５０ＫＢ−３０ＫＢ＝）２０ＫＢより小さいので、コードブロックＤ１もメモリブロック０にロードされる。コードブロックＤ１は、メモリブロック０の先頭アドレスからコードブロックＲ１のサイズである３０ＫＢオフセットしたアドレスを先頭アドレスとしてロードされる。図１５Ｂに例示されるように、メモリブロック０の空きサイズは、（２０ＫＢ−１０ＫＢ＝）１０ＫＢとなる。
【００５８】
一方、コードブロックＲ１及びコードブロックＤ２のコードが並行して実行される場合、コードブロックＲ１は３０ＫＢであり、メモリブロック０の空きサイズ５０ＫＢより小さいので、図１５Ｃ及び図１６Ｂに例示されるように、コードブロックＲ１はメモリブロック０にロードされる。また、コードブロックＤ２は３０ＫＢであり、メモリブロック０の空きサイズ（５０ＫＢ−３０ＫＢ＝）２０ＫＢより大きいので、コードブロックＤ２はメモリブロック０にはロードされず、メモリブロック１にロードされる。
【００５９】
即ち、コードブロックＲ１及びコードブロックＤ２のコードが並行して実行される場合、２つのメモリブロックの電源がオンされ、残りのメモリブロックの電源がオフされる。また、コードブロックＲ１及びコードブロックＤ１のコードが並行して実行される場合、１つのメモリブロックの電源がオンされ、残りのメモリブロックの電源がオフされる。
【００６０】
なお、第３実施形態では、第１実施形態の管理表４５Ａと同様にジャンプ先コードブロック名を有さない管理表４５Ｃ（図１５Ａ）を用いる例について説明したが、本実施形態はこれに限定されない。第２実施形態の管理表４５Ｂと同様に、第３実施形態の管理表はジャンプ先コードブロック名を有してもよい。この場合、第２の実施形態と同様に、ジャンプ先コードブロック及びジャンプ先候補コードブロックをジャンプ元コードブロックと共にローカルメモリ４６にロードする。
【００６１】
本実施形態では、１つのメモリブロックに複数のコードブロックをロードすることにより、コードブロックがロードされる、即ち、電源がオンに切り替えられるメモリブロックの数を低減する。従って、コプロセッサ３４のローカルメモリ４６の消費電力を抑制することが可能となる。
【００６２】
本実施形態では、コプロセッサ３４のローカルメモリ４６を複数のメモリブロックに分割し、コードブロックをロードするメモリブロックの電源をオンし、コードブロックをロードしないメモリブロックの電源をオフする。また、ローダブルプログラム５２の内、実行に用いられるコードブロックをメモリブロックにロードし、残りのコードブロックはメモリブロックにロードしない。これにより、電源をオンするメモリブロックの数を低減し、コプロセッサ３４のローカルメモリ４６による消費電力を抑制することが可能となる。
【００６３】
また、本実施形態では、メインメモリ３６からコプロセッサ３４のローカルメモリ４６のメモリブロックへのコードブロックのロード及びメモリブロックからメインメモリ３６へのコードブロックのアンロードを、コプロセッサ３４自身によって実行する。即ち、当該ロード・アンロードにメインプロセッサ３２を使用しないため、メインプロセッサ３２の消費電力を抑制することが可能となる。また、コプロセッサ３４によってコードが実行されている間、メインプロセッサ３２はスリープ状態としてもよく、この場合、メインプロセッサ３２の消費電力をさらに抑制することが可能となる。
【００６４】
また、本実施形態では、ジャンプ先コードブロックが正当であるか否か判定し、ジャンプ先コードブロックが正当でないと判定された場合、即ち、管理表にジャンプ先コードブロックのコードブロック名が登録されていない場合、ジャンプコードの実行を中止する。これにより、コードを実行する際に、無限ループに陥る、などの異常動作を回避することが可能となる。
【００６５】
［ローカルメモリが複数のメモリブロックに分割されていない関連技術］
図１７に例示するように、コプロセッサ３４のローカルメモリ４７が複数のメモリブロックに分割されていない関連技術が存在する。この場合、ローカルメモリ４７では、ローカルメモリ４７にロードされるコードの量に関わらず、電力が消費される。また、現在では、多くのセンサがコプロセッサ３４で制御されるため、コプロセッサ３４で実行される処理が複雑化し、コプロセッサ３４で実行されるコード量が増加してきている。これによって、ローカルメモリ４７の容量も増加する傾向にあり、ローカルメモリ４７の消費電力も増加してきている。
【００６６】
また、関連技術では、メインメモリ３６とローカルメモリ４７との間でコードのロード・アンロードは、メインプロセッサ３２によって行われる。したがって、ローカルメモリ４７の容量を抑制し、メインメモリ３６とローカルメモリ４７との間でコードのロード・アンロードを頻繁に行うことによりコード量の増加に対処しようとすると、メインプロセッサ３２の負担が増加する。メインプロセッサ３２の負担が増加すると、メインプロセッサ３２の消費電力も増加する。
【００６７】
本実施形態では、コプロセッサ３４のローカルメモリ４６を互いに独立して電源をオンオフ可能な複数のメモリブロックに分割し、コードブロックをロードするメモリブロックの電源をオンにし、コードブロックをロードしないメモリブロックの電源をオフにする。これにより、コプロセッサ３４の消費電力を抑制することが可能となる。
【００６８】
また、本実施形態では、メインメモリ３６からコプロセッサ３４のローカルメモリ４６のメモリブロックへのコードブロックのロード及びメモリブロックからメインメモリ３６へのコードブロックのアンロードを、コプロセッサ３４自身によって実行する。即ち、当該ロード・アンロードにメインプロセッサ３２を使用しないため、メインプロセッサ３２の消費電力を抑制することが可能となる。また、コプロセッサ３４によってコードが実行されている間、メインプロセッサ３２はスリープ状態であってもよく、この場合、メインプロセッサ３２の消費電力をさらに抑制することが可能となる。
【００６９】
以上の実施形態に関し、更に以下の付記を開示する。
【００７０】
（付記１）
主処理部と、
複数のコードブロックを含むプログラムを記憶した主記憶部と、
互いに独立して電源をオンオフ可能な複数のメモリブロックを含む補助記憶部を含み、前記複数のコードブロックの情報に基づいて、前記複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、前記複数のコードブロックの内少なくとも１つのコードブロックを、前記主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードする補助処理部と、
を含む情報処理装置。
【００７１】
（付記２）
前記補助処理部は、
電源をオンした前記少なくとも１つのメモリブロックにロードしたコードブロックの実行を終了した後、前記少なくとも１つのメモリブロックの電源をオフする、
付記１の情報処理装置。
【００７２】
（付記３）
前記補助処理部は、前記少なくとも１つのメモリブロックへの電源をオフする前に、前記少なくとも１つのメモリブロックにロードされているコードブロックを前記主記憶部にアンロードする、
付記２の情報処理装置。
【００７３】
（付記４）
前記補助処理部は、
前記メモリブロックにロードしたコードブロックを実行する際に、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードが出現した場合に、前記コードの実行を中止する、
付記１〜３の何れかの情報処理装置。
【００７４】
（付記５）
他のコードブロックへのジャンプを指示するコードを含むコードブロックを前記メモリブロックにロードする際に、前記ジャンプを指示するコードが、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードである場合に、当該コードの実行を中止するコードに置き替える、
付記４の情報処理装置。
【００７５】
（付記６）
前記コードブロックの情報はジャンプ先コードブロックを表す情報を含み、
前記補助処理部は、実行対象のコードブロックと、前記コードブロックの情報に、前記実行対象のコードブロックからのジャンプ先として設定されているジャンプ先コードブロックと、の各々を前記メモリブロックの内少なくとも１つのメモリブロックにロードする、
付記１〜５の何れかの情報処理装置。
【００７６】
（付記７）
前記コードブロックの情報は、前記主処理部で生成され、前記補助処理部に送信される、
付記１〜６の何れかの情報処理装置。
【００７７】
（付記８）
前記コードブロックは、前記プログラムに含まれるコードを機能毎に分割して生成される、
付記１〜７の何れかの情報処理装置。
【００７８】
（付記９）
前記コードブロックの情報は、個々のコードブロックのサイズを表す情報を含み、
前記補助処理部は、
複数のコードブロックをロードする際に、前記複数のコードブロックに含まれる第１のコードブロックをロードしたメモリブロックの空き容量が、前記複数のコードブロックに含まれる第２のコードブロックのサイズ以上である場合、当該メモリブロックに第２のコードブロックもロードする、
付記１〜８の何れかの情報処理装置。
【００７９】
（付記１０）
メインプロセッサ、主記憶部及びコプロセッサを含む情報処理装置の互いに独立してオンオフ可能な複数のメモリブロックを有する補助記憶部を含むコプロセッサが、
複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、
複数のコードブロックの内少なくとも１つのコードブロックを、複数のコードブロックを含むプログラムを記憶した前記主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードする、
コード実行方法。
【００８０】
（付記１１）
前記コプロセッサは、
電源をオンした前記少なくとも１つのメモリブロックにロードしたコードブロックの実行を終了した後、前記少なくとも１つのメモリブロックの電源をオフする、
付記１０のコード実行方法。
【００８１】
（付記１２）
前記コプロセッサは、前記少なくとも１つのメモリブロックへの電源をオフする前に、前記少なくとも１つのメモリブロックにロードされているコードブロックを前記主記憶部にアンロードする、
付記１１のコード実行方法。
【００８２】
（付記１３）
前記コプロセッサは、
前記メモリブロックにロードしたコードブロックを実行する際に、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードが出現した場合に、前記コードの実行を中止する、
付記１０〜１２の何れかのコード実行方法。
【００８３】
（付記１４）
他のコードブロックへのジャンプを指示するコードを、当該コードを含むコードブロックを前記メモリブロックにロードする際に、前記ジャンプを指示するコードが、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードである場合に、当該コードの実行を中止するコードに置き替える、
付記１３のコード実行方法。
【００８４】
（付記１５）
前記コードブロックの情報はジャンプ先コードブロックを表す情報を含み、
前記コプロセッサは、実行対象のコードブロックと、前記コードブロックの情報に、前記実行対象のコードブロックからのジャンプ先として設定されているジャンプ先コードブロックと、の各々を前記メモリブロックの内少なくとも１つのメモリブロックにロードする、
付記１０〜１４の何れかのコード実行方法。
【００８５】
（付記１６）
前記コードブロックの情報は、前記メインプロセッサで生成され、前記コプロセッサに送信される、
付記１０〜１５の何れかのコード実行方法。
【００８６】
（付記１７）
前記コードブロックは、前記プログラムに含まれるコードを機能毎に分割して生成される、
付記１０〜１６の何れかのコード実行方法。
【００８７】
（付記１８）
前記コードブロックの情報は、個々のコードブロックのサイズを表す情報を含み、
前記コプロセッサは、
複数のコードブロックをロードする際に、前記複数のコードブロックに含まれる第１のコードブロックをロードしたメモリブロックの空き容量が、第２のコードブロックのサイズ以上である場合、当該メモリブロックに第２のコードブロックもロードする、
付記１０〜１７の何れかのコード実行方法。
【００８８】
（付記１９）
メインプロセッサ、主記憶部及びコプロセッサを含む情報処理装置の互いに独立して電源をオンオフ可能な複数のメモリブロックを有する補助記憶部を含むコプロセッサに、
複数のコードブロックの情報に基づいて、複数のメモリブロックの内少なくとも１つのメモリブロックの電源をオンすると共に、残りのメモリブロックの電源をオフし、
複数のコードブロックの内少なくとも１つのコードブロックを、複数のコードブロックを含む実行対象プログラムを記憶した主記憶部から、前記電源をオンした前記少なくとも１つのメモリブロックにロードする、
コード実行処理を実行させるコード実行プログラム。
【００８９】
（付記２０）
電源をオンした前記少なくとも１つのメモリブロックにロードしたコードブロックの実行を終了した後、前記少なくとも１つのメモリブロックの電源をオフする、
付記１９のコード実行プログラム。
【００９０】
（付記２１）
前記少なくとも１つのメモリブロックへの電源をオフする前に、前記少なくとも１つのメモリブロックにロードされているコードブロックを前記主記憶部にアンロードする、
付記２０のコード実行プログラム。
【００９１】
（付記２２）
前記メモリブロックにロードしたコードブロックを実行する際に、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードが出現した場合に、前記コードの実行を中止する、
付記１９〜２１の何れかのコード実行プログラム。
【００９２】
（付記２３）
他のコードブロックへのジャンプを指示するコードを、当該コードを含むコードブロックを前記メモリブロックにロードする際に、前記ジャンプを指示するコードが、前記コードブロックの情報に含まれないコードブロックへのジャンプを指示するコードである場合に、当該コードの実行を中止するコードに置き替える、
付記２２のコード実行プログラム。
【００９３】
（付記２４）
前記コードブロックの情報はジャンプ先コードブロックを表す情報を含み、
実行対象のコードブロックと、前記コードブロックの情報に、前記実行対象のコードブロックからのジャンプ先として設定されているジャンプ先コードブロックと、の各々を前記メモリブロックの内少なくとも１つのメモリブロックにロードする、
付記１９〜２３の何れかのコード実行プログラム。
【００９４】
（付記２５）
前記コードブロックの情報は、メインプロセッサで生成され、前記コプロセッサに送信される、
付記１９〜２４の何れかのコード実行プログラム。
【００９５】
（付記２６）
前記コードブロックは、前記実行対象プログラムに含まれるコードを機能毎に分割して生成される、
付記１９〜２５の何れかのコード実行プログラム。
【００９６】
（付記２７）
前記コードブロックの情報は、個々のコードブロックのサイズを表す情報を含み、
複数のコードブロックをロードする際に、前記複数のコードブロックに含まれる第１のコードブロックをロードしたメモリブロックの空き容量が、第２のコードブロックのサイズ以上である場合、当該メモリブロックに第２のコードブロックもロードする、
付記１９〜２６の何れかのコード実行プログラム。
【００９７】
１０  情報処理装置
１２  主処理部
１４  補助処理部
２４  主記憶部
３２  メインプロセッサ
３４  コプロセッサ
３６  メインメモリ
３８  二次メモリ
４２  ローカルメモリ
４４  電源部
４６  ローカルメモリ
【図１】
0006488867.tif 000002
【図２】
0006488867.tif 000003
【図３】
0006488867.tif 000004
【図４Ａ】
0006488867.tif 000005
【図４Ｂ】
0006488867.tif 000006
【図４Ｃ】
0006488867.tif 000007
【図５】
0006488867.tif 000008
【図６】
0006488867.tif 000009
【図７】
0006488867.tif 000010
【図８】
0006488867.tif 000011
【図９Ａ】
0006488867.tif 000012
【図９Ｂ】
0006488867.tif 000013
【図９Ｃ】
0006488867.tif 000014
【図９Ｄ】
0006488867.tif 000015
【図１０Ａ】
0006488867.tif 000016
【図１０Ｂ】
0006488867.tif 000017
【図１１Ａ】
0006488867.tif 000018
【図１１Ｂ】
0006488867.tif 000019
【図１１Ｃ】
0006488867.tif 000020
【図１２】
0006488867.tif 000021
【図１３】
0006488867.tif 000022
【図１４】
0006488867.tif 000023
【図１５Ａ】
0006488867.tif 000024
【図１５Ｂ】
0006488867.tif 000025
【図１５Ｃ】
0006488867.tif 000026
【図１６Ａ】
0006488867.tif 000027
【図１６Ｂ】
0006488867.tif 000028
【図１７】
0006488867.tif 000029