JPH0340139A - マルチタスクシステムにおけるコンテキスト切換方法 - Google Patents

マルチタスクシステムにおけるコンテキスト切換方法

Info

Publication number
JPH0340139A
JPH0340139A JP17617689A JP17617689A JPH0340139A JP H0340139 A JPH0340139 A JP H0340139A JP 17617689 A JP17617689 A JP 17617689A JP 17617689 A JP17617689 A JP 17617689A JP H0340139 A JPH0340139 A JP H0340139A
Authority
JP
Japan
Prior art keywords
context
task
main
group
register 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.)
Pending
Application number
JP17617689A
Other languages
English (en)
Inventor
Akira Shimohara
下原 明
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP17617689A priority Critical patent/JPH0340139A/ja
Publication of JPH0340139A publication Critical patent/JPH0340139A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [概要] 計算機上でのマルチタスクシステムにおけるコンテキス
ト切換方法に関し、 オーバヘッドを減少させることを目的とし、各タスクに
対応してメモリにコンテキスト保存エリアを設け、マル
チタスク実行中においてあるタスクXの処理から他のタ
スクYの処理に移る際に、プロセッサの内部レジスタ群
のコンテキストをコンテキスト保存エリアに退避させて
タスクYの保存コンテキストを該内部レジスタ群にスト
アするマルチタスクシステムにおけるコンテキスト切換
方法において、内部割り込み機能を備えたCPUを用い
、該内部レジスタ群をメインレジスタ群とサブレジスタ
群とに分け、これに対応して該コンテキストをメインコ
ンテキストとサブコンテキストとに分け、該タスクYが
該サブレジスタ群を使用する場合のみ、該タスクYの該
保存メインコンテキストを該メインレジスタにロードす
ることにより該内部割り込みを発生させ、内部割り込み
処理において、前回サブレジスタ群を使用したタスクが
タスクYでないときのみ、サブコンテキストを切り換え
るように構成する。
[産業上の利用分野] 本発明は、計算機上でのマルチタスクシステムにおける
コンテキスト切換方法に関する。
[従来の技術] 計算機上でのマルチタスクシステムにおいては、各タス
クに対応してメモリ上にコンテキスト保存エリアを確保
しておき、あるタスクXの処理から他のタスクYの処理
に移る場合、プロセッサ(CPU、又は、CPU及びコ
プロセッサ)のレジスタの内容(コンテキスト)をタス
クXのコンテキスト保存エリアに退避させ、次に実行し
ようとするタスクYの保存コンテキストをレジスタにロ
ードさせるというコンテキスト切換処理を行なう。
従来のコンテキスト切換方法では、第4図に示す如く、
ステップ10でのタスクへの処理からステップ12での
タスクBの処理に移る際に、中間のステップ11に於い
て、タスクBが全コンテキストを使用するかどうかにか
かわらず、全コンテキストの切り換えを行っていた。
また、他のコンテキスト切換方法では、第5図に示す如
く、プロセッサのレジスタをメインレジスタ群とサブレ
ジスタ群とに分け、これに対応してコンテキストをメイ
ンコンテキストとサブコンテキストとに分け、各タスク
についてザブコンテキストを使用するかどうかを示すフ
ラグFsを備えておき、最初にメインコンテキストの切
り換えのみを行い(ステップ11Δ)、タスクBのフラ
グF5が1であれば(ステップ11B)サブコンテキス
トの切り換えを行い(ステップ11C〉、このフラグF
、が0であればサブコンテキストの切り換えを行わずに
タスクBの処理に移っていた。
[発明が解決しようとする課題] しかし、処理の高速化を図るためにコプロセッサを使用
したにもかかわらず、第4図に示す方法では、タスクB
がコプロセッサを使用しない場合もそのレジスタのコン
テキストを切り換えるのでオーバヘッドが増加する。ま
た、第5図に示す方法では必要な場合のみサブコンテキ
ストの切り換えを行うが、ステップ11Bで7ラグFS
がlであるかどうかを判定しなければならないため、コ
プロセッサを使用しない場合にもステップ数が増え、オ
ーバヘッドが増加する。
近年利用が拡大している機器制御用計算機のリムタイム
O3では、数μsの応答性が要求されており、このオー
バヘッドは無視できない。
本発明の目的は、このような問題点に鑑み、第−バヘッ
ドを減少させることができるコンテキスト切換方法を提
供することにある。
[課題を解決するための手段] CPUは、内部割り込み機能を備え、時分割でマルチタ
スクを実行する。ブロッセッサ(CPU、又は、CPU
及びコプロセッサ)の内部レジスタ群をメインレジスタ
群とサブレジスタ群とに分け、これに対応して、レジス
タの内容であるコンテキストをメインコンテキストとサ
ブコンテキストとに分ける。例えば、CPUの内部し′
ジスタ群をメインレジスタ群とし、コプロセッサの内部
レジスタ群をサブレジスタ群とする。メモリには、各タ
スクに対応してコンテキスト保存エリアを設ける。
第1図は本発明の原理構成を示す。
マルチタスク実行中において、 (1)あるタスクXを処理した後、 (2)メインコンテキストを切り換える。すなわち、プ
ロセッサのメインレジスタ群のコンテキストをタスクX
のコンテキスト保存エリアに退避させてタスクYのコン
テキスト保存エリアの内容をメインレジスタ群にロード
する。
タスクYがサブレジスタ群を使用しない場合には、この
ロードにより内部割込みが発生せず、(3)タスクYの
処理を実行する。
タスクYがサブレジスタ群を使用する場合には、前記ロ
ードにより内部割込みが発生し、(4)必要な場合には
、すなわち、前回サブレジスタ群を使用したタスクがタ
スクYでなければ、(5)サブコンテキストを切り換え
る。すなわち、プロセッサのサブレジスタ群のコンテキ
ストを、前回サブレジスタ群を使用したタスクのサブコ
ンテキスト保存エリアに退避させて、タスクYの保存サ
ブコンテキストをサブレジスタ群にロードする。
[作用] 本発明では、次に実行するタスクYがサブレジスタ群を
使用するときのみ、単にメインコンテキストを切り換え
るだけで内部割込みが発生し、タスクYがサブレジスタ
群を使用しない場合には、サブコンテキストの切り換え
は行なわれない。
したがって、C,PUの内部レジスタ群をメインレジス
タ群とし、コプロセッサの内部レジスタ群をサブレジス
タ群とした場合、コプロセッサをCPUに接続したこと
による不必要な処理が行われず、従来のようにオーバヘ
ッドが増加することがない。
タスクYがサブレジスタ群を使用する場合であっても、
前回サブレジスタ群を使用したタスクがタスクYであれ
ばサブコンテキストの切り換えが行なわれないので、オ
ーバヘッドがさらに減少する。
[実施例] 以下、図面に基づいて本発明の一実施例を説明する。
第2図に示す如く、例えば浮動小数点演算を高速に行う
ために、CPU20には浮動小数点演算コプロセッサ(
FPU)30を接続している。このCPU20は、レジ
スタRO−Rnからなるレジスタ群21を備えている。
CPU20は、レジスタRnの割込みフラグFFを1°
にすることにより、内部割り込みがかかるように構成さ
れている。この内部割り込みが発生すると、割込みフラ
グFlはハードウェアリセットされる。一方、FPU3
0は、レジスタQO〜Qmからなるレジスタ群31を備
えている。
CPU20は、不図示のプログラムに従ってマルチタス
ク処理を行なう。第2図はそのタスクの内、タスクA1
タスクB及びタスクCを模式的に示す。タスクA及びB
はFPU3Gを使用するが、タスクCはFPU30を使
用しないものとする。
タスクAは、メモリ上に、レジスタRO〜Rnに対応す
るARO〜ΔRnからなるメインコンテキスト保存エリ
ア40及びレジスタQO〜Qmに対応するAQO〜AQ
mからなるサブコンテキスト保存エリア41を備えてい
る。同様に、タスクBは、メモリ上に、レジスタRO−
Rnに対応するBRO〜BRnからなるメインコンテキ
ス、ト保存エリア42及びレジスタQO〜Qmに対応す
るBQO〜BQmからなるサブコンテキスト保存エリア
43を備えている。また、タスクCは、メモリ上に、レ
ジスタRO〜Rnに対応するCRO〜CRnからなるメ
インコンテキスト保存エリア44を備えている。メイン
コンテキスト保存エリア40.42及び44のARn、
BRn及びCRnには、レジスタRnの割込みフラグF
Fに対応して、フラグAPI、BFT及びCFIを備え
ている。タスクA及びBはFPU30を利用するので、
フラグAPI及びBFIは1゛に設定されているが、タ
スクCはFPU30を利用しないので、フラグCFIは
0゛に設定されている。
また、メモリ上のTCには実行中のタスクを示すデータ
が格納されており、TFにはFPU30を利用している
タスクを示すデータが格納されている。以下、このデー
タは、タスクA〜Cに対しそれぞれA−Cで表わす。
次に、第3図に基づいてコンテキスト切換手順を説明す
る。
0 第3図はタスクXからタスクYへ移る際のコンテキスト
切り換え手順を示す。以下、タスクの処理順がタスクA
1タスクB、タスクC1タスクBの場合について説明す
る。
(I)X=AXY=Bの場合、 (70)タスクへの処理を行った後、 (71)メインコンテキストの切り換えを行う。
すなわち、TCにB°を設定し、次に、レジスタ群21
のコンテキストをメインコンテキスト保存エリア40に
退避させ、メインコンテキスト保存エリア42のコンテ
キストをレジスタ群21にロードする。フラグBFIは
“1″であるので、このロードにより割込みフラグFl
が1となり、内部割り込みが発生して次のような処理が
行われる。すなわち、 (80)TFとTCの内容を比較する。TFの内容は、
ステップ70の前に行われた内部割込み処理1こより、
lAIとなっている。TCはステップ71でB′にされ
ているので、TFf=TCであり、 1 (81)サブコンテキストの切り換えを行う。すなわち
、レジスタ群31のサブコンテキストをサブコンテキス
ト保存エリア41に退避させ、ザブコンテキスト保存エ
リア43のサブコンテキストをレジスタ群31にロード
する。
(82)TFにTCの内容を設定し、 (83)ARnのフラグAPIを1”にする。
次に元のルーチに戻り、 (72)タスクBの処理を実行する。
(II)X=B、Y=Cの場合 ステップ7■でレジスタ群21のコンテキストをメイン
コンテキスト保存エリア42に退避させ、メインコンテ
キスト保存エリア44のコンテキストをレジスタ群21
にロードする。この場合、フラグCFIは0”であるの
で割込みフラグFIは0”のままであり、内部割り込み
は発生せず、ステップ72へ移りタスクCの処理を実行
する。
(I)X=C,Y=B(7)場合 ステップ71でメインコンテキストを切り換えると、上
記(I)と同様に割込みフラグF1が2 1°となって内部割り込みが発生する。前回のメインコ
ンテキスト切り換えにおいては内部割り込みが発生して
いないので、TFの内容は“Boとなっており、ステッ
プ80でTF−=TCが成立する。したがって、サブコ
ンテキストの切り換えを行わずにステップ72へ戻る。
ここで、タスクCはFPU30を利用しないため、タス
クBはFPU30を引続き利用することになり、サブコ
ンテキストを切り換える必要がない。したがって、不必
要なサブコンテキストの切り換えが行われず、オーバヘ
ッドを減少させることができる。
なお、本発明には他にも種々の変形例が含まれる。
例えば、上記実施例ではCPU20のレジスタ群21を
メインレジスタ群とし、FPU30のレジスタ群31を
サブレジスタ群とした場合を説明したが、FPU30を
用いない場合、レジスタ群2■をメインレジスタ群とサ
ブレジスタ群とに分けて、メインコンテキストとサブコ
ンテキストを3 上記の如く別々に切り換えるようにしてもよい。
また、内部割込みは特権レベルに応じて発生するもので
あってもよいことは勿論である。
[発明の効果] 以上説明した如く、本発明に係るマルチタスクシステム
におけるコンテキスト切換方法では、次に実行するタス
クYがサブレジスタ群を使用するときのみ、単にメイン
コンテキストを切り換えるだけで、サブコンテキストを
切り換えるために内部割込みが発生し、しかも、前回サ
ブレジスタ群を使用したタスクがタスクYであれば内部
割込み処理においてサブコンテキストの切り換えが行な
われず、したがって、オーバヘッドを減少させることが
できるという優れた効果を奏し、高速応答性が要求され
るリアルタイム処理のマルチタスクシステム化に寄与す
るところが大きい。
【図面の簡単な説明】
第1図は本発明の原理構成を示すフローチャー4 トである。 第2図及び第3図は本発明の一実施例に係り、第2図は
マルチタスクシステムにおけるコンテキスト切換説明図
、 第3図はコンテキスト切換手順を示すフローチャートで
ある。 第4図及び第5図は従来のマルチタスクシステムにおけ
るコンテキスト切換手順を示すフローチャートである。 図中、 20はCPU 21.31はレジスタ群 30は浮動小数点演算コプロセッサ(F P U)FI
は割込みフラグ 40.42.44はメインコンテキスト保存エリア

Claims (1)

  1. 【特許請求の範囲】 各タスクに対応してメモリにコンテキスト保存エリアを
    設け、マルチタスク実行中においてあるタスクXの処理
    (1)から他のタスクYの処理(3)に移る際に、プロ
    セッサの内部レジスタ群のコンテキストをコンテキスト
    保存エリアに退避させてタスクYの保存コンテキストを
    該内部レジスタ群にストアするコンテキスト切換方法に
    おいて、 内部割り込み機能を備えたCPUを用い、該内部レジス
    タ群をメインレジスタ群とサブレジスタ群とに分け、こ
    れに対応して該コンテキストをメインコンテキストとサ
    ブコンテキストとに分け、該タスクYが該サブレジスタ
    群を使用する場合のみ、該タスクYの該保存メインコン
    テキストを該メインレジスタにロードすることにより該
    内部割り込みを発生させ、内部割り込み処理において、
    前回サブレジスタ群を使用したタスクがタスクYでない
    ときのみ(4)、サブコンテキストを切り換える(5)
    ことを特徴とする、マルチタスクシステムにおけるコン
    テキスト切換方法。
JP17617689A 1989-07-07 1989-07-07 マルチタスクシステムにおけるコンテキスト切換方法 Pending JPH0340139A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17617689A JPH0340139A (ja) 1989-07-07 1989-07-07 マルチタスクシステムにおけるコンテキスト切換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17617689A JPH0340139A (ja) 1989-07-07 1989-07-07 マルチタスクシステムにおけるコンテキスト切換方法

Publications (1)

Publication Number Publication Date
JPH0340139A true JPH0340139A (ja) 1991-02-20

Family

ID=16008991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17617689A Pending JPH0340139A (ja) 1989-07-07 1989-07-07 マルチタスクシステムにおけるコンテキスト切換方法

Country Status (1)

Country Link
JP (1) JPH0340139A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093260B1 (en) 2000-05-04 2006-08-15 International Business Machines Corporation Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system
KR100766732B1 (ko) * 2000-01-07 2007-10-15 프리스케일 세미컨덕터, 인크. 고속의 낮은 오버헤드의 콘텍스트 전환을 실행하는 디바이스 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766732B1 (ko) * 2000-01-07 2007-10-15 프리스케일 세미컨덕터, 인크. 고속의 낮은 오버헤드의 콘텍스트 전환을 실행하는 디바이스 및 방법
US7093260B1 (en) 2000-05-04 2006-08-15 International Business Machines Corporation Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system

Similar Documents

Publication Publication Date Title
US5161226A (en) Microprocessor inverse processor state usage
US5799188A (en) System and method for managing variable weight thread contexts in a multithreaded computer system
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
JPS58151655A (ja) 情報処理装置
JPH06250853A (ja) プロセス・スケジューリングの管理方法およびシステム
US4851992A (en) Register/saving/restoring system for saving and restoring data in a register of a slave processor
JPH0340139A (ja) マルチタスクシステムにおけるコンテキスト切換方法
US20080313436A1 (en) Handling of extra contexts for shader constants
CN101176061A (zh) 数字信号处理器上多任务的实现
JPH04241032A (ja) システムコール実行装置
JPS59173876A (ja) ベクトル・デ−タ処理装置
JP3184380B2 (ja) 割り込み制御方法及びそれを実現するマルチタスクシステム
JPH02163834A (ja) マルチ・タスク処理方式
JPH0259933A (ja) マイクロプロセッサ
JP2000250762A (ja) マイクロコンピュータ
JPH02173828A (ja) 割込み処理方式
JPH02214938A (ja) データ処理装置
JPS61184644A (ja) 仮想計算機システム制御方式
JPS5999552A (ja) マイクロコンピユ−タ
JPH03182945A (ja) 主記憶内データ転送方式
JPH0495137A (ja) オペレーティングシステムのコンテキスト切替方式
JPH0198023A (ja) 条件付きサブルーチン呼出し方式
JPS61143850A (ja) 処理装置
JPS62217326A (ja) 複数os格納切替可能コンピユ−タ
JPH03110635A (ja) オペレーティングシステムのプロセス制御方式