(57)【要約】  アドレス変換回路（１０３）は、発生したイベント（Ｅ１）の種別に応じた変換元の論理アドレス群と、当該論理アドレス群の変換先であって当該種別に応じたプログラムを記憶した記憶領域を示す物理アドレス群と、の組み合わせを選択しておく。一方で、ＭＣＵ（１０２）は、イベント（Ｅ１）の発生をトリガとして、ブートのために当該論理アドレス群の論理アドレスをアドレスバス（１１０）に出力する。この場合に、アドレス変換回路（１０３）は、選択しておいた組み合わせを用いて、アドレスバス（１１０）の論理アドレスを物理アドレスに変換する。メモリ（１０４）は、変換された物理アドレスが示す記憶領域に記憶されたプログラムをデータバス（１２０）に出力する。ＭＣＵ（１２０）は、データバス（１２０）に出力されたプログラムを取得して実行する。
2014049798.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサがブートのためにアクセスする各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部と、
前記イベントが発生した場合に、前記記憶部を参照して発生した前記イベントの種別に関連する対応情報を選択する選択部と、
前記イベントの発生によって前記プロセッサが前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記選択部によって選択された対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する特定部と、
前記特定部によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを前記プロセッサに取得させる制御部と、
を有することを特徴とする変換装置。
【請求項２】
前記選択部は、
前記プロセッサをブートさせる第１のイベントが発生した場合に、前記記憶部を参照して前記第１のイベントの種別に関連する対応情報を選択し、前記第１のイベントの発生による前記プロセッサのブートが終了する前に前記第１のイベントより優先して前記プロセッサをブートさせる第２のイベントが発生した場合に、前記記憶部を参照して前記第２のイベントの種別に関連する対応情報を選択し、
前記特定部は、
前記第２のイベントの発生によって前記プロセッサが前記第２のイベントに応じた前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第２のイベントの種別に関連する対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、前記第２のイベントの発生による前記プロセッサのブートが終了した後に、前記第１のイベントによって前記プロセッサが前記第１のイベントに応じた前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第１のイベントの種別に関連する対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする請求項１に記載の変換装置。
【請求項３】
前記選択部は、
選択した前記対応情報を識別する識別情報をレジスタに格納し、
前記特定部は、
前記選択部によって前記レジスタに格納された識別情報により識別される対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする請求項１または２に記載の変換装置。
【請求項４】
前記記憶部は、
前記各論理アドレスの中で前記イベントの種別に固有の各論理アドレスと、前記固有の各論理アドレスの変換先であって前記記憶装置内で前記イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す第１の対応情報を前記イベントの種別ごとに関連付けて記憶するとともに、
前記各論理アドレスの中で前記イベントの各種別に共通の各論理アドレスと、前記共通の各論理アドレスの変換先であって前記記憶装置内で前記イベントの各種別に共通のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す第２の対応情報を記憶し、
前記特定部は、
前記プロセッサが発生した前記イベントの種別に固有の各論理アドレスに含まれる論理アドレスにアクセスする場合に、発生した前記イベントの種別に応じた前記第１の対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、前記プロセッサが前記共通の各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第２の対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする請求項１〜３のいずれか一つに記載の変換装置。
【請求項５】
前記対応情報は、前記各論理アドレスの先頭論理アドレスと、前記先頭論理アドレスの変換先の先頭物理アドレスと、を示し、
前記特定部は、
前記先頭論理アドレスから前記プロセッサがアクセスする前記論理アドレスまでの差分と、前記先頭物理アドレスと、の加算により、前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする請求項１〜４のいずれか一つに記載の変換装置。
【請求項６】
プロセッサがブートのためにアクセスする各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部にアクセス可能な変換装置が、
前記イベントが発生した場合に、前記記憶部を参照して発生した前記イベントの種別に関連する対応情報を選択し、
前記イベントの発生によって前記プロセッサが前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択した対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、
特定した物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを前記プロセッサに取得させる、
処理を実行することを特徴とする変換方法。
【請求項７】
プロセッサと、前記プロセッサがアクセスする論理アドレスを物理アドレスに変換する変換装置と、イベントの発生を検出するコントローラと、を含む情報処理システムであって、
前記コントローラは、
前記プロセッサをブートさせるイベントの発生を検出した場合に、起動要求を前記プロセッサに送信するとともに、発生した前記イベントの種別を示す種別情報を前記変換装置に送信し、
前記変換装置は、
前記コントローラから前記種別情報を受信した場合に、前記プロセッサによってブートのためにアクセス要求される各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記イベントの種別ごとに関連付けて記憶する記憶部を参照して、前記種別情報が示す種別に関連する対応情報を選択し、
前記プロセッサは、
前記コントローラから前記起動要求を受信した場合に、前記各論理アドレスに含まれる論理アドレスのアクセス要求を出力し、
前記変換装置は、
選択した前記対応情報を用いて前記プロセッサが出力したアクセス要求の論理アドレスの変換先の物理アドレスを特定し、
前記プロセッサは、
前記変換装置によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを取得して実行する、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換装置、変換方法、および情報処理システムに関する。
【背景技術】
【０００２】
複数のセンサー付無線端末（以下、「センサーノード」と称す）を設置領域に設置して、各センサーノードが協調して外部環境や物理的状況を示す情報を採取するセンサーネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）が知られている。【０００３】
また、情報処理装置における消費電力の低減化に関する従来技術として、例えば、プロセッサおよび周辺回路への電力供給を停止しておき、割り込みコントローラにおいてイベントの発生を検出した場合にプロセッサおよび周辺回路に電力供給を開始する技術がある（例えば、下記特許文献１参照）。また、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のカーネルを主記憶装置に再ロードする場合に、主記憶装置内の無停止モジュールに関する記憶内容を再ロードの対象から外しておく技術がある（例えば、下記特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３３３７９０号公報
【特許文献２】特開平１１−０２４９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、イベントの発生を契機としたプロセッサの起動において、発生したイベントの種別に応じた処理を実行するための分岐処理により、プロセッサの起動が完了するまでの起動時間が長くなるという問題がある。【０００６】
本発明は、プロセッサの起動時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、プロセッサがブートのためにアクセスする各論理アドレスと、各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部を有し、イベントが発生した場合に、記憶部を参照して発生したイベントの種別に関連する対応情報を選択し、イベントの発生によってプロセッサが各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択した対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定し、特定した物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムをプロセッサに取得させる変換装置、および変換方法が提案される。【０００８】
また、本発明の一側面によれば、プロセッサと、プロセッサがアクセスする論理アドレスを物理アドレスに変換する変換装置と、イベントの発生を検出するコントローラと、を含む情報処理システムであって、コントローラは、プロセッサをブートさせるイベントの発生を検出した場合に、起動要求をプロセッサに送信するとともに、発生したイベントの種別を示す種別情報を変換装置に送信し、変換装置は、コントローラから種別情報を受信した場合に、プロセッサによってブートのためにアクセス要求される各論理アドレスと、各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、イベントの種別ごとに関連付けて記憶する記憶部を参照して、種別情報が示す種別に関連する対応情報を選択し、プロセッサは、コントローラから起動要求を受信した場合に、各論理アドレスに含まれる論理アドレスのアクセス要求を出力し、変換装置は、選択した対応情報を用いてプロセッサが出力したアクセス要求の論理アドレスの変換先の物理アドレスを特定し、プロセッサは、変換装置によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを取得して実行する情報処理システムが提案される。
【発明の効果】
【０００９】
本発明の一側面によれば、プロセッサの起動時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、センサーノードにおけるＭＣＵ起動の流れの一例を示す説明図である。
【図２】図２は、センサーノード１００を含むセンサーネットワークの構成例を示す図である。
【図３】図３は、センサーノード１００の内部構成例を示すブロック図である。
【図４】図４は、図３に示した割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例を示す説明図である。
【図５】図５は、図４に示したメモリ１０４の記憶内容の一例を示す説明図である。
【図６】図６は、変換テーブル４３０の記憶内容の一例を示す説明図である。
【図７】図７は、変換装置の機能的構成例を示すブロック図である。
【図８】図８は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その１）である。
【図９】図９は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その２）である。
【図１０】図１０は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その３）である。
【図１１】図１１は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その４）である。
【図１２】図１２は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その５）である。
【図１３】図１３は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その６）である。
【図１４】図１４は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その７）である。
【図１５】図１５は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その８）である。
【図１６】図１６は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その９）である。
【図１７】図１７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その１０）である。
【図１８】図１８は、センサーノード１００におけるＭＣＵ起動処理の処理手順の一例を示すシーケンス図である。
【図１９】図１９は、ステップＳ１８０５に示したＭＣＵ１０２におけるブート処理の処理手順の一例を示すシーケンス図である。
【図２０】図２０は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その１）である。
【図２１】図２１は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その２）である。
【図２２】図２２は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その３）である。
【図２３】図２３は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その４）である。
【図２４】図２４は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その５）である。
【図２５】図２５は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その６）である。
【図２６】図２６は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その７）である。
【図２７】図２７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その８）である。
【図２８】図２８は、センサーノード１００における多重割り込み処理の処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる変換装置、変換方法、および情報処理システムの実施の形態を詳細に説明する。開示の変換装置は、イベントが発生した場合に、当該イベントに応じた変換元の論理アドレスと、当該イベントに応じたプログラムの記憶領域を示す変換先の物理アドレスと、の組み合わせを選択しておく。そして、開示の変換装置は、プロセッサが変換元の論理アドレスにアクセスする場合に、選択しておいた組み合わせを用いて当該論理アドレスを変換先の物理アドレスに変換して、当該イベントに応じたプログラムをプロセッサに取得させる。
【００１２】
ここで、プロセッサが、複数のイベントの各々のイベントに応じたプログラムの中から、発生したイベントに応じたプログラムを実行するために、分岐処理を実行する構成が考えられる。分岐処理とは、例えば、どのようなイベントが発生したかを特定し、特定したイベントに応じたプログラムを選択する処理である。しかしながら、この構成では、分岐処理に時間がかかりプロセッサの起動時間が長くなる。一方で、開示の変換装置によれば、プロセッサは、上述した分岐処理を実行しなくても、発生したイベントに応じたプログラムを実行することができる。結果として、プロセッサにおいて、分岐処理にかかる時間が削減され、起動時間が短縮化される。以降では、本発明にかかる変換装置を含み、本発明にかかる情報処理システムを実現するセンサーノードを例に挙げて、実施の形態について説明する。
【００１３】
（センサーノードにおけるＭＣＵ起動の流れ）
図１は、センサーノードにおけるＭＣＵ起動の流れの一例を示す説明図である。図１のように、センサーノード１００は、割り込みコントローラ１０１と、マイクロプロセッサ（ＭＣＵ：Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１０２と、アドレス変換回路（変換装置）１０３と、メモリ１０４と、を含む。
【００１４】
割り込みコントローラ１０１は、ＭＣＵ１０２をブートさせるトリガになるイベントの発生を検出する装置である。イベントは、例えば、タイマーの計時やセンサーの変位量の検出により発生する。イベントとは、プロセッサにブートを実行させ当該イベントに応じたプログラムを実行させるトリガである。イベントは、例えば、タイマーやセンサーにより発生される。
【００１５】
割り込みコントローラ１０１は、イベントの発生を検出した場合に、アドレス変換回路１０３に起動要求と検出されたイベントの種別とを送信する。また、割り込みコントローラ１０１は、イベントの発生を検出した場合に、ＭＣＵ１０２に起動要求を送信する。
【００１６】
ＭＣＵ１０２は、起動要求を受信した場合にブートする装置である。ＭＣＵ１０２は、例えば、論理アドレスを初期値「０ｘ００００」から順次アドレスバス１１０に出力する。ＭＣＵ１０２は、論理アドレスを出力した結果として、メモリ１０４からデータバス１２０に出力されるプログラムを取得して実行することによりブートする。
【００１７】
アドレス変換回路１０３は、論理アドレスを物理アドレスに変換する装置である。アドレス変換回路１０３は、複数のイベントの各々のイベントの種別に関連付けて、変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を記憶する。ここで、アドレス変換回路１０３は、例えば、図６を用いて後述する変換テーブルとして、対応情報を記憶する。
【００１８】
メモリ１０４は、ＭＣＵ１０２のブートのためのプログラムを記憶する。ＭＣＵ１０２のブートのためのプログラムは、例えば、発生したイベントに関わらず、共通して実行すべき共通部カーネルコアを含む。また、ＭＣＵ１０２のブートのためのプログラムは、例えば、発生したイベントに応じて実行すべきイベント固有のプログラムを含む。メモリ１０４は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や不揮発メモリにより実現される。
【００１９】
図１において、（１）割り込みコントローラ１０１は、ＭＣＵ１０２をブートさせるトリガになるイベントＥ１の発生を検出する。割り込みコントローラ１０１は、イベントＥ１の発生を検出すると、アドレス変換回路１０３に起動要求を送信する。次に、割り込みコントローラ１０１は、検出されたイベントＥ１の種別を示す種別情報をアドレス変換回路１０３に送信する。（２）また、割り込みコントローラ１０１は、イベントの発生を検出すると、ＭＣＵ１０２に起動要求を送信する。
【００２０】
（３）アドレス変換回路１０３は、起動要求を受信して起動する。次に、アドレス変換回路１０３は、種別情報を受信すると、受信した種別情報が示す種別に関連する対応情報を選択しておく。種別に関連する対応情報は、例えば、変換元の論理アドレス「０ｘ０１００〜０ｘ０１ｆｆ」と、種別に固有のプログラム（図１の例ではイベントＥ１用のプログラム）が記憶された記憶領域を示す変換先の物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」と、の対応関係を示す。
【００２１】
（４）ＭＣＵ１０２は、起動要求を受信してブートを開始する。ＭＣＵ１０２は、例えば、ブートのために、論理アドレスの初期値「０ｘ００００」から順にアドレスバス１１０に出力する。そして、ＭＣＵ１０２は、アドレスバス１１０に出力した結果、メモリ１０４からデータバス１２０に出力されるプログラムを取得して実行する。結果として、ＭＣＵ１０２は、論理アドレスの初期値「０ｘ００００」から、ブートが終了する論理アドレス「０ｘ０２ｆｆ」までの論理アドレスをシーケンシャルに出力する。
【００２２】
（５）ここで、アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に論理アドレスが出力される都度、出力された論理アドレスを取得する。アドレス変換回路１０３は、（３）において選択しておいた対応情報を用いて、取得した論理アドレスを物理アドレスに変換してアドレスバス１１０に出力する。これにより、アドレス変換回路１０３は、アドレスバス１１０に出力した物理アドレスが示す記憶領域に記憶されたプログラムを、メモリ１０４からデータバス１２０に出力させ、（４）においてＭＣＵ１０２に取得させる。
【００２３】
アドレス変換回路１０３は、例えば、対応情報が示す変換元の論理アドレス「０ｘ０１００〜０ｘ０１ｆｆ」がアドレスバス１１０に出力された場合には、対応情報を参照して、物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」に変換する。
【００２４】
一方、アドレス変換回路１０３は、対応情報が示す論理アドレス以外「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜」がアドレスバス１１０に出力された場合には、従来技術を用いて物理アドレス「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜」に変換する。ここでは、アドレス変換回路１０３は、ページテーブルを用いて論理アドレスを物理アドレスに変換することになるが、従来技術であるため詳細な説明を省略する。
【００２５】
換言すれば、ＭＣＵ１０２がアドレスバス１１０に出力した論理アドレス「０ｘ００００〜０ｘ０２ｆｆ」は、アドレス変換回路１０３により物理アドレス「０ｘ００００〜０ｘ００ｆｆ、０ｘ１１００〜０ｘ１１ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」に変換される。そして、アドレス変換回路１０３によって物理アドレス「０ｘ００００〜０ｘ００ｆｆ、０ｘ１１００〜０ｘ１１ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」がアドレスバス１１０に出力される。
【００２６】
（６）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレスが示す記憶領域の内容をデータバス１２０に出力する。メモリ１０４は、例えば、物理アドレス「０ｘ００００〜０ｘ００ｆｆ」の示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。
【００２７】
また、メモリ１０４は、物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」の示す記憶領域に記憶されたイベントＥ１用のプログラムをデータバス１２０に出力する。また、メモリ１０４は、物理アドレス「０ｘ０２００〜０ｘ０２ｆｆ」の示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。
【００２８】
これにより、ＭＣＵ１０２は、出力された共通部カーネルコアとイベントＥ１用のプログラムとを実行してブートすることができる。結果として、ＭＣＵ１０２は、どのようなイベントが発生したかを判定しなくても、論理アドレスの初期値「０ｘ００００」からシーケンシャルにアクセスすれば、発生したイベントに応じたプログラムを実行してブートすることができる。そのため、ＭＣＵ１０２は、発生したイベントに応じたプログラムを選択して実行するための分岐処理を削減して、起動時間を短縮化することができる。
【００２９】
また、ＭＣＵ１０２において分岐処理を削減することができるため、メモリ１０４は分岐処理に関するプログラムを記憶しておかなくてもよい。そのため、メモリ１０４は、分岐処理に関するプログラムを削減して、メモリ使用量を抑制することができる。
【００３０】
（センサーネットワークの構成）
図２は、センサーノード１００を含むセンサーネットワークの構成例を示す図である。図２に示すセンサーネットワーク２００は、所定の設置領域２１０内に配置されたチップ状の複数のセンサーノード１００と、設置領域２１０内の複数のセンサーノード１００のセンサー出力を無線等により受信する親ノード２０１とを含む。設置領域２１０は、例えば、コンクリート、土、水、空気などの物質で満たされた領域である。または、設置領域２１０は、宇宙空間などの真空の領域であってもよい。
【００３１】
センサーノード１００は、設置領域２１０内の各設置箇所における所定の変位量を検出し、親ノード２０１に検出した情報を無線通信により送信する。親ノード２０１は、設置領域２１０に設けられた複数のセンサーノード１００から得られた情報を集約し、外部装置としてのサーバーへの情報のアップロードを行う。また、親ノード２０１は、外部装置としての利用者端末に対し設置箇所においてセンサーノード１００が検出したデータの通知等を行ってもよい。
【００３２】
センサーノード１００（図２の黒丸）は、図２に示すように、設置領域２１０内に大量に設置される。また、親ノード２０１（図２の白丸）は、設置領域２１０内のいずれかの箇所に１台設置される。実施の形態におけるセンサーノード１００は、近距離の無線通信能力、少なくとも隣接するセンサーノード１００に到達可能な無線電波を出力できればよい。このため、親ノード２０１から遠いセンサーノード１００ａは、隣接する他の一つまたは複数のセンサーノード１００ｂを介してデータをリレー転送させる。各センサーノード１００は、このリレー転送により、検出したデータを親ノード２０１に届けるようになっている（図２矢印参照）。
【００３３】
（センサーノード１００の内部構成例）
図３は、センサーノード１００の内部構成例を示すブロック図である。センサーノード１００は、タイマー３０１と、複数のセンサー３０２−１〜３０２−ｎ（ｎは自然数）と、割り込みコントローラ１０１と、ＭＣＵ１０２と、アドレス変換回路１０３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、ＲＯＭ３０４と、不揮発メモリ３０５と、無線通信回路３０６と、を含む。また、センサーノード１００は、ハーベスタ３１１と、バッテリ３１２と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３１３と、を含む。以降では、任意のセンサーを「センサー３０２−ｉ」と称す（ｉは１〜ｎ）。
【００３４】
タイマー３０１と、センサー３０２−ｉと、割り込みコントローラ１０１と、ＭＣＵ１０２と、アドレス変換回路１０３と、ＲＡＭ３０３と、ＲＯＭ３０４と、不揮発メモリ３０５と、無線通信回路３０６と、は、内部バス３０９により接続されている。内部バス３０９には、上述したアドレスバス１１０やデータバス１２０が含まれる。
【００３５】
タイマー３０１は、クロック（ＣＬＫ）により発生したパルス信号をカウントし、経過時間を測定する。タイマー３０１は、一定時間ごとにイベントを発生し、割り込みコントローラ１０１に対して専用線を介して割込信号を送信する。以降では、タイマーが発生するイベントを「イベントＥ０」と称す。
【００３６】
センサー３０２−ｉは、設置箇所における所定の変位量を検出する。センサー３０２−ｉは、例えば、設置箇所の圧力を検出する圧電素子や、光を検出する光電素子等を用いることができる。センサー３０２−ｉは、検出した変位量に基づいてイベントを発生し、割り込みコントローラ１０１に対して専用線を介して割込信号を送信する。以降では、センサー３０２−ｉが発生するイベントを「イベントＥｉ」と称す（ｉは１〜ｎ）。
【００３７】
割り込みコントローラ１０１は、タイマー３０１やセンサー３０２−ｉから専用線を介して割込信号を受信する。割り込みコントローラ１０１は、割込信号を受信すると、ＭＣＵ１０２やアドレス変換回路１０３への電力供給が停止されていれば、ＰＭＵ３１３にＭＣＵ１０２やアドレス変換回路１０３への電力供給の開始要求を送信する。また、割り込みコントローラ１０１は、割込信号を受信すると、ＭＣＵ１０２に対して専用線を介して起動要求を送信するとともに、アドレス変換回路１０３に対して専用線を介して起動要求や発生したイベントの種別を示す種別情報を送信する。
【００３８】
ＭＣＵ１０２は、割り込みコントローラ１０１から起動要求を受信すると、論理アドレスの初期値から順次アクセスすることにより、ブートを開始する。ＭＣＵ１０２は、ブートを開始することによりデバイスドライバの初期化を実行し、バッチ処理やセンサー３０２−ｉが検出したデータの処理を開始する。
【００３９】
アドレス変換回路１０３は、ＭＣＵ１０２がアクセスする論理アドレスを物理アドレスに変換することによって、ＲＯＭ３０４やＲＡＭ３０３等のメモリ１０４における物理アドレスが示す記憶領域に記憶されたプログラムをＭＣＵ１０２に取得させる。アドレス変換回路１０３は、例えば、論理アドレスを発生したイベントの種別に応じた物理アドレスに変換することにより、発生したイベントに応じたプログラムをＭＣＵ１０２に取得させる。
【００４０】
ＲＡＭ３０３は、ＭＣＵ１０２における処理の一時データを格納する。ＲＯＭ３０４は、ＭＣＵ１０２が実行する処理プログラム等を格納する。不揮発メモリ３０５は、電力供給が途絶えたとき等においても書き込まれた所定のデータを保持する。
【００４１】
無線通信回路（ＲＦ）３０６は、アンテナ３２０を有する。無線通信回路３０６は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ３２０を介して送信する。アンテナ３２０は、親ノード２０１と無線通信する電波を送受信する。
【００４２】
ハーベスタ３１１は、センサーノード１００の設置箇所における外部環境、例えば、光、振動、温度、無線電波（受信電波）等のエネルギー変化に基づき発電を行う。バッテリ３１２は、ハーベスタ３１１により発電された電力を蓄える。ＰＭＵ３１３は、バッテリ３１２に蓄えられた電力を、センサーノード１００の各部の駆動電源として供給する。換言すれば、センサーノード１００は、二次電池や外部電源等が不要であり、動作に必要な電力をセンサーノード１００内部で生成する。
【００４３】
センサーノード１００は、例えば、バッテリ３１２に蓄えられた電力に制限があるため、イベントが発生するまでは、ＭＣＵ１０２やアドレス変換回路１０３等への電力供給を停止しておき、消費電力を低減してもよい。
【００４４】
（割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例）
次に、図４を用いて、図３に示した割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例について説明する。
【００４５】
図４は、図３に示した割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例を示す説明図である。割り込みコントローラ１０１は、割込制御レジスタ４１０−０〜４１０−ｎと、ＯＲゲート４１１と、を有する。以降では、任意の割込制御レジスタを、「割込制御レジスタ４１０−ｊ」と称す（ｊは０〜ｎ）。
【００４６】
割込制御レジスタ４１０−ｊは、各種デバイス（タイマー３０１やセンサー３０２−ｉ）に対応し、割り込みの有無を示す割り込みフラグを記憶する。例えば、割込制御レジスタ４１０−０は、タイマー３０１に対応し、タイマー３０１が発生させたイベントＥ０による割り込みの有無を示す割り込みフラグを記憶する。また、割込制御レジスタ４１０−１は、センサー３０２−１に対応し、センサー３０２−１が発生させたイベントＥ１による割り込みの有無を示す割り込みフラグを記憶する。同様に、割込制御レジスタ４１０−２〜４１０−ｎは、各々、センサー３０２−２〜３０２−ｎの各々に対応し、センサー３０２−２〜３０２−ｎの各々が発生させたイベントＥ２〜Ｅｎによる割り込みの有無を示す割り込みフラグを記憶する。
【００４７】
割込制御レジスタ４１０−ｊは、対応するデバイスと専用線を介して接続されている。割込制御レジスタ４１０−ｊの割り込みフラグは、対応するデバイスから専用線を介して送信された割込信号によって、「割り込みあり」に設定される。割込制御レジスタ４１０−ｊには、例えば、「割り込みなし」の場合は割り込みフラグとして「０」が設定され、「割り込みあり」の場合は割り込みフラグとして「１」が設定される。
【００４８】
割り込みコントローラ１０１は、割込制御レジスタ４１０−ｊに「割り込みあり」を示す割り込みフラグが設定された場合に、ＭＣＵ１０２へ電力供給されていなければ、ＭＣＵ１０２への電力供給の開始要求をＰＭＵ３１３に送信する。また、割り込みコントローラ１０１は、割込制御レジスタ４１０−ｊに「割り込みあり」を示す割り込みフラグが設定された場合に、アドレス変換回路１０３へ電力供給されていなければ、アドレス変換回路１０３への電力供給の開始要求をＰＭＵ３１３に送信する。
【００４９】
ＯＲゲート４１１は、入力信号の論理和を出力する論理回路である。ＯＲゲート４１１は、割込制御レジスタ４１０−１〜４１０−ｎの割り込みフラグを入力信号とし、論理和を出力する。換言すれば、ＯＲゲート４１１は、割込制御レジスタ４１０−１〜４１０−ｎの少なくともいずれかに「割り込みあり」を示す割り込みフラグ「１」が設定された場合に論理和「１」を出力する。
【００５０】
割り込みコントローラ１０１は、タイマー３０１により割込制御レジスタ４１０−０に「割り込みあり」を示す割り込みフラグ「１」が設定された場合は、当該割り込みフラグ「１」を起動要求としてＭＣＵ１０２に送信する。また、割り込みコントローラ１０１は、センサー３０２−ｉにより割込制御レジスタ４１０−ｉに「割り込みあり」を示す割り込みフラグが設定された場合は、ＯＲゲート４１１から出力される論理和「１」を起動要求としてＭＣＵ１０２に送信する。ここで、起動要求は、専用線４１２を介して送信される。
【００５１】
また、割り込みコントローラ１０１は、割込制御レジスタ４１０−ｊに「割り込みあり」を示す割り込みフラグが設定された場合、割込制御レジスタ４１０−０〜４１０−ｎの割り込みフラグを種別情報としてアドレス変換回路１０３に送信する。ここで、種別情報は、専用線４１３を介して送信される。
【００５２】
ＭＣＵ１０２は、プログラムカウンタ４２０を有する。プログラムカウンタ４２０は、アクセス先の論理アドレスを記憶するレジスタである。ＭＣＵ１０２は、割り込みコントローラ１０１から起動要求を受信すると、プログラムカウンタ４２０に記憶された論理アドレスを、アドレスバス１１０に出力する。ＭＣＵ１０２は、論理アドレスを出力した結果、メモリ１０４からデータバス１２０に出力されたプログラムを取得して実行する。そして、ＭＣＵ１０２は、取得したプログラムの分、プログラムカウンタ４２０の論理アドレスをインクリメントして、プログラムカウンタ４２０に記憶された論理アドレスを、アドレスバス１１０に出力する。このようにして、ＭＣＵ１０２は、プログラムカウンタ４２０の初期値から順次アクセスを行う。
【００５３】
アドレス変換回路１０３は、変換テーブル４３０と、複数の索引レジスタ４４０−０〜４４０−ｎと、絶対レジスタ４５０と、比較器４６０と、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）４７０と、参照レジスタ４８０と、初期値レジスタ４９０と、を有する。具体的には、例えば、アドレス変換回路１０３は、論理積回路であるＡＮＤゲート、否定論理回路であるＩＮＶＥＲＴＥＲゲート、ＯＲゲートや、ラッチ回路であるＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）などの素子によって形成されてもよい。変換テーブル４３０は、変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を、イベントの種別ごとに関連付けて記憶するテーブルである。変換テーブル４３０の記憶内容については、図６を用いて後述する。
【００５４】
また、複数の索引レジスタ４４０−０〜４４０−ｎは、多重割り込みに対応するために、対応情報のキーを記憶するレジスタである。索引レジスタ４４０−０〜４４０−ｎは、複数のイベントが発生した場合に、各々のイベントに応じた対応情報のキーを、処理すべき順序に従って記憶する。索引レジスタ４４０−０〜４４０−ｎは、対応情報自体を記憶してもよい。
【００５５】
索引レジスタ４４０−０〜４４０−ｎは、例えば、スタックを実現し、ＬＩＦＯ（Ｌａｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）の構造で、各々のイベントに応じた対応情報のキーを記憶する。以降では、任意の索引レジスタを「索引レジスタ４４０−ｋ」と称す。また、ｋの値が小さい索引レジスタ４４０−ｋに記憶された対応情報から順に処理することとする。多重割り込みに対応しない場合は、索引レジスタ４４０−ｋは一つであってもよい。
【００５６】
また、絶対レジスタ４５０は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレスを記憶するレジスタである。比較器４６０は、絶対レジスタ４５０に記憶された論理アドレスが、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報が示す変換元の論理アドレス群に含まれるか否かを判定する論理回路である。
【００５７】
また、ＡＬＵ４７０は、絶対レジスタ４５０に記憶された論理アドレスと、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報と、を入力とし、絶対レジスタ４５０に記憶された論理アドレスの変換先の物理アドレスを算出する演算装置である。また、参照レジスタ４８０は、ＡＬＵ４７０により算出された変換先の物理アドレスを記憶するレジスタである。また、初期値レジスタ４９０は、索引レジスタ４４０−ｋを初期化するための初期値「０」を記憶するレジスタである。
【００５８】
アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示すイベントの種別に関連する対応情報を選択する。アドレス変換回路１０３は、選択した対応情報のキーを索引レジスタ４４０−０に記憶する。アドレス変換回路１０３は、例えば、キーとして、変換先の各物理アドレスの中の先頭物理アドレスを採用してもよい。
【００５９】
ここで、アドレス変換回路１０３は、索引レジスタ４４０−０に他のキーが記憶してある場合、索引レジスタ４４０−０〜４４０−（ｎ−１）に記憶されたキーを、各々、後段の索引レジスタ４４０−１〜４４０−ｎに移行する。次に、アドレス変換回路１０３は、選択した対応情報のキーを索引レジスタ４４０−０に記憶する。
【００６０】
その後、アドレス変換回路１０３は、例えば、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレスを取得し、取得した論理アドレスを絶対レジスタ４５０に記憶する。次に、アドレス変換回路１０３は、比較器４６０を用いて、絶対レジスタ４５０に記憶された論理アドレスが、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報が示す変換元の論理アドレス群に含まれるか否かを判定する。
【００６１】
そして、アドレス変換回路１０３は、変換元の論理アドレス群に含まれると判定した場合に、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報とＡＬＵ４７０を用いて、絶対レジスタ４５０に記憶された論理アドレスを物理アドレスに変換する。次に、アドレス変換回路１０３は、変換した物理アドレスを参照レジスタ４８０に記憶する。
【００６２】
そして、アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレスをアドレスバス１１０に出力する。これにより、アドレス変換回路１０３は、メモリ１０４に、アドレスバス１１０へと出力された物理アドレスが示す記憶領域に記憶されたプログラムをデータバス１２０へと出力させることができる。
【００６３】
アドレス変換回路１０３は、ＭＣＵ１０２のブートが終了した場合に、索引レジスタ４４０−０を初期化するために索引レジスタ４４０−０に初期値レジスタ４９０に記憶された初期値「０」を設定する。ここで、アドレス変換回路１０３は、索引レジスタ４４０−１〜４４０−ｎにキーが記憶されている場合は、索引レジスタ４４０−１〜４４０−ｎに記憶されたキーを、各々、前段の索引レジスタ４４０−０〜４４０−（ｎ−１）に移行する。
【００６４】
（メモリ１０４の記憶内容）
次に、図５を用いて、図４に示したメモリ１０４の記憶内容の一例について説明する。
【００６５】
図５は、図４に示したメモリ１０４の記憶内容の一例を示す説明図である。図５に示すように、メモリ１０４は、ＭＣＵ１０２のブート処理のためのプログラムとして、発生したイベントに関わらず実行すべき共通部カーネルコアを記憶する。共通部カーネルコアは、ＭＣＵ１０２の初期化ルーチンに関するプログラムと、デバイスインターフェースに関するプログラムと、デバイス後処理に関するプログラムと、を含む。
【００６６】
共通部カーネルコアは、物理アドレス「０ｘ００００〜０ｘ０２ｆｆ」が示す記憶領域５１０に記憶されている。共通部カーネルコアのうち初期化ルーチンに関するプログラムは、物理アドレス「０ｘ００００〜０ｘ００４ｆ」が示す記憶領域５１１に記憶されている。共通部カーネルコアのうちデバイスインターフェースに関するプログラムは、物理アドレス「０ｘ００５０〜０ｘ００ｆｆ」が示す記憶領域５１２に記憶されている。共通部カーネルコアのうちデバイス後処理に関するプログラムは、物理アドレス「０ｘ０２００〜０ｘ０２ｆｆ」が示す記憶領域５１３に記憶されている。
【００６７】
また、メモリ１０４は、タイマー３０１によりイベントＥ０が発生した場合にのみ実行すべきイベントＥ０用のプログラムＰ０を記憶する。プログラムＰ０は、イベントＥ０が発生した場合に初期化すべきデバイスドライバに関するプログラムと、イベントＥ０が発生した場合に実行すべきデバイス処理に関するプログラムと、を含む。
【００６８】
プログラムＰ０は、物理アドレス「０ｘ１０００〜０ｘ１０ｆｆ」が示す記憶領域５２０に記憶されている。プログラムＰ０のうちデバイスドライバに関するプログラムは、物理アドレス「０ｘ１０００〜０ｘ１００ｆ」が示す記憶領域５２１に記憶されている。プログラムＰ０のうちデバイス処理に関するプログラムは、物理アドレス「０ｘ１０１０〜０ｘ１０ｆｆ」が示す記憶領域５２２に記憶されている。
【００６９】
また、メモリ１０４は、センサー３０２−ｉごとに、当該センサー３０２−ｉにおいてイベントＥｉが発生した場合にのみ実行すべきイベントＥｉ用のプログラムＰｉを記憶する。プログラムＰｉは、イベントＥｉが発生した場合に初期化すべきデバイスドライバに関するプログラムと、イベントＥｉが発生した場合に実行すべきデバイス処理に関するプログラムと、を含む。
【００７０】
例えば、イベントＥ１が発生した場合にのみ実行すべきイベントＥ１用のプログラムＰ１は、物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」が示す記憶領域５３０に記憶されている。プログラムＰ１のうちデバイスドライバに関するプログラムは、物理アドレス「０ｘ１１００〜０ｘ１１０ｆ」が示す記憶領域５３１に記憶されている。プログラムＰ１のうちデバイス処理に関するプログラムは、物理アドレス「０ｘ１１１０〜０ｘ１１ｆｆ」が示す記憶領域５３２に記憶されている。
【００７１】
同様に、イベントＥ２が発生した場合にのみ実行すべきイベントＥ２用のプログラムＰ２は、記憶領域５４０に記憶されている。イベントＥ３が発生した場合にのみ実行すべきイベントＥ３用のプログラムＰ３は、記憶領域５５０に記憶されている。
【００７２】
ここでは、共通部カーネルコアと各イベント用のプログラムとは分割して記憶されているが、これに限らない。例えば、イベントごとに、共通部カーネルコアと当該イベント用のプログラムとを結合したプログラムを記憶しておいてもよい。
【００７３】
（変換テーブル４３０の記憶内容）
次に、図６を用いて、変換テーブル４３０の記憶内容の一例について説明する。変換テーブル４３０は、イベントの種別ごとに、変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を記憶したテーブルである。変換テーブル４３０は、例えば、アドレス変換回路１０３内のＲＯＭやＲＡＭ等によって実現される。
【００７４】
図６は、変換テーブル４３０の記憶内容の一例を示す説明図である。図６に示すように、変換テーブル４３０は、イベント項目に関連付けて、物理アドレス項目と、論理アドレス項目と、を有し、イベントの種別ごとに各項目に情報が設定されることによりレコード（例えば、６０１〜６０４など）を構成する。
【００７５】
イベント項目には、ＭＣＵ１０２がブートを開始するトリガになるイベントの種別を示す種別情報が記憶される。イベント項目には、例えば、タイマー３０１が発生したイベントＥ０の種別情報「Ｔｉｍｅｒ」が記憶されたり、センサー３０２−ｉが発生したイベントＥｉの種別情報「Ｅｖｅｎｔ  Ｅｉ」が記憶されたりする。
【００７６】
物理アドレス項目には、イベント項目が示す種別のイベントが発生した場合に、ＭＣＵ１０２がブートのためにアクセスする論理アドレス群の各論理アドレスの変換先の各物理アドレスを示す物理アドレス情報が記憶される。物理アドレス項目には、例えば、変換先の各物理アドレスの中で先頭にある物理アドレスを記憶する。
【００７７】
論理アドレス項目には、イベント項目が示す種別のイベントが発生した場合に、ＭＣＵ１０２がブートのためにアクセスする論理アドレス群の各論理アドレスを示す論理アドレス情報が記憶される。論理アドレス項目には、例えば、論理アドレス群の範囲が記憶される。
【００７８】
例えば、レコード６０１は、タイマー３０１が発生したイベントＥ０に関連する対応情報を示す。レコード６０１の対応情報は、変換元の論理アドレス群の各論理アドレス「０ｘ０１００〜０ｘ０１ｆｆ」と、変換先の各物理アドレス「０ｘ１０００〜０ｘ１０ｆｆ」の中の先頭物理アドレス「０ｘ１０００」と、を示す。
【００７９】
図６の例では、各々のイベントに応じた論理アドレス項目に記憶された論理アドレス群は同一であるが、これに限らない。例えば、論理アドレス項目には、各々のイベントに応じて、異なる論理アドレス群が記憶されていてもよい。
【００８０】
（変換装置の機能的構成例）
次に、図７を用いて、変換装置の機能的構成例について説明する。図７は、変換装置の機能的構成例を示すブロック図である。変換装置７００は、記憶部７０１と、選択部７０２と、特定部７０３と、制御部７０４と、を含む。
【００８１】
ここで、変換装置７００は、割り込みコントローラ１０１が多重割り込みを禁止している場合に対応する動作（以降、動作例１と称す）を実行してもよい。また、変換装置７００は、割り込みコントローラ１０１が多重割り込みを行う場合に対応する動作（以降、動作例２と称す）を実行してもよい。
【００８２】
＜変換装置７００の動作例１＞
まず、変換装置７００の動作例１を実現する機能について説明する。動作例１では、割り込みコントローラ１０１は、イベントの発生を検出した場合に、起動要求をプロセッサに送信するとともに、発生したイベントの種別を示す種別情報を変換装置７００に送信する。
【００８３】
また、割り込みコントローラ１０１は、複数のイベントの発生を検出した場合、多重割り込みを禁止しているため、発生順序が最先のイベントによるプロセッサのブートの終了を待つ。次に、割り込みコントローラ１０１は、最先のイベントによるプロセッサのブートが終了した後に、２番目に発生したイベントについて起動要求をプロセッサに送信し、２番目に発生したイベントの種別を示す種別情報を変換装置７００に送信する。
【００８４】
ここで、プロセッサとは、センサーノード１００全体の動作を制御する装置であって、例えば、上述したＭＣＵ１０２である。イベントとは、図１に上述したように、プロセッサにブートを実行させ当該イベントに応じたプログラムを実行させるトリガである。イベントとは、例えば、上述したタイマー３０１が発生するイベントＥ０やセンサー３０２−ｉが発生するイベントＥｉである。起動要求とは、プロセッサにブートを開始させる要求である。変換装置７００とは、論理アドレスを物理アドレスに変換する装置であって、例えば、上述したアドレス変換回路１０３である。
【００８５】
記憶部７０１は、プロセッサがブートのためにアクセスする各論理アドレスと、各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する。ここで、プロセッサが論理アドレスにアクセスするとは、プロセッサがアドレスバス１１０に論理アドレスを出力し、アドレス変換回路１０３にメモリ１０４の読み出し要求を送信することをいう。
【００８６】
ブートのためにアクセスする各論理アドレスとは、プロセッサがアクセス可能な論理アドレス空間の中でプロセッサがブートのためにアクセスする論理アドレス群であって、論理アドレスの初期値から順次シーケンシャルにアクセスされる論理アドレス群である。ブートのためにアクセスする各論理アドレスとは、例えば、論理アドレスの初期値「０ｘ００００」から終了処理が記憶された論理アドレス「０ｘ０２ｆｆ」までの論理アドレス群「０ｘ００００〜０ｘ０２ｆｆ」である。
【００８７】
記憶部７０１は、例えば、第１の対応情報をイベントの種別ごとに関連付けて記憶する。ここで、第１の対応情報とは、各論理アドレスの中でイベントの種別に固有の各論理アドレスと、固有の各論理アドレスの変換先であって記憶装置内でイベントの種別に固有のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す。第１の対応情報とは、例えば、図６を用いて上述した変換テーブル４３０に記憶された対応情報である。
【００８８】
各論理アドレスの中でイベントの種別に固有の各論理アドレスとは、例えば、図５においてタイマー３０１が発生するイベントＥ０に固有のプログラムが記憶された物理アドレス群の変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」である。各論理アドレスの中でイベントの種別に固有の各論理アドレスは、例えば、図６のレコード６０１の物理アドレス項目に設定されて、記憶される。
【００８９】
イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスとは、例えば、図５においてタイマー３０１が発生するイベントＥ０に固有のプログラムが記憶された物理アドレス群「０ｘ１０００〜０ｘ１０ｆｆ」である。イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスは、例えば、図６のレコード６０１の論理アドレス項目に設定されて、記憶される。
【００９０】
また、記憶部７０１は、第２の対応情報を記憶する。ここで、第２の対応情報とは、各論理アドレスの中でイベントの各種別に共通の各論理アドレスと、共通の各論理アドレスの変換先であって記憶装置内でイベントの各種別に共通のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す。第２の対応情報とは、例えば、従来技術にかかるページテーブルに記憶された論理アドレスと物理アドレスとの対応関係を示す情報である。
【００９１】
各論理アドレスの中でイベントの各種別に共通の各論理アドレスとは、例えば、図５において共通部カーネルコアが記憶された物理アドレス群の変換元の論理アドレス群「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」である。イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスとは、例えば、図５において共通部カーネルコアが記憶された物理アドレス群「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」である。
【００９２】
記憶部７０１は、例えば、アドレス変換回路１０３内のＲＯＭやＲＡＭ等に記憶された変換テーブル４３０によって実現される。これにより、選択部７０２は、記憶部７０１を参照して、発生したイベントの種別に関連する対応情報を選択することができる。
【００９３】
選択部７０２は、イベントが発生した場合に、記憶部７０１を参照して発生したイベントの種別に関連する対応情報を選択する。選択部７０２は、例えば、変換テーブル４３０を参照して、割り込みコントローラ１０１から受信した種別情報が示す種別に関連する対応情報を選択する。次に、選択部７０２は、選択した対応情報を識別する識別情報をレジスタに格納する。
【００９４】
ここで、識別情報とは、対応情報のキーであって、例えば、上述した先頭物理アドレスである。レジスタとは、例えば、上述した索引レジスタ４４０−０である。また、選択部７０２は、選択した対応情報自体をレジスタに格納してもよい。また、選択部７０２は、ＭＣＵ１０２が変換元の論理アドレスにアクセスする前に対応情報を選択しておけばよく、イベントが発生した直後に対応情報を選択しなくてもよい。これにより、選択部７０２は、ＭＣＵ１０２が変換元の論理アドレスにアクセスする前に、論理アドレスの変換に使用する対応情報を選択しておく。選択部７０２は、例えば、索引レジスタ４４０−ｋにより実現される。
【００９５】
特定部７０３は、イベントの発生によってプロセッサが各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択部７０２によって選択された対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。特定部７０３は、例えば、プロセッサが発生したイベントの種別に固有の各論理アドレスに含まれる論理アドレスにアクセスする場合に、当該種別に応じた第１の対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。
【００９６】
特定部７０３は、より具体的には、ＭＣＵ１０２が論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」の論理アドレス「０ｘ０１００」にアクセスする場合に、タイマー３０１が発生するイベントＥ０に応じた対応情報を取得する。ここで、特定部７０３は、例えば、取得する対応情報を、選択部７０２によって索引レジスタ４４０−０に格納されたキーにより識別する。
【００９７】
次に、特定部７０３は、対応情報が示す論理アドレス群の先頭論理アドレス「０ｘ０１００」からＭＣＵ１０２がアクセスする論理アドレス「０ｘ０１００」までの差分「０」を特定する。そして、特定部７０３は、特定した差分「０」と、対応情報が示す先頭物理アドレス「０ｘ１０００」と、の加算により、ＭＣＵ１０２がアクセスする論理アドレス「０ｘ０１００」の変換先の物理アドレス「０ｘ１０００（０ｘ１０００＋０）」を特定する。
【００９８】
また、特定部７０３は、プロセッサが共通の各論理アドレスに含まれる論理アドレスにアクセスする場合に、第２の対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。特定部７０３は、例えば、ＭＣＵ１０２が論理アドレス群「０ｘ００００〜０ｘ００ｆｆ」の論理アドレスにアクセスする場合に、ページテーブルを用いて変換先の物理アドレスを特定する。
【００９９】
また、特定部７０３は、特定した物理アドレスを参照レジスタ４８０に記憶しておく。これにより、特定部７０３は、ＭＣＵ１０２に取得させるプログラムの記憶領域を特定することができる。特定部７０３は、例えば、索引レジスタ４４０−ｋと、絶対レジスタ４５０と、比較器４６０と、ＡＬＵ４７０と、参照レジスタ４８０と、により実現される。
【０１００】
制御部７０４は、特定部７０３によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムをプロセッサに取得させる。制御部７０４は、例えば、特定部７０３によって特定された物理アドレスをアドレスバス１１０に出力し、メモリ１０４にアドレスバス１１０の物理アドレスが示す記憶領域のプログラムをデータバス１２０へと出力させる要求を送信する。
【０１０１】
制御部７０４は、例えば、参照レジスタ４８０により実現される。これにより、メモリ１０４は、物理アドレスが示す記憶領域に記憶されたプログラムをデータバス１２０に出力する。一方で、ＭＣＵ１０２は、変換装置７００によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムをデータバス１２０から取得して実行する。これにより、ＭＣＵ１０２は、ブートして、発生したイベントに固有のプログラムを実行することができる。制御部７０４は、例えば、参照レジスタ４８０により実現される。
【０１０２】
＜変換装置７００の動作例２＞
次に、変換装置７００の動作例２を実現する機能について説明する。動作例２では、割り込みコントローラ１０１は、過去に発生したイベントによるプロセッサのブートが終了する前に新たにイベントの発生を検出した場合に、ＭＣＵ１０２にブートを中止させて新たに発生したイベントによるブートを開始させる。次に、割り込みコントローラ１０１は、新たに発生したイベントによるプロセッサのブートが終了した後に、過去に発生したイベントによるブートをＭＣＵ１０２に初めから開始させる。
【０１０３】
また、割り込みコントローラ１０１は、各々のイベントに優先度が設定されている場合は、優先度の高いイベントから順に、イベントによるＭＣＵ１０２のブートを開始させてもよい。割り込みコントローラ１０１は、例えば、ＭＣＵ１０２をブートさせているイベントより優先度の高いイベントが発生した場合は、ＭＣＵ１０２にブートを中止させ優先度の高いイベントによるブートを開始させてもよい。次に、割り込みコントローラ１０１は、優先度の高いイベントによるプロセッサのブートが終了した後に、ブートを中止させたイベントによるブートをＭＣＵ１０２に初めから開始させてもよい。
【０１０４】
ここでは、割り込みコントローラ１０１が、新たに発生したイベントによるブートを優先的にＭＣＵ１０２に実行させる場合を例に挙げて、動作例２について説明する。また、動作例２にかかる記憶部７０１および制御部７０４の機能は、各々、動作例１にかかる記憶部７０１および制御部７０４の機能と同様のため、ここでは説明を省略する。
【０１０５】
選択部７０２は、プロセッサをブートさせる第１のイベントが発生した場合に、記憶部７０１を参照して第１のイベントの種別に関連する対応情報を選択する。また、選択部７０２は、第１のイベントの発生によるプロセッサのブートが終了する前に第１のイベントより優先してプロセッサをブートさせる第２のイベントが発生した場合に、記憶部７０１を参照して第２のイベントの種別に関連する対応情報を選択する。ここで、第１のイベントは、過去に発生したイベントであり、例えば、タイマー３０１が発生するイベントＥ０である。第２のイベントは、第１のイベントの発生後に発生したイベントであり、例えば、センサー３０２−１が発生するイベントＥ１である。
【０１０６】
選択部７０２は、例えば、割り込みコントローラ１０１がタイマー３０１からのイベントＥ０の発生を検出した場合に、割り込みコントローラ１０１から送信されたイベントＥ０の種別情報に関連する対応情報（例えば、図６のレコード６０１の対応情報）を選択する。次に、選択部７０２は、選択した対応情報のキーを、索引レジスタ４４０−０に記憶しておく。
【０１０７】
その後、選択部７０２は、割り込みコントローラ１０１がセンサー３０２−１からのイベントＥ１の発生を検出した場合に、割り込みコントローラ１０１から送信されたイベントＥ１の種別情報に関連する対応情報（例えば、図６のレコード６０２の対応情報）を選択する。ここで、選択部７０２は、索引レジスタ４４０−０にキーを記憶するため、索引レジスタ４４０−０〜４４０−（ｎ−１）に記憶されたキーを、各々、後段の索引レジスタ４４０−１〜４４０−ｎに移行する。次に、選択部７０２は、選択した対応情報のキーを、索引レジスタ４４０−０に記憶しておく。
【０１０８】
特定部７０３は、第２のイベントの発生によってプロセッサが第２のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスするのを待つ。そして、特定部７０３は、プロセッサが第２のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスする場合に、第２のイベントの種別に関連する対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。
【０１０９】
次に、特定部７０３は、第２のイベントの発生によるプロセッサのブートが終了した後に、第１のイベントによってプロセッサが第１のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスするのを待つ。そして、特定部７０３は、プロセッサが第１のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスする場合に、第１のイベントの種別に関連する対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。
【０１１０】
特定部７０３は、例えば、イベントＥ１の発生によってＭＣＵ１０２がブートする場合に、索引レジスタ４４０−０に記憶されたキーが識別する対応情報を用いて、論理アドレスから変換先の物理アドレスを特定する。次に、特定部７０３は、イベントＥ１の発生によるＭＣＵ１０２のブートが終了した後に、索引レジスタ４４０−１〜４４０−ｎに記憶されたキーを、各々、前段の索引レジスタ４４０−０〜４４０−（ｎ−１）に移行する。そして、特定部７０３は、索引レジスタ４４０−０に記憶されたキーが識別する対応情報を用いて、再びブートを開始したＭＣＵがアクセスする論理アドレスから、変換先の物理アドレスを特定する。
【０１１１】
（センサーノード１００におけるＭＣＵ１０２の起動の内容例１）
次に、図８〜図１７を用いて、センサーノード１００におけるＭＣＵ１０２の起動の内容例１について説明する。図８〜図１７では、センサーノード１００内のアドレス変換回路１０３が、上述した動作例１のように動作する場合を示している。
【０１１２】
図８〜図１７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図である。図８において、センサーノード１００では、消費電力の低減化のため、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給が停止されている。
【０１１３】
（１１）ここで、センサー３０２−１は、割り込みコントローラ１０１の割込制御レジスタ４１０−１に、専用線を介して割込信号を送信する。これにより、割込制御レジスタ４１０−１に「割り込みあり」を示す割り込みフラグ「１」が設定される。次に、図９の説明に移行する。
【０１１４】
図９において、（１２）割り込みコントローラ１０１は、割込制御レジスタ４１０−１に割り込みフラグ「１」が設定されたため、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給の開始要求をＰＭＵ３１３に送信する。これにより、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給が開始される。次に、図１０の説明に移行する。
【０１１５】
図１０において、（１３）割り込みコントローラ１０１は、電力が供給されたアドレス変換回路１０３に、発生したイベントの種別を示す種別情報を送信する。（１４）また、割り込みコントローラ１０１は、電力が供給されたＭＣＵ１０２に、起動要求を送信する。次に、図１１の説明に移行する。
【０１１６】
図１１において、（１５）アドレス変換回路１０３は、変換テーブル４３０を参照して、種別情報が示す種別に関連する対応情報を選択する。（１６）次に、アドレス変換回路１０３は、選択した対応情報を識別するキーとして、索引レジスタ４４０−０に、選択した対応情報が示す先頭物理アドレス「０ｘ１０００」を記憶しておく。（１７）また、ＭＣＵ１０２は、ブートを開始し、プログラムカウンタ４２０に記憶された論理アドレスの初期値「０ｘ００００」をアドレスバス１１０に出力する。次に、図１２の説明に移行する。
【０１１７】
図１２において、（１８）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ００００」を取得し、取得した論理アドレス「０ｘ００００」を絶対レジスタ４５０に記憶する。
【０１１８】
（１９）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１０００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ００００」が、特定した変換元の論理アドレス群に含まれるか否かを判定する。
【０１１９】
（２０）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれないため、従来技術にかかるページテーブルを用いて、論理アドレス「０ｘ００００」を物理アドレス「０ｘ００００」に変換して、参照レジスタ４８０に記憶する。次に、図１３の説明に移行する。
【０１２０】
図１３において、（２１）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ００００」を、アドレスバス１１０に出力する。（２２）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ００００」を取得する。（２３）次に、メモリ１０４は、取得した物理アドレス「０ｘ００００」が示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。（２４）また、ＭＣＵ１０２は、データバス１２０に出力された共通部カーネルコアを取得する。次に、図１４の説明に移行する。
【０１２１】
図１４において、（２５）ＭＣＵ１０２は、プログラムカウンタ４２０をインクリメントして、（１１）〜（２４）と同様にして、プログラムを取得する。以降、ＭＣＵ１０２は、プログラムカウンタ４２０を順次インクリメントして、プログラムを取得していく。ここで、インクリメントにより、プログラムカウンタ４２０の論理アドレスが「０ｘ０１００」になったとして、図１５の説明に移行する。
【０１２２】
図１５において、ＭＣＵ１０２は、プログラムカウンタ４２０の論理アドレスが「０ｘ０１００」をアドレスバス１１０に出力する。（２６）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ０１００」を取得し、取得した論理アドレス「０ｘ０１００」を絶対レジスタ４５０に記憶する。
【０１２３】
（２７）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１０００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ０１００」が、特定した変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」に含まれるか否かを判定する。
【０１２４】
（２８）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれるため、論理アドレス「０ｘ０１００」を物理アドレス「０ｘ１０００」に変換して、参照レジスタ４８０に記憶する。
【０１２５】
アドレス変換回路１０３は、例えば、変換元の論理アドレス群の先頭論理アドレス「０ｘ０１００」から絶対レジスタ４５０に記憶された論理アドレス「０ｘ０１００」までの差分「０」を特定する。次に、アドレス変換回路１０３は、差分「０」を、索引レジスタ４４０−０に記憶された先頭物理アドレス「０ｘ１０００」に加算する。そして、アドレス変換回路１０３は、加算後の物理アドレス「０ｘ１０００」を参照レジスタ４８０に記憶する。次に、図１６の説明に移行する。
【０１２６】
図１６において、（２９）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ１０００」を、アドレスバス１１０に出力する。（３０）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ１０００」を取得する。
【０１２７】
（３１）次に、メモリ１０４は、取得した物理アドレス「０ｘ１０００」が示す記憶領域に記憶されたイベントＥ１用のプログラムＰ１をデータバス１２０に出力する。（３２）また、ＭＣＵ１０２は、データバス１２０に出力されたイベントＥ１用のプログラムＰ１を取得する。次に、図１７の説明に移行する。
【０１２８】
図１７において、ＭＣＵ１０２は、ブートを終了したとする。（３３）割り込みコントローラ１０１は、ＭＣＵ１０２がブートを終了すると、割込制御レジスタ４１０−１に「割り込みなし」を示す割り込みフラグ「０」を記憶する。
【０１２９】
（３４）また、アドレス変換回路１０３は、ＭＣＵ１０２がブートを終了すると、索引レジスタ４４０−０に初期値「０」を代入し、索引レジスタ４４０−０を初期化する。（３５）また、ＭＣＵ１０２は、ブートを終了すると、プログラムカウンタ４２０を初期化する。
【０１３０】
ここで、割り込みコントローラ１０１は、ＭＣＵ１０２がブートを終了した場合に、消費電力の低減化のため、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給の停止要求を、ＰＭＵ３１３に送信してもよい。
【０１３１】
これにより、ＭＣＵ１０２は、発生したイベントの種別に応じたプログラムを実行するための分岐処理を実行することなく、論理アドレスの初期値からシーケンシャルにアクセスすれば、発生したイベントの種別に応じたプログラムを実行することができる。結果として、ＭＣＵ１０２は、分岐処理を削減することができ、起動時間を短縮化することができる。
【０１３２】
また、ＭＣＵ１０２は、分岐処理を削減することができるため、メモリ１０４において分岐処理に関するプログラムを記憶しておかなくてもよい。そのため、メモリ１０４は、分岐処理に関するプログラムを削減して、メモリ使用量を抑制することができる。
【０１３３】
（センサーノード１００におけるＭＣＵ起動処理）
次に、図１８を用いて、センサーノード１００におけるＭＣＵ起動処理の処理手順の一例について説明する。図１８に示すＭＣＵ起動処理は、図８〜図１７を用いて説明した割り込みコントローラ１０１、ＭＣＵ１０２、およびアドレス変換回路１０３の処理手順を示す。
【０１３４】
図１８は、センサーノード１００におけるＭＣＵ起動処理の処理手順の一例を示すシーケンス図である。図１８において、まず、デバイス（タイマー３０１やセンサー３０２−ｉ）は、イベントの発生を検出すると、割り込みコントローラ１０１に割込信号を送信する（ステップＳ１８０１）。
【０１３５】
次に、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、アドレス変換回路１０３にイベントの種別を示す種別情報を送信する（ステップＳ１８０２）。また、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、ＭＣＵ１０２に起動要求を送信する（ステップＳ１８０３）。
【０１３６】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示す種別に関連する対応情報を選択し、選択した対応情報のキーを索引レジスタ４４０−０に記憶する（ステップＳ１８０４）。また、ＭＣＵ１０２は、ブート処理を開始する（ステップＳ１８０５）。ステップＳ１８０５のブート処理については図１９に後述する。
【０１３７】
（ＭＣＵ１０２におけるブート処理）
次に、図１９を用いて、ステップＳ１８０５においてＭＣＵ１０２により開始されるブート処理の処理手順の一例について説明する。
【０１３８】
図１９は、ステップＳ１８０５に示したＭＣＵ１０２におけるブート処理の処理手順の一例を示すシーケンス図である。図１９において、まず、ＭＣＵ１０２は、プログラムカウンタ４２０に記憶された論理アドレスを、アドレスバス１１０に出力する（ステップＳ１９０１）。
【０１３９】
次に、アドレス変換回路１０３は、アドレスバス１１０に出力された論理アドレスを取得する。そして、アドレス変換回路１０３は、取得した論理アドレスを物理アドレスに変換する。次に、アドレス変換回路１０３は、変換した物理アドレスをアドレスバス１１０に出力する（ステップＳ１９０２）。
【０１４０】
そして、メモリ１０４は、アドレスバス１１０に出力された物理アドレスを取得する。次に、メモリ１０４は、取得した物理アドレスが示す記憶領域に記憶されたプログラムをデータバス１２０に出力する（ステップＳ１９０３）。
【０１４１】
そして、ＭＣＵ１０２は、データバス１２０に出力されたプログラムを取得する。次に、ＭＣＵ１０２は、取得したプログラムに従って処理を実行する（ステップＳ１９０４）。そして、ＭＣＵ１０２は、プログラムカウンタ４２０をインクリメントする（ステップＳ１９０５）。
【０１４２】
次に、ＭＣＵ１０２は、ステップＳ１９０４において実行した処理が終了処理であるか否かを判定する（ステップＳ１９０６）。ここで、終了処理ではない場合（ステップＳ１９０６：Ｎｏ）、ＭＣＵ１０２は、ステップＳ１９０１に戻る。
【０１４３】
一方、終了処理である場合（ステップＳ１９０６：Ｙｅｓ）、ＭＣＵ１０２は、ブート処理を終了する。これにより、ＭＣＵ１０２は、論理アドレスの初期値からシーケンシャルにアクセスして、ブート処理を実行することができる。
【０１４４】
（センサーノード１００におけるＭＣＵ１０２の起動の内容例２）
次に、図２０〜図２７を用いて、センサーノード１００におけるＭＣＵ１０２の起動の内容例２について説明する。図２０〜図２７では、センサーノード１００内のアドレス変換回路１０３が、上述した動作例２のように動作する場合を示している。
【０１４５】
図２０〜図２７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図である。図２０において、（４１）ＭＣＵ１０２は、ブートを実行中であって、図１４に示したように、プログラムカウンタ４２０を順次インクリメントして、プログラムを取得しているとする。
【０１４６】
（４２）ここで、センサー３０２−２は、割り込みコントローラ１０１の割込制御レジスタ４１０−２に、専用線を介して割込信号を送信する。これにより、割込制御レジスタ４１０−２に「割り込みあり」を示す割り込みフラグ「１」が設定される。
【０１４７】
（４３）割り込みコントローラ１０１は、アドレス変換回路１０３に、発生したイベントの種別を示す種別情報を送信する。（４４）また、割り込みコントローラ１０１は、ＭＣＵ１０２に、起動要求を送信する。次に、図２１の説明に移行する。
【０１４８】
図２１において、（４５）アドレス変換回路１０３は、変換テーブル４３０を参照して、種別情報が示す種別に関連する対応情報を選択する。（４６）次に、アドレス変換回路１０３は、選択した対応情報を識別するキーとして、選択した対応情報が示す先頭物理アドレス「０ｘ１１００」を採用する。ここで、アドレス変換回路１０３は、索引レジスタ４４０−０に、他の先頭物理アドレス「０ｘ１０００」が記憶されているため、索引レジスタ４４０−０〜４４０−（ｎ−１）の記憶内容を、各々、後段の索引レジスタ４４０−１〜４４０−ｎに移行する。
【０１４９】
次に、アドレス変換回路１０３は、索引レジスタ４４０−０に、キーとして、先頭物理アドレス「０ｘ１１００」を記憶する。（４７）また、ＭＣＵ１０２は、起動要求を受信すると、ブートを中止してブートを再び開始するため、プログラムカウンタ４２０を初期化する。次に、ＭＣＵ１０２は、ブートを開始し、プログラムカウンタ４２０に記憶された論理アドレスの初期値「０ｘ００００」をアドレスバス１１０に出力する。次に、図２２の説明に移行する。
【０１５０】
図２２において、（４８）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ００００」を取得し、取得した論理アドレス「０ｘ００００」を絶対レジスタ４５０に記憶する。
【０１５１】
（４９）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１１００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ００００」が、特定した変換元の論理アドレス群に含まれるか否かを判定する。
【０１５２】
（５０）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれないため、従来技術にかかるページテーブルを用いて、論理アドレス「０ｘ００００」を物理アドレス「０ｘ００００」に変換して、参照レジスタ４８０に記憶する。次に、図２３の説明に移行する。
【０１５３】
図２３において、（５１）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ００００」を、アドレスバス１１０に出力する。（５２）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ００００」を取得する。（５３）次に、メモリ１０４は、取得した物理アドレス「０ｘ００００」が示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。（５４）また、ＭＣＵ１０２は、データバス１２０に出力された共通部カーネルコアを取得する。次に、図２４の説明に移行する。
【０１５４】
図２４において、（５５）ＭＣＵ１０２は、プログラムカウンタ４２０をインクリメントして、（４１）〜（５４）と同様にして、プログラムを取得する。以降、ＭＣＵ１０２は、プログラムカウンタ４２０を順次インクリメントして、プログラムを取得していく。ここで、インクリメントにより、プログラムカウンタ４２０の論理アドレスが「０ｘ０１００」になったとして、図２５の説明に移行する。
【０１５５】
図２５において、ＭＣＵ１０２は、プログラムカウンタ４２０の論理アドレス「０ｘ０１００」をアドレスバス１１０に出力する。（５６）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ０１００」を取得し、取得した論理アドレス「０ｘ０１００」を絶対レジスタ４５０に記憶する。
【０１５６】
（５７）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１１００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ０１００」が、特定した変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」に含まれるか否かを判定する。
【０１５７】
（５８）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれるため、論理アドレス「０ｘ０１００」を物理アドレス「０ｘ１１００」に変換して、参照レジスタ４８０に記憶する。次に、図２６の説明に移行する。
【０１５８】
図２６において、（５９）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ１１００」を、アドレスバス１１０に出力する。（６０）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ１１００」を取得する。（６１）次に、メモリ１０４は、取得した物理アドレス「０ｘ１１００」が示す記憶領域に記憶されたイベントＥ２用のプログラムＰ２をデータバス１２０に出力する。（６２）また、ＭＣＵ１０２は、データバス１２０に出力されたイベントＥ２用のプログラムＰ２を取得する。次に、図２７の説明に移行する。
【０１５９】
図２７において、ＭＣＵ１０２は、ブートを終了したとする。（６３）割り込みコントローラ１０１は、ＭＣＵ１０２がブートを終了すると、割込制御レジスタ４１０−２に「割り込みなし」を示す割り込みフラグ「０」を記憶する。次に、割り込みコントローラ１０１は、アドレス変換回路１０３にブートの終了通知を送信する。そして、割り込みコントローラ１０１は、割込制御レジスタ４１０−１に「割り込みあり」を示す割り込みフラグ「１」が記憶されているため、再びＭＣＵ１０２に起動要求を送信する。
【０１６０】
（６４）また、アドレス変換回路１０３は、終了通知を受信すると、索引レジスタ４４０−０に初期値「０」を代入し初期化する。次に、アドレス変換回路１０３は、索引レジスタ４４０−１に先頭物理アドレスが記憶されているため、索引レジスタ４４０−１〜４４０−ｎの記憶内容を、各々、前段の索引レジスタ４４０−０〜４４０−（ｎ−１）に移行する。これにより、索引レジスタ４４０―０には、キーとして、先頭物理アドレス「０ｘ１０００」が記憶される。
【０１６１】
（６５）また、ＭＣＵ１０２は、割り込みコントローラ１０１から再び送信された起動要求を受信すると、プログラムカウンタ４２０を初期化して、再びブートを開始する。これにより、アドレス変換回路１０３は、割り込ませるべき順番で、論理アドレスの変換に使用する対応情報を選択することができる。
【０１６２】
従って、ＭＣＵ１０２は、イベントＥ１に応じた処理の実行中において、イベントＥ２に応じた処理を割り込ませて実行することができる。その後、ＭＣＵ１０２は、イベントＥ１に応じた処理を実行し直すことができる。結果として、メモリ１０４に、割り込み順序を制御するための割り込みハンドラを記憶しておかなくてもよく、メモリ使用量の増大を抑制することができる。
【０１６３】
（センサーノード１００における多重割り込み処理）
次に、図２８を用いて、センサーノード１００における多重割り込み処理の処理手順の一例について説明する。
【０１６４】
図２８は、センサーノード１００における多重割り込み処理の処理手順の一例を示すシーケンス図である。図２８において、まず、センサー３０２−ｉは、イベントの発生を検出すると、割り込みコントローラ１０１に割込信号を送信する（ステップＳ２８０１）。
【０１６５】
次に、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、アドレス変換回路１０３にイベントの種別を示す種別情報を送信する（ステップＳ２８０２）。また、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、ＭＣＵ１０２に起動要求を送信する（ステップＳ２８０３）。
【０１６６】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示す種別に関連する対応情報を選択し、選択した対応情報のキーを索引レジスタ４４０−０に記憶する（ステップＳ２８０４）。また、ＭＣＵ１０２は、図１９に示したブート処理を開始する（ステップＳ２８０５）。
【０１６７】
ここで、ステップＳ２８０５のブート処理が終了する前に、センサー３０２−ｉにおいてイベントが発生したとする。センサー３０２−ｉは、イベントの発生を検出すると、割り込みコントローラ１０１に割込信号を送信する（ステップＳ２８０６）。
【０１６８】
次に、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、アドレス変換回路１０３にイベントの種別を示す種別情報を送信する（ステップＳ２８０７）。また、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、ＭＣＵ１０２に起動要求を送信する（ステップＳ２８０８）。
【０１６９】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示す種別に関連する対応情報を選択し、選択した対応情報のキーを索引レジスタ４４０−０に記憶する（ステップＳ２８０９）。ここで、アドレス変換回路１０３は、索引レジスタ４４０−ｋの記憶内容を、各々、後段の索引レジスタ４４０−（ｋ＋１）に移行しておく。また、ＭＣＵ１０２は、ステップＳ２８０５のブート処理を中止し、図１９に示したブート処理を再び開始する（ステップＳ２８１０）。
【０１７０】
ここで、ステップＳ２８１０のブート処理が終了したとする。ＭＣＵ１０２は、ブート処理が終了すると、割り込みコントローラ１０１に終了通知を送信する（ステップＳ２８１１）。割り込みコントローラ１０１は、終了通知を受信すると、割り込み処理が終了していないイベントがあるため、アドレス変換回路１０３に終了通知を送信する（ステップＳ２８１２）。また、割り込みコントローラ１０１は、終了通知を受信すると、割り込み処理が終了していないイベントがあるため、ＭＣＵ１０２に起動要求を送信する（ステップＳ２８１３）。
【０１７１】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から終了通知を受信すると、索引レジスタ４４０−１のキーを索引レジスタ４４０−０に記憶する（ステップＳ２８１４）。ここで、アドレス変換回路１０３は、例えば、索引レジスタ４４０−ｋの記憶内容を、各々、前段の索引レジスタ４４０−（ｋ−１）に移行することにより、キーを記憶し直す。また、ＭＣＵ１０２は、図１９に示したブート処理を再び開始する（ステップＳ２８１５）。
【０１７２】
これにより、アドレス変換回路１０３は、ＭＣＵ１０２がブートを開始する都度、処理すべき順序で、対応情報を選択することができ、選択した対応情報により論理アドレスの変換を実行することができる。そのため、ＭＣＵ１０２は、ブートを開始する都度、処理すべき順序で、イベントに応じたプログラムを実行することができる。換言すれば、アドレス変換回路１０３は、多重割り込みに対応した動作を実行することができる。
【０１７３】
以上説明したように、開示の変換装置７００は、イベントが発生した場合に、当該イベントに応じた変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を選択しておく。そして、開示の変換装置７００は、選択しておいた対応情報が示す対応関係を用いて、ＭＣＵ１０２が変換元の論理アドレスにアクセスする場合に、当該論理アドレスを変換先の物理アドレスに変換する。これにより、開示の変換装置７００は、当該イベントに応じたプログラムをＭＣＵ１０２に取得させて実行させることができる。
【０１７４】
従って、ＭＣＵ１０２は、当該イベントに応じたプログラムを選択して実行するための分岐処理を実行しなくても、当該イベントに応じたプログラムを実行することができる。結果として、ＭＣＵ１０２において、分岐処理にかかる時間が削減され、起動時間が短縮化される。また、メモリ１０４は、分岐処理に関するプログラムを記憶しなくてもよく、メモリ使用量の増大を抑制することができる。
【０１７５】
また、ＭＣＵ１０２の起動時間が短縮化されるため、ＭＣＵ１０２の消費電力の増大を抑制することができる。そのため、センサーノード１００は、ハーベスタ３１１からの電力供給量が限られていても、限られた電力供給量の範囲内でＭＣＵ１０２を動作させることができる。
【０１７６】
また、過去に発生したイベントによるＭＣＵ１０２のブートの終了前に、新たにイベントが発生して、過去に発生したイベントによるブートを中止して、新たに発生したイベントによるＭＣＵ１０２のブートが開始される場合がある。この場合、開示の変換装置７００は、過去に発生したイベントの種別に関連する対応情報を記憶しつつ、新たに発生したイベントに関連する対応情報を選択する。そして、開示の変換装置７００は、選択した対応情報を用いて、ＭＣＵ１０２がアクセスする論理アドレスを物理アドレスに変換する。
【０１７７】
開示の変換装置７００は、新たに発生したイベントによるＭＣＵ１０２のブートが終了した後、過去に発生したイベントにより再びＭＣＵ１０２がブートされる場合に、記憶しておいた過去に発生したイベントに関連する対応情報を取得する。そして、開示の変換装置７００は、取得した対応情報を用いて、ＭＣＵ１０２がアクセスする論理アドレスを物理アドレスに変換する。これにより、開示の変換装置７００は、割り込みにより優先的に処理するイベントから順に、当該イベントに関連する対応情報を選択して、ＭＣＵ１０２にイベントに応じたプログラムを実行させることができる。結果として、ＭＣＵ１０２における割り込みの順序を制御する割込ハンドラを削減して、メモリ１０４の使用量を削減することができる。
【０１７８】
また、開示の変換装置７００は、選択した対応情報のキーを索引レジスタ４４０−ｋに記憶しておく。これにより、対応情報自体を記憶する場合よりも、索引レジスタ４４０−ｋの物理的サイズを小さくでき、開示の変換装置７００の製造コストを低減することができる。また、開示の変換装置７００は、選択した対応情報のキーを、開示の変換装置７００内の不揮発メモリに記憶せず、索引レジスタ４４０−ｋに記憶することにより、不揮発メモリからの読み出し回数を低減化して、消費電力の増大を抑制することができる。
【０１７９】
また、メモリ１０４は、各々のイベントに共通する処理を記述した共通部カーネルコアと、各々のイベントに固有の処理を記述したプログラムと、を分割して記憶する。そして、開示の変換装置７００は、共通部カーネルコアと、発生したイベントに応じたプログラムと、を組み合わせて、ＭＣＵ１０２に取得させる。これにより、メモリ１０４に、イベントごとに、共通部カーネルコアと当該イベント用のプログラムとを結合したプログラムを記憶する場合と比べて、メモリ１０４の使用量を削減することができる。
【０１８０】
また、開示の変換装置７００は、変換元の各論理アドレスの先頭論理アドレスからＭＣＵ１０２がアクセスする論理アドレスまでの差分と、変換先の各物理アドレスの先頭物理アドレスと、を加算する。そして、開示の変換装置７００は、加算により、ＭＣＵ１０２がアクセスする論理アドレスの変換先の物理アドレスを特定する。そのため、対応情報は、変換先の各物理アドレスを示さなくてもよく、変換先の各物理アドレスの先頭物理アドレスを示せばよい。結果として、開示の変換装置７００において、対応情報を記憶するために使用する記憶領域のサイズを低減化することができる。
【０１８１】
また、センサーノードが、イベントの種別ごとに当該種別に応じた処理のみを実行するＭＣＵを有し、発生したイベントの種別に応じたＭＣＵを起動して処理を実行させることにより、ＭＣＵの起動時間を短縮する構成が考えられる。しかしながら、この構成では、センサーノードの製造コストが増大したり、センサーノードの物理的サイズが増大して設置領域への設置が困難になったりする。一方で、開示の変換装置７００によれば、図２のようにＭＣＵ１０２が一つであっても、発生したイベントの種別に応じた処理を当該ＭＣＵ１０２に実行させることができ、センサーノード１００の製造コストや物理的サイズの増大を抑制することができる。
【符号の説明】
【０１８２】
１０１  割り込みコントローラ
１０２  ＭＣＵ
１０３  アドレス変換回路
１０４  メモリ
７００  変換装置
７０１  記憶部
７０２  選択部
７０３  特定部
７０４  制御部
【図１】
2014049798.tif 000003
【図２】
2014049798.tif 000004
【図３】
2014049798.tif 000005
【図４】
2014049798.tif 000006
【図５】
2014049798.tif 000007
【図６】
2014049798.tif 000008
【図７】
2014049798.tif 000009
【図８】
2014049798.tif 000010
【図９】
2014049798.tif 000011
【図１０】
2014049798.tif 000012
【図１１】
2014049798.tif 000013
【図１２】
2014049798.tif 000014
【図１３】
2014049798.tif 000015
【図１４】
2014049798.tif 000016
【図１５】
2014049798.tif 000017
【図１６】
2014049798.tif 000018
【図１７】
2014049798.tif 000019
【図１８】
2014049798.tif 000020
【図１９】
2014049798.tif 000021
【図２０】
2014049798.tif 000022
【図２１】
2014049798.tif 000023
【図２２】
2014049798.tif 000024
【図２３】
2014049798.tif 000025
【図２４】
2014049798.tif 000026
【図２５】
2014049798.tif 000027
【図２６】
2014049798.tif 000028
【図２７】
2014049798.tif 000029
【図２８】
2014049798.tif 000030
【手続補正書】
【提出日】平成27年4月1日(2015.4.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサがブートのためにアクセスする各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部と、
前記イベントが発生した場合に、前記記憶部を参照して発生した前記イベントの種別に関連する対応情報を選択する選択部と、
前記イベントの発生によって前記プロセッサが前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記選択部によって選択された対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する特定部と、
前記特定部によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを前記プロセッサに取得させる制御部と、
を有することを特徴とする変換装置。
【請求項２】
前記選択部は、
前記プロセッサをブートさせる第１のイベントが発生した場合に、前記記憶部を参照して前記第１のイベントの種別に関連する対応情報を選択し、前記第１のイベントの発生による前記プロセッサのブートが終了する前に前記第１のイベントより優先して前記プロセッサをブートさせる第２のイベントが発生した場合に、前記記憶部を参照して前記第２のイベントの種別に関連する対応情報を選択し、
前記特定部は、
前記第２のイベントの発生によって前記プロセッサが前記第２のイベントに応じた前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第２のイベントの種別に関連する対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、前記第２のイベントの発生による前記プロセッサのブートが終了した後に、前記第１のイベントによって前記プロセッサが前記第１のイベントに応じた前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第１のイベントの種別に関連する対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする請求項１に記載の変換装置。
【請求項３】
前記記憶部は、
前記各論理アドレスの中で前記イベントの種別に固有の各論理アドレスと、前記固有の各論理アドレスの変換先であって前記記憶装置内で前記イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す第１の対応情報を前記イベントの種別ごとに関連付けて記憶するとともに、
前記各論理アドレスの中で前記イベントの各種別に共通の各論理アドレスと、前記共通の各論理アドレスの変換先であって前記記憶装置内で前記イベントの各種別に共通のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す第２の対応情報を記憶し、
前記特定部は、
前記プロセッサが発生した前記イベントの種別に固有の各論理アドレスに含まれる論理アドレスにアクセスする場合に、発生した前記イベントの種別に応じた前記第１の対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、前記プロセッサが前記共通の各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第２の対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする請求項１または２に記載の変換装置。
【請求項４】
プロセッサがブートのためにアクセスする各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部にアクセス可能な変換装置が、
前記イベントが発生した場合に、前記記憶部を参照して発生した前記イベントの種別に関連する対応情報を選択し、
前記イベントの発生によって前記プロセッサが前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択した対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、
特定した物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを前記プロセッサに取得させる、
処理を実行することを特徴とする変換方法。
【請求項５】
プロセッサと、前記プロセッサがアクセスする論理アドレスを物理アドレスに変換する変換装置と、イベントの発生を検出するコントローラと、を含む情報処理システムであって、
前記コントローラは、
前記プロセッサをブートさせるイベントの発生を検出した場合に、起動要求を前記プロセッサに送信するとともに、発生した前記イベントの種別を示す種別情報を前記変換装置に送信し、
前記変換装置は、
前記コントローラから前記種別情報を受信した場合に、前記プロセッサによってブートのためにアクセス要求される各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記イベントの種別ごとに関連付けて記憶する記憶部を参照して、前記種別情報が示す種別に関連する対応情報を選択し、
前記プロセッサは、
前記コントローラから前記起動要求を受信した場合に、前記各論理アドレスに含まれる論理アドレスのアクセス要求を出力し、
前記変換装置は、
選択した前記対応情報を用いて前記プロセッサが出力したアクセス要求の論理アドレスの変換先の物理アドレスを特定し、
前記プロセッサは、
前記変換装置によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを取得して実行する、
ことを特徴とする情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換装置、変換方法、および情報処理システムに関する。
【背景技術】
【０００２】
複数のセンサー付無線端末（以下、「センサーノード」と称す）を設置領域に設置して、各センサーノードが協調して外部環境や物理的状況を示す情報を採取するセンサーネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）が知られている。
【０００３】
また、情報処理装置における消費電力の低減化に関する従来技術として、例えば、プロセッサおよび周辺回路への電力供給を停止しておき、割り込みコントローラにおいてイベントの発生を検出した場合にプロセッサおよび周辺回路に電力供給を開始する技術がある（例えば、下記特許文献１参照）。また、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のカーネルを主記憶装置に再ロードする場合に、主記憶装置内の無停止モジュールに関する記憶内容を再ロードの対象から外しておく技術がある（例えば、下記特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３３３７９０号公報
【特許文献２】特開平１１−０２４９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、イベントの発生を契機としたプロセッサの起動において、発生したイベントの種別に応じた処理を実行するための分岐処理により、プロセッサの起動が完了するまでの起動時間が長くなるという問題がある。
【０００６】
本発明は、プロセッサの起動時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、プロセッサがブートのためにアクセスする各論理アドレスと、各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部を有し、イベントが発生した場合に、記憶部を参照して発生したイベントの種別に関連する対応情報を選択し、イベントの発生によってプロセッサが各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択した対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定し、特定した物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムをプロセッサに取得させる変換装置、および変換方法が提案される。
【０００８】
また、本発明の一側面によれば、プロセッサと、プロセッサがアクセスする論理アドレスを物理アドレスに変換する変換装置と、イベントの発生を検出するコントローラと、を含む情報処理システムであって、コントローラは、プロセッサをブートさせるイベントの発生を検出した場合に、起動要求をプロセッサに送信するとともに、発生したイベントの種別を示す種別情報を変換装置に送信し、変換装置は、コントローラから種別情報を受信した場合に、プロセッサによってブートのためにアクセス要求される各論理アドレスと、各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、イベントの種別ごとに関連付けて記憶する記憶部を参照して、種別情報が示す種別に関連する対応情報を選択し、プロセッサは、コントローラから起動要求を受信した場合に、各論理アドレスに含まれる論理アドレスのアクセス要求を出力し、変換装置は、選択した対応情報を用いてプロセッサが出力したアクセス要求の論理アドレスの変換先の物理アドレスを特定し、プロセッサは、変換装置によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを取得して実行する情報処理システムが提案される。
【発明の効果】
【０００９】
本発明の一側面によれば、プロセッサの起動時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、センサーノードにおけるＭＣＵ起動の流れの一例を示す説明図である。
【図２】図２は、センサーノード１００を含むセンサーネットワークの構成例を示す図である。
【図３】図３は、センサーノード１００の内部構成例を示すブロック図である。
【図４】図４は、図３に示した割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例を示す説明図である。
【図５】図５は、図４に示したメモリ１０４の記憶内容の一例を示す説明図である。
【図６】図６は、変換テーブル４３０の記憶内容の一例を示す説明図である。
【図７】図７は、変換装置の機能的構成例を示すブロック図である。
【図８】図８は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その１）である。
【図９】図９は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その２）である。
【図１０】図１０は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その３）である。
【図１１】図１１は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その４）である。
【図１２】図１２は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その５）である。
【図１３】図１３は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その６）である。
【図１４】図１４は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その７）である。
【図１５】図１５は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その８）である。
【図１６】図１６は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その９）である。
【図１７】図１７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図（その１０）である。
【図１８】図１８は、センサーノード１００におけるＭＣＵ起動処理の処理手順の一例を示すシーケンス図である。
【図１９】図１９は、ステップＳ１８０５に示したＭＣＵ１０２におけるブート処理の処理手順の一例を示すシーケンス図である。
【図２０】図２０は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その１）である。
【図２１】図２１は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その２）である。
【図２２】図２２は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その３）である。
【図２３】図２３は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その４）である。
【図２４】図２４は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その５）である。
【図２５】図２５は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その６）である。
【図２６】図２６は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その７）である。
【図２７】図２７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図（その８）である。
【図２８】図２８は、センサーノード１００における多重割り込み処理の処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる変換装置、変換方法、および情報処理システムの実施の形態を詳細に説明する。開示の変換装置は、イベントが発生した場合に、当該イベントに応じた変換元の論理アドレスと、当該イベントに応じたプログラムの記憶領域を示す変換先の物理アドレスと、の組み合わせを選択しておく。そして、開示の変換装置は、プロセッサが変換元の論理アドレスにアクセスする場合に、選択しておいた組み合わせを用いて当該論理アドレスを変換先の物理アドレスに変換して、当該イベントに応じたプログラムをプロセッサに取得させる。
【００１２】
ここで、プロセッサが、複数のイベントの各々のイベントに応じたプログラムの中から、発生したイベントに応じたプログラムを実行するために、分岐処理を実行する構成が考えられる。分岐処理とは、例えば、どのようなイベントが発生したかを特定し、特定したイベントに応じたプログラムを選択する処理である。しかしながら、この構成では、分岐処理に時間がかかりプロセッサの起動時間が長くなる。一方で、開示の変換装置によれば、プロセッサは、上述した分岐処理を実行しなくても、発生したイベントに応じたプログラムを実行することができる。結果として、プロセッサにおいて、分岐処理にかかる時間が削減され、起動時間が短縮化される。以降では、本発明にかかる変換装置を含み、本発明にかかる情報処理システムを実現するセンサーノードを例に挙げて、実施の形態について説明する。
【００１３】
（センサーノードにおけるＭＣＵ起動の流れ）
図１は、センサーノードにおけるＭＣＵ起動の流れの一例を示す説明図である。図１のように、センサーノード１００は、割り込みコントローラ１０１と、マイクロプロセッサ（ＭＣＵ：Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１０２と、アドレス変換回路（変換装置）１０３と、メモリ１０４と、を含む。
【００１４】
割り込みコントローラ１０１は、ＭＣＵ１０２をブートさせるトリガになるイベントの発生を検出する装置である。イベントは、例えば、タイマーの計時やセンサーの変位量の検出により発生する。イベントとは、プロセッサにブートを実行させ当該イベントに応じたプログラムを実行させるトリガである。イベントは、例えば、タイマーやセンサーにより発生される。
【００１５】
割り込みコントローラ１０１は、イベントの発生を検出した場合に、アドレス変換回路１０３に起動要求と検出されたイベントの種別とを送信する。また、割り込みコントローラ１０１は、イベントの発生を検出した場合に、ＭＣＵ１０２に起動要求を送信する。
【００１６】
ＭＣＵ１０２は、起動要求を受信した場合にブートする装置である。ＭＣＵ１０２は、例えば、論理アドレスを初期値「０ｘ００００」から順次アドレスバス１１０に出力する。ＭＣＵ１０２は、論理アドレスを出力した結果として、メモリ１０４からデータバス１２０に出力されるプログラムを取得して実行することによりブートする。
【００１７】
アドレス変換回路１０３は、論理アドレスを物理アドレスに変換する装置である。アドレス変換回路１０３は、複数のイベントの各々のイベントの種別に関連付けて、変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を記憶する。ここで、アドレス変換回路１０３は、例えば、図６を用いて後述する変換テーブルとして、対応情報を記憶する。
【００１８】
メモリ１０４は、ＭＣＵ１０２のブートのためのプログラムを記憶する。ＭＣＵ１０２のブートのためのプログラムは、例えば、発生したイベントに関わらず、共通して実行すべき共通部カーネルコアを含む。また、ＭＣＵ１０２のブートのためのプログラムは、例えば、発生したイベントに応じて実行すべきイベント固有のプログラムを含む。メモリ１０４は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や不揮発メモリにより実現される。
【００１９】
図１において、（１）割り込みコントローラ１０１は、ＭＣＵ１０２をブートさせるトリガになるイベントＥ１の発生を検出する。割り込みコントローラ１０１は、イベントＥ１の発生を検出すると、アドレス変換回路１０３に起動要求を送信する。次に、割り込みコントローラ１０１は、検出されたイベントＥ１の種別を示す種別情報をアドレス変換回路１０３に送信する。（２）また、割り込みコントローラ１０１は、イベントの発生を検出すると、ＭＣＵ１０２に起動要求を送信する。
【００２０】
（３）アドレス変換回路１０３は、起動要求を受信して起動する。次に、アドレス変換回路１０３は、種別情報を受信すると、受信した種別情報が示す種別に関連する対応情報を選択しておく。種別に関連する対応情報は、例えば、変換元の論理アドレス「０ｘ０１００〜０ｘ０１ｆｆ」と、種別に固有のプログラム（図１の例ではイベントＥ１用のプログラム）が記憶された記憶領域を示す変換先の物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」と、の対応関係を示す。
【００２１】
（４）ＭＣＵ１０２は、起動要求を受信してブートを開始する。ＭＣＵ１０２は、例えば、ブートのために、論理アドレスの初期値「０ｘ００００」から順にアドレスバス１１０に出力する。そして、ＭＣＵ１０２は、アドレスバス１１０に出力した結果、メモリ１０４からデータバス１２０に出力されるプログラムを取得して実行する。結果として、ＭＣＵ１０２は、論理アドレスの初期値「０ｘ００００」から、ブートが終了する論理アドレス「０ｘ０２ｆｆ」までの論理アドレスをシーケンシャルに出力する。
【００２２】
（５）ここで、アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に論理アドレスが出力される都度、出力された論理アドレスを取得する。アドレス変換回路１０３は、（３）において選択しておいた対応情報を用いて、取得した論理アドレスを物理アドレスに変換してアドレスバス１１０に出力する。これにより、アドレス変換回路１０３は、アドレスバス１１０に出力した物理アドレスが示す記憶領域に記憶されたプログラムを、メモリ１０４からデータバス１２０に出力させ、（４）においてＭＣＵ１０２に取得させる。
【００２３】
アドレス変換回路１０３は、例えば、対応情報が示す変換元の論理アドレス「０ｘ０１００〜０ｘ０１ｆｆ」がアドレスバス１１０に出力された場合には、対応情報を参照して、物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」に変換する。
【００２４】
一方、アドレス変換回路１０３は、対応情報が示す論理アドレス以外「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜」がアドレスバス１１０に出力された場合には、従来技術を用いて物理アドレス「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜」に変換する。ここでは、アドレス変換回路１０３は、ページテーブルを用いて論理アドレスを物理アドレスに変換することになるが、従来技術であるため詳細な説明を省略する。
【００２５】
換言すれば、ＭＣＵ１０２がアドレスバス１１０に出力した論理アドレス「０ｘ００００〜０ｘ０２ｆｆ」は、アドレス変換回路１０３により物理アドレス「０ｘ００００〜０ｘ００ｆｆ、０ｘ１１００〜０ｘ１１ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」に変換される。そして、アドレス変換回路１０３によって物理アドレス「０ｘ００００〜０ｘ００ｆｆ、０ｘ１１００〜０ｘ１１ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」がアドレスバス１１０に出力される。
【００２６】
（６）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレスが示す記憶領域の内容をデータバス１２０に出力する。メモリ１０４は、例えば、物理アドレス「０ｘ００００〜０ｘ００ｆｆ」の示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。
【００２７】
また、メモリ１０４は、物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」の示す記憶領域に記憶されたイベントＥ１用のプログラムをデータバス１２０に出力する。また、メモリ１０４は、物理アドレス「０ｘ０２００〜０ｘ０２ｆｆ」の示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。
【００２８】
これにより、ＭＣＵ１０２は、出力された共通部カーネルコアとイベントＥ１用のプログラムとを実行してブートすることができる。結果として、ＭＣＵ１０２は、どのようなイベントが発生したかを判定しなくても、論理アドレスの初期値「０ｘ００００」からシーケンシャルにアクセスすれば、発生したイベントに応じたプログラムを実行してブートすることができる。そのため、ＭＣＵ１０２は、発生したイベントに応じたプログラムを選択して実行するための分岐処理を削減して、起動時間を短縮化することができる。
【００２９】
また、ＭＣＵ１０２において分岐処理を削減することができるため、メモリ１０４は分岐処理に関するプログラムを記憶しておかなくてもよい。そのため、メモリ１０４は、分岐処理に関するプログラムを削減して、メモリ使用量を抑制することができる。
【００３０】
（センサーネットワークの構成）
図２は、センサーノード１００を含むセンサーネットワークの構成例を示す図である。図２に示すセンサーネットワーク２００は、所定の設置領域２１０内に配置されたチップ状の複数のセンサーノード１００と、設置領域２１０内の複数のセンサーノード１００のセンサー出力を無線等により受信する親ノード２０１とを含む。設置領域２１０は、例えば、コンクリート、土、水、空気などの物質で満たされた領域である。または、設置領域２１０は、宇宙空間などの真空の領域であってもよい。
【００３１】
センサーノード１００は、設置領域２１０内の各設置箇所における所定の変位量を検出し、親ノード２０１に検出した情報を無線通信により送信する。親ノード２０１は、設置領域２１０に設けられた複数のセンサーノード１００から得られた情報を集約し、外部装置としてのサーバーへの情報のアップロードを行う。また、親ノード２０１は、外部装置としての利用者端末に対し設置箇所においてセンサーノード１００が検出したデータの通知等を行ってもよい。
【００３２】
センサーノード１００（図２の黒丸）は、図２に示すように、設置領域２１０内に大量に設置される。また、親ノード２０１（図２の白丸）は、設置領域２１０内のいずれかの箇所に１台設置される。実施の形態におけるセンサーノード１００は、近距離の無線通信能力、少なくとも隣接するセンサーノード１００に到達可能な無線電波を出力できればよい。このため、親ノード２０１から遠いセンサーノード１００ａは、隣接する他の一つまたは複数のセンサーノード１００ｂを介してデータをリレー転送させる。各センサーノード１００は、このリレー転送により、検出したデータを親ノード２０１に届けるようになっている（図２矢印参照）。
【００３３】
（センサーノード１００の内部構成例）
図３は、センサーノード１００の内部構成例を示すブロック図である。センサーノード１００は、タイマー３０１と、複数のセンサー３０２−１〜３０２−ｎ（ｎは自然数）と、割り込みコントローラ１０１と、ＭＣＵ１０２と、アドレス変換回路１０３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、ＲＯＭ３０４と、不揮発メモリ３０５と、無線通信回路３０６と、を含む。また、センサーノード１００は、ハーベスタ３１１と、バッテリ３１２と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３１３と、を含む。以降では、任意のセンサーを「センサー３０２−ｉ」と称す（ｉは１〜ｎ）。
【００３４】
タイマー３０１と、センサー３０２−ｉと、割り込みコントローラ１０１と、ＭＣＵ１０２と、アドレス変換回路１０３と、ＲＡＭ３０３と、ＲＯＭ３０４と、不揮発メモリ３０５と、無線通信回路３０６と、は、内部バス３０９により接続されている。内部バス３０９には、上述したアドレスバス１１０やデータバス１２０が含まれる。
【００３５】
タイマー３０１は、クロック（ＣＬＫ）により発生したパルス信号をカウントし、経過時間を測定する。タイマー３０１は、一定時間ごとにイベントを発生し、割り込みコントローラ１０１に対して専用線を介して割込信号を送信する。以降では、タイマーが発生するイベントを「イベントＥ０」と称す。
【００３６】
センサー３０２−ｉは、設置箇所における所定の変位量を検出する。センサー３０２−ｉは、例えば、設置箇所の圧力を検出する圧電素子や、光を検出する光電素子等を用いることができる。センサー３０２−ｉは、検出した変位量に基づいてイベントを発生し、割り込みコントローラ１０１に対して専用線を介して割込信号を送信する。以降では、センサー３０２−ｉが発生するイベントを「イベントＥｉ」と称す（ｉは１〜ｎ）。
【００３７】
割り込みコントローラ１０１は、タイマー３０１やセンサー３０２−ｉから専用線を介して割込信号を受信する。割り込みコントローラ１０１は、割込信号を受信すると、ＭＣＵ１０２やアドレス変換回路１０３への電力供給が停止されていれば、ＰＭＵ３１３にＭＣＵ１０２やアドレス変換回路１０３への電力供給の開始要求を送信する。また、割り込みコントローラ１０１は、割込信号を受信すると、ＭＣＵ１０２に対して専用線を介して起動要求を送信するとともに、アドレス変換回路１０３に対して専用線を介して起動要求や発生したイベントの種別を示す種別情報を送信する。
【００３８】
ＭＣＵ１０２は、割り込みコントローラ１０１から起動要求を受信すると、論理アドレスの初期値から順次アクセスすることにより、ブートを開始する。ＭＣＵ１０２は、ブートを開始することによりデバイスドライバの初期化を実行し、バッチ処理やセンサー３０２−ｉが検出したデータの処理を開始する。
【００３９】
アドレス変換回路１０３は、ＭＣＵ１０２がアクセスする論理アドレスを物理アドレスに変換することによって、ＲＯＭ３０４やＲＡＭ３０３等のメモリ１０４における物理アドレスが示す記憶領域に記憶されたプログラムをＭＣＵ１０２に取得させる。アドレス変換回路１０３は、例えば、論理アドレスを発生したイベントの種別に応じた物理アドレスに変換することにより、発生したイベントに応じたプログラムをＭＣＵ１０２に取得させる。
【００４０】
ＲＡＭ３０３は、ＭＣＵ１０２における処理の一時データを格納する。ＲＯＭ３０４は、ＭＣＵ１０２が実行する処理プログラム等を格納する。不揮発メモリ３０５は、電力供給が途絶えたとき等においても書き込まれた所定のデータを保持する。
【００４１】
無線通信回路（ＲＦ）３０６は、アンテナ３２０を有する。無線通信回路３０６は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ３２０を介して送信する。アンテナ３２０は、親ノード２０１と無線通信する電波を送受信する。
【００４２】
ハーベスタ３１１は、センサーノード１００の設置箇所における外部環境、例えば、光、振動、温度、無線電波（受信電波）等のエネルギー変化に基づき発電を行う。バッテリ３１２は、ハーベスタ３１１により発電された電力を蓄える。ＰＭＵ３１３は、バッテリ３１２に蓄えられた電力を、センサーノード１００の各部の駆動電源として供給する。換言すれば、センサーノード１００は、二次電池や外部電源等が不要であり、動作に必要な電力をセンサーノード１００内部で生成する。
【００４３】
センサーノード１００は、例えば、バッテリ３１２に蓄えられた電力に制限があるため、イベントが発生するまでは、ＭＣＵ１０２やアドレス変換回路１０３等への電力供給を停止しておき、消費電力を低減してもよい。
【００４４】
（割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例）
次に、図４を用いて、図３に示した割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例について説明する。
【００４５】
図４は、図３に示した割り込みコントローラ１０１、アドレス変換回路１０３、およびＭＣＵ１０２の詳細な構成例を示す説明図である。割り込みコントローラ１０１は、割込制御レジスタ４１０−０〜４１０−ｎと、ＯＲゲート４１１と、を有する。以降では、任意の割込制御レジスタを、「割込制御レジスタ４１０−ｊ」と称す（ｊは０〜ｎ）。
【００４６】
割込制御レジスタ４１０−ｊは、各種デバイス（タイマー３０１やセンサー３０２−ｉ）に対応し、割り込みの有無を示す割り込みフラグを記憶する。例えば、割込制御レジスタ４１０−０は、タイマー３０１に対応し、タイマー３０１が発生させたイベントＥ０による割り込みの有無を示す割り込みフラグを記憶する。また、割込制御レジスタ４１０−１は、センサー３０２−１に対応し、センサー３０２−１が発生させたイベントＥ１による割り込みの有無を示す割り込みフラグを記憶する。同様に、割込制御レジスタ４１０−２〜４１０−ｎは、各々、センサー３０２−２〜３０２−ｎの各々に対応し、センサー３０２−２〜３０２−ｎの各々が発生させたイベントＥ２〜Ｅｎによる割り込みの有無を示す割り込みフラグを記憶する。
【００４７】
割込制御レジスタ４１０−ｊは、対応するデバイスと専用線を介して接続されている。割込制御レジスタ４１０−ｊの割り込みフラグは、対応するデバイスから専用線を介して送信された割込信号によって、「割り込みあり」に設定される。割込制御レジスタ４１０−ｊには、例えば、「割り込みなし」の場合は割り込みフラグとして「０」が設定され、「割り込みあり」の場合は割り込みフラグとして「１」が設定される。
【００４８】
割り込みコントローラ１０１は、割込制御レジスタ４１０−ｊに「割り込みあり」を示す割り込みフラグが設定された場合に、ＭＣＵ１０２へ電力供給されていなければ、ＭＣＵ１０２への電力供給の開始要求をＰＭＵ３１３に送信する。また、割り込みコントローラ１０１は、割込制御レジスタ４１０−ｊに「割り込みあり」を示す割り込みフラグが設定された場合に、アドレス変換回路１０３へ電力供給されていなければ、アドレス変換回路１０３への電力供給の開始要求をＰＭＵ３１３に送信する。
【００４９】
ＯＲゲート４１１は、入力信号の論理和を出力する論理回路である。ＯＲゲート４１１は、割込制御レジスタ４１０−１〜４１０−ｎの割り込みフラグを入力信号とし、論理和を出力する。換言すれば、ＯＲゲート４１１は、割込制御レジスタ４１０−１〜４１０−ｎの少なくともいずれかに「割り込みあり」を示す割り込みフラグ「１」が設定された場合に論理和「１」を出力する。
【００５０】
割り込みコントローラ１０１は、タイマー３０１により割込制御レジスタ４１０−０に「割り込みあり」を示す割り込みフラグ「１」が設定された場合は、当該割り込みフラグ「１」を起動要求としてＭＣＵ１０２に送信する。また、割り込みコントローラ１０１は、センサー３０２−ｉにより割込制御レジスタ４１０−ｉに「割り込みあり」を示す割り込みフラグが設定された場合は、ＯＲゲート４１１から出力される論理和「１」を起動要求としてＭＣＵ１０２に送信する。ここで、起動要求は、専用線４１２を介して送信される。
【００５１】
また、割り込みコントローラ１０１は、割込制御レジスタ４１０−ｊに「割り込みあり」を示す割り込みフラグが設定された場合、割込制御レジスタ４１０−０〜４１０−ｎの割り込みフラグを種別情報としてアドレス変換回路１０３に送信する。ここで、種別情報は、専用線４１３を介して送信される。
【００５２】
ＭＣＵ１０２は、プログラムカウンタ４２０を有する。プログラムカウンタ４２０は、アクセス先の論理アドレスを記憶するレジスタである。ＭＣＵ１０２は、割り込みコントローラ１０１から起動要求を受信すると、プログラムカウンタ４２０に記憶された論理アドレスを、アドレスバス１１０に出力する。ＭＣＵ１０２は、論理アドレスを出力した結果、メモリ１０４からデータバス１２０に出力されたプログラムを取得して実行する。そして、ＭＣＵ１０２は、取得したプログラムの分、プログラムカウンタ４２０の論理アドレスをインクリメントして、プログラムカウンタ４２０に記憶された論理アドレスを、アドレスバス１１０に出力する。このようにして、ＭＣＵ１０２は、プログラムカウンタ４２０の初期値から順次アクセスを行う。
【００５３】
アドレス変換回路１０３は、変換テーブル４３０と、複数の索引レジスタ４４０−０〜４４０−ｎと、絶対レジスタ４５０と、比較器４６０と、ＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）４７０と、参照レジスタ４８０と、初期値レジスタ４９０と、を有する。具体的には、例えば、アドレス変換回路１０３は、論理積回路であるＡＮＤゲート、否定論理回路であるＩＮＶＥＲＴＥＲゲート、ＯＲゲートや、ラッチ回路であるＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）などの素子によって形成されてもよい。変換テーブル４３０は、変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を、イベントの種別ごとに関連付けて記憶するテーブルである。変換テーブル４３０の記憶内容については、図６を用いて後述する。
【００５４】
また、複数の索引レジスタ４４０−０〜４４０−ｎは、多重割り込みに対応するために、対応情報のキーを記憶するレジスタである。索引レジスタ４４０−０〜４４０−ｎは、複数のイベントが発生した場合に、各々のイベントに応じた対応情報のキーを、処理すべき順序に従って記憶する。索引レジスタ４４０−０〜４４０−ｎは、対応情報自体を記憶してもよい。
【００５５】
索引レジスタ４４０−０〜４４０−ｎは、例えば、スタックを実現し、ＬＩＦＯ（Ｌａｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）の構造で、各々のイベントに応じた対応情報のキーを記憶する。以降では、任意の索引レジスタを「索引レジスタ４４０−ｋ」と称す。また、ｋの値が小さい索引レジスタ４４０−ｋに記憶された対応情報から順に処理することとする。多重割り込みに対応しない場合は、索引レジスタ４４０−ｋは一つであってもよい。
【００５６】
また、絶対レジスタ４５０は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレスを記憶するレジスタである。比較器４６０は、絶対レジスタ４５０に記憶された論理アドレスが、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報が示す変換元の論理アドレス群に含まれるか否かを判定する論理回路である。
【００５７】
また、ＡＬＵ４７０は、絶対レジスタ４５０に記憶された論理アドレスと、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報と、を入力とし、絶対レジスタ４５０に記憶された論理アドレスの変換先の物理アドレスを算出する演算装置である。また、参照レジスタ４８０は、ＡＬＵ４７０により算出された変換先の物理アドレスを記憶するレジスタである。また、初期値レジスタ４９０は、索引レジスタ４４０−ｋを初期化するための初期値「０」を記憶するレジスタである。
【００５８】
アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示すイベントの種別に関連する対応情報を選択する。アドレス変換回路１０３は、選択した対応情報のキーを索引レジスタ４４０−０に記憶する。アドレス変換回路１０３は、例えば、キーとして、変換先の各物理アドレスの中の先頭物理アドレスを採用してもよい。
【００５９】
ここで、アドレス変換回路１０３は、索引レジスタ４４０−０に他のキーが記憶してある場合、索引レジスタ４４０−０〜４４０−（ｎ−１）に記憶されたキーを、各々、後段の索引レジスタ４４０−１〜４４０−ｎに移行する。次に、アドレス変換回路１０３は、選択した対応情報のキーを索引レジスタ４４０−０に記憶する。
【００６０】
その後、アドレス変換回路１０３は、例えば、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレスを取得し、取得した論理アドレスを絶対レジスタ４５０に記憶する。次に、アドレス変換回路１０３は、比較器４６０を用いて、絶対レジスタ４５０に記憶された論理アドレスが、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報が示す変換元の論理アドレス群に含まれるか否かを判定する。
【００６１】
そして、アドレス変換回路１０３は、変換元の論理アドレス群に含まれると判定した場合に、索引レジスタ４４０−０に記憶されたキーにより識別される対応情報とＡＬＵ４７０を用いて、絶対レジスタ４５０に記憶された論理アドレスを物理アドレスに変換する。次に、アドレス変換回路１０３は、変換した物理アドレスを参照レジスタ４８０に記憶する。
【００６２】
そして、アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレスをアドレスバス１１０に出力する。これにより、アドレス変換回路１０３は、メモリ１０４に、アドレスバス１１０へと出力された物理アドレスが示す記憶領域に記憶されたプログラムをデータバス１２０へと出力させることができる。
【００６３】
アドレス変換回路１０３は、ＭＣＵ１０２のブートが終了した場合に、索引レジスタ４４０−０を初期化するために索引レジスタ４４０−０に初期値レジスタ４９０に記憶された初期値「０」を設定する。ここで、アドレス変換回路１０３は、索引レジスタ４４０−１〜４４０−ｎにキーが記憶されている場合は、索引レジスタ４４０−１〜４４０−ｎに記憶されたキーを、各々、前段の索引レジスタ４４０−０〜４４０−（ｎ−１）に移行する。
【００６４】
（メモリ１０４の記憶内容）
次に、図５を用いて、図４に示したメモリ１０４の記憶内容の一例について説明する。
【００６５】
図５は、図４に示したメモリ１０４の記憶内容の一例を示す説明図である。図５に示すように、メモリ１０４は、ＭＣＵ１０２のブート処理のためのプログラムとして、発生したイベントに関わらず実行すべき共通部カーネルコアを記憶する。共通部カーネルコアは、ＭＣＵ１０２の初期化ルーチンに関するプログラムと、デバイスインターフェースに関するプログラムと、デバイス後処理に関するプログラムと、を含む。
【００６６】
共通部カーネルコアは、物理アドレス「０ｘ００００〜０ｘ０２ｆｆ」が示す記憶領域５１０に記憶されている。共通部カーネルコアのうち初期化ルーチンに関するプログラムは、物理アドレス「０ｘ００００〜０ｘ００４ｆ」が示す記憶領域５１１に記憶されている。共通部カーネルコアのうちデバイスインターフェースに関するプログラムは、物理アドレス「０ｘ００５０〜０ｘ００ｆｆ」が示す記憶領域５１２に記憶されている。共通部カーネルコアのうちデバイス後処理に関するプログラムは、物理アドレス「０ｘ０２００〜０ｘ０２ｆｆ」が示す記憶領域５１３に記憶されている。
【００６７】
また、メモリ１０４は、タイマー３０１によりイベントＥ０が発生した場合にのみ実行すべきイベントＥ０用のプログラムＰ０を記憶する。プログラムＰ０は、イベントＥ０が発生した場合に初期化すべきデバイスドライバに関するプログラムと、イベントＥ０が発生した場合に実行すべきデバイス処理に関するプログラムと、を含む。
【００６８】
プログラムＰ０は、物理アドレス「０ｘ１０００〜０ｘ１０ｆｆ」が示す記憶領域５２０に記憶されている。プログラムＰ０のうちデバイスドライバに関するプログラムは、物理アドレス「０ｘ１０００〜０ｘ１００ｆ」が示す記憶領域５２１に記憶されている。プログラムＰ０のうちデバイス処理に関するプログラムは、物理アドレス「０ｘ１０１０〜０ｘ１０ｆｆ」が示す記憶領域５２２に記憶されている。
【００６９】
また、メモリ１０４は、センサー３０２−ｉごとに、当該センサー３０２−ｉにおいてイベントＥｉが発生した場合にのみ実行すべきイベントＥｉ用のプログラムＰｉを記憶する。プログラムＰｉは、イベントＥｉが発生した場合に初期化すべきデバイスドライバに関するプログラムと、イベントＥｉが発生した場合に実行すべきデバイス処理に関するプログラムと、を含む。
【００７０】
例えば、イベントＥ１が発生した場合にのみ実行すべきイベントＥ１用のプログラムＰ１は、物理アドレス「０ｘ１１００〜０ｘ１１ｆｆ」が示す記憶領域５３０に記憶されている。プログラムＰ１のうちデバイスドライバに関するプログラムは、物理アドレス「０ｘ１１００〜０ｘ１１０ｆ」が示す記憶領域５３１に記憶されている。プログラムＰ１のうちデバイス処理に関するプログラムは、物理アドレス「０ｘ１１１０〜０ｘ１１ｆｆ」が示す記憶領域５３２に記憶されている。
【００７１】
同様に、イベントＥ２が発生した場合にのみ実行すべきイベントＥ２用のプログラムＰ２は、記憶領域５４０に記憶されている。イベントＥ３が発生した場合にのみ実行すべきイベントＥ３用のプログラムＰ３は、記憶領域５５０に記憶されている。
【００７２】
ここでは、共通部カーネルコアと各イベント用のプログラムとは分割して記憶されているが、これに限らない。例えば、イベントごとに、共通部カーネルコアと当該イベント用のプログラムとを結合したプログラムを記憶しておいてもよい。
【００７３】
（変換テーブル４３０の記憶内容）
次に、図６を用いて、変換テーブル４３０の記憶内容の一例について説明する。変換テーブル４３０は、イベントの種別ごとに、変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を記憶したテーブルである。変換テーブル４３０は、例えば、アドレス変換回路１０３内のＲＯＭやＲＡＭ等によって実現される。
【００７４】
図６は、変換テーブル４３０の記憶内容の一例を示す説明図である。図６に示すように、変換テーブル４３０は、イベント項目に関連付けて、物理アドレス項目と、論理アドレス項目と、を有し、イベントの種別ごとに各項目に情報が設定されることによりレコード（例えば、６０１〜６０４など）を構成する。
【００７５】
イベント項目には、ＭＣＵ１０２がブートを開始するトリガになるイベントの種別を示す種別情報が記憶される。イベント項目には、例えば、タイマー３０１が発生したイベントＥ０の種別情報「Ｔｉｍｅｒ」が記憶されたり、センサー３０２−ｉが発生したイベントＥｉの種別情報「Ｅｖｅｎｔ  Ｅｉ」が記憶されたりする。
【００７６】
物理アドレス項目には、イベント項目が示す種別のイベントが発生した場合に、ＭＣＵ１０２がブートのためにアクセスする論理アドレス群の各論理アドレスの変換先の各物理アドレスを示す物理アドレス情報が記憶される。物理アドレス項目には、例えば、変換先の各物理アドレスの中で先頭にある物理アドレスを記憶する。
【００７７】
論理アドレス項目には、イベント項目が示す種別のイベントが発生した場合に、ＭＣＵ１０２がブートのためにアクセスする論理アドレス群の各論理アドレスを示す論理アドレス情報が記憶される。論理アドレス項目には、例えば、論理アドレス群の範囲が記憶される。
【００７８】
例えば、レコード６０１は、タイマー３０１が発生したイベントＥ０に関連する対応情報を示す。レコード６０１の対応情報は、変換元の論理アドレス群の各論理アドレス「０ｘ０１００〜０ｘ０１ｆｆ」と、変換先の各物理アドレス「０ｘ１０００〜０ｘ１０ｆｆ」の中の先頭物理アドレス「０ｘ１０００」と、を示す。
【００７９】
図６の例では、各々のイベントに応じた論理アドレス項目に記憶された論理アドレス群は同一であるが、これに限らない。例えば、論理アドレス項目には、各々のイベントに応じて、異なる論理アドレス群が記憶されていてもよい。
【００８０】
（変換装置の機能的構成例）
次に、図７を用いて、変換装置の機能的構成例について説明する。図７は、変換装置の機能的構成例を示すブロック図である。変換装置７００は、記憶部７０１と、選択部７０２と、特定部７０３と、制御部７０４と、を含む。
【００８１】
ここで、変換装置７００は、割り込みコントローラ１０１が多重割り込みを禁止している場合に対応する動作（以降、動作例１と称す）を実行してもよい。また、変換装置７００は、割り込みコントローラ１０１が多重割り込みを行う場合に対応する動作（以降、動作例２と称す）を実行してもよい。
【００８２】
＜変換装置７００の動作例１＞
まず、変換装置７００の動作例１を実現する機能について説明する。動作例１では、割り込みコントローラ１０１は、イベントの発生を検出した場合に、起動要求をプロセッサに送信するとともに、発生したイベントの種別を示す種別情報を変換装置７００に送信する。
【００８３】
また、割り込みコントローラ１０１は、複数のイベントの発生を検出した場合、多重割り込みを禁止しているため、発生順序が最先のイベントによるプロセッサのブートの終了を待つ。次に、割り込みコントローラ１０１は、最先のイベントによるプロセッサのブートが終了した後に、２番目に発生したイベントについて起動要求をプロセッサに送信し、２番目に発生したイベントの種別を示す種別情報を変換装置７００に送信する。
【００８４】
ここで、プロセッサとは、センサーノード１００全体の動作を制御する装置であって、例えば、上述したＭＣＵ１０２である。イベントとは、図１に上述したように、プロセッサにブートを実行させ当該イベントに応じたプログラムを実行させるトリガである。イベントとは、例えば、上述したタイマー３０１が発生するイベントＥ０やセンサー３０２−ｉが発生するイベントＥｉである。起動要求とは、プロセッサにブートを開始させる要求である。変換装置７００とは、論理アドレスを物理アドレスに変換する装置であって、例えば、上述したアドレス変換回路１０３である。
【００８５】
記憶部７０１は、プロセッサがブートのためにアクセスする各論理アドレスと、各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する。ここで、プロセッサが論理アドレスにアクセスするとは、プロセッサがアドレスバス１１０に論理アドレスを出力し、アドレス変換回路１０３にメモリ１０４の読み出し要求を送信することをいう。
【００８６】
ブートのためにアクセスする各論理アドレスとは、プロセッサがアクセス可能な論理アドレス空間の中でプロセッサがブートのためにアクセスする論理アドレス群であって、論理アドレスの初期値から順次シーケンシャルにアクセスされる論理アドレス群である。ブートのためにアクセスする各論理アドレスとは、例えば、論理アドレスの初期値「０ｘ００００」から終了処理が記憶された論理アドレス「０ｘ０２ｆｆ」までの論理アドレス群「０ｘ００００〜０ｘ０２ｆｆ」である。
【００８７】
記憶部７０１は、例えば、第１の対応情報をイベントの種別ごとに関連付けて記憶する。ここで、第１の対応情報とは、各論理アドレスの中でイベントの種別に固有の各論理アドレスと、固有の各論理アドレスの変換先であって記憶装置内でイベントの種別に固有のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す。第１の対応情報とは、例えば、図６を用いて上述した変換テーブル４３０に記憶された対応情報である。
【００８８】
各論理アドレスの中でイベントの種別に固有の各論理アドレスとは、例えば、図５においてタイマー３０１が発生するイベントＥ０に固有のプログラムが記憶された物理アドレス群の変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」である。各論理アドレスの中でイベントの種別に固有の各論理アドレスは、例えば、図６のレコード６０１の物理アドレス項目に設定されて、記憶される。
【００８９】
イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスとは、例えば、図５においてタイマー３０１が発生するイベントＥ０に固有のプログラムが記憶された物理アドレス群「０ｘ１０００〜０ｘ１０ｆｆ」である。イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスは、例えば、図６のレコード６０１の論理アドレス項目に設定されて、記憶される。
【００９０】
また、記憶部７０１は、第２の対応情報を記憶する。ここで、第２の対応情報とは、各論理アドレスの中でイベントの各種別に共通の各論理アドレスと、共通の各論理アドレスの変換先であって記憶装置内でイベントの各種別に共通のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す。第２の対応情報とは、例えば、従来技術にかかるページテーブルに記憶された論理アドレスと物理アドレスとの対応関係を示す情報である。
【００９１】
各論理アドレスの中でイベントの各種別に共通の各論理アドレスとは、例えば、図５において共通部カーネルコアが記憶された物理アドレス群の変換元の論理アドレス群「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」である。イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスとは、例えば、図５において共通部カーネルコアが記憶された物理アドレス群「０ｘ００００〜０ｘ００ｆｆ、０ｘ０２００〜０ｘ０２ｆｆ」である。
【００９２】
記憶部７０１は、例えば、アドレス変換回路１０３内のＲＯＭやＲＡＭ等に記憶された変換テーブル４３０によって実現される。これにより、選択部７０２は、記憶部７０１を参照して、発生したイベントの種別に関連する対応情報を選択することができる。
【００９３】
選択部７０２は、イベントが発生した場合に、記憶部７０１を参照して発生したイベントの種別に関連する対応情報を選択する。選択部７０２は、例えば、変換テーブル４３０を参照して、割り込みコントローラ１０１から受信した種別情報が示す種別に関連する対応情報を選択する。次に、選択部７０２は、選択した対応情報を識別する識別情報をレジスタに格納する。
【００９４】
ここで、識別情報とは、対応情報のキーであって、例えば、上述した先頭物理アドレスである。レジスタとは、例えば、上述した索引レジスタ４４０−０である。また、選択部７０２は、選択した対応情報自体をレジスタに格納してもよい。また、選択部７０２は、ＭＣＵ１０２が変換元の論理アドレスにアクセスする前に対応情報を選択しておけばよく、イベントが発生した直後に対応情報を選択しなくてもよい。これにより、選択部７０２は、ＭＣＵ１０２が変換元の論理アドレスにアクセスする前に、論理アドレスの変換に使用する対応情報を選択しておく。選択部７０２は、例えば、索引レジスタ４４０−ｋにより実現される。
【００９５】
特定部７０３は、イベントの発生によってプロセッサが各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択部７０２によって選択された対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。特定部７０３は、例えば、プロセッサが発生したイベントの種別に固有の各論理アドレスに含まれる論理アドレスにアクセスする場合に、当該種別に応じた第１の対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。
【００９６】
特定部７０３は、より具体的には、ＭＣＵ１０２が論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」の論理アドレス「０ｘ０１００」にアクセスする場合に、タイマー３０１が発生するイベントＥ０に応じた対応情報を取得する。ここで、特定部７０３は、例えば、取得する対応情報を、選択部７０２によって索引レジスタ４４０−０に格納されたキーにより識別する。
【００９７】
次に、特定部７０３は、対応情報が示す論理アドレス群の先頭論理アドレス「０ｘ０１００」からＭＣＵ１０２がアクセスする論理アドレス「０ｘ０１００」までの差分「０」を特定する。そして、特定部７０３は、特定した差分「０」と、対応情報が示す先頭物理アドレス「０ｘ１０００」と、の加算により、ＭＣＵ１０２がアクセスする論理アドレス「０ｘ０１００」の変換先の物理アドレス「０ｘ１０００（０ｘ１０００＋０）」を特定する。
【００９８】
また、特定部７０３は、プロセッサが共通の各論理アドレスに含まれる論理アドレスにアクセスする場合に、第２の対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。特定部７０３は、例えば、ＭＣＵ１０２が論理アドレス群「０ｘ００００〜０ｘ００ｆｆ」の論理アドレスにアクセスする場合に、ページテーブルを用いて変換先の物理アドレスを特定する。
【００９９】
また、特定部７０３は、特定した物理アドレスを参照レジスタ４８０に記憶しておく。これにより、特定部７０３は、ＭＣＵ１０２に取得させるプログラムの記憶領域を特定することができる。特定部７０３は、例えば、索引レジスタ４４０−ｋと、絶対レジスタ４５０と、比較器４６０と、ＡＬＵ４７０と、参照レジスタ４８０と、により実現される。
【０１００】
制御部７０４は、特定部７０３によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムをプロセッサに取得させる。制御部７０４は、例えば、特定部７０３によって特定された物理アドレスをアドレスバス１１０に出力し、メモリ１０４にアドレスバス１１０の物理アドレスが示す記憶領域のプログラムをデータバス１２０へと出力させる要求を送信する。
【０１０１】
制御部７０４は、例えば、参照レジスタ４８０により実現される。これにより、メモリ１０４は、物理アドレスが示す記憶領域に記憶されたプログラムをデータバス１２０に出力する。一方で、ＭＣＵ１０２は、変換装置７００によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムをデータバス１２０から取得して実行する。これにより、ＭＣＵ１０２は、ブートして、発生したイベントに固有のプログラムを実行することができる。制御部７０４は、例えば、参照レジスタ４８０により実現される。
【０１０２】
＜変換装置７００の動作例２＞
次に、変換装置７００の動作例２を実現する機能について説明する。動作例２では、割り込みコントローラ１０１は、過去に発生したイベントによるプロセッサのブートが終了する前に新たにイベントの発生を検出した場合に、ＭＣＵ１０２にブートを中止させて新たに発生したイベントによるブートを開始させる。次に、割り込みコントローラ１０１は、新たに発生したイベントによるプロセッサのブートが終了した後に、過去に発生したイベントによるブートをＭＣＵ１０２に初めから開始させる。
【０１０３】
また、割り込みコントローラ１０１は、各々のイベントに優先度が設定されている場合は、優先度の高いイベントから順に、イベントによるＭＣＵ１０２のブートを開始させてもよい。割り込みコントローラ１０１は、例えば、ＭＣＵ１０２をブートさせているイベントより優先度の高いイベントが発生した場合は、ＭＣＵ１０２にブートを中止させ優先度の高いイベントによるブートを開始させてもよい。次に、割り込みコントローラ１０１は、優先度の高いイベントによるプロセッサのブートが終了した後に、ブートを中止させたイベントによるブートをＭＣＵ１０２に初めから開始させてもよい。
【０１０４】
ここでは、割り込みコントローラ１０１が、新たに発生したイベントによるブートを優先的にＭＣＵ１０２に実行させる場合を例に挙げて、動作例２について説明する。また、動作例２にかかる記憶部７０１および制御部７０４の機能は、各々、動作例１にかかる記憶部７０１および制御部７０４の機能と同様のため、ここでは説明を省略する。
【０１０５】
選択部７０２は、プロセッサをブートさせる第１のイベントが発生した場合に、記憶部７０１を参照して第１のイベントの種別に関連する対応情報を選択する。また、選択部７０２は、第１のイベントの発生によるプロセッサのブートが終了する前に第１のイベントより優先してプロセッサをブートさせる第２のイベントが発生した場合に、記憶部７０１を参照して第２のイベントの種別に関連する対応情報を選択する。ここで、第１のイベントは、過去に発生したイベントであり、例えば、タイマー３０１が発生するイベントＥ０である。第２のイベントは、第１のイベントの発生後に発生したイベントであり、例えば、センサー３０２−１が発生するイベントＥ１である。
【０１０６】
選択部７０２は、例えば、割り込みコントローラ１０１がタイマー３０１からのイベントＥ０の発生を検出した場合に、割り込みコントローラ１０１から送信されたイベントＥ０の種別情報に関連する対応情報（例えば、図６のレコード６０１の対応情報）を選択する。次に、選択部７０２は、選択した対応情報のキーを、索引レジスタ４４０−０に記憶しておく。
【０１０７】
その後、選択部７０２は、割り込みコントローラ１０１がセンサー３０２−１からのイベントＥ１の発生を検出した場合に、割り込みコントローラ１０１から送信されたイベントＥ１の種別情報に関連する対応情報（例えば、図６のレコード６０２の対応情報）を選択する。ここで、選択部７０２は、索引レジスタ４４０−０にキーを記憶するため、索引レジスタ４４０−０〜４４０−（ｎ−１）に記憶されたキーを、各々、後段の索引レジスタ４４０−１〜４４０−ｎに移行する。次に、選択部７０２は、選択した対応情報のキーを、索引レジスタ４４０−０に記憶しておく。
【０１０８】
特定部７０３は、第２のイベントの発生によってプロセッサが第２のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスするのを待つ。そして、特定部７０３は、プロセッサが第２のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスする場合に、第２のイベントの種別に関連する対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。
【０１０９】
次に、特定部７０３は、第２のイベントの発生によるプロセッサのブートが終了した後に、第１のイベントによってプロセッサが第１のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスするのを待つ。そして、特定部７０３は、プロセッサが第１のイベントに応じた各論理アドレスに含まれる論理アドレスにアクセスする場合に、第１のイベントの種別に関連する対応情報を用いてプロセッサがアクセスする論理アドレスの変換先の物理アドレスを特定する。
【０１１０】
特定部７０３は、例えば、イベントＥ１の発生によってＭＣＵ１０２がブートする場合に、索引レジスタ４４０−０に記憶されたキーが識別する対応情報を用いて、論理アドレスから変換先の物理アドレスを特定する。次に、特定部７０３は、イベントＥ１の発生によるＭＣＵ１０２のブートが終了した後に、索引レジスタ４４０−１〜４４０−ｎに記憶されたキーを、各々、前段の索引レジスタ４４０−０〜４４０−（ｎ−１）に移行する。そして、特定部７０３は、索引レジスタ４４０−０に記憶されたキーが識別する対応情報を用いて、再びブートを開始したＭＣＵがアクセスする論理アドレスから、変換先の物理アドレスを特定する。
【０１１１】
（センサーノード１００におけるＭＣＵ１０２の起動の内容例１）
次に、図８〜図１７を用いて、センサーノード１００におけるＭＣＵ１０２の起動の内容例１について説明する。図８〜図１７では、センサーノード１００内のアドレス変換回路１０３が、上述した動作例１のように動作する場合を示している。
【０１１２】
図８〜図１７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例１を示す説明図である。図８において、センサーノード１００では、消費電力の低減化のため、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給が停止されている。
【０１１３】
（１１）ここで、センサー３０２−１は、割り込みコントローラ１０１の割込制御レジスタ４１０−１に、専用線を介して割込信号を送信する。これにより、割込制御レジスタ４１０−１に「割り込みあり」を示す割り込みフラグ「１」が設定される。次に、図９の説明に移行する。
【０１１４】
図９において、（１２）割り込みコントローラ１０１は、割込制御レジスタ４１０−１に割り込みフラグ「１」が設定されたため、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給の開始要求をＰＭＵ３１３に送信する。これにより、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給が開始される。次に、図１０の説明に移行する。
【０１１５】
図１０において、（１３）割り込みコントローラ１０１は、電力が供給されたアドレス変換回路１０３に、発生したイベントの種別を示す種別情報を送信する。（１４）また、割り込みコントローラ１０１は、電力が供給されたＭＣＵ１０２に、起動要求を送信する。次に、図１１の説明に移行する。
【０１１６】
図１１において、（１５）アドレス変換回路１０３は、変換テーブル４３０を参照して、種別情報が示す種別に関連する対応情報を選択する。（１６）次に、アドレス変換回路１０３は、選択した対応情報を識別するキーとして、索引レジスタ４４０−０に、選択した対応情報が示す先頭物理アドレス「０ｘ１０００」を記憶しておく。（１７）また、ＭＣＵ１０２は、ブートを開始し、プログラムカウンタ４２０に記憶された論理アドレスの初期値「０ｘ００００」をアドレスバス１１０に出力する。次に、図１２の説明に移行する。
【０１１７】
図１２において、（１８）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ００００」を取得し、取得した論理アドレス「０ｘ００００」を絶対レジスタ４５０に記憶する。
【０１１８】
（１９）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１０００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ００００」が、特定した変換元の論理アドレス群に含まれるか否かを判定する。
【０１１９】
（２０）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれないため、従来技術にかかるページテーブルを用いて、論理アドレス「０ｘ００００」を物理アドレス「０ｘ００００」に変換して、参照レジスタ４８０に記憶する。次に、図１３の説明に移行する。
【０１２０】
図１３において、（２１）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ００００」を、アドレスバス１１０に出力する。（２２）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ００００」を取得する。（２３）次に、メモリ１０４は、取得した物理アドレス「０ｘ００００」が示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。（２４）また、ＭＣＵ１０２は、データバス１２０に出力された共通部カーネルコアを取得する。次に、図１４の説明に移行する。
【０１２１】
図１４において、（２５）ＭＣＵ１０２は、プログラムカウンタ４２０をインクリメントして、（１１）〜（２４）と同様にして、プログラムを取得する。以降、ＭＣＵ１０２は、プログラムカウンタ４２０を順次インクリメントして、プログラムを取得していく。ここで、インクリメントにより、プログラムカウンタ４２０の論理アドレスが「０ｘ０１００」になったとして、図１５の説明に移行する。
【０１２２】
図１５において、ＭＣＵ１０２は、プログラムカウンタ４２０の論理アドレスが「０ｘ０１００」をアドレスバス１１０に出力する。（２６）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ０１００」を取得し、取得した論理アドレス「０ｘ０１００」を絶対レジスタ４５０に記憶する。
【０１２３】
（２７）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１０００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ０１００」が、特定した変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」に含まれるか否かを判定する。
【０１２４】
（２８）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれるため、論理アドレス「０ｘ０１００」を物理アドレス「０ｘ１０００」に変換して、参照レジスタ４８０に記憶する。
【０１２５】
アドレス変換回路１０３は、例えば、変換元の論理アドレス群の先頭論理アドレス「０ｘ０１００」から絶対レジスタ４５０に記憶された論理アドレス「０ｘ０１００」までの差分「０」を特定する。次に、アドレス変換回路１０３は、差分「０」を、索引レジスタ４４０−０に記憶された先頭物理アドレス「０ｘ１０００」に加算する。そして、アドレス変換回路１０３は、加算後の物理アドレス「０ｘ１０００」を参照レジスタ４８０に記憶する。次に、図１６の説明に移行する。
【０１２６】
図１６において、（２９）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ１０００」を、アドレスバス１１０に出力する。（３０）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ１０００」を取得する。
【０１２７】
（３１）次に、メモリ１０４は、取得した物理アドレス「０ｘ１０００」が示す記憶領域に記憶されたイベントＥ１用のプログラムＰ１をデータバス１２０に出力する。（３２）また、ＭＣＵ１０２は、データバス１２０に出力されたイベントＥ１用のプログラムＰ１を取得する。次に、図１７の説明に移行する。
【０１２８】
図１７において、ＭＣＵ１０２は、ブートを終了したとする。（３３）割り込みコントローラ１０１は、ＭＣＵ１０２がブートを終了すると、割込制御レジスタ４１０−１に「割り込みなし」を示す割り込みフラグ「０」を記憶する。
【０１２９】
（３４）また、アドレス変換回路１０３は、ＭＣＵ１０２がブートを終了すると、索引レジスタ４４０−０に初期値「０」を代入し、索引レジスタ４４０−０を初期化する。（３５）また、ＭＣＵ１０２は、ブートを終了すると、プログラムカウンタ４２０を初期化する。
【０１３０】
ここで、割り込みコントローラ１０１は、ＭＣＵ１０２がブートを終了した場合に、消費電力の低減化のため、アドレス変換回路１０３、ＭＣＵ１０２、およびメモリ１０４への電力供給の停止要求を、ＰＭＵ３１３に送信してもよい。
【０１３１】
これにより、ＭＣＵ１０２は、発生したイベントの種別に応じたプログラムを実行するための分岐処理を実行することなく、論理アドレスの初期値からシーケンシャルにアクセスすれば、発生したイベントの種別に応じたプログラムを実行することができる。結果として、ＭＣＵ１０２は、分岐処理を削減することができ、起動時間を短縮化することができる。
【０１３２】
また、ＭＣＵ１０２は、分岐処理を削減することができるため、メモリ１０４において分岐処理に関するプログラムを記憶しておかなくてもよい。そのため、メモリ１０４は、分岐処理に関するプログラムを削減して、メモリ使用量を抑制することができる。
【０１３３】
（センサーノード１００におけるＭＣＵ起動処理）
次に、図１８を用いて、センサーノード１００におけるＭＣＵ起動処理の処理手順の一例について説明する。図１８に示すＭＣＵ起動処理は、図８〜図１７を用いて説明した割り込みコントローラ１０１、ＭＣＵ１０２、およびアドレス変換回路１０３の処理手順を示す。
【０１３４】
図１８は、センサーノード１００におけるＭＣＵ起動処理の処理手順の一例を示すシーケンス図である。図１８において、まず、デバイス（タイマー３０１やセンサー３０２−ｉ）は、イベントの発生を検出すると、割り込みコントローラ１０１に割込信号を送信する（ステップＳ１８０１）。
【０１３５】
次に、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、アドレス変換回路１０３にイベントの種別を示す種別情報を送信する（ステップＳ１８０２）。また、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、ＭＣＵ１０２に起動要求を送信する（ステップＳ１８０３）。
【０１３６】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示す種別に関連する対応情報を選択し、選択した対応情報のキーを索引レジスタ４４０−０に記憶する（ステップＳ１８０４）。また、ＭＣＵ１０２は、ブート処理を開始する（ステップＳ１８０５）。ステップＳ１８０５のブート処理については図１９に後述する。
【０１３７】
（ＭＣＵ１０２におけるブート処理）
次に、図１９を用いて、ステップＳ１８０５においてＭＣＵ１０２により開始されるブート処理の処理手順の一例について説明する。
【０１３８】
図１９は、ステップＳ１８０５に示したＭＣＵ１０２におけるブート処理の処理手順の一例を示すシーケンス図である。図１９において、まず、ＭＣＵ１０２は、プログラムカウンタ４２０に記憶された論理アドレスを、アドレスバス１１０に出力する（ステップＳ１９０１）。
【０１３９】
次に、アドレス変換回路１０３は、アドレスバス１１０に出力された論理アドレスを取得する。そして、アドレス変換回路１０３は、取得した論理アドレスを物理アドレスに変換する。次に、アドレス変換回路１０３は、変換した物理アドレスをアドレスバス１１０に出力する（ステップＳ１９０２）。
【０１４０】
そして、メモリ１０４は、アドレスバス１１０に出力された物理アドレスを取得する。次に、メモリ１０４は、取得した物理アドレスが示す記憶領域に記憶されたプログラムをデータバス１２０に出力する（ステップＳ１９０３）。
【０１４１】
そして、ＭＣＵ１０２は、データバス１２０に出力されたプログラムを取得する。次に、ＭＣＵ１０２は、取得したプログラムに従って処理を実行する（ステップＳ１９０４）。そして、ＭＣＵ１０２は、プログラムカウンタ４２０をインクリメントする（ステップＳ１９０５）。
【０１４２】
次に、ＭＣＵ１０２は、ステップＳ１９０４において実行した処理が終了処理であるか否かを判定する（ステップＳ１９０６）。ここで、終了処理ではない場合（ステップＳ１９０６：Ｎｏ）、ＭＣＵ１０２は、ステップＳ１９０１に戻る。
【０１４３】
一方、終了処理である場合（ステップＳ１９０６：Ｙｅｓ）、ＭＣＵ１０２は、ブート処理を終了する。これにより、ＭＣＵ１０２は、論理アドレスの初期値からシーケンシャルにアクセスして、ブート処理を実行することができる。
【０１４４】
（センサーノード１００におけるＭＣＵ１０２の起動の内容例２）
次に、図２０〜図２７を用いて、センサーノード１００におけるＭＣＵ１０２の起動の内容例２について説明する。図２０〜図２７では、センサーノード１００内のアドレス変換回路１０３が、上述した動作例２のように動作する場合を示している。
【０１４５】
図２０〜図２７は、センサーノード１００におけるＭＣＵ１０２の起動の内容例２を示す説明図である。図２０において、（４１）ＭＣＵ１０２は、ブートを実行中であって、図１４に示したように、プログラムカウンタ４２０を順次インクリメントして、プログラムを取得しているとする。
【０１４６】
（４２）ここで、センサー３０２−２は、割り込みコントローラ１０１の割込制御レジスタ４１０−２に、専用線を介して割込信号を送信する。これにより、割込制御レジスタ４１０−２に「割り込みあり」を示す割り込みフラグ「１」が設定される。
【０１４７】
（４３）割り込みコントローラ１０１は、アドレス変換回路１０３に、発生したイベントの種別を示す種別情報を送信する。（４４）また、割り込みコントローラ１０１は、ＭＣＵ１０２に、起動要求を送信する。次に、図２１の説明に移行する。
【０１４８】
図２１において、（４５）アドレス変換回路１０３は、変換テーブル４３０を参照して、種別情報が示す種別に関連する対応情報を選択する。（４６）次に、アドレス変換回路１０３は、選択した対応情報を識別するキーとして、選択した対応情報が示す先頭物理アドレス「０ｘ１１００」を採用する。ここで、アドレス変換回路１０３は、索引レジスタ４４０−０に、他の先頭物理アドレス「０ｘ１０００」が記憶されているため、索引レジスタ４４０−０〜４４０−（ｎ−１）の記憶内容を、各々、後段の索引レジスタ４４０−１〜４４０−ｎに移行する。
【０１４９】
次に、アドレス変換回路１０３は、索引レジスタ４４０−０に、キーとして、先頭物理アドレス「０ｘ１１００」を記憶する。（４７）また、ＭＣＵ１０２は、起動要求を受信すると、ブートを中止してブートを再び開始するため、プログラムカウンタ４２０を初期化する。次に、ＭＣＵ１０２は、ブートを開始し、プログラムカウンタ４２０に記憶された論理アドレスの初期値「０ｘ００００」をアドレスバス１１０に出力する。次に、図２２の説明に移行する。
【０１５０】
図２２において、（４８）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ００００」を取得し、取得した論理アドレス「０ｘ００００」を絶対レジスタ４５０に記憶する。
【０１５１】
（４９）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１１００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ００００」が、特定した変換元の論理アドレス群に含まれるか否かを判定する。
【０１５２】
（５０）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれないため、従来技術にかかるページテーブルを用いて、論理アドレス「０ｘ００００」を物理アドレス「０ｘ００００」に変換して、参照レジスタ４８０に記憶する。次に、図２３の説明に移行する。
【０１５３】
図２３において、（５１）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ００００」を、アドレスバス１１０に出力する。（５２）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ００００」を取得する。（５３）次に、メモリ１０４は、取得した物理アドレス「０ｘ００００」が示す記憶領域に記憶された共通部カーネルコアをデータバス１２０に出力する。（５４）また、ＭＣＵ１０２は、データバス１２０に出力された共通部カーネルコアを取得する。次に、図２４の説明に移行する。
【０１５４】
図２４において、（５５）ＭＣＵ１０２は、プログラムカウンタ４２０をインクリメントして、（４１）〜（５４）と同様にして、プログラムを取得する。以降、ＭＣＵ１０２は、プログラムカウンタ４２０を順次インクリメントして、プログラムを取得していく。ここで、インクリメントにより、プログラムカウンタ４２０の論理アドレスが「０ｘ０１００」になったとして、図２５の説明に移行する。
【０１５５】
図２５において、ＭＣＵ１０２は、プログラムカウンタ４２０の論理アドレス「０ｘ０１００」をアドレスバス１１０に出力する。（５６）アドレス変換回路１０３は、ＭＣＵ１０２からアドレスバス１１０に出力された論理アドレス「０ｘ０１００」を取得し、取得した論理アドレス「０ｘ０１００」を絶対レジスタ４５０に記憶する。
【０１５６】
（５７）次に、アドレス変換回路１０３は、索引レジスタ４４０−０に記憶された物理アドレス「０ｘ１１００」をキーとして用いることにより識別される対応情報が示す変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」を特定する。そして、アドレス変換回路１０３は、絶対レジスタ４５０に記憶された論理アドレス「０ｘ０１００」が、特定した変換元の論理アドレス群「０ｘ０１００〜０ｘ０１ｆｆ」に含まれるか否かを判定する。
【０１５７】
（５８）ここで、アドレス変換回路１０３は、変換元の論理アドレス群に含まれるため、論理アドレス「０ｘ０１００」を物理アドレス「０ｘ１１００」に変換して、参照レジスタ４８０に記憶する。次に、図２６の説明に移行する。
【０１５８】
図２６において、（５９）アドレス変換回路１０３は、参照レジスタ４８０に記憶された物理アドレス「０ｘ１１００」を、アドレスバス１１０に出力する。（６０）また、メモリ１０４は、アドレスバス１１０に出力された物理アドレス「０ｘ１１００」を取得する。（６１）次に、メモリ１０４は、取得した物理アドレス「０ｘ１１００」が示す記憶領域に記憶されたイベントＥ２用のプログラムＰ２をデータバス１２０に出力する。（６２）また、ＭＣＵ１０２は、データバス１２０に出力されたイベントＥ２用のプログラムＰ２を取得する。次に、図２７の説明に移行する。
【０１５９】
図２７において、ＭＣＵ１０２は、ブートを終了したとする。（６３）割り込みコントローラ１０１は、ＭＣＵ１０２がブートを終了すると、割込制御レジスタ４１０−２に「割り込みなし」を示す割り込みフラグ「０」を記憶する。次に、割り込みコントローラ１０１は、アドレス変換回路１０３にブートの終了通知を送信する。そして、割り込みコントローラ１０１は、割込制御レジスタ４１０−１に「割り込みあり」を示す割り込みフラグ「１」が記憶されているため、再びＭＣＵ１０２に起動要求を送信する。
【０１６０】
（６４）また、アドレス変換回路１０３は、終了通知を受信すると、索引レジスタ４４０−０に初期値「０」を代入し初期化する。次に、アドレス変換回路１０３は、索引レジスタ４４０−１に先頭物理アドレスが記憶されているため、索引レジスタ４４０−１〜４４０−ｎの記憶内容を、各々、前段の索引レジスタ４４０−０〜４４０−（ｎ−１）に移行する。これにより、索引レジスタ４４０―０には、キーとして、先頭物理アドレス「０ｘ１０００」が記憶される。
【０１６１】
（６５）また、ＭＣＵ１０２は、割り込みコントローラ１０１から再び送信された起動要求を受信すると、プログラムカウンタ４２０を初期化して、再びブートを開始する。これにより、アドレス変換回路１０３は、割り込ませるべき順番で、論理アドレスの変換に使用する対応情報を選択することができる。
【０１６２】
従って、ＭＣＵ１０２は、イベントＥ１に応じた処理の実行中において、イベントＥ２に応じた処理を割り込ませて実行することができる。その後、ＭＣＵ１０２は、イベントＥ１に応じた処理を実行し直すことができる。結果として、メモリ１０４に、割り込み順序を制御するための割り込みハンドラを記憶しておかなくてもよく、メモリ使用量の増大を抑制することができる。
【０１６３】
（センサーノード１００における多重割り込み処理）
次に、図２８を用いて、センサーノード１００における多重割り込み処理の処理手順の一例について説明する。
【０１６４】
図２８は、センサーノード１００における多重割り込み処理の処理手順の一例を示すシーケンス図である。図２８において、まず、センサー３０２−ｉは、イベントの発生を検出すると、割り込みコントローラ１０１に割込信号を送信する（ステップＳ２８０１）。
【０１６５】
次に、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、アドレス変換回路１０３にイベントの種別を示す種別情報を送信する（ステップＳ２８０２）。また、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、ＭＣＵ１０２に起動要求を送信する（ステップＳ２８０３）。
【０１６６】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示す種別に関連する対応情報を選択し、選択した対応情報のキーを索引レジスタ４４０−０に記憶する（ステップＳ２８０４）。また、ＭＣＵ１０２は、図１９に示したブート処理を開始する（ステップＳ２８０５）。
【０１６７】
ここで、ステップＳ２８０５のブート処理が終了する前に、センサー３０２−ｉにおいてイベントが発生したとする。センサー３０２−ｉは、イベントの発生を検出すると、割り込みコントローラ１０１に割込信号を送信する（ステップＳ２８０６）。
【０１６８】
次に、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、アドレス変換回路１０３にイベントの種別を示す種別情報を送信する（ステップＳ２８０７）。また、割り込みコントローラ１０１は、センサー３０２−ｉから割込信号を受信すると、ＭＣＵ１０２に起動要求を送信する（ステップＳ２８０８）。
【０１６９】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から種別情報を受信すると、変換テーブル４３０を参照して、受信した種別情報が示す種別に関連する対応情報を選択し、選択した対応情報のキーを索引レジスタ４４０−０に記憶する（ステップＳ２８０９）。ここで、アドレス変換回路１０３は、索引レジスタ４４０−ｋの記憶内容を、各々、後段の索引レジスタ４４０−（ｋ＋１）に移行しておく。また、ＭＣＵ１０２は、ステップＳ２８０５のブート処理を中止し、図１９に示したブート処理を再び開始する（ステップＳ２８１０）。
【０１７０】
ここで、ステップＳ２８１０のブート処理が終了したとする。ＭＣＵ１０２は、ブート処理が終了すると、割り込みコントローラ１０１に終了通知を送信する（ステップＳ２８１１）。割り込みコントローラ１０１は、終了通知を受信すると、割り込み処理が終了していないイベントがあるため、アドレス変換回路１０３に終了通知を送信する（ステップＳ２８１２）。また、割り込みコントローラ１０１は、終了通知を受信すると、割り込み処理が終了していないイベントがあるため、ＭＣＵ１０２に起動要求を送信する（ステップＳ２８１３）。
【０１７１】
次に、アドレス変換回路１０３は、割り込みコントローラ１０１から終了通知を受信すると、索引レジスタ４４０−１のキーを索引レジスタ４４０−０に記憶する（ステップＳ２８１４）。ここで、アドレス変換回路１０３は、例えば、索引レジスタ４４０−ｋの記憶内容を、各々、前段の索引レジスタ４４０−（ｋ−１）に移行することにより、キーを記憶し直す。また、ＭＣＵ１０２は、図１９に示したブート処理を再び開始する（ステップＳ２８１５）。
【０１７２】
これにより、アドレス変換回路１０３は、ＭＣＵ１０２がブートを開始する都度、処理すべき順序で、対応情報を選択することができ、選択した対応情報により論理アドレスの変換を実行することができる。そのため、ＭＣＵ１０２は、ブートを開始する都度、処理すべき順序で、イベントに応じたプログラムを実行することができる。換言すれば、アドレス変換回路１０３は、多重割り込みに対応した動作を実行することができる。
【０１７３】
以上説明したように、開示の変換装置７００は、イベントが発生した場合に、当該イベントに応じた変換元の論理アドレスと変換先の物理アドレスとの対応関係を示す対応情報を選択しておく。そして、開示の変換装置７００は、選択しておいた対応情報が示す対応関係を用いて、ＭＣＵ１０２が変換元の論理アドレスにアクセスする場合に、当該論理アドレスを変換先の物理アドレスに変換する。これにより、開示の変換装置７００は、当該イベントに応じたプログラムをＭＣＵ１０２に取得させて実行させることができる。
【０１７４】
従って、ＭＣＵ１０２は、当該イベントに応じたプログラムを選択して実行するための分岐処理を実行しなくても、当該イベントに応じたプログラムを実行することができる。結果として、ＭＣＵ１０２において、分岐処理にかかる時間が削減され、起動時間が短縮化される。また、メモリ１０４は、分岐処理に関するプログラムを記憶しなくてもよく、メモリ使用量の増大を抑制することができる。
【０１７５】
また、ＭＣＵ１０２の起動時間が短縮化されるため、ＭＣＵ１０２の消費電力の増大を抑制することができる。そのため、センサーノード１００は、ハーベスタ３１１からの電力供給量が限られていても、限られた電力供給量の範囲内でＭＣＵ１０２を動作させることができる。
【０１７６】
また、過去に発生したイベントによるＭＣＵ１０２のブートの終了前に、新たにイベントが発生して、過去に発生したイベントによるブートを中止して、新たに発生したイベントによるＭＣＵ１０２のブートが開始される場合がある。この場合、開示の変換装置７００は、過去に発生したイベントの種別に関連する対応情報を記憶しつつ、新たに発生したイベントに関連する対応情報を選択する。そして、開示の変換装置７００は、選択した対応情報を用いて、ＭＣＵ１０２がアクセスする論理アドレスを物理アドレスに変換する。
【０１７７】
開示の変換装置７００は、新たに発生したイベントによるＭＣＵ１０２のブートが終了した後、過去に発生したイベントにより再びＭＣＵ１０２がブートされる場合に、記憶しておいた過去に発生したイベントに関連する対応情報を取得する。そして、開示の変換装置７００は、取得した対応情報を用いて、ＭＣＵ１０２がアクセスする論理アドレスを物理アドレスに変換する。これにより、開示の変換装置７００は、割り込みにより優先的に処理するイベントから順に、当該イベントに関連する対応情報を選択して、ＭＣＵ１０２にイベントに応じたプログラムを実行させることができる。結果として、ＭＣＵ１０２における割り込みの順序を制御する割込ハンドラを削減して、メモリ１０４の使用量を削減することができる。
【０１７８】
また、開示の変換装置７００は、選択した対応情報のキーを索引レジスタ４４０−ｋに記憶しておく。これにより、対応情報自体を記憶する場合よりも、索引レジスタ４４０−ｋの物理的サイズを小さくでき、開示の変換装置７００の製造コストを低減することができる。また、開示の変換装置７００は、選択した対応情報のキーを、開示の変換装置７００内の不揮発メモリに記憶せず、索引レジスタ４４０−ｋに記憶することにより、不揮発メモリからの読み出し回数を低減化して、消費電力の増大を抑制することができる。
【０１７９】
また、メモリ１０４は、各々のイベントに共通する処理を記述した共通部カーネルコアと、各々のイベントに固有の処理を記述したプログラムと、を分割して記憶する。そして、開示の変換装置７００は、共通部カーネルコアと、発生したイベントに応じたプログラムと、を組み合わせて、ＭＣＵ１０２に取得させる。これにより、メモリ１０４に、イベントごとに、共通部カーネルコアと当該イベント用のプログラムとを結合したプログラムを記憶する場合と比べて、メモリ１０４の使用量を削減することができる。
【０１８０】
また、開示の変換装置７００は、変換元の各論理アドレスの先頭論理アドレスからＭＣＵ１０２がアクセスする論理アドレスまでの差分と、変換先の各物理アドレスの先頭物理アドレスと、を加算する。そして、開示の変換装置７００は、加算により、ＭＣＵ１０２がアクセスする論理アドレスの変換先の物理アドレスを特定する。そのため、対応情報は、変換先の各物理アドレスを示さなくてもよく、変換先の各物理アドレスの先頭物理アドレスを示せばよい。結果として、開示の変換装置７００において、対応情報を記憶するために使用する記憶領域のサイズを低減化することができる。
【０１８１】
また、センサーノードが、イベントの種別ごとに当該種別に応じた処理のみを実行するＭＣＵを有し、発生したイベントの種別に応じたＭＣＵを起動して処理を実行させることにより、ＭＣＵの起動時間を短縮する構成が考えられる。しかしながら、この構成では、センサーノードの製造コストが増大したり、センサーノードの物理的サイズが増大して設置領域への設置が困難になったりする。一方で、開示の変換装置７００によれば、図２のようにＭＣＵ１０２が一つであっても、発生したイベントの種別に応じた処理を当該ＭＣＵ１０２に実行させることができ、センサーノード１００の製造コストや物理的サイズの増大を抑制することができる。
【０１８２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８３】
（付記１）プロセッサがブートのためにアクセスする各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部と、
前記イベントが発生した場合に、前記記憶部を参照して発生した前記イベントの種別に関連する対応情報を選択する選択部と、
前記イベントの発生によって前記プロセッサが前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記選択部によって選択された対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する特定部と、
前記特定部によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを前記プロセッサに取得させる制御部と、
を有することを特徴とする変換装置。
【０１８４】
（付記２）前記選択部は、
前記プロセッサをブートさせる第１のイベントが発生した場合に、前記記憶部を参照して前記第１のイベントの種別に関連する対応情報を選択し、前記第１のイベントの発生による前記プロセッサのブートが終了する前に前記第１のイベントより優先して前記プロセッサをブートさせる第２のイベントが発生した場合に、前記記憶部を参照して前記第２のイベントの種別に関連する対応情報を選択し、
前記特定部は、
前記第２のイベントの発生によって前記プロセッサが前記第２のイベントに応じた前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第２のイベントの種別に関連する対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、前記第２のイベントの発生による前記プロセッサのブートが終了した後に、前記第１のイベントによって前記プロセッサが前記第１のイベントに応じた前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第１のイベントの種別に関連する対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする付記１に記載の変換装置。
【０１８５】
（付記３）前記選択部は、
選択した前記対応情報を識別する識別情報をレジスタに格納し、
前記特定部は、
前記選択部によって前記レジスタに格納された識別情報により識別される対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする付記１または２に記載の変換装置。
【０１８６】
（付記４）前記記憶部は、
前記各論理アドレスの中で前記イベントの種別に固有の各論理アドレスと、前記固有の各論理アドレスの変換先であって前記記憶装置内で前記イベントの種別に固有のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す第１の対応情報を前記イベントの種別ごとに関連付けて記憶するとともに、
前記各論理アドレスの中で前記イベントの各種別に共通の各論理アドレスと、前記共通の各論理アドレスの変換先であって前記記憶装置内で前記イベントの各種別に共通のプログラムの記憶領域を示す各物理アドレスと、の対応関係を示す第２の対応情報を記憶し、
前記特定部は、
前記プロセッサが発生した前記イベントの種別に固有の各論理アドレスに含まれる論理アドレスにアクセスする場合に、発生した前記イベントの種別に応じた前記第１の対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、前記プロセッサが前記共通の各論理アドレスに含まれる論理アドレスにアクセスする場合に、前記第２の対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする付記１〜３のいずれか一つに記載の変換装置。
【０１８７】
（付記５）前記対応情報は、前記各論理アドレスの先頭論理アドレスと、前記先頭論理アドレスの変換先の先頭物理アドレスと、を示し、
前記特定部は、
前記先頭論理アドレスから前記プロセッサがアクセスする前記論理アドレスまでの差分と、前記先頭物理アドレスと、の加算により、前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定する、
ことを特徴とする付記１〜４のいずれか一つに記載の変換装置。
【０１８８】
（付記６）プロセッサがブートのためにアクセスする各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記プロセッサをブートさせるイベントの種別ごとに関連付けて記憶する記憶部にアクセス可能な変換装置が、
前記イベントが発生した場合に、前記記憶部を参照して発生した前記イベントの種別に関連する対応情報を選択し、
前記イベントの発生によって前記プロセッサが前記各論理アドレスに含まれる論理アドレスにアクセスする場合に、選択した対応情報を用いて前記プロセッサがアクセスする前記論理アドレスの変換先の物理アドレスを特定し、
特定した物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを前記プロセッサに取得させる、
処理を実行することを特徴とする変換方法。
【０１８９】
（付記７）プロセッサと、前記プロセッサがアクセスする論理アドレスを物理アドレスに変換する変換装置と、イベントの発生を検出するコントローラと、を含む情報処理システムであって、
前記コントローラは、
前記プロセッサをブートさせるイベントの発生を検出した場合に、起動要求を前記プロセッサに送信するとともに、発生した前記イベントの種別を示す種別情報を前記変換装置に送信し、
前記変換装置は、
前記コントローラから前記種別情報を受信した場合に、前記プロセッサによってブートのためにアクセス要求される各論理アドレスと、前記各論理アドレスの変換先の各物理アドレスと、の対応関係を示す対応情報を、前記イベントの種別ごとに関連付けて記憶する記憶部を参照して、前記種別情報が示す種別に関連する対応情報を選択し、
前記プロセッサは、
前記コントローラから前記起動要求を受信した場合に、前記各論理アドレスに含まれる論理アドレスのアクセス要求を出力し、
前記変換装置は、
選択した前記対応情報を用いて前記プロセッサが出力したアクセス要求の論理アドレスの変換先の物理アドレスを特定し、
前記プロセッサは、
前記変換装置によって特定された物理アドレスが示す記憶装置内の記憶領域に記憶されたプログラムを取得して実行する、
ことを特徴とする情報処理システム。
【符号の説明】
【０１９０】
１０１  割り込みコントローラ
１０２  ＭＣＵ
１０３  アドレス変換回路
１０４  メモリ
７００  変換装置
７０１  記憶部
７０２  選択部
７０３  特定部
７０４  制御部
【国際調査報告】
2014049798.tif 000031
2014049798.tif 000032