JPH052485A - Pipeline control system - Google Patents

Pipeline control system

Info

Publication number
JPH052485A
JPH052485A JP15434091A JP15434091A JPH052485A JP H052485 A JPH052485 A JP H052485A JP 15434091 A JP15434091 A JP 15434091A JP 15434091 A JP15434091 A JP 15434091A JP H052485 A JPH052485 A JP H052485A
Authority
JP
Japan
Prior art keywords
instruction
exception
signal line
instruction queue
queue
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
Application number
JP15434091A
Other languages
Japanese (ja)
Inventor
Makoto Higano
誠 日向野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP15434091A priority Critical patent/JPH052485A/en
Publication of JPH052485A publication Critical patent/JPH052485A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To construct a pipeline control system to make fast the exception processing by making the subsequent instruction remained in a pipeline into an execution object by a hardware arithmetic circuit when the exception occurs. CONSTITUTION:In a pipeline type information processor, the exception detection by operation is performed, and at the time of detecting the exception, the instruction to prepare the exception is read by hardware, emulation is performed (steps (b) and (d)), and when the subsequent instruction remains at the instruction cue, the subsequent instruction is read and re-arranged in the memory (steps (e) and (f)). Subsequently, the re-arranged instruction is read to the instruction cue in the same way as the usual instruction execution, and performed by using a hardware arithmetic circuit (step (g)). Thus, the high-speed of the exception processing is realized.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、高速処理を実現するパ
イプライン制御方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a pipeline control system for realizing high speed processing.

【0002】[0002]

【従来の技術】高速演算を実現するためにパイプライン
制御を行うことは常套手段である。パイプライン制御と
は命令のフェッチと実行をパイプライン式に並列処理を
行うものである。
2. Description of the Related Art It is a conventional means to perform pipeline control in order to realize high speed calculation. Pipeline control is to perform parallel processing in a pipeline manner for fetching and executing instructions.

【0003】従来、パイプライン制御式情報処理装置に
おいて、演算命令によって例外が発生した場合、割り込
みによってパイプラインを止め、ソフトウェアによって
パイプ内の命令を読み出し、例外を発生した命令と、そ
の後続命令のエミュレーションを行っていたものであ
る。図3は従来の例外処理のための動作フローチャート
を示したものである。
In the conventional pipeline control type information processing apparatus, when an exception occurs due to an operation instruction, the pipeline is stopped by an interrupt, the instruction in the pipe is read out by software, and the instruction causing the exception and its succeeding instruction. It was emulation. FIG. 3 shows an operation flowchart for conventional exception handling.

【0004】[0004]

【発明が解決しようとする課題】上記した従来技術に従
えば、例外発生時には、パイプライン内部にある例外を
発生させた命令とその後続の命令の実行を、全てソフト
ウェアによるエミュレーションで処理していたため、例
外処理にかなりの時間を要していた。
According to the above prior art, when an exception occurs, the execution of the instruction causing the exception inside the pipeline and the subsequent instruction are all processed by software emulation. , It took quite a while to handle the exception.

【0005】例を挙げると、ハードウェア演算回路によ
って拡張精度の演算を実行することができない情報処理
装置において拡張精度演算命令を実行する場合に例外が
発生する。そのとき、例外を発生した命令はソフトウェ
アによってエミュレーションを行う。その例外を発生し
た命令の後続の命令が命令キューの内部にあるとき、そ
の命令がハードウェア演算回路で実行可能な命令であっ
た場合でもソフトウェアエミュレーションを行ってい
た。これが例外処理を遅らせる大きな原因となってい
た。
As an example, an exception occurs when an extended precision arithmetic operation instruction is executed in an information processing device in which a hardware arithmetic circuit cannot execute an extended precision arithmetic operation. At that time, the instruction that caused the exception is emulated by software. When the instruction subsequent to the instruction that generated the exception is in the instruction queue, software emulation is performed even if the instruction is an instruction that can be executed by the hardware arithmetic circuit. This was a major cause of delaying exception handling.

【0006】本発明は上記事情に鑑みてなされたもので
あり、ハードウェアによる演算命令の実行が不可能な例
外が発生した場合に、パイプライン内に残されていた後
続命令をハードウェア演算回路による実行対象とするこ
とにより例外処理の高速化を図るようにしたパイプライ
ン制御方式を提供することを目的とする。
The present invention has been made in view of the above circumstances, and when an exception in which an arithmetic instruction cannot be executed by hardware occurs, the subsequent instruction left in the pipeline is processed by the hardware arithmetic circuit. It is an object of the present invention to provide a pipeline control method that speeds up exception processing by making it an execution target.

【0007】[0007]

【課題を解決するための手段】本発明は、メモリから読
み出された命令を保持する命令キューを有し、命令フェ
ッチと演算実行を並列実行するパイプライン制御式情報
処理装置において、命令キューから取り出された命令に
従う演算による例外を検出する例外検出手段と、例外を
発生した命令をソフトウェアによって読み出しエミュレ
ーションを実行する手段と、例外が検出された場合に命
令キューに残されている後続命令を取り出してメモリ上
に再配置する命令再配置手段とを具備し、命令再配置手
段によってメモリ上に再配置された命令を命令キューに
読み出して実行するようにしたことを特徴とする。
According to the present invention, there is provided a pipeline control type information processing apparatus having an instruction queue for holding an instruction read from a memory and executing instruction fetch and operation execution in parallel from the instruction queue. Exception detection means for detecting an exception due to an operation according to the fetched instruction, means for reading the instruction causing the exception by software and executing emulation, and fetching the subsequent instruction left in the instruction queue when the exception is detected And an instruction relocation unit for relocating the instruction to the memory, and the instruction relocated by the instruction relocation unit to the instruction queue is read and executed.

【0008】[0008]

【作用】パイプライン制御式の情報処理装置において、
演算によって例外が発生した場合に、これを例外検出手
段にて検出し、例外を発生した命令よりも先に実行すべ
き命令を実行した後にパイプラインを止め、例外を発生
させた命令と後続する命令をソフトウェアによって読み
出し、例外を発生した命令をエミュレーションした後
に、その後続の命令をハードウェア演算回路の演算機能
を使用して、通常の命令実行と同様に演算命令を実行す
る。
In the pipeline control type information processing device,
When an exception occurs due to an operation, this is detected by the exception detecting means, the pipeline is stopped after executing the instruction to be executed before the instruction causing the exception, and the instruction causing the exception is succeeded. After the instruction is read by software and the instruction in which the exception has occurred is emulated, the subsequent instruction is executed by using the arithmetic function of the hardware arithmetic circuit in the same manner as the normal instruction execution.

【0009】即ち本発明によれば、例外が発生した場合
には、例外を発生した命令はソフトウェアによってエミ
ュレーションを実行し、その後続の命令はソフトウェア
によってメモリ内部に再び格納し、通常の命令実行と同
様に命令キューに読み込み、そしてハードウェア演算回
路を使用して演算を実行することによって、例外処理の
高速化を実現する。
That is, according to the present invention, when an exception occurs, the instruction that caused the exception executes emulation by software, and the subsequent instruction is stored again in the memory by software, and normal instruction execution and Similarly, by loading the instruction queue and using the hardware operation circuit to execute the operation, the exception processing can be speeded up.

【0010】このように例外を発生した命令の後続の命
令は、ハードウェアの演算機能によって命令実行を行
う。その結果、特に、例外を発生した命令の後続の命令
が命令キュー(パイプライン内部)に多数存在する場合
には、ソフトウェアによるエミュレーションによってそ
れら後続命令を実行する従来方式よりも、命令実行速度
が著しく向上する。このことにより処理性能の向上がは
かれる。
Instructions subsequent to the instruction in which the exception has occurred are executed by the arithmetic function of the hardware. As a result, especially when a large number of instructions subsequent to the instruction that generated the exception are present in the instruction queue (inside the pipeline), the instruction execution speed is significantly higher than that of the conventional method in which the subsequent instructions are executed by software emulation. improves. This improves the processing performance.

【0011】[0011]

【実施例】図1は本発明の実施例を示すブロック図であ
る。図において、符号1はメモリであり、プログラム、
データ等を格納する。符号2は入出力ポート(I/Oポ
ート)であり、ユーザーが使用する入出力装置を接続す
る。符号3はメモリ制御回路であり、アドレス線30
1、データ線302を介してメモリ1、入出力ポート2
に対するデータの入出力を制御する。符号303は信号
線であり、メモリ制御回路3がメモリ1より読み出した
命令を、命令キューに送出するのに用いられる。符号4
は命令キュー制御回路であり、命令キューのデータの入
力、保持に関する制御を行う。メモリアクセスの優先度
制御等も、命令キュー制御回路4が行う。
1 is a block diagram showing an embodiment of the present invention. In the figure, reference numeral 1 is a memory, a program,
Stores data etc. Reference numeral 2 is an input / output port (I / O port) for connecting an input / output device used by the user. Reference numeral 3 is a memory control circuit, and the address line 30
1, memory 1 via data line 302, input / output port 2
Control the input and output of data to and from. Reference numeral 303 is a signal line, which is used by the memory control circuit 3 to send an instruction read from the memory 1 to an instruction queue. Code 4
Is an instruction queue control circuit, which controls inputting and holding of data in the instruction queue. The instruction queue control circuit 4 also controls the priority of the memory access.

【0012】符号50は第1の命令キューであり、信号
線303を通してメモリ制御回路3より出力されたデー
タを入力し保持する。信号線303を転送されるデータ
を入力するかしないかは、信号線401を通して命令キ
ュー制御回路4によって制御される。
Reference numeral 50 is a first instruction queue, which receives and holds the data output from the memory control circuit 3 through the signal line 303. Whether or not to input the data transferred through the signal line 303 is controlled by the instruction queue control circuit 4 through the signal line 401.

【0013】符号51は第2の命令キューであり、信号
線501を通して命令キュー50より出力されたデータ
を入力し保持する。信号線501のデータを入力するか
しないかは、信号線405を通して命令キュー制御回路
4によって制御される。この命令キュー51は、整数演
算、ロード/ストア用の命令のキューである。
Reference numeral 51 is a second instruction queue, which receives and outputs the data output from the instruction queue 50 through the signal line 501. Whether the data on the signal line 501 is input or not is controlled by the instruction queue control circuit 4 through the signal line 405. The instruction queue 51 is a queue of instructions for integer arithmetic and load / store.

【0014】符号52は第3の命令キューであり、信号
線511を通して命令キュー51より出力されたデータ
を入力し保持する。信号線511のデータを入力するか
しないかは、信号線406を通して命令キュー制御回路
4によって制御される。
Reference numeral 52 is a third instruction queue, which inputs and holds the data output from the instruction queue 51 through the signal line 511. Whether the data on the signal line 511 is input or not is controlled by the instruction queue control circuit 4 through the signal line 406.

【0015】符号60は命令デコード回路であり、信号
線501を通して命令キュー50より出力されたデータ
を入力しデコード(解折)する。命令デコード回路60
のデコード情報は、信号線601を介して命令キュー制
御回路4へ送出される。命令キュー制御回路4はこの情
報を使用して命令キューの制御を行う。
Reference numeral 60 is an instruction decoding circuit, which inputs the data output from the instruction queue 50 through a signal line 501 and decodes (breaks) the data. Instruction decode circuit 60
The decode information of is sent to the instruction queue control circuit 4 via the signal line 601. The instruction queue control circuit 4 uses this information to control the instruction queue.

【0016】符号71は第1の浮動小数点命令キューで
あり、浮動小数点演算命令を信号線501を通して、命
令キュー50より入力する。入力、保持の制御は、信号
線402を介して、命令キュー制御回路4によって行わ
れる。
Reference numeral 71 is a first floating point instruction queue, and a floating point operation instruction is input from the instruction queue 50 through a signal line 501. Control of input and holding is performed by the instruction queue control circuit 4 via the signal line 402.

【0017】符号72は第2の浮動小数点命令キューで
あり、浮動小数点演算命令を信号線711を通して、浮
動小数点命令キュー71より入力する。入力、保持の制
御は、信号線403を介して、命令キュー制御回路4に
よって行われる。
Reference numeral 72 is a second floating point instruction queue, and a floating point operation instruction is input from the floating point instruction queue 71 through a signal line 711. Control of input and holding is performed by the instruction queue control circuit 4 via the signal line 403.

【0018】符号73は第3の浮動小数点命令キューで
あり、浮動小数点演算命令を信号線721を通して、命
令キュー72より入力する。入力、保持の制御は、信号
線404を介して、命令キュー制御回路4によって行わ
れる。
Reference numeral 73 is a third floating point instruction queue, which inputs a floating point operation instruction from the instruction queue 72 through a signal line 721. Control of input and holding is performed by the instruction queue control circuit 4 via the signal line 404.

【0019】符号80は整数演算&ロード/ストア制御
回路であり、命令キュー51の出力を信号線511よ
り、命令キュー52の出力を信号線521より、それぞ
れ受け取り、その情報に基づいて整数演算またはロード
/ストアの制御を行う。命令キュー51より受け取った
情報より、必要なレジスタをレジスタファイル81中よ
り読み出す。その指定は、信号線803によって行い、
このレジスタのデータは信号線804を通して受け取
る。
Reference numeral 80 is an integer operation & load / store control circuit, which receives the output of the instruction queue 51 from the signal line 511 and the output of the instruction queue 52 from the signal line 521, and performs an integer operation or Control load / store. The necessary register is read from the register file 81 based on the information received from the instruction queue 51. The designation is made by the signal line 803,
The data in this register is received through the signal line 804.

【0020】整数演算&ロード/ストア制御回路80で
の演算(演算命令の実行)は、命令キュー51の命令が
命令キュー52に制御が移ることに同期して行われる。
その結果は命令キュー52の情報に基づいてレジスタフ
ァイル81に格納される。その結果格納レジスタは信号
線805によって指定され、ライトデータはデータ線8
06を通して格納される。
The arithmetic operation (execution of arithmetic instruction) in the integer arithmetic & load / store control circuit 80 is performed in synchronization with the transfer of control of the instruction of the instruction queue 51 to the instruction queue 52.
The result is stored in the register file 81 based on the information in the instruction queue 52. The result storage register is designated by the signal line 805, and the write data is stored in the data line 8
It is stored through 06.

【0021】一方、ロード命令の実行は、整数演算&ロ
ード/ストア制御回路80が命令キュー52の情報に基
づいて制御信号線801に制御信号を出力し、データ線
802より受け取ったデータを介して行う。このデータ
線802より受け取られるデータは、制御信号線801
の情報に基づきメモリ制御回路3によってメモリ1から
読み出されるものである。
On the other hand, in executing the load instruction, the integer operation & load / store control circuit 80 outputs a control signal to the control signal line 801 based on the information of the instruction queue 52, and the data received from the data line 802 is used. To do. The data received from the data line 802 is the control signal line 801.
The information is read from the memory 1 by the memory control circuit 3 on the basis of the above information.

【0022】またストア命令の実行は、整数演算&ロー
ド/ストア制御回路80が命令キュー51の情報に基づ
いて、信号線804よりデータを受け取りデータ線80
2に出力することで行う。信号線804のデータは信号
線803の指定によりレジスタファイル81から出力さ
れるものである。メモリ制御回路3には信号線801を
介して制御情報が出力される。メモリ制御回路3はその
情報に基づいて信号線802のデータのメモリライトを
実行する。
In executing the store instruction, the integer operation & load / store control circuit 80 receives data from the signal line 804 based on the information in the instruction queue 51 and the data line 80.
It outputs by outputting to 2. The data on the signal line 804 is output from the register file 81 according to the designation of the signal line 803. Control information is output to the memory control circuit 3 via the signal line 801. The memory control circuit 3 executes the memory write of the data of the signal line 802 based on the information.

【0023】符号81はレジスタファイルであり、各種
演算はこのレジスタファイル81に対して行われる。ロ
ード/ストアは、このレジスタファイル81と、メモリ
1または入出力ポート2との間で行われる。
Reference numeral 81 is a register file, and various calculations are performed on this register file 81. Loading / storing is performed between this register file 81 and the memory 1 or the input / output port 2.

【0024】符号82は第1の浮動小数点演算回路であ
り、浮動小数点命令キュー71より信号線711を介し
て情報を受け取り浮動小数点に関する演算を行う。浮動
小数点演算回路82は制御信号線821を通して演算に
必要なレジスタファイル81を指定し、データ線822
を通してレジスタファイル81よりそのデータを浮け取
る。
Reference numeral 82 is a first floating-point arithmetic circuit, which receives information from the floating-point instruction queue 71 via the signal line 711 and performs arithmetic on the floating-point. The floating point arithmetic circuit 82 specifies the register file 81 required for arithmetic operation through the control signal line 821, and the data line 822.
The data is floated from the register file 81 through.

【0025】符号83は第2の浮動小数点演算回路であ
り、浮動小数点演算回路82より信号線820を通し
て、また浮動小数点命令キュー72より信号線721を
通して、それぞれ情報を受け取り、浮動小数点演算を浮
動小数点演算回路82より引き継いで実行する。
Reference numeral 83 is a second floating-point arithmetic circuit, which receives information from the floating-point arithmetic circuit 82 through the signal line 820 and from the floating-point instruction queue 72 through the signal line 721, and performs floating-point arithmetic on the floating-point. The processing is carried over from the arithmetic circuit 82.

【0026】符号84は第3の浮動小数点演算回路であ
り、浮動小数点演算回路83より信号線830を通し
て、また浮動小数点命令キュー73より信号線731を
通して、それぞれ情報を受け取り、浮動小数点演算を浮
動小数点演算回路83より引き継いで実行する。
Reference numeral 84 is a third floating-point arithmetic circuit, which receives information from the floating-point arithmetic circuit 83 through the signal line 830 and from the floating-point instruction queue 73 through the signal line 731, and performs floating-point arithmetic on the floating-point. It is carried over from the arithmetic circuit 83.

【0027】以上の浮動小数点演算回路82〜84の3
段の演算器によって浮動小数点演算を完了する。演算結
果は信号線841によって指定されたレジスタファイル
81にデータ線842を通して格納される。
3 of the floating point arithmetic circuits 82 to 84
The floating point arithmetic is completed by the arithmetic unit of the stage. The calculation result is stored in the register file 81 designated by the signal line 841 through the data line 842.

【0028】符号90は例外検出回路であり、浮動小数
点演算回路84が生成した演算に関する情報を、信号線
840を介して受け取り、その情報に基づいて例外を検
出する。符号901は信号線であり、例外検出回路90
が例外を検出した際に、その情報を命令キュー制御回路
4へ伝達する信号が転送される。
Reference numeral 90 is an exception detection circuit, which receives the information on the operation generated by the floating point operation circuit 84 via the signal line 840 and detects the exception based on the information. Reference numeral 901 is a signal line, and the exception detection circuit 90
When detects an exception, the signal transmitting the information to the instruction queue control circuit 4 is transferred.

【0029】図2は本発明実施例の動作概略を示すフロ
ーチャートである。図において、STARTはプログラ
ムの開始を示す。入出力ポート2から入力があるまでは
プログラムは起動しない。入出力ポート2からメモリ制
御回路3に入力がなされることによって処理が開始さ
れ、制御はステップaに移る。ステップaは命令を実行
するルーチンであり、メモリ1から命令をリードしてパ
イプラインに取り込み、その実行を行う。
FIG. 2 is a flow chart showing the outline of the operation of the embodiment of the present invention. In the figure, START indicates the start of the program. The program does not start until there is input from I / O port 2. Processing is started by inputting data from the input / output port 2 to the memory control circuit 3, and the control proceeds to step a. Step a is a routine for executing an instruction, which reads the instruction from the memory 1 and fetches it into the pipeline and executes it.

【0030】ステップbは例外が発生したか否かを判断
するルーチンであり、例外を検出した場合、例外処理の
ルーチンが起動される。この例外は、図1に示す浮動小
数点演算回路82〜84が例えば単精度、倍精度の浮動
小数点演算しか扱えないのに拡張精度の浮動小数点演算
命令を実行した場合に発生する。例外が発生した場合に
は、制御はステップdに移る。例外が発生しない場合、
処理はステップcに移る。
Step b is a routine for judging whether or not an exception has occurred. When an exception is detected, the exception processing routine is started. This exception occurs when the floating-point arithmetic circuits 82 to 84 shown in FIG. 1 can execute extended-precision floating-point arithmetic instructions, for example, although they can handle only single-precision and double-precision floating-point arithmetic operations. If an exception occurs, control transfers to step d. If no exception occurs,
The process proceeds to step c.

【0031】ステップcはプログラムが終了したか否か
を判断するルーチンであり、ステップaにて読み出され
た命令がプログラムの終了を示す命令であれば、情報処
理装置はその処理を停止する。そうでなければ、次の命
令を実行するために、ステップaへ戻る。
Step c is a routine for judging whether or not the program has ended. If the instruction read in step a is an instruction indicating the end of the program, the information processing apparatus stops the processing. If not, return to step a to execute the next instruction.

【0032】ステップdは例外を発生した命令を実行す
るルーチンであり、ソフトウェアは例外処理のルーチン
を実行し、ソフトウェアによって例外を発生した命令
(例えば拡張精度の浮動小数点演算命令)をエミュレー
ションする。
Step d is a routine for executing the instruction in which the exception has occurred, and the software executes the exception processing routine to emulate the instruction in which the exception has occurred (for example, an extended precision floating point arithmetic instruction).

【0033】ステップeは命令キューが空かどうかを判
断するルーチンであり、例外が発生した命令の後続命令
をソフトウェアによって読み出し、その命令が有効であ
るかどうかを判別する。
Step e is a routine for judging whether or not the instruction queue is empty. The instruction following the instruction in which the exception has occurred is read by software and it is judged whether or not the instruction is valid.

【0034】ステップfは命令キューから命令を読み出
してメモリ上に再格納するルーチンであり、例外を発生
させた命令の後続の命令がステップeの処理において有
効であることが判別された場合に、その命令をメモリ1
上に再格納し、その後にこの命令を命令キューに読み出
して、ハードウェア演算回路(整数演算&ロード/スト
ア制御回路80、浮動小数点演算回路82〜84)の演
算機能を使用して実行できる状態にする。
Step f is a routine for reading an instruction from the instruction queue and re-storing it in the memory, and when it is determined that the instruction following the instruction that caused the exception is valid in the processing of step e, Memory 1
A state in which the instruction is re-stored in the above and then this instruction is read into the instruction queue and can be executed by using the arithmetic function of the hardware arithmetic circuit (integer arithmetic & load / store control circuit 80, floating point arithmetic circuits 82 to 84). To

【0035】ステップgはメモリ1上に再配置した命令
を読み出して実行するステップであり、ステップfにて
メモリ1上に格納された命令を通常の命令実行と同様に
読み出して実行する。これらの命令の実行が終わった場
合、または例外を発生させた命令の後続命令が命令キュ
ーに存在しなかった場合は、ステップcに制御が移る。
STOPは処理の終了を示す。
Step g is a step of reading and executing the instruction rearranged in the memory 1, and reading and executing the instruction stored in the memory 1 in step f in the same manner as normal instruction execution. When the execution of these instructions is completed, or when the instruction subsequent to the instruction that caused the exception does not exist in the instruction queue, control is transferred to step c.
STOP indicates the end of processing.

【0036】以下、本発明実施例の動作について説明す
る。まず始めに、装置全体は待ちの状態にある。このと
き、入出力ポート2より動作開始の入力があると、信号
線302を通してメモリ制御回路3に動作開始の情報が
伝えられる。
The operation of the embodiment of the present invention will be described below. First of all, the entire device is in a waiting state. At this time, if an operation start input is input from the input / output port 2, the operation start information is transmitted to the memory control circuit 3 through the signal line 302.

【0037】メモリ制御回路3は待ちの状態にあると
き、常に信号線301を通して入出力ポート2を制御
し、この動作開始の情報が信号線302を通して入力さ
れることを待っている。動作開始の入力があると、メモ
リ制御回路3は命令のリードを開始する。
When in the standby state, the memory control circuit 3 always controls the input / output port 2 through the signal line 301, and waits for the information for starting the operation to be input through the signal line 302. When there is an operation start input, the memory control circuit 3 starts reading an instruction.

【0038】次にメモリ制御回路3は、メモリ1から信
号線301を通して命令を読み出し、同命令およびその
命令アドレスを信号線303を通して命令キュー50へ
送信する。同時にメモリ制御回路3は、信号線304を
通して命令キュー制御回路4へ制御信号を送付する。命
令キュー制御回路4は、信号線401を通して命令キュ
ー50に対して命令、アドレスをラッチする制御を行
う。
Next, the memory control circuit 3 reads an instruction from the memory 1 through the signal line 301, and transmits the instruction and its instruction address to the instruction queue 50 through the signal line 303. At the same time, the memory control circuit 3 sends a control signal to the instruction queue control circuit 4 through the signal line 304. The instruction queue control circuit 4 controls the instruction queue 50 through the signal line 401 to latch the instruction and the address.

【0039】命令キュー50に格納された命令は、信号
線501へ送付される。命令デコーダ60はこの命令を
デコードし、そのデコード情報を信号線601を通して
命令キュー制御回路4へ送付する。
The command stored in the command queue 50 is sent to the signal line 501. The instruction decoder 60 decodes this instruction and sends the decode information to the instruction queue control circuit 4 through the signal line 601.

【0040】命令キュー制御回路4は、信号線601の
情報をもとに、信号線501に送られた命令が浮動小数
点演算命令であれば、信号線501の情報を浮動小数点
命令キュー71にラッチするように信号線402を通し
て制御を行う。また浮動小数点演算命令でなければ、命
令キュー制御回路4は、信号線501の情報を命令キュ
ー51にラッチするように信号線405を通して制御を
行う。
Based on the information on the signal line 601, the instruction queue control circuit 4 latches the information on the signal line 501 in the floating point instruction queue 71 if the instruction sent to the signal line 501 is a floating point arithmetic instruction. Control is performed through the signal line 402 so as to If it is not a floating point arithmetic instruction, the instruction queue control circuit 4 controls through the signal line 405 so that the information on the signal line 501 is latched in the instruction queue 51.

【0041】ところで、信号線501を転送される命令
が浮動小数点演算命令であった場合、浮動小数点命令キ
ュー71にラッチされた情報は、信号線711を通して
浮動小数点演算回路82および(浮動小数点命令キュー
71の)次の段の命令キュー72にラッチされる。この
浮動小数点命令キュー72のラッチは、命令キュー制御
回路4により信号線403を通して制御される。
By the way, when the instruction transferred through the signal line 501 is a floating point operation instruction, the information latched in the floating point instruction queue 71 is transferred to the floating point operation circuit 82 and the (floating point instruction queue) through the signal line 711. It is latched in the instruction queue 72 of the next stage (of 71). The latch of the floating point instruction queue 72 is controlled by the instruction queue control circuit 4 through a signal line 403.

【0042】次に、浮動小数点命令キュー72の情報は
信号線721に出力される。この信号線721の情報
は、信号線404を通して行われる命令キュー制御回路
4の制御によって、(浮動小数点命令キュー72の)次
の段(最終段)の命令キュー73にラッチされる。
Next, the information in the floating point instruction queue 72 is output to the signal line 721. The information on the signal line 721 is latched in the instruction queue 73 of the next stage (final stage) of the floating point instruction queue 72 under the control of the instruction queue control circuit 4 performed via the signal line 404.

【0043】浮動小数点命令キュー73の情報は信号線
731に出力される。浮動小数点演算回路82,83,
84には、信号線711,721,731の情報がそれ
ぞれ入力される。浮動小数点演算回路82,83,84
は、信号線711,721,731を転送される情報
(浮動小数点演算命令)に基づいて演算を行う。
Information in the floating point instruction queue 73 is output to the signal line 731. Floating point arithmetic circuits 82, 83,
Information of the signal lines 711, 721, and 731 is input to 84, respectively. Floating point arithmetic circuits 82, 83, 84
Performs an operation based on the information (floating point operation instruction) transferred through the signal lines 711, 721, 731.

【0044】一方、信号線501を転送される命令が浮
動小数点演算命令でなかった場合、命令キュー51にラ
ッチされた情報は、信号線511を通して次の段の命令
キュー52にラッチされる。この命令キュー52のラッ
チは、命令キュー制御回路4により信号線406を通し
て制御される。
On the other hand, when the instruction transferred through the signal line 501 is not a floating point operation instruction, the information latched in the instruction queue 51 is latched in the instruction queue 52 of the next stage through the signal line 511. The latch of the instruction queue 52 is controlled by the instruction queue control circuit 4 through the signal line 406.

【0045】次に、命令キュー52の情報は、信号線5
21に出力される。信号線511および521に出力さ
れた情報は、整数演算&ロード/ストア制御回路80に
入力され、ここで整数演算または、ロード/ストアファ
ンクションが実行される。
Next, the information in the instruction queue 52 is the signal line 5
21 is output. The information output to the signal lines 511 and 521 is input to the integer operation & load / store control circuit 80, where the integer operation or load / store function is executed.

【0046】本発明実施例にて示される情報処理装置は
パイプライン構造をとっており、浮動小数点演算回路8
4による演算結果が例外とならない限り、上記の動作は
並行して実行される。
The information processing apparatus shown in the embodiment of the present invention has a pipeline structure, and the floating point arithmetic circuit 8
The above operations are executed in parallel unless the operation result of 4 is an exception.

【0047】即ち本実施例では、浮動小数点演算命令が
3命令連続して命令キュー50に入力された場合には、
3段の浮動小数点命令キュー71,72,73にそれぞ
れ入力順に浮動小数点演算命令が格納される。浮動小数
点演算命令によって例外が発生しない場合、これらの動
作は継続する。但し、レジスタファイル81中の同一レ
ジスタが指定された場合、または、メモリ1からの命令
リードと、ロード/ストア命令の実行によりメモリアク
セスが同時に行われた場合は本来先に実行すべき動作が
行われる。
That is, in this embodiment, when three floating-point operation instructions are continuously input to the instruction queue 50,
Floating-point arithmetic instructions are stored in the three-stage floating-point instruction queues 71, 72, 73 in the order of input. If the floating point operation instruction does not cause an exception, these operations continue. However, when the same register in the register file 81 is designated, or when memory access is performed at the same time by reading an instruction from the memory 1 and executing a load / store instruction, the operation that should be executed first is performed. Be seen.

【0048】そのための制御は、命令キュー制御回路4
により、信号線304,501,601,511,52
1,711,721,731を通して入力した各種情報
をもとに、各命令キュー(50〜52,71〜73)お
よびメモリ制御回路3に対して行われる。例えば、命令
キュー52にロード命令があり、それを実行する場合に
は、メモリ制御回路3はロードの動作を行ったのち、命
令キュー50への新しい命令の読み込みを実行する。
The control for that is performed by the instruction queue control circuit 4
Signal lines 304, 501, 601, 511, 52
This is performed for each instruction queue (50 to 52, 71 to 73) and the memory control circuit 3 based on various information input through 1, 711, 721 and 731. For example, when there is a load instruction in the instruction queue 52 and it is executed, the memory control circuit 3 performs a load operation and then reads a new instruction into the instruction queue 50.

【0049】一方、例外検出回路90は例外の発生を監
視している。即ち例外検出回路90は、浮動小数点演算
回路84の出力信号線840を常にモニタしており、例
外を検出した場合(図2ステップb)には、その情報が
信号線901を通して命令キュー制御回路4に伝えられ
る。これによって命令キュー制御回路4は例外処理を行
うべく、以下に述べるキューの制御を行う。
On the other hand, the exception detection circuit 90 monitors the occurrence of an exception. That is, the exception detection circuit 90 constantly monitors the output signal line 840 of the floating point arithmetic circuit 84, and when an exception is detected (step b in FIG. 2), the information is sent through the signal line 901 to the instruction queue control circuit 4. Be transmitted to. As a result, the instruction queue control circuit 4 controls the queue described below to perform exception processing.

【0050】即ち例外が発生した場合、命令キュー制御
回路4はまず、そのとき各命令キュー50〜52,71
〜73にラッチされている命令の実行を中止させる。次
に命令キュー制御回路4は、各命令キュー50〜52,
71〜73の出力を制御して順次命令を出力伝達させ、
各キュー50〜52,71〜73内の命令を最終段のキ
ュー52,73から信号線521,731を通して整数
演算&ロード/ストア制御回路80に順次取り込ませ
る。
That is, when an exception occurs, the instruction queue control circuit 4 firstly, at that time, each instruction queue 50 to 52, 71.
Stop execution of the instruction latched in ~ 73. Next, the instruction queue control circuit 4 uses the instruction queues 50 to 52,
71 to 73 are controlled to sequentially output the commands,
The instructions in the respective queues 50 to 52 and 71 to 73 are sequentially fetched from the final stage queues 52 and 73 to the integer arithmetic & load / store control circuit 80 through the signal lines 521 and 731.

【0051】これにより整数演算&ロード/ストア制御
回路80は、取り込んだ命令を信号線802を通してメ
モリ制御回路3へ順に送信する。メモリ制御回路3はこ
の命令が命令キューに再読み出しされて整数演算&ロー
ド/ストア制御回路80または浮動小数点演算回路82
〜84にて再実行可能なように、メモリ1に再配置する
(図2ステップf)。ここで、メモリ1上に再配置し実
行する例外を発生した命令の後に、実行すべき命令であ
って、例外を発生した浮動小数点演算命令よりも先に実
行すべき整数演算やロード/ストアの命令があれば、そ
れは通常通り例外処理の前に実行する。
As a result, the integer operation & load / store control circuit 80 sequentially transmits the fetched instructions to the memory control circuit 3 through the signal line 802. The memory control circuit 3 reads this instruction again into the instruction queue, and the integer arithmetic & load / store control circuit 80 or the floating point arithmetic circuit 82 is read.
Re-arrange in the memory 1 so that it can be re-executed in steps (-) to 84 (step f in FIG. 2). Here, after the instruction that generated the exception to be rearranged and executed in the memory 1, the instruction that should be executed, that is, the integer operation or load / store that should be executed before the floating-point operation instruction that generated the exception. If there is an instruction, execute it as usual before exception handling.

【0052】さて、例外が発生した場合(例えば、浮動
小数点演算回路84が拡張精度の演算が実行不可能であ
るにも拘らず、同回路84に拡張精度の浮動小数点演算
命令が入力されて、例外検出回路90により例外が検出
された場合)は、その命令をソフトウェアのエミュレー
ションによって実行する(ステップd)。
When an exception occurs (for example, even though the floating point arithmetic circuit 84 cannot execute the extended precision operation, the extended precision floating point arithmetic instruction is input to the circuit 84, If the exception detection circuit 90 detects an exception), the instruction is executed by software emulation (step d).

【0053】その後、例外を発生した命令の後に実行す
べき命令で命令キューの中に存在し、上記のようにメモ
リ1上に再配置された命令について、通常の命令実行と
同様に上記一連の動作によって処理を行う(ステップ
g)。その後の命令も継続して実行される。そして、入
力された命令がプログラムの終了を示す命令であった場
合は、その命令よりも前に実行すべき命令を実行の後、
待ち状態に戻る。
Thereafter, with respect to the instruction existing in the instruction queue that is to be executed after the instruction that has generated the exception and has been rearranged in the memory 1 as described above, the above-mentioned series of instructions is executed in the same manner as the normal instruction execution. Processing is performed by operation (step g). Subsequent instructions are also executed continuously. If the input instruction is an instruction indicating the end of the program, after executing the instruction that should be executed before that instruction,
Return to the waiting state.

【0054】[0054]

【発明の効果】以上説明のように、例外が発生した命令
の後続の命令はハードウェアの演算機能によって命令実
行を行う。その結果、例外の発生した命令の後続の命令
が、パイプライン内部に多数存在する場合、ソフトウェ
アによるエミュレーションによって、それらの命令を実
行するよりも、命令実行速度が向上する。結果として情
報処理装置システムの実行速度、即ちパフォーマンスの
向上に寄与する。
As described above, the instruction following the instruction in which the exception has occurred is executed by the arithmetic function of the hardware. As a result, when a large number of instructions subsequent to the instruction in which the exception occurs exist in the pipeline, the instruction execution speed is improved by software emulation as compared with the case of executing those instructions. As a result, it contributes to the improvement of the execution speed of the information processing apparatus system, that is, the performance.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施例を示すブロック図。FIG. 1 is a block diagram showing an embodiment of the present invention.

【図2】本発明実施例の動作を示すフローチャート。FIG. 2 is a flowchart showing the operation of the embodiment of the present invention.

【図3】従来例の動作を示すフローチャート。FIG. 3 is a flowchart showing the operation of a conventional example.

【符号の説明】[Explanation of symbols]

1…メモリ、2…入出力ポート(I/Oポート)、3…
メモリ制御回路、4…命令キュー制御回路、50〜52
…命令キュー、60…命令デコード回路、71〜73…
浮動小数点命令キュー、80…整数演算&ロード/スト
ア制御回路、81…レジスタファイル、82〜84…浮
動小数点演算回路、90…例外検出回路。
1 ... memory, 2 ... input / output port (I / O port), 3 ...
Memory control circuit, 4 ... Instruction queue control circuit, 50-52
... instruction queue, 60 ... instruction decoding circuit, 71-73 ...
Floating-point instruction queue, 80 ... Integer operation & load / store control circuit, 81 ... Register file, 82-84 ... Floating-point operation circuit, 90 ... Exception detection circuit.

Claims (1)

【特許請求の範囲】 【請求項1】 メモリから読み出された命令を保持する
命令キューを有し、命令フェッチと演算実行を並列実行
するパイプライン制御式情報処理装置において、上記命
令キューから取り出された命令に従う演算による例外を
検出する例外検出手段と、この例外検出手段によって検
出された例外を発生した命令をソフトウェアによって読
み出しエミュレーションを実行する手段と、上記例外検
出手段によって例外が検出された場合に上記命令キュー
に残されている後続命令を取り出して上記メモリ上に再
配置する命令再配置手段と、を具備し、上記命令再配置
手段によって上記メモリ上に再配置された命令を上記命
令キューに読み出して実行するようにしたことを特徴と
するパイプライン制御方式。
Claim: What is claimed is: 1. A pipeline control type information processing apparatus, comprising an instruction queue for holding an instruction read from a memory, for executing instruction fetch and operation execution in parallel. Exception detecting means for detecting an exception due to an operation in accordance with a specified instruction, means for executing emulation by reading out the instruction that generated the exception detected by the exception detecting means by software, and when the exception is detected by the exception detecting means And an instruction relocating means for retrieving subsequent instructions remaining in the instruction queue and relocating them in the memory, wherein the instructions relocated in the memory by the instruction relocating means are stored in the instruction queue. The pipeline control method is characterized in that it is read out and executed.
JP15434091A 1991-06-26 1991-06-26 Pipeline control system Pending JPH052485A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15434091A JPH052485A (en) 1991-06-26 1991-06-26 Pipeline control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15434091A JPH052485A (en) 1991-06-26 1991-06-26 Pipeline control system

Publications (1)

Publication Number Publication Date
JPH052485A true JPH052485A (en) 1993-01-08

Family

ID=15582014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15434091A Pending JPH052485A (en) 1991-06-26 1991-06-26 Pipeline control system

Country Status (1)

Country Link
JP (1) JPH052485A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529610B1 (en) 1999-04-22 2003-03-04 Funai Electric Co., Ltd. Speaker mounting structure
US6813703B2 (en) * 2002-06-07 2004-11-02 Semiconductor Technology Academic Research Center Emulation system for data-driven processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529610B1 (en) 1999-04-22 2003-03-04 Funai Electric Co., Ltd. Speaker mounting structure
US6813703B2 (en) * 2002-06-07 2004-11-02 Semiconductor Technology Academic Research Center Emulation system for data-driven processor

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US4745547A (en) Vector processing
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
JPS6028015B2 (en) information processing equipment
JPH11353179A (en) Process of exception of pipeline control data processor
JPH03286332A (en) Digital data processor
JP2916605B2 (en) Computer processor
JPH052485A (en) Pipeline control system
JP3534987B2 (en) Information processing equipment
JPH05241827A (en) Command buffer controller
JP2553728B2 (en) Arithmetic unit
JPS6134188B2 (en)
JP2583614B2 (en) Vector arithmetic unit
JPS6116112B2 (en)
JPH06139071A (en) Parallel computers
JP2806690B2 (en) Microprocessor
JPH0248733A (en) Information processor
JP3414579B2 (en) Programmable controller
KR970007262B1 (en) Risc structure for data processing
JPH06337785A (en) Information processor and its instruction execution control method
JPH0769800B2 (en) Data processing device
JPS62145430A (en) Data processor
JPH05334265A (en) Information processor and processing method
JPH06168123A (en) Data proceor
JPH06202867A (en) Parallel computer