JPH11312092A - タスク切り替え方法及びデータ処理装置 - Google Patents
タスク切り替え方法及びデータ処理装置Info
- Publication number
- JPH11312092A JPH11312092A JP11750598A JP11750598A JPH11312092A JP H11312092 A JPH11312092 A JP H11312092A JP 11750598 A JP11750598 A JP 11750598A JP 11750598 A JP11750598 A JP 11750598A JP H11312092 A JPH11312092 A JP H11312092A
- Authority
- JP
- Japan
- Prior art keywords
- resource
- task
- resource group
- value
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5014—Reservation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
替えを効率良く且つ高速に行えるようにする。 【解決手段】 タスクが使用可能な資源を複数の資源グ
ループに分割して管理し、タスク切り替えにより実行中
となったタスクが資源を使用する際に、当該資源が属す
る資源グループを当該タスクが使用可能か否かを判定す
る。そして、当該資源が属する資源グループを当該タス
クが使用可能な場合には、実行中のタスクに当該資源の
使用を認めて実行中のタスクの処理を継続し、使用不可
の場合には、当該資源が属する資源グループを当該タス
クが使用可能な状態に変更した上で、実行中のタスクに
当該資源の使用を認めて、実行中のタスクの処理を継続
する。
Description
の独立性を保証して複数のタスクを並行して実行するマ
ルチタスクシステムにおけるタスク切り替え方法に関す
る。また、本発明は、それぞれのタスクの独立性を保証
して複数のタスクを並行して実行するデータ処理装置に
関する。
ーティングシステムでは、タスク切り替えを行うため
に、図20に示すように、タスク毎に、タスクを制御す
るのに必要なタスク情報を保存するタスク情報保存領域
と、タスクの実行に使用される資源の状態を示す資源値
を保存する資源値保存領域とを、メモリ上に一連の領域
として確保するようにしている。なお、資源値とは、具
体的には、中央処理装置のレジスタ値や、浮動小数点演
算装置のレジスタ値などである。
るときに、当該タスクAの実行を停止してタスクBの実
行を開始するようにタスク切り替えを行う場合には、先
ず、それまでにタスクAが資源を使用した結果が反映さ
れた資源値を、タスクAについてのタスク情報と共にメ
モリに保存する。すなわち、タスクAを停止するときに
は、そのときの資源の状態を示す値を資源値としてメモ
リに保存する。
て、当該タスクBがこれまでに実行されたことにより設
定されている資源値を、タスクBについてのタスク情報
と共にメモリから読み込み、その後、当該タスクBの実
行を開始する。このとき、メモリから読み込まれる資源
値には、タスクBが以前に停止したときの資源の状態を
示す値が設定されている。そして、タスクBの実行を開
始するときには、この資源値に基づいて、中央処理装置
のレジスタ値や浮動小数点演算装置のレジスタ値など
を、タスクBが停止したときの状態に戻す。これによ
り、中央処理装置のレジスタ値や浮動小数点演算装置の
レジスタ値などが、タスクBが停止したときの状態に戻
され、その後、タスクBの実行が再開される。
ク切り替えの動作を高速化するために、図21(a)に
示すように、タスク毎の資源値の保存領域として、レジ
スタファイルと呼ばれる資源値保存用ハードウェアを用
意したものがある。また、図21(b)に示すように、
タスク毎の資源値の保存領域として、レジスタスタック
と呼ばれる資源値保存用ハードウェアを用意したものも
ある。これらの中央処理装置では、タスク切り替え時に
おけるメモリに対する資源値の読み書きを低減すること
ができるので、タスク切り替え動作を高速化することが
できる。
えを行うために、図20に示したように、タスク情報及
び資源値を保存するための領域を、メモリ上にタスク毎
に確保するようにしている。しかし、このようにしてタ
スク切り替えを行った場合には、タスク切り替え時に、
タスクが使用可能な資源全てについて、それらの資源値
の読み書きをメモリに対して行うこととなるため、以下
のような問題がある。
処理装置が多数のレジスタを有するような場合)には、
タスク切り替えを行う毎に、メモリに対する大量の読み
書きが発生するため、タスク切り替えに時間がかかる。
追加された資源を使用しないタスクについても、追加さ
れた資源の資源値をメモリに保存することとなるため、
タスク切り替えに時間がかかるようになる。例えば、ハ
ードウェアを機能拡張して浮動小数点演算装置を追加し
たような場合、浮動小数点演算装置の機能を使用しない
タスクも、浮動小数点演算装置のレジスタ値を資源値と
してメモリに保存するようになり、その結果、タスク切
り替えに時間がかかるようになってしまう。
てのタスクが全ての資源を使うとは限らず、通常は、一
部の資源しか使用しないようなタスクも存在する。しか
し、従来のタスク切り替えでは、一部の資源しか使用し
ないようなタスクについても、全ての資源についての資
源値をメモリに保存するようにしていた。そのため、特
に使用可能な資源が増加した場合に、タスク切り替えの
ためにメモリを大量に消費することとなってしまってい
た。
ハードウェアを用意した場合には、上述の(1)の問題
は解決することができるが、この場合にも以下のような
問題がある。
アには限りがあり、全てのタスク切り替えを資源値保存
用ハードウェアだけで賄えるとは限らない。そして、資
源が増加したり、切り替わるタスクの数が増えたりし
て、資源値保存用ハードウェアだけで賄いきれなくなっ
た場合には、結局、図20に示したように、メモリに対
する読み書きを行うこととなる。したがって、資源値保
存用ハードウェアを用意してタスク切り替えの高速化を
図ったとしても、資源が増加したり、切り替わるタスク
の数が増えた場合には、その効果が大幅に低下してしま
う。
な資源値保存用ハードウェアが必要となる。そのため、
中央処理装置等を半導体装置として集積化するにあたっ
て、資源値保存用ハードウェアによってかなりの半導体
面積が消費されてしまう。
には、それに応じて資源値保存用ハードウェアを大規模
化するか、或いは資源値保存用ハードウェアで保持でき
るタスク数を減らす必要がある。
えの機構を、リアルタイム処理が必要な機器に応用する
ことを考えると、特に使用可能な資源が増加した場合
に、以下のような問題が生じる。
能な資源全ての資源値について、メモリへの保存及びメ
モリからの読み出しを行うため、特に使用可能な資源が
増加した場合に、タスク切り替えに時間がかかるように
なる。そのため、割り込み処理等のように高速な起動が
必要とされる処理を、タスク切り替えの機構で行うこと
が不可能となってしまう。これは、特にリアルタイム処
理が必要な機器において、大きな問題である。
えを行った場合には、タスク切り替え時に大量のメモリ
アクセスが発生するが、このときにキャッシュメモリや
レジスタファイル等を使用できるかできないかで、実際
にメモリにアクセスする量が大きく変動するため、以下
のような問題もあった。
時間の変動が大きく、割り込み処理等を行うときに、処
理のタイミングの特定が困難である。
いて様々な問題があった。そして、本発明は、以上のよ
うな従来の実情に鑑みて提案されたものであり、上述し
たような従来の問題を解消することが可能なタスク切り
替え方法及びデータ処理装置を提供することを目的とし
ている。
替え方法は、タスク毎に確保した資源値保存領域に資源
の状態を示す値である資源値を保存し、タスクを実行す
るときに当該タスクが使用する資源の資源値を資源値保
存領域から読み出すことで、それぞれのタスクの独立性
を保証して複数のタスクを並行して実行するマルチタス
クシステムにおけるタスク切り替え方法に関する。
では、資源を複数の資源グループに分割して管理し、タ
スク切り替えにより実行中となったタスクが資源を使用
する際、当該資源が属する資源グループを当該タスクが
使用可能か否かを判定する資源グループ使用可能性検査
を行う。そして、資源グループ使用可能性検査の結果、
当該資源が属する資源グループが実行中のタスクで使用
可能と判定された場合には、実行中のタスクに当該資源
の使用を認めて、実行中のタスクの処理を継続する。ま
た、資源グループ使用可能性検査の結果、当該資源が属
する資源グループが実行中のタスクで使用可能と判定さ
れなかった場合には、当該資源が属する資源グループを
実行中のタスクが使用可能な状態に変更する資源グルー
プ占有タスク切り替え処理を行った上で、実行中のタス
クに当該資源の使用を認めて、実行中のタスクの処理を
継続する。
タスク切り替えによって実行を開始するタスクが、上記
資源グループ使用可能性検査を行うことができない資源
を使用する可能性がある場合には、当該資源グループの
資源値の保存及び/又は読み込みを、タスク切り替えの
際に必要に応じて予め行うようにしても良い。
は、実行中のタスクが資源グループを使用可能であるか
否かを示す資源グループ使用許可フラグを設けておくよ
うにしても良い。この場合、資源グループ使用可能性検
査では、資源グループ使用許可フラグに基づいて、実行
中のタスクが資源グループを使用可能か否かを判定す
る。
フラグを設けた場合は、更に、タスクが資源グループを
占有しているか否かを資源グループ毎に示す資源グルー
プ占有フラグをタスク毎に設けておくようにしても良
い。この場合は、タスク切り替え時に、タスク切り替え
によって停止するタスクに対応する資源グループ占有フ
ラグのうち、資源グループ使用許可フラグに使用可能で
あることを示す値が設定されている資源グループに対応
する資源グループ占有フラグに、当該資源グループを占
有していることを示す値を設定する。そして、資源グル
ープ占有タスク切り替え処理では、実行中のタスクが使
用しようとしている資源が属する資源グループをそれま
で使用していたタスクに対応する資源グループ占有フラ
グのうち、当該資源グループに対応する資源グループ占
有フラグに、当該資源グループを占有していないこと示
す値を設定する処理を行う。
えば、共通の機能を提供する1以上の資源グループから
なる機能ブロック単位で、実行中のタスクが資源グルー
プを使用可能であるか否かを示すものであっても良い
し、或いは、資源グループ毎に、実行中のタスクが資源
グループを使用可能であるか否かを示すものであっても
良い。
資源グループ占有タスク切り替え処理では、例えば、実
行中のタスクが使用しようとしている資源の資源値を保
持する必要がある場合に、当該資源が属する資源グルー
プの資源値を資源値保存領域に保存する処理と、実行中
のタスクに対応した資源値保存領域に、実行中のタスク
が使用しようとしている資源の資源値として有効な値が
保存されている場合に、実行中のタスクに対応した資源
値保存領域から資源値を読み込む処理とを行う。
替え処理を行う際は、資源グループを占有しているタス
クに対応した値が設定される資源グループ占有タスク変
数を資源グループ毎に設けておくようにしても良い。こ
の場合、資源グループ占有タスク切り替え処理では、実
行中のタスクが使用しようとしている資源が属する資源
グループに対応した資源グループ占有タスク変数に、実
行中のタスクに対応した値を設定する処理も行う。
ク変数を設けた場合は、更に、実行中のタスクに対応し
た値が設定される実行中タスク変数を設けておくように
しても良い。この場合、資源グループ使用可能性検査で
は、例えば、実行中のタスクが使用しようとしている資
源が属する資源グループに対応した資源グループ占有タ
スク変数の値と、実行中タスク変数の値とを比較するこ
とにより、当該資源が属する資源グループを実行中のタ
スクが使用可能か否かを判定する。
のものが存在するか否かを資源グループ毎に示す資源グ
ループ保存値有効フラグをタスク毎に設けておくように
しても良い。この場合、タスクが資源を使用することに
より当該資源の資源値が有効な値となった場合には、当
該タスクに対応した資源グループ保存値有効フラグのう
ち、当該資源が属する資源グループに対応した資源グル
ープ保存値有効フラグに、当該資源グループに使用中の
資源が存在していることを示す値を設定する。そして、
資源グループ占有タスク切り替え処理では、実行中のタ
スクが使用しようとしている資源の資源値を保持する必
要があるか否かの判断を、当該資源を使用しているタス
クに対応した資源グループ保存値有効フラグに基づいて
行うとともに、実行中のタスクに対応した資源値保存領
域に、実行中のタスクが使用しようとしている資源の資
源値として有効な値が保存されているか否かの判断を、
実行中のタスクに対応した資源グループ保存値有効フラ
グに基づいて行う。
けた場合、タスク切り替えによって実行を開始するタス
クが、資源グループ使用可能性検査を行うことができな
い資源を使用する可能性がある場合には、タスク切り替
え処理において、当該資源グループに対応した資源グル
ープ保存値有効フラグに、当該資源グループに対応した
資源値保存領域に有効な値が存在していることを示す値
を設定する処理も行うことが好ましい。
該タスクに対応した全ての資源グループ保存値有効フラ
グの値を、資源グループに使用中の資源が存在しないこ
とを示す値に設定することが好ましい。
が使用中であるか否かを示す資源グループ使用中フラグ
を資源グループ毎に設けておくようにしても良い。この
場合、タスクが資源を使用するときには、当該資源が属
する資源グループに対応した資源グループ使用中フラグ
に、当該資源グループに属する資源をタスクが使用中で
あることを示す値を設定する。そして、資源グループ占
有タスク切り替え処理において、実行中のタスクが使用
しようとしている資源の資源値を保持する必要があるか
否かの判断を、当該資源が属する資源グループに対応し
た資源グループ使用中フラグに基づいて行う。
場合、タスク切り替えによって実行を開始するタスク
が、資源グループ使用可能性検査を行うことができない
資源を使用する可能性がある場合には、タスク切り替え
処理において、当該資源グループに対応した資源グルー
プ使用中フラグに、当該資源グループに使用中の資源が
存在していることを示す値を設定する処理も行うことが
好ましい。
るか否かを資源グループ毎に示す資源グループ占有フラ
グをタスク毎に設けておくようにしても良い。この場
合、資源グループ占有タスク切り替え処理では、実行中
のタスクが使用しようとしている資源が属する資源グル
ープを占有しているタスクに対応する資源グループ占有
フラグのうち、実行中のタスクが使用しようとしている
資源が属する資源グループに対応した資源グループ占有
フラグに、当該資源グループを占有していないことを示
す値を設定する処理と、実行中のタスクに対応した資源
グループ占有フラグのうち、実行中のタスクが使用しよ
うとしている資源が属する資源グループに対応した資源
グループ占有フラグに、当該資源グループを占有してい
ることを示す値を設定する処理とを行う。
タスクが使用可能な資源を、キャッシュメモリを備えた
中央処理装置を使用して取り扱う場合には、資源を資源
グループに分割する際に、各資源グループに対応した各
資源値保存領域のサイズがキャッシュメモリのキャッシ
ュラインサイズの整数倍となるように分割することが好
ましい。
タスクが使用可能な資源を、キャッシュメモリを備えた
中央処理装置を使用して取り扱うとともに、資源値保存
領域をキャッシュメモリ上に確保する場合には、資源値
保存領域の先頭アドレスがキャッシュメモリのキャッシ
ュラインの境界となるように資源値保存領域を確保する
ことが好ましい。
替え方法は、タスク毎に確保した資源値保存領域に資源
の状態を示す値である資源値を保存し、タスクを実行す
るときに当該タスクが使用する資源の資源値を資源値保
存領域から読み出すことで、それぞれのタスクの独立性
を保証して複数のタスクを並行して実行するマルチタス
クシステムにおけるタスク切り替え方法において、資源
値保存領域を確保する際に、保存する資源値のサイズに
応じて、資源値保存領域のサイズを動的に変化させて確
保することを特徴とする。
に変化させて確保する際は、資源を複数の資源グループ
に分割して管理するとともに、上記資源値保存領域のサ
イズを資源グループを単位として動的に変化させるよう
にすることが好ましい。
化させて確保する際、資源値保存領域は、対応するタス
クが使用するスタックと同一のメモリブロックに、当該
タスクがスタックにデータを格納していく方向とは逆の
方向から確保していくことが好ましい。ただし、この場
合は、資源値保存領域を動的に変化させるときに、スタ
ックとしてタスクが使用中の領域と資源値保存領域とが
重複しないかを確認するようにしたほうが良い。
スク毎に確保した資源値保存領域に資源の状態を示す値
である資源値を保存し、タスクを実行するときに当該タ
スクが使用する資源の資源値を資源値保存領域から読み
出すことで、それぞれのタスクの独立性を保証して複数
のタスクを並行して実行するデータ処理装置である。
資源を複数の資源グループに分割して管理し、タスク切
り替えにより実行中となったタスクが資源を使用する
際、当該資源が属する資源グループを当該タスクが使用
可能か否かを判定する資源グループ使用可能性検査を行
う。そして、資源グループ使用可能性検査の結果、当該
資源が属する資源グループが実行中のタスクで使用可能
と判定された場合には、実行中のタスクに当該資源の使
用を認めて、実行中のタスクの処理を継続する。また、
資源グループ使用可能性検査の結果、当該資源が属する
資源グループが実行中のタスクで使用可能と判定されな
かった場合には、当該資源が属する資源グループを実行
中のタスクが使用可能な状態に変更する資源グループ占
有タスク切り替え処理を行った上で、実行中のタスクに
当該資源の使用を認めて、実行中のタスクの処理を継続
する。
資源グループを使用可能であるか否かを示す資源グルー
プ使用許可フラグの値を保持する資源グループ使用許可
フラグ保持手段を備えていても良い。この場合、資源グ
ループ使用可能性検査では、資源グループ使用許可フラ
グに基づいて、実行中のタスクが資源グループを使用可
能か否かを判定する。
えば、共通の機能を提供する1以上の資源グループから
なる機能ブロック単位で、実行中のタスクが資源グルー
プを使用可能であるか否かを示すものであっても良い
し、或いは、資源グループ毎に、実行中のタスクが資源
グループを使用可能であるか否かを示すものであっても
良い。
グループ占有タスク切り替え処理では、例えば、実行中
のタスクが使用しようとしている資源の資源値を保持す
る必要がある場合に、当該資源が属する資源グループの
資源値を資源値保存領域に保存する処理と、実行中のタ
スクに対応した資源値保存領域に、実行中のタスクが使
用しようとしている資源の資源値として有効な値が保存
されている場合に、実行中のタスクに対応した資源値保
存領域から資源値を読み込む処理とを行う。
プを占有しているタスクに対応した値が資源グループ毎
に設定される資源グループ占有タスク変数の値を保持す
る資源グループ占有タスク変数保持手段を備えていても
良い。この場合、資源グループ占有タスク切り替え処理
では、実行中のタスクが使用しようとしている資源が属
する資源グループに対応した資源グループ占有タスク変
数に、実行中のタスクに対応した値を設定する処理も行
う。
プ占有タスク変数保持手段の他に、更に、実行中のタス
クに対応した値が設定される実行中タスク変数の値を保
持する実行中タスク変数保持手段を備えていても良い。
この場合、資源グループ使用可能性検査では、例えば、
実行中のタスクが使用しようとしている資源が属する資
源グループに対応した資源グループ占有タスク変数の値
と、実行中タスク変数の値とを比較することにより、当
該資源が属する資源グループを実行中のタスクが使用可
能か否かを判定する。
プに属する資源に使用中のものが存在するか否かを資源
グループ毎に示す資源グループ保存値有効フラグの値を
保持する資源グループ保存値有効フラグ保持手段を備え
ていても良い。この場合、タスクが資源を使用すること
により当該資源の資源値が有効な値となった場合には、
当該資源が属する資源グループに対応した資源グループ
保存値有効フラグに、当該資源グループに使用中の資源
が存在していることを示す値を設定する。そして、資源
グループ占有タスク切り替え処理において、実行中のタ
スクが使用しようとしている資源の資源値を保持する必
要があるか否かの判断は、当該資源が属する資源グルー
プに対応した資源グループ保存値有効フラグに基づいて
行う。
手段を備えている場合、実行中のタスクが、特定の資源
グループの資源値が破壊されることを前提とした処理を
実行した場合には、当該資源グループに対応した資源グ
ループ保存値有効フラグに、当該資源グループに対応し
た資源値保存領域に有効な値が存在していないことを示
す値を設定するようにすると良い。
プに属する資源をタスクが使用中であるか否かを資源グ
ループ毎に示す資源グループ使用中フラグを保持する資
源グループ使用中フラグ保持手段を備えていても良い。
この場合、タスクが資源を使用するときには、当該資源
が属する資源グループに対応した資源グループ使用中フ
ラグに、当該資源グループに属する資源をタスクが使用
中であることを示す値を設定する。そして、資源グルー
プ占有タスク切り替え処理において、実行中のタスクが
使用しようとしている資源の資源値を保持する必要があ
るか否かの判断を、当該資源が属する資源グループに対
応した資源グループ使用中フラグに基づいて行う。
を備えている場合、実行中のタスクが、特定の資源グル
ープの資源値が破壊されることを前提とした処理を実行
した場合には、資源値が破壊されることが前提とされて
いる資源グループのうち、実行中のタスクが使用可能な
資源グループについて、当該資源グループに対応した資
源グループ使用中フラグに、当該資源グループを使用中
のタスクが存在していないことを示す値を設定するよう
にすると良い。
用可能な資源を取り扱う中央処理装置と、上記中央処理
装置に設けられたキャッシュメモリとを備えていても良
い。この場合、資源グループは、各資源グループに対応
した各資源値保存領域のサイズがキャッシュメモリのキ
ャッシュラインサイズの整数倍となるように資源が分割
されてなることが好ましい。
用可能な資源を取り扱う中央処理装置と、上記中央処理
装置に設けられたキャッシュメモリとを備えている場
合、資源値保存領域は、各資源値保存領域の先頭アドレ
スがキャッシュメモリのキャッシュラインの境界となる
ように確保すると良い。
存領域を確保する際に、保存する資源値のサイズに応じ
て、資源値保存領域のサイズを動的に変化させて確保す
るようにしても良い。この場合、資源値保存領域のサイ
ズは、資源グループを単位として動的に変化させると良
い。また、資源値保存領域のサイズを動的に変化させる
場合、当該資源値保存領域は、対応するタスクが使用す
るスタックと同一のメモリブロックに、当該タスクがス
タックにデータを格納していく方向とは逆の方向から確
保していくようにすると良い。ただしこの場合、データ
処理装置は、資源値保存領域を動的に変化させるとき
に、スタックとしてタスクが使用中の領域と資源値保存
領域とが重複しないかを確認する領域重複チェック手段
を備えていることが好ましい。
て、図面を参照しながら詳細に説明する。
装置のレジスタなど、タスクが使用する資源で、なおか
つタスク毎に独立した値を保持する必要がある資源を、
資源グループと呼ぶ複数のグループに分割して管理す
る。
する際に、実行中のタスクが当該資源が属する資源グル
ープを使用可能か否かを判定する、資源グループ使用可
能性検査と呼ぶ検査を実行する。なお、本発明では、実
行中のタスクが当該資源グループを占有している場合
に、資源グループが使用可能であると判断する。そし
て、資源グループ使用可能性検査の結果、資源が使用可
能である場合は、本発明が導入されていない場合と何ら
変わりなく処理を継続する。また、それ以外の場合は、
資源グループ占有タスク切り替え処理と呼ぶ処理を起動
する。
は、切り替え対象となっている資源グループについて、
資源値の保存、読み込み、そして資源グループの占有状
態の変更を行う。具体的には、切り替えの対象となって
いる資源グループを現在占有しているタスクを特定し、
当該資源グループを現在占有しているタスクが、当該資
源グループに属する資源に有効な値を設定している場合
は、それらを当該タスクに対応した資源値保存領域に保
存する。また、実行中のタスク(すなわち資源を使用し
ようとしているタスク)が、当該資源グループに対応す
る有効な値を資源値保存領域に保持している場合は、そ
れらの値を読み込む。そして、これらの処理の後、当該
資源グループを占有しているタスクを、現在実行中のタ
スクに切り替える。
は、オペレーティングシステム等のソフトウェアの一部
として実現することも可能であるし、或いは、本発明を
適用したデータ処理装置で実現することも可能である
が、いずれの場合においても、一連の資源グループ使用
可能性検査及び資源グループ占有タスク切り替え処理を
正常に実行できるように、いくつかのフラグ及び変数を
用意し、これらの値を必要に応じて設定したり参照した
りする。
常に頻繁に行われる処理である。したがって、資源グル
ープ使用可能性検査は、オペレーティングシステム等に
よるソフトウェア処理によって行うようにするのではな
く、資源グループ使用可能性検査を行う機構をデータ処
理装置にハードウェアとして実装しておき、ハードウェ
ア処理によって行うようにしておいたほうが、より高速
な処理が可能となるので好ましい。
は、例えば、機能ブロック毎に使用の可否を示す使用許
可フラグをデータ処理装置に実装しておき、当該使用許
可フラグを用いて行う。ここで、機能ブロックは、共通
の機能を提供する1以上の資源グループから構成され
る。具体的には、例えば、浮動小数点演算装置のレジス
タをひとまとめにして機能ブロックとして扱う。
す使用許可フラグを用いて資源グループ使用可能性検査
を行う際は、使用不可能な資源グループを含む機能ブロ
ックに対応した使用許可フラグを、当該機能ブロックの
使用が不可であることを示すように設定しておく。そし
て、資源グループ使用可能性検査では、当該使用許可フ
ラグを参照することにより、資源グループの使用の可否
を検出する。
資源グループ使用許可フラグをデータ処理装置に実装し
ておき、当該資源グループ使用許可フラグを用いて、資
源グループ使用可能性検査を行うようにしても良い。資
源グループ毎に使用の可否を示す資源グループ使用許可
フラグを用いて資源グループ使用可能性検査を行う際
は、使用不可能な資源グループに対応した資源グループ
使用許可フラグを、当該資源グループの使用が不可であ
ることを示すように設定しておく。そして、資源グルー
プ使用可能性検査では、当該資源グループ使用許可フラ
グを参照することにより、資源グループの使用の可否を
検出する。
に対応した値が資源グループ毎に設定される資源グルー
プ占有タスク変数が格納されるレジスタと、実行中のタ
スクに対応した値が設定される実行中タスク変数が格納
されるレジスタとをデータ処理装置に実装しておき、資
源グループ占有タスク変数及び実行中タスク変数を用い
て、資源グループ使用可能性検査を行うようにしても良
い。資源グループ占有タスク変数及び実行中タスク変数
を用いて資源グループ使用可能性検査を行う際は、資源
グループ占有タスク変数と実行中タスク変数とを比較す
ることで、資源グループの使用の可否を検出する。
使用するフラグや変数が格納されるレジスタをデータ処
理装置にハードウェアとして実装しておけば、タスク処
理の実行効率を落とすことなく、資源グループ使用可能
性検査を行うことが可能となる。
理についても、より高速に処理を行うという観点から
は、資源グループ占有タスク切り替え処理を行う機構を
できるだけデータ処理装置にハードウェアとして実装し
ておき、当該処理をハードウェア処理として行うように
したほうが好ましい。ただし、資源グループ占有タスク
切り替え処理は、資源グループ使用可能性検査ほど頻繁
に行われるものではないので、オペレーティングシステ
ム等によるソフトウェア処理によって行うようにしても
良い。なお、資源グループ占有タスク切り替え処理の殆
どの部分は、オペレーティングシステム等のソフトウェ
アによる実現も、データ処理装置に実装されたハードウ
ェア又はマイクロプログラムによる実現も可能である。
理では、具体的には、切り替え対象となる資源グループ
の資源値の保存が必要か否かを判断し必要であれば当該
資源値を保存する処理や、資源値の保存が必要か否かを
判断するのに必要なフラグを更新する処理や、切り替え
対象となる資源グループの資源値の読み込みが必要か否
かを判断し必要であれば当該資源値を読み込む処理や、
資源値の読み込みが必要か否かを判断するのに必要なフ
ラグを更新する処理や、資源グループを占有しているタ
スクを特定するのに必要な変数を更新する処理や、資源
グループ使用可能性検査で使用するフラグを更新する処
理などを行う。
え処理を行うにあたっては、切り替え対象となる資源グ
ループの資源値の保存が必要か否かを判断する手段とし
て、各資源グループに対応した資源グループ使用中フラ
グを用意しておく。そして、タスクの実行中に、ある資
源グループに属する資源が使用されたら、対応する資源
グループ使用中フラグに「真」の値を設定する。また、
タスク切り替えによって実行が開始されたタスクが、特
定の資源グループの資源値が破壊されることを前提にし
た処理(例えば、システムコールや、サブルーチン呼び
出しや、サブルーチンからの復帰処理など)を実行した
場合には、当該資源グループに対応した資源グループ使
用中フラグに「偽」の値を設定する。また、タスクの実
行終了などにより、タスクが使用していた資源の資源値
を破棄しても問題ないと判断された場合には、当該タス
クが占有していた資源グループに対応する資源グループ
使用中フラグに「偽」の値を設定する。
ク切り替え処理を行うにあたっては、切り替え対象とな
る資源グループの資源値の読み込みが必要か否かを判断
する手段として、各資源グループに対応した資源グルー
プ保存値有効フラグをタスク毎に用意しておく。そし
て、実行中のタスクが資源を使用する際に、当該タスク
に対応した資源グループ保存値有効フラグのうち、当該
資源が属する資源グループに対応する資源グループ保存
値有効フラグに「真」の値を設定する。なお、このよう
に資源グループ保存値有効フラグを用いる際は、実行中
のタスクに対応する資源グループ保存値有効フラグを保
持するレジスタを、データ処理装置に設けておくと良
い。これにより、資源グループ保存値有効フラグの更新
に要するメモリアクセスを低減させることができる。
されたタスクが、特定の資源グループの資源値が破壊さ
れることを前提にした処理を含む場合には、当該タスク
に対応した資源グループ保存値有効フラグのうち、資源
値が破壊されることが前提とされている資源グループに
対応した資源グループ保存値有効フラグに「偽」の値を
設定する。これにより、不要な資源値の保存や読み込み
を省略することが可能となり、メモリアクセスを低減す
ることができる。また、タスクの実行終了などにより、
タスクが使用していた資源の資源値を破棄しても問題な
いと判断された場合には、当該タスクに対応した資源グ
ループ保存値有効フラグのうち、当該タスクが占有して
いた資源グループに対応する資源グループ保存値有効フ
ラグに「偽」の値を設定する。これにより、不要な資源
値の保存や読み込みを省略することが可能となり、メモ
リアクセスを更に低減することができる。
ク切り替え処理を行うにあたっては、資源グループを占
有しているタスクを特定する手段として、各資源グルー
プに対応した資源グループ占有タスク変数を用意してお
く。そして、資源グループ占有タスク切り替え処理で
は、切り替え対象となる資源グループに対応した資源グ
ループ占有タスク変数の値を、実行中のタスクに対応し
た値に更新する。
ムは、タスク切り替えによって実行が停止されるタスク
に対応した資源グループ保存値有効フラグや資源グルー
プ占有フラグ等を更新する。また、オペレーティングシ
ステムは、必要な場合には、タスク切り替えによって実
行が開始されるタスクについて、資源グループ使用許可
フラグ、資源グループ保存値有効フラグ、実行中タスク
変数などの保存及び設定を行う。また、オペレーティン
グシステムは、必要な場合には、資源値の保存及び読み
込みを、上述のようなフラグの保存及び設定の手順の間
の適切な時期に行う。そして、これらの処理を行った
後、オペレーティングシステムは、新しいタスクの実行
を開始する。
なったタスクが、使用を許可されていない資源グループ
に属する資源を使用しようとしたときには、使用を許可
されていない資源グループに属する資源をタスクが使用
しようとしていることが、資源グループ使用可能性検査
によって検出され、資源グループ占有タスク切り替え処
理が起動される。そして、資源グループ占有タスク切り
替え処理により、使用を許可されていなかった資源グル
ープに属する資源をタスクが使用できるようにするのに
必要な処理が行われる。そして、資源グループ占有タス
ク切り替え処理により、資源の使用が可能となったら、
当該資源を使用してタスクの処理を継続する。
るレジスタをデータ処理装置が実装している場合は、実
行中のタスクが資源を使用しようとしたときに、当該資
源が属する資源グループに対応した資源グループ使用中
フラグに「真」の値を設定しておく。また、資源グルー
プ保存値有効フラグを保持するレジスタをデータ処理装
置が実装している場合は、実行中のタスクが資源を使用
しようとしたときに、当該資源が属する資源グループに
対応した資源グループ保存値有効フラグに「真」の値を
設定しておく。
処理では、先ず、実行中のタスクが使用しようとしてい
る資源が属する資源グループに対応した資源グループ占
有タスク変数から、当該資源グループを占有中のタスク
を特定する。そして、当該資源グループを占有中のタス
クに対応した資源グループ占有フラグに「偽」の値を設
定する。また、当該資源グループを占有中のタスクに対
応した資源グループ保存値有効フラグを検査し、その値
が「真」ならば、当該資源グループの資源値を、当該資
源グループを占有中のタスクに対応した資源値保存領域
に保存する。
持するレジスタをデータ処理装置が実装している場合に
は、当該レジスタの内容を検査し、占有タスク切り替え
対象の資源グループに対応した資源グループ使用中フラ
グの値が「真」ならば、当該資源グループの資源値を、
当該資源グループを占有中のタスクに対応した資源値保
存領域に保存する。
ープ保存値有効フラグを検査し、占有タスク切り替え対
象の資源グループに対応した値が「真」ならば、実行中
のタスクに対応した資源値保存領域から、当該資源グル
ープの資源値を読み込む。これにより、実行中のタスク
からは、あたかも自分が設定した値が当該資源に継続し
て存在していたかのように見え、タスク間の独立性が保
証される。
ープ保存値有効フラグの値が「偽」の場合には、実行中
のタスクに対応した資源値保存領域として、占有タスク
切り替え対象の資源グループに対応した資源値保存領域
が、既に確保されているかどうかを検査する。そして、
確保されていない場合には、当該資源グループに対応す
る資源値保存領域を確保する。その後、当該資源グルー
プに対応する資源グループ保存値有効フラグに「真」の
値を設定する。
タスク切り替え対象の資源グループに対応した資源グル
ープ占有タスク変数に、実行中のタスクに対応した値を
設定することにより、資源グループを占有するタスクの
切り替え処理がなされ、実行中のタスクが資源を使用で
きる状態とされる。
して資源使用可能性検査を行う場合は、資源グループ占
有タスク切り替え処理の中で、占有タスク切り替え対象
の資源グループに対応する資源グループ使用許可フラグ
に「真」の値を設定する処理も行う。
クに対応した資源値保存領域は、タスクが使用するスタ
ックと同一のメモリブロックに確保すると良い。スタッ
クに使用するメモリブロックは、タスクが生成されるま
では確保する必要がなく、また、タスクが実行を終了し
たら開放してしまうことができる。このような性質を利
用することで、タスクに動的にスタック用のメモリブロ
ックを割り当ててメモリ使用量を節約する機構を実現で
きるが、このような機構において、タスクが使用するス
タックと同一のメモリブロックに資源値保存領域を確保
するようにすれば、資源値保存領域も動的に割り当てる
ことが可能となり、メモリ使用量を更に節約することが
可能となる。
れるが、当該資源値保存領域を確保する際は、保存する
資源値のサイズに応じて、資源値保存領域のサイズを動
的に変化させて確保したほうが好ましい。これにより、
メモリを効率的に使用することが可能となる。そして、
このように資源値保存領域のサイズを動的に変化させる
ようにした場合には、実行中のタスクがこれまで使用し
ていなかった資源グループを使用しようとしたときに、
資源グループ占有タスク切り替え処理の中で、当該資源
グループに対応する資源値保存領域を確保するようにす
る。このとき、資源値保存領域は、タスクが使用するス
タックと同一のメモリブロックに、当該タスクがスタッ
クにデータを格納していく方向とは逆の方向から確保し
ていくようにすると良い。これにより、メモリを更に有
効に使用できる。
るスタックと同一のメモリブロックに確保する場合は、
スタックとして使用する領域と資源値保存領域とが重複
しないことが望まれる。スタックとして使用する領域と
資源値保存領域とが重複しないようにするには、例え
ば、資源値保存領域のサイズを動的に変化させるとき
に、スタックとして使用中の領域と資源値保存領域とが
重複しないかを確認するようにする。また、例えば、タ
スクがスタックとして使用する領域のサイズを動的に変
化させるときに、スタックとして使用する領域と資源値
保存領域とが重複しないかを確認するようにする。
を備えている場合は、資源を資源グループに分割する際
に、各資源グループに対応した各資源値保存領域のサイ
ズがキャッシュメモリのキャッシュラインサイズの整数
倍となるように分割したほうが良い。このように、各資
源グループに対応した各資源値保存領域のサイズが、キ
ャッシュメモリのキャッシュラインサイズの整数倍とな
っていれば、メモリアクセスをより効率良く行うことが
可能となる。
を備えており、資源値保存領域をキャッシュメモリ上に
確保する場合には、資源値保存領域の先頭アドレスがキ
ャッシュメモリのキャッシュラインの境界となるように
したほうが良い。このように、資源値保存領域の先頭ア
ドレスがキャッシュメモリのキャッシュラインの境界と
なっていれば、メモリアクセスをより効率良く行うこと
が可能となる。
り具体的な例を挙げて更に詳細に説明する。なお、以下
の説明では、まず、本発明の第1の実施の形態として、
本発明に係るタスク切り替え方法を既存のデータ処理装
置を用いてオペレーティングシステムの処理によって実
現した場合について、具体的な例を挙げて説明する。そ
の後、本発明の第2の実施の形態として、本発明を適用
した新規なデータ処理装置を用いてタスク切り替えを行
う場合について、具体的な例を挙げて説明する。
タスク切り替え方法を、従来より実用化されているデー
タ処理装置において、オペレーティングシステムの処理
によって実現した場合について説明する。
は、オペレーティングシステムの処理によって実現され
るが、当該オペレーティングシステムは、タスク切り替
えを実現するモジュール以外については、任意の構成と
することができる。したがって、タスク切り替えを実現
するモジュール以外については、従来のオペレーティン
グシステムと同様な構成であっても良い。
では、説明を簡単にするため、タスク切り替え処理等を
実行するオペレーティングシステムは、オペレーティン
グシステム専用のレジスタを用いて処理を行い、タスク
が使用するレジスタの値を破壊しないものとする。ただ
し、本発明は、オペレーティングシステムが、タスクと
同一のレジスタを使用するような場合にも適用可能であ
る。オペレーティングシステムが、タスクと同一のレジ
スタを使用する場合には、当該レジスタをオペレーティ
ングシステムが使用するか、タスクが使用するかによっ
て、当該レジスタの値の保存や読み込みを適切なタイミ
ングで行うようにすれば良い。
説明する。なお、このデータ処理装置自体は既に実用化
されているものであり、新規なものではない。
は、中央処理装置(CPU:CentralProcessing Unit)
と、浮動小数点演算などの演算命令を高速に実行する浮
動小数点演算装置とを備えている。ここで、中央処理装
置はキャッシュメモリを備えており、当該キャッシュメ
モリのキャッシュラインサイズは16バイトである。
使用可能な資源として、図1に示すように、中央処理装
置のレジスタ(以下、汎用レジスタと称する。)と、浮
動小数点演算装置のレジスタ(以下、浮動小数点レジス
タと称する。)とを備えている。
であり、各汎用レジスタは32ビットの容量を持つ。ま
た、浮動小数点レジスタは、0〜63番まであり、各浮
動小数点レジスタは64ビットの容量を持つ。したがっ
て、このデータ処理装置は、汎用レジスタと浮動小数点
レジスタとで、合計8192ビット(=1024バイ
ト)の容量を持っている。
ように、浮動小数点演算装置が使用可能であるか否かを
示す使用許可フラグ(以下、浮動小数点演算装置使用許
可フラグと称する。)が格納される1ビットのレジスタ
も備えている。
グラムは、サブルーチン呼び出し、サブルーチンからの
復帰又はシステムコール等のような機能ブロックの呼び
出し或いは復帰の命令(簡単のため、以下の説明では、
これらの命令を一括して機能ブロック遷移命令と称す
る。)を実行する際に、汎用レジスタの0〜63番と浮
動小数点レジスタの0〜31番は、作業用レジスタとし
て使用して、呼び出された機能ブロックの処理中に値を
変更しても構わないが、汎用レジスタの64〜127番
と浮動小数点レジスタの32〜63番は、機能ブロック
の処理を終了して当該プログラムの処理を継続する際
に、機能ブロックの呼び出し前の値を保持していなけれ
ばならないという仕様に従っているものとする。
システムに指示するタスク切り替えの要求については、
機能ブロック遷移命令を使用するものとする。
み処理に対応するため、割り込み処理のときには、全て
の汎用レジスタ及び浮動小数点レジスタの値を割り込み
直前の値に復元してから、通常処理を再開する必要があ
るものとする。
概要とデータ構造 つぎに、オペレーティングシステムの概要、並びに当該
オペレーティングシステムが取り扱うデータ構造につい
て説明する。
ステムは、マルチタスク機能を有している。すなわち、
このオペレーティングシステムは、タスクが使用する資
源の状態を示す資源値(すなわち、汎用レジスタや小数
点レジスタの値)をタスク毎に用意した資源値保存領域
に保存し、タスクを実行するときに当該タスクが使用す
る資源の資源値を資源値保存領域から読み出すことで、
それぞれのタスクの独立性を保証して複数のタスクを並
行して実行することが可能となっている。
ク機能を実現するにあたって、タスクが使用することが
可能な資源を、複数の資源グループに分割して管理する
ことを特徴としており、本例においては、オペレーティ
ングシステムによって、タスクが使用することが可能な
資源である汎用レジスタ及び浮動小数点レジスタを、図
2に示すように、資源グループ0、資源グループ1、資
源グループ2、資源グループ3の4つの資源グループに
分割して管理する。
遷移命令によるタスク切り替えを行う際に、機能ブロッ
ク遷移命令前の値を保持する必要がない汎用レジスタの
グループである。すなわち、資源グループ0には、汎用
レジスタの0〜63番が属する。また、資源グループ1
は、機能ブロック遷移命令によるタスク切り替えを行う
際に、機能ブロック遷移命令前の値を保持する必要があ
る汎用レジスタのグループである。すなわち、資源グル
ープ1には、汎用レジスタの64〜127番が属する。
また、資源グループ2は、機能ブロック遷移命令による
タスク切り替えを行う際に、機能ブロック遷移命令前の
値を保持する必要がない浮動小数点レジスタのグループ
である。すなわち、資源グループ2には、浮動小数点レ
ジスタの0〜31番が属する。また、資源グループ3
は、機能ブロック遷移命令によるタスク切り替えを行う
際に、機能ブロック遷移命令前の値を保持する必要があ
る浮動小数点レジスタのグループである。すなわち、資
源グループ3には、浮動小数点レジスタの32〜63番
が属する。
に示すように、メモリ上の変数として、資源グループ2
−3占有タスク変数と、実行中タスク変数とを定義す
る。ここで、資源グループ2−3占有タスク変数には、
資源グループ2及び資源グループ3を占有しているタス
クに対応した値が設定される。換言すれば、資源グルー
プ2及び資源グループ3の資源値は、資源グループ2−
3占有タスク変数が示すタスクに対応した値となる。ま
た、実行中タスク変数には、現在実行中のタスクに対応
した値が設定される。すなわち、本例では、実行中タス
ク変数の値を参照することにより、実行中のタスクを特
定することが可能となっている。
タ処理装置に備えられた浮動小数点演算装置使用許可フ
ラグを、資源グループ2及び資源グループ3に属する資
源の使用を許可するか否かを示す資源グループ使用許可
フラグとして使用する。具体的には、実行中のタスクが
資源グループ2及び資源グループ3に属する資源を使用
可能のとき、浮動小数点演算装置使用許可フラグに
「真」の値が設定され、実行中のタスクが資源グループ
2及び資源グループ3に属する資源を使用してはいけな
いとき、浮動小数点演算装置使用許可フラグに「偽」の
値が設定される。
に示すように、複数のタスクを並行して実行する際に、
タスク毎に、タスク情報を保存するためのタスク情報保
存領域と、タスクの実行に使用される資源の状態を示す
資源値を保存するための資源値保存領域とをメモリ上に
確保する。
タスク情報は、一つのタスクに対して一つ存在する。そ
して、これらのタスク情報は、図4に示すように、それ
らのタスクの数に応じた配列としてメモリ上にまとめて
保存され、当該配列の添え字を用いて各タスク情報を参
照できるようになされている。すなわち、各タスク情報
はそれぞれ配列要素としてメモリ上に保存され、各配列
要素が保存される領域が、それぞれタスク情報保存領域
に対応している。このようにタスク情報を配列としてメ
モリ上にまとめて保存しておけば、メモリを有効に活用
することができ、しかも、各タスク情報に高速にアクセ
スすることが可能となる。
すように、タスク制御情報領域と、資源制御情報領域と
を有している。ここで、タスク制御情報領域は、オペレ
ーティングシステムがタスクを制御するのに必要なタス
ク制御情報が保存される領域である。タスク制御情報領
域に保存されるタスク制御情報は、本発明のポイントと
なるものではなく、従来のシステムで使用されていたも
のと同様で良いので、ここでは詳細な説明は省略する。
する資源を制御するのに必要な資源制御情報が保存され
る領域であり、従来のシステムには無かったものであ
る。この資源制御情報領域には、タスクが使用する資源
を制御するのに必要な資源制御情報として、資源グルー
プ2−3占有フラグと、資源グループ保存値有効フラグ
と、資源値保存領域先頭番地とが保存される。
占有フラグは、資源グループ2及び資源グループ3を占
有しているか否かを示すフラグである。そして、タスク
が資源グループ2及び資源グループ3を占有していると
き、当該タスクに対応したタスク情報の資源グループ2
−3占有フラグには、「真」の値が設定される。また、
タスクが資源グループ2及び資源グループ3を占有して
いないとき、当該タスクに対応したタスク情報の資源グ
ループ2−3占有フラグには、「偽」の値が設定され
る。
報の資源グループ2−3占有フラグが「真」のとき、資
源グループ2及び資源グループ3の資源値は、当該タス
クに対応した値となっている。また、あるタスクに対応
したタスク情報の資源グループ2−3占有フラグが
「偽」のとき、資源グループ2及び資源グループ3の資
源値は、当該タスクに対応した値にはなっていない。
保存値有効フラグは、有効な値が資源値保存領域に保存
されているか否かを資源グループ毎に示すフラグであ
る。この資源グループ保存値有効フラグには、資源グル
ープ0に対応したフラグ(以下、資源グループ保存値有
効フラグ0と称する。)と、資源グループ1に対応した
フラグ(以下、資源グループ保存値有効フラグ1と称す
る。)と、資源グループ2に対応したフラグ(以下、資
源グループ保存値有効フラグ2と称する。)と、資源グ
ループ3に対応したフラグ(以下、資源グループ保存値
有効フラグ4と称する。)とがある。
0の資源値として有効な値が保存されているとき、資源
グループ保存値有効フラグ0には「真」の値が設定さ
れ、資源グループ0の資源値として有効な値が保存され
ていないとき、資源グループ保存値有効フラグ0には
「偽」の値が設定される。同様に、資源値保存領域に、
資源グループ1の資源値として有効な値が保存されてい
るとき、資源グループ保存値有効フラグ1には「真」の
値が設定され、資源グループ1の資源値として有効な値
が保存されていないとき、資源グループ保存値有効フラ
グ1には「偽」の値が設定される。同様に、資源値保存
領域に、資源グループ2の資源値として有効な値が保存
されているとき、資源グループ保存値有効フラグ2には
「真」の値が設定され、資源グループ2の資源値として
有効な値が保存されていないとき、資源グループ保存値
有効フラグ2には「偽」の値が設定される。同様に、資
源値保存領域に、資源グループ3の資源値として有効な
値が保存されているとき、資源グループ保存値有効フラ
グ3には「真」の値が設定され、資源グループ3の資源
値として有効な値が保存されていないとき、資源グルー
プ保存値有効フラグ3には「偽」の値が設定される。
資源値の資源値保存領域への保存を行わずに、当該タス
クに対応するタスク情報の資源グループ保存値有効フラ
グの値をすべて「偽」の値に設定する。これにより、無
用な資源値の保存を行わなくて済むようになる。
域先頭番地には、資源値保存領域のメモリ上での先頭番
地を示す値が設定される。従来は、図20に示したよう
に、タスク情報保存領域と資源値保存領域とがメモリ上
で一連の領域とされていた。これに対して、本例では、
図3及び図5に示すように、タスク情報保存領域と、資
源値保存領域とをそれぞれ別々にメモリ上に確保する。
そこで、本例では、資源値保存領域の場所が分かるよう
に、資源制御情報として、資源値保存領域先頭番地を保
存しておく。
システムは、各タスク毎に資源値保存領域を確保する。
ここで、資源値保存領域には、当該資源値保存領域に対
応するタスクの実行に使用される資源の状態を示す資源
値が保存されるが、本例において、資源値保存領域に
は、全ての資源の資源値が保存されるとは限らず、資源
グループ単位で必要なものだけが保存される。
0及び資源グループ1の資源値だけを保持すれば良い場
合には、当該タスクに対応した資源値保存領域には、図
5に示すように、資源グループ0及び資源グループ1の
資源値だけが保存される。換言すれば、例えば、浮動小
数点演算装置を使用しないタスクにおいては、資源グル
ープ2及び資源グループ3のための資源値保存領域が不
要となる。
てのタスクについて全ての資源値を資源値保存領域に保
存するようにしていたので、タスク一つあたりの資源値
保存領域として、全ての汎用レジスタ及び浮動小数点レ
ジスタの分のメモリ、すなわち1024バイトのメモリ
が必要であった。一方、本例では、資源を資源グループ
に分割して管理し、資源値保存領域には、値を保持すべ
き資源を含む資源グループについてだけ、資源値を保存
するようにする。したがって、例えば、浮動小数点演算
装置を使用しないタスクについては、浮動小数点レジス
タに対応する資源値保存領域が必要ないので、従来のタ
スク切り替え方法に比べて、タスク一つあたり512バ
イトのメモリ(すなわち浮動小数点レジスタの分のメモ
リ)を節約することができる。
プに分割して管理し、資源値保存領域には、値を保持す
べき資源を含む資源グループについてだけ、資源値を保
存するようにする。これにより、タスク切り替えを行っ
たときにメモリに保存すべきデータ量を大幅に削減する
ことができ、タスク切り替え時のメモリアクセスを大幅
に削減することができる。
際、資源グループ0の資源値は、資源制御情報の資源値
保存領域先頭番地が示すメモリ番地から順次格納するよ
うにする。また、資源グループ1の資源値は、資源制御
情報の資源値保存領域先頭番地が示すメモリ番地から2
56バイト分だけ後ろのメモリ番地から順次格納するよ
うにする。また、資源グループ2の資源値は、資源制御
情報の資源値保存領域先頭番地が示すメモリ番地から5
12バイト分だけ後ろのメモリ番地から順次格納するよ
うにする。また、資源グループ3の資源値は、資源制御
情報の資源値保存領域先頭番地が示すメモリ番地から7
68バイト分だけ後ろのメモリ番地から順次格納するよ
うにする。
存する領域の相対的な位置関係を予め決めておいた場
合、各資源グループの資源値を保存する領域を示す情報
としては資源値保存領域先頭番地だけがあれば良く、各
資源グループの資源値を保存する領域のメモリ番地を個
別に記憶しておくような必要が無くなる。
て行われるタスク切り替えの処理の概略について説明す
る。
数点演算装置使用許可フラグによって管理される資源グ
ループ2及び資源グループ3については、タスク切り替
えの時点では、資源値保存領域への資源値の保存や、資
源値保存領域からの資源値の読み込みを行わない。そし
て、資源グループ2及び資源グループ3については、そ
れらに属する資源が必要になった段階で必要に応じて、
資源値の保存や読み込みを行う。
ついても、資源値保存領域への資源値の保存や、資源値
保存領域からの資源値の読み込みを常に行うとは限ら
ず、必要なものについてだけ、資源値の保存や読み込み
を行う。
遷移命令によって起動された場合には、資源グループ1
の資源値は保持しなければならないが、資源グループ0
の資源値は変更して構わないので、資源グループ1の資
源値の保存だけを行う。一方、タスク切り替えが割り込
み処理によって起動された場合には、資源グループ0の
資源値と資源グループ1の資源値の両方を保持しなけれ
ばならないので、資源グループ0の資源値と資源グルー
プ1の資源値の両方について、資源値保存領域への保存
を行う。
む場合も、先ず、資源グループ保存値有効フラグを検査
し、資源グループ0や資源グループ1の資源値として有
効な値が資源値保存領域に保存されているか否かを判別
する。そして、有効な値が保存されている場合にだけ、
資源値保存領域からの資源値の読み込みを行う。すなわ
ち、タスク切り替えにより実行を再開するタスクに関し
ては、当該タスクが実行を停止したときに設定した資源
グループ保存値有効フラグの値を参照して、有効な資源
値だけを資源値保存領域から読み込む。
び資源グループ3については、タスク切り替えの時点で
は、資源値保存領域への資源値の保存や、資源値保存領
域からの資源値の読み込みを行わない。そこで、タスク
が資源グループ2や資源グループ3に属する資源が必要
になったときには、先ず、資源グループ使用可能性検査
を行う。資源グループ使用可能性検査では、資源グルー
プ2や資源グループ3に属する資源をタスクが使用可能
であるか否かを検査する。なお、資源グループ使用可能
性検査については、後で詳細に説明する。
果、当該資源をタスクが使用可能であると判定された場
合には、当該資源を使用してタスクの処理を継続し、使
用可能でないと判定された場合には、資源グループ占有
タスク切り替え処理を行う。資源グループ占有タスク切
り替え処理では、当該資源をタスクが使用可能な状態に
変更する。なお、資源グループ占有タスク切り替え処理
については、後で詳細に説明する。そして、資源グルー
プ占有タスク切り替え処理により、当該資源をタスクが
使用可能な状態に変更されたら、当該資源を使用してタ
スクの処理を継続する。
6のフローチャートを参照して詳細に説明する。なお、
ここでは、タスクAからタスクBへのタスク切り替えを
行うものとして説明する。
処理を行う際は、先ず、ステップST1−1において、
タスク切り替えが割り込み処理によるものであるか否か
を判断する。割り込み処理によるタスク切り替えの場合
には、ステップST1−2へ進み、割り込み処理による
タスク切り替えでない場合(すなわち機能ブロック遷移
命令によるタスク切り替えの場合)には、ステップST
1−4へ進む。
よるタスク切り替えに対応するように、タスクAに対応
したタスク情報の資源グループ保存値有効フラグの設定
を行う。具体的には、タスクAに対応したタスク情報の
資源グループ保存値有効フラグのうち、資源グループ0
及び資源グループ1に対応する資源グループ保存値有効
フラグの値を「真」にする。なお、タスクAに対応した
タスク情報の資源グループ保存値有効フラグのうち、資
源グループ2及び資源グループ3に対応する資源グルー
プ保存値有効フラグの値は変更しない。
許可フラグが存在しない資源グループの資源値を、タス
クAに対応した資源値保存領域に保存する。具体的に
は、資源グループ0及び資源グループ1の資源値を、タ
スクAに対応した資源値保存領域に保存する。なお、資
源グループ2及び資源グループ3については、後述する
ように浮動小数点演算装置使用許可フラグを用いて資源
グループ使用可能性検査を行うことができるので、タス
ク切り替えの時点では、資源グループ2及び資源グルー
プ3の資源値の保存は行わない。そして、ステップST
1−3での処理が完了したら、ステップST1−6へ進
む。
ック遷移命令によるタスク切り替えに対応するように、
タスクAに対応したタスク情報の資源グループ保存値有
効フラグの設定を行う。具体的には、タスクAに対応し
たタスク情報の資源グループ保存値有効フラグのうち、
資源グループ0に対応する資源グループ保存値有効フラ
グの値を「偽」にし、資源グループ1に対応する資源グ
ループ保存値有効フラグの値を「真」にし、資源グルー
プ2に対応する資源グループ保存値有効フラグの値を
「偽」にする。なお、資源グループ3に対応する資源グ
ループ保存値有効フラグの値は変更しない。
許可フラグが存在しない資源グループの資源値を、タス
クAに対応した資源値保存領域に保存する。具体的に
は、資源グループ1の資源値を、タスクAに対応した資
源値保存領域に保存する。なお、使用許可フラグが存在
しない資源グループとしては、資源グループ0と資源グ
ループ1とがあるが、機能ブロック遷移命令によるタス
ク切り替えの場合、資源グループ0の資源値は変更され
ても構わないので、ここでは、資源グループ0の資源値
は保存しない。また、資源グループ2及び資源グループ
3については、後述するように浮動小数点演算装置使用
許可フラグを用いて資源グループ使用可能性検査を行う
ことができるので、タスク切り替えの時点では、資源グ
ループ2及び資源グループ3の資源値の保存は行わな
い。そして、ステップST1−5での処理が完了した
ら、ステップST1−6へ進む。
み処理によるタスク切り替えの場合と、機能ブロック遷
移命令によるタスク切り替えの場合とで共通であり、先
ず、ステップST1−6において、浮動小数点演算装置
使用許可フラグの値を、タスクA(すなわち切り替え元
のタスク)に対応したタスク情報の資源グループ2−3
占有フラグに設定する。
T1−10の処理により、タスクB(すなわち切り替え
先のタスク)に対応した資源値保存領域に資源グループ
0及び資源グループ1の資源値が保存されている場合に
は、それらの値を読み出す。すなわち、資源グループ2
及び資源グループ3については、資源グループ使用可能
性検査が行えるので、資源グループ2及び資源グループ
3の資源値の読み込みをタスク切り替えの時点で行う必
要はないが、資源グループ0及び資源グループ1につい
ては、資源グループ使用可能性検査を行うことができな
いので、タスク切り替えの時点で、タスクBに対応した
タスク情報の資源グループ保存値有効フラグの値に基づ
いて、資源グループ0及び資源グループ1の資源値の読
み込みを行う。
おいて、タスクBに対応したタスク情報の資源グループ
保存値有効フラグのうち、資源グループ保存値有効フラ
グ0の値を検査する。そして、資源グループ保存値有効
フラグ0の値が「真」の場合は、ステップST1−8へ
進み、当該ステップST1−8において、資源グループ
0の資源値をタスクBに対応した資源値保存領域から読
み込み、その後、ステップST1−9へ進む。一方、資
源グループ保存値有効フラグ0の値が「偽」の場合は、
資源グループ0の資源値の読み込みを行うことなく、ス
テップST1−9へ進む。
クBに対応したタスク情報の資源グループ保存値有効フ
ラグのうち、資源グループ保存値有効フラグ1の値を検
査する。そして、資源グループ保存値有効フラグ1の値
が「真」の場合は、ステップST1−10へ進み、当該
ステップST1−10において、資源グループ1の資源
値をタスクBに対応した資源値保存領域から読み込み、
その後、ステップST1−11へ進む。一方、資源グル
ープ保存値有効フラグ1の値が「偽」の場合は、資源グ
ループ1の資源値の読み込みを行うことなく、ステップ
ST1−11へ進む。
動小数点演算装置使用許可フラグに、タスクBに対応し
たタスク情報の資源グループ2−3占有フラグの値を設
定する。
行中タスク変数にタスクBに対応した値を設定する。以
上の処理で、資源グループの制御に必要な処理と、タス
ク切り替えの時点で必要な資源値の保存及び読み込みの
処理とが完了したこととなる。
その他のタスク切り替え処理を行い、全てのタスク切り
替え処理が完了したら、タスクBを起動する。なお、ス
テップST1−13での処理は、資源の管理に関する処
理以外の処理である。したがって、ステップST1−1
3での処理は、従来のオペレーティングシステムと同様
で良く、本発明のポイントではないので、詳細な説明は
省略する。
処理は、実行するタスクを管理するために、従来のオペ
レーティングシステムにおけるタスク切り替え処理でも
行われることが多いが、実行中タスク変数は本発明にお
いて使用される変数であるので、ここでは、実行中タス
ク変数にタスクBに対応した値を設定する処理を、ステ
ップST1−13とは別のステップとして明示した。
タ処理装置においてタスク切り替えを行う際は、タスク
切り替えを行う毎に、汎用レジスタ及び小数点レジスタ
の全てについて値の保存及び読み込みを行う必要がある
ため、1024バイトの資源値の資源値保存領域への保
存と、1024バイトの資源値の資源値保存領域からの
読み込みとが必要だった。これに対して、上記タスク切
り替え処理では、資源を4つの資源グループ0,1,
2,3に分割して管理し、必要なものについてだけ、資
源値保存領域への保存や資源値保存領域からの読み込み
を行うようにしているので、タスク切り替え時のメモリ
アクセスが非常に少なくて済む。
タスク切り替えが割り込み処理によって起動された場合
には、切り替え元のタスク(すなわちタスクA)に対応
した資源値保存領域への資源値の保存を、資源グループ
0及び資源グループ1についてだけ行えば良い。この場
合、資源値保存領域への資源値の保存は、512バイト
だけで済む。また、タスク切り替えが機能ブロック遷移
命令によって起動された場合には、切り替え元のタスク
(すなわちタスクA)に対応した資源値保存領域への資
源値の保存を、資源グループ1についてだけ行えば良
い。この場合、資源値保存領域への資源値の保存は、2
56バイトだけで済む。
資源値保存領域からの資源値の読み込み量が最大となる
のは、切り替え先のタスク(すなわちタスクB)に対応
したタスク情報の資源グループ保存値有効フラグのう
ち、資源グループ保存値有効フラグ0及び資源グループ
保存値有効フラグ1が「真」の場合であるが、この場合
でも、切り替え先のタスクに対応した資源値保存領域か
らの資源値の読み込みは、資源グループ0及び資源グル
ープ1についてだけ行えば良い。すなわち、上記タスク
切り替え処理において、資源値保存領域からの資源値の
読み込み量は、最大でも512バイトだけで済む。
切り替え先のタスク(すなわちタスクB)に対応したタ
スク情報の資源グループ保存値有効フラグのうち、資源
グループ保存値有効フラグ0が「偽」であり、且つ、資
源グループ保存値有効フラグ1が「真」の場合には、切
り替え先タスクに対応した資源値保存領域からの資源値
の読み込みは、資源グループ1についてだけ行えば良
い。この場合、資源値保存領域からの資源値の読み込み
は、256バイトだけで済む。
クB)に対応したタスク情報の資源グループ保存値有効
フラグのうち、資源グループ保存値有効フラグ0が
「真」であり、且つ、資源グループ保存値有効フラグ1
が「真」の場合とは、切り替え先のタスクが割り込み処
理によるタスク切り替えによって停止していた場合であ
る。また、切り替え先のタスク(すなわちタスクB)に
対応したタスク情報の資源グループ保存値有効フラグの
うち、資源グループ保存値有効フラグ0が「偽」であ
り、且つ、資源グループ保存値有効フラグ1が「真」の
場合とは、切り替え先のタスクが機能ブロック遷移命令
によるタスク切り替えによって停止していた場合であ
る。
フローチャートを参照して詳細に説明する。
装置による命令実行と並行して行われるものである。す
なわち、資源グループ使用可能性検査は、タスクの命令
を実行しようとする毎に実行される。
ステップST2−1において、実行しようとしている命
令が浮動小数点演算装置を使用するか否かを判断する。
そして、浮動小数点演算装置を使用する場合には、ステ
ップST2−2へ進む。一方、浮動小数点演算装置を使
用しない場合には、そのまま資源グループ使用可能性検
査を終了して、浮動小数点演算装置を使用することなく
タスクの命令を実行する。
装置使用許可フラグの値を検査する。そして、浮動小数
点演算装置使用許可フラグの値が「偽」の場合には、ス
テップST2−3へ進む。一方、浮動小数点演算装置使
用許可フラグの値が「真」の場合には、タスクが浮動小
数点演算装置を使用できる状態に既になっているので、
資源グループ使用可能性検査を終了して、浮動小数点演
算装置を使用してタスクの命令を実行する。
浮動小数点演算装置を使用できる状態になっていない場
合である。そこで、ステップST2−3では、資源グル
ープ占有タスク切り替え処理を行い、タスクが浮動小数
点演算装置を使用できるようにする。なお、資源グルー
プ占有タスク切り替え処理については後で詳細に説明す
る。そして、資源グループ占有タスク切り替え処理によ
り、タスクが浮動小数点演算装置を使用できる状態にな
ったら、資源グループ使用可能性検査を終了して、浮動
小数点演算装置を使用してタスクの命令を実行する。
は、中央処理装置による命令実行と並行して行われるも
のであり、資源グループ占有タスク切り替え処理が起動
されない限り、資源グループ使用可能性検査によって処
理時間が増加するようなことはない。すなわち、浮動小
数点演算装置を使用しないタスクについては、資源グル
ープ占有タスク切り替え処理が起動されることはないの
で、資源グループ使用可能性検査がタスクの実行速度に
悪影響を与えることはない。したがって、浮動小数点演
算装置を使用しないタスクは、浮動小数点演算装置に関
する資源値の保存や読み込みを行わないことによる処理
時間短縮及び資源値保存領域削減の効果のみを受けるこ
ととなる。
クにおいては、資源グループ占有タスク切り替え処理が
起動される場合がある。そして、資源グループ占有タス
ク切り替え処理が起動された場合には、資源グループ占
有タスク切り替え処理の分だけ、従来に比べて処理量が
増加する。
使用しないタスクに切り替えたとき、浮動小数点レジス
タの値(すなわち、資源グループ2及び資源グループ3
の資源値)について、資源値保存領域への保存や資源値
保存領域からの読み込みを行わないようにしており、そ
の分だけ従来に比べて処理量が削減される。すなわち、
例えば、浮動小数点演算装置を使用していたタスクが停
止してから、当該タスクの実行が再開するまでの間に、
他のタスクが浮動小数点演算装置を使用していない場合
には、そのまま浮動小数点レジスタの値が保持されるの
で、タスク切り替えを行う毎に全ての資源値を更新する
従来のタスク切り替え方法に比べて、浮動小数点レジス
タの値の更新に伴う処理が大幅に削減される。
スク同士でよほど頻繁にタスク切り替えを行わない限
り、資源グループ占有タスク切り替え処理に伴う処理量
の増加よりも、浮動小数点レジスタの値の更新に伴う処
理を削減したことによる処理量減少のほうが遥かに寄与
が大きい。したがって、タスク切り替えの対象となるタ
スクに、浮動小数点演算装置を使用するタスクが含まれ
ていたとしても、浮動小数点演算装置を使用するタスク
同士でよほど頻繁にタスク切り替えを行わない限りは、
本例のほうが従来に比べて処理量が遥かに少なくて済
む。
替え処理 つぎに、資源グループ占有タスク切り替え処理につい
て、図8のフローチャートを参照して詳細に説明する。
上述したように、タスクが資源(本例では浮動小数点レ
ジスタ)を使用しようとしたときに、資源グループ使用
可能性検査により、当該資源が使用可能になっていない
と判断された場合に実行される。すなわち、タスクが資
源を使用しようとしたときに当該資源が使用可能となっ
ていない場合には、資源グループ占有タスク切り替え処
理によって、当該資源をタスクが使用可能な状態に変更
される。なお、資源グループ占有タスク切り替え処理に
は、大きく分けて、資源グループの使用権限を変更する
処理と、当該資源グループの資源値の保存及び読み込み
を行う処理とが含まれる。
え処理では、図8のフローチャートに示すように、先
ず、ステップST3−1において、資源グループ2−3
占有タスク変数が示すタスクに対応したタスク情報(す
なわち、浮動小数点演算装置を現在占有しているタスク
のタスク情報)を、占有中タスク情報として特定する。
中タスク情報の資源グループ2−3占有フラグに「偽」
の値を設定する。
小数点演算装置使用許可フラグに「真」の値を設定す
る。これにより、現在実行中のタスクに対して、浮動小
数点演算装置の使用が許可される。
資源値を保持する必要がある場合には、ステップST3
−4乃至ステップST3−7での処理により、資源グル
ープ2及び資源グループ3を現在占有しているタスクに
対応した資源値保存領域に、それらの資源値を保存す
る。
おいて、占有中タスク情報の資源グループ保存値有効フ
ラグのうち、資源グループ保存値有効フラグ2を検査す
る。そして、資源グループ保存値有効フラグ2の値が
「真」の場合は、ステップST3−5へ進み、当該ステ
ップST3−5において、資源グループ2の資源値を、
占有中タスク情報に対応した資源値保存領域に保存し、
その後、ステップST3−6へ進む。一方、資源グルー
プ保存値有効フラグ2の値が「偽」の場合は、資源グル
ープ2の資源値を資源値保存領域に保存することなく、
ステップST3−6へ進む。
中タスク情報の資源グループ保存値有効フラグのうち、
資源グループ保存値有効フラグ3を検査する。そして、
資源グループ保存値有効フラグ3の値が「真」の場合
は、ステップST3−7へ進み、当該ステップST3−
7において、資源グループ3の資源値を、占有中タスク
情報に対応した資源値保存領域に保存し、その後、ステ
ップST3−8へ進む。一方、資源グループ保存値有効
フラグ3の値が「偽」の場合は、資源グループ3の資源
値を資源値保存領域に保存することなく、ステップST
3−8へ進む。
中タスク変数が示すタスクに対応したタスク情報(すな
わち現在実行中のタスクに対応したタスク情報)を、実
行中タスク情報として特定する。
値保存領域に、資源グループ2や資源グループ3の資源
値として、有効な値が保存されている場合には、ステッ
プST3−9乃至ステップST3−12での処理によ
り、それらの資源値を読み込む。
おいて、実行中タスク情報の資源グループ保存値有効フ
ラグのうち、資源グループ保存値有効フラグ2を検査す
る。そして、資源グループ保存値有効フラグ2の値が
「真」の場合は、ステップST3−10へ進み、当該ス
テップST3−10において、資源グループ2の資源値
を、実行中タスク情報に対応した資源値保存領域から読
み込み、その後、ステップST3−11へ進む。一方、
資源グループ保存値有効フラグ2の値が「偽」の場合
は、資源グループ2の資源値を資源値保存領域から読み
込むことなく、ステップST3−11へ進む。
行中タスク情報の資源グループ保存値有効フラグのう
ち、資源グループ保存値有効フラグ3を検査する。そし
て、資源グループ保存値有効フラグ3の値が「真」の場
合は、ステップST3−12へ進み、当該ステップST
3−12において、資源グループ3の資源値を、実行中
タスク情報に対応した資源値保存領域から読み込み、そ
の後、ステップST3−13へ進む。一方、資源グルー
プ保存値有効フラグ3の値が「偽」の場合は、資源グル
ープ3の資源値を資源値保存領域から読み込むことな
く、ステップST3−13へ進む。
行中タスク情報の資源グループ保存値有効フラグのう
ち、資源グループ保存値有効フラグ2及び資源グループ
保存値有効フラグ3に「真」の値をする。なお、実行中
のタスクに対して資源グループ2及び資源グループ3の
使用を許可したからといって、実行中のタスクが資源グ
ループ2と資源グループ3の両方を使用するとは限らな
い。したがって、実行中のタスクに対して資源グループ
2及び資源グループ3の使用を許可したからといって、
資源グループ2の資源値と、資源グループ3の資源値の
両方を保持する必要があるとは限らない。しかしなが
ら、本例では、タスクが資源グループ2や資源グループ
3に属する資源を実際に使用したか否かを判断する手段
を設けていない。そこで、本例では、使用可能にした資
源については、それらの資源値を全て保持する必要があ
るものとし、ステップST3−13において、資源グル
ープ保存値有効フラグ2と資源グループ保存値有効フラ
グ3の両方の値を「真」に設定するようにしている。
いて、資源グループ2−3占有タスク変数に実行中タス
ク変数の値を設定する。
理が完了し、現在実行中のタスクが、資源グループ2及
び資源グループ3(すなわち浮動小数点レジスタ)を使
用することが可能となる。
用した新規なデータ処理装置を用いて行われるタスク切
り替えについて説明する。
保持するレジスタをデータ処理装置に実装させておく。
また、それらのレジスタを用いて行われるタスク切り替
えの機構もデータ処理装置に実装させておき、タスク切
り替えに伴う処理の大部分をハードウェアによって処理
するようにする。
タ処理装置に実装させておくことにより、オペレーティ
ングシステムによるソフトウェア処理を大幅に削減する
ことが可能となり、オペレーティングシステムの処理だ
けでタスク切り替えを行うような場合に比べて、大幅に
効率的且つ高速にタスク切り替えを行うことができる。
説明する。なお、このデータ処理装置は、本発明を適用
した新規なデータ処理装置である。
は、中央処理装置(CPU:CentralProcessing Unit)
と、浮動小数点演算などの演算命令を高速に実行する浮
動小数点演算装置とを備えている。ここで、中央処理装
置はキャッシュメモリを備えており、当該キャッシュメ
モリのキャッシュラインサイズは16バイトである。
使用可能な資源として、図9に示すように、中央処理装
置のレジスタ(以下、汎用レジスタと称する。)と、浮
動小数点演算装置のレジスタ(以下、浮動小数点レジス
タと称する。)とを備えている。ここで、汎用レジスタ
は、0〜127番まであり、各汎用レジスタは32ビッ
トの容量を持つ。また、浮動小数点レジスタは、0〜6
3番まであり、各浮動小数点レジスタは64ビットの容
量を持つ。したがって、このデータ処理装置は、汎用レ
ジスタと浮動小数点レジスタとで、合計8192ビット
(=1024バイト)の容量を持っている。
第1の実施の形態と同様に、データ処理装置によって実
行されるプログラムは、機能ブロック遷移命令を実行す
る際に、汎用レジスタの0〜63番と浮動小数点レジス
タの0〜31番は、作業用レジスタとして使用して、呼
び出された機能ブロックの処理中に値を変更しても構わ
ないが、汎用レジスタの64〜127番と浮動小数点レ
ジスタの32〜63番は、機能ブロックの処理を終了し
て当該プログラムの処理を継続する際に、機能ブロック
の呼び出し前の値を保持していなければならないという
仕様に従っているものとする。
システムに指示するタスク切り替えの要求については、
機能ブロック遷移命令を使用するものとする。
み処理に対応するため、割り込み処理のときには、全て
の汎用レジスタ及び浮動小数点レジスタの値を割り込み
直前の値に復元してから、通常処理を再開する必要があ
るものとする。
タスクが使用可能な資源を、複数の資源グループに分割
して管理することを特徴としており、本例においては、
タスクが使用することが可能な資源である汎用レジスタ
及び浮動小数点レジスタを、図9に示すように、16の
資源グループに分割して管理する。
が使用することが可能な資源である汎用レジスタ及び浮
動小数点レジスタを、汎用レジスタの0〜15番が属す
る資源グループ0、汎用レジスタの16〜31番が属す
る資源グループ1、汎用レジスタの32〜47番が属す
る資源グループ2、汎用レジスタの48〜63番が属す
る資源グループ3、汎用レジスタの64〜79番が属す
る資源グループ4、汎用レジスタの80〜95番が属す
る資源グループ5、汎用レジスタの96〜111番が属
する資源グループ6、汎用レジスタの112〜127番
が属する資源グループ7、浮動小数点レジスタの0〜7
番が属する資源グループ8、浮動小数点レジスタの8〜
15番が属する資源グループ9、浮動小数点レジスタの
16〜23番が属する資源グループ10、浮動小数点レ
ジスタの24〜31番が属する資源グループ11、浮動
小数点レジスタの32〜39番が属する資源グループ1
2、浮動小数点レジスタの40〜47番が属する資源グ
ループ13、浮動小数点レジスタの48〜55番が属す
る資源グループ14、浮動小数点レジスタの56〜63
番が属する資源グループ15の16の資源グループに分
割して管理する。
能ブロック遷移命令によるタスク切り替えを行う際に、
機能ブロック遷移命令前の値を保持する必要がない汎用
レジスタのグループである。また、資源グループ4,
5,6,7は、機能ブロック遷移命令によるタスク切り
替えを行う際に、機能ブロック遷移命令前の値を保持す
る必要がある汎用レジスタのグループである。また、資
源グループ8,9,10,11は、機能ブロック遷移命
令によるタスク切り替えを行う際に、機能ブロック遷移
命令前の値を保持する必要がない浮動小数点レジスタの
グループである。また、資源グループ12,13,1
4,15は、機能ブロック遷移命令によるタスク切り替
えを行う際に、機能ブロック遷移命令後の値を保持する
必要がある浮動小数点レジスタのグループである。
ように、タスク切り替えに必要な情報を保持するレジス
タとして、資源グループ占有タスク変数レジスタと、実
行中タスク変数レジスタと、資源グループ使用許可フラ
グレジスタと、資源グループ使用中フラグレジスタと、
資源グループ保存値有効フラグレジスタとを備えてい
る。なお、これらのレジスタは、従来のデータ処理装置
には無かったものであり、本発明を適用した図9に示す
データ処理装置において、新規に実装したものである。
は、資源グループ0に対応した資源グループ占有タスク
変数(以下、資源グループ占有タスク変数0と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ1に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数1と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ2に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数2と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ3に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数3と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ4に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数4と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ5に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数5と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ6に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数6と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ7に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数7と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ8に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数8と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ9に対応した資源グループ占有タス
ク変数(以下、資源グループ占有タスク変数9と称す
る。)が格納される32ビットの符号無し整数のレジス
タと、資源グループ10に対応した資源グループ占有タ
スク変数(以下、資源グループ占有タスク変数10と称
する。)が格納される32ビットの符号無し整数のレジ
スタと、資源グループ11に対応した資源グループ占有
タスク変数(以下、資源グループ占有タスク変数11と
称する。)が格納される32ビットの符号無し整数のレ
ジスタと、資源グループ12に対応した資源グループ占
有タスク変数(以下、資源グループ占有タスク変数12
と称する。)が格納される32ビットの符号無し整数の
レジスタと、資源グループ13に対応した資源グループ
占有タスク変数(以下、資源グループ占有タスク変数1
3と称する。)が格納される32ビットの符号無し整数
のレジスタと、資源グループ14に対応した資源グルー
プ占有タスク変数(以下、資源グループ占有タスク変数
14と称する。)が格納される32ビットの符号無し整
数のレジスタと、資源グループ15に対応した資源グル
ープ占有タスク変数(以下、資源グループ占有タスク変
数15と称する。)が格納される32ビットの符号無し
整数のレジスタとがある。
は、資源グループ0を占有しているタスクがあるとき
に、当該タスクに対応したタスク情報が格納されている
領域の先頭番地が設定される。また、資源グループ占有
タスク変数1には、資源グループ1を占有しているタス
クがあるときに、当該タスクに対応したタスク情報が格
納されている領域の先頭番地が設定される。また、資源
グループ占有タスク変数2には、資源グループ2を占有
しているタスクがあるときに、当該タスクに対応したタ
スク情報が格納されている領域の先頭番地が設定され
る。また、資源グループ占有タスク変数3には、資源グ
ループ3を占有しているタスクがあるときに、当該タス
クに対応したタスク情報が格納されている領域の先頭番
地が設定される。また、資源グループ占有タスク変数4
には、資源グループ4を占有しているタスクがあるとき
に、当該タスクに対応したタスク情報が格納されている
領域の先頭番地が設定される。また、資源グループ占有
タスク変数5には、資源グループ5を占有しているタス
クがあるときに、当該タスクに対応したタスク情報が格
納されている領域の先頭番地が設定される。また、資源
グループ占有タスク変数6には、資源グループ6を占有
しているタスクがあるときに、当該タスクに対応したタ
スク情報が格納されている領域の先頭番地が設定され
る。また、資源グループ占有タスク変数7には、資源グ
ループ7を占有しているタスクがあるときに、当該タス
クに対応したタスク情報が格納されている領域の先頭番
地が設定される。また、資源グループ占有タスク変数8
には、資源グループ8を占有しているタスクがあるとき
に、当該タスクに対応したタスク情報が格納されている
領域の先頭番地が設定される。また、資源グループ占有
タスク変数9には、資源グループ9を占有しているタス
クがあるときに、当該タスクに対応したタスク情報が格
納されている領域の先頭番地が設定される。また、資源
グループ占有タスク変数10には、資源グループ10を
占有しているタスクがあるときに、当該タスクに対応し
たタスク情報が格納されている領域の先頭番地が設定さ
れる。また、資源グループ占有タスク変数11には、資
源グループ11を占有しているタスクがあるときに、当
該タスクに対応したタスク情報が格納されている領域の
先頭番地が設定される。また、資源グループ占有タスク
変数12には、資源グループ12を占有しているタスク
があるときに、当該タスクに対応したタスク情報が格納
されている領域の先頭番地が設定される。また、資源グ
ループ占有タスク変数13には、資源グループ13を占
有しているタスクがあるときに、当該タスクに対応した
タスク情報が格納されている領域の先頭番地が設定され
る。また、資源グループ占有タスク変数14には、資源
グループ14を占有しているタスクがあるときに、当該
タスクに対応したタスク情報が格納されている領域の先
頭番地が設定される。また、資源グループ占有タスク変
数15には、資源グループ15を占有しているタスクが
あるときに、当該タスクに対応したタスク情報が格納さ
れている領域の先頭番地が設定される。
の符号無し整数のレジスタであり、実行中タスク変数が
格納される。ここで、実行中タスク変数は、現在実行中
のタスクに対応したタスク情報が格納されている領域の
先頭番地を示す変数である。すなわち、タスクが実行さ
れているとき、実行中タスク変数レジスタには、当該タ
スクに対応したタスク情報が格納されている領域の先頭
番地が、実行中タスク変数として設定される。
16ビットの符号無し整数のレジスタであり、16個の
資源グループ使用許可フラグが格納される。ここで、資
源グループ使用許可フラグは、資源グループの使用を許
可するか否かを示すフラグであり、資源グループ使用許
可フラグレジスタを構成する16個の各ビットは、16
に分割された各資源グループに対応した、16個の独立
した資源グループ使用許可フラグとして扱われる。
実行中のタスクが対応する資源グループを使用可能の場
合に「真」の値が設定され、使用可能でない場合に
「偽」の値が設定される。したがって、例えば、資源グ
ループ2を使用可能の場合、資源グループ2に対応した
資源グループ使用許可フラグに「真」の値が設定され、
また、例えば、資源グループ5を使用可能でない場合、
資源グループ5に対応した資源グループ使用許可フラグ
に「偽」の値が設定される。
6ビットの符号無し整数のレジスタであり、16個の資
源グループ使用中フラグが格納される。ここで、資源グ
ループ使用中フラグは、資源グループを使用中のタスク
が存在しているか否かを示すフラグであり、資源グルー
プ使用中フラグレジスタを構成する16個の各ビット
は、16に分割された各資源グループに対応した、16
個の独立した資源グループ使用中フラグとして扱われ
る。
ずれかのタスクが対応する資源グループが使用中の場合
に「真」の値が設定され、使用中でない場合に「偽」の
値が設定される。したがって、例えば、資源グループ4
を使用中の場合、資源グループ4に対応した資源グルー
プ使用中フラグに「真」の値が設定され、また、例え
ば、資源グループ10を使用していない場合、資源グル
ープ10に対応した資源グループ使用中フラグに「偽」
の値が設定される。
は、16ビットの符号無し整数のレジスタであり、16
個の資源グループ保存値有効フラグが格納される。ここ
で、資源グループ保存値有効フラグは、実行中のタスク
において、各資源グループの資源値として有効な値が、
資源グループの各資源或いは対応する資源値保存領域に
存在するか否かを示すフラグであり、資源グループ保存
値有効フラグレジスタを構成する16個の各ビットは、
16に分割された各資源グループに対応した、16個の
独立した資源グループ保存値有効フラグとして扱われ
る。
は、実行中のタスクについて、対応する資源グループの
資源値として有効な値が、資源グループの各資源が保持
しているか、或いは資源値保存領域に保存されている場
合に、「真」の値が設定され、有効な値が保存されてい
ない場合に「偽」の値が設定される。したがって、例え
ば、資源グループ6の資源値として有効な値が保存され
ている場合、資源グループ6に対応した資源グループ保
存値有効フラグに「真」の値が設定され、また、例え
ば、資源グループ15の資源値として有効な値が保存さ
れていない場合、資源グループ15に対応した資源グル
ープ保存値有効フラグに「偽」の値が設定される。
に実装したレジスタのうち、少なくとも実行中タスク変
数レジスタ、資源グループ使用許可フラグレジスタ、資
源グループ使用中フラグレジスタ及び資源グループ保存
値有効フラグレジスタは、オペレーティングシステムに
よる読み出しや書き込みができるようにしておく。
に、タスク情報を保存するためのタスク情報保存領域
と、タスクの実行に使用される資源の状態を示す資源値
を保存するための資源値保存領域とを、メモリ上にタス
ク毎に確保する。以下、このようにメモリ上にタスク毎
に確保されるタスク情報保存領域及び資源値保存領域に
ついて、図10を参照して詳細に説明する。
域であり、タスク情報保存領域に格納されるタスク情報
は、一つのタスクに対して一つ存在する。これらのタス
ク情報は、上述した本発明の第1の実施の形態と同様
に、タスクの数に応じた配列としてメモリ上にまとめて
保存され、当該配列の添え字を用いて各タスク情報を参
照できるようになされる。すなわち、各タスク情報はそ
れぞれ配列要素としてメモリ上に保存され、各配列要素
が保存される領域が、それぞれタスク情報保存領域に対
応している。このようにタスク情報を配列としてメモリ
上にまとめて保存しておけば、メモリを有効に活用する
ことができ、しかも、各タスク情報に高速にアクセスす
ることができる。
示すように、タスク制御情報領域と、資源制御情報領域
とを有している。ここで、タスク制御情報領域は、タス
クを制御するのに必要なタスク制御情報が保存される領
域である。タスク制御情報領域に保存されるタスク制御
情報は、本発明のポイントとなるものではなく、従来の
システムで使用されていたものと同様で良いので、ここ
では詳細な説明は省略する。
される資源を制御するのに必要な資源制御情報が保存さ
れる領域であり、従来のシステムには無かったものであ
る。この資源制御情報領域には、タスクで使用される資
源を制御するのに必要な資源制御情報として、資源グル
ープ占有フラグと、資源グループ保存値有効フラグと、
資源値保存領域先頭番地と、最大保存位置と、保存位置
配列とが保存される。
ラグは、タスクが資源グループを占有しているか否かを
資源グループ毎に示すフラグであり、各資源グループに
対応するように16ビットのフラグとなっている。すな
わち、あるタスクが資源グループのいずれかを占有して
いるとき、当該タスクに対応するタスク情報の資源グル
ープ占有フラグは、当該タスクが占有している資源グル
ープに対応するビットが「真」の値に設定される。な
お、占有していない資源グループに対応するビットは
「偽」の値に設定される。
保存値有効フラグは、有効な値が資源値保存領域に保存
されているか否かを資源グループ毎に示すフラグであ
り、各資源グループに対応するように16ビットのフラ
グとなっている。すなわち、資源値保存領域に資源グル
ープの資源値として有効な値が保存されているとき、当
該資源値保存領域に対応したタスク情報の資源グループ
保存値有効フラグは、有効な値が保存されている資源グ
ループに対応するビットが「真」の値に設定される。な
お、有効な値が保存されていない資源グループに対応す
るビットは「偽」の値に設定される。
資源値の資源値保存領域への保存を行わずに、当該タス
クに対応するタスク情報の資源グループ保存値有効フラ
グの値をすべて「偽」の値に設定する。これにより、無
用な資源値の保存を行わなくて済むようになる。
域先頭番地には、資源値保存領域のメモリ上での先頭番
地を示す値が設定される。従来は、図20に示したよう
に、タスク制御情報領域と資源値保存領域とがメモリ上
で一連の領域とされていた。これに対して、本例では、
タスク制御情報領域と資源値保存領域とをそれぞれ別々
にメモリ上に確保するようにしている。そこで、本例で
は、資源値保存領域の場所が分かるように、資源制御情
報として、資源値保存領域先頭番地を保存しておく。
には、いくつの資源グループについて資源値保存領域が
確保済みであるかを示す値が設定される。すなわち、例
えば、図10に示すように、3つの資源グループについ
て、それらの資源グループの資源値を保存するための領
域が資源値保存領域に確保されている場合、当該資源値
保存領域に対応したタスク情報の最大保存位置には
「3」が設定される。
には、資源値の保存位置を示す値が資源グループ毎に設
定される。例えば、図10に示すように、資源値保存領
域の先頭に資源グループ0の資源値が保存されており、
資源値保存領域の2番目に資源グループ8の資源値が保
存されており、資源値保存領域の3番目に資源グループ
2の資源値が保存されているとする。この場合、当該資
源値保存領域に対応したタスク情報の保存位置配列のう
ち、資源グループ0に対応する値が、資源値保存領域の
先頭を示す値「0」に設定され、資源グループ8に対応
する値が、資源値保存領域の2番目を示す値「1」に設
定され、資源グループ2に対応する値が、資源値保存領
域の3番目を示す値「2」に設定される。なお、資源値
保存領域に資源値が保存されていない資源グループにつ
いては、資源値保存領域に資源値が保存されていないこ
とを示す値「16」が設定される。
スクの実行に使用される資源の状態を示す資源値が保存
される。ただし、資源値保存領域には、全ての資源の資
源値が保存されるとは限らず、資源グループ単位で必要
なものだけが保存される。
てのタスクについて全ての資源の資源値を資源値保存領
域に保存するようにしていた。したがって、図10に示
したようなデータ処理装置を使用する場合には、タスク
一つあたりの資源値保存領域として、全ての汎用レジス
タ及び浮動小数点レジスタの分のメモリ、すなわち10
24バイトのメモリが必要であった。一方、本例では、
資源を資源グループに分割して管理し、資源値保存領域
には、資源値を保持すべき資源を含む資源グループにつ
いてだけ、資源値を保存するようにしている。したがっ
て、本例では、従来のタスク切り替え方法に比べて、資
源値の保存を大幅に削減することができる。
プに分割して管理し、資源値保存領域には、資源値を保
持すべき資源を含む資源グループについてだけ、資源値
を保存するようにする。これにより、タスク切り替えを
行ったときにメモリに保存すべきデータ量を大幅に削減
することができ、タスク切り替え時のメモリアクセスを
大幅に削減することができる。
資源グループ単位で行われるが、このとき、各資源グル
ープの資源値はタスク情報の資源値保存領域先頭番地が
示すメモリ番地から順次格納していく。すなわち、例え
ば、最初に資源グループ0の資源値を保存することとな
った場合には、タスク情報の資源値保存領域先頭番地が
示すメモリ番地から、資源グループ0の資源値を順次格
納し、次に、資源グループ8の資源値を保存することと
なった場合には、資源グループ0の資源値が格納されて
いる領域の直ぐ後に、資源グループ8の資源値を順次格
納し、次に、資源グループ2の資源値を保存することと
なった場合には、資源グループ8の資源値が格納されて
いる領域の直ぐ後に、資源グループ2の資源値を順次格
納する。なお、図10は、このようにして資源グループ
0、資源グループ8、資源グループ2の資源値が順次格
納された状態を示している。
われるタスク切り替え方法について詳細に説明する。な
お、ここで言うタスク切り替え方法とは、本発明を適用
したタスク切り替えの一連の処理全体を指しており、換
言すれば、後述するタスク切り替え処理、資源グループ
使用可能性検査及び資源グループ占有タスク切り替え処
理の3つの処理を示している。
を用いる場合、タスク切り替えは、資源グループ使用許
可フラグを使用して行うことも、資源グループ使用許可
フラグを使用しないで行うことも可能である。そこで、
以下の説明では、資源グループ使用許可フラグを使用し
てタスク切り替えを行う場合と、資源グループ使用許可
フラグを使用しないでタスク切り替えを行う場合とにつ
いて、それぞれ説明する。
ラグを使用する場合 まず、図9に示したようなデータ処理装置を用いて行わ
れるタスク切り替えについて、資源グループ使用許可フ
ラグを使用してタスク切り替えを行う場合について説明
する。
オペレーティングシステムの処理 まず、タスク切り替えを行うときに、オペレーティング
システムによって実行される処理について、図11のフ
ローチャートを参照して説明する。なお、ここでは、タ
スクAからタスクBへのタスク切り替えを行うものとし
て説明する。
を行うとき、オペレーティングシステムは、先ず、ステ
ップST4−1において、タスクB(すなわち切り替え
先のタスク)に対応したタスク情報が格納されているタ
スク情報保存領域の先頭番地(以下、先頭番地Kと称す
る。)を計算する。なお、フローチャートでは、先頭番
地Kのことを単に「K」と表記している。
中タスク変数レジスタが示すタスク情報(すなわちタス
クAのタスク情報)の資源グループ占有フラグに、デー
タ処理装置の資源グループ使用許可フラグレジスタの値
を書き込む。
中タスク変数レジスタが示すタスク情報(すなわちタス
クAのタスク情報)の資源グループ保存値有効フラグ
に、データ処理装置の資源グループ保存値有効フラグレ
ジスタの値を書き込む。
中タスク変数レジスタに、ステップST4−1で計算し
た先頭番地Kの値を設定する。
中タスク変数レジスタが示すタスク情報(すなわちタス
クBのタスク情報)の資源グループ使用許可フラグの値
を読み込み、その値を資源グループ使用許可フラグレジ
スタに設定する。
中タスク変数レジスタが示すタスク情報(すなわちタス
クBのタスク情報)の資源グループ保存値有効フラグの
値を読み込み、その値を資源グループ保存値有効フラグ
レジスタに設定する。
の他のタスク切り替え処理を行い、全てのタスク切り替
え処理が完了したら、タスクBを起動する。なお、ステ
ップST4−7での処理は、資源の管理に関する処理以
外の処理である。したがって、ステップST4−7での
処理は、従来のオペレーティングシステムと同様で良
く、本発明のポイントではないので、詳細な説明は省略
する。
源値の制御のためにオペレーティングシステムが行うべ
き処理は、実行中タスク変数やフラグの書き換えだけで
あり、非常に僅かである。しかも、資源値の保存や読み
込みを行わないので、メモリアクセスも非常に少なくて
済み、読み書きともに4バイトずつしか発生しない。従
来は、タスク切り替えの時点で全ての資源値について保
存と読み込みを行っていたので、タスク切り替え毎に1
024バイトずつの読み書きが発生していた。すなわ
ち、本例では、従来に比べて、タスク切り替え時のメモ
リアクセスが1/256にまで低減されている。
理が大幅に削減されるのは、資源値を制御する機構をデ
ータ処理装置に実装させているためである。すなわち、
資源値の制御に伴う機構をデータ処理装置に実装させる
ことにより、非常に効率的且つ高速なタスク切り替えを
実現することが可能となる。
装される機構 本例では、上述したように、タスク切り替えの時点にお
いてオペレーティングシステムが行うべき処理は、実行
中タスク変数やフラグの書き換えだけであり、タスク切
り替えの時点では資源値の保存や読み込みは行わない。
その代わり、タスクが資源を使用しようとするときに、
当該資源をタスクが使用可能であるかを検査し、必要に
応じて資源値の保存や読み込み等の処理を行い、タスク
が資源を使用できるようにする。
するために、資源グループ使用可能性検査を行う機構
と、資源グループ占有タスク切り替え処理を行う機構
と、資源グループ保存処理を行う機構と、資源グループ
読み込み処理を行う機構と、資源グループ保存領域確保
処理を行う機構とをデータ処理装置にハードウェアとし
て実装しておく。
ウェアとして実装された機構によって実行される各処理
について説明する。
用可能性検査 まず、資源グループ使用可能性検査について、図12の
フローチャートを参照して詳細に説明する。
装置による命令実行と並行して行われるものである。す
なわち、資源グループ使用可能性検査は、タスクの命令
を実行しようとする毎に実行される。
ステップST5−1において、実行しようとしている命
令が、機能ブロック遷移命令であるか否かを判断する。
そして、機能ブロック遷移命令の場合には、ステップS
T5−2及びステップST5−3の処理を行い、その
後、ステップST5−4へ進む。一方、機能ブロック遷
移命令ではない場合には、直ぐに、ステップST5−4
へ進む。
〜3及び資源グループ8〜11に対応する資源グループ
使用中フラグレジスタのうち、対応する資源グループ使
用許可フラグレジスタの値が「真」のものに「偽」の値
を設定する。具体的には、例えば、資源グループ2に対
応する資源グループ使用許可フラグレジスタの値が
「真」の場合には、資源グループ2に対応する資源グル
ープ使用中フラグレジスタに「偽」の値を設定する。こ
のように資源グループ使用中フラグレジスタの値を設定
しておくことにより、実行中のタスクが現在占有使用し
ている資源グループのうち、資源値の保持が不要な資源
グループについては、資源値の資源値保存領域への保存
が行われなくなる。
ープ0〜3及び資源グループ8〜11に対応する資源グ
ループ保存値有効フラグレジスタに「偽」の値を設定す
る。このように資源グループ保存値有効フラグレジスタ
の値を設定しておくことにより、不要な資源値について
は、資源値保存領域からの読み込みが行われなくなる。
能ブロック遷移命令のときには、ステップST5−2及
びステップST5−3での処理を行うことにより、不要
な資源値の保存や読み込みを省略することが可能とな
り、資源値の保存や読み込みを従来に比べて約5割削減
できる。
ている命令が、資源を使用するか否かを判断する。そし
て、資源を使用する場合は、ステップST5−5へ進
む。一方、資源を使用しない場合は、資源グループ使用
可能性検査を終了し、タスクの命令を実行する。
うとしている命令が使用する資源が属する資源グループ
を特定する。なお、以下の説明では、ステップST5−
5において特定された資源グループのことを「index番
の資源グループ」と称する。すなわち、実行しようとし
ている命令は、index番の資源グループに属する資源を
使用する。
グループ使用許可フラグレジスタに格納されている資源
グループ使用許可フラグの中から、index番の資源グル
ープに対応した資源グループ使用許可フラグを特定す
る。なお、以下の説明では、ステップST5−6におい
て特定された資源グループ使用許可フラグのことを「資
源グループ使用許可フラグJ」と称する。また、フロー
チャートでは、資源グループ使用許可フラグJのことを
単に「J」と表記している。
グループ使用中フラグレジスタに格納されている資源グ
ループ使用中フラグの中から、index番の資源グループ
に対応した資源グループ使用中フラグを特定する。な
お、以下の説明では、ステップST5−7において特定
された資源グループ使用中フラグのことを「資源グルー
プ使用中フラグL」と称する。また、フローチャートで
は、資源グループ使用中フラグLのことを単に「L」と
表記している。
グループ保存値有効フラグレジスタに格納されている資
源グループ保存値有効フラグの中から、index番の資源
グループに対応した資源グループ保存値有効フラグを特
定する。なお、以下の説明では、ステップST5−8に
おいて特定された資源グループ保存値有効フラグのこと
を「資源グループ保存値有効フラグM」と称する。ま
た、フローチャートでは、資源グループ保存値有効フラ
グMのことを単に「M」と表記している。
グループ使用許可フラグJの値を検査する。そして、資
源グループ使用許可フラグJの値が「偽」の場合には、
ステップST5−10へ進み、資源グループ使用許可フ
ラグJの値が「真」の場合には、ステップST5−12
へ進む。
占有タスク変数レジスタに格納されている資源グループ
占有タスク変数の中から、index番の資源グループに対
応した資源グループ占有タスク変数を特定する。なお、
以下の説明では、ステップST5−10において特定さ
れた資源グループ占有タスク変数のことを「資源グルー
プ占有タスク変数K」と称する。また、フローチャート
では、資源グループ占有タスク変数Kのことを単に
「K」と表記している。
源グループ占有タスク切り替え処理を行う。なお、資源
グループ占有タスク切り替え処理については、後で詳細
に説明する。そして、資源グループ占有タスク切り替え
処理が終了したら、ステップST5−12へ進む。
使用許可フラグJに「真」の値を設定し、資源グループ
使用中フラグLに「真」の値を設定し、資源グループ保
存値有効フラグMに「真」の値を設定する。これによ
り、現在実行中のタスクはindex番の資源グループに属
する資源を使用中であることが、資源グループ使用中フ
ラグレジスタ及び資源グループ保存値有効フラグレジス
タに記録されることとなる。そして、ステップST5−
12での処理が完了したら、ステップST5−13へ進
む。
している命令が、他の資源グループを使用するか否かを
判定する。そして、他の資源グループを使用する場合に
は、ステップST5−5へ戻って、当該資源グループに
ついての検査を行う。一方、他の資源グループを使用し
ない場合には、資源グループ使用可能性検査を終了し、
タスクの命令を実行する。
性検査を行ったとき、資源グループ占有タスク切り替え
処理が起動されるのは、資源グループ使用許可フラグJ
の値が「偽」の場合だけであり、資源グループ使用許可
フラグJの値が「真」の場合には、資源グループ占有タ
スク切り替え処理は起動されない。換言すれば、資源グ
ループ占有タスク切り替え処理が起動されるのは、タス
クが実行しようとしている命令が資源を使用しようとし
たが、当該資源の使用が許可されていない場合である。
有タスク切り替え処理 つぎに、資源グループ占有タスク切り替え処理につい
て、図13のフローチャートを参照して詳細に説明す
る。なお、資源グループ占有タスク切り替え処理は、上
述したように、資源グループ使用可能性検査のステップ
ST5−11において呼び出されて起動される処理であ
る。
は、先ず、ステップST6−1において、資源グループ
使用中フラグLの値を検査する。そして、資源グループ
使用中フラグLの値が「真」の場合には、ステップST
6−2へ進み、資源グループ使用中フラグLの値が
「偽」の場合には、ステップST6−3へ進む。
存処理を行う。なお、資源グループ保存処理について
は、後で詳細に説明する。そして、資源グループ保存処
理が終了したら、ステップST6−3へ進む。
有タスク変数Kに、実行中タスク変数の値を設定する。
グループ保存値有効フラグMの値を検査する。そして、
資源グループ保存値有効フラグMの値が「真」の場合に
は、ステップST6−5へ進み、資源グループ保存値有
効フラグMの値が「偽」の場合には、ステップST6−
6へ進む。
み込み処理を行う。なお、資源グループ読み込み処理に
ついては、後で詳細に説明する。そして、資源グループ
読み込み処理が終了したら、資源グループ占有タスク切
り替え処理を終了する。
ープ保存領域確保処理を行う。なお、資源グループ保存
領域確保処理については、後で詳細に説明する。そし
て、資源グループ保存領域確保処理が終了したら、資源
グループ占有タスク切り替え処理を終了する。
存処理 つぎに、資源グループ保存処理について、図14のフロ
ーチャートを参照して詳細に説明する。なお、資源グル
ープ保存処理は、上述したように、資源グループ占有タ
スク切り替え処理のステップST6−2において呼び出
されて起動される処理である。
プST7−1において、資源グループ占有タスク変数K
の示すタスク情報の保存位置配列のうち、index番の資
源グループに対応した保存位置配列の値を読み出す。な
お、以下の説明では、ステップST7−1において読み
出した保存位置配列の値を「保存位置配列値P1」と称
する。また、フローチャートでは、保存位置配列値P1
のことを単に「P1」と表記している。なお、保存位置
配列値P1は、index番の資源グループの資源値が、資
源値保存領域中の何番目のブロックに保存されるかを示
している。
グループ占有タスク変数Kの示すタスク情報の資源値保
存領域先頭番地の値を読み出し、その値に保存位置配列
値P1を64倍した値を加えた値を計算する。なお、以
下の説明では、ステップST7−2において計算された
値を「保存番地Q1」と称する。また、フローチャート
では、保存番地Q1のことを単に「Q1」と表記してい
る。なお、保存番地Q1は、index番の資源グループの
資源値を保存する領域の先頭のメモリ番地を示してい
る。
x番の資源グループの資源値を、保存番地Q1を先頭番
地とする領域に保存する。
index番の資源グループの資源値が、資源値保存領域の
所定の位置に保存される。
み込み処理 つぎに、資源グループ読み込み処理について、図15の
フローチャートを参照して詳細に説明する。なお、資源
グループ読み込み処理は、上述したように、資源グルー
プ占有タスク切り替え処理のステップST6−5におい
て呼び出されて起動される処理である。
テップST8−1において、実行中タスク変数の示すタ
スク情報の保存位置配列のうち、index番の資源グルー
プに対応した保存位置配列の値を読み出す。なお、以下
の説明では、ステップST8−1において読み出した保
存位置配列の値を「保存位置配列値P2」と称する。ま
た、フローチャートでは、保存位置配列値P2のことを
単に「P2」と表記している。なお、保存位置配列値P
2は、index番の資源グループの資源値が、資源値保存
領域中の何番目のブロックに保存されているかを示して
いる。
中タスク変数の示すタスク情報の資源値保存領域先頭番
地の値を読み出し、その値に保存位置配列値P2を64
倍した値を加えた値を計算する。なお、以下の説明で
は、ステップST8−2において計算された値を「保存
番地Q2」と称する。また、フローチャートでは、保存
番地Q2のことを単に「Q2」と表記している。なお、
保存番地Q2は、index番の資源グループの資源値が保
存されている領域の先頭のメモリ番地を示している。
x番の資源グループの資源値を、保存番地Q2を先頭番
地とする領域から読み込む。
し、index番の資源グループの資源値が、資源値保存領
域から読み込まれる。
存領域確保処理 つぎに、資源グループ保存領域確保処理について、図1
6のフローチャートを参照して詳細に説明する。なお、
資源グループ保存領域確保処理は、上述したように、資
源グループ占有タスク切り替え処理のステップST6−
6において呼び出されて起動される処理である。
ず、ステップST9−1において、実行中タスク変数の
示すタスク情報の保存位置配列のうち、index番の資源
グループに対応した保存位置配列の値を読み出す。な
お、以下の説明では、ステップST9−1において読み
出した保存位置配列の値を「保存位置配列値P3」と称
する。また、フローチャートでは、保存位置配列値P3
のことを単に「P3」と表記している。
中タスク変数の示すタスク情報の最大保存位置の値を読
み出す。なお、以下の説明では、ステップST9−2に
おいて読み出し最大保存位置の値を「最大保存位置R」
と称する。また、フローチャートでは、最大保存位置R
のことを単に「R」と表記している。
位置配列値P3と最大保存位置Rとを比較する。このと
き、保存位置配列値P3が最大保存位置Rよりも小さく
なるのは、index番の資源グループの資源値を保存する
領域が、資源値保存領域に既に確保されている場合であ
る。したがって、保存位置配列値P3が最大保存位置R
よりも小さい場合には、資源グループ保存領域確保処理
を終了する。
位置配列値P3が最大保存位置R以上となるのは、inde
x番の資源グループの資源値を保存する領域が、資源値
保存領域に未だ確保されていない場合である。したがっ
て、保存位置配列値P3が最大保存位置R以上となって
いる場合には、index番の資源グループの資源値を保存
する領域を確保するため、資源グループ保存領域確保処
理を継続し、ステップST9−4へ進む。
数の示すタスク情報の資源値保存領域先頭番地の値を読
み出し、その値に最大保存位置Rに1を加算した値を6
4倍した値を加えた値を計算する。なお、以下の説明で
は、ステップST9−6において計算された値を「保存
番地Q3」と称する。すなわち、実行中タスク変数の示
すタスク情報の資源値保存領域先頭番地の値をA、最大
保存位置RをRとしたとき、保存番地Q3=A+{(R
+1)×64}である。なお、フローチャートでは、保
存番地Q3のことを単に「Q3」と表記している。
番地Q3が、タスクがスタックとして使用しているメモ
リ領域(以下、スタック変数領域と称する。)の先頭よ
りも手前であるか否かを判断する。このとき、保存番地
Q3がスタック変数領域の先頭よりも手前でないと判断
されるのは、未使用領域が不足し、index番の資源グル
ープの資源値を保存する領域を確保できない場合であ
る。したがって、保存番地Q3がスタック変数領域の先
頭よりも手前でない場合には、スタック領域不足例外処
理を起動する。なお、スタック領域不足例外処理は、未
使用領域の不足に対処するための例外処理であるが、未
使用領域の不足に対する対処の仕方には様々な手法が考
えられるし、このような例外処理は本発明のポイントで
はないので、ここでは詳細な説明は省略する。
番地Q3がスタック変数領域の先頭よりも手前であると
判断されるのは、未使用領域が十分にあり、index番の
資源グループの資源値を保存する領域を確保できる場合
である。したがって、保存番地Q3がスタック変数領域
の先頭よりも手前である場合には、index番の資源グル
ープの資源値を保存する領域を確保するため、資源グル
ープ保存領域確保処理を継続し、ステップST9−6へ
進む。
数の示すタスク情報の保存位置配列のうち、index番の
資源グループに対応した保存位置配列に、実行中タスク
変数の示すタスク情報の最大保存位置の値(すなわち最
大保存位置R)を書き込む。
中タスク変数の示すタスク情報の最大保存位置に、最大
保存位置Rに1を加算した値を書き込む。換言すれば、
ステップST9−7では、実行中タスク変数の示すタス
ク情報の最大保存位置の値を1だけ大きくする。
完了し、index番の資源グループの資源値を保存する領
域が確保される。
ラグを使用しない場合 つぎに、図9に示したようなデータ処理装置を用いて行
われるタスク切り替えについて、資源グループ使用許可
フラグを使用しないでタスク切り替えを行う場合につい
て説明する。
オペレーティングシステムの処理 まず、タスク切り替えを行うときに、オペレーティング
システムによって実行される処理について、図17のフ
ローチャートを参照して説明する。なお、ここでは、タ
スクAからタスクBへのタスク切り替えを行うものとし
て説明する。
を行うとき、オペレーティングシステムは、先ず、ステ
ップST10−1において、タスクB(すなわち切り替
え先のタスク)に対応したタスク情報が格納されている
タスク情報保存領域の先頭番地(以下、先頭番地Kと称
する。)を計算する。なお、フローチャートでは、先頭
番地Kのことを単に「K」と表記している。
行中タスク変数の示すタスク情報(すなわちタスクAの
タスク情報)の資源グループ保存値有効フラグに、資源
グループ保存値有効フラグレジスタの値を書き込む。
行中タスク変数レジスタに、ステップST10−1で計
算した先頭番地Kの値を設定する。
行中タスク変数の示すタスク情報(すなわちタスクBの
タスク情報)の資源グループ保存値有効フラグの値を読
み込み、その値を資源グループ保存値有効フラグレジス
タに設定する。
その他のタスク切り替え処理を行い、全てのタスク切り
替え処理が完了したら、タスクBを起動する。なお、ス
テップST10−5での処理は、資源の管理に関する処
理以外の処理である。したがって、ステップST10−
5での処理は、従来のオペレーティングシステムと同様
で良く、本発明のポイントではないので、詳細な説明は
省略する。
源値の制御のためにオペレーティングシステムが行うべ
き処理は、実行中タスク変数やフラグの書き換えだけで
あり、非常に僅かである。しかも、資源値の保存や読み
込みを行わないので、メモリアクセスも非常に少なくて
済み、読み書きともに2バイトずつしか発生しない。従
来は、タスク切り替えの時点で全ての資源値について保
存と読み込みを行っていたので、タスク切り替え毎に1
024バイトずつの読み書きが発生していた。すなわ
ち、本例では、従来に比べて、タスク切り替え時のメモ
リアクセスが1/512にまで低減されている。
理が大幅に削減されるのは、資源値を制御する機構をデ
ータ処理装置に実装させているためである。すなわち、
資源値の制御に伴う機構をデータ処理装置に実装させる
ことにより、非常に効率的且つ高速なタスク切り替えを
実現することが可能となる。
装される機構 本例では、上述したように、タスク切り替えの時点にお
いてオペレーティングシステムが行うべき処理は、実行
中タスク変数やフラグの書き換えだけであり、タスク切
り替えの時点では資源値の保存や読み込みは行わない。
その代わり、タスクが資源を使用しようとするときに、
当該資源をタスクが使用可能であるかを検査し、必要に
応じて資源値の保存や読み込み等の処理を行い、タスク
が資源を使用できるようにする。
するために、資源グループ使用可能性検査を行う機構
と、資源グループ占有タスク切り替え処理を行う機構
と、資源グループ保存処理を行う機構と、資源グループ
読み込み処理を行う機構と、資源グループ保存領域確保
処理を行う機構とをデータ処理装置にハードウェアとし
て実装しておく。
ウェアとして実装された機構によって実行される各処理
について説明する。ただし、これらの処理のうち、資源
グループ保存処理、資源グループ読み込み処理及び資源
グループ保存領域確保処理については、資源グループ使
用許可フラグを使用してタスク切り替えを行う場合と同
様なので説明は省略する。
用可能性検査 まず、資源グループ使用可能性検査について、図18の
フローチャートを参照して詳細に説明する。
装置による命令実行と並行して行われるものである。す
なわち、資源グループ使用可能性検査は、タスクの命令
を実行しようとする毎に実行される。
ステップST11−1において、実行しようとしている
命令が、機能ブロック遷移命令であるか否かを判断す
る。そして、機能ブロック遷移命令の場合には、ステッ
プST11−2の処理を行い、その後、ステップST1
1−3へ進む。一方、機能ブロック遷移命令ではない場
合には、直ぐに、ステップST11−3へ進む。
0〜3及び資源グループ8〜11に対応する資源グルー
プ保存値有効フラグレジスタに「偽」の値を設定する。
このように資源グループ保存値有効フラグレジスタの値
を設定しておくことにより、不要な資源値については、
資源値保存領域からの読み込みが行われなくなる。
能ブロック遷移命令のときには、ステップST11−2
での処理を行うことにより、不要な資源値の保存や読み
込みを省略することが可能となり、資源値の保存や読み
込みを従来に比べて約5割削減できる。
している命令が、資源を使用するか否かを判断する。そ
して、資源を使用する場合は、ステップST11−4へ
進む。一方、資源を使用しない場合は、資源グループ使
用可能性検査を終了し、タスクの命令を実行する。
ようとしている命令が使用する資源が属する資源グルー
プを特定する。なお、以下の説明では、ステップST1
1−4において特定された資源グループのことを「inde
x番の資源グループ」と称する。すなわち、実行しよう
としている命令は、index番の資源グループに属する資
源を使用する。
源グループ占有タスク変数レジスタに格納されている資
源グループ占有タスク変数の中から、index番の資源グ
ループに対応した資源グループ占有タスク変数を特定す
る。なお、以下の説明では、ステップST11−5にお
いて特定された資源グループ占有タスク変数のことを
「資源グループ占有タスク変数K」と称する。また、フ
ローチャートでは、資源グループ占有タスク変数Kのこ
とを単に「K」と表記している。
源グループ保存値有効フラグレジスタに格納されている
資源グループ保存値有効フラグの中から、index番の資
源グループに対応した資源グループ保存値有効フラグを
特定する。なお、以下の説明では、ステップST11−
6において特定された資源グループ保存値有効フラグの
ことを「資源グループ保存値有効フラグM」と称する。
また、フローチャートでは、資源グループ保存値有効フ
ラグMのことを単に「M」と表記している。
行中タスク変数と資源グループ占有タスク変数Kとを比
較する。なお、フローチャートでは実行中タスク変数の
ことを「D」と表記している。そして、実行中タスク変
数の値と、資源グループ占有タスク変数Kの値とが等し
くない場合には、ステップST11−8へ進み、等しい
場合には、ステップST11−9へ進む。
占有タスク切り替え処理を行う。なお、資源グループ占
有タスク切り替え処理については、後で詳細に説明す
る。そして、資源グループ占有タスク切り替え処理が終
了したら、ステップST11−9へ進む。
保存値有効フラグMに「真」の値を設定する。これによ
り、index番の資源グループの資源値を保持すべき状態
になったことが、資源グループ保存値有効フラグレジス
タに記録されることとなる。そして、ステップST11
−9での処理が完了したら、ステップST11−10へ
進む。
としている命令が、他の資源グループを使用するか否か
を判定する。そして、他の資源グループを使用する場合
には、ステップST11−4へ戻って、当該資源グルー
プについての検査を行う。一方、他の資源グループを使
用しない場合には、資源グループ使用可能性検査を終了
し、タスクの命令を実行する。
性検査を行ったとき、資源グループ占有タスク切り替え
処理が起動されるのは、実行中タスク変数の値と資源グ
ループ占有タスク変数Kの値とが等しくない場合だけで
あり、実行中タスク変数の値と資源グループ占有タスク
変数Kの値とが等しい場合には、資源グループ占有タス
ク切り替え処理は起動されない。換言すれば、資源グル
ープ占有タスク切り替え処理が起動されるのは、タスク
が実行しようとしている命令が資源を使用しようとした
が、当該資源をタスクが占有していない場合である。
有タスク切り替え処理 つぎに、資源グループ占有タスク切り替え処理につい
て、図19のフローチャートを参照して詳細に説明す
る。なお、資源グループ占有タスク切り替え処理は、上
述したように、資源グループ使用可能性検査のステップ
ST11−9において呼び出されて起動される処理であ
る。
は、先ず、ステップST12−1において、資源グルー
プ占有タスク変数Kの示すタスク情報の資源グループ保
存値有効フラグのうち、index番の資源グループに対応
した資源グループ保存値有効フラグの値を読み出す。な
お、以下の説明では、ステップST12−1において読
み出された資源グループ保存値有効フラグの値を「資源
グループ保存値有効フラグL」と称する。また、フロー
チャートでは、資源グループ保存値有効フラグLのこと
を単に「L」と表記している。
源グループ保存値有効フラグLの値を検査する。そし
て、資源グループ保存値有効フラグLの値が「真」の場
合には、ステップST12−3へ進み、資源グループ保
存値有効フラグLの値が「偽」の場合には、ステップS
T12−4へ進む。
ーチャートに従って、資源グループ保存処理を行う。そ
して、資源グループ保存処理が終了したら、ステップS
T12−4へ進む。
占有タスク変数Kに、実行中タスク変数の値を設定す
る。
源グループ保存値有効フラグMの値を検査する。そし
て、資源グループ保存値有効フラグMの値が「真」の場
合には、ステップST12−6へ進み、資源グループ保
存値有効フラグMの値が「偽」の場合には、ステップS
T12−7へ進む。
ーチャートに従って、資源グループ読み込み処理を行
う。そして、資源グループ読み込み処理が終了したら、
資源グループ占有タスク切り替え処理を終了する。
のフローチャートに従って、資源グループ保存領域確保
処理を行う。そして、資源グループ保存領域確保処理が
終了したら、資源グループ占有タスク切り替え処理を終
了する。
グを使用した場合も、資源グループ使用許可フラグを使
用しない場合も、タスク切り替えの時点で資源値の制御
のためにオペレーティングシステムが行うべき処理は、
実行中タスク変数やフラグの書き換えだけであり、非常
に僅かである。しかも、タスク切り替えの時点では、資
源値の保存や読み込みを行わないので、タスク切り替え
時のメモリアクセスも非常に少なくて済む。すなわち、
資源値の制御に伴う機構をデータ処理装置に実装させ
て、資源値の保存や読み込みをオペレーティングシステ
ムによることなく、ハードウェアでの処理によって実行
するようにすることで、タスク切り替えに伴う資源値の
保存や読み込みを非常に効率的且つ高速に行うことが可
能となる。
った場合、資源値の保存や読み込みは、単に先送りされ
た訳ではなく、起動されるタスクで使用しない資源グル
ープについては、保存も読み込みも完全に省略される。
また、使用した資源グループについても、他のタスクが
使用しなければ、そのまま値が保持され、保存も読み込
みも完全に省略される。また、タスク実行中に機能ブロ
ック遷移命令を実行する都度、破壊しても構わない資源
グループについては、資源グループ使用中フラグレジス
タや資源グループ保存値有効フラグレジスタを更新し、
資源値の保存を行わないようにしている。このように、
上記タスク切り替え処理では、資源値の保存や読み込み
を極力少なくし、本当に必要なものについてだけ資源値
の保存や読み込みを行うようにしており、資源値の保存
や読み込みが非常に効率的に行われる。
モリへの読み書きがタスク切り替え時に集中し、それが
バスのボトルネックの原因となるようなこともあった
が、上述のようにタスク切り替えを行った場合には、資
源値の保存や読み込みは散発的に行われることとなるた
め、バスのボトルネックも生じ難い。
った場合には、タスク切り替え時の資源値の保存や読み
込みが非常に少なく、タスク切り替えが非常に高速に行
われるので、割り込み処理等のように高速な起動が必要
とされる処理も、タスク切り替えの機構で実現すること
が可能となる。換言すれば、上述のようにタスク切り替
えを行った場合には、割り込み処理をタスク切り替えの
機構で行うようにしても、割り込み処理の起動や終了時
のオーバーヘッドが非常に少なくて済む。
な変形が可能である。
浮動小数点演算装置のレジスタの数などは、特に限定さ
れるものではなく、任意の数で構わない。更に、データ
処理装置も、中央処理装置及び浮動小数点演算装置から
なるものでなくてもよく、例えば、中央処理装置だけで
あっても良いし、或いは、浮動小数点演算装置の他に
も、三次元座標変換計算を行う装置や、画像データの圧
縮伸長処理を高速に行うための並列演算を行う装置な
ど、様々なコプロセッサを備えていても良い。
ープに分割して管理するにあたって、その分割数も特に
限定されるものではなく、自由に選ぶことができる。た
だし、資源の分割の仕方によってタスク切り替え処理の
効率は変化するので、資源を資源グループに分割して管
理するにあたっては、処理対象となるタスクの種類やデ
ータ処理装置の構成等に応じて、タスク切り替え処理が
より効率良く行われるように、資源の分割を最適化した
ほうが好ましいことは言うまでもない。また、上述した
ように、中央処理装置がキャッシュメモリを備えている
ときには、資源を資源グループに分割する際に、各資源
グループに対応した各資源値保存領域のサイズが、キャ
ッシュメモリのキャッシュラインサイズの整数倍になる
ように分割したほうが好ましい。
スク切り替え処理以外の殆どの処理を、データ処理装置
にハードウェア的な機構として実装したが、要求される
半導体回路の規模等に応じて、殆どの部分を任意に選ん
でソフトウェアによる実装に置き換えることも可能であ
る。また、例えば、資源グループ占有タスク切り替え処
理についてはソフトウェアで行うが、資源グループの保
存や読み込みについては、それを短い命令数で実行でき
る特別の命令を用意して、高速な処理を可能にするな
ど、部分的に機能を切り出してハードウェア化するよう
なことも可能である。
行中タスク変数に、実行中のタスクに対応したタスク情
報保存領域の先頭番地を設定したが、実行中タスク変数
には、タスク情報領域の中の資源制御情報領域の先頭番
地を設定するようにしても良い。タスク情報領域の中の
資源制御情報領域の先頭番地を実行中タスク変数に設定
するようにした場合は、タスク情報のうちオペレーティ
ングシステムに依存する部分(すなわちタスク制御情
報)のサイズに左右されることなく、実行中タスク変数
に基づいて、資源制御情報領域に直接アクセスすること
が可能となる。換言すれば、タスク情報の中の資源制御
情報領域の先頭番地を実行中タスク変数に設定するよう
にした場合は、オペレーティングシステムの実装に左右
されずに、ハードウェアによる処理だけで、資源の制御
に必要なタスク情報を操作することが可能となる。
れば、タスク切り替えの際に発生するメモリアクセスを
分散することができ、しかも、不要なメモリアクセスを
大幅に削減することができ、さらに、資源値を保持する
ための大量のハードウェア資源を必要としない。したが
って、本発明によれば、以下のような効果が得られる。
置等において、タスク切り替えの時間を大幅に短縮する
ことができる。
浮動小数点演算装置を追加したような場合、追加機能を
使用しないタスクについては、タスク切り替えの時間に
影響が出なくなる。
タスクが使用した資源グループについてのみ、資源値を
保存する領域を確保すればよく、メモリの使用量を大幅
に削減できる。
効果が下がるようなことはなく、タスク切り替えを高速
に行うことができる。
わずかな追加ハードウェアのみで実現可能であり、レジ
スタファイル等の機構によりタスク切り替えの高速化を
図るような場合に比べて、半導体面積を大幅に削減でき
る。
ても、本発明のために必要な追加ハードウェアはわずか
であり、しかも、高速に切り替え可能なタスク数にも制
限がない。
る資源を限定することで、タスク切り替えを高速に行う
ことができる。そのため、割り込み処理等のように高速
な起動が必要な処理についても、タスク切り替えの機構
で行うことが可能となる。
クセス量が大幅に減少するため、切り替え先のタスクの
起動時間を特定することが容易となる。
能(例えば浮動小数点演算装置使用許可フラグ)を予め
備えている場合には、オペレーティングシステムの変更
だけで、タスク切り替えを高速化することができる。
源グループ占有タスク切り替え処理を行う機構を、デー
タ処理装置にハードウェアとして実装した場合には、タ
スク切り替えに必要な命令ステップを削減して、タスク
切り替え時の処理を非常に高速化することができる。し
かも、タスク切り替え後に資源を初めて使用する際に発
生する占有タスク切り替え処理も非常に高速化すること
ができる。
リのキャッシュラインサイズの整数倍となるように資源
グループのサイズを設定し、また、資源値保存領域の先
頭をキャッシュラインの境界に整合させることによっ
て、資源を資源グループに分割しても、資源値保存領域
の前後端での余計なメモリアクセスが発生しないように
することができ、メモリアクセスを効率良く行うことが
可能となる。
理装置のレジスタの構成を示す図である。
プとメモリ上の変数とを説明するための図である。
するときの状態を示す図である。
スク情報の配列を示す図である。
保存領域及び資源値保存領域を示す図である。
替え処理のフローチャートである。
プ使用可能性検査のフローチャートである。
プ占有タスク切り替え処理のフローチャートである。
装置のレジスタの構成を示す図である。
報保存領域及び資源値保存領域を示す図である。
ループ使用許可フラグを使用してタスク切り替えを行う
ときのタスク切り替え処理のフローチャートである。
ループ使用許可フラグを使用してタスク切り替えを行う
ときの資源グループ使用可能性検査のフローチャートで
ある。
ループ使用許可フラグを使用してタスク切り替えを行う
ときの資源グループ占有タスク切り替え処理のフローチ
ャートである。
ープ保存処理のフローチャートである。
ープ読み込み処理のフローチャートである。
ープ保存領域確保処理のフローチャートである。
ループ使用許可フラグを使用しないでタスク切り替えを
行うときのタスク切り替え処理のフローチャートであ
る。
ループ使用許可フラグを使用しないでタスク切り替えを
行うときの資源グループ使用可能性検査のフローチャー
トである。
ループ使用許可フラグを使用しないでタスク切り替えを
行うときの資源グループ占有タスク切り替え処理のフロ
ーチャートである。
の状態を示す図である。
機構を説明するための図であり、(a)はレジスタファ
イルを示す図、(b)はレジスタウィンドウを示す図で
ある。
Claims (38)
- 【請求項1】 タスク毎に確保した資源値保存領域に資
源の状態を示す値である資源値を保存し、タスクを実行
するときに当該タスクが使用する資源の資源値を資源値
保存領域から読み出すことで、それぞれのタスクの独立
性を保証して複数のタスクを並行して実行するマルチタ
スクシステムにおけるタスク切り替え方法において、 資源を複数の資源グループに分割して管理し、 タスク切り替えにより実行中となったタスクが資源を使
用する際、当該資源が属する資源グループを当該タスク
が使用可能か否かを判定する資源グループ使用可能性検
査を行い、 資源グループ使用可能性検査の結果、当該資源が属する
資源グループが実行中のタスクで使用可能と判定された
場合には、実行中のタスクに当該資源の使用を認めて、
実行中のタスクの処理を継続し、 資源グループ使用可能性検査の結果、当該資源が属する
資源グループが実行中のタスクで使用可能と判定されな
かった場合には、当該資源が属する資源グループを実行
中のタスクが使用可能な状態に変更する資源グループ占
有タスク切り替え処理を行った上で、実行中のタスクに
当該資源の使用を認めて、実行中のタスクの処理を継続
することを特徴とするタスク切り替え方法。 - 【請求項2】 タスク切り替えによって実行を開始する
タスクが、上記資源グループ使用可能性検査を行うこと
ができない資源を使用する可能性がある場合には、当該
資源グループの資源値の保存及び/又は読み込みを、タ
スク切り替えの際に必要に応じて予め行うことを特徴と
する請求項1記載のタスク切り替え方法。 - 【請求項3】 実行中のタスクが資源グループを使用可
能であるか否かを示す資源グループ使用許可フラグを設
けておき、 上記資源グループ使用可能性検査では、資源グループ使
用許可フラグに基づいて、実行中のタスクが資源グルー
プを使用可能か否かを判定することを特徴とする請求項
1記載のタスク切り替え方法。 - 【請求項4】 タスクが資源グループを占有しているか
否かを資源グループ毎に示す資源グループ占有フラグを
タスク毎に設けておき、 タスク切り替え時に、タスク切り替えによって停止する
タスクに対応する資源グループ占有フラグのうち、資源
グループ使用許可フラグに使用可能であることを示す値
が設定されている資源グループに対応する資源グループ
占有フラグに、当該資源グループを占有していることを
示す値を設定し、 上記資源グループ占有タスク切り替え処理では、実行中
のタスクが使用しようとしている資源が属する資源グル
ープをそれまで使用していたタスクに対応する資源グル
ープ占有フラグのうち、当該資源グループに対応する資
源グループ占有フラグに、当該資源グループを占有して
いないこと示す値を設定する処理を行うことを特徴とす
る請求項3記載のタスク切り替え方法。 - 【請求項5】 上記資源グループ使用許可フラグは、共
通の機能を提供する1以上の資源グループからなる機能
ブロック単位で、実行中のタスクが資源グループを使用
可能であるか否かを示すことを特徴とする請求項3記載
のタスク切り替え方法。 - 【請求項6】 上記資源グループ使用許可フラグは、資
源グループ毎に、実行中のタスクが資源グループを使用
可能であるか否かを示すことを特徴とする請求項3記載
のタスク切り替え方法。 - 【請求項7】 上記資源グループ占有タスク切り替え処
理において、 実行中のタスクが使用しようとしている資源の資源値を
保持する必要がある場合に、当該資源が属する資源グル
ープの資源値を資源値保存領域に保存する処理と、 実行中のタスクに対応した資源値保存領域に、実行中の
タスクが使用しようとしている資源の資源値として有効
な値が保存されている場合に、実行中のタスクに対応し
た資源値保存領域から資源値を読み込む処理とを行うこ
とを特徴とする請求項1記載のタスク切り替え方法。 - 【請求項8】 資源グループを占有しているタスクに対
応した値が設定される資源グループ占有タスク変数を資
源グループ毎に設けておき、 上記資源グループ占有タスク切り替え処理では、実行中
のタスクが使用しようとしている資源が属する資源グル
ープに対応した資源グループ占有タスク変数に、実行中
のタスクに対応した値を設定する処理も行うことを特徴
とする請求項7記載のタスク切り替え方法。 - 【請求項9】 実行中のタスクに対応した値が設定され
る実行中タスク変数を設けておき、 上記資源グループ使用可能性検査では、実行中のタスク
が使用しようとしている資源が属する資源グループに対
応した資源グループ占有タスク変数の値と、実行中タス
ク変数の値とを比較することにより、当該資源が属する
資源グループを実行中のタスクが使用可能か否かを判定
することを特徴とする請求項8記載のタスク切り替え方
法。 - 【請求項10】 資源グループに属する資源に使用中の
ものが存在するか否かを資源グループ毎に示す資源グル
ープ保存値有効フラグをタスク毎に設けておき、 タスクが資源を使用することにより当該資源の資源値が
有効な値となった場合には、当該タスクに対応した資源
グループ保存値有効フラグのうち、当該資源が属する資
源グループに対応した資源グループ保存値有効フラグ
に、当該資源グループに使用中の資源が存在しているこ
とを示す値を設定し、 上記資源グループ占有タスク切り替え処理において、実
行中のタスクが使用しようとしている資源の資源値を保
持する必要があるか否かの判断を、当該資源を使用して
いるタスクに対応した資源グループ保存値有効フラグに
基づいて行うとともに、 上記資源グループ占有タスク切り替え処理において、実
行中のタスクに対応した資源値保存領域に、実行中のタ
スクが使用しようとしている資源の資源値として有効な
値が保存されているか否かの判断を、実行中のタスクに
対応した資源グループ保存値有効フラグに基づいて行う
ことを特徴とする請求項7記載のタスク切り替え方法。 - 【請求項11】 タスク切り替えによって実行を開始す
るタスクが、上記資源グループ使用可能性検査を行うこ
とができない資源を使用する可能性がある場合には、タ
スク切り替え処理において、当該資源グループに対応し
た資源グループ保存値有効フラグに、当該資源グループ
に対応した資源値保存領域に有効な値が存在しているこ
とを示す値を設定する処理を行うことを特徴とする請求
項10記載のタスク切り替え方法。 - 【請求項12】 タスクの実行を終了する際に、当該タ
スクに対応した全ての資源グループ保存値有効フラグの
値を、資源グループに使用中の資源が存在しないことを
示す値に設定することを特徴とする請求項10記載のタ
スク切り替え方法。 - 【請求項13】 資源グループに属する資源をタスクが
使用中であるか否かを示す資源グループ使用中フラグを
資源グループ毎に設けておき、 タスクが資源を使用するときには、当該資源が属する資
源グループに対応した資源グループ使用中フラグに、当
該資源グループに属する資源をタスクが使用中であるこ
とを示す値を設定し、 上記資源グループ占有タスク切り替え処理において、実
行中のタスクが使用しようとしている資源の資源値を保
持する必要があるか否かの判断を、当該資源が属する資
源グループに対応した資源グループ使用中フラグに基づ
いて行うことを特徴とする請求項7記載のタスク切り替
え方法。 - 【請求項14】 タスク切り替えによって実行を開始す
るタスクが、上記資源グループ使用可能性検査を行うこ
とができない資源を使用する可能性がある場合には、タ
スク切り替え処理において、当該資源グループに対応し
た資源グループ使用中フラグに、当該資源グループに使
用中の資源が存在していることを示す値を設定する処理
を行うことを特徴とする請求項13記載のタスク切り替
え方法。 - 【請求項15】 タスクが資源グループを占有している
か否かを資源グループ毎に示す資源グループ占有フラグ
をタスク毎に設けておき、 上記資源グループ占有タスク切り替え処理では、 実行中のタスクが使用しようとしている資源が属する資
源グループを占有しているタスクに対応する資源グルー
プ占有フラグのうち、実行中のタスクが使用しようとし
ている資源が属する資源グループに対応した資源グルー
プ占有フラグに、当該資源グループを占有していないこ
とを示す値を設定する処理と、 実行中のタスクに対応した資源グループ占有フラグのう
ち、実行中のタスクが使用しようとしている資源が属す
る資源グループに対応した資源グループ占有フラグに、
当該資源グループを占有していることを示す値を設定す
る処理も行うことを特徴とする請求項7記載のタスク切
り替え方法。 - 【請求項16】 タスクが使用可能な資源を、キャッシ
ュメモリを備えた中央処理装置を使用して取り扱う場合
には、 資源を資源グループに分割する際に、各資源グループに
対応した各資源値保存領域のサイズがキャッシュメモリ
のキャッシュラインサイズの整数倍となるように分割す
ることを特徴とする請求項1記載のタスク切り替え方
法。 - 【請求項17】 タスクが使用可能な資源を、キャッシ
ュメモリを備えた中央処理装置を使用して取り扱うとと
もに、資源値保存領域をキャッシュメモリ上に確保する
場合には、 資源値保存領域の先頭アドレスがキャッシュメモリのキ
ャッシュラインの境界となるように資源値保存領域を確
保することを特徴とする請求項1記載のタスク切り替え
方法。 - 【請求項18】 タスク毎に確保した資源値保存領域に
資源の状態を示す値である資源値を保存し、タスクを実
行するときに当該タスクが使用する資源の資源値を資源
値保存領域から読み出すことで、それぞれのタスクの独
立性を保証して複数のタスクを並行して実行するマルチ
タスクシステムにおけるタスク切り替え方法において、 上記資源値保存領域を確保する際に、保存する資源値の
サイズに応じて、資源値保存領域のサイズを動的に変化
させて確保することを特徴とするタスク切り替え方法。 - 【請求項19】 資源を複数の資源グループに分割して
管理するとともに、上記資源値保存領域のサイズを資源
グループを単位として動的に変化させること特徴とする
請求項18に記載のタスク切り替え方法。 - 【請求項20】 上記資源値保存領域を、対応するタス
クが使用するスタックと同一のメモリブロックに、当該
タスクがスタックにデータを格納していく方向とは逆の
方向から確保していくこと特徴とする請求項18に記載
のタスク切り替え方法。 - 【請求項21】 上記資源値保存領域を動的に変化させ
るときに、スタックとしてタスクが使用中の領域と資源
値保存領域とが重複しないかを確認することを特徴とす
る請求項20記載のタスク切り替え方法。 - 【請求項22】 タスク毎に確保した資源値保存領域に
資源の状態を示す値である資源値を保存し、タスクを実
行するときに当該タスクが使用する資源の資源値を資源
値保存領域から読み出すことで、それぞれのタスクの独
立性を保証して複数のタスクを並行して実行するデータ
処理装置において、 資源を複数の資源グループに分割して管理し、 タスク切り替えにより実行中となったタスクが資源を使
用する際、当該資源が属する資源グループを当該タスク
が使用可能か否かを判定する資源グループ使用可能性検
査を行い、 資源グループ使用可能性検査の結果、当該資源が属する
資源グループが実行中のタスクで使用可能と判定された
場合には、実行中のタスクに当該資源の使用を認めて、
実行中のタスクの処理を継続し、 資源グループ使用可能性検査の結果、当該資源が属する
資源グループが実行中のタスクで使用可能と判定されな
かった場合には、当該資源が属する資源グループを実行
中のタスクが使用可能な状態に変更する資源グループ占
有タスク切り替え処理を行った上で、実行中のタスクに
当該資源の使用を認めて、実行中のタスクの処理を継続
することを特徴とするデータ処理装置。 - 【請求項23】 実行中のタスクが資源グループを使用
可能であるか否かを示す資源グループ使用許可フラグの
値を保持する資源グループ使用許可フラグ保持手段を備
え、 上記資源グループ使用可能性検査では、資源グループ使
用許可フラグに基づいて、実行中のタスクが資源グルー
プを使用可能か否かを判定することを特徴とする請求項
22記載のデータ処理装置。 - 【請求項24】 上記資源グループ使用許可フラグは、
共通の機能を提供する1以上の資源グループからなる機
能ブロック単位で、実行中のタスクが資源グループを使
用可能であるか否かを示すことを特徴とする請求項23
記載のデータ処理装置。 - 【請求項25】 上記資源グループ使用許可フラグは、
資源グループ毎に、実行中のタスクが資源グループを使
用可能であるか否かを示すことを特徴とする請求項23
記載のデータ処理装置。 - 【請求項26】 上記資源グループ占有タスク切り替え
処理において、 実行中のタスクが使用しようとしている資源の資源値を
保持する必要がある場合に、当該資源が属する資源グル
ープの資源値を資源値保存領域に保存する処理と、 実行中のタスクに対応した資源値保存領域に、実行中の
タスクが使用しようとしている資源の資源値として有効
な値が保存されている場合に、実行中のタスクに対応し
た資源値保存領域から資源値を読み込む処理とを行うこ
とを特徴とする請求項22記載のデータ処理装置。 - 【請求項27】 資源グループを占有しているタスクに
対応した値が資源グループ毎に設定される資源グループ
占有タスク変数の値を保持する資源グループ占有タスク
変数保持手段を備え、 上記資源グループ占有タスク切り替え処理では、実行中
のタスクが使用しようとしている資源が属する資源グル
ープに対応した資源グループ占有タスク変数に、実行中
のタスクに対応した値を設定する処理も行うことを特徴
とする請求項26記載のデータ処理装置。 - 【請求項28】 実行中のタスクに対応した値が設定さ
れる実行中タスク変数の値を保持する実行中タスク変数
保持手段を備え、 上記資源グループ使用可能性検査では、実行中のタスク
が使用しようとしている資源が属する資源グループに対
応した資源グループ占有タスク変数の値と、実行中タス
ク変数の値とを比較することにより、当該資源が属する
資源グループを実行中のタスクが使用可能か否かを判定
することを特徴とする請求項27記載のデータ処理装
置。 - 【請求項29】 資源グループに属する資源に使用中の
ものが存在するか否かを資源グループ毎に示す資源グル
ープ保存値有効フラグの値を保持する資源グループ保存
値有効フラグ保持手段を備え、 タスクが資源を使用することにより当該資源の資源値が
有効な値となった場合には、当該資源が属する資源グル
ープに対応した資源グループ保存値有効フラグに、当該
資源グループに使用中の資源が存在していることを示す
値を設定し、 上記資源グループ占有タスク切り替え処理において、実
行中のタスクが使用しようとしている資源の資源値を保
持する必要があるか否かの判断を、当該資源が属する資
源グループに対応した資源グループ保存値有効フラグに
基づいて行うことを特徴とする請求項26記載のデータ
処理装置。 - 【請求項30】 実行中のタスクが、特定の資源グルー
プの資源値が破壊されることを前提とした処理を実行し
た場合には、当該資源グループに対応した資源グループ
保存値有効フラグに、当該資源グループに対応した資源
値保存領域に有効な値が存在していないことを示す値を
設定することを特徴とする請求項29記載のデータ処理
装置。 - 【請求項31】 資源グループに属する資源をタスクが
使用中であるか否かを資源グループ毎に示す資源グルー
プ使用中フラグを保持する資源グループ使用中フラグ保
持手段を備え、 タスクが資源を使用するときには、当該資源が属する資
源グループに対応した資源グループ使用中フラグに、当
該資源グループに属する資源をタスクが使用中であるこ
とを示す値を設定し、 上記資源グループ占有タスク切り替え処理において、実
行中のタスクが使用しようとしている資源の資源値を保
持する必要があるか否かの判断を、当該資源が属する資
源グループに対応した資源グループ使用中フラグに基づ
いて行うことを特徴とする請求項26記載のデータ処理
装置。 - 【請求項32】 実行中のタスクが、特定の資源グルー
プの資源値が破壊されることを前提とした処理を実行し
た場合には、 資源値が破壊されることが前提とされている資源グルー
プのうち、実行中のタスクが使用可能な資源グループに
ついて、当該資源グループに対応した資源グループ使用
中フラグに、当該資源グループを使用中のタスクが存在
していないことを示す値を設定することを特徴とする請
求項31記載のデータ処理装置。 - 【請求項33】 タスクが使用可能な資源を取り扱う中
央処理装置と、上記中央処理装置に設けられたキャッシ
ュメモリとを備えており、 上記資源グループは、各資源グループに対応した各資源
値保存領域のサイズがキャッシュメモリのキャッシュラ
インサイズの整数倍となるように資源が分割されてなる
ことを特徴とする請求項22記載のデータ処理装置。 - 【請求項34】 タスクが使用可能な資源を取り扱う中
央処理装置と、上記中央処理装置に設けられたキャッシ
ュメモリとを備えており、 上記資源値保存領域は、各資源値保存領域の先頭アドレ
スがキャッシュメモリのキャッシュラインの境界となる
ように確保されることを特徴とする請求項22記載のデ
ータ処理装置。 - 【請求項35】 上記資源値保存領域を確保する際に、
保存する資源値のサイズに応じて、資源値保存領域のサ
イズを動的に変化させて確保することを特徴とする請求
項22記載のデータ処理装置。 - 【請求項36】 上記資源値保存領域のサイズを、資源
グループを単位として動的に変化させることを特徴とす
る請求項35記載のデータ処理装置。 - 【請求項37】 上記資源値保存領域を、対応するタス
クが使用するスタックと同一のメモリブロックに、当該
タスクがスタックにデータを格納していく方向とは逆の
方向から確保していくことを特徴とする請求項35記載
のデータ処理装置。 - 【請求項38】 上記資源値保存領域を動的に変化させ
るときに、スタックとしてタスクが使用中の領域と資源
値保存領域とが重複しないかを確認する領域重複チェッ
ク手段を備えていることを特徴とする請求項37記載の
データ処理装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11750598A JP3991443B2 (ja) | 1998-04-27 | 1998-04-27 | タスク切り替え方法及びデータ処理装置 |
| DE69939409T DE69939409D1 (de) | 1998-04-27 | 1999-04-19 | Verfahren und Vorrichtung zum Umschalten von Aufgaben |
| EP19990303005 EP0953905B1 (en) | 1998-04-27 | 1999-04-19 | Method and apparatus for switching tasks |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11750598A JP3991443B2 (ja) | 1998-04-27 | 1998-04-27 | タスク切り替え方法及びデータ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11312092A true JPH11312092A (ja) | 1999-11-09 |
| JP3991443B2 JP3991443B2 (ja) | 2007-10-17 |
Family
ID=14713423
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11750598A Expired - Fee Related JP3991443B2 (ja) | 1998-04-27 | 1998-04-27 | タスク切り替え方法及びデータ処理装置 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0953905B1 (ja) |
| JP (1) | JP3991443B2 (ja) |
| DE (1) | DE69939409D1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012145991A (ja) * | 2011-01-07 | 2012-08-02 | I-Cubed Research Center Inc | 信号処理装置、および信号処理方法 |
| JP2012216190A (ja) * | 2011-03-31 | 2012-11-08 | Denso Corp | 2つのプロセッサ間においてメッセージの通行を制御するためのシステム及び方法 |
| US9354923B2 (en) | 2013-06-18 | 2016-05-31 | Kabushiki Kaisha Toshiba | Information processing apparatus, information processing method, and computer program product |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FI116166B (fi) | 2002-06-20 | 2005-09-30 | Nokia Corp | Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite |
| JP2005301791A (ja) * | 2004-04-14 | 2005-10-27 | Nec Corp | 移動通信端末および移動通信端末のアプリケーション起動制御方法 |
| GB2471138B (en) * | 2009-06-19 | 2014-08-13 | Advanced Risc Mach Ltd | Handling integer and floating point registers during a context switch |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4975836A (en) * | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
| JPS63156236A (ja) * | 1986-12-19 | 1988-06-29 | Toshiba Corp | レジスタ装置 |
| JP3034873B2 (ja) * | 1988-07-01 | 2000-04-17 | 株式会社日立製作所 | 情報処理装置 |
| US5159680A (en) * | 1988-07-28 | 1992-10-27 | Sun Microsystems, Inc. | Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register |
| JP3619939B2 (ja) * | 1994-09-26 | 2005-02-16 | 株式会社ルネサステクノロジ | 中央処理装置 |
-
1998
- 1998-04-27 JP JP11750598A patent/JP3991443B2/ja not_active Expired - Fee Related
-
1999
- 1999-04-19 EP EP19990303005 patent/EP0953905B1/en not_active Expired - Lifetime
- 1999-04-19 DE DE69939409T patent/DE69939409D1/de not_active Expired - Fee Related
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012145991A (ja) * | 2011-01-07 | 2012-08-02 | I-Cubed Research Center Inc | 信号処理装置、および信号処理方法 |
| JP2012216190A (ja) * | 2011-03-31 | 2012-11-08 | Denso Corp | 2つのプロセッサ間においてメッセージの通行を制御するためのシステム及び方法 |
| US9354923B2 (en) | 2013-06-18 | 2016-05-31 | Kabushiki Kaisha Toshiba | Information processing apparatus, information processing method, and computer program product |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0953905A2 (en) | 1999-11-03 |
| DE69939409D1 (de) | 2008-10-09 |
| EP0953905A3 (en) | 2006-07-05 |
| EP0953905B1 (en) | 2008-08-27 |
| JP3991443B2 (ja) | 2007-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5091215B2 (ja) | コプロセッサの性能を強化するシステムおよび方法 | |
| US7844802B2 (en) | Instructions for ordering execution in pipelined processes | |
| JP3889879B2 (ja) | 仮想メモリ変換を制御する方法 | |
| JP4599172B2 (ja) | フリーバッファプールを使用することによるメモリの管理 | |
| JP3444346B2 (ja) | 仮想メモリ管理方式 | |
| GB2348306A (en) | Batch processing of tasks in data processing systems | |
| JP2007157142A (ja) | 特定のspeを使ってcellプロセッサのアトミックなコンペア・アンド・スワップ命令を実行するための技術 | |
| CN102567220A (zh) | Cache存取的控制方法及装置 | |
| JP2003271448A (ja) | スタック管理方法及び情報処理装置 | |
| JPH11312092A (ja) | タスク切り替え方法及びデータ処理装置 | |
| JP5007868B2 (ja) | プロセッサメモリシステム | |
| US20040243765A1 (en) | Multithreaded processor with multiple caches | |
| JP5131269B2 (ja) | マルチプロセッシングシステム | |
| JP3088303B2 (ja) | キャッシュ・メモリ・バンク制御装置 | |
| JP4130465B2 (ja) | メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術 | |
| CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作系统 | |
| JP2521027B2 (ja) | マルチプロセッサ及びその制御方法 | |
| JP2001290704A (ja) | マルチプロセス制御装置及びマルチプロセス制御方法 | |
| JP4088763B2 (ja) | コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法 | |
| CN117055811A (zh) | 一种总线访问命令处理方法、装置、芯片及存储介质 | |
| JP7217341B2 (ja) | プロセッサおよびレジスタの継承方法 | |
| EP0787326B1 (en) | System and method for processing of memory data and communication system comprising such system | |
| JPS603229B2 (ja) | 情報処理方式 | |
| JPS59112479A (ja) | キヤツシユメモリの高速アクセス方式 | |
| JP3206580B2 (ja) | Dmaデータ転送制御方法及び入出力処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Effective date: 20050119 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070314 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070417 |
|
| A521 | Written amendment |
Effective date: 20070611 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070703 |
|
| A61 | First payment of annual fees (during grant procedure) |
Effective date: 20070716 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |