JPH02306361A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH02306361A
JPH02306361A JP2023507A JP2350790A JPH02306361A JP H02306361 A JPH02306361 A JP H02306361A JP 2023507 A JP2023507 A JP 2023507A JP 2350790 A JP2350790 A JP 2350790A JP H02306361 A JPH02306361 A JP H02306361A
Authority
JP
Japan
Prior art keywords
bus
coprocessor
data
floating point
cycle
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.)
Granted
Application number
JP2023507A
Other languages
English (en)
Other versions
JP2754825B2 (ja
Inventor
Hiroaki Kaneko
金子 博昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPH02306361A publication Critical patent/JPH02306361A/ja
Application granted granted Critical
Publication of JP2754825B2 publication Critical patent/JP2754825B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)
  • Microcomputers (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロプロセッサが外部で処理できる命令
の他に、マイクロプロセッサの外部に接続1−だコプロ
セッサによって命令を拡張することのできるマイクロプ
ロセッサに関する。
〔従来の技術〕
マイクロプロセッサは、限らhたサイズの半導体チップ
の上で実装する必要があるため、若干の性能を犠牲にし
ても独立した機能をチップ外部へ別なLSIとして実装
することがしばしば行なわハる。それぞれの機能を単一
の半導体チップに実装することで、物理的に製造不可能
なチップ・サイズになったり、チップ・サイズの増加に
よるコスト増加を避けるためである。
特に、高性能、高機能を要求される16ビツト以上のマ
イクロプロセッサでは、浮動小数点演算機能、メモリ管
理機構、メモリ緩衝(キャッシュ)機構等の機能を有1
−だLSIが、マイクロプロセッサと密に接続する形で
用いられる。これらの機能は、本来はマイクロプロセッ
サの内部に実装することで、より高性能2システムの小
型化が可能になるものであるが、前述の理由により、マ
イクロプロセッサ外部で実現されている。
マイクロブロセゾザ外部にあって、マイクロプロセッサ
の命令セットを拡張するための機能を持つLSIは、一
般にコプロセッサとして知られている。コプロセッサの
代表的な機能として、前にも述べた浮動小数点演算があ
る。
従来の4,8.および幾つかの16ビツ)・マイクロプ
ロセッサは、応用分野が単純であったこともあり、整数
を扱う命令1−か有していなかった。
しかしながら、マイクロプロセッサの応用分野の拡大に
伴い、浮動小数点演算を高速に実現することが要求され
つつある。従来のマイクロプロセッサでは、浮動小数点
演算用の命令を持たないために、整数を取り扱う命令を
組合せ、ソフトウェアによって浮動小数点演算を行なっ
ていた。このため、整数演算と比較して浮動小数点の演
算は、極めて低い性能しか持ち合せていなかった。
浮動小数点演算用コプロセッサは、マイクロプロセッサ
と密に接続され、浮動小数点演算用の命令をマイクロプ
ロセッサが実行1〜ようとする(実際には演算できない
)ことを、マイクロプロセッサから通知、あるいは自ら
検知すると、マイクロプロセッサにかわり浮動小数点演
算を行なうものである。浮動小数点演算用コプロセッサ
が浮動小数点演算を行なっている間、マイクロプロセッ
サは浮動小数点演算命令以外の命令を続行することがで
きる。
第3図に従来のマイクロプロセッサと、浮動小数点演算
用コプロセッサの接続例を示す。32ビツト・マイクロ
プロセッサ(以下CPUと呼ぶ)300は、32ビツト
幅のデータ・バスD132ビット幅のアドレス・バスA
を介して、浮動小数点演算用コプロセッサ(以下FPU
と呼ぶ)310、ならびにメモリ320と接続されてい
る。
ステータス信号群Sは、CPU300が発行するバス・
サイクルの種類、およびタイミングをFPU 310、
ならびにメモリ320に通知するための信号群である。
B U S Y信号は、FPU310が浮動小数点演算
を実行中であることをCPU300に通知するための信
号である。
CPU300は、バス・サイクルの発生を制御するバス
制御ユニット(以下ECUと呼ぶ)301、BCU30
1によって取り込まれた命令コードを解読する命令デコ
ード・ユニット(以下IDUと呼ぶ)302、および実
際に命令をする実行ユニット(以下EXUと呼ぶ)30
3によって構成される。
まず、浮動小数点演算命令を除く命令(以下通常命令と
呼ぶ)を実行する場合のCPU300の動作について第
4図とともに説明する。命令フェッチ・バス・ (F 
E T CH)サイクルによってメモリ320からBC
U301に取り込まれた命令コードは、IDU302に
よって解読され、動作の種類、オペランドの種類(aX
、  レジスタ/メモリ、リード/ライト等)がEXU
303に通知される。
EXU303は、メモリ・リード・オペランドがある場
合BCU301にオペランド・リード・バス・ (ME
MR)サイクルの起動を指示する。
メモリ320に格納されているメモリ・オペランドは、
MEMRサイクルによってBCU301に転送される(
読み出される)。レジスタ・オペランドがある場合は、
図面では省略しているが、EXU303内の汎用レジス
タがオペランドとして選択される。
メモリ・オペランドがBCU3Qlに用意されると、こ
のデータを引き取ってEXU 303は実際の命令実行
を行なう。
EXU303は、命令実行結果がメモリ320に書き戻
す必要があることをIDU302によって通知されてい
れば、BCU301にオペランド・ライト・バス(ME
MW)サイクルの起動を指示すると同時に、BCU30
1に対して書き戻すべきデータ(実行結果)を転送する
。メモリ320には、MEMWサイクルによって、必要
な実行結果が転送される(書き込まれる)。
一方、浮動小数点演算命令を実行する場合、IDU30
2によって動作の種類、オペランドの種類がEXtJ3
03に通知されるまでは同一である。
メモリ320に格納されている浮動小数点データは、一
般に32ビツト以」二(64ビツトあるいは80ビツト
)であるため、1回のMEMR−lノ−イクルではBC
U301に取り込むことはできず、複数のバス・サイク
ルが必要である。EXU303は、BCU301浮動小
数点データをすべて取り込むと、これをFPU310に
対して転送するために、コプロセッサ・オペランド・ラ
イト・バスccpow)サイクルの起動を指示し、EC
U301内に一時格納された浮動小数点データは、FP
U310に転送される(書き込まれる)。この転送も、
前記理由により、複数回のバス・サイクルが必要なこと
が多い。
IDU302によってEXU303に通知された命令実
行に関する動作の種類は、EXU303によってFPU
310が解読できるような形式(コマンド)に再構成さ
れる。EXU303で生成されたコマンドは、BCU3
01に転送されると同時に、EXU 303はBCU3
01に対1.てコプロセッサ・ライト・バス(CPWR
)サイクルの起動を指示する。
CPWRザイクルによってコマンドがFPU310に転
送される(書き込まれる)と、FPU310はコマンド
に先立って転送された浮動小数点データに対して演算を
開始する。
FPU310が演算中は、BUSY信号によってビジー
状態であることがCPU300に対して通知され、EX
U 303は浮動小数点演算命令の実行が終了しておら
ず、引続く命令の実行を開始できないことを検知して、
BUSY信号がレディー状態になることを待ち合わせる
FPU310が演算を終了すると、BUSY信号はレデ
ィー状態になり、EXU 303によって演算終了が検
知される。通常命令と同様に、演算結果がメモリ320
に書き戻す必要があることをIDU302によって通知
されていれば、EXU303はコプロセッサ・オペラン
ド・リード・バス(CPOR)サイクルを起動し、一度
FPU310内の演算結果をECU301内に転送(読
み出す)した後、メモリ320にMEMWザイクルによ
って、必要な実行結果を転送する(書き込む)ように、
BCU301に対して指示を行なう。
〔発明が解決しようとする課題〕
前述した浮動小数点命令をCPU300が実行する際に
、CPU300が発行するバス・サイクルによるデータ
・バスDの状態を第4図に示す。
ここでは、簡便のために浮動小数点データのビット幅は
32ビツト、すなわちCPU300とメモリ320、お
よびCPU300とFPU310の間で行なわれる浮動
小数点データの転送は、1回のバス・サイクルで十分で
あるとする。
浮動小数点演算命令の実行をCPU300からFPU3
10へ分離したことにより、本来CPU300にとって
不要なCPOW、CPWR,おJ:びCPORの各サイ
クルが発行されることが簡単に理解できる。先に述べた
ように、cpow、cPORの各サイクルは、一般に2
回以上であることが多いため、本来無駄なバス・サイク
ルは実質的にはさらに多い。
また、2つのオペランド・データに対する演算(例えば
加算)を行なう場合に両オペランドが共にメモリ・オペ
ランドの際には、第一のオペランド、および第二のオペ
ランドに対して、それぞれCPOWサイクルを必要とす
ることになる。
例えば64ビツト長の2つのメモリ320に格納された
浮動小数点データに対して、浮動小数点演算を行なう場
合、4回のcpowサイクル、1回のCPWRサイクル
、2回のCPORサイクル、合計7回のバス・サイクル
がFPU310を用いるために必要になる。
近年マイクロプロセッサは、高性能化を図るために、命
令のフェッチ、命令のデコード、命令の実行、あるいは
さらに段数を増やした、同時に複数の命令を処理するバ
イブライン方式を採用している。
バイブライン方式の利点は、命令処理をいくつかのステ
ージに分割することで、見かえ上の実行性能を向上でき
ることにある。しかしながら、この利点は分割したステ
ージで澱みなく命令処理が行なわれ、初めて得られるも
のである。
前段階のステージで、後段階のステージの結果を必要と
するような、いわゆるバイブライン・ハザードの発生時
や、バイブラインの根本である外部データ・バスが使用
中で必要なバス・サイクルを発行できない」:うなバス
・ネック状態では、理想的な性能を得ることはできない
前述したように、コプロセッサを用いるために、マイク
ロプロセッサ、メモリ、そしてコブロセッ−1−カ共有
するアドレス・バス、データ・バスを一定時間占有する
ために、バス・ネック状態の発生を助長することになる
特に、コプロセッサ側の処理能力が優れている場合、例
えば従来の浮動小数点用コプロセッサでさえ、頻繁に使
用される四則演算を10クロック程度で処理できるにも
かかわらず、データ・バス使用のためのクロック数が上
回る状態にさえ成り得る。
このような状態では、マイクロプロセッサが被るオーバ
ヘッドは、深刻である。
〔課題を解決するための手段〕
本発明は、命令セットを拡張するだめのコプロセッサを
外部に接続できるマイクロプロセッサにおいて、外部と
データ転送を行なう為のデータ・バス、アトlメス・バ
ス、および状態信号群をドライブする端子を2組備え、
それぞれの端子群を独立に制御する2絹の専用の制御手
段を有することを特徴とする。
すなわち、本発明ではメモリをアクセスするためのデー
タ・バス、およびアドレス・バスとは別に、専用のデー
タ・バス、およびアドレス・バスを用いてコプロセッサ
とデータ転送を行なっている。
〔実施例〕
以下図面を参照して、本発明の構成および動作を詳細に
説明する。
第1図は、本発明を用いたマイクロプロセッサと、浮動
小数点演算用コプロセッサの接続例を示す。32ビツト
・マイクロプロセッサ(以下CPUと呼ぶ)100は、
32ビツト幅のデータ・バス(0−31)、32ビツト
幅のアドレス・バスA (0−31)を介してメモリ1
20と接続されている。ステータス信号群Sは、CPU
100が発行するバス・サイクルの種類、およびタイミ
ングをメモリ120に通知するための信号群である。
データ・バスD、アドレス・バスA、およびステータス
信号群Sを総称I−でシステム・バスと呼ぶ。
システム・バスで発行されるバス・サイクルは、リード
/ライトともに2クロツクで構成される。
図面では省略しているが、メモリ120から要求される
バス・サイクルの延長要求信号READYによって、2
クロツク以七に延長することができる。
また浮動小数点演算用コプロセッサ(以下FPUと呼ぶ
)11Oは、32ビツト幅のデータ・バスCD (0−
31)、9ビット幅のアドレス・バスCA (0−8)
を介してCPU 100と接続さhている。
ステータス信号群としてライト信号WR(−)およびス
トローブ信号D S (−)がCPU100からFPU
 110に出力さ九る。ステータス信号群WR(’) 
、 D S (−)は、CPU1.OOが発行するバス
・サイクルの種類、およびタイミングなFPUlloに
通知するための信号群である。データ・バスCD、アド
レス・バスCA、およびステータス信号群CPWR(−
)、CP D S (−)を総称してコプロセッサ・バ
スと呼ぶ。BUSY(−)信号は、FPUIIOが浮動
小数点演算を実行中であることをCPU100に通知す
るための信号である。
CPU100は、システム・バスのバス・サイクル発生
を制御するバス制御ユニッ)・(以下ECUと呼ぶ)1
01、BCU 101によって取り込まれた命令コード
を解読する命令デコード・ユニット(以下I D TJ
と呼ぶ)102、および実際に命令をする実行ユニット
(以下EXUと呼ぶ)103、コプロセッサ・バスのバ
ス・サイクル発生を制御するバス制御ユニット(以下C
B CTJと呼ぶ)104によって構成される。
CBCUl 04は、EXU I O3の指示により、
コプロセッサ・バスに対してバス・サイクルを発生し、
データ・バスCDを介してFPUI 10とデータの転
送(読出し/書込み)を行なうことができる。FPTJ
IIOへ転送する(書き込む)デ・−夕は、EXU 1
03からCBCUl 04へ設定され、FPUIIOか
ら転送する(読み出す)データは、CBCUl 04か
らEXU 103へ取り込まれる。
CBCUl 04で制御され、コブロセ、ソサ・ノくス
で発行されるバス・サイクルは、第6図に示すようにリ
ード/ライトともに3クロツク(C1゜C2,C3の各
ステート)で構成される。
バス・サイクルを延長する制御は行われず、必ず3クロ
ツクで終了する点がシステム・ノくスにおけるバス・サ
イクル制御と大きく異なる。ノ(ス・サイクルの延長制
御を持たないため、CBCU104はBCU 101よ
りも簡単に実現できるとともに、CPU100とFPU
IIOの間のインタフェースを回路的、およびタイミン
グ的に容易にしている。
FPU 100からCPUll0へのリードを行う場合
、アドレス・バスCA (0−8)で指定されるFPU
 100内のレジスタの内容は、データ・バスCD (
0−31)を介してC3ステートの終了時にCBCU 
104に取り込まれる。CPU100からリード・バス
・サイクルが起動されたことを、FPUIIOはCPW
R(−)信号がHighであることと、CP D S 
l信号がLowに立下ったことで検知する。一方、FP
U 100へCPUからのライトを行う場合、CBCU
104からデータ・バスCD (0−31)に出力され
るデータは、C3ステートの終了時にアドレス・バスA
(0−8)で指定さ九るFPU100内のレジスタに書
き込ま九る。CPU100からライト・バス・サイクル
が起動されたことを、FPUIIOはCPWR(−)信
号がLowであることと、CPD S (−)信号がH
i g hに立上ったことで検知する。
アドレス・バス0A(0−8)によって、最大512ケ
のFPU 110内の異なったレジスタに対してリード
/ライトを行うことができる。
次に、本実施例の具体的な動作について説明する。
まず、通常命令を実行する場合は、従来のマイクロプロ
セツサと全く同様に動作するので、説明を省略する。
浮動小数点演算命令を実行する場合は、説明を簡便にす
るために、浮動小数点データは32 ヒ、7ト長であり
、対象となるオペランドはメモリ120にあるものとす
る。例としては、加算を行うFADD、S  reg、
mem命令がある。この命令は、メモリ120に格納さ
れた32ビット浮動小数点データとFPU 110内の
データ・レジスタの値を加算して、メモリ120に結果
を書き戻すものである。
IDU102によって動作の種類、オペランドの種類が
EXU 103に通知されるまでは、すなわちオペラン
ド・アドレスの計算や命令デコード処理は従来と同一で
ある。
メモリ120に格納されている浮動小数点データは、E
XU 103の指示により発行されたMEMRサイクル
によってBCU 101に転送(読込み)されると、E
XU 103は該データをB CTJlolからCBC
U104へ転送するとともに、CBCU104に対して
cpowサイクルの起動を指示する。
このCPOWザイクルについて、アドレス・バスCAに
はFPU 110内のデータ・ボートを選択するための
値を出力しておく。
cpowザイクルによって、浮動小数点データはFPU
IIOの転送(書き込み)される。
従来どおり、IDU102によってEXU 103に通
知された命令実行に関する動作の種類は、EXU103
によってコマンドに再構成される。EXU I O3で
生成されたコマンドは、CBCU104に転送されると
同時に、EXU 103はCBCU104に対してCP
WRザイクルの起動を指示する。
このCPU0Wザイクルについて、アドレス・バスCA
にはFPUllo内のコマンド・ホードな選択するため
の値を出力しておく。
CPWRザイクルによってコマンドがFPUlloに転
送される(書き込まれる)と、FPUlloはコマンド
に先立って、データ・ボートに転送された浮動小数点デ
ータ、コマンド・ボートに転送されたコマンドに含まれ
る指定によって選択すれるデータ・レジスタに対して、
浮動小数点演算を開始する。
BUSY(−)信号の待合せは、従来と同様にEXU1
03によって行なわれる。
FPUIIOにおける演算が終了すると、演算結果はF
PUIIOのデータ・ボートに設定されると同時に、B
USY(−)信号がHi g hに設定される。
FPUIIOが演算を終了すると、演算結果がメモリ1
20に書き戻す必要があることをIDU102によって
通知されてるので、EXU 103はCPORザイクル
を起動し、一度FPUI 10内の演算結果をCPU1
04内に転送する(読み出す)。このCPORサイクル
について、アドレス・バスCAにはFPTJIIO内の
データ・ボートを選択するための値を出力1−ておく。
EXU 103は該実行結果をECUIOIに転送する
と同時に、メモリ120にMEMWサイクルによって、
必要な実行結果を転送する(書き込む)ように、BCU
 101に対して指示を行なう。
第7図に本発明の構成の中心となるEXU l 03、
およびCBCUl 04の一構成例を示す。
EXU l 03およびCPU104は、データ転送を
行うための32ビット内部データ・バスEB U Sで
結合される。EXU]、03には、汎用レジスタ(以下
GRと呼ぶ)701、二進ALUを含む演算器(以下A
LUと呼ぶ)702、EXU103内および外部の資源
に制御信号を発生し、状態信号によりシーケンス制御を
行う制御部(以下CNTと呼ぶ)703で構成される。
CNT703はマイクロプログラムによって実現される
ことが一般的である。
CBCUl 04は、32ビツトの双方向性ラッチ(以
下CPDRと呼ぶ)711.9ビツト・ラッチ(以下C
PARと呼ぶ)712、コプロセッサ・バス・サイクル
制御部CPECNT713で構成される。CPDR71
1は、CNT703の発生する制御信号により、EBU
S上のデータをラッチするとともに、CPDR711の
内容自体をEBUSに転送することができる。CPAR
712は、CNT703の発生する制御信号により、E
BUS上の下位9ビツトのデータをラッチすることがで
きる。
CPBCNT712は、CNT703の発生する制御信
号にJ:リコプロセッサ・バス・サイクルのシーケンス
を発生し、D S (−) 、 WR(−)信号を発生
するとともに、バス・サイクルの種類によってCPDR
711,CPAR712の端子制御、な5びにCD (
0−31)からCPDR711へのラッチ・タイミング
を発生する。
BUSY(−)信号は、他の状態信号と同様にCNT7
03に入力され、CNT703のシーケンス制御に関与
する。
なお、FPU 110に転送した浮動小数点データ、コ
マンドがあらかじめ定められたフォーマットに違反した
場合、あるいはFPUIIOにおける演算中にオーバフ
ローなど例外が発生した場合、図面では省略したがFP
UIIOから例外を検出した信号ERRによってEXU
 103に例外が通知される。EXU103はERR信
号によって例外を検知した場合、例外の種類を知るため
に、FPTJ]、10内にありステータスを示すステー
タス・ボートをデータ・バスCDを経由して転送して(
読込み)、例外処理を行う。
前述した浮動小数点命令をCPU100が実行する際に
、CPU100が発行するシステム・バス、およびコプ
ロセッサ・バスにおけるバス・サイクルによるそれぞれ
のデータバスD、およびCDの状態を第5図に示す。
FPUIIOに対する浮動小数点データ、コマンド、お
よび演算結果の転送のためのcpow。
CPWR,CPORサイクルが、コプロセッサ・バスで
発行されるため、従来のデータ・バス状態を示す第四図
と比較して、システム・バスに空き状態が増えているこ
とが理解できる。
CPU100は、浮動小数点演算命令に引続く命令の命
令コード・フェッチや、メモリ・オペランドのアクセス
にこの期間を利用することができる。
本実施例では、レジスターメモリ間のオペランド演算を
行う場合について説明した。
この場合、コプロセッサ・バスで3回のデータ転送が行
われる。前述のようにシステム・バスを用いた場合、少
なくとも6クロツク(3回×2クロック)のロスを生じ
ることになる。代表的なFPUでは、32ビツトの浮動
小数点演算は8クロック程度で処理することができるた
め、転送に要する6クロツクの影響は本来の性能を60
%に低下させてしまうことになる。これを100%発揮
できる本発明の効果は明らかである。
さらに、メモリーメモリ間で行う64ビツトの浮動小数
点演算では、3回×2バス・サイクル×2クロック(合
計12クロツク)の転送時間が必要であり、本発明を用
いない場合、40%の性能しか得られないことになる。
なお、実施例で述べたようにコプロセッサ・バスの制御
にはバス・サイクルの延長を行う必要がないため、コプ
ロセッサへのアクセスを検知してバス・サイクルを延長
させる外部回路が不要になる。プロセッサの動作速度が
速まり、コプロセッサ・バスのバス・サイクルがコプロ
セッサへのアクセスには高速すぎる場合には、固定クロ
ック数バス・サイクルが延長することを選択する入力端
子をCPU100に設け、CBCUによってバス・サイ
クルを延長すれば良い。
次に、本発明の別の実施例について説明する。
上記実施例では、コプロセッサ・バスに接続されるFP
Uは単一であったが、本実施例ではチップ・セレクト端
子C8を有したFPU201゜202が接続されている
ことが特徴的である。
FPU201,202のCS端子は、コプロセッサ・バ
スに発行されるバス・サイクルがそれぞれのFPUに対
して有効であることを指定するために使用される。
七h−t’ttのFPUのC8端子へは、アドレス・バ
スCAの一部の内容をデコードし、FPU201を選択
する信号CS O(−)、およびF’PU202を選択
する信号CS 1 (−)を発生するデコーダ203に
よりチップ・セレクト信号が供給される。
デコーダ203は、アドレス・バスCAの値により、C
S O(−)信号、s C1c−>信号を独立に発生す
ることも、また同時に発生することもできる。
FPU201.FPU202のBUSY(−)出力信号
は、ワイアード接続され、CPU100に取り込まれ、
FPU201.FPU202のいずれかがビジー状態で
あれば、CPU200にビジー状態が通知される。
抵抗R204は、共有するBUSY(−)信号のHig
hレベルを保証するためのプルアップ抵抗である。
本実施例では、1つのコプロセッサ・バス上に複数のF
PUを用意することで、同時に異なった浮動小数点演算
を行なったり、異なった浮動小数点データに対して同一
の浮動小数点演算を行なう並行動作により、前の実施例
の構成より浮動小数点演算能力を向上させることができ
る。
〔発明の効果〕
以上説明したように、本発明を用い、コプロセッサへの
データ転送をシステム・バスから分離することで、コプ
ロセッサで拡張される命令実行 1時のシステム・バス
の使用率を低減させ、バス・ネックの発生を抑えること
ができるため、パイプラインの各ステージでの命令処理
をスムーズに行なうこ、とにより、よりオーバヘッドが
少ない命令実行が可能な情報処理システムが実現できる
また、前述したようにコプロセッサが専用に使用するバ
ス(コプロセッサ・バス)は、システム・バスと相似な
構成をしているために、従来はシステム・バスに接続し
ていたコプロセッサヲ変更することなしに、またインタ
フェース回路もそのまま使用できるという利点がある。
さらに、コプロセッサ・バスは、メモリや入出力装置等
の大量のバス資源を接続しなければならないシステム・
バスとは異なり、コプロセッサのみ接続するため、ドラ
イブ電流や、負荷容量の点で規模が小さくなるため、コ
プロセッサにとっては電気的結合上のインタフェースが
容易になるという効果も得られる。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すプロッり図、第
2図は本発明の他の実施例の構成を示すブロック図、第
3図は従来のCPUとFPUの接続構成例を示すブロッ
ク図、第4図は従来例におけるバス・ザイクルの状態図
、第5図は第1図におけるバス・ザイクルの状態を示す
図、第6図はコブロセッザバス・サイクルタイミング図
、第7図は第1図のEXUおよびCBCUの一構成ブロ
ック図である。 100.200,300・・・・・・マイクロプロセッ
サ、110,201,202,310・・・・・・浮動
小数点演算用コプロセッサ、120,219,320・
・・・・・メモリ、101,301・・・・・・バス制
御ユニット、102,302・・・・・・命令デコード
・ユニット、103.303・・・・・・命令実行ユニ
ット、104・・・・・・コプロセッサ・バス制御ユニ
ッ)、203・・・・・・テコーダ、204・・・・・
・プルアップ抵抗。 代理人 弁理士  内 原   音 第、3胆 シーj卑を昆チルσ 躬4画

Claims (1)

    【特許請求の範囲】
  1. 命令セットを拡張するためのコプロセッサを外部に接続
    できるマイクロプロセッサにおいて、外部の間でデータ
    転送を行なうための端子群を2組備えるとともにそれぞ
    れの端子群を独立に制御する専用の2組の制御手段を備
    え、メモリおよびI/Oに対するデータ転送を、前記第
    一の制御手段によって制御される第一の端子群により行
    ない、コプロセッサに対するデータ転送を、前記第二の
    制御手段によって制御される第二の端子群により行なう
    ことを特徴とするマイクロプロセッサ。
JP2023507A 1989-02-03 1990-01-31 マイクロプロセッサ Expired - Lifetime JP2754825B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-24858 1989-02-03
JP2485889 1989-02-03

Publications (2)

Publication Number Publication Date
JPH02306361A true JPH02306361A (ja) 1990-12-19
JP2754825B2 JP2754825B2 (ja) 1998-05-20

Family

ID=12149915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023507A Expired - Lifetime JP2754825B2 (ja) 1989-02-03 1990-01-31 マイクロプロセッサ

Country Status (4)

Country Link
US (1) US5499363A (ja)
EP (1) EP0385136B1 (ja)
JP (1) JP2754825B2 (ja)
DE (1) DE69031960T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000043868A1 (en) * 1999-01-20 2000-07-27 Hitachi, Ltd. Data processor and device for arithmetic operation

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2884831B2 (ja) * 1991-07-03 1999-04-19 株式会社日立製作所 処理装置
JP2718292B2 (ja) * 1991-07-24 1998-02-25 日本電気株式会社 マイクロプロセッサ
FR2680293B1 (fr) * 1991-08-09 1993-11-12 Sgs Thomson Microelectronics Sa Annuleur d'echo lointain.
US5706514A (en) * 1996-03-04 1998-01-06 Compaq Computer Corporation Distributed execution of mode mismatched commands in multiprocessor computer systems
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US5923893A (en) * 1997-09-05 1999-07-13 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
EP1543418B1 (en) 2002-08-07 2016-03-16 MMagix Technology Limited Apparatus, method and system for a synchronicity independent, resource delegating, power and instruction optimizing processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59165119A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd 入出力制御装置
JPS60195661A (ja) * 1984-03-19 1985-10-04 Hitachi Ltd デ−タ処理システム
JPS63247861A (ja) * 1987-04-02 1988-10-14 Hitachi Ltd コプロセツサ制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4707783A (en) * 1984-10-19 1987-11-17 Amdahl Corporation Ancillary execution unit for a pipelined data processing system
JPS62151971A (ja) * 1985-12-25 1987-07-06 Nec Corp マイクロ・プロセツサ装置
JPS62214464A (ja) * 1986-03-17 1987-09-21 Hitachi Ltd データ処理システム
US4926318A (en) * 1986-11-12 1990-05-15 Nec Corporation Micro processor capable of being connected with a coprocessor
JPH01147656A (ja) * 1987-12-03 1989-06-09 Nec Corp マイクロプロセッサ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59165119A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd 入出力制御装置
JPS60195661A (ja) * 1984-03-19 1985-10-04 Hitachi Ltd デ−タ処理システム
JPS63247861A (ja) * 1987-04-02 1988-10-14 Hitachi Ltd コプロセツサ制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000043868A1 (en) * 1999-01-20 2000-07-27 Hitachi, Ltd. Data processor and device for arithmetic operation

Also Published As

Publication number Publication date
EP0385136A3 (en) 1992-09-23
US5499363A (en) 1996-03-12
DE69031960T2 (de) 1998-09-10
EP0385136A2 (en) 1990-09-05
EP0385136B1 (en) 1998-01-21
JP2754825B2 (ja) 1998-05-20
DE69031960D1 (de) 1998-02-26

Similar Documents

Publication Publication Date Title
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US7590774B2 (en) Method and system for efficient context swapping
US4715013A (en) Coprocessor instruction format
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
JPH0758466B2 (ja) ソース命令実行をエミュレートする装置
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP2001195250A (ja) 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US6401197B1 (en) Microprocessor and multiprocessor system
JPH0135367B2 (ja)
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
US5021991A (en) Coprocessor instruction format
US7555637B2 (en) Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
JPH02306361A (ja) マイクロプロセッサ
US4914578A (en) Method and apparatus for interrupting a coprocessor
US6948049B2 (en) Data processing system and control method
EP1986094A1 (en) System and method for processing data in a series of computers
EP1039376B1 (en) Sub-instruction emulation in a VLIW processor
WO2009032186A1 (en) Low-overhead/power-saving processor synchronization mechanism, and applications thereof
US6988121B1 (en) Efficient implementation of multiprecision arithmetic
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除