(57)【要約】【課題】複数の異なるソースからの割込み信号の受信を管理し、それらの異なる割込みソースと関連付けられた優先度レベルをアービトレートする機構を提供すること。【解決手段】データ処理システム２は、優先度レベル・アービトレータ１０及びトリガ回路１２を有する割込みコントローラを含む。優先度レベル・アービトレータ１０及びトリガ回路１２は並列して動作して、割込み信号受信機６によって受信された割込み信号を処理する。トリガ回路１２は、優先度レベル・アービトレータ１０がアービトレーション完了時間における、そのアービトレーションの判定を完了する前に、割込み処理を開始するトリガ信号を生成する。トリガ信号によってトリガされた割込み処理が適切でない場合、アービトレーション完了時間の後に、アービトレーションの結果が知られると、終了される。【選択図】図１
2015141717.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するように構成された、割込み信号受信機と、
前記割込み信号受信機に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するように構成された、優先度レベル・アービトレータであって、前記最高優先度レベルの前記判定は、前記所定の時間に続くアービトレーション完了時間に完了する、優先度レベル・アービトレータと、
前記割込み信号受信機回路に結合され、前記優先度レベル・アービトレータと並列して動作して、前記複数の割込み信号の１つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするように構成された、トリガ回路と
を備えた前記装置。
【請求項２】
前記優先度レベル・アービトレータは、前記アービトレーション完了時間に続いて、前記最高優先度レベルを示す優先度データを、優先度データストアに記憶するように構成されている、請求項１に記載の装置。
【請求項３】
前記トリガ回路に結合され、前記トリガ信号がアサートされるとき、且つ前記アービトレーション完了時間の前に、割込み処理を開始するように構成された、処理回路を備え、前記処理回路は、前記アービトレーション完了時間の後に、前記優先度データストアから前記優先度データを読み込み、且つ、前記割込み処理が開始されたときに、前記処理回路によって実行される処理の優先度レベルよりも低い最高優先度レベルを、前記優先度データが示している場合、前記割込み処理を終了させるように構成されている、請求項２に記載の装置。
【請求項４】
前記アービトレーション完了時間よりも前に実行される前記割込み処理は、可逆的である、請求項３に記載の装置。
【請求項５】
前記アービトレーション完了時間よりも前に実行される前記割込み処理は、前記割込み処理が完了するときに復旧されることになる、事前割込み状態値を保存することを含む、請求項４に記載の装置。
【請求項６】
前記割込み信号受信機と前記トリガ回路との間に接続され、前記複数の割込み信号の１つ又は複数のアサーションが、マスク値に応じて、前記トリガ信号のアサーションをもたらすことを抑止するように構成された、マスク回路を備えた、請求項１に記載の装置。
【請求項７】
前記マスク回路は、前記複数の割込み信号の前記１つ又は複数の優先度値を、前記処理回路によって実行される処理の優先度レベルと比較することによって、前記マスク値を判定するように構成されている、請求項６に記載の装置。
【請求項８】
前記マスク回路によって、前記マスク値を現在の値から更新された値に更新することは、前記複数の割込み信号の前記１つ若しくは複数の前記優先度値の１つ若しくは複数における変更、及び前記処理回路によって実行される処理の前記優先度レベルにおける変更に応答して実行され、前記変更に続くが、前記更新の完了の前に、前記マスク値に対する前記現在の値が、前記マスク回路によって使用される、請求項７に記載の装置。
【請求項９】
前記割込み信号受信機、前記優先度レベル・アービトレータ、及び前記トリガ回路は、割込みコントローラの一部である、請求項１に記載の装置。
【請求項１０】
前記処理回路は、プログラム命令を実行するためのプログラマブル・プロセッサであり、前記割込み処理は、割込みサービス・ルーチンを実行することを含む、請求項３に記載の装置。
【請求項１１】
データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信する、割込み信号受信手段と、
前記割込み信号受信手段に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定する、優先度レベル・アービトレート手段であって、前記最高優先度レベルの前記判定は、前記所定の時間に続くアービトレーション完了時間に完了する、優先度レベル・アービトレート手段と、
前記割込み信号受信手段に結合され、前記優先度レベル・アービトレート手段と並列して動作して、前記複数の割込み信号の１つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートする、トリガ手段と
を備えた前記装置。
【請求項１２】
データを処理する方法であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するステップと、
所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するステップであって、前記最高優先度レベルの前記判定は、前記所定の時間に続くアービトレーション完了時間に完了する、ステップと、
前記最高優先度レベルを前記判定するステップと並列して、前記複数の割込み信号の１つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするステップと
を含む前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理システムの分野に関する。より詳細には、本開示は、複数の異なるソースからの割込み信号の受信を管理し、それらの異なる割込みソースと関連付けられた優先度レベルをアービトレートする機構に関する。
【背景技術】
【０００２】
同時に保留中であることがある、異なる割込み信号に関連付けられた優先度レベル間でアービトレートする割込みコントローラを提供することが知られている。リアルタイム処理システムでは、多数の潜在的な割込みソースが、異なる処理応答をトリガする役目を果たすことがある。これらの割込みソースの一部は、他の割込みソースと比較して、それらに関連付けられたより上位のレベルの優先度を有する。したがって、割込みはそれぞれ優先度レベルに関連付けられ、且つ、複数の割込みが同時にアサートされるとき、それらの優先度レベルが比較されて、最高優先度レベルを有する割込みを判定し、それによって、最高優先度保留割込み（ＨＰＰＩ：ｈｉｇｈｅｓｔ  ｐｒｉｏｒｉｔｙ  ｐｅｎｄｉｎｇ  ｉｎｔｅｒｒｕｐｔ）が識別されるようになる。ＨＰＰＩは、他の保留割込みよりも前に処理するために選択される。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の少なくとも一部の実例の実施例は、データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するように構成された、割込み信号受信機と、
前記割込み信号受信機に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するように構成された、優先度レベル・アービトレータであって、前記最高優先度レベルの判定は、前記所定の時間に続くアービトレーション完了時間に完了する、優先度レベル・アービトレータと、
前記割込み信号受信機の回路に結合され、及び、前記優先度レベル・アービトレータと並列して動作して、前記複数の割込み信号の１つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするように構成された、トリガ回路と
を備えた装置を提供する。
【０００４】
本技術は、優先度アービトレーションが、割込みのシグナリングから分離され、且つそれと並列して扱われて、割込み処理を開始することができるという実現を認識及び活用する。システムは、それが受信した割込み信号がＨＰＰＩであることを推測することができる。実際には、この推測はおそらく大半のケースでは正確であり、且つ割込みの待ち時間が減少することによって性能を得ることが、誤った推測から回復する効果よりも重要となる。
【０００５】
本開示の少なくとも一部の実例の実施例は、データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信する、割込み信号受信手段と、
前記割込み信号受信手段に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定する、優先度レベル・アービトレート手段であって、前記最高優先度レベルの判定は、前記所定の時間に続くアービトレーション完了時間に完了する、優先度レベル・アービトレート手段と、
前記割込み信号受信手段に結合され、前記優先度レベル・アービトレート手段と並列して動作して、前記複数の割込み信号の１つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートする、トリガ手段と
を備えた装置を提供する。
【０００６】
本開示の少なくとも一部の実例の実施例は、データを処理する方法であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するステップと、
所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するステップであって、前記最高優先度レベルの判定は、前記所定の時間に続くアービトレーション完了時間に完了する、ステップと、
前記最高優先度レベルを判定するステップと並列して、前記複数の割込み信号の１つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするステップと
を備えた方法を提供する。
【０００７】
本開示の上記及び他の目的、特徴及び利点は、添付図面とともに読まれることになる例示的な実施例の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】割込みコントローラ及びプログラマブル・プロセッサを含む、処理システムを概略的に示す図である。
【図２】図１のシステム内での割込み処理のための処理のフローを概略的に示す図である。
【発明を実施するための形態】
【０００９】
図１は、割込みコントローラ３と、例えば、割込みサービス・ルーチン（ＩＳＲ：ｉｎｔｅｒｒｕｐｔ  ｓｅｒｖｉｃｅ  ｒｏｕｔｉｎｅｓ）の実行をトリガするために、割込みコントローラ３からの割込み信号による割込みを受けることがあるプログラム命令を実行する、プログラマブル・プロセッサ・コアの形式でのプログラマブル処理回路４と、を含むデータ処理システム２を概略的に示す。このような一般配置は、リアルタイム処理システムの技術分野における当業者にとってよく知られているであろう。
【００１０】
割込みコントローラ３は、割込み信号受信機６、マスク回路８、優先度レベル・アービトレータ１０、及びトリガ回路１２を含む。割込み信号受信機６は、関連付けられた優先度レベルをそれぞれが有する、複数の割込み信号を受信する。優先度レベルは、ソフトウェア制御の下に設定され、且つメモリ１４内に記憶される。
【００１１】
アービトレーション期間において発生し、且つ、割込みがアサートされる所定の時間に続くアービトレーション完了時間において完了する、優先度レベル・アービトレーションを、優先度レベル・アービトレータ１０が実行することができるように、プログラマブル優先度レベルが、それに提供される。マスク回路８は、割込み信号受信機６によって受信された割込み信号にマスク値を提供し、且つ優先度レベル・アービトレータ１０及びトリガ回路１２に、適用されるマスク値によってマスクされていない割込み信号を渡す。マスク値は、割込み優先度レベル（値）及び現在のプロセッサ優先度レベルに応じて、マスク更新回路によって判定されて、それによって、現在のプロセッサ優先度レベルよりも高い優先度レベルを有する割込みのみが、マスク回路８を通過し、且つ優先度レベル・アービトレータ１０及びトリガ回路１２に到達することが許可される。プログラマブル優先度値（レベル）の１つが変更される、又はプロセッサ優先度レベルが変更されるときはいつでも、マスク更新回路は、適用されるマスク値を更新する。このようなマスク値の更新は、完了するのに幾つかの処理サイクルを要し得るが、一旦、完了することによって、割込みが、処理回路４の現在の優先度レベルよりも高い優先度レベルを有しない限り、それらが処理回路４に到達することから除外される。このことは、割込みの推測的なトリガリングを繰り返すことによって、処理回路４によって実行される処理内での進行を妨げる、異常な状況を回避することに役立つ。
【００１２】
マスク回路８から現れる割込みは、優先度レベル・アービトレータ１０及びトリガ回路１２の両方に並列に渡される。トリガ回路１２は、それへの任意の入力がアサートされる場合、トリガ信号ＩＲＱを生成する、比較的単純広範囲なＯＲ回路であってもよい。このような単純なＯＲ関数を実行することができることでの待ち時間は比較的短く、したがって、トリガ信号を発行する際の遅延は、好都合に短いことがある。優先度レベル・アービトレータ１０が、そのアービトレーション動作を完了する前、ゆえに、アービトレーション完了時間に到達する前に、トリガ信号が処理回路４に発行される。
【００１３】
多数の割込みを伴うシステムでは、優先度レベルは、きめが細かく、且つマルチビット数によって表されてもよい。ＨＰＰＩを判定するための、潜在的に多数のマルチビット数の比較は、それに関連付けられた著しい待ち時間を有する処理である。アサートされる割込み信号を供給することができることでの待ち時間は、多くのリアルタイム処理システムにおける重要な性能パラメータである。アサートされている割込み信号と、開始されている、関連付けられた割込みとの間の遅延を低減させることができる測定は都合がよい。
【００１４】
優先度レベル・アービトレータ１０は、割込み信号を、それらがトリガ回路１２によって受信されるのと同時に、マスク回路８から受信する。優先度レベル・アービトレータ１０はまた、それらの信号に関連付けられた優先度レベルを受信する。割込み信号は、それらが受信された割込み信号受信機６の物理入力に対応する割込み番号に、それらを関連付けている。優先度レベル・アービトレータ１０は、任意の所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定する機能を実行する。この判定は、結果が最高優先度保留割込み（ＨＰＰＩ）を識別する信号として優先度レベル・アービトレータ１０から出力される前の、アービトレーション待ち時間期間を要する。このＨＰＰＩ信号は、ＨＰＰＩの割込み信号識別子としての割込み番号とともに、ＨＰＰＩに関連付けられた優先度レベルを含むことができる。
【００１５】
ＨＰＰＩ特性データは、優先度データとして、処理回路４内の優先度データストア１６内に記憶される。この優先度データは、トリガ回路１２によって生成されたＩＲＱ信号によって、割込み処理が既に開始されてしまう後までは、優先度データストア１６に書き込まれない。したがって、ＨＰＰＩを識別する信号の生成を待機して割込み処理の開始が遅延することはない。
【００１６】
処理回路４は、トリガ信号ＩＲＱを受信し、且つ、まず状態保存動作（現在のレジスタファイル内容を保存することなど）を制御し、その後プログラム命令の割込みサービス・ルーチン（ＩＳＲ）の実行を開始する割込み処理を開始する、割込み処理制御回路１８を含む。状態保存などの割込み処理の初期部分は可逆的であり、それによって、割込み処理が誤って推測された場合に状態データが消失せず、且つ割込み処理を終了することができる。
【００１７】
処理回路４内の終了コントローラ２０は、優先度データストア１６に書き込まれた優先度データに応答して、推測的に開始されている割込みに関連付けられた優先度レベルが、現在のプロセッサ優先度レベルよりも高いか否かを判定する。終了コントローラ２０が、ＨＰＰＩ優先度レベルが現在のプロセッサ優先度レベルよりも高くないと判定した場合、それは、割込み処理制御回路１８の制御の下に実行されている割込み処理を終了させる役目を果たす。トリガ信号による割込み処理の開始と比較して、ＨＰＰＩデータの可用性の相対的タイミングは、容易に可逆的である状態保存動作のみが、ある時点までに行われるということであってもよく、したがって、単純な復帰が、前に実行されていた処理になされてもよく、開始された割込みが過度に複雑でなく且つ遅延なく、疑似的なものとして扱われてもよい。
【００１８】
図２は、図１のシステムによって実行される処理のフローを概略的に示す図である。所定の時間にアサートされる割込みは、割込みコントローラによる処理を受ける割込み状態２２を構成する。並列して動作するのは、優先付け２４を実行する、優先度レベル・アービトレータ１０と、トリガ信号が発行されることになる推測２６を開始して、割込み処理及び早期ＩＲＱ信号２８の生成を開始する、トリガ回路１２と、である。優先付け２４は、優先度レベル・アービトレータ１０によって実行され、且つ、適宜、非推測的ＩＲＱ信号３２とともにＨＰＰＩに対する割込み識別子３０を生成することになる。
【００１９】
割込み状態２２が生成される所定の時間、トリガ信号が最初にアサートされる時間、及び優先度レベル・アービトレータ１０が割込み状態２２に対するＨＰＰＩ信号を生成したアービトレーション完了時間は全て、図２の時間軸上で示される。トリガ信号がアービトレーション完了時間の前にアサートされることを理解されるであろう。
【００２０】
早期ＩＲＱ信号２８は、割込処理、及び採用される例外を開始する。割込処理の第１の部分は、状態保存動作など、可逆的である。割込み処理の後続部分は、割込みサービス・ルーチン（ＩＳＲ）に対応するプログラム命令の実行を伴ってもよく、且つアービトレーション完了時間の後に行われる。割込みサービス・ルーチンの第１の動作は、優先度データストア１６から割込み識別子を読むこと、及び割込みが疑似的であるか否かを判定することであってもよい。割込みが疑似的である１つの理由は、割込みが、終了コントローラ２０によって識別されるように、誤って推測されたことである。終了コントローラ２０は、割込み識別子を、割込みが疑似的であることを示す値に設定されるようにしてもよい。割込み識別子は、マルチ・プロセッサ・システムにおいて、割込みが別のプロセッサによって既に処理されていたなどの他の理由で、割込みが疑似的であることを示す値に設定されもよい。割込みが疑似的である場合、割込みルーチンからの即時復帰がトリガされてもよい。割込みが疑似的でない場合、割込みサービス・ルーチン内の実行ハンドラが、通常の方法で実行されてもよい。
【００２１】
優先度レベル・アービトレータは、アービトレーション処理の完了に続いて、最高優先度レベルを示す優先度データを、優先度データストアに記憶するように構成されてもよい。次に、割込み処理を処理している処理回路は、その割込み処理において、記憶された優先度データを適切なポイントで読み込んで、割込み処理が開始されたとき、処理回路によって実行されていた処理よりも低い最高優先度レベルを、優先度データが示す場合、すなわち、割込みが、処理回路によって既に実行されていた処理の優先度レベルと比較して、十分に高い優先度レベルを有していなかったので、割込みがトリガされてしまうべきではなかった場合、割込み処理を終了させるか否かを判定してもよい。
【００２２】
アービトレーション完了時間よりも前に実行される割込み処理が選択されて、可逆的になるとき、誤った推測的割込み処理の影響が低減することがあり、例えば、推測が解決されるよりも前に実行される割込み処理によって状態データが消失しない、又は変更されない。アービトレーション完了時間よりも前に実行することができる、このような可逆的処理の実例は、処理が完了した後に復旧されることが意図される、事前割込み状態値の保存を完了することである。典型的な割込みの保存は、そのような状態保存を、実行される初期動作の１つとして実行し、そのような動作は、推測され、且つ比較的容易に反転されてもよい。このような推測の反転は実際には、状態変更が行われないので、採用されるべき動作が行われることを要しない、又は、スタック・ポインタ値を、スタック・メモリへの任意の推測的な状態保存の前の位置に再設定するなどの、わずかな変更のみを要することがある。
【００２３】
誤って推測された割込を低減させるために、マスク回路は、割込み信号受信機と、トリガ回路との間に接続されてもよい。このようなマスク回路は、通常ならプログラマブル・マスク値に応じて、トリガ信号のアサーションをもたらすことになる、１つ又は複数の割込み信号のアサーションを抑制するように構成されてもよい。このマスク値は、継続している処理に割込むことを所与の割込みが許可されるべきか否かを判定するために、そのときに処理回路によって実行された処理の優先度レベルと、関係している割込み信号の優先度レベルを比較することによって、設定されてもよい。関連付けられたマスク値を更新することに関連付けられた時間差が存在することがあるが、マスク値が適当であると、誤った推測を抑制することができる。このことは、誤って割り込まれた処理内での進行を妨げ又は阻害する方式で、誤った推測が繰り返して実行される異常な状況を回避するのに有用である。
【００２４】
マスク値は、割込み信号に関連付けられた優先度レベル、又は処理回路によって実行されている処理に関連付けられた優先度レベルが変更されるときはいつでも更新されてもよい。
【００２５】
一部の実施例では、割込み信号機、優先度レベル・アービトレータ、及びトリガ回路は全て、割込みコントローラの一部であってもよい。このような割込みコントローラは、システム・オン・チップ集積回路などの、データ処理システム内で別々に設けられてもよい。割込みコントローラは、種々の異なる形式の処理回路とともに使用されてもよく、且つそれ自体におけるエンティティとみなされてもよい。
【００２６】
割込みを受ける処理回路は、種々の異なる形式を有してもよい。このような処理回路に対する１つの共通の形式は、プログラム命令を実行するためのプログラマブル・プロセッサである。このコンテキスト内で、割込み処理は、割込みサービス・ルーチンの実行を含んでもよい。
【００２７】
例示的な実施例が、添付図面を参照しながら本明細書で詳細に説明されてきたが、特許請求の範囲は、これらの簡潔な実施例に限定されず、添付の特許請求の範囲の範囲及び精神から逸脱することなく、当業者による種々の変更、追加、及び修正をそれにもたらすことができることが理解されるべきである。例えば、従属請求項の特徴の種々の組合せが、独立請求項の特徴とともになされることが可能である。
【図１】
2015141717.tif 000003
【図２】
2015141717.tif 000004
【外国語明細書】
2015141717000001.pdf