(57)【特許請求の範囲】
【請求項１】
マルチタスク処理プロセッサシステムであって、
（ａ）割込みイベント（ＥＶ）の発生を監視するための評価ユニット（１３）、及び前記評価ユニット（１３）が割込みイベント（ＥＶ）の発生を検出した場合に割込みルーチンの実行を制御するために設けられた制御ユニット（２１）を備えるプログラム制御装置（１２）と、
（ｂ）前記マルチタスク処理プロセッサシステムにおいて、異なるタスクに対して設けられた異なるメモリ回路（８）と、
（ｃ）前記制御ユニット（２１）は、現在のタスクから新たなタスクへの変更を生じさせ、及び特定の所定の優先レベルを示す特定の割込みイベント（ＥＶ）が発生した場合、前記新たなタスクを実行するために、前のタスクに割当てられたメモリ回路（８）から前記新たなタスクに割当てられたメモリ回路（８）への切換えを開始するように設計されていることと、
（ｄ）前記メモリ回路（８）は、各々の場合において、対応するタスクのプログラムカウンタに対する１つのメモリ（９）、前記対応するタスクの実行中に生成されたデータを一時的に記憶するための少なくとも１つのレジスタ（１０）、及び前記対応するタスクの状態情報を記憶するための少なくとも１つの状態レジスタ（１１）の役割を果たすことと、（ｅ）個々の優先レベルが、個々の割込みイベントに割当てられることと、少なくとも１つの特定の優先レベルが、新たなタスクを変更するために排他的に設けられることと、
（ｆ）前記評価ユニット（１３）は、前記特定の優先レベルを有する割込みイベント（ＥＶ）の発生を検出した場合、前記現行のタスクから前記対応する新たなタスクへの変更に対して、対応する要求（ＳＷＩＴＣＨ）を前記制御ユニット（２１）転送することと、
（ｇ）前記評価ユニット（１３）は、割込みイベントの発生を検出したときに、前記対応する割込みイベント（ＥＶ）の優先レベルが前記プロセッサシステムで現在動作中のタスクの前記優先レベル（ＰＲＩＯ）より高く、かつ、前記割込みイベント（ＥＶ）の優先レベルが前記特定の優先レベルに対応しない場合、対応する割込みルーチンを規定するアドレス（ＶＥＣ）と共に、対応する割込み実行用の対応する要求（ＩＲＱ）のみを前記制御ユニット（２１）へ転送するように設計されていることとを備えることを特徴とするマルチタスクプロセッサシステム。
【請求項２】
請求項１に記載のマルチタスクプロセッサシステムであって、前記マルチタスクプロセッサシステムによって実行し得る個々のタスクに個々の優先レベルが割当てられ、 前記個々の優先レベルは、前記個々の割込みイベントに割当てられることを特徴とするマルチタスクプロセッサシステム。
【請求項３】
請求項２に記載のマルチタスクプロセッサシステムであって、 前記評価ユニット（１３）は、現在のタスクから対応する新たなタスクへの変更用の前記要求（ＳＷＩＴＣＨ）と共に、前記特定の優先レベルを有する割込みイベント（ＥＶ）の発生を検出した場合、前記新たなタスクを規定する情報項目（ＴＡＳＫ）も前記制御ユニット（２１）へ転送するように設計されている、ことを特徴とするマルチタスクプロセッサシステム。
【請求項４】
請求項１乃至３のいずれかに記載のマルチタスクプロセッサシステムであって、 前記評価ユニット（１３）は、前記割込みイベント（ＥＶ）の可能性のある各優先レベル用の個別の監視装置（１４）を備え、各監視装置（１４）は、各々、前記対応する優先度を有する前記割込みイベント（ＥＶ）の発生を監視することを特徴とするマルチタスクプロセッサシステム。
【請求項５】
請求項１乃至４のいずれかに記載のマルチタスクプロセッサシステムであって、 前記評価ユニット（１３）は、プログラム可能なマスキング回路（１８）によって先行され、前記マスキング回路（１８）は、そのプログラミングに応じて、前記評価ユニット（１３）用の対応する割込みイベント（ＥＶ）の発生のマスキングを行うことを特徴とするマルチタスクプロセッサシステム。
【請求項６】
請求項４又は５に記載のマルチタスクプロセッサシステムであって、 前記評価ユニット（１３）は、各監視装置（１４）に対して、この監視装置（１４）に先行する個別のマスキング回路（１８）を表すことを特徴とするマルチタスクプロセッサシステム。
【請求項７】
通信端末において、特に、ｘＤＳＬ通信端末において、請求項１乃至６のいずれかに記載のプロセッサシステムを用いることを特徴とするマルチタスクプロセッサシステムの使用方法。
【発明の詳細な説明】
【０００１】
本発明は、割込み処理が可能な、請求項１の前提部分によるプロセッサシステムに関する。
【０００２】
例えば、モデムや所謂回線カード等の通信端末は、特定のソフトウェアやハードウェアのイベントに対応できなければならない。このような通信端末において、制御の目的で、プロセッサシステムを用いる場合、通常、プロセッサシステムでは、上述したイベントに対応し得るように、割込み処理が行なわれる。
【０００３】
割込み処理の場合、プロセッサシステムにおいて割込みにトリガをかけ得る個々のイベントが監視される。割込みイベントの発生が検出されると、直ちに、対応する割込み要求信号が生成され、プロセッサシステムのプロセッサユニットに送信され、そして、プロセッサシステムにおいて、割込みを実行するために動作するようになっている対応する割込みルーチンの開始アドレスが決定される。数多くの割込みイベントが同時に発生した場合、これらの割込みイベントの内、特定の１つの割込みイベントのみが、対応する割込みを実行するための所定の方式に基づき、選択される。プロセッサシステムにおいて、割込み以前に動作していたタスクのプログラムカウンタ（ＰＣ）の値は、割込みルーチンを引続き実行できるようにメモリスタックに保存される。割込みルーチンが終了すると、元のタスクは、保存されたプログラムカウンタにアクセスすることによって、再度継続し得る。
【０００４】
割込みルーチンが実行される前に、通常、プログラムカウンタの瞬時値だけではなく、プロセッサシステムの状態及び、それぞれ、そこで動作するタスクの状態に関する他の情報は、割込みイベントが発生する前に保存しなければならない。特に、この状態情報は、レジスタの内容、すなわちゼロ及びキャリフラッグに関連付けできる。従って、既知のプロセッサシステムにおいては、所謂シャドーレジスタを用いて、上述の状態情報を保存するための割込みの場合に出現する新たなレジスタを表す割込み処理を加速するが、その他の場合には用いられない（例えば、スティーブファーバ（Ｓｔｅｖｅ  Ｆｕｒｂｅｒ）による“ＡＲＭシステム構造”（Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、１９９６年）と比較）。これによって、上述の情報を保存するための手間を要するレジスタ記憶命令を用いる必要性を無くすことが可能である。
【０００５】
しかしながら、上述した手法は、プロセッサシステムにおいて、１つのタスクを動作するようになっている場合に有効な対応策を示すに過ぎない。数多くのタスクが同時に又は実質的に同時に動作する所謂マルチタスク処理プロセッサシステムにおいては、この場合、個々のタスクに対して、異なるプログラムカウンタを考慮しなければならないため、この手法は、簡単に用いることができない。更に、上述した手法は、新たなシャドーレジスタを用いるため、比較的高価である。
【０００６】
従って、本発明は、対応する割込みに起因するタスク変更を、少ない費用で実行し得る割込み処理で、プロセッサシステムを処理する目的に基づいている。
【０００７】
本発明によれば、この目的は、請求項１の特徴を有するプロセッサシステムによって達成される。従属の請求項は、本発明の利点を有する好適な実施形態を規定する。
【０００８】
本発明によれば、異なる記憶手段が異なるタスクに与えられ、記憶手段は、特に、それぞれのタスクのプログラムカウンタ用メモリと、それぞれのタスクの実行中にデータを一時的に記憶するためのレジスタと、例えば、キャリ又はゼロフラグ等の記憶情報を記憶するための記憶レジスタと、から構成される。従って、特定の割込みイベントが発生した時１つのタスクから他のタスクへ切換えるようになっている場合、新たなタスクに割当てられた記憶手段に切換えるだけでよい。従って、個別のハードウェア領域を異なるタスクに備えると、新たなタスクに切換えられた場合、数多くの保存プロセスを実行せずに、プロセッサシステムのハードウェア支援のマルチタスク処理動作を備えることになる。
異なる割込みは、優先度制御の下で処理されることが好ましく、個々の優先度は、対応する割込みイベントとプロセッサシステムで動作中のタスクとの双方に割当てることが好ましい。タスクを変更し得る特定の優先レベルは、定義することが好ましい。タスクを変更し得るのは、この特定の優先レベルを有するイベントのみである。他の如何なるイベントの結果も、対応する割込みルーチンに対して、開始アドレスが生成されるのみである。
例えば、本発明は、モデムや回線カード等の通信端末での使用に適しており、特に、ｘＤＳＬ端末に適している。
【０００９】
以下に述べる本文において、本発明は、好適な説明用の例によって、また、添付の図面を参照して、説明される。
【００１０】
図１に示すプロセッサシステムは、特にプログラム制御装置１２、命令復号装置５と、いわゆる分岐制御ユニット（ＢＣＵ）６と、少なくとも１つの論理演算ユニット（ＡＬＵ）７とを含むプロセッサユニット１から構成されている。更に、個々のすなわちタスク専用のハードウェア環境８が、プロセッサシステムにおいて実行され得る各タスクに備えられており、また各々、メモリスタック９、１つ以上のレジスタ１０を有するレジスタバンク、及び１つ以上の状態レジスタ１１から構成されている。メモリスタック９では、対応するタスクのプログラムカウンタ（ＰＣ）の瞬時値が、各々記憶される。レジスタ１０は、対応するタスクの処理中にデータを暫時的に記憶するために用いられる。一方、状態レジスタ１１は、各々、状態レジスタの内容が対応するタスクの現在の状態を示すように、状態情報や、例えば、ゼロフラグ又は桁上げフラグ等の状態フラグを記憶するようになっている。
【００１１】
プログラム制御装置１２は、数多くの割込みイベントＥＶを監視する。割込みイベントが発生した場合、対応する割込みルーチンが開始されるか、又はタスクの変更が実行される。従って、プログラム制御装置１２は、各々、現行タスク及びこのタスクの内で実行される命令を指定することによって、このタスクのプログラムカウンタの値を指定し、対応する情報を出力する。
【００１２】
プログラム制御装置１２が出力するプログラムカウンタＰＣのこの値を用いると、プログラムメモリ２へのアクセスと、対応する命令ＩＮＳＴの読出しとが可能である。この命令ＩＮＳＴは、命令復号装置５によって復号化され、ＢＣＵ６及びＡＬＵ７に供給し実行され、またこれら２つの後者のユニットは、処理されるタスク番号も認識している。命令復号装置５と共に、ＢＣＵ６は、正しいハードウェア環境８、すなわち、処理されるタスクに実際に備えられるハードウェア環境が、確実に常時アクセスされるようにする。ＢＣＵ６は、個々のプログラムカウンタＰＣに備えられたメモリスタック９間のハードウェア切替えの役割を担い、他方、レジスタ１０及び状態レジスタ１１は、ＢＣＵ６によるハードウェア切替えと、また命令復号装置５による内部命令によってソフトウェア的に双方からアクセスされる。最後に、ＡＬＵ７は、対応するハードウェア環境８を用いて命令ＩＮＳＴを実行するが、この目的のために、アドレス信号ＡＤＲを記憶するデータメモリ３へのアクセスが必要な場合があり、またデータＤＡＴＡを、データメモリ３から読み出すべきか又はデータメモリ３に書込むべきかについて、制御信号Ｒ／Ｗを用いて設定する。同様に、命令を実行した結果、出力ポート４からのデータＤＡＴＡの読込みや、入力ポート４へのデータＤＡＴＡの書込みを可能にするために、アドレス信号ＡＤＲが供給される１つ以上の入／出力ポート４へのアドレス指定が必要な場合がある。
【００１３】
図２は、プログラム制御装置１２の可能な実施例を示す。評価ユニット１３は、個々の割込みイベントＥＶの発生を監視し、これらに従って、対応する割込みルーチン用の開始アドレスＶＥＣを有する割込み要求信号ＩＲＱ及び切替え対象のタスクに関する情報ＴＡＳＫを有するタスクの変更を開始するための切替え信号ＳＷＩＴＣＨを生成する。制御ユニット２１は、評価ユニット１３からこの情報を受信し、それに従って、既述の如く、各々の場合において、正しいハードウェア環境８の使用を開始する。一方、この目的のために、制御ユニット２１は、現在実行されているタスクに関する情報項目ＣＴＡＳＫを命令復号装置５とＢＣＵ６に出力し、またプログラムメモリ２をアドレス指定するためのこのタスクＣＴＡＳＫに対応するプログラムカウンタＰＣを出力する。
【００１４】
割込み処理は、優先度制御下で行われる。この目的のために、個別の優先度が、各タスクと、各割込みイベントＥＶとに割当てられる。現行タスクの優先度ＰＲＩＯは、制御ユニット２１によって評価ユニット１２に報告される。基本的に、タスクは、対応する割込みイベントの優先度がそのタスクよりも高い場合に限り割込み要求により割込みが可能である。従って、タスクの優先度は、タスク自体によって、あるいは優先レベルが低い割込みイベントにより対応するタスクの割込みが可能な場合、他のタスクによってデクリメントしなければならない。優先度が最高レベルのタスクは、優先度が最高レベルの割込みイベントによってのみ割込みが可能である。例えば、このことは、リセット割込みに適用し得る。
【００１５】
様々な優先レベルの範囲において、排他的にタスクを変更する特定の優先レベルが定義される。すなわち、この優先レベルを有する割込みイベントのみが、個々のタスク間の変更を行うことができ、こうして、これらの割込みイベントが発生した場合にのみ、図２に示す情報ＳＷＩＴＣＨ及びＴＡＳＫが、制御ユニット２１に供給される。他のあらゆる割込みイベントも、実行対象の割込みルーチン用の分岐又は開始アドレスを含むベクトルＶＥＣを有する評価ユニット１３によって出力される割込み要求ＩＲＱを起こすのみである。従って、制御ユニット２１には、ＳＷＩＴＣＨ及びＴＡＳＫ信号又はＩＲＱ及びＶＥＣ信号のいずれかの信号が供給される。前者の場合、対応する割込みルーチンが呼び出され、一方、後者の場合、タスクの変更が行われる。ＩＲＱ信号及びＳＷＩＴＣＨ信号は、同時には発生し得ない。
【００１６】
図３は、図２に示す評価ユニット１３の可能な実施例を示しており、３つの異なる優先度が定義されており、優先度“２”が、タスク変更専用に備えられた優先度であると仮定する。優先度が同じである割込みイベントＥＶ＿１．．．ＥＶ＿３の各グループに備えられるのは、独立した監視ユニット１４＿１．．．１４＿３であり、これは、それに割当てられた割込みイベントの発生と、現在処理中のタスクの優先度ＰＲＩＯとを専ら監視する。
【００１７】
監視ユニット１４＿１又は１４＿３が、それに割当てられた割込みイベントＥＶ＿１又はＥＶ＿３の発生を検出した場合、直ちに割込み要求信号ＩＲＱが生成され、また、それぞれ、下流ユニット１５＿１又は１５＿３は、発生した割込みイベントに従って、実行対象の割込みルーチンに対して要求された開始アドレスを示す対応したベクトルＶＥＣを生成する。このように生成された信号は、多重化装置１６又は１７にそれぞれ供給されるが、この多重化装置１６及び１７は、優先度制御信号ＰＲＩＯに従って切換えられ、また、それに従って２つの入力信号の内、１つの信号のみを各々の出力へ切替え、また、それを図２に示す制御ユニット２１に供給する。
【００１８】
監視ユニット１４＿２が、優先度“２”を有する割込みイベントＥＶ＿２の監視専用に備えられているため、当然タスクの変更が可能である。監視ユニット１４＿２が、それに割当てられた割込みイベントＥＶ＿２の発生を検出した場合、直ちに、制御ユニット２１がタスク変更を実行するように命令する切替え信号ＳＷＩＴＣＨが生成され、また、下流ユニット１５＿２は、発生した割込みイベントに従って、情報項目ＴＡＳＫの形態で、切替え対象のタスクの番号を生成する。
【００１９】
各監視ユニット１４＿１．．．１４＿３内において、対応する監視ユニットが、同じ順序で、例えば、常に上位から下位へ、対応する割込みイベントの発生に関して、その入力を常に走査する場合、下位優先度が定義できる。
【００２０】
図４は、図３に示す監視ユニット１４＿１及び下流ユニット１５＿１の可能な実施例を示す。
監視ユニット１４＿１は、入力メモリ１９から構成され、この入力メモリ１９では、割込みイベントＥＶ＿１の内１つのイベントが発生した場合、対応するビットが設定される。ビット監視ユニット２０は、所定のクロックＣＬＫに応じて、入力メモリ１９の個々のビットを監視する。ビット監視ユニット２０が、入力メモリ１９の設定されたビットを検出した場合、直ちに、割込み要求信号ＩＲＱが生成され、また、入力メモリ１９において設定されたビットの位置に応じて、要求された割込みルーチンに対する開始又は分岐アドレスを有するベクトルＶＥＣが生成される。この目的のために、入力メモリ１９に設定されたビットの位置は、ユニット１５＿１により対応する開始アドレスにマッピングされる。このことは、図４に示すように行われる。まず、（係数２n による乗算に対応して）ｎビットだけビットをシフトさせ、次に特定のオフセット値ＯＦＦで加算を行う。その後、入力メモリ１９に設定されたビットは、クリア信号ＣＬＥＡＲで再度クリアされる。
【００２１】
ビット監視ユニット２０も現行タスクの優先度ＰＲＩＯを監視するために用いられる。割込み要求信号ＩＲＱと、対応する割込みルーチンの開始アドレスを有するベクトルＶＥＣとの生成は、現行タスクの優先度ＰＲＩＯが、対応する割込みイベントの優先度より低い場合、ビット監視ユニット２０によってのみイネーブル状態にされる。
【００２２】
図４もまた、マスキング回路１８を用いて、個々の割込みイベントがマスキングされ得る可能性、すなわち、ビット監視ユニット２０に対して見えないようにし得る可能性について示す。
【００２３】
本例において、このマスキング回路１８は、対応する信号ＭＡＳＫを用いてプログラムされ得るＡＮＤゲートの形態で設計されている。好適には、このような個々にプログラム可能なマスキング回路１８は、各監視ユニット１４＿１．．．１４＿３の前に用いられる。
【００２４】
監視ユニット１４＿３及び対応するユニット１５＿３は、図４と同様に構成し得る。同様に、監視ユニット１４＿２は、図４と同様に構成し得る。一方、ユニット１５＿２の構成は、ユニット１５＿２が、対応する入力メモリ１９に設定されたビット位置をアドレスではなくタスク番号にマッピングするという点において、図４とは異なる。
【図面の簡単な説明】
【図１】  本発明の好適で説明用の実施形態に基づくプロセッサシステムの概略ブロック図。
【図２】  図１に示すプログラム制御ユニットの可能な実施例を示す図。
【図３】  図２に示すイベント評価ユニットの可能な実施例を示す図。
【図４】  図３に示す監視ユニットの可能な実施例を示す図。
【図１】
0003970609.tif 000002
【図２】
0003970609.tif 000003
【図３】
0003970609.tif 000004
【図４】
0003970609.tif 000005