システム内の1つ又はそれ以上のデバイスからの割り込みを受信するように連結されている回路構成と、前記回路構成へ連結されていて、前記システム内の複数のプロセッサから、第1の受信された割り込みについてプロセッサを選択するように構成されている割り込みルータであって、割り込みが前記選択されたプロセッサへ合図されるよう仕向けるように構成されていて、前記複数のプロセッサの状態を監視して前記状態に応じて前記選択されるプロセッサを選択するように構成されている、割り込みルータと、を備えている割り込みコントローラ。前記割り込みルータは、更に、前記割り込みが前記選択されたプロセッサへ合図されたことに応答してタイムアウトカウンタを初期化するように構成されており、前記割り込みルータは、前記割り込みについて前記選択されたプロセッサからの応答無しに前記タイムアウトカウンタが満了したことの検知に応えて別のプロセッサを選択するように構成されている、請求項1に記載の割り込みコントローラ。前記応答は、割り込み受信確認応答である、請求項2に記載の割り込みコントローラ。前記割り込み受信確認応答に、前記第1の割り込みを識別する割り込みベクトルで応答するように構成されている回路構成を更に備えている、請求項3に記載の割り込みコントローラ。前記割り込み受信確認は、前記割り込みコントローラについて定義されている割り込み受信確認レジスタの読み出しであり、前記割り込み受信応答へ応答するように構成されている前記回路構成は、レジスタアクセスオペレーションを受信するように連結されているレジスタインターフェースユニットであり、前記読み出しへの応答で返されるデータは前記割り込みベクトルを含んでいる、請求項4に記載の割り込みコントローラ。前記プロセッサ状態は、前記プロセッサがスリープ状態にあるか否かを含んでいる、請求項1に記載の割り込みコントローラ。前記プロセッサ状態は、前記プロセッサ内で割り込みが有効になっているか否かを含んでいる、請求項1に記載の割り込みコントローラ。前記プロセッサ状態は、ソフトウェアによってプログラムされているオフライン状態を含んでいる、請求項1に記載の割り込みコントローラ。前記プロセッサ状態は、仮想化されたゲストオペレーティングシステムが前記プロセッサ上で実行されていることの指示を含んでいる、請求項1に記載の割り込みコントローラ。割り込みコントローラが、割り込みを受信する段階と、前記割り込みコントローラが、当該割り込みコントローラを含むシステム内の複数のプロセッサのうちの2つ又はそれ以上の適格プロセッサを識別する段階であって、少なくとも一部にはそれぞれのプロセッサの状態に応じて識別する段階と、前記2つ又はそれ以上の適格プロセッサから或るプロセッサを選択する段階と、前記割り込みを前記選択されたプロセッサへ提示する段階と、を備えている方法。前記適格プロセッサは、前記割り込み受信先としてまだ選択されていない、請求項10に記載の方法。前記適格プロセッサは、割り込みが有効にされている、請求項11に記載の方法。前記適格プロセッサは、より以前の割り込みに無応答であったと判定されていない、請求項11に記載の方法。前記2つ又はそれ以上のプロセッサのうちの第1のプロセッサは低パワー状態にあり、前記2つ又はそれ以上のプロセッサのうちの第2のプロセッサは低パワー状態にはなく、前記選択する段階は、前記第2のプロセッサを前記選択されるプロセッサとして選択する段階を備えている、請求項10に記載の方法。前記2つ又はそれ以上のプロセッサのうちの第1のプロセッサは低パワー状態にあり、前記選択する段階は、前記第1のプロセッサが前記低パワー状態にあったとしても当該第1のプロセッサを前記選択されるプロセッサとして選択する段階を備えている、請求項10に記載の方法。前記選択されたプロセッサについて当該選択されたプロセッサからの割り込み受信確認を受信すること無しにタイムアウトを検知する段階と、前記タイムアウトに応えて前記選択されたプロセッサは不適格であることを指し示す段階と、異なった適格プロセッサを選択する段階と、前記割り込みを前記異なった適格プロセッサへ提示する段階と、を更に備えている、請求項10に記載の方法。複数のデバイスと、複数のプロセッサと、前記複数のデバイス及び前記複数のプロセッサへ連結されている割り込みコントローラであって、前記複数のデバイスのうちの第1のデバイスからの第1の割り込みを受信するように連結されていて、前記割り込みを前記複数のプロセッサのうちの第1のプロセッサへ経路指定するように構成されていて、前記割り込みの前記第1のプロセッサへの経路指定に応答して当該第1のプロセッサに関しタイムアウトカウンタを初期化するように構成されていて、前記第1のプロセッサからの割り込み受信確認を受信すること無しにタイムアウトが満了したことの検知に応えて、前記割り込みを前記複数のプロセッサのうちの第2のプロセッサへ経路指定するように構成されている、割り込みコントローラと、を備えているシステム。前記割り込みコントローラは、更に、前記第1の割り込みの受信に応えて当該第1の割り込みに対応する第2のタイムアウトカウンタを初期化するように構成されており、前記割り込みコントローラは、前記割り込みが前記複数のプロセッサのうちの1つによって受信確認されること無しに前記第2のタイムアウトが満了したことの検知に応えて、前記割り込みを前記第2のプロセッサへ経路指定するように構成されている、請求項17に記載のシステム。前記タイムアウトの値を複数の値から前記第1のプロセッサの状態に応じて選択する段階を更に備えている、請求項17に記載のシステム。前記値を更に前記第2のプロセッサの状態に応じて選択する段階を更に備えている、請求項19に記載のシステム。前記割り込みコントローラは、前記タイムアウトカウンタが満了したことの検知に応えて前記第1のプロセッサが割り込みに無応答であることを指し示すように構成されており、前記割り込みコントローラは、前記第1のプロセッサが無応答である場合、当該第1のプロセッサを割り込みにとっての標的候補として失格させるように構成されている、請求項17に記載のシステム。本発明には、様々な修正及び代わりの形態の余地があるが、本発明の特定の実施形態を例示として図面に示し、ここで詳細に説明していく。とはいえ、図面及びそれに対する詳細な説明は本発明を開示されている特定の形態へ限定しようとするものではなく、それどころか、付随の特許請求の範囲によって定義されている本発明の精神及び範囲内に入る全ての修正、均等、及び代替を対象として含むものであることを理解されたい。ここに使用されている見出しは編集のためであり、記載範囲を限定するために使用されることを意図していない。本出願全体を通しての使用に際し、英語のmayの対訳である~してもよい、~かもしれない、~できるであろうは、必須の意味即ち、せねばならないを意味するというよりむしろ許容の意味即ち、可能性があることを意味するに使用されている。同様に、英語のinclude、including、及びincludesの対訳である~を含む、~を含めるは、~に限定される、ではなく、~を含んでいる、という意味である。各種ユニット、回路、又は他の構成要素が、単数又は複数のタスクを遂行するように構成されていると記述されていることがあるかもしれない。その様な文脈では、~するように構成されているは、概して、オペレーション中に単数又は複数のタスクを遂行する回路構成を有していることを意味する、構造の広義的な叙述である。そういうものとして、ユニット/回路/構成要素は、ユニット/回路/構成要素が現在オンになっていなくとも、タスクを遂行するように構成されているといえる。一般に、~するように構成されているに対応する構造を形成している回路構成は、オペレーションを実施するハードウェア回路を含んでいよう。同様に、各種ユニット/回路/構成要素が、記載の便宜上、単数又は複数のタスクを遂行する様に記述されていることがあるかもしれない。その様な記載は、~するように構成されているという語句を含んでいるものと解釈されねばならない。ユニット/回路/構成要素が1つ又はそれ以上のタスクを遂行するように構成されているという説明は、当該ユニット/回路/構成要素について35U.S.C.第112条、第6項の解釈を行使しないつもりであることを明示しておく。システム内で割り込みに対処する場合の様々な実施形態を以下に説明する。一般に、割り込みは、デバイス例えば周辺デバイスからプロセッサへの通信であって、プロセッサに、プロセッサが現在実行しているコードの実行を、割り込みに対応するコードを実行するために中断させる通信である。デバイスからの割り込みの通信には、様々な形式例えば、信号のアサーション、割り込みメッセージの送信などがある。デバイスは、割り込みを使用して、デバイスのための割り込みサービスルーチンコード及び/又はドライバコードが実行されるように仕向ける。中断されたコードの処理は、プロセッサが割り込みを処理するべく少なくとも幾つかの段階を踏んだ後に続行されてもよい。場合によっては、中断されたコードは、割り込みが完全に処理されるまで中断されたままにされてもよい。他の場合には、割り込みサービスルーチンコードが割り込みを後で処理するためにログし、その後、中断されたコードへ戻るという、好適な割り込み処理スキームが採用されてもよい。割り込みコントローラは、システム内の各種デバイスから割り込みを受信し、割り込みをプロセッサへ提示する。割り込み提示は、概して、割り込みの指示をプロセッサへ送信することであるといえる。幾つかの実施形態では、割り込みは、割り込み要求信号をプロセッサへアサートすることによって提示されてもよい。他の実施形態では、割り込みは、割り込みを識別するメッセージをプロセッサへ送信することによって提示されてもよい。プロセッサは、割り込みに様々な様式で応えることができる。例えば、プロセッサは、割り込みの受諾を指し示す割り込み受信確認を送信してもよい。割り込み受信確認は、様々な形式で送信することができるであろう。例えば、割り込み受信確認は、割り込み受信確認レジスタとして指定されているレジスタに対するレジスタ読み出しであってもよい。割り込み受信確認は、プロセッサのインターフェース上の特定の送信であってもよい。他の実施形態では、プロセッサは、割り込みの受諾か又は拒絶のどちらかを通信することになる。以下で詳細に浮かび上がってくる様に、幾つかの実施形態では、割り込みコントローラは、プロセッサの割り込みを受諾する又は低待ち時間で割り込みを受諾する能力に影響を及ぼし得る様々なプロセッサ状態を考慮する。こうして、割り込みコントローラは、動的に、所与の割り込みを受諾するプロセッサを、所与の割り込みの時点での様々なプロセッサのプロセッサ状態に基づいて識別する。同じ割り込みが続いて起こったら、それは、次に起こった時点での異なったプロセッサ状態に基づいて異なったプロセッサへ提供されることになろう。幾つかの実施形態では、プロセッサ状態に基づいてプロセッサを選択することで、全体としての割り込み待ち時間減少につながることであろう。概して、プロセッサ状態には、直接にプロセッサへプログラムされている状態例えば、割り込み有効/無効、特権レベル、など、及び/又は直接にプロセッサへ適用されている状態例えば、パワーゲーティング、クロックゲーティングなどが含まれよう。幾つかの実施形態では、割り込みコントローラは、割り込みがプロセッサによって受諾されたことに応えて、不可分式に割り込みをマスクするように構成されていてもよい。このタイプの場合、割り込みコントローラは、同じ割り込みを2つ以上のプロセッサへ送信することを回避できる。加えて、割り込みのソースはレベルに敏感である場合もあり、従って、割り込みは、ソースが所望の処理を受信するまでアサートされたままにされることもある。マスクは、ソフトウェアによって明示的にマスクが変更されるまでは、割り込みが重ねて報告されることが起きないようにする。割り込みの自動マスキングは、割り込み受信確認がステートレスであることを許容していてもよい。割り込みコントローラは、プロセッサが例えば割り込みの処理の最中であるか否かを把握している必要はない。従って、割り込みコントローラの設計は、他の割り込みメカニズムに比較して単純なものとなろう。図1は、複数のプロセッサ60A-60Bと、割り込みコントローラ50と、パワーマネジャ52と、複数の周辺デバイス64A-64Bとを含んでいるシステム5の1つの実施形態のブロック線図である。周辺デバイス64A-64Bは、割り込みコントローラ50へ連結されていて、割り込みを割り込みコントローラ50へ合図する図1の割り込みように構成されていてもよい。パワーマネジャ52は、オフラインレジスタ54を含んでいて、割り込みコントローラ50へ連結されていてもよい。具体的には、オフラインレジスタ54のコンテンツ及びプロセッサ60A-60Bに関係している追加のプロセッサ状態図1のPStateがパワーマネジャ52によって割り込みコントローラ50へ提供されていてもよい。プロセッサ60A-60Bは、パワーマネジャ52及び割り込みコントローラ50へ連結されていてもよい。具体的には、プロセッサ60A-60Bは、それぞれ、追加のプロセッサ状態PStateを割り込みコントローラ50へ提示し、またそれぞれ、割り込み要求IRQを割り込みコントローラ50から受信していてもよい。プロセッサ60A-60B及び割り込みコントローラ50は、加えて、割り込みコントローラレジスタインターフェース62図1のICRegInterfaceを介して連結されていてもよい。割り込みコントローラ50は、更に、マスクレジスタ56及び少なくとも1つのタイムアウトレジスタ58を含んでいてもよい。或る実施形態では、割り込みコントローラ50は、プロセッサ60A-60BのPStateを受信するように連結されていて、どのプロセッサ60A-60Bが割り込みを提示されるべきかを判定する際にPStateを含めるように構成されている。その結果、選択対象のプロセッサ60A-60Bは、所与の割り込みについて、プロセッサと関連付けられている現在のPStateに依存して動的に判定される。割り込みコントローラ50は、割り込みを選択されたプロセッサ60A-60Bへ例えば、図1ではIRQを選択されたプロセッサ60A-60Bへアサートすることによって提示してもよい。プロセッサ60A-60Bは、例えば割り込み受信確認IAckを割り込みコントローラ50へ送信することによって、割り込みを受諾してもよい。割り込みを所与のプロセッサ60A-60Bへ経路指定する場合の決定にプロセッサ状態を含めることにより、割り込み処理全体の待ち時間は、プロセッサ60A-60Bへの割り込みの提示から当該プロセッサが割り込みを受諾するまでの待ち時間が縮められる分だけ縮まる。割り込みコントローラ50によって監視されるプロセッサ状態には、プロセッサの割り込みに応答する能力に影響し得る何れの状態が含まれていてもよい。例えば、パワーマネジャ52からのプロセッサ状態には、プロセッサのパワー状態が含まれていてもよい。プロセッサ60A-60Bが、スリーブ状態の様な低パワー状態にあれば、当該プロセッサは、割り込みに応答するために満タン状態の様な高パワー状態へ移行するのに時間が必要であろう。従って、既により高いパワー状態にあるプロセッサが、割り込み提示にとってより良い選択肢となろう。パワーマネジャ52からのプロセッサ状態には、更に、オフラインレジスタ54からのオフライン状態が含まれていてもよい。オフライン状態は、システム5上で実行しているソフトウェアによってプログラムされていてもよい。所与のプロセッサがオフラインとしてオフラインレジスタ54に指し示されている場合は、当該プロセッサは割り込みを果たす上で利用できないということになり、従って、割り込み提示先に選択されない。プロセッサ60A-60Bからのプロセッサ状態には、割り込みが、現在、当該プロセッサで有効になっているか否かの指示が含まれていてもよい。現在、割り込みが無効にされているプロセッサは、現在、割り込みが有効にされているプロセッサよりも、提示される割り込みを迅速に受諾する可能性が低いであろう。1つの実施形態では、プロセッサ60A-60Bは、割り込み有効ビット又は割り込み無効ビットを格納するレジスタを含んでいてもよい。ビットは、外部から監視できるようにプロセッサ60A-60Bによって出力されてもよい。プロセッサ60A-60Bからの他のプロセッサ状態には、例えば、プロセッサの特権状態の指示が含まれていてもよい。低特権状態例えばユーザー状態にあるプロセッサはアプリケーションコードを実行しているものであり、一方、高特権状態例えばスーパーバイザー状態にあるプロセッサはオペレーションシステムコードを実行しているものとしてもよい。低特権状態にあるプロセッサは、高特権状態にあるプロセッサよりも割り込みを提示するにはより良い選択肢となろう。様々な実施形態では、何れの他のプロセッサ状態が考慮されてもよい。プロセッサ及び割り込みコントローラの仮想化をサポートしている実施形態では、割り込みの経路指定にあたり、追加のプロセッサ状態が考慮されてもよい。その様な環境では、周辺デバイスひいてはその割り込みは、ゲストオペレーティングシステムOSにとってプライベートとされている。即ち、デバイスはゲストOSへ割り当てられており、デバイスが当該ゲストOSへ割り当てられた状態でなくなるまで、当該デバイスはシステム上で実行している他のゲストOSによる使用には利用できなくなっている。ゲストOSにとってプライベートである割り込みの場合、割り込みが既にゲストOSを実行しているプロセッサのうちの1つへ経路指定されたなら、割り込み待ち時間を短縮できるであろう。それぞれのプロセッサは、どのゲストOSが当該プロセッサ上で実行中であるかの指示例えばゲストタグを割り込みコントローラへ提示するように構成されていて、割り込みコントローラは割り込みの経路指定先のプロセッサを選択する際に当該指示を考慮するように構成されていてもよい。選択されたプロセッサが割り込みに応答しなかったことを判定するのにタイムアウトがサポートされていて、ハイパーバイザー/仮想マシンモニタを実行しているプロセッサがタイムアウトに応えて選択されてもよい。所望のゲストOSを実行しているプロセッサが無いなら、残っている経路指定規則を使用してプロセッサが選択されることになろう。幾つかの実施形態では、ハイパーバイザー/仮想マシンモニタに割り込むのに異なった割り込み指示が使用されてもよい例えば、ハイパーバイザー/仮想マシンモニタ及びゲストのそれぞれに別々のIRQがあってもよい。その様な実施形態では、所望のゲストOSがどのプロセッサでも実行されていないとき、ハイパーバイザー/仮想マシンモニタIRQがアサートされることになろう。或る実施形態では、割り込みコントローラ50は、1つ又はそれ以上のタイムアウトをサポートしていてもよい。選択されたプロセッサへの割り込みの提示に応えて、割り込みコントローラ50は、タイムアウトカウンタを、タイムアウトレジスタ58からの対応するタイムアウト値で初期化してもよい。選択されたプロセッサが割り込みに応答すること無くタイムアウトが満了したなら、割り込みコントローラ50は、割り込みを評価し直し、割り込みを別のプロセッサへ提示することになろう。その結果、元々選択されたプロセッサが応答に遅延を来している場合、別のプロセッサが選択され応答することになる。1つの実施形態では、提示は、先に選択されたプロセッサから撤回されていない。従って、どちらでも最初に応答したプロセッサに割り込みが提供されることになる。他の実施形態では、提示は、先に選択されたプロセッサから例えばそのIRQをデアサートすることにより撤回されてもよい。タイムアウトは、ソフトウェアプログラム可能であって、特定の事象の期待待ち時間に基づいていてもよい。例えば、或るプロセッサで割り込みが無効になっている場合、それら割り込みは典型的な時間量例えば20マイクロ秒にわたって無効のままにされる。タイムアウトは典型時間より僅かに長めにプログラムされていてもよく、そうすると、プロセッサは、割り込みが典型的な時間量にわたって無効にされている場合タイムアウトが起こる前に割り込みを有効にして割り込みを受諾することができるであろう。プロセッサが低パワー状態にある場合、プロセッサが低パワー状態を脱する間に一定の時間量例えば60マイクロ秒が経過するかもしれない。タイムアウトは、この時間量より僅かに長めにプログラムされていてもよく、そうするとプロセッサはタイムアウトが起こる前に満タン状態に達し割り込みを受諾することができるであろう。或る実施形態では、複数のタイムアウト値がサポートされていて、タイムアウトレジスタ58へプログラムされていてもよい。それぞれのタイムアウト値は、プロセッサ状態及び関連付けられている割り込み受諾待ち時間に対応していてもよい。割り込み提示先のプロセッサが選択されたことに応えて、割り込みコントローラ50は、タイムアウトカウンタを当該プロセッサの状態に対応しているタイムアウトで初期化してもよい。別の実施形態では、タイムアウト値は、選択されたプロセッサの現在状態に依存し、なお且つ現在選択されているプロセッサがタイムアウトした場合に選択されそうな次のプロセッサの現在状態に依存するものであってもよい。割り込みがプロセッサへ提示され、プロセッサが受信確認を遂行するより前にタイムアウトが満了した場合、プロセッサは無応答であると見なされ、プロセッサの無応答は以降の割り込み経路指定オペレーションに影響を及ぼすことになる。それぞれのプロセッサについて測定される例えば、IRQから割り込み受信確認よる割り込み受諾までのタイムアウト値に加え、タイムアウトはそれぞれの割り込みについて測定されてもよい。割り込みタイムアウトは、割り込みの所与のプロセッサへの経路指定から割り込みのサービス提供までが測定されてもよい。割り込みタイムアウトの満了は、上述したプロセッサについてのタイムアウトの満了と同様に、割り込みが評価し直しされ異なったプロセッサに割り込みが提示されることにつながる。或る実施形態では、割り込みがタイムアウトしても、プロセッサが無応答であると見なされることにはならず、ひいては以降の割り込み経路指定オペレーションには影響を及ぼさない。或る実施形態では、割り込みコントローラ50は、プロセッサからの割り込み受信確認に応えてプロセッサへ配信される割り込みを不可分式にマスクしてもよい。割り込みコントローラ50は、割り込みコントローラ50によってサポートされているそれぞれの割り込みについてマスクビットを含むことのできるマスクレジスタ56を含んでいてもよい。割り込みコントローラ50は、マスクビットを、割り込みをマスクする場合はマスク状態へ設定することができる。マスクビットは、更に、割り込みをマスクしない場合はマスク解除状態へ設定される。或る実施形態では、マスク状態は設定状態であり、マスク解除状態はクリア状態であるが、他の実施形態で逆の状態割り当てが使用されてもよい。不可分式に割り込みをマスクする場合、割り込みのマスクは、たとえ次の割り込み受信確認が可能な限り早く受信されたとしても、当該の次の割り込み受信確認に応えて割り込みが提供されることのないように行われる。割り込みコントローラ50がパイプライン化されている場合、例えば、マスキングの効果は、次の割り込み受信確認が割り込み状態にアクセスする前に、パイプラインを行きつくところまでパスされてゆく。1つの実施形態では、割り込みコントローラ50は割り込み受信確認を直列化し、1つの割り込み受信確認が、先の割り込み受信確認によってマスクされるべき割り込みを検知することのないようにしていてもよい。割り込みの不可分式マスキングは、上述したプロセッサ状態把握割り込み経路指定から独立に実施されるものであり、同様に単一プロセッサ実施形態でも実施されるものであることを指摘しておく。上述したように、オフライン状態は、特定のプロセッサが割り込みに利用できないことを指し示すようにシステム5内プロセッサ60A-60B上で実行しているソフトウェアによってプログラム可能とされていてもよい。対照的に、低パワー状態にあるプロセッサは割り込み受諾に当たりより長い待ち時間を生じさせることにはなろうが、低パワー状態プロセッサはそれでもなお割り込みに利用できる。或る実施形態では、割り込みコントローラ50は、オフラインプロセッサには割り込みを提示しない。ソフトウェアに、所与のプロセッサへ割り込みが経路指定されることを、それがオフラインであることをもって阻止させる理由は様々ある。例えば、プロセッサは、重要コードシーケンスを実行しているかもしれず、簡潔性の観点から又は安全性の観点から、割り込みを阻止するのが望ましいこともある。コードシーケンスは、例えばブートコードシーケンスであるかもしれない。重要と考えられる他のコードシーケンスは、秘密が格納されている場所の様な細心の注意を払うべきメモリ場所にアクセスするコードシーケンスである。他の例は、パワー関連であろう。即ち、プロセッサがオフラインであれば、システム全体にとってはパワー効率がより高いということもあろう。システムの熱エンベロープにプロセッサをオンラインにしておく十分な余裕がないかもしれない。即ち、プロセッサがオンラインになったなら温度が上がり過ぎないとも限らない。以上に論じられている様に、割り込みコントローラ50は、割り込みをプロセッサへ提示するように構成されている。図示の実施形態では、割り込みを提示するのにIRQ信号がアサートされてもよい。他の実施形態は、割り込みメッセージをプロセッサへ通信し、プロセッサがメッセージを捕えて受信確認することになる。プロセッサは、何れの所望の様式で提示に応答していてもよい。例えば、以上に論じられている割り込み受信確認IAckが送信されてもよい。プロセッサが、割り込みコントローラによって提示された割り込みを受諾しようとしているという何らかの肯定的な確認が応答を構成していてもよい。更に他の実施形態は、提示されている割り込みを明示的に受諾又は拒絶するようになっていてもよい。周辺デバイス64A-64Bには、何れの所望の入力/出力デバイスも又はシステム5に含まれている他のハードウェアデバイスも含めることができる。例えば、周辺デバイス64A-64Bは、イーサネットRMACの様な1つ又はそれ以上のネットワークキングメディアアクセスコントローラMAC又はワイヤレスファイデリティWiFiコントローラの様なネットワーク化周辺デバイスを含んでいてもよい。周辺デバイス64A-64Bには、様々な音声処理デバイスを含む音声ユニットが含まれていてもよい。周辺デバイス64A-64Bには、1つ又はそれ以上のデジタル信号プロセッサが含まれていてもよい。周辺デバイス64A-64Bは、タイマー、オンチップ秘密メモリ、暗号化エンジンなど、又はそれらの何らかの組合せの何れの他の所望の機能を含んでいてもよい。周辺デバイス64A-64Bは、グラフィック処理ハードウェア、映像処理ハードウェア、映像エンコーダ/デコーダ、及び/又はディスプレイハードウェアを含んでいてもよい。それぞれの周辺デバイス64A-64Bは、1つ又はそれ以上の割り込みを割り込みコントローラ50へ通信することができる。図示の実施形態では、それぞれの周辺デバイス64A-64Bは、割り込みを割り込みコントローラ50へ合図する割り込み信号を含んでいてもよい。幾つかのデバイスは、複数の割り込み信号を含むものもあろう。更にまた、他のデバイスには、割り込み及び仮にあるなら関連の状態を運ぶのに割り込みメッセージを使用するものもあろう。プロセッサ60A-60Bは、何れかの命令設定アーキテクチャを実装していて、当該命令設定アーキテクチャに定義されている命令を実行するように構成されていてもよい。プロセッサ60A-60Bは、スケーラ、スーパースケーラ、パイプライン式、スーパーパイプライン式、順不同、順繰り、推論的、非推論的など、又はそれらの組合せを含む何れかのマイクロアーキテクチャを採用していてもよい。プロセッサ60A-60Bは、回路構成を含んでいてもよく、随意的にはマイクロコーディング技法を実装していてもよい。プロセッサ60A-60Bは対称である必要はない。即ち、プロセッサ60A-60Bは、異なった命令セットを実装していてもよい。例えば、プロセッサ60A-60Bには、汎用中央処理ユニットCPU、特殊用途プロセッサ、埋め込みプロセッサ、デジタル信号プロセッサなどを含めることができる。PStateを割り込みコントローラ50へ提供すること及びIRQを割り込みコントローラ50から受信することに加え、プロセッサ60A-60Bは、割り込みコントローラ50と通信するためにインターフェース62を実装していてもよい。相互接続62は、プロセッサ60A-60Bと割り込みコントローラ50の間でレジスタアクセスオペレーション例えば読み出し及び書き込みを運んでいてもよい。これらのオペレーションは、アドレスを含んでおり、アドレスが割り込みコントローラ50によってデコードされ、読み出し/書き込みされるレジスタが識別されることになる。アドレスは、プロセッサ60A-60Bのメモリアドレス空間の部分であってもよい即ち、レジスタはメモリマップされていてもよい。代わりに、アドレスは、構成空間、I/O空間、又は何れかの他のアドレス空間の部分であってもよい。レジスタアクセスオペレーションの1つは、IAckレジスタに対する書き込みオペレーションであってもよい。IAckレジスタ読み出しは、以上に論じられている割り込み受信確認であってもよいし、するとIAckレジスタ読み出しに応答して返されるデータは、プロセッサへ配信されようとしている割り込みに対応する割り込みベクトルであってもよい。他のレジスタアクセスオペレーションには、オフラインレジスタ54及び単数又は複数のタイムアウトレジスタ58の読み出し又は書き込みがあろう。マスクレジスタ56は、2つのレジスタ書き込みオペレーションを使用して更新されてもよい。マスク設定レジスタへの書き込みは、マスクレジスタ内に1つ又はそれ以上のマスクビットを設定することであろう例えば、識別されたマスクビットをマスク状態に入れる。マスククリアレジスタへの書き込みは、1つ又はそれ以上のマスクビットをクリアにする例えば、識別されたマスクビットをマスク解除状態に入れる。マスク設定レジスタとマスククリアレジスタは異なったアドレスを有しており、アドレスが割り込みコントローラ50によってデコードされて、マスクレジスタ内のビットが設定又はクリアされることになる。即ち、マスク設定レジスタとマスククリアレジスタは、物理的には存在しないが、その代わりに、マスクレジスタ上に起こるオペレーションを特定するものである。同様に、IAckレジスタは、物理的に存在しないが、レジスタを読み出しているプロセッサへの割り込みベクトルの配信を生じさせるものである。他のレジスタアクセスオペレーションとしては、割り込みコントローラ50内の他のレジスタ図1には示されていないの読み出し/書き込みがあろう。インターフェース62は、何れの構成を有していてもよい。例えば、インターフェース62は、メモリオペレーションや他の種類のオペレーションをプロセッサ60A-60Bから送信するのにも使用されている汎用インターフェース例えば、バス、ポイントツーポイント相互接続などであってもよい。インターフェース62は、プロセッサ60A-60Bと割り込みコントローラ50の間の1つ又はそれ以上の他のユニットを通過していてもよい。例えば、図10に示されている実施形態では、インターフェースはブリッジ/DMAユニットを通過している。上述の様に、プロセッサ60A-60Bは様々なパワー状態にある。満タン状態では、プロセッサは、いつでも命令を実行できる態勢にあり、割り込みを受諾することができるであろう。満タン状態には、オペレーションが例えば、仕事量、利用できるパワー、など、に依存してサポートされ得る複数の電圧/周波数ペアが含められる。1つ又はそれ以上の低パワー状態もある。低パワー状態では、プロセッサ60A-60Bは、アイドル中命令を実行していないであり、満タン状態へ移行するのに或る期間が必要であろう。移行の期間は特定の低パワー状態に依存する。例えば、プロセッサはクロックゲート制御されているかもしれず、するとプロセッサではクロックはトグルしていない。クロックを再起動させプロセッサに実行の準備をさせるには数サイクルが必要になろう。別の低パワー状態では、プロセッサ内の論理回路構成へのパワーはゲート制御されているが、プロセッサ内のキャッシュの様なメモリアレイはなおパワー供給されているということもある。その様なパワーゲート制御状態から満タン状態への復帰には、論理回路構成のパワー供給を上げ、パワーが安定するのを待つことが含まれる。更に別の低パワー状態では、プロセッサ論理回路構成及びメモリアレイへのパワーがゲート制御されているということもある。その様なパワーゲート制御状態からの復帰には、回路構成のパワー供給を上げることが含まれると同時にメモリアレイを初期化することが含まれる。他の低パワー状態もあり得る。様々な低パワー状態は、プロセッサのスリープ状態と呼ばれることもある。システム5の様々な相互接続は、図1には、割り込みの処理に関連して示されていることを指摘しておく。しかしながら、所望に応じ、様々な他の相互接続が提供されよう。加えて、システム5では様々な他の構成要素例えば、メモリコントローラ、メモリコントローラへ連結されているメモリなどが提供されていてもよい。図1に示されている構成要素の1つ又はそれ以上及び/又は他の構成要素は、システムオンチップとして単一の集積回路へ一体化されていてもよいことを更に指摘しておく。図1に示されている各種構成要素は幾つの数であってもよい例えば、任意数のプロセッサ60A-60B、任意数の周辺デバイス64A-64Bなど。次に図2を参照すると、割り込みコントローラ50の1つの実施形態の、割り込みをプロセッサへ経路指定するオペレーションを例示するフローチャートが示されている。理解し易くするために、ブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、割り込みコントローラ50の組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び/又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。割り込みコントローラ50は、図2に示されているオペレーションを実施するように構成されていてもよい。様々なプロセッサ60A-60Bに対応するPStateを使用して、割り込みコントローラ50は、プロセッサ60A-60Bのうちのどれが割り込みの提示先として適格かを識別するブロック70ように構成されていてもよい。所与のプロセッサのPStateが恐らくは他のプロセッサのPStateに比較して、当該プロセッサへ割り込みが提示されることを受諾できると指し示していれば、当該プロセッサは割り込みの提示先として適格ということになろう。幾つかのプロセッサは不適格であるかもしれない。例えば、既に割り込みが提示されていて、タイムアウトしてしまっているプロセッサは、割り込みにとって不適格ということになろう。割り込みを受諾することの他に割り込みを拒絶する通信を実施している実施形態では、割り込みを拒絶したプロセッサは不適格ということになろう。オフラインであるプロセッサは不適格となろう。加えて、所与の割り込みは、プロセッサ60A-60Bのサブセットを標的とするように例えば、割り込みメッセージの部分として、又は割り込みと関連付けられているプログラム可能な状態により指定されていてもよい。標的とされていないプロセッサは不適格ということになろう。割り込みコントローラ50は、適格プロセッサのうちの1つを選択しブロック72、選択されたプロセッサへ割り込みを提示する例えば、選択されたプロセッサへIRQをアサートするブロック74ように構成されていてもよい。割り込みコントローラ50は、選択されたプロセッサについてタイムアウトカウンタを、恐らくは幾つかの実施形態では選択されたプロセッサのPStateに基づいて、初期化するブロック76ように構成されていてもよい。割り込みコントローラ50は、割り込みが受諾されたかどうかを判定する判定ブロック78ように構成されていてもよい。例えば、割り込みコントローラ50は、プロセッサからの割り込み受信確認を検知するようになっていてもよい。割り込みが受諾された場合判定ブロック78、イエスの分岐、割り込みの経路指定は完了することになる。割り込みがまだ受諾されておらず判定ブロック78、ノーの分岐、現在の割り込み提示先のプロセッサについてのタイムアウトが満了していない判定ブロック80、ノーの分岐場合、割り込みコントローラ50は、タイムアウト及び割り込み受諾についてチェックを継続することになる。割り込みがなお受諾されず判定ブロック78、ノーの分岐、割り込み提示先のプロセッサについてのタイムアウトが感知された判定ブロック80、イエスの分岐場合、割り込みコントローラ50は、プロセッサは割り込みにとって不適格であると考えブロック82、別の適格プロセッサを選択してブロック72、割り込みを提示するブロック74ことになる。次に図3を参照すると、割り込みコントローラ50の1つの実施形態の、割り込み受信確認IAckに応えたオペレーションを例示するフローチャートが示されている。理解し易くするために、ブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、割り込みコントローラ50の組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び/又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。割り込みコントローラ50は、図3に示されているオペレーションを実施するように構成されていてもよい。割り込みコントローラ50は、プロセッサへ経路指定された割り込みを識別する割り込みベクトルを返してもよいブロック84。2つ以上の割り込みが同時にプロセッサへ提示された場合、割り込みコントローラ50は提示された割り込みのうちの1つを選択することになる。例えば、数の最も低い割り込みベクトルが選択されてもよいし、又は数の最も高い割り込みが受諾されてもよい。別の実施形態では、最も古い割り込みが選択されてもよい。割り込み間に優先順位を実施している実施形態では、優先順位の最も高い割り込みが選択されることになろう。割り込みは、ランダムに選択されてもよい。割り込みコントローラ50は、更に、割り込みベクトルによって識別された割り込みを不可分式にマスクしてもよいブロック86。次に図4を参照すると、割り込みコントローラ50による適格プロセッサの識別図2より、ブロック70の1つの実施形態を例示するフローチャートが示されている。理解し易くするために、ブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、割り込みコントローラ50の組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び/又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。割り込みコントローラ50は、システム内のそれぞれのプロセッサについて図4に示されているオペレーションを実施するように構成されていてもよい。プロセッサがオフラインであるオフラインレジスタに指し示されている判定ブロック90、イエスの分岐又は割り込みが既にプロセッサへ経路指定されている判定ブロック92、イエスの分岐場合、割り込みコントローラは、プロセッサを不適格と識別するブロック94ように構成されていてもよい。そうでない場合で、プロセッサがスリープ状態又は他の低パワー状態にある判定ブロック96、イエスの分岐場合、割り込みコントローラ50は、プロセッサを適格と識別し、プロセッサを適格性グループ3に含めるブロック98ように構成されていてもよい。プロセッサがオフラインでなく判定ブロック90、ノーの分岐、既に経路指定されてはいず判定ブロック92、ノーの分岐、スリープ状態でなく判定ブロック96、ノーの分岐、プロセッサが無応答であるか又はプロセッサで割り込みが無効になっているかのどちらかである判定ブロック100、イエスの分岐場合、割り込みコントローラ50は、プロセッサを適格と識別し、プロセッサを適格性グループ2に含めるブロック102ように構成されていてもよい。先述の様に、幾つかの実施形態では、プロセッサ60A-60Bのサブセットが、所与の割り込みの狙い先として識別されることもある。その様な実施形態では、標的とされるサブセットに含まれているプロセッサのみが適格プロセッサということになろう。標的とされるサブセットにないプロセッサは、それらが割り込みの提示先として選択されることのない点でオフラインプロセッサと同様式に扱われる。割り込みについて優先順位を実施している実施形態では、適格プロセッサの識別には更に優先順位も織り込まれる。例えば、プロセッサが、現在、優先順位のより高い割り込みを処理している場合は、プロセッサは割り込みにとって適格でない又は一部の他のプロセッサよりも適格性に劣ると見なされることになろう。優先順位のより低い割り込みを処理しているプロセッサは、優先順位のより高い割り込みを処理するように割り込みをかけられてもよく、ひいては優先順位のより高い割り込みにとって適格であると考えられることになろう。適格プロセッサのグループ分けは、割り込み提示についての順番又は好ましさであってもよく、適格プロセッサの中で、グループ1は最も好ましい、グループ2は次いで最も好ましい、そしてグループ3はあまり好ましくない、としてもよい。グループ1のプロセッサは、低パワー状態にはなく、割り込みに応答していて、割り込みが無効になっておらず、その結果、それらは提示された割り込みを低待ち時間で受諾できる可能性が最も高いということになる。グループ2のプロセッサは、同様に低パワー状態にはないが、無応答であるか又は現在割り込みが無効になっている。従って、平均して、グループ1よりも高い待ち時間が予想されることになる。グループ3のプロセッサは、低パワー状態にあり、従って、このグループについては平均して最も高い待ち時間が予想されることになる。以上の論考に基づき、図5のフローチャートは、割り込みコントローラ50での適格プロセッサの選択図2のブロック72の1つの実施形態を例示するものである。理解し易くするために、ブロックは特定の順序で示されているが、他の順序が使用されてもよい。複数ブロックが、割り込みコントローラ50の組合せ論理で並列に遂行されていてもよい。諸ブロック、ブロックの組合せ、及び/又はフローチャート全体は、複数のクロックサイクルに亘ってパイプライン化されていてもよい。割り込みコントローラ50は、図5に示されているオペレーションを実施するように構成されていてもよい。グループ1が空でない場合判定ブロック106、ノー分岐、割り込みコントローラ50は、グループ1からプロセッサを選択するブロック108ように構成されていてもよい。グループ1が空であり判定ブロック106、イエスの分岐、グループ2が空でない判定ブロック110、ノーの分岐場合、割り込みコントローラ50は、グループ2からプロセッサを選択するブロック112ように構成されていてもよい。グループ1が空判定ブロック106、イエスの分岐で、グループ2が空判定ブロック110、イエスの分岐で、グループ3が空でない判定ブロック114、ノーの分岐場合、割り込みコントローラ50は、グループ3からプロセッサを選択するブロック116ように構成されていてもよい。所与のグループ内で、何れかの適格プロセッサが選択されることになろう。例えば、数の最も低いプロセッサが選択されてもよいし、数の最も高いプロセッサが選択されてもよい。プロセッサはランダムに選択されてもよいし、直近に選択されていないプロセッサが選択されてもよい。次に図6を参照すると、割り込みコントローラ50の1つの実施形態のブロック線図が示されている。図6の実施形態では、割り込みコントローラ50は、レジスタインターフェースユニット120と、マスク/ソフトウェアSWORユニット122と、割り込みルータ124と、プロセッサスケジューラ126A-126Bの様な複数のプロセッサスケジューラとを含んでいる。レジスタインターフェースユニット120は、ICレジスタインターフェース62、並びにマスク/SWORユニット122、割り込みルータ124、及び随意的にプロセッサスケジューラ126A-126Bへ連結されていてもよい。概して、レジスタインターフェースユニット120は、インターフェース62上のレジスタ読み出し/書き込みオペレーションを介して制御又は更新される、割り込みコントローラ50内の何れかの他の構成要素へ連結されていてもよい。マスク/SWORユニット122は、マスクレジスタ56を含んでいて、システム内の様々な割り込みソースからの割り込みを受信するように連結されていて、割り込みルータ124へ連結されていてもよい。割り込みルータ124は、プロセッサのオフライン状態及び他のPStateを受信するように連結されていて、タイムアウトレジスタ58を含んでいて、プロセッサスケジューラ126A-126Bへ連結されていてもよい。それぞれのプロセッサスケジューラ126A-126Bは、IRQ信号を対応するプロセッサ60A-60Bへ提供するように連結されていてもよい。マスク/SWORユニット122は、割り込みソース例えば周辺デバイス64A-64Bから受信された割り込みにマスクを適用し、マスクされた割り込みが割り込みルータ124へ提供されるように構成されていてもよい。或る実施形態では、マスク/SWORユニット122は、更に、プロセッサ上で実行しているソフトウェアにあたかも対応するソースが割り込みをアサートしたかの様に割り込みを引き起こさせるメカニズムを提供していてもよい。ソフトウェアは、インターフェース62上で、所望の割り込みをもたらすレジスタアクセスオペレーションを送信してもよい。マスク/SWORユニット122は、ソフトウェア割り込みを各ソースから受信された実際の割り込みと論理的OR処理してそれぞれの割り込みを発生させ、論理的OR処理された割り込みをマスクレジスタ56に従ってマスクして、マスクされた割り込みを発生させる。他の実施形態は、ソフトウェアORを実施しておらず、単純に、割り込みソースから受信された割り込みをマスクしてマスクされた割り込みを割り込みルータ124へ提供していてもよい。割り込みルータ124は、マスクされた割り込みを受信し、そして割り込みをプロセッサへ、オフライン状態、PState、タイムアウトなどに基づいて経路指定するように構成されていてもよい。即ち、割り込みルータ124は、1つの実施形態では、図2のフローチャートを実施していてもよい。割り込みルータは、割り込みの経路指定先のプロセッサに対応するプロセッサスケジューラ126A-126Bに合図することになろう。それぞれのプロセッサスケジューラ126A-126Bは、割り込みルータ124からの割り込みの受信に応答して、対応するプロセッサ60A-60BへのIRQ信号をアサートするように構成されていてもよい。IRQ信号は、一般的な割り込み要求信号とすることができる。様々なプロセッサ実装は、更に、特殊目的の割り込み又は他の割り込みも同様にサポートしていてもよい。例えば、幾つかの実施形態は、IRQに加えて低待ち時間割り込みをサポートしていてもよい。実施形態は、図6に示されている外部デバイス割り込みに加えて様々なタイマー割り込みをサポートしていてもよい。プロセッサスケジューラ126A-126Bは、外部デバイス割り込みに加えてIRQ信号へのタイマー割り込みをスケジュールするように構成されていてもよいし、及び/又は、他の割り込みへのタイマー割り込みをスケジュールしたり、他の種類の割り込みをスケジュールしたりしていてもよい。レジスタインターフェースユニット120は、インターフェース62からのレジスタアクセスオペレーションをデコードし、割り込みコントローラ50の他の構成要素と対話してレジスタアクセスオペレーションを完遂させるように構成されていてもよい。レジスタ読み出しオペレーションの場合、レジスタインターフェースユニット120は、レジスタ読み出しオペレーションからの読み出しデータを開始プロセッサへ戻すように構成されていてもよい。レジスタインターフェースユニット120は、レジスタアクセスオペレーションのアドレスをデコードしてどのレジスタがアクセスされようとしているかを判定するように構成されていてもよい。加えて、ソースプロセッサは、更に、どのレジスタがアクセスされようとしているのかを例えば、IAckコマンドにはIAckレジスタという様にプロセッサ毎のレジスタ識別していてもよい。次に図7を参照すると、1つの割り込みに対応する、マスク/SWORユニット122部分の1つの実施形態のブロック線図が示されている。他の割り込みそれぞれについて同様の回路構成が提供されることになろう。図7に示されている回路構成は、ユニット122のオペレーションを例示する1つの実施形態であり、図7に示されている回路構成の何らかのブール等価物を含め他の実装が使用されていてもよい。図7の実施形態は、マスクフロップ130と、ORゲート132と、ソフトウェア割り込みフロップ134と、ORゲート136と、ANDゲート138とを含んでいる。マスクフロップ130は、割り込みについてマスクビットを格納していてもよいそして、ひいては他の割り込みについての同様のフロップ共々、マスクレジスタ56の部分となっていてもよい。マスクビットは、この実施形態では、割り込みをマスクする場合に設定され、割り込みをマスク解除する場合にクリアにされることになろう。従って、マスクフロップ130の反転出力がANDゲート138に提供されて、ORゲート136によって出力されたハードウェア生成か又はソフトウェア生成の何れかの割り込みをマスクさせる。即ち、マスクビットが設定されれば、マスクフロップ130の反転出力がクリアされ、ANDゲート138の出力がクリアされる。マスクビットがクリアされれば、マスクフロップ130の反転出力が設定され、割り込みはマスクされた割り込みとしてANDゲート138を通過する。こうして、この実施形態では、割り込みはアクティブハイである。他の実施形態は、アクティブロー割り込みを使用していてもよく、NANDゲートが使用されていてもよい。ORゲートは、外部割り込みをソフトウェア割り込みフロップ134の出力と論理OR処理する。従って、外部ハードウェア割り込みがアサートされるか又はソフトウェアが割り込みをアサートしたか何れかの場合、ORゲート136による割り込み出力がアサートされる。マスクビットがフロップ130で、この割り込みを受信確認しているプロセッサへ配信させることになるIAckサイクルに応えて設定されるか、又はソフトウェアがマスク設定レジスタORゲート132への書き込みによりマスクを設定するか、何れかであろう。割り込みコントローラによるIAackサイクルへの応答で自動的にマスクビットが設定される場合は、マスクビットの不可分式設定を実施していてもよい。次のIAckサイクルは、従って、異なった割り込みを受信しこの割り込みは今やマスクされているため、こうして複数のプロセッサによる割り込み読み出しでの競合状態は適切に対処されることになる。ソフトウェアにもマスクビットを設定することを許容している場合は、ソフトウェアが効率的に割り込みを無効にできるようにしていてもよい。ソフトウェアは、更に、例えば割り込みが果たされた後、マスクビットをクリアすることができる。図示の実施形態では、ソフトウェアは、マスク設定レジスタへの書き込みオペレーションを実行することによってマスクレジスタ56内にマスクビットを設定してもよい。書き込みデータの設定ビットは、どのマスクビットを設定するかを識別するものであってもよい。レジスタインターフェースユニット120は、マスク設定レジスタ書き込みをデコードし、書き込みデータに基づいてSWマスク設定信号をアサートすることになる。同様に、ソフトウェアは、マスククリアレジスタへの書き込みオペレーションを実行することもでき、書き込みデータの設定ビットは、どのマスクビットをクリアするかを識別するものであってもよい。レジスタインターフェースユニット120は、マスククリアレジスタ書き込みをデコードし、書き込みデータに基づいてSWマスククリア信号をアサートすることになる。同様の様式で、ソフトウェアは、1つ又はそれ以上の割り込みを、割り込み設定レジスタ書き込みオペレーションでトリガしてもよい。書き込みデータは、どの割り込みビットを設定するかを識別するものであり、レジスタインターフェースユニット120は、対応するSW割り込み設定信号をアサートしてフロップ134を設定させるようになっていてもよい。ソフトウェアが生成した割り込みをクリアする場合、ソフトウェアは割り込みクリアレジスタ書き込みオペレーションを発動してもよい。書き込みデータは、どの割り込みビットをクリアするかを例えば、設定ビットが書き込みデータ内の対応するビット位置にあることで識別するものであり、レジスタインターフェースユニット120は、対応するSW割り込みクリア信号をアサートすることになる。フロップ130と134はどちらも設定入力とクリア入力を有しているものとして示されている。フロップは、何れの所望の様式例えば、設定-リセットSRフロップ、設定入力又はクリア入力に基づいてフロップを設定又はクリアする論理を有するDフロップ、などに実装されていてもよい。図8は、割り込みの1つについての割り込みルータ124の1つの実施形態のブロック線図である。他の割り込みそれぞれについて同様の回路構成が提供されることになろう。図8の実施形態では、割り込みルータ124は、経路選択回路140と、タイムアウトコントロールユニット142タイムアウトレジスタ58を含んでいると、経路指定先のフロップ144A-144Bのセットと、を含んでいてもよい。プロセッサ60A-60Bそれぞれに経路指定先フロップ144A-144Bが1つあってもよい。経路選択回路140は、オフライン状態及びPStateの他にマスク/SWORユニット122からのマスクされた割り込みを受信していてもよい。経路選択回路構成140は、図2に示されているオペレーションを実施して、適格プロセッサを識別しブロック70、適格プロセッサを選択するブロック72ことができる。幾つかの実施形態では、経路選択回路140は、図4及び図5に示されている実施形態を実装していてもよい。経路選択回路140は、SetRoute信号割り込みを果たすように構成されているプロセッサそれぞれに1つの信号を出力することになる。選択されたプロセッサについてSetRoute信号がアサートされ、他のSetRoute信号はデアサートされる。それぞれのSetRoute信号は、各フロップ144A-144Bの設定入力へ連結されていて、プロセッサスケジューラ126A-126Bそれぞれへの出力信号となる。この実施形態では、割り込みは、マスクされた割り込みがデアサートされるまで割り込みデアサートはそれぞれのフロップ144A-144Bのクリア入力へ連結される、所与のプロセッサへ経路指定されたままにされる。即ち、割り込みは、それがプロセッサに受諾されるまで経路指定されたままにされる。従って、割り込みがタイムアウトし、割り込みが別のプロセッサへ経路指定されたとしても、割り込みはタイムアウトしたプロセッサへ経路指定されたままになっている。この方式では、プロセッサがタイムアウトしたがその後割り込みに応答できる態勢になった場合、当該プロセッサへのIRQはその時点でなおアサートされているであろう。他の実施形態は、タイムアウトの時点又は割り込みが別のプロセッサへ提示された時点で経路指定された状態をクリアしてもよい。タイムアウトコントロールユニット142は、レジスタ58へプログラムされているタイムアウト値に基づき、タイムアウトを測定する回路構成を含んでいてもよい。即ち、タイムアウトコントロールユニットは、プロセッサタイムアウトについて、IRQアサーションと受諾又はタイムアウトの間の時間をカウントするカウンタ、及び割り込みの所与のプロセッサへの経路指定と割り込みのサービス提供又は割り込みのタイムアウトの間の時間をカウントするカウンタを含んでいてもよい。タイムアウトが検知された場合、タイムアウトコントロールユニット142は、経路選択回路140へタイムアウトをアサートするように構成されていてもよく、すると経路選択回路140は割り込みを評価し直し、割り込みの経路指定先のプロセッサを選択することであろう。タイムアウトコントロールユニット142は、図2のブロック76及び80に示されているオペレーションを実施していてもよいすると、経路選択110は、タイムアウトに応えてブロック82を実施することになる。タイムアウトコントロールユニット142は、割り込み当たり2つのカウンタを実装していてもよく、また比較的多数の割り込みがあるかもしれないということを指摘しておく。或る実施形態では、タイムアウトカウンタにかかるハードウェアの費用を抑えるため、カウンタは様々なタイムアウトで共有されていてもよい。共有を成し遂げている或る実施形態が図9に示されている。図9の実施形態では、カウンタへのクロック入力の各クロックサイクルを増分するフリーランニングカウンタ150が示されている。カウンタ150は、様々な実施形態では、カウンタをクロックするクロックの周波数及びタイムアウトの所望範囲に基づき何れの数のビットを実装していてもよい。カウンタ150のビットは、マルチプレクサ152及び154へ連結されていてもよい。マルチプレクサ152は、タイムアウトレジスタ58からのプロセッサタイムアウトに基づいて制御されており、マルチプレクサ154は、タイムアウトレジスタ58からの割り込みタイムアウトに基づいて制御されている。より厳密には、マルチプレクサ152及び154によって選択されるビットは、要求タイムアウト期間内で2回、状態を論理1へ変化させると期待されるビットということになる。選択されたビットは、立ち上がりエッジ検知回路構成156及び158それぞれへ給送され、するとそれら回路構成はティック信号を生成する。ティック信号は、選択されたビットが論理0から論理1へ変化する都度にアサートされる。回路構成156からのティック信号は、プロセッサタイムアウトコントロールユニット142Aへ連結されていてもよい。プロセッサタイムアウトコントロールユニット142Aは、対応するプロセッサからのIAckに応えて、又はIRQがデアサートされたことORゲート162及びマルチプレクサ164に応えて、タイムアウトカウンタ160をゼロに初期化するように構成されていてもよい。そうでなければ、マルチプレクサ166の出力が選択される。マルチプレクサ166は、ティック信号がアサートされ、プロセッサへのIRQがアサートされ、そしてタイムアウトがまだ検知されていないANDゲート168場合を除いては、カウンタ160からの現在値を選択するように構成されていてもよく、上述の場合には増分された値が選択される。こうして、ティック信号がアサートされる都度、タイムアウトカウンタ160は、IRQがアサートされたら、タイムアウトに至るまで増分されることになる。コンパレータ170がカウンタ160の出力へ連結されており、コンパレータ170はカウンタを3に比較するように構成されていてもよい。カウンタが3であれば、タイムアウトが検知されることになる。カウンタ150からのカウンタビットは、選択されたタイムアウト期間内で2回、高をトグルするように選択されているので、ティック信号のティックが3つを数えたら、タイムアウトが超過したことが裏付けられる。この場合タイムアウトは完璧に正確というわけにはゆかなくとも、タイムアウトそれぞれにつき2ビットカウンタ160しか実装しておらずフリーランニングカウンタ150を共有しているわりには正確性は割り込みコントローラ50の目的に適うに十分であろう。プロセッサタイムアウトコントロールユニット142Aはタイムアウトを合図し、プロセッサが無応答であることを指し示すことになる。割り込みタイムアウトコントロールユニット142Bは、プロセッサタイムアウトコントロールユニット142Aと同様であり、回路構成158からのティック信号を使用するものであってもよい。割り込みタイムアウトコントロールユニット142Bの場合、タイムアウトは、割り込みのプロセッサへの経路指定から割り込みのサービス提供まで例えば、マスクされた割り込みのデアサーションまでを測定されることになる。カウンタ172は、割り込みのデアサーション又は割り込みの何れかのプロセッサへの経路指定ORゲート174に応えて、マルチプレクサ176を通してゼロに初期化されることになる。その後、カウンタは、ティックに応えてマルチプレクサ178を通して増分され、その間もマスクされた割り込みはなおアサートされているANDゲート180。カウンタ172が3に達したことをコンパレータ182が検知したとき、タイムアウトがアサートされることになる。図9にはコントロールユニット142A-142Bどちらもこの実施形態では図8に示されているタイムアウトコントロールユニット142の一部であるについて特定の論理回路構成が示されているが、他の実施形態は任意の論理回路構成を使用してもよいことを指摘しておく。具体的には、例示されている回路構成の何らかのブール等価物が使用されていてもよい。加えて、他の実施形態では、所望に応じ、様々な他のタイムアウトを検知するのにより多くのタイマーが使用されていてもよい。次に図10を参照すると、システム5の別の実施形態のブロック線図が示されている。図10の実施形態では、システム5は、外部メモリ12A12Bへ連結されている集積回路IC10を含んでいる。図示の実施形態では、集積回路10は、1つ又はそれ以上のプロセッサ16とレベル2L2キャッシュ18とを含む中央プロセッサユニットCPUブロック14を含んでいる。他の実施形態は、L2キャッシュ18を含んでいないものもあれば、追加のキャッシュレベルを含んでいるものもあろう。加えて、2つより多くのプロセッサを含んでいる実施形態、及びプロセッサ16を1つしか含んでいない実施形態も考えられる。集積回路10は、更に、1つ又はそれ以上の非リアルタイムNRT周辺デバイス20のセット、及び1つ又はそれ以上のリアルタイムRT周辺デバイス22のセットを含んでいる。図示の実施形態では、RT周辺デバイスは、画像プロセッサ24と、1つ又はそれ以上のディスプレイパイプ26と、翻訳ユニット46と、ポートアービタ28とを含んでいる。他の実施形態では、より多い又は少ない画像プロセッサ24、より多い又は少ないディスプレイパイプ26、及び/又は所望に応じ幾つもの追加のリアルタイム周辺デバイスを含んでいてもよい。画像プロセッサ24は、システム5内の1つ又はそれ以上のカメラから画像データを受信するように連結されていてもよい。同様に、ディスプレイパイプ26は、システム内の1つ又はそれ以上のディスプレイを制御する1つ又はそれ以上のディスプレイコントローラ図示せずへ連結されていてもよい。画像プロセッサ24は翻訳ユニット46へ連結されていて、翻訳ユニット46は更にポートアービタ28へ連結されていてもよい。ポートアービタ28は、その上、ディスプレイパイプ26へ連結されていてもよい。図示の実施形態では、CPUブロック14は、1つ又はそれ以上の周辺デバイス32及び/又は1つ又はそれ以上の周辺デバイスインターフェースコントローラ34へ連結されていてもよいとされるブリッジ/ダイレクトメモリアクセスDMAコントローラ30へ連結されている。ブリッジ/DMAコントローラ30は、I/OプロセッサIOP184を含んでいてもよい。周辺デバイス32及び周辺デバイスインターフェースコントローラ34の数は、様々な実施形態では、ゼロから任意の所望数まで異なっていてもよい。図1に示されているシステム5は、更に、G038A及びG138Bの様な1つ又はそれ以上のグラフィックコントローラを含むグラフィックユニット36を含んでいる。グラフィックユニット当たりのグラフィックコントローラの数及びグラフィックユニットの数は、他の実施形態では、異なっていてもよい。図1に示されている様に、システム5は、1つ又はそれ以上のメモリ物理的インターフェース回路PHY42A-42Bへ連結されているメモリコントローラ40を含んでいる。メモリPHY42A-42Bは、集積回路10のピン上でメモリ12A-12Bへ通信するように構成されている。メモリコントローラ40は、更に、ポート44A44Eのセットを含んでいる。ポート44A-44Bは、グラフィックコントローラ38A-38Eへそれぞれ連結されている。CPUブロック14は、ポート44Cへ連結されている。NRT周辺デバイス20及びRT周辺デバイス22は、ポート44D44Eへそれぞれ連結されている。メモリコントローラ40に含まれるポートの数は、メモリコントローラの数と同様に、他の実施形態では異なっていてもよい。メモリPHY42A-42B及び対応するメモリ12A-12Bの数は、他の実施形態では、1つであってもよいし、又は2つより多くてもよい。割り込みコントローラ50及びパワーマネジャ52もまた図10に示されているまた、図1に各々示されているオフラインレジスタ54とマスクレジスタ56とタイムアウトレジスタ58を含んでいてもよい。図示の実施形態では、割り込みコントローラ50は、周辺デバイスインターフェースコントローラ34、周辺デバイス32、グラフィックユニット38A-38B、RT周辺デバイス22、及びNRT周辺デバイス20から、割り込みを受信することであろう。従って、この実施形態では、周辺デバイスインターフェースコントローラ34、周辺デバイス32、グラフィックユニット38A-38B、RT周辺デバイス22、及びNRT周辺デバイス20は、図1の周辺デバイス64A-64Bの実例である。他の実施形態では、上記のもののサブセットからの割り込みが割り込みコントローラ50によって受信されていてもよい。図示の実施形態では、プロセッサ16の何れかが割り込みを果たすこともあろうし、またIOP184が割り込みを果たすこともあろう。従って、この実施形態では、プロセッサ16及びIOP184は、図1のプロセッサ60A-60Bの実例ということになる。加えて、この実施形態では、ICレジスタインターフェース62は、プロセッサ16からCPUブロック14を通ってブリッジ/DMAコントローラ30へ至り、次いで割り込みコントローラ50へ至っている。より厳密には、ブリッジ/DMAコントローラ30は、プログラムI/OPIOオペレーションのマスターであるPIOコントローラを含んでいてもよい。レジスタアクセスオペレーションは、この実施形態では、PIOオペレーションである。1つの実施形態では、それぞれのポート44A-44Eには特定のトラフィック型式が関連付けられていてもよい。例えば、1つの実施形態では、トラフィック型式は、RTトラフィック、NRTトラフィック、及びグラフィックトラフィックを含んでいてもよい。他の実施形態は、以上のトラフィック型式に加えて、代えて、又はそれらのサブセットに加えて、他のトラフィック型式を含んでいてもよい。それぞれのトラフィック型式は、例えば、要件及び挙動の観点で特性を異にし、メモリコントローラは、特性に基づいてより高い性能が提供されるように、それらトラフィック形式に異なった対処の仕方をしていてもよい。例えば、RTトラフィックは、それぞれのメモリオペレーションが特定の時間量内で果たされることを要件とする。オペレーションの待ち時間が特定の時間量を超過すれば、RT周辺デバイスにオペレーションエラーが起こる可能性がある。例えば、画像プロセッサ24内で画像データが失われるかもしれないし、又はディスプレイパイプ26の連結先のディスプレイ上に映し出される画像が視覚的に歪みを来すかもしれない。RTトラフィックは、例えば等時性を特徴としている。他方、グラフィックトラフィックは、比較的高い帯域であるが、待ち時間に敏感というわけではない。プロセッサ16からの様なNRTトラフィックは、性能上の理由から、待ち時間にやや敏感ではあるが、高待ち時間でも生き残る。即ち、NRTトラフィックは、概して、何れの待ち時間でも、NRTトラフィックを生成するデバイスにオペレーションエラーを引き起こすことなく果たされることであろう。同様に、待ち時間にあまり敏感ではないが帯域の高いグラフィックトラフィックは、概して、何れの待ち時間でも果たされることであろう。他のNRTトラフィックには音声トラフィックが含まれ、音声トラフィックは、比較的低帯域であり、概して妥当な待ち時間なら果たされることであろう。殆どの周辺デバイスのトラフィック例えば、磁気式、光学式、又はソリッドステートのストレージ、の様なストレージデバイスへのトラフィックもまたNRTである。異なったトラフィック型式と関連付けられているポート44A-44Bが提供されていることにより、メモリコントローラ40は異なったトラフィック型式に並列して曝されることになる。上述の様に、RT周辺デバイス22は、画像プロセッサ24とディスプレイパイプ26とを含んでいてもよい。ディスプレイパイプ26は、1つ又はそれ以上の画像フレームをフェッチし、それらフレームを配合してディスプレイ画像を作成する回路構成を含んでいてもよい。ディスプレイパイプ26は、更に、1つ又はそれ以上の映像パイプラインを含んでいて、映像フレームが比較的静的な画像フレームと配合されて、映像フレームレートで表示されるフレームが作成されてもよい。ディスプレイパイプ26の結果は、ディスプレイ画面に表示させる画素のストリームということになろう。ディスプレイ画面に表示させるために画素値がディスプレイコントローラへ送信される。画像プロセッサ24は、カメラデータを受信し、データを画像へ加工してメモリに格納させていてもよい。メモリコントローラ40へ戻り、概して、ポートは、1つ又はそれ以上のソースと通信するためのメモリコントローラ40側の通信ポイントということになろう。幾つかの場合には、ポートは或るソース専用とされていてもよい例えば、ポート44A-44Bは、グラフィックコントローラ38A-38Bそれぞれの専用とされていてもよい。他の場合には、ポートは複数のソースの間で共有されていてもよい例えば、プロセッサ16はCPUポート44Cを共有し、NRT周辺デバイス20はNRTポート44Dを共有し、ディスプレイパイプ26や画像プロセッサ24の様なRT周辺デバイス22はRTポート44Eを共有していてもよい。ポートは、1つ又はそれ以上のソースと通信するために単一のインターフェースへ連結されていてもよい。こうして、ソースがインターフェースを共有している場合、インターフェースのソース側にはソース同士の間で選択を行うためにアービタがあってもよい。例えば、L2キャッシュ18は、メモリコントローラ40に対しCPUポート44Cのためのアービタの役目を果たしていてもよい。ポートアービタ28は、RTポート44Eのためのアービタの役目を果たし、同様のポートアービタ図示せずがNRTポート44Dのためのアービタとなっていてもよい。ポート上の単一ソース又はポート上のソースの組合せは、エージェントと呼ぶこともできる。それぞれのポート44A-44Eは、各自のエージェントと通信するようにインターフェースへ連結されている。インターフェースは、何れの型式の通信媒体例えば、バス、ポイントツーポイント相互接続などであってもよく、何れのプロトコルを実装していてもよい。幾つかの実施形態では、ポート44A-44Eはどれも同じインターフェース及びプロトコルを実装していてもよい。他の実施形態では、異なったポートは異なったインターフェース及び/又はプトロコルを実装していてもよい。更に他の実施形態では、メモリコントローラ40にはポートが1つしかなくてもよい。或る実施形態では、それぞれのソースは、ソースによって送信されるそれぞれのメモリオペレーションにサービスの質QoSパラメータを割り当てていてもよい。QoSパラメータは、メモリオペレーションについて要求されるサービスレベルを識別するものである。高レベルのサービスを要求するQoSパラメータ値を有するメモリオペレーションには、低レベルのサービスを要求するメモリオペレーションに勝る優先順位が与えられることになる。それぞれのメモリオペレーションは、フローIDFIDを含んでいてもよい。FIDは、メモリオペレーションフローの部分であるメモリオペレーションを識別するものである。或るフローのメモリオペレーション同士は、概して関連しているが、一方で異なったフローからのメモリオペレーションは、たとえ同じソース由来であっても、関連していない。FIDの一部分例えばソースフィールドはソースを識別していて、FIDの残部はフロー例えばフローフィールドを識別していてもよい。従って、FIDはトランザクションIDと同様であり、幾つかのソースは単純にトランザクションIDをFIDとして送信していてもよい。その様な場合、トランザクションIDのソースフィールドはFIDのソースフィールドということになり、トランザクションIDの同じソース由来のトランザクション同士の間でトランザクションを識別しているシーケンス番号はFIDのフローフィールドということになろう。幾つかの実施形態では、異なったトラフィック型式は、QoSパラメータの異なった定義を有しているかもしれない。即ち、異なったトラフィック型式は、異なったQoSパラメータセットを有していてもよい。メモリコントローラ40は、それぞれのポート44A44Eで受信されたQoSパラメータを処理するように構成されていて、相対的なQoSパラメータ値を使用して、ポートで受信されたメモリオペレーションを、当該ポート由来の他のメモリオペレーション並びに他のポートで受信された他のメモリオペレーションに関して、スケジュールするようになっていてもよい。より厳密には、メモリコントローラ40は、異なったQoSパラメータセットから引き出されたQoSパラメータ例えば、RTのQoSパラメータ及びNRTのQoSパラメータを比較するように構成されていてもよく、QoSパラメータに基づいてスケジュールの決定を下すように構成されていてもよい。幾つかの実施形態では、メモリコントローラ40は、メモリオペレーションを保留するためにQoSレベルをアップグレードするように構成されていてもよい。様々なアップグレードメカニズムがサポートされることであろう。例えば、メモリコントローラ40は、或るフローのメモリオペレーションを、同じフロー由来のメモリオペレーションであってより高いQoSレベルを特定しているQoSパラメータを有する別のメモリオペレーションの受信に応えて保留するために、QoSレベルをアップグレードするように構成されていてもよい。このQoSアップグレードの形式は、帯域内アップグレードと呼ばれており、というのも、通常のメモリオペレーション送信方法を使用して送信されたQoSパラメータが、同じフロー内のメモリオペレーションについて暗黙のアップグレード要求としての役目も果たすからである。メモリコントローラ40は、同じフロー由来ではなく同じポート又は同じソース由来のメモリオペレーションであって、より高いQoSレベルを特定している新たに受信されたメモリオペレーションである保留中のメモリオペレーションを、プッシュするように構成されていてもよい。別の例として、メモリコントローラ40は、1つ又はそれ以上のエージェントからのサイドバンドインターフェースへ連結するように構成されていて、サイドバンドインターフェースでのアップグレード要求の受信に応えてQoSレベルをアップグレードするようになっていてもよい。別の例では、メモリコントローラ40は、保留中のメモリオペレーションの相対的な古さを追跡するように構成されていてもよい。メモリコントローラ40は、或る特定の古さにある古いメモリオペレーションのQoSレベルをアップグレードするように構成されていてもよい。アップグレードが起こる古さは、古いメモリオペレーションの現在のQoSパラメータに依存していてもよい。プロセッサ16は、何れの命令セットアーキテクチャを実装していてもよく、当該命令セットアーキテクチャに定義されている命令を実行するように構成されていてもよい。プロセッサ16は、スケーラ、スーパースケーラ、パイプライン式、スーパーパイプライン式、順不同、順繰り、推論的、非推論的など、又はそれらの組合せを含む何れかのマイクロアーキテクチャを採用していてもよい。プロセッサ16は、回路構成を含んでいてもよく、随意的にはマイクロコーディング技法を実装していてもよい。プロセッサ16は、1つ又はそれ以上のレベル1キャッシュを含んでいてもよく、而してキャッシュ18はL2キャッシュである。他の実施形態は、プロセッサ16に複数のキャッシュレベルを含んでいることもあり、するとキャッシュ18は階層内で次に下のレベルとなる。キャッシュ18は、何れのサイズまた何れの構成セットアソシエイティブ型、ダイレクトマップ型、などを採用していてもよい。グラフィックコントローラ38A-38Bは、何れのグラフィック処理回路構成であってもよい。概して、グラフィックコントローラ38A-38Bは、表示させるべきオブジェクトをフレームバッファへレンダするように構成されていてもよい。グラフィックコントローラ38A-38Bは、グフィックオペレーションの一部又は全部及び/又は特定のグラフィックオペレーションのハードウェアアクセラレーションを遂行するグラフィックソフトウェアを実行することのできるグラフィックプロセッサを含んでいてもよい。ハードウェアアクセラレーションの量及びソフトウェア実装は、実施形態により様々であろう。NRT周辺デバイス20は、何れの非リアルタイム周辺デバイスを含んでいてもよく、それらは、性能上又は帯域上の理由から、メモリ12A-12Bへの独立したアクセスが提供されている。即ち、NRT周辺デバイス20によるアクセスは、CPUブロック14から独立しており、CPUブロックのメモリオペレーションと並行して進行する。周辺デバイス32及び/又は周辺デバイスインターフェースコントローラ34によって制御されている周辺デバイスインターフェースへ連結されている周辺デバイスの様な他の周辺デバイスもまた非リアルタイム周辺デバイスであるが、メモリへの独立したアクセスは要件とされない。NRT周辺デバイス20の様々な実施形態には、映像エンコーダ及びデコーダ、スケーラ/ローテータ回路構成、画像圧縮/圧縮解凍回路構成などが含まれよう。ブリッジ/DMAコントローラ30は、単数又は複数の周辺デバイス32及び単数又は複数の周辺デバイスインターフェースコントローラ34をメモリ空間へブリッジする回路構成を備えていてもよい。図示の実施形態では、ブリッジ/DMAコントローラ30は、周辺デバイス/周辺デバイスインターフェースコントローラからのメモリオペレーションを、CPUブロック14を通じてメモリコントローラ40へブリッジすることができる。CPUブロック14は、更に、ブリッジされたメモリオペレーションとプロセッサ16/L2キャッシュ18からのメモリオペレーションの間のコヒーレンスを維持することもできる。L2キャッシュ18は、更に、ブリッジされたメモリオペレーションとプロセッサ16からのメモリオペレーションとの調停をして、CPUインターフェース上をCPUポート44Cへ送信させる。ブリッジ/DMAコントローラ30は、更に、周辺デバイス32及び周辺デバイスインターフェースコントローラ34に代わってDMAオペレーションを提供してデータブロックをメモリへ及びメモリから転送させてもよい。より厳密には、DMAコントローラは、メモリ12A-12Bへの又はメモリ12A-12Bからのメモリコンコントローラ40経由の転送を、周辺デバイス32及び周辺デバイスインターフェースコントローラ34に成り変わって遂行するように構成されていてもよい。DMAコントローラは、DMAオペレーションを遂行するように、プロセッサ15によってプログラム可能であってもよい。例えば、DMAコントローラは、記述子によりプログラム可能であってもよい。記述子は、メモリ12A-12Bに格納されているデータ構造であってDMA転送例えば、ソースアドレス及び宛先アドレス、サイズなどを記述するデータ構造である。代わりに、DMAコントローラは、DMAコントローラ内のレジスタ図示せずによりプログラム可能であってもよい。周辺デバイス32には、何れの所望の入力/出力デバイスも又は集積回路10上に含まれている他のハードウェアデバイスも含めることができる。例えば、周辺デバイス32は、イーサネットMACの様な1つ又はそれ以上のネットワークキングメディアアクセスコントローラMAC又はワイヤレスファイデリティWiFiコントローラの様なネットワーク化周辺デバイスを含んでいてもよい。周辺デバイス32には、様々な音声処理デバイスを含む音声ユニットが含まれていてもよい。周辺デバイス32には、1つ又はそれ以上のデジタル信号プロセッサが含まれていてもよい。周辺デバイス32は、タイマー、オンチップ秘密メモリ、暗号化エンジンなど、又はそれらの何らかの組合せといった他の所望の機能を含んでいてもよい。周辺デバイスインターフェースコントローラ34は、任意の型式の周辺デバイスインターフェースのための何れのコントローラを含んでいてもよい。例えば、周辺デバイスインターフェースコントローラには、ユニバーサルシリアルバスUSBコントローラ、周辺構成要素相互接続エクスプレスPCIeコントローラ、フラッシュメモリインターフェース、汎用入力/出力I/Oピンなどを含めることができる。メモリ12A-12Bは、ダイナミックランダムアクセスメモリDRAM、シンクロナスDRAMSDRAM、ダブルデータレートDDR、DDR2、DDR3、などSDRAMmDD3などのSDRAMのモバイルバージョン及び/又はLPDDR2などのSDRAMの低パワーバージョンを含む、RAMBUSDRAMRDRAM、スタティックRAMSRAMなどの何れの型式のメモリであってもよい。1つ又はそれ以上のメモリデバイスは回路板へ連結されて、シングルインラインメモリモジュールSIMM、デュアルインラインメモリモジュールDIMMなどのメモリモジュールを形成していてもよい。代わりに、デバイスは、チップオンチップ構成、パッケージオンパッケージ構成、又はマルチチップモジュール構成の集積回路が搭載されていてもよい。メモリPHY42A-42Bは、メモリ12A-12Bへの低レベルの物理的インターフェースに対処していてもよい。例えば、メモリPHY42A-42Bは、シンクロナスDRAMメモリ、など、への正しいクロッキングのための信号のタイミングに責任を負っていてもよい。1つの実施形態では、メモリPHY42A-42Bは、集積回路10内で供給されるクロックをロックするように構成されていてもよく、メモリ12によって使用されるクロックを生成するように構成されていてもよい。他の実施形態は、図1に示されている構成要素及び/又は他の構成要素のサブセット又は上位セットを含め、構成要素の他の組合せを含んでいてもよいことを指摘しておく。所与の構成要素の1つのインスタンスが図1に示されているが、他の実施形態は、所与の構成要素の1つ又はそれ以上のインスタンスを含んでいてもよい。同様に、この詳細な説明全体を通して、所与の構成要素のインスタンスについては、たとえ1つのインスタンスしか示されていなくても1つ又はそれ以上のインスタンスが含まれていてもよく、及び/又は、たとえ複数のインスタンスが示されていてもインスタンスを1つしか含んでいない実施形態が使用されてもよい。次に図11を参照すると、システム350の1つの実施形態のブロック線図が示されている。図示の実施形態では、システム350は、外部メモリ12例えば図10のメモリ12A-12Bへ連結されている集積回路10の少なくとも1つのインスタンスを含んでいる。集積回路10は、更に、図1に示されている構成要素の幾つか又は全てを組み入れた集積回路であってもよい。集積回路10は、1つ又はそれ以上の周辺デバイス354及び外部メモリ12へ連結されている。集積回路10への供給電圧並びにメモリ12及び/又は周辺デバイス354への1つ又はそれ以上の供給電圧を供給する電源356も提供されている。幾つかの実施形態では、集積回路10のインスタンスが2つ以上含まれていてもよいまた同様に2つ以上の外部メモリ12が含まれていてもよい。周辺デバイス354は、システム350の型式に依存して、何れの所望の回路構成を含んでいてもよい。例えば、1つの実施形態では、システム350は、モバイルデバイス例えば、パーソナルデジタルアシスタントPDA、スマートフォン、などであってもよく、周辺デバイス354には、wifi、ブルートゥース、セルラー、全地球測位システムなど、様々な型式のワイヤレス通信用のデバイスを含めることができる。周辺デバイス354には、RAMストレージ、ソリッドステートストレージ、又はディスクストレージを含め、追加のストレージも含まれる。周辺デバイス354には、タッチディスプレイスクリーンやマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力デバイス、マイクロフォン、スピーカなどのユーザーインターフェースデバイスを含めることができる。他の実施形態では、システム350は、何れかの型式のコンピューティングシステム例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップなどであってもよい。以上の開示がくまなく理解されたからには、当業者には数多くの変型及び修正が自明となることであろう。付随の特許請求の範囲は、その様な変型及び修正全てを網羅すると解釈されるべきものとする。