JP2762441B2 - Coprocessor - Google Patents

Coprocessor

Info

Publication number
JP2762441B2
JP2762441B2 JP62277198A JP27719887A JP2762441B2 JP 2762441 B2 JP2762441 B2 JP 2762441B2 JP 62277198 A JP62277198 A JP 62277198A JP 27719887 A JP27719887 A JP 27719887A JP 2762441 B2 JP2762441 B2 JP 2762441B2
Authority
JP
Japan
Prior art keywords
operand
data
coprocessor
register
command
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
Application number
JP62277198A
Other languages
Japanese (ja)
Other versions
JPH01118954A (en
Inventor
博昭 金子
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP62277198A priority Critical patent/JP2762441B2/en
Publication of JPH01118954A publication Critical patent/JPH01118954A/en
Application granted granted Critical
Publication of JP2762441B2 publication Critical patent/JP2762441B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はCPUと密に結合されるコプロセッサに関し、
特に、オペランドデータの転送方式を改善して実行処理
の効率を向上させたコプロセッサに関する。 [従来の技術] 情報処理装置においてCPUの命令処理能力を向上させ
るために、CPUとは別の処理装置がCPUと密に結合され、
本来CPUが行うべき処理の一部分を肩代わりするという
構成が採られることがある。この別の処理装置は、コプ
ロセッサ(Co−processor)と呼ばれ、CPUが有する命令
の処理速度を向上させたり、また、CPUが処理すること
ができない命令処理(例えば、浮動小数点演算等)を実
行するものである。 コプロセッサはあくまでCPUの拡張のために使用され
るので、コプロセッサの操作がソフトウェアにより制御
されることはない。即ち、演算のためのデータの転送及
び操作のためのコマンドの転送が、入出力(I/O)装置
のようにソフトウェアによって制御されることはなく、
CPUがコプロセッサを必要とする命令を検知した場合
に、CPUとコプロセッサとの間でのみデータの転送がな
される。 第5図は浮動小数点演算を行うこの種の従来のコプロ
セッサを使用した情報処理装置を示すブロック図であ
る。CPU1、メモリ2及びコプロセッサ3な共有データバ
ス4を介して接続されており、データの転送はCPU1とメ
モリ2との間及びCPU1とコプロセッサ3との間において
なされる。バス制御回路5は、CUP1から入力されるデー
タ転送に係わる情報STATUSを解釈し、メモリ2に対する
リード/ライト信号MSTB及びコプロセッサ3に対するリ
ード/ライト信号CPSTBを発生する。 CPU1は浮動小数点演算命令を実行することを検知する
と、共有データバス4を介してメモリ2の浮動小数点デ
ータをオペランドデータとしてCPU1の内部に読込む。次
に、CPU1はコプロセッサ3に共有データバス4を介して
コマンドを転送し、演算を指定すると共に、演算開始を
指定する。そして、CPU1の内部に読込まれているオペラ
ンドデータがコプロセッサ3に転送され、コプロセッサ
3によりオペランドデータの演算が開始される。コプロ
セッサ3の演算が終了すると、演算結果はコプロセッサ
3からCPU1に転送され、次いで、CPU1がメモリ2に書込
む。 なお、CPU1がSTATUS信号を出力すると、バス制御回路
5がこのSTATUS信号を検知してコプロセッサ3へ転送す
べきオペランドデータがメモリ2からCPU1に読込まれる
ことを把握する。そこで、バス制御回路5からメモリ2
に対するリード/ライト信号MSTBと、コプロセッサ3に
対するライト/リード信号CPSTBを同時に発生させるこ
とにより、CPU1を経由することなくメモリ2からオペラ
ンドデータを直接コプロセッサ3に転送することができ
る。 第6図は従来のコプロセッサ3の構成を具体的に示す
ブロック図である。共有データバス4は、命令レジスタ
6及びオペランドバッファ8に接続されている。CPU1か
ら共有データバス4及び命令レジスタ6を介して命令デ
コードユニット7に転送されたコマンドは、命令デコー
ドユニット7において解析され、演算処理を行う命令実
行ユニット9に実行すべき処理が通知される。実行ユニ
ット9は、オペランドバッファ8に格納されたオペラン
ドデータを使用して指定された演算処理を行う。 リード/ライト制御回路10は、外部から指定されるバ
スサイクル情報RD,WR,CDに基き、命令レジスタ6及びオ
ペランドバッファ8に対するストローブ信号を発行する
と共に、オペランドバッファ8に対する待合わせ制御を
行う。 ここで、RD信号はコプロセッサ3に対するリードタイ
ミングを示し、WR信号はライトタイミングを示す。ま
た、CD信号はバスサイクルの種類を示し、CD=0の場合
は命令レジスタ6に対するコマンドの転送を意味し、CD
=1ならばオペランドバッファ8に対するオペランドデ
ータの転送を意味する。また、DRQ信号は命令実行ユニ
ット9からオペランドバッファ8に対するデータの転送
要求を示し、BSY信号はオペランドバッファ8に有効な
オペランドデータが転送されていないことを示す信号で
ある。 次に、従来のコプロセッサの演算処理の動作タイミン
グについて、第7図に示すタイミングチャート図を参照
して説明する。タイミングTcにおいて命令レジスタ6に
コマンドが転送されると、命令デコードユニット7は命
令を解釈し、タイミングTeにおいて命令実行ユニット9
を起動する。 命令実行ユニット9において、ある程度処理が進みタ
イミングTr1に達すると、処理にはオペランドデータを
必要とするので、オペランドバッファ8に対するDRQ信
号を発行する。リード/ライト制御回路10のBSY信号に
よりオペランドバッファ8には有効なオペランドデータ
が格納されていないことが示されているので、処理はタ
イミングTo1まで保留される。 タイミングTo1においてオペランドバッファ8にオペ
ランドデータが転送されると、BSY信号はインアクティ
ブになり、命令実行ユニット9において保留されていた
処理が続行される。再開された処理がタイミングTr2に
達すると、再度、次のオペランドデータが必要になり、
オペランドバッファ8にオペランドデータが転送される
まで、すなわちタイミングTo2まで処理が保留されるこ
とになる。なお、第7図において、命令実行ユニット9
が実際に処理を行っている期間を斜線により示し、処理
が保留されている期間を空白により示している。 [発明が解決しようとする問題点] しかしながら、従来のコプロセッサにおいては、第7
図に示すように、命令実行ユニット9の実行処理はオペ
ランドバッファ8にオペランドデータが転送されてくる
のを待つ時間(t1+t2)だけ保留されるので、演算結果
を得るまでに余分な時間が生じてしまうという問題点が
ある。 本発明はかかる問題点に鑑みてなされたものであっ
て、実行処理が保留される時間を解消して処理時間を短
縮することができるコプロセッサを提供することを目的
とする。 [問題点を解決するための手段] 本発明のコプロセッサは、演算の種類を指定するコマ
ンド及び前記演算の対象となるオペランドデータが外部
から転送されるコプロセッサにおいて、1つのコマンド
により処理されるべき全てのオペランドデータを前記コ
マンドの転送に先立って格納するのに必要な総ワード長
を有する少なくとも1組のレジスタ群と、オペランドデ
ータが転送されてくる都度前記レジスタ群の各レジスタ
を順次選択してそのオペランドデータを格納させる制御
手段と、外部からのコマンド転送を受けるコマンドレジ
スタと、前記レジスタ群からオペランドデータの転送を
受け前記コマンドレジスタに格納されたコマンドに基く
命令を処理する命令実行ユニットと、を有し、コマンド
が外部から前記コマンドレジスタに転送されるに先立
ち、全てのオペランドデータを前記レジスタ群に格納し
ておき、前記命令実行ユニットは前記コマンドの転送後
に前記命令に関する処理を開始することを特徴とする。 [作用] 制御手段はオペランドデータが転送されてくる都度レ
ジスタ群の各レジスタを順次選択して、そのオペランド
データを格納する。このレジスタ群は1つのコマンドに
より処理されるべき全てのオペランドデータを格納する
のに必要な総ワード長を有しており、制御手段により全
てのオペランドデータが格納される。 そして、命令実行ユニットはコマンドを入力すると、
前記レジスタ群に格納されたオペランドデータの操作を
含む処理を開始する。このように、命令実行ユニットが
命令を処理する時では、既に全てのオペランドデータが
レジスタ群に格納されているので、オペランドレジスタ
の未転送による処理の保留は発生しない。 [実施例] 以下、添付の図面を参照して本発明の実施例について
説明する。第1図は本発明の第1の実施例に係るコプロ
セッサを示すブロック図である。80ビット長の浮動小数
点データを格納する3個の32ビットオペランドレジスタ
11,12,13及び命令レジスタ6が32ビットの共有データバ
ス4に接続されている。命令レジスタ6は共有データバ
ス4を介して転送されたコマンドを一旦保持し、これを
命令デコードユニット7に出力する。命令デコードユニ
ット7は入力されたコマンドを解析し、処理の内容を命
令実行ユニット14へ通知する。命令実行ユニット14にお
いては、オペランドレジスタ11,12,13に格納されている
80ビットのオペランドデータを使用して指定された演算
を一括して処理する。 オペランドレジスタ制御回路15は、外部から指定され
るバスサイクル情報RD,WR,CDに基き、命令レジスタ6及
びオペランドレジスタ11,12,13に対するストローブ信号
を発行すると共に、オペランドレジスタ11,12,13に対す
る待合わせ制御を行う。 ここで、RD信号はコプロセッサ3に対するリードタイ
ミングを示し、WR信号はライトタイミングを示す。ま
た、CD信号はバスサイクルの種類を示し、CD=0の場合
は命令レジスタ6に対するコマンドの転送を意味し、CD
=1の場合はオペランドレジスタ11,12,13に対するオペ
ランドデータの転送を意味する。 また、2ビットのアドレス(A)信号は、各オペラン
ドレジスタ11,12,13を識別するための信号であり、オペ
ランドデータを転送するバスサイクルに同期して入力さ
れる。アドレス(A)信号が(00b)である場合はオペ
ランドレジスタ11へ、(01b)である場合はオペランド
レジスタ12へ、(10b)である場合はオペランドレジス
タ13に対してオペランドデータを転送することを示す。 次に、このように構成されたコプロセッサの動作につ
いて第2図の動作タイミング図を参照して説明する。タ
イミングTo1において共有データバス4からアドレス
(A)信号が(00b)である最初の32ビットオペランド
データが転送されると、このデータがオペランドレジス
タ11に格納される。次に、タイミングTo2においてアド
レス(A)信号が(01b)である2番目の32ビットオペ
ランドデータが転送されると、このデータがオペランド
レジスタ12に、引き続いて、タイミングTo3においてア
ドレス(A)信号が(10b)である3番目の32ビットオ
ペランドデータが転送されると、このデータがオペラン
ドレジスタ13に格納される。処理する浮動小数点データ
が80ビット長であるので、3番目のバスサイクルにおい
て転送される32ビットオペランドデータのうち上位16ビ
ットは無効のデータである。 更に、タイミングTcにおいて命令レジスタ6にコマン
ドが転送されると、命令デコードユニット7はコマンド
を解釈し、タイミングTeにおいて命令実行ユニット14に
処理の開始を指示する。 命令実行ユニット14が処理を開始し、例えば、タイミ
ングTr1,Tr2,Tr3においてオペランドデータを必要とす
る場合、この80ビットの浮動小数点データの全てがオペ
ランドレジスタ11,12,13に格納されているので、オペラ
ンドレジスタ11,12,13は命令実行ユニット14から80ビッ
トのうちのいずれの32ビットオペランドデータを要求さ
れても、又は、80ビットのデータの全てを同時に要求さ
れても、オペランドデータを命令実行ユニット14に転送
することができる。このため、オペランドデータの未転
送による処理の保留は発生せず、命令実行ユニット14は
処理が中断されることなく継続して演算処理することが
できる。 なお、本実施例においては、タイミングの原点T0から
命令実行ユニット14が起動を始めるタイミングTeまでの
期間は、命令実行ユニット14は何らの処理もしていない
が、この期間を従前のコマンドに対する処理の期間とオ
ーバラップさせることができるので、そうすると、この
タイミングT0からタイミングTeまでの非動作時間がなく
なり、有効に命令実行ユニット14を使用することができ
る。 また、本実施例においては、オペランドデータの転送
順序はオペランドレジスタ11,12,13に対応する順番であ
ったが、この順番に拘らず任意の順序で選択してオペラ
ンドデータを転送することができることは勿論である。 第3図は本発明の第2の実施例に係るコプロセッサを
示すブロック図である。第3図において第1図と同一物
には同一符号を付して説明を省略する。オペランドレジ
スタ制御回路16がオペランドレジスタ11,12,13に対して
発行するストローブ信号はインクリメンタ17及びデコー
ダ18を介してオペランドレジスタ11,12,13に入力され
る。オペランドレジスタ制御回路16にはRD信号、WR信号
及びCD信号が入力される。 インクリメンタ17はオペランドレジスタ制御回路16に
入力されるWR信号が1、CD信号が0(命令レジスタ6へ
のコマンド転送)になると、(00b)に初期化される。
そして、インクリメンタ17はオペランドレジスタ11,12,
13へオペランドデータが転送されると、それをWR=1及
びCD=1により検知し、その内容が+1づつ更新され
る。 デコーダ18は、オペランドレジスタ11,12,13に対して
オペランドデータが転送されると、インクリメンタ17の
内容に従って各オペランドレジスタ11,12,13に対するラ
イトストローブ信号を発生する。つまり、1回目のオペ
ランドデータ転送時、インクリメンタ17は(00b)であ
るので、デコーダ18はオペランドレジスタ11に対するラ
イトストローブ信号を発生する。このライトストローブ
信号が発生すると、インクリメンタ17は直ちに1だけイ
ンクリメンタされ、(01b)となる。 オペランドレジスタ12に対するライトストローブ信号
は、インクリメンタ17が(01b)の場合、オペランドレ
ジスタ13に対するライトストローブ信号は、インクリメ
ンタ17が(10b)の場合に夫々発行される。 このように、第2の実施例においては、オペランドデ
ータの転送順序が予め固定されている場合には、外部か
らアドレス情報を指定することなくオペランドレジスタ
11,12,13にオペランドデータを転送することができる。
そして、第1の実施例と同様に、第2の実施例において
も、実行ユニット14はデータの未転送によって処理を中
断することなく命令を連続して処理することができる。 第4図(a)は、第1の実施例においてCPUがコプロ
セッサを必要とする命令の実行を行った場合のバスサイ
クルを示しており、第4図(b)は第2の実施例による
場合のバスサイクルを示している。第2の実施例におい
ては、CPU1がオペランドレジスタ11,12,13を選択するた
めに、アドレス情報を指示する必要がないので、CPU1
(第5図参照)からコプロセッサに対して発行されるオ
ペランドデータ転送用のバスサイクルを省略することが
できる。つまり、第1の実施例においては、第4図
(a)に示すように、コプロセッサが必要とするオペラ
ンドデータは、メモリ2からのオペランドデータ読出し
用のバスサイクルBmによって、一度CPU内部に読込まれ
た後に、オペランドデータ転送用のバスサイクルBo及び
コマンド転送用のバスサイクルBcによりコプロセッサに
転送されている。これに対して、第2の実施例において
は、第4図(b)に示すように、バスサイクルBmに同期
してコプロセッサにオペランドデータの転送を行ってお
り、バスサイクルBoを必要とせず、より命令実行ユニッ
ト14の使用効率(スループット)を向上させることがで
きる。 [発明の効果] 以上説明したように、本発明によれば、全てのオペラ
ンドデータは制御手段によりレジスタ群に格納される。
そして、全オペランドデータは実行処理に先立ちレジス
タに格納されるので、命令実行ユニットはオペランドデ
ータ転送のための待合わせをすることなく命令を処理す
ることができ、処理時間が短縮され、実行処理の効率が
向上する。
The present invention relates to a coprocessor tightly coupled to a CPU,
In particular, the present invention relates to a coprocessor in which the transfer method of operand data is improved to improve the efficiency of execution processing. [Prior Art] In order to improve the instruction processing capability of a CPU in an information processing device, a processing device different from the CPU is tightly coupled with the CPU.
There may be a configuration in which a part of the processing that should be performed by the CPU is taken over. This other processing device is called a co-processor (Co-processor), which improves the processing speed of instructions of the CPU and performs instruction processing (for example, floating-point arithmetic or the like) that cannot be processed by the CPU. To do. Since the coprocessor is used only for CPU expansion, the operation of the coprocessor is not controlled by software. That is, the transfer of data for operation and the transfer of commands for operation are not controlled by software like an input / output (I / O) device.
When the CPU detects an instruction that requires a coprocessor, data transfer is performed only between the CPU and the coprocessor. FIG. 5 is a block diagram showing an information processing apparatus using a conventional coprocessor of this type for performing a floating-point operation. The CPU 1, the memory 2, and the coprocessor 3 are connected via a shared data bus 4, and data transfer is performed between the CPU 1 and the memory 2 and between the CPU 1 and the coprocessor 3. The bus control circuit 5 interprets information STATUS relating to data transfer input from the CUP 1 and generates a read / write signal MSTB for the memory 2 and a read / write signal CPSTB for the coprocessor 3. When detecting that the CPU 1 executes the floating-point operation instruction, the CPU 1 reads the floating-point data in the memory 2 via the shared data bus 4 into the CPU 1 as operand data. Next, the CPU 1 transfers the command to the coprocessor 3 via the shared data bus 4, specifies the operation, and specifies the start of the operation. Then, the operand data read into the CPU 1 is transferred to the coprocessor 3, and the coprocessor 3 starts the operation of the operand data. When the operation of the coprocessor 3 is completed, the operation result is transferred from the coprocessor 3 to the CPU 1, and then the CPU 1 writes the result in the memory 2. When the CPU 1 outputs the STATUS signal, the bus control circuit 5 detects this STATUS signal and recognizes that the operand data to be transferred to the coprocessor 3 is read from the memory 2 to the CPU 1. Therefore, the bus control circuit 5 sends the memory 2
, And the write / read signal CPSTB for the coprocessor 3 are simultaneously generated, so that the operand data can be directly transferred from the memory 2 to the coprocessor 3 without passing through the CPU 1. FIG. 6 is a block diagram specifically showing the configuration of the conventional coprocessor 3. As shown in FIG. The shared data bus 4 is connected to the instruction register 6 and the operand buffer 8. The command transferred from the CPU 1 to the instruction decode unit 7 via the shared data bus 4 and the instruction register 6 is analyzed in the instruction decode unit 7 and the processing to be executed is notified to the instruction execution unit 9 which performs the arithmetic processing. The execution unit 9 performs a designated operation using the operand data stored in the operand buffer 8. The read / write control circuit 10 issues a strobe signal to the instruction register 6 and the operand buffer 8 based on the bus cycle information RD, WR, and CD specified from the outside, and controls the queuing of the operand buffer 8. Here, the RD signal indicates a read timing for the coprocessor 3, and the WR signal indicates a write timing. The CD signal indicates the type of the bus cycle. When CD = 0, it means the transfer of a command to the instruction register 6;
If = 1, it means transfer of operand data to the operand buffer 8. The DRQ signal indicates a data transfer request from the instruction execution unit 9 to the operand buffer 8, and the BSY signal indicates that valid operand data has not been transferred to the operand buffer 8. Next, the operation timing of the arithmetic processing of the conventional coprocessor will be described with reference to a timing chart shown in FIG. When the command is transferred to the instruction register 6 at the timing Tc, the instruction decoding unit 7 interprets the instruction, and at the timing Te, the instruction execution unit 9
Start In the instruction execution unit 9, when the processing advances to some extent and reaches the timing Tr 1, the processing requires operand data, so that a DRQ signal to the operand buffer 8 is issued. Since the BSY signal of the read / write control circuit 10 indicates that valid operand data is not stored in the operand buffer 8, the processing is suspended until timing To1. When the operand data is transferred to the operand buffer 8 at the timing To1, the BSY signal becomes inactive, and the processing suspended in the instruction execution unit 9 is continued. When the restarted processing reaches timing Tr2, the next operand data is required again,
The processing is suspended until the operand data is transferred to the operand buffer 8, that is, until the timing To2. In FIG. 7, the instruction execution unit 9
, The period during which the process is actually being performed is indicated by oblique lines, and the period during which the process is suspended is indicated by a blank. [Problems to be Solved by the Invention] However, in the conventional coprocessor, the seventh
As shown in the figure, the execution process of the instruction execution unit 9 is suspended for the time (t1 + t2) waiting for operand data to be transferred to the operand buffer 8, so that extra time is generated until an operation result is obtained. There is a problem that it is. The present invention has been made in view of such a problem, and an object of the present invention is to provide a coprocessor capable of eliminating the time during which execution processing is suspended and shortening the processing time. [Means for Solving the Problems] In the coprocessor of the present invention, a command specifying a type of operation and operand data to be operated are externally transferred by a single command in a coprocessor. At least one set of registers having a total word length necessary to store all the operand data to be transferred prior to the transfer of the command, and each register of the register group each time operand data is transferred are sequentially selected. Control means for storing the operand data, a command register for receiving an external command transfer, and an instruction execution unit for receiving the operand data transfer from the register group and processing an instruction based on the command stored in the command register. Command is externally transferred to the command register. Prior to this, all operand data are stored in the register group, and the instruction execution unit starts processing related to the instruction after the transfer of the command. [Operation] Each time operand data is transferred, the control means sequentially selects each register of the register group and stores the operand data. This register group has a total word length necessary to store all operand data to be processed by one command, and all operand data is stored by the control means. Then, when the command execution unit inputs the command,
Processing including manipulation of the operand data stored in the register group is started. As described above, when the instruction execution unit processes an instruction, all the operand data has already been stored in the register group, so that the processing is not suspended due to the non-transfer of the operand register. Embodiment An embodiment of the present invention will be described below with reference to the accompanying drawings. FIG. 1 is a block diagram showing a coprocessor according to a first embodiment of the present invention. Three 32-bit operand registers that store 80-bit floating-point data
11, 12, 13 and the instruction register 6 are connected to the 32-bit shared data bus 4. The instruction register 6 temporarily holds the command transferred via the shared data bus 4 and outputs it to the instruction decoding unit 7. The instruction decode unit 7 analyzes the input command and notifies the instruction execution unit 14 of the contents of the processing. In the instruction execution unit 14, they are stored in the operand registers 11, 12, and 13.
The specified operation is processed collectively using 80-bit operand data. The operand register control circuit 15 issues a strobe signal to the instruction register 6 and the operand registers 11, 12, and 13 based on the bus cycle information RD, WR, and CD specified from the outside, and also issues a strobe signal to the operand registers 11, 12, and 13. Performs waiting control. Here, the RD signal indicates a read timing for the coprocessor 3, and the WR signal indicates a write timing. The CD signal indicates the type of the bus cycle. When CD = 0, it means the transfer of a command to the instruction register 6;
= 1 means transfer of operand data to operand registers 11, 12, and 13. The 2-bit address (A) signal is a signal for identifying each of the operand registers 11, 12, and 13, and is input in synchronization with a bus cycle for transferring operand data. When the address (A) signal is (00b), the operand data is transferred to the operand register 11, when it is (01b), it is transferred to the operand register 12, and when it is (10b), the operand data is transferred to the operand register 13. Show. Next, the operation of the coprocessor configured as described above will be described with reference to the operation timing chart of FIG. When the first 32-bit operand data whose address (A) signal is (00b) is transferred from the shared data bus 4 at the timing To1, this data is stored in the operand register 11. Next, at the timing To2, when the second 32-bit operand data whose address (A) signal is (01b) is transferred, this data is transferred to the operand register 12 and subsequently the address (A) signal is transmitted at the timing To3. When the third 32-bit operand data of (10b) is transferred, this data is stored in the operand register 13. Since the floating-point data to be processed has an 80-bit length, the upper 16 bits of the 32-bit operand data transferred in the third bus cycle are invalid data. Further, when the command is transferred to the instruction register 6 at the timing Tc, the instruction decode unit 7 interprets the command and instructs the instruction execution unit 14 to start processing at the timing Te. When the instruction execution unit 14 starts processing and, for example, requires operand data at the timing Tr1, Tr2, Tr3, since all of the 80-bit floating point data is stored in the operand registers 11, 12, and 13, The operand registers 11, 12, and 13 are capable of instructing the operand data regardless of whether the instruction execution unit 14 requests any of the 80 bits of 32-bit operand data or all of the 80 bits of data at the same time. It can be forwarded to the execution unit 14. Therefore, the suspension of the processing due to the non-transfer of the operand data does not occur, and the instruction execution unit 14 can perform the arithmetic processing continuously without interruption. In the present embodiment, the instruction execution unit 14 does not perform any processing during the period from the timing origin T0 to the timing Te at which the instruction execution unit 14 starts to be activated. Since the period can be overlapped, the non-operation time from the timing T0 to the timing Te is eliminated, and the instruction execution unit 14 can be used effectively. In the present embodiment, the transfer order of the operand data is the order corresponding to the operand registers 11, 12, and 13. However, regardless of this order, the operand data can be selected and transferred in an arbitrary order. Of course. FIG. 3 is a block diagram showing a coprocessor according to a second embodiment of the present invention. 3, the same components as those in FIG. 1 are denoted by the same reference numerals, and description thereof will be omitted. The strobe signal issued to the operand registers 11, 12, and 13 by the operand register control circuit 16 is input to the operand registers 11, 12, and 13 via the incrementer 17 and the decoder 18. The RD signal, the WR signal, and the CD signal are input to the operand register control circuit 16. The incrementer 17 is initialized to (00b) when the WR signal input to the operand register control circuit 16 becomes 1 and the CD signal becomes 0 (command transfer to the instruction register 6).
Then, the incrementer 17 outputs the operand registers 11, 12,
When the operand data is transferred to 13, it is detected by WR = 1 and CD = 1, and the content is updated by +1. When the operand data is transferred to the operand registers 11, 12, and 13, the decoder 18 generates a write strobe signal for each of the operand registers 11, 12, and 13 according to the contents of the incrementer 17. That is, at the time of the first operand data transfer, since the incrementer 17 is (00b), the decoder 18 generates a write strobe signal for the operand register 11. When this write strobe signal is generated, the incrementer 17 is immediately incremented by 1 to (01b). The write strobe signal for the operand register 12 is issued when the incrementer 17 is (01b), and the write strobe signal for the operand register 13 is issued when the incrementer 17 is (10b). As described above, in the second embodiment, when the transfer order of the operand data is fixed in advance, the operand register can be specified without externally designating the address information.
Operand data can be transferred to 11, 12, and 13.
Then, as in the first embodiment, in the second embodiment as well, the execution unit 14 can continuously process the instructions without interrupting the processing due to the untransferred data. FIG. 4 (a) shows a bus cycle when the CPU executes an instruction requiring a coprocessor in the first embodiment, and FIG. 4 (b) shows a bus cycle according to the second embodiment. 3 shows a bus cycle in the case. In the second embodiment, the CPU 1 does not need to indicate address information in order to select the operand registers 11, 12, and 13.
The bus cycle for transferring the operand data issued to the coprocessor from FIG. 5 can be omitted. That is, in the first embodiment, as shown in FIG. 4A, the operand data required by the coprocessor is once read into the CPU by the bus cycle Bm for reading the operand data from the memory 2. After that, the data is transferred to the coprocessor by the bus cycle Bo for operand data transfer and the bus cycle Bc for command transfer. On the other hand, in the second embodiment, as shown in FIG. 4 (b), the operand data is transferred to the coprocessor in synchronization with the bus cycle Bm, and the bus cycle Bo is not required. Thus, the use efficiency (throughput) of the instruction execution unit 14 can be further improved. [Effects of the Invention] As described above, according to the present invention, all operand data are stored in the register group by the control means.
Since all the operand data is stored in the register prior to the execution processing, the instruction execution unit can process the instruction without waiting for the transfer of the operand data, and the processing time is shortened. Efficiency is improved.

【図面の簡単な説明】 第1図は本発明の第1の実施例に係るコプロセッサを示
すブロック図、第2図は同じくこのコプロセッサの動作
を説明するためのタイミングチャート図、第3図は本発
明の第2の実施例に係るコプロセッサを示すブロック
図、第4図(a),(b)はコプロセッサを接続した情
報処理装置のデータバスの状態を示すタイミングチャー
ト図、第5図はコプロセッサを有する情報処理装置の構
成を示すブロック図、第6図は従来のコプロセッサを示
すブロック図、第7図はこの従来のコプロセッサの動作
を説明するためのタイミングチャート図である。 1;CPU、2;メモリ、3;コプロセッサ、4;共有データバ
ス、5;バス制御回路、6;命令レジスタ、7;命令デコード
ユニット、8;オペランドバッファ、9,14;命令実行ユニ
ット、10;リード/ライト制御回路、11,12,13;オペラン
ドレジスタ、15,16;オペランドレジスタ制御回路、17;
インクリメンタ、18;デコーダ
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a coprocessor according to a first embodiment of the present invention, FIG. 2 is a timing chart for explaining the operation of the coprocessor, and FIG. FIG. 4 is a block diagram showing a coprocessor according to a second embodiment of the present invention; FIGS. 4 (a) and 4 (b) are timing charts showing states of a data bus of an information processing apparatus to which the coprocessor is connected; FIG. 1 is a block diagram showing a configuration of an information processing apparatus having a coprocessor, FIG. 6 is a block diagram showing a conventional coprocessor, and FIG. 7 is a timing chart for explaining the operation of the conventional coprocessor. . 1; CPU, 2; memory, 3; coprocessor, 4; shared data bus, 5; bus control circuit, 6; instruction register, 7; instruction decode unit, 8; operand buffer, 9, 14; instruction execution unit, 10 ; Read / write control circuit, 11, 12, 13; operand register, 15, 16; operand register control circuit, 17;
Incrementer, 18; decoder

Claims (1)

(57)【特許請求の範囲】 1.演算の種類を指定するコマンド及び前記演算の対象
となるオペランドデータが外部から転送されるコプロセ
ッサにおいて、1つのコマンドにより処理されるべき全
てのオペランドデータを前記コマンドの転送に先立って
格納するのに必要な総ワード長を有する少なくとも1組
のレジスタ群と、オペランドデータが転送されてくる都
度前記レジスタ群の各レジスタを順次選択してそのオペ
ランドデータを格納させる制御手段と、外部からのコマ
ンド転送を受けるコマンドレジスタと、前記レジスタ群
からオペランドデータの転送を受け前記コマンドレジス
タに格納されたコマンドに基く命令を処理する命令実行
ユニットと、を有し、コマンドが外部から前記コマンド
レジスタに転送されるに先立ち、全てのオペランドデー
タを前記レジスタ群に格納しておき、前記命令実行ユニ
ットは前記コマンドの転送後に前記命令に関する処理を
開始することを特徴とするコプロセッサ。
(57) [Claims] In a coprocessor to which a command for specifying the type of operation and operand data to be operated are externally transferred, all operand data to be processed by one command are stored prior to the transfer of the command. At least one set of registers having a required total word length; control means for sequentially selecting each register of the register group and storing the operand data each time operand data is transferred; A command register that receives the operand data from the register group, and an instruction execution unit that processes an instruction based on the command stored in the command register. First, all operand data is stored in the register group. Paid to keep the coprocessor the instruction execution unit, characterized in that initiating the process relating to the command after the transfer of the command.
JP62277198A 1987-10-30 1987-10-30 Coprocessor Expired - Lifetime JP2762441B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62277198A JP2762441B2 (en) 1987-10-30 1987-10-30 Coprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62277198A JP2762441B2 (en) 1987-10-30 1987-10-30 Coprocessor

Publications (2)

Publication Number Publication Date
JPH01118954A JPH01118954A (en) 1989-05-11
JP2762441B2 true JP2762441B2 (en) 1998-06-04

Family

ID=17580174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62277198A Expired - Lifetime JP2762441B2 (en) 1987-10-30 1987-10-30 Coprocessor

Country Status (1)

Country Link
JP (1) JP2762441B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897779A (en) * 1988-07-20 1990-01-30 Digital Equipment Corporation Method and apparatus for optimizing inter-processor instruction transfers

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62214464A (en) * 1986-03-17 1987-09-21 Hitachi Ltd Coprocessor coupling system
JP2695156B2 (en) * 1986-12-29 1997-12-24 松下電器産業株式会社 Information processing device

Also Published As

Publication number Publication date
JPH01118954A (en) 1989-05-11

Similar Documents

Publication Publication Date Title
US4949241A (en) Microcomputer system including a master processor and a slave processor synchronized by three control lines
JPS62151971A (en) Microprocessor
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
JPH1021074A (en) Interruption control system, processor, and computer system
JPH1083303A (en) Electronic circuit and method for using coprocessor
JPH0743648B2 (en) Information processing equipment
US5129065A (en) Apparatus and methods for interface register handshake for controlling devices
JP2762441B2 (en) Coprocessor
EP0292188A2 (en) Cache system
JP2806690B2 (en) Microprocessor
JPS63247861A (en) Co-processor control method
JPH06324861A (en) System and method for controlling cpu
JPS63167951A (en) Information processor
JPS6221130B2 (en)
JPS58205258A (en) Data processor
JP2622026B2 (en) Register writing control method in central processing unit
JPH0317135B2 (en)
JPH0241770B2 (en)
JP2572821B2 (en) Operation processing method by instruction re-execution
JPH04155525A (en) Command execution controlling system
JPH06100962B2 (en) Bus control circuit
JPH02183333A (en) Data processor
WO1995022110A1 (en) Write-read data operation for microprocessor
JPH07210384A (en) Floating point arithmetic unit
JPH0769800B2 (en) Data processing device