(57)【特許請求の範囲】
【請求項１】
データ処理システムであって、
複数の割り込み源から発する割り込み信号を受信しかつ処理するプロセッサ手段と、
前記割り込み源を示す各割り込み源信号を受信しかつ記憶する割り込みレジスタ手段と、
前記プロセッサ手段からのプログラミング信号に応じて、前記複数の割り込み源をグループ化して複数の割り込み源グループを確立する関連づけ手段と、
前記関連づけ手段に応答して、複数のグループ信号であって、その各々が、対応する割り込み源グループに属する少なくとも一個の割り込み源からの割り込み源信号が前記割り込みレジスタ手段において記憶されていることを示すもの、を受信しかつ記憶するグループレジスタ手段と、
前記割り込みレジスタ手段が割り込み源信号を受信するときに、前記プロセッサ手段に割り込み信号を送信する送信手段と、を具備し、
前記プロセッサ手段は、前記関連づけ手段が、前記データ処理システムの作動状態に基づいて前記複数の割り込み源グループを確立するように、前記関連づけ手段に前記プログラミング信号を送るようプログラムによって機能せしめられ、
前記関連づけ手段によって確立される前記複数の割り込み源グループは、第１の優先順位グループと第２の優先順位グループとからなり、前記第１の優先順位グループは、前記複数の割り込み源の一個である特定割り込み源からなり、前記第２の優先順位グループは、前記複数の割り込み源の残りの全てからなり、
前記プロセッサ手段は、前記送信手段から前記割り込み信号を受信したとき、前記第１の優先順位グループに対応するグループ信号が、前記グループレジスタ手段に記憶されているかどうかを判定し、記憶されていれば、前記割り込みレジスタ手段をリードすることなく、前記特定割り込み源から発する割り込みを処理する所定のルーチンを実行するようプログラムによって機能せしめられる、
データ処理システム。
【請求項２】
前記プロセッサ手段は、また、前記送信手段から前記割り込み信号を受信したとき、前記第２の優先順位グループに対応するグループ信号が、前記グループレジスタ手段に記憶されているかどうかを判定する、請求項１に記載のデータ処理システム。
【請求項３】
前記特定割り込み源から発する割り込みを処理する前記所定のルーチンを実行することにより、前記プロセッサ手段は、前記第２の優先順位グループに属する一個の割り込み源が、前記特定割り込み源に代わって前記第１の優先順位グループに再割り当てされ、前記特定割り込み源が前記第２の優先順位グループに再割り当てされるように、前記関連づけ手段にプログラミング信号を送る、請求項１に記載のデータ処理システム。
【請求項４】
データ処理システムであって、
複数の割り込み源から発する割り込み信号を受信しかつ処理するプロセッサ手段と、
前記割り込み源を示す各割り込み源信号を受信しかつ記憶する割り込みレジスタ手段と、
前記プロセッサ手段からのプログラミング信号に応じて、前記複数の割り込み源をグループ化して複数の割り込み源グループを確立する関連づけ手段と、
前記関連づけ手段に応答して、複数のグループ信号であって、その各々が、対応する割り込み源グループに属する少なくとも一個の割り込み源からの割り込み源信号が前記割り込みレジスタ手段において記憶されていることを示すもの、を受信しかつ記憶するグループレジスタ手段と、
前記割り込みレジスタ手段が割り込み源信号を受信するときに、前記プロセッサ手段に割り込み信号を送信する送信手段と、を具備し、
前記プロセッサ手段は、前記関連づけ手段が、前記データ処理システムの作動状態に基づいて前記複数の割り込み源グループを確立するように、前記関連づけ手段に前記プログラミング信号を送るようプログラムによって機能せしめられ、
前記プロセッサ手段は、前記送信手段から前記割り込み信号を受信した場合において、前記複数の割り込み源の一個である特定割り込み源が属する割り込み源グループに対応するグループ信号が前記グループレジスタ手段に記憶されていると判定したとき、前記割り込みレジスタ手段をリードすることなく、前記特定割り込み源からの割り込みを処理する所定のルーチンを実行する、
データ処理システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、プロセッサ基礎システム（ｐｒｏｃｅｓｓｏｒ−ｂａｓｅｄ  ｓｙｓｔｅｍ）において割り込みを処理する技術に関し、より詳細には、割り込み処理ルーチンの効率を改善するために、複数の割り込み源を少なくとも１つのグループに結合する割り込み処理技術に関する。
【０００２】
【従来の技術】
プロセッサ基礎システムにおいては、いわゆる「割り込み」を利用して、マイクロプロセッサ又はマイクロコントローラのような処理装置のプログラム制御フローを変更し、プロセッサが実時間事象に応答することができるようにすることがよく知られている。典型的な適用例においては、かかる事象として、プロセッサによって制御されるシステムによるデータ送受信が含まれるであろう。
【０００３】
プロセッサが応答することを要求される種々の事象が存在するときには、一般的に、等しい数の種々のルーチン（「割り込み処理ルーチン」と呼ばれる）が要求され、そしてまた、適当な割り込み処理ルーチンが開始されかつ実行されるように、どの事象が起こったかをプロセッサが決定できることが必要である。
【０００４】
複数の割り込み誘発事象（時には「割り込み源（ｉｎｔｅｒｒｕｐｔ  ｓｏｕｒｃｅ）」と呼ばれる）のうちのどれが起こったかを決定する周知技術の１つは、可能性のある割り込み源の各々に、プロセッサパッケージ上の端子ピンを別個に割り当てるというものである。その場合、その各割り込みピンの特定の１つにて受信される信号が、各割り込み源の各々から発する割り込みの発生を示している。しかしながら、多数の端子ピンをプロセッサに設けることには限界があり、また、ある種のプロセッサ基礎システムでは、可能性のある割り込み源の数が大きなものとなるかもしれない。その結果、２又はそれ以上の割り込み源によって単一の割り込みピンを共用する技術が開発された。よく知られているように、かかる場合、その共用されるピンは、複数の割り込みを受信するために使用される唯一のピンであってもよいし又はそうでなくてもよく、他の割り込みピンが存在するときには、それら他の割り込みピンは、共用されてもよいし又はされなくてもよい。
【０００５】
単一の割り込みピンを２又はそれ以上の割り込み源によって共用するときには、どの割り込み源から割り込みが生じたかを決定する問題について、再び論じなければならない。この問題を解決する周知方法の１つは、割り込み状態レジスタに複数の記憶場所を設け、その各々が、各割り込み源が割り込みを発したことを信号伝達するフラグとして作用するようにする、というものである。割り込み信号がその共用ピンにて受信されるときには、プロセッサは、源決定ルーチンを実行する。すなわち、そのルーチンにおいて、プロセッサは、割り込み状態レジスタ内の１又は２以上のフラグをリードし、次いでさらに、どの１または複数のフラグが「オン」になっているかについての決定に基づいて適当な割り込み処理ルーチンを実行する。この技術は、満足な結果を伴って使用されてきたが、それでもやはり、多数の割り込み源が１つの共通の割り込み要求ピンを共用するときには、割り込みの源が決定されるまで、割り込み状態レジスタをフラグごとにチェックするのに、比較的長時間を必要とする可能性がある。例えば、（ａ）１６の異なる割り込み源が共通の割り込み要求ピンを共用する、（ｂ）割り込みの発生はそれらの割り込み源間でランダムに分布する、（ｃ）割り込み状態レジスタの１つのフラグをチェックするのにＮクロックサイクルが必要である、という３つの仮定をすると、必要な割り込み処理ルーチンの開始に先立って、割り込み状態レジスタのフラグをチェックするのに、平均で（１７／２）×Ｎクロックサイクルかかってしまう。また、例えばイチヤス（Ｉｃｈｉｙａｓｕ）らによる米国特許第  ４，９０８，７４５号におけるような解決法も提案されており、それにおいては、割り込み源をグループに分割し、現割り込み源を含むグループを指示するための論理回路を設け、その指示されたグループ内での各割り込みに対応する各フラグのみチェックする必要があるようにしている。しかしながら、イチヤスらによって使用されたアプローチによりかつて確立されたグループ化法は、固定されたものであり、柔軟性を欠くものである。応答時間及び割り込み処理オーバヘッドを低減する他の周知のアプローチは、より頻繁に遭遇する割り込み源に対し、より高い優先順位を割り当てるというものである。
【０００６】
増大するデバイスの複雑さ及び集積回路パッケージのサイズを縮小させるという要望とともに、１つの共通の割り込み要求ピンを共用する割り込み源がますます増える傾向があり、また、割り込みの源を決定する上でのより効率的で柔軟性のあるアプローチについての必要性が存在する。
【０００７】
【発明が解決しようとする課題】
したがって、本発明の目的は、前述した問題を消去し又は軽減する方法及び装置を提供することにある。詳細には、本発明の目的は、従来の装置及び方法よりも平均的に、より迅速に割り込み処理ルーチンをプロセッサが実行するように、割り込み源をグループ化し、割り込み源間の優先順位を割り当てる上での、柔軟性及び効率性を提供することにある。
【０００８】
【課題を解決するための手段】
本発明によれば、前述の目的は、複数の割り込み源から割り込み信号を受信するデータ処理システムにおいて、前記割り込み源間の優先順位を確立する方法であって、前記データ処理システムによってそのとき示される作動状態の関数として、前記割り込み源の少なくとも１つを第１の優先順位グループに割り当てるステップと、残りの割り込み源を少なくとも第２の優先順位グループに割り当てるステップと、を具備してなる割り込み源間の優先順位確立方法、を設けることによって達成される。
【０００９】
本発明の更なる態様によれば、該方法は、前記割り込み源の各々に対応する複数の記憶場所を含む割り込みレジスタを提供するステップと、複数の記憶場所を含むグループレジスタを提供するステップと、を更に具備し、前記割り込み源の少なくとも１つを第１の優先順位グループに割り当てる前記ステップは、前記割り込みレジスタの前記記憶場所の１つを前記グループレジスタの前記記憶場所の１つと効果的に結合することを含む。
【００１０】
本発明の他の態様によれば、該方法は、前記グループレジスタの前記記憶場所と数が等しくかつ１対１に対応する複数の関連づけレジスタを提供するステップ、を更に具備し、前記割り込みレジスタの前記記憶場所の１つを前記グループレジスタの前記記憶場所の１つと前記効果的に結合することは、前記グループレジスタの前記記憶場所の前記１つに対応する前記関連づけレジスタの１つにプログラミング信号を送信することを含む。
【００１１】
本発明の好ましい実施例においては、前記複数の関連づけレジスタは２つの関連づけレジスタからなり、前記グループレジスタの前記複数の記憶場所は２つの記憶場所からなり、前記割り込みレジスタの前記記憶場所の前記１つは前記グループレジスタの前記記憶場所の前記１つと効果的に接続されている前記割り込みレジスタの前記記憶場所のただ１つである。
【００１２】
加えて、そのデータ処理システムは、前記複数の割り込み源の特定の１つから、所定のシーケンスで、複数の割り込み信号が受信される作動モードを有し、前記割り込み源の少なくとも１つを第１の優先順位グループに割り当てる前記ステップは、前記所定のシーケンスで受信される前記複数の割り込み信号の現在の１つに前記データ処理システムが応答するときに実行され、前記割り当てステップにおいて前記第１の優先順位グループに割り当てられる前記割り込み源の前記１つは、前記所定のシーケンスにおける前記現在の１つ後の次の割り込み信号である。
【００１３】
本発明の他の態様によれば、データ処理システムであって、複数の割り込み源から発する割り込み信号を受信しかつ処理するプロセッサ手段と、前記割り込み源を示す各割り込み源信号を受信しかつ記憶する割り込みレジスタ手段と、前記プロセッサ手段からのプログラミング信号に応じて、前記割り込み源のグループを確立する関連づけ手段と、前記関連づけ手段に応答して、複数のグループ信号であって、その各々が、割り込み源の前記グループの対応する１つの少なくとも１つの割り込み源からの割り込み源信号の前記割り込みレジスタ手段における記憶を示すもの、を受信しかつ記憶するグループレジスタ手段と、前記割り込みレジスタ手段が割り込み源信号を受信するときに、前記プロセッサ手段に割り込み信号を送信する手段と、を具備するデータ処理システムが提供される。
【００１４】
本発明の更なる態様によれば、前記プロセッサ手段は、前記関連づけ手段が、前記データ処理システムの作動状態に基づいて前記割り込み源の前記グループを確立するように、前記関連づけ手段に前記プログラミング信号を送るようプログラミングされている。
【００１５】
本発明をここで全体的に要約するつもりはない。むしろ、本発明の更なる特徴、態様、及び利益は、以下の説明及び図面に記載され、それによって明らかなものとなろう。
【００１６】
【実施例】
図１は、本発明の方法及び装置を具体化するディスクドライブコントローラ１０を一般的に示す。以下の議論から理解されるように、本発明の方法及び装置は、ここで説明するディスクドライブコントローラに加えて、その他の多くの型のプロセッサ基礎電子デバイスに適用可能である。
【００１７】
ディスクドライブコントローラ１０は、好ましい実施例においては、この図において符号１２で示される周知の標準ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｔａｎｄａｒｄ  Ｉｎｔｅｒｆａｃｅ）  バスと結合するように適合せしめられた型のものである。
【００１８】
ディスクドライブコントローラ１０は、その作動を制御するプロセッサ１４を含む。プロセッサ１４は、割り込み要求信号（以下、ときどき単純に「割り込み信号」と呼ばれる）を受信する複数の端子ピンＩＮＴ１，ＩＮＴ２，及びＩＮＴ３を備えた普通のマイクロコントローラ又はマイクロプロセッサ（例えば、モトローラ製のモデルＭＣ６８３３２マイクロコントローラ、日立製のモデルＨ８マイクロコントローラ、又はインテル製のモデル１９６ＫＣ）であることが好ましい。しかしながら、以下に説明するように、本発明の方法及び装置は、単一の割り込み端子のみ持つプロセッサについて適用することもできる。
【００１９】
共用されるバスライン１６は、プロセッサ１４と、プログラムメモリ１８、サーボ制御回路２０、リード／ライト回路２２、及びＳＣＳＩインタフェース回路２４を含むディスクドライブコントローラ１０の他の構成要素と、を相互接続する。
【００２０】
プログラムメモリ１８は、プロセッサ１４の作動を制御するための作動プログラムを保持するＰＲＯＭ又は他の型の普通の記憶デバイスであることが好ましい。サーボ回路２０及びリード／ライト回路２２もまた、普通の設計のものでよい。バス１６がディスクドライブコントローラ１０の各構成要素に関する共通のアドレス及びデータ接続を表示することを理解すべきであるが、また、バス１６は、共通の制御ラインを表示するとみなしてもよい。ただし、プロセッサ１４と他の各構成要素との間に専用の制御ラインが存在してもよい。しかし、そのような制御ラインは、図を簡略化するため、図示されていない。
【００２１】
また、容易に理解されるように、プロセッサ１４が、ワーキングメモリとしてのオンボードＲＡＭを含むタイプのものでもよいし、あるいはその代わりに、回路１０が、バス１６によってプロセッサ１４に接続される別個のＲＡＭ（図示せず）を含んでもよい。
【００２２】
割り込み要求ライン２６、２８、及び３０は、それぞれ、ＳＣＳＩインタフェース回路２４、リード／ライト回路２２、及びサーボ制御回路２０を、上述したプロセッサ１４の端子ＩＮＴ１、ＩＮＴ２、及びＩＮＴ３と接続する。割り込み要求ライン２６、２８、及び３０は、それらの回路２４、２２、及び２０からプロセッサ１４に各割り込み信号を伝送するためのものである。
【００２３】
ＳＣＳＩインタフェース回路２４は、ディスクドライブコントローラ１０、そして特にはその内部バス１６、を外部のＳＣＳＩシステムバス１２に接続するのを管理する周知の機能を実行する。よく理解されているように、ＳＣＳＩバス１２は、ディスクドライブコントローラ１０とコンピュータシステムの他の構成要素とを相互接続する。そのような他の構成要素としては、例えば、１又は２以上のホストコンピュータ、及び他のディスクドライブコントローラのような１又は２以上の他の大容量記憶デバイスを含めることができる。
【００２４】
次に、図２を参照して、ＳＣＳＩインタフェース回路２４の配列を一般的に説明する。図に示すように、そのインタフェース回路２４は、バス管理論理３２を含み、そのバス管理論理３２は、普通の設計によるものであることが好ましく、ＳＣＳＩバス１２をデバイスバス１６にインタフェースさせるのに必要なデータバッファ及び他の回路を含むものである。デバイスバス１６が、符号３４で一般的に識別されるバス回路によってインタフェース回路２４の各構成要素まで内部的に引き伸ばされていることに気づくであろう。ＳＣＳＩインタフェース回路２４は、また、制御論理３６及び割り込み管理論理３８を含み、それらはともに、インタフェース回路２４の内部バスに接続される。加えて、別個のライン４０は、制御論理３６と割り込み管理論理３８とを接続し、さらに他の別個のライン４１は、バス管理論理３２と制御論理３６とを接続する。図からわかるように、制御論理３６は、普通の設計によるものであることが好ましく、バス管理論理３２の作動を制御し、割り込み管理論理３８において記憶のための割り込み源信号を発生させるようプログラムされている。
【００２５】
図３は、本発明による割り込み管理論理３８の一般化された実施例の詳細を示す。割り込み管理論理３８は、割り込み状態レジスタ（すなわち「割り込みレジスタ」）４２を含む。レジスタ４２は、普通の設計によるものであり、レジスタ４２の記憶場所Ｆに表された１又は２以上のフラグをセットする制御論理３６からの信号を、ライン４０を介して受信する。これもまた通常のことであるが、プロセッサ１４はバス３４を介してレジスタ４２に接続され、記憶場所Ｆがプロセッサ１４によってリードされうるようになっている。加えて、レジスタ４２は、記憶場所Ｆのいずれか１つ又は２つ以上がセットされたときに、ライン２６を介してプロセッサ１４に割り込み要求信号を与えるように整えられている。これをなしうる１つの方法は、全ての記憶場所Ｆからの各出力信号をＯＲゲート（図示せず）の各入力に接続し、そのＯＲゲートの出力をライン２６に接続することである。
【００２６】
通常通り、レジスタ４２の記憶場所Ｆの数は、割り込み源の数に等しく、割り込み源のいずれもが割り込み信号のプロセッサ１４への伝送を誘発しうる。また、場所Ｆは、各割り込み源と１対１に対応する。
【００２７】
また、割り込み管理論理３８には、グループフラグレジスタ（「グループレジスタ」とも呼ばれる）４４が含まれている。グループレジスタ４４は、ｍ個のフラグ記憶場所ＧＦを有している。ここで、ｍは、２より大きいか、又は２に等しい整数である。ｍ個の場所ＧＦの各々に関し、割り込み管理論理３８は、また、対応する関連づけレジスタ４６及びＯＲゲート４８を持っている。関連づけレジスタ４６の各々は、割り込みレジスタ４２の各記憶場所Ｆと数が等しいプログラマブルな記憶場所ＰＬを持っている。関連づけレジスタ４６の各々について、その記憶場所ＰＬは、割り込みレジスタ４２の記憶場所Ｆと１対１に対応するように、以下の説明のごとく接続されている。
【００２８】
ＯＲゲート４８の各々は、割り込みレジスタ４２（及び各関連づけレジスタ４６）が持つ記憶場所の数と同数の入力を持っている。また、ＯＲゲート４８の各々に関連して２入力／１出力のＡＮＤゲートのグループ５０が存在する。ＡＮＤゲートのグループの各々は、割り込みレジスタ４２（及び各関連づけレジスタ４６）が持つ記憶場所の数と同数のＡＮＤゲートでできている。その各ＡＮＤゲートの出力は、対応するＯＲゲートの各入力に接続されている。該グループの各ＡＮＤゲートの一方の入力は、割り込みレジスタ４２の各記憶場所Ｆに接続され、各ＡＮＤゲートの他方の入力は、グループのＯＲゲート４８に対応する関連づけレジスタ４６の対応する記憶場所ＰＬに接続されている。
【００２９】
グループレジスタ４４の記憶場所ＧＦの各々は、バス３４を介してプロセッサ１４により、例えば、割り込みレジスタ４２の記憶場所Ｆをプロセッサ１４がリードするような方法で、リードされることができる。加えて、プロセッサ１４は、各関連づけレジスタ４６の記憶場所ＰＬの各々をプログラム（すなわち、値「１」にセット、又は値「０」にリセット）することができるように、関連づけレジスタ４６の各々にバス３４を介して接続される。
【００３０】
バス３４は、アドレスライン及びデータラインの両方を含み、また、場合しだいでは、プロセッサ１４によるリード又はプログラムのために各レジスタを選択すべく、アドレスをデコードするデコード回路等をレジスタ４０、４４、又は４６の各々が含むことを理解すべきである。図からわかるように、プログラマブルな関連づけレジスタ４６によって、割り込み源のグループを形成し、割り込み源間の優先順位を確立する上で、大きな柔軟性が得られる。この柔軟性は、割り込み源をグループ化し、割り込み優先順位を適応的にすなわち「オンザフライ（ｏｎ−ｔｈｅ−ｆｌｙ）」で確立する目的のために使用することができ、割り込みの適応性あるグループ化の詳細な例を以下に説明するが、まず最初に、割り込みのグループ化が必ずしも適応性あるものではないより一般的な例を、図３を参照しつつ与えることとする。
【００３１】
割り込み処理オーバヘッドを低減するための割り込みの静的グループ化
この一般的な例のために、２ｍ個の割り込み源に対応して、割り込みレジスタ４２には２ｍ個の記憶場所があると仮定する。この例によれば、割り込み源のより効率的な決定を促進するために、割り込み源を各々２つの割り込み源のｍグループに分割する。その場合、デバイス初期化手続き中に、例えば、関連づけレジスタ４６−１の最初の２つの場所ＰＬに値「１」を格納するように、プロセッサ１４からの信号をプログラムすることによってセットし、レジスタ４６−１の他の場所ＰＬには「０」を格納するようにプログラムすることができる。その結果、割り込みレジスタ４２の最初の２つの記憶場所Ｆによって表される２つの割り込み源は、グループレジスタ４４の記憶場所ＧＦ−１によって表される最初のグループに割り当てられる。同様に、関連づけレジスタ４６−２の第２番目の２つの場所ＰＬは、「１」にセットされ、レジスタ４６−２の残りの場所は、「０」にリセットされる。そうして、記憶場所Ｆの第２番目の２つによって表される、割り込み源の第２の対は、グループレジスタ４４の場所ＧＦ−２によって表されるグループと関連づけられる。このパターンは、残りの関連づけレジスタ４６を通して続けられるので、割り込み源の各続きの対は、対応する割り込みグループにグループ化される。このアプローチによれば、割り込み信号がライン２６上で受信されるとき、プロセッサ１４は、レジスタ４４をリードすることによって、現割り込みを発した割り込み源を含むのはどのグループかを識別する。この決定に基づいて、プロセッサ１４は、レジスタ４４をリードすることによって識別されたグループに対応する２つの場所Ｆのうちの１つをチェックし、次いで必要であれば他の１つをチェックする。その結果、必要なレジスタチェックの平均数（割り込み源間で割り込みがランダムに発生すると仮定する）は、２ｍ個の割り込み源についてグループ化をしないとした場合のｍ＋１／２（＝（２ｍ＋１）／２）に代わって、１＋（ｍ＋１）／２となる。この結果、割り込み処理において応答時間が改善され、オーバヘッドが低減される。例えばｍ＝８とした場合、レジスタチェックの平均数は、割り込み当たり８．５に代わって、割り込み当たり５．５となる。
【００３２】
関連づけレジスタ４６のプログラム可能性（ｐｒｏｇｒａｍｍａｂｉｌｉｔｙ）  は、従来技術の割り込みグループ化回路に比して顕著な利益を提供する。例えば、図２及び図３の割り込み管理論理３８によれば、割り込みグループ化及び優先順位の再定義は、グループ化ハードウェアの再設計及び交換をすることなしに、ソフトウェアの更新によって達成することができる。このことは、プログラムのアップグレードが必要となるときに特に有用となるであろうし、又は割り込みを再グループ化し若しくは再優先順位づけすることによって促進されるであろう。
【００３３】
効率をより大きくするための割り込みの適応性あるグループ化
作動条件に基づいて割り込み源間のグループ化及び優先順位を適応的に確立することによって、さらに大きな利益を達成することができる。例えば、知られているか、又は予想される割り込みについてのシーケンス又はパターンに基づいて、グループ化及び優先順位を確立することができる。実際、特定の割り込み源が次の割り込み信号を発するだろうと、ディスクドライブコントローラ１０が「予想する」ように、プロセッサ１４は関連づけレジスタを４６をプログラムすることができる。次の割り込みが起こるとき、その「予想」は迅速に確認され、次いで予想された割り込みは、非常に迅速にかつ最小限のオーバヘッドで処理されることができる。他の割り込み源のチェックは、最小限に抑えることができる。
【００３４】
ディスクドライブコントローラ１０のある作動モードにおいては、割り込み源の所定のシーケンスで割り込みが受信されると予想することができる。そのようなモードの１つは、ディスクドライブコントローラ１０がＳＣＳＩバス１２を介して接続されるホストコンピュータの１つ又は他のものが、例えばデータリードオペレーション（すなわち、ディスクからデータをリードすること）のために、ディスクドライブコントローラ１０によって制御される特定のディスクドライブを選択するときに起こる。
【００３５】
典型的なリードフロムディスクオペレーション
かかるリードフロムディスクオペレーションは、コントローラ１０（図１）によって制御されるディスクドライブの選択を表示するＳＣＳＩバス１２上の信号をホストがアサート（ａｓｓｅｒｔ）するときに始まる。その信号に応答して、ＳＣＳＩインタフェース回路２４の制御論理３６は、その「選択された」割り込み源に対応する割り込み源信号を発生させる。したがって、割り込みレジスタ４２のその対応する記憶場所Ｆは、値「１」にセットされる。次いで、プロセッサ１４は、その「選択された」割り込みに応答して適当な割り込み処理ルーチンを実行し（このことに関する割り込み源決定、及びこのリードオペレーションの説明において議論される他の割り込みの詳細は、以下で与えられる）、そして、インタフェース回路２４は、選択したホストとともに通常の「ハンドシェイク（ｈａｎｄ  ｓｈａｋｅ）」手順を実行し、次いで、コマンドを構成するデータのバイト数を受信する。そのホストからＳＣＳＩバスを介してデータを受信するのが完了すると、制御論理３６は、「転送完了（ｔｒａｎｓｆｅｒ  ｄｏｎｅ）  」割り込みを発生させ、これをプロセッサ１４は、例えば受信されたコマンドバイトをリードすることによって認識する。受信されたコマンドバイトが後続の更なるバイトを表示するならば、プロセッサは、インタフェース回路２４が追加のバイトを受信するのに利用できるままであるように制御する。コマンドバイトの全てが受信されたとプロセッサ１４によって決定され、それらのコマンドバイトがこの場合の仮定として「リードフロムディスク」コマンドであると認識されるときには、プロセッサ１４は、インタフェース回路２４を活性化し、コントローラ１０がＳＣＳＩバス１２から切り離されるべきであることを選択ホストと通信する。インタフェース回路２４がこの通信を送った後には、制御論理３６は、プロセッサ１４によって認識される「転送完了」割り込みを発生させる。次いで、ＳＣＳＩバス１２がコントローラ１０から切り離され、この状態を検出して、制御論理３６は「切り離し（ｄｉｓｃｏｎｎｅｃｔｅｄ）」割り込みを発生させ、この割り込みは、プロセッサ１４が、例えば、ディスクドライブコントローラ１０によって制御されるディスクからの、要求されるデータの物理的リードを監督することによって処理される。
【００３６】
ディスクからの物理的リードが完了すると、プロセッサ１４は、インタフェース回路２４に対し、ホストとの通信を要求するよう命令する。この要求に応答して、ホストは、ディスクドライブコントローラ１０との通信のためにＳＣＳＩバス１２を占有し、ディスクドライブコントローラ１０を再選択するメッセージを送信する。これが起こると、インタフェース回路２４の制御論理３６は、「再選択完了（ｒｅｓｅｌｅｃｔ  ｃｏｍｐｌｅｔｅ）  」割り込みを発生させ、この割り込みは、プロセッサ１４が、通常のＤＭＡ手順によりホストへのデータ転送を開始することによって処理される。このホストへのデータ転送が完了すると、制御論理３６は、プロセッサ１４によって認識されるべき「転送完了」割り込みを引き起こす。次いで、プロセッサ１４は、状態「良好（ｇｏｏｄ）」がホストに通信されるべきことを指示する。この状態「良好」の通信が完了すると、「転送完了」割り込みが、制御論理３６によって発生せしめられ、プロセッサ１４によって処理される。プロセッサ１４は、インタフェース回路２４を介してホストに「完了」メッセージを送信する。この「完了」メッセージの送信が完了すると、制御論理３６は、「転送完了」割り込みを発生させ、この割り込みに対し、プロセッサ１４は、ＳＣＳＩバス１２を開放するようインタフェース回路２４に命令することによって応答する。ＳＣＳＩバス１２が開放されたときには、制御論理３６は、プロセッサ１４によって処理されるべき「バスフリー（ｂｕｓ  ｆｒｅｅ）」割り込みを発生させる。
【００３７】
前述の説明からわかるように、リードフロムディスクオペレーション中に発生する割り込みのタイプを予測することが可能であるばかりでなく、これらの割り込みの順序を予測することも可能であり、かくして、１つの割り込みが起こったときには、プロセッサ１４は、次の割り込みが何であるかを予想するようプログラムされることができる。例えば、上述のオペレーションの後半部分を要約すると、「切り離し」割り込みの後には、次の割り込みが「再選択完了」であろうことが予想できる。この「再選択完了」割り込み後には、３つの連続する「転送完了」割り込みが予想可能である。その３つの「転送完了」割り込みのうちの最後のものの後には、「バスフリー」割り込みを予想することができる。
【００３８】
本発明の好ましい実施例においては、処理されている現行の割り込みに基づいて起こりそうな次の割り込みを予測可能であるという利益を得るために、ディスクドライブコントローラ１０の作動状態に応じて、各割り込み源が適応的にすなわち「オンザフライ」でグループ化される。より詳細には、現行の割り込みを処理している割り込み処理ルーチンが、割り込みの２つのグループが形成されるように、関連づけレジスタ４６を再プログラムすることを含む。すなわち、第１の優先順位グループは、現在処理されている割り込みに続いて起こることが予想されうる次の割り込みである単一の割り込みのみを有し、割り込みの第２のグループは、可能な他の全ての割り込み源を含む。この実施例においては、割り込み源の２つのグループのみ形成すべきであるため、関連づけレジスタ４６を２つの関連づけレジスタ４６−１及び４６−２のみで形成し、グループレジスタ４４が２つの記憶場所ＧＦ−１及びＧＦ−２のみ持つようにすればよいことが認識されるであろう。同様に、この場合では、単に２つのＯＲゲート４８−１及び４８−２と、単に２つのＡＮＤゲートグループ５０−１及び５０−２が存在するであろう。
【００３９】
さらに、第１のグループが１つの割り込みのみで形成される一方、第２のグループには他の全ての割り込みが割り当てられるように調整するために、次の予想される割り込みに対応する関連づけレジスタ４６−１の記憶場所ＰＬのうちの単一個のみ「１」にセットされ、関連づけレジスタ４６−１の他の記憶場所の全ては「０」にリセットされる。また、関連づけレジスタ４６−２は、次の予想される割り込み源に対応する記憶場所ＰＬが「０」にリセットされ、他の全ての記憶場所ＰＬが「１」にセットされるように、プログラムされる。
【００４０】
関連づけレジスタを適応的にプログラムした割り込み処理
次に、プロセッサ１４によって実行される割り込み処理ルーチンであって割り込み源の適応的な即ち「オンザフライ」によるグループ化を備えるものを、図４を参照して説明する。図４のルーチンは、ライン２６上の割り込み信号の受信によりスタートする（ステップ１００）。最初に、その割り込みの源は、次の予想された割り込み、すなわち単独でグループ１に割り当てられていた割り込みである、と仮定する。さらに、ディスクドライブコントローラ１０は、上述したリードフロムディスクオペレーションを実行する過程にあり、その特定の予想された割り込みは、そのデータをリードするオペレーションに関連して先に議論した「切り離し」割り込みである、と仮定する。
【００４１】
したがって、ステップ１００から始まる割り込み処理ルーチンの手始めとして、プロセッサ１４は、ステップ１０２において、現在処理されている割り込みの割り込み源が、グループ１に割り当てられている「予想された」割り込みであるかどうかを問い合わせる。これは、グループレジスタ４４内の場所ＧＦ−１（即ち第１のグループフラグ）の状態をリードすることによって達成される。先に成された仮定によれば、「切り離し」割り込みに対応する割り込みレジスタ４２の記憶場所Ｆは、「１」にセットされており、その記憶場所Ｆは、関連づけレジスタ４６−１によりグループレジスタ４４の場所ＧＦ−１とあらかじめ関連づけられている。それ故、値「１」が場所ＧＦ−１に保持されている。その結果、ステップ１０２においてなされた問い合わせに対する答は肯定であり、そのため割り込み処理ルーチンはステップ１０４に進んで、他の割り込み源すなわちグループ２に割り当てられたものによってもまた割り込みがアサートされているかどうかを決定する。この決定もまた、第２のグループフラグを表示するグループレジスタ４４、詳細には該レジスタの場所ＧＦ−２、をリードすることによってなされる。グループ２に割り当てられた割り込み源（すなわち、予想された割り込み源「切り離し」以外の割り込み源）がどれもアサートされていないと仮定すると、当該ルーチンは、ステップ１０６に進み、そこでプロセッサ１４は当該割り込みを処理する。プロセッサ１４は、「切り離し」割り込みがグループ１に割り当てられた唯一の割り込み源であることを「知っている」ため、割り込みレジスタ４２をチェックする必要はない。
【００４２】
先に述べたように、「切り離し」割り込みの処理は、この場合、ディスクからの物理的リードを実行すること、次いで当該データリードを要求したホストとの通信を要求するようインタフェース回路２４に命令すること、を誘発する。それから割り込み処理ルーチンは、ステップ１０８に進み、そこでプロセッサ１４は、どの割り込み源が次の割り込みを発生させると予想されるかを反映するために、関連づけレジスタ４６−１及び４６−２を再プログラムする。前述したシーケンスによれば、「切り離し」後の次に予想される割り込みは、「再選択完了」割り込みである。それ故、プロセッサ１４は、「再選択完了」割り込み源に対応する関連づけレジスタ４６−１の記憶場所ＰＬを「１」にセットし、さらにプロセッサ１４は、関連づけレジスタ４６−２をプログラムして、「再選択完了」割り込み源に対応する記憶場所を除く記憶場所ＰＬの全てが値「１」を有し、「再選択完了」に対応する関連づけレジスタ４６−２の記憶場所ＰＬが値「０」を有するようにする。
【００４３】
ステップ１０８は、関連づけレジスタ４６に関するプログラミング信号が、現在の割り込みに基づいて検索されるようなルックアップテーブルによって実現可能である。
【００４４】
ステップ１０８に続いて、当該割り込み処理ルーチンは、例えば、主ライン又はモニタプログラムへのリターンでもって終了する（ステップ１１０）。
【００４５】
次に、前の仮定とは反対に、ステップ１００（「スタート」）にて受信された割り込みの割り込み源が、予想された割り込み源「切り離し」ではないと仮定しよう。この場合、ステップ１０２における問い合わせの答は否定となり、当該ルーチンはステップ１１２に進み、そこで、プロセッサ１４は、割り込み状態レジスタ４２内の記憶場所Ｆをリードして、どの１又は複数の割り込み源が現行の割り込みを引き起こしたかを決定する。プロセッサは、「切り離し」割り込み源がグループ２に現在割り当てられていないことを「知っている」ので、「切り離し」割り込み源に対応する割り込みレジスタ４２のフラグ場所Ｆは、チェックする必要がない。
【００４６】
ステップ１１２に続くステップ１１４において、プロセッサ１４は、現行の割り込みを引き起こしたグループ２の割り込み源を処理する。次いで、当該ルーチンは、ステップ１０８に進み、そのステップでプロセッサ１４は、適当であれば、関連づけレジスタ４６を再プログラムして、今処理された１又は複数のグループ２の割り込みを考慮して予想される次の割り込み源を反映するようにする。あるときには、「切り離し」割り込み源が次の予想される割り込みのままであり、そのため再プログラミングが必要でないことが認識されるであろう。ステップ１８の後、当該ルーチンは、再び、主ラインプログラムにリターンする。
【００４７】
次に、グループ１に割り当てられた予想された割り込み源と、グループ２の割り込み源のうちの少なくとも１つと、の両方がアサートされたと仮定しよう。
【００４８】
この場合、ステップ１００におけるスタート後、肯定の決定がステップ１０２においてなされ、さらに肯定の決定がステップ１０４においてなされ、次いで、好ましい実施例においては、当該ルーチンは、上述のステップ１１２に進む。なぜならば、グループ２は、どの割り込み源がグループ１に割り当てられているかにかかわらず、常に処理されねばならない、「リセット」割り込みのような、１又は２以上の高い優先順位の割り込み源を含むからである。次いで、前述したように、ステップ１１４、１０８、及び１１０が続く。
【００４９】
注目すべきことに、現行の割り込みの性質のような作動状態に応じて関連づけレジスタ４６を再プログラムすることによって、次に予想される割り込み源を、通常、グループ１に割り当てることが可能となる。次いで、このことは、ディスクドライブコントローラ１０の通常作動中の割り込み処理におけるオーバヘッドを最小限に抑え、作動プログラムの効率全体を増大せしめる。
【００５０】
図４の割り込み処理ルーチンに対する多数の変形が明らかとなろう。例えば、グループ１に割り当てられる割り込み源に絶対的な優先順位を割り当てることが望まれるならば、ステップ１０２における肯定の決定を、直接ステップ１０６に導き、ステップ１０２における決定が否定であるときのみ、グループ２の割り込み源をチェックし処理するようにすることができる。
【００５１】
また、ステップ１０２及び１０４の順序を逆にしたり、及び／又は、ステップ１０２及び１０４の双方における否定の決定が直接ステップ１１０（主ラインプログラム）に至り、事実上、当該ルーチンを誘発した割り込み信号を擬似的なものとみなすように、図４のルーチンを調整したりすることも考察されるであろう。
【００５２】
例えばグループ２に割り当てられてもよい高い優先順位の割り込みの例は、「パリティエラー検出」、「フェーズエラー検出」、又は「ホストからのアテンション」である。「ホストからのアテンション」は、ディスクドライブコントローラ１０にメッセージを送りたいとホストコンピュータが望むことを示すものである。これらの割り込み源の重要性は、当業者に知られており、そのため、さらに説明する必要はないであろう。
【００５３】
ある種の割り込みは、割り込みレジスタ４２の対応する記憶場所Ｆの出力を、ＯＲゲート４８−２の対応する入力に、単純にハード的に布線することによって、グループ２に「永久的に」割り当ててもよいことに注目すべきである。この場合、ＡＮＤゲートのグループ５０−２から対応するＡＮＤゲートを省略でき、かつ、関連づけレジスタ４６−２の対応する場所ＰＬを、省略するか、又はプロセッサ１４による関連づけレジスタ４６−２のプログラミングによって「ドントケア（ｄｏｎ’ｔ  ｃａｒｅ）」とすることができる。もちろん、その記憶場所Ｆの出力をＯＲゲート４８−２の入力に直接ハード的に布線する代わりに、記憶場所Ｆの出力を、対応するＡＮＤゲートの両入力に結合することも可能である。
【００５４】
関連づけレジスタの使用による割り込みのマスキング
割り込みのマスキングは、よく知られた概念であり、割り込み状態レジスタ４２の上流側にマスクレジスタ及び関連する論理ゲートを加えることで、図３に示す割り込み管理論理３８に容易に含ませることが可能である。例えば、Ｒｏｄｎａｙ  Ｚａｋｓ  による”Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ，  Ｆｒｏｍ  Ｃｈｉｐｓ  ｔｏ  Ｓｙｓｔｅｍｓ”（  第３版、Ｓｙｂｅｘ，  １９８０）の第１４８頁に示される回路装置を利用することができる。
【００５５】
割り込みのマスキングについての他のアプローチを、マスクレジスタを使用することなく、割り込み管理論理３８に適用することができることに注目すべきである。このアプローチによれば、割り込みレジスタ４２ではなくグループレジスタ４４からライン２６が取り出され、場所ＧＦの１又は２以上がセットされるときに、割り込み要求信号が発生せしめられる。さらに、割り込み源の所与の１つをマスクすることが要求されるときには、プロセッサ１４は、関連づけレジスタ４６にプログラミング信号を送って、関連づけレジスタ４６の全ての中でマスクされるべき割り込み源に対応する場所ＰＬに「０」を格納するようにする。換言すれば、マスクされるべき割り込み源を、単純に全てのグループから省略する。もちろん、このマスキングのアプローチは、同時に２以上の割り込み源に適用できるであろうし、事実、全ての関連づけレジスタ４６の全ての場所ＰＬに０を格納することによって、全ての割り込みをマスクすることができるであろう。
【００５６】
また、注目すべきことに、関連づけレジスタ４６のプログラミングを通して割り込みをマスクすることが要求されない場合でさえも、割り込みレジスタ４２ではなくグループレジスタ４４から、ライン２６が発するようにして、割り込み要求信号を発生させることは、依然として可能である。
【００５７】
再び図１を参照すると、３つの割り込み要求端子ＩＮＴ１、ＩＮＴ２、及びＩＮＴ３を有するものとしてプロセッサ１４が示されていることを思い起こすであろう。しかしながら、実際には、プロセッサ１４は、３よりも多くの又は少ない割り込み要求端子を持つことがありうること、並びに、割り込み要求端子の１つが、サーボ制御回路２０、リード／ライト回路２２、及びＳＣＳＩインタフェース回路２４のうちの２つ又は全てによって共用されてもよいこと、が理解されるであろう。割り込み要求端子をこれらの回路のうちの２つまたはそれ以上によって共用する場合には、図３に示したものと類似した割り込み管理回路を、割り込み源を管理すること、並びに共用される割り込み要求端子を共用する各回路の全てから発する割り込み源の優先順位づけ及びグループ化を制御すること、に使用することができる、ということが認識されるであろう。また、代替として、図２及び図３の割り込み管理回路３８に類似した割り込み管理回路を、回路２０及び２２が含んでもよいことが認識されるであろう。
【００５８】
ディスクドライブコントローラにおいて具体化された本発明を説明してきたが、本発明が、他の多くのタイプのプロセッサ制御システムに適用可能であり、特に、プロセッサ回路パッケージ上の共通割り込み要求信号端子を多数の割り込み源が共用するシステムに適用可能であることを理解すべきである。本発明は、所定の割り込みのシーケンスが経験されるシステムにおいて、特に有益である。
【００５９】
上記した本発明の説明は、例示的なものであり、限定的なものではない。記載した実施例における様々な変更及び変形が、当業者に起こりうるものであり、それらは、本発明の精神又は範囲から逸脱することなしになされうるものである。
【００６０】
「グループ」という語が特許請求の範囲において使用されるとき、単一の割り込み源のみを有するかもしれないグループを含むことを理解すべきである。
【００６１】
【発明の効果】
以上説明したように、本発明によれば、前述した従来技術に係る問題を消去し又は軽減する方法及び装置が提供される。すなわち、従来の装置及び方法よりも平均的に、より迅速に割り込み処理ルーチンをプロセッサが実行するように、割り込み源をグループ化し、割り込み源間の優先順位を割り当てる上での、柔軟性及び効率性が向上せしめられる、という効果がある。
【図面の簡単な説明】
【図１】本発明の装置及びを具体化するディスクドライブ制御装置の電子構成部品の略ブロック図である。
【図２】図１のディスクドライブコントローラの一部であるバスインタフェース回路の略ブロック図である。
【図３】図２のバスインタフェース回路の一部である割り込み管理回路の論理回路図である。
【図４】割り込み要求信号の受信時に、図１のディスクドライブコントローラのプロセッサによって実行されるソフトウェアルーチンを示すフローチャートである。
【符号の説明】
１０…ディスクドライブコントローラ
１２…ＳＣＳＩバス
１４…プロセッサ
１６…デバイスバス
１８…プログラムメモリ
２０…サーボ制御回路
２２…リード／ライト回路
２４…ＳＣＳＩインタフェース回路
２６，２８，３０…割り込み要求ライン
３２…バス管理論理
３４…バス回路
３６…制御論理
３８…割り込み管理論理
４０，４１…ライン
４２…割り込み状態レジスタ
４４…グループフラグレジスタ
４６…関連づけレジスタ
４８…ＯＲゲート
５０…ＡＮＤゲートのグループ
【図１】
0003609444.tif 000002
【図２】
0003609444.tif 000003
【図３】
0003609444.tif 000004
【図４】
0003609444.tif 000005