JPH04264625A - レジスタ管理方式 - Google Patents

レジスタ管理方式

Info

Publication number
JPH04264625A
JPH04264625A JP4546491A JP4546491A JPH04264625A JP H04264625 A JPH04264625 A JP H04264625A JP 4546491 A JP4546491 A JP 4546491A JP 4546491 A JP4546491 A JP 4546491A JP H04264625 A JPH04264625 A JP H04264625A
Authority
JP
Japan
Prior art keywords
register
task
identification
identification code
write
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.)
Pending
Application number
JP4546491A
Other languages
English (en)
Inventor
Koichi Sano
幸一 佐野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP4546491A priority Critical patent/JPH04264625A/ja
Publication of JPH04264625A publication Critical patent/JPH04264625A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は電子計算機におけるレジ
スタ管理方式に関するものであり、特にタスクの切り替
えに伴うレジスタの内容の退避・復旧に関するものであ
る。
【0002】
【従来の技術】プログラムの実行に際してはCPU内の
各種のレジスタが使用される。
【0003】ところで、複数のタスクが交互に実行され
るシステムにあっては、実行が中断されるタスクの使用
していたレジスタの内容を後の実行の再開に備えて退避
しておく必要があり、また、実行が開始(再開)される
タスクについては、既に退避してあったレジスタの内容
をCPUのレジスタに復旧する必要がある。
【0004】従来、このようなレジスタの内容の退避・
復旧はタスクの切り替え時に全てのレジスタについて無
条件に行っていた。
【0005】
【発明が解決しようとする課題】上述したように、従来
のレジスタ管理方式にあっては、タスクの切り替え時に
全てのレジスタについて無条件に退避・復旧を行ってい
たため、全てのレジスタが実際には使用されていないこ
とを考慮すると、処理に無駄が多く、タスクの切り替え
時のオーバーヘッドを短縮できない要因の一つとなって
いた。
【0006】特に、CPUの高性能化によりレジスタの
数は増加する傾向にあり、タスク切り替え時のオーバー
ヘッドの増大は避けられないものであった。また、タス
ク切り替え頻度の高いリアルタイムマルチタスク処理に
おいてはこれらの欠点が顕著となり、性能低下を招いて
いた。
【0007】なお、浮動小数点レジスタ等の特殊なレジ
スタに関しては、これを使用するか否かを事前に宣言す
ることによって無駄な退避・復旧を行わないようにした
方式も存在するが、汎用レジスタについては効果はなか
った。
【0008】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、本当に必要なレジスタ
のみを退避・復旧の対象とすることにより、タスク切り
替え時のオーバーヘッドの減少を図ることのできるレジ
スタ管理方式を提供することにある。
【0009】
【課題を解決するための手段】本発明は上記の目的を達
成するため、CPUの各レジスタに対して最後に書き込
みを行ったタスクの識別コードを記憶しておく書き込み
タスク識別レジスタと、現在実行中のタスクの識別コー
ドを記憶しておくカレントタスク識別レジスタと、現在
実行中のタスクからレジスタに対する書き込みもしくは
読み出しが行われようとする際に該当する書き込みタス
ク識別レジスタの識別コードとカレントタスク識別レジ
スタの識別コードとを比較する比較回路と、比較結果が
不一致の場合、該当するレジスタの内容を退避領域に退
避し、読み出しにあっては更に退避領域から該当するレ
ジスタの内容をレジスタに復旧するレジスタ退避・復旧
回路とを備えるようにしている。
【0010】
【作用】本発明のレジスタ管理方式にあっては、CPU
の各レジスタに対して最後に書き込みを行ったタスクの
識別コードを書き込みタスク識別レジスタが記憶し、現
在実行中のタスクの識別コードをカレントタスク識別レ
ジスタが記憶し、現在実行中のタスクからレジスタに対
する書き込みもしくは読み出しが行われようとする際に
比較回路が該当する書き込みタスク識別レジスタの識別
コードとカレントタスク識別レジスタの識別コードとを
比較し、比較結果が不一致の場合、レジスタ退避・復旧
回路が該当するレジスタの内容を退避領域に退避し、読
み出しにあっては更に退避領域から該当するレジスタの
内容をレジスタに復旧する。
【0011】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。
【0012】図1は本発明のレジスタ管理方式の一実施
例を示す構成図である。
【0013】図1において、CPU1の内部には、プロ
グラムカウンタPC,スタックポインタSP,プログラ
ムステータスワードPSW等の制御レジスタ3と、汎用
レジスタ(R0〜R31)4とが設けられている。
【0014】一方、汎用レジスタ4には、各汎用レジス
タR0〜R31毎にそのレジスタに最後に書き込みを行
ったタスクの識別コードを記憶しておく書き込みタスク
識別レジスタ(WTI0〜WTI31)5が対応して設
けられており、また、現在実行中のタスクの識別コード
を記憶しておくカレントタスク識別レジスタ(CTI)
6が設けられている。なお、タスクの識別コードとして
は、主記憶2上にタスク毎に設けられたタスク制御ブロ
ック9〜11のアドレスを用いることとする。タスク制
御ブロック9〜11にはCPU1内の制御レジスタ3の
内容を退避するための制御レジスタ退避領域9a〜11
aと、汎用レジスタ4の内容を退避するための汎用レジ
スタ退避領域9b〜11bとが設けられている。
【0015】また、CPU1内には、現在実行中のタス
クから汎用レジスタ4に対する書き込みもしくは読み出
しが行われようとする際に該当する書き込みタスク識別
レジスタ5の識別コードとカレントタスク識別レジスタ
6の識別コードとを比較する比較回路7と、比較結果が
不一致の場合、該当する汎用レジスタ4の内容を主記憶
2上の各タスク制御ブロック9〜11の汎用レジスタ退
避領域9b〜11bに退避し、読み出しにあっては更に
汎用レジスタ退避領域9b〜11bから該当するレジス
タの内容を汎用レジスタ4に復旧するレジスタ退避・復
旧回路8とが設けられている。
【0016】以下、上記の実施例の動作を具体的に説明
する。
【0017】このシステムを制御するオペレーティング
システム(図示せず)は、タスクの切り替えを行う毎に
、カレントタスク識別レジスタ6が、CPU1を使用す
るタスクのタスク制御ブロック9〜11のアドレスを示
すように制御する。また、オペレーティングシステムは
、新たにタスクを生成する場合、これに対応するタスク
制御ブロックを作成すると共に、その中の制御レジスタ
退避領域および汎用レジスタ退避領域に、そのタスクが
走行する時の各レジスタの初期値を設定する。
【0018】今、タスク制御ブロック9に対応するタス
クが走行していると仮定する。
【0019】このタスクの走行中に汎用レジスタ4のう
ちのR0〜R5に書き込みを行ったとすると、書き込み
タスク識別レジスタ5のうちの対応するWTI0〜WT
I5にはタスク制御ブロック9のアドレスが格納されて
いる。
【0020】ここで、タスク切り替えが発生し、CPU
1をタスク制御ブロック10に対応するタスクに割り当
てたとする。
【0021】この場合、オペレーティングシステムはこ
の時点での制御レジスタ3の内容をそれまでCPU1を
使用していたタスクに対応するタスク制御ブロック9内
の制御レジスタ退避領域9aに退避する。
【0022】次いで、新しくCPU1を割り当てるタス
クに対応するタスク制御ブロック10内の制御レジスタ
退避領域10aの内容を、CPU1の制御レジスタ3に
設定(復旧)すると共に、カレントタスク識別レジスタ
6にタスク制御ブロック10のアドレスを設定する。
【0023】こうして、タスク制御ブロック10に対応
するタスクの実行を開始する。
【0024】この時、従来技術であれば汎用レジスタ4
の退避・復旧も同時に行っていたが、本発明では行わな
い。
【0025】タスク制御ブロック10に対応するタスク
が走行し始めた後、汎用レジスタ4のR2に書き込みを
行うものとする。
【0026】これにより、比較回路7が動作する。
【0027】この時、カレントタスク識別レジスタ6の
内容はタスク制御ブロック10のアドレスを示している
【0028】これに対して、書き込みタスク識別レジス
タ5のWTI2は、先にこれに書き込みを行ったタスク
に対応するタスク制御ブロック9のアドレスが格納され
ている。
【0029】このため、比較回路7はこの違いを検出し
、これによってレジスタ退避・復旧回路8が動作する。
【0030】レジスタ退避・復旧回路8は、先ず、汎用
レジスタ4のR2の内容を、書き込みタスク識別レジス
タ5のWTI2が示すタスク制御ブロック9内の汎用レ
ジスタ退避領域9bのR2の領域に退避する。
【0031】その後、汎用レジスタ4のR2に対する書
き込みを実行させる。
【0032】これと同時に、書き込みタスク識別レジス
タ5のWTI2にカレントタスク識別レジスタ6の内容
を転記する。
【0033】その後、汎用レジスタ4のR2に書き込み
・読み出しを行う場合は、比較回路7は一致を出力する
ため、退避・復旧は行われることなく、通常のレジスタ
アクセス動作を行う。
【0034】次に、タスク制御ブロック10に対応する
実行中のタスクが汎用レジスタ4のR3を読み出そうと
したとする。
【0035】この時、上述したのと同様に、カレントタ
スク識別レジスタ6と書き込みタスク識別レジスタ5の
WTI3の内容が異なるので、汎用レジスタ4のR3の
内容をタスク制御ブロック9内の汎用レジスタ退避領域
9bのR3の領域に退避する。
【0036】読み出しの場合は、更に、カレントタスク
識別レジスタ6が示すタスク制御ブロック10内の汎用
レジスタ退避領域10bのR3の内容を汎用レジスタ4
のR3に転記(復旧)すると共に、書き込みタスク識別
レジスタ5のWTI3にカレントタスク識別レジスタ6
の内容を転記する。
【0037】この後、汎用レジスタ4のR3の読み出し
処理を実行させる。
【0038】以後は、汎用レジスタ4のR3に書き込み
・読み出しを行っても、比較回路7は一致を検出するた
め、通常のレジスタアクセス動作を行う。
【0039】
【発明の効果】以上説明したように、本発明のレジスタ
管理方式にあっては、タスク切り替え時には制御レジス
タ等の必要最小限のレジスタの退避・復旧のみを行い、
汎用レジスタ等については実行中に書き込みもしくは読
み出しの必要が生じた時点で最初の1回だけ退避・復旧
を行えばよいため、タスク切り替え時のオーバーヘッド
が大幅に減少すると共に、不要なレジスタの退避・復旧
をしない分だけトータルの性能向上が図れるという効果
がある。
【0040】本発明は特にタスク切り替えが頻繁に発生
するリアルタイムマルチタスク処理において大きな効果
が期待できる。
【図面の簡単な説明】
【図1】本発明のレジスタ管理方式の一実施例を示す構
成図である。
【符号の説明】
1………………CPU 2………………主記憶 3………………制御レジスタ 4………………汎用レジスタ 5………………書き込みタスク識別レジスタ6…………
……カレントタスク識別レジスタ7………………比較回
路 8………………レジスタ退避・復旧回路9〜11………
タスク制御ブロック 9a〜11a…制御レジスタ退避領域 9b〜11b…汎用レジスタ退避領域

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  CPUの各レジスタに対して最後に書
    き込みを行ったタスクの識別コードを記憶しておく書き
    込みタスク識別レジスタと、現在実行中のタスクの識別
    コードを記憶しておくカレントタスク識別レジスタと、
    現在実行中のタスクからレジスタに対する書き込みもし
    くは読み出しが行われようとする際に該当する書き込み
    タスク識別レジスタの識別コードとカレントタスク識別
    レジスタの識別コードとを比較する比較回路と、比較結
    果が不一致の場合、該当するレジスタの内容を退避領域
    に退避し、読み出しにあっては更に退避領域から該当す
    るレジスタの内容をレジスタに復旧するレジスタ退避・
    復旧回路とを備えたことを特徴とするレジスタ管理方式
  2. 【請求項2】  制御レジスタはタスク切り替え時に無
    条件に退避・復旧し、汎用レジスタのみを実行中の退避
    ・復旧の対象としたことを特徴とする請求項1記載のレ
    ジスタ管理方式。
  3. 【請求項3】  タスクの識別コードとして対応するタ
    スク制御ブロックのアドレスを用いたことを特徴とする
    請求項1または2記載のレジスタ管理方式。
JP4546491A 1991-02-19 1991-02-19 レジスタ管理方式 Pending JPH04264625A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4546491A JPH04264625A (ja) 1991-02-19 1991-02-19 レジスタ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4546491A JPH04264625A (ja) 1991-02-19 1991-02-19 レジスタ管理方式

Publications (1)

Publication Number Publication Date
JPH04264625A true JPH04264625A (ja) 1992-09-21

Family

ID=12720095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4546491A Pending JPH04264625A (ja) 1991-02-19 1991-02-19 レジスタ管理方式

Country Status (1)

Country Link
JP (1) JPH04264625A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191863A (ja) * 1993-12-25 1995-07-28 Nec Corp マルチタスク実行管理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191863A (ja) * 1993-12-25 1995-07-28 Nec Corp マルチタスク実行管理方式

Similar Documents

Publication Publication Date Title
US5812868A (en) Method and apparatus for selecting a register file in a data processing system
JPS63156236A (ja) レジスタ装置
JP3970609B2 (ja) プロセッサシステム
JPH05225076A (ja) 共通情報管理方法及びシステム
JPH04264625A (ja) レジスタ管理方式
US4797816A (en) Virtual memory supported processor having restoration circuit for register recovering
JP2671160B2 (ja) 例外処理方式
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JPH01217635A (ja) レジスタ退避方式
JP2743860B2 (ja) 利用者プログラムのデバッグ処理システム
JPS61141047A (ja) 障害情報の退避方式
JPH01134627A (ja) マイクロプロセサの命令拡張方式
JPS61117635A (ja) 仮想記憶制御方式
JPH11134202A (ja) タスク切替え装置
JPH0259837A (ja) データリカバリ処理方式
JP2501393B2 (ja) 直接メモリアクセス装置
JPH0520101A (ja) 演算レジスタ情報監視方式
JP2574918B2 (ja) 割り込み復帰処理方式
JPH04205144A (ja) マイクロプロセッサ
JPH06266567A (ja) マイクロプロセッサ
JPH02146631A (ja) レジスタ復帰退避方式
JPH03255547A (ja) メモリダンプ出力方式
JPH0535499A (ja) データ処理装置及びデータ処理方法
JPH02123426A (ja) マイクロプロセッサ
JP2000066923A (ja) エミュレータにおける全命令トレースの制御方法