JPH1097490A - スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置 - Google Patents

スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置

Info

Publication number
JPH1097490A
JPH1097490A JP9223401A JP22340197A JPH1097490A JP H1097490 A JPH1097490 A JP H1097490A JP 9223401 A JP9223401 A JP 9223401A JP 22340197 A JP22340197 A JP 22340197A JP H1097490 A JPH1097490 A JP H1097490A
Authority
JP
Japan
Prior art keywords
bus
agent
interrupt
computer system
arbitration
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.)
Pending
Application number
JP9223401A
Other languages
English (en)
Inventor
Dale J Mayer
デール・ジェイ・メイヤー
Sompong P Olarig
ソンポン・ピー・オラリグ
William F Whiteman
ウィリアム・エフ・ホワイトマン
David F Heinrich
デーヴィッド・エフ・ヘインリッチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH1097490A publication Critical patent/JPH1097490A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling 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)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 対称型マルチプロセッシング・システムにお
いて、バス・エージェントに指定された複数の分散割り
込みコントローラを支援する方法および装置を提供す
る。 【解決手段】 本方法は、固有の識別番号を各バス・エ
ージェントに割り当てるステップと、バス・エージェン
トからのバス要求を4本のデータ・ラインを通じて4つ
毎のグループとして受け取るステップと、要求元のバス
・エージェントから選択した1つにバス所有権を付与す
るステップとを含む。本装置は、固有の識別番号を各バ
ス・エージェントに割り当てる構造と、バス・エージェ
ントからのバス要求を4つ毎のグループとして受け取る
ための4本のデータ・ラインと、要求元のバス・エージ
ェントから選択した1つにバス所有権を付与する構造と
を含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムに関し、更に特定すれば、スケーラブル対称型マ
ルチプロセッサ・システム(scalable symmetric multi
processor system)において割り込みを分散する方法お
よび装置に関するものである。
【0002】尚、同時に出願した「対称マルチプロセッ
サ・システムにおいて割り込みを分散する方法及び装置
(METHOD AND APPARATUS FOR DISTRIBUTING INTERRUPTS
INA SYMMETRIC MULTIPROCESSOR SYSTEM)」と題する、
同時に譲渡された米国特許出願もこの言及によって本願
に含むものとする。
【0003】
【従来の技術】対称型マルチプロセッシング(「SM
P」)システムが今日のハイエンド・パーソナル・コン
ピュータ(「PC」)およびサーバに出現したことによ
り、この拡張されたシステム構造において最適な処理性
能を達成する新たな設計手法に対する必要性が生じるこ
ととなった。マルチプロセッサ・システムの開発におけ
る最も重要な課題にはマルチプロセッサの使用が可能な
バス(「MPバス」)の設計、ならびにSMPに対処可
能な割り込みコントローラ(SMP-aware interruptcontr
oller)による割り込みのチャネリング(channeling)
および処理が含まれる。当技術では理解されているが、
MPバスは複数のプロセッシング・ユニットに対して働
き、システムの主メモリおよびその他の構成要素へのア
クセスを提供する。
【0004】従来、マルチプロセッシング・システムと
は1つ以上のプロセッサを有し、典型的に、ハイエンド
・ワークステーション又はファイル・サーバとしての使
用に設計されたものであった。かかるシステムは高性能
バス、巨大容量のエラー訂正メモリ、安価なディスクの
冗長アレイ(RAID:redundant array of inexpensi
ve disk)ドライブ・システム、ボトルネックを減少さ
せた先進のシステム・アーキテクチャ、及び多数の電源
のような冗長構造を含むことができる。
【0005】最も一般的な意味では、マルチプロセッシ
ングは複数のプロセッサを用いて計算タスクを実行する
ことと定義されている。この用語は、異なる場所にある
1組のネットワーク構成のコンピュータ、または数個の
プロセッサを内蔵した単一のシステムにも適用すること
ができる。しかしながら、公知のように、この用語は単
一の密閉されたものの中に2つ以上のプロセッサをリン
クさせ内蔵したアーキテクチャを記述する際にも頻繁に
用いられている。更に、単に複数のプロセッサがあるで
けではマルチプロセッシングは行われない。例えば、ラ
ック内にPCSのスタックを有することはマルチプロセ
ッシングに該当しない。同様に、1つ以上の「スタンバ
イ」状態にあるプロセッサを有するサーバもマルチプロ
セッシングに該当しない。したがって、「マルチプロセ
ッシング」という用語は、2つ以上のプロセッサが協同
してあるタスクまたは1組のタスクに作用しているとき
にのみ適用される。
【0006】マルチプロセッシングの基本的な命題には
多くの変形がある。通常、この相違は、種々のプロセッ
サがどのように独立して動作するのか、およびこれらプ
ロセッサ間の処理負荷(workload)をどのようにして分
配(分散)するかに関係する。疎結合マルチプロセッシ
ング(loosely-coupled multiprocessing)では、複数
のプロセッサが関連するタスクを実行するが、それらは
あたかも単体のプロセッサであるかのようにタスクを実
行する。各プロセッサはそれのメモリを有し、それ自体
の大容量記憶装置でさえ有する場合もある。更に、各プ
ロセッサは、典型的に、オペレーティング・システムの
それ自身のコピーを実行し、ローカル・エリア・ネット
ワーク上で通信する装置と全く同様に、メッセージ受け
渡し方式(message-passing scheme)を通じて他のプロ
セッサまたはプロセッサ群と通信する。疎結合マルチプ
ロセッシングは、メインフレームおよびミニコンピュー
タにおいて広く用いられているが、これを行うためのソ
フトウエアはハードウエアの設計に非常に密接に結び付
けられている。この理由のため、ソフトウエア販売業者
の支援が得られず、PCサーバには広く用いられていな
い。
【0007】密結合マルチプロセッシングでは、対照的
に、プロセッサの動作はより密接に統合化されている。
これらは、通常メモリを共有し、共有キャッシュですら
有する場合もある。プロセッサは互いに同一でなくても
よく、更に同様のタスクを実行してもしなくてもよい。
しかしながら、これらは通常、大容量記憶装置や入力/
出力(「I/O」)のような他のシステム資源を共有す
る。更に、各プロセッサ毎にオペレーティング・システ
ムの別個のコピーを用いる代わりに、これらは通常単一
のコピーを実行し、オペレーティング・システムがプロ
セッサ間のタスク調整を処理する。システム資源の共有
は密結合マルチプロセッシングのコスト低下をもたらす
ので、ネットワーク・サーバでは支配的なマルチプロセ
ッサ・アーキテクチャとなっている。
【0008】密結合マルチプロセッシング・システム用
ハードウエア・アーキテクチャは、更に、2つの広いカ
テゴリにに分割することができる。対称型マルチプロセ
ッサ・システムでは、メモリやディスク入出力のような
システム資源は当該システム内の全マイクロプロセッサ
によって共有される。処理負荷は利用可能なプロセッサ
に均等に分散されるので、1つのプロセッサに特定のタ
スクがロードされている間、別のプロセッサがアイドル
状態にあるということはない。SMPシステムの処理能
力は、少なくとも理論的には、プロセッサ・ユニットを
多く追加する程に全てのタスクに対して向上する。この
高く望まれている設計目標をスケーラビリティ(scalabi
lity)と呼ぶ。
【0009】非対称型プロセッサ・システムでは、タス
クおよびシステム資源が異なるプロセッサ・ユニットに
よって管理される。例えば、1つのプロセッサ・ユニッ
トがI/Oを処理し、別のプロセッサがネットワーク・
オペレーティング・システム(「NOS」)・タスクを
処理することができる。非対称型マルチプロセッサ・シ
ステムは処理負荷の均衡化を行わないことは容易に理解
できよう。したがって、あるタスクを処理しているプロ
セッサが過剰動作状態にあり得る間、別のユニットはア
イドル状態であるということも想像し難くない。
【0010】更に、SMPシステムのカテゴリ内におい
ても、キャッシュ・メモリの実施方法に基づいて2つの
サブカテゴリがあることを指摘することができる。処理
能力が低い方のサブカテゴリは「共有キャッシュ」マル
チプロセッシングを含み、処理能力が高い方のサブカテ
ゴリは「専用キャッシュ」マルチプロセッシングとして
知られているものを含む。専用キャッシュ・マルチプロ
セッシングでは、あらゆるプロセッサがそれ自体の「レ
ベル1」のオンチップ・メモリに加えて、専用の「レベ
ル2」のオフチップ・メモリ・キャッシュ(プロセッサ
毎に1つ)を有する。これらのキャッシュは、MP環境
において、プロセッサ−メモリ間のインタラクションを
高速化する。一方、共有キャッシュ・マルチプロセッシ
ングではプロセッサは単一の「レベル2」キャッシュを
共有する。典型的に、共有キャッシュ・アーキテクチャ
は専用キャッシュ・アーキテクチャよりも提供するスケ
ーラビリティが低い。
【0011】以上簡単に述べたように、最も重要な設計
上の課題の1つは、いずれの広いマルチプロセッシング
・カテゴリにおいても割り込みのルーティング(routin
g)および処理である。従来、割り込みコントローラが
MPシステムにおける割り込み源から割り込み宛先への
割り込みの配信を担っていた。割り込みは、少なくとも
1つのプロセッサの対処を必要とする或る状態が、シス
テム内のどこかに存在することを示すイベントとして一
般化することができる。割り込みに応答してプロセッサ
が取る行為のことを、一般的に、割り込みに「応ずる
(servicing)」または割り込みを「処理する(handlin
g)」と呼んでいる。
【0012】SMPシステムでは、各割り込みは、他の
ものと区別するためのアイデンティティを有する。この
アイデンティティのことを、一般的に、割り込みの「ベ
クトル」と呼んでいる。ベクトルは割り込み処理を行う
プロセッサまたはプロセッサ群に当該割り込みのための
適切なハンドラ(handler)を発見させる。プロセッサ
が割り込みを受け入れたとき、プロセッサはベクトルを
用いてその割り込みテーブル内のハンドラのエントリ・
ポイントの位置を突き止める。加えて、各割り込みは割
り込み優先度を有する場合もあり、処理側プロセッサの
他の処理中のアクティビティまたはタスクとの関係にお
いて、割り込みに応ずるべき適切な時点を決定する。
【0013】通常、割り込みコントローラは、MPシス
テムにおいて割り込みをそれらの適切な宛先に配信する
ために2つの割り込み分散モードを利用可能である。指
定配信モード(directed delivery mode)(「静的」配
信)では、割り込みは無条件で、割り込みと共に供給さ
れる宛先情報に一致する特定のプロセッサに配信され
る。分散配信モード(distributed delivery mode)
(「動的」配信)では、特定の割り込み源からの割り込
みイベントは宛先フィールド値によって指定されるプロ
セッサ群の間で分散される。
【0014】以上のことから、スケーラブルMPシステ
ムにおいて種々のプロセッサ間で割り込み負荷の均衡を
取ることは非常に望ましい目的であることが認められよ
う。しかしながら、当技術ではよく理解されているよう
に、システム設計者の予測からは、これは達成が困難な
目的である。アーキテクチャの観点から、SMP環境に
おいて割り込みをそれらの宛先に配信するためには2種
類の解決策がある。一方の解決策では、例えば、ホスト
・バスと周辺コンポーネント相互接続(「PCI」)バ
スのようなシステム・バスとの間に集中割り込みコント
ローラを設け、割り込みをそれらの割り込み源から受け
取り、指定モードまたは分散モードのいずれかにおいて
その割り込みを各宛先に向かわせる(routing)。更
に、この種の解決策では、典型的に、所定のビット長の
カウンタが各プロセッシング・ユニット内に設けられて
いる。カウンタ・サイズは、特定のプロセッシング・ユ
ニットに対応してタスク優先度レジスタに付加される。
タスク優先度レジスタの内容およびそれに付加されるカ
ウンタ・サイズを用いて当該プロセッシング・ユニット
に対する全体的な優先度レベルを判定する。I/O割り
込みがこのプロセッシング・ユニットにディスパッチさ
れると、通常ラップアラウンド(wraparound)・オプシ
ョンを用いてこのプロセッシング・ユニットと連動する
カウンタが増分される。
【0015】第2の解決策は、分散割り込み制御方式を
提案する。この方式では、1つの割り込みコントローラ
が、例えば、I/O割り込みのルーティングのようなグ
ローバル又はシステム・レベルの機能を引き受け、そし
て、対応するプロセッシング・ユニットと連動する複数
のローカル割り込みコントローラの各々が、例えば、プ
ロセッサ間割り込み(interprocessor interrupt)のよ
うなローカル機能を制御する。これら2種類のクラスの
割り込みコントローラは、別個のバスを通じて通信する
ことができ、システム全体において割り込み源からの割
り込みを割り込みの宛先に配信する役割を一括して担っ
ている。
【0016】
【発明が解決しようとする課題】上述の解決策は、双方
の種類ともいくつかの欠点があることが知られている。
例えば、前述の集中割り込みコントローラ方式では、カ
ウンタの幅がシステムに許されるプロセッサの最大数に
よって異なり、この幅がプロセッサのタスク優先度レジ
スタに付加されるので、割り込みの配信に選択されたプ
ロセッサがリストされたプロセッサ中の実際に最低の優
先度を有する、即ち、それが最も余裕があるユニットで
あるこという保証はない。加えて、この方式は集中割り
込みコントローラのホスト・バスおよびシステム・バス
への結合を必要とするので、割り込みメッセージが双方
のバス上で貴重な帯域を浪費し、それによってシステム
全体の性能に負の影響を与えることになる。更に、集中
方式のスケーラビリティはプロセッサをシステムに追加
するに連れて低下する。
【0017】一方、分散型アーキテクチャはいくつかの
利点があるが、現行の分散割り込みコントローラによる
解決案も、選択されたプロセッサが本当に最も優先度が
低いプロセッサであることを保証することができない。
何故なら、通常、空いている割り込みスロットを有する
ローカル割り込みコントローラのみが、優先度が最低の
アービトレーション(仲裁)に含まれることを要求され
るからである。したがって、選択されたプロセッサは少
なくとも1つの利用可能な割り込みスロットを有する1
プロセッサに過ぎず、最高の優先度を有する可能性もあ
る。
【0018】これら及びその他の欠点を克服する分散型
割り込みコントローラによる解決策が、先に引用した
「対称マルチプロセッサにおいて割り込みを分散する方
法及び装置(“METHOD AND APPARATUS FOR DISTRIBUTIN
G INTERRPTS IN A SYMMETRIC MULTIPROCESSOR SYSTE
M")」と題する、本願と同時に出願され、本願と共に譲
渡された米国特許出願に詳細に記載されている。しかし
ながら、この引用した特許出願は、分散割り込みコント
ローラ・システムにおいて、バス幅またはバス・プロト
コルを変更することなく、典型的にデジタル構造には好
ましいアーキテクチャである4つのプロセッサをセット
とした多数のセットから成る多数のプロセッサを支援す
るスケーラブル方式のためのバス仲裁については記載し
ていない。
【0019】したがって、バス幅またはバス・プロトコ
ルを変更することなく、4つ以上のプロセッサの内の現
タスク優先度が最も低いプロセッサへの均衡の取れた割
り込みの配信を保証し、スケーラブルMPコンパチブル
の割り込みコントローラ方式を提供するコスト効率的な
解決策が必要とされていることは容易に理解されるであ
ろう。更に、かかる方式が、現業界のアーキテクチャと
互換性があり、相互動作性および相互交換性を最大限高
めることができれば有益であろう。以下に記載し特許請
求する本発明はこれらおよびその他の目的を達成する方
法および装置を提供するものである。
【0020】
【課題を解決するための手段】対称型マルチプロセッシ
ング・システムにおいて、バス・エージェントとして指
定された複数の分散割り込みコントローラを支援する方
法を提供する。この方法は、固有の識別番号を各バス・
エージェントに割り当てるステップと、4つのグループ
において4本のデータ・ラインを通じてバス・エージェ
ントからバス要求を受け取るステップと、要求元のバス
・エージェントから選択した1つにバス所有権を付与
(許可)するステップとから成る。
【0021】また、対称型マルチプロセッシング・シス
テムにおいて、バス・エージェントとして指定された複
数の分散割り込みコントローラを支援するコンピュータ
・システムを提供する。このコンピュータ・システム
は、固有の識別番号を各バス・エージェントに割り当て
る構造と、4つのグループにおいてバス・エージェント
からのバス要求を受け取る4本のデータ・ラインと、要
求元のバス・エージェントから選択した1つにバス所有
権を付与する構造とを含む。
【0022】現時点での好適な実施例の一態様におい
て、本発明は、各々対応するバス・エージェントと通信
する1つ以上のプロセッシング・ユニットと、内部仲裁
ポインタを有するマスタ・アービタとを含み、バス・エ
ージェントとマスタ・アービタとがプログラマブル割り
込みコントローラ・バス上に配されている構成のコンピ
ュータ・システムにおいて、バス制御要求の仲裁を行う
方法を提供する。この方法は、内部仲裁ポインタの内容
を初期化するステップと、各バス・エージェントによっ
てバス制御要求信号をアサートするステップであって、
4つ以上のバス・エージェントがリストされている場
合、4つ毎のグループとして実行されるアサートするス
テップと、仲裁プロトコルに基づいてマスタ・アービタ
によってバス・エージェントを選択し、選択したバス・
エージェントによってバス・メッセージを送信し、内部
仲裁ポインタを更新して選択したバス・エージェントを
指し示すようにするステップとから成る。
【0023】別の態様では、本発明は、各々キャッシュ
・メモリ・ユニットと通信する1つ以上のプロセッシン
グ・ユニットを含む構成のコンピュータ・システムを提
供する。このコンピュータ・システムは、1つ以上のロ
ーカル・プログラマブル割り込みコントローラであっ
て、各々プログラマブル割り込みコントローラ・バス上
に配置されているローカル・プログラマブル割り込みコ
ントローラと、同様にプログラマブル割り込みコントロ
ーラ・バス上に配置されている少なくとも1つの中央プ
ログラマブル割り込みコントローラとを備える。ローカ
ル・プログラマブル割り込みコントローラの各々は、現
タスク優先度レジスタと、プロセッサ間割り込みコマン
ド・ポートと、自己識別レジスタ(who-am-i registe
r、フーアムアイ・レジスタ)と、割り込み承認(アク
ノレッジ)レジスタと、割り込み終了レジスタと、第1
のローカル・タイマと、第2のローカル・タイマとを備
える。更に、中央プログラマブル割り込みコントローラ
は、少なくとも1つの特徴報告レジスタと、少なくとも
1つのグローバル・コンフィギュレーション・レジスタ
と、少なくとも1つのベンダー特定的(vendor-specifi
c)レジスタと、ベンダ識別レジスタと、プロセッサ初
期化レジスタと、少なくとも1つのプロセッサ間割り込
みベクトル優先度レジスタと、擬似ベクトル(spurious
-vector、スプリアスベクトル)・レジスタと、少なく
とも1つのグローバル・タイマ・レジスタと、少なくと
も1つの割り込み源レジスタとを備える。また、本発明
の例示的コンピュータ・システムは、キャッシュ・メモ
リ・ユニット間に配置され、それらの間に通信経路を設
けるホスト・バスと、第1のバス間ブリッジを介してホ
スト・バスに結合された第1のシステム・バスと、第2
のバス間ブリッジを介して第1システム・バスに結合さ
れた第2システム・バスとを含む。また、標準的な82
59Aコンパチブル割り込みコントローラを第2のシス
テム・バス上に設け、起動給電開始(start-up powr-o
n)コンパチビリティを含ませるようにしてもよい。加
えて、プログラマブル割り込みコントローラ・バスは、
6本の導電性伝送ラインと、1つのクロック・ライン
と、1本の制御ラインと、4本のデータ・ラインとを備
える。更に別の実施例では、ローカル・プログラマブル
割り込みコントローラの各々は、それに対応するプロセ
ッシング・ユニットと一体化することも可能である。
【0024】更に別の態様では、本発明は、中央割り込
みコントローラに位置するマスタ・アービタと1つ以上
のバス・エージェントとを含み、中央割り込みコントロ
ーラおよびバス・エージェントがプログラマブル割り込
みコントローラ・バス上に配置されている構成のスケー
ラブル・マルチプロセッサ・コンピュータ・システムに
おいて割り込みを配信する方法を含む。この方法は、割
り込みの存在を判定するステップと、プログラマブル割
り込みコントロール・バスの制御を獲得するステップ
と、割り込みが指定配信割り込みであるか否かについて
のステータスを判定するステップと、ステータスを判定
するステップに応答して割り込みが指定配信割り込みで
あると判定された場合、割り込みを予め指定されている
プロセッサに配信するステップと、そうでない場合に、
その現タスク優先度レジスタにおいて最低値を有するユ
ニットを選択するステップと、選択するステップに応答
して割り込みを配信するステップとを備える。
【0025】更に別の実施例では、制御獲得ステップ
は、更に、バス・エージェントによりバス要求信号をア
サートするステップと、マスタ・アービタによってバス
・エージェントを選択するステップであって、このバス
・エージェントは内部仲裁ポインタによって指し示され
る、ステップと、選択されたバス・エージェントによっ
てバス・メッセージを送信するステップと、仲裁ポイン
タの内容をラップアラウンドによって増分するステップ
とを備える。
【0026】更に別の実施例では、選択するステップ
は、更に、マスタ・アービタによって分散割り込みコマ
ンドを、リストされたバス・エージェントに送るステッ
プと、分散割り込みコマンドに応答して、リストされた
バス・エージェントによって、現タスク優先度レベル・
データをプログラマブル割り込みコントローラ・バス上
にシリアルに送信するステップと、リストされているバ
ス・エージェントのどれが最低の現タスク優先度レベル
を有するかを判定するステップとを備える。本発明のこ
の実施例では、更に、最低の現タスク優先度レベルを有
するのが1つのバス・エージェントのみである場合、そ
のバス・エージェントを選択し、割り込みをそれに配信
し、その他の場合、その割り込み配信に対する割り込み
に以前に応じたことがあるバス・エージェントを選択す
る。更にまた本発明のこの実施例では、以前にその割り
込みに応じたバス・エージェントがない場合、最低のバ
ス識別値を有するバス・エージェントを配信のために選
択する。
【0027】
【発明の実施の形態】これより図面を参照しながら本発
明の実施例について説明するが、同様のエレメントまた
は類似のエレメントには全図面を通して同一の参照番号
を付してある。また、図示する種々のエレメントは必ず
しも同一の拡縮率で描かれているわけではない。具体的
に図1を参照すると、集中割り込みコントローラ112
を有する従来のマルチプロセッサ・コンピュータ・シス
テムのブロック図が示されている。マルチプロセッサ・
コンピュータ・システムは複数のプロセッシング・ユニ
ット(プロセッサ)から成り、その内2つを図示し、C
PU1、CPU2と命名し、更にそれぞれ参照番号10
5、106で示している。
【0028】プロセッサ105、106の各々は、それ
ぞれ参照番号107および108で示す対応するキャッ
シュ・メモリ・ユニットに結合されている。システム・
メモリ109はホスト・バス110を介してプロセッサ
/キャッシュ結合ユニットと通信する。集中割り込みコ
ントローラ(「CIC」と命名する)がホスト・バス1
10および周辺コンポーネント相互接続バスのような第
1のシステム・バス113に接続されている。第1のシ
ステム・バス113は、第1のバス間ブリッジを介して
ホスト・バス110にブリッジされている。第1のバス
間ブリッジのことをPCIブリッジと命名し、参照番号
111で示す。
【0029】引き続き図1を参照する。第1のシステム
・バス113は第2のバス間ブリッジを介して業界標準
アーキテクチャ(「ISA」)バスのような第2のシス
テム・バス115にもブリッジされている。第2のバス
間ブリッジのことをPCI/ISAブリッジと命名し、
参照番号114で示す。第1のシステム・バス113上
には第1の複数のI/O装置が配置されており、それら
I/O装置の1つを参照番号120で示す。この装置は
I/O割り込み源として機能することができる。ここに
示すように、これらI/O装置の各々は、例えば、IR
Qライン121のようなそれ自体のIRQラインを介し
て、CIC112に接続されている。
【0030】更に図1の参照を続ける。第2のシステム
・バス115上には第2のI/Oブロック116と、従
来の8259割り込みコントローラ117とが配置され
ている。第2のI/Oブロック116もマルチプロセッ
サ・コンピュータ・システムに対して割り込み源として
機能することができる。8259割り込みコントローラ
117からの出力はIRQライン119を通じてCIC
112に接続され、起動処理のための通過モード(pass
-through mode)をイネーブルする。
【0031】通常の動作では、パワー・オン・リセット
の後、従来のCIC112がデフォルトで8259通過
モードに設定する。このモードでは、8259割り込み
要求出力が直接にCIC112を通じて単一の予め選択
されているプロセッサの割り込み要求入力ラインに渡さ
れ、CIC112は本質的にディスエーブルされる。S
MP動作の間、8259通過モードがディスエーブルさ
れ、CIC112は全てのシステム割り込みイベントを
分散する。これについては以下に説明する。
【0032】各プロセッサ、例えばCPU1 105に
は、代表的な4プロセッサ実施形態では2ビット・カウ
ンタ(図示せず)が設けられている。このカウンタは0
0、01、10または11に初期設定される。これら2
ビットカウンタの各々は、例えばCPU1 105のよ
うな各プロセッサと関連する4ビットのタスク優先度レ
ジスタ(図示せず)に付加される。従って、各プロセッ
サは本質的に6ビットの内部優先度レベルを有し、容易
にわかるように、4ビットのタスク優先度レジスタ全て
が同じ優先度データを有していても、4つのプロセッサ
の各々は異なる6ビットの内部優先度レベルを有するこ
とになる。I/O割り込みがこれらのプロセッサのいず
れかに対してディスパッチされると、各プロセッサの2
ビット・カウンタは1だけ増分する(または、必要であ
ればラップアラウンドが行われる)。このため、そのカ
ウンタが増分する前は最低の6ビット内部優先度レベル
を有していたプロセッサは、増分処理後は、その優先度
が最低値ではなくなる。
【0033】先に述べたように、この実施態様では、選
択されたプロセッサが最低の4ビット優先度レベルを有
することを保証できない。加えて、このシステムではホ
スト・バス110および第1のシステム・バス113双
方にCIC112を取り付ける必要があるので、割り込
みメッセージが双方のバス上で混雑を起こし、バス帯域
を浪費することになる。容易に理解されるであろうが、
システム内のプロセッサ数を増加させても、割り込み制
御のためのバス・トラフィックが単に状況を悪化させる
だけであり、このためにシステムのスケーラビリティの
低下を招く。
【0034】次に図2を参照すると、図1を参照してこ
れまで説明してきた集中割り込みコントローラを有する
従来のマイクロプロセッサ・コンピュータ・システムの
第2実施例のブロック図が示されている。本質的に、図
2の実施例は図1に示した実施例と非常に類似している
ことがわかる。しかしながら、CIC112はシステム
・ロジック・チップセット205に一体化され、ホスト
・バス110及び第1のシステム・バス113双方に対
する内部接続機能を有するようにしてある。この実施例
は図1の実施例に対しては、例えば、低コスト化やピン
数の減少といったある程度の利点を提供するが、それで
もなお、例えば、先に論じたホスト/システム・バスの
浪費および輻輳、選択されたプロセッサの優先度におけ
る不確実性、及び最適とは言えないスケーラビリティと
いうような欠点が残っている。
【0035】図3は、分散割り込み制御方式を有するス
ケーラブル・マルチプロセッサ・コンピュータ・システ
ムを対象とする本発明の第1の実施例のブロック図を示
す。この例示的マルチプロセッサ・コンピュータ・シス
テムは1つ以上のプロセッサを有するが、その内の2つ
をCPU105およびCPU106と命名し、この参照
番号で示すことにする。各プロセッサ、例えば、CPU
105またはCPU106は対応するローカル・プログ
ラマブル割り込みコントローラ、例えば、LOPIC3
05またはLOPIC306にそれぞれ結合されてい
る。本発明の教示によれば、各LOPICはそれに対応
するプロセッサと割り込み配信プロトコルを処理する。
また、LOPICは、プロセッサの内部レジスタへのア
クセス、プロセッサ間の割り込み(「IPI」)および
遠隔アクセスの処理も行う。加えて、各LOPICはハ
ードウエアまたはソフトウエアによってディスエーブル
することができる。各LOPICは、起動通過モード
(start-up pass-through mode)機能のために、標準的
な8259Aコンパチブル割り込みコントローラ(この
図には示されていない)と共に用いることもできる。本
好適実施例では、各LOPICは2つのローカル・タイ
マ(図示せず)を内蔵しており、システム・ソフトウエ
アがシステムの処理能力の監視や診断の目的にこれらの
タイマを用いる。更に、各LOPICは、書き込みを行
うとIPIが1つ以上のプロセッサに送られることにな
るプロセッサ間割り込みコマンド・ポート(図示せず)
と、各プロセッサの現タスク優先度を設定するために用
いられる現タスク優先度レジスタ(「CTPR」)とを
含む。タスク優先度は現在実行中のタスクの相対的な重
要度を示す。この実施例では0ないし15の優先度レベ
ルが実施される。
【0036】引き続き図3を参照すると、各LOPI
C、例えば、LOPIC305は各プロセッサ、例え
ば、CPU105に、当該プロセッサのID値を判定さ
せる機構を与える自己識別レジスタ(who-am-i registe
r)を更に含む。この値を用いて、割り込みを配信する
ために用いられる宛先マスクの値を判定することができ
る。また、LOPIC305は割り込み承認レジスタ
と、割り込み終了(「EOI」)レジスタも含む。割り
込み終了レジスタにゼロを書き込むと、関連するプロセ
ッサに対する現在進行中の割り込みの処理終了を通知す
ることになる。
【0037】図8はLOPIC305およびその内容の
一実施例を示す。この内容は、従来通りに実施しかつ相
互接続することにより、本発明の実施例におけるLOP
IC機能の実行を可能にする。
【0038】再び図3を参照すると、各プロセッサ、例
えば、CPU105は連動するキャッシュ・メモリ・ユ
ニット、例えば、キャッシュ107とデータ通信を行
う。例えば、キャッシュRAM307およびキャッシュ
RAM308のような二次キャッシュがあってもよく、
これはデータ経路309を通じて主メモリ313に接続
される。キャッシュ107およびキャッシュ108は電
気的にホスト・バス110に接続され、ホスト・バス1
10は、第1のバス間ブリッジ、即ち、ブリッジ320
を介してPCIバスのような第1のシステム・バス11
3にブリッジされている。図3には示していないが、第
2のシステム・バス、例えば、EISAまたはISAバ
スを適切なバス間ブリッジを介してバス113にブリッ
ジしてもよいことは理解されるであろう。
【0039】更に引き続き図3を参照する。各LOPI
C、例えば、LOPIC305またはLOPIC306
はプログラマブル割り込みコントローラ・バス311を
介して中央プログラマブル割り込みコントローラCOP
IC312に接続されている。本実施例では1つのCO
PIC312が示されているだけであるが、本発明の教
示にしたがって構築されるシステムには、複数の中央プ
ログラマブル割り込みコントローラが使用され得ること
は、本実施例を参照することにより容易に理解できよ
う。SMP環境では、複数のLOPICおよびCOPI
Cユニットが共に動作し、システム全体を通じて割り込
み源から割り込み宛先への割り込みの配信を集合的に担
っている。COPIC312は複数のI/O割り込み源
(図示せず)に接続され、I/O割り込みルーティン
グ、割り込みのマスキングおよびバス仲裁というような
機能を与える。COPIC312の本好適実施例は、特
徴報告レジスタ、グローバル・コンフィギュレーション
・レジスタ、ベンダー特定的レジスタ、ベンダー識別レ
ジスタ、プロセッサ初期化レジスタ、IPIベクトル/
優先度レジスタ、擬似ベクトル・レジスタ、グローバル
・タイマ・レジスタ、および割り込み源レジスタのよう
なグローバル・レジスタを含む。
【0040】図9はCOPIC312の一例およびその
内容を示す。その内容は、従来通りに実施しかつ相互接
続することにより、本発明の実施例におけるCOPIC
機能の実行を可能にする。
【0041】再び図3を参照する。プログラマブル割り
込みコントローラ・バス311は、6線、マルチ・フェ
ーズ、双方向共有バスで、4本のデータ・ライン、1本
の制御ライン、およびクロック・ラインを有することが
好ましい。また、バス311は、現在では、四プロセッ
サ環境に最適化されている。しかしながら、図5、図6
および図7を以下で具体的に参照することによってわか
るであろうが、バス仲裁プロトコルは、本発明の教示に
よれば、バス幅を変更することなく4つ以上のプロセッ
サを支援することも可能であり、これによってスケーラ
ビリティが維持される。多数のCOPICおよびLOP
ICユニットを有するシステムでは、1つのCOPIC
が事前にマスタ/アービタとして指定されており、マス
タでないCOPICおよびLOPIC(図3に示すよう
に、これらはそれぞれのプロセッシング・ユニットと一
体化されることができる)は集合的にバス・エージェン
トとして扱われる。バス仲裁および割り込み配信の一般
的な動作については、図5、図6および図7を具体的に
参照しながら以下で論ずることにする。
【0042】次に図4を参照すると、分散割り込み制御
方式を有するマルチプロセッサ・コンピュータ・システ
ムを対象とする本発明の第2実施例のブロック図が示さ
れている。本実施例は、図3を参照しながら先に詳細に
論じた実施例と同様である。しかしながら、本実施例で
は、LOPICユニット305、306は、それに対す
る内部アクセスを有するプロセッサと一体化されたユニ
ットとしてではなく、それぞれの対応するプロセッサC
PU105、106と、それぞれ、外部経路401、4
02を介して通信する外部ユニットとして設けられてい
る。図3を参照して論じた実施例は、低価格化およびピ
ン数の減少に関しては図4で説明した実施例よりも優れ
た解決策を提供するが、この設計は用途によっては有用
に実施可能な代替設計となり得るものであることは容易
に理解できよう。
【0043】図5は、本発明の教示に従ってSMP環境
において割り込みを配信する処理を例示するフローチャ
ートである。システムの起動および初期化ステップ50
5の間、各バス・エージェント(図3を参照して論じ
た)には固有の仲裁識別(アービトレーション・アイデ
ンティフィケーション)(「Arb ID」)値が割り
当てられる。8259Aコンパチビリティにより、シス
テム内で予め指定されているプロセッサによる起動のリ
セットの処理が済んでいる。加えて、各バス・エージェ
ントはプログラマブル割り込みコントローラ・バス31
1(図3に示した)上のバス・エージェントの総数に関
して初期設定される。好適な方法は、システム・ソフト
ウエア(「OS」)が、システムの初期設定フェーズ5
05の間に必要な全ての情報を制御し提供することを可
能にする。スケーラビリティを維持するために、好適実
施例は、符号化5ビット・レジスタを用いる。この5ビ
ット・レジスタの値「00000」は1つのバス・エー
ジェントおよび1つのマスタCOPICの存在を示し、
値「00001」は2つのバス・エージェントと1つの
マスタCOPICを示す等というように、31個のバス
・エージェントと1つのマスタCOPICを示す値「1
1110」までの範囲の値を取る。加えて、符号化5ビ
ット・レジスタにおける値「11111」は、実施例で
はRESET(リセット)を示す。
【0044】判断ブロック510において、システムが
割り込みの存在を検出した場合、バス・メッセージが配
信される前に、COPICまたはLOPICのいずれか
がプログラマブル割り込みコントローラ・バス311の
制御を獲得しなければならない。判断ブロック515に
おいてバス311がビジーであることが示された場合、
バス・エージェントは判断ブロック517に示すように
バス311がアイドルになるまで待たなければならな
い。次に、ひとたび現バス・トランザクションが完了し
たなら、バス・エージェントは仲裁を行いバスの付与
(グラント)を獲得しなければならない。何故なら、マ
スタ/アービタCOPICのみが、バスの制御ラインに
接続されているそのバス要求ラインの全制御を有するか
らである。仲裁フェーズ520については、図6および
図7を合わせて具体的に参照することにより以下で更に
詳しく論ずることにする。バス311がアイドルであれ
ば、エージェントまたはマスタは直接に仲裁サイクルを
開始してバスの付与を獲得することができる。
【0045】バス311の制御を獲得した後に、判断ブ
ロック525に入り、割り込みが指定配信モード割り込
みか、または分散配信モード割り込みかについて判定が
行われる。割り込みが指定配信モード割り込みであると
判定された場合、判断ブロック525からYES経路を
取ることにより、バス311の一部を構成する複数のデ
ータ・ライン、例えば、4本のデータ・ライン上の宛先
プロセッサ(または、プロセッサおよびそのLOPIC
が共に一体化されていない場合は、バス・エージェント
/LOPIC)にデータを配信する。
【0046】ステップ525において、割り込みは分散
配信モード割り込みであると判定された場合、ステップ
530に示すように、COPICは「分散割り込み」コ
マンドをリストされている全エージェントに送る。次
に、各エージェントは、その現タスク優先度レベル(C
TPR)を与える。この際、バスを要求するために用い
られるデータ・ラインを通じてシリアルに4ビット優先
度レベルを送信する。CTPRレベル内のビット数は4
であるので、各エージェントがそのCTPR値をCOP
ICに供給するには合計4サイクルが必要となる。
【0047】CTPR値を受け取った後、COPIC
は、ステップ535において、比較を行い、最小のCT
PR値(0が最小であり、最も余裕のあるエージェント
を示し、また、15が最大である)を有するエージェン
トを選択する。最小のCTPR値を有するエージェント
が1つのみである場合、判断ブロック540からYES
経路を取ることにより、割り込みを当該エージェントに
配信する。その他の場合、ステップ555に示すように
配信するために以前に同一の割り込みに応じた(対して
働いた、serviced)エージェントを選択するように、判
断ブロック550において判定が行われる。一方、以前
に当該割り込みに応じたエージェントがない場合、ステ
ップ565において選択を行い、固有のArb IDに
基づいてエージェントを選択する。例えば、最小のAr
b IDを有するエージェントを選択し、それに割り込
みを配信する。
【0048】次に図6および図7を合わせて参照する。
4つ以上のプロセッシング・ユニット(各々、それ自体
のLOPICと一体化してもよい)を有するスケーラブ
ルMPシステムの一例におけるバス仲裁方式を図6のフ
ローチャートに示し、バス・タイミング図を図7に示
す。容易に理解できるように、4つ未満のプロセッシン
グ・ユニットを有する実施例にも同一のバス仲裁方式を
用いることができ、この場合も本発明の範囲から逸脱す
るものではない。たとえば、プロセッシング・ユニット
が2つのみである場合、仲裁のためには2本のデータ・
ラインのみをHIGH(ハイ)に引き上げればよい。こ
れについては、一般的な実施例を参照しながら以下で説
明する。
【0049】仲裁フェーズは図5ではステップ520と
して表されており、ステップ601に示すバス・トラン
ザクションの開始と共に入る。初期化ステップ602の
後、第1の仲裁サイクルの間、第1の4つのバス・エー
ジェントがバス311(図3に示す)のデータ・ライン
に接続されているそれら自体のバス要求ライン上でAC
TIVE HIGH(アクティブ・ハイ)をアサートす
ることによって、それぞれのバス要求信号を発行する。
例えば、第1の仲裁サイクルの間、OPDATA0(図
7に示す)に接続されているエージェント0は、このフ
ローチャートではDATA0で示すそのラインを駆動す
る。同様に、OPDATA1(図7に示す)に接続され
ているエージェント1は、このフローチャートではDA
TA1で示すそのラインを駆動する。OPDATA2
(図7に示す)に接続されているエージェント2は、こ
のフローチャートではDATA2で示すそのラインを駆
動し、OPDATA3(図7に示す)に接続されている
エージェント3は、このフローチャートではDATA3
で示すそのラインを駆動する。ステップ604におい
て、これ以上のエージェントが存在しない場合または検
出されないことが示された場合、マスタ/アービタCO
PICは、ステップ607、608に示すように、「巡
回優先度」又は「ラウンド・ロビン(round robin)」
仲裁プロトコルを用いてバス・エージェントを選択し、
メッセージ配信のためにバス311をグラント(付与)
する。この目的のために、実施例におけるマスタ/アー
ビタCOPICはARB_PTRで示す内部巡回ポイン
タを利用し、最も最近バス要求を許可されたバス・エー
ジェントを指し示すようにする。本発明の一態様によれ
ば、ARB_PTRの内容によって指し示されたバス・
エージェントはバス仲裁の最低優先度が与えられ、更
に、ARB_PTR値を1だけラップアラウンドの増分
することによって指し示されるバス・エージェントは最
高の優先度を与えられる。この好適な一実施例では、5
ビットのARB_PTRを設けて、32ユニット、即
ち、31個のバス・エージェントおよび1つのマスタC
OPICまでスケーラブルに対応するようにした。起動
時、この5ビットのARB_PTRは「11111」に
初期設定され、「00000」によって指し示されるバ
ス・エージェントが、次に行われるバス仲裁に対して最
高の優先度を有するようにする。一方、バス・エージェ
ントおよびマスタCOPICの総数が32未満である場
合、ARB_PTRの上位側ビットは適切にマスクされ
る。
【0050】引き続き図6を参照する。一旦バス311
の制御が付与されたなら、要求元は直ちに巡回冗長度チ
ェック(Cyclic Redundancy Check)(「CRC」)お
よびエラー・チェック(図7に示す)を行い、そのメッ
セージの送出を開始することができる。各メッセージの
送信成功の後、ステップ609に示すように、マスタ/
アービタCOPICはそのARB_PTRを増分又は更
新し、メッセージの送信に成功したバス・エージェント
を指し示すようにする。現バス・トランザクションの終
了時に、バス仲裁プロセス・フェーズは次のバス・トラ
ンザクション610のために再び開始することができ
る。
【0051】一方、4つ以上のエージェントがバス制御
に対する仲裁を行っている場合、判断ブロック604か
らNOの経路を取り、ステップ606に示すように仲裁
サイクル・カウンタを増分し、図7に示すように、例え
ば、データ・ラインOPDATA0、OPDATA1、
OPDATA2、OPDATA3をそれぞれ駆動する更
なるエージェント4、5、6、7とともに次の仲裁サイ
クルを再開する。ステップ604において、リスト上に
エージェントがなくなったことが示されたなら、バス制
御は先に論じた場合と同様に付与される。
【0052】以上の説明から、本発明は、バスの幅また
はバス・プロトコルを変更することなく、4つ以上のプ
ロセッシング・ユニットを有するスケーラブルMP環境
において、割り込みをそれらの宛先に均衡して配信する
ための非常にコスト効率の高い解決策を提供することは
当業者には容易に認められよう。ここに開示した方法
は、各バス・エージェントのCTPR値を比較して、最
低の現タスク優先度を判定するだけでよく、これによっ
て、動的配信モードで常に最も余裕のあるエージェント
に割り込みが分散されることが保証される。更に、専用
割り込みバス上に配置されているローカル割り込みコン
トローラおよび中央割り込みコントローラ間で制御を分
散することにより、ホスト・バスのトラフィックまたは
システム・バスのトラフィックに対する影響を消滅する
程に減少させることを実現可能となる。ローカル割り込
みコントローラをそれに対応するプロセッシング・ユニ
ットと一体化することによって、4つ以上のプロセッサ
を有するMPシステム・アーキテクチャにおいては非常
にスケーラブルな、コスト低減およびピン数減少を実現
する解決策が達成される。更に、先に述べたように、本
発明は、プロセッシング・ユニットが4つ未満の場合で
も、バスの幅やバス・プロトコルを変更することなく同
様に実施可能である。したがって、本発明は、MP環境
において1つ以上のプロセッシング・ユニットに対応可
能な非常にスケーラブルな解決策を提供することは理解
されよう。
【0053】本発明の方法および装置の好適実施例を添
付図面に示しかつ上述の詳細な説明に記載したが、本発
明は先に開示した実施例に限定されるものではなく、特
許請求の範囲に記載し定義する本発明の精神から逸脱す
ることなく、多くの再構成、変更および交換が可能であ
ることは理解されよう。
【図面の簡単な説明】
【図1】集中割り込みコントローラを有する従来のマル
チプロセッサ・コンピュータ・システムのブロック図で
ある。
【図2】集中割り込みコントローラを有する従来のマル
チプロセッサ・コンピュータ・システムの第2実施例を
示すブロック図である。
【図3】4つ以上のプロセッシング・ユニットを設けた
分散割り込み制御方式を有するスケーラブル・マルチプ
ロセッサ・コンピュータ・システムに対する本発明の第
1実施例を示すブロック図である。
【図4】本発明の第2実施例を示すブロック図である。
【図5】本発明の教示による分散割り込み制御方式を有
するマルチプロセッサ・コンピュータ・システムにおい
て割り込みを配信する処理の一例を示すフローチャート
である。
【図6】4つ以上のプロセッシング・ユニットを含むス
ケーラブル・マルチプロセッサ・コンピュータ・システ
ムにおけるバス仲裁を行う処理の一例を示すフローチャ
ートである。
【図7】本発明の教示による複数の仲裁サイクルを用い
たバス仲裁を説明するための例示的タイミング図であ
る。
【図8】本発明の教示によるローカル・プログラマブル
割り込みコントローラの代表的実施例を示す図である。
【図9】本発明の教示による中央プログラマブル割り込
みコントローラの代表的実施例を示す図である。
【符号の説明】
105 CPU1 106 CPU2 107、108 キャッシュ・メモリ・ユニット 109 システム・メモリ 110 ホスト・バス 112 集中割り込みコントローラ 113 第1のシステム・バス 114 PCI/ISAブリッジ 115 第2のシステム・バス 116 第2のI/Oブロック 117 8259割り込みコントローラ 119、121 IRQライン 120 I/O装置 205 システム・ロジック・チップセット 305、306 ローカル・プログラマブル割り込みコ
ントローラ 307、308 キャッシュRAM 309 データ経路 311 プログラマブル割り込みコントローラ・バス 312 中央プログラマブル割り込みコントローラ 313 主メモリ 320 第1のバス間ブリッジ 401、402 外部経路
フロントページの続き (71)出願人 591030868 20555 State Highway 249,Houston,Texas 77070,United States o f America (72)発明者 ソンポン・ピー・オラリグ アメリカ合衆国テキサス州77478,サイプ レス,エバーグリーン・ノール 15415 (72)発明者 ウィリアム・エフ・ホワイトマン アメリカ合衆国テキサス州77429,サイプ レス,ガルヴァニ・ドライブ 14210 (72)発明者 デーヴィッド・エフ・ヘインリッチ アメリカ合衆国テキサス州77375,トムボ ール,レイクグローブ・コート 11806

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 対称型マルチプロセッシング・システム
    において、バス・エージェントとして指定された複数の
    分散割り込みコントローラを支援する方法であって、 固有の識別番号を各バス・エージェントに割り当てるス
    テップと、 前記バス・エージェントから、4つ毎の群として4本の
    データ・ラインを通じてバス要求を受け取るステップ
    と、 要求元の前記バス・エージェントから選択した1つにバ
    ス所有権を付与するステップと、 を備える方法。
  2. 【請求項2】 請求項1記載の方法において、4つより
    多くのバス・エージェントの存在が複数の仲裁フェーズ
    を要求し、バス・プロトコルまたは幅を変更することな
    く32までのバス・エージェントを支援可能である、方
    法。
  3. 【請求項3】 対称型マルチプロセッシング・システム
    において、バス・エージェントとして指定された複数の
    分散割り込みコントローラを支援するコンピュータ・シ
    ステムであって、 固有の識別番号を各バス・エージェントに割り当てる手
    段と、 前記バス・エージェントからバス要求を4つ毎の群とし
    て受け取る4本のデータ・ラインと、 要求元の前記バス・エージェントから選択した1つにバ
    ス所有権を付与する手段と、 を備えるコンピュータ・システム。
  4. 【請求項4】 請求項3記載のコンピュータ・システム
    において、4つより多くのバス・エージェントの存在が
    複数の仲裁フェーズを要求し、バス・プロトコルまたは
    幅を変更することなく、32までのバス・エージェント
    を支援可能である、コンピュータ・システム。
  5. 【請求項5】 請求項3記載のコンピュータ・システム
    において、前記割り当てる手段は中央プロセッサを備え
    る、コンピュータ・システム。
  6. 【請求項6】 請求項3記載のコンピュータ・システム
    において、前記付与する手段は中央プログラマブル割り
    込みコントローラを備える、コンピュータ・システム。
  7. 【請求項7】 各々対応するバス・エージェントと通信
    する1つ以上のプロセッシング・ユニットと、内部仲裁
    ポインタを有するマスタ・アービタとを含み、前記バス
    ・エージェントおよび前記マスタ・アービタがプログラ
    マブル割り込みコントローラ・バス上に配置されている
    構成のコンピュータ・システムにおいて、バス制御要求
    を仲裁する方法であって、 前記内部仲裁ポインタの内容を初期設定するステップ
    と、 各バス・エージェントによってバス制御要求信号をアサ
    ートするステップであって、4つより多いバス・エージ
    ェントがリストされている場合、4つ毎に1群として実
    行される、ステップと、 仲裁プロトコルに基づいて前記マスタ・アービタによっ
    てバス・エージェントを選択し、該選択したバス・エー
    ジェントによってバス・メッセージを送信し、前記内部
    仲裁ポインタを更新して前記選択したバス・エージェン
    トを指し示すようにするステップと、 を備える方法。
  8. 【請求項8】 請求項7記載のコンピュータ・システム
    においてバス制御要求を仲裁する方法であって、 4つより多くのバス・エージェントがリストされている
    場合に仲裁サイクルを初期設定するステップと、 4つより多くのバス・エージェントがリストされている
    場合にカウンタを初期設定するステップとを更に備える
    方法。
  9. 【請求項9】 請求項8記載のコンピュータ・システム
    においてバス制御要求を仲裁する方法において、前記仲
    裁サイクルはそれを1に設定することによって初期設定
    され、前記カウンタはそれを0に設定することによって
    初期設定される、方法。
  10. 【請求項10】 請求項7記載のコンピュータ・システ
    ムにおいてバス制御要求を仲裁する方法において、前記
    バス制御要求信号は、前記バス・エージェントのデータ
    ・ラインをハイに引き上げることによってアサートされ
    る、方法。
  11. 【請求項11】 バス制御要求を仲裁するためのサブシ
    ステムを含み、各々対応するバス・エージェントと通信
    する1つ以上のプロセッシング・ユニットを含み、前記
    バス・エージェントがプログラマブル割り込みコントロ
    ーラ・バス上に配置されている構成のコンピュータ・シ
    ステムであって、 前記サブシステムが、 内部仲裁ポインタを初期設定する手段と、 バス制御要求信号をアサートする手段と、 リストされたバス・エージェントを選択する手段と、 前記内部仲裁ポインタを更新する手段とを備える、 コンピュータ・システム。
  12. 【請求項12】 請求項11記載のコンピュータ・シス
    テムにおいて、前記バス制御要求をアサートする前記手
    段はアクティブ・ハイ信号を発生する信号発生手段を備
    える、コンピュータ・システム。
  13. 【請求項13】 請求項11記載のコンピュータ・シス
    テムにおいて、前記選択する手段は中央プログラマブル
    割り込みコントローラを備え、該中央プログラマブル割
    り込みコントローラは前記プログラマブル割り込みコン
    トローラ・バス上に配置される、コンピュータ・システ
    ム。
JP9223401A 1996-08-20 1997-08-20 スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置 Pending JPH1097490A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69991296A 1996-08-20 1996-08-20
US699912 1996-08-20

Publications (1)

Publication Number Publication Date
JPH1097490A true JPH1097490A (ja) 1998-04-14

Family

ID=24811451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9223401A Pending JPH1097490A (ja) 1996-08-20 1997-08-20 スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置

Country Status (4)

Country Link
US (2) US6041377A (ja)
EP (1) EP0827085B1 (ja)
JP (1) JPH1097490A (ja)
DE (1) DE69735575T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012503254A (ja) * 2008-09-19 2012-02-02 クゥアルコム・インコーポレイテッド マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0827085B1 (en) * 1996-08-20 2006-03-29 Compaq Computer Corporation Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol
US6381682B2 (en) 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6332180B1 (en) 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6633916B2 (en) 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6260068B1 (en) * 1998-06-10 2001-07-10 Compaq Computer Corporation Method and apparatus for migrating resources in a multi-processor computer system
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6542926B2 (en) 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
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
US6219741B1 (en) 1997-12-10 2001-04-17 Intel Corporation Transactions supporting interrupt destination redirection and level triggered interrupt semantics
US6374320B1 (en) * 1998-08-10 2002-04-16 Micron Technology, Inc Method for operating core logic unit with internal register for peripheral status
US6275893B1 (en) * 1998-09-14 2001-08-14 Compaq Computer Corporation Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US6205508B1 (en) * 1999-02-16 2001-03-20 Advanced Micro Devices, Inc. Method for distributing interrupts in a multi-processor system
US6513084B1 (en) * 1999-06-29 2003-01-28 Microsoft Corporation Arbitration of state changes
US7996843B2 (en) 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US6606676B1 (en) * 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US8041754B1 (en) * 2000-01-22 2011-10-18 Intel Corporation Establishing thread priority in a processor or the like
US6804736B2 (en) * 2000-11-30 2004-10-12 Hewlett-Packard Development Company, L.P. Bus access arbitration based on workload
US6848015B2 (en) * 2001-11-30 2005-01-25 Hewlett-Packard Development Company, L.P. Arbitration technique based on processor task priority
US7028302B2 (en) * 2002-04-24 2006-04-11 Hewlett-Packard Development Company, L.P. System and method for automatically tuning a multiprocessor computer system
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US8933941B2 (en) * 2004-08-23 2015-01-13 Hewlett-Packard Development Company, L.P. Method and apparatus for redirection of video data
US20060136916A1 (en) * 2004-12-17 2006-06-22 Rowland John R Method and apparatus for transaction performance and availability management based on program component monitor plugins and transaction performance monitors
US8458386B2 (en) 2010-12-07 2013-06-04 Apple Inc. Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements
US8959270B2 (en) 2010-12-07 2015-02-17 Apple Inc. Interrupt distribution scheme
CN111553473B (zh) * 2017-07-05 2023-10-13 上海寒武纪信息科技有限公司 数据冗余方法及执行数据冗余方法的神经网络处理器
RU183879U1 (ru) * 2017-10-25 2018-10-08 Публичное акционерное общество "Институт электронных управляющих машин им. И.С. Брука" Процессорный модуль

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5125093A (en) 1990-08-14 1992-06-23 Nexgen Microsystems Interrupt control for multiprocessor computer system
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
US5410710A (en) 1990-12-21 1995-04-25 Intel Corporation Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
AU2270892A (en) 1991-06-26 1993-01-25 Ast Research, Inc. Automatic distribution of interrupts controller for a multiple processor computer system
US5434997A (en) 1992-10-02 1995-07-18 Compaq Computer Corp. Method and apparatus for testing and debugging a tightly coupled mirrored processing system
US5437042A (en) 1992-10-02 1995-07-25 Compaq Computer Corporation Arrangement of DMA, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system
EP0602858A1 (en) * 1992-12-18 1994-06-22 International Business Machines Corporation Apparatus and method for servicing interrupts in a multiprocessor system
US5481725A (en) 1993-08-03 1996-01-02 Intel Corporation Method for providing programmable interrupts for embedded hardware used with programmable interrupt controllers
EP0685798B1 (en) * 1994-05-31 2003-07-16 Advanced Micro Devices, Inc. Interrupt controllers in symmetrical multiprocessing systems
US5564060A (en) 1994-05-31 1996-10-08 Advanced Micro Devices Interrupt handling mechanism to prevent spurious interrupts in a symmetrical multiprocessing system
US5613126A (en) 1994-05-31 1997-03-18 Advanced Micro Devices, Inc. Timer tick auto-chaining technique within a symmetrical multiprocessing system
US5568649A (en) 1994-05-31 1996-10-22 Advanced Micro Devices Interrupt cascading and priority configuration for a symmetrical multiprocessing system
US5555430A (en) 1994-05-31 1996-09-10 Advanced Micro Devices Interrupt control architecture for symmetrical multiprocessing system
US5530891A (en) 1994-05-31 1996-06-25 Advanced Micro Devices System management interrupt mechanism within a symmetrical multiprocessing system
EP0827085B1 (en) * 1996-08-20 2006-03-29 Compaq Computer Corporation Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012503254A (ja) * 2008-09-19 2012-02-02 クゥアルコム・インコーポレイテッド マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム

Also Published As

Publication number Publication date
EP0827085B1 (en) 2006-03-29
DE69735575T2 (de) 2006-08-24
US6041377A (en) 2000-03-21
EP0827085A3 (en) 1999-02-03
US6249830B1 (en) 2001-06-19
EP0827085A2 (en) 1998-03-04
DE69735575D1 (de) 2006-05-18

Similar Documents

Publication Publication Date Title
JPH1097490A (ja) スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置
JPH1097509A (ja) 対称型マルチプロセッサ・システムにおいて割り込みを分散する方法および装置
US5701495A (en) Scalable system interrupt structure for a multi-processing system
US9798556B2 (en) Method, system, and apparatus for dynamic reconfiguration of resources
KR100292660B1 (ko) 프로세서가통합된인터럽트제어기를갖춘멀티프로세서프로그래머블인터럽트제어기시스템
EP0794492B1 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US7895260B2 (en) Processing data access requests among a plurality of compute nodes
US6370606B1 (en) System and method for simulating hardware interrupts in a multiprocessor computer system
Kronenberg et al. VAXcluster: A closely-coupled distributed system
US7062615B2 (en) Multi-channel memory access arbitration method and system
US4484270A (en) Centralized hardware control of multisystem access to shared and non-shared subsystems
US20060206891A1 (en) System and method of maintaining strict hardware affinity in a virtualized logical partitioned (LPAR) multiprocessor system while allowing one processor to donate excess processor cycles to other partitions when warranted
US20030110336A1 (en) Method and apparatus for interrupt redirection for arm processors
US20020161961A1 (en) Multiple virtual machine environment management system
KR20010087404A (ko) 비정형 메모리 억세스 데이타 처리 시스템용 인터럽트아키텍쳐
JPH0250753A (ja) コンピュータにおける割込処理装置およびその方法
EP1364282A1 (en) Modular microcontrollers managing cpu and devices without operating system
JPH01200466A (ja) データ処理システム
WO2006082989A2 (en) System and method of interrupt handling
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
US10831539B2 (en) Hardware thread switching for scheduling policy in a processor
US10459771B2 (en) Lightweight thread synchronization using shared memory state
US10331581B2 (en) Virtual channel and resource assignment
Beck et al. VLSI Assist for a Multiprocessor
WO2000028418A1 (en) Scheduling resource requests in a computer system