(57)【要約】プロセッサ１００ に対する中断ソース１１，１２，１３，１４ によるアクセスを制御し、プロセッサにおいて現在の優先度Ｐｘ により現在の信号処理プログラムＲｘ の関連するブランチを制御する。入力端で、中断制御装置は中断ソースの接続のための予め定められた数の中断インターフェース２１，２２，２３，２４ を備え、各中断インターフェース２１，２２，２３，２４ は、優先値Ｐｉ とアドレスＡｄｉ を割当てられている。選択装置３０が付勢された中断インターフェースから最高の優先値Ｐｍａｘ を有するものを決定する。中断リクエストのようなプロセッサ１００ に対する個々の中断インターフェース２１，２２，２３，２４ のスルー接続は優先比較装置４０とブランチ論理装置６０により決定され、この論理装置６０は決定された最高の優先値Ｐｍａｘ と現在の優先値ｘ にに基づいてプロセッサ１００ 中にコンテキストバックアップルーチンＩの開始を制御し、ブランチ論理装置はコンテキストバックアップルーチンＩ中に受信された中断リクエストを考慮に入れるように現在実行中のコンテキストバックアップルーチンＩの終了またはその方向のみに向けて関連するブランチアドレスＶｉ を決定する。【選択図】図１
2004516547.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの信号入力に対する中断ソースによるアクセスを制御し、プロセッサにおいて現在実行されているプログラムをブランチし、
中断制御装置は入力端に中断ソースを接続するための予め定められた数の中断インターフェースを具備し、
各中断インターフェースは、特定のプログラム可能な、優先値およびアドレスを割当てられており、
選択装置が中断ソースによって付勢された中断インターフェースから最高の優先値および関係するアドレスを有するものを選択し、
優先比較装置は、選択装置により決定された最高の優先値と現在の優先値との比較の結果に基づいて中断リクエスト信号を発生し、その中断リクエスト信号によりプロセッサ中のコンテキストバックアップルーチンを開始させ、
ブランチ論理装置は選択装置により決定された最高の優先値に対応するブランチアドレスを生成する中断制御装置において、
ブランチアドレスはブランチ論理装置によって決定され、現在の最高の優先値を考慮に入れてコンテキストバックアップルーチンの終了の方向だけに向けてプロセッサにより転送または呼出し可能に構成されている中断制御装置。
【請求項２】
付勢された中断インターフェースの優先値が等しい場合には、選択装置は予め定められた補助基準に基づいて、特にアドレスに割当てられた優先度に基づいて選択を行う請求項１記載の中断制御装置。
【請求項３】
ブランチアドレスは、プロセッサがプログラムの実行のために必要な自分のブランチアドレスを決定することができるように、ベクトルテーブルベースレジスタの内容を修正し、そのアドレスによりプロセッサは特にブランチを準備するために中断制御装置に通報する請求項１または２記載の中断制御装置。
【請求項４】
ブランチアドレスは、アドレス修正として実行される請求項１または３記載の中断制御装置。
【請求項５】
ブランチアドレスは、特定のアドレスにおけるデータ修正として実行される請求項１または３記載の中断制御装置。
【請求項６】
セキュリティ装置はプロセッサに転送される前に中断リクエストまたはブランチアドレスエラーの可能性のある出力を検出して阻止または無効にする請求項１乃至５のいずれか１項記載の中断制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の中断ソースによるプロセッサへのアクセスを制御する中断制御装置に関する。
【０００２】
【従来の技術】
中断制御装置は、中断ソースが現在アクチブであるはことに応じてプロセッサ中のプログラムを切換えるように動作する。１例は自動車中のプロセッサであるが、それは現在加熱および空調の制御のような比較的重要ではないプログラムモードにおいて使用されている。その時間中にエンジン信号の過熱を温度センサが検出したとき、プロセッサは迅速にエンジン制御プログラムを切換えて損傷が生じないようにする。２以上の中断ソースが同時にプログラム変更のための信号を送る競合の場合には、中断制御装置が予め定められた優先度にしたがって次々にプロセッサの中断入力に接続されるように構成されることによって解決される。このため、各中断ソースは別々に中断インターフェースに接続され、そのインターフェースはアドレスおよび予め定められた特定のプログラム可能な優先値によって個別化される。さらに、各中断インターフェースは通常少なくとも２つの設定可能なフラグを割当てられており、それによって中断制御装置は中断ソースによって開始された中断リクエストを識別し、他方では各中断インターフェースのエネーブル、ディスエーブルを中断ソースに示す。
【０００３】
全ての中断インターフェースは選択装置に結合され、その選択装置は入来する中断リクエストから最高の優先度を有するものを選択する。優先度比較装置は選択装置によって決定された最高の優先度を現在のプログラムの優先度と比較し、リクエストされた優先度が現在のプログラムの優先度よりも高い場合にはプロセッサの中断入力に中断リクエスト信号を与える。優先度が低い場合には、プログラムは進行される。一般に、プロセッサは中断リクエストが高い優先度を有する場合であっても直ちに高い優先度のプログラムに変更することはできない。リクエストおよびエネーブル信号の交換がプロセッサと中断制御装置との間で行われる。これは通常“ハンドシェイク”と呼ばれている。中断制御装置中のブランチ論理装置は、プログラムブランチのためにプロセッサによりポーリングされる最高の優先度の中断インターフェースの優先度またはアドレスを供給される。ブランチ論理装置はまた一般にハンドシェイクを制御し、関連する信号を与える。
【０００４】
プロセッサでは、ブランチ論理装置によって与えられるブランチ命令は異なった中断ルーチンを開始し、それはプロセッサに接続されるべき中断インターフェースの各優先度に対して割当てられているが、それは常にコンテキストバックアップルーチンを含んでいる。このコンテキストバックアップルーチン中に、以下の動作が一般に行われる。すなわち：プロセッサ中の現在のプログラムの実行が停止され、プロセッサコア中のレジスタの内容が別のメモリ区域にロードされ、中断プログラムに対するリターンアドレスが決定され、記憶され、いくつかのフラグがセットまたはリセットされる。各中断ルーチンの個々の部分において、固定された係数のような新しい内容は、例えばプロセッサのコアのあるレジスタ中に読取られる。上述の中断制御装置間のリクエスト信号、準備完了信号、ディスエーブル信号の交換およびプロセッサは、現在のプログラムが中断の許容された時点でのみ中断されることを確実にする。
【０００５】
プロセッサ中のデータバックアップの時間は無視できない。バックアップは中断ルーチンに応じて複数のクロック期間、例えば、１０乃至３０クロック期間が必要である。中断ルーチンの実行中、新しい中断リクエストが対応するフラグの設定によってのみ関係する中断インターフェースで識別されることができる。設定されたフラグの評価は、プロセッサ中の中断ルーチンが終了してこれがブランチ論理装置の対応する信号によって示されるまで再開されることはできない。コンテキストバックアップ中の新しい中断リクエストに対するブロック時間はブロック時間全体の一部を構成し、それはまた待ち時間と呼ばれ、一般に全中断ルーチンに対して割当てられる。コンテキストバックアップを処理することによって中断ルーチンを短くし、並列に他の動作をすることにより、プロセッサのアーキテクチャ中に大きな変更を含ませて後者の回路の複雑さを増加させる。それらの機能装置を含む中断制御装置は、例えばミクロナスインターメタルの１９９９年７月２９日のデタシートに記載されている（“ＣＥＶＦ−３ Ｖ３．２ ダッシュボード制御装置エミュレータ”オーダー番号６２５１−４７９−３ＰＤネセクション９ ：中断制御装置（ＩＲ）ＶＩ．５， ７１〜７９頁、７２頁の図９−１ のブロック図参照）。
【０００６】
【発明が解決しようとする課題】
本発明の目的は、通常のプロセッサと共同して動作し、比較的短い待ち時間を有する中断制御装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明によれば、この目的は、請求項１に記載された中断制御装置によって達成される。この中断制御装置においては、ブランチアドレスは中断信号によって開始されたコンテキストバックアップルーチンの特に終了の方向に向けて遅延を有するブランチ論理装置によって出力され、または呼出し可能である。
【０００８】
【発明の実施の形態】
本発明およびその好ましい実施形態について添付図面を参照にした以下の詳細に説明する。図１のブロック図は、モノリシック集積回路として構成された中断制御装置の機能的ブロック図である。図１はさらに４つの外部中断ソース１１， １２， １３， １４と外部プロセッサ１００ （＝ＣＰＵ）を示している。中断ソースは、プロセッサ、トランスデューサ、またはセンサでよく、プロセッサ１００ に対する切換え信号として作用するデータまたはアナログ信号ｓ１ ，ｓ２ ，ｓ３ ，ｓ４ を発生する。４つの中断ソースしか示していないが、一般に１６またはそれ以上の中断ソースが中断制御装置に接続されることができる。
【０００９】
各中断ソース１１， １２， １３， １４と関連して中断インターフェース２１， ２２， ２３， ２４が設けられており、それらは中断制御装置の各入力回路を表している。中断インターフェースは設計において同一であり、或いはそれに接続される中断ソースのタイプにしたがって異なっていてもよい。識別のために、各中断インターフェースはそれ自身の特有のアドレスＡｄｉ および関連する優先度Ｐｉ を含んでおり、それはバスライン（図示せず）を介してプログラム可能であることが有効である。また、各中断インターフェースは外部中断リクエスト、中断ソースにより送られた信号の受信の準備完了、或いはその他の状態を対応するフラグを設定することによって示すためのフラグ領域と関連している。
【００１０】
選択装置３０は、関連するアドレスＡｄｍ と共に最高の優先値Ｐｍａｘ を有するものを現在の中断リクエストから決定する。優先度比較装置４０はこの優先値Ｐｍａｘ を現在の有効な優先値Ｐｘ と比較し、優先値Ｐｍａｘ が優先値Ｐｘ よりも高いときに中断リクエスト信号ＩＲを発生する。新しい優先値Ｐｍａｘ は、次の優先度リクエストの受信されたとき現在の優先値と比較するのに利用するために新しい現在の優先値Ｐｘ として例えばレジスタ３５中に記憶される。優先値Ｐｍａｘ が現在の優先値Ｐｘ よりも低い場合にはそれが記憶される必要はない。
【００１１】
もしも、供給された優先値Ｐｍａｘ が現在の優先値Ｐｘ よりも高いと優先度比較装置４０が決定した場合には、優先度比較装置４０はプロセッサ１００ に中断リクエストＩＲを送り、それは現在のプログラムＲｘ がこれを許容すると直ちにそこで処理される。処理は、全ての優先度レベルに対して同一である現在のプログラムＲｘ のコンテキストバックアップＩ（図３参照）を開始し、このコンテキストバックアップは中断プログラムに対するデータＤｘ とリターンアドレスＡｘ の両者を含んでいる。コンテキストバックアップの後でのみ、プロセッサコアは新しいプログラムに対して処理されることができる。もちろん、コアは次に実行される記憶されたプログラムについて報告されなければならない。コンテキストバックアップＩが完了したとき、プロセッサ１００ は制御信号Ｖｓ により恐らくハンドシェイク技術を使用して、中断制御装置から選択されるべきプログラムについての必要な情報を必要としていること、或いはこの情報をブランチ論理装置６０またはレジスタ５５から抽出することをブランチ論理装置６０に通知し、レジスタ５５はブランチ論理装置６０によって予めこの情報をロードされている。この情報により、プロセッサはプログラムポインタを関連する処理プログラムのスタートアドレスへジャンプさせることによって内部ブランチを開始する。
【００１２】
図２のブランチ方式は、従来技術の中断ルーチンのステップのシーケンスを示しており、それにおいて、ブランチアドレスは中断ルーチンの始めにおいて形成される。最初に、優先値Ｐｘ が割当てられる信号処理プログラムＲｘ はプロセッサ１００ で実行されると仮定する。信号処理プログラムＲｘ 中、優先値Ｐｉ を有する中断ソースはアクチブになり、この優先値は例えば前の優先値Ｐｘ よりも高い。優先値Ｐｉ が前の優先値Ｐｘ よりも低い場合にはプロセッサ１００ の信号処理には何も変化はなく、プログラムＲｘ は動作を続ける（矢印は右方のプログラムＲｘ を向いている）。
【００１３】
Ｐｉ ＞Ｐｘ が仮定された場合、ブランチ論理装置６０は最初に可能なブランチアドレスＶｉ により付勢される。可能なブランチアドレスとして、アドレスＶ０ ，Ｖ２ ，Ｖ３ ，Ｖ４ ，およびＶ６ が与えられ、小さい数が高い優先値を示している。最初に呼出されるブランチアドレスＶ６ はプロセッサ１００ で中断ルーチンＩ６ をスタートさせ、それは現在の信号処理プログラムＲｘ のデータバックアップＤｘ と、このプログラムに対するリターンアドレスＡｘ とを含んでいる。中断ルーチンの動作期間はマージンにおいて時間矢印ｔによって示されている。中断ルーチン中には新しい中断命令は処理されない。上述のように、この時間は待ち時間と呼ばれている（矢印Ｌ６，Ｌ４，Ｌ３ 参照）。中断ルーチンＩ６ の終了した後に、プロセッサ１００ はプログラムＲ６ を実行する。その期間中受信された優先度Ｐ４ を有する中断リクエストだけが処理されることができる。この中断リクエストに応答して、ブランチ論理装置６０はデータバックアップＤ６ およびリターンアドレスＡ６ により中断ルーチンＩ４ を開始する。比較的早期に、より高い優先度Ｐ３ を有して受信された中断リクエストは中断ルーチンＩ４ が終了される時間インターバルｔ３ の後まで処理されることはできない。その後、プロセッサ１００ は信号処理プログラムＲ４ を実行する。時間インターバルｔ３ の終わりまで，中断可能でない中断ルーチンを実行していたことをプロセッサ１００ は通報される。プロセッサがこのブロック信号を取消したとき、ブランチ論理装置６０はブランチ命令Ｖ３ を介してデータバックアップＤ４ およびリターンアドレスＡ４ により中断プログラムＩ３ を開始し、それは待ち時間Ｌ３ 後に完了する。それからプロセッサ１００ はする。プログラムＲ３ を実行する。このプログラムはもっと高い優先度、すなわち、Ｐ０ 、Ｐ１ 、またはＰ２ の中断リクエストいずれかによってサービスまたは中断される。優先度レベルの数が接続されることのできる中断ソースの数よりも少ない場合には、選択装置３０は等しい優先度の中断リクエストの発生において、より小さい、或いはより大きいアドレスＡｄｉ を有するリクエストが最初に処理されるものと決定する。
【００１４】
図３は本発明による中断制御装置のブランチ方式を示している。図２に示されたブランチ方式と同様に、スタート点はプロセッサ１００ 中の優先度Ｐｘ が割当てられている現在の信号処理プログラムＲｘ である。例えば、高い優先値と仮定する優先値Ｐ６ を有する中断リクエストＰｉ が発生したとき、優先値比較装置４０は中断リクエストＩＲを発生し、それはデータバックアップＤｘ およびリターンアドレスＡｘ を有する現在のプログラムＲｘ の均一なコンテキストバックアップＩを開始する。図２と異なって、ブランチ論理装置６０はコンテキストバックアップＩ後にのみ質問され、したがってコンテキストバックアップＩの終了まで最後の有効なブランチアドレスＶｉ を更新するための位置にある。したがって、プログラムのブランチはコンテキストバックアップ後まで生じない。図３において、関連するプログラムＲ６ 、Ｒ４ 、Ｒ３ を有する可能なブランチアドレスＶ６ 、Ｖ４ 、Ｖ３ が示されている。新しいプログラムへジャンプした後、このプログラムは優先値Ｐｘ を有する現在のプログラムＲｘ と見なされる。中断ソースからの新しく受信された中断リクエストに対して、シーケンスは再びトップで開始され、これは図３でＲ６ からブランチ方式のスタートへの破線で示されている。
【００１５】
図４は本発明によるブランチの例示的な時間シーケンスチャートを示している。図２と異なって個々のコンテキストバックアップルーチンＩの期間はもはやそれぞれの優先値Ｐｉ に結合されないでそれらは均一なルーチンである。それはプロセッサ１００ はコンテキストバックアップの終わりにおいてしか対応するブランチ情報Ｖｉ を受信しないからである。それ故、図４においては、コンテキストバックアップＩのために必要なブロック時間Ｌは全て等しく、それはバックアップされる最悪の場合のレジスタの数が均一なコンテキストバックアップＩを考慮しなければならないからである。各コンテキストバックアップＩのブロック時間Ｌの期間中、それぞれ関連するリターンアドレスＡｘ 、Ａ４ 、Ａ４’のバックアップを有する各現在のプログラムＲｘ 、Ｒ４ 、Ｒ４ のデータバックアップＤｘ 、Ｄ４ 、Ｄ４’が行われる。ブロック時間Ｌの期間中、新しいプログラムに対する予備フェーズは全ての優先度に対して同一である場合にのみ可能である。個々の予備フェーズに対するブロック時間は関連するコンテキストバックアップＩに対するブロック時間Ｌにしたがうが、図４には示されていない。中断リクエストの発生における時間の節約は図４のタイムシーケンス図から明らかである。
【００１６】
最初に、現在のプログラムＲｘ は優先値Ｐ６ を有する中断リクエストによって中断される。関連する第１のコンテキストバックアップＩ１ は時間Ｌを取る。優先値Ｐ４ を有する中断リクエストはその時間に対して何の影響もない。それはコンテキストバックアップＩ１ は時間Ｌ中継続するからである。このルーチンの終わりの直前にのみブランチ論理装置６０は質問され、それは優先値Ｐ４ を有する後続して受信された中断リクエストに対応するブランチアドレスとしてＶ４ により決定される。この第１のコンテキストバックアップＩ１ の終了後、プロセッサ１００ はプログラムＲ４ を実行する。リクエストされたプログラムＲ４ がアクチブになるまでにかかる時間は矢印ｔ４ で示されている。図２で示したブランチ方式により、少なくとも全体のブランチ時間Ｌは時間ｔ４ に付加される。
【００１７】
プログラムＲ４ の実行中に、優先値Ｐ３ を有する中断リクエストが発生する。それ故、コンテキストバックアップルーチン、すなわち第２のコンテキストバックアップルーチンＩ２ はリターンアドレスＡ４ を有する現在のプログラムＲ４ のデータＤ４ をバックアップするために優先値比較装置４０によって再スタートされる。コンテキストバックアップＩ２ 中において、さらに優先値Ｐ５ 、すなわち最低の優先値を有する中断リクエストが受信される。コンテキストバックアップＩ２ が完了した後、ブランチ論理装置６０はブランチアドレスＶ３ を決定する。プロセッサ１００ はプログラムＲ３ を実行する。それはより高い優先値を有する中断リクエストはないからである。プログラムＲ３ がブランチにより進行すると、このプログラムの終わりにおいてプロセッサは中断されたプログラムＲ４ を再生し、第２のコンテキストバックアップＩ２ の記憶されたリターンアドレスＡ４ にジャンプする。しかしながら、プログラムＲ４ はその実行中に優先値Ｐ２ を有する中断リクエストが受信されているために完了されることはできない。ブランチ論理装置６０はコンテキストバックアップルーチン、すなわち、データバックアップＤ４ とリターンアドレスＡ４’とを有するプログラムＲ４ に対する第３のコンテキストバックアップＩ３ を開始する。このルーチンＩ３ の終了の少し前に、新しく受信された高い優先値Ｐ１ を有する中断リクエストが検出される。それ故、コンテキストバックアップＩ３ の終了において、ブランチアドレスＶ１ がブランチ論理装置６０によって決定される。従って、プロセッサはプログラムＲ２ ではなく、プログラムＲ１ を実行する。関連するブロック時間ｔ１ は非常に短い。
【００１８】
ブランチアドレスＶｉ の遅れた出力は、中断制御装置中のレジスタの内容を変更することにより特に有効に行うことができ、中断制御装置はベクトルテーブルベース（ＶＴＢ）レジスタとして使用し、アドレスを含んでいる。このレジスタはその内容がアドレスであり、コンテキストバックアップＩの終端において、修正した内容、すなわちもとのアドレスから、前に未使用の位置、付加的な情報、どのプログラムアドレスが呼出されるべきかの学習についてプロセッサ１００ により質問される。
【００１９】
ブランチアドレスＶｉ についての情報は、間接的にプロセッサにより制御されるレジスタのアドレス修正またはデータ修正によるだけではなく、適当なデータリンクを介して直接プロセッサに転送されることができる。さらに、セキュリティ設備が適切に設けられ、それは例えばワード長またはアクセスモードを検査することによりデータバス上に存在するデータが可能なプログラムブランチを有して動作するものではないことを決定する。このようにしてブランチ情報として翻訳可能なであるバス上のデータが検出され、その後ブロックされ無効にされる。アクセスモードに関する情報は、例えば対応するフラグによって通知される。
【００２０】
中断制御装置の個々の機能装置が全体的或いは部分的にハードウエアまたはソフトウエアで構成されるか否かは本発明の実行には重要な問題ではない。構成の特定の方法は必要なチップ面積、ピンの数、処理速度、フレキジブル性等の基準の最適化により決定される。
【図面の簡単な説明】
【図１】
本発明による中断制御装置のブロック図。
【図２】
従来技術のブランチ方式のブロック図。
【図３】
本発明による対応するブランチ方式のブロック図。
【図４】
本発明によるブランチの例を示すタイムシーケンス図。
【図１】
2004516547.tif 000003
【図２】
2004516547.tif 000004
【図３】
2004516547.tif 000005
【図４】
2004516547.tif 000006
【国際公開パンフレット】
2004516547.tif 000007
2004516547.tif 000008
2004516547.tif 000009
2004516547.tif 000010
2004516547.tif 000011
2004516547.tif 000012
2004516547.tif 000013
2004516547.tif 000014
2004516547.tif 000015
2004516547.tif 000016
2004516547.tif 000017
2004516547.tif 000018
2004516547.tif 000019
2004516547.tif 000020
2004516547.tif 000021