(57)【要約】【課題】ＣＰＵの負担を軽減し、一定でない周期で割り込み信号を繰り返し発生させるタイマー回路を提供する。【解決手段】計測すべき時間に応じたリロード値を設定し、その設定した前記リロード値に基づいてカウント動作を行うタイマー回路において、複数のリロード値を記憶するメモリと、前記複数のリロード値それぞれの前記メモリ上での格納先を示すリロード値アドレスを生成するリロード値アドレス生成回路と、前記リロード値アドレス生成回路において生成されたリロード値アドレスを参照して前記メモリから読み出された前記リロード値に基づいてカウント動作を行うカウンターと、前記リロード値アドレス生成回路における前記リロード値アドレスの更新、及び、前記メモリから前記カウンターへの前記リロード値の読み出しを制御するタイマー制御回路と、を有する。【選択図】図１
2008090613.tif 000002
【特許請求の範囲】
【請求項１】
計測すべき時間に応じたリロード値を設定し、その設定した前記リロード値に基づいてカウント動作を行うタイマー回路において、
複数のリロード値を記憶するメモリと、
前記複数のリロード値それぞれの前記メモリ上での格納先を示すリロード値アドレスを生成するリロード値アドレス生成回路と、
前記リロード値アドレス生成回路において生成されたリロード値アドレスを参照して前記メモリから読み出された前記リロード値に基づいてカウント動作を行うカウンターと、
前記リロード値アドレス生成回路における前記リロード値アドレスの更新、及び、前記メモリから前記カウンターへの前記リロード値の読み出しを制御するタイマー制御回路と、
を有することを特徴とするタイマー回路。
【請求項２】
請求項１に記載のタイマー回路と、所定の信号処理を行うプロセッサと、を備えた信号処理回路において、
前記タイマー回路は、
前記メモリから読み出された前記リロード値を格納するリロードレジスタを有し、
前記カウンターは、
前記リロードレジスタに格納された前記リロード値に基づいて前記カウント動作を行い、カウント値が前記リロード値に応じた時間に達したときに状態フラグ信号を出力し、
前記プロセッサは、
前記カウンターより出力された前記状態フラグ信号に応じて所定の処理を行うこと、
を特徴とする信号処理回路。
【請求項３】
請求項２に記載の信号処理回路において、
前記メモリは、
複数の前記リロード値を配列したリロード値テーブルを記憶しており、
前記リロード値アドレス生成回路は、
前記リロード値テーブルの第１のテーブルアドレスを生成すること、
を特徴とする信号処理回路。
【請求項４】
請求項２に記載の信号処理回路において、
前記メモリは、
複数の前記リロード値アドレスを配列したリロード値アドレステーブルを記憶しており、
前記リロード値アドレス生成回路は、
前記リロード値アドレステーブルの第２のテーブルアドレスを生成する第２のテーブルアドレス生成回路と、
前記第２のテーブルアドレス生成回路において生成された前記第２のテーブルアドレスを参照して読み出された前記リロード値アドレスを格納するリロード値アドレスレジスタと、
を有しており、
前記リロードレジスタは、
前記リロード値アドレスレジスタに格納された前記リロード値アドレスに基づいて前記リロード値を格納すること、
を特徴とする信号処理回路。
【請求項５】
請求項２に記載の信号処理回路において、
前記メモリは、
前記リロード値アドレスのリンクアドレスを配列したリンクアドレステーブルを記憶しており、
前記リロード値アドレス生成回路は、
前記リンクアドレステーブルの第３のテーブルアドレスを生成する第３のテーブルアドレス生成回路と、
前記第３のテーブルアドレス生成回路において生成された前記第３のテーブルアドレスを参照して前記リンクアドレスを読み出し、前記リンクアドレスに対応した前記リロード値アドレスへと変換するアドレス変換回路と、
を有することを特徴とする信号処理回路。
【請求項６】
請求項５に記載の信号処理回路において、
前記メモリは、
前記複数のリロード値をそれぞれ含んだ複数のデータ構造体を記憶しており、
前記リンクアドレステーブルは、
前記複数のデータ構造体それぞれの前記メモリ上での格納先を示すデータ構造体アドレスを配列したものであり、
前記アドレス変換回路は、
前記リンクアドレステーブルから読み出された前記データ構造体アドレスを格納するデータ構造体アドレスレジスタを有すること、
を特徴とする信号処理回路。
【請求項７】
請求項６に記載の信号処理回路において、
前記アドレス変換回路は、
前記データ構造体上での前記リロード値の格納先を示すオフセットアドレスを格納するオフセットアドレスレジスタを有しており、
前記データ構造体アドレスと前記オフセットアドレスを加算して前記リロード値アドレスを求めること、
を特徴とする信号処理回路。
【請求項８】
請求項６又は７に記載のタイマー回路において、
前記データ構造体は、タスクコントロールブロックであり、
前記データ構造体が含む前記リロード値は、
前記タスクコントロールブロックの管理対象タスクに割り当てられたタイムスライス値であること、
を特徴とする信号処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマー回路及びそれを備えた信号処理回路に関する。
【背景技術】
【０００２】
クロック信号のエッジをカウントすることで所定期間を計測するタイマー／カウンター回路（以下、「タイマー回路」と称する。）は、マイコンやＤＳＰ等の信号処理回路において各種タイミングを発生するために種々利用されている。例えば、マイコンには、ハードウェア割り込みの一種であるタイマー割り込みを実施するためのタイマー回路が通常設けられている。
【０００３】
図１２は、従来のマイコンが内蔵するタイマー回路の構成を示した図であり、図１３は、図１２に示すタイマー回路の主要信号の波形を示した図である。
【０００４】
カウンター４００は、ＣＰＵ５００と接続されて割り込み要求信号ＩＲＱを生成するタイマー回路を構成する。即ち、カウンター４００は、ＣＰＵ５００からリロード値（カウント初期値）ＲＶをロードして（図１３（ｃ）参照）、そのリロード値ＲＶからカウントダウンしていき、カウント値ＣＶ（図１３（ａ）参照）が‘０’となった時点で、ＣＰＵ５００に対して割り込み要求信号ＩＲＱ（図１３（ｂ）参照）を供給する。
【０００５】
ところで、カウンター４００は、割り込み要求信号ＩＲＱを一定周期で繰り返し発生させる場合、ＣＰＵ５００に対してタイマー割り込み要求ＩＱＲを供給する毎に、ＣＰＵ５００から新たなリロード値ＲＶをロードし（図１３（ｃ）参照）、その新たなリロード値ＲＶからカウントダウンを行う必要がある。
【０００６】
しかしながら、ＣＰＵ５００は、通常、他のプログラムが実行中等といった理由で割り込み禁止期間を設定しており、カウンター４００からの割り込み要求信号ＩＲＱに対して直ぐに応答することができない。即ち、カウンター４００は、割り込み要求信号ＩＲＱを周期的に繰り返し発生する場合、割り込み要求信号ＩＲＱの発生からＣＰＵ５００よりリロード値ＲＶをロードするまでの間、待ち時間ｄが生じてしまう。尚、割り込み禁止期間は時々刻々変化するので、この待ち時間ｄは一定とならず、ひいては、割り込み要求信号ＩＲＱの発生周期が一定とはならない。
【０００７】
そこで、従来のタイマー回路では、リロード値ＲＶを格納するリロードレジスタを設けておき、リロードレジスタに格納されたリロード値ＲＶをカウンターに設定する場合がある（例えば、以下に示す特許文献１を参照）。図１４は、リロードレジスタを設けた場合の従来のタイマー回路の構成を示した図であり、図１５は、図１４に示したタイマー回路の主要信号の波形を示した図である。
【０００８】
タイマー回路７０は、カウンター４００の他に、ＣＰＵ５００によって設定されるリロード値ＲＶを格納するリロードレジスタ４１０と、カウンター４００に設定されるリロード値ＲＶの切り替えを制御するタイマー制御回路４２０と、を有する。カウンター４００は、割り込み要求信号ＩＲＱを発生後、ＣＰＵ５００から直接的にリロード値ＲＶをロードするのではなく、カウンター制御部４２０からのロード信号ＬＤに応じて、リロードレジスタ４１０に予め格納しておいたリロード値ＲＶをロードする（図１５（ｂ）、（ｃ）参照）。この結果、カウンター４００は、ＣＰＵ５００の処理とは独立して、ロード信号ＬＤに応じてリロードレジスタ４１０からリロード値ＲＶを設定することが可能となるので、前述した待ち時間ｄは生じなくなり、また、割り込み要求信号ＩＲＱの発生周期は均一となる（図１５（ａ）、（ｂ）参照）。
【特許文献１】特開平５−８００８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、従来のリロードレジスタは、１種類のリロード値ＲＶのみを設定できる仕様となっている。また、リロードレジスタに格納されたリロード値ＲＶは、ＣＰＵのソフトウェア処理によって変更される。即ち、図１３や図１５に示したように、一定周期で割り込みを繰り返し発生させる必要がある場合には支障がない仕様といえる。
【００１０】
しかしながら、一定でない周期で割り込みを繰り返し発生させる必要がある場合には、ＣＰＵのソフトウェア処理によって新たなリロード値ＲＶを毎回リロードレジスタに設定する必要が生じる。従って、リロード値ＲＶの設定を頻繁に切り替えていく場合、ＣＰＵは、他のプログラム処理との兼ね合いで割り込み禁止期間を設定しているので、リロード値ＲＶの設定を切り替えていくに際し、遅延（オーバーヘッド）が生じていた。
【課題を解決するための手段】
【００１１】
前述した課題を解決するための主たる本発明は、計測すべき時間に応じたリロード値を設定し、その設定した前記リロード値に基づいてカウント動作を行うタイマー回路において、複数のリロード値を記憶するメモリと、前記複数のリロード値それぞれの前記メモリ上での格納先を示すリロード値アドレスを生成するリロード値アドレス生成回路と、前記リロード値アドレス生成回路において生成されたリロード値アドレスを参照して前記メモリから読み出された前記リロード値に基づいてカウント動作を行うカウンターと、前記リロード値アドレス生成回路における前記リロード値アドレスの更新、及び、前記メモリから前記カウンターへの前記リロード値の読み出しを制御するタイマー制御回路と、を有することとする。
【発明の効果】
【００１２】
ＣＰＵの負荷を軽減し、一定でない周期で割り込み信号を繰り返し発生させるタイマー回路を提供することができる。
【発明を実施するための最良の形態】
【００１３】
＜＜第１実施形態＞＞
図１は、本発明の第１実施形態に係るマイコンが内蔵若しくは外付けするタイマー／カウンター回路（以下、「タイマー回路」と称する）１０の構成を示した図である。
【００１４】
タイマー回路１０は、カウンター１００、第１のテーブルアドレス生成回路１１０、タイマー制御回路１２０を有し、メインメモリ２００及びＣＰＵ３００（本発明に係る『プロセッサ』）に接続して実施される。
【００１５】
カウンター１００は、リロード値ＲＶをカウント初期値としたダウンカウントを行っていき、カウント値ＣＶが‘０’となったとき、割り込み要求信号ＩＲＱやその他のステータスフラグを出力するダウンカウンターによって構成される。尚、カウンター１００は、ダウンカウンター以外にも、アップカウンターやアップダウンカウンターで構成されてもよい。例えば、アップカウンターの場合、リロード値ＲＶをカウント最終値として‘０’からアップカウントしていき、カウント値ＣＶが当該リロード値ＲＶとなったとき、割り込み要求信号ＩＲＱやその他のステータスフラグを出力する実施形態でもよい。
【００１６】
第１のテーブルアドレス生成回路１１０は、本発明に係る『リロード値アドレス生成回路』の一実施形態であり、複数のリロード値ＲＶそれぞれのメインメモリ２００上での格納先を示すリロード値アドレスＲＶＡを生成する。詳述すると、第１のテーブルアドレス生成回路１１０は、カウンター１００に設定すべきリロード値ＲＶが格納されたメインメモリ２００上のリロード値アドレスＲＶＡ、換言すると、メインメモリ２００に記憶された後述のリロード値テーブル２１０の第１のテーブルアドレスＲＶＡを巡回生成する。
【００１７】
尚、第１のテーブルアドレス生成回路１１０は、ＣＰＵ３００によって、リロード値テーブル２１０におけるテーブル先頭アドレスＳＡ及びテーブルサイズＴＢ又はテーブル末尾アドレスＥＡが初期設定される。この結果、第１のテーブルアドレス生成回路１１０は、メインメモリ２００上のリロード値テーブル２１０の位置並びに大きさを認識することができ、例えば、テーブル先頭アドレスＳＡからテーブル末尾アドレスＥＡに向けてエントリーサイズ分ごとにアドレスをインクリメント又はデクリメントすることによって、リロード値アドレスＲＶＡを巡回生成する。
【００１８】
また、第１のテーブルアドレス生成回路１１０は、自身が生成したリロード値アドレスＲＶＡがリロード値テーブル２１０のアドレス設定範囲を超えるか否かを判定し、アドレス設定範囲を超えた場合には、カウンター１００のカウント動作を終了させるか、あるいは、生成されたリロード値アドレスＲＶＡを初期値（テーブル先頭アドレスＳＡ又はテーブル末尾アドレスＥＡ）にリセットした上でカウンター１００のカウント動作を継続させる。即ち、リロード値アドレスＲＶＡがリロード値テーブル２１０のアドレス設定範囲を超える場合でも、カウンター１００のカウント動作を自動終了でき、カウンター１００を恒常的に使用し続けるようにする。
【００１９】
さらに、第１のテーブルアドレス生成回路１１０は、ＣＰＵ３００によって設定されたテーブル先頭アドレスＳＡ等の内容や、自身が生成したリロード値アドレスＲＶＡの内容が、オール０、オール１、奇数バイトアドレス又はメインメモリ２００の管理対象外のアドレス等といった無効アドレスとなる場合に、カウンター１００のカウント動作を終了させるか、あるいは、異常なリロード値アドレスＲＶＡを初期値（テーブル先頭アドレスＳＡ又はテーブル末尾アドレスＥＡ）にリセットした上でカウンター１００のカウント動作を継続させる。この結果、ＣＰＵ３００の設定やリロード値アドレスＲＶＡが無効アドレスとなる場合でも、カウンター１００のカウント動作を自動終了でき、カウンター１００を恒常的に使用し続けるようにする。
【００２０】
タイマー制御回路１２０は、カウンター１００のカウント動作を制御する回路である。具体的には、タイマー制御回路１２０は、カウンター１００から割り込み要求信号ＩＲＱが供給されたとき、第１のテーブルアドレス生成回路１１０及びカウンター１００に対して、新たなカウントダウン動作を行うべく、カウンター１００に対して新たなリロード値ＲＶを設定するためのロード信号ＬＤを供給する。また、タイマー制御回路１２０は、第１のテーブルアドレス生成回路１１０によって巡回生成されるリロード値アドレスＲＶＡを参照して、リロード値テーブル２１０にエントリーされた複数のリロード値ＲＶをエントリー順に読み出すための制御を行う。
【００２１】
メインメモリ２００は、データやプログラムを記憶するＲＡＭ等のメモリであり、ＣＰＵ３００によって直接読み書きされる。尚、メインメモリ２００以外に、キャッシュメモリや外部メモリを採用してもよいが、ＣＰＵ３００が高速アクセス可能なメインメモリ２００を採用する方が好適である。
【００２２】
また、メインメモリ２００は、一般のデータやプログラムを記憶する他に、リロード値テーブル２１０を記憶する。
【００２３】
リロード値テーブル２１０は、複数のリロード値ＲＶを、予め定めておいたエントリー順（読み出し順）に配列したテーブルである。例えば、リロード値アドレスＲＶＡ（ｎ−１）にはリロード値ＲＶ（ｎ−１）が格納され、リロード値アドレスＲＶＡ（ｎ）にはリロード値ＲＶ（ｎ）が格納され、リロード値アドレスＲＶＡ（ｎ＋１）にはリロード値ＲＶ（ｎ＋１）が格納される。尚、リロード値テーブル２１０内に複数エントリーされたリロード値ＲＶは、第１のテーブルアドレス生成回路１１０によって巡回生成されるリロード値アドレスＲＶＡによってエントリー順に読み出される。
【００２４】
図２は、タイマー回路１０の主要信号の波形を示した図である。  
カウンター１００がリロード値ＲＶ（ｎ−１）からカウントダウンを行っている最中に（図２（ａ）参照）、第１のテーブルアドレス生成回路１１０は、つぎにアクセスすべきリロード値アドレスＲＶＡ（ｎ）を生成する（図２（ｃ）参照）。そして、カウンター１００は、カウント値ＣＶが‘０’となったとき、即ち、リロード値ＲＶ（ｎ−１）に応じた計測すべき時間に達したとき、ＣＰＵ３００並びにタイマー制御回路１２０に対して、割り込み要求信号ＩＲＱを供給する（図２（ｂ）参照）。この結果、ＣＰＵ３００は、現在実行中のプログラムを中断して、所定の割り込み処理を行う。
【００２５】
一方、タイマー制御回路１２０は、割り込み要求信号ＩＲＱに応じて第１のテーブルアドレス生成回路１１０並びにカウンター１００に対してロード信号ＬＤを供給する（図２（ｅ））。カウンター１００は、ロード信号ＬＤに応じて、テーブルアドレスＲＶＡ（ｎ）を参照して、リロード値テーブル２１０からつぎに設定すべきリロード値ＲＶ（ｎ）を読み出す（図２（ｄ）参照）。
【００２６】
第１のテーブルアドレス生成回路１１０は、タイマー制御回路１２０からロード信号ＬＤが供給されると、現在のテーブルアドレスＲＶＡ（ｎ）を、つぎにエントリーされたテーブルアドレスＲＶＡ（ｎ＋１）へと更新する（図２（ｃ）参照）。一方、カウンター１００は、タイマー制御回路１２０からロード信号ＬＤが供給されると、リロード値テーブル２１０から読み出された新たなリロード値ＲＶ（ｎ）を設定した上で、当該リロード値ＲＶ（ｎ）に基づいた新たなカウントダウンを開始する（図２（ａ）参照）。そして、カウンター１００は、カウント値ＣＶが‘０’となったとき、即ち、リロード値ＲＶ（ｎ）に応じた計測すべき時間に達したとき、ＣＰＵ３００並びにタイマー制御回路１２０に対して再び割り込み要求信号ＩＲＱを供給する（図２（ｂ）参照）。以後、前述と同様の処理が繰り返し行われる。
【００２７】
以上、本発明の第１実施形態によれば、タイマー回路１０は、第１のテーブルアドレス生成回路１１０の初期設定後では、ＣＰＵ３００の処理とは独立して、一定でない周期でタイマー割り込みを繰り返し生じさせることが可能となる。即ち、ＣＰＵ３００の処理とは独立して、カウンター１００に設定されるべき複数のリロード値ＲＶを支障なく切り替えていくことが可能となる。
【００２８】
＜＜第２実施形態＞＞
図３は、本発明の第２実施形態に係るタイマー回路２０の構成を示した図である。  
本発明の第１実施形態と相違する点は、タイマー回路２０が、メインメモリ２００から読み出したリロード値ＲＶをカウンター１００に設定する前に一旦格納しておくリロードレジスタ１３０を備えた点にある。
【００２９】
即ち、本発明の第１実施形態では、図２（ａ）に示すように、カウンター１００は、割り込み要求信号ＩＲＱを発生した後、ＣＰＵ３００やその他ＤＭＡ等がメインメモリ２００をアクセスしており、メインメモリ２００から遅滞なくつぎのリロード値ＲＶの読み出しを行えないので、新たなリロード値ＲＶに基づいたカウント動作の開始に際して、待ち時間ｄ（オーバーヘッド）が生じる可能性がある。そこで、タイマー回路２０は、リロードレジスタ１３０をさらに備えることで、当該待ち時間ｄの解消を図っている。
【００３０】
図４は、タイマー回路２０の主要信号の波形を示した図である。  
例えば、カウンター１００がリロード値ＲＶ（ｎ−１）からカウントダウンを行っている過程において（図４（ａ）参照）、リロードレジスタ１３０にはつぎに設定すべきリロード値ＲＶ（ｎ）が格納されている（図４（ｄ）参照）。また、第１のテーブルアドレス生成回路１１０は、リロード値ＲＶ（ｎ）のつぎに設定すべきリロード値ＲＶ（ｎ＋１）を格納するリロード値アドレスＲＶＡ（ｎ＋１）を生成している（図４（ｃ）参照）。
【００３１】
かかる場合に、カウンター１００は、カウント値ＣＶが‘０’となったとき、リロード値ＲＶ（ｎ−１）に応じた計測すべき時間に達したとき、ＣＰＵ３００並びにタイマー制御回路１２０に対して、割り込み要求信号ＩＲＱを供給する（図４（ｂ）参照）。この結果、ＣＰＵ３００は、現在実行中のプログラムを中断して所定の割り込み処理を行う。また、タイマー制御回路１２０は、割り込み要求信号ＩＲＱが供給された時点で、第１のテーブルアドレス生成回路１１０、リロードレジスタ１３０並びにカウンター１００に対してロード信号ＬＤを供給する（図４（ｆ）参照）。
【００３２】
カウンター１００は、当該ロード信号ＬＤが供給された時点で、リロードレジスタ１３０に格納されているつぎに設定すべきリロード値ＲＶ（ｎ）を読み出して（図４（ｅ）参照）、当該リロード値ＲＶ（ｎ）から新たなカウントダウンを開始する（図４（ａ）参照）。一方、タイマー制御回路１２０は、当該ロード信号ＬＤが供給された時点におけるリロード値アドレスＲＶＡ（ｎ＋１）を参照して（図４（ｃ）参照）、リロード値テーブル２１０からリロード値ＲＶ（ｎ＋１）を読み出してリロードレジスタ１３０の内容を更新する（図４（ｄ）参照）。そして、リロードレジスタ１３０の内容が更新された後は、前述と同様の処理が繰り返し行われる。
【００３３】
以上、本発明の第２実施形態では、本発明の第１実施形態のように、カウンター１００がメインメモリ２００からリロード値ＲＶをロードするのではなく、カウンター１００がリロードレジスタ１３０からリロード値ＲＶをロードする。この結果、カウンター１００は、割り込み要求信号ＩＲＱを発生した後、ＣＰＵ３００等がメインメモリ２００をアクセスしている場合であっても、メインメモリ２００をアクセスすることなく、リロードレジスタ１３０からつぎに設定すべきリロード値ＲＶを読み出して新たなカウントダウンを遅滞なく開始することが可能となる。
【００３４】
＜＜第３実施形態＞＞
図５は、本発明の第３実施形態に係るタイマー回路３０の構成を示した図である。  
本発明の第１及び第２実施形態と相違する点は、メインメモリ２００上に、複数のリロード値アドレスＲＶＡを所定のエントリー順（読み出し順）に配列したリロード値アドレステーブル２２０を設定した点である。尚、リロード値アドレステーブル２２０は、本発明のためにメインメモリ２００上に新たに設定されてもよいが、マイコン用のリアルタイムＯＳ（例えば、μＩＴＲＯＮ、組込みＬｉｎｕｘ等）がタスク管理等のために予め用意しているシステム管理テーブルを有効に活用することが好ましい。
【００３５】
また、本発明の第３実施形態では、タイマー回路３０は、リロード値アドレステーブル２２０に対応して、第２のテーブルアドレス生成回路１４０、リロード値アドレスレジスタ１４５を備える。
【００３６】
第２のテーブルアドレス生成回路１４０は、リロード値アドレステーブル２２０にエントリーされたリロード値アドレスＲＶＡのポインタのアドレスＲＰＴＡ、換言すると、リロード値アドレステーブル２２０の第２のテーブルアドレスＲＰＴＡを巡回生成する。尚、第２のテーブルアドレス生成回路１４０は、本発明の第１及び第２実施形態における第１のテーブルアドレス生成回路１１０と対比して、第２のテーブルアドレスＲＰＴＡを生成する点以外は、機能面で同一である。
【００３７】
リロード値アドレスレジスタ１４５は、リロード値アドレステーブル２２０から読み出したリロード値アドレスＲＶＡを格納するレジスタである。タイマー制御回路１２０は、リロード値アドレスレジスタ１４５に格納されたリロード値アドレスＲＶＡを参照して、メインメモリ２００上に分散配置されたリロード値記憶領域２３０ａ乃至２３０ｃの中から所望のリロード値ＲＶを読み出してリロードレジスタ１３０へと格納する。
【００３８】
図６は、タイマー回路３０の主要信号の波形を示した図である。  
カウンター１００が、リロード値ＲＶ（ｎ−１）からカウントダウンを行っている最中に（図６（ａ）参照）、リロードレジスタ１３０にはつぎに設定すべきリロード値ＲＶ（ｎ）が格納されている（図６（ｆ）参照）。また、リロード値アドレスレジスタ１４５には、当該リロード値ＲＶ（ｎ）が格納されたリロード値記憶領域２３０ｂの先頭アドレス（リロード値アドレスＲＶＡ（ｎ））が格納されている（図６（ｄ）参照）。さらに、第２のテーブルアドレス生成回路１４０は、リロード値ＲＶ（ｎ）のつぎに設定すべきリロード値ＲＶ（ｎ＋１）に対応した第２のテーブルアドレスＲＰＴＡ（ｎ＋１）を生成している（図６（ｃ）参照）。
【００３９】
かかる場合に、カウンター１００は、カウント値ＣＶが‘０’となったとき、ＣＰＵ３００並びにタイマー制御回路１２０に対して、割り込み要求信号ＩＲＱを供給する（図６（ｂ）参照）。この結果、ＣＰＵ３００は、現在実行中のプログラムを中断する。また、タイマー制御回路１２０は、割り込み要求信号ＩＲＱが供給された時点で、第２のテーブルアドレス生成回路１４０、リロード値アドレスレジスタ１４５、リロードレジスタ１３０並びにカウンター１００に対して、ロード信号ＬＤを供給する（図６（ｈ）参照）。
【００４０】
カウンター１００は、当該ロード信号ＬＤが供給された時点で、リロードレジスタ１３０に予め格納しているつぎのリロード値ＲＶ（ｎ）を読み出して（図６（ｆ）参照）、当該リロード値ＲＶ（ｎ）から新たなカウントダウンを遅滞なく開始する（図６（ａ）参照）。
【００４１】
一方、タイマー制御回路１２０は、当該ロード信号ＬＤが供給された時点における第２のテーブルアドレスＲＰＴＡ（ｎ＋１）を参照して（図６（ｃ）参照）、リロード値アドレステーブル２２０からリロード値アドレスＲＶＡ（ｎ＋１）を読み出して、リロード値アドレスレジスタ１４５の内容を更新する（図６（ｄ）参照）。さらに、タイマー制御回路１２０は、リロード値アドレスレジスタ１４５に格納されたリロード値アドレスＲＶＡ（ｎ＋１）を参照して、リロード値記憶領域２３０ｃからリロード値ＲＶ（ｎ＋１）を読み出してリロードレジスタ１３０の内容を更新する（図６（ｆ）参照）。そして、リロードレジスタ１３０の内容が更新された後では、前述と同様の処理が繰り返し行われる。
【００４２】
以上、本発明の第３実施形態では、メインメモリ２００に記憶されたリロード値アドレステーブル２２０によって、リロード値記憶領域２３０ａ乃至２３０ｃの先頭アドレス（リロード値アドレスＲＶＡ）が管理されている。従って、本発明の第３実施形態では、複数のリロード値ＲＶが、順不同で不規則な場所に分散配置されるような場合であっても、カウンター１００のカウント動作が支障なく行われることになる。
【００４３】
また、本発明の第２実施形態と同様に、カウンター１００は、割り込み要求信号ＩＲＱを発生後に、ＣＰＵ３００等がメインメモリ２００をアクセスしている場合であっても、メインメモリ２００をアクセスすることなく、リロードレジスタ１３０からつぎに設定すべきリロード値ＲＶを読み出して新たなカウントダウンを開始することが可能となる。
【００４４】
＜＜第４実施形態＞＞
図７は、本発明の第４実施形態に係るタイマー回路５０の構成を示した図である。  
本発明の第１乃至第３実施形態と相違する点は、リスト構造のリンクアドレスＬＡを遡って参照していくことで、最終的にリロード値ＲＶを読み出す場合を想定している。そこで、本発明の第４実施形態では、メインメモリ２００上に、複数のリロード値アドレスＲＶＡのリンク起点に対応する複数のリンクアドレスＬＡをエントリー順（読み出し順）に配列したリンクアドレステーブル２６０を設定する。尚、リンクアドレステーブル２６０は、本発明のために新たに設定されてもよいが、本発明の第３実施形態に係るリロード値アドレステーブル２２０と同様に、マイコン用のリアルタイムＯＳが予め用意しているシステム管理テーブルを有効に活用することが好ましい。
【００４５】
また、本発明の第４実施形態では、タイマー回路４０は、リンクアドレステーブル２６０に対応して、第３のテーブルアドレス生成回路１８０、アドレス変換回路１８５を備える。
【００４６】
第３のテーブルアドレス生成回路１８０は、リンクアドレステーブル２６０にエントリーされたリンクアドレスＬＡのポインタアドレスＬＰＴＡ、換言すると、リンクアドレステーブル２６０の第３のテーブルアドレスを巡回生成する。尚、第３のテーブルアドレス生成回路１６０は、本発明の第１及び第２実施形態における第１のテーブルアドレス生成回路１１０と対比して、第３のテーブルアドレスＬＰＴＡを生成する点以外は、機能面で同一である。
【００４７】
アドレス変換回路１８５は、リンクアドレステーブル２６０から読み出したリンクアドレスＬＡを、リロード値ＲＶが格納された領域（例えば、図７に示すリロード値記憶領域２８０ａ、２８０ｂ）の先頭アドレス（リロード値アドレスＲＶＡ）に変換する。尚、図７に示す場合では、アドレス変換回路１８５は、リンクアドレスＬＡのリンク先（例えば、図７に示すリロード値アドレス記憶領域２７０ａ、２７０ｂ）からリロード値アドレスＲＶＡを読み出すことによってアドレス変換を行う。尚、リンクアドレスＬＡを２回以上参照してリロードアドレスＲＶＡを求める実施形態でもよい。
【００４８】
図８は、タイマー回路５０の主要信号の波形を示した図である。  
カウンター１００が、リロード値ＲＶ（ｎ−１）からカウントダウンを行っている最中に（図８（ａ）参照）、アドレス変換回路１８５は、リンクアドレステーブル２６０から読み出されたリンクアドレスＬＡ（ｎ）が供給され（図８（ｄ）参照）、さらに、リロード値アドレス記憶領域２７０ｂから読み出されたリロード値アドレスＲＶＡ（ｎ）が供給されている（図８（ｅ）参照）。そして、リロードレジスタ１３０には、当該リロード値アドレスＲＶＡ（ｎ）を参照して、つぎに設定すべきリロード値ＲＶ（ｎ）が格納されている（図８（ｇ）参照）。また、第３のテーブルアドレス生成回路１８０は、リロード値ＲＶ（ｎ）のさらにつぎに設定すべきリロード値ＲＶ（ｎ＋１）に対する第３のテーブルアドレスＬＰＴＡ（ｎ＋１）を生成している（図８（ｃ）参照）。
【００４９】
かかる場合に、カウンター１００は、カウント値ＣＶが‘０’となったとき、リロード値ＲＶ（ｎ−１）に応じた計測すべき時間に達したとき、ＣＰＵ３００並びにタイマー制御回路１２０に対して、割り込み要求信号ＩＲＱを供給する（図８（ｂ）参照）。この結果、ＣＰＵ３００は、現在実行中のプログラムを中断して所定の割り込み処理を行う。また、タイマー制御回路１２０は、割り込み要求信号ＩＲＱが供給された時点で、第３のテーブルアドレス生成回路１８０、アドレス変換回路１８５、リロードレジスタ１３０並びにカウンター１００に対して、ロード信号ＬＤを遅滞なく供給する（図８（ｉ）参照）。
【００５０】
カウンター１００は、当該ロード信号ＬＤが供給された時点で、リロードレジスタ１３０に予め格納しているつぎのリロード値ＲＶ（ｎ）を読み出して（図８（ｉ）参照）、当該リロード値ＲＶ（ｎ）から新たなカウントダウンを開始する（図８（ａ）参照）。
【００５１】
以上、本発明の第４実施形態は、メインメモリ２００上でリスト構造のリンクアドレスＬＡをたどっていき最終的にリロード値ＲＶを読み出す場合に有効に機能する。
【００５２】
＜＜第５実施形態＞＞
図９は、本発明の第５実施形態に係るタイマー回路４０の構成を示した図である。  
本発明の第１乃至第４実施形態と相違する点、特に本発明の第４実施形態と相違する点は、リロード値ＲＶが、例えば、マルチタスクＯＳ環境下でのタスクコントロールブロックＴＣＢ等といったデータ構造体（例えば、図７に示すデータ構造体２５０ａ乃至２５０ｃ）の一要素として含まれている場合である。尚、当該データ構造体は、実使用上、本発明の第３実施形態に係るリロード値記憶領域２３０ａ乃至２３０ｃと同様に、メインメモリ２００上で順不同で不規則な場所に分散配置されている場合とする。
【００５３】
そこで、本発明の第５実施形態では、メインメモリ２００上に、データ構造体２５０ａ乃至２５０ｃの先頭アドレス（データ構造体アドレスＤＳＡ）をエントリー順（読み出し順）に配列したデータ構造体アドレステーブル２４０を設定する。尚、データ構造体アドレスＤＳＡは、リロード値アドレスＲＶＡのリンクアドレスの一態様であるので、データ構造体アドレステーブル２４０は、リンクアドレステーブル２６０の一態様である。また、データ構造体アドレステーブル２４０は、本発明のために新たに設定されてもよいが、本発明の第３実施形態に係るリロード値アドレステーブル２２０と同様に、マイコン用のリアルタイムＯＳが予め用意しているシステム管理テーブルを有効に活用することが好ましい。
【００５４】
また、本発明の第５実施形態では、タイマー回路４０は、データ構造体アドレステーブル２４０に対応して、第４のテーブルアドレス生成回路１６０、データ構造体アドレスレジスタ１７２、オフセットアドレスレジスタ１７４、オフセット加算器１７６を備える。
【００５５】
第４のテーブルアドレス生成回路１６０は、データ構造体アドレステーブル２４０にエントリーされたデータ構造体アドレスＤＳＡのポインタアドレスＤＳＴＡ、換言すると、データ構造体アドレステーブル２４０の第４のテーブルアドレスＤＳＴＡを巡回生成する。尚、第４のテーブルアドレス生成回路１６０は、本発明の第３実施形態に係る第３のテーブルアドレス生成回路１８０の一態様である。
【００５６】
アドレス変換回路１７０は、データ構造体アドレスレジスタ１７２、オフセットアドレスレジスタ１７４及びオフセット加算器１７６を有し、メインメモリ２００に記憶されたデータ構造体アドレステーブル２４０からデータ構造体アドレスＤＳＡを読み出して、その読み出したデータ構造体アドレスＤＳＡに対応したリロード値アドレスＲＶＡへと変換する。
【００５７】
データ構造体アドレスレジスタ１７２は、データ構造体アドレステーブル２４０から読み出したデータ構造体アドレスＤＳＡを格納するレジスタである。
【００５８】
オフセットアドレスレジスタ１７４は、各データ構造体２５０ａ乃至２５０ｃの先頭アドレス（データ構造体アドレスＤＳＡ）からリロード値ＲＶの記憶先（リロード値アドレスＲＶＡ）までの相対的なアドレス、すなわちオフセットアドレスＯＡを格納するレジスタである。尚、本実施形態では、オフセットアドレスＯＡは、データ構造体２５０ａ乃至２５０ｃにおいて一律値としている。
【００５９】
オフセット加算器１７６は、データ構造体アドレステーブル２４０から読み出したデータ構造体アドレスＤＳＡと、オフセットアドレスレジスタ１７４に格納されたオフセットアドレスＯＡと、を加算してリロード値アドレスＲＶＡを生成する。従って、タイマー制御回路１２０は、オフセット加算器１７５より出力されるリロード値アドレスＲＶＡを参照して、データ構造体２５０ａ乃至２５０ｃからリロード値ＲＶを読み出してリロードレジスタ１３０へと格納する。
【００６０】
図１０は、タイマー回路４０の主要信号の波形を示した図である。  
カウンター１００が、データ構造体２５０ａに含まれるリロード値ＲＶ（ｎ−１）からカウントダウンを行っている場合（図１０（ａ）参照）、リロードレジスタ１３０にはつぎに設定すべきリロード値ＲＶ（ｎ）が格納されている（図１０（ｈ）参照）。また、データ構造体アドレスレジスタ１７２には、つぎに設定すべきリロード値ＲＶ（ｎ）を含むデータ構造体２５０ｂの先頭アドレス（データ構造体アドレス）ＤＳＡ（ｎ）が格納されている（図１０（ｄ）参照）。第４のテーブルアドレス生成回路１６０は、さらにつぎに設定すべきリロード値ＲＶ（ｎ＋１）を含むデータ構造体２５０ｃのポインタを格納する第４のテーブルアドレスＤＳＴＡ（ｎ＋１）を生成している（図１０（ｃ）参照）。
【００６１】
かかる場合に、カウンター１００は、カウント値ＣＶが‘０’となったとき、即ち、リロード値ＲＶ（ｎ−１）に応じた計測すべき時間に達したとき、ＣＰＵ３００並びにタイマー制御回路１２０に対して、割り込み要求信号ＩＲＱを供給する（図１０（ｂ）参照）。この結果、ＣＰＵ３００は、現在実行中のプログラムを中断する。また、タイマー制御回路１２０は、割り込み要求信号ＩＲＱが供給された時点で、第４のテーブルアドレス生成回路１６０、データ構造体アドレスレジスタ１７２、リロードレジスタ１３０並びにカウンター１００に対して、ロード信号ＬＤを供給する（図１０（ｊ）参照）。
【００６２】
カウンター１００は、当該ロード信号ＬＤが供給された時点で、リロードレジスタ１３０に予め格納しているつぎのリロード値ＲＶ（ｎ）を読み出して（図１０（ｉ）参照）、当該リロード値ＲＶ（ｎ）から新たなカウントダウンを遅滞なく開始する（図１０（ａ）参照）。
【００６３】
一方、データ構造体アドレスレジスタ１７２は、当該ロード信号ＬＤが供給された時点のテーブルアドレスＤＳＴＡ（ｎ＋１）を参照して（図１０（ｃ）参照）、メインメモリ２００上のデータ構造体アドレステーブル２４０の中からデータ構造体アドレスＤＳＡ（ｎ＋１）を読み出して内容を更新する（図１０（ｄ）参照）。
【００６４】
また、リロードレジスタ１３０は、データ構造体アドレスレジスタ１７２に格納されたデータ構造体アドレスＤＳＡ（ｎ＋１）と、オフセットアドレスレジスタ１７４に格納されたオフセットアドレスＯＡと、をオフセット加算器１７６により加算して生成したリロード値アドレスＲＶＡ（ｎ＋１）に基づいて（図１０（ｇ）参照）、データ構造体２５０ｃの中からリロード値ＲＶ（ｎ＋１）を読み出して格納する（図１０（ｈ）参照）。
【００６５】
以上、本発明の第５実施形態では、メインメモリ２００上に、データ構造体の一要素としてリロード値ＲＶが記憶されている場合であっても、カウンター１００のカウント動作を支障なく行うことができる。また、リアルタイムＯＳ環境下で、前述したデータ構造体をタスクコントロールブロックＴＣＢとし、タスクコントロールブロックＴＣＢが含む一のリロード値ＲＶを、当該タスクコントロールブロックＴＣＢの管理対象タスクに割り当てられたタイムスライス値（処理優先度に該当する）とした場合、リアルタイム／マルチタスクシステムを容易に構築することができる。尚、本発明の第４実施形態に基づいたリアルタイム／マルチタスクシステムでは、タスク切り替え（ディスパッチ）に要するオーバーヘッド時間が短縮可能となる。
【００６６】
＜＜その他の実施形態＞＞
以上、本発明の実施形態について説明したが、前述した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るとともに、本発明にはその等価物も含まれる。
【００６７】
例えば、タイマー回路１０、２０、３０、４０、５０は、前述したタイマー割り込み用途の他に、マイコンやＤＳＰ等の信号処理回路において各種タイミングを発生するために種々利用可能である。例えば、ワンショットタイマー、オンディレイタイマー、オフディレイタイマー等に利用可能である。また、タイマー回路１０、２０、３０、４０、５０は、ＰＷＭ（Pulse Width Modulation）を含む任意パルス発生回路にも利用することができる。
【００６８】
図１１は、本発明の第１実施形態に係るタイマー回路１０を用いた場合の任意パルス発生回路６０の構成を示した図である。  
ＣＰＵ３００に接続されたタイマー回路１０と相違する点は、任意パルス発生回路６０は、カウンター１００の出力（カウント値ＣＶ）に応じてＴフリップフロップ７００（トグル型）が駆動する点である。尚、メモリ６００上には、本発明の第１実施形態と同様に、複数のリロード値ＲＶを所定の読み出し順にエントリーしたリロード値テーブル６１０が設定されている。従って、カウンター１００は、リロード値テーブル６１０からエントリー順に読み出したリロード値ＲＶに基づいて、一定でない周期でダウンカウントを繰り返し行う。  
以上、任意パルス発生回路６０は、複数の異なるリロード値ＲＶが再設定されたカウンター１００のカウント値ＣＶを、Ｔフリップフロップ７００に入力するので、パルス信号のパルス幅を任意に変更することが可能となる。
【図面の簡単な説明】
【００６９】
【図１】本発明の第１実施形態に係るタイマー回路の構成を示す図である。
【図２】本発明の第１実施形態に係るタイマー回路の主要信号の波形を示した図である。
【図３】本発明の第２実施形態に係るタイマー回路の構成を示す図である。
【図４】本発明の第２実施形態に係るタイマー回路の主要信号の波形を示した図である。
【図５】本発明の第３実施形態に係るタイマー回路の構成を示す図である。
【図６】本発明の第３実施形態に係るタイマー回路の主要信号の波形を示した図である。
【図７】本発明の第４実施形態に係るタイマー回路の構成を示す図である。
【図８】本発明の第４実施形態に係るタイマー回路の主要信号の波形を示した図である。
【図９】本発明の第５実施形態に係るタイマー回路の構成を示す図である。
【図１０】本発明の第５実施形態に係るタイマー回路の主要信号の波形を示した図である。
【図１１】本発明に係る任意パルス発生回路の構成を示す図である。
【図１２】従来のタイマー回路の構成を示した図である。
【図１３】従来のタイマー回路の主要信号の波形を示した図である
【図１４】従来のその他のタイマー回路の構成を示す図である。
【図１５】従来のその他のタイマー回路の主要信号の波形を示した図である。
【符号の説明】
【００７０】
１０、２０、３０、４０、５０、７０  タイマー回路
６０  任意パルス発生回路
１００、４００  カウンター
１１０  第１のテーブルアドレス生成回路
１２０、４２０  タイマー制御回路
１３０、４１０  リロードレジスタ
１４０  第２のテーブルアドレス生成回路
１４５  リロード値アドレスレジスタ
１６０  第４のテーブルアドレス生成回路
１７２  データ構造体アドレスレジスタ
１７４  オフセットアドレスレジスタ
１７６  オフセット加算器
１８０  第３のテーブルアドレス生成回路
１７０、１８５  アドレス変換回路
２００  メインメモリ
２１０、６１０  リロード値テーブル
２２０  リロード値アドレステーブル
２３０ａ〜２３０ｃ、２８０ａ、２８０ｂ  リロード値記憶領域
２４０  データ構造体アドレステーブル
２５０ａ〜２５０ｃ  データ構造体
２６０  リンクアドレステーブル
２７０ａ、２７０ｂ  リロード値アドレス記憶領域
３００、５００  ＣＰＵ
６００  メモリ
７００  Ｔフリップフロップ
【図１】
2008090613.tif 000003
【図２】
2008090613.tif 000004
【図３】
2008090613.tif 000005
【図４】
2008090613.tif 000006
【図５】
2008090613.tif 000007
【図６】
2008090613.tif 000008
【図７】
2008090613.tif 000009
【図８】
2008090613.tif 000010
【図９】
2008090613.tif 000011
【図１０】
2008090613.tif 000012
【図１１】
2008090613.tif 000013
【図１２】
2008090613.tif 000014
【図１３】
2008090613.tif 000015
【図１４】
2008090613.tif 000016
【図１５】
2008090613.tif 000017
【手続補正書】
【提出日】平成19年9月4日(2007.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
請求項６又は７に記載の信号処理回路において、
前記データ構造体は、タスクコントロールブロックであり、
前記データ構造体が含む前記リロード値は、
前記タスクコントロールブロックの管理対象タスクに割り当てられたタイムスライス値であること、
を特徴とする信号処理回路。