JPH0679307B2 - コプロセッサの並行動作制御方式 - Google Patents
コプロセッサの並行動作制御方式Info
- Publication number
- JPH0679307B2 JPH0679307B2 JP62267796A JP26779687A JPH0679307B2 JP H0679307 B2 JPH0679307 B2 JP H0679307B2 JP 62267796 A JP62267796 A JP 62267796A JP 26779687 A JP26779687 A JP 26779687A JP H0679307 B2 JPH0679307 B2 JP H0679307B2
- Authority
- JP
- Japan
- Prior art keywords
- coprocessor
- signal
- cpu
- instruction
- processing
- 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 - Fee Related
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマスタプロセッサがデータバスを共有している
1個以上のコプロセッサを制御するコプロセッサの並行
動作制御方式に関する。
1個以上のコプロセッサを制御するコプロセッサの並行
動作制御方式に関する。
第7図は従来のコプロセッサ制御方式を示す構成図、第
8図は第7図におけるCPU301側の制御手順を示すフロー
チャート、第9,10,11,12図は第7図におけるコプロセッ
サ302とCPU301との動作を示すタイミングチャートであ
る。
8図は第7図におけるCPU301側の制御手順を示すフロー
チャート、第9,10,11,12図は第7図におけるコプロセッ
サ302とCPU301との動作を示すタイミングチャートであ
る。
中央処理装置301(以降CPU301と記す)は、コプロセッ
サ302とアドレスバス104とデータバス105とを共有し、
アドレスバス104とデータバス105とを介して主記憶装置
103と接続されている。コプロセッサ302は、CPU301がコ
プロセッサ302の処理の終了を待ち合わせる必要がある
ことをコプロセッサ302からCPU301に伝える▲
▼信号111と、▲▼信号111をインアクティブに
する時に、コプロセッサ302において例外が発生してお
りCPU301がコプロセッサ302のステータスを読む必要が
あることを伝えるCPERR信号112とを出力し、命令を実行
する実行ユニット124と、CPU301とのデータ授受のため
のコマンドポート122、ステータスポート121、オペラン
ドポート123とを有する。コマンドポート122はコプロセ
ッサ302に対する命令をCPU101が書き込むための入力ポ
ートであり、コプロセッサ302は命令のオペコードがコ
マンドポート122に書込まれることにより処理を開始す
る。
サ302とアドレスバス104とデータバス105とを共有し、
アドレスバス104とデータバス105とを介して主記憶装置
103と接続されている。コプロセッサ302は、CPU301がコ
プロセッサ302の処理の終了を待ち合わせる必要がある
ことをコプロセッサ302からCPU301に伝える▲
▼信号111と、▲▼信号111をインアクティブに
する時に、コプロセッサ302において例外が発生してお
りCPU301がコプロセッサ302のステータスを読む必要が
あることを伝えるCPERR信号112とを出力し、命令を実行
する実行ユニット124と、CPU301とのデータ授受のため
のコマンドポート122、ステータスポート121、オペラン
ドポート123とを有する。コマンドポート122はコプロセ
ッサ302に対する命令をCPU101が書き込むための入力ポ
ートであり、コプロセッサ302は命令のオペコードがコ
マンドポート122に書込まれることにより処理を開始す
る。
ステータスポート121はコプロセッサ302の実行処理の結
果、例外が発生した場合にCPU301にその内容を伝えるた
めの出力ポートであり、CPU301はコプロセッサ302が処
理を終えた時にCPERR信号112がアクティブだった場合、
ステータスポート121を読むことにより例外の発生とそ
の種類を知ることができる。
果、例外が発生した場合にCPU301にその内容を伝えるた
めの出力ポートであり、CPU301はコプロセッサ302が処
理を終えた時にCPERR信号112がアクティブだった場合、
ステータスポート121を読むことにより例外の発生とそ
の種類を知ることができる。
オペランドポート123はコプロセッサ302の実行処理に必
要なオペランドデータをCPU301から与える必要があると
きや、実行処理の結果をCPU301に書き戻す必要があると
きにそのデータをCPU301とコプロセッサ302との間で転
送するためのポートである。
要なオペランドデータをCPU301から与える必要があると
きや、実行処理の結果をCPU301に書き戻す必要があると
きにそのデータをCPU301とコプロセッサ302との間で転
送するためのポートである。
次に、本従来例の動作について説明する。
(1)コプロセッサ302の実行結果をCPU301に書き戻す
命令の場合の動作を第8図、第9図を参照して説明す
る。
命令の場合の動作を第8図、第9図を参照して説明す
る。
CPU301は主記憶装置103から取り出した命令コードのオ
ペコードをコプロセッサ302に転送する(ステップ40
1)。CPU301はオペコード転送のバスサイクルが終了す
るのを待ち(ステップ403)、終了すると、▲
▼信号111がインアクティブになるまで待つ(ステップ4
04)。インアクティブになると、コプロセッサ302はコ
マンドポート122に書込まれたデータが実行結果をCPU30
1に書き戻す命令であるから、命令処理実行中は▲
▼信号111をアクティブにし続け、コプロセッサ302
の実行処理が正常終了すると、ステータスポート121をC
PU301に書き戻す必要がないため、コプロセッサ302はCP
ERR信号112をインアクティブにした後、▲▼信
号111をインアクティブにする(ステップ404)。CPU301
は▲▼信号111がインアクティブになった時のC
PERR信号112を調べる。CPERR信号112がインアクティブ
であるため、CPU301はステータスポート121を読出さず
に実行結果をオペランドポート123から読み出し(ステ
ップ409)、次のCPU処理に移る。
ペコードをコプロセッサ302に転送する(ステップ40
1)。CPU301はオペコード転送のバスサイクルが終了す
るのを待ち(ステップ403)、終了すると、▲
▼信号111がインアクティブになるまで待つ(ステップ4
04)。インアクティブになると、コプロセッサ302はコ
マンドポート122に書込まれたデータが実行結果をCPU30
1に書き戻す命令であるから、命令処理実行中は▲
▼信号111をアクティブにし続け、コプロセッサ302
の実行処理が正常終了すると、ステータスポート121をC
PU301に書き戻す必要がないため、コプロセッサ302はCP
ERR信号112をインアクティブにした後、▲▼信
号111をインアクティブにする(ステップ404)。CPU301
は▲▼信号111がインアクティブになった時のC
PERR信号112を調べる。CPERR信号112がインアクティブ
であるため、CPU301はステータスポート121を読出さず
に実行結果をオペランドポート123から読み出し(ステ
ップ409)、次のCPU処理に移る。
(2)第9図と同じ命令を実行し、例外が発生した場合
の動作を第8図、第10図を参照して説明する。
の動作を第8図、第10図を参照して説明する。
▲▼信号111がインアクティブになるまでの動
作は第9図と同じである。コプロセッサ302の実行処理
中に例外が発生し、ステータスポート121をCPU301に書
き戻す必要があるため、コプロセッサ302はCPERR信号11
2をアクティブのままにする。CPU301は▲▼信
号111がインアクティブになった時のCPERR信号112を調
べる(ステップ405)。CPERR信号112がアクティブであ
るため、CPU301はステータスポート121を読み出す(ス
テップ406)。ステータスポート121の情報から例外が発
生しているかどう判定し(ステップ407)、例外が発生
していると例外処理に移る(ステップ408)。
作は第9図と同じである。コプロセッサ302の実行処理
中に例外が発生し、ステータスポート121をCPU301に書
き戻す必要があるため、コプロセッサ302はCPERR信号11
2をアクティブのままにする。CPU301は▲▼信
号111がインアクティブになった時のCPERR信号112を調
べる(ステップ405)。CPERR信号112がアクティブであ
るため、CPU301はステータスポート121を読み出す(ス
テップ406)。ステータスポート121の情報から例外が発
生しているかどう判定し(ステップ407)、例外が発生
していると例外処理に移る(ステップ408)。
(3)コプロセッサ302の実行結果をCPU301に書き戻さ
ない命令であってコプロセッサ302の実行処理が例外を
発生しない場合の動作について第8図、第11図を参照し
て説明する。
ない命令であってコプロセッサ302の実行処理が例外を
発生しない場合の動作について第8図、第11図を参照し
て説明する。
▲▼信号111がインアクティブになるまでの動
作は第9図と同じである。コプロセッサ302はコマンド
ポート122に書込まれたデータが実行結果をCPU301に書
き戻さない命令であるので、処理の終了を待たずに▲
▼信号111をインアクティブにする。このとき、
コプロセッサ302は例外を検出していないため、CPERR信
号112をインアクティブにする。CPU301は▲▼
信号111がインアクティブになった時のCPERR信号112を
調べる(ステップ405)。CPERR信号112がインアクティ
ブであるため、CPU301はステータポート121を読出さず
にそのまま次のCPU処理に移る。
作は第9図と同じである。コプロセッサ302はコマンド
ポート122に書込まれたデータが実行結果をCPU301に書
き戻さない命令であるので、処理の終了を待たずに▲
▼信号111をインアクティブにする。このとき、
コプロセッサ302は例外を検出していないため、CPERR信
号112をインアクティブにする。CPU301は▲▼
信号111がインアクティブになった時のCPERR信号112を
調べる(ステップ405)。CPERR信号112がインアクティ
ブであるため、CPU301はステータポート121を読出さず
にそのまま次のCPU処理に移る。
(4)コプロセッサ302の実行結果をCPU301に書き戻さ
ない命令であってコプロセッサ302の実行処理が例外を
発生した場合の動作について第8図、第12図を参照して
説明する。
ない命令であってコプロセッサ302の実行処理が例外を
発生した場合の動作について第8図、第12図を参照して
説明する。
コプロセッサ302に対し命令を転送し次のCPU処理に移る
までは第11図の動作と同様である。
までは第11図の動作と同様である。
CPU301とコプロセッサ302の並行動作中にコプロセッサ3
02に例外が発生する。しかし、CPU301は他の処理を実行
中であるためこの例外は検知されずコプロセッサ302は
例外保留状態となり、休止している。次にCPU301がコプ
ロセッサ302に実行処理を指示すると、コプロセッサ302
は保留されている例外を保持しているため、1度アクテ
ィブにした▲▼信号111をすぐにインアクティ
ブに戻す(ステップ404)。そのときCPERR信号112をア
クティブのままにしておく。CPU301はBUSY信号111がイ
ンアクティブになった時のCPERR信号112を調べる(ステ
ップ405)。CPERR信号112がアクティブであるため、CPU
301はステータスポート121を読出し(ステップ406)、
保留例外を検知して(ステップ407)例外の処理を始め
る(ステップ408)。
02に例外が発生する。しかし、CPU301は他の処理を実行
中であるためこの例外は検知されずコプロセッサ302は
例外保留状態となり、休止している。次にCPU301がコプ
ロセッサ302に実行処理を指示すると、コプロセッサ302
は保留されている例外を保持しているため、1度アクテ
ィブにした▲▼信号111をすぐにインアクティ
ブに戻す(ステップ404)。そのときCPERR信号112をア
クティブのままにしておく。CPU301はBUSY信号111がイ
ンアクティブになった時のCPERR信号112を調べる(ステ
ップ405)。CPERR信号112がアクティブであるため、CPU
301はステータスポート121を読出し(ステップ406)、
保留例外を検知して(ステップ407)例外の処理を始め
る(ステップ408)。
このように、実行結果をCPU301に書き戻さない(3),
(4)の場合は、後続するCPU処理に対し、コプロセッ
サ302の実行結果が影響を及ぼさないため、CPU301はコ
プロセッサ302の実際の実行終了を待たずに次の処理を
始めることができる。つまり、CPU301とコプロセッサ30
2は並行に動作することが可能である。ただし、CPU301
がコブロセッサ302の実行終了を待ち合わせずに次の処
理に移る場合には、コプロセッサ302の実行中に例外が
発生してもこれを検知することができない。この問題を
回避するために、コプロセッサ302は実行中に例外が発
生したことを示すステータスポート121が読出されない
まま、新しいコプロセッサ命令がコマンドポート122に
書込まれた場合は、その命令を実行せずに▲▼
信号111を1度アクティブにしたのち、すぐにインアク
ティブに戻してCPU301にステータスポー121を読ませ、
前命令の例外が保留されていることをCPU301に知らせる
ようにしておく、このプロトコルによりCPU301とコプロ
セッサ302の並行動作が可能となる。
(4)の場合は、後続するCPU処理に対し、コプロセッ
サ302の実行結果が影響を及ぼさないため、CPU301はコ
プロセッサ302の実際の実行終了を待たずに次の処理を
始めることができる。つまり、CPU301とコプロセッサ30
2は並行に動作することが可能である。ただし、CPU301
がコブロセッサ302の実行終了を待ち合わせずに次の処
理に移る場合には、コプロセッサ302の実行中に例外が
発生してもこれを検知することができない。この問題を
回避するために、コプロセッサ302は実行中に例外が発
生したことを示すステータスポート121が読出されない
まま、新しいコプロセッサ命令がコマンドポート122に
書込まれた場合は、その命令を実行せずに▲▼
信号111を1度アクティブにしたのち、すぐにインアク
ティブに戻してCPU301にステータスポー121を読ませ、
前命令の例外が保留されていることをCPU301に知らせる
ようにしておく、このプロトコルによりCPU301とコプロ
セッサ302の並行動作が可能となる。
上述した従来のコプロセッサ制御方式は、コプロセッサ
302の実行結果をCPU301に書き戻す必要がない場合にも
コプロセッサの▲▼信号111がインアクティブ
になるまで待ってからCPERR信号112を調べ、例外のない
ことを確認してから次のCPU処理を始めているため、必
要のない▲▼信号111の待ち合わせにより、CPU
301とコプロセッサ202が並行動作できる場合にCPU301の
次の処理の開始が遅れるという欠点がある。
302の実行結果をCPU301に書き戻す必要がない場合にも
コプロセッサの▲▼信号111がインアクティブ
になるまで待ってからCPERR信号112を調べ、例外のない
ことを確認してから次のCPU処理を始めているため、必
要のない▲▼信号111の待ち合わせにより、CPU
301とコプロセッサ202が並行動作できる場合にCPU301の
次の処理の開始が遅れるという欠点がある。
本発明のコプロセッサの並行動作制御方式は、実行処理
の待ち合わせを示す第1の信号と、第1の信号により待
ち合わせの終了を示したとき処理が正常に終了している
かどうかを示す第2の信号と、処理を実行中でなく、直
前に実行した命令が正常に終了しているかどうかを示す
第3の信号とをコプロセッサがマスタプロセッサに出力
し、マスタプロセッサは、コプロセッサの実行処理の開
始時に、第3の信号が、コプロセッサが処理を実行中で
なく、直前に実行した命令が正常に終了していることを
示している場合には、そのまま次の処理を前記コプロセ
ッサと並行して開始し、コプロセッサの実行処理の開始
時に、第3の信号がコプロセッサが処理を実行中である
か、または直前に実行した命令が正常に終了していない
ことを示している場合には、第1の信号によりコプロセ
ッサの実行処理の待ち合わせを行なったのち、第2の信
号によりコプロセッサの内部情報を読出すか否かを判断
し、以降の処理を決定する。
の待ち合わせを示す第1の信号と、第1の信号により待
ち合わせの終了を示したとき処理が正常に終了している
かどうかを示す第2の信号と、処理を実行中でなく、直
前に実行した命令が正常に終了しているかどうかを示す
第3の信号とをコプロセッサがマスタプロセッサに出力
し、マスタプロセッサは、コプロセッサの実行処理の開
始時に、第3の信号が、コプロセッサが処理を実行中で
なく、直前に実行した命令が正常に終了していることを
示している場合には、そのまま次の処理を前記コプロセ
ッサと並行して開始し、コプロセッサの実行処理の開始
時に、第3の信号がコプロセッサが処理を実行中である
か、または直前に実行した命令が正常に終了していない
ことを示している場合には、第1の信号によりコプロセ
ッサの実行処理の待ち合わせを行なったのち、第2の信
号によりコプロセッサの内部情報を読出すか否かを判断
し、以降の処理を決定する。
したがって、マスタプロセッサがコプロセッサに対しマ
スタプロセッサに実行結果を書き戻さない命令を行なう
場合、コプロセッサが処理を実行中でなく、直前に実行
した命令が正常に終了していることを第3の信号をアク
ティブにして示していると、マスタプロセッサは第1の
信号による実行処理の待ち合わせを行なわず、コプロセ
ッサの実行処理と並行して自己の次の実行処理を開始す
ることができる。
スタプロセッサに実行結果を書き戻さない命令を行なう
場合、コプロセッサが処理を実行中でなく、直前に実行
した命令が正常に終了していることを第3の信号をアク
ティブにして示していると、マスタプロセッサは第1の
信号による実行処理の待ち合わせを行なわず、コプロセ
ッサの実行処理と並行して自己の次の実行処理を開始す
ることができる。
次に、本発明の実施例について図面を参照して説明す
る。
る。
第1図は本発明のコプロセッサの並行動作制御方式の第
1の実施例を示す構成図、第2図は第1の実施例のCPU1
01側の制御手順を示すフローチャート、第3、第4図は
第1の実施例の動作を示すタイミングチャートである。
1の実施例を示す構成図、第2図は第1の実施例のCPU1
01側の制御手順を示すフローチャート、第3、第4図は
第1の実施例の動作を示すタイミングチャートである。
本実施例は、第7図の従来例とは異なり、コプロセッサ
102が例外処理を保留にしているかいないかをCPU101に
伝えるCPEND信号113を出力している。他の構成は従来例
と同様である。
102が例外処理を保留にしているかいないかをCPU101に
伝えるCPEND信号113を出力している。他の構成は従来例
と同様である。
次に本実施例の動作について説明する。
本実施例は、コプロセッサ102の実行結果をCPU101に書
き戻さない命令の場合にのみ効果があるので、説明もそ
の場合にのみとどめる。
き戻さない命令の場合にのみ効果があるので、説明もそ
の場合にのみとどめる。
(1)コプロセッサ102が命令の実行により例外を発生
しない場合の動作を第2図、第3図を参照して説明す
る。
しない場合の動作を第2図、第3図を参照して説明す
る。
CPU101は主記憶装置103から取り出した命令コードがコ
プロセッサ102用の命令だった場合、そのオペコードを
コプロセッサ102に転送する(ステップ201)。CPU101は
転送したコプロセッサ102用命令が実行結果のCPU101へ
の書き戻しを伴う命令かどうかを判断し(ステップ20
2)、書き戻しを伴わない命令であるため、CPEND信号11
3をチェックする(ステップ210)。ここで、コプロセッ
サ102は、現在処理を実行中ではなく直前に実行した命
令は例外を発生していないため、CPEND信号113をアクテ
ィブにしている(ステップ210)。CPU101はCPEND信号11
3がアクティブになっていることから、現在転送してい
るコプロセッサ命令に対する以降のサービスは不要であ
ると判断し、命令転送のバスサイクルの終了を待ったの
ち(ステップ211)、次のCPU処理に移る。よって、CPU1
01とコプロセッサ102は並行に動作することになる。
プロセッサ102用の命令だった場合、そのオペコードを
コプロセッサ102に転送する(ステップ201)。CPU101は
転送したコプロセッサ102用命令が実行結果のCPU101へ
の書き戻しを伴う命令かどうかを判断し(ステップ20
2)、書き戻しを伴わない命令であるため、CPEND信号11
3をチェックする(ステップ210)。ここで、コプロセッ
サ102は、現在処理を実行中ではなく直前に実行した命
令は例外を発生していないため、CPEND信号113をアクテ
ィブにしている(ステップ210)。CPU101はCPEND信号11
3がアクティブになっていることから、現在転送してい
るコプロセッサ命令に対する以降のサービスは不要であ
ると判断し、命令転送のバスサイクルの終了を待ったの
ち(ステップ211)、次のCPU処理に移る。よって、CPU1
01とコプロセッサ102は並行に動作することになる。
(2)コプロセッサ102が命令の実行により例外を発生
した場合の動作を第2図、第4図を参照して説明する。
した場合の動作を第2図、第4図を参照して説明する。
CPU101が主記憶装置103からコプロセッサ102用の命令を
取り出してからCPU101とコプロセッサ102とが並行に動
作するまでは第3図に示された例と同様である。
取り出してからCPU101とコプロセッサ102とが並行に動
作するまでは第3図に示された例と同様である。
CPU101との並行動作中にコプロセッサ102に例外が発生
すると、コプロセッサ102は実行処理が終了してもCPEND
信号113をインアクティブのままにしておく。
すると、コプロセッサ102は実行処理が終了してもCPEND
信号113をインアクティブのままにしておく。
この状態でCPU101が再び実行結果のCPU101への書き戻し
を伴わないようなコプロセッサ用命令をコプロセッサ10
2に転送する(ステップ201)とCPU101は前回と同様に書
き戻しを伴う命令かどうかを判断し(ステップ202)、
書き戻しを伴わない命令であるため、CPEND信号113をチ
ェックする(ステップ210)。コプロセッサ102には保留
されている例外があるため、CPEND信号113はインアクテ
ィブとなっている。CPU101はCPEND信号113のインアクテ
ィブ状態を確認し(ステップ210)、命令転送のバスサ
イクルの終了を待ったのち(ステップ203)、▲
▼信号111がインアクティブになるまで待つ(ステッ
プ204)。コプロセッサ102は、直前に実行された命令が
例外を発生し、そのことをまだCPU101に伝えていないた
め、コマンドポート122に書込まれた命令を実行せず
に、▲▼信号111を1度アクティブにした後す
ぐにインアクティブに戻す。このとき、コプロセッサ10
2は保留されている例外をCPU101に伝える必要があるた
め、CPERR信号112はアクティブのままにしておく。CPU1
01は▲▼信号111がインアクテイブになった時
のCPERR信号112を調べる(ステップ205)。CPERR信号11
2がアクティブであるため、CPU101はステータスポート1
21を読出し(ステップ206)、前に実行したコプロセッ
サ命令が例外を発生し、それが保留されていたことを検
知して(ステップ207)、保留された例外に対する処理
を始める(ステップ208)。
を伴わないようなコプロセッサ用命令をコプロセッサ10
2に転送する(ステップ201)とCPU101は前回と同様に書
き戻しを伴う命令かどうかを判断し(ステップ202)、
書き戻しを伴わない命令であるため、CPEND信号113をチ
ェックする(ステップ210)。コプロセッサ102には保留
されている例外があるため、CPEND信号113はインアクテ
ィブとなっている。CPU101はCPEND信号113のインアクテ
ィブ状態を確認し(ステップ210)、命令転送のバスサ
イクルの終了を待ったのち(ステップ203)、▲
▼信号111がインアクティブになるまで待つ(ステッ
プ204)。コプロセッサ102は、直前に実行された命令が
例外を発生し、そのことをまだCPU101に伝えていないた
め、コマンドポート122に書込まれた命令を実行せず
に、▲▼信号111を1度アクティブにした後す
ぐにインアクティブに戻す。このとき、コプロセッサ10
2は保留されている例外をCPU101に伝える必要があるた
め、CPERR信号112はアクティブのままにしておく。CPU1
01は▲▼信号111がインアクテイブになった時
のCPERR信号112を調べる(ステップ205)。CPERR信号11
2がアクティブであるため、CPU101はステータスポート1
21を読出し(ステップ206)、前に実行したコプロセッ
サ命令が例外を発生し、それが保留されていたことを検
知して(ステップ207)、保留された例外に対する処理
を始める(ステップ208)。
このように本発明を適用したシステムは例外の発生時に
も問題なく動作することが容易にわかる。
も問題なく動作することが容易にわかる。
第5図は本発明の第2の実施例を示す構成図、第6図は
第2の実施例の動作を示すタイミングチャートである。
第2の実施例の動作を示すタイミングチャートである。
本実施例は、3個のコプロセッサ1021,1022,1023をパラ
レルに接続している点が第1の実施例と比較して異な
る。
レルに接続している点が第1の実施例と比較して異な
る。
CPEND信号113、▲▼信号111、CPERR信号112は
各コプロセッサ1021,1022,1023からオープンドレインで
出力されているため、各信号111,112,113に関して各コ
プロセッサ1021,1022,1023のいずれか1つの出力がロウ
(CPEND信号113、CPERR信号112の場合はインアクティ
ブ、▲▼信号111の場合はアクティブを示す)
であれば、CPU101に対するその信号はロウとしてCPU101
に印加される。
各コプロセッサ1021,1022,1023からオープンドレインで
出力されているため、各信号111,112,113に関して各コ
プロセッサ1021,1022,1023のいずれか1つの出力がロウ
(CPEND信号113、CPERR信号112の場合はインアクティ
ブ、▲▼信号111の場合はアクティブを示す)
であれば、CPU101に対するその信号はロウとしてCPU101
に印加される。
次に、本実施例の動作について第6図を参照して説明す
る。
る。
CPU101側のコプロセッサ・プロトコルは第2図に示した
第1の実施例の場合と同様である。
第1の実施例の場合と同様である。
時刻t1で3つのコプロセッサ1021,1022,1023は全て動作
しておらず、また例外を保留していないため、各コプロ
セッサ1021,1022,1023のCPEND信号113はすべてアクティ
ブ(ハイ)になっている。よって、CPU101に入力される
CPEND信号113はアクティブのままである。まず時刻t2に
第1のコプロセッサ1021に対して命令コードが転送さ
れ、その命令が実行結果をCPU101に書き戻さない命令だ
った場合、CPU101は時刻t3にCPEND信号113をチェック
し、アクティブになっていることを確認する。このこと
により、CPU101は命令転送のバスサイクルが終了したあ
とはコブロセッサ1022に対するサービスは不要であると
判断し、時刻t4に次のCPU処理に移る。コプロセッサ102
2に対してCPU101から命令コードを転送した場合、その
命令がコプロセッサ1021に実行させた命令と同様に実行
結果をCPUに書き戻さない命令であるため、CPU101は時
刻t6にCPEND信号113をチェックする。ここで、実行の指
示を受けたコプロセッサ1022は処理を実行中ではなく、
保留例外状態でもないため、本来ならCPU101は▲
▼信号111がインアクティブになるのを待たずに次のC
PU処理を開始しても構わないが、本実施例ではシステム
の安全性を考慮し、各コプロセッサ1021,1022,1023のCP
END信号113がすべてアクティブにならなければCPU101に
対する入力がアクティブにならないようになっているた
め、CPU101は時刻t6にCPEND信号113がインアクティブに
なっていることを確認し、時刻t7に命令転送のバスサイ
クルが終了するのを待ってからさらに▲▼信号
111がインアクティブ(ハイ)になるのを待つ。各コプ
ロセッサ1021,1022,1023の▲▼信号111はオー
プンドレインで出力されているため、コプロセッサ1022
が▲▼信号111をアクティブ(ロウ)にするだ
けでCPU101に対する▲▼信号111はアクティブ
になる。
しておらず、また例外を保留していないため、各コプロ
セッサ1021,1022,1023のCPEND信号113はすべてアクティ
ブ(ハイ)になっている。よって、CPU101に入力される
CPEND信号113はアクティブのままである。まず時刻t2に
第1のコプロセッサ1021に対して命令コードが転送さ
れ、その命令が実行結果をCPU101に書き戻さない命令だ
った場合、CPU101は時刻t3にCPEND信号113をチェック
し、アクティブになっていることを確認する。このこと
により、CPU101は命令転送のバスサイクルが終了したあ
とはコブロセッサ1022に対するサービスは不要であると
判断し、時刻t4に次のCPU処理に移る。コプロセッサ102
2に対してCPU101から命令コードを転送した場合、その
命令がコプロセッサ1021に実行させた命令と同様に実行
結果をCPUに書き戻さない命令であるため、CPU101は時
刻t6にCPEND信号113をチェックする。ここで、実行の指
示を受けたコプロセッサ1022は処理を実行中ではなく、
保留例外状態でもないため、本来ならCPU101は▲
▼信号111がインアクティブになるのを待たずに次のC
PU処理を開始しても構わないが、本実施例ではシステム
の安全性を考慮し、各コプロセッサ1021,1022,1023のCP
END信号113がすべてアクティブにならなければCPU101に
対する入力がアクティブにならないようになっているた
め、CPU101は時刻t6にCPEND信号113がインアクティブに
なっていることを確認し、時刻t7に命令転送のバスサイ
クルが終了するのを待ってからさらに▲▼信号
111がインアクティブ(ハイ)になるのを待つ。各コプ
ロセッサ1021,1022,1023の▲▼信号111はオー
プンドレインで出力されているため、コプロセッサ1022
が▲▼信号111をアクティブ(ロウ)にするだ
けでCPU101に対する▲▼信号111はアクティブ
になる。
CPU101は▲▼信号111がインアクティブになっ
た時刻t8でのCPERR信号112をチェックし、インアクティ
ブであることからコプロセッサ1022のステータス情報の
読出しは不要であると判断し、時刻t9に次のCPU処理に
移る。
た時刻t8でのCPERR信号112をチェックし、インアクティ
ブであることからコプロセッサ1022のステータス情報の
読出しは不要であると判断し、時刻t9に次のCPU処理に
移る。
ここで、最初に実行を開始したコプロセッサ1021が時刻
t10に例外を発生したとする。しかし、CPU101はコプロ
セッサ1021およびコプロセッサ1022と並行動作している
ため、この例外は次に第1のコプロセッサ1021が呼び出
される時刻t11まで保留される。時刻t11にコプロセッサ
1021に再度、実行結果をCPU101に書き戻さないような命
令が転送されたとする。時刻t12にCPU101はCPEND信号11
3をチェックし、インアクティブであるため、時刻t13に
命令転送バスサイクルが終了するのを待ったのち、▲
▼信号111がインアクティブになるのを待つ。コ
プロセッサ1021は保留例外を保持しているため、転送さ
れた命令を実行せずに▲▼信号111を1度アク
ティブにしたのち、すぐ時刻t14にインアクティブに戻
す。このとき、ステータス情報をCPU1021に読ませるた
めにCPERR信号112はアクティブのままにしておく。
t10に例外を発生したとする。しかし、CPU101はコプロ
セッサ1021およびコプロセッサ1022と並行動作している
ため、この例外は次に第1のコプロセッサ1021が呼び出
される時刻t11まで保留される。時刻t11にコプロセッサ
1021に再度、実行結果をCPU101に書き戻さないような命
令が転送されたとする。時刻t12にCPU101はCPEND信号11
3をチェックし、インアクティブであるため、時刻t13に
命令転送バスサイクルが終了するのを待ったのち、▲
▼信号111がインアクティブになるのを待つ。コ
プロセッサ1021は保留例外を保持しているため、転送さ
れた命令を実行せずに▲▼信号111を1度アク
ティブにしたのち、すぐ時刻t14にインアクティブに戻
す。このとき、ステータス情報をCPU1021に読ませるた
めにCPERR信号112はアクティブのままにしておく。
CPU101は▲▼信号111がインアクティブになっ
た時刻t14のCPERR信号112をチェックし、アクティブに
なっていることからコプロセッサ1021のステータス情報
を読出す。この情報により、CPU101はコプロセッサ1021
が保留例外を保持していたことを知り、例外処理に移
る。本実施例により複数のコプロセッサを持つシステム
の場合にも効果を発揮することが明らかである。
た時刻t14のCPERR信号112をチェックし、アクティブに
なっていることからコプロセッサ1021のステータス情報
を読出す。この情報により、CPU101はコプロセッサ1021
が保留例外を保持していたことを知り、例外処理に移
る。本実施例により複数のコプロセッサを持つシステム
の場合にも効果を発揮することが明らかである。
以上説明したように本発明は、マスタプロセッサがコプ
ロセッサに対しマスタプロセッサに実行結果を書き戻さ
ない命令を行なう場合、コプロセッサが処理を実行中で
なく、直前に実行した命令が正常に終了していることを
第3の信号をアクティブにして示していると、マスタプ
ロセッサは第1の信号による実行処理の待ち合わせを行
なわず、コプロセッサの実行処理と並行して自己の次の
実行処理を開始できることにより、コプロセッサを用い
るシステムにおけるマスタプロセッサの使用効率を向上
できる効果がある。
ロセッサに対しマスタプロセッサに実行結果を書き戻さ
ない命令を行なう場合、コプロセッサが処理を実行中で
なく、直前に実行した命令が正常に終了していることを
第3の信号をアクティブにして示していると、マスタプ
ロセッサは第1の信号による実行処理の待ち合わせを行
なわず、コプロセッサの実行処理と並行して自己の次の
実行処理を開始できることにより、コプロセッサを用い
るシステムにおけるマスタプロセッサの使用効率を向上
できる効果がある。
第1図は本発明のコプロセッサの並行動作制御方式の第
1の実施例を示す構成図、第2図は第1の実施例のCPU1
01側の制御手順を示すフローチャート、第3図、第4図
は第1の実施例の動作を示すタイミングチャート、第5
図は本発明の第2の実施例を示す構成図、第6図は第2
の実施例の動作を示すタイミングチャート、第7図は従
来のコプロセッサ制御方式を示す構成図、第8図は第7
図におけるCPU301側の制御手順を示すフローチャート、
第9図、第10図、第11図、第12図は第7図におけるCPU3
01とコプロセッサ302との動作を示すタイミングチャー
トである。 101……CPU、 102、1021,1022,1023……コプロセッサ、 103……主記憶装置、 104……アドレスバス、 105……データバス、 111……▲▼信号、 112……CPERR信号、 113……CPEND信号、 121……ステータスポート、 122……コマンドポート、 123……オペランドポート、 124……実行ユニット。
1の実施例を示す構成図、第2図は第1の実施例のCPU1
01側の制御手順を示すフローチャート、第3図、第4図
は第1の実施例の動作を示すタイミングチャート、第5
図は本発明の第2の実施例を示す構成図、第6図は第2
の実施例の動作を示すタイミングチャート、第7図は従
来のコプロセッサ制御方式を示す構成図、第8図は第7
図におけるCPU301側の制御手順を示すフローチャート、
第9図、第10図、第11図、第12図は第7図におけるCPU3
01とコプロセッサ302との動作を示すタイミングチャー
トである。 101……CPU、 102、1021,1022,1023……コプロセッサ、 103……主記憶装置、 104……アドレスバス、 105……データバス、 111……▲▼信号、 112……CPERR信号、 113……CPEND信号、 121……ステータスポート、 122……コマンドポート、 123……オペランドポート、 124……実行ユニット。
Claims (1)
- 【請求項1】マスタプロセッサがデータバスを共有して
いる1個以上のコプロセッサを制御するコプロセッサの
並行動作制御方法において、 実行処理の待ち合わせを示す第1の信号を前記コプロセ
ッサが前記マスタプロセッサに出力するステップと、 前記第1の信号により待ち合わせの終了を示したとき処
理が正常に終了しているかどうかを示す第2の信号を前
記コプロセッサが前記マスタプロセッサに出力するステ
ップと、 処理が実行中ではなく、直前に実行した命令が正常に終
了しているかどうかを示す第3の信号を前記コプロセッ
サが前記マスタプロセッサに出力するステップと、 前記コプロセッサの実行処理の開始時に前記第3の信号
が前記コプロセッサが処理の実行中ではなく直前に実行
した命令が正常に終了していることを示しているとき
に、前記マスタプロセッサがそのまま次の処理を前記コ
プロセッサと並行して開始するステップと、 前記コプロセッサの実行処理の開始時に前記第3の信号
が前記コプロセッサが処理の実行中であるか又は直前に
実行した命令が正常に終了していないことを示している
ときに、前記マスタプロセッサが前記第1の信号により
前記コプロセッサの実行処理の待ち合わせを行った後に
前記第2の信号により前記コプロセッサの内部情報を読
み出すか否かを判断し以降の処理を決定するステップと
を含むことを特徴とするコプロセッサの並行動作制御方
法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62267796A JPH0679307B2 (ja) | 1987-10-22 | 1987-10-22 | コプロセッサの並行動作制御方式 |
| US07/260,699 US4949241A (en) | 1987-10-22 | 1988-10-21 | Microcomputer system including a master processor and a slave processor synchronized by three control lines |
| EP88117683A EP0313097B1 (en) | 1987-10-22 | 1988-10-24 | Microcomputer system including master processor and slave processor |
| DE3852604T DE3852604T2 (de) | 1987-10-22 | 1988-10-24 | Mikrokomputersystem mit einem Masterprozessor und einem Sklavenprozessor. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62267796A JPH0679307B2 (ja) | 1987-10-22 | 1987-10-22 | コプロセッサの並行動作制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01109466A JPH01109466A (ja) | 1989-04-26 |
| JPH0679307B2 true JPH0679307B2 (ja) | 1994-10-05 |
Family
ID=17449714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62267796A Expired - Fee Related JPH0679307B2 (ja) | 1987-10-22 | 1987-10-22 | コプロセッサの並行動作制御方式 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4949241A (ja) |
| EP (1) | EP0313097B1 (ja) |
| JP (1) | JPH0679307B2 (ja) |
| DE (1) | DE3852604T2 (ja) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5251295A (en) * | 1988-07-11 | 1993-10-05 | Minolta Camera Kabushiki Kaisha | Image processing system having slave processors for controlling standard and optional modules |
| US5191648A (en) * | 1988-07-11 | 1993-03-02 | Minolta Camera Kabushiki Kaisha | Image processing system |
| US5109514A (en) * | 1988-07-28 | 1992-04-28 | Sun Microsystems, Inc. | Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions |
| US5615349A (en) * | 1990-09-04 | 1997-03-25 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
| JP2846904B2 (ja) * | 1989-11-13 | 1999-01-13 | 富士通株式会社 | 付加演算装置制御方式 |
| US5632037A (en) * | 1992-03-27 | 1997-05-20 | Cyrix Corporation | Microprocessor having power management circuitry with coprocessor support |
| FR2696561B1 (fr) * | 1992-10-02 | 1994-12-23 | Sgs Thomson Microelectronics | Micro-calculateur pouvant fonctionner en mode d'émulation avec des périphériques internes et externes. |
| US5579492A (en) * | 1993-11-01 | 1996-11-26 | Motorola, Inc. | Data processing system and a method for dynamically ignoring bus transfer termination control signals for a predetermined amount of time |
| US5495588A (en) * | 1993-11-18 | 1996-02-27 | Allen-Bradley Company, Inc. | Programmable controller having joined relay language processor and general purpose processor |
| US5464435A (en) * | 1994-02-03 | 1995-11-07 | Medtronic, Inc. | Parallel processors in implantable medical device |
| FR2719926B1 (fr) * | 1994-05-10 | 1996-06-07 | Sgs Thomson Microelectronics | Circuit électronique et procédé d'utilisation d'un coprocesseur. |
| US5931941A (en) * | 1995-04-28 | 1999-08-03 | Lsi Logic Corporation | Interface for a modularized computational unit to a CPU |
| JP2987308B2 (ja) * | 1995-04-28 | 1999-12-06 | 松下電器産業株式会社 | 情報処理装置 |
| JP3495173B2 (ja) * | 1996-02-14 | 2004-02-09 | 富士通株式会社 | 演算処理方法および演算処理装置 |
| US5721945A (en) * | 1996-05-06 | 1998-02-24 | Advanced Micro Devices | Microprocessor configured to detect a DSP call instruction and to direct a DSP to execute a routine corresponding to the DSP call instruction |
| DE29609436U1 (de) * | 1996-05-28 | 1996-09-26 | Trw Occupant Restraint Systems Gmbh, 73551 Alfdorf | Verankerung für das Gurtschloß eines Sicherheitsgurtes |
| US5923893A (en) * | 1997-09-05 | 1999-07-13 | Motorola, Inc. | Method and apparatus for interfacing a processor to a coprocessor |
| US6505290B1 (en) * | 1997-09-05 | 2003-01-07 | Motorola, Inc. | Method and apparatus for interfacing a processor to a coprocessor |
| US6223080B1 (en) * | 1998-04-29 | 2001-04-24 | Medtronic, Inc. | Power consumption reduction in medical devices employing multiple digital signal processors and different supply voltages |
| JP4160705B2 (ja) * | 1999-10-15 | 2008-10-08 | 富士通株式会社 | プロセッサ及びプロセッサシステム |
| EP1391820A3 (en) | 2002-07-31 | 2007-12-19 | Texas Instruments Incorporated | Concurrent task execution in a multi-processor, single operating system environment |
| TWI307022B (en) * | 2005-08-16 | 2009-03-01 | Novatek Microelectronics Corp | System and method for parallel data transmission |
| JP5112831B2 (ja) | 2007-11-30 | 2013-01-09 | ルネサスエレクトロニクス株式会社 | データ処理装置及びデータ処理装置の制御方法 |
| CN101872336B (zh) * | 2010-05-31 | 2011-12-21 | 浙江大学 | 基于主从架构的协处理器高效执行的装置 |
| WO2014080457A1 (ja) * | 2012-11-20 | 2014-05-30 | 株式会社安川電機 | プログラマブルコントローラ |
| US11528348B2 (en) * | 2018-11-19 | 2022-12-13 | Mitsubishi Electric Corporation | Communication system, communication device, communication method, and program for reliably receiving periodic data |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4395758A (en) * | 1979-12-10 | 1983-07-26 | Digital Equipment Corporation | Accelerator processor for a data processing system |
| US4547849A (en) * | 1981-12-09 | 1985-10-15 | Glenn Louie | Interface between a microprocessor and a coprocessor |
| US4509116A (en) * | 1982-04-21 | 1985-04-02 | Digital Equipment Corporation | Special instruction processing unit for data processing system |
| US4679166A (en) * | 1983-01-17 | 1987-07-07 | Tandy Corporation | Co-processor combination |
| US4715013A (en) * | 1983-04-18 | 1987-12-22 | Motorola, Inc. | Coprocessor instruction format |
| US4598356A (en) * | 1983-12-30 | 1986-07-01 | International Business Machines Corporation | Data processing system including a main processor and a co-processor and co-processor error handling logic |
| US4695945A (en) * | 1985-02-28 | 1987-09-22 | International Business Machines Corporation | Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor |
| US4763294A (en) * | 1985-12-19 | 1988-08-09 | Wang Laboratories, Inc. | Method and apparatus for floating point operations |
-
1987
- 1987-10-22 JP JP62267796A patent/JPH0679307B2/ja not_active Expired - Fee Related
-
1988
- 1988-10-21 US US07/260,699 patent/US4949241A/en not_active Expired - Lifetime
- 1988-10-24 EP EP88117683A patent/EP0313097B1/en not_active Expired - Lifetime
- 1988-10-24 DE DE3852604T patent/DE3852604T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0313097A2 (en) | 1989-04-26 |
| DE3852604D1 (de) | 1995-02-09 |
| EP0313097A3 (en) | 1992-03-11 |
| DE3852604T2 (de) | 1995-08-17 |
| US4949241A (en) | 1990-08-14 |
| EP0313097B1 (en) | 1994-12-28 |
| JPH01109466A (ja) | 1989-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3636871B2 (ja) | 並列プロセッサシステム | |
| JPH01109466A (ja) | コプロセッサの並行動作制御方式 | |
| JPH02171934A (ja) | 仮想計算機システム | |
| JPS62151971A (ja) | マイクロ・プロセツサ装置 | |
| JP3027843B2 (ja) | バススヌ−プ方法 | |
| JPS6293779A (ja) | Icカ−ド処理装置 | |
| JP2906958B2 (ja) | ユーザプログラムロード方式 | |
| JPH07234850A (ja) | マルチプロセッサの装置と方法 | |
| JP3144918B2 (ja) | ベクトル処理装置 | |
| JP2954006B2 (ja) | エミュレーション装置およびエミュレーション方法 | |
| JP2550708B2 (ja) | デバッグ方式 | |
| JPH0433130A (ja) | マルチチップ構成方法 | |
| JPH10198644A (ja) | 同期制御方法およびマルチプロセッサシステム | |
| JPH03246743A (ja) | プロセッサ間通信方式 | |
| JPH01106158A (ja) | プロセツサ間のデータ通信制御方式 | |
| JPS5834858B2 (ja) | デ−タ交換制御方式 | |
| JP3056169B2 (ja) | データ送受信方式とその方法 | |
| JP2554423Y2 (ja) | メモリ制御装置 | |
| JPH05224999A (ja) | 暴走処理装置 | |
| JPH03244045A (ja) | マイクロコンピュータ回路 | |
| JPH07111711B2 (ja) | 処理終了割込制御システム | |
| JPH05342026A (ja) | マルチプロセッサ装置及びその同期制御方式 | |
| JPH0820934B2 (ja) | ディスクキャッシュ制御方式 | |
| JPS63257856A (ja) | シリアル通信方式 | |
| JPH0424733B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |