JP3570810B2 - 対称多重処理システム - Google Patents
対称多重処理システム Download PDFInfo
- Publication number
- JP3570810B2 JP3570810B2 JP06296396A JP6296396A JP3570810B2 JP 3570810 B2 JP3570810 B2 JP 3570810B2 JP 06296396 A JP06296396 A JP 06296396A JP 6296396 A JP6296396 A JP 6296396A JP 3570810 B2 JP3570810 B2 JP 3570810B2
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- control unit
- central
- mode
- coupled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Exchange Systems With Centralized Control (AREA)
- Multi Processors (AREA)
Description
【発明の背景】
1.発明の分野
この発明はコンピュータシステムに関する。より特定的にはこの発明は、対称多重処理システム内において用いられる割込制御アーキテクチャおよびスキームに関する。
【0002】
2.関連技術の説明
多重処理ユニットを用いるコンピュータシステムは、現在の単一のプロセッサに基づくシステムの動作能力を超える、経済的に見合う動作能力を約束する。多重処理を行なう環境内では、1つのアプリケーションのためのすべての処理を単一のプロセッサに集中させるよりもむしろ、タスクは別個のプロセッサによって処理可能なグループまたは「スレッド」に分けられる。それにより、全体の処理ロードはいくつかのプロセッサ間に分散され、分散されたタスクは並列して同時処理されるだろう。オペレーティングシステムソフトウェアは、プログラムコードの様々な部分を別々に実行可能なスレッドに分け、典型的には各スレッドに優先順位レベルを割当てる。
【0003】
図1は、複数の処理ユニット12A−12Cを含む、いわゆる対称多重処理システム10のブロック図である。各処理ユニット12A−12Cは、処理コア14A−14Cとキャッシュメモリ16A−16Cとバスインタフェース18A−18Cとをそれぞれ含む。処理ユニット12A−12Cはシステムバス22を介して主メモリ20に結合される。I/O装置24および26の組はシステムバス22にさらに結合される。
【0004】
図1の多重処理システム10は、すべての処理ユニット12A−12Cが同じメモリ空間(つまり主メモリ20)を共有し、同じアドレスマッピングを用いてメモリ空間にアクセスするという点で対称である。多重処理システム10はさらに、すべての処理ユニット12A−12Cが同じI/Oサブシステムへ等しいアクセスを共有するという点において対称である。
【0005】
一般に、オペレーティングシステムソフトウェアの1つのコピーおよび各ユーザアプリケーションファイルの1つのコピーは主メモリ20内にストアされる。各処理ユニット12A−12Cは、オペレーティングシステムおよびユーザアプリケーションファイルのこれらの1つのコピーから実行する。処理コア14A−14Cはコードを同時に実行するだろうが、処理ユニット12A−12Cのうちの1つだけが所与の時間にシステムバス22のマスタシップをとってもよいことに注目されたい。したがって、予め定められる調停アルゴリズムに基づいて、2つ以上の処理ユニットの同時バス要求を調停し、処理ユニットの1つにマスタシップを許可するために、バス調停機構(図示せず)が設けられる。様々なバス調停技術が周知となっている。
【0006】
各処理ユニット12A−12Cの高速キャッシュメモリ16A−16Cは、それぞれの処理ユニットによって最も最近アクセスされたデータを、その関連データが対応する主メモリアドレスを示すアドレスタグとともにそれぞれストアする。プログラムはコードの同じセクションを実行し同じデータ構造に繰返してアクセスする傾向があるため、キャッシュが十分に大きいものであれば、アクセスされる位置の多くは既にキャッシュにストアされている。
【0007】
キャッシュ機構には2つの大きな利点がある。第1に、キャッシュは高速メモリでもって実現されバス調停およびバッファ遅延なしにアクセス可能であるため、それぞれのキャッシュにストアされる位置へのアクセスは主メモリアクセスよりもはるかに高速である。第2に、それぞれのキャッシュにストアされる位置へのアクセスはシステムバスへのアクセスを必要としないため、各プロセッサのバス利用は大きく低減される。システムバスはゆえに他の要求されるトランザクションを処理するのに使用できる。典型的には、「ヒット率」が高ければ高いほど、全体のシステム性能はより向上する。ヒット率は、特定の処理コアによる、キャッシュに既にストアされる位置へのアクセスの割合である。適度に大きなキャッシュを有して適当に設計されるシステムは、90%を超えるヒット率を達成することができる。
【0008】
キャッシュメモリを用いる多重処理システムに関して考慮しなければならない重要な点はデータの一貫性である。主メモリ20によってストアされるデータ
(および命令)の複数のコピーがキャッシュメモリ16A−16Cのうちの1つ以上に同時に存在するかもしれないため、専用の機構を用いて、メモリサブシステムのうちの1つが更新された(つまり新しいデータを書込まれた)場合のデータの保全性を維持しなければならない。たとえば、データの特定のセクションが処理コア14Aによってキャッシュメモリ16A内で更新され、主メモリ20の対応するセクション内では更新されないという状況を考えられたい。処理コア14Bがこの後コードの同じセクションにアクセスするならば、どのセクションが最新のものでありどのセクションがもはや有効でないかということを把握するための何らかの信頼性のある機構を設けて、処理コア14Bが適当なデータに確実にアクセスするようにしなければならない。それゆえ、キャッシュの一貫性を効率的に維持するという目的で、いわゆるライトスルーおよびライトバック技術に基づく技術を含む様々な技術が開発されてきた。様々なキャッシュ一貫性技術は既知の先行技術の多くの刊行物に記載されており、ここではこれ以上は論じない。
【0009】
対称多重処理システムに関して考慮しなければならない別の重要な点は、様々なシステム資源により発生される割込の処理および分散である。たとえば、図1のシステムでは、I/O装置24および26は、特定の事象の発生(または非発生)に基づいて、それぞれの割込信号を各々アサートするかもしれない。当業者には理解されるように、割込は、特にキーボード装置、プリンタ、およびタイマのようなシステム資源によって、ルーチンに従って発生される。多くのシステムは、割込がソフトウェアコマンドに応答してアサートされてもよいソフトウェア割込にさらに対処する。システム内で生じるであろう異なる割込の数のため、最適なシステム性能およびバス利用を達成するよう割込を効率的に管理および分散する機構を設けることが望ましい。
【0010】
割込を処理するための1つの技術は、複数の割込を受取りそれらを優先順位づけして様々な処理ユニット間で分散させることのできる集中割込制御装置を用いる。集中割込制御技術に関連する問題は、対処可能な割込の総数が、典型的には集中割込制御装置に設けられる入力ピンの数によって制限されるという点である。言い換えれば、たとえば、集中割込制御装置が全部で16の割込入力ピンを含むとすると、16より多い割込発生装置は典型的にはシステム内で対処できない。このことはシステムの柔軟性に制限を与える。さらに、そのようなシステム内では、専用の割込ラインが各割込ソースに接続されなければならない。このような専用割込ラインは、コンピュータシステムに1つ以上の周辺装置を接続するリモートケーブルネットワークでは利用できないかもしれない。ここでも、システムの柔軟性は結果的に制限されるだろう。
【0011】
多重処理システムによって用いられる割込スキームが、異なるI/Oバス上にある装置に割込むことをサポートできることも重要である。従来の単一プロセッサシステムでは、アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド(Advanced Micro Devices, Inc.)製造の、特に広く用いられているAM8259割込制御装置のような割込制御装置が、ISA周辺装置のような、比較的多数の周辺装置をサポートするために用いられる。さらに、そのようなシステム内でPCIバス上にある周辺装置はPCI割込を8259割込制御装置上の利用可能な入力に送る割込マッパーを介して周辺装置の割込をマッピングすることによってフレキシブルにサポートされてもよい。残念なことに、8259のような割込制御装置は複数のプロセッサ間に割込を分散するようにはされない。この問題をさらに複雑にすることには、DOSのような従来のオペレーティングシステムは、システム内に8259タイプの割込装置が存在するものとする。
【0012】
複数のI/Oバス上にある周辺装置からの割込がサポートされる、多重処理システムのための割込機構および方法は望ましい。この割込機構および方法はさらに、新形多重処理オペレーティングシステムに対応する一方で、DOSのような従来的なオペレーティングシステムと後方互換性があるべきである。
【0013】
【発明の概要】
上に述べられる問題は、この発明に従う対称多重処理システムによって大部分解決される。1つの実施例において、中央割込制御ユニットを含む対称多重処理システムが設けられる。中央割込制御ユニットは、複数の処理ユニットと複数の割込ソースとに結合される。割込ソースは、PCIバスのような第1の周辺バスに結合される複数の周辺装置を含む。割込ソースはさらに、ISAバスのような第2の周辺バスに結合される装置を含む。中央割込制御ユニットは2つのモードで動作する。通過モードと呼ばれる第1のモードでは、ISA周辺装置からの割込は、カスケード接続されるタイプ8259割込制御装置のような割込制御装置を介して、中央割込制御ユニットに与えられる。中央割込制御ユニットは次いでその割込をマスタ処理ユニットに直接送る。PCI割込は、PCIマッパーを介して、割込制御装置の他の利用可能な割込入力に与えられる。通過モードは、このシステムと、DOSのような従来のオペレーティングシステムとの後方互換性を考慮するという有利な点がある。先行動作モード中、中央割込制御ユニットはPCIマッパーを不能化させる。先行モードでは、PCI装置およびISA装置の両方からの割込は中央割込制御ユニットに直接与えられる。先行モード中はPCIマッパーは不能化されるので、付加的なISA周辺装置はPCI割込と競合することなしにシステム内でサポートされるだろう。
【0014】
この発明の他の目的および利点は、以下の詳細な説明を読み、添付の図面を参照するとより明らかとなる。
【0015】
この発明は様々な修正および代替形式が可能であるが、その特定の実施例を図面の例によって示しここに詳細に記載する。しかしながら、図面およびその詳細な説明はこの発明を開示される特定の形式に限定することを意図するものではなく、逆に、この発明は前掲の特許請求の範囲に定義されるようなこの発明の精神および範囲内に入るすべての修正物、均等物および代替物を包含することを意図するものであることが理解されるはずである。
【0016】
【実施例の詳細な説明】
図2を参照すると、集中割込制御装置機構を含む対称多重処理システム200のブロック図が示される。システム200は、主メモリ204にCPUローカルバス207を介して結合される複数の処理ユニット202−1から202−mを含む。各処理ユニット202−1から202−mは、それぞれの処理コア204−1から204−mと、それぞれのキャッシュメモリ205−1から205−mと、それぞれのバスインタフェース206−1から206−mとを含む。バスブリッジ208はCPUローカルバス207をI/Oバス210に結合する。複数のI/O周辺装置212−1から212−nはI/Oバス210に結合される。付加的なI/O装置214および割込制御装置216はI/Oバス210にさらに結合される。I/O装置212−1から212−nは中央割込制御ユニット220に結合される。I/O装置212−1から212−nおよび214は、処理ユニット202−1から202−mの各々によりバスブリッジ208を介してアクセス可能である。
【0017】
中央割込制御ユニット220は、I/O装置212−1から212−nと割込制御装置216とから受取った割込を管理し、その割込を処理ユニット202−1から202−mの間に分散させるために設けられる。中央割込制御ユニット220は、処理ユニット202−1から202−mによって発生されるプロセッサ間割込およびソフトウェア割込をさらに管理する。その好ましい形式においては、中央割込制御ユニット220は、最適なシステムの柔軟性を提供するために、以下に論じられるような様々なプログラマブルな特徴を有して実現される。
【0018】
I/Oバス210は、CD−ROMユニット、ローカルエリアネットワーク
(LAN)装置、およびプリンタのような周辺装置をコンピュータシステム200に結合するための任意の好適なバスであってもよい。例示の周辺バス規格は、ISA(業界標準アーキテクチャ)バスと、EISA(拡張業界標準アーキテクチャ)バスと、PCI(周辺構成要素相互接続)バスとを含む。バスブリッジ208は、I/Oバス210とCPUローカルバス207との間にインタフェースを与える。
【0019】
処理コア204−1から204−mは、予め定められる命令セットに従って動作するデータ処理ユニットである。例示の処理ユニットは、80486型処理ユニットと、ペンティアム(Pentium )コンパチブル処理ユニットと、パワーPC(PowerPC )処理ユニットとを含む。しかしながら、処理ユニット202−1から202−mはさらに他の命令セットに従って動作してもよいことが理解される。
【0020】
キャッシュメモリ205−1から205−mは高速メモリ素子を用いて実現される。各キャッシュメモリ205−1から205−mは、関連する処理コア204−1から204−mと、関連するキャッシュメモリ205−1から205−mと、CPUローカルバス207との間でのデータの転送を調整し管理するキャッシュ制御装置(図では別途には図示せず)に関連する。好ましい形式においては、各処理ユニットのキャッシュ制御装置は、最大の支持動作を提供するために、関連の処理コアと同時並列で動作する。
【0021】
CPUローカルバス207は、予め定められるビット幅を有し、コンピュータシステムの主バスである。主メモリ204は、予め定められるサイズの物理的メモリであり、DRAM(ダイナミックランダムアクセスメモリ)でもって実現されてもよい。メモリ制御装置(別途には図示されず)は、主メモリ204に関連して、CPUローカルバス207と主メモリ204との間で通信するデータ、アドレス、および制御信号の転送を制御し調整する。
【0022】
割込制御装置216は、たとえばI/O装置214のような様々な割込ソースから引出される割込信号を分類し管理するために設けられる。割込制御装置216は、たとえば、アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド(Advanced Micro Devices, Inc.)製造の、8259A型シリーズのプログラマブル割込制御装置を示す。8259Aプログラマブル割込制御装置については、刊行物「MOSマイクロプロセッサおよび周辺装置(MOS Microprocessors and Peripherals )」、3−371頁から3−388頁(アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 1987)に記載されている。
【0023】
中央割込制御ユニット220の詳細な議論に進む前に、様々な構成レジスタが中央割込制御ユニット220内に組み込みまれることにまず注目されたい。これらの構成レジスタはI/Oバス210を介してプログラムされアクセスされてもよい。したがって、中央割込制御装置220は、CPUローカルバス207のタイプからは独立し、したがって異なるタイプの処理ユニットを用いる様々なシステム内で用いられてもよい。この結果、中央割込制御ユニット220は、様々な多重処理システムとともに使用されてもよく、それらのシステムと互換性もある。
【0024】
次に図3を参照して、中央割込制御ユニット220についての詳細を次に考察する。図3は、I/O割込制御装置304とプロセッサ割込発生器306とに結合される中央制御装置302を含む中央制御ユニット220の1つの実施例のブロック図である。I/Oバスインタフェースユニット308は、中央制御装置302に結合されてさらに図示される。
【0025】
I/Oバスインタフェースユニット308は、後により詳細に説明されるように、中央制御ユニット220のプログラミングを可能にし、かつ中央制御ユニット220の他の機能を提供するために、I/Oバス210と中央制御装置302との間にインタフェースを与える。プログラミングおよび他の機能のために、中央割込制御ユニット220は、CPUローカルバス207を中央制御ユニット220に結合するためのCPUバスインタフェースユニットを代替的にまたは付加的に含んでもよいことが理解される。
【0026】
既に説明したように、中央割込制御ユニット220は様々な異なるI/O装置からの割込を受付けることができる。これらの割込は、INTR1−INTRnとラベルづけされる複数の割込ピンで受取られてI/O割込制御装置304に与えられる。中央割込制御ユニット220は、各割込INTR1−INTRnが割込の特定のタイプを指定し、特定のデリバリモードを特定し、それの優先順位レベルを示すように個々にプログラムされ得るよう構成される。加えて、特定のピンで受取られて識別され得る割込信号の数を増やすために、各割込ピンがカスケードモードで用いられることもできる。これについては後にさらに説明する。
【0027】
中央制御装置302は、様々な割込信号に優先順位をつけてそれらをプロセッサ割込発生器306に送り、プロセッサ割込発生器306はそれに応答し、特に各割込に対するデリバリモードと各処理ユニットの現在のタスク優先順位とに基づいて割込信号を処理ユニット202−1から202−mのうちの1つ以上に送る。中央制御装置302は、システムのための割込スタックおよび装置テーブルを維持し、さらにすべての処理ユニットの現在のタスク優先順位を維持する。中央制御装置302は最後に、すべてのプロセッサによってブロードキャスト態様で処理される必要のある選択された割込を分散させるための機構を含む。この分散機構については後により詳細に説明する。
【0028】
既に述べたように、プロセッサ割込発生器306は様々な割込を1つの(または複数の)指定される宛先処理ユニットに送る。この実施例では、中央割込制御ユニット220は最大256の処理ユニット間に割込を分散するよう構成される。システム内に設けられる処理ユニットの数は、後の説明から理解されるように、システム初期設定でプログラムされる。
【0029】
図4はI/O割込制御装置304のブロック図である。I/O割込制御装置304はI/O装置からピンINTR1、INTR2、…INTRnを介して割込を受取る。I/O割込制御装置304は、ピンINTR1−INTRnにそれぞれ結合される複数の割込チャネル402−1から402−nを含む。中央制御装置インタフェース404は割込チャネル402−1から402−nの各々に結合される。割込チャネル402−1から402−nは、関連のピンINTR1−INTRnでそれぞれ受取られた割込がそれを介して処理されるところの専用チャネルを与える。1つの実施例では、I/O割込制御装置304は合計16の割込入力ピンを含み、それらの各々は最大256の独自な割込ベクトルをサポートするために16の割込信号とカスケードされることが可能である。
【0030】
各割込チャネル402−1から402−n内には、各入来割込の処理を制御するために複数のレジスタ(図4には示さず)が設けられる。これらのレジスタは、システムのメモリ空間またはI/O空間内のいずれかにマッピングされる。割込チャネル402−1から402−nの内部レジスタについてのさらなる詳細は後に記載する。
【0031】
各割込チャネル402−1から402−nは、その関連する入力ピンINTR1−INTRnでの割込信号のアサーションを検知しその割込信号を処理して、割込が処理ユニットにディスパッチされるべきかどうかをベリファイする。割込特性は個別にプログラム可能であり、暗示される位置従属は割込チャネル402−1から402−nのいずれにも付加されない。
【0032】
図5は割込チャネル402−1から402−nの各々を示すブロック図である。図5の割込チャネル402は、レジスタユニット504に結合される割込入力プロセッサ502と割込受入ユニット506とを含む。割込入力プロセッサ502は、INTRピン上の割込信号(カスケードモードがプログラムされる場合は、複数の割込信号)を処理し、カスケードされる割込に対する転送のモードを判断する。ピンがカスケードされるピンであるようにプログラムされる場合には、現在のカスケードされる割込のインデックスはカスケード割込アドレス(CIA)レジスタで判断されストアされる。割込チャネル402がカスケードモードで動作される場合には、レジスタユニット504の数と割込受入ユニット506の数とは効果的に15回重複されて、別個の割込サブチャネルが各可能なカスケードされる割込信号に対して設けられることが注目される。これらのサブチャネルは図5内に非常に細い線で示される。
【0033】
各割込信号は、プログラマブル制御レジスタ504Aと、宛先CPUレジスタ504Bと、アフィニティCPUレジスタ504Cと、ID(ベクトル)レジスタ504Dとに関連する。制御レジスタ504A内の情報に基づいて、割込受入ユニット506はINTRピン上の信号を処理する。割込が純粋な、可能化された、かつ受容可能な信号である場合には、それは、処理ユニットの1つ以上に送られるよう、(図4の)中央制御装置インタフェース404に送られる。
【0034】
既に述べたように、各INTRピンは、16の異なる割込を表わすカスケードされた信号を割込ピンが受取ってもよいカスケードモードでプログラムされることが可能である。ピンがカスケードされるようにプログラムされる場合は、図5の非常に細い線で示されるように、レジスタユニットおよび割込受入ユニットの16の個々の組は割込チャネルと関連する。中央制御ユニット220のカスケードモードについては後により詳細に説明する。
【0035】
各割込チャネル(またはサブチャネル)の様々なレジスタを次に考察する。既に述べたように、レジスタの個々のセットは各可能な割込信号の各々に対して設けられる。これらのレジスタは、制御レジスタ504A、宛先CPUレジスタ504B、アフィニティCPUレジスタ504C、およびIDレジスタ504Dとラベルづけされる。これらのレジスタは、ソフトウェアにとって可視であり、メモリがマッピングされるまたはI/Oがマッピングされるシステム空間のいずれかに位置する。個々の制御レジスタ504Aは、各割込信号に対して設けられ、プログラマブルである。各割込信号のための制御レジスタ504Aは各INTRピンの機能性を定義して司り、各々は32ビットレジスタで実施されてもよい。図6は制御レジスタ504Aに関連するフィールドを示し、表1は制御レジスタ504Aの様々なフィールドを記載する。表2はカスケードモード符号化を示し、表3はデリバリモード符号化を示し、表4はステータスビット符号化を示す。表1−表4に示されるように、制御レジスタ504Aは、チャネルに与えられる割込信号のタイプ、割込ピンのモード(つまり正規モードまたはカスケードモード)、割込信号が現在マスクされているか否か、割込に関連する優先順位レベル、デリバリモード、および割込に関連する他のパラメータを定義する様々な情報をストアする。
【0036】
【表1】
【0037】
【表2】
【0038】
【表3】
【0039】
【表4】
【0040】
図5を再び参照すると、宛先CPUレジスタ504Bの定義は、関連する割込信号のデリバリモードと現在のステータスとに依存する。割込が処理中でない場合には、宛先CPUレジスタ504Bは、割込が向けられる処理ユニットまたは処理ユニットのグループのIDを有する。割込が処理中である場合には、宛先CPUレジスタ504Bは割込を処理中の処理ユニットのIDを有する。デリバリモードがブロードキャストかまたは最下位優先順位である場合には、このレジスタは関連の意味を全く伝えない。
【0041】
アフィニティCPUレジスタ504Cは、最も最近に割込を処理した処理ユニット202−1から202−m(図2)のIDをホールドする。IDレジスタ504Dは割込のID(またはベクトル)を含む。
【0042】
割込は、中央制御装置インタフェース404を介して中央制御装置302に送られる前に、それぞれの割込受入ユニット506によって処理される。割込が可能化され(ICRのEN)かつマスクされない場合には(ICRのMSK)、それはデリバリモード、宛先処理ユニット(もしあれば)、優先順位レベル、および割込IDについての情報とともに中央制御装置302に送られる。
【0043】
上述したように、このアーキテクチャは、中央割込制御ユニット220の各割込ピンINTR1−INTRnが直接割込またはカスケードされる割込のいずれとしてもプログラムされることを可能にする。制御レジスタ504A内のカスケードビットがセットされる場合は、関連する割込チャネルは合計15のさらなる拡張割込に対処する。これらの拡張割込の各々は、図5の非常に細い線で示されるように、専用割込制御レジスタ(ICR)504A、宛先CPU504B、アフィニティCPUレジスタ504C、およびIDレジスタ504Dに関連する。拡張割込制御レジスタのCSD、CMおよびISAフィールドは定義されないという事実を除いて、これらのレジスタは表1−表4で定義されるものと同一である。
【0044】
CMフィールドは、カスケードモードで16の割込のうちの1つにアクセスするのに用いられる方法を判断する。16の割込のうちの1つのインデックスは、割込入力プロセッサに位置するCIAレジスタによって判断される。CMモードはCIAを計算する機構を判断する。
【0045】
図7および図8は、特定のピンをカスケードするためのハードウェア構成を示す。中央割込制御ユニット220は、3つの異なるカスケードモードを介して割込拡張をサポートすることが注目される。はじめの2つのモードでは、単一の物理的な割込ピンINTR1−INTRnは多重I/O装置の割込を選択される割込サブチャネルに送る。第3のモードは、コンピュータシステム内に従来の8259型割込制御装置を集積することを可能にする。これにより伝統的なPCハードウェアおよびソフトウェアの互換性が与えられる。
【0046】
まず図7を参照すると、「直列コード化」モードと呼ばれるもののためのハードウェア構成を示す。図7は、特定の割込チャネルが直列コード化カスケードモードに設定されると活性化される、割込入力プロセッサ502の内部部分を示すブロック図である。図7に示されるように、割込入力プロセッサ502は、シフタ制御572と直列デコード回路574とに結合される制御ユニット570を含む。制御ユニット570は、対応する制御レジスタ504AのCSDおよびCMフィールドに応答する。現在のモードが直列コード化カスケードモードであることをCMフィールド(つまりカスケードモードフィールド)が示す場合には、特定の割込信号のアクティビティを識別するために、対応する割込ピンINTRにある直列に送信される符号化されたデータがデコードされるよう、制御ユニット570はシフタ制御572と直列デコード回路574とを活性化する。割込入力プロセッサ502は、シフトレジスタ584と並列割込検知回路586とに結合される割込データエンコーダを含むリモート割込ハンドラ580に結合されて図示される。
【0047】
複数の割込信号0ないし15は並列割込検知回路586に与えられる。リモート割込ハンドラ580は、装置割込を集めて、各割込信号のステータスを中央割込制御ユニットへコード化された直列メッセージを介し関連する割込チャネルのINTRライン上で通信する。並列割込検知回路586は、リモート割込ハンドラ580に与えられる割込信号をモニタする。割込信号のいずれかで遷移が起こると、割込データエンコーダ582は符号化された直列メッセージがシフトレジスタ584を介して割込入力プロセッサ502にブロードキャストされるようにする。直列データは、割込チャネルのINTRラインに与えられる直列コード化メッセージライン上で送信される。シフトレジスタ584は、各直列コード化メッセージが送信される際に、同期するシフトクロックを割込入力プロセッサ502に与える。
【0048】
1つの実施例では、符号化されるメッセージは6ビット形式の、カスケードされる割込信号番号および割込状態からなる。可能な符号化スキームは次のとおりである。
【0049】
ビット5:4 割込状態
00 割込ローへ遷移
01 割込ハイへ遷移
10 予約
11 予約
ビット3:0 0ないし15と番号づけられるカスケードされた割込入力信号のための割込番号
たとえば、割込信号3がローからハイへ遷移する状況を考えられたい。この遷移は並列割込検知回路586によって検知される。割込データエンコーダ582は、生じた遷移のタイプとその遷移を起こした特定の割込信号とを示す符号化された値を応答して発生する。たとえば、上述のコード化スキームが用いられたとすると、符号化された値「010111」は割込信号7(「0111」)におけるハイ(「01」)への遷移を表わすことになる。符号化された値は次いでシフトレジスタ584に与えられ、それはシフト制御ユニット572によって受取られる直列送信を開始する。直列デコーダユニット574は次いで、割込データエンコーダ582のコード化スキームに従って受取ったメッセージをデコードして、そのメッセージを指定される割込サブチャネルの割込受入ユニット506に与える。割込が可能化され(制御レジスタのEN)かつマスクされない場合には(制御レジスタのMSK)、対応する割込信号のための割込受入ユニット506は次いで割込を中央制御装置302上に送る。既に説明したのと同様に、割込受入ユニット506が割込を中央制御装置302に送るとき、その割込は割込信号のためのデリバリモードと宛先CPU(もしあれば)と優先順位レベルと割込IDとに関する情報とともに送られる。
【0050】
図6の直列コード化カスケード構成に従うと、直列チャネルは、アクティビティが1つ以上の割込信号ライン上で生じたときのみ活性状態となり、したがって低電力および電気的に沈黙した拡張技術を提供する。さらに、メッセージの付加的なタイプに対処するために、符号化スキームは予約される値を与える。
【0051】
図8は代替的なカスケード構成のブロック図である。図7の回路部分に対応する回路部分は同一の参照番号を付与される。この構成では、特定の割込信号のアクティビティを示す値を符号化するのではなく、並列割込検知回路586の状態が割込入力プロセッサ502にシフトレジスタ584を介して絶えずかつ直接通信される。したがって、シフトレジスタ584は並列割込検知回路586の状態を示す直列信号を継続して発生し、シフト制御ユニット572は直列送信を並列データに変換する。並列データは次いでメッセージデコーダ590によってデコードされ、メッセージデコーダ590は検知された割込信号送信を、対応するレジスタユニット504内にある関連の制御およびベクトル情報とともに、対応する割込受入ユニット506へ送る。
【0052】
この構成では、割込入力プロセッサはリモート割込シフトレジスタ584を継続的にクロックする。それは次いで、現在のデータがどの割込に属するかを把握して、それを適当なチャネルに送らなければならない。データは単純な「割込ハイ」かまたは「割込ロー」である。中央制御装置(または割込受入ユニット506)は次いで、データが割込状態における変化を表わすかどうか、およびしたがってもし何らかの変化があった場合にはどのような動作がとられるべきかを判断しなければならない。
【0053】
図2の中央割込制御ユニット220のさらなる局面を次に考察する。図9を参照すると、プロセッサ割込発生器306を示すブロック図が示される。既に述べたように、プロセッサ割込発生器306は、中央制御装置302から割込情報を受取って、処理ユニットに送られるべき、INT1−INTmとラベルづけされるプロセッサ割込信号を発生する。図に示されるように、プロセッサ割込発生器306は、中央制御装置インタフェース602と、プロセッサ間割込(IPI)およびソフトウェア割込レジスタセット604と、CPUチャネル606−1から606−mの組とを含む。システムの各処理ユニットは、プロセッサ割込発生器306の関連するCPUチャネル606−1から606−mから割込を受取る。CPUチャネル606−1から606−mは、中央制御装置302(図3)から中央制御装置インタフェース602を介して割込を受取って、それらを適当な処理ユニット(または複数の処理ユニット)にディスパッチする。
【0054】
図10はプロセッサチャネル606−1から606−mの各々を示すブロック図である。図10のCPUチャネル606は、割込ディスパッチ制御ユニット654に結合されるCPUチャネルレジスタユニット650と割込待ち行列652とを含む。割込ディスパッチ制御ユニット654は対応する処理ユニットに保留割込をディスパッチする。
【0055】
CPUチャネルレジスタユニット650は、現在のタスク優先レジスタ650Aと、現在の割込IDレジスタ605Bと、プロセッサIDレジスタ650Cと、制御レジスタ650Dとを含む。これらのレジスタの各々の機能およびビット定義を次に記載する。
【0056】
システム内の各処理ユニットは、中央割込制御ユニット220によって見られるような機能性を司るために、専用の制御レジスタ650Dを割当てられる。これらは、システムのI/O空間またはメモリ空間内のいずれかにマッピングされる32ビットプログラマブルレジスタである。図11(a)は、CPUチャネル制御(CIG)レジスタ650Dをその関連するフィールドとともに示し、表5から表7にかけては制御レジスタ内の各フィールドを記載する。
【0057】
【表5】
【0058】
【表6】
【0059】
【表7】
【0060】
プロセッサIDレジスタ650Cは、特定のチャネルに関連する処理ユニット202−1から202−mのIDを含む。現在の割込IDレジスタ650Bは、チャネルに接続される処理ユニットによって処理中の割込のID(ベクトル)をストアするために設けられる。割込が処理中であることを制御レジスタのステータスフィールドが示す場合にのみ、現在の割込IDレジスタ650Bは有効である。現在のタスク優先レジスタ650Aは、チャネルに関連する処理ユニットによって実行中のタスクの優先順位を反映する。
【0061】
図9を参照すると、プロセッサ間割込およびソフトウェア割込レジスタセット604は、論理上はすべてのCPUチャネルから同じ位置にアクセス可能なレジスタのセットを備える。このレジスタセットの空間はプロセッサIDをインデックスとして用いることによって各CPUチャネルに対して独自のレジスタビューを備える。したがって、同じ論理位置でマッピングされるこれらのレジスタに2つのプロセッサが読出/書込サイクルを発生すると、それらは実際には別個の物理上のレジスタにアクセスするだろう。処理ユニットはこれらのレジスタに書込を行なって、プロセッサ間割込を開始するかまたはソフトウェア割込をスケジュールする。
【0062】
図11(b)は、プロセッサ間割込(IPI)レジスタフォーマットおよびそのフィールドを示す。すべてのIPIレジスタはソフトウェアにシステムのI/O位置またはメモリ位置のいずれかにおいてアクセス可能である。処理ユニットのIDは、どのレジスタがアクセスされているかを判断するためにインデックスとして用いられる。表8から表11にかけては、各IPIレジスタ内の様々なフィールドの説明である。
【0063】
【表8】
【0064】
【表9】
【0065】
【表10】
【0066】
【表11】
【0067】
処理ユニットはそれがプロセッサ間割込をスケジュールされるとそのIPIレジスタに書込を行なう。処理ユニットが重複するプロセッサ間割込をスケジュールできる場合には、それはIPIレジスタのST(ステータス)フィールドをモニタすべきである。このフィールドがアイドル状態であれば、処理ユニットはシステムにプロセッサ間割込を行なうことができる。IPIレジスタのステータスをチェックすることなく処理ユニットがプロセッサ間割込を行ない、かつSTフィールドがアイドル状態でない場合には、現在のプロセッサ間割込および任意の既にスケジュールされたプロセッサ間割込の必然性は判断されない。プロセッサ間割込レジスタのために特定されるフォーマットと同一のフォーマットを有する、各プロセッサチャネルのためのソフトウェア割込レジスタがさらに設けられてもよいことが注目される。しかしながらソフトウェア割込の場合には、要求される割込は割込要求中の処理ユニットにのみ送られる。
【0068】
図2を再び参照して、コンピュータシステム200のスタートアップ、および中央割込制御ユニット220内の様々な構成レジスタの初期化についての詳細を次に考察する。システム構成中、処理ユニット202−1から202−mのうちの1つは「ブート」処理ユニットとして指定される。以下の議論では、処理ユニット202−1がブート処理ユニットとして指定されたと仮定する。図12は、システムリセットでのブート処理ユニットの動作を示す流れ図である。ステップ852で、処理ユニット202−1はパワーオン自己診断手順と初期化手順とを開始する。はじめは他の処理ユニット202−2から202−mは中央制御ユニット220によってリセットに保持されることが注目される。ステップ854で、処理ユニット202−1は各割込チャネルのレジスタユニット504(つまり、制御レジスタ504AおよびID(ベクトル)レジスタ504D)を初期化する。既に述べたように、各割込チャネルのレジスタユニット504は、コンピュータシステムのI/O空間またはメモリ空間内にマッピングされる。各割込チャネルの各レジスタは、予め定められかつ独自のアドレスでもって指定される。各割込チャネルのレジスタユニット504に与えられる初期化データは、典型的には主メモリ204のBIOSコード内にストアされる。したがって、各割込チャネルのレジスタユニット504を初期化するためのBIOSコードは、特定のシステム構成(つまり、割込発生資源の数およびタイプ)に依存し、システムプログラマによって与えられなければならない。
【0069】
処理ユニット202−1に接続する中央割込処理ユニット220のCPUチャネル606−1も初期化される。しかしながら、特定のCPUチャネル606−1から606−mのための現在のタスク優先レジスタ650Aと現在の割込IDレジスタ605BとプロセッサIDレジスタ650Cと制御レジスタ650Dとは、他のCPUチャネルのための対応するレジスタとして、同じシステムアドレス位置(I/O空間またはメモリ空間のいずれか)にあり、そこでマッピングされる。つまり、現在のタスク優先レジスタ650Aのアドレスは各CPUチャネル606−1から606−mに対して同一である。同様に、各CPUチャネルのための現在の割込IDレジスタ650Bのアドレスも同一であり、各CPUチャネルのプロセッサIDレジスタ605Cおよび制御レジスタ650Dのためのアドレス値もそうである。処理ユニットのID値はしたがって、各CPUチャネル606−1から606−mのCPUチャネルレジスタユニット650を初期化または更新するための指定されるコマンド内に組込まれる各処理ユニット202−1から202−mに関連する。これについては後でより詳細に説明する。
【0070】
図13は、各CPUチャネル606−1から606−mのCPUチャネルレジスタユニット650が正規実行の間に初期化され更新されることを可能にするハードウェアをより詳細に示す図である。図13は、処理ユニット202−1に関連するIDレジスタ902−1を示す。同一のIDレジスタ902−2から902−mは処理ユニット202−2から202−mにさらに関連する。各IDレジスタ902−1から902−mは、特定の処理ユニットを独自に識別する値を含む。各処理ユニットのID値は、ハードワイヤ値でもよく、またはシステム構成中に与えられてもよい。たとえば、15の処理ユニットがシステム内で接続されたとすると、IDレジスタ902−1から902−16内のID値はそれぞれ0から15までの範囲となるであろう。各IDレジスタ902−1から902−mは、ソフトウェア命令を通し各処理ユニットの関連する制御デコーダ904−1から904−mを介してアクセスされてもよい。IDレジスタはメモリ空間またはI/O空間内のいずれかでマッピングされてもよい。しかしながら、各処理ユニットはその対応するIDレジスタ902に同じアドレス値を介してアクセスすることが注目される。たとえば、各処理ユニット202−1から202−mのIDレジスタ902は、メモリ位置2000:Hでマッピングされてもよい。したがって、指定される処理コア204−1から204−mがメモリ位置2000:Hに読出サイクルを実行すると、その処理ユニットのための対応するIDレジスタ902内にある値がプロセッサコアに与えられる。各処理コアはこれらの状況で独自の値を読むことになる。
【0071】
図14は、各CPUチャネル606−1から606−mのそれぞれのCPUチャネルレジスタユニット650からデータが書込まれる(または読出される)のを可能にする、中央割込制御ユニット220内に実施される回路を示す。この例では、合計16の処理ユニットがシステム内に接続されるであろうと仮定されるが、この回路は代替的にたとえば256の独自の処理ユニットに対処するよう構成されてもよいことが理解される。図14は、別個の16のCPUチャネルのためのCPUチャネルレジスタユニット650−1から650−16を示す。既に述べたように、各CPUチャネルレジスタユニット650−1から650−16は、現在のタスク優先レジスタ650Aと、現在の割込IDレジスタ650Bと、プロセッサIDレジスタ650Cと、制御レジスタ650Dとを含む。これらのレジスタの各々は、CPUローカルバス207のデータラインからデータを受取るよう(または与えるよう)結合される。さらに4ないし16デコーダ回路920が、その入力をCPUローカルバス207の選択されるデータラインに結合される。4ないし16デコーダ回路920の出力は、CPUチャネルレジスタユニット650−1から650−16のそれぞれの選択ラインに結合される。各CPUチャネルレジスタユニット650−1から650−16はデコーダ回路920から別個の選択信号を受取ることが注目される。さらにアドレスデコーダ922は、その入力がI/Oバス210のアドレスラインに結合される。4つのラッチ可能化ラインはアドレスデコーダ922の出力に設けられる。アドレスデコーダ可能化ラインは、CPUチャネルレジスタユニット650−1から650−16の各現在のタスク優先レジスタ650Aのラッチング可能化入力に結合され、同様にアドレスデコーダ可能化ラインは、各現在のIDレジスタ650Bと、各プロセッサIDレジスタ650Cと、各制御レジスタ650Dとにさらに接続される。
【0072】
図13および図14に示されるハードウェア実現例に従うと、指定されるCPUチャネル606−1から606−mのCPUチャネルレジスタユニット650が初期化または更新されなければならない場合、指定されるIDレジスタ902内のプロセッサID値が、付加されるデータを正しいCPUチャネルレジスタユニット650に向けるためのインデックスとして組込まれるよう、オペレーティングシステムプログラマは実行コードを構成してもよい。たとえば、各処理ユニット202−1から202−mのIDレジスタ902はメモリ位置2000:Hでマッピングされ、各CPUチャネル606−1から606−mの制御レジスタ650Dは3000:HのI/Oアドレスでマッピングされる状況を考えられたい。オペレーティングシステムが特定の処理ユニットのために制御レジスタ650D内の構成情報を更新しなければならないとすると、プログラマは、その特定の処理ユニットのIDレジスタ内の値を読出すために、まず指定される処理ユニットにメモリ位置2000:Hへのメモリ読出サイクルを実行させるだろう。プログラマは次いで、関連の制御レジスタ650D内にストアされるべき構成データにそのID値を付加するための命令を呼出すだろう。続いて、アドレス位置3000:HへのI/O書込コマンドが、その組合された情報(つまり、構成データおよびプロセッサID値)を書込むために実行される。このI/Oサイクルはアドレスデコーダ922によってデコーダされ、それは応答して各CPUチャネルレジスタユニット650−1から650−16の制御レジスタ650Dを可能化させる。構成データに付加されたプロセッサID値は次いで4ないし16デコーダ920によってデコードされ、それはCPUチャネルレジスタユニット650−1から650−16のうちの選択される1つに選択信号を与える。これにより、構成データは選択されかつ可能化されるレジスタにのみストアされる。それにより、各CPUチャネルの構成レジスタのための別個の専用アドレス位置を必要とすることなく、構成データは指定されるCPUチャネル606−1から606−mに与えられる。各CPUチャネルのレジスタを更新するためのサイクル、および読出サイクルは、同じようにして達成される。必要なプロセッサID読出動作を実行する例示のコード、およびIDを構成データに付加し構成データを指定されるCPUチャネルに書込むためのコードは次のとおりである。
【0073】
【表12】
【0074】
図12を再び参照すると、ブート処理ユニットは中央割込制御ユニット220にあるI/Oチャネルを初期化した後(各I/Oチャネルの構成レジスタは、他のI/Oチャネルからの構成レジスタからとは別々に、専用位置にマッピングされる)、ブート処理ユニット202−1はCPUチャネル606−1を初期化しなければならない。これは、図13および図14に関連して上記の方法を用いて達成される。したがって、ステップ856で、処理ユニット202−1はその対応するIDレジスタ902を読出す。ステップ858で、処理ユニット202は、そのIDレジスタ値を、CPUチャネルレジスタユニット650の指定されるレジスタ内にストアされなければならない所望の構成データに付加する。処理ユニット202−1は次いで、その組合されたデータをCPUチャネルレジスタユニット650の選択されるレジスタに書込むためのサイクルを実行する。このサイクルの間に、図14の4ないし16デコーダ920が、CPUチャネル906−1のレジスタユニット650−1を選択するのに用いられることが注目される。同様の動作を開始して、CPUチャネル606−1のCPUチャネルレジスタユニット650の他のレジスタにさらなる初期化データを書込んでもよい。1つの実現例の場合、現在のタスク優先レジスタ650Aと制御レジスタ650Dとが、初期化シーケンスの間に処理ユニット202−1によって初期化データを書込まれる。処理ユニット202−1がそのCPUチャネル606−1を初期化した後、処理ユニット202−1は中央割込制御ユニット220に残りの処理ユニット202−2から202−mをリセットから解放させる命令を中央割込制御ユニット220に与える(ステップ862)。続いて(ステップ864)、ブート処理ユニット202−1は、図15に示されるようなスレーブ初期化シーケンスが完了するのを待つ。これで初期化シーケンスは完了する。
【0075】
図15は、各スレーブ処理ユニット202−2から202−mの初期化シーケンスを示す流れ図である。マスタ処理ユニット202−1によって中央割込制御ユニット220が残りの処理ユニットをリセットから解放すると、各処理ユニット202−2から202−mは、ステップ870で関連のIDレジスタ902−2から902−mをそれぞれ読出し、そのID値を制御レジスタ650D内にストアされるべき構成データに付加して(ステップ872)、その組合されたデータをCPUチャネルレジスタユニット650に書込む(ステップ874)。図14のデコーダ回路920はこれらのサイクルの間、各特定のサイクル中に識別されるプロセッサIDに従って適当なCPUチャネルレジスタユニット650−1から650−16を選択するために活性状態にある。同様の動作を繰返して、各CPUチャネルのタスク優先レジスタ650Aを初期化してもよい(ステップ876)。IDレジスタ902−2から902−mの各々にある独自のID値はCPUチャネルレジスタユニット650の各レジスタに書込まれるデータに付加えられるため、各処理ユニット202−2から202−mはそれ自身のCPUチャネル構成を実現することが、ここでも注目される。
【0076】
再び図2と図4とを参照すると、既に述べたように、各指定される割込チャネル402−1から402−nは「8259」モードと呼ばれるモードにプログラムされてもよい。これにより、特定の割込チャネルが(関連の制御レジスタ504AのCMフィールドに示されるように)8259モードでプログラムされた場合には、割込制御装置216のようなプログラマブル割込制御装置は中央割込制御ユニット220に接続されることが可能となる。動作の8259モードでは、8259割込制御装置からの割込信号はそのプログラムされる優先順位に従い中央割込制御ユニット220を介して送られ、受信側の処理ユニット202−1から202−mからの肯定応答信号が中央割込制御ユニット220を介し割込制御装置216へ送り返される。これは、処理ユニット202の1つが中央割込制御ユニット220とバッファ219とに接続されるのを示す図16に示される。ISA割込が8259割込制御装置216の割込入力で受取られると、その割込は、中央割込制御ユニット220を介して送られ、プログラムされる優先順位レベルと他の中央制御経路に従って、指定される処理ユニット202に送られる。指定される処理ユニット202がサイクルを確認すると、割込肯定応答信号INTAが中央割込制御ユニット220を介して送られて8259割込制御装置216の割込肯定応答ラインで受取られる。割込制御装置216はXバス210(または任意の他のバス)上で割込ベクトルを応答して駆動し、その割込ベクトルはバッファ219を介して処理ユニット202に送られる。バッファ219はバスブリッジ208内に組込まれてもよいことが注目される。したがって、8259カスケードモードでは、中央割込制御ユニット220は、受信側処理ユニット202の割込肯定応答サイクルに直接応答せず、その代わりにベクトル情報が8259割込制御装置216から与えられるようにする。上述のような8259カスケードモードを設けることにより、システムタイマ834と実時間クロック835とを含む82C206型集積回路のような集積化された割込ソースの使用が可能となることがさらに注目される。
【0077】
図2を再び参照すると、多重処理システム200は、その中に組込まれる1つ以上のバスをわたって転送される特別に定義されるサイクルを用いて、様々なインタフェースをわたる割込情報の転送を可能にするようさらに構成されてもよい。これは図17を参照すると最もよく理解される。図17は、第2のI/Oブリッジ282に結合される付加的なI/O装置280を有する、図2で一般的な形で示される多重処理システムのブロック図である。第2のI/Oバス282はバスブリッジ284を介してI/Oバス210に結合される。バスブリッジ284は、たとえば、I/O装置280によって表わされるようなポータブルコンピュータを多重処理システムに結合するためのドッキングステーションを示す。図17のシステムの場合、I/O装置280はバスブリッジ284に割込信号を与えるだろう。しかしながら、バスブリッジ284を中央割込制御ユニット220に結合する専用割込ピンのコストおよびそれが利用できない可能性のため、バスブリッジ284は中央割込制御ユニット220によって受取られる割込信号を専用ラインでアサートするよう構成されないかもしれない。その代わりに、I/O装置280による割込のアサーションに応答して、バスブリッジ284は、中央割込制御ユニット220の特定の割込チャネルが応答する専用サイクルまたは専用メモリ位置へのメモリサイクルもしくはI/Oサイクルを実行してもよい。図18は、バスブリッジ284によって実行されるような割込サイクルをデコードし、対応する割込チャネル内の対応する割込信号をアサートするよう構成されるハードウェアを含む割込チャネルを示す。図18に示されるように、割込チャネルモードがI/Oバスモードとして指定される場合には、制御ユニット290は、制御レジスタ504AのCMフィールドに応答し、割込チャネルモードがI/Oバスとして指定されていれば割込サイクルデコーダ292を応答して可能化する。制御ユニット290が割込サイクルデコーダ292を可能化すると、バスブリッジ284によって発生される専用割込サイクルが割込サイクルデコーダ292によって検知され、それは割込入力プロセッサ502のINTR入力で割込信号をアサートする。I/Oバス210がPCI規格構成バスである場合には、PCIバスのサイクル定義ビットの予め特定されるコード化によって、特定の割込サイクルが定義されてもよいことが注目される。代替的に、システムのメモリ空間またはI/O空間のいずれかにある予め定められるアドレスに対するサイクルとして、特定の割込サイクルが定義されてもよい。
【0078】
中央制御装置302による割込の優先順位づけについて次に考察する。図19は、I/O割込制御装置304と中央制御装置302とプロセッサ割込発生器306とを含む、中央割込制御ユニット220の一部を示すブロック図である。特定の割込をその割込ベクトルに依って固定される優先順位と自動的に関連づけるのではなく、中央割込制御ユニット220は各割込が独立したプログラマブル割込ベクトルと独立した優先順位とを有するようにさせる。優先順位は割込チャネルのための関連する制御レジスタ504AのPLフィールド内にストアされる。既に述べたように、システム初期化で、各割込チャネルに対するベクトルが設定される。加えて、各割込チャネルに対する優先順位レベルも設定される。一旦特定の割込要求がI/O割込制御装置304によって受付けられると、割込ベクトルおよび優先順位データは中央制御装置302の割込スケジューラ305によって処理され、それは応答してプロセッサ割込発生器306の指定されるCPUチャネルの保留割込待ち行列652(図10)内の各割込に対し割込ベクトルと優先順位データとを与える。割込は、割込制御レジスタにより示される優先順位レベルに基づき、および利用可能な処理ユニットの現在のタスク優先順位に基づいて、優先順位づけされる態様で、CPUチャネルの様々な割込待ち行列に与えられる。図19は、I/Oバス210上の指定されるI/Oまたはメモリサイクルを介して各割込に対するベクトル情報と優先順位情報とを独立してプログラミングすることを可能にするI/Oバスインタフェースユニット308内のデコーダユニット309を示す。1つの単純な構成では、保留中の割込要求は、CPUチャネルの割込待ち行列に、それらの優先順位づけされた順序で与えられる。
【0079】
図2を再び参照すると、既に述べたように、タイマティック割込のような選択される割込は、各処理ユニット202−1から202−mへブロードキャスト態様で与えられる必要があるかもしれない。特定の割込信号のためのデリバリモードがブロードキャストモード(つまり、割込のための制御レジスタ504AのDMフィールド)として指定される場合、中央割込装置302は図20の流れ図に示されるようなオートチェイニング技術に従って動作する。図20に示されるように、ブロードキャストとして指定される割込のための割込要求信号がステップ470の間に決定されるようにアサートされると、割込はステップ472で最も低い現在のタスク優先順位レベル(そのCPUチャネルのための現在のタスク優先レジスタ650Aによって示される)を有する処理ユニット202−1から202−mに与えられる。ステップ474で、指定される処理ユニットは割込を処理して割込の終わり(EOI)コマンドを中央制御装置302に返す。処理ユニット202−1から202−mのすべてが割込を受取ってはいない場合には(ステップ476)、割込は、それをまだ受取ってはおらずかつ(この割込をまだ受取っていない残りの処理ユニットのうちで)最も低い現在のタスク優先順位値を有する次の処理ユニット202−1から202−mに与えられる。この、次の処理ユニットは次いで、割込を処理して割込の終わりコマンドを中央制御装置302へ返す。このプロセスは、各処理ユニット202−1から202−mが割込を処理するまで繰返される。すべての処理ユニットが割込を受取って処理しているときには、割込のためのビジービット(つまり、割込チャネルのための制御レジスタ504AのSTフィールドのアイドル状態)はクリアされる(ステップ478)。すべての処理ユニットではなく、処理ユニットの指定される組が特定の割込を受取らなければならない場合には、同様のオートチェイニング手順が実行されてもよいことが理解される。タイマティック割込のような割込が処理ユニットの2つ以上に与えられる上述のオートチェイニング技術に従うと、中央割込装置302は、示される最も低い現在のタスク優先順位レベルを有する処理ユニットに割込を知的に選択的に送る。割込は、前の処理ユニットが割込の処理を完了するまで、次の処理ユニットには送られない。この結果、相対的に高いタスク優先順位を有する処理ユニットに割込む前に、相対的に最も低い現在のタスク優先順位値を有する処理ユニットに割込むことによって、バス競合が最小限に抑えられてシステム性能を最大限なものにする。
【0080】
中央割込制御ユニット220は、不正割込の発生を防ぐようさらに構成される。既に述べたように、レベルトリガされる割込が指定される処理ユニットによって処理中であるとき、I/Oコマンドは典型的には、実行されると割込ソースに割込信号をデアサートさせる割込処理ルーチンに関連する。続いて、割込の終わり(EOI)コマンドが実行されて、割込処理が完了したことを中央割込制御ユニット220に知らせる。不正割込は、処理ユニットが(割込ソースに割込信号をデアサートさせる)I/Oコマンドを実行する時間と、割込信号がデアサートされる時間との間に有意な待ち時間が導入される場合に生ずるかもしれない。このような待ち時間はたとえば、I/O装置がいくつかのバスインタフェースユニットを介してリモートバス上にある場合に生ずるかもしれない。集中割込制御装置が割込の終わりコマンドに応答する前に、割込ソースが割込信号をデアサートしない場合には、割込の継続されるアサーションが中央割込制御ユニット220によって検知され、したがって、割込を意図せずして再開させるかもしれない。
【0081】
図21を参照すると、中央制御ユニット220は、デコーダユニット596を介してI/Oバス210に結合されるプログラマブル待ち時間タイマ595に有利に関連する。プログラマブル待ち時間タイマ595は、中央制御装置302が割込の終わりコマンドを受取る時間と、中央制御装置302が特定の割込チャネルの制御レジスタ504Aのステータス(ST)フィールドをリセットする時間との間に、プログラム可能な時間遅延を設定するよう、システムユーザによってプログラムされてもよい。割込は処理中か、中央インタフェース制御ユニット220から特定の処理ユニットへディスパッチされてしまったか、または中央制御装置302で待ち行列に入っていることをステータスが示す場合には、I/O割込制御装置304は指定される割込信号がモニタされないように構成されるということは評価される。一旦中央制御装置302が特定の割込信号のためにステータスをアイドルにリセットすると、I/O割込制御装置304は次のアサーションのために特定の割込信号をモニタし続ける。プログラマブルタイマ595は特定の割込チャネルのための制御レジスタのSTフィールドのリセットを遅延させるので、不正割込が防がれるであろうことに注目されたい。プログラマブルタイマ595は、その割込のチャネル制御レジスタ504AのEOIフィールドを介して各割込に対して選択的に可能化されてもよいことがさらに注目される。デコーダ596はI/Oバスインタフェースユニット308と一体となった部分として実施されてもよいことがさらに注目される。
【0082】
最後に図22を参照すると、適応割込マッピング機構および技術を用いる対称多重処理システムのブロック図が示される。簡略かつ明確にするために、図2の回路部分に対応する回路部分は同一の番号を付けられる。
【0083】
図22に示されるように、PCIバス902はバスブリッジ208を介してCPUローカルバス207に結合される。ISAバスはバスブリッジ906を介してPCIバス902にさらに結合される。複数のPCI装置907〜909はPCIバス902に結合される。複数のISA装置910〜912は同様にISAバス904に結合される。最後に、割込制御装置915およびPCIマッパー916はISAバス904に結合して示される。
【0084】
中央割込制御ユニット220は「先行」モードまたは「通過」モードで動作するよう構成される。通過モードはデフォルトモードである。先行モードには、中央割込制御ユニット220の構成レジスタ内のビットをセットすることによって(つまり、制御レジスタ504A内のビットをセットすることによって)入る。2つのモード中の多重処理システムの動作を以下に説明する。
【0085】
一般的にいうと、割込制御装置915は、PCI装置907〜909およびISA装置910〜912のような複数の割込装置から与えられる割込に優先順位を付け処理する。割込制御装置915は、機能をマスクするといったような他の機能をさらに設けてもよい。割込制御装置915は、中央割込制御ユニット220に結合されるライン920で割込信号を発生する。割込制御装置915は、たとえば、カスケード接続されるAM8259割込制御装置の対を例示する。
【0086】
PCIマッパー916は、PCI装置907〜909の各々からの割込信号を、割込制御装置915の別個の割込入力(A〜H)に送るよう構成される。PCIマッパー916は、システムBIOSに、PCI装置907〜909からの各割込がPCIマッパー916を介して割込制御装置915の指定された入力(A〜H)に(つまり、ISA装置910〜912のいずれによってもまだ使用されていない入力へ)送られるようにプログラムさせるという有利な点がある。応じて、システム初期化中に、システムBIOSは、どのISA装置がシステムに接続されているのかを判断でき、応じて任意のPCI装置からの割込をPCIマッパー916を介して割込制御装置915の不使用の割込入力にマッピングできる。ISA装置910〜912およびPCI装置907〜909からの割込はさらに、中央割込制御ユニット220へ直接与えられるということが注目される。これについてさらに以下に説明する。
【0087】
通過モード中、ISA装置910〜912からの割込は割込制御装置915に与えられる。応答して、対応する割込が割込制御装置915によってライン920で発生され、中央割込制御ユニット220を介してマスタ処理ユニット202−1に直接送られる。同様に、PCI装置907〜909からの割込はPCIマッパー916を介して割込制御装置915に与えられる。ここでも、PCI装置907〜909の1つによってアサートされる割込は、割込制御装置915からライン920で割込のアサーションを生じる。割込制御装置915からの割込は次いで中央割込制御ユニット220を介してマスタ処理ユニット202−1に直接送られる。中央割込制御ユニットは、このモード中はPCI装置907および909ならびにISA装置910〜912から直接来る割込を無視するようさらに構成される。通過モード中、処理ユニット202−2から202−mはアイドル状態のままであり、システムは単一プロセッサシステムとして動作することが注目される。このモードはDOSのような従来のオペレーティングシステムに対応するという有利な点がある。
【0088】
先行モードは多重処理(つまりウインドウズ・NT(Windows NT)など)をサポートする新形オペレーティングシステムによってマスタ初期化に続いてセットされてもよく、この先行モード中は、PCIマッパー916はその出力のすべてがトライステートになるよう不能化される。PCI装置907〜909からの割込は中央割込制御ユニット220へ直接与えられる。同様に、ISA装置910912からの割込も中央割込制御ユニット220へ直接与えられる。これらの割込の処理は次いで上述の態様で達成されてもよい。先行モード中は、割込制御装置915の割込出力は中央割込制御ユニット220によって無視される。下の表13は、種々の割込およびPCIマッパー916に対する通過モードおよび先行モードの効果を示す。
【0089】
【表13】
【0090】
図22の多重処理システムはゆえに、新形オペレーティングシステムおよび従来の単一処理オペレーティングシステムの両方が容易にサポートされる適応割込マッピング機構および方法を用いる。先行モード中はPCIマッパー916は不能化されるので、付加的なISA装置は先行モード中はPCI装置907〜909からの割込と競合することなくISAバス904に接続されるだろう。応じて、広範囲のシステム構成がサポートされ、利用可能なISA割込ライン数が最大限にされるだろう。上述の対称多重処理システムに従うと、システム割込の効率的な管理を達成しながら幅広い互換性を維持する。割込管理は集中割込制御ユニットによって達成される。
【0091】
上述の開示が十分に理解されれば、数多くの変形および修正が当業者にとって明らかとなる。前掲の特許請求の範囲はそのようなすべての変形および修正を包含するよう解釈されることが意図されるものである。
【図面の簡単な説明】
【図1】複数の処理ユニットを含む典型的な対称多重処理システムのブロック図である。
【図2】集中割込制御装置機構を含む対称多重処理システムのブロック図である。
【図3】中央割込制御ユニットのブロック図である。
【図4】I/O割込制御装置のブロック図である。
【図5】割込チャネルを示すブロック図である。
【図6】割込チャネル制御レジスタおよびその関連フィールドの図である。
【図7】割込入力プロセッサの1つのカスケードモード中の対称多重処理システムに関連するハードウェアを示すブロック図である。
【図8】対称多重処理システムの別のカスケードモードに関連するハードウェアを示すブロック図である。
【図9】プロセッサ割込発生器のブロック図である。
【図10】プロセッサチャネルを示すブロック図である。
【図11】(a)はCPUチャネル制御レジスタをその関連フィールドとともに示す図である。(b)はプロセッサ間割込レジスタをその関連フィールドとともに示す図である。
【図12】システムリセットでのブート処理ユニットの動作を示す流れ図である。
【図13】各CPUチャネルのCPUチャネルレジスタユニットを可能にするハードウェアを示す図である。
【図14】中央割込制御ユニット内に実施される回路を示すブロック図である。
【図15】各スレーブ処理ユニットのための初期化シーケンスを示す流れ図である。
【図16】中央割込制御ユニットに結合される処理ユニットの1つを示すブロック図である。
【図17】割込を開始するための特別に定義される割込サイクルを備える多重処理システムのブロック図である。
【図18】割込サイクルをデコードするよう構成されるハードウェアを含む割込チャネルを示すブロック図であ。
【図19】中央制御装置の内部部分を含む中央割込制御ユニットの一部を示すブロック図である。
【図20】ブロードキャストモード中の割込のデリバリを示す流れ図である。
【図21】プログラマブル待ち時間タイマを含む中央制御ユニットのブロック図である。
【図22】この発明に従う適応割込マッピング機構および技術を用いる対称多重処理システムのブロック図である。
【符号の説明】
200 対称多重処理システム
202−1 処理ユニット
202−2 処理ユニット
202−m 処理ユニット
207 CPUローカルバス
208 バスブリッジ
210 I/Oバス
212−1 I/O装置
212−n I/O装置
214 I/O装置
220 中央割込制御ユニット
902 PCIバス
904 ISAバス
907 PCI装置
908 PCI装置
909 PCI装置
910 ISA装置
911 ISA装置
912 ISA装置
915 割込制御装置
916 PCIマッパー
Claims (20)
- 複数の処理ユニットと、
第1の周辺バスを介して前記複数の処理ユニットに作動的に結合される第1の周辺装置と、
前記第1の周辺バスを介して前記複数の処理ユニットに作動的に結合される第2の周辺装置と、
第2の周辺バスを介して前記複数の処理ユニットに結合される第3の周辺装置と、
第1の割込信号を前記第1の周辺装置から受取るよう結合される第1の入力ラインと、第2の入力信号を前記第2の周辺装置から受取るよう結合される第2の入力ラインとを含む割込制御装置と、
第3の割込信号を前記第3の周辺装置から受取るための割込入力ラインを含み、前記第3の割込信号を前記割込制御装置の第3の入力ラインに経路づけるよう構成される割込マッパーと、
前記第1の周辺バスに結合され、前記割込制御装置に割込制御装置割込要求ラインを介して結合され、前記複数の処理ユニットに結合され、前記第1の入力ライン、前記第2の入力ライン、および前記割込入力ラインに結合される中央割込制御ユニットとを含み、前記中央割込制御ユニットは、前記第1の割込信号、前記第2の割込信号、および前記第3の割込信号を、前記第1の入力ラインに結合される第1の中央制御ユニット入力ライン、前記第2の入力ラインに結合される第2の中央割込制御ユニット入力ライン、および前記割込入力ラインに結合される第3の中央割込制御ユニット入力ライン上でそれぞれ受取って、前記第1の割込信号、前記第2の割込信号、および前記第3の割込信号を前記複数の処理ユニット間において第1の動作モード中に分配するよう構成され、前記中央割込制御ユニットはある信号をアサートして前記割込マッパーを前記第1の動作モード中に不能化するよう構成され、第2の動作モードにおいて前記中央割込制御ユニットは前記第1の割込信号、前記第2の割込信号、および前記第3の割込信号を示す信号を前記割込制御装置割込要求ラインを介して受取るよう構成される、対称多重処理システム。 - 前記第3の入力ラインは、前記割込制御装置の、使用されていない割込入力であり、システム初期化中において前記対称多重処理システムのシステムBIOSは前記割込制御装置の前記使用されていない割込入力を識別し前記第3の割込信号を前記割込マッパーを介して前記割込制御装置の前記使用されていない割込入力に経路付けるよう構成される、請求項1に記載の対称多重処理システム。
- 前記中央割込制御ユニットの前記第1の動作モードおよび前記中央割込制御ユニットの前記第2の動作モードは前記中央割込制御ユニット内の構成レジスタにおけるビットを介してプログラマブルである、請求項1に記載の対称多重処理システム。
- 前記第2の動作モード中、前記割込制御装置は、前記第1、第2または第3の割込信号のいずれかが前記第1、第2または第3の入力ラインにおいて受取られる場合、対応の割込信号を発生させるよう構成される、請求項3に記載の対称多重処理システム。
- 前記第2の動作モード中、前記対応の割込信号は、直接、前記複数の処理ユニットのうち指定された処理ユニットにのみ与えられる、請求項4に記載の対称多重処理システム。
- 前記指定された処理ユニットはマスタ処理ユニットである、請求項5に記載の対称多重処理システム。
- 前記第1、第2および第3の周辺装置は、さらに、前記中央割込制御ユニットに結合される、請求項1に記載の対称多重処理システム。
- 前記第1の動作モード中、前記中央割込制御ユニットは前記第1、第2および第3の割込信号を処理し前記複数の処理ユニットの1つ以上に分配するよう構成される、請求項7に記載の対称多重処理システム。
- 前記第1および第2の周辺装置はISA規格周辺装置であり、前記第3の周辺装置はPCI規格周辺装置である、請求項1に記載の対称多重処理システム。
- 複数の割込信号を多重処理システムにおいて経路付ける方法であって、
前記多重処理システムをパススルーモードにおいて初期化し、それによって、割込マッパーを可能化するステップを含み、前記割込マッパーは1つ以上の割込信号を1つ以上の周辺装置から割込制御装置に経路付けるよう構成され、前記方法はさらに、
不能化信号を前記割込マッパーに与え、アドバンストモードに入るステップと、
前記1つ以上の割込信号を直接前記1つ以上の周辺装置から中央割込制御ユニットに与え、それによって前記割込制御装置をバイパスするステップと、
前記1つ以上の割込信号を前記中央割込制御ユニットから複数の処理ユニットのうちの1つ以上に分配するステップとを含む、方法。 - 前記初期化ステップ中に前記多重処理システムは1つのプロセッサモードにおいてブートする、請求項10に記載の方法。
- 前記中央割込処理ユニットの構成レジスタ内においてビットをセットするステップをさらに含む、請求項10に記載の方法。
- 第1のバスに作動的に結合される複数の処理ユニットと、
前記第1のバスに動作可能に結合される第2のバスと、
前記第1のバスに結合される第1の周辺装置と、
前記第2のバスに結合される第2の周辺装置と、
前記第2のバスに結合され、第1の入力が割込要求信号を前記第2の周辺装置から受取るよう結合される割込制御装置と、
前記第2のバスに結合され、割込要求信号を前記第1の周辺装置から受取り前記割込要求信号を前記割込制御装置に第2の入力ラインを介して経路付けるよう構成される割込マッパーと、
前記第1のバスに結合され、前記複数の処理ユニットおよび前記割込制御装置に動作可能に結合され、前記割込信号を前記第1の周辺装置から第1の中央割込制御ユニット割込要求ラインを介して第1の動作モードにおいて受取り、前記割込制御装置の出力に結合される第2の中央割込制御ユニット要求ラインを介して第2の動作モードにおいて受取るよう構成される中央割込制御ユニットとを含み、前記中央割込制御ユニットはある信号をアサートして前記割込マッパーを前記第1の動作モード中に不能化するよう構成される、多重処理コンピュータシステム。 - 前記中央割込制御ユニットは割込信号を前記第2の周辺装置から前記第2の中央割込制御ユニット要求ライン上で前記第2の動作モードにおいて受取るよう構成される、請求項13に記載の多重処理コンピュータシステム。
- 前記中央割込制御ユニットは割込信号を前記第2の周辺装置から第3の中央割込制御ユニット割込要求ライン上で前記第1の動作モードにおいて受取るよう構成される、請求項14に記載の多重処理コンピュータシステム。
- 前記中央割込制御ユニットの前記第1の動作モードおよび前記中央割込制御ユニットの前記第2の動作モードは前記中央割込制御ユニット内の構成レジスタにおけるビットを介してプログラマブルである、請求項13に記載の多重処理コンピュータシステム。
- 前記第2の動作モード中、前記対応の割込信号は、直接、前記複数の処理ユニットのうち指定された処理ユニットにのみ与えられる、請求項13に記載の多重処理コンピュータシステム。
- 前記指定された処理ユニットはマスタ処理ユニットである、請求項17に記載の多重処理コンピュータシステム。
- 前記第1の動作モード中、前記中央割込制御ユニットは前記割込信号を処理し前記複数の処理ユニットの1つ以上に分配するよう構成される、請求項15に記載の多重処理コンピュータシステム。
- 前記第1の周辺装置はPCI規格周辺装置であり、前記第2の周辺装置はISA規格周辺装置である、請求項13に記載の多重処理コンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/408003 | 1995-03-21 | ||
US08/408,003 US5721931A (en) | 1995-03-21 | 1995-03-21 | Multiprocessing system employing an adaptive interrupt mapping mechanism and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0916533A JPH0916533A (ja) | 1997-01-17 |
JP3570810B2 true JP3570810B2 (ja) | 2004-09-29 |
Family
ID=23614444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06296396A Expired - Fee Related JP3570810B2 (ja) | 1995-03-21 | 1996-03-19 | 対称多重処理システム |
Country Status (6)
Country | Link |
---|---|
US (1) | US5721931A (ja) |
EP (1) | EP0737923B1 (ja) |
JP (1) | JP3570810B2 (ja) |
KR (1) | KR100399385B1 (ja) |
AT (1) | ATE202425T1 (ja) |
DE (1) | DE69613423T2 (ja) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5944809A (en) * | 1996-08-20 | 1999-08-31 | Compaq Computer Corporation | Method and apparatus for distributing interrupts in a symmetric multiprocessor system |
US6269391B1 (en) * | 1997-02-24 | 2001-07-31 | Novell, Inc. | Multi-processor scheduling kernel |
US5925115A (en) * | 1997-03-10 | 1999-07-20 | Vlsi Technology, Inc. | Method and system for extending interrupt sources and implementing hardware based and software based prioritization of interrupts for an embedded processor |
US6256660B1 (en) * | 1997-04-08 | 2001-07-03 | International Business Machines Corporation | Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts |
JP3008896B2 (ja) * | 1997-06-16 | 2000-02-14 | 日本電気株式会社 | 共有バス型マルチプロセッサシステムの割り込み負荷分散システム |
US6003109A (en) * | 1997-08-15 | 1999-12-14 | Lsi Logic Corporation | Method and apparatus for processing interrupts in a data processing system |
US6219741B1 (en) | 1997-12-10 | 2001-04-17 | Intel Corporation | Transactions supporting interrupt destination redirection and level triggered interrupt semantics |
US6418496B2 (en) * | 1997-12-10 | 2002-07-09 | Intel Corporation | System and apparatus including lowest priority logic to select a processor to receive an interrupt message |
US6571206B1 (en) * | 1998-01-15 | 2003-05-27 | Phoenix Technologies Ltd. | Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment |
US6081861A (en) * | 1998-06-15 | 2000-06-27 | International Business Machines Corporation | PCI migration support of ISA adapters |
US6192439B1 (en) | 1998-08-11 | 2001-02-20 | Hewlett-Packard Company | PCI-compliant interrupt steering architecture |
US6065088A (en) | 1998-08-31 | 2000-05-16 | International Business Machines Corporation | System and method for interrupt command queuing and ordering |
US6701429B1 (en) | 1998-12-03 | 2004-03-02 | Telefonaktiebolaget Lm Ericsson(Publ) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location |
US6263395B1 (en) * | 1999-01-06 | 2001-07-17 | Compaq Computer Corp. | System and method for serial interrupt scanning |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US20020099893A1 (en) * | 2001-01-24 | 2002-07-25 | Nguyen Tuyet-Huong Thi | System and method for the handling of system management interrupts in a multiprocessor computer system |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US6971004B1 (en) * | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US20040111549A1 (en) * | 2002-12-10 | 2004-06-10 | Intel Corporation | Method, system, and program for improved interrupt processing |
US7340740B2 (en) * | 2003-04-22 | 2008-03-04 | International Business Machines Corporation | Cooperatively multitasking in an interrupt free computing environment |
US20040267998A1 (en) * | 2003-06-26 | 2004-12-30 | Zimmer Vincent J | Method to support legacy and native mode interrupts with multiplexed execution of legacy and native interrupt service |
US7584316B2 (en) * | 2003-10-14 | 2009-09-01 | Broadcom Corporation | Packet manager interrupt mapper |
US7028106B2 (en) * | 2003-12-05 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Remapping routing information entries in an expander |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US7332976B1 (en) * | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7162559B1 (en) * | 2005-03-08 | 2007-01-09 | Emc Corporation | System for controlling interrupts between input/output devices and central processing units |
US7904962B1 (en) * | 2005-03-10 | 2011-03-08 | George Mason Intellectual Properties, Inc. | Network attack modeling, analysis, and response |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
JP5006526B2 (ja) * | 2005-05-31 | 2012-08-22 | ルネサスエレクトロニクス株式会社 | 割り込み分配装置 |
US20070106827A1 (en) * | 2005-11-08 | 2007-05-10 | Boatright Bryan D | Centralized interrupt controller |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
JP4222370B2 (ja) * | 2006-01-11 | 2009-02-12 | セイコーエプソン株式会社 | デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム |
US8067948B2 (en) * | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US20080082710A1 (en) * | 2006-09-29 | 2008-04-03 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
US7721034B2 (en) * | 2006-09-29 | 2010-05-18 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
WO2008066511A1 (en) * | 2006-11-27 | 2008-06-05 | Intel Corporation | Centralized interrupt controller |
DE102007015507B4 (de) * | 2007-03-30 | 2010-09-02 | Advanced Micro Devices, Inc., Sunnyvale | Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8040266B2 (en) * | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8092083B2 (en) * | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
JP2009251802A (ja) * | 2008-04-03 | 2009-10-29 | Panasonic Corp | マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法 |
US20100088446A1 (en) * | 2008-10-06 | 2010-04-08 | Texas Instruments Incorporated | Prioritizing interrupt controller |
US7849247B2 (en) * | 2008-10-14 | 2010-12-07 | Freescale Semiconductor, Inc. | Interrupt controller for accelerated interrupt handling in a data processing system and method thereof |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8312195B2 (en) * | 2010-02-18 | 2012-11-13 | Red Hat, Inc. | Managing interrupts using a preferred binding between a device generating interrupts and a CPU |
JP2012009063A (ja) * | 2011-09-05 | 2012-01-12 | Intel Corp | 中央化された割り込みコントローラ |
JP5710712B2 (ja) * | 2013-08-22 | 2015-04-30 | インテル コーポレイション | 中央化された割り込みコントローラ |
US9563588B1 (en) | 2014-01-29 | 2017-02-07 | Google Inc. | OS bypass inter-processor interrupt delivery mechanism |
US9910700B2 (en) * | 2015-08-26 | 2018-03-06 | Netapp, Inc. | Migration between CPU cores |
US10459759B2 (en) | 2015-08-26 | 2019-10-29 | Netapp, Inc. | Migration between CPU cores |
CN111506530A (zh) * | 2019-01-30 | 2020-08-07 | 智原科技股份有限公司 | 中断管理系统及其管理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01255040A (ja) * | 1988-04-04 | 1989-10-11 | Fujitsu Ltd | 割込みマスク回路 |
KR940001878B1 (ko) * | 1990-03-08 | 1994-03-10 | 가부시끼가이샤 히다찌세이사꾸쇼 | 멀티 프로세서시스템 및 인터럽션 제어장치 |
US5125093A (en) * | 1990-08-14 | 1992-06-23 | Nexgen Microsystems | Interrupt control for multiprocessor computer system |
KR930001365B1 (ko) * | 1990-11-30 | 1993-02-27 | 현대전자 산업주식회사 | 콤팩트 디스크 플레이에서의 트랙 점프방법 |
US5506997A (en) * | 1994-01-28 | 1996-04-09 | Compaq Computer Corp. | Device for mapping a set of interrupt signals generated on a first type bus to a set of interrupt signals defined by a second type bus and combing the mapped interrupt signals with a set of interrupt signals of the second type bus |
US5530891A (en) * | 1994-05-31 | 1996-06-25 | Advanced Micro Devices | System management interrupt mechanism within a symmetrical multiprocessing system |
-
1995
- 1995-03-21 US US08/408,003 patent/US5721931A/en not_active Expired - Lifetime
-
1996
- 1996-03-12 DE DE69613423T patent/DE69613423T2/de not_active Expired - Lifetime
- 1996-03-12 EP EP96301674A patent/EP0737923B1/en not_active Expired - Lifetime
- 1996-03-12 AT AT96301674T patent/ATE202425T1/de not_active IP Right Cessation
- 1996-03-19 JP JP06296396A patent/JP3570810B2/ja not_active Expired - Fee Related
- 1996-03-21 KR KR1019960007693A patent/KR100399385B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR960035261A (ko) | 1996-10-24 |
KR100399385B1 (ko) | 2004-02-05 |
DE69613423T2 (de) | 2002-05-02 |
US5721931A (en) | 1998-02-24 |
DE69613423D1 (de) | 2001-07-26 |
EP0737923A1 (en) | 1996-10-16 |
ATE202425T1 (de) | 2001-07-15 |
EP0737923B1 (en) | 2001-06-20 |
JPH0916533A (ja) | 1997-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3570810B2 (ja) | 対称多重処理システム | |
US5781187A (en) | Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system | |
US5555430A (en) | Interrupt control architecture for symmetrical multiprocessing system | |
US5564060A (en) | Interrupt handling mechanism to prevent spurious interrupts in a symmetrical multiprocessing system | |
US5568649A (en) | Interrupt cascading and priority configuration for a symmetrical multiprocessing system | |
US5530891A (en) | System management interrupt mechanism within a symmetrical multiprocessing system | |
US5613126A (en) | Timer tick auto-chaining technique within a symmetrical multiprocessing system | |
JP4250207B2 (ja) | 対称多重処理システム、そのための割込制御ユニット、および対称多重処理システム内でプロセッサ割込信号を開始するための方法 | |
US5862366A (en) | System and method for simulating a multiprocessor environment for testing a multiprocessing interrupt controller | |
US5790871A (en) | System and method for testing and debugging a multiprocessing interrupt controller | |
US6775727B2 (en) | System and method for controlling bus arbitration during cache memory burst cycles | |
JP2855298B2 (ja) | 割込み要求の仲裁方法およびマルチプロセッサシステム | |
US6606676B1 (en) | Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system | |
US10241946B2 (en) | Multi-channel DMA system with command queue structure supporting three DMA modes | |
US6295573B1 (en) | Point-to-point interrupt messaging within a multiprocessing computer system | |
US6986005B2 (en) | Low latency lock for multiprocessor computer system | |
US20030110336A1 (en) | Method and apparatus for interrupt redirection for arm processors | |
EP0166272A2 (en) | Processor bus access | |
JPH0250753A (ja) | コンピュータにおける割込処理装置およびその方法 | |
US6272580B1 (en) | Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system | |
KR20100053593A (ko) | 컴퓨터 시스템에서 다른 프로세서들에 대한 시스템 관리 인터럽트들을 방송하기 위한 메커니즘 | |
US6629178B1 (en) | System and method for controlling bus access for bus agents having varying priorities | |
US6625679B1 (en) | Apparatus and method for converting interrupt transactions to interrupt signals to distribute interrupts to IA-32 processors | |
TW380226B (en) | Using intelligent bridges with pico-code to improve interrupt response | |
US6826644B1 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040507 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040622 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070702 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees | ||
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |