特許第6687998号(P6687998)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エイアールエム リミテッドの特許一覧

<>
  • 特許6687998-推測的割込みシグナリング 図000002
  • 特許6687998-推測的割込みシグナリング 図000003
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6687998
(24)【登録日】2020年4月7日
(45)【発行日】2020年4月28日
(54)【発明の名称】推測的割込みシグナリング
(51)【国際特許分類】
   G06F 13/26 20060101AFI20200421BHJP
   G06F 13/24 20060101ALI20200421BHJP
   G06F 9/48 20060101ALI20200421BHJP
【FI】
   G06F13/26
   G06F13/24 330
   G06F9/48 100N
   G06F9/48 200Z
【請求項の数】10
【外国語出願】
【全頁数】9
(21)【出願番号】特願2015-8255(P2015-8255)
(22)【出願日】2015年1月20日
(65)【公開番号】特開2015-141717(P2015-141717A)
(43)【公開日】2015年8月3日
【審査請求日】2018年1月12日
(31)【優先権主張番号】1401418.7
(32)【優先日】2014年1月28日
(33)【優先権主張国】GB
【前置審査】
(73)【特許権者】
【識別番号】594154428
【氏名又は名称】エイアールエム リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】マイケル ケネディー
(72)【発明者】
【氏名】サイモン ジョン クラスク
(72)【発明者】
【氏名】アンドリュー ターナー
(72)【発明者】
【氏名】リチャード アンソニー レイン
【審査官】 田中 啓介
(56)【参考文献】
【文献】 特開2004−199698(JP,A)
【文献】 特開2011−123715(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F9/455−9/54
G06F13/20−13/42
(57)【特許請求の範囲】
【請求項1】
データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するように構成された、割込み信号受信機と、
前記割込み信号受信機に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するように構成された、優先度レベル・アービトレータであって、前記最高優先度レベルの前記判定は、前記所定の時間に続くアービトレーション完了時間に完了し、前記アービトレーション完了時間に続いて、前記最高優先度レベルを示す優先度データを優先度データストアに記憶するように構成された、優先度レベル・アービトレータと、
前記割込み信号受信機に結合され前記優先度レベル・アービトレータと並列して動作して、前記複数の割込み信号の1つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするように構成された、トリガ回路と
を備え
前記トリガ回路に接続された処理回路が、前記トリガ信号がアサートされるとき、且つ前記アービトレーション完了時間の前に、割込み処理を開始し、前記アービトレーション完了時間の後に、前記優先度データストアから前記優先度データを読み込み、且つ、前記割込み処理が開始されたときに、前記最高優先度レベルが前記処理回路によって実行される処理の優先度レベルよりも低いことを、前記優先度データが示している場合、前記割込み処理を終了させるように構成されている、前記装置。
【請求項2】
前記アービトレーション完了時間よりも前に実行される前記割込み処理は、可逆的である、請求項に記載の装置。
【請求項3】
前記アービトレーション完了時間よりも前に実行される前記割込み処理は、前記割込み処理が完了するときに復旧されることになる、事前割込み状態値を保存することを含む、請求項に記載の装置。
【請求項4】
前記割込み信号受信機と前記トリガ回路との間に接続され、前記トリガ信号をマスク値でマスクすることによって、前記複数の割込み信号の1つ又は複数のアサーションを抑止するように構成された、マスク回路を備えた、請求項1に記載の装置。
【請求項5】
前記マスク回路は、前記複数の割込み信号の前記1つ又は複数の優先度値を、処理回路によって実行される処理の優先度レベルと比較することによって、前記マスク値を判定するように構成されている、請求項に記載の装置。
【請求項6】
前記マスク回路によって、前記マスク値を現在の値から更新された値に更新することは、前記複数の割込み信号の前記1つ若しくは複数の前記優先度値の1つ若しくは複数における変更、及び処理回路によって実行される処理の前記優先度レベルにおける変更に応答して実行され、前記変更に続くが、前記更新の完了の前に、前記マスク値に対する前記現在の値が、前記マスク回路によって使用される、請求項に記載の装置。
【請求項7】
前記割込み信号受信機、前記優先度レベル・アービトレータ、及び前記トリガ回路は、割込みコントローラの一部である、請求項1に記載の装置。
【請求項8】
前記処理回路は、プログラム命令を実行するためのプログラマブル・プロセッサであり、前記割込み処理は、割込みサービス・ルーチンを実行することを含む、請求項に記載の装置。
【請求項9】
データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信する、割込み信号受信手段と、
前記割込み信号受信手段に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定する、優先度レベル・アービトレート手段であって、前記最高優先度レベルの前記判定は、前記所定の時間に続くアービトレーション完了時間に完了し、前記アービトレーション完了時間に続いて、前記最高優先度レベルを示す優先度データを優先度データストアに記憶するように構成された、優先度レベル・アービトレート手段と、
前記割込み信号受信手段に結合され前記優先度レベル・アービトレート手段と並列して動作して、前記複数の割込み信号の1つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートする、トリガ手段と
を備え
前記トリガ手段に接続された処理回路が、前記トリガ信号がアサートされるとき、且つ前記アービトレーション完了時間の前に、割込み処理を開始し、前記アービトレーション完了時間の後に、前記優先度データストアから前記優先度データを読み込み、且つ、前記割込み処理が開始されたときに、前記最高優先度レベルが前記処理回路によって実行される処理の優先度レベルよりも低いことを、前記優先度データが示している場合、前記割込み処理を終了させるように構成されている、前記装置。
【請求項10】
データを処理する方法であって、
割込み信号受信機が、それぞれの優先度レベルを有する複数の割込み信号を受信するステップと、
優先度レベル・アービトレータが、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するステップであって、前記最高優先度レベルの前記判定は、前記所定の時間に続くアービトレーション完了時間に完了し、前記アービトレーション完了時間に続いて、前記最高優先度レベルを示す優先度データが優先度データストアに記憶される、ステップと、
前記割込み信号の間で前記最高優先度レベルを前記判定するステップと並列して、前記複数の割込み信号の1つ又は複数がアサートされる場合、トリガ回路が、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするステップと
を含み、
処理回路が、前記トリガ信号がアサートされるとき、且つ前記アービトレーション完了時間の前に、割込み処理を開始し、前記アービトレーション完了時間の後に、前記優先度データストアから前記優先度データを読み込み、且つ、前記割込み処理が開始されたときに、前記最高優先度レベルが前記処理回路によって実行される処理の優先度レベルよりも低いことを、前記優先度データが示している場合、前記割込み処理を終了させる、前記方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理システムの分野に関する。より詳細には、本開示は、複数の異なるソースからの割込み信号の受信を管理し、それらの異なる割込みソースと関連付けられた優先度レベルをアービトレートする機構に関する。
【背景技術】
【0002】
同時に保留中であることがある、異なる割込み信号に関連付けられた優先度レベル間でアービトレートする割込みコントローラを提供することが知られている。リアルタイム処理システムでは、多数の潜在的な割込みソースが、異なる処理応答をトリガする役目を果たすことがある。これらの割込みソースの一部は、他の割込みソースと比較して、それらに関連付けられたより上位のレベルの優先度を有する。したがって、割込みはそれぞれ優先度レベルに関連付けられ、且つ、複数の割込みが同時にアサートされるとき、それらの優先度レベルが比較されて、最高優先度レベルを有する割込みを判定し、それによって、最高優先度保留割込み(HPPI:highest priority pending interrupt)が識別されるようになる。HPPIは、他の保留割込みよりも前に処理するために選択される。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の少なくとも一部の実例の実施例は、データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するように構成された、割込み信号受信機と、
前記割込み信号受信機に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するように構成された、優先度レベル・アービトレータであって、前記最高優先度レベルの判定は、前記所定の時間に続くアービトレーション完了時間に完了する、優先度レベル・アービトレータと、
前記割込み信号受信機の回路に結合され、及び、前記優先度レベル・アービトレータと並列して動作して、前記複数の割込み信号の1つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするように構成された、トリガ回路と
を備えた装置を提供する。
【0004】
本技術は、優先度アービトレーションが、割込みのシグナリングから分離され、且つそれと並列して扱われて、割込み処理を開始することができるという実現を認識及び活用する。システムは、それが受信した割込み信号がHPPIであることを推測することができる。実際には、この推測はおそらく大半のケースでは正確であり、且つ割込みの待ち時間が減少することによって性能を得ることが、誤った推測から回復する効果よりも重要となる。
【0005】
本開示の少なくとも一部の実例の実施例は、データを処理するための装置であって、
それぞれの優先度レベルを有する複数の割込み信号を受信する、割込み信号受信手段と、
前記割込み信号受信手段に結合され、所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定する、優先度レベル・アービトレート手段であって、前記最高優先度レベルの判定は、前記所定の時間に続くアービトレーション完了時間に完了する、優先度レベル・アービトレート手段と、
前記割込み信号受信手段に結合され、前記優先度レベル・アービトレート手段と並列して動作して、前記複数の割込み信号の1つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートする、トリガ手段と
を備えた装置を提供する。
【0006】
本開示の少なくとも一部の実例の実施例は、データを処理する方法であって、
それぞれの優先度レベルを有する複数の割込み信号を受信するステップと、
所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定するステップであって、前記最高優先度レベルの判定は、前記所定の時間に続くアービトレーション完了時間に完了する、ステップと、
前記最高優先度レベルを判定するステップと並列して、前記複数の割込み信号の1つ又は複数がアサートされる場合、前記アービトレーション完了時間の前に割込み処理を開始するためのトリガ信号をアサートするステップと
を備えた方法を提供する。
【0007】
本開示の上記及び他の目的、特徴及び利点は、添付図面とともに読まれることになる例示的な実施例の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0008】
図1】割込みコントローラ及びプログラマブル・プロセッサを含む、処理システムを概略的に示す図である。
図2図1のシステム内での割込み処理のための処理のフローを概略的に示す図である。
【発明を実施するための形態】
【0009】
図1は、割込みコントローラ3と、例えば、割込みサービス・ルーチン(ISR:interrupt service routines)の実行をトリガするために、割込みコントローラ3からの割込み信号による割込みを受けることがあるプログラム命令を実行する、プログラマブル・プロセッサ・コアの形式でのプログラマブル処理回路4と、を含むデータ処理システム2を概略的に示す。このような一般配置は、リアルタイム処理システムの技術分野における当業者にとってよく知られているであろう。
【0010】
割込みコントローラ3は、割込み信号受信機6、マスク回路8、優先度レベル・アービトレータ10、及びトリガ回路12を含む。割込み信号受信機6は、関連付けられた優先度レベルをそれぞれが有する、複数の割込み信号を受信する。優先度レベルは、ソフトウェア制御の下に設定され、且つメモリ14内に記憶される。
【0011】
アービトレーション期間において発生し、且つ、割込みがアサートされる所定の時間に続くアービトレーション完了時間において完了する、優先度レベル・アービトレーションを、優先度レベル・アービトレータ10が実行することができるように、プログラマブル優先度レベルが、それに提供される。マスク回路8は、割込み信号受信機6によって受信された割込み信号にマスク値を提供し、且つ優先度レベル・アービトレータ10及びトリガ回路12に、適用されるマスク値によってマスクされていない割込み信号を渡す。マスク値は、割込み優先度レベル(値)及び現在のプロセッサ優先度レベルに応じて、マスク更新回路によって判定されて、それによって、現在のプロセッサ優先度レベルよりも高い優先度レベルを有する割込みのみが、マスク回路8を通過し、且つ優先度レベル・アービトレータ10及びトリガ回路12に到達することが許可される。プログラマブル優先度値(レベル)の1つが変更される、又はプロセッサ優先度レベルが変更されるときはいつでも、マスク更新回路は、適用されるマスク値を更新する。このようなマスク値の更新は、完了するのに幾つかの処理サイクルを要し得るが、一旦、完了することによって、割込みが、処理回路4の現在の優先度レベルよりも高い優先度レベルを有しない限り、それらが処理回路4に到達することから除外される。このことは、割込みの推測的なトリガリングを繰り返すことによって、処理回路4によって実行される処理内での進行を妨げる、異常な状況を回避することに役立つ。
【0012】
マスク回路8から現れる割込みは、優先度レベル・アービトレータ10及びトリガ回路12の両方に並列に渡される。トリガ回路12は、それへの任意の入力がアサートされる場合、トリガ信号IRQを生成する、比較的単純広範囲なOR回路であってもよい。このような単純なOR関数を実行することができることでの待ち時間は比較的短く、したがって、トリガ信号を発行する際の遅延は、好都合に短いことがある。優先度レベル・アービトレータ10が、そのアービトレーション動作を完了する前、ゆえに、アービトレーション完了時間に到達する前に、トリガ信号が処理回路4に発行される。
【0013】
多数の割込みを伴うシステムでは、優先度レベルは、きめが細かく、且つマルチビット数によって表されてもよい。HPPIを判定するための、潜在的に多数のマルチビット数の比較は、それに関連付けられた著しい待ち時間を有する処理である。アサートされる割込み信号を供給することができることでの待ち時間は、多くのリアルタイム処理システムにおける重要な性能パラメータである。アサートされている割込み信号と、開始されている、関連付けられた割込みとの間の遅延を低減させることができる測定は都合がよい。
【0014】
優先度レベル・アービトレータ10は、割込み信号を、それらがトリガ回路12によって受信されるのと同時に、マスク回路8から受信する。優先度レベル・アービトレータ10はまた、それらの信号に関連付けられた優先度レベルを受信する。割込み信号は、それらが受信された割込み信号受信機6の物理入力に対応する割込み番号に、それらを関連付けている。優先度レベル・アービトレータ10は、任意の所定の時間に同時にアサートされる割込み信号の間で、最高優先度レベルを判定する機能を実行する。この判定は、結果が最高優先度保留割込み(HPPI)を識別する信号として優先度レベル・アービトレータ10から出力される前の、アービトレーション待ち時間期間を要する。このHPPI信号は、HPPIの割込み信号識別子としての割込み番号とともに、HPPIに関連付けられた優先度レベルを含むことができる。
【0015】
HPPI特性データは、優先度データとして、処理回路4内の優先度データストア16内に記憶される。この優先度データは、トリガ回路12によって生成されたIRQ信号によって、割込み処理が既に開始されてしまう後までは、優先度データストア16に書き込まれない。したがって、HPPIを識別する信号の生成を待機して割込み処理の開始が遅延することはない。
【0016】
処理回路4は、トリガ信号IRQを受信し、且つ、まず状態保存動作(現在のレジスタファイル内容を保存することなど)を制御し、その後プログラム命令の割込みサービス・ルーチン(ISR)の実行を開始する割込み処理を開始する、割込み処理制御回路18を含む。状態保存などの割込み処理の初期部分は可逆的であり、それによって、割込み処理が誤って推測された場合に状態データが消失せず、且つ割込み処理を終了することができる。
【0017】
処理回路4内の終了コントローラ20は、優先度データストア16に書き込まれた優先度データに応答して、推測的に開始されている割込みに関連付けられた優先度レベルが、現在のプロセッサ優先度レベルよりも高いか否かを判定する。終了コントローラ20が、HPPI優先度レベルが現在のプロセッサ優先度レベルよりも高くないと判定した場合、それは、割込み処理制御回路18の制御の下に実行されている割込み処理を終了させる役目を果たす。トリガ信号による割込み処理の開始と比較して、HPPIデータの可用性の相対的タイミングは、容易に可逆的である状態保存動作のみが、ある時点までに行われるということであってもよく、したがって、単純な復帰が、前に実行されていた処理になされてもよく、開始された割込みが過度に複雑でなく且つ遅延なく、疑似的なものとして扱われてもよい。
【0018】
図2は、図1のシステムによって実行される処理のフローを概略的に示す図である。所定の時間にアサートされる割込みは、割込みコントローラによる処理を受ける割込み状態22を構成する。並列して動作するのは、優先付け24を実行する、優先度レベル・アービトレータ10と、トリガ信号が発行されることになる推測26を開始して、割込み処理及び早期IRQ信号28の生成を開始する、トリガ回路12と、である。優先付け24は、優先度レベル・アービトレータ10によって実行され、且つ、適宜、非推測的IRQ信号32とともにHPPIに対する割込み識別子30を生成することになる。
【0019】
割込み状態22が生成される所定の時間、トリガ信号が最初にアサートされる時間、及び優先度レベル・アービトレータ10が割込み状態22に対するHPPI信号を生成したアービトレーション完了時間は全て、図2の時間軸上で示される。トリガ信号がアービトレーション完了時間の前にアサートされることを理解されるであろう。
【0020】
早期IRQ信号28は、割込処理、及び採用される例外を開始する。割込処理の第1の部分は、状態保存動作など、可逆的である。割込み処理の後続部分は、割込みサービス・ルーチン(ISR)に対応するプログラム命令の実行を伴ってもよく、且つアービトレーション完了時間の後に行われる。割込みサービス・ルーチンの第1の動作は、優先度データストア16から割込み識別子を読むこと、及び割込みが疑似的であるか否かを判定することであってもよい。割込みが疑似的である1つの理由は、割込みが、終了コントローラ20によって識別されるように、誤って推測されたことである。終了コントローラ20は、割込み識別子を、割込みが疑似的であることを示す値に設定されるようにしてもよい。割込み識別子は、マルチ・プロセッサ・システムにおいて、割込みが別のプロセッサによって既に処理されていたなどの他の理由で、割込みが疑似的であることを示す値に設定されもよい。割込みが疑似的である場合、割込みルーチンからの即時復帰がトリガされてもよい。割込みが疑似的でない場合、割込みサービス・ルーチン内の実行ハンドラが、通常の方法で実行されてもよい。
【0021】
優先度レベル・アービトレータは、アービトレーション処理の完了に続いて、最高優先度レベルを示す優先度データを、優先度データストアに記憶するように構成されてもよい。次に、割込み処理を処理している処理回路は、その割込み処理において、記憶された優先度データを適切なポイントで読み込んで、割込み処理が開始されたとき、処理回路によって実行されていた処理よりも低い最高優先度レベルを、優先度データが示す場合、すなわち、割込みが、処理回路によって既に実行されていた処理の優先度レベルと比較して、十分に高い優先度レベルを有していなかったので、割込みがトリガされてしまうべきではなかった場合、割込み処理を終了させるか否かを判定してもよい。
【0022】
アービトレーション完了時間よりも前に実行される割込み処理が選択されて、可逆的になるとき、誤った推測的割込み処理の影響が低減することがあり、例えば、推測が解決されるよりも前に実行される割込み処理によって状態データが消失しない、又は変更されない。アービトレーション完了時間よりも前に実行することができる、このような可逆的処理の実例は、処理が完了した後に復旧されることが意図される、事前割込み状態値の保存を完了することである。典型的な割込みの保存は、そのような状態保存を、実行される初期動作の1つとして実行し、そのような動作は、推測され、且つ比較的容易に反転されてもよい。このような推測の反転は実際には、状態変更が行われないので、採用されるべき動作が行われることを要しない、又は、スタック・ポインタ値を、スタック・メモリへの任意の推測的な状態保存の前の位置に再設定するなどの、わずかな変更のみを要することがある。
【0023】
誤って推測された割込を低減させるために、マスク回路は、割込み信号受信機と、トリガ回路との間に接続されてもよい。このようなマスク回路は、通常ならプログラマブル・マスク値に応じて、トリガ信号のアサーションをもたらすことになる、1つ又は複数の割込み信号のアサーションを抑制するように構成されてもよい。このマスク値は、継続している処理に割込むことを所与の割込みが許可されるべきか否かを判定するために、そのときに処理回路によって実行された処理の優先度レベルと、関係している割込み信号の優先度レベルを比較することによって、設定されてもよい。関連付けられたマスク値を更新することに関連付けられた時間差が存在することがあるが、マスク値が適当であると、誤った推測を抑制することができる。このことは、誤って割り込まれた処理内での進行を妨げ又は阻害する方式で、誤った推測が繰り返して実行される異常な状況を回避するのに有用である。
【0024】
マスク値は、割込み信号に関連付けられた優先度レベル、又は処理回路によって実行されている処理に関連付けられた優先度レベルが変更されるときはいつでも更新されてもよい。
【0025】
一部の実施例では、割込み信号機、優先度レベル・アービトレータ、及びトリガ回路は全て、割込みコントローラの一部であってもよい。このような割込みコントローラは、システム・オン・チップ集積回路などの、データ処理システム内で別々に設けられてもよい。割込みコントローラは、種々の異なる形式の処理回路とともに使用されてもよく、且つそれ自体におけるエンティティとみなされてもよい。
【0026】
割込みを受ける処理回路は、種々の異なる形式を有してもよい。このような処理回路に対する1つの共通の形式は、プログラム命令を実行するためのプログラマブル・プロセッサである。このコンテキスト内で、割込み処理は、割込みサービス・ルーチンの実行を含んでもよい。
【0027】
例示的な実施例が、添付図面を参照しながら本明細書で詳細に説明されてきたが、特許請求の範囲は、これらの簡潔な実施例に限定されず、添付の特許請求の範囲の範囲及び精神から逸脱することなく、当業者による種々の変更、追加、及び修正をそれにもたらすことができることが理解されるべきである。例えば、従属請求項の特徴の種々の組合せが、独立請求項の特徴とともになされることが可能である。
図1
図2