(57)【特許請求の範囲】
【請求項１】
データ処理する複数のコントローラと、
複数のアドレスにそれぞれ待機命令及びデータ処理命令を記憶するプログラムメモリと、
前記複数のコントローラの異なる実行開始アドレスを記憶するキューとを有し、
前記複数のコントローラは、前記キューに順次アクセスすると、前記順次アクセスした順番により前記キューから異なる実行開始アドレスを取得し、前記プログラムメモリ内の前記取得した異なる実行開始アドレスから命令の実行を開始し、前記データ処理命令及び前記コントローラごとに異なる数の前記待機命令を実行することを特徴とするデータ処理装置。
【請求項２】
前記複数のコントローラは、相互に、前記データ処理命令を繰り返し実行する周期が同じであることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記キューは、
複数のエントリ番号に前記複数のコントローラの異なる実行開始アドレスを記憶する記憶部と、
前記記憶部のエントリ番号を記憶するオフセットレジスタと、
前記複数のコントローラから順次アクセスされると、前記記憶部内の前記オフセットレジスタに記憶されているエントリ番号から前記実行開始アドレスを読み出し、前記読み出した実行開始アドレスを前記アクセスしたコントローラに出力し、前記オフセットレジスタに記憶されているエントリ番号を次のエントリ番号に書き換える制御部と
を有することを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記制御部は、前記コントローラからアクセスされると、前記オフセットレジスタに記憶されているエントリ番号をインクリメントすることを特徴とする請求項３記載のデータ処理装置。
【請求項５】
前記プログラムメモリは、第１の実行開始アドレスに前記データ処理命令を記憶し、第２の実行開始アドレスに前記待機命令を記憶し、
前記複数のコントローラのうちの第１のコントローラは、前記第１の実行開始アドレスに記憶されているデータ処理命令から実行を開始し、
前記複数のコントローラのうちの第２のコントローラは、前記第２の実行開始アドレスに記憶されている待機命令から実行を開始し、その後に、前記第２の実行開始アドレスの次のアドレスである前記第１の実行開始アドレスに記憶されているデータ処理命令を実行することを特徴とする請求項１記載のデータ処理装置。
【請求項６】
前記プログラムメモリは、第３の実行開始アドレスに前記待機命令を記憶し、
前記複数のコントローラのうちの第３のコントローラは、前記第３の実行開始アドレスに記憶されている待機命令から実行を開始し、その後に、前記第３の実行開始アドレスの次のアドレスである前記第２の実行開始アドレスに記憶されている待機命令を実行し、その後に、前記第２の実行開始アドレスの次のアドレスである前記第１の実行開始アドレスに記憶されているデータ処理命令を実行することを特徴とする請求項５記載のデータ処理装置。
【請求項７】
前記プログラムメモリは、前記データ処理命令の後に待機命令を記憶し、その後に前記第１の実行開始アドレスへのジャンプ命令を記憶することを特徴とする請求項５記載のデータ処理装置。
【請求項８】
前記プログラムメモリは、第４の実行開始アドレスに停止命令を記憶し、
前記複数のコントローラのうちの第４のコントローラは、前記第４の実行開始アドレスに記憶されている停止命令を実行することを特徴とする請求項５記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関する。
【背景技術】
【０００２】
ハードウェアをリセットし所定のアドレスからブートアクセスを開始することを指示するために操作される外部ピンを少なくとも２個有し、その外部ピンを選択操作することにより、その外部ピンに相当するリセットベクタアドレスをリードし、そのアドレスからブートアクセスを開始するリセットベクタ切替え方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３１０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サンプリング処理を、マルチプロセッサを用いてリアルタイムに並列処理する場合、各プロセッサの処理開始タイミングをサンプリング周期だけずらす必要がある。この場合、オペレーティングシステム（ＯＳ：Operating System）のような高機能なハードウェア管理機構を用いて、プロセッサ間の同期をとり、サンプリング周期の時間だけ待機してから処理を開始することにより、上記の処理の実現が可能である。しかし、そのような実現方法は、ＯＳが動作する程度のハードウェア資源を想定している。【０００５】
本発明の目的は、簡単な構成で複数のコントローラがデータ処理することができるデータ処理装置を提供することである。
【課題を解決するための手段】
【０００６】
データ処理装置は、データ処理する複数のコントローラと、複数のアドレスにそれぞれ待機命令及びデータ処理命令を記憶するプログラムメモリと、前記複数のコントローラの異なる実行開始アドレスを記憶するキューとを有し、前記複数のコントローラは、前記キューに順次アクセスすると、前記順次アクセスした順番により前記キューから異なる実行開始アドレスを取得し、前記プログラムメモリ内の前記取得した異なる実行開始アドレスから命令の実行を開始し、前記データ処理命令及び前記コントローラごとに異なる数の前記待機命令を実行する。
【発明の効果】
【０００７】
簡単な構成で、複数のコントローラがデータ処理命令を実行するタイミングを異ならせることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態によるデータ処理装置の構成例を示す図である。
【図２】図２は、図１のＭＣＵ群の構成例を示す図である。
【図３】図３は、図２の第１のＭＣＵ、第２のＭＣＵ及び第３のＭＣＵの処理例を示すタイミングチャートである。
【図４】図４は、図２のキューの構成例を示す図である。
【図５】図５は、図２のＭＣＵの構成例を示す図である。
【図６】図６は、第１のＭＣＵ〜第ＮのＭＣＵ及びキューの処理例を示すフローチャートである。
【図７】図７は、第２の実施形態によるＭＣＵ群の構成例を示す図である。
【発明を実施するための形態】
【０００９】
（第１の実施形態）
図１は、第１の実施形態によるデータ処理装置１０１の構成例を示す図である。データ処理装置１０２は親機のデータ処理装置（携帯端末）であり、データ処理装置１０１は子機のデータ処理装置（センサノード）である。データ処理装置１０１は、センサ１１２を有し、データ処理装置１０２に対してセンシングデータを無線送信することができる。
【００１０】
データ処理装置１０１は、発電ユニット１１１、センサ１１２、電力管理ユニット（ＰＭＵ：Power Management Unit）１１３、マイクロコントローラユニット（ＭＣＵ：Micro Controller Unit）群１１４及び高周波（ＲＦ：Radio Frequency）回路１１５を有する。
【００１１】
発電ユニット１１１は、例えば環境発電（エネルギーハーベスタ）ユニットであり、自然エネルギーを電力Ｐ１に変換し、電力Ｐ１をＰＭＵ１１３に出力する。ここで、自然エネルギーは、太陽光エネルギー、携帯電話等の無線電波エネルギー、又は温度差エネルギー等である。発電ユニット１１１は、自然エネルギーを用いるので、小さな電力Ｐ１しか生成することができず、例えば、ピーク・トゥ・ピークで２〜３Ｖの電圧かつ数十μＷの電力を発電可能である。
【００１２】
センサ１１２は、種々のセンシングデータＤ１を検出し、センシングデータＤ１をＭＣＵ群１１４に出力する。例えば、センサ１１２は、温度を検出、又は電波の成分等を検出する。なお、センサ１１２は、発電ユニット１１１と一体化したものでもよいし、発電ユニット１１１と別個のものでもよい。
【００１３】
ＰＭＵ１１３は、発電ユニット１１１から供給された電力Ｐ１を入力し、ＭＣＵ群１１４に供給する電力Ｐ２及びＲＦ回路１１５に供給する電力Ｐ３を管理する。例えば、ＭＰＵ１１３は、所定条件を満たすと、電力Ｐ２及びＰ３をそれぞれＭＣＵ群１１４及びＲＦ回路１１５に供給する。
【００１４】
ＭＣＵ群１１４は、複数のＭＣＵを有し、センシングデータＤ１を処理し、送信データＤ２をＲＦ回路１１５に出力する。例えば、ＭＣＵ群１１４は、アナログのセンシングデータＤ１をサンプリング処理し、デジタルの送信データＤ２を生成する。
【００１５】
ＲＦ回路１１５は、送信データＤ２を高周波信号に変換し、データ処理装置１０２に無線送信する。
【００１６】
図２は、図１のＭＣＵ群１１４の構成例を示す図である。ＭＣＵ群１１４は、第１のＭＣＵ２０１、第２のＭＣＵ２０２、第３のＭＣＵ２０３、バス２１１、プログラムメモリ２１２及びキュー２１３を有する。上記のように、発電ユニット１１１が発電可能な電力は限られた電力である。データ処理装置１０１は、そのような状況で目標の処理性能を実現するため、電力性能比の高いマルチプロセッサ構成を有する。マルチプロセッサ構成は、複数のＭＣＵ２０１〜２０３を有する。
【００１７】
図３は、図２の第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３の処理例を示すタイミングチャートである。第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３の並列処理により、アナログのセンシングデータＤ１を所望のサンプリング周期Ｔでサンプリング処理し、送信データＤ２を生成する。
【００１８】
第１のＭＣＵ２０１は、アナログのセンシングデータＤ１のサンプリングポイントＳＰ０からサンプリング処理を開始する。第２のＭＣＵ２０２は、アナログのセンシングデータＤ１のサンプリングポイントＳＰ１からサンプリング処理を開始する。サンプリングポイントＳＰ１は、サンプリングポイントＳＰ０に対して、時間Ｔだけ遅延したタイミングのサンプリングポイントである。第３のＭＣＵ２０３は、アナログのセンシングデータＤ１のサンプリングポイントＳＰ２からサンプリング処理を開始する。サンプリングポイントＳＰ２は、サンプリングポイントＳＰ１に対して、時間Ｔだけ遅延したタイミングのサンプリングポイントである。
【００１９】
第１のＭＣＵ２０１は、アナログのセンシングデータＤ１に対して、３×Ｔのサンプリング周期で、サンプリングポイントＳＰ０、ＳＰ３、ＳＰ６、ＳＰ９、ＳＰ１２、ＳＰ１５及びＳＰ１８でサンプリング処理する。
【００２０】
第２のＭＣＵ２０２は、アナログのセンシングデータＤ１に対して、３×Ｔのサンプリング周期で、サンプリングポイントＳＰ１、ＳＰ４、ＳＰ７、ＳＰ１０、ＳＰ１３、ＳＰ１６及びＳＰ１９でサンプリング処理する。
【００２１】
第３のＭＣＵ２０３は、アナログのセンシングデータＤ１に対して、３×Ｔのサンプリング周期で、サンプリングポイントＳＰ２、ＳＰ５、ＳＰ８、ＳＰ１１、ＳＰ１４及びＳＰ１７でサンプリング処理する。
【００２２】
その結果、ＭＣＵ群１１４は、２０個のサンプリングポイントＳＰ０〜ＳＰ１９のデータを送信データＤ２として生成することができる。２０個のサンプリングポイントＳＰ０〜ＳＰ１９のサンプリング周期はＴである。
【００２３】
以上のように、第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３の並列処理により、アナログのセンシングデータＤ１を所望のサンプリング周期Ｔでサンプリング処理し、送信データＤ２を生成することができる。
【００２４】
第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３は、相互にサンプリング処理のタイミングが時間Ｔずつずれている。この時間Ｔずつずらす方法を以下、説明する。
【００２５】
時間を計測するためのハードウェア、又は同期処理を行うソフトウェアを用いれば、時間Ｔずつずらすことが可能である。しかし、この方法では、ハードウェアの構成が複雑になったり、複雑なソフトウェアを記憶するためのメモリの記憶容量が大きくなってしまう。この方法は、スマートフォン等のように、動作周波数が１ＧＨｚ以上、消費電力が約１Ｗ、半導体チップのダイサイズが百〜数百ｍｍ２の比較的大型のデータ処理装置であれば実現可能である。
【００２６】
しかし、図１のデータ処理装置１０１は、自然エネルギーの発電ユニット１１１を用いるため、動作周波数が数十ＭＨｚ、消費電力が数十μＷ、半導体チップのダイサイズが数十ｍｍ２の比較的超小型のデータ処理装置である。このようなデータ処理装置１０１では、上記のような複雑なハードウェア又は複雑なソフトウェアを用いる方法を採用することができない。以下、簡単な構成で、第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３の処理をサンプリング周期Ｔずつずらす方法を説明する。
【００２７】
図２において、プログラムメモリ２１２は、０番地（１６進数）のアドレスにキュー読込み命令を記憶し、その次のアドレスにジャンプ命令を記憶し、２０番地（１６進数）のアドレスに待機命令を記憶し、その次の３０番地のアドレスに待機命令を記憶し、その次の４０番地（１６進数）のアドレスにサンプリング処理（データ処理）命令を記憶し、その次のアドレスに待機命令を記憶し、その次のアドレスに「４０番地（１６進数）へのジャンプ命令」を記憶する。第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３が１個のプログラムメモリ２１２を共有することにより、プログラムメモリ２１２の容量を削減することができる。
【００２８】
図４は、図２のキュー２１３の構成例を示す図である。キュー２１３は、制御部４０１、記憶部４０２及びオフセットレジスタ４０３を有する。記憶部４０２は、不揮発性メモリであり、複数のエントリ番号「０」〜「２」に複数のＭＣＵ２０１〜２０３の異なる実行開始アドレスを記憶する。ＭＣＵ２０１〜２０３は、キュー２１３へのアクセス順で、エントリ番号「０」〜「２」のうちのどのエントリ番号の実行開始アドレスが割り当てられるのかが決まる。例えば、エントリ番号「０」には、第１の実行開始アドレス「４０」番地（１６進数）が記憶され、エントリ番号「１」には、第２の実行開始アドレス「３０」番地（１６進数）が記憶され、エントリ番号「２」には、第３の実行開始アドレス「２０」番地（１６進数）が記憶されている。オフセットレジスタ４０３は、揮発性メモリであり、記憶部４０２のエントリ番号「０」〜「２」のうちの１個のエントリ番号を記憶する。
【００２９】
図５は、図２のＭＣＵ２０１〜２０３の構成例を示す図である。ＭＣＵ２０１〜２０３は、それぞれ、入出力（Ｉ／Ｏ：Input/Output）回路５０１、中央処理装置（ＣＰＵ：Central Processing Unit）５０２及びスタックメモリ５０３を有する。入出力回路５０１は、センサ１１２から供給されるセンシングデータＤ１を入力し、中央処理装置５０２に出力する。スタックメモリ５０３は、中央処理装置５０２の作業用メモリ領域である。中央処理装置５０２は、スタックメモリ５０３を用いて、プログラムメモリ２１２に記憶されている命令を実行し、図３のサンプリング処理（データ処理）等の処理を行う。
【００３０】
図６は、第１のＭＣＵ〜第ＮのＭＣＵ及びキュー２１３の処理例を示すフローチャートである。以下、Ｎが３の場合を例に説明する。ＰＭＵ１１３は、所定条件を満たすと、ＭＣＵ群１１４に電力Ｐ２を供給し、ＲＦ回路１１５に電力Ｐ３を供給する。所定条件は、例えば、発電ユニット１１１の発電電力Ｐ１が閾値以上になる条件、又はセンサ１１２が出力するセンシングデータＤ１が所定範囲内になる条件等である。
【００３１】
各ＭＣＵ２０１〜２０３は、電源オン時に初期化され、プログラムメモリ２１２の先頭アドレスから命令を読み出し、実行する。すなわち、ＭＣＵ群１１４に電力Ｐ２の供給が開始されると、第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３は、それぞれ、ステップＳ６０１、Ｓ６１１、Ｓ６２１で、プログラムメモリ２１２の０番地（１６進数）のアドレスに記憶されているキュー読込み命令を読み出し、そのキュー読込み命令を実行する。具体的には、第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３は、キュー２１３に記憶されている実行開始アドレスを読み出す。ただし、キュー２１３は１個しかないため、第１のＭＣＵ２０１、第２のＭＣＵ２０２及び第３のＭＣＵ２０３は、同時に、キュー２１３から実行開始アドレスを読み出すことができず、アクセス順に、順次、キュー２１３から実行開始アドレスを読み出す。すなわち、各ＭＣＵ２０１〜２０３は、電源オン時に、ほぼ同時に、キュー２１３に対してアクセスを行い、キュー２１３は、ＭＣＵ２０１〜２０３からのアクセスに対して逐次的に応答する。
【００３２】
第１のＭＣＵ２０１は、ステップＳ６０１で、キュー２１３から実行開始アドレスをロードするため、０番地のアドレスのキュー読込み命令を実行し、キュー２１３にアクセスする。第２のＭＣＵ２０２も、ステップＳ６１１で、キュー２１３から実行開始アドレスをロードするため、０番地のアドレスのキュー読込み命令を実行し、キュー２１３にアクセスする。第３のＭＣＵ２０３も、ステップＳ６２１で、キュー２１３から実行開始アドレスをロードするため、０番地のアドレスのキュー読込み命令を実行し、キュー２１３にアクセスする。
【００３３】
例えば、キュー２１３内の制御部４０１が最初に第１のＭＣＵ２０１のアクセスを受け付け、２番目に第２のＭＣＵ２０２のアクセスを受け付け、３番目に第３のＭＣＵ２０３のアクセスを受け付ける場合を例に説明する。
【００３４】
その場合、キュー２１３の制御部４０１は、最初に、上記の第１のＭＣＵ２０１のアクセスを受け付ける。すると、キュー２１３の制御部４０１は、ステップＳ６３１で、オフセットレジスタ４０３に記憶されているエントリ番号をロードする。オフセットレジスタ４０３は、電力Ｐ２の供給が開始されると、記憶するエントリ番号がエントリ番号「０」に初期化される。したがって、制御部４０１は、オフセットレジスタ４０３からエントリ番号「０」をロードし、記憶部４０２において、そのロードしたエントリ番号「０」に記憶されている第１の実行開始アドレス「４０」番地（１６進数）を記憶部４０２からロードし、その第１の実行開始アドレス「４０」番地（１６進数）を第１のＭＣＵ２０１に送信する。第１のＭＣＵ２０１は、ステップＳ６０１で、キュー２１３から第１の実行開始アドレス「４０」番地（１６進数）を受信する。次に、キュー２１３の制御部４０１は、ステップＳ６３３で、オフセットレジスタ４０３のエントリ番号を「０」から「１」にインクリメントする。
【００３５】
次に、キュー２１３の制御部４０１は、上記の第２のＭＣＵ２０２のアクセスを受け付ける。すると、キュー２１３の制御部４０１は、ステップＳ６３１で、オフセットレジスタ４０３に記憶されているエントリ番号「１」をロードし、記憶部４０２において、そのロードしたエントリ番号「１」に記憶されている第２の実行開始アドレス「３０」番地（１６進数）を記憶部４０２からロードし、その第２の実行開始アドレス「３０」番地（１６進数）を第２のＭＣＵ２０２に送信する。第２のＭＣＵ２０２は、ステップＳ６１１で、キュー２１３から第２の実行開始アドレス「３０」番地（１６進数）を受信する。次に、キュー２１３の制御部４０１は、ステップＳ６３３で、オフセットレジスタ４０３のエントリ番号を「１」から「２」にインクリメントする。
【００３６】
次に、キュー２１３の制御部４０１は、上記の第３のＭＣＵ２０３のアクセスを受け付ける。すると、キュー２１３の制御部４０１は、ステップＳ６３１で、オフセットレジスタ４０３に記憶されているエントリ番号「２」をロードし、記憶部４０２において、そのロードしたエントリ番号「２」に記憶されている第３の実行開始アドレス「２０」番地（１６進数）を記憶部４０２からロードし、その第３の実行開始アドレス「２０」番地（１６進数）を第３のＭＣＵ２０３に送信する。第３のＭＣＵ２０３は、ステップＳ６２１で、キュー２１３から第３の実行開始アドレス「２０」番地（１６進数）を受信する。次に、キュー２１３の制御部４０１は、ステップＳ６３３で、オフセットレジスタ４０３のエントリ番号を「２」から「３」にインクリメントする。
【００３７】
ＭＣＵ２０１〜２０３がＮ個ある場合には、第ＮのＭＣＵまで、上記と同様の処理を繰り返す。以上のように、制御部４０１は、複数のＭＣＵ２０１〜２０３から順次アクセスされると、記憶部４０２内のオフセットレジスタ４０３に記憶されているエントリ番号から実行開始アドレスを読み出し、その読み出した実行開始アドレスをアクセスしたＭＣＵ２０１〜２０３のうちのいずれかのＭＣＵに出力し、オフセットレジスタ４０３に記憶されているエントリ番号を次のエントリ番号に書き換える。具体的には、制御部４０１は、ＭＣＵ２０１〜２０３のうちのいずれかのＭＣＵからアクセスされると、オフセットレジスタ４０３に記憶されているエントリ番号をインクリメントする。
【００３８】
第１のＭＣＵ２０１は、ステップＳ６０２で、プログラムメモリ２１２の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップＳ６０１でロード（受信）した第１の実行開始アドレス「４０」番地（１６進数）にジャンプする。プログラムメモリ２１２の第１の実行開始アドレス「４０」番地（１６進数）は、サンプリング処理命令であり、待機命令ではないので、ステップＳ６０３を省略し、ステップＳ６０２からステップＳ６０４に進む。なお、ステップＳ６０３は、第１のＭＣＵ２０１がキュー２１３へアクセスする順番が２番目以降である場合に行う処理である。第１のＭＣＵ２０１は、ステップＳ６０４で、第１の実行開始アドレス「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ０（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。次に、第１のＭＣＵ２０１は、ステップＳ６０５で、プログラムメモリ２１２の次のアドレスの待機命令を実行し、図３の約３×Ｔの時間だけ待機する。その後、第１のＭＣＵ２０１は、プログラムメモリ２１２の次のアドレスの「４０番地（１６進数）へのジャンプ命令」を実行し、４０番地（１６進数）にジャンプする。次に、第１のＭＣＵ２０１は、ステップＳ６０４に戻り、「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ３（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。次に、第１のＭＣＵ２０１は、ステップＳ６０５で、プログラムメモリ２１２の次のアドレスの待機命令を実行し、図３の約３×Ｔの時間だけ待機する。その後、第１のＭＣＵ２０１は、プログラムメモリ２１２の次のアドレスの「４０番地（１６進数）へのジャンプ命令」を実行し、４０番地（１６進数）にジャンプする。次に、第１のＭＣＵ２０１は、ステップＳ６０４に戻り、「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ６（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。以下、上記と同様の処理を繰り返し、第１のＭＣＵ２０１は、センシングデータＤ１のサンプリングポイントＳＰ９、ＳＰ１２、ＳＰ１５及びＳＰ１８等（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。以上のように、第１のＭＣＵ２０１は、３×Ｔのサンプリング周期で、サンプリングポイントＳＰ０、ＳＰ３、ＳＰ６、ＳＰ９、ＳＰ１２、ＳＰ１５及びＳＰ１８等のサンプリング処理を行うことができる。
【００３９】
第２のＭＣＵ２０２は、ステップＳ６１２で、プログラムメモリ２１２の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップＳ６１１でロード（受信）した第２の実行開始アドレス「３０」番地（１６進数）にジャンプする。次に、第２のＭＣＵ２０２は、ステップＳ６１３で、第２の実行開始アドレス「３０」番地（１６進数）の待機命令を実行することにより、図３の約Ｔの時間だけ待機する。次に、第２のＭＣＵ２０２は、ステップＳ６１４で、次のアドレスの「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ１（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。次に、第２のＭＣＵ２０２は、ステップＳ６１５で、プログラムメモリ２１２の次のアドレスの待機命令を実行し、図３の約３×Ｔの時間だけ待機する。その後、第２のＭＣＵ２０２は、プログラムメモリ２１２の次のアドレスの「４０番地（１６進数）へのジャンプ命令」を実行し、４０番地（１６進数）にジャンプする。次に、第２のＭＣＵ２０２は、ステップＳ６１４に戻り、「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ４（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。次に、第２のＭＣＵ２０２は、ステップＳ６１５で、プログラムメモリ２１２の次のアドレスの待機命令を実行し、図３の約３×Ｔの時間だけ待機する。その後、第２のＭＣＵ２０２は、プログラムメモリ２１２の次のアドレスの「４０番地（１６進数）へのジャンプ命令」を実行し、４０番地（１６進数）にジャンプする。次に、第２のＭＣＵ２０２は、ステップＳ６１４に戻り、「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ７（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。以下、上記と同様の処理を繰り返し、第２のＭＣＵ２０２は、センシングデータＤ１のサンプリングポイントＳＰ１０、ＳＰ１３、ＳＰ１６及びＳＰ１９等（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。以上のように、第２のＭＣＵ２０２は、３×Ｔのサンプリング周期で、サンプリングポイントＳＰ１、ＳＰ４、ＳＰ７、ＳＰ１０、ＳＰ１３、ＳＰ１６及びＳＰ１９等のサンプリング処理を行うことができる。
【００４０】
第３のＭＣＵ２０３は、ステップＳ６２２で、プログラムメモリ２１２の「キュー読込み命令」の次のアドレスのジャンプ命令を実行し、ステップＳ６２１でロード（受信）した第３の実行開始アドレス「２０」番地（１６進数）にジャンプする。次に、第３のＭＣＵ２０３は、ステップＳ６２３で、第３の実行開始アドレス「２０」番地（１６進数）の待機命令を実行することにより図３の約Ｔの時間だけ待機し、その次のアドレスの「３０」番地（１６進数）の待機命令を実行することにより図３の約Ｔの時間だけ待機する。すなわち、第３のＭＣＵ２０３は、ステップＳ６２３で、図３の約２×Ｔの時間だけ待機する。次に、第３のＭＣＵ２０３は、ステップＳ６２４で、次のアドレスの「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ２（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。次に、第３のＭＣＵ２０３は、ステップＳ６２５で、プログラムメモリ２１２の次のアドレスの待機命令を実行し、図３の約３×Ｔの時間だけ待機する。その後、第３のＭＣＵ２０３は、プログラムメモリ２１２の次のアドレスの「４０番地（１６進数）へのジャンプ命令」を実行し、４０番地（１６進数）にジャンプする。次に、第３のＭＣＵ２０３は、ステップＳ６２４に戻り、「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ５（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。次に、第３のＭＣＵ２０３は、ステップＳ６２５で、プログラムメモリ２１２の次のアドレスの待機命令を実行し、図３の約３×Ｔの時間だけ待機する。その後、第３のＭＣＵ２０３は、プログラムメモリ２１２の次のアドレスの「４０番地（１６進数）へのジャンプ命令」を実行し、４０番地（１６進数）にジャンプする。次に、第３のＭＣＵ２０３は、ステップＳ６２４に戻り、「４０」番地（１６進数）のサンプリング処理（データ処理）命令を実行することにより、センシングデータＤ１のサンプリングポイントＳＰ８（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。以下、上記と同様の処理を繰り返し、第３のＭＣＵ２０３は、センシングデータＤ１のサンプリングポイントＳＰ１１、ＳＰ１４及びＳＰ１７等（図３）のサンプリング処理（データ処理）を行い、送信データＤ２をＲＦ回路１１５に出力する。以上のように、第３のＭＣＵ２０３は、３×Ｔのサンプリング周期で、サンプリングポイントＳＰ２、ＳＰ５、ＳＰ８、ＳＰ１１、ＳＰ１４及びＳＰ１７等のサンプリング処理を行うことができる。
【００４１】
以上のように、ＭＣＵ群１１４は、複数のＭＣＵ２０１〜２０３の並列処理により、サンプリング周期Ｔで、サンプリングポイントＳＰ０〜ＳＰ１９等のサンプリング処理を行うことができる。複数のＭＣＵ２０１〜２０３は、相互に、サンプリング処理（データ処理）命令を繰り返し実行する周期３×Ｔが同じである。ＭＣＵ群１１４は、電力Ｐ２の供給が終了するまで、上記の処理を繰り返す。なお、ＭＣＵ２０１〜２０３の数Ｎは、３個に限定されず、２個以上であればよい。
【００４２】
複数のＭＣＵ２０１〜２０３は、キュー２１３に順次アクセスすると、順次アクセスした順番によりキュー２１３から異なる実行開始アドレスを入力し、プログラムメモリ２１２内の上記の入力した異なる実行開始アドレスから命令の実行を開始し、サンプリング処理（データ処理）命令及び待機命令を繰り返し実行する。複数のＭＣＵ２０１〜２０３は、相互にサンプリング処理（データ処理）命令を実行するタイミングが異なり、時間Ｔずつずれている。
【００４３】
複数のＭＣＵ２０１〜２０３は、相互に、上記の異なる実行開始アドレスの命令からサンプリング処理（データ処理）命令までの間にある待機命令の数が異なる。例えば、第１のＭＣＵ２０１の待機命令の数は０個、第２のＭＣＵ２０２の待機命令の数は１個、第３のＭＣＵ２０３の待機命令の数は２個である。
【００４４】
第１のＭＣＵ２０１は、第１の実行開始アドレス「４０」番地に記憶されているサンプリング処理（データ処理）命令から実行を開始する。
【００４５】
第２のＭＣＵ２０２は、第２の実行開始アドレス「３０」番地に記憶されている待機命令から実行を開始し、その後に、第２の実行開始アドレス「３０」番地の次のアドレスである第１の実行開始アドレス「４０」番地に記憶されているサンプリング処理（データ処理）命令を実行する。
【００４６】
第３のＭＣＵ２０３は、第３の実行開始アドレス「２０」番地に記憶されている待機命令から実行を開始し、その後に、第３の実行開始アドレス「２０」番地の次のアドレスである第２の実行開始アドレス「３０」番地に記憶されている待機命令を実行し、その後に、第２の実行開始アドレス「３０」番地の次のアドレスである第１の実行開始アドレス「４０」番地に記憶されているサンプリング処理（データ処理）命令を実行する。
【００４７】
本実施形態によれば、複雑なハードウェア又は複雑なソフトウェアを用いずに、簡単な構成で、ＭＣＵ２０１〜２０３の処理を時間Ｔずつずらし、ＭＣＵ２０１〜２０３がサンプリング処理（データ処理）命令を実行するタイミングを異ならせることができる。
【００４８】
これにより、ハードウェア資源を少なくし、プログラムメモリ２１２に記憶させる命令数を少なくし、各ＭＣＵ２０１〜２０３のサンプリング処理（データ処理）を所望のタイミングだけずらすことができる。
【００４９】
また、キュー２１３は、起動時にしかアクセスされないため、すべてのＭＣＵ２０１〜２０３からアクセスされた後に、電源を切ることで、消費電力を抑えることができる。
【００５０】
（第２の実施形態）
図７は、第２の実施形態によるＭＣＵ群１１４の構成例を示す図である。以下、本実施形態が第１の実施形態と異なる点を説明する。第４のＭＣＵ２０４は、ＭＣＵ２０１〜２０３と同様の構成を有し、バス２１１に接続される。本実施形態では、必要なＭＣＵの数は３個であるが、耐故障性を考慮して４個のＭＣＵ２０１〜２０４を設ける。プログラムメモリ２１２は、第４の実行開始アドレス「ＦＦ」番地（１６進数）に停止命令を記憶する。キュー２１３内の記憶部４０２は、エントリ番号「３」に第４の実行開始アドレス「ＦＦ」番地（１６進数）を記憶する。例えば、ＭＣＵ２０１〜２０４は、第１の実施形態と同様に、電力Ｐ２の供給が開始されると、ほぼ同時にキュー２１３にアクセスする。例えば、キュー２１３内の制御部４０１は、最初に第１のＭＣＵ２０１のアクセスを受け付け、２番目に第２のＭＣＵ２０２のアクセスを受け付け、３番目に第３のＭＣＵ２０３のアクセスを受け付け、４番目に第４のＭＣＵ２０４のアクセスを受け付ける。この場合、ＭＣＵ２０１〜２０３の処理は、第１の実施形態と同じである。以下、第４のＭＣＵ２０４の処理を説明する。
【００５１】
第４のＭＣＵ２０４がキュー２１３にアクセスすると、キュー２１３内の制御部４０１は、オフセットレジスタ４０３に記憶されているエントリ番号「３」をロードする。次に、キュー２１３内の制御部４０１は、記憶部４０２において、上記のロードしたエントリ番号「３」に記憶されている第４の実行開始アドレス「ＦＦ」番地（１６進数）を記憶部４０２からロードし、その第４の実行開始アドレス「ＦＦ」番地（１６進数）を第４のＭＣＵ２０４に送信する。第４のＭＣＵ２０４は、それを受信すると、プログラムメモリ２１２の「キュー読込み命令」の次のジャンプ命令を実行することにより、上記の受信した第４の実行開始アドレス「ＦＦ」番地（１６進数）にジャンプする。次に、第４のＭＣＵ２０４は、第４の実行開始アドレス「ＦＦ」番地（１６進数）の停止命令を実行することにより、処理を停止し、何もしない。以上のように、４個のＭＣＵ２０１〜２０４がすべて正常である場合には、第４のＭＣＵ２０４は、何もしないので、データ処理装置は、第１の実施形態と同じサンプリング処理（データ処理）を行うことができる。
【００５２】
これに対し、４個のＭＣＵ２０１〜２０４のうちの１個が故障した場合、３個の正常なＭＣＵはキュー２１３にアクセスし、１個の故障したＭＣＵはキュー２１３にアクセスしない。その結果、１個の故障したＭＣＵは何もせず、３個の正常なＭＣＵは、第１の実施形態のＭＣＵ２０１〜２０３と同様のサンプリング処理（データ処理）を行うことができる。なお、本実施形態では、必要なＭＣＵ数に対して１個の冗長なＭＣＵ２０４を設ける場合を例に説明したが、２個以上の冗長なＭＣＵを設けるようにしてもよい。
【００５３】
本実施形態によれば、複数のＭＣＵのうちで故障したＭＣＵが発生した場合でも、残りの正常なＭＣＵが正常なサンプリング処理（データ処理）を行うことができる。ＭＣＵを必要数以上設けることにより、耐故障性を高めることができる。
【００５４】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【００５５】
簡単な構成で、複数のコントローラがデータ処理命令を実行するタイミングを異ならせることができる。
【図１】
0005900606.tif 000002
【図２】
0005900606.tif 000003
【図３】
0005900606.tif 000004
【図４】
0005900606.tif 000005
【図５】
0005900606.tif 000006
【図６】
0005900606.tif 000007
【図７】
0005900606.tif 000008