(57)【特許請求の範囲】
【請求項１】
複数の割り込み入力に対し優先度に基づいて割り込み要求を発生する割り込み制御装置であって、
割り込み入力に対応するチャネル番号を優先度の順で保持するキュー回路と、
いずれかのチャネル番号に対応する優先度が変化した場合に、新たな優先度の順に従って前記キュー回路に保持されるチャネル番号の順を変更するキュー制御回路と、
発生させる割り込み要求信号毎に、複数の割り込み信号から一の割り込み信号を選択するセレクタを有し、それぞれのセレクタの選択信号に、前記キュー回路が保持するチャネル番号をそれぞれ割り当てる割り込み要因選択回路と、
を備えることを特徴とする割り込み制御装置。
【請求項２】
前記キュー制御回路は、プロセッサからの割り込み優先度設定情報に基づいて、前記キュー回路に保持されるチャネル番号の順を変更することを特徴とする請求項１記載の割り込み制御装置。
【請求項３】
前記割り込み要因選択回路は、それぞれの前記セレクタが選択したそれぞれの割り込み信号を優先度の順に並べて前記割り込み要求信号として出力し、
前記割り込み要因選択回路からそれぞれの前記割り込み要求信号を入力し、前記割り込み要求信号毎の前記割り込み要求の発生の有無を前記優先度の順に探索し、前記割り込み要求の発生があることを見出した場合にプロセッサに向けて割り込み要求に係る通知を行う優先度選択回路をさらに備えることを特徴とする請求項１または２記載の割り込み制御装置。
【請求項４】
前記キュー回路は、チャネル番号と該チャネル番号における優先度のレベルを表すチャネル優先度との対を優先度の順に並べる構成とされ、
前記優先度設定情報は、指定したチャネル番号における新たなチャネル優先度の設定情報であって、
前記キュー制御回路は、前記新たなチャネル優先度が優先度の順に並ぶように、前記指定したチャネル番号を入れ替えることを特徴とする請求項２記載の割り込み制御装置。
【請求項５】
前記キュー制御回路は、前記新たなチャネル優先度が既存のチャネル優先度に一致する場合には、同じチャネル優先度が連続順となるように、前記指定したチャネル番号を入れ替えることを特徴とする請求項４記載の割り込み制御装置。
【請求項６】
前記キュー回路は、チャネル番号を優先度の順に並べる構成とされ、
前記優先度設定情報は、指定したチャネル番号における新たな優先度の設定情報であって、
前記キュー制御回路は、前記新たな優先度が優先度の順に並ぶように、前記指定したチャネル番号を入れ替えることを特徴とする請求項２記載の割り込み制御装置。
【請求項７】
前記キュー制御回路は、前記割り込み入力の有無に関わらず、前記優先度設定情報に基づいて前記キュー回路に保持されるチャネル番号の順を変更することを特徴とする請求項２記載の割り込み制御装置。
【請求項８】
複数の割り込み入力に対し優先度に基づいて割り込み要求を発生する制御装置が割り込みを制御する方法であって、
割り込み入力に対応するチャネル番号を優先度の順でキュー回路に保持するステップと、
いずれかのチャネル番号に対応する優先度が変化した場合に、新たな優先度の順に従って前記キュー回路に保持されるチャネル番号の順を変更するステップと、
発生させる割り込み要求信号毎に、複数の割り込み信号から一の割り込み信号を選択するセレクタに関し、それぞれのセレクタの選択信号に、前記キュー回路が保持するチャネル番号をそれぞれ割り当てるステップと、
を含むことを特徴とする割り込み制御方法。
【請求項９】
前記キュー回路に保持されるチャネル番号の順を変更するステップにおいて、プロセッサからの割り込み優先度設定情報に基づいて変更することを特徴とする請求項８記載の割り込み制御方法。
【請求項１０】
前記割り当てるステップにおいて、それぞれの前記セレクタが選択したそれぞれの割り込み信号を優先度の順に並べて前記割り込み要求信号として出力し、
それぞれの前記割り込み要求信号を入力し、前記割り込み要求信号毎の前記割り込み要求の発生の有無を前記優先度の高い順に探索し、前記割り込み要求の発生があることを見出した場合にプロセッサに向けて割り込み要求に係る通知を行うステップをさらに含むことを特徴とする請求項８または９記載の割り込み制御方法。
【請求項１１】
チャネル番号と該チャネル番号における優先度のレベルを表すチャネル優先度との対を優先度の順に前記キュー回路に並べ、
前記優先度設定情報は、指定したチャネル番号における新たなチャネル優先度の設定情報であって、
前記キュー回路に保持されるチャネル番号の順を変更するステップにおいて、前記新たなチャネル優先度が優先度の順に並ぶように、前記指定したチャネル番号を入れ替えることを特徴とする請求項９記載の割り込み制御方法。
【請求項１２】
前記キュー回路に保持されるチャネル番号の順を変更するステップにおいて、前記新たなチャネル優先度が既存のチャネル優先度に一致する場合には、同じチャネル優先度が連続順となるように、前記指定したチャネル番号を入れ替えることを特徴とする請求項１１記載の割り込み制御方法。
【請求項１３】
チャネル番号を優先度の順に前記キュー回路に並べ、
前記優先度設定情報は、指定したチャネル番号における新たな優先度の設定情報であって、
前記キュー回路に保持されるチャネル番号の順を変更するステップにおいて、前記新たな優先度が優先度の順に並ぶように、前記指定したチャネル番号を入れ替えることを特徴とする請求項９記載の割り込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御装置及び割り込み制御方法に関し、特に、割り込みチャネルに与えられる優先度に基づいてプロセッサに割り込みを通知する割り込み制御装置及び割り込み制御方法に関する。
【背景技術】
【０００２】
近年のディジタル技術の発展には、ディジタル情報の処理を行うプロセッサの性能向上が大きな役割を果たしている。サーバーやＰＣなどで使用されるプロセッサは、処理速度の速さや時間当たりの処理能力の高さが性能の指標となる。これに対し、携帯情報機器やディジタル家電などで使われる組み込み向けのプロセッサでは、割り込み性能も重要な性能指標である。例えば携帯電話に様々な機能を搭載したり自動車の電子制御化を実現したりするためには、プロセッサコアの処理性能を高くするだけではなく、その周辺にオンチップや別チップでタイマなどの周辺回路の他に特定の処理向けの専用回路も搭載する。通常、これらの回路が処理の完了や異常をプロセッサコアへ通知するために割り込みが用いられる。プロセッサコアの周辺回路が増えると割り込み数も増加するために、プロセッサコアと周辺回路との間には、周辺回路からの割り込み要求を管理し適切な要求をプロセッサコアへ通知するための割り込みコントローラが搭載される。つまり組み込み向けのプロセッサでは、この割り込みコントローラの性能の高さも重要となる。
【０００３】
割り込みコントローラの性能指標のひとつに、入力できる割り込みの数が挙げられる。割り込みを発生させる元としては、ＤＭＡＣ（Direct Memory Access Controller）、タイマ、シリアルインタフェースなどに加え、先に挙げた専用回路や、複数のプロセッサコアなど様々なものが増えてきている。これら多数の割り込み入力要因に対し、接続チャネル数の増加と同時に多数発生する割り込みを処理するためには、より効率的に処理できる仕組みが必要となる。
【０００４】
割り込みコントローラは、割り込みの発生をプロセッサコアに通知する役割を担う。割り込みが発生してからプロセッサコアがそれに対応した処理を開始できるまでには多少の時間差があるため、その間に複数の割り込みが発生することがある。プロセッサコアは、一度に一つの割り込みしか処理できないために、複数の割り込みが発生した場合には、割り込みコントローラがこれら複数の割り込み要因の中から適切なものを一つ選択してプロセッサコアへ通知する。適切な要因を選択するための判断基準として、各割り込み要因に対し、割り込みの優先度が与えられる。この優先度の種別は、以下のように大きく２つに分かれる。
【０００５】
一つ目は、回路設計時に決定される固定された優先度である。外部要因からの割り込み入力が接続される入力ポートには、管理のために番号が振られるが、例えばこのポート番号の小さい順に優先度が高いものとして割り込みの選択回路を作るのがこの一つ目の方法である。例えばポートの３番と７番に同時に割り込みが入ると、ポート番号の小さい３番が常に選択される。回路設計時に優先度が決定されるために、各ポートへの周辺回路の接続順番が重要であり、使用される製品によってはポートの接続順番を変更する必要があるなど運用に柔軟性を欠く。一方、複数の割り込みが発生していてもポート番号の小さい順番で選択すれば良いので、選択回路を簡単に構成することができるという利点がある。選択回路の回路遅延は、接続される割り込み要因数のみに依存する。この一つ目の優先度のことを固定優先度と呼ぶことにする。
【０００６】
二つ目は、回路設計後も変更することができる可変な優先度である。各入力ポートに対し優先度値を保持するレジスタなどの記憶手段を設けておき、複数の割り込み要因から一つを選択する場合は、この優先度値を比較して最も優先度が高い要因を選択する。この優先度値は、製品での運用時にソフトウェアによって設定され、必要に応じて変更することが可能である。そのため、周辺回路を入力ポートへ接続する順番をあまり考慮する必要がなく、使用する製品毎に適切な割り込み優先度を周辺回路へ与えることができるために運用を柔軟にできる利点がある。一方、多数の割り込み要因の中から最も優先度が高いものを選択しなければならないために、選択回路は、非常に複雑になってしまう欠点がある。選択回路の回路遅延は、接続される割り込み要因数に加え、設定可能な割り込み優先度レベル数にも依存する。この二つ目の優先度のことを可変優先度と呼ぶことにする。このような可変優先度による割り込み処理の例は、特許文献１で開示されている。
【０００７】
多くの割り込みコントローラでは、これら２種類の優先度を両方とも用いている。例えば割り込みが入力されると、まずは可変優先度を比較して割り込み要因の選択を行う。さらに、複数のポートに同じ優先度値が設定されていた場合は、今度は固定優先度に従って割り込み要因を選択する。つまり割り込みが発生すると、２種類の優先度について優先順位判定を行うことになる。
【０００８】
次に、許文献１で開示されている可変優先度について本発明に関連する主要部に限定して説明する。図１３は、特許文献１で開示されている割り込みコントローラの構成を示す図である。割り込みコントローラ１００は、割り込みの入力ポートを２００一つしか持たないが、図１３の構成を必要な割り込み要因の数だけ用意することで多数の割り込み入力に対応する。割り込みコントローラ１００は、ポート２００から割り込みが入力されると、それをポート２０１から出力する。ポート２０１からの出力は、全ての割り込みポートの論理和が取られ、まずは割り込み入力があることがプロセッサコアに通知される。割り込み要求を受け取ったプロセッサコアは、割り込み処理が受け付け可能となると、割り込みコントローラ１００へアクノリッジを返す。アクノリッジを受けた割り込みコントローラ１００は、ＡＢＴ−ＢＵＳトランシーバ１０８の出力ゲートを開けてレジスタ１０６に保持している割り込み優先度をＡＢＴ−ＢＵＳ２０４へ出力する。ＡＢＴ−ＢＵＳトランシーバ１０８の出力は、レジスタ１０６のビットの値が１の場合にハイインピーダンスとなり、０の場合にローレベルとなるオープンコレクタ出力である。例えば１クロックサイクル後といった一定時間が経過した場合、アービトレーションビット比較器１０９は、ＡＢＴ−ＢＵＳ２０４の値と自分の優先度レジスタ１０６の値とを最上位ビットから最下位ビットまで１ビット毎に１クロック間隔で比較する。
【０００９】
レジスタの値が１の場合にＡＢＴ−ＢＵＳ２０４は、ハイインピーダンスであるので、ＡＢＴ−ＢＵＳ２０４に接続された他の割り込みコントローラが０を出力している場合に、Ａは１で、Ｂは０となるため比較結果は不一致となる。優先度レジスタの値が小さい方が高い優先度であるとすると、不一致が検出されることは、自分よりも優先度の高い割り込みが存在することになる。この場合は、それ以後のビット比較を中止し、ＡＢＴ−ＢＵＳトランシーバ１０８の出力ゲートを閉じる。このように他のポートとの優先度の比較を継続して行って最下位ビットまで一致が確認された場合に、アービトレーション制御部１１０は、自分が最も優先度が高い要求でありプロセッサコアへ要求を通知する権利を獲得したと判断する。その後、ゲート１０５を開いて割り込みベクタレジスタ１０３の値をＤＡＴＡ端子２０３に出力する。プロセッサコアは、ＤＡＴＡ端子２０３に出力された割り込みベクタを受け取り、割り込み処理へ移行する。
【００１０】
なお、特許文献１では触れられていないが、図１３の構成では、可変優先度に関する調停のみ行い、固定優先度での調停を行うことができないため、複数のポートに同じ優先度を設定することはできない。
【００１１】
【特許文献１】特開平１１−１４９３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
特許文献１で開示されている割り込みコントローラ１００は、割り込みが発生してから各要因の優先度を比較しプロセッサコアへ通知する要因を選択する。しかし前述の通りプロセッサへ入力される割り込み要因の数は、増加傾向にあり、それに伴い可変優先度のレベル数も増加傾向にある。これは、要因の数が増加しているのに対して可変優先度のレベルを増やさなければ、それだけ固定優先度によって優先順位が縛られてしまう割り込み要因が増えてしまうことを意味する。
【００１３】
しかしながら、割り込み要因が増加するほど割り込み要因の間での優先順位付けは難しくなる。また、プロセッサが使用されるシステムによってそれぞれの割り込み要因に必要とされる優先順位も異なってくる。さらに、実際にチップが完成した後もプロセッサの使用状況に合わせて適切な優先順位を各要因に与えることが出来る必要がある。
【００１４】
このような割り込みの要因数と優先度レベルが増えることは、それだけ１つの要因を選択するために必要とされる時間が長くなることを意味する。単純な固定優先度での選択でさえ要因数が増えればそれだけ時間が長くなってしまう。さらに優先度レベルが増えることで、優先度を比較するための回路が大きくなって処理が遅くなり、要因数が増えることで比較する回数も増えるために、比較結果が判明するまでの時間が長くなる。
【００１５】
例えば図１３に示した従来技術では、優先度レジスタのビットを順番に比較することで最も優先度が高いポートを選択している。もしこの方式で優先度レベル数が１６から６４へと増えた場合、ビットの比較回数は、４回から６回へと増加し、回路遅延も４サイクルから６サイクルへと２サイクル増加してしまう。
【００１６】
このように割り込みが入力されてから要因の選択が終了するまでの時間が延びてしまうと、割り込み性能が悪化し、あるいは動作周波数の低下を招いてしまう。これらを回避するためには、回路の複雑な作り込みが必要となる。しかし、性能低下を回路の作り込みで対応してしまうと、要因数や優先度レベルを拡張する場合の対応が難しくなってしまう虞がある。
【課題を解決するための手段】
【００１７】
そこで、本発明者は、割り込みが入力されてから要因の選択が終了するまでの時間が延びないようにするためには、割り込み要因数や優先度レベル数に出来る限り依存しない要因選択方法を、回路の実装技術に依存しないアルゴリズミックな手法で実現すれば良いと考え、本発明を創案するに至った。
【００１８】
本発明の１つのアスペクトに係る割り込み制御装置は、複数の割り込み入力に対し優先度に基づいて割り込み要求を発生する。この割り込み制御装置は、割り込み入力に対応するチャネル番号を優先度の順で保持するキュー回路と、いずれかのチャネル番号に対応する優先度が変化した場合に、新たな優先度の順に従ってキュー回路に保持されるチャネル番号の順を変更するキュー制御回路と、発生させる割り込み要求信号毎に、複数の割り込み信号から一の割り込み信号を選択するセレクタを有し、それぞれのセレクタの選択信号に、キュー回路が保持するチャネル番号をそれぞれ割り当てる割り込み要因選択回路と、を備える。
【００１９】
本発明の１つのアスペクトに係る割り込み制御方法は、複数の割り込み入力に対し優先度に基づいて割り込み要求を発生する制御装置が割り込みを制御する方法である。この方法は、割り込み入力に対応するチャネル番号を優先度の順でキュー回路に保持するステップと、いずれかのチャネル番号に対応する優先度が変化した場合に、新たな優先度の順に従ってキュー回路に保持されるチャネル番号の順を変更するステップと、発生させる割り込み要求信号毎に、複数の割り込み信号から一の割り込み信号を選択するセレクタに関し、それぞれのセレクタの選択信号に、キュー回路が保持するチャネル番号をそれぞれ割り当てるステップと、を含む。
【発明の効果】
【００２０】
本発明によれば、変化した優先度の順に従ってキュー回路に保持されるチャネル番号の順を変更し、優先度レベル数に無関係に要因選択を行うことで、割り込みが入力されてから要因の選択が終了するまでの時間を短くすることができる。
【発明を実施するための最良の形態】
【００２１】
本発明の実施形態に係る割り込みコントローラは、複数の割り込み入力に対し優先度に基づいて割り込み要求を発生する。また、割り込みコントローラ（図１の１０）は、割り込み入力に対応するチャネル番号（要因番号）を優先度の順で保持するキュー回路（図１の１１）と、いずれかのチャネル番号に対応する優先度が変化した場合に、新たな優先度の順に従ってキュー回路に保持されるチャネル番号の順を変更するキュー制御回路（図１の１２）と、を備える。
【００２２】
キュー回路は、優先度レベル数に依存しないで割り込み要求を生成するために優先度の高い順番でチャネル番号を保持する。キュー回路内に保持されるチャネル番号の順番は、各チャネル番号の優先度が変化した場合に新たな優先度に従ってキュー制御回路によって変更され、この変更は割り込みの入力とは無関係な優先度の設定時に行われる。ＣＰＵ（図１の２０）へ通知する割り込みを選択するには、このキュー回路に保持されているチャネル番号について、キューの先頭から順番に割り込み要求があるかどうかを調べて行く。これは各チャネル番号の割り込み要求の有無を優先度の高い順番に探索していくことを意味する。
【００２３】
このように割り込み要因の選択時には可変な優先度を考慮する必要がないので、選択に必要な時間は、優先度のレベル数とは無関係になる。選択に必要な時間は、要因数にのみ依存するため、割り込みコントローラの高機能化による遅延時間の増加を抑えることが出来る。また、それを実現するために回路の作り込みを行うのではなく簡単なキュー回路を利用した手法を用いるため、保守性と拡張性に優れた割り込みコントローラを実現することができる。以下、実施例に即し、図面を参照して詳細に説明する。
【実施例１】
【００２４】
図１は、本発明の実施例に係る割り込みコントローラの構成を示すブロック図である。割り込みコントローラ１０は、割り込み信号４１、４２、・・４ｎを入力して、割り込み信号に対応する優先度に基づいて、ＣＰＵ２０に対して割り込み要求信号５１、割り込みベクタ信号５２を出力する。ＣＰＵ２０内の割り込み受付回路２１は、割り込み要求信号５１、割り込みベクタ信号５２を受け取ると、割り込み受付応答信号５３を割り込みコントローラ１０に返すと共に、ＣＰＵ２０は、割り込みベクタ信号５２に応じた割り込み処理を実行する。
【００２５】
割り込みコントローラ１０は、キュー回路１１、キュー制御回路１２、割り込み要因選択回路１５、固定優先度選択回路１６、割り込み要求生成回路１７を備える。また、キュー制御回路１２は、エントリ入れ替え制御回路１３、入れ替え対象選択回路１４を備える。さらに、ＣＰＵ２０は、割り込み受付回路２１、割り込み優先度設定回路２２を備える。
【００２６】
キュー回路１１は、優先度の順で割り込み要求の要因番号（チャネル番号）を保持する。より具体的には、例えば図２に示すようにキュー回路１１の各エントリ番号１〜１２８に対応して、チャネル番号とそのチャネル番号に与えられる可変優先度情報であるチャネル優先度の対（例えば、エントリ番号１に対してチャネル番号ＩＮＴ１１とチャネル優先度０、エントリ番号２に対してチャネル番号ＩＮＴ０とチャネル優先度３、・・）から構成される。ここでチャネルとは、各割り込み要因が発生する割り込み要求入力を接続する割り込みコントローラのポートやフラグレジスタなどの回路一式のことを意味する。チャネルには、ＩＮＴ０から割り込みコントローラ１０が備える最大の割り込み入力数までのチャネル番号が振られており、割り込みコントローラ１０内では各割り込み要因をチャネルに割り当てられているチャネル番号で識別する。
【００２７】
また、図２に示すようにキュー回路１１に保持されているチャネル番号は、各チャネルに与えられている可変優先度の高い順番に並んでいる。つまりキュー回路１１を先頭のエントリ番号１から順番に参照して得られるチャネル番号は、チャネル間の優先度の高い方からの順番になる。
【００２８】
キュー制御回路１２は、キュー回路１１におけるチャネル番号の優先度の変更がＣＰＵ２０から要求された場合に、キュー回路１１の保持するチャネル番号の順番を変更する。この場合、割り込み優先度設定回路２２からチャネルの可変優先度を変更するために必要な情報である優先度信号５４およびチャネル番号信号５５が送られる。入れ替え対象選択回路１４は、キュー回路１１からチャネル番号を示すチャネル番号信号３４とその優先度を示すチャネル優先度信号３３とを入力して現在の各チャネルが保持する優先度を調べる。そして、優先度が変更されるチャネルが新たに何番目のエントリに変更になるのか、これに伴ってキュー回路１１内でエントリの順番が変更されるチャネル番号はどれであるかを検出する。エントリ入れ替え制御回路１３は、入れ替え対象選択回路１４からの検出結果に基づく変更対象に関する情報である入替対象情報信号３５を受け取って、キュー回路１１内の順番を入れ替えるようにエントリ入替信号３２をキュー回路１１に出力する。キュー回路１１は、エントリ入替信号３２を元にデータの入れ替えを行う。なお、キュー回路１１内の入れ替え動作に関しては、後に詳しく説明する。
【００２９】
割り込み要因選択回路１５は、割り込み信号４１〜４ｎを外部から入力し、割り込み優先順番に並んだ優先度情報を示すチャネル番号３１をキュー回路１１から入力して、割り込み信号４１、４２、・・４ｎにおける割り込みを、キュー回路１１に格納されているチャネルの優先度の順番に基づいて選択する。
【００３０】
図３は、割り込み要因選択回路１５の構成を示すブロック図である。割り込み要因選択回路１５は、セレクタ１５１〜１５ｍを備える。セレクタ１５１〜１５ｍは、それぞれキュー回路１１に格納されているチャネル番号に相当する割り込みが割り込み信号４１〜４ｎに存在するか否かを判定し、割り込みがあった固定チャネル信号６１〜６ｍの対応する信号をアクティブとする。すなわち、キューの各エントリに配置されているチャネル番号が何番であるかを調べ、それに対応するチャネルの割り込み要求を出力する。例えば、セレクタ１５１は、割り込み信号４１〜４ｎ中にＩＮＴ７に対応する割り込みがあった場合に、固定チャネル信号６１をアクティブとして出力する。
【００３１】
固定優先度選択回路１６は、固定チャネル信号６１〜６ｍを入力し、固定チャネル信号６１〜６ｍに１以上のアクティブな信号が存在する場合に、固定チャネル信号６１〜６ｍの優先順に従って割り込み通知信号７０を割り込み要求生成回路１７に出力する。
【００３２】
固定優先度選択回路１６において、優先順に従って割り込み要因を選択するフローチャートを図４に示す。前述したように優先度レベルは、優先度レベルに従って並べられたチャネル番号の順番という形で与えられる。そこで図４に示すように、割り込みチャネルを選択するために、まずキュー回路１１の先頭エントリのチャネルの割り込み要求の有無を調べる。すなわち、ステップＳ１１において、固定チャネル信号６１に割り込み要求があるかを調べる。
【００３３】
キュー回路１１の先頭エントリのチャネルに割り込み要求があった場合、そのチャネルが割り込み要求を持つチャネルの中で最も優先度が高いチャネルとなるため、割り込み要求生成回路１７を介してＣＰＵ２０へ、そのチャネル番号（つまりそのチャネルに接続されている割り込み要因）を通知し、チャネルの選択を終了する（ステップＳ２１）。しかしキューの先頭のチャネルが割り込み要求を持っていなかったり、あるいは割り込み要求がマスクされていたりすることもある。その場合（ステップＳ１１のＮ）は、キューの２番目のエントリに配置されているチャネルの割り込み要求の有無を調べ、先頭のエントリと同じ処理を行う（ステップＳ１２）。このように以降キューを順番にたどってそれぞれのエントリに配置されているチャネルが割り込み要求を持つかどうかを調べて行き、どこかのエントリに割り込み要求を見つけたならば、チャネルの選択（キューの探索）を終了する。
【００３４】
このようなキュー探索によって割り込み要求を持つチャネルの内、よりキューの先頭に近いエントリに配置されているチャネル番号、つまり割り込み要求を持つチャネルの中で最も優先度の高いチャネルが選択されてＣＰＵ２０へ通知されることになる。もし、エントリの最後に配置されているチャネル番号に対応する割り込み要求がない場合は、どの割り込み要因も割り込み要求を出していないことになり、ＣＰＵ２０へは何も通知しないでチャネル選択を終了する（ステップＳ１ｍのＮ）。この図４に示したフローチャートを実現する回路は、割り込み要因をキューの先頭から順番に選択していくという固定優先度回路に相当する。
【００３５】
割り込み要求生成回路１７は、割り込み通知信号７０を固定優先度選択回路１６から受け取って、割り込み受付回路２１に割り込み要求信号５１、割り込みベクタ信号５２を出力する。
【００３６】
割り込み受付回路２１は、割り込み要求信号５１、割り込みベクタ信号５２を受け取ると、割り込み受付応答信号５３を割り込み要求生成回路１７に返す。
【００３７】
以上のような割り込み処理において重要なことは、この一連の割り込み要求の探索（チャネル選択）に必要な時間は、チャネル数（割り込み要因数）にのみ依存し、優先度レベルには無関係となることである。従って優先度レベル数を増やしても回路の遅延時間は変化しない。また、キューの探索と言うと１サイクルに１つのエントリを調べるような印象を与えてしまうが、キューの探索は、可能であれば全て１サイクル内で行ってしまっても良い。このように複数のエントリに同時にアクセスする必要があるためにキュー回路１１は、ＲＡＭではなくレジスタで構成することが好ましい。これも割り込み要因選択回路と同様にチャネル数に依存する部分である。キューからの情報を用いたチャネル選択の後の動作は、固定優先度選択となる。
【００３８】
本発明において最も重要な役割を果たすのが割り込み選択順番を保持するキュー回路１１である。このキュー回路について詳しく説明する。前述したようにキュー回路１１における各エントリ番号は、チャネル番号とそれに対応するチャネル優先度との対から構成され、チャネル番号は、優先度の順番に並んでいる。このようなキュー回路１１は、以下の３つの特徴を持つ。
【００３９】
第１の特徴は、優先度レベルの拡張が非常に容易なことである。もし優先度レベルの拡張を行う場合には、単純にキューの優先度部分のビット数と後述する入れ替え対象選択回路１４の優先度比較部分のビット数を必要なだけ増やせば良い。優先度情報が使用されるのは、エントリの入れ替え時だけであるので、優先度を増やすことで割り込み要求の生成時間に影響を与えるようなことはない。
【００４０】
第２の特徴は、キュー回路は全てのチャネル番号を保持しており、それらの値は、一意であることである。複数のエントリが同じチャネル番号を持っていたり、キュー回路のエントリに保持されていないチャネル番号があったりするということはない。つまりキュー回路におけるエントリ数とチャネル数とは、同じである。
【００４１】
第３の特徴は、優先度レベルの数とチャネル数（キュー回路のエントリ数）とは無関係である。例えば、図２では、チャネル数は１２８であるが、優先度レベルは２５６の場合を示している。エントリ番号１２７と１２８では、保持しているチャネルの優先度レベルに７の差がある。一方、チャネル数より優先度レベル数を少なくすることも可能である。この場合、複数のエントリに同一の優先度を持つチャネルが配置されることになる。勿論、図２のように優先度レベルの数がエントリ数より多い場合でも、複数のエントリに同一の優先度を設定することは可能である。従来技術の特許文献１では、固定優先度に関する制御を持たないため、複数のポートに同じ優先度を設定することができない。しかし、本発明ではキューのエントリの順番として固定優先度を実現しているため、このように複数エントリに同じ優先度を設定することができる。
【００４２】
次に、キュー回路１１におけるエントリ内容の変更について説明する。チャネルに与える優先度を変更する場合、キュー回路１１のエントリ内容を変更しチャネルが並ぶ順番を新しく設定された優先度に従ったものに変更する。この設定の変更は、割り込み要求の生成とは無関係の時間に行われる。
【００４３】
キュー回路１１のキューの更新を行う場合の動作例を図５〜図７に示す。ここでは、エントリ番号（チャネル数）が１２８、優先度レベルが２５６（数値が小さい方が高い優先度レベルであるとする）であって、キューの内容が図５（ａ）に示される場合を考える。チャネル優先度（優先度レベル）が６４でエントリ３７番に配置されているチャネル番号ＩＮＴ５に新たに優先度レベル２を設定する要求をＣＰＵ２０が行ったとする。ＣＰＵ２０からは、チャネル番号ＩＮＴ５に２という優先度を設定するという要求が出される。これを元に、入れ替え対象選択回路１４がキューの内容について２つの検索を行う。
【００４４】
まず各エントリ番号における優先度を検索し、新しく設定する優先度がどのエントリ番号に配置されれば良いのかを決定する。現在のキューの状態ではエントリ番号１の優先度が０、エントリ番号２の優先度が３になっているため、優先度２はエントリ番号２に配置されるのが適当である。次に優先度が変更されるチャネル番号ＩＮＴ５が現在どのエントリに配置されているのかを検索し、エントリ番号３７という結果を得る。入れ替え対象選択回路１４は、これらの情報をエントリ入れ替え制御回路１３に渡す。エントリ入れ替え制御回路１３では、新しい配置先のエントリ番号と現在の配置エントリ番号とを比べ、キューの内容をどのように変更したら良いかを判断する。もし新しいエントリ番号と現在のエントリ番号とが同一であれば、何も行わずキューの入れ替え作業を終了する。
【００４５】
図５（ａ）に示したように、新しいエントリ番号が現在のエントリよりキューの先頭側になる場合は、図５（ｂ）に示すように新しいエントリから現在のエントリの一つ前までのエントリ内容について、優先度が低くなる方向へエントリ内容を１つずつシフトさせる。そして新しいエントリへ新しい設定を行う。
【００４６】
一方、図６（ａ）に示すようにチャネル番号ＩＮＴ５の優先度を２５０に設定する場合、つまりチャネル番号ＩＮＴ５の優先度を下げる場合は、図５（ａ）と同じようにまず新しく設定される優先度が配置されるエントリを探し、次にチャネル番号ＩＮＴ５の現在のエントリを探す。図６（ａ）では新しいエントリ番号は１２７であり、現在のエントリ番号は３７である。これらの情報を受け取ったエントリ入れ替え制御回路１３では、今度は新しいエントリから現在のエントリの一つ後ろまでのエントリの内容を優先度が高くなる方向へ１つシフトさせて、図６（ｂ）に示す構成となる。
【００４７】
また、前述のように、複数のエントリに同一の優先度を設定することが可能であるが、この場合、エントリの入れ替えを行うには複数の方法が考えられる。例えば図７（ａ）に示すように、エントリ番号１２７に配置されている優先度２４８のチャネル番号ＩＮＴ１６に優先度６４を設定しようとする場合であって、エントリ番号３７に配置されているチャネル番号ＩＮＴ５に既に同じ６４という優先度が設定されている場合を考える。
【００４８】
一つの方法は、優先度を設定された場合にチャネル番号の大小で決定する方法である。チャネル番号が小さい方を優先すると、エントリ番号３７にはチャネル番号ＩＮＴ５が残り、エントリ番号３８にチャネル番号ＩＮＴ１６を配置する（図７（ｂ））。あるいは、チャネル番号が大きい方を優先すると、その逆になる（図７（ｃ））。
【００４９】
また、他の方法は、先にその優先度が設定されていたチャネルを優先する方法、あるいは後からその優先度を設定したチャネルを優先する方法である。先に設定されている方を優先する場合には、エントリ番号３７がチャネル番号ＩＮＴ５であり、エントリ番号３８がチャネル番号ＩＮＴ１６である（図７（ｂ））。後から設定する方を優先する場合にはその逆となる（図７（ｃ））。
【００５０】
以上述べたエントリの入れ替え動作において、新しい優先度が配置されるエントリの検索や現在のエントリの検索には、複数サイクルをかけても良い。一方、チャネル番号入れ替えのためのシフト動作に複数サイクルを費やすと、その間に入った割り込み要求に正しい優先度を与えることができなくなるため、シフト動作は、１サイクルで完了させる必要がある。
【００５１】
以上説明したキュー回路１１におけるエントリの入れ替え動作は、割り込み要求の生成とは無関係の時間に行われる。このため、図８に示すように割り込み入力発生Ｔ１のタイミングｔ５から十分遡った例えばタイミングｔ１において可変優先度による選択時間をスタートさせることが可能である。このため割り込み入力発生Ｔ１のタイミングｔ５からは、固定優先度による選択時間と割り込み要因の選択時間とだけを経て割り込み要求発生Ｔ３を行うことができる。これに対し従来においては、割り込み入力発生Ｔ１のタイミングｔ５から可変優先度による選択時間と割り込み要因の選択時間とを経て割り込み要求発生Ｔ２を行う。したがって、本発明によれば、従来の手法から可変優先度による選択時間（優先度レベルによる判定時間）を取り除いて、割り込み要求の発生時刻を早めることができる。
【００５２】
また、図９に示すように、割り込み入力発生Ｔ２２から割り込み要求発生Ｔ２３までの割り込み要求の生成に必要な時間（タイミングｔ７〜ｔ９）に比べて非常に長い時間（タイミングｔ１〜ｔ６）を可変優先度による選択時間にかけることも可能である。
【００５３】
なお、図１０の割り込み入力発生Ｔ１２に示すように、優先度変更Ｔ１１によってキューの内容を変更している間に割り込み入力があった場合（Ｔ１２）は、更新前のキューの内容で割り込み要求を生成するようにする。
【００５４】
また、図１１に示すように、例えばチャネル３の優先度変更Ｔ３１によってキューの更新をしている間にＣＰＵ２０からのチャネル７の優先度変更（Ｔ３２）が続いた場合は、ＣＰＵ２０からの要求を、例えばＴ３３のように待たせるようにする。
【００５５】
以上で説明したように、割り込み選択順番を保持するキュー回路１１を用いることで、各チャネルに与えられる優先度レベルを増加させても割り込み要求の生成時間に影響を与えないようにすることが可能である。また、これらは回路の作り込みなどに依存することなく、簡単な構成のキュー回路によって実現することができる。
【実施例２】
【００５６】
図１２は、本発明の第２の実施例に係るキュー回路におけるデータ構成を示す図である。図１２では図２に示したキューの構成要素の内、チャネル優先度（優先度レベル部分）を含まないように構成される。これは各チャネルに与える可変優先度をエントリ番号そのもので表している場合に相当する。つまりチャネル数が１２８であれば、優先度レベル数も１２８となる。このキュー回路を用いた割り込み要求の生成方法は、実施例１の場合と同様である。
【００５７】
一方、チャネルの優先度の設定方法は、若干異なる。例えば図１２においてチャネル番号ＩＮＴ５に優先度２を設定しようとした場合、つまりエントリ番号２にチャネル番号ＩＮＴ５の優先度を上げようとした場合、すでにチャネル番号ＩＮＴ０がエントリ番号２に配置されている。ここで例えば、後からの設定が優先されるとすると、エントリ番号２にはチャネル番号ＩＮＴ５が配置され、チャネル番号ＩＮＴ０はエントリ番号３にシフトされる。エントリ番号３以下の内容もチャネル番号ＩＮＴ５があった３６番目のエントリまで順次シフトされる。これらのシフト動作は、図８に示すキュー回路の場合と同じである。シフト動作の結果、チャネル番号ＩＮＴ０の優先度は、以前に設定されたものと変わってしまうが、元々このキューは優先度の情報を持たないためやむを得ない。また、図１２において、ソフトウェアの設定による優先度は変化しなくても、より上位に他のチャネルが配置されればキュー内での優先順位は下がる。したがって、ソフトウェアの設定による優先度とキューでの優先度とを合わせた全体の優先度が以前に設定されたものと変わるという点で、図１２と図２とは同じことである。
【００５８】
図１２に示すキュー構成における利点は、回路が簡略化され回路面積を削減できることである。まず、キュー回路１１における優先度情報を保持する多数のレジスタを削減することができる。また、優先度を探索したり比較したりする回路が不要となり、入れ替え対象選択回路１４を簡素化することができる。
【００５９】
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものではなく、本願特許請求の範囲の各請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施例に係る割り込みコントローラの構成を示すブロック図である。
【図２】本発明の第１の実施例に係るキュー回路におけるデータ構成を示す図である。
【図３】本発明の実施例に係る割り込み要因選択回路の構成を示すブロック図である。
【図４】本発明の実施例に係る固定優先度選択回路の動作を表すフローチャートである。
【図５】キュー回路におけるデータ入れ替えの第１の変化の例を示す図である。
【図６】キュー回路におけるデータ入れ替えの第２の変化の例を示す図である。
【図７】キュー回路におけるデータ入れ替えの第３の変化の例を示す図である。
【図８】割り込みのタイミングを示す第１のタイミングチャートである。
【図９】割り込みのタイミングを示す第２のタイミングチャートである。
【図１０】割り込みのタイミングを示す第３のタイミングチャートである。
【図１１】優先度変更が重なった時を示すタイミングチャートである。
【図１２】本発明の第２の実施例に係るキュー回路におけるデータ構成を示す図である。
【図１３】従来の割り込みコントローラの構成を示すブロック図である。
【符号の説明】
【００６１】
１０  割り込みコントローラ
１１  キュー回路
１２  キュー制御回路
１３  エントリ入れ替え制御回路
１４  入れ替え対象選択回路
１５  割り込み要因選択回路
１５１〜１５ｍ  セレクタ
１６  固定優先度選択回路
１７  割り込み要求生成回路
２０  ＣＰＵ
２１  割り込み受付回路
２２  割り込み優先度設定回路
３１  チャネル番号
３２  エントリ入替信号
３３  チャネル優先度信号
３４  チャネル番号信号
３５  入替対象情報信号
４１、４２、・・４ｎ  割り込み信号
５１  割り込み要求信号
５２  割り込みベクタ信号
５３  割り込み受付応答信号
５４  優先度信号
５５  チャネル番号信号
６１、６２、・・６ｍ  固定チャネル信号
７０  割り込み通知信号
【図１】
0004817834.tif 000002
【図２】
0004817834.tif 000003
【図３】
0004817834.tif 000004
【図４】
0004817834.tif 000005
【図５】
0004817834.tif 000006
【図６】
0004817834.tif 000007
【図７】
0004817834.tif 000008
【図８】
0004817834.tif 000009
【図９】
0004817834.tif 000010
【図１０】
0004817834.tif 000011
【図１１】
0004817834.tif 000012
【図１２】
0004817834.tif 000013
【図１３】
0004817834.tif 000014