トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 優先処理特定装置
【発明者】 【氏名】山本 浩孝

【氏名】谷 充弘

【氏名】岩井 明史

【要約】 【課題】優先度を考慮して実行対象処理の特定を行う優先処理特定装置において、十分な処理速度を確保しつつ、しかも、仕様変更があっても容易に対応できるようにする。

【解決手段】ソフトウェアで処理すると多くの時間を要する優先度の判断を、すなわち要求データの各ビットのセット/リセットに基づく判断を、選択回路12を用いてハードウェアで実現する。一方、仕様変更によって選択回路12を変更する必要をなくすため、選択回路12に対し要求データに基づく入力データを入力するデータ入力処理及び、選択回路12からの出力データに基づきタスクIDを決定する特定処理を、ソフトウェアによって実現し、それぞれデータ入力部11、特定部13が実行するようにした。
【特許請求の範囲】
【請求項1】実行待ち処理の優先度を各ビットに対応させて示した要求データに基づき、次に実行されるべき処理である優先処理を特定するために用いられ、前記要求データに基づく入力データから前記優先処理を特定可能な出力データを出力する選択回路を含んで構成される優先処理特定装置であって、処理切り替え要求があると、前記入力データを前記選択回路へ入力するデータ入力処理を実行すると共に、前記選択回路からの出力データに基づき前記優先処理を特定する特定処理を実行する処理実行手段を備えていることを特徴とする優先処理特定装置。
【請求項2】請求項1に記載の優先処理特定装置において、前記データ入力処理は、前記要求データに基づき前記入力データを生成する生成処理を含むものであることを特徴とする優先処理特定装置。
【請求項3】請求項2に記載の優先処理特定装置において、前記生成処理は、前記要求データを分割して前記入力データを生成するものであることを特徴とする優先処理特定装置。
【請求項4】請求項1〜3のいずれかに記載の優先処理特定装置において、前記処理実行手段は、前記データ入力処理において、前記入力データの全ビットがリセットされている場合、前記入力データの前記選択回路への入力を行わないことを特徴とする優先処理特定装置。
【請求項5】請求項1〜3のいずれかに記載の優先処理特定装置において、前記選択回路は、前記入力データの全ビットがリセットされている場合、出力データの所定ビットをセット又はリセットして出力することを特徴とする優先処理特定装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、タスクの切り替え処理などに代表される優先度を考慮した実行対象処理の特定技術に関する。
【0002】
【従来の技術】従来、例えばオペレーティングシステム(以下「OS」という。)を搭載したコンピュータシステムでは、実行単位となる複数のタスクがOSによって管理されるものがあった。
【0003】このようなシステムでは、実行待ち状態となっているタスクがその優先度に従って実行される。具体的には、処理の切り替え要求(以下「ディスパッチ要求」という。)として、実行待ち状態のタスクに対応するビットがセットされたデータ(以下「要求データ」という。)が、例えば割込処理にてメモリ上に格納される。すると、このメモリ上の要求データに基づいてOSがタスクの切り替えを行う。つまり、OSによる処理では、セットされているビットの中で優先度のより高いビットを判断して、次に実行すべきタスクを特定する。
【0004】ところが、OSによるソフトウェア処理において要求データの各ビットがセットされているか否かを順次判断していくと、処理に要する時間が大きくなってしまう。そのため、特開平6−230985号公報には、上述した問題を解決できるタスク制御回路が開示されている。
【0005】ここに開示されたタスク制御回路は、複数タスクの実行に関する情報を保持するための状態レジスタと、このレジスタの保持内容に基づいて、次に実行されるべきタスクを決定するための選択回路とを含んで構成されている。この回路によれば、上述した要求データが状態レジスタに格納され、この状態レジスタの保持内容に基づきハードウェアにて次に実行されるべきタスクが決定されるため、ソフトウェア処理と比較して高速なタスク切り替えを実現できる。
【0006】
【発明が解決しようとする課題】しかしながら、上記公報に記載の技術を採用する場合、仕様変更に弱いという点で問題が残る。それは、上述した要求データが直接的に選択回路の入力になっているためであり、また、選択回路からの出力によりハードウェアにて次に実行すべきタスクを決定するためである。
【0007】例えば状態レジスタが32ビットのレジスタであれば、選択回路へ入力される要求データは、最大32ビットのデータとなる。したがって、各ビットに優先度を割り当てると、選択回路にて判断される優先度は「32」以下となり、例えば仕様変更によって「32」を上回る優先度を判断する必要が生じた場合、状態レジスタ及び選択回路を設計し直す必要が生じてしまう。
【0008】また、選択回路からの出力によりハードウェアにて次に実行すべきタスクが決定されるため、タスクの優先度を変更する必要が生じた場合にもまた、選択回路やその後段の回路構成を変更する必要が生じてしまう。なお、上述したような優先度に基づく実行対象処理の特定は、OSによるタスク制御に限らず、コンピュータシステムにおいては頻繁に行われるものである。例えば複数のスイッチ入力に対して対応する処理を実行するようなときには、スイッチ入力の組み合わせに基づく処理の特定が行われる。
【0009】本発明は、上述した問題を解決するためになされたものであり、優先度を考慮して実行対象処理の特定を行う優先処理特定装置において、十分な処理速度を確保しつつ、しかも、仕様変更があっても容易に対応できるようにすることを目的とする。
【0010】
【課題を解決するための手段及び発明の効果】上述した課題を解決するためになされた請求項1に記載の優先処理特定装置は、実行待ち処理の優先度を各ビットに対応させて示した要求データに基づき、次に実行されるべき処理である優先処理を特定するために用いられる。そして、要求データに基づく入力データを入力とし、優先処理を特定可能な出力データを出力する選択回路を含んで構成される。
【0011】そして、本発明では特に、処理実行手段が、データ入力処理を実行すると共に、特定処理を実行する。データ入力処理は、処理切り替え要求があると、入力データを選択回路へ入力するものである。また、特定処理は、選択回路からの出力データに基づき優先処理を特定するものである。
【0012】なお、ここでいう優先処理の特定は一例として従来技術で説明したような実行待ちのタスクの優先度に基づく特定であることが考えられ、このとき、処理実行手段は、上述した特定処理にて、タスクを特定する。ただし、このようなタスクの特定に限定されるものではなく、優先度を考慮した実行対象処理の特定を行うシステムに対し、例えば複数のスイッチによる入力に対し対応する処理を特定するようなシステムに対し適用できることは言うまでもない。
【0013】本発明では、優先度の判断を行う選択回路に対する入力データの入力、及び、選択回路からの出力データに基づく優先処理の特定をソフトウェアで実現した。したがって、例えば仕様変更などが生じ、要求データの示す優先度の数が増加したとしても、データ入力処理を、選択回路に合わせたものに変更するだけでよい。また、タスクの優先度が変更された場合も、上述した特定処理を、それに応じて変更するだけでよい。すなわち、仕様変更があっても、ハードウェア構成を変更する必要がないため、容易に対応できる。
【0014】また、優先度の判断を行う選択回路は、ハードウェアで構成した。ソフトウェアで処理しようとすると、この優先度の判断に要する時間が最も大きくなるからである。逆に言えば、優先度の判断以外の部分についてはハードウェアで構成してもソフトウェアで構成しても大差がない。その結果、優先度の判断以外の部分をソフトウェアで実現する本発明の構成であっても、上述した公報記載のものより幾分処理速度が劣るものの、ソフトウェアにて優先度を判断する構成と比べれば、十分な処理速度が確保できる。
【0015】データ入力処理についてさらに説明すれば、要求データのビット数、つまり要求データの示す優先度の数が選択回路の入力端子数以下である場合には、要求データそのものを入力データとすることが考えられる。一方、要求データのビット数が選択回路の入力端子数よりも多い場合は、データ入力処理を、要求データに基づき入力データを生成する生成処理を含むものとすることが考えられる(請求項2)。このように生成処理をデータ入力処理に含めれば、優先度の数が選択回路の入力端子より多い場合であっても対応でき、選択回路を何等変更する必要がない。
【0016】例えば生成処理は、要求データを分割して入力データを生成するものであることが考えられる(請求項3)。例えば選択回路の入力端子が32ビットのデータに対応するものである場合、上述した要求データが「32」を上回る優先度を表現する64ビットのデータであれば、要求データを上位32ビットと下位32ビットとに分割して2つの入力データを生成するという具合である。
【0017】ところで、上述したように要求データを分割して入力データを生成した場合など、入力データの全ビットが全てリセットされていることも考えられる。そこで請求項4に示すように、入力データの全ビットがリセットされている場合、データ入力処理において、入力データの選択回路への入力を行わないようにすることが考えられる。このようにすれば、32ビットの各ビットに優先度が割り当てられる場合、「0」〜「31」を表現できる5ビットのデータを出力データとする選択回路を設計すればよい。このとき、選択回路において入力データの全ビットがリセットされていることを判断する構成が必要なため、選択回路が簡素化される。
【0018】逆に選択回路が、入力データの全ビットがリセットされていることを判断する構成にしてもよい(請求項5)。すなわち、入力データの全ビットがリセットされている場合、所定ビットをセット又はリセットした出力データを選択回路が出力するようにする。例えば所定ビットを最上位ビットとして6ビットのデータを出力データとする選択回路を設計することが考えられる。この場合、出力データによって入力データの全ビットがリセットされているか否かを判断できるため、ソフトウェアによる判断が必要なくなり、処理の高速化が図られる点で有利である。
【0019】
【発明の実施の形態】以下、本発明を具体化した実施例を図面を参照して説明する。図1は、実施例のタスク制御システムの概要を示す説明図である。タスク制御システムは、「優先処理特定装置」としてのタスク特定装置10と、タスク制御実行部20とを備えている。
【0020】タスク特定装置10は、データ入力部11、選択回路12、及び特定部13を備えている。なお、ここに示すデータ入力部11及び特定部13は、ソフトウェアによる機能を示す機能ブロックであり、ハードウェア構成を示すものではない。ハードウェア構成としては、CPU、ROM、RAM、I/O及びそれらを接続するバスラインなどを備えたいわゆるコンピュータシステムとしての構成を有する。タスク制御実行部20も、このようなコンピュータシステムによって実現される機能ブロックである。
【0021】選択回路12は、最下位ビット「0」から最上位ビット「31」までの32の入力端子を備え、また、最下位ビット「A0」から最上位ビット「A4」までの5つの出力端子を備えている。すなわち選択回路12は、32ビットの入力データから5ビットの出力データを出力する電子回路である。
【0022】選択回路12はいわゆるプライオリティエンコーダであり、真理値表は、図2に示す如くである。この真理値表から分かるように、選択回路12は、入力データの各ビットの中でHレベル(Highレベル)となっている最も上位のビットを示す出力データを出力する。例えば、入力データの最上位ビット「31」がHレベルとなっていれば、他のビットに関係なく出力データは、ビット「A4」〜「A0」が全てHレベル、すなわち10進表現で「31」となる。なお、本実施例では、Hレベルになっている状態を「1」とし、この状態をビットがセットされた状態と表現する。一方、Lレベル(Lowレベル)を「0」とし、この状態をビットがリセットされた状態と表現する。
【0023】このような選択回路12は、新たに設計製作して実現することが考えられる。また、既存のICを組み合わせて実現してもよい。次に、本実施例のタスク制御システムの動作を説明する。タスク制御実行部20は、ディスパッチルーチンを実行することによって、切り替え制御を行いタスクを実行する。この実行対象のタスクを特定するのが、タスク特定装置10である。すなわち、タスク制御実行部20に対しOSからディスパッチ要求があると、データ入力部11が、データ入力処理を実行し、要求データに基づく入力データを選択回路12へ入力する。そしてデータ入力処理終了後、特定部13が、特定処理を実行することによって、選択回路12からの出力データに基づいて実行対象のタスクを特定する。
【0024】そこで最初にデータ入力部11によるデータ入力処理を、図3(a)のフローチャートに基づいて説明する。まず、ステップ(以下、ステップを単に記号Sで示す。)100では、メモリ上の所定領域に格納される32ビットの要求データを読み出す。
【0025】続くS110では、要求データが「0」であるか否かを判断する。この処理は、要求データの全てのビットがリセットされているか否かを判断するものである。ここで要求データが「0」であると判断された場合(S110:YES)、本データ入力処理を終了する。一方、要求データが「0」でないと判断された場合(S110:NO)、S120へ移行する。
【0026】S120では、S100にて読み出した要求データを入力データとして出力する。この処理は、選択回路12への入力を行うために用意された入力レジスタへ要求データをストアするものである。続いて特定部13による特定処理を、図3(b)のフローチャートに基づいて説明する。
【0027】まず最初のS200では、出力データを読み出す。上述したデータ入力処理によって選択回路12に入力データが入力されると、選択回路12は、真理値表に示す如く5ビットの出力データを出力する。したがってここでは、選択回路12より出力された出力データを出力レジスタからロードする。
【0028】続くS210では、タスクIDを決定する。この処理は、出力データに基づき、実行対象のタスクIDを決定するものである。そして、次のS220において、タスク制御実行部20のディスパッチルーチンをコールする。これによって、タスク制御実行部20によって、タスクの切り替えが行われ、S210にて決定されたタスクIDに対応するタスクが実行される。
【0029】次に、本実施例のタスク制御システムの発揮する効果を説明する。本実施例のタスク制御システムにおいては、上述したように、選択回路12に対し入力データを入力するデータ入力処理及び、選択回路12からの出力データに基づきタスクIDを決定する特定処理をソフトウェアによって実現した。その結果、判断する優先度の数の変更や各タスクの優先度の変更といった仕様変更に柔軟に対応できる。これについて説明する。
【0030】最初に、判断する優先度の数が増加した場合について説明する。例えば図4に示すように、要求データが64ビットになったと仮定する(タスク制御実行部20のブロック参照)。つまり、32ビットの要求データの各ビットで優先度を表す場合、最大「32」の優先度が表現できることになるが、仕様変更によって優先度の数が「32」を越えることが考えられる。このときは、要求データが例えば64ビットのデータに変更されることが考えられる。
【0031】この場合、図3(a)に示したデータ入力処理を、図5に示すデータ入力処理に変更することで対応できる。図5に示すデータ入力処理では、処理が開始されると、要求データを読み出す(S300)。次に、要求データの上位32ビットが「0」であるか否かを判断する(S310)。そして、上位32ビットが「0」であれば(S310:YES)、S320へ移行する。一方、上位32ビットが「0」でなければ(S310:NO)、要求データの上位32ビットのデータを入力データとして出力する(S330)。同様にS320では、要求データの下位32ビットが「0」であるか否かを判断する。そして、下位32ビットが「0」であれば(S320:YES)、本データ入力処理を終了する。一方、下位32ビットが「0」でなければ(S320:NO)、要求データの下位32ビットのデータを入力データとして出力する(S330)。
【0032】つまり、この場合のデータ入力処理では、選択回路12に合わせ、要求データを分割して入力データを生成する。このようにして入力データを生成するようにすれば、選択回路12のハードウェアを何等変更することなく対応でき、その結果、仕様変更によって優先度の数が増加した場合であっても容易に対応できる。
【0033】続いて、タスクの優先度が変更された場合について説明する。選択回路12によって優先度の判断がなされるが、タスクの優先度が変わると、出力データに基づき決定されるタスクIDを変更する必要が生じる。この場合、図3(b)に示した特定処理中のS210の処理を変更することで容易に対応できる。
【0034】つまり、出力データとして判断された優先度とタスクIDとの対応関係を、ソフトウェアによって変更すればよく、この場合も選択回路12などのハードウェアを何等変更する必要がない。すなわち、仕様変更によってタスクの優先度が変更された場合であっても容易に対応できる。
【0035】そして、本発明のタスク制御システムにおけるタスク特定装置10では、優先度の判断を、すなわち要求データの各ビットのセット/リセットに基づく判断を、選択回路12を用いてハードウェアで実現した。上述したように、優先度を考慮した実行対象タスクの特定をソフトウェアで行うとすると、多くの処理時間を要する結果になるからである。一方、優先度の判断以外の部分についてはハードウェアで構成してもソフトウェアで構成しても大差がない。
【0036】結果として、選択回路12へのデータ入力処理及び選択回路12からの出力データに基づく特定処理をソフトウェアで実現する本実施例のタスク制御システムであっても、従来技術に挙げた公報記載のものより幾分処理速度が劣るものの、ソフトウェアにて優先度を判断する構成と比べれば、十分な処理速度を確保できることになる。
【0037】また、本実施例のタスク制御システムでは、データ入力処理において選択回路12への入力が「0」であるか否かを判断しており(図3中のS110,図5中のS310,S320)、「0」であれば選択回路12に対する入力を行わない。これは、図2の真理値表に示すように、5ビットの出力データでは、入力データの全てのビットがリセットされている場合(表の最上段)と、入力データのビット「0」だけがセットされている場合(表の最下段)との区別が出来ないためである。したがって、本実施例のようにデータ入力処理において選択回路12への入力が「0」となる場合を判断するようにすれば、選択回路12の出力は5ビットで足りることになり、選択回路12では入力データの全てがリセットされている場合を考慮しなくてもよいため、選択回路12の構成が簡素化される。
【0038】ただし、ソフトウェアによる判断処理を省略して、ソフトウェア処理に要する時間を少しでも削減するという観点からは、選択回路12の出力データのビット数を増やして、入力データが「0」の場合を選択回路12にて判断する構成を採用することも考えられる。
【0039】この場合、図6に示す真理値表の如く、例えば選択回路12からの出力データを8ビットのデータとし、入力データの全ビットがリセットされていた場合、最上位ビット「7」をHレベルとすることが考えられる(表中の最上段)。このようにすれば、ソフトウェアによる入力データの判断処理が必要なくなるため、ソフトウェア処理に要する時間が削減できるという点で有利である。なお、コンピュータシステムでの処理を考えて出力データを8ビットのデータとしたが、実質的に6ビットあれば足りる。
【0040】なお、本実施例における図3(a)及び図5に示したデータ入力処理及び図3(b)に示した特定処理が、「処理実行手段」としての処理に相当する。以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。
【0041】上記実施例では、データのビットに関して、Hレベルを「1」としてセットされた状態、Lレベルを「0」としてリセットされた状態とした。もちろん、Hレベルを「0」とし、Lレベルを「1」としても同様に実施できる。例えばLレベルを「1」とすれば、図3(a)中のS110、図5中のS310、S320の処理において、「0」に代え、「232−1」であるか否かを判断すればよい。
【0042】また、上記実施例ではタスク特定装置として優先処理特定装置を具現化したが、優先度を考慮した実行対象処理の特定を行うシステムに本発明が適用できることは言うまでもない。例えば、複数のスイッチ入力に応じて対応する処理を特定するというようなシステムにも適用できる。
【出願人】 【識別番号】000004260
【氏名又は名称】株式会社デンソー
【出願日】 平成12年10月4日(2000.10.4)
【代理人】 【識別番号】100082500
【弁理士】
【氏名又は名称】足立 勉
【公開番号】 特開2002−108629(P2002−108629A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−304817(P2000−304817)