JPH0578863B2 - - Google Patents
Info
- Publication number
- JPH0578863B2 JPH0578863B2 JP61056844A JP5684486A JPH0578863B2 JP H0578863 B2 JPH0578863 B2 JP H0578863B2 JP 61056844 A JP61056844 A JP 61056844A JP 5684486 A JP5684486 A JP 5684486A JP H0578863 B2 JPH0578863 B2 JP H0578863B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- signal
- memory
- coprocessor
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
〔産業上の利用分野〕
本発明はマイクロプロセツサ(MPU:Micro
Processing Unit)とコプロセツサ(CP:
Coprocessor)とが結合されたデータ処理システ
ムに係り、特に密結合のCPに好適なコプロセツ
サ結合方式に関する。 〔従来の技術〕 16ビツト或いは32ビツトのマイクロプロセツサ
システムでは、FPU(Floating Point thit:浮動
小数点演算ユニツト)などのコプロセツサを用意
し、数値演算の高速化を図つている。これに伴
い、MPUとコプロセツサの結合方式が問題とな
つており、従来からいくつかの方法がなされてい
る。 従来からの方式として、特開昭59−201154号の
背景技術にも記載されている通り、3つの方式が
あり、これに加え、特開昭59−201154号で示され
る第4の方式がある。第1の方式は、特開昭59−
201154号に示されるように、インテル社8086プロ
セツサの命令を監視してCP用の命令を探すイン
テル8087数値データプロセツサがその例である。
この実施には、CPがMPUの命令待ち行列を追跡
できるようにするために重要なハードウエアが
CP内に必要である。第2の方式は、特開昭59−
201154号に示されるように、第1の方式の場合と
同様に、CPにおけるハードウエアの重要な重複
を必要とする。 第3の方式では、特開昭59−201154号に示され
るように、ナシヨナルセミコンダクタ社NS16000
用CPがMPUに従属しており、CPとメモリ間の
転送はMPUを介しておこなつている。 第4の方式は、特開昭昭59−201154号に示され
るように、専用信号を必要としないで、CPによ
る命令の実行を調整できるが、特開昭59−201154
号のFig14、Fig15に示されるように、CPと
メモリ間の転送はMPUを介しておこなわれてい
た。 〔発明が解決しようとする問題点〕 従来のFPUの演算速度は、例えばモトローラ
社MC68881はモトローラセミコンダクタニユー
ス第11号(1985年5月発行)に示されるように、
64ビツト浮動小数点の乗算が5.8μs(16.67MHg)
かかつていた。したがつて、前記特許の方式によ
つても、MPUとFPUのインターフエイスのオー
バヘツドは相対的にみると小さくなるが、むしろ
前記公用特許出願に記載の方式のようにMPUと
FPUのインターフエイスを汎用化しておくこと
にメリツトがあつた。 しかし、半導体技術の進歩に伴い、乗算器など
を集積化することによつてFPUの演算速度は、
64ビツト浮動小数点乗算でも、ダイジエスト・オ
ブ・アイ・エス・エス・シー185、第16頁から第
17頁(Digest of ISSCC′85p16〜p17)に示され
るように、180ns程度で可能となりつつある。 このような高速FPUを用いる場合、前記特許
の方式を用いると、演算時間に比べインターフエ
イスのオーバヘツドが大きく、FPUを高速化し
た効果が現われにくく、高速FPUとの結合とい
う面での配慮が不十分であつた。 このような高速FPUを用いる場合、第1、第
2の方式では、FPUとメモリ間転送は1バスサ
イクルで実現できるものの、CP内にFPUと本来
の演算とは無関係なハードウエアが必要であり、
集積度の面からFPUの高速化が十分できないと
いう問題がある。 一方、第3、第4のコプロセツサ方式では、
FPUとメモリ間の転送がMPUを介するため、2
バスサイクル必要となり、FPUを高速化しても
システム全体の性能向上につながりにくいという
欠点があつた。 本発明の目的は、CPとメモリ間の転送を1バ
スサイクルでおこない、かつCP内に本来の機能
とは無関係なハードウエアを必要としないMPU
とCPの結合方式を提供することにある。 〔問題点を解決するための手段〕 上記目的は、MPUの出力信号ピンとして、(1)
コプロセツサスペースであることを示す信号
(CPS:Coprocessor Space)、(2)データの有効性
を示す信号(CPCYCL:Coprocessor Cycle)を
有し、MPUの入力信号ピンとして(1)CPからのビ
ジーを示す信号(CPBUSY:Coprocessor
Busy)と、(2)CP内の条件が成立したかどうかを
示す信号(CPST:Coprocessor Status)を有す
ることにより達成される。 同時に、上記目的は、MPUがCPのビジー信号
(CPBUSY)の値によらず次の命令を実行する
か、CPBUSY信号のネゲートを待つて次の実行
するかをMPU内の特定のレジスタによつて切り
分けることにより達成される。 〔作用〕 メモリからCPへのオペランド転送をおこなう
場合、MPUは通常のメモリリードの信号に加え、
コプロセツサデータの有効を示す信号
(CPCYCL)をアサートしてCPに対してデータ
の取り込みを指示し、1バスサイクルでメモリと
CPの転送をおこなう。 同様に、CPからメモリへデータを転送する場
合、MPUは通常のメモリライトの信号に加え、
CPCYCL信号をアサートしてCPに対してデータ
の出力を指示し、1バスサイクルでメモリとの
CPの転送をおこなう。 これによつて、CP内に重大なハードウエアの
重複をおこなうことなく、1バスサイクルでメモ
リとCPの転送が可能となる。 〔実施例〕 以下、本発明の一実施例を数値演算コプロセツ
サFPUを例にとり、図面を用いて説明する。 第1図に、MPU1、CP2、メモリシステム
3、アドレスバス4、データバス5の接続例を示
す。第1図において、MPU1が出力し、コプロ
セツサ2が入力する信号は、従来と同様のアドレ
スA4〜2、データD31〜D0、アドレススト
ローブ信号(AS)、リード/ライト信号(R/
W)、ならびに従来にないコプロセツサスペース
信号(CPS)、コプロセツササイクル信号
(CPCYCL)である。 MPU1が出力し、メモリシステム3が入力す
る信号は、従来と同様のアドレスA31〜A2、
データD31〜D0、アドレスストローブ信号
(AS)、リード/ライト信号(R/)である。 コプロセツサ2が出力し、MPU1が入力する
信号は、データ転送完了信号(DC:Data
Transfer Complete、モトローラ社68000の
DTACK信号に相当する)。従来にないコプロセ
ツサ状態信号(CPST)、コプロセツサビジー信
号(CPBUSY)である。 コプロセツサ2が出力し、メモリシステム3が
入力する信号は、データD31〜D0データ転送
完了信号(DC)である。 メモリシステム3が出力し、MPU1が入力す
る信号はD31〜D0、データ転送完了信号
(DC)である。 メモリシステム3が出力し、コプロセツサ2が
入力する信号はD31〜D0、データ転送完了信
号(DC)である。 MPUが数値演算命令をフエツチしたとき、こ
れをデコードし、対応する指令をCPへ伝える。
第2図は、算術演算命令の命令フオーマツトの一
例を示す。命令の先頭4ビツトIDが1100のとき
CP関係の命令であることを表わす。 この命令フオーマツトは、実効アドレスEA1
で示されるオペランドと実効アドレスEA2で示
されるオペランドに対し、OPで示される演算
(オペレーシヨン)を実行し、CP内部のレジスタ
またはスタツクに格納するためのものである。プ
ロセツサ番号PID(Processor Identification)は
3ビツトあり、命令を実行させるCPの番号を示
す。CPは同時に8個まで接続可能である。Iビ
ツトは第2図に示すようにオペランドが整数か非
整数かを示す。すなわち、I=1のときサイズビ
ツトSz=00、01、10、11によつて、それぞれ、
8、16、32、64ビツトの整数を表わす。I=0の
とき、Sz=00、01、10、11によつて、それぞれ
32、34、80ビツトの浮動小数点ならびにバイナ
リ・コーデツド・デミカルBCD(Binary Coded
Decmical)データを表わす。整数から浮動小数
点への変換はCP内部で演算に先立つておこなわ
れる。EA1,EA2は、それぞれソースオペラン
ド、デステイネーシヨンオペランドの実効アドレ
スを表わす。EA1,EA2として、レジスタ直接
形式が指定された場合、CPのレジスタを表わす。
OPは加算、乗算などの演算を開すオペレーシヨ
ンフイールドである。SZは既に説明したように
データのサイズを表わす。内部の演算はSZに関
係なく、浮動小数点の場合、80ビツトで実行され
る。 第3図はMPUからCPへ送られる指令語のフオ
ーマツトの一例を表す。CPオペレーシヨン
CPOPとして8ビツト割り付けられている。
CPSA、CPDAはそれぞれ、コプロセツサソース
アドレス、コプロセツサデステイネーシヨンアド
レスを表し、それぞれ4ビツト長である。アドレ
ス形式を示すMODフイールドは、CPSA、
CPDAの詳細を表す。コプロセツサソースオペラ
ンドは、ビツト15、14が00のとき、CPSAで示さ
れるCP内のレジスタとなり、01のときCP内のス
タツク、11のとき外部メモリとなり、11は禁止で
ある。ビツト15、14が00以外では、第3図の
CPSAは意味を持たない。コプロセツサデステイ
ネーシヨンオペランドは、ビツト13、12が00のと
きCPDAで示されるCP内のレジスタを表わし、
01のときスタツクを表わす。10、11は禁止であ
る。CPSAとしてスタツクが指定された場合、
CP内のスタツクポインタは1だけ加えられ、
CPDAとしてスタツクが指定された場合はスタツ
クポインタは1だけ減じられる。 第3図の指令語の11〜0ビツトZはオール0で
ある。 第4図は、CP内のレジスタとメモリ間の転送
をおこなうための命令(CPMOVE)フオーマツ
トの一例である。同時に、命令とIビツト、ソー
スオペランド描定(SA)、デステイネーシヨンオ
ペランド描定(DA)ならびに、実際に選択され
るオペランドの関係について示す。この形式は第
2図のフオーマツトと同一であり、各フイールド
の意味は、ソースアドレスSA、デステイネーシ
ヨンアドレスDAにレジスタ直接形式を描定した
とき以外は、第2図と等しい。 すなわち、PMU内のレジスタ(整数値)とCP
内のレジスタ(浮動小数点)の転送を可能とする
ため、CPMOVE to CPR命令においてI=1
(整数値)のとき、ソースオペランドとしてMPU
レジスタの指定を可能とした。またCPMOVE
from CPR命令においてI=0(浮動小数点)の
ときデステイネーシヨンオペランドとしてMPU
レジスタの指定を可能とした。データ転送はそれ
ぞれ整数値でおこなわれ、整数と浮動小数点の変
換はCPがおこなう。 この他の組合せでは、レジスタ直接が指定され
た場合CPレジスタが選択される。 例えば、CPMOVE to CPR命令において、I
ビツト=0(浮動小数点フオーマツト)のとき、
ソースオペランドとしてメモリ(M)を、デステイネ
ーシヨンオペランドとしてMPUレジスタ(R)を指
定した場合、メモリからCPレジスタ(CPR)へ
浮動小数点データが転送される。 またCPMOVE from CPR命令において、Iビ
ツト=0(整数フオーマツト)でソースオペラン
ドとデステイネーシヨンオペランドの両方にレジ
スタを指定することは、禁止されている。 CPMOVE命令の指令語のフオーマツトを第5
図に示す。フオーマツトは第3図と同じである
が、MODフイールドの割付けが異なる。すなわ
ち、ビツト15、14あるいはビツト13、12において
00がCPレジスタ、01が禁止、10がメモリ、11が
MPUレジスタを表わす。MPUレジスタが指定さ
れた場合、CPは整数、浮動小数点の型変換をお
こなう。 第6図は、CP内の複数のレジスタとメモリ間
の転送をおこなう命令(CPMOVM)のフオーマ
ツトである。この命令は、6バイト長であり、先
頭の8ビツトでCPオペレーシヨンを指定し、そ
の直後に16ビツトのレジスタリスト(RL)が続
く。各フイールドの意味は、第2図のフオーマツ
トと同一である。但し、第2バイト(ビツト23〜
16)Z2はオールゼロである。 CPMOVM命令において、MPUからCPへ送る
指命語のフオーマツトを第7図に示す。18〜23ビ
ツトZ3はオールゼロである。第7図において、
アドレスモードを示すMODフイールドのビツト
19、18、17、16が、0010のときは、CPMOVEM
CPR to Memoryとなり、1000のときは、
CPMOVEM Memory to CPRとなる。これ以
外のパターンは禁止である。 第8図は、CP用の条件分岐命令(CPBcc)の
命令フオーマツトの一例である。この命令はCP
内の条件が成立するかどうかによつて分岐する命
令である。第8図において、PID、OPの意味は
第2図のフオーマツトと同一である。24〜16ビツ
トZ4はオールゼロである。デイスプレイスメン
ト・レンクスLG(Displacement Length)はデイ
スプレースメント(DISP)のサイズを示すもの
で、第8図に示すように16、32、64ビツトサイズ
を選択する。分岐の条件はCONDで表わされる。 第9図は、CPの条件分岐命令実行の際に、
MPUからCPへ送られる指令語のフオーマツトで
あり、下位6ビツトに条件CONDが指定される。
5〜23ビツトZ5はオール0である。 次に、MPUとCPが共同して処理をするために
必要な信号線について説明する。MPUの信号線
として、CPに関係するものを第1表にまとめる。
CPの信号線として、MPUとのインターフエイス
に必要な信号線を第2表にまとめる。
Processing Unit)とコプロセツサ(CP:
Coprocessor)とが結合されたデータ処理システ
ムに係り、特に密結合のCPに好適なコプロセツ
サ結合方式に関する。 〔従来の技術〕 16ビツト或いは32ビツトのマイクロプロセツサ
システムでは、FPU(Floating Point thit:浮動
小数点演算ユニツト)などのコプロセツサを用意
し、数値演算の高速化を図つている。これに伴
い、MPUとコプロセツサの結合方式が問題とな
つており、従来からいくつかの方法がなされてい
る。 従来からの方式として、特開昭59−201154号の
背景技術にも記載されている通り、3つの方式が
あり、これに加え、特開昭59−201154号で示され
る第4の方式がある。第1の方式は、特開昭59−
201154号に示されるように、インテル社8086プロ
セツサの命令を監視してCP用の命令を探すイン
テル8087数値データプロセツサがその例である。
この実施には、CPがMPUの命令待ち行列を追跡
できるようにするために重要なハードウエアが
CP内に必要である。第2の方式は、特開昭59−
201154号に示されるように、第1の方式の場合と
同様に、CPにおけるハードウエアの重要な重複
を必要とする。 第3の方式では、特開昭59−201154号に示され
るように、ナシヨナルセミコンダクタ社NS16000
用CPがMPUに従属しており、CPとメモリ間の
転送はMPUを介しておこなつている。 第4の方式は、特開昭昭59−201154号に示され
るように、専用信号を必要としないで、CPによ
る命令の実行を調整できるが、特開昭59−201154
号のFig14、Fig15に示されるように、CPと
メモリ間の転送はMPUを介しておこなわれてい
た。 〔発明が解決しようとする問題点〕 従来のFPUの演算速度は、例えばモトローラ
社MC68881はモトローラセミコンダクタニユー
ス第11号(1985年5月発行)に示されるように、
64ビツト浮動小数点の乗算が5.8μs(16.67MHg)
かかつていた。したがつて、前記特許の方式によ
つても、MPUとFPUのインターフエイスのオー
バヘツドは相対的にみると小さくなるが、むしろ
前記公用特許出願に記載の方式のようにMPUと
FPUのインターフエイスを汎用化しておくこと
にメリツトがあつた。 しかし、半導体技術の進歩に伴い、乗算器など
を集積化することによつてFPUの演算速度は、
64ビツト浮動小数点乗算でも、ダイジエスト・オ
ブ・アイ・エス・エス・シー185、第16頁から第
17頁(Digest of ISSCC′85p16〜p17)に示され
るように、180ns程度で可能となりつつある。 このような高速FPUを用いる場合、前記特許
の方式を用いると、演算時間に比べインターフエ
イスのオーバヘツドが大きく、FPUを高速化し
た効果が現われにくく、高速FPUとの結合とい
う面での配慮が不十分であつた。 このような高速FPUを用いる場合、第1、第
2の方式では、FPUとメモリ間転送は1バスサ
イクルで実現できるものの、CP内にFPUと本来
の演算とは無関係なハードウエアが必要であり、
集積度の面からFPUの高速化が十分できないと
いう問題がある。 一方、第3、第4のコプロセツサ方式では、
FPUとメモリ間の転送がMPUを介するため、2
バスサイクル必要となり、FPUを高速化しても
システム全体の性能向上につながりにくいという
欠点があつた。 本発明の目的は、CPとメモリ間の転送を1バ
スサイクルでおこない、かつCP内に本来の機能
とは無関係なハードウエアを必要としないMPU
とCPの結合方式を提供することにある。 〔問題点を解決するための手段〕 上記目的は、MPUの出力信号ピンとして、(1)
コプロセツサスペースであることを示す信号
(CPS:Coprocessor Space)、(2)データの有効性
を示す信号(CPCYCL:Coprocessor Cycle)を
有し、MPUの入力信号ピンとして(1)CPからのビ
ジーを示す信号(CPBUSY:Coprocessor
Busy)と、(2)CP内の条件が成立したかどうかを
示す信号(CPST:Coprocessor Status)を有す
ることにより達成される。 同時に、上記目的は、MPUがCPのビジー信号
(CPBUSY)の値によらず次の命令を実行する
か、CPBUSY信号のネゲートを待つて次の実行
するかをMPU内の特定のレジスタによつて切り
分けることにより達成される。 〔作用〕 メモリからCPへのオペランド転送をおこなう
場合、MPUは通常のメモリリードの信号に加え、
コプロセツサデータの有効を示す信号
(CPCYCL)をアサートしてCPに対してデータ
の取り込みを指示し、1バスサイクルでメモリと
CPの転送をおこなう。 同様に、CPからメモリへデータを転送する場
合、MPUは通常のメモリライトの信号に加え、
CPCYCL信号をアサートしてCPに対してデータ
の出力を指示し、1バスサイクルでメモリとの
CPの転送をおこなう。 これによつて、CP内に重大なハードウエアの
重複をおこなうことなく、1バスサイクルでメモ
リとCPの転送が可能となる。 〔実施例〕 以下、本発明の一実施例を数値演算コプロセツ
サFPUを例にとり、図面を用いて説明する。 第1図に、MPU1、CP2、メモリシステム
3、アドレスバス4、データバス5の接続例を示
す。第1図において、MPU1が出力し、コプロ
セツサ2が入力する信号は、従来と同様のアドレ
スA4〜2、データD31〜D0、アドレススト
ローブ信号(AS)、リード/ライト信号(R/
W)、ならびに従来にないコプロセツサスペース
信号(CPS)、コプロセツササイクル信号
(CPCYCL)である。 MPU1が出力し、メモリシステム3が入力す
る信号は、従来と同様のアドレスA31〜A2、
データD31〜D0、アドレスストローブ信号
(AS)、リード/ライト信号(R/)である。 コプロセツサ2が出力し、MPU1が入力する
信号は、データ転送完了信号(DC:Data
Transfer Complete、モトローラ社68000の
DTACK信号に相当する)。従来にないコプロセ
ツサ状態信号(CPST)、コプロセツサビジー信
号(CPBUSY)である。 コプロセツサ2が出力し、メモリシステム3が
入力する信号は、データD31〜D0データ転送
完了信号(DC)である。 メモリシステム3が出力し、MPU1が入力す
る信号はD31〜D0、データ転送完了信号
(DC)である。 メモリシステム3が出力し、コプロセツサ2が
入力する信号はD31〜D0、データ転送完了信
号(DC)である。 MPUが数値演算命令をフエツチしたとき、こ
れをデコードし、対応する指令をCPへ伝える。
第2図は、算術演算命令の命令フオーマツトの一
例を示す。命令の先頭4ビツトIDが1100のとき
CP関係の命令であることを表わす。 この命令フオーマツトは、実効アドレスEA1
で示されるオペランドと実効アドレスEA2で示
されるオペランドに対し、OPで示される演算
(オペレーシヨン)を実行し、CP内部のレジスタ
またはスタツクに格納するためのものである。プ
ロセツサ番号PID(Processor Identification)は
3ビツトあり、命令を実行させるCPの番号を示
す。CPは同時に8個まで接続可能である。Iビ
ツトは第2図に示すようにオペランドが整数か非
整数かを示す。すなわち、I=1のときサイズビ
ツトSz=00、01、10、11によつて、それぞれ、
8、16、32、64ビツトの整数を表わす。I=0の
とき、Sz=00、01、10、11によつて、それぞれ
32、34、80ビツトの浮動小数点ならびにバイナ
リ・コーデツド・デミカルBCD(Binary Coded
Decmical)データを表わす。整数から浮動小数
点への変換はCP内部で演算に先立つておこなわ
れる。EA1,EA2は、それぞれソースオペラン
ド、デステイネーシヨンオペランドの実効アドレ
スを表わす。EA1,EA2として、レジスタ直接
形式が指定された場合、CPのレジスタを表わす。
OPは加算、乗算などの演算を開すオペレーシヨ
ンフイールドである。SZは既に説明したように
データのサイズを表わす。内部の演算はSZに関
係なく、浮動小数点の場合、80ビツトで実行され
る。 第3図はMPUからCPへ送られる指令語のフオ
ーマツトの一例を表す。CPオペレーシヨン
CPOPとして8ビツト割り付けられている。
CPSA、CPDAはそれぞれ、コプロセツサソース
アドレス、コプロセツサデステイネーシヨンアド
レスを表し、それぞれ4ビツト長である。アドレ
ス形式を示すMODフイールドは、CPSA、
CPDAの詳細を表す。コプロセツサソースオペラ
ンドは、ビツト15、14が00のとき、CPSAで示さ
れるCP内のレジスタとなり、01のときCP内のス
タツク、11のとき外部メモリとなり、11は禁止で
ある。ビツト15、14が00以外では、第3図の
CPSAは意味を持たない。コプロセツサデステイ
ネーシヨンオペランドは、ビツト13、12が00のと
きCPDAで示されるCP内のレジスタを表わし、
01のときスタツクを表わす。10、11は禁止であ
る。CPSAとしてスタツクが指定された場合、
CP内のスタツクポインタは1だけ加えられ、
CPDAとしてスタツクが指定された場合はスタツ
クポインタは1だけ減じられる。 第3図の指令語の11〜0ビツトZはオール0で
ある。 第4図は、CP内のレジスタとメモリ間の転送
をおこなうための命令(CPMOVE)フオーマツ
トの一例である。同時に、命令とIビツト、ソー
スオペランド描定(SA)、デステイネーシヨンオ
ペランド描定(DA)ならびに、実際に選択され
るオペランドの関係について示す。この形式は第
2図のフオーマツトと同一であり、各フイールド
の意味は、ソースアドレスSA、デステイネーシ
ヨンアドレスDAにレジスタ直接形式を描定した
とき以外は、第2図と等しい。 すなわち、PMU内のレジスタ(整数値)とCP
内のレジスタ(浮動小数点)の転送を可能とする
ため、CPMOVE to CPR命令においてI=1
(整数値)のとき、ソースオペランドとしてMPU
レジスタの指定を可能とした。またCPMOVE
from CPR命令においてI=0(浮動小数点)の
ときデステイネーシヨンオペランドとしてMPU
レジスタの指定を可能とした。データ転送はそれ
ぞれ整数値でおこなわれ、整数と浮動小数点の変
換はCPがおこなう。 この他の組合せでは、レジスタ直接が指定され
た場合CPレジスタが選択される。 例えば、CPMOVE to CPR命令において、I
ビツト=0(浮動小数点フオーマツト)のとき、
ソースオペランドとしてメモリ(M)を、デステイネ
ーシヨンオペランドとしてMPUレジスタ(R)を指
定した場合、メモリからCPレジスタ(CPR)へ
浮動小数点データが転送される。 またCPMOVE from CPR命令において、Iビ
ツト=0(整数フオーマツト)でソースオペラン
ドとデステイネーシヨンオペランドの両方にレジ
スタを指定することは、禁止されている。 CPMOVE命令の指令語のフオーマツトを第5
図に示す。フオーマツトは第3図と同じである
が、MODフイールドの割付けが異なる。すなわ
ち、ビツト15、14あるいはビツト13、12において
00がCPレジスタ、01が禁止、10がメモリ、11が
MPUレジスタを表わす。MPUレジスタが指定さ
れた場合、CPは整数、浮動小数点の型変換をお
こなう。 第6図は、CP内の複数のレジスタとメモリ間
の転送をおこなう命令(CPMOVM)のフオーマ
ツトである。この命令は、6バイト長であり、先
頭の8ビツトでCPオペレーシヨンを指定し、そ
の直後に16ビツトのレジスタリスト(RL)が続
く。各フイールドの意味は、第2図のフオーマツ
トと同一である。但し、第2バイト(ビツト23〜
16)Z2はオールゼロである。 CPMOVM命令において、MPUからCPへ送る
指命語のフオーマツトを第7図に示す。18〜23ビ
ツトZ3はオールゼロである。第7図において、
アドレスモードを示すMODフイールドのビツト
19、18、17、16が、0010のときは、CPMOVEM
CPR to Memoryとなり、1000のときは、
CPMOVEM Memory to CPRとなる。これ以
外のパターンは禁止である。 第8図は、CP用の条件分岐命令(CPBcc)の
命令フオーマツトの一例である。この命令はCP
内の条件が成立するかどうかによつて分岐する命
令である。第8図において、PID、OPの意味は
第2図のフオーマツトと同一である。24〜16ビツ
トZ4はオールゼロである。デイスプレイスメン
ト・レンクスLG(Displacement Length)はデイ
スプレースメント(DISP)のサイズを示すもの
で、第8図に示すように16、32、64ビツトサイズ
を選択する。分岐の条件はCONDで表わされる。 第9図は、CPの条件分岐命令実行の際に、
MPUからCPへ送られる指令語のフオーマツトで
あり、下位6ビツトに条件CONDが指定される。
5〜23ビツトZ5はオール0である。 次に、MPUとCPが共同して処理をするために
必要な信号線について説明する。MPUの信号線
として、CPに関係するものを第1表にまとめる。
CPの信号線として、MPUとのインターフエイス
に必要な信号線を第2表にまとめる。
【表】
【表】
【表】
本発明によれば、メモリとCPのデータ転送が
1バスサイクルで実現できる。すなわち、通常の
マイクロプロセツサのメモリアクセスの信号ピン
に加え、CPS、CPCYCLピンを追加することに
より、メモリアクセスと同時に、CPS、
CPCYCLによつてCPを選択し、1バスサイクル
でのメモリとCP間の転送が可能となつた。また、
MPUのステータスレジスタのWビツトまたは命
令中のWビツトにより、CPからの終了信号を待
つて次の命令を実行するか、待たずに次の命令を
実行するか選択可能である。同時に、CPは条件
分岐命令の条件が成立したかどうかを信号ピンで
高速にMPUへ知らせる。 以上により、オーバヘツドが少ない、MPUと
CPのインターフエイスが実現できる。
1バスサイクルで実現できる。すなわち、通常の
マイクロプロセツサのメモリアクセスの信号ピン
に加え、CPS、CPCYCLピンを追加することに
より、メモリアクセスと同時に、CPS、
CPCYCLによつてCPを選択し、1バスサイクル
でのメモリとCP間の転送が可能となつた。また、
MPUのステータスレジスタのWビツトまたは命
令中のWビツトにより、CPからの終了信号を待
つて次の命令を実行するか、待たずに次の命令を
実行するか選択可能である。同時に、CPは条件
分岐命令の条件が成立したかどうかを信号ピンで
高速にMPUへ知らせる。 以上により、オーバヘツドが少ない、MPUと
CPのインターフエイスが実現できる。
第1図は全体システムブロツク図、第2図はコ
プロセツサ演算命令フオーマツトの一例、第3図
はMPUからCPへの指令語フオーマツトの一例、
第4図はコプロセツサ転送命令フオーマツトの一
例、第5図はMPUからCPへの指令語フオーマツ
トの一例、第6図はコプロセツサブロツク転送命
令フオーマツトの一例、第7図はMPUからCPへ
の指令語フオーマツトの一例、第8図はコプロセ
ツサ条件分岐命令フオーマツトの一例、第9図は
MPUからCPへの指令語フオーマツトの一例、第
10図はコプロセツサ演算命令の実行タイミング
チヤート、第11図は第10図を実現するコマン
ドフエーズのフローチヤート、第12図は第10
図を実現するフエツチフエーズのフローチヤー
ト、第13図は第10図を実現するMPUの入出
力回路の一例、第14図は第10図を実現する
CPの入出力回路の一例、第15図はステータス
レジスタの一例、第16図はコプロセツサ転送命
令の実行タイミングチヤート、第17図は第16
図を実現するための実行フエーズのフローチヤー
ト、第18図はコプロセツサ条件分岐命令の実行
タイミングチヤート、第19図は第18図のフロ
ーチヤート、第20図は第19図を実現するため
に必要なフリツプフロツプ回路を表わす。 1……マイクロプロセツサ、2……コプロセツ
サ、3……メモリシステム、4……アドレスバ
ス、5……データバス、10,140……プログ
ラマブルロジツクアレイ、11,141……フイ
ードバツクバス、12,142……状態マシン、
13……アドレス出力レジスタ、14,144…
…データ出力レジスタ、15,16,20,14
6……制御線、17……アドレス線、18,14
8……データ線、19,149……データ入力レ
ジスタ、150……プロセツサ番号PID入力、1
51……プロセツサNo.レジスタ、152……比較
器、153,155,156……信号線、154
……演算器、130……フリツプフロツプ。
プロセツサ演算命令フオーマツトの一例、第3図
はMPUからCPへの指令語フオーマツトの一例、
第4図はコプロセツサ転送命令フオーマツトの一
例、第5図はMPUからCPへの指令語フオーマツ
トの一例、第6図はコプロセツサブロツク転送命
令フオーマツトの一例、第7図はMPUからCPへ
の指令語フオーマツトの一例、第8図はコプロセ
ツサ条件分岐命令フオーマツトの一例、第9図は
MPUからCPへの指令語フオーマツトの一例、第
10図はコプロセツサ演算命令の実行タイミング
チヤート、第11図は第10図を実現するコマン
ドフエーズのフローチヤート、第12図は第10
図を実現するフエツチフエーズのフローチヤー
ト、第13図は第10図を実現するMPUの入出
力回路の一例、第14図は第10図を実現する
CPの入出力回路の一例、第15図はステータス
レジスタの一例、第16図はコプロセツサ転送命
令の実行タイミングチヤート、第17図は第16
図を実現するための実行フエーズのフローチヤー
ト、第18図はコプロセツサ条件分岐命令の実行
タイミングチヤート、第19図は第18図のフロ
ーチヤート、第20図は第19図を実現するため
に必要なフリツプフロツプ回路を表わす。 1……マイクロプロセツサ、2……コプロセツ
サ、3……メモリシステム、4……アドレスバ
ス、5……データバス、10,140……プログ
ラマブルロジツクアレイ、11,141……フイ
ードバツクバス、12,142……状態マシン、
13……アドレス出力レジスタ、14,144…
…データ出力レジスタ、15,16,20,14
6……制御線、17……アドレス線、18,14
8……データ線、19,149……データ入力レ
ジスタ、150……プロセツサ番号PID入力、1
51……プロセツサNo.レジスタ、152……比較
器、153,155,156……信号線、154
……演算器、130……フリツプフロツプ。
Claims (1)
- 【特許請求の範囲】 1 第1のプロセツサと、 第2のプロセツサと、 メモリと、 上記第1のプロセツサと上記第2のプロセツサ
と上記メモリとを接続するアドレスバスと、 上記第1のプロセツサと上記第2のプロセツサ
と上記メモリとを接続するデータバスと、 上記第1のプロセツサと上記第2のプロセツサ
とを接続する第1の信号線とを具備してなり、 上記第2のプロセツサで処理されるべき命令を
上記第1のプロセツサがフエツチし、 上記命令に対応する指令が上記データバスを介
して上記第1のプロセツサから上記第2のプロセ
ツサへ転送され、 上記第1のプロセツサによりフエツチされる命
令はその分岐条件が上記第2のプロセツサで満た
されているか否かに依存する条件分岐命令を含
み、 ひとつのバスサイクルの間に上記第1のプロセ
ツサが上記条件分岐命令に対応した条件分岐指令
を上記データバスを介して上記第2のプロセツサ
へ転送し、 上記ひとつのバスサイクルの間に上記第2のプ
ロセツサは上記分岐条件が満たされているかを示
す第1の信号を上記第1の信号線を介して上記第
1のプロセツサへ転送することを特徴とするデー
タ処理システム。 2 上記第1のプロセツサと上記第2のプロセツ
サとは第2の信号線を介して接続され、 他のひとつのバスサイクルの間に上記第1のプ
ロセツサは上記アドレスバスを介してアドレス信
号を上記メモリへ転送するとともに上記第2の信
号線を介して第2の信号を上記第2のプロセツサ
へ転送し、該第2の信号は上記他のひとつのバス
サイクルは上記第2のプロセツサと上記メモリと
の間のデータ転送のためであることを示し、上記
他のひとつのバスサイクルの間にデータが上記第
2のプロセツサと上記メモリとの間で転送される
ことを特徴とする特許請求の範囲第1項に記載の
データ処理システム。 3 上記第1のプロセツサはマイクロプロセツサ
であり、上記第2のプロセツサはコプロセツサで
あることを特徴とする特許請求の範囲第1項また
は第2項に記載のデータ処理システム。 4 上記コプロセツサは数値演算を実行すること
を特徴とする特許請求の範囲第3項に記載のデー
タ処理システム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61056844A JPS62214464A (ja) | 1986-03-17 | 1986-03-17 | データ処理システム |
| US07/021,007 US4894768A (en) | 1986-03-17 | 1987-03-02 | Data processing system with coprocessor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61056844A JPS62214464A (ja) | 1986-03-17 | 1986-03-17 | データ処理システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62214464A JPS62214464A (ja) | 1987-09-21 |
| JPH0578863B2 true JPH0578863B2 (ja) | 1993-10-29 |
Family
ID=13038715
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61056844A Granted JPS62214464A (ja) | 1986-03-17 | 1986-03-17 | データ処理システム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US4894768A (ja) |
| JP (1) | JPS62214464A (ja) |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2762441B2 (ja) * | 1987-10-30 | 1998-06-04 | 日本電気株式会社 | コプロセッサ |
| JPH0786870B2 (ja) * | 1988-04-15 | 1995-09-20 | 株式会社日立製作所 | コプロセツサのデータ転送制御方法およびその回路 |
| JP2741867B2 (ja) * | 1988-05-27 | 1998-04-22 | 株式会社日立製作所 | 情報処理システムおよびプロセツサ |
| US5210834A (en) * | 1988-06-01 | 1993-05-11 | Digital Equipment Corporation | High speed transfer of instructions from a master to a slave processor |
| US5040109A (en) * | 1988-07-20 | 1991-08-13 | Digital Equipment Corporation | Efficient protocol for communicating between asychronous devices |
| JP2754825B2 (ja) * | 1989-02-03 | 1998-05-20 | 日本電気株式会社 | マイクロプロセッサ |
| US5068821A (en) * | 1989-03-27 | 1991-11-26 | Ge Fanuc Automation North America, Inc. | Bit processor with powers flow register switches control a function block processor for execution of the current command |
| US5218711A (en) * | 1989-05-15 | 1993-06-08 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor having program counter registers for its coprocessors |
| US5210870A (en) * | 1990-03-27 | 1993-05-11 | International Business Machines | Database sort and merge apparatus with multiple memory arrays having alternating access |
| US5420989A (en) * | 1991-06-12 | 1995-05-30 | Cyrix Corporation | Coprocessor interface supporting I/O or memory mapped communications |
| JP2884831B2 (ja) * | 1991-07-03 | 1999-04-19 | 株式会社日立製作所 | 処理装置 |
| JP3172214B2 (ja) * | 1991-09-30 | 2001-06-04 | 富士通株式会社 | 状態モード設定方式 |
| US5742842A (en) * | 1992-01-28 | 1998-04-21 | Fujitsu Limited | Data processing apparatus for executing a vector operation under control of a master processor |
| JP3231429B2 (ja) * | 1992-11-06 | 2001-11-19 | 株式会社日立製作所 | 中央処理装置と乗算器とを有する半導体集積回路装置 |
| CA2137488C (en) * | 1994-02-18 | 1998-09-29 | Richard I. Baum | Coexecuting method and means for performing parallel processing in conventional types of data processing systems |
| FR2719926B1 (fr) * | 1994-05-10 | 1996-06-07 | Sgs Thomson Microelectronics | Circuit électronique et procédé d'utilisation d'un coprocesseur. |
| US5805486A (en) * | 1995-11-28 | 1998-09-08 | Intel Corporation | Moderately coupled floating point and integer units |
| US5848284A (en) * | 1995-11-28 | 1998-12-08 | Intel Corporation | Method of transferring data between moderately coupled integer and floating point units |
| US6434689B2 (en) * | 1998-11-09 | 2002-08-13 | Infineon Technologies North America Corp. | Data processing unit with interface for sharing registers by a processor and a coprocessor |
| GB2366426B (en) * | 2000-04-12 | 2004-11-17 | Ibm | Coprocessor data processing system |
| US6754804B1 (en) * | 2000-12-29 | 2004-06-22 | Mips Technologies, Inc. | Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions |
| US7237090B1 (en) | 2000-12-29 | 2007-06-26 | Mips Technologies, Inc. | Configurable out-of-order data transfer in a coprocessor interface |
| US7287147B1 (en) | 2000-12-29 | 2007-10-23 | Mips Technologies, Inc. | Configurable co-processor interface |
| US7168066B1 (en) | 2001-04-30 | 2007-01-23 | Mips Technologies, Inc. | Tracing out-of order load data |
| US6986023B2 (en) | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
| WO2004015563A1 (en) * | 2002-08-09 | 2004-02-19 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
| US7392368B2 (en) | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
| JP3867804B2 (ja) * | 2005-03-22 | 2007-01-17 | セイコーエプソン株式会社 | 集積回路装置 |
| US20130318268A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
| WO2013177310A2 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
| US20140201416A1 (en) * | 2013-01-17 | 2014-07-17 | Xockets IP, LLC | Offload processor modules for connection to system memory, and corresponding methods and systems |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4270167A (en) * | 1978-06-30 | 1981-05-26 | Intel Corporation | Apparatus and method for cooperative and concurrent coprocessing of digital information |
| US4547849A (en) * | 1981-12-09 | 1985-10-15 | Glenn Louie | Interface between a microprocessor and a coprocessor |
| US4731736A (en) * | 1983-04-18 | 1988-03-15 | Motorola, Inc. | Method and apparatus for coordinating execution of an instruction by a selected coprocessor |
| 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 |
| US4648034A (en) * | 1984-08-27 | 1987-03-03 | Zilog, Inc. | Busy signal interface between master and slave processors in a computer system |
| US4777613A (en) * | 1986-04-01 | 1988-10-11 | Motorola Inc. | Floating point numeric data processor |
-
1986
- 1986-03-17 JP JP61056844A patent/JPS62214464A/ja active Granted
-
1987
- 1987-03-02 US US07/021,007 patent/US4894768A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US4894768A (en) | 1990-01-16 |
| JPS62214464A (ja) | 1987-09-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0578863B2 (ja) | ||
| JP2586833B2 (ja) | データプロセッサ | |
| US4236206A (en) | Central processor unit for executing instructions of variable length | |
| US6223279B1 (en) | Single chip microcomputer having a dedicated address bus and dedicated data bus for transferring register bank data to and from an on-line RAM | |
| US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
| US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
| US5781763A (en) | Independent control of DMA and I/O resources for mixed-endian computing systems | |
| EP0148975B1 (en) | Internal bus system for a primitive instruction set machine | |
| JPH0135366B2 (ja) | ||
| KR970003321B1 (ko) | 코프로세서 지정 시스템 | |
| US5410721A (en) | System and method for incrementing a program counter | |
| US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
| JP2617974B2 (ja) | データ処理装置 | |
| EP0385136A2 (en) | Microprocessor cooperating with a coprocessor | |
| US4751632A (en) | Data processor having multiple cycle operand cycles | |
| EP0560393B1 (en) | Microprocessor and data processing system with register file | |
| JP4260901B2 (ja) | メモリへのデータの疑似整合転送の方法と装置 | |
| JPS623332A (ja) | 情報処理装置 | |
| JP2504535B2 (ja) | バスユニットの構成方法 | |
| JPH023821A (ja) | 高速演算装置 | |
| Magar et al. | An NMOS digital signal processor with multiprocessing capability | |
| JPH0218622A (ja) | 数値演算プロセッサ | |
| JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
| JPH0646413B2 (ja) | デ−タ処理プロセッサ | |
| JPS583253B2 (ja) | マルチプロセツサシステム |