(57)【特許請求の範囲】
【請求項１】
複数の処理ユニットと、
第１の周辺バスを介して前記複数の処理ユニットに作動的に結合される第１の周辺装置と、
前記第１の周辺バスを介して前記複数の処理ユニットに作動的に結合される第２の周辺装置と、
第２の周辺バスを介して前記複数の処理ユニットに結合される第３の周辺装置と、
第１の割込信号を前記第１の周辺装置から受取るよう結合される第１の入力ラインと、第２の入力信号を前記第２の周辺装置から受取るよう結合される第２の入力ラインとを含む割込制御装置と、
第３の割込信号を前記第３の周辺装置から受取るための割込入力ラインを含み、前記第３の割込信号を前記割込制御装置の第３の入力ラインに経路づけるよう構成される割込マッパーと、
前記第１の周辺バスに結合され、前記割込制御装置に割込制御装置割込要求ラインを介して結合され、前記複数の処理ユニットに結合され、前記第１の入力ライン、前記第２の入力ライン、および前記割込入力ラインに結合される中央割込制御ユニットとを含み、前記中央割込制御ユニットは、前記第１の割込信号、前記第２の割込信号、および前記第３の割込信号を、前記第１の入力ラインに結合される第１の中央制御ユニット入力ライン、前記第２の入力ラインに結合される第２の中央割込制御ユニット入力ライン、および前記割込入力ラインに結合される第３の中央割込制御ユニット入力ライン上でそれぞれ受取って、前記第１の割込信号、前記第２の割込信号、および前記第３の割込信号を前記複数の処理ユニット間において第１の動作モード中に分配するよう構成され、前記中央割込制御ユニットはある信号をアサートして前記割込マッパーを前記第１の動作モード中に不能化するよう構成され、第２の動作モードにおいて前記中央割込制御ユニットは前記第１の割込信号、前記第２の割込信号、および前記第３の割込信号を示す信号を前記割込制御装置割込要求ラインを介して受取るよう構成される、対称多重処理システム。
【請求項２】
前記第３の入力ラインは、前記割込制御装置の、使用されていない割込入力であり、システム初期化中において前記対称多重処理システムのシステムＢＩＯＳは前記割込制御装置の前記使用されていない割込入力を識別し前記第３の割込信号を前記割込マッパーを介して前記割込制御装置の前記使用されていない割込入力に経路付けるよう構成される、請求項１に記載の対称多重処理システム。
【請求項３】
前記中央割込制御ユニットの前記第１の動作モードおよび前記中央割込制御ユニットの前記第２の動作モードは前記中央割込制御ユニット内の構成レジスタにおけるビットを介してプログラマブルである、請求項１に記載の対称多重処理システム。
【請求項４】
前記第２の動作モード中、前記割込制御装置は、前記第１、第２または第３の割込信号のいずれかが前記第１、第２または第３の入力ラインにおいて受取られる場合、対応の割込信号を発生させるよう構成される、請求項３に記載の対称多重処理システム。
【請求項５】
前記第２の動作モード中、前記対応の割込信号は、直接、前記複数の処理ユニットのうち指定された処理ユニットにのみ与えられる、請求項４に記載の対称多重処理システム。
【請求項６】
前記指定された処理ユニットはマスタ処理ユニットである、請求項５に記載の対称多重処理システム。
【請求項７】
前記第１、第２および第３の周辺装置は、さらに、前記中央割込制御ユニットに結合される、請求項１に記載の対称多重処理システム。
【請求項８】
前記第１の動作モード中、前記中央割込制御ユニットは前記第１、第２および第３の割込信号を処理し前記複数の処理ユニットの１つ以上に分配するよう構成される、請求項７に記載の対称多重処理システム。
【請求項９】
前記第１および第２の周辺装置はＩＳＡ規格周辺装置であり、前記第３の周辺装置はＰＣＩ規格周辺装置である、請求項１に記載の対称多重処理システム。
【請求項１０】
複数の割込信号を多重処理システムにおいて経路付ける方法であって、
前記多重処理システムをパススルーモードにおいて初期化し、それによって、割込マッパーを可能化するステップを含み、前記割込マッパーは１つ以上の割込信号を１つ以上の周辺装置から割込制御装置に経路付けるよう構成され、前記方法はさらに、
不能化信号を前記割込マッパーに与え、アドバンストモードに入るステップと、
前記１つ以上の割込信号を直接前記１つ以上の周辺装置から中央割込制御ユニットに与え、それによって前記割込制御装置をバイパスするステップと、
前記１つ以上の割込信号を前記中央割込制御ユニットから複数の処理ユニットのうちの１つ以上に分配するステップとを含む、方法。
【請求項１１】
前記初期化ステップ中に前記多重処理システムは１つのプロセッサモードにおいてブートする、請求項１０に記載の方法。
【請求項１２】
前記中央割込処理ユニットの構成レジスタ内においてビットをセットするステップをさらに含む、請求項１０に記載の方法。
【請求項１３】
第１のバスに作動的に結合される複数の処理ユニットと、
前記第１のバスに動作可能に結合される第２のバスと、
前記第１のバスに結合される第１の周辺装置と、
前記第２のバスに結合される第２の周辺装置と、
前記第２のバスに結合され、第１の入力が割込要求信号を前記第２の周辺装置から受取るよう結合される割込制御装置と、
前記第２のバスに結合され、割込要求信号を前記第１の周辺装置から受取り前記割込要求信号を前記割込制御装置に第２の入力ラインを介して経路付けるよう構成される割込マッパーと、
前記第１のバスに結合され、前記複数の処理ユニットおよび前記割込制御装置に動作可能に結合され、前記割込信号を前記第１の周辺装置から第１の中央割込制御ユニット割込要求ラインを介して第１の動作モードにおいて受取り、前記割込制御装置の出力に結合される第２の中央割込制御ユニット要求ラインを介して第２の動作モードにおいて受取るよう構成される中央割込制御ユニットとを含み、前記中央割込制御ユニットはある信号をアサートして前記割込マッパーを前記第１の動作モード中に不能化するよう構成される、多重処理コンピュータシステム。
【請求項１４】
前記中央割込制御ユニットは割込信号を前記第２の周辺装置から前記第２の中央割込制御ユニット要求ライン上で前記第２の動作モードにおいて受取るよう構成される、請求項１３に記載の多重処理コンピュータシステム。
【請求項１５】
前記中央割込制御ユニットは割込信号を前記第２の周辺装置から第３の中央割込制御ユニット割込要求ライン上で前記第１の動作モードにおいて受取るよう構成される、請求項１４に記載の多重処理コンピュータシステム。
【請求項１６】
前記中央割込制御ユニットの前記第１の動作モードおよび前記中央割込制御ユニットの前記第２の動作モードは前記中央割込制御ユニット内の構成レジスタにおけるビットを介してプログラマブルである、請求項１３に記載の多重処理コンピュータシステム。
【請求項１７】
前記第２の動作モード中、前記対応の割込信号は、直接、前記複数の処理ユニットのうち指定された処理ユニットにのみ与えられる、請求項１３に記載の多重処理コンピュータシステム。
【請求項１８】
前記指定された処理ユニットはマスタ処理ユニットである、請求項１７に記載の多重処理コンピュータシステム。
【請求項１９】
前記第１の動作モード中、前記中央割込制御ユニットは前記割込信号を処理し前記複数の処理ユニットの１つ以上に分配するよう構成される、請求項１５に記載の多重処理コンピュータシステム。
【請求項２０】
前記第１の周辺装置はＰＣＩ規格周辺装置であり、前記第２の周辺装置はＩＳＡ規格周辺装置である、請求項１３に記載の多重処理コンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の背景】
１．発明の分野
この発明はコンピュータシステムに関する。より特定的にはこの発明は、対称多重処理システム内において用いられる割込制御アーキテクチャおよびスキームに関する。
【０００２】
２．関連技術の説明
多重処理ユニットを用いるコンピュータシステムは、現在の単一のプロセッサに基づくシステムの動作能力を超える、経済的に見合う動作能力を約束する。多重処理を行なう環境内では、１つのアプリケーションのためのすべての処理を単一のプロセッサに集中させるよりもむしろ、タスクは別個のプロセッサによって処理可能なグループまたは「スレッド」に分けられる。それにより、全体の処理ロードはいくつかのプロセッサ間に分散され、分散されたタスクは並列して同時処理されるだろう。オペレーティングシステムソフトウェアは、プログラムコードの様々な部分を別々に実行可能なスレッドに分け、典型的には各スレッドに優先順位レベルを割当てる。
【０００３】
図１は、複数の処理ユニット１２Ａ−１２Ｃを含む、いわゆる対称多重処理システム１０のブロック図である。各処理ユニット１２Ａ−１２Ｃは、処理コア１４Ａ−１４Ｃとキャッシュメモリ１６Ａ−１６Ｃとバスインタフェース１８Ａ−１８Ｃとをそれぞれ含む。処理ユニット１２Ａ−１２Ｃはシステムバス２２を介して主メモリ２０に結合される。Ｉ／Ｏ装置２４および２６の組はシステムバス２２にさらに結合される。
【０００４】
図１の多重処理システム１０は、すべての処理ユニット１２Ａ−１２Ｃが同じメモリ空間（つまり主メモリ２０）を共有し、同じアドレスマッピングを用いてメモリ空間にアクセスするという点で対称である。多重処理システム１０はさらに、すべての処理ユニット１２Ａ−１２Ｃが同じＩ／Ｏサブシステムへ等しいアクセスを共有するという点において対称である。
【０００５】
一般に、オペレーティングシステムソフトウェアの１つのコピーおよび各ユーザアプリケーションファイルの１つのコピーは主メモリ２０内にストアされる。各処理ユニット１２Ａ−１２Ｃは、オペレーティングシステムおよびユーザアプリケーションファイルのこれらの１つのコピーから実行する。処理コア１４Ａ−１４Ｃはコードを同時に実行するだろうが、処理ユニット１２Ａ−１２Ｃのうちの１つだけが所与の時間にシステムバス２２のマスタシップをとってもよいことに注目されたい。したがって、予め定められる調停アルゴリズムに基づいて、２つ以上の処理ユニットの同時バス要求を調停し、処理ユニットの１つにマスタシップを許可するために、バス調停機構（図示せず）が設けられる。様々なバス調停技術が周知となっている。
【０００６】
各処理ユニット１２Ａ−１２Ｃの高速キャッシュメモリ１６Ａ−１６Ｃは、それぞれの処理ユニットによって最も最近アクセスされたデータを、その関連データが対応する主メモリアドレスを示すアドレスタグとともにそれぞれストアする。プログラムはコードの同じセクションを実行し同じデータ構造に繰返してアクセスする傾向があるため、キャッシュが十分に大きいものであれば、アクセスされる位置の多くは既にキャッシュにストアされている。
【０００７】
キャッシュ機構には２つの大きな利点がある。第１に、キャッシュは高速メモリでもって実現されバス調停およびバッファ遅延なしにアクセス可能であるため、それぞれのキャッシュにストアされる位置へのアクセスは主メモリアクセスよりもはるかに高速である。第２に、それぞれのキャッシュにストアされる位置へのアクセスはシステムバスへのアクセスを必要としないため、各プロセッサのバス利用は大きく低減される。システムバスはゆえに他の要求されるトランザクションを処理するのに使用できる。典型的には、「ヒット率」が高ければ高いほど、全体のシステム性能はより向上する。ヒット率は、特定の処理コアによる、キャッシュに既にストアされる位置へのアクセスの割合である。適度に大きなキャッシュを有して適当に設計されるシステムは、９０％を超えるヒット率を達成することができる。
【０００８】
キャッシュメモリを用いる多重処理システムに関して考慮しなければならない重要な点はデータの一貫性である。主メモリ２０によってストアされるデータ
（および命令）の複数のコピーがキャッシュメモリ１６Ａ−１６Ｃのうちの１つ以上に同時に存在するかもしれないため、専用の機構を用いて、メモリサブシステムのうちの１つが更新された（つまり新しいデータを書込まれた）場合のデータの保全性を維持しなければならない。たとえば、データの特定のセクションが処理コア１４Ａによってキャッシュメモリ１６Ａ内で更新され、主メモリ２０の対応するセクション内では更新されないという状況を考えられたい。処理コア１４Ｂがこの後コードの同じセクションにアクセスするならば、どのセクションが最新のものでありどのセクションがもはや有効でないかということを把握するための何らかの信頼性のある機構を設けて、処理コア１４Ｂが適当なデータに確実にアクセスするようにしなければならない。それゆえ、キャッシュの一貫性を効率的に維持するという目的で、いわゆるライトスルーおよびライトバック技術に基づく技術を含む様々な技術が開発されてきた。様々なキャッシュ一貫性技術は既知の先行技術の多くの刊行物に記載されており、ここではこれ以上は論じない。
【０００９】
対称多重処理システムに関して考慮しなければならない別の重要な点は、様々なシステム資源により発生される割込の処理および分散である。たとえば、図１のシステムでは、Ｉ／Ｏ装置２４および２６は、特定の事象の発生（または非発生）に基づいて、それぞれの割込信号を各々アサートするかもしれない。当業者には理解されるように、割込は、特にキーボード装置、プリンタ、およびタイマのようなシステム資源によって、ルーチンに従って発生される。多くのシステムは、割込がソフトウェアコマンドに応答してアサートされてもよいソフトウェア割込にさらに対処する。システム内で生じるであろう異なる割込の数のため、最適なシステム性能およびバス利用を達成するよう割込を効率的に管理および分散する機構を設けることが望ましい。
【００１０】
割込を処理するための１つの技術は、複数の割込を受取りそれらを優先順位づけして様々な処理ユニット間で分散させることのできる集中割込制御装置を用いる。集中割込制御技術に関連する問題は、対処可能な割込の総数が、典型的には集中割込制御装置に設けられる入力ピンの数によって制限されるという点である。言い換えれば、たとえば、集中割込制御装置が全部で１６の割込入力ピンを含むとすると、１６より多い割込発生装置は典型的にはシステム内で対処できない。このことはシステムの柔軟性に制限を与える。さらに、そのようなシステム内では、専用の割込ラインが各割込ソースに接続されなければならない。このような専用割込ラインは、コンピュータシステムに１つ以上の周辺装置を接続するリモートケーブルネットワークでは利用できないかもしれない。ここでも、システムの柔軟性は結果的に制限されるだろう。
【００１１】
多重処理システムによって用いられる割込スキームが、異なるＩ／Ｏバス上にある装置に割込むことをサポートできることも重要である。従来の単一プロセッサシステムでは、アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）製造の、特に広く用いられているＡＭ８２５９割込制御装置のような割込制御装置が、ＩＳＡ周辺装置のような、比較的多数の周辺装置をサポートするために用いられる。さらに、そのようなシステム内でＰＣＩバス上にある周辺装置はＰＣＩ割込を８２５９割込制御装置上の利用可能な入力に送る割込マッパーを介して周辺装置の割込をマッピングすることによってフレキシブルにサポートされてもよい。残念なことに、８２５９のような割込制御装置は複数のプロセッサ間に割込を分散するようにはされない。この問題をさらに複雑にすることには、ＤＯＳのような従来のオペレーティングシステムは、システム内に８２５９タイプの割込装置が存在するものとする。
【００１２】
複数のＩ／Ｏバス上にある周辺装置からの割込がサポートされる、多重処理システムのための割込機構および方法は望ましい。この割込機構および方法はさらに、新形多重処理オペレーティングシステムに対応する一方で、ＤＯＳのような従来的なオペレーティングシステムと後方互換性があるべきである。
【００１３】
【発明の概要】
上に述べられる問題は、この発明に従う対称多重処理システムによって大部分解決される。１つの実施例において、中央割込制御ユニットを含む対称多重処理システムが設けられる。中央割込制御ユニットは、複数の処理ユニットと複数の割込ソースとに結合される。割込ソースは、ＰＣＩバスのような第１の周辺バスに結合される複数の周辺装置を含む。割込ソースはさらに、ＩＳＡバスのような第２の周辺バスに結合される装置を含む。中央割込制御ユニットは２つのモードで動作する。通過モードと呼ばれる第１のモードでは、ＩＳＡ周辺装置からの割込は、カスケード接続されるタイプ８２５９割込制御装置のような割込制御装置を介して、中央割込制御ユニットに与えられる。中央割込制御ユニットは次いでその割込をマスタ処理ユニットに直接送る。ＰＣＩ割込は、ＰＣＩマッパーを介して、割込制御装置の他の利用可能な割込入力に与えられる。通過モードは、このシステムと、ＤＯＳのような従来のオペレーティングシステムとの後方互換性を考慮するという有利な点がある。先行動作モード中、中央割込制御ユニットはＰＣＩマッパーを不能化させる。先行モードでは、ＰＣＩ装置およびＩＳＡ装置の両方からの割込は中央割込制御ユニットに直接与えられる。先行モード中はＰＣＩマッパーは不能化されるので、付加的なＩＳＡ周辺装置はＰＣＩ割込と競合することなしにシステム内でサポートされるだろう。
【００１４】
この発明の他の目的および利点は、以下の詳細な説明を読み、添付の図面を参照するとより明らかとなる。
【００１５】
この発明は様々な修正および代替形式が可能であるが、その特定の実施例を図面の例によって示しここに詳細に記載する。しかしながら、図面およびその詳細な説明はこの発明を開示される特定の形式に限定することを意図するものではなく、逆に、この発明は前掲の特許請求の範囲に定義されるようなこの発明の精神および範囲内に入るすべての修正物、均等物および代替物を包含することを意図するものであることが理解されるはずである。
【００１６】
【実施例の詳細な説明】
図２を参照すると、集中割込制御装置機構を含む対称多重処理システム２００のブロック図が示される。システム２００は、主メモリ２０４にＣＰＵローカルバス２０７を介して結合される複数の処理ユニット２０２−１から２０２−ｍを含む。各処理ユニット２０２−１から２０２−ｍは、それぞれの処理コア２０４−１から２０４−ｍと、それぞれのキャッシュメモリ２０５−１から２０５−ｍと、それぞれのバスインタフェース２０６−１から２０６−ｍとを含む。バスブリッジ２０８はＣＰＵローカルバス２０７をＩ／Ｏバス２１０に結合する。複数のＩ／Ｏ周辺装置２１２−１から２１２−ｎはＩ／Ｏバス２１０に結合される。付加的なＩ／Ｏ装置２１４および割込制御装置２１６はＩ／Ｏバス２１０にさらに結合される。Ｉ／Ｏ装置２１２−１から２１２−ｎは中央割込制御ユニット２２０に結合される。Ｉ／Ｏ装置２１２−１から２１２−ｎおよび２１４は、処理ユニット２０２−１から２０２−ｍの各々によりバスブリッジ２０８を介してアクセス可能である。
【００１７】
中央割込制御ユニット２２０は、Ｉ／Ｏ装置２１２−１から２１２−ｎと割込制御装置２１６とから受取った割込を管理し、その割込を処理ユニット２０２−１から２０２−ｍの間に分散させるために設けられる。中央割込制御ユニット２２０は、処理ユニット２０２−１から２０２−ｍによって発生されるプロセッサ間割込およびソフトウェア割込をさらに管理する。その好ましい形式においては、中央割込制御ユニット２２０は、最適なシステムの柔軟性を提供するために、以下に論じられるような様々なプログラマブルな特徴を有して実現される。
【００１８】
Ｉ／Ｏバス２１０は、ＣＤ−ＲＯＭユニット、ローカルエリアネットワーク
（ＬＡＮ）装置、およびプリンタのような周辺装置をコンピュータシステム２００に結合するための任意の好適なバスであってもよい。例示の周辺バス規格は、ＩＳＡ（業界標準アーキテクチャ）バスと、ＥＩＳＡ（拡張業界標準アーキテクチャ）バスと、ＰＣＩ（周辺構成要素相互接続）バスとを含む。バスブリッジ２０８は、Ｉ／Ｏバス２１０とＣＰＵローカルバス２０７との間にインタフェースを与える。
【００１９】
処理コア２０４−１から２０４−ｍは、予め定められる命令セットに従って動作するデータ処理ユニットである。例示の処理ユニットは、８０４８６型処理ユニットと、ペンティアム（Ｐｅｎｔｉｕｍ  ）コンパチブル処理ユニットと、パワーＰＣ（ＰｏｗｅｒＰＣ  ）処理ユニットとを含む。しかしながら、処理ユニット２０２−１から２０２−ｍはさらに他の命令セットに従って動作してもよいことが理解される。
【００２０】
キャッシュメモリ２０５−１から２０５−ｍは高速メモリ素子を用いて実現される。各キャッシュメモリ２０５−１から２０５−ｍは、関連する処理コア２０４−１から２０４−ｍと、関連するキャッシュメモリ２０５−１から２０５−ｍと、ＣＰＵローカルバス２０７との間でのデータの転送を調整し管理するキャッシュ制御装置（図では別途には図示せず）に関連する。好ましい形式においては、各処理ユニットのキャッシュ制御装置は、最大の支持動作を提供するために、関連の処理コアと同時並列で動作する。
【００２１】
ＣＰＵローカルバス２０７は、予め定められるビット幅を有し、コンピュータシステムの主バスである。主メモリ２０４は、予め定められるサイズの物理的メモリであり、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）でもって実現されてもよい。メモリ制御装置（別途には図示されず）は、主メモリ２０４に関連して、ＣＰＵローカルバス２０７と主メモリ２０４との間で通信するデータ、アドレス、および制御信号の転送を制御し調整する。
【００２２】
割込制御装置２１６は、たとえばＩ／Ｏ装置２１４のような様々な割込ソースから引出される割込信号を分類し管理するために設けられる。割込制御装置２１６は、たとえば、アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）製造の、８２５９Ａ型シリーズのプログラマブル割込制御装置を示す。８２５９Ａプログラマブル割込制御装置については、刊行物「ＭＯＳマイクロプロセッサおよび周辺装置（ＭＯＳ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ  ａｎｄ  Ｐｅｒｉｐｈｅｒａｌｓ  ）」、３−３７１頁から３−３８８頁（アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド    １９８７）に記載されている。
【００２３】
中央割込制御ユニット２２０の詳細な議論に進む前に、様々な構成レジスタが中央割込制御ユニット２２０内に組み込みまれることにまず注目されたい。これらの構成レジスタはＩ／Ｏバス２１０を介してプログラムされアクセスされてもよい。したがって、中央割込制御装置２２０は、ＣＰＵローカルバス２０７のタイプからは独立し、したがって異なるタイプの処理ユニットを用いる様々なシステム内で用いられてもよい。この結果、中央割込制御ユニット２２０は、様々な多重処理システムとともに使用されてもよく、それらのシステムと互換性もある。
【００２４】
次に図３を参照して、中央割込制御ユニット２２０についての詳細を次に考察する。図３は、Ｉ／Ｏ割込制御装置３０４とプロセッサ割込発生器３０６とに結合される中央制御装置３０２を含む中央制御ユニット２２０の１つの実施例のブロック図である。Ｉ／Ｏバスインタフェースユニット３０８は、中央制御装置３０２に結合されてさらに図示される。
【００２５】
Ｉ／Ｏバスインタフェースユニット３０８は、後により詳細に説明されるように、中央制御ユニット２２０のプログラミングを可能にし、かつ中央制御ユニット２２０の他の機能を提供するために、Ｉ／Ｏバス２１０と中央制御装置３０２との間にインタフェースを与える。プログラミングおよび他の機能のために、中央割込制御ユニット２２０は、ＣＰＵローカルバス２０７を中央制御ユニット２２０に結合するためのＣＰＵバスインタフェースユニットを代替的にまたは付加的に含んでもよいことが理解される。
【００２６】
既に説明したように、中央割込制御ユニット２２０は様々な異なるＩ／Ｏ装置からの割込を受付けることができる。これらの割込は、ＩＮＴＲ１−ＩＮＴＲｎとラベルづけされる複数の割込ピンで受取られてＩ／Ｏ割込制御装置３０４に与えられる。中央割込制御ユニット２２０は、各割込ＩＮＴＲ１−ＩＮＴＲｎが割込の特定のタイプを指定し、特定のデリバリモードを特定し、それの優先順位レベルを示すように個々にプログラムされ得るよう構成される。加えて、特定のピンで受取られて識別され得る割込信号の数を増やすために、各割込ピンがカスケードモードで用いられることもできる。これについては後にさらに説明する。
【００２７】
中央制御装置３０２は、様々な割込信号に優先順位をつけてそれらをプロセッサ割込発生器３０６に送り、プロセッサ割込発生器３０６はそれに応答し、特に各割込に対するデリバリモードと各処理ユニットの現在のタスク優先順位とに基づいて割込信号を処理ユニット２０２−１から２０２−ｍのうちの１つ以上に送る。中央制御装置３０２は、システムのための割込スタックおよび装置テーブルを維持し、さらにすべての処理ユニットの現在のタスク優先順位を維持する。中央制御装置３０２は最後に、すべてのプロセッサによってブロードキャスト態様で処理される必要のある選択された割込を分散させるための機構を含む。この分散機構については後により詳細に説明する。
【００２８】
既に述べたように、プロセッサ割込発生器３０６は様々な割込を１つの（または複数の）指定される宛先処理ユニットに送る。この実施例では、中央割込制御ユニット２２０は最大２５６の処理ユニット間に割込を分散するよう構成される。システム内に設けられる処理ユニットの数は、後の説明から理解されるように、システム初期設定でプログラムされる。
【００２９】
図４はＩ／Ｏ割込制御装置３０４のブロック図である。Ｉ／Ｏ割込制御装置３０４はＩ／Ｏ装置からピンＩＮＴＲ１、ＩＮＴＲ２、…ＩＮＴＲｎを介して割込を受取る。Ｉ／Ｏ割込制御装置３０４は、ピンＩＮＴＲ１−ＩＮＴＲｎにそれぞれ結合される複数の割込チャネル４０２−１から４０２−ｎを含む。中央制御装置インタフェース４０４は割込チャネル４０２−１から４０２−ｎの各々に結合される。割込チャネル４０２−１から４０２−ｎは、関連のピンＩＮＴＲ１−ＩＮＴＲｎでそれぞれ受取られた割込がそれを介して処理されるところの専用チャネルを与える。１つの実施例では、Ｉ／Ｏ割込制御装置３０４は合計１６の割込入力ピンを含み、それらの各々は最大２５６の独自な割込ベクトルをサポートするために１６の割込信号とカスケードされることが可能である。
【００３０】
各割込チャネル４０２−１から４０２−ｎ内には、各入来割込の処理を制御するために複数のレジスタ（図４には示さず）が設けられる。これらのレジスタは、システムのメモリ空間またはＩ／Ｏ空間内のいずれかにマッピングされる。割込チャネル４０２−１から４０２−ｎの内部レジスタについてのさらなる詳細は後に記載する。
【００３１】
各割込チャネル４０２−１から４０２−ｎは、その関連する入力ピンＩＮＴＲ１−ＩＮＴＲｎでの割込信号のアサーションを検知しその割込信号を処理して、割込が処理ユニットにディスパッチされるべきかどうかをベリファイする。割込特性は個別にプログラム可能であり、暗示される位置従属は割込チャネル４０２−１から４０２−ｎのいずれにも付加されない。
【００３２】
図５は割込チャネル４０２−１から４０２−ｎの各々を示すブロック図である。図５の割込チャネル４０２は、レジスタユニット５０４に結合される割込入力プロセッサ５０２と割込受入ユニット５０６とを含む。割込入力プロセッサ５０２は、ＩＮＴＲピン上の割込信号（カスケードモードがプログラムされる場合は、複数の割込信号）を処理し、カスケードされる割込に対する転送のモードを判断する。ピンがカスケードされるピンであるようにプログラムされる場合には、現在のカスケードされる割込のインデックスはカスケード割込アドレス（ＣＩＡ）レジスタで判断されストアされる。割込チャネル４０２がカスケードモードで動作される場合には、レジスタユニット５０４の数と割込受入ユニット５０６の数とは効果的に１５回重複されて、別個の割込サブチャネルが各可能なカスケードされる割込信号に対して設けられることが注目される。これらのサブチャネルは図５内に非常に細い線で示される。
【００３３】
各割込信号は、プログラマブル制御レジスタ５０４Ａと、宛先ＣＰＵレジスタ５０４Ｂと、アフィニティＣＰＵレジスタ５０４Ｃと、ＩＤ（ベクトル）レジスタ５０４Ｄとに関連する。制御レジスタ５０４Ａ内の情報に基づいて、割込受入ユニット５０６はＩＮＴＲピン上の信号を処理する。割込が純粋な、可能化された、かつ受容可能な信号である場合には、それは、処理ユニットの１つ以上に送られるよう、（図４の）中央制御装置インタフェース４０４に送られる。
【００３４】
既に述べたように、各ＩＮＴＲピンは、１６の異なる割込を表わすカスケードされた信号を割込ピンが受取ってもよいカスケードモードでプログラムされることが可能である。ピンがカスケードされるようにプログラムされる場合は、図５の非常に細い線で示されるように、レジスタユニットおよび割込受入ユニットの１６の個々の組は割込チャネルと関連する。中央制御ユニット２２０のカスケードモードについては後により詳細に説明する。
【００３５】
各割込チャネル（またはサブチャネル）の様々なレジスタを次に考察する。既に述べたように、レジスタの個々のセットは各可能な割込信号の各々に対して設けられる。これらのレジスタは、制御レジスタ５０４Ａ、宛先ＣＰＵレジスタ５０４Ｂ、アフィニティＣＰＵレジスタ５０４Ｃ、およびＩＤレジスタ５０４Ｄとラベルづけされる。これらのレジスタは、ソフトウェアにとって可視であり、メモリがマッピングされるまたはＩ／Ｏがマッピングされるシステム空間のいずれかに位置する。個々の制御レジスタ５０４Ａは、各割込信号に対して設けられ、プログラマブルである。各割込信号のための制御レジスタ５０４Ａは各ＩＮＴＲピンの機能性を定義して司り、各々は３２ビットレジスタで実施されてもよい。図６は制御レジスタ５０４Ａに関連するフィールドを示し、表１は制御レジスタ５０４Ａの様々なフィールドを記載する。表２はカスケードモード符号化を示し、表３はデリバリモード符号化を示し、表４はステータスビット符号化を示す。表１−表４に示されるように、制御レジスタ５０４Ａは、チャネルに与えられる割込信号のタイプ、割込ピンのモード（つまり正規モードまたはカスケードモード）、割込信号が現在マスクされているか否か、割込に関連する優先順位レベル、デリバリモード、および割込に関連する他のパラメータを定義する様々な情報をストアする。
【００３６】
【表１】
0003570810.tif 000002
【００３７】
【表２】
0003570810.tif 000003
【００３８】
【表３】
0003570810.tif 000004
【００３９】
【表４】
0003570810.tif 000005
【００４０】
図５を再び参照すると、宛先ＣＰＵレジスタ５０４Ｂの定義は、関連する割込信号のデリバリモードと現在のステータスとに依存する。割込が処理中でない場合には、宛先ＣＰＵレジスタ５０４Ｂは、割込が向けられる処理ユニットまたは処理ユニットのグループのＩＤを有する。割込が処理中である場合には、宛先ＣＰＵレジスタ５０４Ｂは割込を処理中の処理ユニットのＩＤを有する。デリバリモードがブロードキャストかまたは最下位優先順位である場合には、このレジスタは関連の意味を全く伝えない。
【００４１】
アフィニティＣＰＵレジスタ５０４Ｃは、最も最近に割込を処理した処理ユニット２０２−１から２０２−ｍ（図２）のＩＤをホールドする。ＩＤレジスタ５０４Ｄは割込のＩＤ（またはベクトル）を含む。
【００４２】
割込は、中央制御装置インタフェース４０４を介して中央制御装置３０２に送られる前に、それぞれの割込受入ユニット５０６によって処理される。割込が可能化され（ＩＣＲのＥＮ）かつマスクされない場合には（ＩＣＲのＭＳＫ）、それはデリバリモード、宛先処理ユニット（もしあれば）、優先順位レベル、および割込ＩＤについての情報とともに中央制御装置３０２に送られる。
【００４３】
上述したように、このアーキテクチャは、中央割込制御ユニット２２０の各割込ピンＩＮＴＲ１−ＩＮＴＲｎが直接割込またはカスケードされる割込のいずれとしてもプログラムされることを可能にする。制御レジスタ５０４Ａ内のカスケードビットがセットされる場合は、関連する割込チャネルは合計１５のさらなる拡張割込に対処する。これらの拡張割込の各々は、図５の非常に細い線で示されるように、専用割込制御レジスタ（ＩＣＲ）５０４Ａ、宛先ＣＰＵ５０４Ｂ、アフィニティＣＰＵレジスタ５０４Ｃ、およびＩＤレジスタ５０４Ｄに関連する。拡張割込制御レジスタのＣＳＤ、ＣＭおよびＩＳＡフィールドは定義されないという事実を除いて、これらのレジスタは表１−表４で定義されるものと同一である。
【００４４】
ＣＭフィールドは、カスケードモードで１６の割込のうちの１つにアクセスするのに用いられる方法を判断する。１６の割込のうちの１つのインデックスは、割込入力プロセッサに位置するＣＩＡレジスタによって判断される。ＣＭモードはＣＩＡを計算する機構を判断する。
【００４５】
図７および図８は、特定のピンをカスケードするためのハードウェア構成を示す。中央割込制御ユニット２２０は、３つの異なるカスケードモードを介して割込拡張をサポートすることが注目される。はじめの２つのモードでは、単一の物理的な割込ピンＩＮＴＲ１−ＩＮＴＲｎは多重Ｉ／Ｏ装置の割込を選択される割込サブチャネルに送る。第３のモードは、コンピュータシステム内に従来の８２５９型割込制御装置を集積することを可能にする。これにより伝統的なＰＣハードウェアおよびソフトウェアの互換性が与えられる。
【００４６】
まず図７を参照すると、「直列コード化」モードと呼ばれるもののためのハードウェア構成を示す。図７は、特定の割込チャネルが直列コード化カスケードモードに設定されると活性化される、割込入力プロセッサ５０２の内部部分を示すブロック図である。図７に示されるように、割込入力プロセッサ５０２は、シフタ制御５７２と直列デコード回路５７４とに結合される制御ユニット５７０を含む。制御ユニット５７０は、対応する制御レジスタ５０４ＡのＣＳＤおよびＣＭフィールドに応答する。現在のモードが直列コード化カスケードモードであることをＣＭフィールド（つまりカスケードモードフィールド）が示す場合には、特定の割込信号のアクティビティを識別するために、対応する割込ピンＩＮＴＲにある直列に送信される符号化されたデータがデコードされるよう、制御ユニット５７０はシフタ制御５７２と直列デコード回路５７４とを活性化する。割込入力プロセッサ５０２は、シフトレジスタ５８４と並列割込検知回路５８６とに結合される割込データエンコーダを含むリモート割込ハンドラ５８０に結合されて図示される。
【００４７】
複数の割込信号０ないし１５は並列割込検知回路５８６に与えられる。リモート割込ハンドラ５８０は、装置割込を集めて、各割込信号のステータスを中央割込制御ユニットへコード化された直列メッセージを介し関連する割込チャネルのＩＮＴＲライン上で通信する。並列割込検知回路５８６は、リモート割込ハンドラ５８０に与えられる割込信号をモニタする。割込信号のいずれかで遷移が起こると、割込データエンコーダ５８２は符号化された直列メッセージがシフトレジスタ５８４を介して割込入力プロセッサ５０２にブロードキャストされるようにする。直列データは、割込チャネルのＩＮＴＲラインに与えられる直列コード化メッセージライン上で送信される。シフトレジスタ５８４は、各直列コード化メッセージが送信される際に、同期するシフトクロックを割込入力プロセッサ５０２に与える。
【００４８】
１つの実施例では、符号化されるメッセージは６ビット形式の、カスケードされる割込信号番号および割込状態からなる。可能な符号化スキームは次のとおりである。
【００４９】
ビット５：４    割込状態
００    割込ローへ遷移
０１    割込ハイへ遷移
１０    予約
１１    予約
ビット３：０    ０ないし１５と番号づけられるカスケードされた割込入力信号のための割込番号
たとえば、割込信号３がローからハイへ遷移する状況を考えられたい。この遷移は並列割込検知回路５８６によって検知される。割込データエンコーダ５８２は、生じた遷移のタイプとその遷移を起こした特定の割込信号とを示す符号化された値を応答して発生する。たとえば、上述のコード化スキームが用いられたとすると、符号化された値「０１０１１１」は割込信号７（「０１１１」）におけるハイ（「０１」）への遷移を表わすことになる。符号化された値は次いでシフトレジスタ５８４に与えられ、それはシフト制御ユニット５７２によって受取られる直列送信を開始する。直列デコーダユニット５７４は次いで、割込データエンコーダ５８２のコード化スキームに従って受取ったメッセージをデコードして、そのメッセージを指定される割込サブチャネルの割込受入ユニット５０６に与える。割込が可能化され（制御レジスタのＥＮ）かつマスクされない場合には（制御レジスタのＭＳＫ）、対応する割込信号のための割込受入ユニット５０６は次いで割込を中央制御装置３０２上に送る。既に説明したのと同様に、割込受入ユニット５０６が割込を中央制御装置３０２に送るとき、その割込は割込信号のためのデリバリモードと宛先ＣＰＵ（もしあれば）と優先順位レベルと割込ＩＤとに関する情報とともに送られる。
【００５０】
図６の直列コード化カスケード構成に従うと、直列チャネルは、アクティビティが１つ以上の割込信号ライン上で生じたときのみ活性状態となり、したがって低電力および電気的に沈黙した拡張技術を提供する。さらに、メッセージの付加的なタイプに対処するために、符号化スキームは予約される値を与える。
【００５１】
図８は代替的なカスケード構成のブロック図である。図７の回路部分に対応する回路部分は同一の参照番号を付与される。この構成では、特定の割込信号のアクティビティを示す値を符号化するのではなく、並列割込検知回路５８６の状態が割込入力プロセッサ５０２にシフトレジスタ５８４を介して絶えずかつ直接通信される。したがって、シフトレジスタ５８４は並列割込検知回路５８６の状態を示す直列信号を継続して発生し、シフト制御ユニット５７２は直列送信を並列データに変換する。並列データは次いでメッセージデコーダ５９０によってデコードされ、メッセージデコーダ５９０は検知された割込信号送信を、対応するレジスタユニット５０４内にある関連の制御およびベクトル情報とともに、対応する割込受入ユニット５０６へ送る。
【００５２】
この構成では、割込入力プロセッサはリモート割込シフトレジスタ５８４を継続的にクロックする。それは次いで、現在のデータがどの割込に属するかを把握して、それを適当なチャネルに送らなければならない。データは単純な「割込ハイ」かまたは「割込ロー」である。中央制御装置（または割込受入ユニット５０６）は次いで、データが割込状態における変化を表わすかどうか、およびしたがってもし何らかの変化があった場合にはどのような動作がとられるべきかを判断しなければならない。
【００５３】
図２の中央割込制御ユニット２２０のさらなる局面を次に考察する。図９を参照すると、プロセッサ割込発生器３０６を示すブロック図が示される。既に述べたように、プロセッサ割込発生器３０６は、中央制御装置３０２から割込情報を受取って、処理ユニットに送られるべき、ＩＮＴ１−ＩＮＴｍとラベルづけされるプロセッサ割込信号を発生する。図に示されるように、プロセッサ割込発生器３０６は、中央制御装置インタフェース６０２と、プロセッサ間割込（ＩＰＩ）およびソフトウェア割込レジスタセット６０４と、ＣＰＵチャネル６０６−１から６０６−ｍの組とを含む。システムの各処理ユニットは、プロセッサ割込発生器３０６の関連するＣＰＵチャネル６０６−１から６０６−ｍから割込を受取る。ＣＰＵチャネル６０６−１から６０６−ｍは、中央制御装置３０２（図３）から中央制御装置インタフェース６０２を介して割込を受取って、それらを適当な処理ユニット（または複数の処理ユニット）にディスパッチする。
【００５４】
図１０はプロセッサチャネル６０６−１から６０６−ｍの各々を示すブロック図である。図１０のＣＰＵチャネル６０６は、割込ディスパッチ制御ユニット６５４に結合されるＣＰＵチャネルレジスタユニット６５０と割込待ち行列６５２とを含む。割込ディスパッチ制御ユニット６５４は対応する処理ユニットに保留割込をディスパッチする。
【００５５】
ＣＰＵチャネルレジスタユニット６５０は、現在のタスク優先レジスタ６５０Ａと、現在の割込ＩＤレジスタ６０５Ｂと、プロセッサＩＤレジスタ６５０Ｃと、制御レジスタ６５０Ｄとを含む。これらのレジスタの各々の機能およびビット定義を次に記載する。
【００５６】
システム内の各処理ユニットは、中央割込制御ユニット２２０によって見られるような機能性を司るために、専用の制御レジスタ６５０Ｄを割当てられる。これらは、システムのＩ／Ｏ空間またはメモリ空間内のいずれかにマッピングされる３２ビットプログラマブルレジスタである。図１１（ａ）は、ＣＰＵチャネル制御（ＣＩＧ）レジスタ６５０Ｄをその関連するフィールドとともに示し、表５から表７にかけては制御レジスタ内の各フィールドを記載する。
【００５７】
【表５】
0003570810.tif 000006
【００５８】
【表６】
0003570810.tif 000007
【００５９】
【表７】
0003570810.tif 000008
【００６０】
プロセッサＩＤレジスタ６５０Ｃは、特定のチャネルに関連する処理ユニット２０２−１から２０２−ｍのＩＤを含む。現在の割込ＩＤレジスタ６５０Ｂは、チャネルに接続される処理ユニットによって処理中の割込のＩＤ（ベクトル）をストアするために設けられる。割込が処理中であることを制御レジスタのステータスフィールドが示す場合にのみ、現在の割込ＩＤレジスタ６５０Ｂは有効である。現在のタスク優先レジスタ６５０Ａは、チャネルに関連する処理ユニットによって実行中のタスクの優先順位を反映する。
【００６１】
図９を参照すると、プロセッサ間割込およびソフトウェア割込レジスタセット６０４は、論理上はすべてのＣＰＵチャネルから同じ位置にアクセス可能なレジスタのセットを備える。このレジスタセットの空間はプロセッサＩＤをインデックスとして用いることによって各ＣＰＵチャネルに対して独自のレジスタビューを備える。したがって、同じ論理位置でマッピングされるこれらのレジスタに２つのプロセッサが読出／書込サイクルを発生すると、それらは実際には別個の物理上のレジスタにアクセスするだろう。処理ユニットはこれらのレジスタに書込を行なって、プロセッサ間割込を開始するかまたはソフトウェア割込をスケジュールする。
【００６２】
図１１（ｂ）は、プロセッサ間割込（ＩＰＩ）レジスタフォーマットおよびそのフィールドを示す。すべてのＩＰＩレジスタはソフトウェアにシステムのＩ／Ｏ位置またはメモリ位置のいずれかにおいてアクセス可能である。処理ユニットのＩＤは、どのレジスタがアクセスされているかを判断するためにインデックスとして用いられる。表８から表１１にかけては、各ＩＰＩレジスタ内の様々なフィールドの説明である。
【００６３】
【表８】
0003570810.tif 000009
【００６４】
【表９】
0003570810.tif 000010
【００６５】
【表１０】
0003570810.tif 000011
【００６６】
【表１１】
0003570810.tif 000012
【００６７】
処理ユニットはそれがプロセッサ間割込をスケジュールされるとそのＩＰＩレジスタに書込を行なう。処理ユニットが重複するプロセッサ間割込をスケジュールできる場合には、それはＩＰＩレジスタのＳＴ（ステータス）フィールドをモニタすべきである。このフィールドがアイドル状態であれば、処理ユニットはシステムにプロセッサ間割込を行なうことができる。ＩＰＩレジスタのステータスをチェックすることなく処理ユニットがプロセッサ間割込を行ない、かつＳＴフィールドがアイドル状態でない場合には、現在のプロセッサ間割込および任意の既にスケジュールされたプロセッサ間割込の必然性は判断されない。プロセッサ間割込レジスタのために特定されるフォーマットと同一のフォーマットを有する、各プロセッサチャネルのためのソフトウェア割込レジスタがさらに設けられてもよいことが注目される。しかしながらソフトウェア割込の場合には、要求される割込は割込要求中の処理ユニットにのみ送られる。
【００６８】
図２を再び参照して、コンピュータシステム２００のスタートアップ、および中央割込制御ユニット２２０内の様々な構成レジスタの初期化についての詳細を次に考察する。システム構成中、処理ユニット２０２−１から２０２−ｍのうちの１つは「ブート」処理ユニットとして指定される。以下の議論では、処理ユニット２０２−１がブート処理ユニットとして指定されたと仮定する。図１２は、システムリセットでのブート処理ユニットの動作を示す流れ図である。ステップ８５２で、処理ユニット２０２−１はパワーオン自己診断手順と初期化手順とを開始する。はじめは他の処理ユニット２０２−２から２０２−ｍは中央制御ユニット２２０によってリセットに保持されることが注目される。ステップ８５４で、処理ユニット２０２−１は各割込チャネルのレジスタユニット５０４（つまり、制御レジスタ５０４ＡおよびＩＤ（ベクトル）レジスタ５０４Ｄ）を初期化する。既に述べたように、各割込チャネルのレジスタユニット５０４は、コンピュータシステムのＩ／Ｏ空間またはメモリ空間内にマッピングされる。各割込チャネルの各レジスタは、予め定められかつ独自のアドレスでもって指定される。各割込チャネルのレジスタユニット５０４に与えられる初期化データは、典型的には主メモリ２０４のＢＩＯＳコード内にストアされる。したがって、各割込チャネルのレジスタユニット５０４を初期化するためのＢＩＯＳコードは、特定のシステム構成（つまり、割込発生資源の数およびタイプ）に依存し、システムプログラマによって与えられなければならない。
【００６９】
処理ユニット２０２−１に接続する中央割込処理ユニット２２０のＣＰＵチャネル６０６−１も初期化される。しかしながら、特定のＣＰＵチャネル６０６−１から６０６−ｍのための現在のタスク優先レジスタ６５０Ａと現在の割込ＩＤレジスタ６０５ＢとプロセッサＩＤレジスタ６５０Ｃと制御レジスタ６５０Ｄとは、他のＣＰＵチャネルのための対応するレジスタとして、同じシステムアドレス位置（Ｉ／Ｏ空間またはメモリ空間のいずれか）にあり、そこでマッピングされる。つまり、現在のタスク優先レジスタ６５０Ａのアドレスは各ＣＰＵチャネル６０６−１から６０６−ｍに対して同一である。同様に、各ＣＰＵチャネルのための現在の割込ＩＤレジスタ６５０Ｂのアドレスも同一であり、各ＣＰＵチャネルのプロセッサＩＤレジスタ６０５Ｃおよび制御レジスタ６５０Ｄのためのアドレス値もそうである。処理ユニットのＩＤ値はしたがって、各ＣＰＵチャネル６０６−１から６０６−ｍのＣＰＵチャネルレジスタユニット６５０を初期化または更新するための指定されるコマンド内に組込まれる各処理ユニット２０２−１から２０２−ｍに関連する。これについては後でより詳細に説明する。
【００７０】
図１３は、各ＣＰＵチャネル６０６−１から６０６−ｍのＣＰＵチャネルレジスタユニット６５０が正規実行の間に初期化され更新されることを可能にするハードウェアをより詳細に示す図である。図１３は、処理ユニット２０２−１に関連するＩＤレジスタ９０２−１を示す。同一のＩＤレジスタ９０２−２から９０２−ｍは処理ユニット２０２−２から２０２−ｍにさらに関連する。各ＩＤレジスタ９０２−１から９０２−ｍは、特定の処理ユニットを独自に識別する値を含む。各処理ユニットのＩＤ値は、ハードワイヤ値でもよく、またはシステム構成中に与えられてもよい。たとえば、１５の処理ユニットがシステム内で接続されたとすると、ＩＤレジスタ９０２−１から９０２−１６内のＩＤ値はそれぞれ０から１５までの範囲となるであろう。各ＩＤレジスタ９０２−１から９０２−ｍは、ソフトウェア命令を通し各処理ユニットの関連する制御デコーダ９０４−１から９０４−ｍを介してアクセスされてもよい。ＩＤレジスタはメモリ空間またはＩ／Ｏ空間内のいずれかでマッピングされてもよい。しかしながら、各処理ユニットはその対応するＩＤレジスタ９０２に同じアドレス値を介してアクセスすることが注目される。たとえば、各処理ユニット２０２−１から２０２−ｍのＩＤレジスタ９０２は、メモリ位置２０００：Ｈでマッピングされてもよい。したがって、指定される処理コア２０４−１から２０４−ｍがメモリ位置２０００：Ｈに読出サイクルを実行すると、その処理ユニットのための対応するＩＤレジスタ９０２内にある値がプロセッサコアに与えられる。各処理コアはこれらの状況で独自の値を読むことになる。
【００７１】
図１４は、各ＣＰＵチャネル６０６−１から６０６−ｍのそれぞれのＣＰＵチャネルレジスタユニット６５０からデータが書込まれる（または読出される）のを可能にする、中央割込制御ユニット２２０内に実施される回路を示す。この例では、合計１６の処理ユニットがシステム内に接続されるであろうと仮定されるが、この回路は代替的にたとえば２５６の独自の処理ユニットに対処するよう構成されてもよいことが理解される。図１４は、別個の１６のＣＰＵチャネルのためのＣＰＵチャネルレジスタユニット６５０−１から６５０−１６を示す。既に述べたように、各ＣＰＵチャネルレジスタユニット６５０−１から６５０−１６は、現在のタスク優先レジスタ６５０Ａと、現在の割込ＩＤレジスタ６５０Ｂと、プロセッサＩＤレジスタ６５０Ｃと、制御レジスタ６５０Ｄとを含む。これらのレジスタの各々は、ＣＰＵローカルバス２０７のデータラインからデータを受取るよう（または与えるよう）結合される。さらに４ないし１６デコーダ回路９２０が、その入力をＣＰＵローカルバス２０７の選択されるデータラインに結合される。４ないし１６デコーダ回路９２０の出力は、ＣＰＵチャネルレジスタユニット６５０−１から６５０−１６のそれぞれの選択ラインに結合される。各ＣＰＵチャネルレジスタユニット６５０−１から６５０−１６はデコーダ回路９２０から別個の選択信号を受取ることが注目される。さらにアドレスデコーダ９２２は、その入力がＩ／Ｏバス２１０のアドレスラインに結合される。４つのラッチ可能化ラインはアドレスデコーダ９２２の出力に設けられる。アドレスデコーダ可能化ラインは、ＣＰＵチャネルレジスタユニット６５０−１から６５０−１６の各現在のタスク優先レジスタ６５０Ａのラッチング可能化入力に結合され、同様にアドレスデコーダ可能化ラインは、各現在のＩＤレジスタ６５０Ｂと、各プロセッサＩＤレジスタ６５０Ｃと、各制御レジスタ６５０Ｄとにさらに接続される。
【００７２】
図１３および図１４に示されるハードウェア実現例に従うと、指定されるＣＰＵチャネル６０６−１から６０６−ｍのＣＰＵチャネルレジスタユニット６５０が初期化または更新されなければならない場合、指定されるＩＤレジスタ９０２内のプロセッサＩＤ値が、付加されるデータを正しいＣＰＵチャネルレジスタユニット６５０に向けるためのインデックスとして組込まれるよう、オペレーティングシステムプログラマは実行コードを構成してもよい。たとえば、各処理ユニット２０２−１から２０２−ｍのＩＤレジスタ９０２はメモリ位置２０００：Ｈでマッピングされ、各ＣＰＵチャネル６０６−１から６０６−ｍの制御レジスタ６５０Ｄは３０００：ＨのＩ／Ｏアドレスでマッピングされる状況を考えられたい。オペレーティングシステムが特定の処理ユニットのために制御レジスタ６５０Ｄ内の構成情報を更新しなければならないとすると、プログラマは、その特定の処理ユニットのＩＤレジスタ内の値を読出すために、まず指定される処理ユニットにメモリ位置２０００：Ｈへのメモリ読出サイクルを実行させるだろう。プログラマは次いで、関連の制御レジスタ６５０Ｄ内にストアされるべき構成データにそのＩＤ値を付加するための命令を呼出すだろう。続いて、アドレス位置３０００：ＨへのＩ／Ｏ書込コマンドが、その組合された情報（つまり、構成データおよびプロセッサＩＤ値）を書込むために実行される。このＩ／Ｏサイクルはアドレスデコーダ９２２によってデコーダされ、それは応答して各ＣＰＵチャネルレジスタユニット６５０−１から６５０−１６の制御レジスタ６５０Ｄを可能化させる。構成データに付加されたプロセッサＩＤ値は次いで４ないし１６デコーダ９２０によってデコードされ、それはＣＰＵチャネルレジスタユニット６５０−１から６５０−１６のうちの選択される１つに選択信号を与える。これにより、構成データは選択されかつ可能化されるレジスタにのみストアされる。それにより、各ＣＰＵチャネルの構成レジスタのための別個の専用アドレス位置を必要とすることなく、構成データは指定されるＣＰＵチャネル６０６−１から６０６−ｍに与えられる。各ＣＰＵチャネルのレジスタを更新するためのサイクル、および読出サイクルは、同じようにして達成される。必要なプロセッサＩＤ読出動作を実行する例示のコード、およびＩＤを構成データに付加し構成データを指定されるＣＰＵチャネルに書込むためのコードは次のとおりである。
【００７３】
【表１２】
0003570810.tif 000013
【００７４】
図１２を再び参照すると、ブート処理ユニットは中央割込制御ユニット２２０にあるＩ／Ｏチャネルを初期化した後（各Ｉ／Ｏチャネルの構成レジスタは、他のＩ／Ｏチャネルからの構成レジスタからとは別々に、専用位置にマッピングされる）、ブート処理ユニット２０２−１はＣＰＵチャネル６０６−１を初期化しなければならない。これは、図１３および図１４に関連して上記の方法を用いて達成される。したがって、ステップ８５６で、処理ユニット２０２−１はその対応するＩＤレジスタ９０２を読出す。ステップ８５８で、処理ユニット２０２は、そのＩＤレジスタ値を、ＣＰＵチャネルレジスタユニット６５０の指定されるレジスタ内にストアされなければならない所望の構成データに付加する。処理ユニット２０２−１は次いで、その組合されたデータをＣＰＵチャネルレジスタユニット６５０の選択されるレジスタに書込むためのサイクルを実行する。このサイクルの間に、図１４の４ないし１６デコーダ９２０が、ＣＰＵチャネル９０６−１のレジスタユニット６５０−１を選択するのに用いられることが注目される。同様の動作を開始して、ＣＰＵチャネル６０６−１のＣＰＵチャネルレジスタユニット６５０の他のレジスタにさらなる初期化データを書込んでもよい。１つの実現例の場合、現在のタスク優先レジスタ６５０Ａと制御レジスタ６５０Ｄとが、初期化シーケンスの間に処理ユニット２０２−１によって初期化データを書込まれる。処理ユニット２０２−１がそのＣＰＵチャネル６０６−１を初期化した後、処理ユニット２０２−１は中央割込制御ユニット２２０に残りの処理ユニット２０２−２から２０２−ｍをリセットから解放させる命令を中央割込制御ユニット２２０に与える（ステップ８６２）。続いて（ステップ８６４）、ブート処理ユニット２０２−１は、図１５に示されるようなスレーブ初期化シーケンスが完了するのを待つ。これで初期化シーケンスは完了する。
【００７５】
図１５は、各スレーブ処理ユニット２０２−２から２０２−ｍの初期化シーケンスを示す流れ図である。マスタ処理ユニット２０２−１によって中央割込制御ユニット２２０が残りの処理ユニットをリセットから解放すると、各処理ユニット２０２−２から２０２−ｍは、ステップ８７０で関連のＩＤレジスタ９０２−２から９０２−ｍをそれぞれ読出し、そのＩＤ値を制御レジスタ６５０Ｄ内にストアされるべき構成データに付加して（ステップ８７２）、その組合されたデータをＣＰＵチャネルレジスタユニット６５０に書込む（ステップ８７４）。図１４のデコーダ回路９２０はこれらのサイクルの間、各特定のサイクル中に識別されるプロセッサＩＤに従って適当なＣＰＵチャネルレジスタユニット６５０−１から６５０−１６を選択するために活性状態にある。同様の動作を繰返して、各ＣＰＵチャネルのタスク優先レジスタ６５０Ａを初期化してもよい（ステップ８７６）。ＩＤレジスタ９０２−２から９０２−ｍの各々にある独自のＩＤ値はＣＰＵチャネルレジスタユニット６５０の各レジスタに書込まれるデータに付加えられるため、各処理ユニット２０２−２から２０２−ｍはそれ自身のＣＰＵチャネル構成を実現することが、ここでも注目される。
【００７６】
再び図２と図４とを参照すると、既に述べたように、各指定される割込チャネル４０２−１から４０２−ｎは「８２５９」モードと呼ばれるモードにプログラムされてもよい。これにより、特定の割込チャネルが（関連の制御レジスタ５０４ＡのＣＭフィールドに示されるように）８２５９モードでプログラムされた場合には、割込制御装置２１６のようなプログラマブル割込制御装置は中央割込制御ユニット２２０に接続されることが可能となる。動作の８２５９モードでは、８２５９割込制御装置からの割込信号はそのプログラムされる優先順位に従い中央割込制御ユニット２２０を介して送られ、受信側の処理ユニット２０２−１から２０２−ｍからの肯定応答信号が中央割込制御ユニット２２０を介し割込制御装置２１６へ送り返される。これは、処理ユニット２０２の１つが中央割込制御ユニット２２０とバッファ２１９とに接続されるのを示す図１６に示される。ＩＳＡ割込が８２５９割込制御装置２１６の割込入力で受取られると、その割込は、中央割込制御ユニット２２０を介して送られ、プログラムされる優先順位レベルと他の中央制御経路に従って、指定される処理ユニット２０２に送られる。指定される処理ユニット２０２がサイクルを確認すると、割込肯定応答信号ＩＮＴＡが中央割込制御ユニット２２０を介して送られて８２５９割込制御装置２１６の割込肯定応答ラインで受取られる。割込制御装置２１６はＸバス２１０（または任意の他のバス）上で割込ベクトルを応答して駆動し、その割込ベクトルはバッファ２１９を介して処理ユニット２０２に送られる。バッファ２１９はバスブリッジ２０８内に組込まれてもよいことが注目される。したがって、８２５９カスケードモードでは、中央割込制御ユニット２２０は、受信側処理ユニット２０２の割込肯定応答サイクルに直接応答せず、その代わりにベクトル情報が８２５９割込制御装置２１６から与えられるようにする。上述のような８２５９カスケードモードを設けることにより、システムタイマ８３４と実時間クロック８３５とを含む８２Ｃ２０６型集積回路のような集積化された割込ソースの使用が可能となることがさらに注目される。
【００７７】
図２を再び参照すると、多重処理システム２００は、その中に組込まれる１つ以上のバスをわたって転送される特別に定義されるサイクルを用いて、様々なインタフェースをわたる割込情報の転送を可能にするようさらに構成されてもよい。これは図１７を参照すると最もよく理解される。図１７は、第２のＩ／Ｏブリッジ２８２に結合される付加的なＩ／Ｏ装置２８０を有する、図２で一般的な形で示される多重処理システムのブロック図である。第２のＩ／Ｏバス２８２はバスブリッジ２８４を介してＩ／Ｏバス２１０に結合される。バスブリッジ２８４は、たとえば、Ｉ／Ｏ装置２８０によって表わされるようなポータブルコンピュータを多重処理システムに結合するためのドッキングステーションを示す。図１７のシステムの場合、Ｉ／Ｏ装置２８０はバスブリッジ２８４に割込信号を与えるだろう。しかしながら、バスブリッジ２８４を中央割込制御ユニット２２０に結合する専用割込ピンのコストおよびそれが利用できない可能性のため、バスブリッジ２８４は中央割込制御ユニット２２０によって受取られる割込信号を専用ラインでアサートするよう構成されないかもしれない。その代わりに、Ｉ／Ｏ装置２８０による割込のアサーションに応答して、バスブリッジ２８４は、中央割込制御ユニット２２０の特定の割込チャネルが応答する専用サイクルまたは専用メモリ位置へのメモリサイクルもしくはＩ／Ｏサイクルを実行してもよい。図１８は、バスブリッジ２８４によって実行されるような割込サイクルをデコードし、対応する割込チャネル内の対応する割込信号をアサートするよう構成されるハードウェアを含む割込チャネルを示す。図１８に示されるように、割込チャネルモードがＩ／Ｏバスモードとして指定される場合には、制御ユニット２９０は、制御レジスタ５０４ＡのＣＭフィールドに応答し、割込チャネルモードがＩ／Ｏバスとして指定されていれば割込サイクルデコーダ２９２を応答して可能化する。制御ユニット２９０が割込サイクルデコーダ２９２を可能化すると、バスブリッジ２８４によって発生される専用割込サイクルが割込サイクルデコーダ２９２によって検知され、それは割込入力プロセッサ５０２のＩＮＴＲ入力で割込信号をアサートする。Ｉ／Ｏバス２１０がＰＣＩ規格構成バスである場合には、ＰＣＩバスのサイクル定義ビットの予め特定されるコード化によって、特定の割込サイクルが定義されてもよいことが注目される。代替的に、システムのメモリ空間またはＩ／Ｏ空間のいずれかにある予め定められるアドレスに対するサイクルとして、特定の割込サイクルが定義されてもよい。
【００７８】
中央制御装置３０２による割込の優先順位づけについて次に考察する。図１９は、Ｉ／Ｏ割込制御装置３０４と中央制御装置３０２とプロセッサ割込発生器３０６とを含む、中央割込制御ユニット２２０の一部を示すブロック図である。特定の割込をその割込ベクトルに依って固定される優先順位と自動的に関連づけるのではなく、中央割込制御ユニット２２０は各割込が独立したプログラマブル割込ベクトルと独立した優先順位とを有するようにさせる。優先順位は割込チャネルのための関連する制御レジスタ５０４ＡのＰＬフィールド内にストアされる。既に述べたように、システム初期化で、各割込チャネルに対するベクトルが設定される。加えて、各割込チャネルに対する優先順位レベルも設定される。一旦特定の割込要求がＩ／Ｏ割込制御装置３０４によって受付けられると、割込ベクトルおよび優先順位データは中央制御装置３０２の割込スケジューラ３０５によって処理され、それは応答してプロセッサ割込発生器３０６の指定されるＣＰＵチャネルの保留割込待ち行列６５２（図１０）内の各割込に対し割込ベクトルと優先順位データとを与える。割込は、割込制御レジスタにより示される優先順位レベルに基づき、および利用可能な処理ユニットの現在のタスク優先順位に基づいて、優先順位づけされる態様で、ＣＰＵチャネルの様々な割込待ち行列に与えられる。図１９は、Ｉ／Ｏバス２１０上の指定されるＩ／Ｏまたはメモリサイクルを介して各割込に対するベクトル情報と優先順位情報とを独立してプログラミングすることを可能にするＩ／Ｏバスインタフェースユニット３０８内のデコーダユニット３０９を示す。１つの単純な構成では、保留中の割込要求は、ＣＰＵチャネルの割込待ち行列に、それらの優先順位づけされた順序で与えられる。
【００７９】
図２を再び参照すると、既に述べたように、タイマティック割込のような選択される割込は、各処理ユニット２０２−１から２０２−ｍへブロードキャスト態様で与えられる必要があるかもしれない。特定の割込信号のためのデリバリモードがブロードキャストモード（つまり、割込のための制御レジスタ５０４ＡのＤＭフィールド）として指定される場合、中央割込装置３０２は図２０の流れ図に示されるようなオートチェイニング技術に従って動作する。図２０に示されるように、ブロードキャストとして指定される割込のための割込要求信号がステップ４７０の間に決定されるようにアサートされると、割込はステップ４７２で最も低い現在のタスク優先順位レベル（そのＣＰＵチャネルのための現在のタスク優先レジスタ６５０Ａによって示される）を有する処理ユニット２０２−１から２０２−ｍに与えられる。ステップ４７４で、指定される処理ユニットは割込を処理して割込の終わり（ＥＯＩ）コマンドを中央制御装置３０２に返す。処理ユニット２０２−１から２０２−ｍのすべてが割込を受取ってはいない場合には（ステップ４７６）、割込は、それをまだ受取ってはおらずかつ（この割込をまだ受取っていない残りの処理ユニットのうちで）最も低い現在のタスク優先順位値を有する次の処理ユニット２０２−１から２０２−ｍに与えられる。この、次の処理ユニットは次いで、割込を処理して割込の終わりコマンドを中央制御装置３０２へ返す。このプロセスは、各処理ユニット２０２−１から２０２−ｍが割込を処理するまで繰返される。すべての処理ユニットが割込を受取って処理しているときには、割込のためのビジービット（つまり、割込チャネルのための制御レジスタ５０４ＡのＳＴフィールドのアイドル状態）はクリアされる（ステップ４７８）。すべての処理ユニットではなく、処理ユニットの指定される組が特定の割込を受取らなければならない場合には、同様のオートチェイニング手順が実行されてもよいことが理解される。タイマティック割込のような割込が処理ユニットの２つ以上に与えられる上述のオートチェイニング技術に従うと、中央割込装置３０２は、示される最も低い現在のタスク優先順位レベルを有する処理ユニットに割込を知的に選択的に送る。割込は、前の処理ユニットが割込の処理を完了するまで、次の処理ユニットには送られない。この結果、相対的に高いタスク優先順位を有する処理ユニットに割込む前に、相対的に最も低い現在のタスク優先順位値を有する処理ユニットに割込むことによって、バス競合が最小限に抑えられてシステム性能を最大限なものにする。
【００８０】
中央割込制御ユニット２２０は、不正割込の発生を防ぐようさらに構成される。既に述べたように、レベルトリガされる割込が指定される処理ユニットによって処理中であるとき、Ｉ／Ｏコマンドは典型的には、実行されると割込ソースに割込信号をデアサートさせる割込処理ルーチンに関連する。続いて、割込の終わり（ＥＯＩ）コマンドが実行されて、割込処理が完了したことを中央割込制御ユニット２２０に知らせる。不正割込は、処理ユニットが（割込ソースに割込信号をデアサートさせる）Ｉ／Ｏコマンドを実行する時間と、割込信号がデアサートされる時間との間に有意な待ち時間が導入される場合に生ずるかもしれない。このような待ち時間はたとえば、Ｉ／Ｏ装置がいくつかのバスインタフェースユニットを介してリモートバス上にある場合に生ずるかもしれない。集中割込制御装置が割込の終わりコマンドに応答する前に、割込ソースが割込信号をデアサートしない場合には、割込の継続されるアサーションが中央割込制御ユニット２２０によって検知され、したがって、割込を意図せずして再開させるかもしれない。
【００８１】
図２１を参照すると、中央制御ユニット２２０は、デコーダユニット５９６を介してＩ／Ｏバス２１０に結合されるプログラマブル待ち時間タイマ５９５に有利に関連する。プログラマブル待ち時間タイマ５９５は、中央制御装置３０２が割込の終わりコマンドを受取る時間と、中央制御装置３０２が特定の割込チャネルの制御レジスタ５０４Ａのステータス（ＳＴ）フィールドをリセットする時間との間に、プログラム可能な時間遅延を設定するよう、システムユーザによってプログラムされてもよい。割込は処理中か、中央インタフェース制御ユニット２２０から特定の処理ユニットへディスパッチされてしまったか、または中央制御装置３０２で待ち行列に入っていることをステータスが示す場合には、Ｉ／Ｏ割込制御装置３０４は指定される割込信号がモニタされないように構成されるということは評価される。一旦中央制御装置３０２が特定の割込信号のためにステータスをアイドルにリセットすると、Ｉ／Ｏ割込制御装置３０４は次のアサーションのために特定の割込信号をモニタし続ける。プログラマブルタイマ５９５は特定の割込チャネルのための制御レジスタのＳＴフィールドのリセットを遅延させるので、不正割込が防がれるであろうことに注目されたい。プログラマブルタイマ５９５は、その割込のチャネル制御レジスタ５０４ＡのＥＯＩフィールドを介して各割込に対して選択的に可能化されてもよいことがさらに注目される。デコーダ５９６はＩ／Ｏバスインタフェースユニット３０８と一体となった部分として実施されてもよいことがさらに注目される。
【００８２】
最後に図２２を参照すると、適応割込マッピング機構および技術を用いる対称多重処理システムのブロック図が示される。簡略かつ明確にするために、図２の回路部分に対応する回路部分は同一の番号を付けられる。
【００８３】
図２２に示されるように、ＰＣＩバス９０２はバスブリッジ２０８を介してＣＰＵローカルバス２０７に結合される。ＩＳＡバスはバスブリッジ９０６を介してＰＣＩバス９０２にさらに結合される。複数のＰＣＩ装置９０７〜９０９はＰＣＩバス９０２に結合される。複数のＩＳＡ装置９１０〜９１２は同様にＩＳＡバス９０４に結合される。最後に、割込制御装置９１５およびＰＣＩマッパー９１６はＩＳＡバス９０４に結合して示される。
【００８４】
中央割込制御ユニット２２０は「先行」モードまたは「通過」モードで動作するよう構成される。通過モードはデフォルトモードである。先行モードには、中央割込制御ユニット２２０の構成レジスタ内のビットをセットすることによって（つまり、制御レジスタ５０４Ａ内のビットをセットすることによって）入る。２つのモード中の多重処理システムの動作を以下に説明する。
【００８５】
一般的にいうと、割込制御装置９１５は、ＰＣＩ装置９０７〜９０９およびＩＳＡ装置９１０〜９１２のような複数の割込装置から与えられる割込に優先順位を付け処理する。割込制御装置９１５は、機能をマスクするといったような他の機能をさらに設けてもよい。割込制御装置９１５は、中央割込制御ユニット２２０に結合されるライン９２０で割込信号を発生する。割込制御装置９１５は、たとえば、カスケード接続されるＡＭ８２５９割込制御装置の対を例示する。
【００８６】
ＰＣＩマッパー９１６は、ＰＣＩ装置９０７〜９０９の各々からの割込信号を、割込制御装置９１５の別個の割込入力（Ａ〜Ｈ）に送るよう構成される。ＰＣＩマッパー９１６は、システムＢＩＯＳに、ＰＣＩ装置９０７〜９０９からの各割込がＰＣＩマッパー９１６を介して割込制御装置９１５の指定された入力（Ａ〜Ｈ）に（つまり、ＩＳＡ装置９１０〜９１２のいずれによってもまだ使用されていない入力へ）送られるようにプログラムさせるという有利な点がある。応じて、システム初期化中に、システムＢＩＯＳは、どのＩＳＡ装置がシステムに接続されているのかを判断でき、応じて任意のＰＣＩ装置からの割込をＰＣＩマッパー９１６を介して割込制御装置９１５の不使用の割込入力にマッピングできる。ＩＳＡ装置９１０〜９１２およびＰＣＩ装置９０７〜９０９からの割込はさらに、中央割込制御ユニット２２０へ直接与えられるということが注目される。これについてさらに以下に説明する。
【００８７】
通過モード中、ＩＳＡ装置９１０〜９１２からの割込は割込制御装置９１５に与えられる。応答して、対応する割込が割込制御装置９１５によってライン９２０で発生され、中央割込制御ユニット２２０を介してマスタ処理ユニット２０２−１に直接送られる。同様に、ＰＣＩ装置９０７〜９０９からの割込はＰＣＩマッパー９１６を介して割込制御装置９１５に与えられる。ここでも、ＰＣＩ装置９０７〜９０９の１つによってアサートされる割込は、割込制御装置９１５からライン９２０で割込のアサーションを生じる。割込制御装置９１５からの割込は次いで中央割込制御ユニット２２０を介してマスタ処理ユニット２０２−１に直接送られる。中央割込制御ユニットは、このモード中はＰＣＩ装置９０７および９０９ならびにＩＳＡ装置９１０〜９１２から直接来る割込を無視するようさらに構成される。通過モード中、処理ユニット２０２−２から２０２−ｍはアイドル状態のままであり、システムは単一プロセッサシステムとして動作することが注目される。このモードはＤＯＳのような従来のオペレーティングシステムに対応するという有利な点がある。
【００８８】
先行モードは多重処理（つまりウインドウズ・ＮＴ（Ｗｉｎｄｏｗｓ  ＮＴ）など）をサポートする新形オペレーティングシステムによってマスタ初期化に続いてセットされてもよく、この先行モード中は、ＰＣＩマッパー９１６はその出力のすべてがトライステートになるよう不能化される。ＰＣＩ装置９０７〜９０９からの割込は中央割込制御ユニット２２０へ直接与えられる。同様に、ＩＳＡ装置９１０９１２からの割込も中央割込制御ユニット２２０へ直接与えられる。これらの割込の処理は次いで上述の態様で達成されてもよい。先行モード中は、割込制御装置９１５の割込出力は中央割込制御ユニット２２０によって無視される。下の表１３は、種々の割込およびＰＣＩマッパー９１６に対する通過モードおよび先行モードの効果を示す。
【００８９】
【表１３】
0003570810.tif 000014
【００９０】
図２２の多重処理システムはゆえに、新形オペレーティングシステムおよび従来の単一処理オペレーティングシステムの両方が容易にサポートされる適応割込マッピング機構および方法を用いる。先行モード中はＰＣＩマッパー９１６は不能化されるので、付加的なＩＳＡ装置は先行モード中はＰＣＩ装置９０７〜９０９からの割込と競合することなくＩＳＡバス９０４に接続されるだろう。応じて、広範囲のシステム構成がサポートされ、利用可能なＩＳＡ割込ライン数が最大限にされるだろう。上述の対称多重処理システムに従うと、システム割込の効率的な管理を達成しながら幅広い互換性を維持する。割込管理は集中割込制御ユニットによって達成される。
【００９１】
上述の開示が十分に理解されれば、数多くの変形および修正が当業者にとって明らかとなる。前掲の特許請求の範囲はそのようなすべての変形および修正を包含するよう解釈されることが意図されるものである。
【図面の簡単な説明】
【図１】複数の処理ユニットを含む典型的な対称多重処理システムのブロック図である。
【図２】集中割込制御装置機構を含む対称多重処理システムのブロック図である。
【図３】中央割込制御ユニットのブロック図である。
【図４】Ｉ／Ｏ割込制御装置のブロック図である。
【図５】割込チャネルを示すブロック図である。
【図６】割込チャネル制御レジスタおよびその関連フィールドの図である。
【図７】割込入力プロセッサの１つのカスケードモード中の対称多重処理システムに関連するハードウェアを示すブロック図である。
【図８】対称多重処理システムの別のカスケードモードに関連するハードウェアを示すブロック図である。
【図９】プロセッサ割込発生器のブロック図である。
【図１０】プロセッサチャネルを示すブロック図である。
【図１１】（ａ）はＣＰＵチャネル制御レジスタをその関連フィールドとともに示す図である。（ｂ）はプロセッサ間割込レジスタをその関連フィールドとともに示す図である。
【図１２】システムリセットでのブート処理ユニットの動作を示す流れ図である。
【図１３】各ＣＰＵチャネルのＣＰＵチャネルレジスタユニットを可能にするハードウェアを示す図である。
【図１４】中央割込制御ユニット内に実施される回路を示すブロック図である。
【図１５】各スレーブ処理ユニットのための初期化シーケンスを示す流れ図である。
【図１６】中央割込制御ユニットに結合される処理ユニットの１つを示すブロック図である。
【図１７】割込を開始するための特別に定義される割込サイクルを備える多重処理システムのブロック図である。
【図１８】割込サイクルをデコードするよう構成されるハードウェアを含む割込チャネルを示すブロック図であ。
【図１９】中央制御装置の内部部分を含む中央割込制御ユニットの一部を示すブロック図である。
【図２０】ブロードキャストモード中の割込のデリバリを示す流れ図である。
【図２１】プログラマブル待ち時間タイマを含む中央制御ユニットのブロック図である。
【図２２】この発明に従う適応割込マッピング機構および技術を用いる対称多重処理システムのブロック図である。
【符号の説明】
２００    対称多重処理システム
２０２−１    処理ユニット
２０２−２    処理ユニット
２０２−ｍ    処理ユニット
２０７    ＣＰＵローカルバス
２０８    バスブリッジ
２１０    Ｉ／Ｏバス
２１２−１    Ｉ／Ｏ装置
２１２−ｎ    Ｉ／Ｏ装置
２１４    Ｉ／Ｏ装置
２２０    中央割込制御ユニット
９０２  ＰＣＩバス
９０４  ＩＳＡバス
９０７  ＰＣＩ装置
９０８  ＰＣＩ装置
９０９  ＰＣＩ装置
９１０  ＩＳＡ装置
９１１  ＩＳＡ装置
９１２  ＩＳＡ装置
９１５  割込制御装置
９１６  ＰＣＩマッパー
【図１】
0003570810.tif 000015
【図２】
0003570810.tif 000016
【図３】
0003570810.tif 000017
【図４】
0003570810.tif 000018
【図５】
0003570810.tif 000019
【図６】
0003570810.tif 000020
【図７】
0003570810.tif 000021
【図８】
0003570810.tif 000022
【図９】
0003570810.tif 000023
【図１０】
0003570810.tif 000024
【図１１】
0003570810.tif 000025
【図１２】
0003570810.tif 000026
【図１３】
0003570810.tif 000027
【図１４】
0003570810.tif 000028
【図１５】
0003570810.tif 000029
【図１６】
0003570810.tif 000030
【図１７】
0003570810.tif 000031
【図１８】
0003570810.tif 000032
【図１９】
0003570810.tif 000033
【図２０】
0003570810.tif 000034
【図２１】
0003570810.tif 000035
【図２２】
0003570810.tif 000036