JPS6159539A - サブプロセツサのレジスタ退避/復帰方式 - Google Patents

サブプロセツサのレジスタ退避/復帰方式

Info

Publication number
JPS6159539A
JPS6159539A JP18097184A JP18097184A JPS6159539A JP S6159539 A JPS6159539 A JP S6159539A JP 18097184 A JP18097184 A JP 18097184A JP 18097184 A JP18097184 A JP 18097184A JP S6159539 A JPS6159539 A JP S6159539A
Authority
JP
Japan
Prior art keywords
task
register
contents
subprocessor
switched
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
JP18097184A
Other languages
English (en)
Inventor
Kaoru Hasegawa
薫 長谷川
Hisashi Takahashi
久 高橋
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 JP18097184A priority Critical patent/JPS6159539A/ja
Publication of JPS6159539A publication Critical patent/JPS6159539A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 タスク切り替え時のサブプロセッサのレジスタ退避/復
帰方式に関するものである。
〔従来技術〕
一般に、CPUで実行されるタスクが複数あった場合に
は、それぞれのタスクがタスクととに特定の環境で実行
されるため、タスクを切り替える場合にはタスクの環境
の切り替えが必要となる。
タスクの環境としてCPUにかかわる主なものはレジス
タ類である。シングルチップマイクロコンピュータに含
まれるあるいは、マイクロプロセッサとして実現される
CPU及び少なくとも1つのレジスタを持つCPUの機
能拡張を目的とした、サブプロセッサを構成要素とする
情報処理装置においては、CPUに関するタスクの環境
としてCPUのレジスタだけではなく、CPUの拡張機
能として扱われるサブプロセッサのレジスタも含まれる
。例えば浮動小数点演算を高速に実行するサブプロセッ
サを第1のタスクが使用し中間結果をこのサブプロセッ
サ内のレジスタに格納した直後にタスク切り替えがあっ
たとする。切り替わった第2のタスクの中でこのサブプ
ロセッサを使用すると、第1のタスクが格納した中間結
果がこわされてしまうので、再び第1のタスクに切り替
わっても、その中間結果を使用して浮動小数点演算を続
行することができないという不都合が起きる。
したがって、タスクの環境としてサブプロセッサのレジ
スタが含まれるのである。つまり前記情報処理装置にお
いてタスク切り替えの際には、切り替わる前の第1のタ
スクの環境であるCPUのレジスタの内容を第1のタス
クの退避用エリアへ退避させ、次に切り替わる第2のタ
スクのCPUレジスタの内容をに2のタスクの退避用の
エリアからCPUレジスタに復帰させるCPUレジスタ
の退避/復帰処理と同時に、タスクが切り替わる前のサ
ブプロセッサのレジスタの内容をサブプロセッサレジス
タの退避用エリアへ退避させ、次に切り替わる第2のタ
スクのサブプロセッサのレジスタの内容が退避されてい
るエリアからサブプロセッサのレジスタにその内容を復
帰させるサブプロセッサのレジスタの退避/復帰処理が
行なわれなけれはならない。
従来、この株のレジスタ退避/復帰方式にはタスク切り
替えの際、CPUのレジスタの退避/復帰処理と同時に
サブプロセッサのレジスタの退避/復帰処理を行なう同
時型と、タスク切り替え時にサブプロセッサのレジスタ
の退避/復帰要求を保持する手段を有し、切り替わった
タスクが初めてサブプロセッサを使用するときにサブプ
ロセッサのレジスタの退避/復帰要求があればサブプロ
セッサのレジスタの退避/復帰処理を行なう遅延型とが
あった。
同時型方式では、タスクがサブプロセッサを使用する・
しないにかかわらずタスク切り替えのたびにサブプロセ
ッサのレジスタの退避/復帰処理を行なうことになるの
で、第4図の流れ図のようにタスクD、Eが実行され、
区間a及び区間すでサブプロセッサを使用しないとする
と、41.42のタスク切り替え時のサブプロセッサの
レジスタの退避/復帰処理は無駄になる。従って、タス
クEがサブプロセッサを使用する時点(48)でサブプ
ロセッサのレジスタの退避/復帰処理を行なう遅延型方
式の方が処理として無駄が少ない。
ところで従来の遅延型方式では、タスク切り替え時にサ
ブプロセッサのレジスタ退避/復帰の要求を保持する手
段としてフラグ(以下、更新フラグとする)を用意し、
タスク切り替え時には更新フラグを無条件にセットし、
切り替わったタスクがサブプロセッサを使用する際に前
記更新フラグがセットされている場合のみ、サブプロセ
ッサのレジスタの退避/復帰処理を行なっていた。この
退避/復ツ帯処理は、メモリ内に最も最近にサブプロセ
ッサを使用したタスクの識別子を保持しておき、そのタ
スクのレジスタ退避エリアへサブプロセッサのレジスタ
の内容を退避させ、次に切シ替わるタスクのレジスタ退
避エリアからサブプロセッサのレジスタにその内容を復
帰させるものであるが、この処理と同時に更新フラグの
クリアを行ない、次のタスク切シ替え時までは、サブプ
ロセッサを使用してもサブプロセッサのレジスタ退避/
復帰処理を行なわないようにして、同一タスク内におけ
る処理の無駄を省いていた。ところが、第5図の流れ図
のようにサブプロセッサを使用するタスクFと使用しな
いタスクGがあり、タスクF、タスクG、タスクFの順
に実行される場合、タスクFからタスクGへ切り替わる
時(51)、およびタスクGからタスクFに切り替わる
時(52)ては、無条件に更新フラグがセットされるた
め、サブプロセッサのレジスタの内容がたとえタスクF
自身のものであっても、タスク切り替え(52)後のタ
スクFの中でサブプロセッサを使用する時(5a)本来
、退避/復帰が不要であるにもががわらず、無条件にサ
ブプロセッサのレジスタ退避/復帰処理が行なわれると
いう欠点を有していた。
この従来の遅延型方式を複数のタスクの実行を制御する
オペレーティングシステム(以下、O8とする)のタス
ク切り替え処理に適用した場合の制御の流れ図を第6図
に示す。この場合も第5図と同様に、タスクJがサブプ
ロセッサを使用しないので、タスクエが再びサブプロセ
ッサを使用する時(61)には、レジスタの退避/復帰
が不要であるにもかかわらず、実行されてしまった。
〔発明の目的〕
本発明の目的は、タスク切り替え時において、サブプロ
セッサのレジスタの内容が次に切り替わるタスク自身の
ものである時には、サブプロセッサのレジスタの退避/
復帰処理を行なわない遅延型のサブプロセッサのレジス
タ退避/復帰方式を提供することにある。
〔発明の構成〕
本発明のサブプロセッサのレジスタ退避/復帰方式はシ
ングルチップマイクロコンピュータあるいはマイクロプ
ロセッサで実現されるCPUおよび少なくとも1つ以上
のレジスタを持つ前記CPUの機能拡張を目的としたサ
ブプロセッサを有する情報処理装置において、CPUで
実行されるタスクの識別子を保持するタスクレジスタと
、サブプロセッサを最も最近使用したタスクの識別子を
保持するオーナレジスタと、タスクレジスタとオーナー
レジスタの内容を比較する比較手段とを有し、タスク切
シ替え時に、タスクレジスタの内容を切り替え後のタス
クの識別子に更新し、切り替わったタスクがサブプロセ
ッサを使用する時に、タスクレジスタの内容とオーナー
レジスタの内容を比較手段で比較し、両者が一致してい
れば特別な処理を行なわずにタスクをそのまま実行し、
両者が一致していない場合にはオーナーレジスタの内容
をタスクレジスタの内容で更新し、かつサブプロセッサ
のレジスタ退避/復帰処理を行なうことを特徴とする。
〔実施例〕
以下、本発明の実施例を図面を参照して説明する。
第1図は本発明の一実施例を示すブロック図である。タ
スクレジスタ11は次に切り替わるタスクの識別子を保
持し、オーナーレジスタ12はサブプロセッサのレジス
タの内容を最も最近更新したタスクの識別子を保持する
。比較器18は命令シーケンサ19によって制御され、
タスクレジスタ11とオーナーレジスタ12の各内容を
比較し、内容゛が異なる場合にのみ更新フラグ14をセ
ットする。メモリ15はデータおよび命令を保持し、デ
コーダ18はバス16およびパスインタフェイス17を
経て入力される命令の解釈を行なう。命令シーケンサ1
9はデコーダ18からの信号を解し、命令の流れおよび
動作の制御を行ない、またアンド回路20からのトラッ
プ信号Slを入力するとタスクの実行の流れを中断し、
不図示のトラップ用の処理機構(以下、トラップI・ン
ドラとする)を作動する。
以下、実施例の動作を第2図の概略フローを参照して説
明する。タスクの切り替えの際CPUレジスタの退避命
令が発行され(21)ると、タスクレジスタ11の内容
が次に切シ替わるタスクの識別子に更新される(22)
。次に、CPUレジスタの復帰命令が発行され(2B)
、パスインタフェイス17およびデコーダ18を経て命
令シーケンサ19に入力すると、命令シーケンサ19は
比較器18を作動させ、比較器13はタスクレジスタ1
1とオーナーレジスタ12の各内容の比較を行ない(2
4)、各内容が異なる場合には更新フラグ14をセット
して(25)、また一致している場合には更新フラグ1
4をそのまま圧して、それぞれタスクが切り替えられる
。(26)次に、切り替わったタスクでサブプロセッサ
を使用する命令が発行される(z7)と、デコーダ18
によりサブプロセッサの命令であると解釈され(28)
、命令シーケンサ19に入力する。このとき更新フラグ
14がセットされていれば(27)、アンド回路20は
トラップ信号Slを出力し、このトラップ信号Slが命
令シーケンサ19に入力して、命令シーケンサ19はタ
スクの実行の流れを中断し、トラップノ・ンドラを作動
する。トラップノーンドラではサブプロセツサのレジス
タ退避/復帰処理を行ない、さらにオーナーレジスタ1
2をタスクレジスタ11の内容で更新し、更新フラグ1
4のクリアを行なう。(30)更新フラグ14のクリア
により、以後タスクの切り替わりが再び行なわれないか
ぎり、不必要なサブプロセッサのレジスタの退避/復帰
処理は行なわれない。そしてトラップハンドラてヨル処
理終了後、中断されていたタスクの実行ノ流れが再開さ
れる。
第8図は複数のタスクの実行を制御するオペレーティン
グシステムのタスク切り替え処理に本実施例を適用した
場合の制御の流れ図である。横軸に時間の経過を、縦軸
にタスクA、B、Cとトラップハンドラ、O8を区別し
て示した。タスク人およびBはサブプロセッサを使用す
るタスクであるがタスクCは使用しない。タスクAの実
行途中(31)から示されている。タスクAが終了する
と、タスク切り替え処理のためOSが制御を得て(32
)、タスクレジスタ11の内容をタスクBの識別子に更
新したのち、オーナーレジスタ12の内容であるタスク
人の識別子と比較され、両者が異なるため更新フラグ1
4がセットされる。タスクBに切り替わシ初めてサブプ
ロセッサ命令を使用した時には(:ll)、更新フラグ
14+がセットされているために、ただちにトラップが
起り、トラップハンドラに制御が移る(34)。トラッ
プハンドラではサブプロセッサのレジスタの退避/復帰
処理と更新フラグ14.のクリアが行なわれ、オーナー
レジスタ12の内容はタスクBの識別子に更新される。
トラップハンドラの処理が終了すると、中断されていた
タスクBの実行の流れが再開する。続いてタスクBがタ
スクCと切り替わる際、再び08が制御を得る(85)
。ここではタスクレジスタ11の内容はタスクCの識別
子に更新され、またオーナーレジスタ12の内容がタス
クBの識別子であるので、タスクレジスタ11とオーナ
ーレジスタ12のそれぞれの内容が異なるため更新フラ
グ14は再びセットされる。タスクCて切り替わると、
タスクCは前記のようにサブプロセッサを使用しないタ
スクであるので、たとえ更新フラグ14がセットされて
いてもトラップハンドラに制御が移ることなくタスクC
の実行(86)を終了する。続いて再びタスクBに切り
替わるため、O8が制御を得る(37)。ここではタス
クレジスタ11の内容はタスクBの識別子に更新され、
またオーナーレジスタ12の内容もタスクBの識別子で
あるので、タスクレジスタ11の内容とオーナーレジス
タ12の内容比較の結果、両者が一致しているために更
新フラグ14はクリアされる。従って、タスク切り替え
処理が終了し、タスクBに切り替わって、さらにタスク
Bがサブプロセッサを使用した(88)としても、更新
フラグ14がクリアされているのでトラップハンドラに
制御は移らない。
これは、最も最近にサブプロセッサのレジスタを操作し
たのがタスクB自身であるため、不必要なサブプロセッ
サのレジスタ退役/復帰処理を行なわないことを示して
いる。
なお、サブプロセッサの種類としては、CPUと並行し
て処理を実行するコプロセッサ、CPUより命令を受は
同期して処理を実行するスレーブプロセッサ等が考えら
れる。
〔発明の効果〕
以上説明したように本発明によれば、切り替わるタスク
が最も最近サブプロセッサのレジスタの退避/復帰処理
を行なったタスク自身である場合には、サブプロセッサ
のレジスタの退避/復帰処恩を行なわなくて済むので、
無駄な処理を省いて情報処理装置の高速化を達成するこ
とができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すブロック図、第2図は
、第1図の実施例の動作の概略フロー、第8図は、第1
図の実施例をO8のタスク切シ替え処理に適用した場合
の制御の流れ図、第4図。 第5図は従来技術を説明するための流れ図、第6図は、
従来の遅延型方式をO8のタスク切り替え処理に適用し
た場合の制御の流れ図である。 11・・・タスクレジスタ 12・・・オーナーレジスタ 13・・・比較器 14・・・更新フラグ 15・・・メモリ 16・・・バ ス 17・・・パスインタフェイス 18・・・デコーダ 19・・・命令シーケンサ 20・・・アンド回路 Sl・・・トラップ信号、。

Claims (1)

  1. 【特許請求の範囲】 CPUおよび1つ以上のレジスタを持つサブプロセッサ
    を有する情報処理装置において、 前記CPUで実行されるタスクの識別子を保持する第1
    のレジスタと、前記サブプロセッサを最も最近に使用し
    たタスクの識別子を保持する第2のレジスタと、前記第
    1のレジスタの内容と前記第2のレジスタの内容を比較
    する比較手段とを備え、 タスク切り替え時に、前記第1のレジスタの内容を次の
    タスクの識別子に更新し、切り替わつたタスクが前記サ
    ブプロセッサを使用する時に、前記第1のレジスタの内
    容と前記第2のレジスタの内容を前記比較手段で比較し
    、両者が一致している場合にはタスクをそのまま実行し
    、両者が一致していない場合には前記第2のレジスタの
    内容を前記第1のレジスタの内容で更新し、かつタスク
    切り替え前の前記サブプロセッサのレジスタの内容を第
    1の退避用エリアへ退避させ、第2の退避用エリアから
    次のタスクの前記サブプロセッサのレジスタの内容を該
    レジスタに復帰させることを特徴とするサブプロセッサ
    のレジスタ退避/復帰方式。
JP18097184A 1984-08-30 1984-08-30 サブプロセツサのレジスタ退避/復帰方式 Pending JPS6159539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18097184A JPS6159539A (ja) 1984-08-30 1984-08-30 サブプロセツサのレジスタ退避/復帰方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18097184A JPS6159539A (ja) 1984-08-30 1984-08-30 サブプロセツサのレジスタ退避/復帰方式

Publications (1)

Publication Number Publication Date
JPS6159539A true JPS6159539A (ja) 1986-03-27

Family

ID=16092476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18097184A Pending JPS6159539A (ja) 1984-08-30 1984-08-30 サブプロセツサのレジスタ退避/復帰方式

Country Status (1)

Country Link
JP (1) JPS6159539A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62166434A (ja) * 1986-01-17 1987-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション マルチプログラミング・モードで動作するデータ処理システム
JPS62221732A (ja) * 1986-03-24 1987-09-29 Nec Corp 情報処理装置
JP2010134496A (ja) * 2008-12-02 2010-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
JP2014078072A (ja) * 2012-10-09 2014-05-01 Canon Inc 情報処理装置、情報処理方法およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62166434A (ja) * 1986-01-17 1987-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション マルチプログラミング・モードで動作するデータ処理システム
JPS62221732A (ja) * 1986-03-24 1987-09-29 Nec Corp 情報処理装置
JPH0521251B2 (ja) * 1986-03-24 1993-03-23 Nippon Electric Co
JP2010134496A (ja) * 2008-12-02 2010-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
JP2014078072A (ja) * 2012-10-09 2014-05-01 Canon Inc 情報処理装置、情報処理方法およびプログラム

Similar Documents

Publication Publication Date Title
US4851992A (en) Register/saving/restoring system for saving and restoring data in a register of a slave processor
JPH02156334A (ja) 情報処理装置
JPS6159539A (ja) サブプロセツサのレジスタ退避/復帰方式
JPH04284548A (ja) データベース排他制御方式
JPH0414376B2 (ja)
JPS61201340A (ja) レジスタ退避/復帰方式
JPH0451329A (ja) コンテキスト切替装置
JP2553526B2 (ja) マルチタスク処理装置
JPH05165652A (ja) タスク切替え制御方法
JPS62125437A (ja) 付加プロセツサの制御方法
JPH04155532A (ja) タスク切替方式
JPS61166631A (ja) マイクロプログラム制御処理方法
JPH03182945A (ja) 主記憶内データ転送方式
JPH03126134A (ja) Cpuのタスク切替方式
JPH0340139A (ja) マルチタスクシステムにおけるコンテキスト切換方法
JPH03116335A (ja) 非特権cpuから特権cpuヘの乗り移り方式
JPH03179532A (ja) コンピュータ装置
JPH0115094B2 (ja)
JPH10289113A (ja) 計算機のレジスタコンテキストの保存/復元方式
JPH01201730A (ja) 情報処理装置
JPS6349941A (ja) 演算処理装置
JPH03172937A (ja) 非同期事象処理ハンドリング装置
JPS61114342A (ja) デ−タ処理装置の制御装置
JPH02236656A (ja) マルチプロセッサシステム
JPH05143370A (ja) マルチタスク計算装置