(57)【特許請求の範囲】
【請求項１】
各々が一連の命令を含むＮ個のタスク（Ｐ０、Ｐ１、Ｐ２、Ｐ３）まで記憶するタスク記憶手段（２）と、
前記Ｎ個の複数のタスクを時分割により処理する１つのマイクロプロセッサと、
前記マイクロプロセッサにより作成され使用される可変のデータを記憶するデータ記憶手段（１２）と、を備えたマルチタスク制御装置において、
前記マイクロプロセッサは、
前記タスクにより前記マイクロプロセッサの使用を制御するハードウェアで実現される１つのスケジューラ（７）と、
前記Ｎ個のタスクにおける個別の１個の命令シーケンスを制御するように前記スケジューラ（７）により各々が使用されるＮ個のプログラムカウンタ（Ｐｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ３）を記憶するプログラムカウンタ記憶手段とを備え、
前記スケジューラ（７）は、前記マイクロプロセッサにより処理されたタスクが前記データ記憶手段（１２）からのデータ転送を要求することなく変更されるとき、前記Ｎ個のプログラムカウンタ（Ｐｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ３）のうち、前回選択したものと異なる１つを自動的に選択し、
前記マイクロプロセッサが、イベント信号のＮ個のグループ（ｇｒ０、ｇｒ１、ｇｒ２、ｇｒ３）の各々からのイベントグループ信号を受けるように適合され、Ｘ個（但し、１＜Ｘ＜Ｎ）のタスクから選択された１つのタスクに対応する１つのタスクリクエスト信号（Ｒｅｑ０、Ｒｅｑ１、Ｒｅｑ２、Ｒｅｑ３）を発生するように適合された１つのイベントルータ（８）を、さらに備え、
前記タスクリクエスト信号が、前記選択されたタスクを実行する前記スケジューラをリクエストし、
各前記イベント信号が、前記制御装置の周辺装置からの外部イベント信号または前記マイクロプロセッサにより引き起こされる内部イベント信号の何れかからなる、
ことを特徴とするマルチタスク制御装置。
【請求項２】
前記マイクロプロセッサは、
前記マイクロプロセッサにより処理された前記タスクが、前記データ記憶手段（１２）からのデータの転送を要求することなく変更されるとき、前記マイクロプロセッサが前記Ｎ個のタスクの各々に対する個別アキュムレータ値のうち、前回選択したものと異なる１つを選択できるように、該アキュムレータ値を記憶するアキュムレータ値記憶手段（１３）をさらに備えることを特徴とする請求の範囲１に記載のマルチタスク制御装置。
【請求項３】
前記マイクロプロセッサは、前記マイクロプロセッサにより処理された前記タスクが、前記データ記憶手段（１２）からのデータの転送を要求することなく変更されるとき、前記マイクロプロセッサがインデックス値のうち、前回選択したものと異なる１つを選択できるように、前記Ｎ個のタスクの各々に対する個別の前記インデックス値を記憶するインデックス値記憶手段（１４）を、さらに備えることを特徴とする請求の範囲１または２の何れかに記憶のマルチタスク制御装置。
【請求項４】
前記スケジューラ（７）が、１つのハード配線で変更が制限された回路を備えることを特徴とする請求の範囲１乃至３の何れか１項に記載のマルチタスク制御装置。
【請求項５】
前記スケジューラ（７）が、１つのプログラム可能なロジック列を備えることを特徴とする請求の範囲１乃至３の何れか１項に記載のマルチタスク制御装置。
【請求項６】
前記スケジューラ（７）が、１つのＲＯＭを備えることを特徴とする請求の範囲１乃至３の何れか１項に記載のマルチタスク制御装置。
【請求項７】
残りの（Ｎ−Ｘ）個のタスクの１以上のプログラムカウンタが、前記Ｘ個のタスク内から呼ばれる１つのサブルーチンの命令シーケンスを制御するように前記マイクロプロセッサにより使用され、前記マイクロプロセッサが、前記Ｘ個のタスクの各々の部分を順次処理するように構成されることを特徴とする請求の範囲１乃至６の何れか１項に記載のマルチタスク制御装置。
【請求項８】
前記マイクロプロセッサが、前記Ｘ個のタスクにおける個別の１個の処理に使用される前記プログラムカウンタ（Ｐｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ３）の使用を各々が制御することを目的とする１以上のスタックポインタ（９、１０）を、さらに備えることを特徴とする請求の範囲７に記載のマルチタスク制御装置。
【請求項９】
前記イベントルータ（８）は、前記選択されたタスクに対応する１つのタスクリクエスト信号（Ｒｅｑ０、Ｒｅｑ１、Ｒｅｑ２、Ｒｅｑ３）が、イベント信号の１以上の選択されたグループ（ｇｒ０、ｇｒ１、ｇｒ２、ｇｒ３）から受けた１つのイベントグループ信号に応答して発生するように構成されることを特徴とする請求の範囲１に記載のマルチタスク制御装置。
【発明の詳細な説明】
本発明は一般的に、時分割処理用マイクロプロセッサと、各々が一連の命令を有する複数のタスクと、そのタスクを多数記憶するＲＯＭのようなタスク記憶手段と、前記マイクロプロセッサにより作成され使用される可変データを記憶するＲＡＭのようなデータ記憶手段と、を備えたマルチタスク制御装置に関する。マルチタスク制御装置は、時計分野の応用における使用に適切であり、本発明を以下に開示するに際し時計分野の例をあげることは好都合である。然しながら、本発明は当該技術分野に制限されないことは理解されるべきことである。
時計分野における多くの応用は、一連のシーケンス命令を含むタスクに基づいている。マイクロコンピュータはこのようなタスクを実行するためにしばしば使用され、その結果所望の機能を有する時計が提供される。現存するマイクロコンピュータは、実行すべき各タスクの命令を記憶するためのリード・オンリ・メモリまたはＲＯＭと、これらの命令を実行するために必要な処理を実行するマイクロプロセッサと、そのマイクロプロセッサにより作成され使用される可変のデータを記憶するためのランダム・アクセス・メモリまたはＲＡＭとを有する。マイクロプロセッサは、明白に、演算とロジック処理を実行するための演算ロジックユニットまたはＡＬＵと、これらの処理の結果を記憶する一連のレジスタとを有する。制御、データおよびアドレスのバスが、マイクロプロセッサ、ＲＯＭ  ＲＡＭ、Ｉ／Ｏインターフェースに接続され、これらの要素間や外部周辺機器間の通信を可能とする。
マイクロプロセッサを用いたこのようなタスクの実現は、数個の厳しい制限の存在により実現することがしばしば困難である。これらのタスクの各々が実時間で実行されなければならないのみならず、マイクロコンピュータは、内部的またはユーザの何れかにより作成された信号に瞬時に応答しなければならない。理想的にはこれらのタスクまたは、できるだけ消費電力が少なくなるように構成されかつ実行されるべきである。
時計設計者達に提示される他の挑戦課題は、同時に生じることが要求される多数の時計機能の処理と、一連の命令を連続的に実行することが要求されるタスクとを再構成することである。例えば、時計上の押しボタンの作動は、ステップモータと同時にクロノグラフを開始させることを命じることができる。
この問題に着手するため、マルチタスクまたは時分割の技術により同時に数個のタスクを実行するようにマイクロコンピュータを使用するように設計された時計がある。マルチタスクを実行するに際し、実行されなければならないＲＯＭ内の各タスクの部分は、マイクロプロセッサの使用を順次に可能とする。実行されるタスクを素早くサイクリングすることにより、使用者に各タスクが連続的にかつ他のタスクと同時に実行されたように思わせる。
マイクロプロセッサによるタスクの同時実行は、スケジューラと呼ばれるソフトウェア機構により通常になされる。このような機構は、ＲＯＭに記憶された一連の命令として実現し、マイクロプロセッサにより実行される上述の連続的な多様性のあるタスクを達成する。
この実行方法は、コンピュータ産業では広くどの分野でも使用されているが、時計の分野では十分に適合されていなかった。スケジューラにより導入された余分の命令の負荷は、マイクロプロセッサにより実行されるタスクの有効なサイズを増加し、速度と電力消費の点でその性能をその分だけ軽減する。
タスク達成において実行されなければならない付加的命令から生じる処理速度の減少を最小とするために、マイクロプロセッサにより順次実行されるタスク部分のサイズは、しばしば数個の命令からできて長く、それゆえタスクはまれに変更される。しかしながら、このことは使用者の入力やタスクを開始する他のリクエストに応答する時計の反応時間を減少する。この入力とリクエストは、数個の他のタスクの命令が実行された後にのみ実行できる。
さらに、マイクロプロセッサにより実行される多くのタスクの実行はまた、タスク内に１以上サブルーチンの実行を必要とする。１つのサブルーチンが、現存するマルチタスク制御装置における１つのタスク内から開始されるとき、サブルーチンの実行後、そのタスクを後に再度開始する命令のアドレスを指し示すプログラムカウンタの値が最初にＲＡＭに記憶できるようにする追加命令が必要とされる。これらのデータ転送処理を実行するために必要とされる余分な命令は、さらにマイクロプロセッサにより実行されるタスクの有効なサイズを増加し、その処理速度と電力消費を減少する。
この従来技術の欠点を軽減し、克服するマルチタスク制御装置を提供することを本発明の目的とする。
この目的に鑑み本発明は、各々が一連の命令からなるタスクをＮ個まで記憶するタスク記憶手段と、複数Ｎ個のタスクを時分割により処理するマイクロプロセッサと、そのマイクロプロセッサにより作成され使用される可変データを記憶するデータ記憶手段と、を有するマルチタスク制御装置において、そのマイクロプロセッサがそのタスクによりマイクロプロセッサの使用を制御するハードウェアで実現された１つのスケジューラと、各カウンタが、そのＮ個のタスクの内から個別の１個の命令シーケンスを制御するようにスケジューラにより各々が使用されるＮ個のプログラムカウンタを記憶するプログラムカウンタ記憶手段と、をさらに有するマルチタスク制御装置であって、このスケジューラは、マイクロプロセッサにより処理されたタスクが、前記データ記憶手段からのデータの転送が要求されることなく変えられるとき、前記Ｎ個のプログラムカウンタのうち、前回選択したものと異なる１つを自動的に選択し、前記マイクロプロセッサが、イベント信号のＮ個のグループ（ｇｒ０、ｇｒ１、ｇｒ２、ｇｒ３）の各々からのイベントグループ信号を受けるように適合され、かつＸ個（但し、１＜Ｘ＜Ｎ）のタスクから選択された１つのタスクに対応する１つのタスクリクエスト信号（Ｒｅｑ０、Ｒｅｑ１、Ｒｅｑ２、Ｒｅｑ３）を発生するように適合された１つのイベントルータ（８）を、さらに備え、タスクリクエスト信号が、選択されたタスクを実行するようにスケジューラをリクエストし、イベントルータ（８）は信号を受けるように適合されており、各イベント信号が、前記制御装置の周辺装置からの外部イベント信号または前記マイクロプロセッサにより引き起こされる内部イベント信号の何れかからなる、ことを特徴とする。
各タスクに対し個別のプログラムカウンタと、ハードウェアで実現したスケジューラと、を設けることにより、ＲＯＭ内に記憶される多数の命令を減少するデータ記憶手段へまたはそのデータ記憶手段からのデータの転送を必要とすることなしにプログラムカウンタを変更することを可能とすることにより、マイクロプロセッサにより処理されるタスクのより有効な管理を可能とする。タスクの管理中に多数の追加の命令を実行する必要が避けられ、それにより制御装置の電力消費が減少され、タスクが実行される速度が増加され、マイクロプロセッサにより処理される部分のサイズを減少することが可能とされる。実行されるタスクはまた、より急速にサイクルされ、それゆえ制御装置の応答時間を改善する。
有利なことに、マルチタスク制御装置は、各タスクに対する個別のアキュムレータ値を記憶する個別のアキュムレータ値記憶手段を備え、それゆえマイクロプロセッサにより処理されるタスクがそのデータ記憶手段からのデータの転送を必要とすることなく変更されるとき、そのアキュムレータ値のうち、前回選択したものと異なる１つを選択することができる。
マルチタスク制御装置は、さらに各タスクに対する個別のインデックス値を記憶するインデックス（索引）値記憶手段を有してもよく、それゆえそのデータ記憶手段からのデータの転送を必要とせずにマイクロプロセッサにより処理されるタスクが変えられるとき、マイクロプロセッサは、そのインデックス値のうち、前回選択したものと異なる１つを選択できる。
本発明のさらに他の実施例において、マイクロプロセッサは、Ｘ個のタスクの各部分を順次処理するように構成できる。ここでＸは１＜Ｘ＜Ｎであり、Ｎ−Ｘ個の残りのタスクの１以上のプログラムカウンタは、前記マイクロプロセッサにより、前記Ｘ個のタスク内から呼ばれるサブルーチンの命令シーケンスを制御するため使用される。
このように、処理される必要のある多数のタスクが、マイクロプロセッサが処理できるタスクの最大数より小さいとき、残りの使用されていない処理の１以上のプログラムカウンタが、１つのタスク内から呼ばれるサブルーチンの命令シーケンスを追跡し続けるように使用可能である。サブルーチンが呼ばれたときに使用されるプログラムカウンタは、それゆえそのサブルーチンが実行されるときの使用のために保持される。本発明のスケジューラの使用は、サブルーチンが呼び出されるときに必要とされるデータ転送と、このデータ転送を実行するために必要とされる多数の追加の命令との両方を最小とすることを可能とする。上述したように、このことは、制御装置により消費される電力を減少し、その応答時間を増加し、そのタスクをより有効に管理するように導く。
以下に本発明のマルチタスク制御装置の種々な特徴をより詳細に言及する。本発明の理解を促進するため、マルチタスク制御装置を例示した添付図面に符号を記す。本発明のマルチタスク制御装置が図示した好適実施例に限定されないことは理解されるべきことである。
図の簡単な説明
図１は、本発明のマルチタスク制御装置の一実施例による処理の原理を示す概略図であり、
図２は、図１に示すマルチタスク制御装置により処理される処理の管理を示す概略図であり、
図３は、サブルーチンのレベルが異なる図１に示す制御装置のタスクの構成を示す概略図であり、
図４は、図１の制御装置により図３に記したサブルーチンの管理を示す概略図であり、そして
図５は、内部および外部イベントが、図１に示すその制御装置により実行される処理の開始を要求するため、手順が決定されかつ使用される様子を示す概略図である。
図１を参照すると、全体的にマルチタスク制御装置１が示されることが判る。マルチタスク制御装置１は基本的に、ＲＯＭ２、命令レジスタ／デコーダ３、リソース（方策）グループ４、イベントバンク５、タスクマネージャ６、および４つのプログラムカウンタＰｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ３の各々を記憶する個別レジスタを有する。ＲＯＭ２は、制御装置１により使用され所望の機能を実行する４つのタスクまで連続命令を記憶する。これらのタスクの各々は、プログラムカウンタＰｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ３の個々の１つを使用し、その命令シーケンスの追跡を保持する。各プログラムカウンタは、それゆえ実行されるべきタスク内の次の命令を含むＲＯＭ２内のメモリ一を指摘するために使用される。４つのタスクとそれに対応する４つのプログラムカウンタとが、本実施例に使用されるが、如何なる数のタスクとプログラムカウンタとが本発明とは異なる他の例に使用できることは明白である。
ＲＯＭ２内に含まれるタスクの各々は、制御装置１への周辺装置から送られる外部のイベント信号または制御装置１内から送られる内部のイベント信号により作動できる。多くのこのような信号は、時計分野の応用において使用されるマルチタスク制御装置へ供給できる。これらのイベント信号は、グループとしてこれらのイベント信号を処理するイベントバンク５へ送られる。グループの数は、他の実施例では他のグループ数が設けられるが、ＲＯＭ２内に記憶されるタスクの数に相当し得る。１つの特定グループからの何れかのイベント信号を受領した時、イベントバンク５はタスクマネージャ６へイベントグループ信号を送る。
タスクマネージャ６は、スケジューラ７、イベントルータ８と２つのスタックポインタ９と１０を有する。イベントルータ８は、イベントバンク５から送られる各イベントグループ信号を受信し、ＲＯＭ２に記憶されたタスクの１つの開始を要求する１つのタスクリクエスト信号を発生する。イベントルータ８は、各タスクリクエスト信号により要求されるタスクの開始が選択できるように構成できる。
スケジューラ７はイベントルータ８から送られるタスクリクエスト信号を受け、このようにリクエストされた各タスクの実行を管理する。各アクティブタスク（開始が要求されたタスク）の部分はスケジューラ７により指し示されたタスクに従って、制御装置１により順次処理される。各タスクが実行されるに連れて、そのプログラムカウンタはＲＯＭ２内の何れの命令が実行されたかを追跡し続けるために使用される。第１タスクの１部分が実行されたとき、スケジューラ７は第２タスクの１部分が、処理されるべき次の命令を示す第２タスクのプログラムカウンタを使用することにより処理されるように作用する。各タスクが各プログラムカウンタを有するので、各タスクの実行を容易に待機状態とし、次にその修正命令で再度開始できる。
特に、各プログラムカウンタの値は転送される必要はなく、かつ対応するタスクの部分が実行完了する毎に制御装置１内の何れかのデータレジスタ内に記憶され、そのタスクの新たな部分が実行される時毎に逆に転送され、１つの共通プログラムカウンタ内に記憶される。有利なことにこのことは、制御装置１の応答時間を最小とするため、制御装置１により実行される１以上のタスクをたった１つの命令長とさせる。
後述されるように、１以上のプログラムカウンタが１つのタスク内から１つのサブルーチンを開始させるために使用できる。１つのサブルーチンが呼び出されたとき、そのサブルーチンが実行されたとき、引き続きの命令が実行できるように現在使用されるプログラムカウンタは記憶される。スタックポインタ９と１０は、１つのサブルーチンが開始されるとき、未使用のプログラムカウンタを指し示すために使用される。このプログラムカウンタは次に、そのサブルーチンにおける命令シーケンスを追跡し続けるために使用される。サブルーチンが呼ばれるときに使用中のプログラムカウンタは、それゆえサブルーチンが実行されたときに命令シーケンスを追跡し続けるように保存される。
リソースグループ４は１つの演算ロジックユニットまたはＡＬＵ１１、ランダム・アクセス・メモリまたはＲＡＭ１２、１つのアキュムレータグループ１３、およびインデックスレジスタグループ１４を有する。後者のレジスタグループは、索引されたアドレス付けが制御装置１により実行されるタスクにより使用されるときのみ必要とされる。
ＡＬＵ１１とＲＡＭ１２は、リソースを分け合い、制御装置１により実行される全てのタスクによりアクセスされ得る。複数の信号機が、下記の方法で制御装置１の割り当てられたリソースへのアクセスを制御するために使用される。１つのタスクが割り当てリソースを使用するとき、１つの選択されたデータレジスタ内の１ビットはビジーに設定される。このタスクが割り当てられたリソースを用いて終了したとき、このビットは自由なビットに設定される。このビットの状態は割り当てられたリソースをアクセスしたい全てのタスクにより試験され、そのビットがよりより早期のタスクによりビジーに設定されているときは、後者（より早期）のタスクはそのビットが自由なビットに設定されるまで待機しなければならない。
アキュムレータレジスタグループ１３は４つのアキュムレータ１３ａ、１３ｂ、１３ｃ、１３ｄからなり、一方インデックスレジスタグループ１４は４つのインデックスレジスタ１４ａ、１４ｂ、１４ｃ、１４ｄからなる。プログラムカウンタＰｃ０からＰｃ３と共に、アキュムレータ１３ａから１３ｄおよびインデックスレジスタ１４ａから１４ｄは、種々のタスク間で割り当てることができないが、与えられた応用において１つの特定なタスクのみによりむしろ使用できる制御装置１内のリソースを含む。
現在のタスクが制御装置１により実行されるとき、その処理点により使用されたプログラムカウンタに対する命令が、ＲＯＭ２により命令レジスタ／デコーダ３へ送られる。このように、命令は実行され、そのビットはＡＬＵ１１、データバッファ、アドレスバッファ、および制御装置１の種々のレジスタにより解読される言語に変換される。
ＡＬＵ１１は、命令レジスタ／デコーダ３から解読された命令を受け、その命令を実行するのに必要な演算またはロジック処理を実行する。現在のタスクに関連するアキュムレータは、これらの演算またはロジック処理が実行されるようにＡＬＵ１１へデータを供給する。これらの処理の結果は、次にそのアキュムレータへ戻される。ＲＡＭ１２は、これらの処理を実行するために作成され使用されるデータを記憶するために使用される。
制御装置１により現在実行中のタスクと関連するインデックスレジスタは、オフセット値として実行されるタスクにより使用されるアドレスを記憶するために使用される。特定のアドレスが、ＡＬＵ１１または他の要求データに対する所望のオペランドを記憶する制御装置１内の他のアドレスを指し示すように、このオフセット値により増加される。
個別のアキュムレータの準備と、必要なら、制御装置１により実行された各タスクに対する個別のインデックスレジスタは、それゆえ各アクティブタスクを使用可能とし、かつタスクが制御装置１内でサイクルされるときＲＡＭ１２へのまたはＲＡＭ１２からのデータの転送を要求することなく、それ自身のアキュムレータやインデックスの値を保持する。
上記したように、命令レジスタ／デコーダ３はまた、制御装置１内で選択された内部イベントの発生時にイベントバンク５へ信号を供給する。
スケジューラ７はハードウェア装置の形式で実現され、ＲＯＭ２とＲＡＭ１２から分離され、それゆえタスクの変更がその記憶部内に含まれるデータの転送を要求し、かつプログラムカウンタ、アキュムレータ値およびＲＡＭ１２内の各タスクのインデックス値を呼び起こすることなしに達成できる。ハードな配線で制限された状態のマシーン、プログラム可能なロジック列、個別ＲＯＭ、または他の類似な装置の如きハードウェアの装置が、スケジューラ７を実現するため使用できる。
制御装置１によりＲＯＭ２に記憶されたタスクの管理について以下により詳細に説明する。図２は図１に示したイベントバンク５、イベントルータ８およびスケジューラ７を概略的に示す。制御装置１により実行され得る４つのタスクは、Ｐ０、Ｐ１、Ｐ２、Ｐ３とラベル付けされている。スケジューラ７は、順次に巡回優先体系に従って各アクティブなタスクの命令を実行する。それゆえ、４つのタスクの各々がアクティブのとき、スケジューラ７は各タスクの１つの命令を順次実行する。しかしながら、１つのタスクのみがアクティブのとき、スケジューラ７は遅れなくそのタスクの命令を順次実行し、このようにマイクロプロセッサとして動作する。
各タスクＰ０、Ｐ１、Ｐ２、Ｐ３は、それぞれＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３とラベル付けられた個別の双安定処理イネーブルスイッチによりイベントルータ８に接続されている。各タスクは、対応するタスクの開始を要求する信号がイベントルータ８から受信されたとき、実行される。タスクイネーブルスイッチＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３は、タスクリクエスト信号Ｒｅｑ０、Ｒｅｑ１、Ｒｅｑ２、Ｒｅｑ３をそれぞれ受けるため、スイッチの開または閉の状態によりタスクＰ０、Ｐ１、Ｐ２、Ｐ３を許容または阻止する。所定条件下で、１つ以上のタスクイネーブルスイッチを開きの状態に設定することにより、スケジューラ７へのタスクリクエスト信号のアクセスを阻止することが望まれる。例えば、この手段は１つのタスク（例えば時刻調整機能）が１以上の他のタスク（例えば第２の針の移動）の動作を一時的に待機状態とすることを可能とするために使用できる。タスクイネーブルスイッチはタスクマネージャ６におけるデータレジスタ内に個々に設定可能なビットとして実現してもよい。
図３は、４つのタスクＰ０、Ｐ１、Ｐ２、Ｐ３の各々が制御装置１により使用可能な種々の方法の幾つかを示す。ケースａ）においてタスクＰ０のみがアクティブである。以下に説明するように、タスクＰ１、Ｐ２、Ｐ３の割り当て不能リソースは、この構成におけるタスクＰ０内のサブルーチンのレベルを作成するために使用される。
ケースｂ）において、タスクＰ０とＰ３がアクティブである。２つの処理を残す割り当て不能リソースは、この場合サブルーチンレベルを作成するため使用され得る。そして、タスクＰ０とＰ３間で３つの異なる方法で割り当てできる。第一に、２つのタスクＰ１とＰ２の各々の割り当て不能リソースは、タスクＰ０内からサブルーチンを呼び出すために使用でき、一方タスクＰ３はそのために使用可能なサブルーチンレベルはない。第二に、２つのタスクＰ１とＰ２の各々の割り当て不能リソースは、処理Ｐ３からサブルーチンを呼び出すために使用でき、一方処理Ｐ０はそのために使用できるサブルーチンレベルはない。最後に、２つのアクティブな処理Ｐ０とＰ３の各々は、１つのサブルーチンレベルを呼び出すための残された２つの処理の異なる１つの割り当て不能リソースを使用することができる。
ｃ）において、３つのタスクがアクティブであり、１つの残されたタスクの割り当て不能リソースは、アクティブなタスクＰ０またはＰ３の何れかによりサブルーチンを呼び出すために使用できる。ｄ）において、４つのタスクＰ０、Ｐ１、Ｐ２、Ｐ３の各々がアクティブであり、割り当て不能なリソースの何れもがサブルーチンの呼び出しに使用できない。
種々のタスクの管理を図４に関連させて以下により詳細に説明する。図４はスケジューラ７、スタックポインタ９および１０、タスクＰ０、Ｐ１、Ｐ２、Ｐ３、および関連するプログラムカウンタＰｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ４をそれぞれ示す。制御装置１は分岐制御命令、たとえば命令ＣＡＬＬやＲＥＴＵＲＮを実行するために適用される。これらの命令は４つのタスクＰ０、Ｐ１、Ｐ２、Ｐ３の各々を構成する一連の命令に現れる。
図４のａ）に示す本発明の実施例において、タスクＰ０からのみサブルーチンを呼び出すことができる。制御装置１はスタックポインタ９がタスクＰ０への属性であるように構成される。この配置において、タスクＰ１、Ｐ２、Ｐ３の各々の割り当て不能リソースは、可能なら、タスクＰ０内でサブルーチンを呼び出すために使用できる。制御装置１は、タスクイネーブルスイッチＰＥ０のみが閉の状態に置かれ得るように構成され、それゆえタスクリクエスト信号Ｒｅｑ０のみがタスクの実行を発生させることができる。
スケジューラ７は、この例において、それゆえ絶えずタスクＰ０を指し示す。初期化時において、スタックポインタ９は、プログラムカウンタＰｃ０が記憶されるアドレスを指し示すように設定される。ＣＡＬＬ命令のような分岐制御命令の実行は、タスクＰ０内からの１つのサブルーチンとして開始されるようＲＯＭ２内に記憶される一連の命令を引き起こす。当業者により理解されるように、ＣＡＬＬ命令のような分岐制御命令は、開始されるべきサブルーチンの開始アドレスを含む。このようなタスクにおけるサブルーチンが開始されると、サブルーチンが開始されたアドレスは、そのサブルーチンが終了した時にタスクが再び続けられる分岐制御命令に従う戻りのアドレスを示すため最初増加する。スタックポインタ９の値は次に未使用のプログラムカウンタ（Ｐｃ１、Ｐｃ２またはＰｃ３）の１つを指し示すように調整される。サブルーチンの実行中、この予めに未使用なプログラムカウンタはこのサブルーチン中に実行された命令を追跡し続ける。このサブルーチンの実行が終了したとき、スタックポインタ９はプログラムカウンタＰｃ０へ指し示すように再調整され、このタスクの実行は続けられる。
サブルーチンの１以上のレベルが使用されるとき、スタックポインタ９の値は、未使用のプログラムカウンタを指し示すよう新たなサブルーチンが開始される時毎に調整される。このように、制御装置１は、ＲＡＭ１２内のデータスタック上の戻りのアドレスを記憶する必要なく１つのタスク内からサブルーチンを開始するように設けられる。
好ましくは、プログラムカウンタＰｃ０、Ｐｃ１、Ｐｃ２、Ｐｃ３は、スタックポインタ９が戻りのアドレスが記憶されるときは単に増加し、１つのサブルーチンの実行が終了したときは減少するように連続のアドレスを有する。
図４のａ）が制御装置１の全ての割り当て不能なリソースがタスクＰ０内から使用できる配置を示す一方、制御装置１は応用に応じて種々に構成される。図３に示すように、タスクＰ０はサブルーチンの他のレベルを３つ、２つ、１つまたは０だけ使用することができる。これらの場合の各々において、スタックポインタ９は、単にその構成におけるタスクＰ０へ割り当てられた割り当て不能なリソースと協力して使用されることのみ可能である。例えば、タスクＰ０がサブルーチンのレベルを定義するためタスクＰ１の割り当て不能なリソースを使用する構成において、スタックポインタ９は、処理Ｐ１のプログラムカウンタを使用することのみ可能である。
図４のｂ）に示される本発明の実施例において、制御装置１はスタックポインタ１０がタスクＰ３内の使用に利用できるように配置される。この配置において、スタックポインタ１０は、それゆえプログラムカウンタＰｃ２、Ｐｃ１、Ｐｃ０の何れかがこのようなタスクに使用されるように、指し示されるよう使用できる。タスクＰ０とＰ３の各々がサブルーチンのレベルの１つを有する場合、スタックポインタ９と１０が使用されることが理解できる。
スタックポインタ９と１０が、タスクＰ０とＰ３のみに関連してこれまで説明してきたが、他の実施例においてこれらのスタックポインタの１つまたは両方が他のタスクに関連することができよう。同様に制御装置１の他の実施例はタスクＰ１そして／またはＰ２と関連する追加のスタックポインタを有することができ、それゆえこれらのリソースがサブルーチンを呼び出すために使用できるとき、タスクＰ０、Ｐ１、Ｐ２、Ｐ３の何れの数も、残りのタスクの他の１つの割り当て不能なリソースを使用することができる。
当業者により理解されるように、無制限数のサブルーチンとサブルーチンのレベルとは同時に、分岐制御命令の上述した機能を繰り返す一連の命令の構成によりタスクＰ０、Ｐ１、Ｐ２、Ｐ３の各々に帰する。
図２に戻り、制御装置１により受けられる内部および外部のイベントの管理と、適切なタスクリクエスト信号の作成について以下に説明する。イベントバンク５に向かって導くことのできるイベントは、４つのグループに分割され、ｇｒ０、ｇｒ１、ｇｒ２、ｇｒ３とラベル付けされる。これらのイベントは、他のタスクの処理を開始するため制御装置１により使用される。６つのイベントがこれらのイベントグループの各々に関連し、その内４つのイベントは内部イベントであり、その内２つのイベントは外部イベントである。これらのイベントグループの各１つに対し、１つのイベントグループ信号を発生するようにその６つのイベントがＯＲ機能におけるイベントバンク５内に加算合計される。従って、１つの特定イベントグループの６つのイベントの内からの何れか１つの到達は、イベントバンク５にそのイベントグループに対応する１つのイベントグループ信号を発生させる。
このように発生された各イベントグループ信号は、イベントルータ８の構成によりタスクＰ０、Ｐ１、Ｐ２、Ｐ３の１つに対応するタスクリクエスト信号を発生するイベントルータ８へ送られる。各タスクリクエスト信号は、特定のタスクに向かって導かれる１以上のイベントの存在を示すアクティブ状態またはそのタスクに向かって導かれるイベントは存在しないことを示す非アクティブ状態の何れかを有することができる。
特定のタスクリクエスト信号に関連するイベントが何等存在しないとき、その特定なタスクに対応するタスクを作動解除することが可能である。制御装置１によるこのタスクの実行は、それゆえ継続を停止する。全てのタスクリクエスト信号が非アクティブのとき、それゆえ実行中のタスクがないとき、制御装置１はその電力消費が殆ど０の休止状態に入る。しかしながら、１以上のイベントが存在するときは、その対応するタスクリクエスト信号は作動解除できない。
図５にイベントルータ８により設けられた構成の種々のモードが描かれている。このような５つのモードが本発明の応用例として可能である。図５のａ）に示されるモード０において、全てのイベントグループ信号、それゆえ全てのイベントはタスクＰ０に向かって導かれる。マルチタスク制御装置１は、それゆえ単一のプロセッサとして作動し、タスクＰ０の命令を連続的に実行する。タスクＰ１、Ｐ２、Ｐ３の実行は、イベントバンク５におけるイベントによりリクエストできない。それゆえ、制御装置１により実行される単一タスク内からサブルーチンが呼び出されることを可能とするこれらのタスクの割り当て不能なリソースの各々を自由にする。
ｂ）に示されるモード１において、イベントグループｇｒ０、ｇｒ１、ｇｒ２からのイベントグループ信号は、タスクＰ０に向かって導かれ、一方イベントグループｇｒ３からのイベントグループ信号はタスク３に向かって導かれる。タスクＰ１とＰ２の割り当て不能リソースが、タスクＰ０とＰ３内からサブルーチンを呼ぶために使用できる。ｃ）に示されるモード２において、タスクＰ０やＰ３は、イベントグループｇｒ０やｇｒ１から、およびイベントグループｇｒ２やｇｒ３から、それぞれイベントグループ信号により引き起こされるタスクリクエスト信号を受ける。また、タスクＰ１とＰ２の割り当て不能なリソースが、タスクＰ０やＰ３内からのサブルーチンを呼び出すために使用可能である。
ｄ）に示されるモード３において、イベントグループｇｒ０とｇｒ１からのイベントグループ信号は、タスクＰ０に向かって導かれ、イベントグループｇｒ３からのイベントグループ信号は非他的にタスクＰ３の方向に向けられる。タスクＰ１の割り当て不能なリソースのみがサブルーチンを呼び出すために使用可能である。最後にｅ）で示されるモード４において、タスクＰ０、Ｐ１、Ｐ２、Ｐ３の各々はそれぞれのイベントグループｇｒ０、ｇｒ１、ｇｒ２、ｇｒ３からのイベントグループ信号を受ける。制御装置１のユーザはそれゆえ特別な応用に最適に応答するイベントルーティングのモードを選択することができる。
最後に、本発明のマルチタスク制御装置１に対して種々の修正そして／または追加が、以下に記す請求の範囲に定義された本発明の範囲内でなされ得ることは当然のことである。
【図１】
0003776449.tif 000002
【図２】
0003776449.tif 000003
【図３】
0003776449.tif 000004
【図４】
0003776449.tif 000005
【図５】
0003776449.tif 000006