(57)【特許請求の範囲】
【請求項１】
複数の子局との間でデータ通信を行う親局で用いられて、タイマカウント長やタイマ間隔が異なるタイマをハードウェアで実現するタイマ回路であって、
指定された初期値から指定された精度で、ダウンカウンタによりカウント値をカウントダウンし、当該カウント値がゼロになった時点で満了信号を出力する複数のタイマインスタンスと、
タイマイベント入力に含まれるタイマ種別情報と子局情報に基づいて、これらタイマ種別情報と子局情報の組に対して予め割り当てられているタイマインスタンスを１つ選択するインスタンス選択テーブルと、
前記インスタンス選択テーブルで選択されたタイマインスタンスに対して有効信号を出力する第１のＤＥＭＵＸと、
前記満了信号を出力したタイマインスタンスに対して予め割り当てられているタイムアウトイベントの出力先を選択するイベント選択テーブルと、
前記イベント選択テーブルで選択された出力先となる出力先回路へ、タイマ満了を示すタイムアウトイベントを出力する第２のＤＥＭＵＸと備え、
前記タイマインスタンスは、前記第１のＤＥＭＵＸからの有効信号に応じて、前記タイマイベント入力に含まれるコマンドの初期値情報で指定された初期値を前記ダウンカウンタのカウント値に設定し、当該コマンドの精度情報で指定された精度で当該カウント値のカウントダウンを開始する
ことを特徴とするタイマ回路。
【請求項２】
請求項１に記載のタイマ回路において、
前記タイマ種別情報に対して予め割り当てられているコマンドを選択するコマンドテーブルをさらに備え、
前記タイマインスタンスは、前記第１のＤＥＭＵＸからの有効信号に応じてカウントダウンを開始する際、前記タイマイベント入力に含まれるコマンドの初期値情報および精度情報に代えて、前記コマンドテーブルから出力されたコマンドの初期値情報で指定された初期値を前記ダウンカウンタのカウント値に設定し、前記コマンドテーブルから出力されたコマンドの精度情報で指定された精度で当該カウント値のカウントダウンを開始する
ことを特徴とするタイマ回路。
【請求項３】
請求項１または請求項２に記載のタイマ回路において、
前記タイマインスタンスは、前記ダウンカウンタのビット幅が異なる複数種のタイマインスタンスからなることを特徴とするタイマ回路。
【請求項４】
請求項１〜請求項３のいずれかに記載のタイマ回路において、
前記インスタンス選択テーブルは、前記タイマインスタンスの使用状況に応じた外部からのテーブル書き換え指示に応じて、前記タイマ種別情報および子局情報の組と前記タイマインスタンスとの対応関係を動的に変更することを特徴とするタイマ回路。
【請求項５】
請求項１〜請求項４のいずれかに記載のタイマ回路において、
前記タイマインスタンスは、前記コマンドのループモード情報で指定された動作モードがワンショットタイマである場合には、前記カウント値がゼロになった時点で前記満了信号を出力し、当該動作モードがループタイマである場合には、当該コマンドで指定されたループ数情報が示す回数だけ、前記初期値からゼロまでのカウントダウンを繰り返した時点で前記満了信号を出力することを特徴とするタイマ回路。
【請求項６】
請求項１〜請求項５のいずれかに記載のタイマ回路において、
前記タイマインスタンスは、前記コマンドの連結モード情報に基づいて、連結タイマを構成する上位桁タイマまたは下位桁タイマとして動作し、
前記上位桁タイマとして動作する場合には、前記下位桁タイマからの連結制御信号ごとに、指定された初期値からゼロまでカウンタ値をカウントダウンし、
前記下位桁タイマとして動作する場合には、指定された初期値から指定された精度でカウント値をカウントダウンし、前記上位桁タイマのカウント値がゼロ以外の場合には、当該カウント値がゼロになるごとに当該上位桁タイマに対して連結制御信号を出力するとともに、最大カウント値からカウントダウンを再開し、当該下位桁タイマおよび当該上位桁タイマのカウント値が両方ともゼロになった時点で前記満了信号を出力する
ことを特徴とするタイマ回路。
【請求項７】
請求項１〜請求項６のいずれかに記載のタイマ回路において、
外部から入力された前記親局に対する前記子局の接続状況の変化に応じて、前記インスタンス選択テーブルに記録されている、これら子局に対する前記タイマインスタンスの割り当て状況を示すタイマインスタンス割当情報を更新する割当更新部と、
前記インスタンス選択テーブルのタイマインスタンス割当情報に基づいて、前記タイマインスタンスのうち前記子局に対して新たに割り当てられたタイマインスタンスに対してクロックゲートの解除を指示し、前記タイマインスタンスのうち前記子局に対する割り当てが終了したタイマインスタンスに対してクロックゲートの設定を指示するクロックゲート制御部と
をさらに備えることを特徴とするタイマ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマカウント長やタイマ間隔が異なるタイマをハードウェアで実現するタイマ回路技術に関する。
【背景技術】
【０００２】
親局と複数子局とで構成する通信システムの１つにＰＯＮ（Passive Optical Network）システムがある。ＰＯＮシステムは、局舎に設置されるＯＬＴ（Optical Line Terminal：局側装置）を親局とするとともに、各ユーザ宅に設置されるＯＮＵ（Optical Network Unit：加入者側装置）を子局として、これらＯＬＴとＯＮＵとの間で光信号を送受信することによりデータ通信を行うシステムである。
【０００３】
図１４は、一般的なＰＯＮシステムの構成例である。図１４において、このＰＯＮシステムは、外部ネットワークと接続されたＯＬＴと、ｍ（ｍは２以上の整数）個のＯＮＵと、ＯＬＴとこれらＯＮＵとを１：ｍに接続する光ファイバおよび光スプリッタとにより構成されている。ここで、ＰＯＮシステムでは、各ＯＮＵから送信される信号が、光スプリッタで束ねられてＯＬＴに届く。そのため、信号が衝突しないように、各ＯＮＵは時分割多重方式でＯＬＴと通信を行う。
【０００４】
したがって、各ＯＮＵの上り信号の衝突が起こらないように、ＩＥＥＥ８０２．３およびＩＥＥＥ８０２．３ａｖでは各ＯＮＵが上り信号を送信するタイミングを制御するプロトコルとしてＭＰＣＰ（Multi-point Control Protocol）を規定している。ＯＬＴは、このＭＰＣＰに基づいて定期的にディスカバリプロセスを実施し、新たに接続されたＯＮＵとのリンクを確立する。また、ＩＥＥＥ８０２．３ではＯＬＴとＯＮＵ間の保守管理を行う規格としてＯＡＭ（Operations，Administration，Maintenance）も規定している。ＯＬＴは、ＯＡＭに基づいて定期的にＯＮＵに異常がないか等を点検する。
【０００５】
このようなＭＰＣＰやＯＡＭを実現するために、ＯＬＴ内部のＬＳＩでは、リンク確立・維持のためのＭＰＣＰ用タイマ、保守・管理のためのＯＡＭ用タイマなど複数種別のタイマを実装しなければならない。精度を必要とするタイマは基本的にハードウェアで実装される。タイマの起動時間はＯＮＵ毎に異なるため、ＬＳＩ内部では（タイマ種別数）×（ＯＮＵ最大接続台数）分のタイマ回路を持たなければならず、タイマの種別や１ＯＬＴ当たりの最大接続ＯＮＵ数が多くなればなるほど、タイマの回路規模は増大し、消費電力が大きくなる。
【０００６】
上記のような課題に対し、従来、ＰＯＮシステムにおいて２種類のタイマが排他的に使用されることを利用し、１種類のタイマを共用して用いる技術が提案されている（特許文献１）。この技術によれば、ＭＰＣＰ処理において、ＯＬＴがＯＮＵとのリンク確立中に、Register ACKフレームの待ち受け期間をカウントし、その待受け期間内にRegister ACKをＯＮＵから受信しないときにタイムアウトを通知するRegister ACKタイマと、ＯＬＴがＯＮＵとのリンク確立後に、ＯＮＵに送信するGateフレームの送信間隔をカウントし、その送信間隔が規定値を越えた時にタイムアウトを通知するGate periodicタイマを共用タイマで実現する。リンク確立中は共用タイマをRegister ACKタイマとして機能させ、リンク確立後はGate periodicタイマとして機能させる。こうすることにより、本来持つべきタイマの個数が１／２となるので、回路面積と消費電力の削減が実現可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−２２３０８５公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来技術では、カウント初期値（タイマカウント長）やカウント精度（カウント間隔）が等しい２種類の決まったタイマしか共有できないため、ＬＳＩ設計後に新たなタイマ実装が要求された場合には対応できず、ソフトウェアで実装しなければならないという問題点があった。
【０００９】
近年、ＬＳＩ設計後に新たな種別のタイマ実装を要求されることがある。例えば２００９年に制定されたＩＥＥＥ８０２．３ａｖの後に制定された１９０４．１ＳＩＥＰＯＮでは、ＯＮＵのスリープ機能が規定されており、スリープ機能を実現するためには更なるタイマの実装が必要となる。このようなタイマをソフトウェアで実装する場合、ソフトウェアで実装されているタイマを周期的に監視し、タイムアウトしているか否かを判定するため、ＯＬＴでの処理負荷が大きくなる。したがって、接続ＯＮＵ数が多い場合、周期監視の負荷が多大となり、所望の性能が実現できない場合が発生する。
【００１０】
本発明はこのような課題を解決するためのものであり、要求されうるタイマ種別分の回路をタイマ出力ごとに予め実装しておくことなく、外部入力に応じて種別の異なる複数のタイマをハードウェアで実現できるタイマ回路技術を提供することを目的としている。
【課題を解決するための手段】
【００１１】
このような目的を達成するために、本発明にかかるタイマ回路は、複数の子局との間でデータ通信を行う親局で用いられて、タイマカウント長やタイマ間隔が異なるタイマをハードウェアで実現するタイマ回路であって、指定された初期値から指定された精度で、ダウンカウンタによりカウント値をカウントダウンし、当該カウント値がゼロになった時点で満了信号を出力する複数のタイマインスタンスと、タイマイベント入力に含まれるタイマ種別情報と子局情報に基づいて、これらタイマ種別情報と子局情報の組に対して予め割り当てられているタイマインスタンスを１つ選択するインスタンス選択テーブルと、前記インスタンス選択テーブルで選択されたタイマインスタンスに対して有効信号を出力する第１のＤＥＭＵＸと、前記満了信号を出力したタイマインスタンスに対して予め割り当てられているタイムアウトイベントの出力先を選択するイベント選択テーブルと、前記イベント選択テーブルで選択された出力先となる出力先回路へ、タイマ満了を示すタイムアウトイベントを出力する第２のＤＥＭＵＸと備え、前記タイマインスタンスは、前記第１のＤＥＭＵＸからの有効信号に応じて、前記タイマイベント入力に含まれるコマンドの初期値情報で指定された初期値を前記ダウンカウンタのカウント値に設定し、当該コマンドの精度情報で指定された精度で当該カウント値のカウントダウンを開始するようにしたものである。
【００１２】
また、本発明にかかる上記タイマ回路の一構成例は、前記タイマ種別情報に対して予め割り当てられているコマンドを選択するコマンドテーブルをさらに備え、前記タイマインスタンスは、前記第１のＤＥＭＵＸからの有効信号に応じてカウントダウンを開始する際、前記タイマイベント入力に含まれるコマンドの初期値情報および精度情報に代えて、前記コマンドテーブルから出力されたコマンドの初期値情報で指定された初期値を前記ダウンカウンタのカウント値に設定し、前記コマンドテーブルから出力されたコマンドの精度情報で指定された精度で当該カウント値のカウントダウンを開始するようにしたものである。
【００１３】
また、本発明にかかる上記タイマ回路の一構成例は、前記タイマインスタンスが、前記ダウンカウンタのビット幅が異なる複数種のタイマインスタンスからなるものである。
【００１４】
また、本発明にかかる上記タイマ回路の一構成例は、前記インスタンス選択テーブルが、前記タイマインスタンスの使用状況に応じた外部からのテーブル書き換え指示に応じて、前記タイマ種別情報および子局情報の組と前記タイマインスタンスとの対応関係を動的に変更するようにしたものである。
【００１５】
また、本発明にかかる上記タイマ回路の一構成例は、前記タイマインスタンスが、前記コマンドのループモード情報で指定された動作モードがワンショットタイマである場合には、前記カウント値がゼロになった時点で前記満了信号を出力し、当該動作モードがループタイマである場合には、当該コマンドで指定されたループ数情報が示す回数だけ、前記初期値からゼロまでのカウントダウンを繰り返した時点で前記満了信号を出力するようにしたものである。
【００１６】
また、本発明にかかる上記タイマ回路の一構成例は、前記タイマインスタンスが、前記コマンドの連結モード情報に基づいて、連結タイマを構成する上位桁タイマまたは下位桁タイマとして動作し、前記上位桁タイマとして動作する場合には、前記下位桁タイマからの連結制御信号ごとに、指定された初期値からゼロまでカウンタ値をカウントダウンし、前記下位桁タイマとして動作する場合には、指定された初期値から指定された精度でカウント値をカウントダウンし、前記上位桁タイマのカウント値がゼロ以外の場合には、当該カウント値がゼロになるごとに当該上位桁タイマに対して連結制御信号を出力するとともに、最大カウント値からカウントダウンを再開し、当該下位桁タイマおよび当該上位桁タイマのカウント値が両方ともゼロになった時点で前記満了信号を出力するようにしたものである。
【００１７】
また、本発明にかかる上記タイマ回路の一構成例は、外部から入力された前記親局に対する前記子局の接続状況の変化に応じて、前記インスタンス選択テーブルに記録されている、これら子局に対する前記タイマインスタンスの割り当て状況を示すタイマインスタンス割当情報を更新する割当更新部と、前記インスタンス選択テーブルのタイマインスタンス割当情報に基づいて、前記タイマインスタンスのうち前記子局に対して新たに割り当てられたタイマインスタンスに対してクロックゲートの解除を指示し、前記タイマインスタンスのうち前記子局に対する割り当てが終了したタイマインスタンスに対してクロックゲートの設定を指示するクロックゲート制御部とをさらに備えている。
【発明の効果】
【００１８】
本発明によれば、各タイマインスタンスにおいて、実際にカウント動作を行うカウンタを、所望のタイマカウント長（初期値）やカウント間隔（精度）に基づいて汎用的にカウント動作させることができ、異なるタイマ種別や異なる子局で、これにタイマインスタンスを共用することが可能となる。したがって、並行動作させる可能性のあるタイマ数の最大値分だけタイマインスタンスを設けておけばよく、要求されうるタイマ種別分の回路をタイマ出力ごとに予め実装しておく必要がなくなるため、回路規模を大幅に削減できる。また、ＬＳＩ設計後であっても、外部入力に応じて種別の異なる複数のタイマをハードウェアで実現することができ、極めて汎用性の高いタイマ回路を実現することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施の形態にかかるタイマ回路の構成を示すブロック図である。
【図２】第１の実施の形態にかかるインスタンス選択テーブルの構成例である。
【図３】イベント選択テーブルの構成例である。
【図４】第１の実施の形態にかかるタイマインスタンスの構成を示すブロック図である。
【図５】第１の実施の形態にかかる他のタイマ回路の構成（コマンドテーブル）を示すブロック図である。
【図６】第２の実施の形態にかかるタイマ回路の構成を示すブロック図である。
【図７】第２の実施の形態にかかるタイマインスタンスの構成を示すブロック図である。
【図８】第３の実施の形態にかかるタイマ回路の構成を示すブロック図である。
【図９】第３の実施の形態にかかるタイマインスタンスの構成を示すブロック図である。
【図１０】上位桁タイマおよび下位桁タイマのカウント動作例を示す説明図である。
【図１１】第４の実施の形態にかかるタイマ回路の構成を示すブロック図である。
【図１２】第４の実施の形態にかかるインスタンス選択テーブルの構成例である。
【図１３】第４の実施の形態にかかる割当更新処理を示すフローチャートである。
【図１４】一般的なＰＯＮシステムの構成例である。
【発明を実施するための形態】
【００２０】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかるタイマ回路１０について説明する。図１は、第１の実施の形態にかかるタイマ回路の構成を示すブロック図である。
【００２１】
本発明にかかるタイマ回路１０は、例えばＰＯＮシステムのＯＬＴ（親局）で用いられて、当該ＯＬＴに接続されたＯＮＵ（子局）とのデータ通信ごとに、タイマカウント長（初期値）やカウント間隔（精度）の異なるタイマを、上位回路（図示せず）から指示されたタイマイベント入力に応じてハードウェアにより実現し、これらを並列的に動作させる機能を有している。以下では、タイマ回路１０がＰＯＮシステムのＯＬＴで用いられる場合を例として説明するが、これに限定されるものではない。例えば、多くの子局との間でデータ通信を行う一般的な親局（通信装置）など、異なる種別のタイマを複数並列的に動作させる装置にも適用可能である。
【００２２】
［タイマ回路］
次に、図１を参照して、本実施の形態にかかるタイマ回路１０の構成について説明する。このタイマ回路１０には、主な回路部として、インスタンス選択テーブルＴＢ１、ＤＥＭＵＸ１（デマルチプレクサ）、Ｎ（Ｎは２以上の整数）個のタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮ、イベント選択テーブルＴＢ２、およびＤＥＭＵＸ２（デマルチプレクサ）が設けられている。
【００２３】
インスタンス選択テーブルＴＢ１は、全体してタイマ種別情報および子局情報の組み合わせを、タイマインスタンス番号に変換する変換テーブル（半導体メモリ）からなり、タイマイベント入力で指定されたタイマ種別情報と子局情報をキーとして、Ｎ個のタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮのうちから、当該タイマイベント入力で指定されたタイマの実現に用いるタイマインスタンスを選択し、選択したタイマインスタンスを示すタイマインスタンス番号を出力する機能を有している。インスタンス選択テーブルＴＢ１の内容は予め設定されているものとする。
【００２４】
図２は、第１の実施の形態にかかるインスタンス選択テーブルの構成例である。ここでは、タイマ種別情報および子局情報の組（アドレス）ごとに、当該組で用いるタイマを実現するタイマインスタンスのタイマインスタンス番号（データ）が登録されている。子局情報については、予め各ＯＮＵに割り当てたＯＮＵ番号でもよく、ＯＮＵとのデータ通信に用いるＬＬＩＤ（Logical Link ID）を用いてもよい。この際、Ｋ（Ｋは２以上の整数）個の子局のそれぞれに対して多くとも２つのタイマしか割り当てない場合、割り当てるタイマ種別にかかわらず、タイマインスタンスの数Ｎは最大でＮ＝２Ｋとなる。
【００２５】
なお、インスタンス選択テーブルＴＢ１の内容については、予め静的に設定されているものとして説明したが、タイマインスタンス＃ｎの使用状況に応じて、その内容を動的に書き換えるようにしてもよい。この際、タイマインスタンス＃ｎの使用状況については、上位回路から入力されたものを用いてもよく、タイマ回路１０内部で使用状況を把握する回路部を設け、これら使用状況に応じてインスタンス選択テーブルＴＢ１の内容を書き換えればよい。このようにして、インスタンス選択テーブルＴＢ１の内容を動的に書き換えることにより、タイマインスタンス＃ｎの利用効率を高めることができ、回路規模を削減できる。
【００２６】
ＤＥＭＵＸ１は、インスタンス選択テーブルＴＢ１から出力されたタイマインスタンス番号に応じて、対応するタイマインスタンスを有効可するための有効信号（ｖａｌｉｄ）を出力する機能を有している。
【００２７】
タイマインスタンス＃ｎ（ｎは１〜Ｎの整数）は、Ｘ（Ｘは２以上の整数）ｂｉｔのダウンカウンタからなり、タイマイベント入力で指定されたコマンドに含まれる初期値情報、精度情報、クリア情報などの各種パラメータに基づいて、初期値情報に対応するカウント初期値（タイマカウント長）から、精度情報に対応する精度（カウント間隔）の単位で順次カウントダウンし、カウント値が「０」に到達した時点でカウントダウンを停止して満了信号＃ｎを出力する機能を有している。なお、コマンドは、すべてのタイマインスタンスへ同時に分配されるが、有効信号＃ｎが「１」となったいずれか１つのタイマインスタンス＃ｎのみが、そのコマンドを取得することになる。
【００２８】
イベント選択テーブルＴＢ２は、タイマインスタンス＃ｎから出力された満了信号＃ｎを、イベント出力先および出力内容に変換する変換テーブル（半導体メモリ）からなり、満了信号＃ｎをキーとして、複数のイベント出力先および出力内容のうちから、タイムアウト時に出力するイベントのイベント出力先および出力内容を選択出力する機能を有している。イベント選択テーブルＴＢ２の内容は、上位回路から予め書き換えられるものとする。これにより、タイマイベント入力でタイマを起動するごとに、そのイベント出力先や出力内容を変更することができ、極めて柔軟なタイマ回路を実現できる。
【００２９】
図３は、イベント選択テーブルの構成例である。ここでは、満了信号＃ｎの出力元であるタイマインスタンス＃ｎのタイマインスタンス番号（アドレス）ごとに、イベント出力先と出力内容との組（データ）が登録されている。出力内容としては、タイムアウト発生を示すタイミング情報があるが、イベント出力をＣＰＵでの処理に用いる場合には、タイマ識別情報や子局情報など、タイムアウトしたタイマを特定するための識別情報を示す出力してもよい。なお、すべてのタイマインスタンスで、出力内容が一意に特定される場合、イベント選択テーブルＴＢ２の出力内容を省くこともできる。
【００３０】
なお、イベント選択テーブルＴＢ２の内容については、外部からの書き換え指示に応じて動的に書き換えられるものとして説明したが、予め静的に設定しておくようにしてもよい。例えば、タイマインスタンスの使用用途が予め固定化されている場合には、動的に書き換える必要はなく、静的な設定内容で十分である。
【００３１】
ＤＥＭＵＸ２は、イベント選択テーブルＴＢ２から出力されたイベント出力先および出力内容に応じて、タイマ満了を示すイベント出力信号を指定された出力先回路（図示せず）へ出力する機能を有している。ＯＬＴの場合、出力先回路として、例えばステートマシン等があげられるがこれに限定されるものではない。
【００３２】
［タイマインスタンス］
次に、図４を参照して、本実施の形態にかかるタイマインスタンス＃ｎについて説明する。図４は、第１の実施の形態にかかるタイマインスタンスの構成を示すブロック図である。
【００３３】
このタイマインスタンス＃ｎには、主な回路部として、ダウンカウンタＤＣＮＴ、セレクタＳＥＬ１、セレクタＳＥＬ２、ラッチＬＣ１、および出力回路ＯＵＴが設けられている。
【００３４】
ダウンカウンタＤＣＮＴは、全体としてＸ（Ｘは２以上の整数）ｂｉｔのダウンカウンタからなり、ＬＤ端子に入力された有効信号＃ｎが「１」（有効）に変化した場合、ＩＮＩＴ端子に入力されたカウント初期値を内部のカウント値に初期値として設定し、ＣＮＴ端子に入力された精度値（カウント間隔）で、カウント値を順次カウントダウンするとともに、カウントダウン中のカウント値をＱ端子から出力する機能と、カウント値が「０」に到達した時点でカウントダウンを停止する機能とを有している。
【００３５】
また、ダウンカウンタＤＣＮＴは、ＣＬＲ端子に入力されたクリア情報＃ｎが「１」（クリアあり）示す場合、カウント値を強制的に「０」に初期化してカウントダウンを停止する機能とを有している。クリア情報＃ｎとして「１」が入力される例としては、あるイベントがタイマ満了前に終了し、タイマを動作させ続ける必要がなくなった時などが挙げられる。この際、クリア情報は、上位装置からタイマ種別情報および子局情報とともに、タイマイベント入力で入力され、これらタイマ種別情報および子局情報に基づきインスタンス選択テーブルＴＢ１から出力された有効信号＃ｎがＬＤ端子に入力されたダウンカウンタＤＣＮＴのみがカウントダウンを停止することになる。
【００３６】
なお、各ダウンカウンタＤＣＮＴのビット幅を統一する必要はなく、ダウンカウンタＤＣＮＴのビット幅が異なる複数種のタイマインスタンスを設けてもよい。これにより、最大カウント長が異なるタイマインスタンスを持つ、より柔軟性の高いタイマ回路を実現できる。
【００３７】
セレクタＳＥＬ１は、一般的なセレクタ回路からなり、タイマイベント入力で指定されたコマンドに含まれる初期値情報＃ｎに基づいて、予め用意されている初期値候補のうちからいずれか１つを選択して、ダウンカウンタＤＣＮＴのＩＮＩＴ端子へカウント初期値として出力する機能を有している。
【００３８】
セレクタＳＥＬ２は、一般的なセレクタ回路からなり、タイマイベント入力で指定されたコマンドに含まれる精度情報＃ｎに基づいて、予め用意されている精度候補のうちからいずれか１つを選択して、ダウンカウンタＤＣＮＴのＣＮＴ端子へカウント間隔として出力する機能を有している。
【００３９】
ラッチＬＣ１は、一般的なラッチ回路からなり、タイマイベント入力で指定されたコマンドに含まれる精度情報＃ｎを、有効信号＃ｎに基づきラッチしてＳＥＬ２へ出力する機能を有している。ダウンカウンタＤＣＮＴでカウントダウン動作中は、精度（カウント間隔）を固定しておく必要があるため、このＬＣ１でＳＥＬ２に入力される精度情報＃ｎをカウントダウン開始時にラッチしている。
【００４０】
出力回路ＯＵＴは、一般的な論理回路からなり、ダウンカウンタＤＣＮＴのＱ端子から出力されるカウント値と、タイマイベント入力で指定されたコマンドに含まれるクリア情報＃ｎとに基づいて、満了信号＃ｎの出力を制御する機能を有している。ここでは、カウント値が「０」（Ｑ＝０：ダウンカウント満了）であり、かつ、クリア情報＃ｎが「０」（ＣＬＲ＝０：クリアなし）の場合、出力回路ＯＵＴから満了信号＃ｎが出力される。
【００４１】
［第１の実施の形態の動作］
次に、図１を参照して、本実施の形態にかかるタイマ回路１０の動作について詳細に説明する。
上位装置からタイマ回路１０に入力されるタイマイベント入力には、起動すべきタイマに関するタイマ種別情報、子局情報、およびコマンドが含まれている。また、コマンドには、起動すべきタイマに関する初期値情報、精度情報、およびタイマを強制的に停止するか否かを指定するクリア情報が含まれている。
【００４２】
インスタンス選択テーブルＴＢ１は、タイマイベント入力で指定されたタイマ種別情報と子局情報をキーとして、Ｎ個のタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮのうちから、当該タイマイベント入力で指定されたタイマの実現に用いるタイマインスタンスを選択し、選択したタイマインスタンスを示すタイマインスタンス番号ｎを出力する。
ＤＥＭＵＸ１は、インスタンス選択テーブルＴＢ１から出力されたタイマインスタンス番号ｎに応じて、対応するタイマインスタンス＃ｎを有効可するための有効信号＃ｎを出力する。
【００４３】
タイマイベント入力で指定されたコマンドの初期値情報、精度情報、およびクリア情報は、各タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮに入力され、このうちＤＥＭＵＸ１からの有効信号＃ｎで有効可されたタイマインスタンス＃ｎが、これら初期値情報＃ｎ、精度情報＃ｎ、およびクリア情報＃ｎを取得して、初期値情報＃ｎに対応するカウント初期値（タイマカウント長）から、精度情報＃ｎに対応する精度（カウント間隔）の単位で順次カウントダウンし、カウント値が「０」に到達した時点でカウントダウンを停止して満了信号＃ｎを出力する。
【００４４】
イベント選択テーブルＴＢ２は、タイマインスタンス＃ｎからの満了信号＃ｎをキーとして、複数のイベント出力先および出力内容のうちから、満了信号＃ｎに応じたイベントのイベント出力先および出力内容を選択し、ＤＥＭＵＸ２へ出力する。
ＤＥＭＵＸ２は、イベント選択テーブルＴＢ２から出力されたイベント出力先および出力内容に応じて、タイマ満了を示すイベント出力信号を指定された出力先回路へ出力する。
【００４５】
これら変換テーブル＃２とＤＥＭＵＸ＃２により、タイマインスタンス＃ｎのタイムアウト情報を任意の出力先回路に対して、各々規定される所定の通知フォーマットに従って通知することが可能となり、汎用性が増す。上記の一連の動作により、外部から指定されたタイマイベントを実現し、外部ブロックへとイベント終了通知が可能となる。
【００４６】
次に、図４を参照して、タイマインスタンスの動作について詳細に説明する。
ＬＤ端子に入力されたＤＥＭＵＸ１からの有効信号＃ｎが「１」（有効）に変化した場合、ＩＮＩＴ端子に入力されたカウント初期値を内部のカウント値に初期値として設定し、ＣＮＴ端子に入力された精度（カウント間隔）で、カウント値のカウントダウンを開始する。
【００４７】
この際、ＩＮＩＴ端子には、タイマイベント入力で指定されたコマンド＃ｎの初期値情報＃ｎにより、初期値候補のうちからＳＥＬ１で選択されたカウント初期値が入力されているものとする。
また、ＣＮＴ端子には、タイマイベント入力で指定されたコマンド＃ｎの精度情報＃ｎにより、精度候補のうちからＳＥＬ２で選択された精度値が入力されているものとする。
【００４８】
精度候補は、候補ごとに異なる間隔でパルス「１」を出力するイネーブル信号であり、所要のカウント間隔ごとに精度候補を用意することで、広範なカウント範囲のカウント動作を実行できる。例えば、１秒間隔での１０００カウントと、１ミリ秒間隔での１０００カウントは精度の選択をそれぞれ１秒、１ミリ秒として初期値は双方とも１０００の設定となる。カウントの精度は、カウンタが動作中に変動することはないため、コマンド＃ｎ入力時の精度情報＃ｎの値がＬＣ１で保持されている。
【００４９】
このようにして、タイマインスタンス＃ｎは、カウントダウンを実行し、カウント値が「０」に到達した時点でカウントダウンを停止する。この際、タイマインスタンス＃ｎでのカウント動作を、カウント初期値からのカウントダウン動作とすることで、カウンタ満了値を０に固定することができるため、カウント満了を検出するためのカウンタ満了値を記憶しておく回路構成を省くことができる。
【００５０】
出力回路ＯＵＴは、クリア情報＃ｎが「０」（ＣＬＲ＝０：クリアなし）の場合、カウントダウン実行時にタイマインスタンス＃ｎから順次出力されるカウント値が「０」（Ｑ＝０：ダウンカウント満了）となった時点で、満了信号＃ｎを出力する。
【００５１】
［コマンドテーブル］
次に、図５を参照して、本実施の形態にかかるタイマ回路１０において、コマンドテーブルを用いた構成例について説明する。図５は、第１の実施の形態にかかる他のタイマ回路の構成（コマンドテーブル）を示すブロック図である。
【００５２】
図１では、タイマインスタンス＃ｎに入力される初期値情報および精度情報が、タイマイベント入力に含まれるコマンドで指定される場合を例として説明したが、これに限定されるものではない。例えば、図５に示すように、コマンドテーブルＴＢ３を設け、タイマ種別情報に対して予め割り当てられているコマンドをコマンドテーブルＴＢ３から出力し、このコマンドで指定される初期値情報および精度情報をタイマインスタンス＃ｎへ入力するようにしてもよい。
【００５３】
コマンドテーブルＴＢ３は、タイマ種別情報（アドレス）ごとに、初期値情報および精度情報を含むコマンド（データ）が登録されているテーブル（半導体メモリ）である。
これにより、タイマインスタンス＃ｎは、ＤＥＭＵＸ１からの有効信号＃ｎに応じてカウントダウンを開始する際、コマンドテーブルＴＢ３から出力されたコマンドの初期値情報で指定された初期値をダウンカウンタＤＣＮＴのカウント値に設定し、コマンドテーブルＴＢ３から出力されたコマンドの精度情報で指定された精度でカウント値のカウントダウンを開始する。
【００５４】
したがって、タイマイベント入力に含まれるコマンドで、初期値情報および精度情報を個別に設定する必要がなくなる。このため、タイマ起動時に必要となるパラメータ数を削減できるとともに、コマンド長さらにはタイマイベント入力長を短縮することができ、上位回路側の処理負担を軽減することが可能となる。
【００５５】
［第１の実施の形態の効果］
このように、本実施の形態は、指定された初期値から指定された精度で、ダウンカウンタＤＣＮＴによりカウント値をカウントダウンし、当該カウント値がゼロになった時点で満了信号を出力するタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを複数備え、これらタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮは、タイマイベント入力に含まれるタイマ種別情報と子局情報に基づきインスタンス選択テーブルＴＢ１から出力された有効信号に応じて、タイマイベント入力に含まれるコマンドの初期値情報で指定された初期値から、当該コマンドの精度情報で指定された精度でカウントダウンを開始し、カウント値がゼロになった時点で満了信号を出力し、当該満了信号を出力したタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮに基づきイベント選択テーブルＴＢ２により選択された出力先に対して、ＤＥＭＵＸ２からタイマ満了を示すイベントを出力するようにしたものである。
【００５６】
これにより、各タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮにおいて、実際にカウント動作を行うカウンタを、所望のタイマカウント長（初期値）やカウント間隔（精度）に基づいて汎用的にカウント動作させることができ、異なるタイマ種別や異なる子局で、これらタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを共用することが可能となる。したがって、並行動作させる可能性のあるタイマ数の最大値分だけタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを設けておけばよく、要求されうるタイマ種別分の回路をタイマ出力ごとに予め実装しておく必要がなくなるため、回路規模を大幅に削減できる。また、外部入力に応じて種別の異なる複数のタイマをハードウェアで実現することができ、極めて汎用性の高いタイマ回路を実現することが可能となる。
【００５７】
一般的には、タイマ回路の構成としては、タイマを１つだけ使用し、複数のタイムアウト値を保持するテーブルを逐次スキャンしてタイマ値との一致を検査する構成も考えられるが、この構成では、同時に発生すべきタイムアウトイベントを正確に検知できない。また、タイムアウト値を個別にレジスタ保持する構成では、タイムアウトイベントは同時発生できるが、回路規模が大きくなる。
これに対し、本実施の形態によれば、複数のタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮが同時に動作するため、タイムアウトイベントを同時に発生させることができるとともに、タイムアウト値を記憶するための付加回路を必要としないため、回路規模も増加しない。
【００５８】
また、本実施の形態において、タイマ種別情報に対して予め割り当てられているコマンドを選択するコマンドテーブルＴＢ３をさらに設け、タイマインスタンス＃ｎが、ＤＥＭＵＸ１からの有効信号＃ｎに応じてカウントダウンを開始する際、タイマイベント入力に含まれるコマンドの初期値情報および精度情報に代えて、コマンドテーブルＴＢ３から出力されたコマンドの初期値情報で指定された初期値をダウンカウンタＤＣＮＴのカウント値に設定し、コマンドテーブルＴＢ３から出力されたコマンドの精度情報で指定された精度で当該カウント値のカウントダウンを開始するようにしてもよい。
【００５９】
これにより、タイマイベント入力に含まれるコマンドで、初期値情報および精度情報を個別に設定する必要がなくなる。このため、タイマ起動時に必要となるパラメータ数を削減できるとともに、コマンド長さらにはタイマイベント入力長を短縮することができ、上位回路側の処理負担を軽減することが可能となる。
【００６０】
また、本実施の形態において、タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮとして、ダウンカウンタＤＣＮＴのビット幅が異なる複数種のタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを設けてもよい。これにより、最大カウント長が異なるタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを持つ、より柔軟性の高いタイマ回路１０を実現できる。
【００６１】
また、本実施の形態において、インスタンス選択テーブルＴＢ１が、タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮの使用状況に応じた外部からのテーブル書き換え指示に応じて、タイマ種別情報および子局情報の組とタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮとの対応関係を動的に変更するようにしてもよい。これにより、タイマイベント入力でタイマを起動するごとに、そのイベント出力先や出力内容を変更することができ、極めて柔軟なタイマ回路を実現できる。したがって、タイマ回路１０を含むＬＳＩを設計した後に外部から書き換えることができ、後から新しいタイマ種別を追加することができる。また、排他的に用いることが可能な複数種別のタイマに対し、１つのタイマインスタンス＃ｎを割り当てることができるため、それぞれ独立にタイマ回路を実装した場合と比較して回路規模や消費電力を削減することが可能となる。
【００６２】
［第２の実施の形態］
次に、図６を参照して、本発明の第２の実施の形態にかかるタイマ回路１０について説明する。図６は、第２の実施の形態にかかるタイマ回路の構成を示すブロック図である。
第１の実施の形態では、コマンドとして初期値と精度を与えることにより様々な種別のワンショットタイマを実現する場合を例として説明した。本実施の形態では、上記に加え、コマンドとしてループモード情報とループ数情報を与えることで、初期値と精度の異なる複数のループタイマとワンショットタイマを実現し、よりタイマ回路１０の柔軟性を高める場合について説明する。
【００６３】
図６において、第１の実施の形態の構成との差分は、外部から入力されるコマンドに、該当タイマインスタンス＃ｎをループタイマにするか否かのモード指定をするループモード情報と、ループタイマにする場合は何ループでタイムアウトイベントを発生させるかを指定するループ数情報を含んでいる点である。したがって、本実施の形態にかかるタイマ回路１０全体の基本動作は第１の実施の形態と同様であるが、コマンドにループモード情報とループ数情報を加えることによって、タイマインスタンス＃ｎ内部の構成と動作が異なる。
【００６４】
すなわち、本実施の形態にかかるタイマインスタンス＃ｎは、コマンドのループモード情報で指定された動作モードがワンショットタイマである場合には、カウント値がゼロになった時点で満了信号を出力する機能と、当該動作モードがループタイマである場合には、当該コマンドで指定されたループ数情報が示す回数だけ、初期値からゼロまでのカウントダウンを繰り返した時点で満了信号を出力する機能とを有している。
【００６５】
［タイマインスタンス］
図７は、第２の実施の形態にかかるタイマインスタンスの構成を示すブロック図である。
このタイマインスタンス＃ｎには、第１の実施の形態の構成に、初期値情報を保持するラッチＬＣ２と、ループモード情報ＬＭを保持するラッチＬＣ３と、ループ数情報で指定されたループ数だけダウンカウンタＤＣＮＴをループ動作させるループ制御回路ＬＰとが追加されている。また、出力回路ＯＵＴには、ダウンカウンタＤＣＮＴのカウンタ値が「０」になった場合に、指定されたループモード情報ＬＭに応じてタイムアップを示す満了信号＃ｎまたは１ループ分のカウントダウン満了を示すループ有効信号＃ｎのいずれかを出力する機能が追加されている。
【００６６】
［第２の実施の形態の動作］
ＤＥＭＵＸ１から有効信号＃ｎが入力され、ループ制御回路ＬＰの論理和回路ＯＲを介して、この有効信号＃１がダウンカウンタＤＣＮＴに入力された場合、ダウンカウンタＤＣＮＴは、タイマ初期値をＩＮＩＴ端子から取得して内部のカウンタ値に設定し、ＣＮＴ端子からの精度値に基づきカウント値をカウントダウンをする。この際、ループ制御回路ＬＰにおいて、有効信号＃ｎによりセレクタＳＥＬ３がコマンドより指定されたループ数情報を選択し、このループ数情報が現在ループ数としてラッチＬＣ４で保持される。
【００６７】
この後、ダウンカウンタＤＣＮＴでのカウントダウン動作が進んで、カウント値が「０」となった時点で、ＣＬＲ端子のクリア情報が「０」を示し、ＬＭ端子のループモードが「０」すなわちワンショットタイマに設定されていた場合は、第１の実施の形態と同様にタイムアウトとなり、出力回路ＯＵＴから満了信号＃ｎが出力される。
【００６８】
一方、カウント値が「０」となった時点で、ＣＬＲ端子のクリア情報が「０」を示し、ループモードが「１」すなわちループタイマに設定されていた場合、出力回路ＯＵＴからループ有効信号＃ｎがＯＲを介してダウンカウンタＤＣＮＴに再セットされ、再びタイマ初期値から精度単位でカウントダウンが開始される。この際、ループモードが「１」であることから、ダウンカウンタＤＣＮＴは、前回使用したタイマ初期値をカウンタ値にセットする。
【００６９】
また、ループ制御回路ＬＰでは、ラッチＬＣ４の出力すなわち現在ループ数が「０」でない場合、現在ループ数から「１」だけ減算した残りループ数が、ＳＥＬ３を介してＬＣ４に入力されているため、出力回路ＯＵＴからのループ有効信号＃ｎがＯＲを介してＬＣ４に入力された時点で、残りループ数が新たな現在ループ数として保持される。
【００７０】
このようにして、ＬＣ４で保持している現在ループ数が「０」になるまで、ダウンカウンタＤＣＮＴでカウントダウンが繰り返され、ＬＣ４で保持している現在ループ数が「０」になった時点で、ループ制御回路ＬＰから満了信号＃ｎが出力される。
なお、第１の実施の形態のようなワンショットタイマとして使用する場合は、ループモードの指定をループモードが「０」の設定で説明したが、ループモードが「１」の設定でループ数を「０」にしても、同じくワンショットタイマを実現できる。
【００７１】
［第２の実施の形態の効果］
このように、本実施の形態は、タイマインスタンス＃ｎが、コマンドのループモード情報で指定された動作モードがワンショットタイマである場合には、カウント値がゼロになった時点で満了信号を出力し、当該動作モードがループタイマである場合には、当該コマンドで指定されたループ数情報が示す回数だけ、初期値からゼロまでのカウントダウンを繰り返した時点で満了信号を出力するようにしたものである。
したがって、ワンショットタイマに加えて、初期値と精度の異なる複数のループタイマを実現することができ、極めて高い柔軟性を得ることができる。
【００７２】
［第３の実施の形態］
次に、図８を参照して、本発明の第３の実施の形態にかかるタイマ回路１０について説明する。図８は、第３の実施の形態にかかるタイマ回路の構成を示すブロック図である。
第１の実施の形態では、Ｎ個のタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを単独で動作させる場合について説明した。本実施の形態は、タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮを２つ連動させることで、最大２Ｘｂｉｔ長のカウント長を持つ連結タイマを実現する場合について説明する。
【００７３】
図８において、第１の実施の形態の構成との差分は、外部から入力されるコマンドに、タイマインスタンス＃ｎを上位桁タイマとして用いるか、下位桁カウンタとして用いるかを指定する連結モード情報ＵＬを含むことと、タイマインスタンス番号が隣接するタイマインスタンス＃ｎ間で制御用信号をやり取りする点である。したがって、本実施の形態にかかるタイマ回路１０全体の基本動作は第１の実施の形態と同様であるが、連結モード情報ＵＬをタイマインスタンス＃ｎに入力することによって、タイマインスタンス＃ｎ内部の構成と動作が異なる。
【００７４】
すなわち、本実施の形態にかかるタイマインスタンス＃ｎは、コマンドの連結モード情報ＲＭに基づいて、２つのタイマインスタンス＃ｎが上位桁タイマおよび下位桁タイマとして連結動作する機能を有している。また、上位桁タイマとなるタイマインスタンス＃ｎは、下位桁タイマからの連結制御信号ごとに、初期値からゼロまでカウンタ値をカウントダウンする機能を有している。また、下位桁タイマとなるタイマインスタンス＃ｎは、初期値からゼロまで精度でカウント値をカウントダウンした後、当該カウント値を最大カウント値に設定してゼロまでカウントダウンする機能と、当該カウント値がゼロになるごとに上位桁タイマに対して連結制御信号を出力する機能と、当該下位桁タイマおよび当該上位桁タイマの両方でカウントダウンが満了した時点で、満了信号を出力する機能とを有している。
【００７５】
［タイマインスタンス］
図９は、第３の実施の形態にかかるタイマインスタンスの構成を示すブロック図である。
このタイマインスタンス＃ｎには、第１の実施の形態の構成に、連結モード情報ＲＭを保持するラッチＬＣ５と、このＬＣ５のラッチ出力と上位桁タイマからの連結制御信号ＣＤの反転論理との論理積をダウンカウンタＤＣＮＴのＲ端子に入力する論理積回路ＡＮＤとが追加されている。また、セレクタＳＥＬ２には、精度候補として下位桁タイマからの連結制御信号ＣＤを選択する機能が追加されている。また、出力回路ＯＵＴには、ダウンカウンタＤＣＮＴのカウンタ値が「０」になった場合に、連結制御信号ＣＤを出力する機能と、指定された連結モード情報ＲＭと上位桁タイマからの連結制御信号ＣＤとに応じて、満了信号＃ｎを出力する機能が追加されている。
【００７６】
［第３の実施の形態の動作］
本実施の形態のタイマインスタンス＃ｎは、連結モード情報ＲＭにより上位桁タイマに指定されるか下位桁タイマに指定されるかで、それぞれのカウントダウン動作が異なる。
連結モード情報ＲＭが「０」の場合、タイマインスタンス＃ｎは上位桁タイマとして動作し、ダウンカウンタＤＣＮＴのＲ端子に対してＡＮＤから「０」が入力される。これにより、ダウンカウンタＤＣＮＴは、カウンタ値Ｑが「０」になった時点でカウントダウンを終了し、下位桁タイマに対する連結制御信号ＣＤとして「１」を出力するとともに、満了信号＃ｎを出力する。
【００７７】
一方、連結モード情報ＲＭが「１」の場合、タイマインスタンス＃ｎは下位桁タイマとして動作し、ダウンカウンタＤＣＮＴのＲ端子に対して、上位桁タイマからの連結制御信号ＣＤがインバータＩＮＴで反転された値がＡＮＤから入力される。この際、上位桁タイマの連結制御信号ＣＤ＃ｎ＋１は、上位桁タイマのカウント値が「０」の場合に「１」となり、「０」以外の場合に「０」となる。
ここで、ダウンカウンタＤＣＮＴは、Ｒ端子に「１」が入力された場合、カウンタ値Ｑが「０」となった時点で、カウンタ値ＱにＸｂｉｔ分の全ビット値を「１」とした最大カウント値を設定してカウントダウンを再開する機能を有している。
【００７８】
したがって、上位桁タイマのカウント値Ｑが「０」になるまで、下位桁タイマのＲ端子には「１」が入力されるため、下位桁タイマはカウントアップに応じて最大カウント値からカウントダウンを再開し、上位桁タイマのカウント値Ｑが「０」になった時点で、下位桁タイマのＲ端子には「０」が入力されるため、下位桁タイマはカウントアップに応じてカウントダウンを停止する。
これにより、下位桁タイマと上位桁タイマが連結してカウント動作することになる。
【００７９】
これら下位桁タイマと上位桁タイマが連結してカウント動作する具体例について説明する。図１０は、上位桁タイマおよび下位桁タイマのカウント動作例を示す説明図である。
まず、タイマイベント入力のコマンドに含まれる連結モード情報ＲＭに応じて、タイマインスタンス＃ｎ＋１が上位桁タイマ＃ｎ＋１として指定され、タイマインスタンス＃ｎが下位桁タイマ＃ｎとして指定されたものとする。
【００８０】
この際、コマンドに含まれる精度情報により、下位桁タイマ＃ｎに対しては連結タイマに求められる精度が設定され、上位桁タイマ＃ｎ＋１に対しては連結制御信号ＣＤ＃ｎが精度として設定されたものとする。また、コマンドに含まれる初期値情報により、これら上位桁タイマ＃ｎ＋１および下位桁タイマ＃ｎに対して、それぞれ初期値「０ｘ２」と初期値「０ｘ５」が設定されたものとする。ただし「０ｘ」は１６進表記であることを示す。
【００８１】
まず、下位桁タイマ＃ｎでは、コマンドに含まれる精度情報に応じて、初期値「０ｘ５」からカウントダウンが開始され、カウント値Ｑ＃ｎが「０ｘ０」となった時点で、「１」を示す連結制御信号ＣＤ＃ｎが出力されるとともに、「０」を示す上位桁タイマ＃ｎ＋１からの連結制御信号ＣＤ＃ｎ＋１に応じてＲ端子に「１」が入力されていることから、最大カウント値「０ｘｆ」（＝１５）からカウントダウンが再開される。
一方、上位桁タイマ＃ｎ＋１では、下位桁タイマ＃ｎからの連結制御信号ＣＤ＃ｎが「１」となるごとに、初期値「０ｘ２」からカウント値が「１」ずつ減算される。
【００８２】
したがって、下位桁タイマ＃ｎのカウント値Ｑ＃ｎが最初に「０ｘ０」になった時点で、最大カウント値からカウントダウンが再開されるとともに、上位桁タイマ＃ｎ＋１のカウント値Ｑ＃ｎ＋１が「０ｘ２」から「０ｘ１」にカウントダウンされる。
また、次に下位桁タイマ＃ｎのカウント値Ｑ＃ｎが「０ｘ０」になった時点で、最大カウント値からカウントダウンが再開されるとともに、上位桁タイマ＃ｎ＋１のカウント値Ｑ＃ｎ＋１が「０ｘ１」から「０ｘ０」にカウントダウンされ、この時点で、上位桁タイマ＃ｎ＋１から連結制御信号ＣＤ＃ｎ＋１として「１」が出力されるとともに、満了信号＃ｎ＋１が出力される。
【００８３】
この後、下位桁タイマ＃ｎは、カウント値Ｑ＃ｎが再び「０ｘ０」になった時点で、上位桁タイマ＃ｎ＋１からの連結制御信号ＣＤ＃ｎ＋１が「１」となっていてＲ端子に「０」が入力されていることから、カウントダウンを再開せずに停止して、出力回路ＯＵＴから満了信号＃ｎを出力し、連結タイマのタイムアップとなる。
【００８４】
［第３の実施の形態の効果］
このように、本実施の形態は、タイマインスタンス＃ｎが、コマンドの連結モード情報ＲＭに基づいて、連結タイマを構成する上位桁タイマまたは下位桁タイマとして動作し、上位桁タイマとして動作する場合には、下位桁タイマからの連結制御信号ＣＤごとに、指定された初期値からゼロまでカウンタ値をカウントダウンし、下位桁タイマとして動作する場合には、指定された初期値から指定された精度でカウント値をカウントダウンし、上位桁タイマのカウント値がゼロ以外の場合には、当該カウント値がゼロになるごとに当該上位桁タイマに対して連結制御信号を出力するとともに、最大カウント値からカウントダウンを再開し、当該下位桁タイマおよび当該上位桁タイマのカウント値が両方ともゼロになった時点で満了信号を出力するようにしたものである。
【００８５】
これにより、２つのタイマインスタンス＃ｎを連結動作させることにより、よりビット幅の大きい連結タイマを実現することができ、１つのタイマインスタンス＃ｎのビット幅よりも長いタイマカウント長のタイマにも柔軟に対応することが可能となる。
【００８６】
なお、本実施の形態においては、説明を簡潔にするために、第２の実施の形態で説明したタイマインスタンス構成を含めない場合を例として説明したが、第２の実施の形態のタイマインスタンス構成に本実施の形態のタイマインスタンス構成を組み合わせてもよい。この組み合わせにより、ワンショットタイマ、ループタイマ、連結タイマのすべてを実現できる柔軟性の高いタイマ回路１０を実現できる。
【００８７】
また、本実施の形態において、２つのタイマインスタンス＃ｎに対してコマンドにより上位桁タイマまたは下位桁タイマとして動作するよう指定して、これらを連結タイマとして動作させる例を説明したが、これに限定されるものではなく、第１の実施の形態のワンショットタイマとして動作させることも可能である。１つのタイマインスタンス＃ｎを連結タイマではなくワンショットタイマとして動作させる場合は、連結モード情報ＲＭにより上位桁タイマとして指定しておき、精度情報で下位桁からの連結制御信号ＣＤではなく、通常の精度の中から選択するよう指示すればよい。
【００８８】
また、本実施の形態では、２つのタイマインスタンス＃ｎ間で連結制御信号ＣＤをやり取りする配線を考慮して、タイマインスタンス番号が隣接する２つのタイマインスタンス＃ｎを連結する場合を例として説明したが、これに限定されるものではない。タイマインスタンス番号が隣接していない２つのタイマインスタンス＃ｎを連結してもよく、さらにはＬＳＩ上での配置が隣接していない２つのタイマインスタンス＃ｎを連結してもよい。
【００８９】
［第４の実施の形態］
次に、図１１を参照して、本発明の第４の実施の形態にかかるタイマ回路１０について説明する。図１１は、第４の実施の形態にかかるタイマ回路の構成を示すブロック図である。
第１〜３の実施の形態では、子局（ＯＮＵ）−親局（ＯＬＴ）間のリンクアップ確立有無に関わらず、すべてのタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮにクロックが供給されている場合ことを前提として説明した。しかし実際には、親局において、リンクアップしていない子局に関するタイマを使用することはなく、すべてのタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮに対して常にクロック供給を行うのは消費電力の観点で無駄が生じる。
本実施の形態では、リンクアップしていない子局に対して割り当てられるタイマインスタンス＃ｎに関してはクロックゲートによりクロックの供給を停止することにより、タイマ回路１０全体の消費電力を削減する場合について説明する。
【００９０】
すなわち、本実施の形態にかかるタイマ回路１０には、外部から入力された親局に対する子局の接続状況に応じて、インスタンス選択テーブルＴＢ１に記録されている、これら子局に対するタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮの割り当て状況を示すタイマインスタンス割当情報を更新する割当更新部ＴＵＰと、インスタンス選択テーブルＴＢ１のタイマインスタンス割当情報に基づいて、タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮのうち子局に対して新たに割り当てられたタイマインスタンス＃ｎに対してクロックゲートの解除を指示することによりクロックを供給し、子局に対して割り当てられていないタイマインスタンス＃ｎに対してクロックゲートの設定を指示することによりクロックの供給を停止するクロックゲート制御部ＣＧＣとが追加されている。
【００９１】
図１２は、第４の実施の形態にかかるインスタンス選択テーブルの構成例である。ここでは、タイマ種別情報と子局情報との組み合わせごとに、当該組み合わせを指定したタイマイベント入力に応じて割り当てるべきタイマインスタンス＃ｎを示す既定割当番号と、直前に割り当てられていたタイマインスタンス＃ｎを示す直前割当番号と、新たな割り当てられたタイマインスタンス＃ｎを示す最新割当番号とが記憶されている。
【００９２】
これらのうち、直前割当番号と最新割当番号とが上記タイマインスタンス割当情報に相当しており、これら番号のうち「０」は、当該子局にいずれのタイマインスタンス＃ｎも割り当てられていないことを示す。これら直前割当番号と最新割当番号とを比較することにより、各タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮに関する新規割り当て・割り当て中・割り当て解除を確認することができる。
【００９３】
図１２の例では、タイマ種別情報「１」において、子局情報「１」の割当番号が「０」から「１」に変化しており、子局＃１に対して新たなタイマインスタンス＃１が割り当てられたことを示している。同じく子局情報「２」の割当番号が「２」から「０」に変化しており、子局＃２に対するタイマインスタンスの割り当てが解除されたことを示している。また、タイマ種別情報「２」において、子局情報「３」の割当番号が「３」のまま変化しておらず、子局#３に対するタイマインスタンス＃３の割り当てが維持されていることを示している。同じく子局情報「４」の割当番号が「０」のまま変化しておらず、子局＃４に対するタイマインスタンス＃ｎの割り当てなしが維持されていることを示している。
【００９４】
［第４の実施の形態の動作］
次に、図１３を参照して、本実施の形態にかかるタイマ回路１０の動作について説明する。図１３は、第４の実施の形態にかかる割当更新処理を示すフローチャートである。
割当更新部ＴＵＰは、親局に対する子局の接続状況を示すリンクアップ情報の取得ごとに、図１３の割当更新処理を実行する。なお、リンクアップ情報は、各子局に対するリンクアップの有無を示す情報であり、上位回路から与えられるものとする。親局が起動した初期状態においては、すべての子局がリンクアップされていないため、インスタンス選択テーブルＴＢ１の直前割当番号および最新割当番号は、すべて「０」を示すことになる。
【００９５】
まず、割当更新部ＴＵＰは、インスタンス選択テーブルＴＢ１において、すべてのタイマ種別情報と子局情報との組み合わせごとに、直前割当番号をそれぞれの最新割当番号で更新し（ステップ１００）、外部から取得したリンクアップ情報のうち、リンクアップアップなしの子局に関する最新割当番号を「０」で更新する（ステップ１０１）。
【００９６】
次に、割当更新部ＴＵＰは、外部から取得したリンクアップ情報のうち、リンクアップアップありの子局に関する最新割当番号を既定割当番号で更新し（ステップ１０２）、クロックゲート制御部ＣＧＣに対して更新通知を出力する（ステップ１０３）。この際、各子局に対して割り当てたタイマインスタンス＃ｎの番号がリンクアップ情報に含まれている場合には、その番号でリンクアップアップありの子局に関する最新割当番号を更新してもよい。
【００９７】
この後、クロックゲート制御部ＣＧＣは、割当更新部ＴＵＰからの更新通知に応じて、インスタンス選択テーブルＴＢ１の先頭から、直前割当番号と最新割当番号とが異なる組み合わせを検索し（ステップ１１０）、該当する組み合わせが検索されなかった場合には（ステップ１１１：ＮＯ）、一連の割当更新処理を終了する。
また、該当する組み合わせが検索された場合（ステップ１１１：ＹＥＳ）、クロックゲート制御部ＣＧＣは、検索した組み合わせの直前割当番号が「０」であるか否か確認する（ステップ１１２）。
【００９８】
ここで、直前割当番号が「０」である場合（ステップ１１２：ＹＥＳ）、その組み合わせの最新割当番号に対応するタイマインスタンス＃ｎが新規に割り当てられたことになるため、クロックゲート制御部ＣＧＣは、当該最新割当番号に対応するタイマインスタンス＃ｎに対して、クロックゲートの解除を指示する（ステップ１１３）。これにより、当該タイマインスタンス＃ｎにおいて、各回路部へクロックの供給が開始される。
【００９９】
一方、直前割当番号が「０」でない場合（ステップ１１２：ＮＯ）、その直前割当番号に対応するタイマインスタンス＃ｎの割り当てが解除されたことになるため、クロックゲート制御部ＣＧＣは、当該直前割当番号のタイマインスタンス＃ｎに対して、クロックゲートを設定してクロックの供給を停止する（ステップ１１４）。これにより、当該タイマインスタンス＃ｎにおいて、各回路へクロックの供給が停止される。
【０１００】
［第４の実施の形態の効果］
このように、本実施の形態は、割当更新部ＴＵＰが、外部から入力された親局に対する子局の接続状況の変化に応じて、インスタンス選択テーブルＴＢ１に記録されている、これら子局に対するタイマインスタンス＃ｎの割り当て状況を示すタイマインスタンス割当情報を更新し、クロックゲート制御部ＣＧＣが、インスタンス選択テーブルＴＢ１のタイマインスタンス割当情報に基づいて、タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮのうち子局に対して新たに割り当てられたタイマインスタンス＃ｎに対してクロックゲートの解除を指示し、タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮのうち子局に対する割り当てが終了したタイマインスタンス＃ｎに対してクロックゲートの設定を指示するようにしたものである。
【０１０１】
これにより、各タイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮのうち、子局に割り当てられていないタイマインスタンス＃ｎについてクロックゲートが設定されてクロック供給が停止されるため、これらタイマインスタンスＴＩ１，ＴＩ２〜ＴＩＮでの消費電力が削減され、結果としてタイマ回路１０全体の消費電力を削減することが可能となる。
【０１０２】
また、本実施の形態では、クロックゲート制御部ＣＧＣが、インスタンス選択テーブルＴＢ１の先頭から直前割当番号と最新割当番号が異なる組み合わせを検索する場合について説明したが、これに限定されるものではない。例えば、直前割当番号と最新割当番号との差分や排他的論理和を計算し、得られた計算結果に基づき、直前割当番号と最新割当番号が異なる組み合わせに対してフラグを立てておく方法も考えられる。
【０１０３】
また、本実施の形態では、リンクアップありの状態で割り当てていたタイマインスタンス＃ｎを特定するために、インスタンス選択テーブルＴＢ１において直前割当番号と最新割当番号の両方を記録する構成としたが、これに限定されるものではない。例えば、リンクアップした子局に対しては、当該子局情報と同一番号のタイマインスタンス＃ｎを割り当てるものと制約した場合は、直前割当番号と最新割当番号の両方を記録する必要はなく、インスタンス選択テーブルＴＢ１は第１の実施の形態と同様の構成とすることができる。
【０１０４】
また、インスタンス選択テーブルＴＢ１において直前割当番号と最新割当番号を記憶しておく記憶領域として、それぞれ奇数面と偶数面を割り当ててもよい。これにより、直前割当番号を最新割当番号で更新する際、奇数面と偶数面を切り替えるだけで済み、処理を省くことができる。
【０１０５】
また、本実施の形態では、クロックゲート制御部ＣＧＣが、割当更新部ＴＵＰからの更新指示に応じて、能動的にインスタンス選択テーブルＴＢ１を参照してクロックゲート操作を行う構成としたが、これに限定されるものではない。例えば、割当更新部ＴＵＰが、インスタンス選択テーブルＴＢ１を参照して、クロックゲート操作対象のタイマインスタンス＃ｎを特定し、クロックゲート制御部ＣＧＣにインスタンス番号とクロックゲートＯｎ／Ｏｆｆとを直接指示する構成とすることもできる。
【０１０６】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【０１０７】
１０…タイマ回路、ＴＢ１…インスタンス選択テーブル、ＤＥＭＵＸ１，ＤＥＭＵＸ２，ＤＥＭＵＸ３…デマルチプレクサ、ＴＩ１，ＴＩ２〜ＴＩＮ…タイマインスタンス、ＴＢ２…イベント選択テーブル、ＤＣＮＴ…ダウンカウンタ、ＬＣ１，ＬＣ２，ＬＣ３，ＬＣ４，ＬＣ５…ラッチ、ＳＥＬ１，ＳＥＬ２，ＳＥＬ３…セレクタ、ＯＵＴ…出力回路、ＴＢ３…コマンドテーブル、ＡＮＤ…論理積回路、ＯＲ…論理和回路。
【図１】
0006363563.tif 000002
【図２】
0006363563.tif 000003
【図３】
0006363563.tif 000004
【図４】
0006363563.tif 000005
【図５】
0006363563.tif 000006
【図６】
0006363563.tif 000007
【図７】
0006363563.tif 000008
【図８】
0006363563.tif 000009
【図９】
0006363563.tif 000010
【図１０】
0006363563.tif 000011
【図１１】
0006363563.tif 000012
【図１２】
0006363563.tif 000013
【図１３】
0006363563.tif 000014
【図１４】
0006363563.tif 000015