JPH0546410A - タスク切り換え制御システム - Google Patents

タスク切り換え制御システム

Info

Publication number
JPH0546410A
JPH0546410A JP19947391A JP19947391A JPH0546410A JP H0546410 A JPH0546410 A JP H0546410A JP 19947391 A JP19947391 A JP 19947391A JP 19947391 A JP19947391 A JP 19947391A JP H0546410 A JPH0546410 A JP H0546410A
Authority
JP
Japan
Prior art keywords
register
general
task
information
bitmap
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
JP19947391A
Other languages
English (en)
Inventor
Hitoshi Osabe
均 長部
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP19947391A priority Critical patent/JPH0546410A/ja
Publication of JPH0546410A publication Critical patent/JPH0546410A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 タスク切り換えのオーバーヘッドを減少させ
ることにより、システムの処理速度を向上することにあ
る。 【構成】 タスクから供給される情報により使用される
汎用レジスタ13のレジスタの使用の有無を記憶する汎
用ビットマップ11と、この汎用ビットマップ11の示
す前記汎用レジスタに情報を転送するタスクの当該情報
により使用されるレジスタの使用の有無を示すレジスタ
予約ビットマップと、このレジスタ予約ビットマップに
より前記汎用レジスタに情報を転送するタスクと当該汎
用レジスタのレジスタに情報を供給しているタスクとを
切り換えるとき、前記汎用ビットマップ11のうち使用
の有を示すレジスタを当該汎用レジスタに情報を供給し
ているタスクのタスク制御ブロックに退避し、前記レジ
スタ予約ビットマップの示す当該汎用レジスタに情報を
転送するタスクの使用の有を示すレジスタを当該汎用レ
ジタタに復帰する手段と、を備えたことを特徴とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチタスクを備えた
計算機において、タスク切り換えに伴なうオーバーヘッ
ドの減少を図ることにより、システムの処理速度を向上
するタスク切り換え制御システムに関する。
【0002】
【従来の技術】近年、計算機の多機能化に応答して計算
機の保有するレジスタの個数が増加している。特に、マ
ルチタスクを備えた計算機のタスク切り換え制御システ
ムは、汎用レジスタにタスク1の情報がセットされてい
る当該タスク1からタスク2に切り換える場合、オペレ
ーティングシステム(以下、OSという。)により汎用
レジスタにセットされているタスク1の情報をタスク制
御ブロック内のレジスタ退避領域に退避される。退避
後、OSは、タスク2のタスク制御ブロックの情報を汎
用レジスタに復帰させてタスク2に切り換える。上記汎
用レジスタにセットされているタスク1の情報をタスク
制御ブロック内のレジスタ退避領域に退避、又は、タス
ク制御ブロック内のレジスタ退避領域に退避されている
タスク2の情報を汎用レジスタに復帰する場合は、すべ
てのレジスタにつきレジスタ毎に情報の退避または復帰
を実行する。このため、レジスタの個数の多い場合には
オーバーヘッドを抑えるのが容易ではなかった。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
タスク切り換え制御システムは、タスクを切り換えると
き、汎用レジスタとタスク制御ブロックとの退避または
復帰をレジスタ毎に実行するため、レジスタの個数が多
い場合、オーバーヘッドが増加してシステムの処理速度
の低下を招来するおそれがあった。
【0004】この発明は、このような従来の課題を解決
するためになされたものであり、その目的は、タスク切
り換えのオーバーヘッドを減少させることにより、シス
テムの処理速度を向上して性能の優れたタスク切り換え
制御システムを提供することにある。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、タスクから供給される情報により使用さ
れる汎用レジスタのレジスタの使用の有無を記憶する汎
用ビットマップと、この汎用ビットマップの示す前記汎
用レジスタに情報を転送するタスクの当該情報により使
用されるレジスタの使用の有無を示すレジスタ予約ビッ
トマップと、このレジスタ予約ビットマップにより前記
汎用レジスタに情報を転送するタスクと当該汎用レジス
タのレジスタに情報を供給しているタスクとを切り換え
るとき、前記汎用ビットマップのうち使用の有を示すレ
ジスタを当該汎用レジスタに情報を供給しているタスク
のタスク制御ブロックに退避し、前記レジスタ予約ビッ
トマップの示す当該汎用レジスタに情報を転送するタス
クの使用の有を示すレジスタを当該汎用レジタタに復帰
する手段と、を備えたことを要旨とする。
【0006】
【作用】上述の如く構成すれば、汎用レジスタに情報を
転送するタスクと当該汎用レジスタのレジスタに情報を
供給しているタスクとを切り換えるとき、汎用ビットマ
ップのうち使用の有を示すレジスタの情報を当該汎用レ
ジスタに情報を供給しているタスクのタスク制御ブロッ
クに退避する。退避後、前記汎用ビットマップの示す前
記汎用レジスタに情報を転送するタスクのレジスタ予約
ビットマップの使用の有を示すレジスタの情報を当該汎
用レジスタに復帰するので、タスク切り換えによるオー
バーヘッドの増加を防止できる。
【0007】
【実施例】以下、本発明の一実施例を図面に基づいて説
明する。
【0008】図1は本発明のタスク切り換え制御システ
ムに係る一実施例の制御を示すブロック図である。
【0009】上記タスク切り換え制御システムは、CP
U1がシステムバス3を介して主記憶部5に接続されて
いる構成である。
【0010】上記CPU1は、制御部7,演算部9,汎
用ビットマップ11,汎用レジスタ13および制御レジ
スタ15を備えている。
【0011】制御部7は、CPU1全体を制御するプロ
グラムであるオペレーティングシステム(以下、OSと
いう。)を備えており、演算部9は各種の演算を実行す
るものである。
【0012】汎用ビットマップ11は、汎用レジスタ1
3のレジスタr0 〜r7 の使用状況を示すビットマップ
であり、当該汎用レジスタ13のレジスタの退避または
復帰が必要なとき「1」,レジスタの退避または復帰が
不必要なとき「0」と定義されている。現在、汎用ビッ
トマップ11は、0ビット目,1ビット目および7ビッ
ト目の3ビットが使用中であるため「1」にセットされ
ている。
【0013】汎用レジスタ13は、レジスタr0 〜r7
の8個のレジスタを備えて、汎用ビットマップ11のビ
ット「1」に対応するレジスタにタスクの情報がセット
されている。
【0014】制御レジスタ15は、プログラムカウンタ
等を備えている。
【0015】主記憶部5は、OSにより使用されるコー
ド部17,データ部19およびユーザ用アプリケーショ
ンのユーザタスク部21により構成されている。
【0016】上記コード部71は、レジスタ退避ルーチ
ン23およびレジスタ復帰ルーチン25を備えて、当該
レジスタ退避ルーチン23はタスク切り換え時に走行中
のタスクのレジスタ使用状況および退避の必要なレジス
タの情報を後述するタスク制御ブロック(以下、TCB
という)内のレジスタ退避領域に退避(PUSH)す
る。レジスタ復帰ルーチン25は、タスク切り換え時に
新たに走行するタスクのレジスタ使用状況と復帰が必要
なレジスタの情報をTCBから復帰する。
【0017】データ部19は、後述するユーザタスク1
〜ユーザタスクnに対応して当該ユーザタスク1〜ユー
ザタスクnのレジスタの情報等を記憶するTCB1〜T
CBnを備えている。そして、データ部19はTCB1
〜TCBnに汎用レジスタ13のレジスタにセットされ
る情報の退避が行なわれ、更に、TCB1〜TCBnか
ら復帰が行なわれる。
【0018】ユーザタスク1〜ユーザタスクnは、ユー
ザ用のアプリケーションタスクであり、汎用レジスタ1
3のレジスタr0 〜r7 に情報がセットされることによ
りタスクが実行される。
【0019】図2は、上述したTCB1〜TCBnおよ
びユーザタスク1〜ユーザタスクnのメインルーチン、
サブルーチンを示す図である。
【0020】TCB27は、タスク制御ブロック内レジ
スタ退避領域であり、汎用レジスタ13と同数のレジス
タr0 〜r7 を備えて当該レジスタr0 〜r7 の使用状
況を示すビットマップメモリから構成されるレジスタ予
約ビットマップRSAVEを有する。
【0021】ユーザタスクを構成するメインルーチン2
9は、レジスタr0〜r7 を備えて当該レジスタの使用
を宣言しているレジスタ番号をビットマップにより現わ
したレジスタ予約ビットマップRMAPmainを有する。
このレジスタ予約ビットマップRMAPmainの各ビット
は、レジスタがルーチン内で使用されているとき
「1」,レジスタがルーチン内で使用されていないとき
「0」に定義されている。
【0022】メインルーチン29により呼び出されるサ
ブルーチン(SUB1)31は、レジスタr0 〜r7
備えて当該レジスタの使用を宣言しているレジスタ番号
をビットマップで現わしたレジスタ予約ビットマップR
MAPsub1を有する、このレジスタ予約ビットマップR
MAPsub1の各ビットは、レジスタ予約ビットマップR
MAPmainと同様にレジスタがルーチン内で使用されて
いるとき「1」,レジスタがルーチン内で使用されてい
ないとき「0」に定義されている。
【0023】サブルーチン31により呼び出されるサブ
ルーチン(SUB2)33は、レジスタr0 〜r7 を備
えて当該レジスタの使用を宣言しているレジスタ番号を
ビットマップで現わしたレジスタ予約ビットマップRM
APsub2を有する。このRMAPsub2の各ビットは、レ
ジスタ予約ビットマップRMAPmainと同様にレジスタ
がルーチン内で使用されているとき「1」,レジスタが
ルーチン内で使用されていないとき「0」に定義されて
いる。
【0024】スタック領域35は、ユーザタスク1〜ユ
ーザタスクnのスタック領域である。
【0025】次に本実施例の作用を図3のフローチャー
トを用いて説明する。
【0026】まず、システムが起動するとOSは、汎用
ビットマップ11をユーザタスクのスタック領域35に
退避して、メインルーチンのレジスタ予約ビットマップ
RAMPmainの内容を汎用レジスタ11に転送する。転
送後、サブルーチン(SUB1)を呼び出す(ステップ
100〜120)。
【0027】上記サブルーチンがリターンされるとOS
は、汎用レジスタ11の情報をユーザタスクのスタック
領域35から復帰する(ステップ100〜130)。
【0028】次に、上記ステップ120により呼び出さ
れるサブルーチン(SUB1)を説明する。
【0029】サブルーチンが呼び出されるとOSは、汎
用レジスタ11の情報をユーザタスクのスタック領域3
5に退避して、当該汎用ビットマップ11とサブルーチ
ン31のレジスタ予約ビットマップRMAPsub1との論
理和を汎用ビットマップ11にセーブする(ステップ2
00〜210)。セーブした後にOSは、サブルーチン
(SUB2)を呼び出して(ステップ220)、当該サ
ブルーチンのリターンした後にユーザタスクのスタック
領域35から汎用ビットマップ11を復帰する(ステッ
プ230)。
【0030】更に、ステップ220により呼び出される
サブルーチン(SUB2)を説明する。
【0031】サブルーチンが呼び出されるとOSは、汎
用ビットマップ11の情報をユーザタスクのスタック領
域35に退避して、当該汎用ビットマップ11とレジス
タ予約ビットマップRMAPsub2の内容の論理和を汎用
ビットマップ11にセーブする(ステップ300〜31
0)。
【0032】セーブ後、例えば、ユーザタスク1からユ
ーザタスク2にタスク切り換えが発生するとOSは、レ
ジスタ退避ルーチン23を起動させて、汎用ビットマッ
プ11をタスク制御ブロックのレジスタ退避領域27に
退避させる。退避後、OSは、汎用ビットマップ11の
各ビットが「1」を示す汎用レジスタ13の、例えば、
レジスタr0 ,r1 およびr7 の情報を主記憶部5のデ
ータ部19のTCB1のレジスタ退避領域に転送してリ
ターンする。これにより、ユーザタスク1のレジスタは
TCB1のレジスタの退避領域に退避される(ステップ
400〜410)。
【0033】タスク切り換え後、ユーザタスク2により
再実行されるときOSは、レジスタ復帰ルーチン25を
起動させてユーザタスク2のTCB2のレジスタ退避領
域に退避されている情報を汎用ビットマップ11に復帰
する。この復帰は、当該汎用ビットマップ11のビット
が「1」のレジスタの情報をTCB1のレジスタ退避領
域から汎用レジスタ13に転送してリターンする。これ
により、TCB1の再実行されるユーザタスク2のレジ
スタ退避領域からレジスタの情報がTCB1のレジスタ
退避領域から汎用レジスタ13に転送される(ステップ
500〜510)。
【0034】レジスタ復帰ルーチン25がリターンされ
た後にOSは、汎用ビットマップ11を復帰した後にリ
ターンする(ステップ320)。
【0035】これにより、従来の比べ、汎用レジスタ1
1の全てのレジスタの情報を転送することなく、使用さ
れているレジスタの情報のみ転送するので、レジスタの
個数の多いシステムでもタスク切り換えによるオーバー
ヘッドを減少できる。
【0036】
【発明の効果】以上説明したように、本発明では、レジ
スタの使用の有無を示すビットマップメモリを備えて当
該ビットマップメモリの使用の有を示すレジスタの情報
を退避,復帰するので、タスク切り換えのオーバーヘッ
ドを減少させることにより、システムの処理速度の向上
を実現できる。
【図面の簡単な説明】
【図1】本発明のタスク切り換え制御システムに係る一
実施例の制御を示すブロック図である。
【図2】ユーザタスクのルーチンを示す図である。
【図3】本発明の動作を示すフローチャートである。
【符号の説明】
1 CPU 5 主記憶部 7 制御部 11 汎用ビットマップ 13 汎用レジスタ 21 ユーザタスク 23 レジスタ退避ルーチン 25 レジスタ復帰ルーチン 27 タスク制御ブロック内レジスタ退避領域 29 メインルーチン 31,33 サブルーチン

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 タスクから供給される情報により使用さ
    れる汎用レジスタのレジスタの使用の有無を記憶する汎
    用ビットマップと、 この汎用ビットマップの示す前記汎用レジスタに情報を
    転送するタスクの当該情報により使用されるレジスタの
    使用の有無を示すレジスタ予約ビットマップと、 このレジスタ予約ビットマップにより前記汎用レジスタ
    に情報を転送するタスクと当該汎用レジスタのレジスタ
    に情報を供給しているタスクとを切り換えるとき、前記
    汎用ビットマップのうち使用の有を示すレジスタを当該
    汎用レジスタに情報を供給しているタスクのタスク制御
    ブロックに退避し、前記レジスタ予約ビットマップの示
    す当該汎用レジスタに情報を転送するタスクの使用の有
    を示すレジスタを当該汎用レジタタに復帰する手段と、 を備えたことを特徴とするタスク切り換え制御システ
    ム。
JP19947391A 1991-08-08 1991-08-08 タスク切り換え制御システム Pending JPH0546410A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19947391A JPH0546410A (ja) 1991-08-08 1991-08-08 タスク切り換え制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19947391A JPH0546410A (ja) 1991-08-08 1991-08-08 タスク切り換え制御システム

Publications (1)

Publication Number Publication Date
JPH0546410A true JPH0546410A (ja) 1993-02-26

Family

ID=16408387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19947391A Pending JPH0546410A (ja) 1991-08-08 1991-08-08 タスク切り換え制御システム

Country Status (1)

Country Link
JP (1) JPH0546410A (ja)

Similar Documents

Publication Publication Date Title
US5161226A (en) Microprocessor inverse processor state usage
US5613114A (en) System and method for custom context switching
JP3253303B2 (ja) コンテキスト切り換え装置及び方法
US5812868A (en) Method and apparatus for selecting a register file in a data processing system
JP5295475B2 (ja) データ処理命令を実行するためのデータ処理装置および方法
US20170329629A1 (en) System for selecting a task to be executed according to an output from a task control circuit
JPH0353328A (ja) レジスタ退避回復方法ならびに処理装置
US5440703A (en) System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
US4851992A (en) Register/saving/restoring system for saving and restoring data in a register of a slave processor
JPH02148223A (ja) レジスタ退避復活装置
JPH0546410A (ja) タスク切り換え制御システム
EP1523710A2 (en) Method and apparatus for context switching in computer operating systems
JPH1139171A (ja) マルチタスク処理装置、マルチタスク処理制御方法及び制御プログラム記憶媒体
JPS61173358A (ja) データ処理装置
JP3539984B2 (ja) プロセッサ
JPH01217635A (ja) レジスタ退避方式
US5778207A (en) Assisting operating-system interrupts using application-based processing
JPH086616A (ja) プログラマブルコントローラ
JPH04264625A (ja) レジスタ管理方式
KR100508584B1 (ko) 리스크 프로세서의 인터럽트 처리방법
JPH0554141B2 (ja)
JPH076045A (ja) 多重処理システムにおけるメモリ管理方法
JPH06295265A (ja) 仮想記憶制御における命令中断情報格納制御方法
JPH0229822A (ja) コンピュータシステム
JP2757768B2 (ja) 会話処理におけるデータベース条件検索結果引継ぎ方式