(57)【要約】      （修正有）【課題】マイクロプロセッサベースのシステムで待ち時間の少ない拡張性を持つ割込みコレクションを提供する。【解決手段】受信した割込み信号を割込みコントローラの割込み要因レジスタ内に格納し、前記割込みコントローラから前記割込みコレクタへ割込み命令を出力し、前記割込みコレクタからマイクロプロセッサへ割込み信号をアサートし、要因値フィールドを要因アレイにシフトする。前記割込み命令は、識別子フィールド、要因レジスタＩＤフィールド及び要因値フィールドを含み、前記要因値フィールドの内容は、前記割込み要因レジスタの内容を本とする。前記割込み信号は、前記割込みコレクタによる前記識別子フィールドと要因レジスタＩＤの受信するとアサートされ、前記マイクロプロセッサが識別子フィールド及び要因レジスタＩＤフィールドの受信をサービスしている間に、前記割込みコレクタ内の要因アレイへの前記要因値フィールドのシフトされる。【選択図】図１
2008021298.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサベースのシステム内で割込み信号を処理する方法であって、
割込みコントローラの割込み要因レジスタへ受信した割込み信号を格納するステップと、
前記割込みコントローラから割込みコレクタへ割込み命令を出力するステップとからなり、
前記割込み命令は、識別子フィールド、要因レジスタＩＤフィールド及び前記割込み要因レジスタの内容に基づく内容を有する要因値フィールドを含み、
更に前記割込みコレクタによる前記識別子フィールド及び要因レジスタＩＤフィールドの受信に基づく、前記割込みコレクタから前記マイクロプロセッサへの割込み信号をアサートするステップと、
前記マイクロプロセッサが前記割込みコレクタからの前記識別子フィールドと要因レジスタＩＤフィールドの受信をサービスしている間、前記割込みコレクタ内の要因アレイへ前記割込み要因値フィールドをシフトするステップとからなる方法。
【請求項２】
前記割込みコントローラから割込みコレクタへの割込み命令の出力ステップが、シリアル接続された複数の割込みコントローラを介する前記割込み命令の転送からなることを特徴とする請求項１記載の方法。
【請求項３】
さらに、割込み優先順位の複数レベルに対応するため、複数の割込み要因レジスタの優先順位を決めることを特徴とする請求項１記載の方法。
【請求項４】
さらに、前記割込みコレクタ内で前記要因値フィールドが新規割込みを含むかどうか判定することを特徴とする請求項１記載の方法。
【請求項５】
前記要因値フィールドが新規割込みを包含しているかどうかの判定が、前記割込み要因値フィールドと前記割込みコレクタ内に格納された既存の中央要因アレイ値フィールドとの論理的な比較からなる請求項４記載の方法。
【請求項６】
前記論理比較が、前記要因値フィールドと前記中央要因アレイ値フィールドとの論理和をとることによる、既存割込み要因値への前記新規割込み要因の追加の許可からなる請求項５記載の方法。
【請求項７】
さらに、シリアル接続された割込みコントローラから発せられたシリアル割込み命令を出力するか、または内部生成された割込み要因値を出力するかを決定するため、前記割込みコントローラ内で調停機能を実行することからなる請求項１記載の方法。
【請求項８】
前記割込みコレクタから前記マイクロプロセッサへの割込み信号のアサートが、少なくとも一般割込み信号及びマスク不可割込み信号のうちの１つのアサートからなることを特徴とする請求項１記載の方法。
【請求項９】
割込み処理のためのシステムアーキテクチャであって、
少なくとも１つの割込み入力ピンと、少なくとも１つのバスとを含むマイクロプロセッサと、
少なくとも１つの割込みピンと前記少なくとも１つのバスとに接続され、割込みコレクタと、要因レジスタアレイとを含むように構成されたブリッジデバイスと、
割込みコントローラモジュールと要因レジスタを含むように構成された少なくとも１つの処理デバイスとからなり、
前記割込みコントローラモジュールは、前記割込みコレクタとシリアルに接続され、割込み信号を受信し、前記要因レジスタ内の前記信号を構成し、前記割込みコレクタへ前記要因レジスタの内容を転送するように構成されており、
前記割込みコレクタは、前記マイクロプロセッサに割込みを知らせ、前記マイクロプロセッサが前記割込み通知を処理する際に、前記要因レジスタアレイ内の前記要因レジスタの受信内容を格納するように構成されていることを特徴とする割込み処理のための前記割込み処理のためのシステムアーキテクチャ。
【請求項１０】
複数の前記各処理装置が、前記割込みコントローラのうちの１つを含み、
前記複数の割込みコントローラがシリアルディジーチェイン構成で互いに接続されていることを特徴とする請求項９記載のシステムアーキテクチャ。
【請求項１１】
前記処理デバイスが、前記処理デバイス間に介在する前記割込みコントローラを介して、前記割込みコレクタへ前記要因レジスタの内容を転送するように構成されていることを特徴とする請求項１０記載のシステムアーキテクチャ。
【請求項１２】
前記各処理デバイスが、もう１つの前記処理装置からの要因値を含んでいる割込み命令を渡すか、内部の要因値を伝送するか決定する調停機能を実行するように構成されていることを特徴とする請求項１０記載のシステムアーキテクチャ。
【請求項１３】
前記要因レジスタが、割込み優先順位の複数レベルに対応して優先順位を決めることを特徴とする請求項９記載のシステムアーキテクチャ。
【請求項１４】
前記要因レジスタアレイが、前記システムアーキテクチャ内で前記すべての処理デバイスのための割込み要因値を格納することが可能なレジスタファイルからなることを特徴とする請求項９記載のシステムアーキテクチャ。
【請求項１５】
少なくとも１つの前記処理デバイス及び前記ブリッジデバイスのうちの少なくとも１つは、少なくとも１つのＡＳＩＣあるいは１つのＦＰＧＡからなることを特徴とする請求項９記載のシステムアーキテクチャ。
【請求項１６】
前記割込みコレクタが、前記マイクロプロセッサへ少なくとも１つの割込み信号を出力するように構成されていることを特徴とする請求項９記載のシステムアーキテクチャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプロセッサベースのシステムに関係しており、さらに詳しく言うと、プロセッサベースのシステムのための、待ち時間の少ない拡張性を持つ割込みコレクションを提供するための方法及びシステムに関する。
【０００２】
プロセッサベースのアーキテクチャ内での利用に対する例外及び通知を基本とした割込みの仕組みは、最初のマイクロプロセッサシステムが使用されて以来、ずっと存在してきた。ここで使用されている用語「プロセッサ」は、マイクロプロセッサ、マイクロコントローラ、ＡＳＩＣＳ、ＦＰＧＡ、ＲＩＳＣベースプロセッサ、プログラマブルロジック及び、１つ以上の割込み信号と、それに関連したサービス（割込み処理）ルーチンを組み込むであろうその他任意の処理装置を指す。割込み信号のハードウェア待ち時間の最小化及び各割込み原因を識別するのに必要なソフトウェア割込み処理応答時間の最小化は、多くの技術論文や特許の主題であった。
【０００３】
デジタルマイクロプロセッサベースのシステムが複雑化、巨大化するにしたがって、改良された割込みコレクションアーキテクチャでは、拡張性、待ち時間の減少及びＩ／Ｏピン数の最小化を提供することが要求される。実用的な例として、宇宙空間ベースのアプリケーションでの命令や制御のために使用されるリアルタイムシステムは、予測可能な割込み待ち時間や大量の割込み原因への対応能力を必要とする。
【発明の開示】
【課題を解決するための手段】
【０００４】
１つの特徴は、マイクロプロセッサベースのシステム内で割込み信号処理方法を提供することである。本方法は、受信した割込み信号を割込みコントローラの割込み要因レジスタ内に格納し、その割込みコントローラからの割込み命令を割込みコレクタに出力し、その割込み命令は、識別子フィールド、要因レジスタＩＤフィールド及び要因値フィールド、割込み要因レジスタの内容を基本とする要因値フィールドの内容を含んでいる。さらに本方法は、割込みコレクタによる識別子フィールド及び要因レジスタＩＤフィールドの受信を本として、割込みコレクタから割込み信号をマイクロプロセッサにアサートし、マイクロプロセッサが割込みコレクタからの識別子フィールドと要因レジスタＩＤフィールドの受信をサービスしている間、要因値フィールドを割込みコレクタ内の要因アレイにシフトすることを含んでいる。
【０００５】
もう１つの特徴は、割込み処理のためのシステムアーキテクチャを提供することである。本システムアーキテクチャは、少なくとも１つの割込み入力ピン、割込みコレクタ及び要因レジスタアレイを含むように構成されるブリッジ装置からなるマイクロプロセッサを含んでいて、そのブリッジ装置は、少なくとも１つの割込みピンと少なくとも１つの処理装置に接続されている。前記少なくとも１つの処理装置は、割込みコントローラモジュールと要因レジスタを含むように構成されている。前記割込みコントローラモジュールは、割込みコレクタとシリアルに接続され、割込み信号を受信し、要因レジスタ内の信号を構成し、ならびに要因レジスタの内容を割込みコレクタへ転送するように構成される。前記割込みコレクタは、マイクロプロセッサに割込みを知らせ、マイクロプロセッサがその割込みの知らせを処理しているとき、要因レジスタアレイ内に要因レジスタの受信した内容を格納するように構成される。
【発明を実施するための最良の形態】
【０００６】
図１は、本発明の１つの実施形態による複数の特定用途向け集積回路（ＡＳＩＣ）及びマイクロプロセッサを利用した割込みの仕組みを例示しているマイクロプロセッサベースの回路１０のブロック図である。例示のように、回路１０は、マイクロプロセッサ１２、ＡＳＩＣ＿０としても示すブリッジＡＳＩＣ１４及び複数の入力／出力（Ｉ／Ｏ）ＡＳＩＣ１６、１８及び２０を含んでいる。それらはまた、それぞれＡＳＩＣ＿１、ＡＳＩＣ＿２及びＡＳＩＣ＿ｉとも記し、ここでＡＳＩＣ＿ｉは、１つのＩ／Ｏ  ＡＳＩＣから多くのＩ／Ｏ  ＡＳＩＣまでの数であることが可能であることを表している。
【０００７】
以上に述べたように、マイクロプロセッサベースの回路１０は、さらにマイクロプロセッサ１２に付随する単一の割込みインタフェース３０（信号３２と３４を包含している）を含むブリッジＡＳＩＣ１４（ＡＳＩＣ＿０）を含む。加えて、ブリッジＡＳＩＣ１４は、割込みコレクタモジュール４０を含み、コレクタモジュールから割込み信号３２と３４が発行される。回路１０の動作に関して、割込みコレクタモジュール４０は、割込み信号３２と３４のマイクロプロセッサ１２へのアサートに対応する。割込みコレクタモジュール４０は、また中央要因レジスタアレイ５０を含む。それは１つの実施形態としてＮ列に並んだレジスタファイルであって、たとえば回路１０中のＡＳＩＣ１４とＡＳＩＣ１６、１８及び２０の全ＡＳＩＣに関する割込み要因値を格納するために構成されている。
【０００８】
さらに具体的に言うと、ＡＳＩＣ１６、１８及び２０（ＡＳＩＣ＿１、ＡＳＩＣ＿２及びＡＳＩＣ＿ｉ）は、これもまた割込みを生成する、システム内の他の処理機能を実行する入力／出力ＡＳＩＣである。各ＡＳＩＣ１６、１８及び２０は、それぞれ割込みコントローラモジュール６０、７０及び８０を含む。各割込みコントローラモジュールは、内部及び外部割込みパルスを集め、それぞれ割込み要因レジスタ６２、７２及び８２内へそれらを構成することに対応している。１つの実施形態においては、多様な割込み要因レジスタ６２、７２及び８２が割込み優先順位のレベルの多重性に対応するために優先付けされる。その実施形態においては例示したように、割込みコントローラモジュール６０、７０及び８０は、シリアルディジーチェーン構成で相互接続されている。
【０００９】
割込み要因レジスタは、例えば割込み要因レジスタ７２の場合、割込みパルスを捉えると、命令が、例えば図１中のＡＳＩＣ１６のような仲介しているＡＳＩＣの割込みコントローラを介して、そのシリアルインタフェースでブリッジＡＳＩＣ１４内の割込みコントローラ４０の中央要因レジスタアレイ５０へ転送される。各割込みコントローラ６０、７０及び８０は、流れに沿ってシリアル割込み命令を通過させるかあるいは内割込み要因を通過させるか選択する調停機能を実行する。
【００１０】
１つの実施形態において、シリアル割込み命令は、ＡＳＩＣ識別子（ＡＳＩＣ＿ＩＤ）フィールド、要因レジスタ識別子（ＣＡＵＳＥ＿ＲＥＧ＿ＩＤ）フィールド及び要因値フィールドを含む。１つの特別な実施形態においては、要因フィールドの幅は、３２ビットである。ＡＳＩＣ＿ＩＤフィールドとＣＡＵＳＥ＿ＲＥＧ＿ＩＤフィールドは、要因値を格納する際に割込みコレクタ４０の中央要因アレイ５０へのインデックスとして利用される。シリアル割込み命令内の要因値フィールドは、新規の保留中の割込みが既存の保留中の割込みと一緒にポストされることを許すように既存の中央要因アレイ値フィールドと論理和をとられる。
【００１１】
ＡＳＩＣ＿ＩＤフィールドとＣＡＵＳＥ＿ＲＥＧ＿ＩＤフィールドが割込みコレクタ４０内で受信された後、初期の割込み検知機能が、一般割込み信号３４（ＩＮＴ＿Ｎ）
かマスク不可割込み信号３２（ＮＭＩ＿Ｎ）のいずれかをマイクロプロセッサ１２へアサートするために、割込みコレクタ４０内にセットされる。マイクロプロセッサ１２がコンテキストスイッチ（割込みレベルの認知、レジスタをスタック上にプッシュする、割込みベクトルのフェッチなど）を実行している間、要因値フィールドは、割込みコレクタ４０の中央要因アレイ５０へシフトされ、その中に格納される。初期の割込み検知機能は、マイクロプロセッサコンテキストスイッチと同時に要因値のシフトを発生させ、これによって要因値を転送するのに必要な待ち時間を隠蔽する。ハードウェアの待ち時間のみがＡＳＩＣ＿ＩＤフィールドとＣＡＵＳＥ＿ＲＥＧ＿ＩＤフィールドのシフトと関連する。
【００１２】
システム１０は、シリアルディジーチェーン内の各隣り合った装置を通して、割込み要因値が、割込みイベントを検知する装置（たとえば割込みコントローラ）からブリッジＡＳＩＣ１４内の割込みコレクタ４０へシリアルに転送される割込み内結合ネットワークとして動作する。それらを通して割込み要因値を転送するべき割込みコントローラの数は、シリアル割込み内結合ネットワーク上の割込み装置の位置に依存する。仲介している割込みコントローラを介する割込み要因値のシリアル転送の最小待ち時間は例えば、２から３サイクルである。特定の実施形態においては、より高い優先順位の割込みを受信するように構成された割込みコントローラは、シリアルディジーチェーンネットワーク上の割込みコレクタ１４に近いところに配置され、より低い優先順位の割込みを受信するために構成された割込みコントローラは、割込みコレクタ４０を含むブリッジ装置１４から遠くに配置される。
【００１３】
システム１０のシリアル割り込み内部結合ネットワークは、帯域内と考えられるマイクロプロセッサによって使用される正常動作データバスと比較すると帯域外バスである。割込み信号の転送のために、この“帯域外”バスを使用する利点として、典型的に命令をフェッチしている、メモリあるいは、他の入力／出力（Ｉ／Ｏ）装置へ／から、データを読み／書きしているようなマイクロプロセッサ１２とのデータバス共有に関して、競合も依存も全くないという意味がある。帯域内装置に関しては、マルチバスマスタが存在し、かつ、バスマスタの間の調停が要求されるときには、共有バスへのアクセスがボトルネックになり得る。さらに低速応答装置へのアクセスは、その処理されるべき割込みに関して拡大遅延を引き起こす致命的な割込みイベントを発生することになるように起動されるかもしれない。共有システム（帯域内）バス上で生成された不正アドレスは、無限のシステム遅延を引き起こすに違いない。システム１０によって提供される割込みサービスのための、シリアル帯域外の内部接続は、そのような問題を多少とも解決する。加えて、システム１０の構成は、さらに以下に説明するような割込みイベントの著しい量に対応する拡張能力を提供する。
【００１４】
システム１０の割込みコントローラ内の各割込み要因レジスタは、例外レベルレジスタか、あるいは指示レベルレジスタとして構成することができる。例外レベルは、割込みのより高い優先度タイプとして考えられ、そのシステム内のエラーイベントの指標となる。指示レベルは、通常の優先度の割込みであると考えられ、例えばあるイベントの正常終了の指標である。１つの例の実施形態では、例外レベルの割込みは、マイクロプロセッサ１２のマスク不可割込み信号３２をアサートし、一方指示レベル割込みはマイクロプロセッサ１２の一般目的割込み信号３４をアサートする。特定の実施形態において、割込みコレクタ４０は、保留中の例外レベル割込み及び保留中の指示レベル割込みのために別の表示板（スコアボード：scoreboards）を保守している。
【００１５】
システム１０のアーキテクチャの１つの動作例では、ブリッジＡＳＩＣ１４を含む６つのＡＳＩＣがあり、各ＡＳＩＣは、９６０個の可能な割込み原因に対応するシステムを提供する５個の３２ビット幅の要因レジスタを含む。この実装を超えて拡張できることは予想される。処理例においては、全ての割り込みが２読出しサイクル以内に可能である。ブリッジＡＳＩＣ１４内で割込みコレクタ４０を保持することによって、２つの読出しサイクルは、とても高速なクロック速度で発生することが可能である。その高速度クロック速度は、ブリッジ１４がマイクロプロセッサ１２に取り付けられ、そしてマイクロプロセッサバスのクロック速度で通常動作するので、２つの読出しサイクルの間は少ない待ち時間を保つことが可能である。
【００１６】
説明した割込みコレクションの枠組では、システム内の複数のＡＳＩＣからのすべての保留中の割込みを（図１中に示す）中央要因アレイ５０へ集める。中央要因アレイ５０は、マスク不可割込み信号３２及び一般割込み信号３４を経由しマイクロプロセッサ１２へ直接接続されたブリッジＡＳＩＣ１４内に配置された割込みコレクタモジュール４０の内に配置されている。
【００１７】
中央要因アレイ５０は、ブリッジＡＳＩＣ１４とシリアルに接続されたＡＳＩＣの数と、それらの各ＡＳＩＣ内で対応する要因値の数を基本として、可能性のあるすべての割込みを格納するのに十分な大きさである。ブリッジＡＳＩＣ１４内の割込みコレクタモジュール４０は、マイクロプロセッサ１２により実行されるプログラムが、２つのレジスタ読出しサイクルの中ですべての中央要因レジスタアレイ５０の内で、どの割込みが保留中であるか一意に判定できる表示板メカニズムを含む。マイクロプロセッサ１２上で動作中のソフトウェア割込み処理ハンドラルーチンは、割込みコレクタ４０の中央要因アレイ５０内のどの要因レジスタがその割込みの原因であるかを示す表示板の最初の読出しを起動する。２番目の読出しステップは、特定の割込みイベントを決定するための要因レジスタそれ自身の読出しである。
【００１８】
割込みコレクタ４０内の初期の割込み検知メカニズムは、原因がわかるとすぐにマイクロプロセッサ１２へ割り込み信号をアサートする。その初期の割込み指示の特徴は、有効な割込み原因が認知されるとすぐに適切な表示板レジスタビットを一時的にセットして、適切なマイクロプロセッサ割込み信号（マスク不可割込み、あるいは一般目的の割込み）をアサートするために用いられる。１つの実施形態においては、初期の指示は、３ビットＡＳＩＣ識別子、３ビット要因レジスタＩＤ及び１ビットパリティフィールドが受信された後、発生する。その３２ビット要因レジスタのシリアルシフトは、マイクロプロセッサコンテキストスワップ時間と並列に発生する。この時間の間マイクロプロセッサは、従来の命令処理から割り込み命令処理に分岐してオペレーティングシステムレベルの割込みサービスルーチンを呼ぶ。割り込みサービスルーチンは、以上説明した２ステップ読出しオペレーションを実行する。
【００１９】
割込みは、低ピン出力ディジーチェインインタフェースを使用して他のＡＳＩＣの割込みコントローラ（図１中の６０、７０及び８０ように例示された）から割込みコレクタ４０へ移動する。このシリアル命令は、割込み要因値を格納する際に使用される、中央要因アレイインデックスを一意に識別するためのフィールドを含む。システム１０のアーキテクチャは、１つのシリアル転送の間に３２個までの一意の割り込みイベントを転送する能力を提供する。
【００２０】
図２は、（図１中に示した）システム１０によって実行された割込みサービスの１つの方法を例示する流れ図１００である。さらに具体的に言うと、流れ図１００は、マイクロプロセッサベースのシステム内の割込み信号の処理のための方法を例示している。その方法は、割込みコントローラの割込み要因レジスタ内への受信割込み信号の格納１０２を含む。割込み命令は、その後、割込みコントローラから割込みコレクタへと出力１０４される。割込み命令は、識別子フィールド、要因レジスタＩＤフィールド及び要因値フィールドを含む。要因値フィールドの内容は、割込み要因レジスタの内容を基本とする。割込み信号は、割込みコレクタによる識別子フィールド及び要因レジスタＩＤフィールドの受信に基づいて割込みコレクタによってマイクロプロセッサにアサート１０６される。要因値フィールドは、マイクロプロセッサが割込みコレクタからの識別子フィールド及び要因レジスタＩＤフィールドの受信をサービスしている間に、割込みコレクタ内の要因アレイにシフト１０８される。
【００２１】
ここで説明した割込み処理のアプローチは、ハードウェアアーキテクチャと割込み原因表示板を組み合わせて使用しながら、ソフトウェア割込み処理ハンドラ応答時間と共にハードウェア割り込み信号待ち時間のための総時間を減少させる。このアプローチでは、単純な２ステップレジスタ読出しを使ってマイクロプロセッサ上で動作しているソフトウェア割込み処理ハンドラルーチンにより、可能性のある各割込み原因を一意に区別することができる。最初の読出しは、中央要因レジスタアレイ中にあるどの割込みレジスタが保留中の割込みを有するかを、ソフトウェア割込み処理ハンドラルーチンに告げる中央要因表示板に対するものである。２番目の読出しは、保留中の割込みを含んでいる特定の中央要因レジスタに対するものである。各割込み原因は、パルスベースの割込みを生成するために構成され、すべての割込み原因は、別個に割込み要因レジスタ内の一意のビットポジションに割り当てられる。説明した割込みアプローチは、Ｉ／Ｏピンの使用を最小にし、対応する割込み原因の数の増加に対しても容易に拡張性を提供する。
【００２２】
本発明は、１つ以上の特定の実施形態を参照して述べられてきたが、この分野の技術を有する人が本発明の趣旨及び範囲を逸脱することなく、多くの変更を行うことができることを認識できよう。
【図面の簡単な説明】
【００２３】
【図１】図１は、複数のＡＳＩＣ及びマイクロプロセッサとともに使用される割込みの仕組みを例示したブロック図である。
【図２】図２は、図１のシステムによって実行される割込みサービスの方法を例示する流れ図である。
【図１】
2008021298.tif 000003
【図２】
2008021298.tif 000004
【外国語明細書】
2008021298000001.pdf