(57)【特許請求の範囲】
【請求項１】
割込み待ち時間を短縮するための方法であって、
第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するステップと、
前記第1の割込みコントローラにおいて前記第1の割込みおよび前記第1のベクトル識別子を受信するステップと、
前記受信された第1の割込みを前記第1の割込みコントローラからコア内のスレッドに送るステップと、
前記コアが第2の割込みを受け取る準備を完了したか否かを判定するステップと、
前記コアが前記第2の割込みを受け取る準備を完了したと判定された場合、前記コアから、前記第1の割込みコントローラへ、前記第1の割込みが前記コアによって処理するために受け入れられたことを前記第1の割込みコントローラに通知するとともに、前記第2の割込みコントローラへ、前記第2の割込みを受け取る準備を完了したことを通知する、単一の命令を送るステップと
を含む方法。
【請求項２】
前記単一の命令が、専用ラインを介して、前記コアから第2のレベルの割込みコントローラに送られる、請求項1に記載の方法。
【請求項３】
前記第2の割込みコントローラが、レベル2割込みコントローラであり、前記第1の割込みコントローラが、レベル1割込みコントローラである、請求項1に記載の方法。
【請求項４】
前記単一の命令が、前記第1の割込みが前記第1の割込みコントローラで保留されていることを示すステータスをクリアすることによって動作する、割込み自動無効化クリア(CIAD)命令である、請求項1に記載の方法。
【請求項５】
前記割込み自動無効化クリア(CIAD)命令が、前記第2の割込みコントローラと、前記第1の割込みコントローラと、前記コアとの間のハンドシェイクメカニズムを提供する、請求項4に記載の方法。
【請求項６】
前記コアが、マルチスレッドプロセッサを含む、請求項1に記載の方法。
【請求項７】
前記第2の割込みにサービスできるアイドルスレッドを識別することに基づいて、前記コアが前記第2の割込みを受け取る準備を完了したと判定するステップを含む、請求項6に記載の方法。
【請求項８】
前記第2の割込みにサービスできる優先順位が最も低いスレッドを識別することに基づいて、前記コアが前記第2の割込みを受け取る準備を完了したと判定するステップを含む、請求項6に記載の方法。
【請求項９】
コアと、
レベル2割込みコントローラから第1の割込みを受け取り、かつ、前記第1の割込みを前記コアに送るように構成されるレベル1割込みコントローラと、
前記コアを前記レベル2割込みコントローラに結合するように構成されるラインと
を備え、
前記コアは、前記レベル1割込みコントローラへ、前記第1の割込みが前記コアによって処理するために受け入れられたことを通知するとともに、前記レベル2割込みコントローラへ、前記ラインを介して、第2の割込みを受け取る準備を完了したことを通知する、単一の命令を送るように構成されるマルチスレッドプロセッサ。
【請求項１０】
前記第2の割込みを前記レベル2割込みコントローラから受け取るように構成された専用ハードウェアポートをさらに備える、請求項9に記載のマルチスレッドプロセッサ。
【請求項１１】
前記レベル2割込みコントローラが、第1のベクトル識別子を前記レベル1割込みコントローラに伝達するようにさらに構成される、請求項9に記載のマルチスレッドプロセッサ。
【請求項１２】
前記単一の命令が、割込み自動無効化クリア(CIAD)命令である、請求項9に記載のマルチスレッドプロセッサ。
【請求項１３】
前記コアが、前記コアが前記第2の割込みを受け取る準備を完了したことを、前記第2の割込みにサービスできる前記コア内のスレッドを識別するように構成されたロジックによって判定するように構成される、請求項9に記載のマルチスレッドプロセッサ。
【請求項１４】
前記ロジックが、前記第2の割込みにサービスできる優先順位が最も低いスレッドを識別するように構成される、請求項13に記載のマルチスレッドプロセッサ。
【請求項１５】
前記ロジックが、前記第2の割込みにサービスできるアイドルスレッドを識別するように構成される、請求項13に記載のマルチスレッドプロセッサ。
【請求項１６】
少なくとも1つの半導体ダイ内に統合される、請求項9に記載のマルチスレッドプロセッサ。
【請求項１７】
セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータから成る群から選択されるデバイス内に統合される、請求項9に記載のマルチスレッドプロセッサ。
【請求項１８】
請求項１乃至8のいずれか1項に記載の方法を実行するための手段を備えた装置。
【請求項１９】
プロセッサによって実行されたときに、請求項１乃至8のいずれか1項に記載の方法を前記プロセッサに実行させるコードを含む、非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施形態は、プロセッサにおいて割込みを処理するための技法に関する。より詳細には、例示的な実施形態は、マルチスレッドプロセッサのために構成された2レベル割込みコントローラにおいて割込み待ち時間を短縮するためのシステムおよび方法に関する。
【背景技術】
【０００２】
処理システムは、通常、割込み機構をサポートし、割込みは、プロセッサの現在の実行スレッドまたは命令ストリームを非同期的に中断または一時停止でき、割込みにサービスできるようにする。割込みは、オンチップまたはオフチップの外部デバイスを含む、様々な発生源から発生し得る。割込みは、マルチスレッドプロセッサ内の1つまたは複数のスレッドからなど、プロセッサまたはCPU内において内部的にも発生し得る。
【０００３】
割込みにサービスするために、割込みサービスルーチン(ISR)が、割込みを受け取ったプロセッサによって実行され得る。各割込みは、その割込みに関連付けられた特定のISRを含むことができる。割込みは、様々な発生源から受け取られ得るので、通常は割込みコントローラを使用して、割込みを受け取り、いくつかの未処理の割込みの間で優先順位付けを行い、新しい割込みを処理するためにプロセッサが利用可能かどうかを確認できるように保留中の割込みのステータスを追跡するといったタスクを処理する。割込みならびに関連する発生源およびISRを追跡するために、ベクトル割込みコントローラ(VIC:vectored interrupt controller)が、当技術分野において知られており、各割込みに関連付けられたベクトルアドレス(vectored address)を追跡して、割込みにサービスするプロセッサにVICが関連するISRを提供できるようにしている。
【０００４】
2つ以上のスレッドを並列で実行するように構成されたマルチスレッドプロセッサの場合、割込みコントローラが、割込みにサービスするために、どのスレッドに割込みをかけるべきかを決定できるように、スレッドには優先順位レベルを動的または静的に割り当てることができる。第1のレベルまたはL1割込みコントローラは、たとえば、マルチスレッドプロセッサなど、プロセッサコアに関連する割込みを処理するように構成できる。第2のレベルまたはL2割込みコントローラは、たとえば、外部デバイスからの割込み、または大域的な規模の割込みを処理するように構成できる。L2割込みコントローラは、L2割込みコントローラからL1割込みコントローラに割込みを適宜送るために、AHB/AXIなどのシステムバスを介して、L1割込みコントローラと通信を行うことができる。L1割込みコントローラとL2割込みコントローラなどの、2レベル割込みコントローラは、当業者によって認識されるように、処理システムにおいて他のいくつかの用途に充てることもできる。
【０００５】
図1を参照すると、2レベル割込みコントローラの従来の実施が提供されている。L2割込みコントローラ102は、コア106に接続され得るL1割込みコントローラ104に、バス108を介して、割込みを伝達できる。示されるように、コア106は、L1割込みコントローラ104とだけ直接的な通信を行い、L2割込みコントローラ102とは行わない。最初に、L1割込みコントローラ104は、L2割込みコントローラ102から第1の割込みを受け取ることができる。その後、後続の割込みの処理は、たとえば、プロセッサリソースに基づいて、2つの方法の一方で処理され得る。
【０００６】
第1のシナリオでは、第1の割込みを受け取ると直ちに、コア106は、コア106が新しい割込みのための準備を完了した旨の通知を、L1割込みコントローラ104を介して、L2割込みコントローラ102に提供できる。その後、L2割込みコントローラ102は、L2割込みコントローラ102において第2の割込みが保留されている場合、第2の割込みをプロセッサコアに送ることができる。たとえば、コア106がマルチスレッドプロセッサとして構成されている場合、第1の割込みは、マルチスレッドプロセッサの第1のスレッドによってサービスでき、第2のスレッドは、WAIT状態にあり、第2の割込みを処理するために利用可能なことがある。この例では、マルチスレッドプロセッサは、プロセッサコアが第1の割込みを受け取った後直ちに、L2割込みコントローラ102が第2の割込みを送ることができる旨の通知を、たとえば、L1割込みコントローラ104を介して、L2割込みコントローラ102に提供できる。
【０００７】
代替として、第2のシナリオでは、コア106は、いかなる新しい要求も、後の時点まで、またはさらなる通知があるまで、それを送ることを延期すべき旨の通知を、L2割込みコントローラ102に提供できる。やはり、コア106がマルチスレッドプロセッサとして構成されている場合、すべてのスレッドがビジーなことがあり、プロセッサコアに関連するリアルタイムオペレーティングシステム(RTOS)は、どのスレッドに割込みをかけるかを決定するために、時間遅延を必要とすることがある。たとえば、RTOSは、どのハードウェアスレッドが最も低い優先順位でソフトウェアスレッドを実行しているかを決定し、そのスレッドを優先順位が最も低いソフトウェアスレッドとして指定でき、L1割込みコントローラ104が、L2割込みコントローラ102からの第2の割込みを、優先順位が最も低いソフトウェアスレッドに送ることができるようにする。優先順位が最も低いソフトウェアスレッドの決定は、かなりの時間遅延を招くことがあり、それに応じて、割込みを処理できる速度は、速度低下をこうむる。
【０００８】
さらに、従来のデータ処理システムでは、割込みのISRに関連付けられたベクトルアドレスなどの、割込みに関する情報は、L2割込みコントローラ102とL1割込みコントローラ104との間で、先進マイクロコントローラバスアーキテクチャ高性能バス(AHB:Advanced Microcontroller Bus Architecture High Performance Bus)を介して伝達される。上述の情報を取り出すためのAHBの読み取りに関連する処理は、割込み待ち時間にかなりの遅延を追加することがあり、したがって、割込みを処理する速度にさらなる影響を及ぼすことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来の割込み処理に関連する上述の問題を緩和するために、当技術分野では、低待ち時間2レベル割込みコントローラを含む解決策が必要とされている。
【課題を解決するための手段】
【００１０】
本発明の例示的な実施形態は、マルチスレッドプロセッサのために構成された2レベル割込みコントローラにおいて、割込み待ち時間を短縮するためのシステムおよび方法に関する。
【００１１】
たとえば、例示的な一実施形態は、第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するステップと、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するステップと、処理された割込みを第1の割込みコントローラからコア内のスレッドに送るステップと、コアが第2の割込みを受け取る準備を完了したとき、それを判定するステップと、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るステップとを含む、割込み待ち時間を短縮するための方法に関する。
【００１２】
別の例示的な実施形態は、コアと、レベル2割込みコントローラと、コアをレベル2割込みコントローラに結合するラインであって、コアが、コアがレベル2割込みを受け取る準備を完了したことを、ラインを介して、レベル2割込みコントローラに通知するように構成される、ラインとを備える、マルチスレッドプロセッサに関する。
【００１３】
また別の例示的な実施形態は、割込み待ち時間を短縮するように構成された処理システムに関し、処理システムは、コアに結合された第1の割込みコントローラと、第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するための手段と、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するための手段と、処理された割込みをコア内のスレッドに送るための手段と、コアが第2の割込みを受け取る準備を完了したとき、それを判定するための手段と、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るための手段とを備える。
【００１４】
別の例示的な実施形態は、プロセッサによって実行されたときに、割込み待ち時間を短縮するための動作をプロセッサに実行させるコードを含む、非一時的なコンピュータ可読記憶媒体に関し、非一時的なコンピュータ可読記憶媒体は、第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するためのコードと、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するためのコードと、処理された割込みを第1の割込みコントローラからコア内のスレッドに送るためのコードと、コアが第2の割込みを受け取る準備を完了したとき、それを判定するためのコードと、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るためのコードとを含む。
【００１５】
本発明の実施形態についての説明の助けとなるように、添付の図面が提示されるが、それは、もっぱら実施形態を説明するために提供され、実施形態を限定するためではない。
【図面の簡単な説明】
【００１６】
【図１】コアとの従来の2レベル割込みコントローラインターフェースを示す図である。
【図２】例示的な実施形態に従って構成された、マルチスレッドプロセッサとの2レベル割込みコントローラインターフェースを示す図である。
【図３】例示的な実施形態による、マルチスレッドプロセッサとの2レベル割込みコントローラインターフェースを構成するための方法を詳説するフローチャートである。
【図４】本開示の一実施形態を有利に利用できる、例示的なワイヤレス通信システム400を示す図である。
【発明を実施するための形態】
【００１７】
本発明の態様が、本発明の特定の実施形態に関する以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替実施形態も考案できる。加えて、本発明のよく知られた要素は、本発明の関連する細部を曖昧にしないために、詳細には説明されず、または省略される。
【００１８】
本明細書では、「例示的」という語は、「例、実例、または説明として役立つ」という意味で使用される。本明細書で「例示的」として説明されるいかなる実施形態であれ、必ずしも他の実施形態よりも好ましい、または有利であると解釈すべきわけではない。同様に、「本発明の実施形態」という表現は、本発明のすべての実施形態が、説明される特徴、利点、または動作のモードを含むことを要求するわけではない。
【００１９】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明の実施形態を限定する意図はない。本明細書で使用される場合、「a」、「an」、および「the」プラス単数形は、文脈による別段の指摘が明らかにない限り、複数形も同様に含むことが意図されている。「comprises(含む)」、「comprising(含む)」、「includes(含む)」、および/または「including(含む)」という用語は、本明細書で使用される場合、述べられる特徴、整数、ステップ、動作、要素、および/または構成要素の存在を指定するばかりでなく、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加も排除しないことがさらに理解されよう。
【００２０】
さらに、多くの実施形態は、たとえばコンピューティングデバイスの要素によって実行される、アクションの系列に関して説明される。本明細書で説明される様々なアクションは、特定の回路(たとえば特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行できることが認識されよう。加えて、本明細書で説明されるこれらのアクションの系列は、実行時に本明細書で説明される機能を関連プロセッサに実行させる対応する1組のコンピュータ命令を記憶する任意の形態のコンピュータ可読記憶媒体内で完全に具体化されると見なすことができる。したがって、本発明の様々な態様は、数々の異なる形態で具体化でき、そのすべてが、特許請求される本発明の範囲内にあることが企図されている。加えて、本明細書で説明される実施形態の各々について、そのようなどの実施形態に対応する形態も、本明細書では、たとえば、説明されるアクションを実行する「ように構成されたロジック」として説明できる。
【００２１】
図1を参照して先に説明したように、従来の2レベル割込みコントローラには難点がある。コア106が新しい割込みを受け入れる準備を完了した場合、その旨の通知は、L1割込みコントローラ104を経由し、AHBバスなどの待ち時間が長いネットワーク110を介して、L2割込みコントローラ102に提供される。そのような従来の割込みの処理は、深刻な遅延を招き、低速の割込み処理をもたらす。
【００２２】
上述の従来の技法とは対照的に、例示的な実施形態は、高速の割込み処理のために構成された低待ち時間割込みコントローラに関する。より具体的には、実施形態は、マルチスレッドプロセッサコアとインターフェースを取ることができる、2レベル低待ち時間割込みコントローラを含むことができる。
【００２３】
ここで図2を参照すると、マルチスレッドプロセッサ206と直接的にインターフェースを取るように構成され得る、L1割込みコントローラ204を備える、説明的なシステム200が存在している。L1割込みコントローラ204は、L2割込みコントローラ202を含む1つまたは複数のデバイスからマルチスレッドプロセッサに送られる割込みを処理できる。
【００２４】
一実施形態では、L1割込みコントローラ204およびL2割込みコントローラ202はともに、先に説明したような、ベクトル割込みコントローラとすることができる。したがって、L2割込みコントローラ202は、割込みのISRに関連付けられたベクトルアドレスとともに割込みを送るように構成できる。非限定的な例によれば、L2割込みコントローラ202は、最大で1024個の低待ち時間割込みをサポートできる。1024個の低待ち時間割込みは、L2割込みコントローラ202によって優先順位付けされ得る。L1割込みコントローラ204は、32個のレジスタエントリ[31:0]を有するVICとすることができ、L1割込みコントローラ204のレジスタエントリ[31]は、L2割込みコントローラ202に対応し得る。L1割込みコントローラ204の残りの31個のレジスタエントリは、スレッドからスレッドへのシグナリングのためにマルチスレッドプロセッサ206の2つ以上のスレッドから内部的に発生される割込みを含む他の発生源からの割込みのために、またはレガシアプリケーションのために、予約しておくことができる。L1割込みコントローラ204およびL2割込みコントローラ202の示される構成では、外部デバイス(図示されず)からのすべての割込みは、最初、L2割込みコントローラ202で受け取ることができ、その後、L1割込みコントローラ204に送ることができる。
【００２５】
たとえば、引き続き図2を参照すると、第1の割込みは、L2割込みコントローラ202によって、外部デバイス(図示されず)から受け取ることができる。第1の割込みは、バス210上の対応するベクトルIDとともに、バス208を介して、L1割込みコントローラ204に伝達できる。グローバルベクトルIDレジスタ(図示されず)も、ベクトルIDを用いて更新でき、グローバルベクトルIDレジスタは、制御レジスタ(CR)転送命令を用いてアクセス可能とすることができる。グローバルベクトルIDレジスタは、割込みの追跡を支援できる。たとえば、グローバルVIDレジスタは、どの特定のL2割込みがL1割込みコントローラ204に送られたかを追跡するように構成できる。
【００２６】
第1の割込みがL1割込みコントローラ204によって受け取られた後、実施形態は、後続の要求を円滑に処理するために、従来の技法とはいくつかの点で異なる流れを辿る。図1に示されるような従来の技法は、新しい要求を受け入れるためにコア106が利用可能かどうかに関して、ネットワーク110を介して、L2割込みコントローラ102に通知するために、ハードウェアソリューションに依存するが、実施形態は、マルチスレッドプロセッサ206の準備完了をモニタリングするように構成された、ソフトウェアルーチンを含むことができる。たとえば、ソフトウェアルーチンは、マルチスレッドプロセッサ206の2つ以上のスレッド上で実行されているプロセスの状態を効率的に追跡できる。ソフトウェアルーチンは、新しい割込みを直ちに受け入れるために、1つもしくは複数のスレッドがWAIT状態にあり得るかどうか、または新しい割込みに直ちにサービスするために、スレッド上で実行されている優先順位が低いプロセスに割込みをかけ得るかどうかを決定できる。
【００２７】
割込みを受け入れるためのマルチスレッドプロセッサ206の準備完了に関して決定が下された後、実施形態は、第1の割込みが処理されるために受け入れられたことをL1割込みコントローラ204に通知することと、同様に、今やマルチスレッドプロセッサ206が新しい割込みを受け入れる準備を完了したことをL2割込みコントローラ202に通知することの両方を達成する、単一の命令を含むことができる。これらの実施形態は、コア106が、新しい割込みのための準備完了を、ネットワーク110を介してしかL2割込みコントローラ102に伝達できない、図1に示されるような、従来の2レベル割込みフレームワークによって制約されないことが認識されよう。他方、実施形態は、マルチスレッドプロセッサ206の準備完了を、図2におけるライン212などの専用ハードウェアラインを介して、L2割込みコントローラ202に直接的に伝達できる。
【００２８】
さらに、いくつかの実施形態は、L2割込みコントローラ202が、割込み(たとえば、図2の「新しい割込み」)を、ライン214などの専用ハードウェアラインを介して、マルチスレッドプロセッサ206に直接的に伝達できるように、マルチスレッドプロセッサ206内に専用ハードウェアポートも含むことができる。このように、マルチスレッドプロセッサ206からL2割込みコントローラ202への準備完了の伝達ばかりでなく、その後のL2割込みコントローラ202からマルチスレッドプロセッサ206への割込みの伝達も、L1割込みコントローラ204およびそれに関連する遅延を完全に回避できる。
【００２９】
例示的な実施形態は、割込み自動無効化クリア(CIAD:Clear Interrupt Auto Disable)レジスタを含むことができる。CIAD命令は、同じ割込みを2回以上取り込まないことを保証するために使用できる。たとえば、マルチスレッドプロセッサ206は、第1の割込みを取り込むと直ちに、CIADレジスタを自動的に設定できる。たとえば、先に説明したようなソフトウェアルーチンによって、マルチスレッドプロセッサ206が新しい割込みを受け入れる準備を完了したと決定されると、ソフトウェアルーチンは、CIAD命令の発行をトリガできる。その後、CIAD命令は、割込みラインをアクティブ化して、同じライン上で新しい割込みを取り込むことができるように、CIADレジスタをクリアできる。
【００３０】
一実施形態では、CIAD命令は、第1の割込みがL1割込みコントローラ204において保留されていることを示すステータスをクリアするために、またさらに、マルチスレッドプロセッサ206が別の割込みおよび付随するベクトルIDを、それぞれバス208およびバス210を介して受け入れる準備を完了したことを、L2割込みコントローラ202に通知するために、マルチスレッドプロセッサ206によって発行され得る。CIAD命令は、先に説明したように、L2割込みコントローラ202からの割込み専用とすることができる、L1割込みコントローラ204のレジスタエントリ[31]に関連付けることができる。したがって、CIAD命令は、L2割込みコントローラ202と、L1割込みコントローラ204と、マルチスレッドプロセッサ206との間の効果的なハンドシェイクメカニズムを提供できる。第1の割込みがL1割込みコントローラ204で受け取られると、後続の割込みの処理を円滑化するために、ソフトウェアルーチンなどのプロセスを開始して、CIAD命令を生成できる。実施形態は、上述の例で説明したようなソフトウェアルーチンに限定することなく、専用ハードウェアまたはハードウェアとソフトウェアの組合せを用いても、上述のプロセスを実施できることが理解されよう。
【００３１】
さらに、実施形態は、クロックの立上りエッジで情報を獲得するように、L1割込みコントローラ204のレジスタエントリ[31]をプログラムできる実施を含むことができる。L2割込みコントローラ202は、エッジトリガ(edge triggered)またはレベルセンシティブ(level sensitive)とすることができ、割込みおよび対応するベクトルIDを、バス208およびバス210を介して、L1割込みコントローラ204に非同期的に送ることができる。L1割込みコントローラ204をエッジトリガとして構成することによって、マルチスレッドプロセッサ206に対応するクロックに割込みを同期させることができる。そのようなエッジトリガ構成は、L1割込みコントローラ204とL2割込みコントローラ202との間の通信プロトコルの改善を可能にし得る。
【００３２】
さらに、専用バス212を介して送られるCIAD命令など、マルチスレッドプロセッサ206の準備完了についてL2割込みコントローラ202に通知するメカニズムは、第1の割込みが完了しないうちにトリガできることが認識されよう。言い換えると、第1の割込みは、マルチスレッドプロセッサ206が新しい割込みを処理する準備を完了した段階に達するために、マルチスレッドプロセッサ206によって完全に処理される必要がない。いくつかの実施形態では、第1の割込みがL1割込みコントローラで受け取られた後直ちに、マルチスレッドプロセッサ206は、たとえば、L1割込みコントローラ204のレジスタエントリ[31]をクリアすることによって、新しい割込みを受け入れる準備を完了した段階への遷移を開始できる。
【００３３】
したがって、上のセクションで説明したような、ハードウェア構成とソフトウェア構成の組合せによって、実施形態は、割込みを処理する速度を著しく改善でき、割込み処理の待ち時間も短縮できる。
【００３４】
さらに、実施形態は、本明細書で開示されるプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが理解されよう。たとえば、図3に示されるように、一実施形態は、L1割込みコントローラ204などの第1の割込みコントローラをマルチスレッドプロセッサ206などのコアに結合するステップ(ブロック302)と、第1の割込みおよび第1のベクトル識別子を、たとえば、それぞれバス208およびバス210を介して、L2割込みコントローラ202などの第2の割込みコントローラから第1の割込みコントローラに伝達するステップ(ブロック304)と、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するステップ(ブロック306)と、処理された割込みをコア内のスレッドに送るステップ(ブロック308)と、コアが第2の割込みを受け取る準備を完了したとき、それを判定するステップ(ブロック310)と、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るステップ(ブロック312)とを含む、割込み待ち時間を短縮するための方法を含むことができる。
【００３５】
当業者は、様々な異なる技術および技法のいずれかを使用して、情報および信号が表現され得ることを理解されよう。たとえば、上述の説明において言及された可能性のある、データ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現され得る。
【００３６】
さらに、当業者は、本明細書で開示される実施形態に関連して説明される、様々な説明的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、または両方の組合せとして実施され得ることを理解されよう。ハードウェアとソフトウェアのこの交換可能性を明瞭に示すために、様々な説明的な構成要素、ブロック、モジュール、回路、およびステップは、一般にそれらの機能に関して上では説明された。そのような機能をハードウェアとして実施するか、それともソフトウェアとして実施するかは、特定の応用、およびシステム全体に課される設計上の制約に依存する。当業者は、説明された機能を特定の各応用のために様々な方法で実施できるが、そのような実施上の決定は、本発明の範囲からの逸脱を引き起こすと解釈すべきではない。
【００３７】
本明細書で開示される実施形態に関連して説明される、方法、シーケンス、および/またはアルゴリズムは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェアモジュールで、または2つの組合せで具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、着脱可能ディスク、CD-ROM、または当技術分野で知られている他の任意の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読み取り、記憶媒体に情報を書き込み得るように、プロセッサに結合される。代替として、記憶媒体は、プロセッサに統合し得る。
【００３８】
したがって、本発明の一実施形態は、マルチスレッドプロセッサとの2レベル割込みコントローラインターフェースにおいて割込み待ち時間を短縮するための方法を具体化した、コンピュータ可読媒体を含むことができる。したがって、本発明は、示される例に限定されず、本明細書で説明される機能を実行するための任意の手段が、本発明の実施形態に含まれる。
【００３９】
図4を参照すると、例示的な実施形態に従って構成されたマルチコアプロセッサを含む、ワイヤレスデバイスの特定の例示的な一実施形態のブロック図が示されており、全体として400で指示されている。デバイス400は、図2のシステム200を含むことができる、デジタル信号プロセッサ(DSP)464を含む。図4は、DSP464およびディスプレイ428に結合された、ディスプレイコントローラ426も示している。コーダ/デコーダ(CODEC)434(たとえば、オーディオおよび/または音声CODEC)は、DSP464に結合され得る。(モデムを含むことができる)ワイヤレスコントローラ440などの他の構成要素も示されている。スピーカ436およびマイクロフォン438は、CODEC434に結合され得る。図4は、ワイヤレスコントローラ440がワイヤレスアンテナ442に結合され得ることも示している。特定の一実施形態では、DSP464、ディスプレイコントローラ426、メモリ432、CODEC434、およびワイヤレスコントローラ440は、システムインパッケージまたはシステムオンチップデバイス422内に含まれる。
【００４０】
特定の一実施形態では、入力デバイス430および電源444が、システムオンチップデバイス422に結合される。さらに、特定の一実施形態では、図4に示されるように、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444は、システムオンチップデバイス422の外部にある。しかし、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス422の構成要素に結合され得る。
【００４１】
図4はワイヤレス通信デバイスを示しているが、DSP464およびメモリ432は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータ内に組み込むこともできることに留意されたい。プロセッサ(たとえばDSP464)も、そのようなデバイス内に組み込むことができる。
【００４２】
一般に、上で開示されたデバイスおよび方法は、設計されて、コンピュータ可読媒体上に記憶されるGDSIIおよびGERBERコンピュータファイル内に構成される。これらのファイルは、次に、これらのファイルに基づいてデバイスを製作する製作担当者に提供される。結果として得られる製品は、半導体ウェーハであり、その後、半導体ウェーハは、半導体ダイにカットされ、半導体チップ内にパッケージされる。その後、チップは、上で説明したデバイス内で利用される。
【００４３】
上述の開示は、本発明の説明的な実施形態を示しているが、添付の特許請求の範囲によって確定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行い得ることに留意されたい。本明細書で説明された本発明の実施形態による、方法クレームの機能、ステップ、および/またはアクションは、いずれか特定の順序で実行される必要はない。さらに、本発明の要素は、単数で説明され、または特許請求されることがあるが、単数への限定が明示的に述べられていない限り、複数も企図されている。
【符号の説明】
【００４４】
102  L2割込みコントローラ
104  L1割込みコントローラ
106  コア
108  バス
110  ネットワーク
200  システム
202  L2割込みコントローラ
204  L1割込みコントローラ
206  マルチスレッドプロセッサ
208  バス
210  バス
212  ライン
214  ライン
【図１】
0005847949.tif 000002
【図２】
0005847949.tif 000003
【図３】
0005847949.tif 000004
【図４】
0005847949.tif 000005