JPH0521251B2 - - Google Patents
Info
- Publication number
- JPH0521251B2 JPH0521251B2 JP61066508A JP6650886A JPH0521251B2 JP H0521251 B2 JPH0521251 B2 JP H0521251B2 JP 61066508 A JP61066508 A JP 61066508A JP 6650886 A JP6650886 A JP 6650886A JP H0521251 B2 JPH0521251 B2 JP H0521251B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- slave processor
- slave
- processor
- cpu
- 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.)
- Expired - Lifetime
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、情報処理装置に関し、特にマイクロ
プロセツサに接続されたスレーブプロセツサのタ
スク切り換えの際にスレーブプロセツサの内容を
主記憶装置との間で退避/復帰する情報処理装置
に関する。
プロセツサに接続されたスレーブプロセツサのタ
スク切り換えの際にスレーブプロセツサの内容を
主記憶装置との間で退避/復帰する情報処理装置
に関する。
従来の技術
マイクロ・プロセツサを高機能化する場合、総
ての機能を1チツプに集積できないためマイク
ロ・プロセツサを複数のチツプで構成することが
多い。
ての機能を1チツプに集積できないためマイク
ロ・プロセツサを複数のチツプで構成することが
多い。
各チツプのピン数が限られるため中央処理装置
(以下、CPUという)を搭載したチツプと少なく
とも一つ以上のスレーブ・プロセツサチツプとを
ローカル・バスで接続し、マイクロ・プロセツサ
システムを構成する方法がよく用いられる。
(以下、CPUという)を搭載したチツプと少なく
とも一つ以上のスレーブ・プロセツサチツプとを
ローカル・バスで接続し、マイクロ・プロセツサ
システムを構成する方法がよく用いられる。
CPUは単体でもマイクロ・プロセツサとして
の機能を持つが、スレーブ・プロセツサを接続
し、CPUの拡張命令をスレーブ・プロセツサに
実行させることにより、マイクロ・プロセツサの
機能を容易に拡張でき、かつ高速で処理できる。
の機能を持つが、スレーブ・プロセツサを接続
し、CPUの拡張命令をスレーブ・プロセツサに
実行させることにより、マイクロ・プロセツサの
機能を容易に拡張でき、かつ高速で処理できる。
従来のマイクロ・プロセツサを第4図に示す。
109はCPU、101〜108は8個のスレ
ーブ・プロセツサ、140は主記憶装置を示し、
それぞれは、ローカル・バス130によつて接続
され、全体でマイクロ・プロセツサ100を構成
している。
ーブ・プロセツサ、140は主記憶装置を示し、
それぞれは、ローカル・バス130によつて接続
され、全体でマイクロ・プロセツサ100を構成
している。
CPU109は内部の演算装置に少なくとも一
つ以上のレジスタ119を含み、スレーブ・プロ
セツサ101〜108はそれぞれ内部の演算装置
に少なくとも一つ以上のレジスタ111〜118
を含む。
つ以上のレジスタ119を含み、スレーブ・プロ
セツサ101〜108はそれぞれ内部の演算装置
に少なくとも一つ以上のレジスタ111〜118
を含む。
マイクロ・プロセツサ100の命令セツトは、
CPU109で実行される命令セツトと、スレー
ブ・プロセツサ111〜118で実行される命令
セツトの9組に分けられる。
CPU109で実行される命令セツトと、スレー
ブ・プロセツサ111〜118で実行される命令
セツトの9組に分けられる。
CPU109が実行する命令セツトはCPU10
9内のレジスタ119を使用し、スレーブ・プロ
セツサ101〜108内のレジスタ111〜11
8を使用しない。
9内のレジスタ119を使用し、スレーブ・プロ
セツサ101〜108内のレジスタ111〜11
8を使用しない。
これに対し、スレーブ・プロセツサ101が実
行する命令セツトでは、スレーブ・プロセツサ1
01内のレジスタ111及びCPU109内のレ
ジスタ119を用いて実行し、他のスレーブ・プ
ロセツサ102〜108内のレジスタ112〜1
18は使用しない。他のスレーブ・プロセツサ1
02〜108についても同様である。
行する命令セツトでは、スレーブ・プロセツサ1
01内のレジスタ111及びCPU109内のレ
ジスタ119を用いて実行し、他のスレーブ・プ
ロセツサ102〜108内のレジスタ112〜1
18は使用しない。他のスレーブ・プロセツサ1
02〜108についても同様である。
ところで、一般にCPUで実行されるタスクが
複数ある場合、それぞれのタスク毎に独立な環境
で実行されるため、タスク切換えの際にはタスク
の環境の切換えが必要となる。
複数ある場合、それぞれのタスク毎に独立な環境
で実行されるため、タスク切換えの際にはタスク
の環境の切換えが必要となる。
タスク環境の主なものはマイクロ・プロセツサ
に関わるレジスタ類である。第4図に示した従来
のマイクロ・プロセツサ100ではレジスタ11
9及び111〜118がタスク環境となり得る。
タスク環境の切換えは、切換わる前のタスクの環
境であるレジスタの内容をタスク毎に主記憶14
0上に用意したレジスタ退避用エリアに退避し、
次に切換わるタスクのレジスタ退避用エリアから
既に退避しておいたレジスタ内容をレジスタ11
9及び111〜118へ復帰させる。
に関わるレジスタ類である。第4図に示した従来
のマイクロ・プロセツサ100ではレジスタ11
9及び111〜118がタスク環境となり得る。
タスク環境の切換えは、切換わる前のタスクの環
境であるレジスタの内容をタスク毎に主記憶14
0上に用意したレジスタ退避用エリアに退避し、
次に切換わるタスクのレジスタ退避用エリアから
既に退避しておいたレジスタ内容をレジスタ11
9及び111〜118へ復帰させる。
第5図にタスクA、タスクB、及びタスクCが
非同期に切換わる場合を示す。タスクA,B,C
のプログラムは何れもCPU109用命令及びス
レーブ・プロセツサ111〜118用命令を含
む。
非同期に切換わる場合を示す。タスクA,B,C
のプログラムは何れもCPU109用命令及びス
レーブ・プロセツサ111〜118用命令を含
む。
従つてタスク切換え201,202,203の
時点ではレジスタ111〜118についてレジス
タ退避/復帰処理を行なう。
時点ではレジスタ111〜118についてレジス
タ退避/復帰処理を行なう。
発明が解決しようとする問題点
上述した従来の、CPUと少なくとも一つ以上
のスレーブ・プロセツサとで構成されるマイク
ロ・プロセツサでは、各タスクのプログラム中に
スレーブ・プロセツサ用命令を含んでいても、タ
スク切換えから次のタスク切換えまでの区間でス
レーブ・プロセツサを使用しない場合にも、タス
ク切換え時に使用しないスレーブ・プロセツサの
レジスタまで退避/復帰処理を行なつてしまうと
いう欠点があつた。この欠点は、CPUに接続さ
れるスレーブ・プロセツサの個数が多いほどスレ
ーブ・プロセツサに含まれるレジスタの量が大き
いほど顕著となり、タスク切換えに必要な時間は
増加する。
のスレーブ・プロセツサとで構成されるマイク
ロ・プロセツサでは、各タスクのプログラム中に
スレーブ・プロセツサ用命令を含んでいても、タ
スク切換えから次のタスク切換えまでの区間でス
レーブ・プロセツサを使用しない場合にも、タス
ク切換え時に使用しないスレーブ・プロセツサの
レジスタまで退避/復帰処理を行なつてしまうと
いう欠点があつた。この欠点は、CPUに接続さ
れるスレーブ・プロセツサの個数が多いほどスレ
ーブ・プロセツサに含まれるレジスタの量が大き
いほど顕著となり、タスク切換えに必要な時間は
増加する。
第5図の例で、無駄なレジスタ退避/復帰処理
を示す。
を示す。
(1) 区間212では、スレーブ・プロセツサを1
01しか使用していないので必要なレジスタ退
避/復帰処理はスレーブ・プロセツサ101に
対してだけ行えばよい。しかし、タスク切換え
201でスレーブ・プロセツサ102〜108
のレジスタも退避/復帰処理されてしまう。
01しか使用していないので必要なレジスタ退
避/復帰処理はスレーブ・プロセツサ101に
対してだけ行えばよい。しかし、タスク切換え
201でスレーブ・プロセツサ102〜108
のレジスタも退避/復帰処理されてしまう。
(2) 区間213ではスレーブ・プロセツサ101
〜108を使用していない。しかし、タスク切
換え202と203でスレーブ・プロセツサ1
01〜108のレジスタも退避/復帰処理され
てしまう。
〜108を使用していない。しかし、タスク切
換え202と203でスレーブ・プロセツサ1
01〜108のレジスタも退避/復帰処理され
てしまう。
(3) 区間212及び区間213ではスレーブ・プ
ロセツサ102は使用されないが、タスク切換
え201,202,203ではスレーブ・プロ
セツサ102のレジスタについて不必要な退
避/復帰処理を行なつている。
ロセツサ102は使用されないが、タスク切換
え201,202,203ではスレーブ・プロ
セツサ102のレジスタについて不必要な退
避/復帰処理を行なつている。
以上の無駄なレジスタ退避/復帰処理は、タス
ク切換え時に次のタスクが使用する可能性のある
全スレーブ・プロセツサについてレジスタ退避/
復帰処理を行なつてしまうことに起因する。
ク切換え時に次のタスクが使用する可能性のある
全スレーブ・プロセツサについてレジスタ退避/
復帰処理を行なつてしまうことに起因する。
本発明は、上記に説明した従来技術の問題点を
解決し、より詳細には、無駄なレジスタ退避/復
帰処理を回避したレジスタの退避/復帰を行う情
報処理装置を提供することを目的とする。
解決し、より詳細には、無駄なレジスタ退避/復
帰処理を回避したレジスタの退避/復帰を行う情
報処理装置を提供することを目的とする。
問題点を解決するための手段
マスタプロセツサと、前記マスタプロセツサに
接続された複数個のスレーブプロセツサと、前記
マスタプロセツサと前記スレーブプロセツサに
各々接続され退避領域を持つ主記憶装置と、前記
マスタプロセツサが個別に前記復数個のスレーブ
プロセツサのうちから所定の前記スレーブプロセ
ツサに対してコマンドを供給する手段とを含む情
報処理装置であつて、前記スレーブプロセツサは
少なくとも一つのレジスタと、実行しているタス
クの識別子を格納する記憶手段と、前記記憶手段
の内容と前記マスタプロセツサから指示された次
に実行すべきタスクの識別子との一致/不一致を
判定する判定手段と、前記マスタプロセツサが当
該スレーブプロセツサに対しコマンドの転送を行
う際に前記判定手段が不一致を示した場合は前記
スレーブプロセツサの内容を前記主記憶装置の退
避領域に退避して次のコマンドを実行させる手段
と、前記判定手段が一致を示した場合は前記スレ
ーブプロセツサが実行中のタスクを継続して実行
させる手段を有する。
接続された複数個のスレーブプロセツサと、前記
マスタプロセツサと前記スレーブプロセツサに
各々接続され退避領域を持つ主記憶装置と、前記
マスタプロセツサが個別に前記復数個のスレーブ
プロセツサのうちから所定の前記スレーブプロセ
ツサに対してコマンドを供給する手段とを含む情
報処理装置であつて、前記スレーブプロセツサは
少なくとも一つのレジスタと、実行しているタス
クの識別子を格納する記憶手段と、前記記憶手段
の内容と前記マスタプロセツサから指示された次
に実行すべきタスクの識別子との一致/不一致を
判定する判定手段と、前記マスタプロセツサが当
該スレーブプロセツサに対しコマンドの転送を行
う際に前記判定手段が不一致を示した場合は前記
スレーブプロセツサの内容を前記主記憶装置の退
避領域に退避して次のコマンドを実行させる手段
と、前記判定手段が一致を示した場合は前記スレ
ーブプロセツサが実行中のタスクを継続して実行
させる手段を有する。
作 用
以上説明したように本発明は、CPUと少なく
とも一つ以上のスレーブ・プロセツサを構成要素
とする情報処理装置において、CPUがタスクを
切換える際にスレーブ・プロセツサのレジスタ退
避/復帰処理を行なわず、スレーブ・プロセツサ
を最も最近使用したタスクの識別子と、CPUが
実行中のタスクの識別子とを比較し、これらが異
なるときにのみ、スレーブ・プロセツサのレジス
タ退避/復帰処理を行うことによつて、無駄なス
レーブ・プロセツサのレジスタ退避/復帰処理を
回避する。
とも一つ以上のスレーブ・プロセツサを構成要素
とする情報処理装置において、CPUがタスクを
切換える際にスレーブ・プロセツサのレジスタ退
避/復帰処理を行なわず、スレーブ・プロセツサ
を最も最近使用したタスクの識別子と、CPUが
実行中のタスクの識別子とを比較し、これらが異
なるときにのみ、スレーブ・プロセツサのレジス
タ退避/復帰処理を行うことによつて、無駄なス
レーブ・プロセツサのレジスタ退避/復帰処理を
回避する。
従つて、本発明のレジスタ退避/復帰方式を行
う情報処理装置は高速の処理が可能となる。
う情報処理装置は高速の処理が可能となる。
実施例
次に、本発明について図面を参照して説明す
る。
る。
第1図は本発明の一実施例に従う情報処理装置
を示す。第1図のマイクロ・プロセツサは、
CPU109、主記憶140、及び少なくとも一
つ以上のスレーブ・プロセツサ101(第1図に
は他のスレーブ・プロセツサの図示を省略した)
をローカル・バス130に接続し構成される。
を示す。第1図のマイクロ・プロセツサは、
CPU109、主記憶140、及び少なくとも一
つ以上のスレーブ・プロセツサ101(第1図に
は他のスレーブ・プロセツサの図示を省略した)
をローカル・バス130に接続し構成される。
CPU109は演算装置129に少なくとも一
つ以上のレジスタ119を含み、スレーブ・プロ
セツサ101は演算装置121に少なくとも一つ
以上のレジスタ111を含む。
つ以上のレジスタ119を含み、スレーブ・プロ
セツサ101は演算装置121に少なくとも一つ
以上のレジスタ111を含む。
CPU109内のタスク・レジスタ139は
CPU109が実行中のタスクの識別子を保持し、
スレーブ・プロセツサ101内のオーナー・レジ
スタ151はスレーブ・プロセツサ101を最後
に使用したタスクの識別子を保持する。一方、ス
レーブ・プロセツサ101は、タスク・レジスタ
139の内容がコピーされるチエツク・ポート1
61と、オーナー・レジスタ151の内容とチエ
ツク・ポート161の内容の一致を検出する比較
器171とを備える。
CPU109が実行中のタスクの識別子を保持し、
スレーブ・プロセツサ101内のオーナー・レジ
スタ151はスレーブ・プロセツサ101を最後
に使用したタスクの識別子を保持する。一方、ス
レーブ・プロセツサ101は、タスク・レジスタ
139の内容がコピーされるチエツク・ポート1
61と、オーナー・レジスタ151の内容とチエ
ツク・ポート161の内容の一致を検出する比較
器171とを備える。
コマンド・ポート131はローカルバス130
よりスレーブ・プロセツサ101が実行する命令
を受け、これを指定し、トリガ・ポート141は
コマンド・ポート131で指定される命令を実行
開始させる。
よりスレーブ・プロセツサ101が実行する命令
を受け、これを指定し、トリガ・ポート141は
コマンド・ポート131で指定される命令を実行
開始させる。
第1図には図示を省略したが、スレーブ・プロ
セツサ102〜108も、それぞれ、レジスタ1
12〜118、コマンド・ポート132〜13
8、トリガ・ポート142〜148、オーナー・
レジスタ152〜158、チエツク・ポート16
2〜168、比較器172〜178を備える。
セツサ102〜108も、それぞれ、レジスタ1
12〜118、コマンド・ポート132〜13
8、トリガ・ポート142〜148、オーナー・
レジスタ152〜158、チエツク・ポート16
2〜168、比較器172〜178を備える。
次に第2図a,b,cを用いて、本発明のレジ
スタの退避/復帰を行う情報処理装置を説明す
る。
スタの退避/復帰を行う情報処理装置を説明す
る。
第2図aはCPU109がタスク切換えを行な
うときの、CPU109とスレーブ・プロセツサ
101〜108の動作を示している。CPU10
9はCPUのレジスタ退避命令301をデコードする
と、レジスタ119の内容をローカル・バス13
0を通して主記憶140のレジスタ退避エリアに
退避する(302)。
うときの、CPU109とスレーブ・プロセツサ
101〜108の動作を示している。CPU10
9はCPUのレジスタ退避命令301をデコードする
と、レジスタ119の内容をローカル・バス13
0を通して主記憶140のレジスタ退避エリアに
退避する(302)。
次にCPU109はCPUのレジスタ復帰命令303
をデコードすると、命令303で指定された新しい
タスクの識別子でタスク・レジスタ139を更新
し(304)、更新したタスク・レジスタ139の内
容をローカル・バス130を通して全スレーブ・
プロセツサ101〜108のチエツク・ポート1
61〜168に同時に書込み、主記憶140の新
しいタスクのレジスタ退避エリアからレジスタ内
容をローカル・バス130を通してレジスタ11
9へ復帰する(306)。
をデコードすると、命令303で指定された新しい
タスクの識別子でタスク・レジスタ139を更新
し(304)、更新したタスク・レジスタ139の内
容をローカル・バス130を通して全スレーブ・
プロセツサ101〜108のチエツク・ポート1
61〜168に同時に書込み、主記憶140の新
しいタスクのレジスタ退避エリアからレジスタ内
容をローカル・バス130を通してレジスタ11
9へ復帰する(306)。
スレーブ・プロセツサ101は、チエツク・ポ
ート161に書込みが行なわれると(307)、比較
器171を用いてチエツク・ポート161の値と
オーナー・レジスタ151の値を比較し(308)、
等しくなければトリガ・ポート141に「トラツ
プ」(CPU109が実行中のタスクとスレーブ・
プロセツサ109を最後に使用したタスクが異な
ることを示す値)を、等しければ「OK」を書込
む(309、310)。以上のスレーブ・プロセツサ1
01上の処理は、同時にスレーブ・プロセツサ1
02〜108上でも実行される。以上の処理によ
り、CPU109のタスク環境は新しいタスクに
切換わつたが、スレーブ・プロセツサ101〜1
08のタスク環境は切換わつていない。
ート161に書込みが行なわれると(307)、比較
器171を用いてチエツク・ポート161の値と
オーナー・レジスタ151の値を比較し(308)、
等しくなければトリガ・ポート141に「トラツ
プ」(CPU109が実行中のタスクとスレーブ・
プロセツサ109を最後に使用したタスクが異な
ることを示す値)を、等しければ「OK」を書込
む(309、310)。以上のスレーブ・プロセツサ1
01上の処理は、同時にスレーブ・プロセツサ1
02〜108上でも実行される。以上の処理によ
り、CPU109のタスク環境は新しいタスクに
切換わつたが、スレーブ・プロセツサ101〜1
08のタスク環境は切換わつていない。
第2図bはスレーブ・プロセツサ101用命令
をCPU109とスレーブ・プロセツサ101に
より実行される様子を示す。CPU109はスレ
ーブ・プロセツサ101用命令をデコードする
(320)と、その命令コードをコマンド・ポート1
31へローカル・バス130を通して書込む
(321)。スレーブ・プロセツサ101はコマン
ド・ポート131に書込まれた(322)命令をデ
コードするが(323)、実行はしない。次にCPU
109はトリガ・ポート141の値を読み出し
(324)、その値が「OK」ならばスレーブ・プロ
セツサ101のためのサポートを続け(325)、値
が「トラツプ」ならばスレーブ・プロセツサ用命
令を中止してトラツプ・ハンドラに制御を移す
(326)。
をCPU109とスレーブ・プロセツサ101に
より実行される様子を示す。CPU109はスレ
ーブ・プロセツサ101用命令をデコードする
(320)と、その命令コードをコマンド・ポート1
31へローカル・バス130を通して書込む
(321)。スレーブ・プロセツサ101はコマン
ド・ポート131に書込まれた(322)命令をデ
コードするが(323)、実行はしない。次にCPU
109はトリガ・ポート141の値を読み出し
(324)、その値が「OK」ならばスレーブ・プロ
セツサ101のためのサポートを続け(325)、値
が「トラツプ」ならばスレーブ・プロセツサ用命
令を中止してトラツプ・ハンドラに制御を移す
(326)。
一方、トリガ・ポート141をCPU109に
読出された(327)スレーブ・プロセツサ101
は、読出されたトリガ・ポート141の値が
「OK」ならば既にデコードしておいた(323)命
令を実行し(328)、値が「トラツプ」ならばトリ
ガ・ポートの値を「OK」として命令の実行を中
止する(329)。
読出された(327)スレーブ・プロセツサ101
は、読出されたトリガ・ポート141の値が
「OK」ならば既にデコードしておいた(323)命
令を実行し(328)、値が「トラツプ」ならばトリ
ガ・ポートの値を「OK」として命令の実行を中
止する(329)。
要約すると、スレーブ・プロセツサ用命令は、
CPUで実行中のタスクとスレーブ・プロセツサ
を最後に使用したタスクが同一(トリガ・ポート
=「OK」)であれば実行可であり、同一でなけれ
ば(トリガ・ポート=「トラツプ」)スレーブ・プ
ロセツサのタスク環境の切換えが必要である。
CPUで実行中のタスクとスレーブ・プロセツサ
を最後に使用したタスクが同一(トリガ・ポート
=「OK」)であれば実行可であり、同一でなけれ
ば(トリガ・ポート=「トラツプ」)スレーブ・プ
ロセツサのタスク環境の切換えが必要である。
次に第2図cによりスレーブ・プロセツサ10
1のタスク環境切換えの動作を示す。トラツプ・
ハンドラに制御を移した(326)CPU109は、
まずタスク・レジスタ139の内容であるCPU
109が実行中のタスク(スレーブ・プロセツサ
101にとつては新しいCPUタスク)の識別子
を、スレーブ・プロセツサ101のオーナー・レ
ジスタ151へローカル・バス130を通して転
送する(340、341)。
1のタスク環境切換えの動作を示す。トラツプ・
ハンドラに制御を移した(326)CPU109は、
まずタスク・レジスタ139の内容であるCPU
109が実行中のタスク(スレーブ・プロセツサ
101にとつては新しいCPUタスク)の識別子
を、スレーブ・プロセツサ101のオーナー・レ
ジスタ151へローカル・バス130を通して転
送する(340、341)。
次にCPU109はスレーブ・プロセツサ10
1にレジスタ退避命令を実行させ、レジスタ11
1の内容を主記憶140のレジスタ退避エリアへ
転送する(342、345)。更にCPU109はスレー
ブ・プロセツサ101にレジスタ復帰命令を実行
させ、新しいタスクのレジスタ退避エリアからレ
ジスタ111の内容を復帰する(344、345)。
1にレジスタ退避命令を実行させ、レジスタ11
1の内容を主記憶140のレジスタ退避エリアへ
転送する(342、345)。更にCPU109はスレー
ブ・プロセツサ101にレジスタ復帰命令を実行
させ、新しいタスクのレジスタ退避エリアからレ
ジスタ111の内容を復帰する(344、345)。
以上スレーブ・プロセツサ101のレジスタ1
11の退避/復帰処理を終了したCPU109と
スレーブ・プロセツサ101は、トラツプが発生
したスレーブ・プロセツサ101用命令(320)
を再実行する(350)。
11の退避/復帰処理を終了したCPU109と
スレーブ・プロセツサ101は、トラツプが発生
したスレーブ・プロセツサ101用命令(320)
を再実行する(350)。
第3図に、第5図と同一のタスク切換えにおけ
るCPU109及びスレーブ・プロセツサ101
〜108の動作を示す。初期設定として、スレー
ブ・プロセツサ101〜108はタスクDの環境
にあり、CPU109はタスクAの環境にあるの
で、各トリガ・ポート141〜148の値は「ト
ラツプ」である。
るCPU109及びスレーブ・プロセツサ101
〜108の動作を示す。初期設定として、スレー
ブ・プロセツサ101〜108はタスクDの環境
にあり、CPU109はタスクAの環境にあるの
で、各トリガ・ポート141〜148の値は「ト
ラツプ」である。
スレーブ・プロセツサ102用命令231をCPU
が実行すると、トリガ・ポート142の値が「ト
ラツプ」であるためトラツプ・ハンドラに制御が
移り(221)、スレーブ・プロセツサ102のタス
ク環境はCPU109と同じタスクAに切換わり、
オーナー・レジスタ152の値はタスクAの識別
子となり、トリガ・ポート142の値は「OK」
となり、その後中断していたスレーブ・プロセツ
サ102用命令231を再実行する。
が実行すると、トリガ・ポート142の値が「ト
ラツプ」であるためトラツプ・ハンドラに制御が
移り(221)、スレーブ・プロセツサ102のタス
ク環境はCPU109と同じタスクAに切換わり、
オーナー・レジスタ152の値はタスクAの識別
子となり、トリガ・ポート142の値は「OK」
となり、その後中断していたスレーブ・プロセツ
サ102用命令231を再実行する。
CPU109のタスク切換え201では、切換
え前後のスレーブ・プロセツサ102のタスク環
境はタスクAであり、切換え直後のCPU109
のタスク環境はタスクBになるため、トリガ・ポ
ート142の値は「トラツプ」となる。
え前後のスレーブ・プロセツサ102のタスク環
境はタスクAであり、切換え直後のCPU109
のタスク環境はタスクBになるため、トリガ・ポ
ート142の値は「トラツプ」となる。
逆に、CPU109のタスク切換え203では、
切換え前後のスレーブ・プロセツサ102のタス
ク環境はタスクAであり、切換え直後のCPU1
09のタスク環境はタスクAにもどるため、トリ
ガ・ポート142の値は「OK」となる。
切換え前後のスレーブ・プロセツサ102のタス
ク環境はタスクAであり、切換え直後のCPU1
09のタスク環境はタスクAにもどるため、トリ
ガ・ポート142の値は「OK」となる。
スレーブ・プロセツサ102用命令234では、
トリガ・ポート142の値が「OK」であるた
め、トラツプすることなく(タスク環境の入換え
なく)命令234は実行される。
トリガ・ポート142の値が「OK」であるた
め、トラツプすることなく(タスク環境の入換え
なく)命令234は実行される。
以上の実施例はスレーブ・プロセツサ単位で最
適なレジスタ退避/復帰処理を実現したものであ
るが、スレーブ・プロセツサのレジスタを複数の
ブロツクに分け、ブロツク単位でレジスタ退避/
復帰処理を管理してもよい。
適なレジスタ退避/復帰処理を実現したものであ
るが、スレーブ・プロセツサのレジスタを複数の
ブロツクに分け、ブロツク単位でレジスタ退避/
復帰処理を管理してもよい。
発明の効果
以上説明したように本発明は、CPUと少なく
とも一つ以上のスレーブ・プロセツサを構成要素
とする情報処理装置において、スレーブ・プロセ
ツサを最も最近使用したタスクの識別子とCPU
が実行中のタスクの識別子を比較する手段を持
ち、CPUがタスクを切換える際にスレーブ・プ
ロセツサのレジスタ退避/復帰処理を行なわず、
スレーブ・プロセツサ使用時にCPUとスレー
ブ・プロセツサのタスクが異なればスレーブ・プ
ロセツサのレジスタ退避/復帰処理を行うことに
より無駄なスレーブ・プロセツサのレジスタ退
避/復帰処理を行なわないで済むという効果があ
る。
とも一つ以上のスレーブ・プロセツサを構成要素
とする情報処理装置において、スレーブ・プロセ
ツサを最も最近使用したタスクの識別子とCPU
が実行中のタスクの識別子を比較する手段を持
ち、CPUがタスクを切換える際にスレーブ・プ
ロセツサのレジスタ退避/復帰処理を行なわず、
スレーブ・プロセツサ使用時にCPUとスレー
ブ・プロセツサのタスクが異なればスレーブ・プ
ロセツサのレジスタ退避/復帰処理を行うことに
より無駄なスレーブ・プロセツサのレジスタ退
避/復帰処理を行なわないで済むという効果があ
る。
本発明の動作例を示す第3図では、従来例を示
す第5図で指摘した無駄なレジスタ退避/復帰処
理は全て回避されている。
す第5図で指摘した無駄なレジスタ退避/復帰処
理は全て回避されている。
第5図に示す従来例ではタスク切換えごとに8
個のスレーブ・プロセツサのレジスタを退避/復
帰処理を行なうため、延べ32回(4回×8個)の
スレーブ・プロセツサのレジスタ退避/復帰処理
を行なう。
個のスレーブ・プロセツサのレジスタを退避/復
帰処理を行なうため、延べ32回(4回×8個)の
スレーブ・プロセツサのレジスタ退避/復帰処理
を行なう。
これに対し本発明による第3図の例ではスレー
ブ・プロセツサ使用時に必要があればレジスタ退
避/復帰処理を行なうため、スレーブ・プロセツ
サのレジスタ退避/復帰処理は延べ4回で済んで
いる。
ブ・プロセツサ使用時に必要があればレジスタ退
避/復帰処理を行なうため、スレーブ・プロセツ
サのレジスタ退避/復帰処理は延べ4回で済んで
いる。
第1図は本発明の一実施例を示す図であり、第
2図a,b,cは本発明の一実施例におけるレジ
スタ退避/復帰処理の流れ図であり、第3図は本
発明の一実施例でタスク切換及びスレーブ・プロ
セツサ用命令を実行したときの状態遷移図であ
り、第4図は従来例及び本発明の一実施例の情報
処理装置のブロツク図であり、第5図は従来例で
タスク切換え及びスレーブ・プロセツサ用命令を
実行したときの状態遷移図である。 (主な参照番号)、100……マイクロ・プロ
セツサ、101〜108……スレーブ・プロセツ
サ、109……CPU、111〜118……スレ
ーブ・プロセツサのレジスタ、119……CPU
のレジスタ、130……ローカル・バス、140
……主記憶、139……タスク・レジスタ、13
1……コマンド・ポート、141……トリガ・ポ
ート、151……オーナー・ポート、161……
チエツク・ポート、171……比較器。
2図a,b,cは本発明の一実施例におけるレジ
スタ退避/復帰処理の流れ図であり、第3図は本
発明の一実施例でタスク切換及びスレーブ・プロ
セツサ用命令を実行したときの状態遷移図であ
り、第4図は従来例及び本発明の一実施例の情報
処理装置のブロツク図であり、第5図は従来例で
タスク切換え及びスレーブ・プロセツサ用命令を
実行したときの状態遷移図である。 (主な参照番号)、100……マイクロ・プロ
セツサ、101〜108……スレーブ・プロセツ
サ、109……CPU、111〜118……スレ
ーブ・プロセツサのレジスタ、119……CPU
のレジスタ、130……ローカル・バス、140
……主記憶、139……タスク・レジスタ、13
1……コマンド・ポート、141……トリガ・ポ
ート、151……オーナー・ポート、161……
チエツク・ポート、171……比較器。
Claims (1)
- 1 マスタプロセツサと、前記マスタプロセツサ
に接続された複数個のスレーブプロセツサと、前
記マスタプロセツサと前記スレーブプロセツサに
各々接続され退避領域を持つ主記憶装置と、前記
マスタプロセツサが個別に前記復数個のスレーブ
プロセツサのうちから所定の前記スレーブプロセ
ツサに対してコマンドを供給する手段とを含む情
報処理装置であつて、前記スレーブプロセツサは
少なくとも一つのレジスタと、実行しているタス
クの識別子を格納する記憶手段と、前記記憶手段
の内容と前記マスタプロセツサから指示された次
に実行すべきタスクの識別子との一致/不一致を
判定する判定手段と、前記マスタプロセツサが当
該スレーブプロセツサに対しコマンドの転送を行
う際に前記判定手段が不一致を示した場合は前記
スレーブプロセツサの内容を前記主記憶装置の退
避領域に退避して次のコマンドを実行させる手段
と、前記判定手段が一致を示した場合は前記スレ
ーブプロセツサが実行中のタスクを継続して実行
させる手段を有することを特徴とする情報処理装
置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61066508A JPS62221732A (ja) | 1986-03-24 | 1986-03-24 | 情報処理装置 |
| DE8787104338T DE3773717D1 (de) | 1986-03-24 | 1987-03-24 | System zur registersicherstellung/-umspeicherung. |
| US07/029,569 US4851992A (en) | 1986-03-24 | 1987-03-24 | Register/saving/restoring system for saving and restoring data in a register of a slave processor |
| EP87104338A EP0239078B1 (en) | 1986-03-24 | 1987-03-24 | Register saving/restoring system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61066508A JPS62221732A (ja) | 1986-03-24 | 1986-03-24 | 情報処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62221732A JPS62221732A (ja) | 1987-09-29 |
| JPH0521251B2 true JPH0521251B2 (ja) | 1993-03-23 |
Family
ID=13317845
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61066508A Granted JPS62221732A (ja) | 1986-03-24 | 1986-03-24 | 情報処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4851992A (ja) |
| EP (1) | EP0239078B1 (ja) |
| JP (1) | JPS62221732A (ja) |
| DE (1) | DE3773717D1 (ja) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
| EP0333365A3 (en) * | 1988-03-18 | 1991-05-08 | Digital Equipment Corporation | Method and apparatus for handling asynchronous memory management exceptions by a vector processor |
| GB2254714B (en) * | 1988-03-22 | 1992-12-23 | Digital Equipment Corp | Cross-domain call system in a capability based digital data processing system |
| US5210874A (en) * | 1988-03-22 | 1993-05-11 | Digital Equipment Corporation | Cross-domain call system in a capability based digital data processing system |
| JPH0277870A (ja) * | 1988-06-30 | 1990-03-16 | Mitsubishi Electric Corp | 並列計算機システム |
| JPH03154105A (ja) * | 1989-11-10 | 1991-07-02 | Toshiba Mach Co Ltd | Ncプログラム作成装置 |
| JPH0495137A (ja) * | 1990-08-07 | 1992-03-27 | Nec Corp | オペレーティングシステムのコンテキスト切替方式 |
| US5455935A (en) * | 1991-05-31 | 1995-10-03 | Tandem Computers Incorporated | Clock synchronization system |
| IL124594A0 (en) | 1998-05-21 | 1998-12-06 | Nds Ltd | Context saving system |
| 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 |
| US7191313B2 (en) * | 2001-08-28 | 2007-03-13 | Sony Corporation | Microprocessor |
| US7434222B2 (en) * | 2001-12-20 | 2008-10-07 | Infineon Technologies Ag | Task context switching RTOS |
| EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
| US7739435B2 (en) * | 2006-12-29 | 2010-06-15 | Texas Instruments Incorporated | System and method for enhancing I2C bus data rate |
| JP5776688B2 (ja) * | 2010-04-30 | 2015-09-09 | 日本電気株式会社 | 情報処理装置及びタスク切り替え方法 |
| CN113254070B (zh) * | 2020-02-07 | 2024-01-02 | 阿里巴巴集团控股有限公司 | 加速单元、片上系统、服务器、数据中心和相关方法 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3643227A (en) * | 1969-09-15 | 1972-02-15 | Fairchild Camera Instr Co | Job flow and multiprocessor operation control system |
| DE2214240C2 (de) * | 1972-03-23 | 1974-03-28 | Siemens Ag, 1000 Berlin U. 8000 Muenchen | Verfahren zur Abspeicherung von Steuerdaten bei Programmunterbrechung in einem Verarbeitungssystem |
| JPS4995548A (ja) * | 1973-01-12 | 1974-09-10 | ||
| JPS5841538B2 (ja) * | 1975-12-04 | 1983-09-13 | 株式会社東芝 | マルチプロセツサシステム ノ ユウセンセイギヨホウシキ |
| US4333144A (en) * | 1980-02-05 | 1982-06-01 | The Bendix Corporation | Task communicator for multiple computer system |
| US4414624A (en) * | 1980-11-19 | 1983-11-08 | The United States Of America As Represented By The Secretary Of The Navy | Multiple-microcomputer processing |
| US4430707A (en) * | 1981-03-05 | 1984-02-07 | Burroughs Corporation | Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks |
| US4685125A (en) * | 1982-06-28 | 1987-08-04 | American Telephone And Telegraph Company | Computer system with tasking |
| JPS60195646A (ja) * | 1984-03-16 | 1985-10-04 | Hitachi Ltd | デ−タ処理装置 |
| JPS6159539A (ja) * | 1984-08-30 | 1986-03-27 | Nec Corp | サブプロセツサのレジスタ退避/復帰方式 |
| US4736318A (en) * | 1985-03-01 | 1988-04-05 | Wang Laboratories, Inc. | Data processing system having tunable operating system means |
-
1986
- 1986-03-24 JP JP61066508A patent/JPS62221732A/ja active Granted
-
1987
- 1987-03-24 US US07/029,569 patent/US4851992A/en not_active Expired - Fee Related
- 1987-03-24 DE DE8787104338T patent/DE3773717D1/de not_active Expired - Lifetime
- 1987-03-24 EP EP87104338A patent/EP0239078B1/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| EP0239078B1 (en) | 1991-10-16 |
| DE3773717D1 (de) | 1991-11-21 |
| EP0239078A3 (en) | 1988-01-27 |
| EP0239078A2 (en) | 1987-09-30 |
| US4851992A (en) | 1989-07-25 |
| JPS62221732A (ja) | 1987-09-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3863190B2 (ja) | 実行期間中のプログラミング可能なコンポーネントのための再構成方法 | |
| US5765198A (en) | Transparent relocation of real memory addresses in the main memory of a data processor | |
| JPH01216459A (ja) | 構成変更制御方式 | |
| JPH0550022B2 (ja) | ||
| US9342350B2 (en) | System for selecting a task to be executed according to an output from a task control circuit | |
| US4851992A (en) | Register/saving/restoring system for saving and restoring data in a register of a slave processor | |
| JPH07311749A (ja) | マルチプロセッサシステム及びカーネル置換方法 | |
| JPH0232659B2 (ja) | ||
| JP2007500394A (ja) | 優先レベル毎に異なるレジスタセットが関連付けられたプログラマブル優先レベルを有する割り込み構造を備えたマイクロコントローラ | |
| JPH0443301B2 (ja) | ||
| JPH02194446A (ja) | 二重化情報処理システムにおけるモジュール修復方法 | |
| JPH0433130A (ja) | マルチチップ構成方法 | |
| JP2508026B2 (ja) | タイマ制御方式 | |
| JPS6159539A (ja) | サブプロセツサのレジスタ退避/復帰方式 | |
| JPS59218569A (ja) | マイクロ・コンピユ−タ | |
| JPH04177504A (ja) | プログラマブルコントローラのバックアップ装置 | |
| JP2003150390A (ja) | マイクロプロセッサ | |
| JPS59146362A (ja) | インタフエ−ス切換え制御方式 | |
| JPH03188531A (ja) | 時分割マルチタスク実行装置 | |
| JPS6352240A (ja) | デ−タ処理装置 | |
| JPS62151942A (ja) | タスク切換え方式 | |
| JPS63132321A (ja) | 計算機システム・リブ−ト方式 | |
| JPS60157641A (ja) | 優先選択方式 | |
| JPH03126134A (ja) | Cpuのタスク切替方式 | |
| JPS62212865A (ja) | マルチプロセツサ制御方式 |