JPS6365528A - Coprocessor - Google Patents
CoprocessorInfo
- Publication number
- JPS6365528A JPS6365528A JP20886686A JP20886686A JPS6365528A JP S6365528 A JPS6365528 A JP S6365528A JP 20886686 A JP20886686 A JP 20886686A JP 20886686 A JP20886686 A JP 20886686A JP S6365528 A JPS6365528 A JP S6365528A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- control unit
- operand
- processor
- 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.)
- Pending
Links
- 238000010586 diagram Methods 0.000 description 4
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は中央制御装置(以後CPUと略す)に接続され
るコ・プロセッサに関するもので、特にCPUからコ・
プロセッサに対する命令及びオペランドを格納可能なス
タックメモリをもつコ・プロセッサに関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a co-processor connected to a central control unit (hereinafter abbreviated as CPU), and particularly relates to a co-processor connected to a central control unit (hereinafter abbreviated as CPU).
The present invention relates to a co-processor having a stack memory capable of storing instructions and operands for the processor.
従来、この種のコ・プロセッサはコ・ゾロセッサに対す
る命令を保持する命令保持し・ゾスタと。Traditionally, this type of co-processor has an instruction-holding processor that holds instructions for a co-processor.
その命令で使用されるオぜランドをすべて保持可能なオ
ペランド保持レジスタを1組持ち、 CPUからコ・プ
ロセッサに対する命令を受取り、内部処理あるいはオペ
ランド待ちに移ると同時にビジー信号をセットし、すべ
ての内部処理終了後にビジー信号をリセットすることに
より、内部処理実行時に次のコ・プロセッサ命令や不必
要なオペランドが来て命令保持レジスタ及びオペランド
保持レジスタが書換えられるのを防いでいる。It has one set of operand holding registers that can hold all the operands used in that instruction, receives an instruction from the CPU to the coprocessor, and at the same time it moves to internal processing or waits for operands, it sets a busy signal, and all internal By resetting the busy signal after processing is completed, the instruction holding register and operand holding register are prevented from being rewritten by the next co-processor instruction or unnecessary operand during execution of internal processing.
上述した従来のコ・ゾロセッサは、1つのコ・プロセッ
サ命令を内部で実行している間ピノー信号をセットする
ことによ、9.CPUが次のコ・プロセッサ命令を出さ
ないように制御している。また一般にコ・プロセッサ命
令はCPU内部で行うより高速に演算可能であるため、
コ・ゾロセッサで内部演算を行う高速な命令と、 CP
U内部では演算がほとんど不可能なほど複雑であり、コ
・プロセッサ内部でも処理時間が長い命令とがある。従
来のコ・プロセッサでは、処理時間の長短にかかわらず
、1つのコ・プロセッサ命令実行時CPUを待たしてい
るため、処理時間の長いコ・プロセッサ命令が続くと、
CPUの待ち時間が増え待機しているコ・プロセッサ
命令以降のCPU命令が実行されず。The conventional co-processor described above performs 9. by setting the pinot signal while internally executing one co-processor instruction. Control is performed so that the CPU does not issue the next co-processor instruction. In addition, co-processor instructions can generally be calculated faster than inside the CPU, so
High-speed instructions that perform internal calculations in co-processor and CP
There are instructions that are so complex that they are almost impossible to perform inside the U, and that take a long time to process even inside the coprocessor. In conventional co-processors, regardless of the length of processing time, the CPU is kept waiting when executing one co-processor instruction, so if co-processor instructions with long processing times continue,
CPU waiting time increases and CPU instructions after the co-processor instruction that is waiting are not executed.
CPUの処理能力が低下するという欠点がある。またす
べてのコ・プロセッサ命令でビジー制御をするため、そ
の制御のためのファームウェアステップ数が増え、さら
にビジー信号をリセット後、待機していたコ・プロセッ
サ命令及びそのオペランドデータがコ・プロセッサに入
力されるまでの間コ・プロセッサの動作も止まるため、
コ・プロセッサを有効利用していないという欠点がある
。This has the disadvantage that the processing power of the CPU decreases. In addition, since all co-processor instructions perform busy control, the number of firmware steps for this control increases, and after resetting the busy signal, the co-processor instruction and its operand data that were waiting are input to the co-processor. The co-processor will also stop operating until
The drawback is that the co-processor is not used effectively.
本発明のコ・プロセッサは、 CPUに接続されCPU
に代わってコープロセッサ専用演算を実行するコ・プロ
セッサにおいて、外部データ線を介して前記CPUから
送られるコ・ゾロセッサ命令を解読し該命令が外部の主
記憶装置等に実行結果を出力する命令であるか否かを判
断して出力すると共に該命令におけるコ・グロセッサ内
部ファームウェア開始アPレスとオペランドのロード数
とを出力する命令デコード回路と、命令入力時ては前記
命令デコード回路が出力するファームウェア開始アドレ
スとオペランドのロード数とをまたオペランドリード時
には直接外部データ線上のオペランドデータをそれぞれ
の識別信号を付加しFIFO形式で格納するリードライ
トが同時に可能なスタックメモリと、前記CPUからコ
・プロセッサに対する命令及びオペランドを監視し命令
とオペランドの識別及び前記スタックメモリのポインタ
の更新と書込み制御を行うキュー制御部と、前記キュー
制御部の前記スタックメモリに対する書込みポイタンと
読出しポトンタとの差を出力するスタックデータ量算出
回路と、ファームウェアからの制御線と前記スタックメ
モリが出力する識別信号及びオ(ランドロード数と前記
スタックデータ量算出回路の出力とを入力し前記スタッ
クメモリからファームウェア開始アドレスをファームウ
ェアアドレス線にまたオにランドデータを内部データ線
に出力し前記スタックメモリの読出しポインタの更新の
指示及び外部の主記憶装置等に結果を出力する命令のフ
ァームウェア内部処理終了を報告する命令制御部と、前
記スタックデータ量算出回路と前記命令デコード回路と
前記命令制御部との各出力を入力し前記スタックメモリ
の空きがなくなった時または外部て結果を出力する命令
時前記CPUに対してビジー信号を送出し前記スタック
メモリに空きが生じた時又は外部に結果を出力可能時に
ピノ−信号を止めるビジー制御部とを含んで構成される
。The co-processor of the present invention is connected to the CPU and
A coprocessor that executes a coprocessor-dedicated operation on behalf of the coprocessor decodes a coprocessor instruction sent from the CPU via an external data line, and the instruction is an instruction that outputs the execution result to an external main storage device, etc. an instruction decode circuit that determines whether or not the instruction exists and outputs the co-grossessor internal firmware start address and the load number of operands for the instruction; and firmware that the instruction decode circuit outputs when an instruction is input. A stack memory capable of reading and writing simultaneously stores the start address and the number of operands to be loaded, and also the operand data on the external data line directly with respective identification signals when reading the operands in a FIFO format, and a queue control unit that monitors instructions and operands, identifies the instructions and operands, and controls updating and writing of pointers in the stack memory; and a stack that outputs a difference between a write pointer and a read pointer for the stack memory of the queue control unit. A data amount calculation circuit inputs a control line from the firmware, an identification signal output from the stack memory, and an output from the stack memory, and inputs the firmware start address from the stack memory to the firmware address line. and an instruction control unit that outputs land data to an internal data line, instructs to update the read pointer of the stack memory, and reports completion of internal firmware processing of an instruction that outputs a result to an external main storage device, etc.; Each output of the stack data amount calculation circuit, the instruction decoding circuit, and the instruction control unit is inputted, and a busy signal is sent to the CPU when the stack memory is full or when an instruction is issued to output the result externally. The device includes a busy control section that stops the pinot signal when the stack memory becomes empty or when the result can be output to the outside.
次に本発明について図面を参照して説明する。 Next, the present invention will be explained with reference to the drawings.
第1図は本発明の一実施例の構成を示すブロック図であ
る。第1図において、参照数字10はCPUからコ・プ
ロセッサに対して命令及びオにランドを送出したこをを
通知する外部アドレス線。FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention. In FIG. 1, reference numeral 10 is an external address line that notifies the coprocessor that the CPU has sent an instruction and a land to the coprocessor.
11はCPUからコ・プロセッサに対して命令及び第4
ランドを送出する外部データ線、1は外部データ線11
上のコ・プロセッサ命令からその命令の内部ファームウ
ェア開始アドレスとオにランドのロード数及び実行結果
を外部に出力するか否かを解析する命令デコード回路、
20,21.22はそれぞれ命令デコード回路1から出
力されるコ・プロセッサ内部のファームウェア開始アド
レス。11 is an instruction from the CPU to the co-processor and the fourth
External data line that sends out land, 1 is external data line 11
an instruction decoding circuit that analyzes from the above co-processor instruction whether or not to output the internal firmware start address of the instruction, the number of loads on the land, and the execution result to the outside;
20, 21, and 22 are firmware start addresses inside the coprocessor output from the instruction decoding circuit 1, respectively.
オペランドロード数及び実行結果を外部に出力する命令
であることを示す命令識別信号である。また曾曾怜雫2
は命令入力時にはファームウェア開始アドレス20及び
オペランドロード数21を。This is an instruction identification signal indicating that the instruction outputs the number of operand loads and execution results to the outside. Also, great-great-rei drop 2
When inputting the command, enter the firmware start address 20 and the operand load number 21.
またオペランドリード時には外部データ線11上のオペ
ランドデータをそれぞれのデータ識別信号23を付加し
、 FIFO形式で格納するスタックメモリ、3は外部
アドレス線10上を監視し、コ・プロセッサ命令とその
オペランドの識別及びスタックメモリ2のポインタの更
新と書込み制御を行うキュー制御部、23はスタックメ
モリ2の入力データの選択等に使用するデータ識別信号
、24はスタックメモリ2の書込み許可信号、25と2
6はそれぞれスタックメモリ2の書込みポインタ及び読
出しポインタ、4は書込みポインタ25と読出しポイン
タ26の差を出力するスタックデータ量算出回路、34
はスタックデータ量算出回路4が出力する有効スタック
データ数、5はファームウェアからの制御及び実行中の
コ・プロセッサ命令のオペランドデータ数32と有効ス
タックデータ数34を入力しファームウェア開始アドレ
ス31及び第4ランドデータ33をコ・プロセッサ内部
に送る制御、キュー制御部3に対しての制御及びビジー
制御を行う命令制御部、301五葎31゜32.33は
それぞれスタックメモリ2の出力のデータ識別信号、フ
ァームウェア開始アドレス。When reading operands, the stack memory 3 monitors the external address line 10 and stores the operand data on the external data line 11 with each data identification signal 23 in FIFO format, and reads the coprocessor instruction and its operand. A queue control unit performs identification, update of the pointer of the stack memory 2, and write control, 23 is a data identification signal used for selecting input data of the stack memory 2, etc., 24 is a write enable signal for the stack memory 2, 25 and 2
6 is a write pointer and a read pointer of the stack memory 2, respectively; 4 is a stack data amount calculation circuit that outputs the difference between the write pointer 25 and the read pointer 26; 34;
is the number of valid stack data output by the stack data amount calculation circuit 4, 5 is the number of operand data 32 of the co-processor instruction being executed and the number 34 of valid stack data controlled by the firmware, and the firmware start address 31 and the fourth A command control unit performs control for sending land data 33 into the co-processor, control for the queue control unit 3, and busy control; 301, 31, 32 and 33 are data identification signals output from the stack memory 2; Firmware start address.
オペランドロード数及びオペランドデータである。These are the number of operand loads and operand data.
また12.13はそれぞれコ・プロセッサ内部のファー
ムウェアアドレス線及び内部データ線、7及び8はそれ
ぞれファームウェアアドレス線12及ヒ内部データ線1
3にスタックメモリ2の内容を出力するドライバ、35
及び36はドライバ7゜8を制御する出力許可信号、4
1はファームウェアが命令制御部5に対して内部処理終
了、データ読出しを通知するファームウェア制御信号、
42は命令制御部5からファームウェアに対してファー
ムウェアスタート、オペランドデード終了を通知するス
ティタス信号、6はCPUに対してコ・プロセッサ命令
を送出可能か否かを知らせるビジー信号を生成するビジ
ー制御部、37は結果を外部出−t−+−FX含仝時に
コ、デロセ、ツサ内恕飢理φ:字了したことを知らせる
ビジー制御信号、40はCPUに対するビジー信号、4
3は命令制御部5からキュー制御部3に対してポインタ
の更新を指示するキュー制御信号である。12 and 13 are the firmware address line and internal data line inside the co-processor, respectively, and 7 and 8 are the firmware address line 12 and the internal data line 1, respectively.
A driver that outputs the contents of stack memory 2 to 3, 35
and 36 is an output permission signal for controlling the driver 7.8;
1 is a firmware control signal from which the firmware notifies the instruction control unit 5 that internal processing has ended and data has been read;
42 is a status signal that notifies the firmware from the instruction control unit 5 of firmware start and end of operand data; 6 is a busy control unit that generates a busy signal that informs the CPU whether or not a co-processor instruction can be sent; 37 outputs the result to the outside when including t-+-FX.
3 is a queue control signal that instructs the queue control unit 3 to update the pointer from the instruction control unit 5.
第2図は本発明のスタックメモリに格納されるデータ形
式を示す図であり、第2図(、) (b)においてA及
びA′は格納データがコ・プロセッサ命令のデコードデ
ータあるいはオペランドデータのいずれであるかを示す
データ識別信号、Bはコ・プロセッサ命令をコ・プロセ
ッサ内部のファームウェアで実行する際のそのファーム
ウェア開始アドレス。FIG. 2 is a diagram showing the data format stored in the stack memory of the present invention. In FIG. B is the firmware start address when the co-processor instruction is executed by the firmware inside the co-processor.
Cはコ・プロセッサ命令で使用されるオペランドのロー
ド数、Dはオペランドデータを示す。C indicates the load number of operands used in the co-processor instruction, and D indicates operand data.
次に本実施例の動作について第1図及び第2図に基づい
て説明する。Next, the operation of this embodiment will be explained based on FIGS. 1 and 2.
キュー制御部3は外部アドレス線10を常時監視してお
り、CPUからコ・プロセッサに対してコ・プロセッサ
命令あるいはオペランドが送られると動作を開始する。The queue control unit 3 constantly monitors the external address line 10, and starts operating when a co-processor command or operand is sent from the CPU to the co-processor.
コ・ゾロセッサ命令が送られた時には、キュー制御部3
は命令デコード回路1及びスタックメモリ2に対してコ
・プロセッサ命令を示すデータ識別信号23を送シ、コ
・プロセッサ命令が入力されたことを通知する。命令デ
コード回路1は外部データ線11上のコ・プロセッサ命
令を入力し、コ・プロセッサ内部の命令実行ファームウ
ェア上の該当するコ・プロセッサ命令ルーチンをスター
トさせるだめのファームウェア開始アドレス20と、該
当するコ・プロセッサ命令が必要とするオペランドデー
タ数から算出されたCPUが分割してオペランドを送出
する回数を示すオにランドロード数21を出力する。同
時にキュー制御部3はスタックメモリ2に対して書込み
許可信号24を出力する。When the Co-Zorocessor command is sent, the queue control unit 3
sends a data identification signal 23 indicating a co-processor instruction to the instruction decode circuit 1 and stack memory 2 to notify that a co-processor instruction has been input. The instruction decoding circuit 1 inputs a co-processor instruction on an external data line 11, and inputs a firmware start address 20 for starting the corresponding co-processor instruction routine on the instruction execution firmware inside the co-processor and the corresponding code. - Outputs the land load number 21 to O, which indicates the number of times the CPU divides and sends out operands, which is calculated from the number of operand data required by the processor instruction. At the same time, the queue control unit 3 outputs a write permission signal 24 to the stack memory 2.
一方スタックメモリ2は書込み許可信号24を受取ると
、データ識別信号23により入力データとして第2図(
a)に示すようにコ・プロセッサ命令を示すデータ識別
信号A、ファームウェア開始アドレスB、オペランドロ
ード数Cを選択し、キュー制御部3の書込みポインタ2
5が示すアドレスに格納する。書込み動作を終了すると
、キュー制御部3は内部書込みポインタを+1し次の書
込み動作に備える。On the other hand, when the stack memory 2 receives the write permission signal 24, it uses the data identification signal 23 as input data as shown in FIG.
As shown in a), the data identification signal A indicating the co-processor instruction, the firmware start address B, and the number of operand loads C are selected, and the write pointer 2 of the queue control unit 3 is selected.
Store it at the address indicated by 5. When the write operation is completed, the queue control unit 3 increments the internal write pointer by 1 and prepares for the next write operation.
またオペランドデータが送られて来た場合には。Also, if operand data is sent.
キュー制御部3はスタックメモリ2に対してオペランド
データを示すデータ識別信号23を送り。The queue control unit 3 sends a data identification signal 23 indicating operand data to the stack memory 2.
オペランドデータが入力されたことを通知し、書込み許
可信号24を出力する。スタックメモリ2は書込み許可
信号24を受取ると、データ識別信号23により、入力
データとして第2図(b)に示すように、オペランドデ
ータを示すデータ識別信号A/、外部デ〒り線11上の
オペランドデータDを選択し、キュー制御部3の書込み
ポインタ25が示すアドレスに格納する。書込み動作を
終了すると、キュー制御部3は内部書込みポインタを+
1し次の書込み動作に備える。It notifies that operand data has been input and outputs a write permission signal 24. When the stack memory 2 receives the write permission signal 24, it uses the data identification signal 23 to select the data identification signal A/ indicating operand data and the external data line 11 as input data, as shown in FIG. 2(b). Operand data D is selected and stored at the address indicated by the write pointer 25 of the queue control unit 3. When the write operation is completed, the queue control unit 3 changes the internal write pointer to +
1 and prepare for the next write operation.
スタックメモリ2に入力されたコ・プロセッサ命令及び
オペランドデータは命令制御部5によって制御される。Co-processor instructions and operand data input into the stack memory 2 are controlled by an instruction control unit 5.
キュー制御部3から出力された読出しポインタを示す信
号26が示すアドレスに格納しているコ・プロセッサ命
令デコード信号あるいはオペランドデータはスタックメ
モリ2から常時出力されており、データ識別信号30に
よって命令制御部5はどちらのデータかを判断する。ス
タックメモリ2の出力が命令デコード信号の場合。The co-processor instruction decode signal or operand data stored at the address indicated by the signal 26 indicating the read pointer output from the queue control unit 3 is constantly output from the stack memory 2, and is detected by the instruction control unit by the data identification signal 30. 5 determines which data it is. When the output of stack memory 2 is an instruction decode signal.
命令制御部5はドライバ7に対して出力許可信号35を
送り、ファームウェア開始アドレス31をファームウェ
アアドレス線12に出力させると共に、コ・プロセッサ
内部のファームウェアに対してスティタス信号42を使
用して起動をかける。The instruction control unit 5 sends an output permission signal 35 to the driver 7 to output the firmware start address 31 to the firmware address line 12, and activates the firmware inside the co-processor using the status signal 42. .
また命令制御部5はスタックデータ量算出回路4で算出
された書込みポインタ25と読出しポインタ26との差
を示す有効スタックデータ数34と。The instruction control unit 5 also calculates the effective stack data number 34 indicating the difference between the write pointer 25 and the read pointer 26 calculated by the stack data amount calculation circuit 4.
スタックメモリ2から出力されているオペランドロード
数32とを比較して、使用するオペランドデータがすべ
て格納済みの場合には、スティタス信号42を使用して
コ・プロセッサ内部のファームウェアに対してオペラン
ドロード終了を報告する。Compare the operand load number 32 output from the stack memory 2, and if all the operand data to be used has been stored, the status signal 42 is used to notify the firmware inside the co-processor that the operand load is finished. report.
命令制御部5は、ファームウェア開始アドレス出力後9
キュー制御部3に対してキュー制御信号43を用いて読
出しポインタを+1し次のコ・プロセッサ命令あるいは
オペランドデータを出力させる。After outputting the firmware start address, the instruction control unit 5
Using the queue control signal 43, the queue control unit 3 increments the read pointer by 1 and outputs the next co-processor instruction or operand data.
コ・ゾロセッサ内部ファームウェアは命令制御部5から
のオペランドロード終了を示すスティタス信号42を受
取ると、ファームウェア制御信号41を使いデータ読出
しを命令制御部5に通知する。命令制御部5は内部に保
持している実行中のコ・プロセッサ命令のファームウェ
アロード数に対応するオペランドデータ33を出力許可
信号36によってドライバ8から内部データ線13に順
次出力する。この時、読出しIイ/り26の制御は命令
制御部5からのキュー制御信号43によってキュー制御
部3が行う。オペランドをすべて出力後、命令制御部5
は内部処理終了を示すファームウェア制御信号41が来
るまで実行を停止し。When the internal firmware of the processor receives the status signal 42 indicating the completion of operand loading from the instruction control unit 5, it uses the firmware control signal 41 to notify the instruction control unit 5 of data read. The instruction control unit 5 sequentially outputs operand data 33 corresponding to the number of firmware loads of the co-processor instruction being executed, which is held internally, from the driver 8 to the internal data line 13 in response to an output permission signal 36. At this time, the read I/R 26 is controlled by the queue control section 3 in accordance with the queue control signal 43 from the instruction control section 5. After outputting all operands, the instruction control unit 5
stops execution until a firmware control signal 41 indicating the end of internal processing is received.
その後火のコ・プロセッサ命令制御に移る。It then moves on to the fire co-processor command control.
次にスタックメモリ2のスタック量の違いにより生じる
制御について説明する。Next, the control caused by the difference in the stack amount of the stack memory 2 will be explained.
スタックメモリ2に有効データがない時、すなわち有効
スタックデータ数34がゼロの時には。When there is no valid data in the stack memory 2, that is, when the number of valid stack data 34 is zero.
命令制御部5は停止している。この時CPUからコ・プ
ロセッサ命令が入力されると、その命令のファームウェ
ア開始アドレスとオペランドロード数とがスタックメモ
リ2に入力され、書込みポインタが+1される。それと
同時に命令制御部5はスタックメモリ2に書込まれたフ
ァームウェア開始アドレスをファームウェアアドレス線
12に出力し。The command control unit 5 is stopped. At this time, when a co-processor instruction is input from the CPU, the firmware start address and operand load number of the instruction are input to the stack memory 2, and the write pointer is incremented by 1. At the same time, the instruction control unit 5 outputs the firmware start address written in the stack memory 2 to the firmware address line 12.
内部ファームウェアに対して起動をかける。この時、オ
ペランドロード数は命令制御部5に保持される。その後
、順次オペランドがCPUから送られスタックメモリ2
に格納されると共に、書込みポインタは更新され、有効
スタックデータ数34は増加する。そして有効スタック
データ数34がオペランドロード数を満たすと命令制御
部5から内部ファームウェアに対してオにランドロード
終了が通知され、ファームウェアはオペランドデータ使
用可能となる。Boots up the internal firmware. At this time, the operand load number is held in the instruction control unit 5. After that, operands are sequentially sent from the CPU to the stack memory 2.
At the same time, the write pointer is updated and the number of valid stack data 34 increases. When the number of valid stack data 34 satisfies the number of operand loads, the instruction control unit 5 notifies the internal firmware of the end of the land load, and the firmware becomes ready to use the operand data.
一方スタックメモリ2に有効データがある場合には、命
令制御部5は内部ファームウェアの処理終了待ち状態に
ある。ファームウェアから処理終了のファームウェア制
御信号41が来ると、命令制御部5は次のコ・プロセッ
サ命令の開始アドレスを出力すると同時に、スティタス
信号42を使いファームウェアに対して次の命令実行開
始の起動をかけると共に、オペランドロード終了を報告
する。そのためファームウェアは直ちに次のコ・プロセ
ッサ命令を実行可能となる。On the other hand, if there is valid data in the stack memory 2, the instruction control unit 5 is in a state of waiting for the internal firmware to complete processing. When the firmware control signal 41 indicating the end of processing is received from the firmware, the instruction control unit 5 outputs the start address of the next co-processor instruction, and at the same time uses the status signal 42 to activate the firmware to start executing the next instruction. At the same time, the completion of operand loading is reported. Therefore, the firmware can immediately execute the next co-processor instruction.
次にスタックメモリ2の空きがなくなった時について説
明する。Next, the case when the stack memory 2 is full will be explained.
ビ・ノー制御部6は常時キュー制御部3が出力するデー
タ識別信号23及びスタックデータ量算出回路4が出力
する有効スタックデータ数34を入力し、コ・プロセッ
サ命令が来るたびにスタックメモリ2の空き状態を監視
している。あるコ・プロセッサ命令が入力されその時の
有効スタックデータ数34がスタックメモリ2の全アド
レスに近くなシ1次に入力されるコ・プロセッサ命令及
びその命令に付くオペランドロード数の最大数を加える
とスタックメモリ2がオーバーフローすると判断すると
、ビジー制御部6はCPUに対してピノ−信号40を出
力し1次のコ・プロセッサ命令がCPUから出力される
のを抑止する。その後コ・プロセッサ内部ファームウェ
アの処理によシ、スタックメモリ2に空きが発生した段
階でビジー信号40はオフになり、 CPUは次のコ・
プロセッサ命令を出力可能となる。The bino control unit 6 constantly inputs the data identification signal 23 outputted by the queue control unit 3 and the valid stack data number 34 outputted by the stack data amount calculation circuit 4, and inputs the data identification signal 23 outputted by the queue control unit 3 and the valid stack data number 34 outputted by the stack data amount calculation circuit 4, and inputs the data identification signal 23 outputted by the queue control unit 3 and the valid stack data number 34 outputted by the stacked data amount calculation circuit 4. Monitoring availability. If a certain co-processor instruction is input and the number of valid stack data 34 at that time is close to the total address of stack memory 2, then add the co-processor instruction input next and the maximum number of operand loads attached to that instruction. When it is determined that the stack memory 2 will overflow, the busy control unit 6 outputs a pinot signal 40 to the CPU to prevent the primary co-processor instruction from being output from the CPU. After that, when the stack memory 2 becomes empty due to processing by the co-processor's internal firmware, the busy signal 40 is turned off, and the CPU starts processing the next co-processor.
Processor instructions can be output.
最後にCPUから処理結果を外部に出力するコ・プロセ
ッサ命令が入力された時について説明する。Finally, the case where a co-processor instruction for outputting a processing result to the outside is input from the CPU will be described.
この時、処理結果の引取りはCPUが行う必要があり、
また以降のコ・プロセッサ命令のオペランドデータとし
て、今回の命令の処理結果が使用される可能性があるた
め、この命令終了時までCPUは停止する必要がある。At this time, the CPU must take over the processing results.
Furthermore, since there is a possibility that the processing result of the current instruction will be used as operand data for subsequent co-processor instructions, the CPU needs to be stopped until the end of this instruction.
命令デコード回路1は外部データ線11上のコ・プロセ
ッサ命令をデコードしているが、キュー制御部3からの
データ識別信号23によりデコード結果が有効となり、
しかもその命令が処理結果を外部に出力する命令である
場合、命令デコード回路lはビジー制御部6に対して命
令識別信号22を出力し、処理結果を外部に出力する命
令の入力を通知する。ビジー制御部6はCPUに対して
ビジー信号40を出力し、処理結果の引取り及び次のコ
・プロセッサ命令の出力を押える。その間にコ・プロセ
ッサ内部ファームウェアはスタックメモリ2に格納され
たコ・プロセッサ命令を順次実行する。命令制御部5は
ファームウェアから命令内部処理終了を示すファームウ
ェア制御信号41を毎回受取ると同時に、キュー制御部
3に対してキュー制御信号43で読出しポインタ26を
+1する。The instruction decoding circuit 1 decodes the co-processor instruction on the external data line 11, and the decoding result is validated by the data identification signal 23 from the queue control unit 3.
Moreover, if the instruction is an instruction to output a processing result to the outside, the instruction decoding circuit 1 outputs an instruction identification signal 22 to the busy control section 6 to notify the input of the instruction to output the processing result to the outside. The busy control unit 6 outputs a busy signal 40 to the CPU to suppress the receipt of processing results and the output of the next co-processor instruction. Meanwhile, the co-processor internal firmware sequentially executes the co-processor instructions stored in the stack memory 2. Each time the instruction control section 5 receives a firmware control signal 41 indicating the end of instruction internal processing from the firmware, the instruction control section 5 increments the read pointer 26 by 1 with the queue control signal 43 for the queue control section 3.
最後に格納された処理結果を外部に出力する命令の実行
を終了すると、スタックメモリ2は空になるのでスタッ
クデータ量算出回路4の出力有効スタックデータ数34
はゼロになる。この時、命令制御部5はビジー制御部6
に対してビジー制御信号37を出力し、これを受けたビ
ジー制御部6はビジー信号40をオフし、 CPUに対
して処理結果の引取シ及び次のコ・7’6セツサ命令の
入力を許可する。When the execution of the instruction to output the last stored processing result to the outside is completed, the stack memory 2 becomes empty, so the number of valid stack data output by the stack data amount calculation circuit 4 is 34.
becomes zero. At this time, the instruction control unit 5 is activated by the busy control unit 6.
Upon receiving this, the busy control unit 6 turns off the busy signal 40 and allows the CPU to receive the processing result and input the next command. do.
以上説明したように本実施例はFIFO形式のスタック
メモリを設けCPUからのコ・プロセッサに対する命令
及びオペランドを内部ファームウェア開始アドレス及び
オペランドデータのデータ形式でスタック可能りに直ち
に格納することにより。As described above, this embodiment provides a FIFO-type stack memory and immediately stores instructions and operands from the CPU to the co-processor in the data format of an internal firmware start address and operand data in a stackable manner.
CPUはコ・プロセッサ命令実行時の待ち時間なしで次
のコ・プロセッサ命令あるいはその他の命令も実行可能
となり、 CPUの処理能力が向上でき。The CPU can now execute the next co-processor instruction or other instructions without the wait time required to execute the co-processor instruction, improving the processing power of the CPU.
まだコ・プロセッサ内部のファームウェアルーチン中の
ビジー制御が不必要となり、且つ実行されるコ・プロセ
ッサ命令がすでにスタックメモリに保持されているので
空き時間なしで次のコ・プロセッサ命令が実行できその
処理能力が向上できる。Busy control in the firmware routine inside the co-processor is no longer necessary, and since the co-processor instruction to be executed is already held in the stack memory, the next co-processor instruction can be executed without any free time. Ability can be improved.
本発明は命令及びオペランドをスタック可能なFIFO
形式の前記スタックメモリに格納することによシ、現在
内部処理実行中でも次々とCPUからの命令及びオペラ
ンドを引取りCPUの処理能力を向上できる効果がある
。The present invention stores instructions and operands in a stackable FIFO.
By storing the instructions and operands in the stack memory in the above format, even when internal processing is currently being executed, instructions and operands from the CPU can be received one after another, thereby improving the processing capacity of the CPU.
第1図は本発明の1実施例の構成図、第2図は第1図の
中のスタックメモリに格納されるデータ形式図である。
記号の説明:1・・・命令デコード回路、2・・・スタ
ックメモリ、3・・・キュー制御部、4・・・スタック
データ量算出回路、5・・・命令制御部、6・・・ビジ
ー制御部、7,8・・・ドライバ、】o・・・外部アド
レス線。
11・・・外部データ線、12・・・ファームウェアア
ドレス線、13・・・内部データ線、20・・・ファー
ムウェア開始アドレス、21・・・オペランドロード数
。
22・・・命令識別信号、23・・・データ識別信号。
24・・・書込み許可信号、25・・・書込みポインタ
。
26・・・読出しポインタ、31・・・ファームウェア
開始アドレス、32・・・オペランドロード数、33・
・・オペラ/ドデータ、34・・・有効スタックデータ
数。
35.36・・・出力許可信号、37・・・ビジー制御
信号、40・・・ビジー信号、41・・・ファームウェ
ア制御信号、42・・・スティタス信号、43・・・キ
ュー制御信号。
第2図FIG. 1 is a block diagram of one embodiment of the present invention, and FIG. 2 is a diagram of the data format stored in the stack memory in FIG. Explanation of symbols: 1... Instruction decoding circuit, 2... Stack memory, 3... Queue control unit, 4... Stack data amount calculation circuit, 5... Instruction control unit, 6... Busy Control unit, 7, 8...driver, ]o...external address line. 11... External data line, 12... Firmware address line, 13... Internal data line, 20... Firmware start address, 21... Operand load number. 22... Command identification signal, 23... Data identification signal. 24...Write permission signal, 25...Write pointer. 26... Read pointer, 31... Firmware start address, 32... Operand load number, 33...
... Opera/do data, 34... Number of valid stack data. 35.36... Output permission signal, 37... Busy control signal, 40... Busy signal, 41... Firmware control signal, 42... Status signal, 43... Queue control signal. Figure 2
Claims (1)
コ・プロセッサ専用演算を実行するコ・プロセッサにお
いて、外部データ線を介して前記中央制御装置から送ら
れるコ・プロセッサ命令を解読し該命令が外部の主記憶
装置等に実行結果を出力する命令であるか否かを判断し
て出力すると共に該命令におけるコ・プロセッサ内部の
ファームウェア開始アドレスとオペランドのロード数と
を出力する命令デコード回路と、命令入力時には前記命
令デコード回路が出力するファームウェア開始アドレス
とオペランドのロード数とを、またオペランドリード時
には直接外部データ線上のオペランドデータをそれぞれ
の識別信号を付加しFIFO形式で格納するリードライ
トが同時に可能なスタックメモリと、前記中央制御装置
からのコ・プロセッサに対する命令及びオペランドを監
視し命令とオペランドの識別及び前記スタックメモリの
ポインタの更新と書込み制御を行うキュー制御部と、該
キュー制御部の前記スタックメモリに対する書込みポイ
ンタと読出しポインタとの差を出力するスタックデータ
量算出回路と、ファームウェアからの制御線と前記スタ
ックメモリが出力する識別信号及びオペランドロード数
と前記スタックデータ量算出回路の出力とを入力し前記
スタックメモリからファームウェア開始アドレスをファ
ームウェアアドレス線にまたオペランドデータを内部デ
ータ線に出力し前記スタックメモリの読出しポインタの
更新の指示及び外部の主記憶装置等に結果を出力する命
令のファームウェア内部処理終了を報告する命令制御部
と、前記スタックデータ量算出回路と前記命令デコード
回路と前記命令制御部との各出力を入力し前記スタック
メモリの空きがなくなった時または外部に結果を出力す
る命令時前記中央制御装置に対してビジー信号を送出し
前記スタックメモリに空きが生じた時又は外部に結果を
出力可能時にビジー信号を止めるビジー制御部とを含む
ことを特徴とするコ・プロセッサ。1. In a co-processor that is connected to a central control unit and executes a co-processor-dedicated operation on behalf of the central control unit, the co-processor decodes a co-processor instruction sent from the central control unit via an external data line and reads the instruction. an instruction decoding circuit that determines and outputs whether or not the instruction is an instruction that outputs an execution result to an external main storage device, etc., and also outputs a firmware start address within the co-processor and the number of loaded operands for the instruction; At the time of inputting an instruction, the firmware start address and the number of loaded operands output by the instruction decoding circuit are simultaneously read and written, and when reading an operand, the operand data directly on the external data line is stored in FIFO format with respective identification signals added. a queue controller that monitors instructions and operands from the central controller to the coprocessor, identifies instructions and operands, and controls updating and writing of pointers in the stack memory; a stack data amount calculation circuit that outputs the difference between a write pointer and a read pointer for the stack memory; a control line from firmware, an identification signal outputted by the stack memory, the number of operand loads, and an output of the stack data amount calculation circuit; and outputs the firmware start address from the stack memory to the firmware address line and the operand data to the internal data line, and outputs an instruction to update the read pointer of the stack memory and outputs the result to an external main storage device, etc. inputs each output from an instruction control unit that reports the end of internal processing of the software, the stack data amount calculation circuit, the instruction decoding circuit, and the instruction control unit, and outputs the result to the outside when the stack memory is full or a busy control unit that sends a busy signal to the central control unit when an instruction is given to the central control unit, and stops the busy signal when the stack memory becomes free or when it is possible to output a result to the outside. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20886686A JPS6365528A (en) | 1986-09-06 | 1986-09-06 | Coprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20886686A JPS6365528A (en) | 1986-09-06 | 1986-09-06 | Coprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6365528A true JPS6365528A (en) | 1988-03-24 |
Family
ID=16563415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20886686A Pending JPS6365528A (en) | 1986-09-06 | 1986-09-06 | Coprocessor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6365528A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02109128A (en) * | 1988-10-18 | 1990-04-20 | Yamaha Corp | Computer system |
JPH02227769A (en) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | Data processing system |
-
1986
- 1986-09-06 JP JP20886686A patent/JPS6365528A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02109128A (en) * | 1988-10-18 | 1990-04-20 | Yamaha Corp | Computer system |
JPH02227769A (en) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | Data processing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5701493A (en) | Exception handling method and apparatus in data processing systems | |
EP0455345A2 (en) | Programmable controller | |
JPH02144630A (en) | Data processor | |
KR20130012126A (en) | Apparatus and method for handling exception events | |
JPS6040067B2 (en) | Distributed control multiprocessing system | |
US4821172A (en) | Apparatus for controlling data transfer between storages | |
US5367649A (en) | Programmable controller | |
EP2054800A2 (en) | Flash memory access circuit | |
US20030037227A1 (en) | Processor enabling exception handling to be set by program | |
JPS6365528A (en) | Coprocessor | |
US4816992A (en) | Method of operating a data processing system in response to an interrupt | |
JPH09198257A (en) | Program executing method and program executing device using this method | |
JPH04241032A (en) | System call execution device | |
JP3539984B2 (en) | Processor | |
JPH01297727A (en) | System for controlling normalization of floating point arithmetic operation | |
JP4631442B2 (en) | Processor | |
JPS59218569A (en) | Microcomputer | |
US9323521B2 (en) | Decimal floating-point processor | |
JP3139310B2 (en) | Digital signal processor | |
JP2883488B2 (en) | Instruction processing unit | |
JPH0447851B2 (en) | ||
JP2965045B2 (en) | Semiconductor integrated circuit device | |
JP2883489B2 (en) | Instruction processing unit | |
JP3127737B2 (en) | Digital signal processor | |
JPH06236342A (en) | Dma controller |