JPH07262032A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH07262032A JPH07262032A JP6047547A JP4754794A JPH07262032A JP H07262032 A JPH07262032 A JP H07262032A JP 6047547 A JP6047547 A JP 6047547A JP 4754794 A JP4754794 A JP 4754794A JP H07262032 A JPH07262032 A JP H07262032A
- Authority
- JP
- Japan
- Prior art keywords
- sub
- instruction
- register
- processing device
- processor
- 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.)
- Withdrawn
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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
Abstract
(57)【要約】
【目的】 専用の演算等を行うコプロセッサを有するコ
ンパレータシステムの状態を管理する情報処理装置に関
し、コプロセッサが出力すべきデータの量が不明な場合
や、コプロセッサとコプロセッサ間の情報の不一致が生
じても、ハングアップせず適確に異常を検出する情報処
理装置を目的とする。 【構成】 第1には、異常を検出した際に、処理中のフ
ラグをオフとし、主処理装置は前記副処理装置命令に対
応して書き込まれるレジスタが残っているにもかかわら
ず、前記処理中のフラグはオフとなるので、それをもっ
て異常と判断する。第2には、処理中のフラグがオフで
バッファがFULLであることを表わすフラグがオンで
ある状態は存在せず、この状態を主処理装置で異常と判
断する。第3には、主処理装置は副処理装置に対し使用
するレジスタの数を転送し、副処理装置でその転送され
たレジスタの数と副処理装置命令によって書き込まれる
時使用装置のレジスタの数とを比較し、不一致のときに
副処理装置が異常と判断する。
ンパレータシステムの状態を管理する情報処理装置に関
し、コプロセッサが出力すべきデータの量が不明な場合
や、コプロセッサとコプロセッサ間の情報の不一致が生
じても、ハングアップせず適確に異常を検出する情報処
理装置を目的とする。 【構成】 第1には、異常を検出した際に、処理中のフ
ラグをオフとし、主処理装置は前記副処理装置命令に対
応して書き込まれるレジスタが残っているにもかかわら
ず、前記処理中のフラグはオフとなるので、それをもっ
て異常と判断する。第2には、処理中のフラグがオフで
バッファがFULLであることを表わすフラグがオンで
ある状態は存在せず、この状態を主処理装置で異常と判
断する。第3には、主処理装置は副処理装置に対し使用
するレジスタの数を転送し、副処理装置でその転送され
たレジスタの数と副処理装置命令によって書き込まれる
時使用装置のレジスタの数とを比較し、不一致のときに
副処理装置が異常と判断する。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
に係り、さらに詳しくは専用の演算等を行うコプロセッ
サを有するコンピュータシステムの状態を管理する情報
処理装置に関する。
に係り、さらに詳しくは専用の演算等を行うコプロセッ
サを有するコンピュータシステムの状態を管理する情報
処理装置に関する。
【0002】
【従来の技術】コンピュータシステムの処理能力の向上
のために、前後の命令をオーバーラップさせて実行する
いわゆるパイプライン処理と呼ばれる技術がプロセッサ
にも使用されている。このプロセッサのパイプライン処
理においては、命令のオペランドである汎用レジスタの
依存関係などの命令間の相互依存関係を検査する必要が
ある。
のために、前後の命令をオーバーラップさせて実行する
いわゆるパイプライン処理と呼ばれる技術がプロセッサ
にも使用されている。このプロセッサのパイプライン処
理においては、命令のオペランドである汎用レジスタの
依存関係などの命令間の相互依存関係を検査する必要が
ある。
【0003】汎用レジスタの依存関係の例として、例え
ば先行命令が書き込む汎用レジスタを後続命令が読み出
す場合、先行命令の書き込み終了を待ってから後続命令
は読み出しを行う必要がある。
ば先行命令が書き込む汎用レジスタを後続命令が読み出
す場合、先行命令の書き込み終了を待ってから後続命令
は読み出しを行う必要がある。
【0004】図15はプログラムとその実行の説明図で
ある。図15の2行目では1行目のレジスタGR3の結
果を用いて演算を行っている。すなわち、1行目の実行
ではその実行の終了時にレジスタGR3に書き込み、2
行目の実行ではその書き込んだ結果を読み出してレジス
タGR4とレジスタGR3の内容を加算しGR5に格納
している。よってこの2つのプログラムの中にはGR3
を一方では書き込み、他方では読み出して実行する依存
関係が存在する。
ある。図15の2行目では1行目のレジスタGR3の結
果を用いて演算を行っている。すなわち、1行目の実行
ではその実行の終了時にレジスタGR3に書き込み、2
行目の実行ではその書き込んだ結果を読み出してレジス
タGR4とレジスタGR3の内容を加算しGR5に格納
している。よってこの2つのプログラムの中にはGR3
を一方では書き込み、他方では読み出して実行する依存
関係が存在する。
【0005】前述した汎用レジスタの依存関係を守る方
法として、汎用レジスタそれぞれの使用中/未使用を示
すスコアボードと呼ばれるフラグレジスタを用いる方法
がある。
法として、汎用レジスタそれぞれの使用中/未使用を示
すスコアボードと呼ばれるフラグレジスタを用いる方法
がある。
【0006】例えば先行する命令が汎用レジスタへの書
き込みを行う場合には、以下のような操作をスコアボー
ドに対して行う。先ず命令を開始する際に、書き込む汎
用レジスタに対応するスコアボードのビットをセットし
使用中であることを示す。そして、汎用レジスタの書き
込みが終了したらスコアボードのビットをリセットし未
使用であることを示す。
き込みを行う場合には、以下のような操作をスコアボー
ドに対して行う。先ず命令を開始する際に、書き込む汎
用レジスタに対応するスコアボードのビットをセットし
使用中であることを示す。そして、汎用レジスタの書き
込みが終了したらスコアボードのビットをリセットし未
使用であることを示す。
【0007】後続命令が汎用レジスタの読み書きを行う
場合、その汎用レジスタに対応するスコアボードのビッ
トを使用して、汎用レジスタの依存関係を満足するよう
にしている。すなわち、レジスタを使用する際には、ス
コアボードのビットがセットされていなければ、そのレ
ジスタは未使用であり先行命令がレジスタに書き込むこ
とはないので、後続命令はレジスタを読み書きする。ま
た、ビットがセットされているならば、そのレジスタは
使用中であり、先行命令が今後レジスタに書き込む可能
性があるので、先行命令のレジスタの書き込みが終了し
たことをスコアボードのビットがリセットされたことに
より確認した後、後続命令が読み書きを行う。
場合、その汎用レジスタに対応するスコアボードのビッ
トを使用して、汎用レジスタの依存関係を満足するよう
にしている。すなわち、レジスタを使用する際には、ス
コアボードのビットがセットされていなければ、そのレ
ジスタは未使用であり先行命令がレジスタに書き込むこ
とはないので、後続命令はレジスタを読み書きする。ま
た、ビットがセットされているならば、そのレジスタは
使用中であり、先行命令が今後レジスタに書き込む可能
性があるので、先行命令のレジスタの書き込みが終了し
たことをスコアボードのビットがリセットされたことに
より確認した後、後続命令が読み書きを行う。
【0008】図16はプログラム実行の説明図である。
先行命令、例えばmltを実行する際、先ずそのmlt
をデコードした後、実行する。しかしながらその実行に
先立ち、スコアボード操作(Set)を行い、スコアボ
ード内の対応するレジスタのフラグを1にセットする。
続く後続命令をデコードした際、レジスタを使用するも
のであるならば、そのレジスタに対応するスコアボード
を参照する。その時、スコアボードは1であるので待ち
状態になる。そして、先行命令が終了しそのレジスタに
データが格納されると、スコアボードのフラグはリセッ
トすなわち0となる。この0により後続命令はウェイト
状態から解除され、次の命令をデコードした後、実行、
ライト等がなされる。
先行命令、例えばmltを実行する際、先ずそのmlt
をデコードした後、実行する。しかしながらその実行に
先立ち、スコアボード操作(Set)を行い、スコアボ
ード内の対応するレジスタのフラグを1にセットする。
続く後続命令をデコードした際、レジスタを使用するも
のであるならば、そのレジスタに対応するスコアボード
を参照する。その時、スコアボードは1であるので待ち
状態になる。そして、先行命令が終了しそのレジスタに
データが格納されると、スコアボードのフラグはリセッ
トすなわち0となる。この0により後続命令はウェイト
状態から解除され、次の命令をデコードした後、実行、
ライト等がなされる。
【0009】以上のような動作により依存関係を有する
レジスタのアクセスに対し、パイプライン処理を正常に
行うことができる構成としている。前述したスコアボー
ドはコプロセッサを有する処理システムについても同様
に使用されている。例えば、CPUがコプロセッサ命令
を実行し、CPUからコプロセッサにデータ、コマンド
等を転送しコプロセッサがその処理を行い、命令によっ
てはその結果をコプロセッサがCPUのレジスタに書き
込む、所謂スカラライトする場合がある。このような場
合、CPUは以下のような動作を行う。 (1) コプロセッサに出力するデータが格納されている汎
用レジスタが読み出し可能になり、かつ、コプロセッサ
が書き込む予定のCPU内部のレジスタが書き込み可能
になるまで、つまりコプロセッサ命令を発行出来るよう
になるまで、スコアボードを監視して待つ。 (2) 発行出来るようになるとコプロセッサが出力するデ
ータを書き込む予定のCPU内部のレジスタに対応する
スコアボードのビットをセットする。 (3) コプロセッサ命令を実行し、CPUからコプロセッ
サにデータ、コマンドを転送する。 (4) コプロセッサが出力したデータをCPU内部のレジ
スタに書き込む。 (5) CPU内部のスコアボードのビットをリセットす
る。
レジスタのアクセスに対し、パイプライン処理を正常に
行うことができる構成としている。前述したスコアボー
ドはコプロセッサを有する処理システムについても同様
に使用されている。例えば、CPUがコプロセッサ命令
を実行し、CPUからコプロセッサにデータ、コマンド
等を転送しコプロセッサがその処理を行い、命令によっ
てはその結果をコプロセッサがCPUのレジスタに書き
込む、所謂スカラライトする場合がある。このような場
合、CPUは以下のような動作を行う。 (1) コプロセッサに出力するデータが格納されている汎
用レジスタが読み出し可能になり、かつ、コプロセッサ
が書き込む予定のCPU内部のレジスタが書き込み可能
になるまで、つまりコプロセッサ命令を発行出来るよう
になるまで、スコアボードを監視して待つ。 (2) 発行出来るようになるとコプロセッサが出力するデ
ータを書き込む予定のCPU内部のレジスタに対応する
スコアボードのビットをセットする。 (3) コプロセッサ命令を実行し、CPUからコプロセッ
サにデータ、コマンドを転送する。 (4) コプロセッサが出力したデータをCPU内部のレジ
スタに書き込む。 (5) CPU内部のスコアボードのビットをリセットす
る。
【0010】尚、コプロセッサ命令を実行し、データ、
コマンドをコプロセッサの命令バッファに転送する際
に、コプロセッサの出力をCPUのどのレジスタに書き
込むのかというレジスタ番号情報をCPU内部のバッフ
ァ(ライト・アドレス・バッファ)に保存しておく。ま
た、コプロセッサの出力データをレジスタに書き込む場
合に、コプロセッサからCPUにデータだけを出力すれ
ばよく、レジスタ番号情報は出力する必要がない。
コマンドをコプロセッサの命令バッファに転送する際
に、コプロセッサの出力をCPUのどのレジスタに書き
込むのかというレジスタ番号情報をCPU内部のバッフ
ァ(ライト・アドレス・バッファ)に保存しておく。ま
た、コプロセッサの出力データをレジスタに書き込む場
合に、コプロセッサからCPUにデータだけを出力すれ
ばよく、レジスタ番号情報は出力する必要がない。
【0011】以下では、コプロセッサを有するCPUシ
ステムの動作について更に詳細に説明する。図17は従
来のCPU18の構成図である。このCPU18は後述
するコプロセッサ19と接続される。図17のCPU1
8はデコーダ(Decoder)1、レジスタファイル
(GR)2、スコアボード(Scoreboard)
3、演算回路(ALU)4、コントローラ(Contr
ol)5、ライトアドレスバッファ(Write−Ad
dress−Buffer)6、コプロインタフェース
(Copro Interface)7より構成され
る。
ステムの動作について更に詳細に説明する。図17は従
来のCPU18の構成図である。このCPU18は後述
するコプロセッサ19と接続される。図17のCPU1
8はデコーダ(Decoder)1、レジスタファイル
(GR)2、スコアボード(Scoreboard)
3、演算回路(ALU)4、コントローラ(Contr
ol)5、ライトアドレスバッファ(Write−Ad
dress−Buffer)6、コプロインタフェース
(Copro Interface)7より構成され
る。
【0012】尚、信号名と各回路の信号端子とは異なる
ものであるが、文章をわかりやすくするため、例えば、
「ALU WE端子より出力されるALU WE信号」
を略して「ALU WE」と表現する。また他の信号も
同様である。
ものであるが、文章をわかりやすくするため、例えば、
「ALU WE端子より出力されるALU WE信号」
を略して「ALU WE」と表現する。また他の信号も
同様である。
【0013】デコーダ1は命令すなわちオペコードをデ
コードし、どのような命令であるかを判断する回路であ
る。命令を実行する際、デコーダ1はデコードしている
命令が (1) 演算回路4に対する命令やコプロセッサに対する命
令か (2) どのような操作をする命令か (3) どのソース・レジスタを読み込む命令か (4) どのディスティネーション・レジスタに書き込む命
令か 等を判定する。
コードし、どのような命令であるかを判断する回路であ
る。命令を実行する際、デコーダ1はデコードしている
命令が (1) 演算回路4に対する命令やコプロセッサに対する命
令か (2) どのような操作をする命令か (3) どのソース・レジスタを読み込む命令か (4) どのディスティネーション・レジスタに書き込む命
令か 等を判定する。
【0014】演算回路4に対する命令の場合は、ALU
用のオペコードALU OPCODEを演算回路4に出
力する。演算結果をレジスタに書き込む命令の場合には
ALU WEフラグを立てる。尚、演算回路4に対する
命令ではない場合、ALU WEフラグを下げておけば結
果がレジスタに書かれないので、演算回路4がどのよう
な動作をしても問題なく、デコードしている命令が演算
回路4に対する命令であることを示すフラグは必要な
い。
用のオペコードALU OPCODEを演算回路4に出
力する。演算結果をレジスタに書き込む命令の場合には
ALU WEフラグを立てる。尚、演算回路4に対する
命令ではない場合、ALU WEフラグを下げておけば結
果がレジスタに書かれないので、演算回路4がどのよう
な動作をしても問題なく、デコードしている命令が演算
回路4に対する命令であることを示すフラグは必要な
い。
【0015】デコードしている命令がコプロセッサ命令
の場合は、COPRO VALIDフラグを立て、コプ
ロ用オペコードCOPRO OPCODEを出力する。
そのコプロセッサ命令が、処理の結果をCPUのレジス
タに書き込みする場合(スカラ・ライト)には、COP
RO WEフラグを立てる。デコードしている命令がコ
プロセッサ命令でない場合は、COPRO VALID
フラグ、COPRO WEフラグを下げる。
の場合は、COPRO VALIDフラグを立て、コプ
ロ用オペコードCOPRO OPCODEを出力する。
そのコプロセッサ命令が、処理の結果をCPUのレジス
タに書き込みする場合(スカラ・ライト)には、COP
RO WEフラグを立てる。デコードしている命令がコ
プロセッサ命令でない場合は、COPRO VALID
フラグ、COPRO WEフラグを下げる。
【0016】命令によって、何個のソース・レジスタを
読み出すか、ディスティネーション・レジスタに書き込
みを行うか否かは異なるため、レジスタ番号フィールド
が有効な場合と無効な場合がある。この為にソース・レ
ジスタ番号フィールドの値をSRC REG ADR
0、SRC REG ADR1に出力し、それらが有効
な(読み出す)時はSRC0 USED,SRC1 U
SEDフラグを立てる。ディスティネーション・レジス
タ番号フィールドの値をDIST REG ADRに出
力し、それが有効な(書き込む)時はDIST REG
USEDフラグを立てる。
読み出すか、ディスティネーション・レジスタに書き込
みを行うか否かは異なるため、レジスタ番号フィールド
が有効な場合と無効な場合がある。この為にソース・レ
ジスタ番号フィールドの値をSRC REG ADR
0、SRC REG ADR1に出力し、それらが有効
な(読み出す)時はSRC0 USED,SRC1 U
SEDフラグを立てる。ディスティネーション・レジス
タ番号フィールドの値をDIST REG ADRに出
力し、それが有効な(書き込む)時はDIST REG
USEDフラグを立てる。
【0017】図18はデコーダ1の構成図である。デコ
ーダ11は、オペコードを受け取り、それをデコードす
るユニットである。デコーダ11はデコードを終了した
ら、オペコードを供給するユニット(図示せず)に対し
て、D LAST FLOW信号を1することによっ
て、新たなオペコードを要求する。尚、図18において
はデコードした結果を詳細に説明するものであり、要部
を除き回路を略している。デコーダがコプロセッサ命令
をデコードする場合について説明する。
ーダ11は、オペコードを受け取り、それをデコードす
るユニットである。デコーダ11はデコードを終了した
ら、オペコードを供給するユニット(図示せず)に対し
て、D LAST FLOW信号を1することによっ
て、新たなオペコードを要求する。尚、図18において
はデコードした結果を詳細に説明するものであり、要部
を除き回路を略している。デコーダがコプロセッサ命令
をデコードする場合について説明する。
【0018】主命令はメインデコーダ(main de
coder)11で、DIST REG ADR1とC
OPRO W ADR2とSC W L CPUとにデ
コードされる。
coder)11で、DIST REG ADR1とC
OPRO W ADR2とSC W L CPUとにデ
コードされる。
【0019】SC W L CPUが2のときは、1サ
イクル目でDIST REG ADR1を、2サイクル
目ではCOPRO W ADR2を、DIST REG
ADRに出力する。D LAST FLOWに、1サ
イクル目では0、2サイクル目では1を出力し、コプロ
セッサ命令を2サイクルで実行する。
イクル目でDIST REG ADR1を、2サイクル
目ではCOPRO W ADR2を、DIST REG
ADRに出力する。D LAST FLOWに、1サ
イクル目では0、2サイクル目では1を出力し、コプロ
セッサ命令を2サイクルで実行する。
【0020】SC W CPUが1のときは、DIST
REGADR1を出力する。D LAST FLOWに
1を出力し、コプロセッサ命令を1サイクルで終了す
る。SC W CPUが0のときは、COPRO WE
(図17参照)に0が出力されているので、DIST
REG ADR1に何を出力しても良い。D LAST
FLOWに1を出力し、コプロセッサ命令を1サイク
ルで終了する。
REGADR1を出力する。D LAST FLOWに
1を出力し、コプロセッサ命令を1サイクルで終了す
る。SC W CPUが0のときは、COPRO WE
(図17参照)に0が出力されているので、DIST
REG ADR1に何を出力しても良い。D LAST
FLOWに1を出力し、コプロセッサ命令を1サイク
ルで終了する。
【0021】さらに詳しく説明する。SC W L C
PUが2以外の時はコンパレータ(comp)12の出
力端子(OUT)に0が出力されアンドゲート(and
1)13の出力も0になる。そのためD STAGE
RELEASEが1のときには、D LAST FLO
Wも1になる。また、フリップフロップ14(FF)に
0が入力されるため、DIST REG ADRの出力
として、DIST REG ADR1が出力される。
PUが2以外の時はコンパレータ(comp)12の出
力端子(OUT)に0が出力されアンドゲート(and
1)13の出力も0になる。そのためD STAGE
RELEASEが1のときには、D LAST FLO
Wも1になる。また、フリップフロップ14(FF)に
0が入力されるため、DIST REG ADRの出力
として、DIST REG ADR1が出力される。
【0022】SC W L CPUが2の時は、コンパ
レータ12の出力に1が出力される。また、フリップフ
ロップ14の出力Qは0のためアンドゲート13の出力
が1になり、D STAGE RELEASEが1であ
ってもアンドゲート(and2)15はオフとなるので
D LAST FLOWが0になる。そのためコプロセ
ッサ命令を1サイクルだけで終了せずに、2サイクル目
を開始する。1サイクル目のフリップフロップ(FF)
14の入力が1のため、2サイクル目のフリップフロッ
プの出力が1になり、セレクタ16はDIST REG
ADRとしてCOPRO W ADR2を選択する。
また、アンドゲート13の反転入力も1になるため、ア
ンドゲート13の出力は0になり、それが加わっている
アンドゲート15の出力すなわちD LAST FLO
Wが1になる。そして、次のサイクルでのフリップフロ
ップ14の出力は0になる。
レータ12の出力に1が出力される。また、フリップフ
ロップ14の出力Qは0のためアンドゲート13の出力
が1になり、D STAGE RELEASEが1であ
ってもアンドゲート(and2)15はオフとなるので
D LAST FLOWが0になる。そのためコプロセ
ッサ命令を1サイクルだけで終了せずに、2サイクル目
を開始する。1サイクル目のフリップフロップ(FF)
14の入力が1のため、2サイクル目のフリップフロッ
プの出力が1になり、セレクタ16はDIST REG
ADRとしてCOPRO W ADR2を選択する。
また、アンドゲート13の反転入力も1になるため、ア
ンドゲート13の出力は0になり、それが加わっている
アンドゲート15の出力すなわちD LAST FLO
Wが1になる。そして、次のサイクルでのフリップフロ
ップ14の出力は0になる。
【0023】演算の引数、結果等を保存するためにレジ
スタ・ファイル2は使用される。前述した如く、演算回
路4とコプロセッサ19とが、レジスタ・ファイル2に
同時に書き込む可能性があるので、レジスタ・ファイル
2は書き込みポートを2個持っている。ALU命令、コ
プロセッサ命令どちらも、最大2つのレジスタを読み出
すが、両方の命令が同時に読み出すことはないので、読
み出しポートは2個で十分である。
スタ・ファイル2は使用される。前述した如く、演算回
路4とコプロセッサ19とが、レジスタ・ファイル2に
同時に書き込む可能性があるので、レジスタ・ファイル
2は書き込みポートを2個持っている。ALU命令、コ
プロセッサ命令どちらも、最大2つのレジスタを読み出
すが、両方の命令が同時に読み出すことはないので、読
み出しポートは2個で十分である。
【0024】レジスタ・ファイル2はRD ADR0が
指定するレジスタの内容をRD DATA0に出力す
る。同様にRD ADR1レジスタの内容をRD DA
TA1に出力する。また、書き込み許可WE0が立った
ら、レジスタ・ファイル2はWR ADR0が指定する
レジスタにWR DATA0の値を書き込む。同様にW
E1が立ったらWR ADR1レジスタに値WR DA
TA1を書き込む。
指定するレジスタの内容をRD DATA0に出力す
る。同様にRD ADR1レジスタの内容をRD DA
TA1に出力する。また、書き込み許可WE0が立った
ら、レジスタ・ファイル2はWR ADR0が指定する
レジスタにWR DATA0の値を書き込む。同様にW
E1が立ったらWR ADR1レジスタに値WR DA
TA1を書き込む。
【0025】スコアボード3はレジスタの依存関係を守
るための回路である。図14における演算回路4は、演
算を開始してから結果をレジスタに書き込むまでを1ク
ロックで行うことができるが、コプロセッサ19は複数
クロック必要である。よって、コプロセッサ19が書き
込むレジスタファイルGR中のレジスタを、後続の命令
が読み出す場合、コプロセッサ19が実際に書き込む以
前に後続の命令が読み出してしまうことが起こり得る。
そのため、コプロセッサ19が実際に書き込んだことを
確認した後に、後続の命令はレジスタを読み出さなけれ
ばならない。このような依存関係を守るために、スコア
ボード3が設けられている。
るための回路である。図14における演算回路4は、演
算を開始してから結果をレジスタに書き込むまでを1ク
ロックで行うことができるが、コプロセッサ19は複数
クロック必要である。よって、コプロセッサ19が書き
込むレジスタファイルGR中のレジスタを、後続の命令
が読み出す場合、コプロセッサ19が実際に書き込む以
前に後続の命令が読み出してしまうことが起こり得る。
そのため、コプロセッサ19が実際に書き込んだことを
確認した後に、後続の命令はレジスタを読み出さなけれ
ばならない。このような依存関係を守るために、スコア
ボード3が設けられている。
【0026】スコアボード3は以下のように利用する。
レジスタに書き込む命令を開始する時にスコアボード3
をセットし、そのレジスタは使用中であることを示す。
そして、レジスタに書き込んだ後にスコアボード3をリ
セットし、レジスタが未使用であることを示す。後続の
命令はレジスタを読み出す際にスコアボード3をチェッ
クし、使用中でないことを確認する。レジスタが使用中
だった場合は、デコード・ステージを繰り返し、レジス
タが未使用になるまで待つ。
レジスタに書き込む命令を開始する時にスコアボード3
をセットし、そのレジスタは使用中であることを示す。
そして、レジスタに書き込んだ後にスコアボード3をリ
セットし、レジスタが未使用であることを示す。後続の
命令はレジスタを読み出す際にスコアボード3をチェッ
クし、使用中でないことを確認する。レジスタが使用中
だった場合は、デコード・ステージを繰り返し、レジス
タが未使用になるまで待つ。
【0027】スコアボード3は、レジスタが使用中/未
使用をチェックするためのポートを3個、使用中にする
ためのポートを1個、未使用にするためのポートを1個
持っている。また、命令は、レジスタを最大2つ引数に
とるので、チェックのためのポートが2個用意されてい
る。尚ALU命令は、1クロックでレジスタに書き込み
を行うので、スコアボードのセット/リセットを行う必
要がない。そこで、コプロセッサ命令用に、使用中/未
使用にするためのポートが1個づつ用意されている。
使用をチェックするためのポートを3個、使用中にする
ためのポートを1個、未使用にするためのポートを1個
持っている。また、命令は、レジスタを最大2つ引数に
とるので、チェックのためのポートが2個用意されてい
る。尚ALU命令は、1クロックでレジスタに書き込み
を行うので、スコアボードのセット/リセットを行う必
要がない。そこで、コプロセッサ命令用に、使用中/未
使用にするためのポートが1個づつ用意されている。
【0028】スコアボード3は具体的には以下のように
動作する。レジスタ番号RD0 CHKが指定するスコ
アボードのビットが立っている場合は、RD0 CHK
レジスタは使用中であるため、SRC0 BUSYフラ
グを立てる。同様にレジスタ番号RD1 CHK、WR
CHKについても、使用中の場合は、SRC1 BU
SY,WR BUSYフラグを立てる。
動作する。レジスタ番号RD0 CHKが指定するスコ
アボードのビットが立っている場合は、RD0 CHK
レジスタは使用中であるため、SRC0 BUSYフラ
グを立てる。同様にレジスタ番号RD1 CHK、WR
CHKについても、使用中の場合は、SRC1 BU
SY,WR BUSYフラグを立てる。
【0029】D STAGE RELEASE,D W
Eが立っている場合は、レジスタに書き込みを行う命令
のデコードが終了し、演算を開始する場合なので、WR
SETが指定するスコアボードのビットを立て、WR
SETレジスタを使用中にする。(ALUによる演算
は1クロックで終了するので、スコアボードをセットす
る必要はない)。
Eが立っている場合は、レジスタに書き込みを行う命令
のデコードが終了し、演算を開始する場合なので、WR
SETが指定するスコアボードのビットを立て、WR
SETレジスタを使用中にする。(ALUによる演算
は1クロックで終了するので、スコアボードをセットす
る必要はない)。
【0030】一方、書き込み許可W WEが立っている
ことは、WR RESレジスタへの書き込みが行われる
ことを意味しているので、レジスタ番号WR RESが
指定するスコアボードのビットをリセットし、未使用と
する。
ことは、WR RESレジスタへの書き込みが行われる
ことを意味しているので、レジスタ番号WR RESが
指定するスコアボードのビットをリセットし、未使用と
する。
【0031】コントローラ(Control)5はスコ
アボード3のチェックの結果等から、デコード・ステー
ジを終了して演算を開始できるか否かを判定する。演算
を開始できる場合は、D STAGE RELEASE
フラグを立てる。
アボード3のチェックの結果等から、デコード・ステー
ジを終了して演算を開始できるか否かを判定する。演算
を開始できる場合は、D STAGE RELEASE
フラグを立てる。
【0032】ALUに対する命令をデコードしている時
はレジスタの依存関係を満足していれば、演算を開始で
きる。つまり、使用する有効なレジスタ番号のスコアボ
ードのビットが立っていなければよい。具体的には、
(SRC0 BUSY andSRC0 USED)、
(SRC1 BUSY and SRC1 USE
D)、(WR BUSY and DIST REG
USED)の全てが立っていなかったら、D STAG
E RELEASEフラグを立てる。
はレジスタの依存関係を満足していれば、演算を開始で
きる。つまり、使用する有効なレジスタ番号のスコアボ
ードのビットが立っていなければよい。具体的には、
(SRC0 BUSY andSRC0 USED)、
(SRC1 BUSY and SRC1 USE
D)、(WR BUSY and DIST REG
USED)の全てが立っていなかったら、D STAG
E RELEASEフラグを立てる。
【0033】COPRO VALフラグが立っている時
は、コプロセッサ19に対する命令をデコードしてお
り、上の条件に加え、(1) Copro Interfa
ceが動作中ではない、(2) Write Addres
s Bufferが使用されていない(スカラ・ライト
が行う命令の場合)、が満たされれば、デコード・ステ
ージを終了できる。すなわち制御回路5は(SRC0
BUSY and SRC0 USED)、(SRC1
BUSY and SRC1 USED)、(WR
BUSY and DIST REG USED)、CO
PRO IF BUSY,COM FULL,(COP
RO WE and WAB USED)の全てが立って
いなかったら、D STAGE RELEASEフラグ
を立てる。換言するならば、どれか1つか立っていたら
フラグは立てない。
は、コプロセッサ19に対する命令をデコードしてお
り、上の条件に加え、(1) Copro Interfa
ceが動作中ではない、(2) Write Addres
s Bufferが使用されていない(スカラ・ライト
が行う命令の場合)、が満たされれば、デコード・ステ
ージを終了できる。すなわち制御回路5は(SRC0
BUSY and SRC0 USED)、(SRC1
BUSY and SRC1 USED)、(WR
BUSY and DIST REG USED)、CO
PRO IF BUSY,COM FULL,(COP
RO WE and WAB USED)の全てが立って
いなかったら、D STAGE RELEASEフラグ
を立てる。換言するならば、どれか1つか立っていたら
フラグは立てない。
【0034】よって、図19に示すごとく、制御回路5
はアンドゲート51〜56とノアゲート57より成り、
アンドゲート51〜56で(SRC0 BUSY an
dSRC0 USED),(SRC1 BUSY an
d SRC1 USED),(WR BUSY and
DIST REG USED),(COPRO WE
and WAB USED),(COPRO MALI
D and COM FULL),(COPRO VA
LID and COPRO IF BUSY)のアン
ド論理を求め、それらの全てが立っていなかったら、デ
コード・ステージを終了し、ノアゲート57によってD
STAGE RELEASEフラグを立てる。
はアンドゲート51〜56とノアゲート57より成り、
アンドゲート51〜56で(SRC0 BUSY an
dSRC0 USED),(SRC1 BUSY an
d SRC1 USED),(WR BUSY and
DIST REG USED),(COPRO WE
and WAB USED),(COPRO MALI
D and COM FULL),(COPRO VA
LID and COPRO IF BUSY)のアン
ド論理を求め、それらの全てが立っていなかったら、デ
コード・ステージを終了し、ノアゲート57によってD
STAGE RELEASEフラグを立てる。
【0035】演算回路4はCPU18内において求める
四則演算並びに論理演算を行う回路である。デコードス
テージでデコーダ1によって、どのような演算をするか
(OPCODE)、どの値を引数に演算するか(RD
DATA0,RD DAT1)、演算結果をレジスタに
書き込むか(WE)、どのレジスタに演算結果を書き込
むか(DIST REG ADR)、がデコードされ
て、演算回路4に加わる。そしてこのデコード・ステー
ジが終了すると演算回路4は演算を開始する。尚、演算
結果をレジスタに書き込まなければ、演算回路4に対す
る命令を実行するとき以外に無駄な演算を行っても問題
はないため、演算を行うか否かのフラグが入力される必
要はない。
四則演算並びに論理演算を行う回路である。デコードス
テージでデコーダ1によって、どのような演算をするか
(OPCODE)、どの値を引数に演算するか(RD
DATA0,RD DAT1)、演算結果をレジスタに
書き込むか(WE)、どのレジスタに演算結果を書き込
むか(DIST REG ADR)、がデコードされ
て、演算回路4に加わる。そしてこのデコード・ステー
ジが終了すると演算回路4は演算を開始する。尚、演算
結果をレジスタに書き込まなければ、演算回路4に対す
る命令を実行するとき以外に無駄な演算を行っても問題
はないため、演算を行うか否かのフラグが入力される必
要はない。
【0036】演算回路4は、具体的には以下のように動
作する。D STAGE RELEASEが立っていた
ら、OPCODE,DIST REG ADR,WE,
RD DATA0,RD DATA1をクロックに同期し
て演算回路4内のレジスタに取り込み、RD DATA
0,RD DATA1を引数に(使用しない場合もあ
る)、OPCODEで指定された演算を行い、結果をW
R DATAに出力する。
作する。D STAGE RELEASEが立っていた
ら、OPCODE,DIST REG ADR,WE,
RD DATA0,RD DATA1をクロックに同期し
て演算回路4内のレジスタに取り込み、RD DATA
0,RD DATA1を引数に(使用しない場合もあ
る)、OPCODEで指定された演算を行い、結果をW
R DATAに出力する。
【0037】WEが立っているのは演算結果をレジスタ
に書き込む命令であることを示しており、DATA W
Eには演算回路4内部で保持したWEを、WR ADR
にはALU内部で保持したレジスタ番号DIST RE
G ADRを出力する。ライトアドレスバッファ6は後
述するコプロセッサ19が書き込むCPU18のレジス
タの番号を保存する。すなわち、コプロセッサ命令のう
ち、CPU18のレジスタへの書き込み(スカラ・ライ
ト)を行う命令について、どのレジスタへの書き込みを
行うのかという情報をCPU18側で保存しておくため
に使用される。デコードステージが終了した時にレジス
タ番号がこのバッファに蓄えられ、コプロセッサがスカ
ラ・ライトを行う時に取り出される。
に書き込む命令であることを示しており、DATA W
Eには演算回路4内部で保持したWEを、WR ADR
にはALU内部で保持したレジスタ番号DIST RE
G ADRを出力する。ライトアドレスバッファ6は後
述するコプロセッサ19が書き込むCPU18のレジス
タの番号を保存する。すなわち、コプロセッサ命令のう
ち、CPU18のレジスタへの書き込み(スカラ・ライ
ト)を行う命令について、どのレジスタへの書き込みを
行うのかという情報をCPU18側で保存しておくため
に使用される。デコードステージが終了した時にレジス
タ番号がこのバッファに蓄えられ、コプロセッサがスカ
ラ・ライトを行う時に取り出される。
【0038】スカラ・ライトを行うコプロセッサ命令の
デコードが終了した時に、D STAGE RELEA
SE,BUFFER WEが立つ。その場合は、レジス
タ番号WR ADR INを内部のバッファに格納し、
そのバッファのそのエントリが有効なことを示すエント
リのビットを立てる。
デコードが終了した時に、D STAGE RELEA
SE,BUFFER WEが立つ。その場合は、レジス
タ番号WR ADR INを内部のバッファに格納し、
そのバッファのそのエントリが有効なことを示すエント
リのビットを立てる。
【0039】コプロセッサ19がスカラ・ライトを行う
時に、SC W DATA VALが立つ。その場合
は、バッファの有効なエントリからレジスタ番号を取り
出しWR ADR OUTに出力し、書き込み許可であ
るSC WEを立てる。
時に、SC W DATA VALが立つ。その場合
は、バッファの有効なエントリからレジスタ番号を取り
出しWR ADR OUTに出力し、書き込み許可であ
るSC WEを立てる。
【0040】前述のバッファは、ある1個のコプロセッ
サ命令が書き込むレジスタの番号だけを保存する。1個
でもレジスタ番号を保存している時にはWAB USE
Dフラグを立て、以降のスカラ・ライトを行うコプロセ
ッサ命令のデコードが終了しないようにしている。
サ命令が書き込むレジスタの番号だけを保存する。1個
でもレジスタ番号を保存している時にはWAB USE
Dフラグを立て、以降のスカラ・ライトを行うコプロセ
ッサ命令のデコードが終了しないようにしている。
【0041】ライトアドレスバッファ6はファイルレジ
スタにコプロセッサより格納するためのレジスタアドレ
スすなわちスカラ・ライトするアドレスを記憶する回路
である。
スタにコプロセッサより格納するためのレジスタアドレ
スすなわちスカラ・ライトするアドレスを記憶する回路
である。
【0042】図20は従来のライトアドレスバッファの
構成図である。ライトアドレスバッファ6内には5つの
フリップフロップが設けられている。フリップフロップ
61(ADR1)はスカラライト先のレジスタ番号を記
憶する。フリップフロップ62(ADR2)はスカララ
イトを2回行う場合の2回目のスカラライト先のレジス
タ番号を記憶する。フリップフロップ64(FFD)は
コプロセッサ命令デコード時にWR ADR IN信号
をフリップフロップ61,62のどちらかに格納するか
を記憶する。尚、フリップフロップ61に格納する場合
には0を記憶する。フリップフロップ63(FFSC)
は、スカラライト時にアドレスADR1,ADR2のど
ちらかをWR ADR OUTに出力するかを決定す
る。ADR1に出力する場合は0である。フリップフロ
ップ65(FFU)はWRITE ADDRESS BU
FFERが使用されている場合に1を記憶する。
構成図である。ライトアドレスバッファ6内には5つの
フリップフロップが設けられている。フリップフロップ
61(ADR1)はスカラライト先のレジスタ番号を記
憶する。フリップフロップ62(ADR2)はスカララ
イトを2回行う場合の2回目のスカラライト先のレジス
タ番号を記憶する。フリップフロップ64(FFD)は
コプロセッサ命令デコード時にWR ADR IN信号
をフリップフロップ61,62のどちらかに格納するか
を記憶する。尚、フリップフロップ61に格納する場合
には0を記憶する。フリップフロップ63(FFSC)
は、スカラライト時にアドレスADR1,ADR2のど
ちらかをWR ADR OUTに出力するかを決定す
る。ADR1に出力する場合は0である。フリップフロ
ップ65(FFU)はWRITE ADDRESS BU
FFERが使用されている場合に1を記憶する。
【0043】以下では更にコプロセッサ命令をデコード
した際のライトアドレスバッファ6の動作について説明
する。スカラ・ライトを行うコプロセッサ命令をデコー
ドしている時は、フリップフロップ61,62にアドレ
スADR1,ADR2を格納する。
した際のライトアドレスバッファ6の動作について説明
する。スカラ・ライトを行うコプロセッサ命令をデコー
ドしている時は、フリップフロップ61,62にアドレ
スADR1,ADR2を格納する。
【0044】フリップフロップ64の初期値は0であ
り、スカラ・ライトを行うコプロセッサ命令の場合はア
ンドゲート60の出力が1になる。またアンドゲート6
6の出力が1になるため、WR ADR INがフリッ
プフロップ61に格納される。SC W DATA V
ALは0のため、アンドゲート67の出力は1である。
よってフリップフロップ65に1が格納される。
り、スカラ・ライトを行うコプロセッサ命令の場合はア
ンドゲート60の出力が1になる。またアンドゲート6
6の出力が1になるため、WR ADR INがフリッ
プフロップ61に格納される。SC W DATA V
ALは0のため、アンドゲート67の出力は1である。
よってフリップフロップ65に1が格納される。
【0045】フリップフロップ64の値は0のため、イ
ンバート68の出力は1である。よって、アンドゲート
60が1となると、フリップフロップ64はイネーブル
となってインバータ68の出力である1が格納される。
スカラ・ライトを2個のレジスタに対して行うコプロセ
ッサ命令の場合は、次のサイクルで再びアンドゲート6
0の出力が1になる。フリップフロップ64は1を記憶
しているため、アンドゲート69の出力が1になる。よ
って、WR ADR INはフリップフロップ62に格
納される。SC W DATA VALは0のため、ア
ンドゲート67の出力は1であり、またフリップフロッ
プ65は1のままであり、さらにフリップフロップ64
の値は1のためインバータ60の出力は0である。よっ
てフリップフロップ64に0が格納される。
ンバート68の出力は1である。よって、アンドゲート
60が1となると、フリップフロップ64はイネーブル
となってインバータ68の出力である1が格納される。
スカラ・ライトを2個のレジスタに対して行うコプロセ
ッサ命令の場合は、次のサイクルで再びアンドゲート6
0の出力が1になる。フリップフロップ64は1を記憶
しているため、アンドゲート69の出力が1になる。よ
って、WR ADR INはフリップフロップ62に格
納される。SC W DATA VALは0のため、ア
ンドゲート67の出力は1であり、またフリップフロッ
プ65は1のままであり、さらにフリップフロップ64
の値は1のためインバータ60の出力は0である。よっ
てフリップフロップ64に0が格納される。
【0046】スカラ・ライトが行われ時は、フリップフ
ロップ61,62の値がWR ADR OUTに出力さ
れる。先ず、SC W DATA VALが1になる。
フリップフロップ63,64,65はそれぞれ0,0,
1である。セレクト信号は0であるのでフリップフロッ
プ61の出力が選択される。この時、ナンドゲート67
の出力は1である。フリップフロップ64,63の一方
が1で他方が0である時EX−ORゲート71の出力は
1となり、さらにアンドゲート60の出力が1であるの
で共に入力に1が加わるからアンドゲート67の出力は
0となる。アンドゲート67の出力は0であるので、フ
リップフロップ65に0が格納される。尚、この時オア
ゲート73の出力は1であり、フリップフロップ65が
イネーブルとなって前述の0が格納される。また、フリ
ップフロップ63の値は1のため、インバータ70の出
力は0である。フリップフロップ63に0が格納され
る。
ロップ61,62の値がWR ADR OUTに出力さ
れる。先ず、SC W DATA VALが1になる。
フリップフロップ63,64,65はそれぞれ0,0,
1である。セレクト信号は0であるのでフリップフロッ
プ61の出力が選択される。この時、ナンドゲート67
の出力は1である。フリップフロップ64,63の一方
が1で他方が0である時EX−ORゲート71の出力は
1となり、さらにアンドゲート60の出力が1であるの
で共に入力に1が加わるからアンドゲート67の出力は
0となる。アンドゲート67の出力は0であるので、フ
リップフロップ65に0が格納される。尚、この時オア
ゲート73の出力は1であり、フリップフロップ65が
イネーブルとなって前述の0が格納される。また、フリ
ップフロップ63の値は1のため、インバータ70の出
力は0である。フリップフロップ63に0が格納され
る。
【0047】また、ライトアドレスバッファ6は、SC
W DATA VAL信号を受け取り、そのままSC
WE信号として出力する。SC WE信号の意味は、
SC W DATA VAL信号と同じで、コプロセッサ
がスカラ・ライトを行う時に1とする。
W DATA VAL信号を受け取り、そのままSC
WE信号として出力する。SC WE信号の意味は、
SC W DATA VAL信号と同じで、コプロセッサ
がスカラ・ライトを行う時に1とする。
【0048】コプロインタフェース(Copro In
terface)7は以下の如く動作する。コプロセッ
サ19とCPU18の間の信号線は数が限られているの
で、コプロインタフェース回路7は送信するコマンド、
データをマルチプレクスする。D STAGE REL
EASE,VALIDが立っていることは、デコード・
ステージが終了し、コプロセッサに送るべきコマンド、
データがコプロインタフェース7に出力されているすな
わちDATA0,DATA1,OPCODEが入力され
ていることを示している。よって、コプロインタフェー
ス7は、OPCODE(コプロセッサが実行する命令)
とRD DATA0,RD DATA1(命令のパラメ
ータ)とをマルチプレクスし、COPRO COMに出
力する。そのときCOPRO COMが有効なことをコ
プロセッサに通知するために、COPRO COM V
ALフラグを立てる。尚、何個のレジスタにスカラ・ラ
イトするかという情報(SC W L LENGTH)
はOPCODEの中に含まれている。
terface)7は以下の如く動作する。コプロセッ
サ19とCPU18の間の信号線は数が限られているの
で、コプロインタフェース回路7は送信するコマンド、
データをマルチプレクスする。D STAGE REL
EASE,VALIDが立っていることは、デコード・
ステージが終了し、コプロセッサに送るべきコマンド、
データがコプロインタフェース7に出力されているすな
わちDATA0,DATA1,OPCODEが入力され
ていることを示している。よって、コプロインタフェー
ス7は、OPCODE(コプロセッサが実行する命令)
とRD DATA0,RD DATA1(命令のパラメ
ータ)とをマルチプレクスし、COPRO COMに出
力する。そのときCOPRO COMが有効なことをコ
プロセッサに通知するために、COPRO COM V
ALフラグを立てる。尚、何個のレジスタにスカラ・ラ
イトするかという情報(SC W L LENGTH)
はOPCODEの中に含まれている。
【0049】前述したデータをマルチプレクスして送信
するには、複数クロック必要である。その間、BUSY
フラグを立てて、新たなコプロセッサ命令がデコード・
ステージを終了しコプロインタフェース7に送られてく
るのを防ぐ。
するには、複数クロック必要である。その間、BUSY
フラグを立てて、新たなコプロセッサ命令がデコード・
ステージを終了しコプロインタフェース7に送られてく
るのを防ぐ。
【0050】さらに詳細に説明する。図21はコプロイ
ンタフェース7の構成図である。VALIDが1でD
STAGE RELEASEが1の時、アンドゲート7
4は1を出力する。そのアンドゲート74の出力はフリ
ップフロップ75,76,77とカウンタ78のリセッ
ト端子に入力する。
ンタフェース7の構成図である。VALIDが1でD
STAGE RELEASEが1の時、アンドゲート7
4は1を出力する。そのアンドゲート74の出力はフリ
ップフロップ75,76,77とカウンタ78のリセッ
ト端子に入力する。
【0051】イネーブル端子CEに1が加わると、フリ
ップフロップ75,76,77は入力するR DATA
0,R DATA1,OPCODEをそれぞれ取り込
む。そして、3ビットアップカウンタ78がアップ動作
を開始し、先ずフリップフロップ75をセレクタ79は
選択しCOPRO COMとして出力する。続いてフリ
ップフロップ76の出力を、さらに続いてフリップフロ
ップ77の出力をセレクタ79で選択し出力する。一
方、インバータ80には3ビットアップカウンタのMS
Bが加わっており、MSBが0である間、その0を反転
してCOPRO COM VALを1とすると共に、B
USYを1とする。これによりコプロセッサに対して限
られている信号線でコプロセッサに対するコマンドが送
られる。
ップフロップ75,76,77は入力するR DATA
0,R DATA1,OPCODEをそれぞれ取り込
む。そして、3ビットアップカウンタ78がアップ動作
を開始し、先ずフリップフロップ75をセレクタ79は
選択しCOPRO COMとして出力する。続いてフリ
ップフロップ76の出力を、さらに続いてフリップフロ
ップ77の出力をセレクタ79で選択し出力する。一
方、インバータ80には3ビットアップカウンタのMS
Bが加わっており、MSBが0である間、その0を反転
してCOPRO COM VALを1とすると共に、B
USYを1とする。これによりコプロセッサに対して限
られている信号線でコプロセッサに対するコマンドが送
られる。
【0052】図22は前述したCPU18で制御される
従来のコプロセッサ19の構成図である。コプロセッサ
19はCPU18から送られたコマンドやデータを記憶
するバッファ81、コプロセッサ命令のデコード等を行
うコントローラ82、例外発生時の処理を行うエクセプ
ション83、ダミー等のスカラライトを行うスカラライ
トユニット84、コプロセッサとしての演算を行うファ
ンクションユニット85とよりなる。
従来のコプロセッサ19の構成図である。コプロセッサ
19はCPU18から送られたコマンドやデータを記憶
するバッファ81、コプロセッサ命令のデコード等を行
うコントローラ82、例外発生時の処理を行うエクセプ
ション83、ダミー等のスカラライトを行うスカラライ
トユニット84、コプロセッサとしての演算を行うファ
ンクションユニット85とよりなる。
【0053】従来のコプロセッサ19にはコプロセッサ
19が動作している時でも、CPU18から送られてく
るデータ(コマンド)等が受け取れるようにバッファ8
1が設けられている。このバッファを設けたことによっ
て、データの依存関係が無いにもかかわらずCPU18
からコプロセッサにデータ(コマンド)が行えないため
CPUが停止してしまう回数を減少させている。
19が動作している時でも、CPU18から送られてく
るデータ(コマンド)等が受け取れるようにバッファ8
1が設けられている。このバッファを設けたことによっ
て、データの依存関係が無いにもかかわらずCPU18
からコプロセッサにデータ(コマンド)が行えないため
CPUが停止してしまう回数を減少させている。
【0054】COPRO COM VALがたってい
る、すなわち1である時は、COPRO COMが有効
であるのでそれをバッファに取り込む。READがたっ
ている時はバッファのデータが要求されている時なので
出力する。バッファが一杯な時にはFULLを、空でな
い時にはBUSYをたてる、すなわち1とする。コプロ
セッサからCPU18にFULLを通知することによっ
て、バッファが一杯の時にCPU18がコンプレッサ1
9にデータ、コマンドを送らないようにする。またコン
トローラ82はBUSYを読むことによって未処理のデ
ータ(コマンド)がバッファに残っているかどうかを知
る。
る、すなわち1である時は、COPRO COMが有効
であるのでそれをバッファに取り込む。READがたっ
ている時はバッファのデータが要求されている時なので
出力する。バッファが一杯な時にはFULLを、空でな
い時にはBUSYをたてる、すなわち1とする。コプロ
セッサからCPU18にFULLを通知することによっ
て、バッファが一杯の時にCPU18がコンプレッサ1
9にデータ、コマンドを送らないようにする。またコン
トローラ82はBUSYを読むことによって未処理のデ
ータ(コマンド)がバッファに残っているかどうかを知
る。
【0055】図23は従来のバッファの構成図である。
COPRO COM VALがアップカウンタ90に加
わるとカウント動作を開始し、カウントアップする。そ
れに対応して、その出力が加わるデコーダ91はそのカ
ウント値をデコードし、デコード結果をアンドゲート9
2〜97に出力する。
COPRO COM VALがアップカウンタ90に加
わるとカウント動作を開始し、カウントアップする。そ
れに対応して、その出力が加わるデコーダ91はそのカ
ウント値をデコードし、デコード結果をアンドゲート9
2〜97に出力する。
【0056】COPRO COM VALが1の時デコ
ーダ91でデコードされた1個の出力のアンドゲートの
みオンとなってフリップフロップ98〜103のイネー
ブル端子CEに入力する。すなわち、カウントアップす
るたびにデコーダからデコード値が出力され、順次アン
ドゲート92〜97が1を出力し、その出力が加わるフ
リップフロップがイネーブルとなり、COPRO CO
Mのコマンドやデータをフリップフロップ98〜103
が取り込む。なお、アンドゲート97にはデコーダ91
の最終デコード値が加わっておりアンドゲート97を介
してフリップフロップ103にイネーブルが加わると、
それに対応してフリップフロップ105にもイネーブル
が加わる。また、フリップフロップ105の入力も1と
なるので、この時フリップフロップ105は1を取り込
んで出力する。すなわち、最終デコード値をデコードし
た時にはフリップフロップ105がセットされ、1を出
力する。
ーダ91でデコードされた1個の出力のアンドゲートの
みオンとなってフリップフロップ98〜103のイネー
ブル端子CEに入力する。すなわち、カウントアップす
るたびにデコーダからデコード値が出力され、順次アン
ドゲート92〜97が1を出力し、その出力が加わるフ
リップフロップがイネーブルとなり、COPRO CO
Mのコマンドやデータをフリップフロップ98〜103
が取り込む。なお、アンドゲート97にはデコーダ91
の最終デコード値が加わっておりアンドゲート97を介
してフリップフロップ103にイネーブルが加わると、
それに対応してフリップフロップ105にもイネーブル
が加わる。また、フリップフロップ105の入力も1と
なるので、この時フリップフロップ105は1を取り込
んで出力する。すなわち、最終デコード値をデコードし
た時にはフリップフロップ105がセットされ、1を出
力する。
【0057】同様にフリップフロップ106の入力には
デコーダ91が特定値をデコードした時に1が、さらに
オアゲート107を介してイネーブル端子に1が加わり
セットされる。
デコーダ91が特定値をデコードした時に1が、さらに
オアゲート107を介してイネーブル端子に1が加わり
セットされる。
【0058】すなわちアップカウンタ90がカウントを
開始し特定値になった際にアンドゲート94を介して入
力Dに1が加わり、さらにオアゲート107を介してイ
ネーブル端子に1が加わるので、一連のコマンドを記憶
した際に1を記憶する。さらに最大バッファまで格納し
た時にはフリップフロップ105が1に設定される。そ
のフリップフロップ106,105の出力が加わるアン
ドゲート108はFULLを出力する。また、フリップ
フロップ106あるいはフリップフロップ105の一方
が1に設定された際はオアゲート109を介してBUS
Yが1として出力される。
開始し特定値になった際にアンドゲート94を介して入
力Dに1が加わり、さらにオアゲート107を介してイ
ネーブル端子に1が加わるので、一連のコマンドを記憶
した際に1を記憶する。さらに最大バッファまで格納し
た時にはフリップフロップ105が1に設定される。そ
のフリップフロップ106,105の出力が加わるアン
ドゲート108はFULLを出力する。また、フリップ
フロップ106あるいはフリップフロップ105の一方
が1に設定された際はオアゲート109を介してBUS
Yが1として出力される。
【0059】前述した動作と同様に、アップカウンタ1
10はREADが加わると順次カウントをアップする。
そのカウント値を対応したフリップフロップの出力をセ
レクタ112が選択しコマンドとして出力する。このと
きデコーダ111はカウント値が最大値であった時には
フリップフロップ105をイネーブルとする。この時、
そのフリップフロップ105の入力Dには0が加わるの
でフリップフロップ105は0を記憶する。すなわちフ
リップフロップ105をリセットする。また、コマンド
を出力した時フリップフロップ106をリセットし、B
USYで無くする。なお、前述したフリップフロップ1
05,106等には図示しないがシステムクロックが入
力しており各データはそのシステムクロックに同期して
動作する。以上のような動作により、バッファが動作
し、CPU18から非同期に送られてもデータやコマン
ドが受け取れる構成となっている。
10はREADが加わると順次カウントをアップする。
そのカウント値を対応したフリップフロップの出力をセ
レクタ112が選択しコマンドとして出力する。このと
きデコーダ111はカウント値が最大値であった時には
フリップフロップ105をイネーブルとする。この時、
そのフリップフロップ105の入力Dには0が加わるの
でフリップフロップ105は0を記憶する。すなわちフ
リップフロップ105をリセットする。また、コマンド
を出力した時フリップフロップ106をリセットし、B
USYで無くする。なお、前述したフリップフロップ1
05,106等には図示しないがシステムクロックが入
力しており各データはそのシステムクロックに同期して
動作する。以上のような動作により、バッファが動作
し、CPU18から非同期に送られてもデータやコマン
ドが受け取れる構成となっている。
【0060】コントローラ82はインバータ(Buff
er)81からデータ、コマンドを受け取り、それに従
ってファンクションユニット(Functional−
Unit)85を制御する。コントローラ82はファン
クションユニット85が処理中でなく、バッファ81が
空でない場合、すなわちバッファ81がビジーである場
合すなわちBUFFER−BUSYが立っている場合は
READフラグを立て、バッファ81からマルチプレク
スされたデータ、コマンド(COMMAND)を受け取
る。
er)81からデータ、コマンドを受け取り、それに従
ってファンクションユニット(Functional−
Unit)85を制御する。コントローラ82はファン
クションユニット85が処理中でなく、バッファ81が
空でない場合、すなわちバッファ81がビジーである場
合すなわちBUFFER−BUSYが立っている場合は
READフラグを立て、バッファ81からマルチプレク
スされたデータ、コマンド(COMMAND)を受け取
る。
【0061】一方、COMMANDのパリティを調べる
ことによって、ファンクションユニット85で処理する
以前でのエラーの有無を知ることができる。何個のレジ
スタにスカラ・ライトするか示している部分(OPCO
DEのSC W LENGTHの部分)がパリティエラ
ーを起こしている場合は、スカラ・ライトを行うことが
できないので、SC W LENGTH ERRORを
立てる。
ことによって、ファンクションユニット85で処理する
以前でのエラーの有無を知ることができる。何個のレジ
スタにスカラ・ライトするか示している部分(OPCO
DEのSC W LENGTHの部分)がパリティエラ
ーを起こしている場合は、スカラ・ライトを行うことが
できないので、SC W LENGTH ERRORを
立てる。
【0062】また、COMMANDのその他の部分がパ
リティ・エラー等を起こしている場合は、正しい値でス
カラ・ライトを行うことができないので、P ERRO
Rフラグを立てる。パリティ・エラーが起きていない
が、COMMANDのオペコード部分が未定義命令の場
合はUNDEFフラグを立てる。
リティ・エラー等を起こしている場合は、正しい値でス
カラ・ライトを行うことができないので、P ERRO
Rフラグを立てる。パリティ・エラーが起きていない
が、COMMANDのオペコード部分が未定義命令の場
合はUNDEFフラグを立てる。
【0063】ファンクションユニット85へコントロー
ラ82から命令を送る場合は、CNTLに命令を出力
し、それが有効であるというCNTL VALフラグを
立てる。
ラ82から命令を送る場合は、CNTLに命令を出力
し、それが有効であるというCNTL VALフラグを
立てる。
【0064】ファンクションユニット85が処理中の
時、もしくはBUFFERが空でなく、BUSYが立っ
ている時はCOPRO BUSYフラグを立て、CPU
にコプロセッサが動作中であることを通知する。これに
よって、CPU18は割り込みのタイミングを調整でき
る。
時、もしくはBUFFERが空でなく、BUSYが立っ
ている時はCOPRO BUSYフラグを立て、CPU
にコプロセッサが動作中であることを通知する。これに
よって、CPU18は割り込みのタイミングを調整でき
る。
【0065】一方、コントローラ82はファンクション
ユニットが正常にスカラ・ライトできず、Scalar
Write Unitにダミーの値でのスカラ・ライ
トを依頼する時があるため、何個のレジスタにスカラ・
ライトをするかを示すSC W LENGTHをOPCO
DEからデコードして出力する。
ユニットが正常にスカラ・ライトできず、Scalar
Write Unitにダミーの値でのスカラ・ライ
トを依頼する時があるため、何個のレジスタにスカラ・
ライトをするかを示すSC W LENGTHをOPCO
DEからデコードして出力する。
【0066】ファンクションユニット(Functio
nal−Unit)85は演算器、レジスタを含み、コ
ントローラ82に従って動作する。CNTL VALが
立っている時にコントロール(CNTL)が有効なの
で、それに従って動作する。CPU18のレジスタへの
書き込み(スカラ・ライト)を行うときは、書き込む値
をRESULTに出力し、RESULTが有効であるこ
とを示すRESULT VALフラグを立てる。
nal−Unit)85は演算器、レジスタを含み、コ
ントローラ82に従って動作する。CNTL VALが
立っている時にコントロール(CNTL)が有効なの
で、それに従って動作する。CPU18のレジスタへの
書き込み(スカラ・ライト)を行うときは、書き込む値
をRESULTに出力し、RESULTが有効であるこ
とを示すRESULT VALフラグを立てる。
【0067】例外が発生したときは、EXCPを立てエ
クセプション(Exception)83に出力する。
エクセプション83はCPUから受け取ったデータ、コ
マンドのパリティ・エラー、Functional U
nitの例外等を処理する。
クセプション(Exception)83に出力する。
エクセプション83はCPUから受け取ったデータ、コ
マンドのパリティ・エラー、Functional U
nitの例外等を処理する。
【0068】UNDEF,P ERROR,F UNI
T EXCPが立っているのは、未定義命令が転送され
た、パリティ・エラーが起こり、ファンクションユニッ
ト85で例外を検出したことを、それぞれ示している。
このような場合は正常な値でのスカラ・ライトができな
いため、ダミーの値でのスカラ・ライトを行う。すなわ
ち、DUMMY WRITEフラグを立て、Scala
r Write Unitにダミーの値でのスカラ・ラ
イトを依頼する。また、EXCPを立てて、CPUに例
外が検出されたことを通知する。
T EXCPが立っているのは、未定義命令が転送され
た、パリティ・エラーが起こり、ファンクションユニッ
ト85で例外を検出したことを、それぞれ示している。
このような場合は正常な値でのスカラ・ライトができな
いため、ダミーの値でのスカラ・ライトを行う。すなわ
ち、DUMMY WRITEフラグを立て、Scala
r Write Unitにダミーの値でのスカラ・ラ
イトを依頼する。また、EXCPを立てて、CPUに例
外が検出されたことを通知する。
【0069】SC W LENGTH ERRORが立
っているのは、何個のレジスタにスカラ・ライトを行う
か示している部分に、パリティ・エラーがあった場合で
ある。この場合は、スカラ・ライトが完全に不可能であ
るため、SVPフラグを立てて、サービスプロセッサに
処理を依頼する。
っているのは、何個のレジスタにスカラ・ライトを行う
か示している部分に、パリティ・エラーがあった場合で
ある。この場合は、スカラ・ライトが完全に不可能であ
るため、SVPフラグを立てて、サービスプロセッサに
処理を依頼する。
【0070】図24は従来のエクセプションの構成図で
ある。UNDEF,P ERROR,F UNIT E
XCPがオアゲート115に加わりオアゲートの出力を
EXCP並びにDUMMY WRITEとして出力す
る。また、SC W LENGTH ERRORをSV
Pとして出力する。
ある。UNDEF,P ERROR,F UNIT E
XCPがオアゲート115に加わりオアゲートの出力を
EXCP並びにDUMMY WRITEとして出力す
る。また、SC W LENGTH ERRORをSV
Pとして出力する。
【0071】一方、コプロセッサ命令には、CPU18
のレジスタへの書き込み(スカラ・ライト)を行う命令
がある。正常にスカラ・ライトが行われた時にはファン
クションユニット85の出力をそのままCPUに送れば
よいが、そうでない場合はスカラ・ライトユニットでス
カラ・ライトを行わなければならない。
のレジスタへの書き込み(スカラ・ライト)を行う命令
がある。正常にスカラ・ライトが行われた時にはファン
クションユニット85の出力をそのままCPUに送れば
よいが、そうでない場合はスカラ・ライトユニットでス
カラ・ライトを行わなければならない。
【0072】図25は従来のスカラ・ライトユニットの
構成図である。固定値出力回路(CONSTANT V
ALUE)116はファンクションユニット85より出
力されたRESULTの代わりとなるダミーデータ(D
UMMY DATA)を出力する。
構成図である。固定値出力回路(CONSTANT V
ALUE)116はファンクションユニット85より出
力されたRESULTの代わりとなるダミーデータ(D
UMMY DATA)を出力する。
【0073】前述したRESULTとDUMMY DA
TAはセレクタ117に加わる。セレクタ117はRE
SULT VALによってその一方を選択する。正常で
あるときには、RESULTを選択し、異常であった場
合、すなわちRESULT VALが0であるとき固定値
出力回路116のDUMMY DATAを選択し、SC
W DATAとして出力する。
TAはセレクタ117に加わる。セレクタ117はRE
SULT VALによってその一方を選択する。正常で
あるときには、RESULTを選択し、異常であった場
合、すなわちRESULT VALが0であるとき固定値
出力回路116のDUMMY DATAを選択し、SC
W DATAとして出力する。
【0074】一方、RESULT VALはオアゲート
118に加わっており、正常である時にはRESULT
VALがオアゲート118を介しSC W DATA
VALとして出力される。また、正常でなかった際に
は目的の回数分SC W DATA VALが出力され
ない。これを出力するため、ダウンカウンタ119を設
けてある。
118に加わっており、正常である時にはRESULT
VALがオアゲート118を介しSC W DATA
VALとして出力される。また、正常でなかった際に
は目的の回数分SC W DATA VALが出力され
ない。これを出力するため、ダウンカウンタ119を設
けてある。
【0075】ダウンカウンタ119はプリセッタブルで
あり、DUMMY WRITEが立ったとき、SC W
LENGTHをプリセットする。その回数だけ、SC
W DATA VALを1にし、ダウンカウントする。
あり、DUMMY WRITEが立ったとき、SC W
LENGTHをプリセットする。その回数だけ、SC
W DATA VALを1にし、ダウンカウントする。
【0076】DUMMY WRITEがたっておらず、
RESULT VALがたったときにはファンクション
ユニットの出力RESULTは有効である。この場合は
RESULT VAL、RESULTをそのままSC
W DATA VAL,SC W DATAに出力し、C
PU18にスカラ・ライトを行うことを通知する。ま
た、DUMMY WRITEがたっているすなわち1の
場合はダミーの値でスカラ・ライトを行える場合であ
る。よって、コントローラ82からの何個のレジスタに
スカラ・ライトを行うかという情報SC W LENG
THの回数だけSC W DAT VALをたててスカ
ラ・ライトを行う。なお、その際、SC W DATAに
はステイタス、ダミーの値等を設定する。
RESULT VALがたったときにはファンクション
ユニットの出力RESULTは有効である。この場合は
RESULT VAL、RESULTをそのままSC
W DATA VAL,SC W DATAに出力し、C
PU18にスカラ・ライトを行うことを通知する。ま
た、DUMMY WRITEがたっているすなわち1の
場合はダミーの値でスカラ・ライトを行える場合であ
る。よって、コントローラ82からの何個のレジスタに
スカラ・ライトを行うかという情報SC W LENG
THの回数だけSC W DAT VALをたててスカ
ラ・ライトを行う。なお、その際、SC W DATAに
はステイタス、ダミーの値等を設定する。
【0077】以上のような構成によりプロセッサがコプ
ロセッサを制御することができ、例えば専用の演算等を
高速に行えることができる。
ロセッサを制御することができ、例えば専用の演算等を
高速に行えることができる。
【0078】
【発明が解決しようとする課題】前述したコプロセッサ
は、コプロセッサ19内部の命令バッファからデータ、
コマンドを取り出し実行をするが、以下のような場合に
はCPU18が本来要求している値のデータを出力、す
なわちスカラ・ライトすることは不可能である。(1) コ
プロセッサ19内部で割り込みが発生し、コプロセッサ
19の実行を中止してCPU18の割り込み処理で制御
をする必要が出た場合、(2) CPU18のハードエラー
等で不正なコマンドやデータをコプロセッサが受けた時
や未定義のコマンドを受けた場合、(3) コプロセッサ1
9が行うべき処理が不明確な場合やコプロセッサ19が
出力すべきデータの量が不明な場合、等である。
は、コプロセッサ19内部の命令バッファからデータ、
コマンドを取り出し実行をするが、以下のような場合に
はCPU18が本来要求している値のデータを出力、す
なわちスカラ・ライトすることは不可能である。(1) コ
プロセッサ19内部で割り込みが発生し、コプロセッサ
19の実行を中止してCPU18の割り込み処理で制御
をする必要が出た場合、(2) CPU18のハードエラー
等で不正なコマンドやデータをコプロセッサが受けた時
や未定義のコマンドを受けた場合、(3) コプロセッサ1
9が行うべき処理が不明確な場合やコプロセッサ19が
出力すべきデータの量が不明な場合、等である。
【0079】前述したような場合、コプロセッサ19が
データを出力せずコプロセッサが書き込むはずだったC
PU18のレジスタへの書き込みが行われないとする
と、レジスタに対応するスコアボードのビットのリセッ
トが行われなくなる。
データを出力せずコプロセッサが書き込むはずだったC
PU18のレジスタへの書き込みが行われないとする
と、レジスタに対応するスコアボードのビットのリセッ
トが行われなくなる。
【0080】図26はプログラム実行の説明図である。
例えばコプロセッサ19に対応する先行命令があって、
デコードしてさらに実行した場合、スコアボード操作で
はセット(Set)され、次の命令に関してはスコアボ
ードからリセットされるまで後続命令を待たせなければ
ならない。すなわちスコアボードには1がたっているの
でスコアボード参照結果ではWaitとなり、常にウェ
イトすることとなる。実際に先行命令に対応する実行を
終了(STOP)したとすると、X点においてスコアボ
ードを0にリセットしなくてはならない。しかしなが
ら、前述したような状態においてセットされなかった場
合、このウェイト状態が連続して続くこととなる。
例えばコプロセッサ19に対応する先行命令があって、
デコードしてさらに実行した場合、スコアボード操作で
はセット(Set)され、次の命令に関してはスコアボ
ードからリセットされるまで後続命令を待たせなければ
ならない。すなわちスコアボードには1がたっているの
でスコアボード参照結果ではWaitとなり、常にウェ
イトすることとなる。実際に先行命令に対応する実行を
終了(STOP)したとすると、X点においてスコアボ
ードを0にリセットしなくてはならない。しかしなが
ら、前述したような状態においてセットされなかった場
合、このウェイト状態が連続して続くこととなる。
【0081】このような時、前述した(1) や(2) の場合
には、CPU18が本来求めてる値の出力は不可能であ
るが、CPU18が要求しているデータの量はわかって
いる。よってステイタス、ダミーのデータ等を本来の値
の代わりにコプロセッサがCPU18に出力すれば、C
PU18はデータを受け取りレジスタへの書き込みを行
う。これによってレジスタに対応するスコアボードのビ
ットがリセットされ、割り込み処理等の実行の継続が可
能になる。
には、CPU18が本来求めてる値の出力は不可能であ
るが、CPU18が要求しているデータの量はわかって
いる。よってステイタス、ダミーのデータ等を本来の値
の代わりにコプロセッサがCPU18に出力すれば、C
PU18はデータを受け取りレジスタへの書き込みを行
う。これによってレジスタに対応するスコアボードのビ
ットがリセットされ、割り込み処理等の実行の継続が可
能になる。
【0082】これに対し(2) ,(3) のコプロセッサ19
の出力データの量が不明な場合には、ダミーライトを行
うことができず実行を中止した後に、サービスプロセッ
サの介入によって処理の再開をしなくてはならなかっ
た。このサービスプロセッサの介入は例えばハングアッ
プしてからの時間を管理して行うものであり、これに要
する時間が多大であった。
の出力データの量が不明な場合には、ダミーライトを行
うことができず実行を中止した後に、サービスプロセッ
サの介入によって処理の再開をしなくてはならなかっ
た。このサービスプロセッサの介入は例えばハングアッ
プしてからの時間を管理して行うものであり、これに要
する時間が多大であった。
【0083】一方、コプロセッサ命令はCPU18がデ
コードし、コプロセッサ19へのコマンド/データを転
送する命令である。このコプロセッサ命令は、CPU1
8だけが認識すれば十分な情報(その命令がコプロセッ
サ命令であるか否か、スカラ・ライトするレジスタ番
号、読み出しをするCPU18内部のレジスタ番号等の
情報)と、コプロセッサ19だけが認識すれば十分な情
報(コプロセッサ19が行う演算の処理、コプロセッサ
19が読み出す読み書きするCPU18内のレジスタ番
号等)、さらには両方が認識しなければならない情報、
(CPU18からコプロセッサ19へのコマンド/デー
タの転送数、CPU18のレジスタを読み書きする命令
か否か、さらにはCPU18のレジスタを何個読み書き
するか等)より成っている。
コードし、コプロセッサ19へのコマンド/データを転
送する命令である。このコプロセッサ命令は、CPU1
8だけが認識すれば十分な情報(その命令がコプロセッ
サ命令であるか否か、スカラ・ライトするレジスタ番
号、読み出しをするCPU18内部のレジスタ番号等の
情報)と、コプロセッサ19だけが認識すれば十分な情
報(コプロセッサ19が行う演算の処理、コプロセッサ
19が読み出す読み書きするCPU18内のレジスタ番
号等)、さらには両方が認識しなければならない情報、
(CPU18からコプロセッサ19へのコマンド/デー
タの転送数、CPU18のレジスタを読み書きする命令
か否か、さらにはCPU18のレジスタを何個読み書き
するか等)より成っている。
【0084】CPU18に接続可能な前述したコプロセ
ッサ19は複数種類あり、コプロセッサの命令フォーマ
ットはコプロセッサ19の種類により異なっている。こ
のため、前述した3種類の情報をCPU18とコプロセ
ッサ19とが命令の同一のフィールドから得ることは困
難である。そのため、両方が認識されなければならない
情報はCPU18向けとコプロセッサ19向けの2つの
フィールドにエンコードされている。
ッサ19は複数種類あり、コプロセッサの命令フォーマ
ットはコプロセッサ19の種類により異なっている。こ
のため、前述した3種類の情報をCPU18とコプロセ
ッサ19とが命令の同一のフィールドから得ることは困
難である。そのため、両方が認識されなければならない
情報はCPU18向けとコプロセッサ19向けの2つの
フィールドにエンコードされている。
【0085】このために、何からの原因によって認識さ
れなければならない情報がCPU18向けのフィールド
とコプロセッサ19向けのフィールドの間に不一致が生
じ、コプロセッサ19がスカラ・ライトするレジスタの
個数がCPU18が期待している個数よりも小さくなっ
た時にはハングアップしてしまう。
れなければならない情報がCPU18向けのフィールド
とコプロセッサ19向けのフィールドの間に不一致が生
じ、コプロセッサ19がスカラ・ライトするレジスタの
個数がCPU18が期待している個数よりも小さくなっ
た時にはハングアップしてしまう。
【0086】例えば、CPU18、コプロセッサ19と
もエラーを検出できなかった場合、プログラムの実行は
続けられる。そして、スカラ・ライトされるはずだった
レジスタを読み書きする命令を実行する段階になってス
コアボードがセットされているにもかかわらずいくら待
ってもそのレジスタに対して書き込みがなされず、スコ
アボードがリセットされないために、この命令を実行で
きずその状態で待ってしまってハングアップしてしま
う。この様な状態も前述したサービスプロセッサの介入
によって処理の再開がなされるが、この介入までに多く
の時間を要してしまっていた。
もエラーを検出できなかった場合、プログラムの実行は
続けられる。そして、スカラ・ライトされるはずだった
レジスタを読み書きする命令を実行する段階になってス
コアボードがセットされているにもかかわらずいくら待
ってもそのレジスタに対して書き込みがなされず、スコ
アボードがリセットされないために、この命令を実行で
きずその状態で待ってしまってハングアップしてしま
う。この様な状態も前述したサービスプロセッサの介入
によって処理の再開がなされるが、この介入までに多く
の時間を要してしまっていた。
【0087】本発明は前述した問題を解決するものであ
り、本発明はコプロセッサが出力すべきデータの量が不
明な場合や、コプロセッサとコプロセッサ間の情報の不
一致が生じても、ハングアップせず適確に異常を検出す
る情報処理装置を目的とする。
り、本発明はコプロセッサが出力すべきデータの量が不
明な場合や、コプロセッサとコプロセッサ間の情報の不
一致が生じても、ハングアップせず適確に異常を検出す
る情報処理装置を目的とする。
【0088】
【課題を解決するための手段】図1〜3は本発明の原理
ブロック図である。本発明は副処理装置21の処理内容
を副処理装置命令として発行する主処理装置20と、前
記主処理装置20からの前記副処理装置命令に対応した
処理を実行し、該処理の結果を前記主処理装置20のレ
ジスタに書き込む副処理装置21とよりなる装置におけ
るものである。例えば、主処理装置はCPUであり、副
処理装置はコプロセッサである。
ブロック図である。本発明は副処理装置21の処理内容
を副処理装置命令として発行する主処理装置20と、前
記主処理装置20からの前記副処理装置命令に対応した
処理を実行し、該処理の結果を前記主処理装置20のレ
ジスタに書き込む副処理装置21とよりなる装置におけ
るものである。例えば、主処理装置はCPUであり、副
処理装置はコプロセッサである。
【0089】図1は本発明の第1の原理ブロック図であ
る。本発明は第1には、前記副処理装置21に前記副処
理装置命令が未定義である時、あるいは実行にかかるエ
ラーを検出した時の少なくとも一方を検出する異常検出
手段23と、該異常を検出した際に処理中のフラグをオ
フとするフラグオフ手段22とを設けている。
る。本発明は第1には、前記副処理装置21に前記副処
理装置命令が未定義である時、あるいは実行にかかるエ
ラーを検出した時の少なくとも一方を検出する異常検出
手段23と、該異常を検出した際に処理中のフラグをオ
フとするフラグオフ手段22とを設けている。
【0090】図2は本発明の第2の原理ブロック図であ
る。本発明は第2には前述の異常検出手段23と、前述
のフラグオフ検出手段22、さらに異常検出した際に副
処理装置が有するバッファがFULLであることを表わ
すフラグをオンとするフラグオン手段24とを設けてい
る。
る。本発明は第2には前述の異常検出手段23と、前述
のフラグオフ検出手段22、さらに異常検出した際に副
処理装置が有するバッファがFULLであることを表わ
すフラグをオンとするフラグオン手段24とを設けてい
る。
【0091】図3は本発明の第3の原理ブロック図であ
る。本発明は第3には、主処理装置20が発行する副処
理装置命令と共に、当該命令によって書き込まれる主処
理装置20のレジスタの数を前記副処理装置21に転送
する転送手段25を主処理装置20に設け、さらに副処
理装置21は前記副処理装置命令によって書き込まれる
主処理装置20のレジスタの数と前記転送手段25によ
り転送されたレジスタの数とを比較する比較手段26と
比較した結果が不一致の時異常と判断する異常判断手段
27とを設ける。
る。本発明は第3には、主処理装置20が発行する副処
理装置命令と共に、当該命令によって書き込まれる主処
理装置20のレジスタの数を前記副処理装置21に転送
する転送手段25を主処理装置20に設け、さらに副処
理装置21は前記副処理装置命令によって書き込まれる
主処理装置20のレジスタの数と前記転送手段25によ
り転送されたレジスタの数とを比較する比較手段26と
比較した結果が不一致の時異常と判断する異常判断手段
27とを設ける。
【0092】
【作用】本発明は第1には、異常を異常検出手段23で
検出した際に、フラグオフ手段22で処理中のフラグを
オフとし、主処理装置20は前記副処理装置命令に対応
して書き込まれるレジスタが残っているにもかかわら
ず、前記処理中のフラグはオフとなるので、それをもっ
て異常と判断する。
検出した際に、フラグオフ手段22で処理中のフラグを
オフとし、主処理装置20は前記副処理装置命令に対応
して書き込まれるレジスタが残っているにもかかわら
ず、前記処理中のフラグはオフとなるので、それをもっ
て異常と判断する。
【0093】第2には、処理中のフラグがオフでバッフ
ァがFULLであることを表わすフラグがオンである状
態は存在せず、この状態を主処理装置20で異常と判断
する。
ァがFULLであることを表わすフラグがオンである状
態は存在せず、この状態を主処理装置20で異常と判断
する。
【0094】第3には、主処理装置20は副処理装置2
1に対し使用するレジスタの数を転送し、副処理装置2
1でその転送されたレジスタの数と副処理装置命令によ
って書き込まれる時使用装置のレジスタの数とを比較手
段26で比較し、不一致のときに副処理装置内の異常判
断手段27が異常と判断する。この異常を送信すること
により主処理装置も異常と判断できる。
1に対し使用するレジスタの数を転送し、副処理装置2
1でその転送されたレジスタの数と副処理装置命令によ
って書き込まれる時使用装置のレジスタの数とを比較手
段26で比較し、不一致のときに副処理装置内の異常判
断手段27が異常と判断する。この異常を送信すること
により主処理装置も異常と判断できる。
【0095】主処理装置20と副処理装置21とで命令
が食い違った場合等においても常にそれらの異常を適確
に判断できるのでハングアップ等を防止し、不必要なC
PUのダウン時間を防止することができる。
が食い違った場合等においても常にそれらの異常を適確
に判断できるのでハングアップ等を防止し、不必要なC
PUのダウン時間を防止することができる。
【0096】本発明の第1、第2においてはコプロセッ
サの命令バッファが空になるまで、コプロセッサ、CP
Uともエラーを検出できず、プログラムの実行は続けら
れる。コプロセッサの命令バッファが空になったとき
に、COPRO BUSYが下がってもライト・アドレ
ス・バッファが空にならないという状態になるため、ス
カラ・ライトが行われなかったことをCPUが検出し、
スコアボードのリセットを行っている。しかし、COP
RO BUSYが下がるときまで待たないと、スカラ・
ライトが行われなかったことが検出できないため、エラ
ーからの復帰が遅くなるという問題が残る。
サの命令バッファが空になるまで、コプロセッサ、CP
Uともエラーを検出できず、プログラムの実行は続けら
れる。コプロセッサの命令バッファが空になったとき
に、COPRO BUSYが下がってもライト・アドレ
ス・バッファが空にならないという状態になるため、ス
カラ・ライトが行われなかったことをCPUが検出し、
スコアボードのリセットを行っている。しかし、COP
RO BUSYが下がるときまで待たないと、スカラ・
ライトが行われなかったことが検出できないため、エラ
ーからの復帰が遅くなるという問題が残る。
【0097】この問題は、本発明の第3でCPUが期待
しているスカラ・ライトされるレジスタの個数と、実際
にコプロセッサがスカラ・ライトするレジスタの個数の
比較を行うことによって解決できる。
しているスカラ・ライトされるレジスタの個数と、実際
にコプロセッサがスカラ・ライトするレジスタの個数の
比較を行うことによって解決できる。
【0098】
【実施例】以下、図面を用いて本発明を詳細に説明す
る。図4は本発明の第1の実施例のCPU28の構成図
である。従来と同一回路は同一符号を付し説明を省略す
る。
る。図4は本発明の第1の実施例のCPU28の構成図
である。従来と同一回路は同一符号を付し説明を省略す
る。
【0099】本発明の第1の実施例においては、CPU
28はCOPRO BUSY信号によってコプロセッサ
が動作中か否かを知ることができる。コプロセッサが動
作中であれば今後スカラ・ライトが行われる可能性があ
るが、動作中でなければその可能性はない。よってCP
U28内ではライトアドレスバッファ120のWAB U
SEDフラグによってスカラ・ライトを待っているレジ
スタがあるかどうかを知ることができる。この状態を求
めるため、コプロセッサより加わるCOPRO BUS
Yをライトアドレスバッファ120に入力している。
28はCOPRO BUSY信号によってコプロセッサ
が動作中か否かを知ることができる。コプロセッサが動
作中であれば今後スカラ・ライトが行われる可能性があ
るが、動作中でなければその可能性はない。よってCP
U28内ではライトアドレスバッファ120のWAB U
SEDフラグによってスカラ・ライトを待っているレジ
スタがあるかどうかを知ることができる。この状態を求
めるため、コプロセッサより加わるCOPRO BUS
Yをライトアドレスバッファ120に入力している。
【0100】(WAB USED and(not C
OPRO BUSY))が真すなわち1であったときに
はスカラ・ライトをもっているレジスタがあるが、コプ
ロセッサによってスカラ・ライトを行われる可能性がな
い場合である。よって、この状態を検出することによ
り、CPU28はその異常を判断することができる。
OPRO BUSY))が真すなわち1であったときに
はスカラ・ライトをもっているレジスタがあるが、コプ
ロセッサによってスカラ・ライトを行われる可能性がな
い場合である。よって、この状態を検出することによ
り、CPU28はその異常を判断することができる。
【0101】図5は前述した本発明の第1の実施例のラ
イトアドレスバッファ120の構成図である。従来にお
いてはSC W DATA VALが直接オアゲート7
3に加わっているが、本発明の第1の実施例においては
オアゲート121でアンドゲート122の出力とSC
W DATA VALとをオア加算している。尚、アン
ドゲート122の反転入力にCOPRO BUSYが入
力し、非反転入力にWAB USEDが加わる。そし
て、このアンドゲート122の出力EXXが異常信号と
してCPU28内で使用される。
イトアドレスバッファ120の構成図である。従来にお
いてはSC W DATA VALが直接オアゲート7
3に加わっているが、本発明の第1の実施例においては
オアゲート121でアンドゲート122の出力とSC
W DATA VALとをオア加算している。尚、アン
ドゲート122の反転入力にCOPRO BUSYが入
力し、非反転入力にWAB USEDが加わる。そし
て、このアンドゲート122の出力EXXが異常信号と
してCPU28内で使用される。
【0102】図6は本発明の第1の実施例のコプロセッ
サ29の構成図である。従来と異なる点はUNDEF,
P ERROR,SC W LENGTH ERROR
が加わるオアゲート123とその出力が反転入力に加わ
り、コントローラ82のBUSYが非反転入力に加わる
アンドゲート124を設けた点である。
サ29の構成図である。従来と異なる点はUNDEF,
P ERROR,SC W LENGTH ERROR
が加わるオアゲート123とその出力が反転入力に加わ
り、コントローラ82のBUSYが非反転入力に加わる
アンドゲート124を設けた点である。
【0103】従来においてはBUSYをCOPRO B
USYとして出力していた。本発明の第1の実施例によ
れば、UNDEFとP ERRORとSC W LEN
GTH ERRORが0でかつコントローラ82のBU
SYが1であるときにCOPRO BUSYとしてい
る。そして、例えばUNDEF,P ERROR,SC
W LENGTH ERRORの少なくとも1個が1と
なるとオアゲート123の出力は1となり、アンドゲー
ト124はオフとなる。すなわち、COPRO BUSY
を0とする。
USYとして出力していた。本発明の第1の実施例によ
れば、UNDEFとP ERRORとSC W LEN
GTH ERRORが0でかつコントローラ82のBU
SYが1であるときにCOPRO BUSYとしてい
る。そして、例えばUNDEF,P ERROR,SC
W LENGTH ERRORの少なくとも1個が1と
なるとオアゲート123の出力は1となり、アンドゲー
ト124はオフとなる。すなわち、COPRO BUSY
を0とする。
【0104】コントローラ82からはBUSYを出して
いるにもかかわらずエラー等が発生た時にCOPRO
BUSYを0としている。尚、他の動作については従来
と同様である。このCOPRO BUSYが0となるの
で、その信号が加わるプロセッサ側、すなわち主処理装
置側のアンドゲート122は1となり、アンドゲート1
22の出力EXXは1となって異常であることになる。
いるにもかかわらずエラー等が発生た時にCOPRO
BUSYを0としている。尚、他の動作については従来
と同様である。このCOPRO BUSYが0となるの
で、その信号が加わるプロセッサ側、すなわち主処理装
置側のアンドゲート122は1となり、アンドゲート1
22の出力EXXは1となって異常であることになる。
【0105】以上のように本発明の第1の実施例によれ
ば、簡単な回路をCPU28例えばCPU28のライト
アドレスバッファに簡単な論理を加えるだけでハングア
ップせずに適確に異常を判断することができ、従来サー
ビスプロセッサに処理を依頼してきた回路を削除するこ
とができる。いわゆるスカラ・ライト不可能をサービス
プロセッサに通知する必要がなくなる。
ば、簡単な回路をCPU28例えばCPU28のライト
アドレスバッファに簡単な論理を加えるだけでハングア
ップせずに適確に異常を判断することができ、従来サー
ビスプロセッサに処理を依頼してきた回路を削除するこ
とができる。いわゆるスカラ・ライト不可能をサービス
プロセッサに通知する必要がなくなる。
【0106】図7は本発明の第2の実施例のCPU28
の構成図である。前述した第1の実施例においては、C
OPRO BUSYを0として通知していたが、本発明
の第2の実施例においてはCOPRO BUSYが0レ
ベルでかつCOM FULLが1である時に異常として
いる。このため、COPRO BUSYとCOM FU
LLをCPU28内のライトアドレスバッファ130に
加えている。
の構成図である。前述した第1の実施例においては、C
OPRO BUSYを0として通知していたが、本発明
の第2の実施例においてはCOPRO BUSYが0レ
ベルでかつCOM FULLが1である時に異常として
いる。このため、COPRO BUSYとCOM FU
LLをCPU28内のライトアドレスバッファ130に
加えている。
【0107】前述した第1の実施例と同様に第2の実施
例においても、何個のレジスタにスカラ・ライトを行う
かという情報、すなわちSC W LENGTHが転送
エラー等によってコプロセッサ29側で失われる。しか
しながら、SC W LENGTHが失われるのはCP
Uからコプロセッサへの通信でありCPUのWRITE
ADDRESS BUFFERにはSC W LEN
GTHに相当する情報が残っている。そこで、前述した
第1の実施例と同様に第2の実施例においてもコプロセ
ッサからCPU28にスカラ・ライトが行われないこと
を通知し、CPU28がライトアドレスバッファを利用
するようにしている。
例においても、何個のレジスタにスカラ・ライトを行う
かという情報、すなわちSC W LENGTHが転送
エラー等によってコプロセッサ29側で失われる。しか
しながら、SC W LENGTHが失われるのはCP
Uからコプロセッサへの通信でありCPUのWRITE
ADDRESS BUFFERにはSC W LEN
GTHに相当する情報が残っている。そこで、前述した
第1の実施例と同様に第2の実施例においてもコプロセ
ッサからCPU28にスカラ・ライトが行われないこと
を通知し、CPU28がライトアドレスバッファを利用
するようにしている。
【0108】第2の実施例においては、コプロセッサ2
9で例外が発生した時等、正常なデータをコプロセッサ
29でスカラ・ライトできない場合には、CPU28側
でスコアボードをリセットできるようにコプロセッサ2
9からCPU28側にスカラ・ライトできないことを通
知する。この通知はコプロセッサ29からCPU28へ
の信号線COPRO BUSYとBUFFER FUL
Lを利用している。COPRO BUSYが0でBUF
FER FULLが1という状態は本来コプロセッサが
活動していなくバッファがコンプレッサ命令で一杯であ
ることを意味するものであり、通常ありえない状態であ
る。よって、この状態を受信した際、CPU28はスカ
ラ・ライトが行われないことを判断する。
9で例外が発生した時等、正常なデータをコプロセッサ
29でスカラ・ライトできない場合には、CPU28側
でスコアボードをリセットできるようにコプロセッサ2
9からCPU28側にスカラ・ライトできないことを通
知する。この通知はコプロセッサ29からCPU28へ
の信号線COPRO BUSYとBUFFER FUL
Lを利用している。COPRO BUSYが0でBUF
FER FULLが1という状態は本来コプロセッサが
活動していなくバッファがコンプレッサ命令で一杯であ
ることを意味するものであり、通常ありえない状態であ
る。よって、この状態を受信した際、CPU28はスカ
ラ・ライトが行われないことを判断する。
【0109】本発明の第2の実施例のCPU18の構成
図においては、ライトアドレスバッファ130を設けて
いる。このライトアドレスバッファ130内にはコプロ
セッサ29からスカラ・ライトができないという通知す
なわちCOPRO BUSYが0でCOM FULLが
1であった時ライトアドレスバッファ内のバッファの有
効なエントリが示す全てのスコアボードをビットリセッ
トする。また、WAB USEDを0とする。これによっ
て次の命令の実行が行える。
図においては、ライトアドレスバッファ130を設けて
いる。このライトアドレスバッファ130内にはコプロ
セッサ29からスカラ・ライトができないという通知す
なわちCOPRO BUSYが0でCOM FULLが
1であった時ライトアドレスバッファ内のバッファの有
効なエントリが示す全てのスコアボードをビットリセッ
トする。また、WAB USEDを0とする。これによっ
て次の命令の実行が行える。
【0110】図8は本発明の第2の実施例のライトアド
レスバッファ130の構成図である。WAB USED
とCOM FULLが非反転入力に加わり、COPRO
BUSYが反転入力に加わるアンドゲート132とそ
の出力とSC W DATA VALが加わるオアゲート
131を設けている。オアゲート131はオア加算する
ためのものであり、COPRO BUSYが0でCOM
FULLが1でWAB USEDが1の時アンドゲー
ト132は1を出力する。これがスカラライト不可の信
号EYYとなりライトアドレスバッファ内のバッファを
クリアする。また、CPU28内でのエラー処理の指示
信号となる。尚、他の部分は従来と同様の回路である。
レスバッファ130の構成図である。WAB USED
とCOM FULLが非反転入力に加わり、COPRO
BUSYが反転入力に加わるアンドゲート132とそ
の出力とSC W DATA VALが加わるオアゲート
131を設けている。オアゲート131はオア加算する
ためのものであり、COPRO BUSYが0でCOM
FULLが1でWAB USEDが1の時アンドゲー
ト132は1を出力する。これがスカラライト不可の信
号EYYとなりライトアドレスバッファ内のバッファを
クリアする。また、CPU28内でのエラー処理の指示
信号となる。尚、他の部分は従来と同様の回路である。
【0111】図9は本発明の第2の実施例のコプロセッ
サ29の構成図である。前述した第1の実施例に更に異
常状態とするときにBUFFER FULLを出力すべ
きオアゲート123の出力をオアゲート133に加えて
いる。なお、バッファ81がFULLである時もBUF
FER FULLを出力するためオアゲート133の一
方にはバッファ81のFULLを加えている。これによ
りUNDFFとP ERRORとSC W LENGT
H ERRORとが0であるならば即ち正常であるなら
ば従来と同様である。しかしながら、その内の少なくと
も1個が1となるとCOPRO BUSYすなわちアン
ドゲート124の出力は0となり、またBUFFER
FULLは1すなわちオアゲート133の出力は1とな
る。この状態を前述した本発明の第2の実施例のライト
アドレスバッファが検出し、EYYを出力する。
サ29の構成図である。前述した第1の実施例に更に異
常状態とするときにBUFFER FULLを出力すべ
きオアゲート123の出力をオアゲート133に加えて
いる。なお、バッファ81がFULLである時もBUF
FER FULLを出力するためオアゲート133の一
方にはバッファ81のFULLを加えている。これによ
りUNDFFとP ERRORとSC W LENGT
H ERRORとが0であるならば即ち正常であるなら
ば従来と同様である。しかしながら、その内の少なくと
も1個が1となるとCOPRO BUSYすなわちアン
ドゲート124の出力は0となり、またBUFFER
FULLは1すなわちオアゲート133の出力は1とな
る。この状態を前述した本発明の第2の実施例のライト
アドレスバッファが検出し、EYYを出力する。
【0112】前述した本発明の実施例において、スコア
ボード3はライトアドレスバッファ120によってリセ
ットされるものであり、このリセットは従来と同様の方
法によってリセットされる。本発明の第2の実施例にお
いても、サービスプロセッサに処理を依頼した回路を削
除することができる。なお、前述した結果BUFFER
FULLはFULL and(not(UNDEF
or P ERRORor SC W LENGTH
ERROR))となる。
ボード3はライトアドレスバッファ120によってリセ
ットされるものであり、このリセットは従来と同様の方
法によってリセットされる。本発明の第2の実施例にお
いても、サービスプロセッサに処理を依頼した回路を削
除することができる。なお、前述した結果BUFFER
FULLはFULL and(not(UNDEF
or P ERRORor SC W LENGTH
ERROR))となる。
【0113】図10は本発明の第3の実施例の構成図で
ある。本発明の第3の実施例においては、第1にはライ
トアドレスバッファで異常を検出するため、また第2に
はCPU28よりコプロセッサ29へスカラ・ライトの
数を通知するため、従来と異なるライトアドレスバッフ
ァ140とCOPROインタフェース150とを設けて
いる。なお図中従来と同一のものは同一記号を付して説
明を略す。
ある。本発明の第3の実施例においては、第1にはライ
トアドレスバッファで異常を検出するため、また第2に
はCPU28よりコプロセッサ29へスカラ・ライトの
数を通知するため、従来と異なるライトアドレスバッフ
ァ140とCOPROインタフェース150とを設けて
いる。なお図中従来と同一のものは同一記号を付して説
明を略す。
【0114】従来と異なる点は、CPUが確認している
スカラ・ライトされるレジスタの個数(SC W L
CPU)をデコーダ1からコプロインタフェース150
に送信する回路を付加している。そして、コプロインタ
フェース150はそのデコーダ1から受けたSC W
L CPUを受信するとともにCOPRO COMとし
てコプロセッサへ出力する回路を設けている。
スカラ・ライトされるレジスタの個数(SC W L
CPU)をデコーダ1からコプロインタフェース150
に送信する回路を付加している。そして、コプロインタ
フェース150はそのデコーダ1から受けたSC W
L CPUを受信するとともにCOPRO COMとし
てコプロセッサへ出力する回路を設けている。
【0115】図11は本発明の第3の実施例のコプロイ
ンタフェースの構成図である。従来においては3個のフ
リップフロップ75〜77を設けていたが、本発明の第
3の実施例においては、さらにフリップフロップ151
を設けている。そして、デコーダ160より出力するS
C W L CPUをフリップフロップ151に加えて
いる。
ンタフェースの構成図である。従来においては3個のフ
リップフロップ75〜77を設けていたが、本発明の第
3の実施例においては、さらにフリップフロップ151
を設けている。そして、デコーダ160より出力するS
C W L CPUをフリップフロップ151に加えて
いる。
【0116】VALIDとD STAGE RELEA
SEが共に1のときにアンドゲート74は1を出力し、
フリップフロップ75〜77並びにフリップフロップ1
51をイネーブルとする。これによってOPCODE,
RD DATA1,RD DATA0,SC W L
CPUをフリップフロップ75,76,77,151に
取り込むことができる。さらに3ビットのアップカウン
タ78をリセットする。カウンタ78はリセット端子を
有するアップカウンタであり、カウント値を順次繰り上
げるたびにセレクタ152がそれらの4つのフリップフ
ロップ75,76,77、151内の1個を選択しCO
PRO COMとして出力する。
SEが共に1のときにアンドゲート74は1を出力し、
フリップフロップ75〜77並びにフリップフロップ1
51をイネーブルとする。これによってOPCODE,
RD DATA1,RD DATA0,SC W L
CPUをフリップフロップ75,76,77,151に
取り込むことができる。さらに3ビットのアップカウン
タ78をリセットする。カウンタ78はリセット端子を
有するアップカウンタであり、カウント値を順次繰り上
げるたびにセレクタ152がそれらの4つのフリップフ
ロップ75,76,77、151内の1個を選択しCO
PRO COMとして出力する。
【0117】上位ビットMSBはインバータ80を介し
てCOPRO COM VAL並びにBUSYとして出
力されるが、更にカウンタ78のアップカウント端子に
も加わる。MSBが0のときカウントアップ端子にMS
Bがインバータ80で反転して1となって加わり、カウ
ンタ78は順次カウントアップし、前述した如くそれぞ
れフリップフロップ75〜77とフリップフロップ15
1の出力をセレクタ152で選択させる。そして、MS
Bが1となったときにカウントを停止する。これは1回
の転送の動作であり、再度VALIDとD STAGE
RELEASEが1となったときには再度カウンタ7
8がリセットされ同様の処理動作とする。
てCOPRO COM VAL並びにBUSYとして出
力されるが、更にカウンタ78のアップカウント端子に
も加わる。MSBが0のときカウントアップ端子にMS
Bがインバータ80で反転して1となって加わり、カウ
ンタ78は順次カウントアップし、前述した如くそれぞ
れフリップフロップ75〜77とフリップフロップ15
1の出力をセレクタ152で選択させる。そして、MS
Bが1となったときにカウントを停止する。これは1回
の転送の動作であり、再度VALIDとD STAGE
RELEASEが1となったときには再度カウンタ7
8がリセットされ同様の処理動作とする。
【0118】以上のような動作により主処理装置である
CPU28はコプロセッサに対しSC W L CPU
によってスカラ・ライトされた時のレジスタの個数を送
出することができる。
CPU28はコプロセッサに対しSC W L CPU
によってスカラ・ライトされた時のレジスタの個数を送
出することができる。
【0119】図12は本発明の第3の実施例のコプロセ
ッサ29の構成図である。コプロセッサ29内のコント
ローラ180は従来のコントローラにさらにスカラ・ラ
イトされるレジスタの個数とコプロセッサがスカラ・ラ
イトする個数との比較を行うコンパレータを有し、不一
致のときにSC W COMPARE ERRORを出
力する。
ッサ29の構成図である。コプロセッサ29内のコント
ローラ180は従来のコントローラにさらにスカラ・ラ
イトされるレジスタの個数とコプロセッサがスカラ・ラ
イトする個数との比較を行うコンパレータを有し、不一
致のときにSC W COMPARE ERRORを出
力する。
【0120】UNDEF,P ERROR,SC W
LENGTH ERRORとSC W COMRARE
ERRORはオアゲート134に加わり、これらの信号
の1つが1となった際にオアゲート133を介してBU
FFER FULLとして通知し、またさらにアンドゲ
ート124を介してCOPRO BUSYを0とする。
なお、エクセプション181もSC W COMPAR
E ERRORの信号をも用いて従来と同様の処理を行
う。また、コントローラに加わるべきコマンド等を一時
的に記憶するバッファ170も従来と動作は同様である
が、そのコマンドに対するバッファの数が異なってい
る。尚、図12においては、エラーが発生した時にBU
FFER FULLを1としているが、オアゲート13
3は使用せず、バッファ170のFULLをそのままB
UFFER FULLとして出力し、CPU28でエラ
ーを検出してもよい。
LENGTH ERRORとSC W COMRARE
ERRORはオアゲート134に加わり、これらの信号
の1つが1となった際にオアゲート133を介してBU
FFER FULLとして通知し、またさらにアンドゲ
ート124を介してCOPRO BUSYを0とする。
なお、エクセプション181もSC W COMPAR
E ERRORの信号をも用いて従来と同様の処理を行
う。また、コントローラに加わるべきコマンド等を一時
的に記憶するバッファ170も従来と動作は同様である
が、そのコマンドに対するバッファの数が異なってい
る。尚、図12においては、エラーが発生した時にBU
FFER FULLを1としているが、オアゲート13
3は使用せず、バッファ170のFULLをそのままB
UFFER FULLとして出力し、CPU28でエラ
ーを検出してもよい。
【0121】図13は本発明の第3の実施例のバッファ
の構成図である。従来のバッファに更にアンドゲート1
71とフリップフロップ172とアンドゲート173と
アンドゲート174とを付加している。従来においては
3段のCRデータすなわち順次3つのオペコードデータ
をフリップフロップ98,99,100に格納している
が、本発明の第3の実施例においてはその他にSC W
L CPUが加わるのでそれを格納するフリップフロ
ップ172を設けている。例えばRD DATA0,R
D DATA1,OPCODE SW W L CPU
の順に出力されるものであるならば、フリップフロップ
93にRD DATA0がフリップフロップ99にRD
DATA1がフリップフロップ100にOPCODE
がフリップフロップ172にSC W L CPUが記
憶される。なお、この変更に対応し、アンドゲート17
3やフリップフロップ174を付加している。
の構成図である。従来のバッファに更にアンドゲート1
71とフリップフロップ172とアンドゲート173と
アンドゲート174とを付加している。従来においては
3段のCRデータすなわち順次3つのオペコードデータ
をフリップフロップ98,99,100に格納している
が、本発明の第3の実施例においてはその他にSC W
L CPUが加わるのでそれを格納するフリップフロ
ップ172を設けている。例えばRD DATA0,R
D DATA1,OPCODE SW W L CPU
の順に出力されるものであるならば、フリップフロップ
93にRD DATA0がフリップフロップ99にRD
DATA1がフリップフロップ100にOPCODE
がフリップフロップ172にSC W L CPUが記
憶される。なお、この変更に対応し、アンドゲート17
3やフリップフロップ174を付加している。
【0122】コプロセッサ29内のバッファ170で受
信した情報はリード時に順次読み出されセレクタ175
で選択されてコマンドとしてコントローラ180に加わ
る。コントローラ180はバッファより呼び出すオペラ
ンドやデータを順次格納する。なお、デコーダ176も
従来と同様であるが、そのデコードの数はバッファが増
加した分増えている。他の部分においては従来と同様で
ある。
信した情報はリード時に順次読み出されセレクタ175
で選択されてコマンドとしてコントローラ180に加わ
る。コントローラ180はバッファより呼び出すオペラ
ンドやデータを順次格納する。なお、デコーダ176も
従来と同様であるが、そのデコードの数はバッファが増
加した分増えている。他の部分においては従来と同様で
ある。
【0123】コントローラ(Controler)18
0はCPU28からコプロセッサ29に、従来から送ら
れているSC W L(スカラ・ライト数)と、本発明
によって送られるようになったSC W L CPU
(CPU28が期待しているスカラ・ライト数)の比較
を行い、異なっていた場合に、SC W COM PA
RE ERRORを出力する。
0はCPU28からコプロセッサ29に、従来から送ら
れているSC W L(スカラ・ライト数)と、本発明
によって送られるようになったSC W L CPU
(CPU28が期待しているスカラ・ライト数)の比較
を行い、異なっていた場合に、SC W COM PA
RE ERRORを出力する。
【0124】コントローラ180はバッファ171に対
して,、READ信号を用いて命令の転送を要求する。
命令はCOMMAND信号によって転送される。COM
MAND信号はマルチプレクサされているため、1つの
命令を転送するのに複数クロックを要する。コントロー
ラ180は複数クロック掛けて送られるREADをカウ
ントし、カウントした結果をデコードすることによっ
て、別個のフリップフロップに格納する。OPCODE
をデコーダでデコードしSC W LとSC W L C
PU(CPUが期待しているスカラ・ライト数)をコン
パレータで比較し、異なっていて、かつBUFFER
VALIDが1すなわちバッファの内容が有効の場合
は、SC W COMPARE ERRORを1にして
出力する。
して,、READ信号を用いて命令の転送を要求する。
命令はCOMMAND信号によって転送される。COM
MAND信号はマルチプレクサされているため、1つの
命令を転送するのに複数クロックを要する。コントロー
ラ180は複数クロック掛けて送られるREADをカウ
ントし、カウントした結果をデコードすることによっ
て、別個のフリップフロップに格納する。OPCODE
をデコーダでデコードしSC W LとSC W L C
PU(CPUが期待しているスカラ・ライト数)をコン
パレータで比較し、異なっていて、かつBUFFER
VALIDが1すなわちバッファの内容が有効の場合
は、SC W COMPARE ERRORを1にして
出力する。
【0125】さらに詳細に図を用いて説明する。図14
は本発明の第3の実施例のコントローラの構成図であ
る。図14においては本発明の要部について記してあ
る。バッファ170より出力される情報はシリアルとな
って順次コマンドとしてバッファ182〜185に入力
する。一方、リード信号はアップカウンタ186に加わ
っておりリードのたびにアップカウンタ186はアップ
カウントする。そしてそれをデコーダ187はそのカウ
ント値をデコードしアンドゲート187,188,18
9,190に入力する。デコーダ187でデコードされ
た信号はそれぞれデコード値として188〜191に入
力するが、アンドゲートの一方の端子にはリード信号が
それぞれ入力しているのでデコードされて対応する信号
であった場合、リード信号がフリップフロップ182〜
185のイネーブル端子CEに順次入力する。すなわ
ち、順次シリアルに入力するコマンドをフリップフロッ
プ182〜185が取り込む。
は本発明の第3の実施例のコントローラの構成図であ
る。図14においては本発明の要部について記してあ
る。バッファ170より出力される情報はシリアルとな
って順次コマンドとしてバッファ182〜185に入力
する。一方、リード信号はアップカウンタ186に加わ
っておりリードのたびにアップカウンタ186はアップ
カウントする。そしてそれをデコーダ187はそのカウ
ント値をデコードしアンドゲート187,188,18
9,190に入力する。デコーダ187でデコードされ
た信号はそれぞれデコード値として188〜191に入
力するが、アンドゲートの一方の端子にはリード信号が
それぞれ入力しているのでデコードされて対応する信号
であった場合、リード信号がフリップフロップ182〜
185のイネーブル端子CEに順次入力する。すなわ
ち、順次シリアルに入力するコマンドをフリップフロッ
プ182〜185が取り込む。
【0126】その結果OPCODEがフリップフロップ
184に、SC W L CPUがフリップフロップ1
85に取り込まれる。尚、他のフリップフロップ18
2,183は従来と同様である。
184に、SC W L CPUがフリップフロップ1
85に取り込まれる。尚、他のフリップフロップ18
2,183は従来と同様である。
【0127】OPCODEを記憶したフリップフロップ
184はその記憶したOPCODEをデコーダ(SC
W I DECODER)192に入力する。この回路
はCPU28内でのOPCODEに対応するスカラ・ラ
イトされるべきレジスタの個数を求める回路であり、入
力したOPCODEをデコードして、使用するレジスタ
の数を求める(SC W L CPU)。すなわちデコ
ーダ192はSC W Lを出力する。一方、フリップフ
ロップ185にはCPU28でデコードしたSC W
L CPUの情報が加わっておりコンパレータ193は
これらが一致しているか否かを判別する。一致している
ときには0を出力するのでその0レベルはアンドゲート
124を介してSC W COMPARE ERROR
として出力される。すなわちエラーが発生しないとして
0が出力される。
184はその記憶したOPCODEをデコーダ(SC
W I DECODER)192に入力する。この回路
はCPU28内でのOPCODEに対応するスカラ・ラ
イトされるべきレジスタの個数を求める回路であり、入
力したOPCODEをデコードして、使用するレジスタ
の数を求める(SC W L CPU)。すなわちデコ
ーダ192はSC W Lを出力する。一方、フリップフ
ロップ185にはCPU28でデコードしたSC W
L CPUの情報が加わっておりコンパレータ193は
これらが一致しているか否かを判別する。一致している
ときには0を出力するのでその0レベルはアンドゲート
124を介してSC W COMPARE ERROR
として出力される。すなわちエラーが発生しないとして
0が出力される。
【0128】一方、これらの値が異なっていた場合、コ
ンパレータ193は1を出力する。その1はBUFFE
R VALIDが1の時アンドゲート194より1を出
力する。この1の出力によってSC W COMPAR
E ERRORが1となる。このSC W COMPA
RE ERRORの1はオアゲート134に入力し、ア
ンドゲート124の出力であるCOPROBUSYを0
とするとともに、BUFFER FULLを1とする。
ンパレータ193は1を出力する。その1はBUFFE
R VALIDが1の時アンドゲート194より1を出
力する。この1の出力によってSC W COMPAR
E ERRORが1となる。このSC W COMPA
RE ERRORの1はオアゲート134に入力し、ア
ンドゲート124の出力であるCOPROBUSYを0
とするとともに、BUFFER FULLを1とする。
【0129】この状態をCPU内のライトアドレスバッ
ファが判断し、指示された他のエラーと同様にエラーの
処理を行う。なお、前述したライトアドレスバッファ1
40は図7におけるライトアドレスバッファ130と同
様である。
ファが判断し、指示された他のエラーと同様にエラーの
処理を行う。なお、前述したライトアドレスバッファ1
40は図7におけるライトアドレスバッファ130と同
様である。
【0130】以上、本発明をCPU28とコプロセッサ
29を別々に構成して説明したが、本発明はこれに限ら
ずCPUとコプロセッサが同一基板や同一チップ上にの
っているものでもよく、更にはそれぞれの回路が別々の
基板上に設けられていてもよい。
29を別々に構成して説明したが、本発明はこれに限ら
ずCPUとコプロセッサが同一基板や同一チップ上にの
っているものでもよく、更にはそれぞれの回路が別々の
基板上に設けられていてもよい。
【0131】
【発明の効果】以上本発明によれば、例外事象によって
コプロセッサが何個のレジスタにスカラ・ライトを行う
か不明な場合でも、コプロセッサとCPUを結ぶ信号線
を増加させることなく、またサービス・プロセッサ無し
でスコアボードのリセットを行い、実行を継続すること
が可能となった。これによりハングアップ等の異常状態
を適確に検出するとともに、CPUの処理の停止を短時
間にすることができる。
コプロセッサが何個のレジスタにスカラ・ライトを行う
か不明な場合でも、コプロセッサとCPUを結ぶ信号線
を増加させることなく、またサービス・プロセッサ無し
でスコアボードのリセットを行い、実行を継続すること
が可能となった。これによりハングアップ等の異常状態
を適確に検出するとともに、CPUの処理の停止を短時
間にすることができる。
【図1】本発明の第1の原理ブロック図である。
【図2】本発明の第2の原理ブロック図である。
【図3】本発明の第3の原理ブロック図である。
【図4】本発明の第1の実施例のCPUの構成図であ
る。
る。
【図5】本発明の第1の実施例のライトアドレスバッフ
ァ(Write−Address−Buffer)の構
成図である。
ァ(Write−Address−Buffer)の構
成図である。
【図6】本発明の第1の実施例のコプロセッサの構成図
である。
である。
【図7】本発明の第2の実施例のCPUの構成図であ
る。
る。
【図8】本発明の第2の実施例のライトアドレスバッフ
ァ(Write−Address−Buffer)の構
成図である。
ァ(Write−Address−Buffer)の構
成図である。
【図9】本発明の第2の実施例のコプロセッサの構成図
である。
である。
【図10】本発明の第3の実施例のCPUの構成図であ
る。
る。
【図11】本発明の第3の実施例のコプロインタフェー
ス(Copro Interface)の構成図であ
る。
ス(Copro Interface)の構成図であ
る。
【図12】本発明の第3の実施例のコプロセッサの構成
図である。
図である。
【図13】本発明の第3の実施例のバッファ(Buff
er)の構成図である。
er)の構成図である。
【図14】本発明の第3の実施例のコントローラ(Co
ntroler)の構成図である。
ntroler)の構成図である。
【図15】プログラムとその実行の説明図である。
【図16】プログラムの実行の説明図(正常時)であ
る。
る。
【図17】従来のCPUの構成図である。
【図18】デコーダ(Decoder)の構成図であ
る。
る。
【図19】コントローラ(Controler)の構成
図である。
図である。
【図20】従来のライトアドレスバッファ(Write
−Address−Buffer)の構成図である。
−Address−Buffer)の構成図である。
【図21】従来のコプロインタフェース(Copro
Interface)の構成図である。
Interface)の構成図である。
【図22】従来のコプロセッサの構成図である。
【図23】従来のバッファ(Buffer)の構成図で
ある。
ある。
【図24】従来のエクセプションの構成図である。
【図25】従来のスカラ・ライトユニットの構成図であ
る。
る。
【図26】プログラム実行の説明図(異常時)である。
1 デコーダ 2 ファイルレジスタ 3 スコアボード 4 演算回路 5 制御回路 7 コプロインタフェース 120 ライトアドレスバッファ 130 ライトアドレスバッファ 140 ライトアドレスバッファ 150 コプロインタフェース
Claims (16)
- 【請求項1】 副処理装置の処理内容を副処理装置命令
として発行する主処理装置(20)と、前記主処理装置
(20)からの前記副処理装置命令に対応した処理を実
行し、該処理の結果を前記主処理装置(20)のレジス
タに書き込む副処理装置(21)とより成る装置におい
て、 前記副処理装置命令の未定義あるいは実行に係るエラー
の少なくとも一方の異常を検出する異常検出手段(2
3)と、 該異常を検出した際に処理中のフラグをオフとするフラ
グオフ手段(22)とを前記副処理装置に設け、 前記主処理装置は、前記副処理装置命令に対応して書き
込まれるレジスタが残っていて、前記処理中のフラグが
オフとなった時異常と判断することを特徴とする情報処
理装置。 - 【請求項2】 前記主処理装置(20)は、異常と判断
した際、前記副処理装置命令に対応して書き込まれるべ
き残っているレジスタのスコアボードのビットをリセッ
トすることを特徴とする請求項1記載の情報処理装置。 - 【請求項3】 前記実行に係るエラーはパリティエラー
あるいはスカラ・ライトレングスエラーの少なくとも一
方であることを特徴とする請求項1記載の情報処理装
置。 - 【請求項4】 前記異常検出手段(23)はオアゲート
であり、前記フラグオフ手段は該オアゲートの出力が反
転して一方の入力に加わり、他方に処理中の情報が加わ
るアンドゲートであることを特徴とする請求項1記載の
情報処理装置。 - 【請求項5】 副処理装置の処理内容を副処理装置命令
として発行する主処理装置(20)と、前記主処理装置
(20)からの前記副処理装置命令に対応した処理を実
行し、該処理の結果を前記主処理装置(20)のレジス
タに書き込む副処理装置(21)とより成る装置におい
て、 前記副処理装置命令の未定義あるいは実行に係るエラー
の少なくとも一方を検出する異常検出手段(23)と、 該異常を検出した際に処理中のフラグをオフとするフラ
グオフ手段(22)と、 該異常を検出した際に前記副処理装置が有するバッファ
がフルであることを表わすフラグをオンとするフラグオ
ン手段(24)とを前記副処理装置(21)に設け、 前記主処理装置は処理中のフラグがオフでバッファがフ
ルであることを表わすフラグがオンである状態から異常
と判断することを特徴とする情報処理装置。 - 【請求項6】 前記主処理装置(20)は、異常と判断
した際前記副処理装置命令に対応して書き込まれるべき
残っているレジスタのスコアボードのビットをリセット
することを特徴とする請求項5記載の情報処理装置。 - 【請求項7】 前記実行に係るエラーはパリティエラー
あるいはスカラ・ライトレングスエラーの少なくとも一
方であることを特徴とする請求項5記載の情報処理装
置。 - 【請求項8】 前記異常検出手段(23)はオアゲート
であり、前記フラグオフ手段(22)は該オアゲートの
出力が反転して一方の入力に加わり、他方に処理中の情
報が加わるアンドゲートであり、 前記フラグオン手段(24)は前記バッファがフルであ
るか或いは前記オアゲートの出力がオンの時出力をオン
とするオアゲートであることを特徴とする請求項5記載
の情報処理装置。 - 【請求項9】 副処理装置の処理内容を副処理装置命
令として発行する主処理装置(20)と、前記主処理装
置(20)からの前記副処理装置命令に対応した処理を
実行し、該処理の結果を前記主処理装置(20)のレジ
スタに書き込む副処理装置(21)とより成る装置にお
いて、 前記主処理装置(20)は、該主処理装置が発行する副
処理装置命令とともに、当該命令によって書き込まれる
主処理装置のレジスタの数を、前記副処理装置に転送す
る転送手段(25)を有し、 前記副処理装置は、前記副処理装置命令によって書き込
むべき主処理装置のレジスタの数と、前記転送手段によ
って送られたレジスタの数とを比較する比較手段(2
6)と、該比較手段(26)の結果が不一致の時異常と
判断する異常判断手段(27)とを有することを特徴と
する情報処理装置。 - 【請求項10】 前記異常判断手段(27)は、さらに
副処理装置命令の未定義あるいはパリティエラーあるい
はスカラ・ライトレングスエラーの少なくとも一方の異
常をも判断することを特徴とする請求項9記載の情報処
理装置。 - 【請求項11】 前記副処理装置(21)はさらに前記
異常判断手段(27)で異常と判断した時に前記主処理
装置に異常を通知するフラグオフ手段を有し、 前記主処理装置は、前記副処理装置命令に対応して書き
込まれるレジスタが残っていて、前記処理中のフラグが
オフとなった時異常と判断することを特徴とする請求項
9記載の情報処理装置。 - 【請求項12】 前記副処理装置は、さらに、前記異常
判断手段で異常と判断した時に前記主処理装置に異常を
通知するフラグオフ手段と、 バッファがフルであることを表わすフラグをオンとする
フラグオン手段とを有し、 前記主処理装置は、処理中のフラグがオフでバッファが
フルであることを表わすフラグがオンである状態から異
常と判断することを特徴とする請求項9記載の情報処理
装置。 - 【請求項13】 前記異常検出手段はオアゲートであ
り、前記フラグオフ手段は該オアゲートの出力が反転し
て一方の入力に加わり、他方に処理中の情報が加わるア
ンドゲートであり、 前記フラグオン手段は前記バッファがフルであるか或い
は前記オアゲートの出力がオンの時出力をオンとするオ
アゲートであることを特徴とする請求項12記載の情報
処理装置。 - 【請求項14】 命令をデコードして該命令に対応する
処理を制御する命令デコーダと、 データを記憶する複数のレジスタより成るレジスタファ
イルと、 該レジスタファイルへのデータの格納の要否を記憶する
レジスタ干渉検出手段と、 副処理装置命令を発信する副処理装置命令発信手段と、 データを受信して前記レジスタファイルに書き込みを行
うデータ受信手段と、 書き込みが行われるレジスタファイル中のレジスタのレ
ジスタ番号を含む書き込み指示情報を保持するレジスタ
書き込み指示子保持手段とを有する主処理装置と、 前記主処理装置から発信される前記副処理装置命令に係
る情報を保持する副処理装置命令保持手段と、 該副処理装置命令保持手段に格納された情報をデコード
して当該情報に係る命令を実行する副処理装置制御手段
と、 該副処理装置制御手段によって制御されて演算処理を行
う副処理装置演算手段と、 該副処理装置演算手段の結果を前記主処理装置に転送す
る結果転送手段と、 前記主処理装置との間で転送あるいは内部での転送の少
なくとも一方が正しくなされなかったことを検出する例
外事象検出手段とを有する副処理装置とより成り、 命令実行時に前記主処理装置においては、前記命令デコ
ーダが副処理装置命令であることをデコードした場合
は、前記副処理装置命令発信手段によって副処理装置に
前記副処理装置命令を発信すると同時に、前記命令デコ
ーダが、副処理装置命令が副処理装置での処理結果を主
処理装置内の前記レジスタファイルに書き込むか否かを
デコードし、副処理装置命令が副処理装置での処理結果
を主処理装置内のレジスタに書き込む命令である場合に
は、前記レジスタ書き込み指示子を前記レジスタ書き込
み指示子保持手段に保持すると共に、書き込み指示子に
よって示されるレジスタに対応するレジスタ干渉待ちを
有効化するように前記レジスタ干渉検出手段を制御し、 副処理装置命令を前記副処理装置命令保持手段に受信し
た副処理装置においては、前記副処理装置命令に従って
前記副処理装置制御手段が副処理装置演算器を制御して
演算処理を行い、前記副処理装置制御手段が前記副処理
装置命令が前記副処理装置演算器で処理を行った結果の
データを主処理装置に転送する命令であることをデコー
ドした場合は、前記副処理装置演算器で処理を行った結
果のデータを前記結果転送手段を制御して前記主処理装
置に転送し、 データを転送された前記主処理装置においては、前記デ
ータ受信手段でデータを受信するとともに、前記レジス
タ書き込み指示子保持手段に保持された書き込みレジス
タ番号にしたがって前記レジスタファイルにデータを書
き込み、さらに書き込み指示子によって示されるレジス
タに対応するレジスタ干渉待ちを無効化するように前記
レジスタ干渉検出手段を制御する情報処理装置であっ
て、 副処理装置が処理を行っていることを示す、副処理実行
中信号を主処理装置に転送する転送手段を副処理装置は
有し、 副処理装置が副処理装置命令の実行において例外事象な
どを検出した為に、副処理装置が正しく主処理装置にデ
ータの書き込みができなかった場合には、前記主処理装
置は、前記副処理実行中信号により副処理装置が停止し
ていて、さらに前記レジスタ書き込み指示子保持手段に
まだ書き込み完了していないレジスタ書き込み指示子が
保持されていると判断した場合は、 レジスタ書き込み指示子保持手段によって保持されてい
た書き込みレジスタ番号に従って、対応するレジスタ干
渉待ちを無効化することを特徴とする情報処理装置。 - 【請求項15】 命令をデコードして該命令に対応する
処理を制御する命令デコーダと、 データを記憶する複数のレジスタより成るレジスタファ
イルと、 該レジスタファイルへのデータの格納の要否を記憶する
レジスタ干渉検出手段と、 副処理装置命令を発信する副処理装置命令発信手段と、 データを受信して前記レジスタファイルに書き込みを行
うデータ受信手段と、 書き込みが行われるレジスタファイル中のレジスタのレ
ジスタ番号を含む書き込み指示情報を保持するレジスタ
書き込み指示子保持手段とを有する主処理装置と、 前記主処理装置から発信される前記副処理装置命令に係
る情報を保持する副処理装置命令保持手段と、 該副処理装置命令保持手段に格納された情報をデコード
して当該情報に係る命令を実行する副処理装置制御手段
と、 該副処理装置制御手段によって制御されて演算処理を行
う副処理装置演算手段と、 該副処理装置演算手段の結果を前記主処理装置に転送す
る結果転送手段と、 前記主処理装置との間で転送あるいは内部での転送の少
なくとも一方が正しくなされなかったことを検出する例
外事象検出手段とを有する副処理装置とより成り、 命令実行時に前記主処理装置においては、前記命令デコ
ーダが副処理装置命令であることをデコードした場合
は、前記副処理装置命令発信手段によって副処理装置に
前記副処理装置命令を発信すると同時に、前記命令デコ
ーダが、副処理装置命令が副処理装置での処理結果を主
処理装置内の前記レジスタファイルに書き込むか否かを
デコードし、副処理装置命令が副処理装置での処理結果
を主処理装置内のレジスタに書き込む命令である場合に
は、前記レジスタ書き込み指示子を前記レジスタ書き込
み指示子保持手段に保持すると共に、書き込み指示子に
よって示されるレジスタに対応するレジスタ干渉待ちを
有効化するように前記レジスタ干渉検出手段を制御し、 副処理装置命令を前記副処理装置命令保持手段に受信し
た副処理装置においては、前記副処理装置命令に従って
前記副処理装置制御手段が副処理装置演算器を制御して
演算処理を行い、前記副処理装置制御手段が前記副処理
装置命令が前記副処理装置演算器で処理を行った結果の
データを前記主処理装置に転送する命令であることをデ
コードした場合は、前記副処理装置演算器で処理を行っ
た結果のデータを前記結果転送手段を制御して前記主処
理装置に転送し、 データを転送された前記主処理装置においては、前記デ
ータ受信手段でデータを受信するとともに、前記レジス
タ書き込み指示子保持手段に保持された書き込みレジス
タ番号にしたがって前記レジスタファイルにデータを書
き込み、さらに書き込み指示子によって示されるレジス
タに対応するレジスタ干渉待ちを無効化するように前記
レジスタ干渉検出手段を制御する情報処理装置であっ
て、 前記副処理装置が副処理装置命令の実行において例外事
象を検出した場合に、前記副処理装置は前記主処理装置
に例外事象を検出したことを報告し、 前記副処理装置から例外事象を検出したことを報告され
た前記主処理装置は前記レジスタ書き込み指示子保持手
段が、前記副処理装置がレジスタファイルを書き換える
ことを示していた場合には、レジスタ書き込み指示子保
持手段によって保持されていた書き込みレジスタ番号に
従って、対応するレジスタ干渉待ちを無効化することを
特徴とする前記記載の情報処理装置。 - 【請求項16】 命令をデコードして該命令に対応する
処理を制御する命令デコーダと、 データを記憶する複数のレジスタより成るレジスタファ
イルと、 該レジスタファイルへのデータの格納の要否を記憶する
レジスタ干渉検出手段と、 副処理装置命令を発信する副処理装置命令発信手段と、 データを受信して前記レジスタファイルに書き込みを行
うデータ受信手段と、 書き込みが行われるレジスタファイル中のレジスタのレ
ジスタ番号を含む書き込み指示情報を保持するレジスタ
書き込み指示子保持手段とを有する主処理装置と、 前記主処理装置から発信される前記副処理装置命令に係
る情報を保持する副処理装置命令保持手段と、 該副処理装置命令保持手段に格納された情報をデコード
して当該情報に係る命令を実行する副処理装置制御手段
と、 該副処理装置制御手段によって制御されて演算処理を行
う副処理装置演算手段と、 該副処理装置演算手段の結果を前記主処理装置に転送す
る結果転送手段と、 前記主処理装置との間で転送あるいは内部での転送の少
なくとも一方が正しくなされなかったことを検出する例
外事象検出手段とを有する副処理装置とより成り、 命令実行時に前記主処理装置においては、前記命令デコ
ーダが副処理装置命令であることをデコードした場合
は、前記副処理装置命令発信手段によって副処理装置に
前記副処理装置命令を発信すると同時に、前記命令デコ
ーダが、副処理装置命令が副処理装置での処理結果を主
処理装置内の前記レジスタファイルに書き込むか否かを
デコードし、副処理装置命令が副処理装置での処理結果
を主処理装置内のレジスタに書き込む命令である場合に
は、前記レジスタ書き込み指示子を前記レジスタ書き込
み指示子保持手段に保持すると共に、書き込み指示子に
よって示されるレジスタに対応するレジスタ干渉待ちを
有効化するように前記レジスタ干渉検出手段を制御し、 副処理装置命令を前記副処理装置命令保持手段に受信し
た副処理装置においては、前記副処理装置命令に従って
前記副処理装置制御手段が副処理装置演算器を制御して
演算処理を行い、前記副処理装置制御手段が前記副処理
装置命令が前記副処理装置演算器で処理を行った結果の
データを主処理装置に転送する命令であることをデコー
ドした場合は、前記副処理装置演算器で処理を行った結
果のデータを前記結果転送手段を制御して主処理装置に
転送し、 データを転送された前記主処理装置においては、前記デ
ータ受信手段でデータを受信するとともに、前記レジス
タ書き込み指示子保持手段に保持された書き込みレジス
タ番号にしたがって前記レジスタファイルにデータを書
き込み、さらに書き込み指示子によって示されるレジス
タに対応するレジスタ干渉待ちを無効化するように前記
レジスタ干渉検出手段を制御する情報処理装置であっ
て、 主処理装置に、前記命令デコーダでデコードして副処理
装置が書き込むレジスタの数を示す副処理装置レジスタ
書き込み数信号を副処理装置に転送する書き込みレジス
タ数転送手段を設け、 前記例外事象検出手段に、前記副処理装置が副処理装置
制御手段によってデコードした前記副処理装置が書き込
むレジスタの数を示す副処理装置レジスタ書き込み数情
報と、前記書き込みレジスタ数転送手段で示されたレジ
スタ書き込み数情報とを比較する書き込みレジスタ数比
較手段を設け、 少なくとも前記例外検出手段が書き込みレジスタ数の数
の不一致を検出した場合は、前記副処理装置は前記主処
理装置に例外事象を検出したことを報告し、 前記副処理装置から例外事象を検出したことを報告され
た前記主処理装置は前記レジスタ書き込み指示子保持手
段が、前記副処理装置がレジスタファイルを書き換える
ことを示していた場合には、レジスタ書き込み指示子保
持手段によって保持されていた書き込みレジスタ番号に
従って、対応するレジスタ干渉待ちを無効化することを
特徴とする情報処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6047547A JPH07262032A (ja) | 1994-03-17 | 1994-03-17 | 情報処理装置 |
| US08/406,075 US5781433A (en) | 1994-03-17 | 1995-03-17 | System for detecting failure in information processing device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6047547A JPH07262032A (ja) | 1994-03-17 | 1994-03-17 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07262032A true JPH07262032A (ja) | 1995-10-13 |
Family
ID=12778185
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6047547A Withdrawn JPH07262032A (ja) | 1994-03-17 | 1994-03-17 | 情報処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5781433A (ja) |
| JP (1) | JPH07262032A (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000181890A (ja) * | 1998-12-15 | 2000-06-30 | Fujitsu Ltd | マルチプロセッサ交換機及びその主プロセッサ切替方法 |
| US6684346B2 (en) * | 2000-12-22 | 2004-01-27 | Intel Corporation | Method and apparatus for machine check abort handling in a multiprocessing system |
| US8250412B2 (en) * | 2003-09-26 | 2012-08-21 | Ati Technologies Ulc | Method and apparatus for monitoring and resetting a co-processor |
| US20060190700A1 (en) * | 2005-02-22 | 2006-08-24 | International Business Machines Corporation | Handling permanent and transient errors using a SIMD unit |
| US20170177361A1 (en) * | 2015-12-22 | 2017-06-22 | Michael Anderson | Apparatus and method for accelerating graph analytics |
| JP7315872B2 (ja) * | 2020-01-20 | 2023-07-27 | 富士通株式会社 | プロセッサ、シミュレータプログラム、アセンブラプログラム、及び情報処理プログラム |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU6894491A (en) * | 1989-11-27 | 1991-06-26 | Olin Corporation | Method and apparatus for providing backup process control |
| US5142470A (en) * | 1990-09-26 | 1992-08-25 | Honeywell Inc. | Method of maintaining synchronization of a free-running secondary processor |
| US5249188A (en) * | 1991-08-26 | 1993-09-28 | Ag Communication Systems Corporation | Synchronizing two processors as an integral part of fault detection |
| US5416908A (en) * | 1992-04-28 | 1995-05-16 | Allen-Bradley Company, Inc. | Interface between industrial controller components using common memory |
-
1994
- 1994-03-17 JP JP6047547A patent/JPH07262032A/ja not_active Withdrawn
-
1995
- 1995-03-17 US US08/406,075 patent/US5781433A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5781433A (en) | 1998-07-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5537559A (en) | Exception handling circuit and method | |
| US6754856B2 (en) | Memory access debug facility | |
| CN1040158C (zh) | 具有用于访问空闲模式的运行/停止端的微处理器 | |
| US5694617A (en) | System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation | |
| EP0612012B1 (en) | A pipeline computer with scoreboard | |
| JPH02232737A (ja) | パイプライン方式コンピューターシステムにおいてエラーを検出し訂正する方法及び装置 | |
| JPH0731597B2 (ja) | 複数のマイクロプログラム制御式処理装置を備えるプロセッサ | |
| RU2137182C1 (ru) | Выполнение инструкции обработки данных | |
| JPH03116236A (ja) | 例外処理方法及び例外処理装置 | |
| EP0372751B1 (en) | Pipelined data-processing apparatus | |
| US5003458A (en) | Suspended instruction restart processing system based on a checkpoint microprogram address | |
| US5469552A (en) | Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions | |
| US5146569A (en) | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension | |
| JP3338488B2 (ja) | データ処理装置の検証方法及び装置 | |
| JPH07120338B2 (ja) | 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ | |
| JPH07262032A (ja) | 情報処理装置 | |
| US7305586B2 (en) | Accessing and manipulating microprocessor state | |
| US7552269B2 (en) | Synchronizing a plurality of processors | |
| US5642499A (en) | Method and apparatus for controlling timing of execution of saving and restoring operations in a processor system | |
| JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
| JPH0384632A (ja) | データ処理装置 | |
| JPH08171504A (ja) | エミュレ−ション装置 | |
| JPH07129414A (ja) | データ処理装置 | |
| JP2824484B2 (ja) | パイプライン処理計算機 | |
| JP5012562B2 (ja) | マイクロコンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010605 |