(57)【要約】【課題】割り込み要因の到着から割り込み信号を生成するまでの遅延期間を増大させることなく、小さい回路規模で割り込み調停を実現すること。【解決手段】割り込み信号生成装置は、所定の期間を計時するタイマと、所定の初期値に初期化されたカウンタ値を保持するカウンタと、割り込み要因を検出することなく所定の期間が満了した場合には、タイマを初期化するとともに、カウンタ値をインクリメントし、所定の期間が満了する前に割り込み要因を検出した場合において、カウンタ値が所定の初期値であるときには、所定の期間の満了後に割り込み信号を生成するとともにタイマを初期化し、カウンタ値が所定の初期値以外の値であるときには、所定の期間の満了を待つことなく割り込み信号を生成し、カウンタ値をデクリメントするとともにタイマを初期化する信号生成部と、を備えている。【選択図】図１
2012146150.tif 000002
【特許請求の範囲】
【請求項１】
所定の期間を計時するタイマと、
所定の初期値に初期化されたカウンタ値を保持するカウンタと、
割り込み要因を検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、前記カウンタ値をインクリメントまたはデクリメントし、前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化し、前記カウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記カウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する信号生成部と、を備えていることを特徴とする割り込み信号生成装置。
【請求項２】
前記所定の初期値に初期化された第１のカウンタ値を保持する第１のカウンタと、
前記所定の初期値に初期化された第２のカウンタ値を保持する第２のカウンタと、を備え、
前記信号生成部は、第１の割り込み要因および第２の割り込み要因のいずれも検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、前記第１のカウンタ値および前記第２のカウンタ値をインクリメントまたはデクリメントし、前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、前記第１のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化し、前記第１のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第１のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化し、前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、前記第２のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化し、前記第２のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第２のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化することを特徴とする、請求項１に記載の割り込み信号生成装置。
【請求項３】
前記第１のカウンタ値の上限値および前記第２のカウンタ値の上限値は、それぞれ、前記第１の割り込み要因および前記第２の割り込み要因の優先度に応じた値であることを特徴とする、請求項２に記載の割り込み信号生成装置。
【請求項４】
前記タイマは、所定の整数により初期化されたタイマ値を一定の時間間隔でインクリメントまたはデクリメントして前記所定の期間を計時し、
前記信号生成部は、前記タイマ値を前記所定の整数により初期化することにより、前記タイマを初期化することを特徴とする、請求項１ないし３のいずれか１項に記載の割り込み信号生成装置。
【請求項５】
割り込み信号生成装置が、タイマを用いて所定の期間を計時する工程と、
割り込み要因を検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、所定の初期値に初期化されたカウンタ値をインクリメントまたはデクリメントする工程と、
前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記カウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する工程と、を含むことを特徴とする割り込み信号生成方法。
【請求項６】
前記信号生成部が、第１の割り込み要因および第２の割り込み要因のいずれも検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、前記第１のカウンタ値および前記第２のカウンタ値をインクリメントまたはデクリメントする工程と、
前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、前記所定の初期値に初期化された第１のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、前記第１のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第１のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、前記所定の初期値に初期化された第２のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、前記第２のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第２のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する工程と、を含むことを特徴とする、請求項５に記載の割り込み信号生成方法。
【請求項７】
前記第１のカウンタ値の上限値および前記第２のカウンタ値の上限値は、それぞれ、前記第１の割り込み要因および前記第２の割り込み要因の優先度に応じた値であることを特徴とする、請求項６に記載の割り込み信号生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み信号生成装置および割り込み信号生成方法に関し、特に、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ホストコントローラ（Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ）等のＩ／Ｏコントローラにおける割り込み信号生成装置および割り込み信号生成方法に関する。
【背景技術】
【０００２】
ＵＳＢホストコントローラ等のＩ／Ｏコントローラは、パケットの転送処理の完了をドライバソフトウエアに通知するための割り込み信号を１つのパケットまたは複数のパケット単位で生成する。Ｉ／Ｏコントローラが処理するパケット数が増加すると、頻繁に割り込み信号が生成されるため、システムＣＰＵの処理が割り込み処理に使用される頻度が増加し、システム全体の性能低下を招く。この問題を解決するために、割り込み信号の生成頻度が高くならないように割り込み調停（Ｉｎｔｅｒｒｕｐｔ  Ｍｏｄｅｒａｔｉｏｎ）を行う方法が知られている。
【０００３】
特許文献１には、複数のタイマを使用して割り込み調停を行う方法が記載されている。すべてのタイマは、割り込み信号の生成によりそれぞれのタイマに固有の周期値に初期化される。また、各タイマに固有に設定された検出回数の割り込み要因の発生を検出すると、タイマごとに個別に固有の周期値に初期化される。この初期化条件に該当しない場合は、タイマ値はゼロになるまでデクリメントされる。いずれかのタイマがゼロになり、かつ割り込み要因が検出されると割り込み信号が生成される。
【０００４】
また、非特許文献１にも、複数のタイマを使用するコントローラが記載されている。非特許文献１の７．３．２節を参照すると、コントローラは、１つの“ＬＴＲ  Ｍｏｄｅｒａｔｉｏｎ  Ｔｉｍｅｒ”、１つの“ＬＬＩ  Ｍｏｄｅｒａｔｉｏｎ  Ｔｉｍｅｒ”、および１つの“ＬＬＩ  Ｃｒｅｄｉｔ  Ｃｏｕｎｔｅｒ”を使用する。優先順位付けした特定の割り込み要因に対して“ＬＬＩ  Ｍｏｄｅｒａｔｉｏｎ  Ｔｉｍｅｒ”と“ＬＬＩ  Ｃｒｅｄｉｔ  Ｃｏｕｎｔｅｒ”を使用して割り込み信号の生成を行う。“ＬＴＲ  Ｍｏｄｅｒａｔｉｏｎ  Ｔｉｍｅｒ”は、特許文献１において１つのタイマのみが使用される動作に相当し、優先順位付けされていない割り込み要因に対して使用される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００５／００８６４０１号明細書
【非特許文献】
【０００６】
【非特許文献１】Ｉｎｔｅｌ社  ８２５９９  １０ＧｂＥ  Ｃｏｎｔｒｏｌｌｅｒ  Ｄａｔａｓｈｅｅｔ，［ｏｎｌｉｎｅ］，［平成２２年１２月２０日検索］、インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｄｏｗｎｌｏａｄ．ｉｎｔｅｌ．ｃｏｍ／ｄｅｓｉｇｎ／ｎｅｔｗｏｒｋ／ｄａｔａｓｈｔｓ／８２５９９＿ｄａｔａｓｈｅｅｔ．ｐｄｆ〉．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明者によってなされたものである。
【０００８】
特許文献１に記載された方法では、複数のタイマを使用して割り込み信号生成の制御を行うため、回路規模が増大する。また、代表して単一のタイマのみを使用して“Ｉｎｔｅｒｒｕｐｔ  Ｍｏｄｅｒａｔｉｏｎ”による効果を高める周期値を設定するようにした場合には、割り込み要因の発生から割り込み信号の生成までにタイマ分の待ち時間が加わり、ドライバソフトウエアへの割り込み通知が遅れてＩ／Ｏコントローラの処理性能が低下する。
【０００９】
また、非特許文献１に記載されたコントローラでは、複数のタイマを使用して割り込み信号生成の制御を行うため、回路規模が増大する。優先順位付けされていない通常の割り込み要因に対して、非特許文献１のコントローラの処理は特許文献１における単独タイマによる処理に相当するため、割り込み要因の発生から割り込み信号の生成までの遅延時間を短くすることはできない。
【００１０】
したがって、特許文献１および非特許文献１に記載された技術によると、回路規模が増大し、または、割り込み信号の生成頻度が抑えられる代わりにパケット処理が完了してから割り込み信号が生成されるまでの遅延時間が増加してＩ／Ｏコントローラの処理性能が低下するという問題がある。
【００１１】
そこで、割り込み要因の到着から割り込み信号を生成するまでの遅延期間を増大させることなく、小さい回路規模で割り込み調停を実現することが課題となる。
【課題を解決するための手段】
【００１２】
本発明の第１の視点に係る割り込み信号生成装置は、
所定の期間を計時するタイマと、
所定の初期値に初期化されたカウンタ値を保持するカウンタと、
割り込み要因を検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、前記カウンタ値をインクリメントまたはデクリメントし、前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化し、前記カウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記カウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する信号生成部と、を備えている。
【００１３】
本発明の第２の視点に係る割り込み信号生成方法は、
割り込み信号生成装置が、タイマを用いて所定の期間を計時する工程と、
割り込み要因を検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、所定の初期値に初期化されたカウンタ値をインクリメントまたはデクリメントする工程と、
前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記カウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する工程と、を含む。
【発明の効果】
【００１４】
本発明に係る割り込み信号生成装置および割り込み信号生成方法によると、割り込み要因の到着から割り込み信号を生成するまでの遅延期間を増大させることなく、小さい回路規模で割り込み調停を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係る割り込み信号生成装置の構成を示すブロック図である。
【図２】第１の実施形態に係る割り込み信号生成装置の動作を示すフローチャートである。
【図３】第１の実施形態に係る割り込み信号生成装置の動作を説明するための図である。
【図４】第２の実施形態に係る割り込み信号生成装置の構成を示すブロック図である。
【図５】第２の実施形態に係る割り込み信号生成装置の動作を示すフローチャートである。
【図６】第２の実施形態に係る割り込み信号生成装置の動作を説明するための図である。
【発明を実施するための形態】
【００１６】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
図１を参照すると、本発明に係る割り込み信号生成装置（１０）は、所定の期間を計時するタイマ（１２）と、所定の初期値に初期化されたカウンタ値を保持するカウンタ（１４）と、割り込み要因を検出することなく前記所定の期間が満了した場合には、タイマ（１２）を初期化するとともに、前記カウンタ値をインクリメント（またはデクリメント）し、前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともにタイマ（１２）を初期化し、前記カウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記カウンタ値をデクリメント（またはインクリメント）するとともにタイマ（１２）を初期化する信号生成部（１６）と、を備えている。
【００１８】
すなわち、本発明に係る割り込み信号生成装置（１０）は、１つのタイマ（１２）と１つのカウンタ（１４）を有する。タイマ（１２）は、割り込み信号の生成周期を管理する。カウンタ値は、一例として、初期値ゼロに初期化されていてもよい。カウンタ（１４）は、タイマ（１２）により管理される割り込み信号生成周期期間内に割り込み要因を検出しなかった場合にインクリメントされ、割り込み信号の生成によりデクリメントされる。信号生成部（１６）は、カウンタ（１４）のカウンタ値がゼロの場合には、検出した割り込み要因に基づく割り込み信号生成をタイマ（１２）が管理する割り込み信号生成周期まで遅延させ、カウンタ（１４）のカウンタ値がゼロでない場合には、検出した割り込み要因に基づく割り込み信号生成を即座に行うように割り込み信号の生成を制御する。
【００１９】
また、複数の割り込み要因のグループがあり、これらのグループ間で優先順位の重みづけを行う場合には、割り込み要因ごとにカウンタ（１４）を設けて、同様の管理を行うようにしてもよい。
【００２０】
本発明によると、１つのタイマと１つのカウンタを使用して割り込み信号の生成を制御する。したがって、本発明によると、複数のタイマを使用して割り込み信号の生成を制御する特許文献１および非特許文献１に記載された技術と比較して、回路規模を削減することができる。
【００２１】
また、本発明の割り込み信号生成装置（１０）は１つのタイマのみを使用して割り込み生成周期を管理するが、割り込み要因が発生しなかった周期の回数分の割り込み信号を、タイマが管理する周期を待たずに生成することができる。したがって、複数回の割り込み生成周期時間で平均した場合の割り込みの発生頻度は１つのタイマのみを使用した場合と同等であるが、割り込み要因がない期間の後に頻繁に割り込み要因が発生する状況ではドライバソフトウエアへの割り込み通知が遅れることがない。したがって、本発明の割り込み信号生成装置によると、Ｉ／Ｏコントローラの処理性能の低下を防ぐことができる。
【００２２】
さらに、本発明によると、割り込み要因の優先順位の重み付けによってタイマを複数設ける必要がない。したがって、本発明によると、優先順位の重み付けがある複数の要因を処理する際に複数のタイマを使用して割り込み信号の生成を制御する技術と比較して、回路規模を削減することができる。
【００２３】
本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係る割り込み信号生成装置のとおりである。
［形態２］
前記所定の初期値に初期化された第１のカウンタ値を保持する第１のカウンタと、
前記所定の初期値に初期化された第２のカウンタ値を保持する第２のカウンタと、を備え、
前記信号生成部は、第１の割り込み要因および第２の割り込み要因のいずれも検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、前記第１のカウンタ値および前記第２のカウンタ値をインクリメントまたはデクリメントし、前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、前記第１のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化し、前記第１のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第１のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化し、前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、前記第２のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化し、前記第２のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第２のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化するようにしてもよい。
［形態３］
前記第１のカウンタ値の上限値および前記第２のカウンタ値の上限値は、それぞれ、前記第１の割り込み要因および前記第２の割り込み要因の優先度に応じた値であることが好ましい。
［形態４］
前記タイマは、所定の整数により初期化されたタイマ値を一定の時間間隔でインクリメントまたはデクリメントして前記所定の期間を計時し、
前記信号生成部は、前記タイマ値を前記所定の整数により初期化することにより、前記タイマを初期化するようにしてもよい。
［形態５］
上記第２の視点に係る割り込み信号生成方法のとおりである。
［形態６］
前記信号生成部が、第１の割り込み要因および第２の割り込み要因のいずれも検出することなく前記所定の期間が満了した場合には、前記タイマを初期化するとともに、前記第１のカウンタ値および前記第２のカウンタ値をインクリメントまたはデクリメントする工程と、
前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、前記所定の初期値に初期化された第１のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、前記第１のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第１のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、前記所定の初期値に初期化された第２のカウンタ値が前記所定の初期値であるときには、前記所定の期間の満了後に割り込み信号を生成するとともに前記タイマを初期化する工程と、
前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、前記第２のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記インクリメントまたは前記デクリメントとは逆方向に前記第２のカウンタ値をデクリメントまたはインクリメントするとともに前記タイマを初期化する工程と、を含んでいてもよい。
［形態７］
前記第１のカウンタ値の上限値および前記第２のカウンタ値の上限値は、それぞれ、前記第１の割り込み要因および前記第２の割り込み要因の優先度に応じた値であることが好ましい。
【００２４】
（実施形態１）
第１の実施形態に係る割り込み信号生成装置について、図面を参照して説明する。図１は、本実施形態に係る割り込み信号生成装置１０の構成を示すブロック図である。図１を参照すると、割り込み信号生成装置１０は、タイマ１２、カウンタ１４、および、信号生成部１６を備えている。
【００２５】
タイマ１２は、所定の期間を計時する。カウンタ１４は、所定の初期値に初期化されたカウンタ値を保持する。信号生成部１６は、割り込み要因を検出することなく前記所定の期間が満了した場合には、タイマ１２を初期化するとともに、前記カウンタ値をインクリメント（またはデクリメント）する。一方、前記所定の期間が満了する前に割り込み要因を検出した場合において、前記カウンタ値が前記所定の初期値であるときには、信号生成部１６は、前記所定の期間の満了後に割り込み信号を生成するとともにタイマ１２を初期化し、前記カウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、前記カウンタ値をデクリメント（またはインクリメント）するとともにタイマ１２を初期化する。
【００２６】
図２は、割り込み信号生成装置１０の動作を示すフローチャートである。図２（ａ）のフローチャートおよび図２（ｂ）のフローチャートの２つの処理ループは互いに並列に処理される。図２（ａ）の処理ループは、割り込み信号生成の周期管理を行うタイマ１２および信号生成部１６の動作を示す。一方、図２（ｂ）の処理ループは、カウンタ１４および信号生成部１６の動作、すなわち、割り込み要因が発生しなかった周期の回数を計測するカウンタ１４によるカウンタ動作と信号生成部１６による割り込み信号生成動作を示す。
【００２７】
図２（ａ）の処理ループ内で処理されるタイマ値は、図２（ｂ）の処理ループで参照される（ステップＢ１３、Ｂ１６）。同様に、図２（ｂ）の処理ループ内で処理される割り込み生成の有無は図２（ａ）の処理ループで参照される（ステップＡ１３）。
【００２８】
図２（ａ）を参照すると、タイマ１２は、タイマ値に初期値Ｎをロードする（ステップＡ１１）。タイマ１２は、一定のペース、すなわち、一定の時間間隔で、タイマ値をデクリメントする（ステップＡ１２）。
【００２９】
信号生成部１６は、割り込み信号を生成すると（ステップＡ１３のＹｅｓ）、タイマ値に初期値Ｎ（Ｎは正整数）をロードするようにタイマ１２に指示する（ステップＡ１１）。一方、割り込み信号が生成されない場合には（ステップＡ１３のＮｏ）、タイマ１２は、タイマ値がゼロでない間（ステップＡ１４のＮｏ）、タイマ値をデクリメントし続ける。また、割り込み信号が生成されることなく（ステップＡ１３のＮｏ）、タイマ値がゼロとなった場合には（ステップＡ１４のＹｅｓ）、信号生成部１６は、タイマ値に初期値Ｎをロードするようにタイマ１２に指示する（ステップＡ１１）。
【００３０】
図２（ｂ）を参照すると、カウンタ１４は、カウンタ値をゼロにリセットする（ステップＢ１１）。
【００３１】
割り込み要因を検出することなく（ステップＢ１２のＮｏ）、タイマ値がゼロとなった場合には（ステップＢ１３のＹｅｓ）、信号生成部１６は、カウンタ値をインクリメントするようにカウンタ１４に指示する（ステップＢ１４）。
【００３２】
信号生成部１６は、割り込み要因を検出した場合に（ステップＢ１２のＹｅｓ）、カウンタ値がゼロであるときには（ステップＢ１５のＹｅｓ）、タイマ値がゼロとなるまで待機した後（ステップＢ１６のＹｅｓ）、割り込み信号を生成する（ステップＢ１８）。
【００３３】
一方、信号生成部１６は、割り込み要因を検出した場合に（ステップＢ１２のＹｅｓ）、カウンタ値がゼロでないときには（ステップＢ１５のＮｏ）、カウンタ値をデクリメントするとともに（ステップＢ１７）、直ちに割り込み信号を生成する（ステップＢ１８）。
【００３４】
図３は、本実施形態の割り込み信号生成装置１０の具体的な動作について説明するための図である。図３を参照すると、割り込み要因ａ１〜ａ８は、パケット処理完了などの割り込み要因の発生を表す。また、割り込み信号ｂ１〜ｂ５は、割り込み信号の生成を表す。
【００３５】
図３のタイマ値は、図２のタイマ１２におけるタイマ値に対応する。タイマ１２は、タイマ値に基づいて割り込み信号の生成周期を管理する。タイマ１２は、タイマ値の初期値Ｎをロードし（ステップＡ１１）、時間の経過とともにタイマ値をカウントダウンする（ステップＡ１２）。
【００３６】
図３のカウンタ値は、図２のカウンタ１４のカウンタ値に対応する。カウンタ１４は、カウンタ値に基づいて割り込み要因が発生しなかった周期の回数を計測する。
【００３７】
以下では、図３の各周期における具体的な動作について説明する。
【００３８】
周期１では、３つの割り込み要因ａ１、ａ２、ａ３が発生しているが（図２のステップＢ１２のＹｅｓ）、カウンタ値はゼロである（ステップＢ１５のＹｅｓ）。したがって、信号生成部１６は、それぞれの割り込み要因からすぐに割り込み信号は生成せずに、タイマ値がゼロになるのを待つ（ステップＢ１６）。タイマ値がゼロになった時点で（ステップＢ１６のＹｅｓ）、信号生成部１６は割り込み信号ｂ１を生成する。周期１の完了時点で、タイマ値に初期値Ｎが再度ロードされるが（ステップＡ１１）、周期１の期間で割り込み要因が発生しているためカウンタ値は値が変わらない。
【００３９】
周期２では、割り込み要因が発生しておらず（ステップＢ１２のＮｏ）、タイマ値が初期値Ｎからカウントダウンされてゼロとなった周期２の終了時点で（ステップＢ１３のＹｅｓ）、カウンタ値は＋１インクリメントされる（ステップＢ１４）。同時に、タイマ値には、初期値Ｎが再度ロードされる（ステップＡ１１）。
【００４０】
周期３および周期４では、割り込み要因が発生しておらず（ステップＢ１２のＮｏ）、周期２と同様な動作が行われる。周期３および周期４のそれぞれの周期の終了時点で（ステップＢ１３のＹｅｓ）、カウンタ値は＋１インクリメントされ（ステップＢ１４）、タイマ値に初期値Ｎが再度ロードされる（ステップＡ１１）。周期２〜４の３周期期間では割り込み要因が発生しなかったため、カウンタ値は周期４の満了時点で３となっている。
【００４１】
周期５において割り込み要因ａ４が発生した時（ステップＢ１２のＹｅｓ）、カウンタ値は３（≠ゼロ）となっている（ステップＢ１５のＮｏ）。したがって、信号生成部１６は、タイマ値がゼロではないものの、割り込み要因ａ４の発生後直ちに、カウンタ値を−１デクリメントするとともに（ステップＢ１７）、割り込み信号ｂ２を生成し（ステップＢ１８、ステップＡ１３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ１１）。その後、周期５の期間で割り込み要因ａ５が発生した時（ステップＢ１２のＹｅｓ）、カウンタ値は２（≠ゼロ）となっている（ステップＢ１５のＮｏ）。したがって、信号生成部１６は、タイマ値がゼロではないものの、割り込み要因ａ５の発生後直ちに、カウンタ値を−１デクリメントするとともに（ステップＢ１７）、割り込み信号ｂ３を生成し（ステップＢ１８、ステップＡ１３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ１１）。もともとの周期５の終了タイミングでは、タイマ値はカウントダウンを続けておりゼロでないため（ステップＢ１３のＮｏ）、カウンタ値は変化しない。
【００４２】
周期６において割り込み要因ａ６が発生した時（ステップＢ１２のＹｅｓ）、カウンタ値は１（≠ゼロ）となっている（ステップＢ１５のＮｏ）。したがって、信号生成部１６は、タイマ値がゼロではないものの、割り込み要因ａ６の発生後直ちに、カウンタ値を−１デクリメントするとともに（ステップＢ１７）、割り込み信号ｂ４を生成し（ステップＢ１８、ステップＡ１３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ１１）。その後、周期６の期間内で割り込み要因ａ７、ａ８が発生しているが（ステップＢ１２のＹｅｓ）、カウンタ値がゼロである（ステップＢ１５のＹｅｓ）。したがって、信号生成部１６は、それぞれの割り込み要因からすぐに割り込みは生成せずに、タイマ値がゼロになるのを待つ（ステップＢ１６のＹｅｓ）。
【００４３】
タイマ値がゼロになった時点で（ステップＢ１６のＹｅｓ）、信号生成部１６は、割り込み信号ｂ５を生成する（ステップＢ１８）。もともとの周期６の終了タイミングでは、タイマ値はカウントダウンを続けておりゼロでないため（ステップＢ１３のＮｏ）、カウンタ値は変化しない。割り込み信号ｂ５を生成すると（ステップＡ１３のＹｅｓ）、タイマ値はＮに再度ロードされるが（ステップＡ１１）、割り込み要因ａ７、ａ８が発生しているためカウンタ値は値が変わらない。
【００４４】
なお、カウンタ１４のカウンタ値には所定の上限値が設定されており、カウンタ値が上限に達している場合には、インクリメント命令（ステップＢ１４）に対して同一の値が維持される。
【００４５】
本実施形態では、タイマ１２により割り込み信号の生成周期を管理し、割り込み信号生成周期期間内に割り込み要因を検出しなかった場合にカウンタ値をインクリメントし、割り込み信号の生成によりカウンタ値をデクリメントする。また、カウンタ値がゼロの場合には検出した割り込み要因に基づく割り込み信号生成をタイマ１２により管理する割り込み信号生成周期まで遅延させ、該カウンタ値がゼロでない場合には検出した割り込み要因に基づく割り込み信号生成を即座に行うように割り込み信号を生成する。
【００４６】
これにより、複数の割り込み信号生成周期期間にわたって平均したときの割り込み信号の発生頻度は、タイマ１２で管理する割り込み信号生成周期の１周期につき１回程度に抑えることができる。また、割り込み信号が生成されなかった周期の後では、その周期の回数に応じて、割り込み要因発生から割り込み信号生成までの遅延がないように割り込み信号を生成させることができる。
【００４７】
本実施形態の割り込み信号生成装置１０によると、以上の動作を、１つのタイマ１２と１つのカウンタ１４による制御で実現しうる。
【００４８】
割り込み信号の生成周期としては数ｕｓから１ｍｓ程度の期間を管理できるようにすることが多く、この場合、タイマ１２の回路規模は、例えば、その動作クロック周波数が１００ＭＨｚの場合には１４ビット必要になる。これに対して、本実施形態のカウンタ１４は数十から百個程度の数を計測できれば十分で、７から８ビット程度の回路で処理しうる。例えば、ＵＳＢの場合、ホストコントローラに接続するＵＳＢデバイスの総数は数十個程度であり、カウンタ１４はこの数に相当する数を計測できれば十分である。したがって、本実施形態の割り込み信号生成装置１０によると、複数のタイマを使用することなく、１つのタイマ１２と１つのカウンタ１４により割り込み信号の生成を制御することで回路規模を削減することができる。
【００４９】
また、図３の動作フロー例の割り込み要因ａ４〜ａ６のように、割り込み要因発生から割り込み信号生成までのタイマ１２による周期管理に起因する遅延時間がなくなる。したがって、本実施形態の信号生成装置によると、例えば、５Ｇｂ／ｓのビットレートで通信を行うＵＳＢ３．０では、ＵＳＢ３．０のＨＤＤやＦｌａｓｈ  Ｄｒｉｖｅ等のストレージデバイスを接続して動作させる際のスループット性能を約１０％程度向上させることができる。
【００５０】
（実施形態２）
第２の実施形態に係る割り込み信号生成装置について、図面を参照して説明する。図４は、本実施形態に係る割り込み信号生成装置２０の構成を示すブロック図である。図４を参照すると、割り込み信号生成装置２０は、タイマ２２、カウンタ２４，２５、および、信号生成部２６を備えている。
【００５１】
タイマ２２は、所定の期間を計時する。第１のカウンタ２４は、所定の初期値に初期化された第１のカウンタ値を保持する。第２のカウンタ２５は、所定の初期値に初期化された第２のカウンタ値を保持する。
【００５２】
信号生成部２６は、第１の割り込み要因および第２の割り込み要因のいずれも検出することなく前記所定の期間が満了した場合には、タイマ２２を初期化するとともに、第１のカウンタ値および第２のカウンタ値をインクリメント（またはデクリメント）する。一方、前記所定の期間が満了する前に第１の割り込み要因を検出した場合において、第１のカウンタ値が前記所定の初期値であるときには、信号生成部２６は、前記所定の期間の満了後に割り込み信号を生成するとともにタイマ２２を初期化し、第１のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、第１のカウンタ値をデクリメント（またはインクリメント）するとともにタイマ２２を初期化する。同様に、前記所定の期間が満了する前に第２の割り込み要因を検出した場合において、第２のカウンタ値が前記所定の初期値であるときには、信号生成部２６は、前記所定の期間の満了後に割り込み信号を生成するとともにタイマ２２を初期化し、第２のカウンタ値が前記所定の初期値以外の値であるときには、前記所定の期間の満了を待つことなく割り込み信号を生成し、第２のカウンタ値をデクリメント（またはインクリメント）するとともにタイマ２２を初期化する。
【００５３】
本実施形態では、一例として、カウンタの個数を２個としたが、カウンタの個数はこれに限定されるものではない。すなわち、カウンタの個数は、割り込み要因に応じて任意の個数とすることができる。
【００５４】
図５は、割り込み信号生成装置２０の動作を示すフローチャートである。図５（ａ）〜（ｃ）のフローチャートの複数の処理ループは互いに並列に処理を行う。図５（ａ）の処理ループは、割り込み信号生成の周期管理を行うタイマ２２および信号生成部２６の動作を示す。図５（ｂ）の処理ループは、信号生成部２６による割り込み信号生成動作を示す。図５（ｃ）の処理ループは、同一の処理ループが独立に２個存在しうる（ｎ＝２）。図５（ｃ）の処理ループは、対象とする割り込み要因ごとに複数に並列化されたものである。図５（ｃ）の処理ループは、それぞれの割り込み要因毎に割り込み要因が発生しなかった周期の回数を計測するカウンタ２４，２５のカウンタ動作と、割り込み信号生成を要求するトリガ信号の生成動作を示す。
【００５５】
図５（ａ）の処理ループ内で処理されるタイマ値は、図５（ｃ）の処理ループで参照される（ステップＢ２３、Ｂ２６）。図５（ｂ）の処理ループ内で処理される割り込み信号生成の有無は、図５（ａ）の処理ループで参照される（ステップＡ２３）。図５（ｃ）の処理ループ内で処理される割り込みトリガ生成の有無は、図５（ｂ）の処理ループで参照される（ステップＣ２１）。
【００５６】
図５（ｃ）の処理ループは複数個（ｎ個）存在しうる。各処理ループは、例えば、パケットの種類等により分離されたグループ毎に割り当てられる。これら複数のグループは、同一の割り込み信号をシェアして使用する。
【００５７】
図５（ａ）、（ｃ）の各ステップにおける動作は、図２（ａ）、（ｂ）の各ステップにおける動作と同様であることから、説明を省略する。
【００５８】
図６は、本実施形態の割り込み信号生成装置２０の具体的な動作について説明するための図である。図６を参照すると、割り込み要因ａ１〜ａ８，ｃ１〜ｃ２は、パケット処理完了などの割り込み要因の発生を表す。また、割り込み要因ｂ１〜ｂ６は、割り込み信号の生成を表す。
【００５９】
図６のタイマ値は、図４のタイマ２２のタイマの値に対応する。タイマ２２は、タイマ値に基づいて割り込み信号の生成周期を管理する。タイマ２２は、タイマ値の初期値Ｎをロードし（ステップＡ２１）、時間の経過とともにタイマ値をカウントダウンする（ステップＡ２２）。
【００６０】
図６の要因＃１のカウンタ値、要因＃２のカウンタ値は、それぞれ、図４のカウンタ２４，２５のカウント値に対応する。カウンタ２４，２５は、パケットの種類等により分離されたグループ毎に割り込み要因が発生しなかった周期の回数を計測する。
【００６１】
以下では、図６の各周期における具体的な動作について説明する。
【００６２】
周期１では、４つの割り込み要因ａ１、ａ２、ａ３、ｃ１が発生しているが（図５のステップＢ２２のＹｅｓ）、要因＃１、要因＃２ともにカウンタ値がゼロである（ステップＢ２５のＹｅｓ）。したがって、信号生成部２６は、それぞれの割り込み要因からすぐに割り込み信号は生成せずに、タイマ値がゼロになるのを待つ（ステップＢ２６のＹｅｓ）。タイマ値がゼロになった時点で（ステップＢ２６のＹｅｓ）、信号生成部２６は、割り込み信号ｂ１を生成する（ステップＢ２８、ステップＣ２１のＹｅｓ、ステップＣ２２）。周期１の完了時点で、タイマ値に初期値Ｎが再度ロードされるが（ステップＡ２１）、周期１の期間で割り込み要因が発生しているため要因＃１、要因＃２ともにカウンタ値は値が変わらない。
【００６３】
周期２では、要因＃１、要因＃２ともに割り込み要因が発生しておらず（ステップＢ２２のＮｏ）、タイマ値がＮからカウントダウンされてゼロとなった周期２の終了時点で（ステップＢ２３のＹｅｓ）、要因＃１、要因＃２のカウンタ値がそれぞれ＋１インクリメントされ（ステップＢ２４）、タイマ値に初期値Ｎが再度ロードされる（ステップＡ２１）。
【００６４】
周期３および周期４では、割り込み要因が発生しておらず（ステップＢ２２のＮｏ）、周期２と同様な動作が行われる。周期３および周期４のそれぞれの周期の終了時点で（ステップＢ２３のＹｅｓ）、要因＃１、要因＃２のカウンタ値はそれぞれ＋１インクリメントされ（ステップＢ２４）、タイマ値に初期値Ｎが再度ロードされる（ステップＡ２１）。周期２〜４の３周期期間で割り込み要因が発生しなかったため、要因＃１のカウンタ値、要因＃２のカウンタ値は、ともに周期４の満了時点で３となっている。
【００６５】
周期５において要因＃１の割り込み要因ａ４が発生した時（ステップＢ２２のＹｅｓ）、要因＃１のカウンタ値は３（≠ゼロ）となっている（ステップＢ２５のＮｏ）。したがって、信号生成部２６は、タイマ値がゼロではないものの、割り込み要因ａ４の発生後直ちに、要因＃１のカウンタ値を−１デクリメントするとともに（ステップＢ２７）、割り込み信号ｂ２を生成し（ステップＢ２８、ステップＡ２３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ２１）。このとき、割り込み要因のグループが異なるため、要因＃２のカウンタ値は変更されない。その後、周期５の期間で要因＃１の割り込み要因ａ５が発生した時（ステップＢ２２のＹｅｓ）、要因＃１のカウンタ値は２（≠ゼロ）となっている（ステップＢ２５のＮｏ）。したがって、信号生成部２６は、タイマ値がゼロではないものの、割り込み要因ａ５の発生後直ちに、要因＃１のカウンタ値を−１デクリメントするとともに（ステップＢ２７）、割り込み信号ｂ３を生成し（ステップＢ２８、ステップＡ２３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ２１）。このとき、割り込み要因のグループが異なるため、要因＃２のカウンタ値は変更されない。もともとの周期５の終了タイミングでは、タイマ値はカウントダウンを続けており（ステップＢ２３のＮｏ）、要因＃１、要因＃２ともカウンタ値は変化しない。
【００６６】
周期６において要因＃１の割り込み要因ａ６が発生した時（ステップＢ２２のＹｅｓ）、要因＃１のカウンタ値は１（≠ゼロ）となっている（ステップＢ２５のＮｏ）。したがって、信号生成部２６は、タイマ値がゼロではないものの、割り込み要因ａ６の発生後直ちに、要因＃１のカウンタ値を−１デクリメントしてゼロとするとともに（ステップＢ２７）、割り込み信号ｂ４を生成し（ステップＢ２８、ステップＡ２３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ２１）。このとき、割り込み要因のグループが異なるため、要因＃２のカウンタ値は変更されない。その後、周期６の期間内で要因＃１の割り込み要因ａ７、ａ８が発生しているが（ステップＢ２２のＹｅｓ）、要因＃１のカウンタ値がゼロである（ステップＢ２５のＹｅｓ）。したがって、信号生成部２６は、それぞれの割り込み要因からすぐに割り込みは生成せずにタイマ値がゼロになるのを待つ（ステップＢ２６のＹｅｓ）。ここで、要因＃２の割り込み要因ｃ２が発生すると、要因＃２のカウンタ値は３（≠ゼロ）となっている（ステップＢ２５のＮｏ）。したがって、信号生成部２６は、タイマ値がゼロではないものの、割り込み要因ｃ２の発生後直ちに、要因＃２のカウンタ値を−１デクリメントしてゼロとするとともに（ステップＢ２７）、割り込み信号ｂ５を生成し（ステップＢ２８、ステップＡ２３のＹｅｓ）、タイマ値に初期値Ｎを再度ロードする（ステップＡ２１）。このとき、割り込み要因のグループが異なるため、要因＃１のカウンタ値は変更されない。もともとの周期６の終了タイミングでは、タイマ値はカウントダウンを続けておりゼロでないため（ステップＢ２３のＮｏ）、要因＃１、要因＃２ともカウンタ値は変化しない。
【００６７】
その後、タイマ値がカウントダウンしゼロになると（ステップＢ２６のＹｅｓ）、保留されていた割り込み要因＃１の割り込み要因ａ７、ａ８により割り込み信号ｂ６が生成される（ステップＢ２８、ステップＡ２３のＹｅｓ）。割り込み信号ｂ６を生成すると（ステップＢ２８、ステップＢＡ２３のＹｅｓ）、タイマ値はＮに再度ロードされ（ステップＡ２１）、要因＃１は割り込み要因ａ７、ａ８が発生しているためカウンタ値は値が変わらないが、要因＃２はカウンタ値が＋１インクリメントされる（ステップＢ２４）。
【００６８】
なお、割り込み要因＃１に対するカウンタ２４のカウント値および割り込み要因＃２に対するカウンタ２５のカウント値には、それぞれ所定の上限値が設定されており、カウント値が上限に達している場合には、インクリメント命令（ステップＢ２４）に対して同一の値が維持される。
【００６９】
また、カウンタの上限値は、グループ間の処理優先順位などで重みづけが可能である。例えば、実施形態１の構成でカウンタ上限値が６４である構成を本実施形態に基づき２つの割り込み要因グループに分離し、要因＃１と要因＃２の重みづけが１：３の場合には、要因＃１カウンタの上限値を１６に設定し、要因＃２カウンタの上限値を４８に設定する。
【００７０】
本実施形態の割り込み信号生成装置２０による課題解決のメカニズムは、基本的に第１の実施形態の場合と同様である。本実施形態では、同一の割り込み信号をシェアする複数の割り込み要因グループがある場合に、それぞれの要因グループ毎に実施形態１の割り込み信号生成処理の効果を導入し、グループ間の割り込み信号生成の重み付けを可能にする。これにより、優先順位の高い要因に対して効率的に割り込み信号を生成し、Ｉ／Ｏコントローラの処理性能を改善することができる。
【００７１】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７２】
１０，２０    割り込み信号生成装置
１２，２２    タイマ
１４，２４，２５    カウンタ
１６，２６    信号生成部
ａ１〜ａ８，ｃ１，ｃ２    割り込み要因
ｂ１〜ｂ６    割り込み信号
【図１】
2012146150.tif 000003
【図２】
2012146150.tif 000004
【図３】
2012146150.tif 000005
【図４】
2012146150.tif 000006
【図５】
2012146150.tif 000007
【図６】
2012146150.tif 000008