(57)【要約】【課題】低消費電力でポーリング処理を行うことができる処理システムを提供することを課題とする。【解決手段】ポーリング回路（２０２）は、処理装置（２０１）から入力したアドレス信号が第１のアドレス範囲のアドレスである場合には、アドレス信号を第２のアドレス範囲のアドレスに変換して周辺回路（ＰＨ１）に出力し、処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスでない場合には、処理装置から入力したアドレス信号と同じアドレス信号を周辺回路に出力するアドレス信号生成部と、処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスであり、周辺回路から入力したリードデータ信号が処理装置から入力したアドレス信号に対応する期待値と同じである場合には、周辺回路から入力したレディ信号と同じレディ信号を処理装置に出力し、その他の場合には非活性化状態のレディ信号を処理装置に出力するレディ信号生成部を有する。【選択図】図２
2015191279.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と、
前記処理装置からリクエスト信号及びアドレス信号を入力し、前記処理装置にレディ信号及びリードデータ信号を出力するポーリング回路と、
前記ポーリング回路からリクエスト信号及びアドレス信号を入力し、前記ポーリング回路にレディ信号及びリードデータ信号を出力する周辺回路とを有し、
前記処理装置は、前記周辺回路にリードアクセスするために、活性化状態のリクエスト信号及び前記周辺回路に対応するアドレス信号を出力し、
前記周辺回路は、前記処理装置のリクエスト信号に対応する処理が終了していない場合には非活性化状態のレディ信号を出力し、前記処理装置のリクエスト信号に対応する処理が終了した場合には活性化状態のレディ信号及びリードデータ信号を出力し、
前記ポーリング回路は、
前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスである場合には、前記処理装置から入力したアドレス信号を第２のアドレス範囲のアドレスに変換して前記周辺回路にアドレス信号を出力し、前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスでない場合には、前記処理装置から入力したアドレス信号と同じアドレス信号を前記周辺回路に出力するアドレス信号生成部と、
前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスであり、前記周辺回路から入力したリードデータ信号が前記処理装置から入力したアドレス信号に対応する期待値と同じである場合には、前記周辺回路から入力したレディ信号と同じレディ信号を前記処理装置に出力し、その他の場合には非活性化状態のレディ信号を前記処理装置に出力するレディ信号生成部とを有することを特徴とする処理システム。
【請求項２】
前記周辺回路は、前記処理装置のリクエスト信号に応じて、イネーブル端子を有するレジスタからリードデータを読み出し、
前記ポーリング回路は、前記周辺回路のレジスタのイネーブル端子の信号が活性化状態になった場合に、前記周辺回路に活性化状態のリクエスト信号を出力するリクエスト信号生成部を有することを特徴とする請求項１記載の処理システム。
【請求項３】
前記周辺回路のレジスタは、イネーブル端子を有する複数のフリップフロップを有し、
前記リクエスト信号生成部は、前記周辺回路の複数のフリップフロップのイネーブル端子の信号のうちのいずれかの信号が活性化状態になった場合に、前記周辺回路に活性化状態のリクエスト信号を出力することを有することを特徴とする請求項２記載の処理システム。
【請求項４】
前記ポーリング回路は、前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスである場合には、前記周辺回路から入力したリードデータ信号のうちの前記処理装置から入力したアドレス信号に対応するビットの信号をリードデータ信号として前記処理装置に出力するリードデータ信号生成部を有することを特徴とする請求項１〜３のいずれか１項に記載の処理システム。
【請求項５】
前記リードデータ信号生成部は、前記周辺回路から入力したリードデータ信号のうちの前記処理装置から入力したアドレス信号に対応するビットの信号を下位ビットとし、上位ビットを０で埋めた信号をリードデータ信号として前記処理装置に出力することを特徴とする請求項４記載の処理システム。
【請求項６】
前記第１のアドレス範囲は、期待値が０である第３のアドレス範囲及び期待値が１である第４のアドレス範囲を有し、
前記レディ信号生成部は、
前記処理装置から入力したアドレス信号が前記第３のアドレス範囲のアドレスであり、前記周辺回路から入力したリードデータ信号のうちの前記処理装置から入力したアドレス信号に対応するビットの値が０である場合には、前記周辺回路から入力したレディ信号と同じレディ信号を前記処理装置に出力し、
前記処理装置から入力したアドレス信号が前記第４のアドレス範囲のアドレスであり、前記周辺回路から入力したリードデータ信号のうちの前記処理装置から入力したアドレス信号に対応するビットの値が１である場合には、前記周辺回路から入力したレディ信号と同じレディ信号を前記処理装置に出力することを特徴とする請求項１〜５のいずれか１項に記載の処理システム。
【請求項７】
前記アドレス信号生成部は、前記処理装置から入力したアドレス信号を前記第２のアドレス範囲のアドレスに変換したアドレスを保持するアドレス保持部を有することを特徴とする請求項１〜６のいずれか１項に記載の処理システム。
【請求項８】
前記レディ信号生成部は、前記処理装置に入力される割り込み信号が活性化状態になった場合には、前記周辺回路から入力したレディ信号と同じレディ信号を前記処理装置に出力することを特徴とする請求項１〜７のいずれか１項に記載の処理システム。
【請求項９】
前記リードデータ信号生成部は、前記周辺回路から入力したリードデータ信号のうちの前記処理装置から入力したアドレス信号に対応するビットの信号を保持するビット信号保持部を有することを特徴とする請求項４又は５記載の処理システム。
【請求項１０】
さらに、前記ポーリング回路及び前記周辺回路の間に接続されるバスを有することを特徴とする請求項１〜９のいずれか１項に記載の処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理システムに関する。
【背景技術】
【０００２】
プロセッサがアクセス可能なアドレス空間の所定のアドレスから所定の周期でデータを読み出し、読み出したデータが所定の条件を満たすとき、プロセッサに対する割り込み信号を発生するポーリング部が知られている（例えば、特許文献１参照）。ポーリング部は、アドレス空間において割り当てられたアドレスを持ち、所定のアドレス、所定の周期及び所定の条件の少なくとも１つを設定するためのデータを格納するレジスタを有する。
【０００３】
また、特定アドレスのデータが期待値になるまでデータを繰り返し参照して待つポーリング処理の実行が演算装置で必要となった場合に、ポーリング処理の実行によりデータが期待値と一致するか否かを判断する判断手段を有する省電力制御装置が知られている（例えば、特許文献２参照）。制御手段は、データが期待値と一致すると判断されるまで、演算装置を省電力モードに遷移するように制御する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２３８００１号公報
【特許文献２】特開２０１１−１３９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
割り込み処理では、周辺回路が処理の完了の割り込み信号を中央処理装置（ＣＰＵ）に対して通知する。そのため、ＣＰＵは、周辺回路に対して処理の開始を指示した後、全く別の処理を行ったり、割り込み信号が通知されるまで、消費電力の小さいスリープモードで待機することができるメリットがある。しかし、ＣＰＵは、割り込み信号が通知された場合、割り込み処理に移行する前に、その時点で実行している処理を後から再開できるようにＣＰＵ内部の汎用レジスタの値、プログラムカウンタの値、ＣＰＵの内部状態を保持するプロセッサステータスレジスタの値などを一旦、ランダムアクセスメモリ（ＲＡＭ）に待避する。ＣＰＵは、待避が完了した後、割り込み信号に対応した処理を行い、処理が完了したらＲＡＭに待避してある汎用レジスタの値、プログラムカウンタの値、プロセッサステータスレジスタの値を復元し、元々実行していた処理を再開する。
【０００６】
また、ＣＰＵは、割り込み信号をスリープモードで受信すると、スリープ時の汎用レジスタ、プログラムカウンタ、プロセッサステータスレジスタの値のＲＡＭへの待避、割り込み信号に対応した処理、ＲＡＭからの汎用レジスタ、プログラムカウンタ、プロセッサステータスレジスタの値の復元を行う。割り込み処理では、これらの値のＲＡＭへの待避と復元がオーバーヘッドとなる点がデメリットである。
【０００７】
割り込み処理では、周辺回路側が処理の完了を通知する発信元となるのに対し、ポーリング処理では、ＣＰＵから周辺回路に対して処理の完了を問い合わせる。具体的には、周辺回路は、自身の処理状態に応じて値が変わる周辺回路ステータスレジスタを備えており、ＣＰＵは、この周辺回路ステータスレジスタの値を読み出して値を確認することで、周辺回路の処理が完了しているか否かを判断する。ＣＰＵは、読み出した周辺回路ステータスレジスタの値が、まだ処理を実施中であることを表す値であったときは、もう一度、周辺回路ステータスレジスタの値を読み出し、値を確認することを繰り返す。ＣＰＵが何度も周辺回路ステータスレジスタの値の読み出しを繰り返しているうちに、いずれ周辺回路が処理を完了し、周辺回路ステータスレジスタの値が処理完了を表す値に変化し、ＣＰＵは処理完了を知ることができる。
【０００８】
ポーリング処理のメリットは、割り込み処理への移行前と通常処理への復帰前で行われる汎用レジスタ、プログラムカウンタ、プロセッサステータスレジスタの値のＲＡＭへの待避と復帰が行われないため、これらによるクロックサイクルや消費電力のオーバーヘッドがない点である。ＣＰＵが周辺回路に処理を行わせる頻度が多いプログラムを実装する場合、これを割り込み処理を用いたプログラムとして実装すると、頻繁に割り込み処理が行われ、割り込み処理のオーバーヘッドが大きくなる点が課題である。
【０００９】
ポーリング処理のデメリットは、周辺回路での処理がなかなか完了せず、ＣＰＵが周辺回路ステータスレジスタの値の読み出しを繰り返す回数が多くなる場合に、ＣＰＵ及びＲＡＭの消費電力が増えたり、ＣＰＵの他にバスアクセスするモジュールでの処理時間が延び、消費電力が増えたりする点である。ＣＰＵが周辺回路ステータスレジスタを繰り返し読み出すとき、ＣＰＵは次の手順で示すプログラムを繰り返し実行することになる。
【００１０】
（１）ＣＰＵは、周辺回路ステータスレジスタの値を読み出す。（２）ＣＰＵは、読み出した値が周辺回路の処理完了を表す値と一致するか比較する。（３）ＣＰＵは、一致しない場合は、（１）に戻ってやり直す。
【００１１】
このとき、ＣＰＵは常に動作し続けることになるので電力を消費する。また、ＣＰＵは、（１）、（２）、（３）の実行を指示するプログラムをＲＡＭから読み出すためＲＡＭの電力消費が生ずる。また、ＣＰＵ、ＲＡＭ、及び周辺回路は、バスを介して接続され、ステータスレジスタをはじめ周辺回路の各種レジスタへのアクセス、ＲＡＭへのアクセスはバスを介して行われる。しかし、ポーリング処理を行っている間、ＣＰＵは、頻繁にバスを使用することになる。すると、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）など、バスを介してアクセスするブロックがＣＰＵ以外に存在する場合、これらのブロックのアクセスに対して競合又は阻害することになり、他のブロックの処理完了が遅れたり、動作時間が延びることにより余分な電力を消費したりする。
【００１２】
特許文献１では、ポーリング処理を専用で担うポーリング部が開示されている。ＣＰＵが直接、周辺回路のステータスレジスタの値を読み出して期待する値と一致するかを判定する代わりに、ポーリング部がこれを行う。ポーリング部からＣＰＵへは割り込み信号線が接続されており、ステータスレジスタの値が期待値と一致したときは、この割り込み信号線を通じてポーリング部がＣＰＵに対して割り込みを通知する。これによれば、周辺回路が処理完了を通知する信号を割り込み信号としてＣＰＵに直接出力していない場合においても、ＣＰＵはポーリング部を介して割り込み処理によって周辺回路での処理完了を知ることができるため、割り込み処理でのメリットである処理完了まで別の処理を行うことができ、また、消費電力の小さいスリープモードで待機できるなどのメリットを享受できる。しかし、ＣＰＵは、割り込み信号を受信する度に汎用レジスタ、プログラムカウンタ、プロセッサステータスレジスタの値のＲＡＭへの待避と、処理完了時に元々実行していた処理を再開するためのこれらの値のＲＡＭからの復元が行われるデメリットは解消されない。
【００１３】
特許文献２では、ポーリング処理を専用で担う省電力モード管理部が開示されている。ＣＰＵは、予めポーリング対象のステータスレジスタのアドレスと期待する値を省電力モード管理部内に備わったアドレスレジスタとデータレジスタに設定した後、省電力モード管理部に対してポーリング実行を指示する。省電力モード管理部は、ＣＰＵへクロックを供給しているクロック制御部に対し、ＣＰＵへのクロック供給を止めることを指示し、同時にアドレスレジスタで指示された周辺回路のステータスレジスタの値を読み出す。省電力モード管理部は、読み出した値がデータレジスタで指示された値と一致するかを確認し、不一致の場合、一致するまでステータスレジスタの値を読み出し、値の一致の確認を繰り返し、一致した場合、クロック制御部に対してＣＰＵへのクロック供給を再開させる。
【００１４】
特許文献２では、割り込み処理を用いていないため、汎用レジスタ、プログラムカウンタ、プロセッサステータスレジスタの値のＲＡＭへの待避と復帰が行われるデメリットがない。また、省電力モード管理部が周辺回路のステータスレジスタを繰り返し読み出し、その間、ＣＰＵは、クロック供給が停止しているためＣＰＵでの消費電力が抑えられる。また、ＣＰＵは、プログラムのＲＡＭからの読み出しやステータスレジスタアクセスのためのバスアクセスも行わないので、ＲＡＭでの電力消費やバスアクセスの競合の問題も起こらない。
【００１５】
しかし、特許文献２では、以下に挙げる３つの課題がある。
（１）プログラム中で省電力モード管理部内のアドレスレジスタやデータレジスタの設定、省電力モード管理部に対するポーリング処理開始の指示が必要である。したがって、省電力モード管理部を備えているか否かによって異なる実装のプログラムが必要であり、省電力モード管理部を備えないシステムとの間でプログラムを移植するときにプログラムの変更量が多くなる。
【００１６】
（２）省電力モード管理部がポーリング対象としている周辺回路以外のモジュールからＣＰＵに割り込みが通知されたときの動作が開示されていない。
【００１７】
（３）突然のクロックの供給停止及び再開が可能な特殊なＣＰＵが必要となる。通常のＣＰＵは、クロックの供給停止が可能なｗａｉｔモードを備えるが、ｗａｉｔモードへの移行は、ＣＰＵ上でｗａｉｔモード移行の専用命令を実行することで行われる。ｗａｉｔモードから再びＣＰＵをｗａｋｅ  ｕｐモードに移行させるには、ＣＰＵへのクロックの供給再開とＣＰＵへ何らかの割り込み通知を行うのが一般的である。しかし、割り込み通知によってＣＰＵをｗａｋｅ  ｕｐモードにした場合、汎用レジスタ、プログラムカウンタ、プロセッサステータスレジスタの値のＲＡＭへの待避と復元が必要となる。
【００１８】
本発明の目的は、特殊な処理装置を必要とせず、低消費電力でポーリング処理を行うことができる処理システムを提供することである。
【課題を解決するための手段】
【００１９】
処理システムは、処理装置と、前記処理装置からリクエスト信号及びアドレス信号を入力し、前記処理装置にレディ信号及びリードデータ信号を出力するポーリング回路と、前記ポーリング回路からリクエスト信号及びアドレス信号を入力し、前記ポーリング回路にレディ信号及びリードデータ信号を出力する周辺回路とを有し、前記処理装置は、前記周辺回路にリードアクセスするために、活性化状態のリクエスト信号及び前記周辺回路に対応するアドレス信号を出力し、前記周辺回路は、前記処理装置のリクエスト信号に対応する処理が終了していない場合には非活性化状態のレディ信号を出力し、前記処理装置のリクエスト信号に対応する処理が終了した場合には活性化状態のレディ信号及びリードデータ信号を出力し、前記ポーリング回路は、前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスである場合には、前記処理装置から入力したアドレス信号を第２のアドレス範囲のアドレスに変換して前記周辺回路にアドレス信号を出力し、前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスでない場合には、前記処理装置から入力したアドレス信号と同じアドレス信号を前記周辺回路に出力するアドレス信号生成部と、前記処理装置から入力したアドレス信号が第１のアドレス範囲のアドレスであり、前記周辺回路から入力したリードデータ信号が前記処理装置から入力したアドレス信号に対応する期待値と同じである場合には、前記周辺回路から入力したレディ信号と同じレディ信号を前記処理装置に出力し、その他の場合には非活性化状態のレディ信号を前記処理装置に出力するレディ信号生成部とを有する。
【発明の効果】
【００２０】
ポーリング回路を設けることにより、特殊な処理装置を必要とせず、低消費電力でポーリング処理を行うことができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、本実施形態によるワイヤレスセンサノードの構成例を示す図である。
【図２】図２は、全体制御部の構成例を示す図である。
【図３】図３は、周辺回路の一部の構成例を示す図である。
【図４】図４は、ＣＰＵ、ポーリング回路、バス及び周辺回路間の信号を示す図である。
【図５】図５は、ＣＰＵ及びポーリング回路間の信号を示すタイミングチャートである。
【図６】図６は、ポーリング回路及びバス間の信号を示すタイミングチャートである。
【図７】図７は、バス及び周辺回路間の信号を示すタイミングチャートである。
【図８】図８は、メモリマップを示す図である。
【図９】図９は、第１の周辺回路の通常レジスタ領域、期待値が０のレジスタ領域、及び期待値が１のレジスタ領域の例を示す図である。
【図１０】図１０は、ポーリング回路の構成例を示す図である。
【図１１】図１１は、図１０のアドレス信号生成部の構成例を示す図である。
【図１２】図１２は、図１０のＲＥＡＤＹ信号生成部の構成例を示す図である。
【図１３】図１３は、セレクタの動作を説明するための図である。
【図１４】図１４は、図１０のＲＤＡＴＡ信号生成部の構成例を示す図である。
【図１５】図１５は、図１０のＲＥＱ信号生成部の構成例を示す図である。
【図１６】図１６は、周辺回路内のイネーブル信号生成部の構成例を示す図である。
【発明を実施するための形態】
【００２２】
図１は、本実施形態によるワイヤレスセンサノード１００の構成例を示す図である。ワイヤレスセンサノード１００は、全体制御部１０１、センサ部１０２、ＲＦ（Radio Frequency）部１０３、発電電源管理部１０４、アンテナ１０５及び発電素子１０６を有する。発電素子１０６は、光、温度差又は振動などのエネルギー１１２を基に発電を行い、電力を発電電源管理部１０４に供給する。発電電源管理部１０４は、電力を管理し、全体制御部１０１、センサ部１０２及びＲＦ部１０３に対して、電力を供給する。全体制御部１０１は、Ｉ２Ｃ（Inter-Integrated Circuit）、ＳＰＩ（Serial Peripheral Interface）などのシリアルインターフェースを介して、センサ部１０２、ＲＦ部１０３及び発電電源管理部１０４を制御する。センサ部１０２は、温度、照度、加速度又は圧力などの情報１１１を検出し、情報１１１を全体制御部１０１に出力する。全体制御部１０１は、ＲＦ部１０３及びアンテナ１０５を介して、情報１１１を無線信号１１３として送信する。また、全体制御部１０１は、ＲＦ部１０３及びアンテナ１０５を介して、その他の情報を無線信号１１３として送受信することができる。
【００２３】
ワイヤレスセンサノード１００には電池や商用電源が接続されず、発電素子１０６は、環境から得られるエネルギー１１２を基に自己発電する。したがって、ワイヤレスセンサノード１００は、徹底的な低消費電力が求められる。ワイヤレスセンサノード１００に求められる様々な要求仕様や状況に応じた制御を行うために、全体制御部１０１は、プログラマビリティが求められるため、ＭＣＵ（マイクロコントローラユニット）が用いられる。
【００２４】
図２は、全体制御部１０１の構成例を示す図である。全体制御部１０１は、処理システムであり、中央処理装置（ＣＰＵ）２０１、ポーリング回路２０２、ＲＡＭ２０３、割り込みコントローラ２０４、バス２０５、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）２０６、第１の周辺回路ＰＨ１、第２の周辺回路ＰＨ２、第３の周辺回路ＰＨ３及び第４の周辺回路ＰＨ４を有する。バス２０５には、ポーリング回路２０２、ＲＡＭ２０３、ＤＭＡＣ２０６及び周辺回路ＰＨ１〜ＰＨ４が接続される。バス２０５は、ポーリング回路２０２及び周辺回路ＰＨ１〜ＰＨ４の間に接続される。割り込みコントローラ２０４は、周辺回路ＰＨ１〜ＰＨ４の割り込み信号ＩＲ１〜ＩＲ４及び外部割込み信号ＩＲＲを入力し、割り込み信号ＩＲをＣＰＵ２０１及びポーリング回路２０２に出力する。周辺回路ＰＨ１〜ＰＨ４は、それぞれ、イネーブル信号ＥＮＳ１〜ＥＮＳ４をポーリング回路２０２に出力する。周辺回路ＰＨ１〜ＰＨ３は、Ｉ２Ｃ回路又はＳＰＩ回路などのインターフェース回路であり、それぞれ、図１のセンサ部１０２、ＲＦ部１０３及び発電電源管理部１０４に接続される。
【００２５】
図３は、各周辺回路ＰＨ１〜ＰＨ４の一部の構成例を示す図である。周辺回路ＰＨ１〜ＰＨ４は、それぞれ、アドレスレジスタ３０１、送信データバッファレジスタ３０２、受信データバッファレジスタ３０３、制御レジスタ３０４、ステータスレジスタ３０５、論理和（ＯＲ）回路３０６及びセレクタ３０７を有する。レジスタ３０１〜３０５のデータ端子Ｄ及びイネーブル端子ＥＮは、論理回路３１１〜３２０の３２ビット出力データを入力する。レジスタ３０１〜３０５は、それぞれ、クロック信号に同期して、データ端子Ｄの入力データをラッチし、ラッチした３２ビットデータを出力端子Ｑから出力する。セレクタ３０７は、バス２０５から入力するアドレスＡＤＤＲに応じて、レジスタ３０１〜３０５の３２ビット出力データのうちのいずれかを選択し、３２ビットデータＲＤＡＴＡをバス２０５に出力する。論理和回路３０６は、ステータスレジスタ３０５のイネーブル端子ＥＮの３２ビットデータの論理和をイネーブル信号ＥＮＳとして出力する。
【００２６】
ＣＰＵ２０１が周辺回路ＰＨ１〜ＰＨ３を介してセンサ部１０２、ＲＦ部１０３及び発電電源管理部１０４へデータ送信する手順は次の通りである。例として、ＣＰＵ２０１が周辺回路ＰＨ１を介してセンサ部１０２へデータ送信する手順を説明する。まず、ＣＰＵ２０１は、ポーリング回路２０２及びバス２０５を介して、送信先アドレスを周辺回路ＰＨ１内のアドレスレジスタ３０１に書き込む。なお、送信先アドレスは、センサ部１０２を示すアドレスである。次に、ＣＰＵ２０１は、ポーリング回路２０２及びバス２０５を介して、送信データを周辺回路ＰＨ１内の送信データバッファレジスタ３０２に書き込む。ここで、送信データは、センサデータ読み出しコマンド等を含む。次に、ＣＰＵ２０１は、ポーリング回路２０２及びバス２０５を介して、送信の指示を周辺回路ＰＨ１内の制御レジスタ３０４に書き込む。その後、周辺回路ＰＨ１は、送信データをセンサ部１０２に送信する。センサ部１０２は、送信データに従い、情報１１１を検出し、周辺回路１０４、バス２０５及びポーリング回路２０２を介して、情報１１１をＣＰＵ２０１に送信する。
【００２７】
図４は、ＣＰＵ２０１、ポーリング回路２０２、バス２０５及び周辺回路ＰＨ１間の信号を示す図である。周辺回路ＰＨ１の場合を例に示すが、周辺回路ＰＨ２〜ＰＨ４も周辺回路ＰＨ１の場合と同様である。リクエスト信号ＲＥＱは、アクセスリクエスト信号である。アドレス信号ＡＤＤＲは、アクセス先アドレス信号である。アクセス種類信号ＷＲＩＴＥは、リード又はライトのアクセスの種類を示す信号である。ライトデータ信号ＷＤＡＴＡは、ライトアクセス時のライトデータ信号である。リードデータ信号ＲＤＡＴＡは、リードアクセス時のリードデータ信号である。レディ信号ＲＥＡＤＹは、アクセス完了を示す信号である。
【００２８】
例えば、ＣＰＵ２０１が３２ビットＣＰＵの場合、信号ＡＤＤＲ、ＷＤＡＴＡ、ＲＤＡＴＡは３２ビット信号である。信号ＲＥＱ、ＡＤＤＲ、ＷＲＩＴＥ、ＷＤＡＴＡは、アクセス元からアクセス先に出力される信号である。信号ＲＤＡＴＡ及びＲＥＡＤＹは、アクセス先からアクセス元に出力される信号である。図４では、最終アクセス先が周辺回路ＰＨ１になっているが、ＣＰＵ２０１がプログラムコードの読み出しやデータの読み出し、書き込みを行うため、図１のＲＡＭ２０３も最終アクセス先となり得る。また、図４では、ＣＰＵ２０１がアクセス元になっているが、図２のＤＭＡＣ２０６は、ＲＡＭ２０３や周辺回路ＰＨ１〜ＰＨ４に対して読み出しや書き込みアクセスを行うのでアクセス元になり得る。ただし、ＤＭＡＣ２０６は、ポーリング処理を行わないので、ポーリング回路２０２を介する必要がなく、直接バス２０５に接続される。
【００２９】
ポーリング回路２０２は、ＣＰＵ２０１からリクエスト信号ＲＥＱ、アドレス信号ＡＤＤＲ、アクセス種類信号ＷＲＩＴＥ及びライトデータ信号ＷＤＡＴＡを入力し、ＣＰＵ２０１にレディ信号ＲＥＡＤＹ及びリードデータ信号ＲＤＡＴＡを出力する。周辺回路ＰＨ１は、バス２０５を介して、ポーリング回路２０２からリクエスト信号ＲＥＱ、アドレス信号ＡＤＤＲ、アクセス種類信号ＷＲＩＴＥ及びライトデータＷＤＡＴＡを入力し、ポーリング回路２０２にレディ信号ＲＥＡＤＹ及びリードデータ信号ＲＤＡＴＡを出力する。
【００３０】
次に、通常のＣＰＵ２０１のポーリング処理を説明する。ポーリング対象としている周辺回路ＰＨ１は、ＣＰＵ２０１から指示された処理が完了したら、３２ビットのステータスレジスタ３０５の最下位ビットの値を０から１に変更する。ＣＰＵ２０１は、３２ビットのステータスレジスタ３０５の値を読み出し、最下位ビットの値を抽出する。最下位ビットが１である場合には、周辺回路ＰＨ１の処理が完了しているので、ＣＰＵ２０１は、次の処理に移る。最下位ビットが０である場合、周辺回路ＰＨ１が、まだ処理を完了していないため、ＣＰＵ２０１は、次の処理には移れず、再び周辺回路ＰＨ１の処理が完了したかを確認する処理を繰り返す。周辺回路ＰＨ１の処理実行に時間がかかり、ステータスレジスタ３０５の最下位ビットがなかなか１に変化しない場合、ＣＰＵ２０１は、何度もステータスレジスタ３０５の最下位ビットを読み出して確認する処理を繰り返すことになる。本実施形態では、このような繰り返し処理をなくすための処理を説明する。本実施形態では、ステータスレジスタ３０５の最下位ビットを読み出して得られる値は必ず１であることが保証され、１回目の実行で必ず次の処理に進むことができる。以下、その詳細を説明する。
【００３１】
図５はＣＰＵ２０１及びポーリング回路２０２間の信号を示すタイミングチャートであり、図６はポーリング回路２０２及びバス２０５間の信号を示すタイミングチャートであり、図７はバス２０５及び周辺回路ＰＨ１間の信号を示すタイミングチャートである。信号ＣＬＫは、クロック信号である。信号ＬＳＢは、周辺回路ＰＨ１内のステータスレジスタ３０５内のデータの最下位ビットの信号である。
【００３２】
ＣＰＵ２０１が周辺回路ＰＨ１内のステータスレジスタ３０５の最下位ビットに対して読み出しアクセスする例を説明する。すべての信号は、ＣＰＵ２０１、ポーリング回路２０２、バス２０５及び周辺回路ＰＨ１に共通で供給されるクロック信号ＣＬＫの立ち上がりエッジで伝達される。ＣＰＵ２０１は、ポーリング回路２０２に対して、図５の時刻Ｔ１において、アクセス要求を行ってもよいことを示す信号ＲＥＡＤＹ＝１であることを確認し、信号ＲＥＱ＝１とするアクセス要求を出力する。それと同時に、ＣＰＵ２０１は、ポーリング回路２０２に対して、アクセス先アドレスの信号ＡＤＤＲ＝Ａ’（ステータスレジスタ３０５の最下位ビットＬＳＢを示すアドレス）、及びアクセス種類が読み出しアクセスであることを示す信号ＷＲＩＴＥ＝０を出力する。
【００３３】
ポーリング回路２０２は、内部のアドレス信号生成部１００１（図１０）により、ＣＰＵ２０１から入力された信号ＡＤＤＲ＝Ａ’を図６の信号ＡＤＤＲ＝Ａに変換してバス２０５へ出力する。また、ポーリング回路２０２は、ＣＰＵ２０１から入力された信号ＲＥＱ及び信号ＷＲＩＴＥをそのままバス２０５へ出力する。
【００３４】
バス２０５は、ポーリング回路２０２からの信号ＲＥＱ及びＷＲＩＴＥにより、ＣＰＵ２０１から読み出しアクセスの要求が来ていることを知る。そして、バス２０５は、信号ＡＤＤＲからアクセス先を判別し、アクセス先の周辺回路ＰＨ１に対して、ポーリング回路２０２からの信号ＲＥＱ、ＡＤＤＲ、及びＷＲＩＴＥを出力する。周辺回路ＰＨ１は、ステータスレジスタ３０５の最下位ビットＬＳＢの読み出しデータの準備中であることを示す信号ＲＥＡＤＹ＝０をバス２０５に出力する。信号ＲＥＡＤＹは、周辺回路ＰＨ１からバス２０５及びポーリング回路２０２を介してＣＰＵ２０１に出力される。ＣＰＵ２０１は、信号ＲＥＡＤＹ＝０となっていることから、読み出しアクセスがまだ実行中であることを知る。
【００３５】
時刻Ｔ３の後、周辺回路ＰＨ１は、アドレス信号ＡＤＤＲ＝Ａで指定されたステータスレジスタ３０５の値Ｄａｔａ（Ａ）の出力準備ができ、信号ＲＤＡＴＡ＝Ｄａｔａ（Ａ）を出力し、それと同時に、信号ＲＤＡＴＡが有効データであることを示す信号ＲＥＡＤＹ＝１を出力する。この時、周辺回路ＰＨ１は、ＣＰＵ２０１から指示されたセンサデータの読み出し処理が完了していないので、ステータスレジスタ３０５の最下位ビットＬＳＢの値は０である。したがって、信号ＲＤＡＴＡの最下位ビットＬＳＢは０である。信号ＲＥＡＤＹ及びＲＤＡＴＡは、周辺回路ＰＨ１からバス２０５を介してポーリング回路２０２に出力される。
【００３６】
時刻Ｔ４では、ポーリング回路２０２は、クロック信号ＣＬＫの立ち上がりエッジで、信号ＲＥＡＤＹ＝１となっていることから、それと同時に、信号ＲＤＡＴＡ＝Ｄａｔａ（Ａ）が入力されていることを知る。ポーリング回路２０２は、３２ビットの信号ＲＤＡＴＡのうち、ＣＰＵ２０１がポーリング対象として確認したい最下位ビットＬＳＢの値を取り出し、この値がＣＰＵ２０１が期待する１であるかを確認する。最下位ビットＬＳＢが０であるので、ポーリング回路２０２は、信号ＲＥＡＤＹ＝０をＣＰＵ２０１に対して継続して出力する。
【００３７】
その所定時間後の時刻Ｔ６では、ポーリング回路２０２は、再び、バス２０５を介して、周辺回路ＰＨ１に対して、信号ＡＤＤＲ＝Ａ、信号ＲＥＱ＝１、信号ＷＲＩＴＥ＝０を出力する。なお、時刻Ｔ６の前の時刻Ｔ５では、周辺回路ＰＨ１は、ＣＰＵ２０１の指示によるセンサデータの読み出し処理が完了し、ステータスレジスタ３０５の最下位ビットＬＳＢを０から１に変更する。
【００３８】
時刻Ｔ７の後では、周辺回路ＰＨ１は、ステータスレジスタ３０５の最下位ビットＬＳＢの読み出しデータの準備中であることを示す信号ＲＥＡＤＹ＝０を、バス２０５及びポーリング回路２０２を介して、ＣＰＵ２０１に出力する。ＣＰＵ２０１は、信号ＲＥＡＤＹ＝０となっていることから、読み出しアクセスがまだ実行中であることを知る。
【００３９】
時刻Ｔ８の後、周辺回路ＰＨ１は、アドレス信号ＡＤＤＲ＝Ａで指定されたステータスレジスタ３０５の値Ｄａｔａ（Ａ）の出力準備ができ、信号ＲＤＡＴＡ＝Ｄａｔａ（Ａ）を出力し、それと同時に、信号ＲＤＡＴＡが有効データであることを示す信号ＲＥＡＤＹ＝１を出力する。この時、周辺回路ＰＨ１は、ＣＰＵ２０１から指示されたセンサデータの読み出し処理が完了しているので、ステータスレジスタ３０５の最下位ビットＬＳＢの値は１である。したがって、信号ＲＤＡＴＡの最下位ビットＬＳＢは１である。信号ＲＥＡＤＹ及びＲＤＡＴＡは、周辺回路ＰＨ１からバス２０５を介してポーリング回路２０２に出力される。
【００４０】
時刻Ｔ８の後では、ポーリング回路２０２は、信号ＲＥＡＤＹ＝１となっていることから、それと同時に、信号ＲＤＡＴＡ＝Ｄａｔａ（Ａ）が入力されていることを知る。ポーリング回路２０２は、３２ビットの信号ＲＤＡＴＡのうち、ＣＰＵ２０１がポーリング対象として確認したい最下位ビットＬＳＢの値を取り出し、この値がＣＰＵ２０１が期待する１であるかを確認する。最下位ビットＬＳＢが１であるので、ポーリング回路２０２は、ＣＰＵ２０１に対して、信号ＲＥＡＤＹ＝１及び３２ビット信号ＲＤＡＴＡ＝１を出力する。ＣＰＵ２０１は、信号ＲＥＡＤＹ＝１となっていることから、読み出しアクセスが終了したことを知る。この時、ＣＰＵ２０１が入力する信号ＲＤＡＴＡは、必ず１であることが保証されている。ＣＰＵ２０１は、ステータスレジスタ３０５の最下位ビットＬＳＢを読み出して得られる値は必ず１であることが保証され、１回目の実行で必ず次の処理に進むことができる。
【００４１】
以上のように、ＣＰＵ２０１は、周辺回路ＰＨ１にリードアクセスするために、「１」のリクエスト信号ＲＥＱ及び周辺回路ＰＨ１に対応するアドレス信号ＡＤＤＲを出力する。周辺回路ＰＨ１は、ＣＰＵ２０１のリクエスト信号ＲＥＱに対応する処理が終了していない場合には「０」のレディ信号ＲＥＡＤＹを出力し、ＣＰＵ２０１のリクエスト信号ＲＥＱに対応する処理が終了した場合には「１」のレディ信号ＲＥＤＹ及びリードデータ信号ＲＤＡＴＡを出力する。なお、信号ＲＥＱ及びＲＥＡＤＹは、それぞれ、「１」が活性化状態を示し、「０」が非活性化状態を示す。
【００４２】
ポーリング回路２０２は、信号ＲＤＡＴＡの最下位ビットＬＳＢが１になるまで、周辺回路ＰＨ１に対して、信号ＲＥＱ＝１等の出力を繰り返す。ポーリング回路２０２は、周辺回路ＰＨ１に対して、信号ＲＥＱ＝１等を２回出力しているが、ＣＰＵ２０１は、信号ＲＥＱ＝１のアクセス要求を出力してから、実際に要求した信号ＲＤＡＴＡ＝Ｄａｔａ（Ａ’）の到着までの１回の読み出しアクセスで期待する値の１を受け取っている。したがって、ＣＰＵ２０１が信号ＲＥＱ＝１の読み出し及び確認処理を繰り返し実行する必要がないので、電力消費が抑えられ、プログラムを繰り返しＲＡＭ２０３から読み出すことによるＲＡＭ２０３の電力消費が抑えられる。
【００４３】
図８は、メモリマップを示す図である。以下、ポーリング回路２０２が、ＣＰＵ２０１から入力するアドレス信号ＡＤＤＲを基にＣＰＵ２０１が３２ビットの信号ＲＤＡＴＡのうちの何ビット目の値をポーリング処理のチェック対象としているのか、及び期待する値が０と１のどちらなのかを判別する方法を説明する。各レジスタ３０１〜３０５は、３２ビットでバイトアドレッシング（１バイト＝８ビット単位でアドレスが割り振られている）されているものとする。
【００４４】
第１の周辺回路ＰＨ１の各種レジスタ３０１〜３０５は、アドレス０ｘ４０００００００から０ｘ４００００ＦＦＣにマッピングされている。ここで、０ｘは、１６進数を示す。例えば、ステータスレジスタ３０５のアドレスは０ｘ４０００００００、制御レジスタ３０４は０ｘ４００００００４、受信データバッファレジスタ３０３は０ｘ４００００００８などのようにマッピングされる。通常、ＣＰＵ２０１がレジスタ３０１〜３０５の値を読み出したり、レジスタ３０１〜３０５に値を書き込むときは、これらのアドレスを用いてアクセスする。
【００４５】
アドレス０ｘ５０００００００〜０ｘ５００１ＦＦＦＣは、ＣＰＵ２０１が第１の周辺回路ＰＨ１のレジスタのあるビットが０であることを期待して、レジスタに読み出しアクセスするときのためのアドレスである。アドレス０ｘ６０００００００〜０ｘ６００１ＦＦＦＣは、ＣＰＵ２０１が第１の周辺回路ＰＨ１のレジスタのあるビットが１であることを期待して、レジスタに読み出しアクセスするときのためのアドレスである。
【００４６】
レジスタ領域８０１ａは、第１の周辺回路ＰＨ１の通常レジスタ領域である。レジスタ領域８０１ｂは、第１の周辺回路ＰＨ１の期待値が０のレジスタ領域である。レジスタ領域８０１ｃは、第１の周辺回路ＰＨ１の期待値が１のレジスタ領域である。レジスタ領域８０２ａは、第２の周辺回路ＰＨ２の通常レジスタ領域である。レジスタ領域８０２ｂは、第２の周辺回路ＰＨ２の期待値が０のレジスタ領域である。レジスタ領域８０２ｃは、第２の周辺回路ＰＨ２の期待値が１のレジスタ領域である。レジスタ領域８０４ａは、第４の周辺回路ＰＨ４の通常レジスタ領域である。レジスタ領域８０４ｂは、第４の周辺回路ＰＨ４の期待値が０のレジスタ領域である。レジスタ領域８０４ｃは、第４の周辺回路ＰＨ４の期待値が１のレジスタ領域である。
【００４７】
図９は、第１の周辺回路ＰＨ１の通常レジスタ領域８０１ａ、期待値が０のレジスタ領域８０１ｂ、及び期待値が１のレジスタ領域８０１ｃの例を示す図である。例えば、通常レジスタ領域８０１ａのアドレスが０ｘ４０００００００で指定されるレジスタの０ビット目（最下位ビット）Ａを値が０であることを期待して読み出しアクセスするときは、ＣＰＵ２０１は、信号ＡＤＤＲ＝０ｘ５０００００００をポーリング回路２０２に出力する。また、通常レジスタ領域８０１ａのアドレスが０ｘ４０００００００で指定されるレジスタの０ビット目（最下位ビット）Ａを値が１であることを期待して読み出しアクセスするときは、ＣＰＵ２０１は、信号ＡＤＤＲ＝０ｘ６０００００００をポーリング回路２０２に出力する。
【００４８】
通常レジスタ領域８０１ａのアドレスが０ｘ４０００００００で指定されるレジスタの１ビット目Ｂを値が０であることを期待して読み出しアクセスするときは、ＣＰＵ２０１は、信号ＡＤＤＲ＝０ｘ５００００００４をポーリング回路２０２に出力する。また、通常レジスタ領域８０１ａのアドレスが０ｘ４０００００００で指定されるレジスタの１ビット目Ｂを値が１であることを期待して読み出しアクセスするときは、ＣＰＵ２０１は、信号ＡＤＤＲ＝０ｘ６００００００４をポーリング回路２０２に出力する。
【００４９】
通常レジスタ領域８０１ａのアドレスが０ｘ４００００ＦＦＣで指定されるレジスタの３１ビット目（最上位ビット）Ｃを値が０であることを期待して読み出しアクセスするときは、ＣＰＵ２０１は、信号ＡＤＤＲ＝０ｘ５００１ＦＦＦＣをポーリング回路２０２に出力する。また、通常レジスタ領域８０１ａのアドレスが０ｘ４００００ＦＦＣで指定されるレジスタの３１ビット目（最上位ビット）Ｃを値が１であることを期待して読み出しアクセスするときは、ＣＰＵ２０１は、信号ＡＤＤＲ＝０ｘ６００１ＦＦＦＣをポーリング回路２０２に出力する。
【００５０】
ポーリング処理でアクセスしたいレジスタ３０１〜３０５の通常レジスタ領域８０１ａのアドレスをＡｄｄｒ＿ｎ、ビット位置をＢＩＴとすると、このビットが０であることを期待して読み出しアクセスするときに、ＣＰＵ２０１が出力するアドレス信号ＡＤＤＲは、次式で表される。
【００５１】
ＡＤＤＲ＝０ｘ５０００００００＋（Ａｄｄｒ＿ｎ−０ｘ４０００００００）×３２×４＋ＢＩＴ×４
【００５２】
同様に、ポーリング処理でアクセスしたいレジスタ３０１〜３０５の通常レジスタ領域８０１ａのアドレスをＡｄｄｒ＿ｎ、ビット位置をＢＩＴとすると、このビットが１であることを期待して読み出しアクセスするときに、ＣＰＵ２０１が出力するアドレス信号ＡＤＤＲは、次式で表される。
【００５３】
ＡＤＤＲ＝０ｘ６０００００００＋（Ａｄｄｒ＿ｎ−０ｘ４０００００００）×３２×４＋ＢＩＴ×４
【００５４】
図１０は、ポーリング回路２０２の構成例を示す図である。ポーリング回路２０２は、アドレス信号生成部１００１、レディ（ＲＥＡＤＹ）信号生成部１００２、リードデータ（ＲＤＡＴＡ）信号生成部１００３及びリクエスト（ＲＥＱ）信号生成部１００４を有する。
【００５５】
図１１は、図１０のアドレス信号生成部１００１の構成例を示す図である。アドレス信号生成部１００１は、アドレス比較部１１０１、アドレス変換部１１０２、アドレス保持部１１０３及びセレクタ１１０４を有する。アドレス信号生成部１００１は、ＣＰＵ２０１からの信号ＡＤＤＲを変換し、変換した信号ＡＤＤＲをバス２０５へ出力する。アドレス比較部１１０１は、ＣＰＵ２０１から入力される３２ビットの信号ＡＤＤＲのうち、上位４ビットが０ｘ５であれば、期待値０のレジスタ領域８０１ｂのアクセスと判断し、上位４ビットが０ｘ６であれば、期待値１のレジスタ領域８０１ｃのアクセスと判断する。また、アドレス比較部１１０１は、上記の上位４ビットがそれ以外の値である場合、通常レジスタ領域８０１ａへのアクセス、ＲＡＭ２０３へのアクセスなど、ポーリング処理以外のアクセスと判断する。
【００５６】
アドレス比較部１１０１は、信号ＡＤＤＲの上位４ビットが０ｘ５又は０ｘ６の場合、ＣＰＵ２０１からポーリングのためのアクセス要求が来たことを伝えるため、「１」のポーリングアクセス信号を出力し、それ以外の場合、「０」のポーリングアクセス信号を出力する。また、アドレス比較部１１０１は、期待値信号として、信号ＡＤＤＲの上位４ビットが０ｘ５の場合は０を出力し、信号ＡＤＤＲの上位４ビットが０ｘ６の場合は１を出力する。また、アドレス比較部１１０１は、信号ＡＤＤＲの下位７ビットを４で割った値を基にポーリング対象のビット位置を算出し、ビット位置信号を出力する。
【００５７】
アドレス変換部１１０２は、ポーリングアクセス信号が０の場合は、ＣＰＵ２０１からの信号ＡＤＤＲをそのままアドレス保持部１１０３及びセレクタ１１０４に出力する。また、アドレス変換部１１０２は、ポーリングアクセス信号が１の場合は、以下の手順でアドレスＡｄｄｒ＿ｎを演算し、演算したアドレスＡｄｄｒ＿ｎをアドレス保持部１１０３及びセレクタ１１０４に出力する。
【００５８】
（１）アドレス変換部１１０２は、期待値が０の場合、ＣＰＵ２０１から入力される信号ＡＤＤＲから０ｘ５０００００００を減算し、期待値が１の場合、ＣＰＵ２０１から入力される信号ＡＤＤＲから０ｘ６０００００００を減算する。
【００５９】
（２）アドレス変換部１１０２は、（１）で求めた値を７ビット論理右シフトする。
【００６０】
（３）アドレス変換部１１０２は、（２）で求めた値に０ｘ４０００００００を加算する。
【００６１】
上記の手順により、ＣＰＵ２０１がポーリング処理で確認したいビットを含むレジスタの通常レジスタ領域８０１ａのアドレスＡｄｄｒ＿ｎを復元できる。アドレス変換部１１０２は、アドレスＡｄｄｒ＿ｎをアドレス保持部１１０３及びセレクタ１１０４に出力する。
【００６２】
アドレス保持部１１０３は、ポーリングアクセス信号が１の場合は、アドレス変換部１１０２が生成したアドレスＡｄｄｒ＿ｎを保持する。これにより、周辺回路ＰＨ１から読み出したステータスレジスタ３０５の値が期待する値でないときにポーリング回路２０２が、ステータスレジスタ３０５の読み出しアクセスを繰り返し行うことが可能になる。
【００６３】
セレクタ１１０４は、ポーリングアクセス信号が０の場合は、アドレス変換部１１０２が出力する信号ＡＤＤＲをそのままバス２０５へ出力する。この際、アドレス変換部１１０２は、アドレス変換を行わず、ＣＰＵ２０１からの信号ＡＤＤＲをそのまま出力している。また、セレクタ１１０４は、ポーリングアクセス信号が１の場合は、アドレス保持部１１０３が出力するアドレスＡｄｄｒ＿ｎをバス２０５へ出力する。
【００６４】
以上のように、アドレス信号生成部１００１は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲが期待値０及び期待値１のレジスタ領域（第１のアドレス範囲）８０１ｂ及び８０１ｃのアドレスである場合には、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲを通常レジスタ領域（第２のアドレス範囲）８０１ａのアドレスに変換して、バス２０５を介して周辺回路ＰＨ１にアドレス信号ＡＤＤＲを出力する。また、アドレス信号生成部１００１は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲが期待値０及び期待値１のレジスタ領域（第１のアドレス範囲）８０１ｂ及び８０１ｃのアドレスでない場合には、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲと同じアドレス信号ＡＤＤＲを、バス２０５を介して周辺回路ＰＨ１に出力する。アドレス保持部１１０３は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲを通常レジスタ領域（第２のアドレス範囲）８０１ａのアドレスに変換したアドレスを保持する。
【００６５】
図１２は、図１０のＲＥＡＤＹ信号生成部１００２の構成例を示す図である。ＲＥＡＤＹ信号生成部１００２は、セレクタＲ１，Ｒ２、ビット位置保持部１２０１、期待値保持部１２０２、期待値比較部１２０３、及びポーリング中断判定部１２０４を有する。ＲＥＡＤＹ信号生成部１００２は、ＣＰＵ２０１へ出力する信号ＲＥＡＤＹを生成する。
【００６６】
ビット位置保持部１２０１は、ポーリング処理の間、図１１のアドレス比較部１１０１が出力するビット位置信号を保持し、セレクタＲ１に出力する。セレクタＲ１は、バス２０５から入力される３２ビットの信号ＲＤＡＴＡのうち、ビット位置保持部１２０１が出力するビット位置信号が示すビット位置の値を選択し、ビット信号として出力する。
【００６７】
期待値保持部１２０２は、ポーリング処理の間、図１１のアドレス比較部１１０１が出力する期待値信号を保持し、期待値比較部１２０３へ出力する。期待値比較部１２０３は、セレクタＲ１から入力されるビット信号と期待値保持部１２０２から入力される期待値信号を比較し、両者が一致した場合には「１」の期待値判定信号を出力し、両者が不一致の場合には「０」の期待値判定信号を出力する。ポーリング中断判定部１２０４は、ＣＰＵ２０１へ入力される割り込み信号ＩＲを入力し、ＣＰＵ２０１に対して割り込みが発生した場合は、「１」のポーリング中断信号をセレクタＲ２に出力する。
【００６８】
セレクタＲ２は、図１１のアドレス比較部１１０１が出力するポーリングアクセス信号、期待値比較部１２０３が出力する期待値判定信号、ポーリング中断判定部１２０４が出力するポーリング中断信号に応じて、バス２０５からの信号ＲＥＡＤＹ又は０をＣＰＵ２０１に出力する。セレクタＲ２が出力する信号は、ポーリング回路２０２からＣＰＵ２０１へ出力される信号ＲＥＡＤＹである。
【００６９】
図１３は、セレクタＲ２の動作を説明するための図である。セレクタＲ２は、ポーリングアクセス信号、期待値判定信号、及びポーリング中断信号に応じて、信号を出力する。セレクタＲ２は、ポーリング中断信号が１の場合、ポーリングアクセス信号、期待値判定信号の値にかかわらず、バス２０５からの信号ＲＥＡＤＹを選択して出力する。その理由は後述する。また、セレクタＲ２は、ポーリング中断信号が０の場合、以下の動作を行う。
【００７０】
ポーリングアクセス信号が０の場合、ＣＰＵ２０１はポーリングのためのアクセスでない通常のアクセスを行っているため、セレクタＲ２は、バス２０５からの信号ＲＥＡＤＹをそのままＣＰＵ２０１に出力する。
【００７１】
ポーリングアクセス信号が１であり、期待値判定信号が１の場合、ＣＰＵ２０１が期待する値が得られているので、セレクタＲ２は、バス２０５からの信号ＲＥＡＤＹをそのままＣＰＵ２０１に出力する。この際、ポーリング回路２０２がバス２０５を介して周辺回路ＰＨ１のステータスレジスタ３０５の値を読み出す処理は完了しているので、バス２０５からの信号ＲＥＡＤＹは１となっている。
【００７２】
ポーリングアクセス信号が１であり、期待値判定信号が０の場合、ＣＰＵ２０１が期待する値が得られておらず、ＣＰＵ２０１には読み出しアクセスが継続しているように見せるため、セレクタＲ２は、「０」の信号ＲＥＡＤＹをＣＰＵ２０１に出力する。
【００７３】
次に、ポーリング中断信号が１になる条件と、そのときのポーリング回路２０２の動作を説明する。ＣＰＵ２０１がポーリング処理をしているとき、もしポーリング対象のステータスレジスタ３０５の値が長時間にわたってＣＰＵが期待する値に変化しなかった場合、ポーリング回路２０２からＣＰＵ２０１へ出力する信号ＲＥＡＤＹは長時間にわたって０のままになる。ＣＰＵ２０１から見ると、読み出しアクセスが長時間保留になっているように見える。ＣＰＵ２０１がバスアクセスの途中に「１」の割り込み信号ＩＲが入力されたときは、バスアクセスの完了を待ってから割り込み処理に移行する設計であった場合、ポーリング回路２０２が期待値一致を確認するまで、ＣＰＵ２０１にとっては、信号ＲＥＡＤＹが０であり、バスアクセスが完了していないように見える。そのため、ＣＰＵ２０１は、割り込み処理に移行するまでに長い間待たされることになる。そこで、ＣＰＵ２０１に「１」の割り込み信号ＩＲが入力された場合は、ＣＰＵ２０１は、すみやかに現在実行しているプログラムを中断し、割り込み処理プログラムに移行する。
【００７４】
本実施形態では、割り込み処理に移行するまでに長時間の待ち時間が生ずる事態を防ぐために、ポーリング中断判定部１２０４は、ＣＰＵ２０１へ入力される割り込み信号ＩＲを入力し、ＣＰＵ２０１に対して割り込みが発生した場合は、ポーリング処理を中断するために「１」のポーリング中断信号を出力する。セレクタＲ２は、ＣＰＵ２０１から見たバスアクセスを完了させるために、バス２０５からの信号ＲＥＡＤＹをそのままＣＰＵ２０１へ出力する。
【００７５】
このとき、ＣＰＵ２０１へ出力される信号ＲＤＡＴＡは、ポーリング回路２０２がもっとも最近読み出したステータスレジスタ３０５の指定されたビットの値とするため、セレクタＲ１が出力するビット信号を保持するビット信号保持部１４０１（図１４）を設ける。
【００７６】
以上のように、ＲＥＡＤＹ信号生成部１００２は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲが期待値０及び期待値１のレジスタ領域（第１のアドレス範囲）８０１ｂ及び８０１ｃのアドレスであり、バス２０５を介して周辺回路ＰＨ１から入力したリードデータ信号ＲＤＡＴＡがＣＰＵ２０１から入力したアドレス信号ＡＤＤＲに対応する期待値と同じである場合には、バス２０５を介して周辺回路ＰＨ１から入力したレディ信号ＲＥＡＤＹと同じレディ信号ＲＥＡＤＹをＣＰＵ２０１に出力し、その他の場合には「０」のレディ信号ＲＥＡＤＹをＣＰＵ２０１に出力する。
【００７７】
具体的には、ＲＥＡＤＹ信号生成部１００２は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲが期待値０のレジスタ領域（第３のアドレス範囲）８０１ｂのアドレスであり、周辺回路ＰＨ１から入力したリードデータ信号ＲＤＡＴＡのうちのＣＰＵ２０１から入力したアドレス信号ＡＤＤＲに対応するビットの値が０である場合には、周辺回路ＰＨ１から入力したレディ信号ＲＥＡＤＹと同じレディ信号ＲＥＡＤＹをＣＰＵ２０１に出力する。また、ＲＥＡＤＹ信号生成部１００２は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲが期待値１のレジスタ領域（第４のアドレス範囲）８０１ｃのアドレスであり、周辺回路ＰＨ１から入力したリードデータ信号ＲＤＡＴＡのうちのＣＰＵ２０１から入力したアドレス信号ＡＤＤＲに対応するビットの値が１である場合には、周辺回路ＰＨ１から入力したレディ信号ＲＥＡＤＹと同じレディ信号ＲＥＡＤＹをＣＰＵ２０１に出力する。
【００７８】
また、ＲＥＡＤＹ信号生成部１００２は、ＣＰＵ２０１に入力される割り込み信号ＩＲが「１」（活性化状態）になった場合には、バス２０５を介して周辺回路ＰＨ１から入力したレディ信号ＲＥＡＤＹと同じレディ信号ＲＥＡＤＹをＣＰＵ２０１に出力する。
【００７９】
図１４は、図１０のＲＤＡＴＡ信号生成部１００３の構成例を示す図である。ＲＤＡＴＡ信号生成部１００３は、ポーリング回路２０２からＣＰＵ２０１へ出力する信号ＲＤＡＴＡを生成する。ＲＤＡＴＡ信号生成部１００３は、ビット信号保持部１４０１及びセレクタ１４０２を有する。ビット信号保持部１４０１は、図９のレジスタ領域８０１ｂ及び８０１ｃのように、図１２のＲＥＡＤＹ信号生成部１００２からのビット信号を最下位ビットとして入力し、上位３１ビット分を０で埋め、３２ビット信号を生成し、セレクタ１４０２に出力する。セレクタ１４０２は、ポーリングアクセス信号が「１」の場合、ビット信号保持部１４０１が出力する３２ビット信号を、信号ＲＤＡＴＡとしてＣＰＵ２０１に出力する。また、ポーリングアクセス信号が０の場合、ＣＰＵ２０１はポーリング処理のためではないバスアクセスを行っていることになるので、セレクタ１４０２は、バス２０５からの信号ＲＤＡＴＡをそのままＣＰＵ２０１へ出力する。
【００８０】
以上のように、ＲＤＡＴＡ信号生成部１００３は、ＣＰＵ２０１から入力したアドレス信号ＡＤＤＲが期待値０及び期待値１のレジスタ領域（第１のアドレス範囲）８０１ｂ及び８０１ｃのアドレスである場合には、バス２０５を介して周辺回路ＰＨ１から入力したリードデータ信号ＲＤＡＴＡのうちのＣＰＵ２０１から入力したアドレス信号ＡＤＤＲに対応するビットの信号をリードデータ信号ＲＤＡＴＡとしてＣＰＵ２０１に出力する。ビット信号保持部１４０１は、バス２０５を介して周辺回路ＰＨ１から入力したリードデータ信号ＲＤＡＴＡのうちのＣＰＵ２０１から入力したアドレス信号ＡＤＤＲに対応するビットの信号を保持する。
【００８１】
具体的には、ＲＤＡＴＡ信号生成部１００３は、バス２０５を介して周辺回路ＰＨ１から入力したリードデータ信号ＲＤＡＴＡのうちのＣＰＵ２０１から入力したアドレス信号ＡＤＤＲに対応するビットの信号を下位ビットとし、上位ビットを０で埋めた信号をリードデータ信号ＲＤＡＴＡとしてＣＰＵ２０１に出力する。
【００８２】
図１５は、図１０のＲＥＱ信号生成部１００４の構成例を示す図である。ＲＥＱ信号生成部１００４は、ポーリング回路２０２からバス２０５へ出力する信号ＲＥＱを生成する。ＲＥＱ信号生成部１００４は、セレクタ１５０１及び１５０２を有する。ポーリングアクセス信号が０の場合、ＣＰＵ２０１はポーリング処理のためのアクセスではない通常のアクセスを行っているので、セレクタ１５０１は、ＣＰＵ２０１からの信号ＲＥＱをそのままバス２０５への信号ＲＥＱとして出力する。ポーリングアクセス信号が１の場合、セレクタ１５０１は、以下の動作により、バス２０５への信号ＲＥＱを生成する。
【００８３】
セレクタ１５０１は、ポーリングアクセス信号が１の場合、周辺回路ＰＨ１のステータスレジスタ３０５の１回目のアクセスのために、「１」の信号ＲＥＱをバス２０５に出力する。
【００８４】
読み出した周辺回路ＰＨ１のステータスレジスタ３０５の値が期待値と一致せず、２回目以降のステータスレジスタ３０５の読み出しアクセスを行うための信号ＲＥＱの出力は、セレクタ１５０２がアクセスタイミング信号を出力したときに行う。セレクタ１５０２は、図１１のアドレス保持部１１０３が出力する通常レジスタアドレスを基に、周辺回路ＰＨ１〜ＰＨ４が出力するイネーブル信号ＥＮＳ１〜ＥＮＳ４のうちのいずれかを選択し、アクセスタイミング信号としてセレクタ１５０１に出力する。例えば、周辺回路ＰＨ１〜ＰＨ４の通常レジスタ領域のアドレスが図８の構成の時、通常レジスタアドレスが０ｘ４０００００００〜０ｘ４００００ＦＦＣの範囲の場合、セレクタ１５０２は、周辺回路ＰＨ１のイネーブル信号ＥＮＳ１を選択し、アクセスタイミング信号として出力する。
【００８５】
図１６は、各周辺回路ＰＨ１〜ＰＨ４内のイネーブル信号生成部の構成例を示す図である。３２個のＤ型フリップフロップＦＦ１〜ＦＦ３２は、図３のステータスレジスタ３０５に対応し、３２ビット値を記憶する。論理和回路３０６は、図３の論理和回路３０６に対応する。イネーブル信号生成部は、イネーブル信号ＥＮＳを生成する。第１の周辺回路ＰＨ１内のイネーブル信号生成部が出力するイネーブル信号ＥＮＳは、図１５の第１の周辺回路ＰＨ１が出力するイネーブル信号ＥＮＳ１に対応する。第２の周辺回路ＰＨ２内のイネーブル信号生成部が出力するイネーブル信号ＥＮＳは、図１５の第２の周辺回路ＰＨ２が出力するイネーブル信号ＥＮＳ２に対応する。第３の周辺回路ＰＨ３内のイネーブル信号生成部が出力するイネーブル信号ＥＮＳは、図１５の第３の周辺回路ＰＨ３が出力するイネーブル信号ＥＮＳ３に対応する。第４の周辺回路ＰＨ４内のイネーブル信号生成部が出力するイネーブル信号ＥＮＳは、図１５の第４の周辺回路ＰＨ４が出力するイネーブル信号ＥＮＳ４に対応する。
【００８６】
ステータスレジスタ３０５は、イネーブル端子ＥＮ付きのＤ型フリップフロップＦＦ１〜ＦＦ３２を有する。イネーブル端子ＥＮ付きのＤ型フリップフロップＦＦ１〜ＦＦ３２は、それぞれ、１ビットの記憶素子であり、イネーブル端子ＥＮの信号が１の時に入力端子Ｄの値を内部に取り込み、保持し、保持した値を出力端子Ｑから出力する。したがって、各Ｄ型フリップフロップＦＦ１〜ＦＦ３２のイネーブル端子ＥＮに入力される信号が１のとき、各Ｄ型フリップフロップＦＦ１〜ＦＦ３２の値が書き換わる可能性がある。なお、イネーブル端子ＥＮに１が入力されても、入力端子Ｄへ入力される値がもともと各Ｄ型フリップフロップＦＦ１〜ＦＦ３２が保持している値と同じ場合は、結果的に、各Ｄ型フリップフロップＦＦ１〜ＦＦ３２の値は書き換わらず、出力端子Ｑから同じ値が出力され続ける。論理和回路３０６は、Ｄ型フリップフロップ（ステータスレジスタ）ＦＦ１〜ＦＦ３２のイネーブル端子ＥＮの信号の論理和をイネーブル信号ＥＮＳとして出力する。イネーブル信号ＥＮＳは、図１５のイネーブル信号ＥＮＳ１〜ＥＮＳ４に対応する。
【００８７】
図１５において、セレクタ１５０２は、通常レジスタアドレスに応じて、イネーブル信号ＥＮＳ１〜ＥＮＳ４のいずれかを選択し、アクセスタイミング信号としてセレクタ１５０１に出力する。セレクタ１５０１は、ポーリングアクセス信号が１であり、アクセスタイミング信号が１の場合、ポーリング対象の周辺回路ＰＨ１〜ＰＨ４のステータスレジスタ３０５の値が変化した可能性があると判断し、２回目以降の読み出しアクセスのための「１」の信号ＲＥＱをバス２０５へ出力する。また、セレクタ１５０１は、ポーリングアクセス信号が１であり、アクセスタイミング信号が０の場合、ポーリング対象の周辺回路ＰＨ１〜ＰＨ４のステータスレジスタ３０５の値が変化した可能性がないと判断し、「０」の信号ＲＥＱをバス２０５へ出力する。ステータスレジスタ３０５の値が変化した可能性がないときは、バス２０５へ「０」の信号ＲＥＱを出力するので、無駄にステータスレジスタ３０５の読み出しアクセスを行うことを防ぐことができる。これにより、ポーリング回路２０２及びバス２０５の無駄な電力消費を抑え、ＤＭＡＣ２０６などの他にバス２０５を使用するモジュールとのバスアクセス競合を防ぐことができる。
【００８８】
以上のように、周辺回路ＰＨ１〜ＰＨ４は、それぞれ、ＣＰＵ２０１のリクエスト信号ＲＥＱに応じて、イネーブル端子ＥＮを有するステータスレジスタ３０５からリードデータを読み出す。ＲＥＱ信号生成部１００４は、例えば、周辺回路ＰＨ１のステータスレジスタ３０５のイネーブル端子ＥＮの信号が１になった場合に、周辺回路ＰＨ１に「１」のリクエスト信号ＲＥＱを出力する。なお、イネーブル端子ＥＮの信号は、「１」が活性化状態を示し、「０」が非活性化状態を示す。
【００８９】
具体的には、ステータスレジスタ３０５は、イネーブル端子ＥＮを有する複数のフリップフロップＦＦ１〜ＦＦ３２を有する。ＲＥＱ信号生成部１００４は、複数のフリップフロップＦＦ１〜ＦＦ３２のイネーブル端子ＥＮの信号のうちのいずれかの信号が１になった場合に、周辺回路ＰＨ１に「１」のリクエスト信号ＲＥＱを出力する。
【００９０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００９１】
１００  ワイヤレスセンサノード
１０１  全体制御部
１０２  センサ部
１０３  ＲＦ部
１０４  発電電源管理部
１０５  アンテナ
１０６  発電素子
２０１  中央処理装置（ＣＰＵ）
２０２  ポーリング回路
２０３  ＲＡＭ
２０４  割り込みコントローラ
２０５  バス
２０６  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）
ＰＨ１  第１の周辺回路
ＰＨ２  第２の周辺回路
ＰＨ３  第３の周辺回路
ＰＨ４  第４の周辺回路
【図１】
2015191279.tif 000003
【図２】
2015191279.tif 000004
【図３】
2015191279.tif 000005
【図４】
2015191279.tif 000006
【図５】
2015191279.tif 000007
【図６】
2015191279.tif 000008
【図７】
2015191279.tif 000009
【図８】
2015191279.tif 000010
【図９】
2015191279.tif 000011
【図１０】
2015191279.tif 000012
【図１１】
2015191279.tif 000013
【図１２】
2015191279.tif 000014
【図１３】
2015191279.tif 000015
【図１４】
2015191279.tif 000016
【図１５】
2015191279.tif 000017
【図１６】
2015191279.tif 000018