JPH086790A - Processor controller - Google Patents

Processor controller

Info

Publication number
JPH086790A
JPH086790A JP13704294A JP13704294A JPH086790A JP H086790 A JPH086790 A JP H086790A JP 13704294 A JP13704294 A JP 13704294A JP 13704294 A JP13704294 A JP 13704294A JP H086790 A JPH086790 A JP H086790A
Authority
JP
Japan
Prior art keywords
instruction
exception
request
execution
holding unit
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.)
Withdrawn
Application number
JP13704294A
Other languages
Japanese (ja)
Inventor
Takumi Takeno
巧 竹野
Yuji Kamisaka
裕士 神阪
Kazuyasu Nonomura
一泰 野々村
Toru Watabe
徹 渡部
Takumi Maruyama
拓巳 丸山
Shinya Kato
慎哉 加藤
Chiyonsuwannapaisaan Poonchiyai
ポーンチャイ・チョンスワンナパイサーン
Katsunori Takeshita
克典 竹下
Takumi Nonaka
巧 野中
Koji Ishizuka
孝治 石塚
Atsushi Sokawa
淳 惣川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP13704294A priority Critical patent/JPH086790A/en
Publication of JPH086790A publication Critical patent/JPH086790A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】 パイプラインにおいて、スカラ実行時に割込
みが発生したとき、正確な割込み処理制御を可能とする
プロセッサ制御装置を提供すること。 【構成】 パイプラインでマクロ命令を実行し、複数の
マクロ命令を同時に実行可能であり、命令の例外発生タ
イミングを知る発生タイミング指示部IGMと、スカラ
実行とシングル実行を制御するスカラシングル実行制御
部を備え、命令アドレス保持部IA0と、リクエストタ
イプ保持部RQAと、命令シーケンス保持部SEQ0
と、シングルスカラ実行保持部MIE0と、リードサイ
ズ保持部RBAと、ライトサイズ保持部ACAと、リク
エストアドレス保持部SARと、リクエスト自動挿入指
示部LST2と、上記命令の例外発生タイミングが、命
令実行途中である場合、例外処理後に再度リクエストを
出し直すことを可能にするリクエスト再出部SARQと
を具備する。
(57) [Summary] [Object] To provide a processor control device that enables accurate interrupt processing control when an interrupt occurs during scalar execution in a pipeline. [Structure] A macro instruction can be executed in a pipeline, a plurality of macro instructions can be executed simultaneously, and an occurrence timing instruction unit IGM that knows the exception occurrence timing of the instruction and a scalar single execution control unit that controls scalar execution and single execution And an instruction address holding unit IA0, a request type holding unit RQA, and an instruction sequence holding unit SEQ0.
The single scalar execution holding unit MIE0, the read size holding unit RBA, the write size holding unit ACA, the request address holding unit SAR, the request automatic insertion instruction unit LST2, and the exception occurrence timing of the above instruction are in the middle of instruction execution. If it is, the request re-issue unit SARQ that enables the request to be re-issued after the exception handling is provided.

Description

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

【0001】[0001]

【産業上の利用分野】本発明はプロセッサ制御装置に係
り、特にパイプライン・プロセッサの命令処理の制御に
関するものである。プロセッサの高速化の要求に伴い、
スーパーパイプラインやスーパースカラ技術が提案さ
れ、用いられているが、スーパースカラ実行は、複数の
命令を同時に実行するため、複数の例外が同時に発生す
るが、プロセッサは正確な割込み処理制御を要求され
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor controller, and more particularly to controlling instruction processing of a pipeline processor. With the demand for faster processors,
Although super-pipeline and super-scalar technology have been proposed and used, super-scalar execution executes multiple instructions at the same time, so multiple exceptions occur at the same time, but the processor requires accurate interrupt handling control. It

【0002】[0002]

【従来の技術】従来のスーパースカラプロセッサでは、
スカラ実行中つまり複数の命令を同時に実行中に例外が
発生すると、正確な割込みを保証するため、割込み先で
その時点の実行命令コード等を解析し、例外処理完了後
にそれらの命令をエミュレーションして完了させ、次の
命令列から実行を再開する処理を行ったり、あるいは演
算命令のオーバーフロー例外をなくし、ソフトでチェッ
クが必要な場合には、演算命令の後ろに挿入して例外を
刈り取る専用命令を設けているものである。
2. Description of the Related Art In a conventional superscalar processor,
If an exception occurs during scalar execution, that is, while executing multiple instructions at the same time, in order to guarantee an accurate interrupt, the instruction code of the execution instruction at that time is analyzed at the interrupt destination and those instructions are emulated after the exception processing is completed. When it is necessary to complete the operation and restart the execution from the next instruction sequence, or eliminate the overflow exception of the operation instruction and check it with software, insert a dedicated instruction after the operation instruction to cut the exception. It is provided.

【0003】[0003]

【発明が解決しようとする課題】しかしながら、前者の
エミュレーションでは、リカバリ処理が複雑でかつ時間
がかかるという欠点があり、後者の専用命令を用いる場
合には、従来からのアーキテクチャを資産継承している
場合には、アーキテクチャの変更及び拡張の必要があ
り、適用が難しい。
However, the former emulation has a drawback that the recovery process is complicated and takes a long time. When the latter dedicated instruction is used, the conventional architecture inherits the assets. In this case, it is necessary to change and extend the architecture, which is difficult to apply.

【0004】そこで、割込みのタイミング等を従来のま
ま変更することなく、スーパースカラ実行を行い、マイ
クロコードにより割込みを処理するシステムを考えて、
その場合に存在する問題点を考察する。
Therefore, considering a system in which superscalar execution is performed and interrupts are processed by microcode without changing the interrupt timing or the like as before,
Consider the problems that exist in that case.

【0005】スーパースカラで実行を行わないシステム
では、各マクロ命令は1命令単位で実行を行っていたた
め、命令に関して発生する割込みは命令実行順でかつ1
つに限られていた。ところが、スーパースカラで命令を
実行すると、例外が発生した際、例外の発生した命令よ
りも本来後ろにあるべき命令はキャンセルされ、例外処
理完了後、再度実行する必要がある。
In a system that does not execute in superscalar, each macro instruction executes in units of one instruction, so that the interrupts generated for instructions are in the instruction execution order and
It was limited to one. However, when an instruction is executed in superscalar, when an exception occurs, the instruction that should originally be behind the instruction in which the exception occurred is canceled, and it is necessary to execute again after the exception processing is completed.

【0006】このため、再開処理の方法として、割込み
アドレス等からメモリ中の命令列をリードし、分析した
のち再開命令を実行することを考えたが、前記同様に処
理が複雑化し、処理速度の低下は免れない。また分岐命
令が同時に実行されていると、分岐動作が途中で中断さ
れるため分岐先からの継続実行が難しい。
Therefore, as a method of restart processing, it was considered to read the instruction sequence in the memory from the interrupt address or the like, analyze it, and then execute the restart instruction. However, the processing becomes complicated and the processing speed increases as described above. The decline is unavoidable. Further, if the branch instructions are executed at the same time, it is difficult to continue the execution from the branch destination because the branch operation is interrupted midway.

【0007】本発明ではこれらのことを考慮して、命令
シーケンス分析及びスカラ実行状態等を簡単に判定し、
命令の完了、キャンセル等を簡単に行えるプロセッサ制
御装置を提供することを目的とする。
In the present invention, in consideration of these points, the instruction sequence analysis and the scalar execution state etc. are easily determined,
An object of the present invention is to provide a processor control device capable of easily completing and canceling an instruction.

【0008】[0008]

【課題を解決するための手段】前記目的を達成するた
め、本発明の請求項1の発明では、図1に示す如く、パ
イプラインでマクロ命令を実行し、更に複数のマクロ命
令を同時に実行可能な、つまりスーパースカラ実行可能
なプロセッサにおいて、マイクロコードによりリードラ
イト可能な、マクロ命令の命令アドレスを保持する命令
アドレス保持部IA0と、マイクロコードによりリード
ライト可能な、マクロ命令のリクエストのタイプを保持
するリクエストタイプ保持部RQAと、マイクロコード
によりリードライト可能な、マクロ命令の命令シーケン
スを保持する命令シーケンス保持部SEQ0と、マイク
ロコードによりリードライト可能な、マクロ命令がスカ
ラ実行(複数命令実行)かスカラ実行かを保持するシン
グルスカラ実行保持部MIE0と、マクロ命令のリクエ
ストのリードサイズを示すリードサイズ保持部RBA
と、マイクロコードによりリードライト可能な、マクロ
命令のリクエストのライトサイズを示すライトサイズ指
示部ACAと、マイクロコードによりリードライト可能
な、上記リクエストのアドレスを保持するリクエストア
ドレス保持部SARと、マイクロコードによりリードラ
イト可能な、マクロ命令のリクエストがバウンダリを跨
がる場合にリクエストが2つに分割されたことを示し、
ハードの後半のリクエストを自動的に挿入することを示
すリクエスト自動挿入指示部LST2と、例外発生タイ
ミングが命令実行途中か命令の切れ目かを示す発生タイ
ミング指示部IGMを有する。
In order to achieve the above object, according to the invention of claim 1 of the present invention, as shown in FIG. 1, a macro instruction can be executed in a pipeline, and a plurality of macro instructions can be executed simultaneously. In other words, in a superscalar-executable processor, an instruction address holding unit IA0 that holds an instruction address of a macro instruction that can be read / written by microcode, and a request type of a macro instruction that can be read / written by microcode are held. The request type holding unit RQA, the instruction sequence holding unit SEQ0 that holds the instruction sequence of the macro instruction that is readable and writable by microcode, and whether the macro instruction that can be read and written by the microcode is scalar execution (multiple instruction execution). Holds a single scalar execution that holds whether it is a scalar execution And MIE0, read size holding unit RBA indicating a read request size macroinstructions
And a write size instructing unit ACA that is readable and writable by microcode and that indicates the write size of a request for a macro instruction, a request address holding unit SAR that is readable and writable by microcode, that holds the address of the request, and a microcode Shows that the request is divided into two when the request of the macro instruction that can be read and written crosses the boundary.
It has a request automatic insertion instructing section LST2 indicating that the latter half request of the hardware is automatically inserted, and an occurrence timing instructing section IGM indicating whether the exception occurrence timing is in the middle of instruction execution or an instruction break.

【0009】そして例外発生タイミングが命令実行途中
の場合、例外処理後に、再度リクエストを出し直すこと
を可能にするリクエスト再出部SARQ及び、例外発生
タイミングが命令の切れ目である場合に再度リクエスト
を出し直すことを可能にするリクエスト再出部SADQ
を設ける。
If the exception generation timing is in the middle of instruction execution, a request re-issuing section SARQ that enables the request to be reissued after the exception processing, and if the exception generation timing is an instruction break, the request is reissued. Request re-issue section SADQ that allows you to fix
To provide.

【0010】更にパイプE1においては、本発明の請求
項2の発明に記載のように、マイクロコードによりリー
ド可能な、マクロ命令の命令のアドレス又はそれを含む
命令列の先頭アドレスを保持する命令アドレス保持部I
ADと、マイクロコードによりリードライト可能な、マ
クロ命令あるいはそれを含む命令列のリクエストのタイ
プを保持するリクエストタイプ保持部RQDと、マイク
ロコードによりリードライト可能な、マクロ命令あるい
はそれを含む命令列のリクエストのサイズを保持するサ
イズ保持部ACDと、マイクロコードによりリードライ
ト可能な、上記リクエストのアドレスを保持するリクエ
ストアドレス保持部SADと、マイクロコードによりリ
ードライト可能な、マクロ命令あるいはそれを含む命令
列の命令シーケンスを保持する命令シーケンス保持部S
EQDと、マイクロコードによりリードライト可能な、
マクロ命令あるいはそれを含む命令列がスカラ実行かシ
ングル実行かを保持するシングルスカラ実行保持部MI
EDと、マイクロコードによりリードライト可能な、マ
クロ命令あるいはそれを含む命令列によるゼネラルレジ
スタ書込みがあることを示すゼネラルレジスタ書込指示
部GRWDと、マイクロコードによりリードライト可能
な、マクロ命令あるいはそれを含む命令列のうち、演算
命令のゼネラルレジスタ書込み番号を保持する演算命令
用GR番号保持部R1WADと、マイクロコードにより
リードライト可能な、マクロ命令あるいはそれを含む命
令列のうちロード命令のゼネラルレジスタ書込み番号を
保持するロード命令用GR番号保持部R1WLDを有す
る。
Further, in the pipe E1, as described in the invention of claim 2 of the present invention, an instruction address holding an instruction address of a macro instruction or a leading address of an instruction sequence including the instruction which can be read by microcode. Holding part I
AD, a request type holding unit RQD that holds a request type of a macro instruction or an instruction sequence including the macro instruction that is readable and writable by microcode, and a macro instruction that is readable and writable by microcode or an instruction sequence that includes the macro instruction A size holding unit ACD that holds the size of the request, a request address holding unit SAD that holds the address of the request that is readable and writable by microcode, and a macro instruction that is readable and writable by the microcode, or an instruction sequence including the macro instruction. Instruction sequence holding unit S for holding the instruction sequence of
Read / write with EQD and microcode,
A single scalar execution holding unit MI that holds whether a macro instruction or an instruction sequence including the macro instruction is scalar execution or single execution.
ED, a general register write instruction unit GRWD indicating that there is a general register write by a macro instruction readable / writable by a microcode or an instruction sequence including the macro instruction, and a macro instruction readable / writable by a microcode or the macro instruction A GR number holding unit R1WAD for an operation instruction that holds a general register write number of an operation instruction among an instruction string that includes the instruction, and a general register write of a load instruction in a macro instruction that can be read / written by microcode or an instruction string that includes the instruction It has a GR number holding unit R1WLD for load instructions that holds a number.

【0011】なお、本発明の請求項3では、スカラ実行
中の命令のうち、ロード命令用GR番号保持部R1WL
D及びリクエストタイブ保持部RQDをクリアした後、
リクエスト再出部SADQを動作させることにより演算
命令のみを完了させることができ、演算命令用GR番号
保持部R1WADをクリアしてリクエスト再出部SAD
Qを動作させることによりロードストア命令のみを完了
することを可能にする。
According to the third aspect of the present invention, the GR number holding unit R1WL for the load instruction is included among the instructions being executed by the scalar.
After clearing D and request type holding unit RQD,
Only the operation command can be completed by operating the request reissue unit SADQ. The request reissue unit SAD is cleared by clearing the operation instruction GR number holding unit R1WAD.
Operating Q allows only load and store instructions to complete.

【0012】本発明の請求項4では、マクロ命令途中の
例外に対して再開処理時、リクエスト再出部SADQ
と、リクエスト再出部SARQを連続して動作させるこ
とにより保留中のリクエスト及びゼネラルレジスタへの
書込みを完了できるようにする。
According to the fourth aspect of the present invention, the request reissue unit SADQ is provided during the restart processing for an exception in the middle of a macro instruction.
Then, the request reissue unit SARQ is continuously operated so that the pending request and the writing to the general register can be completed.

【0013】本発明の請求項5では、マクロ命令途中の
例外に対しては、上記シングルスカラ実行保持部MIE
0をチェックしてこれが例えば「1」のときその例外が
スカラ実行時に発生し、「0」のときその例外がシング
ル実行時に発生したと判断し、マクロ命令の切れ目の例
外に対しては上記シングルスカラ実行保持部MIEDを
チェックしてこれが例えば「1」のとき、その例外がス
カラ実行時に発生し、「0」のときその例外がシングル
実行時に発生したものと判断し、例外処理からの再開処
理を変更できるようにする。
According to a fifth aspect of the present invention, the single scalar execution holding unit MIE is provided for an exception in the middle of a macro instruction.
For example, if 0 is checked, it is judged that the exception occurred at the time of scalar execution when it is "1", and that it occurred at the time of single execution when it is "0". The scalar execution holding unit MIED is checked, and when it is “1”, it is determined that the exception occurred at the time of scalar execution, and when it is “0”, it is determined that the exception occurred at the time of single execution, and the restart processing from the exception processing is performed. To be able to change.

【0014】本発明の請求項6では、シングルスカラ実
行保持部MIE0をチェックしてこれが例えば「1」の
とき上記命令シーケンス保持部SEQ0をチェックし
て、例外を発生したスカラ実行命令列の命令順序は、こ
の命令シーケンス保持部SEQ0が「1」のとき演算命
令→ロードストア命令の順であり、これが「0」のとき
ロードストア命令→演算命令の順であることを示し、ま
たシングルスカラ実行保持部MIEDをチェックしてこ
れが例えば「1」のとき上記命令シーケンス保持部SE
QDをチェックして、例外を発生したスカラ実行命令列
の命令順序は、この命令シーケンス保持部SEQDが例
えば「1」のとき演算命令→ロードストア命令の順であ
り、これが「0」のときロードストア命令→演算命令の
順であることを示し、これらの情報により例外処理から
の再開処理を変更できるようにする。
According to a sixth aspect of the present invention, the single scalar execution holding unit MIE0 is checked, and when it is "1", the instruction sequence holding unit SEQ0 is checked, and the instruction sequence of the scalar execution instruction sequence in which the exception has occurred is checked. Indicates that when the instruction sequence holding unit SEQ0 is “1”, the order is operation instruction → load store instruction, and when this is “0”, the order is load store instruction → operation instruction, and single scalar execution hold The section MIED is checked, and when it is "1", for example, the instruction sequence holding section SE
The QD is checked, and the instruction sequence of the scalar execution instruction sequence in which the exception has occurred is the order of operation instruction → load store instruction when this instruction sequence holding unit SEQD is “1”, and the load order when this is “0”. It indicates that the order is a store instruction → arithmetic instruction, and the restart processing from the exception processing can be changed by these pieces of information.

【0015】本発明の請求項7では、演算命令で例外が
発生した場合、同時に実行中のロードストア命令のリク
エストを抑止し、リクエストによる例外は発生しないよ
うにして、リクエストの再投入を可能とする。
According to the seventh aspect of the present invention, when an exception occurs in an operation instruction, the request of the load / store instruction that is being executed at the same time is suppressed so that the exception due to the request does not occur, and the request can be re-injected. To do.

【0016】本発明の請求項8では、演算命令で例外が
発生した場合、同時に実行中のロードストア命令のリク
エストを抑止し、リクエストによる例外は発生しないよ
うにし、スカラ実行中の命令列のうち、ロードストア命
令又は演算命令のいずれかあるいは両方の命令実行完了
をキャンセルすることを可能にする。
According to the eighth aspect of the present invention, when an exception occurs in an operation instruction, a request for a load / store instruction that is being executed at the same time is suppressed so that an exception due to the request does not occur. , It is possible to cancel the instruction execution completion of either or both of the load / store instruction and the operation instruction.

【0017】本発明の請求項9では、命令実行中に例外
を検出した場合、シングル実行ならば命令アドレス保持
部IA0に保持されたアドレスをもとに例外を発生した
命令の次の命令から再フェッチを行い、スカラ実行でロ
ードストア命令で例外が発生し、スカラ命令列がロード
ストア命令、演算命令、分岐命令の順である場合、ロー
ドストア命令のみ完了させ、演算命令から再フェッチを
行い、スカラ実行でロードストア命令で例外が発生し、
スカラ命令列が演算命令、ロードストア命令、分岐命令
の順である場合、演算命令とロードストア命令を完了さ
せ、分岐命令から再フェッチを行うようにする。
According to the ninth aspect of the present invention, when an exception is detected during instruction execution, if single execution is performed, the instruction next to the instruction that generated the exception is re-executed based on the address held in the instruction address holding unit IA0. If a fetch is performed and an exception occurs in a load / store instruction due to scalar execution, and the scalar instruction sequence is in the order of load / store instruction, operation instruction, and branch instruction, only the load / store instruction is completed, and refetch is performed from the operation instruction. An exception occurred in the load store instruction during scalar execution,
When the scalar instruction sequence is in the order of the operation instruction, the load store instruction, and the branch instruction, the operation instruction and the load store instruction are completed and the branch instruction is refetched.

【0018】本発明の請求項10では、命令の切れ目に
例外を検出した場合、シングル実行ならば、次命令即ち
命令アドレス保持部IA0に保持されたアドレスから再
フェッチを行い、スカラ実行でロードストア命令で例外
が発生し、スカラ命令列がロードストア命令、演算命
令、分岐命令の順である場合、ロードストア命令のみ完
了させ、演算命令から再フェッチを行い、スカラ実行で
ロードストア命令で例外が発生し、スカラ命令列が演算
命令、ロードストア命令、分岐命令の順である場合、演
算命令とロードストア命令を完了させ、分岐命令から再
フェッチを行うようにする。
According to the tenth aspect of the present invention, when an exception is detected at the break of an instruction, if it is a single execution, refetch is performed from the next instruction, that is, the address held in the instruction address holding unit IA0, and the load is stored by the scalar execution. When an exception occurs in an instruction and the scalar instruction sequence is in the order of load / store instruction, operation instruction, and branch instruction, only the load / store instruction is completed, refetch is performed from the operation instruction, and the exception occurs in the load / store instruction in scalar execution. When the generated scalar instruction sequence is the operation instruction, the load store instruction, and the branch instruction in this order, the operation instruction and the load store instruction are completed, and the refetch is performed from the branch instruction.

【0019】本発明の請求項11では、命令の切れ目に
例外を検出した場合、スカラ実行で演算命令で例外が発
生し、スカラ命令列が演算命令、ロードストア命令、分
岐命令の順である場合、演算命令のみを完了させ、ロー
ドストア命令から再フェッチを行い、スカラ実行で演算
命令で例外が発生し、スカラ命令列がロードストア命
令、演算命令、分岐命令の順である場合、実行モードを
シングルモードにして再度ロードストア命令から再フェ
ッチを行うようにする。
In the eleventh aspect of the present invention, when an exception is detected at a break of an instruction, an exception occurs in the arithmetic instruction in the scalar execution, and the scalar instruction string is in the order of the arithmetic instruction, the load store instruction, and the branch instruction. , If only the arithmetic instruction is completed, re-fetching is performed from the load / store instruction, an exception occurs in the arithmetic instruction during scalar execution, and the scalar instruction sequence is the load / store instruction, arithmetic instruction, and branch instruction in this order, the execution mode is changed. Set to single mode and re-fetch from the load / store instruction again.

【0020】本発明の請求項12では、スカラ実行時
に、アドレス指定例外あるいはオペレーション例外で割
込みが発生した場合には、実行モードをシングルモード
にして次命令から再フェッチを行い割込み時の状態を単
純化した状態で再度割込みを発生させるようにする。
According to the twelfth aspect of the present invention, when an interrupt occurs due to an addressing exception or an operation exception during scalar execution, the execution mode is set to single mode and refetching is performed from the next instruction to simplify the state at the time of interrupt. Generate an interrupt again in the activated state.

【0021】本発明の請求項13では、スカラ実行時
に、命令系の例外が発生した場合にはロードストア命令
及び演算命令は完了させ、実行モードをシングルモード
にして、以降の命令から再フェッチを行い、すべての発
行可能な命令を完了したのち例外処理を行うようにす
る。
According to the thirteenth aspect of the present invention, when an exception of an instruction type occurs at the time of scalar execution, the load / store instruction and the arithmetic instruction are completed, the execution mode is set to the single mode, and the refetch is performed from the subsequent instructions. Perform exception processing after completing all the issuable instructions.

【0022】本発明の請求項14では、シングルモード
で再度例外が発生し、処理を完了したらその再開処理時
にスカラモードに戻すようにする。
In the fourteenth aspect of the present invention, when the exception occurs again in the single mode and the processing is completed, the scalar mode is returned to at the time of the restart processing.

【0023】[0023]

【作用】命令の実行中に割込みが発生したとき、例外検
出部がこれを検知して例外要因を分析する。例えばリク
エスト命令による例外であってTLB(Transla
tion Lookasid Buffer)フォルト
等が分析される。そしてこの割込みの発生が命令の切れ
目か、命令の実行中であるかを発生タイミング指示部I
GMをみて識別する。例えばIGM=「0」のとき命令
実行中と判断し、IGM=「1」のとき命令の切れ目で
割込みが発生したものと判断する。
When an interrupt occurs during the execution of an instruction, the exception detector detects this and analyzes the exception factor. For example, a TLB (Transla) is an exception due to a request instruction.
error lookup, etc. are analyzed. Then, it is determined whether the occurrence of this interrupt is an instruction break or an instruction is being executed.
Identify by looking at the GM. For example, when IGM = “0”, it is determined that the instruction is being executed, and when IGM = “1”, it is determined that the interrupt occurs at the break of the instruction.

【0024】命令の実行中で割込みが発生した場合に
は、シングルスカラ実行保持部MIE0が「1」か
「0」かをチェックし、MIE0が「0」のとき例えば
シングル実行と判断し、再開アドレスは、図示省略した
パイプP1の命令アドレス保持部に再開アドレスが保持
された次命令から実行するため、これを再開アドレスと
して設定する。
When an interrupt is generated during the execution of an instruction, it is checked whether the single scalar execution holding unit MIE0 is "1" or "0", and when MIE0 is "0", it is judged to be a single execution and restarted. The address is set as the restart address because it is executed from the next instruction whose restart address is held in the instruction address holding unit of the pipe P1 (not shown).

【0025】しかしシングルスカラ実行保持部MIE0
が「1」のときスカラ実行であるので、命令シーケンス
保持部SEQ0をチェックする。このSEQ0が「0」
のとき、スカラ実行している複数の命令の先頭がロード
ストア命令(LS命令)であるので、命令アドレス保持
部IA0に保持されたアドレスに命令長のバイト数であ
る4を加算したものを再開アドレスとして設定する。
However, the single scalar execution holding unit MIE0
Is "1", the scalar execution is performed, so the instruction sequence holding unit SEQ0 is checked. This SEQ0 is "0"
At this time, since the start of a plurality of instructions that are being scalar-executed is a load / store instruction (LS instruction), the instruction held by the instruction address holding unit IA0 is restarted by adding 4 which is the number of bytes of the instruction length. Set as an address.

【0026】命令シーケンス保持部SEQ0が「1」の
ときは複数の命令の先頭が演算命令(ALU命令)であ
るので、割込みの発生しているロードストア命令の次の
命令から再開させるため、命令アドレス保持部IA0に
保持されたアドレスに8を加算したものを再開アドレス
として設定する。
When the instruction sequence holding unit SEQ0 is "1", the start of a plurality of instructions is an operation instruction (ALU instruction), so that the instruction next to the load / store instruction in which the interrupt has occurred is restarted. The address held in the address holding unit IA0 plus 8 is set as the restart address.

【0027】それから例外処理、例えばTLBフォルト
の場合にはTLBのエントリーの入れ替えの如き例外処
理を行い、実行モードをスカラモードに戻す。そしてリ
クエスト再出部SADQにより、例外を発生したリクエ
ストを再度出し直してこれを完了させる。
Then, exception processing, for example, in the case of a TLB fault, exception processing such as TLB entry replacement is performed, and the execution mode is returned to the scalar mode. Then, the request reissue unit SADQ reissues the request in which the exception has occurred and completes it.

【0028】また例外を発生したリクエストの次のサイ
クルで出しているリクエストが存在するとき、これをリ
クエスト再出部SARQにより実行させる。ところで、
前記発生タイミング指示部IGM=「1」のときは、命
令の切れ目で割込みが発生した場合であるので、例外処
理を行い、シングルスカラ実行保持部MIEDが「0」
のときシングル実行と判断し、パイプP0の命令アドレ
ス保持部IA0に保持されている命令のアドレスを再開
アドレスとしてセットし、リクエスト再出部SADQに
より、例外を発生したリクエストを再度出し直す。
Further, when there is a request issued in the cycle next to the request in which the exception has occurred, this is executed by the request re-exit unit SARQ. by the way,
When the generation timing instruction unit IGM = “1”, it means that an interrupt occurs at the break of the instruction, so exception processing is performed and the single scalar execution holding unit MIED is set to “0”.
At this time, it is determined to be single execution, the address of the instruction held in the instruction address holding unit IA0 of the pipe P0 is set as the restart address, and the request reissue unit SADQ reissues the request in which the exception occurred.

【0029】しかしシングルスカラ実行保持部MIED
が「1」のとき、スカラ実行と判断し、次に命令シーケ
ンス保持部SEQDをチェックする。このSEQDが
「0」のとき、スカラ実行している複数の命令の先頭が
ロードストア命令(LS命令)であるので、命令アドレ
ス保持部IADに保持されたアドレスに命令のバイト数
である4を加算したものを再開アドレスとして設定す
る。
However, the single scalar execution holding unit MIED
Is "1", it is determined to be scalar execution, and then the instruction sequence holding unit SEQD is checked. When this SEQD is "0", the start of a plurality of instructions that are being scalar-executed is a load / store instruction (LS instruction), so the instruction byte holding section IAD sets the number of bytes of the instruction to 4 The added value is set as the restart address.

【0030】命令シーケンス保持部SEQDが「1」の
ときは複数の命令の先頭が演算命令(ALU命令)であ
るので、割込みの発生しているロードストア命令の次の
命令から再開させるため、命令アドレス保持部IADに
保持されたアドレスに8を加算したものを再開アドレス
として設定する。
When the instruction sequence holding section SEQD is "1", the start of a plurality of instructions is an operation instruction (ALU instruction), so that the instruction next to the load / store instruction in which the interrupt has occurred is restarted. The address held in the address holding unit IAD plus 8 is set as the restart address.

【0031】それからリクエスト再出部SADQによ
り、例外を発生したリクエストを再度出し直してこれを
完了させる。このように、複数命令を実行している場合
でも、例外が発生したとき、これに対する例外処理を行
い、例外の発生した命令を再度実行するとともに、それ
以外の命令も実行させることができる。
Then, the request reissue unit SADQ reissues the request in which the exception has occurred, and completes the request. Thus, even when a plurality of instructions are being executed, when an exception occurs, exception processing for the exception is performed, the instruction in which the exception has occurred is executed again, and other instructions can be executed.

【0032】[0032]

【実施例】本発明の一実施例を図2〜図11に基づき説
明する。図2はパイプラインにおいて同時実行の命令シ
ーケンスのパターン説明図、図3はパイプラインと割込
みタイミング説明図、図4は本発明を実施したデータ処
理装置の概略図、図5は本発明の一実施例構成図、図6
はリクエスト制御回路構成図、図7は命令の実行中に割
込みが発生した場合(リクエスト命令による例外)の動
作説明図、図8は命令の切れ目で割込みが発生した場合
(リクエストTLBフォルト以外)の動作説明図、図9
は命令の切れ目で割込みが発生した場合(LS命令で例
外が発生)の動作説明図、図10はアドレス指定の例外
(ADEX例外)あるいはオペレーション例外(OPE
X例外)の発生した場合の動作説明図、図11は命令系
の例外が発生した場合の動作説明図である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT An embodiment of the present invention will be described with reference to FIGS. 2 is an explanatory diagram of a pattern of instruction sequences simultaneously executed in a pipeline, FIG. 3 is an explanatory diagram of a pipeline and interrupt timing, FIG. 4 is a schematic diagram of a data processing device embodying the present invention, and FIG. 5 is one embodiment of the present invention. Example configuration diagram, Figure 6
Is a request control circuit configuration diagram, FIG. 7 is an operation explanatory diagram when an interrupt occurs during execution of an instruction (exception due to a request instruction), and FIG. 8 shows an interrupt occurrence at an instruction break (other than a request TLB fault). Operation explanatory diagram, FIG. 9
Is an operation explanatory diagram when an interrupt occurs at an instruction break (an exception occurs in the LS instruction). FIG. 10 shows an address specification exception (ADEX exception) or an operation exception (OPE).
(X exception) occurs, and FIG. 11 is an operation explanatory diagram when an instruction-related exception occurs.

【0033】まず図2により、スーパースカラ実行を行
った場合の命令シーケンスパターンを示す。図2におい
てLSはロードストア命令、ALUは演算命令、BRは
分岐命令をそれぞれ示す。従って図2のaは命令列が演
算命令→ロードストア命令→分岐命令の順に並んでいた
場合でこれら3命令を同時に投入した場合を示し、bは
演算命令→ロードストア命令の2命令を同時実行した場
合を、cは演算命令→分岐命令の2命令を同時実行した
場合を、dはロードストア命令→演算命令→分岐命令の
3命令を同時実行した場合を、eはロードストア命令→
演算命令の2命令を同時実行した場合を、fはロードス
トア命令→分岐命令の2命令を同時実行した場合をそれ
ぞれ示す。
First, FIG. 2 shows an instruction sequence pattern when superscalar execution is performed. In FIG. 2, LS indicates a load / store instruction, ALU indicates an arithmetic instruction, and BR indicates a branch instruction. Therefore, FIG. 2A shows a case where the instruction sequence is arranged in the order of operation instruction → load store instruction → branch instruction, and these three instructions are input at the same time, and b shows two instructions of operation instruction → load store instruction are executed simultaneously. In the case of “c”, two instructions of the operation instruction → branch instruction are simultaneously executed, “d” is the load / store instruction → operation instruction → three instructions of the branch instruction are simultaneously executed, and “e” is the load / store instruction →
The case where two operation instructions are executed simultaneously and the letter f shows the case where two load store instructions and branch instructions are executed simultaneously.

【0034】図3はパイプラインの構造と当パイプライ
ンにおける割込みタイミングの一例を示す。本発明の各
部の制御及び実施例の場合のパイプラインの構造はこの
図3の制御を用いているものとする。またスカラ実行す
る命令の命令長は、例えば4バイトの固定長とする。
FIG. 3 shows an example of the pipeline structure and the interrupt timing in this pipeline. The control of each part of the present invention and the structure of the pipeline in the case of the embodiment use the control of FIG. Further, the instruction length of the instruction to be executed by the scalar is fixed, for example, 4 bytes.

【0035】図3においてP3〜P0、E1はそれぞれ
各パイプのステージを示しており、P3はフェッチステ
ージ、P2はデコードステージ、P1は演算ステージ、
P0はメモリアクセスステージ、E1はゼネラルレジス
タ(GR)ライトバックステージである。そして、
は図2のa〜fで示した同時実行の命令が一度に入って
いることを示す。
In FIG. 3, P3 to P0 and E1 respectively indicate stages of the respective pipes, P3 is a fetch stage, P2 is a decode stage, P1 is an operation stage,
P0 is a memory access stage, and E1 is a general register (GR) write back stage. And
Indicates that the simultaneous execution instructions shown in a to f of FIG.

【0036】また、図3においてEIは命令が完了でき
る状態になったことを示す信号End Instruc
tionである。この信号がオンのとき例外要因があれ
ば、割込みが発生する。REQはリクエストであり、ロ
ード命令のときはリードせよというリクエストが出力さ
れ、ライト命令のときはストアせよというリクエストが
出力される。そしてST0、ST1はリクエストに制御
を移すためのステージ信号を示す。
Further, in FIG. 3, EI is a signal End Instruct indicating that the instruction can be completed.
It is a section. If there is an exception factor when this signal is on, an interrupt occurs. REQ is a request, and a request for reading is output for a load instruction, and a request for storing is output for a write instruction. ST0 and ST1 indicate stage signals for transferring control to the request.

【0037】INT0、INT1は割込みに制御を移す
ためのステージ信号である。割込みの発生するタイミン
グには、図3(A)、(B)、(C)で示すパターンが
ある。
INT0 and INT1 are stage signals for transferring control to interrupts. There are patterns shown in FIGS. 3 (A), 3 (B) and 3 (C) at the timing at which an interrupt occurs.

【0038】図3(A)は命令の切れ目で割込む場合を
示している。これはの命令のパイプP0のEIで割込
む。例外を発生したのはの命令であり、の命令のリ
クエストが例外要因ならそのリクエストは抑止され、ス
テージST1がでない。したがって命令は未完了であ
る。更にに入っている命令も実行の途中で止まる。×
印はこれらの状態を示す。なお☆印は割込み要因の発生
を示す。
FIG. 3A shows a case where an interruption occurs at an instruction break. This interrupts with the EI of the pipe P0 of the instruction. The instruction that generated the exception is the instruction, and if the request of the instruction is the exception factor, the request is suppressed and the stage ST1 does not exist. Therefore, the instruction is incomplete. In addition, the instructions in it also stop during execution. ×
The marks indicate these states. The asterisk indicates the occurrence of an interrupt factor.

【0039】図3(B)も命令の切れ目で割込む場合を
示すが、この場合割込みを発生したのは命令であり、
未定義の命令とかアドレス指定例外の命令のように実行
してはいけない命令を実行しようとしたことによる割込
みが発生した場合である。この場合は、割込みは1つ先
のタイミングで検出する。図3(A)と同じタイミング
で検出すると、実行終了の可能性があるので、1つ前の
タイミングで割込む。このため、図3(B)に示す如
く、割込むタイミングはの命令のEIであり、(A)
と同じタイミングとなる。この場合の命令のリクエス
トは例外を発生していないので、リクエストREQに対
するステージST0、ST1は実行され、リクエストは
完了しているものとなる。しかしによるリクエストR
EQに対してはステージST0は実行されない。
FIG. 3B also shows a case where an interrupt occurs at an instruction break. In this case, it is the instruction that generated the interrupt.
This is the case when an interrupt occurs due to an attempt to execute an instruction that should not be executed, such as an undefined instruction or an instruction with an addressing exception. In this case, the interrupt is detected at the timing one ahead. If it is detected at the same timing as in FIG. 3A, the execution may end, so the interrupt is made at the immediately preceding timing. Therefore, as shown in FIG. 3 (B), the interrupt timing is the EI of the instruction, and (A)
Same timing as. Since the request for the instruction in this case does not generate an exception, the stages ST0 and ST1 for the request REQ are executed and the request is completed. But request by R
Stage ST0 is not executed for EQ.

【0040】図3(C)は、命令の途中で割込む場合を
示す。例えばメモリに連続的に複数回にわたってライト
している途中でページフォルトの如き例外が発生した場
合である。この場合には割込みのトリガはリクエストR
EQのステージ信号ST0である。このステージ信号S
T0がONのとき、例外要因があると割込みが引き起こ
される。
FIG. 3C shows a case where an interrupt is made in the middle of an instruction. For example, this is the case when an exception such as a page fault occurs during continuous writing to the memory multiple times. In this case, the interrupt trigger is request R
This is the EQ stage signal ST0. This stage signal S
When T0 is ON, an interrupt is triggered if there is an exception factor.

【0041】図4は本発明を実施したデータ処理装置を
示す。1はメモリ制御回路であり、データ用キャッシュ
2と、命令用キャッシュ3を有し、中央処理装置CPU
からのアクセス要求に基づきデータや命令をリード、ラ
イトするものである。
FIG. 4 shows a data processing apparatus embodying the present invention. Reference numeral 1 denotes a memory control circuit, which has a data cache 2 and an instruction cache 3, and has a central processing unit CPU.
It reads and writes data and commands based on access requests from the.

【0042】データ用キャッシュ2には1次キャッシュ
4とTLB5が設けられ、TLB5はCPUからアクセ
ス先のデータが1次キャッシュ4に存在するか否かチェ
ックし、存在すればこれを読み出してCPUに渡し、存
在しなければ、これをCPUに通知する。
The data cache 2 is provided with a primary cache 4 and a TLB 5. The TLB 5 checks from the CPU whether the data to be accessed exists in the primary cache 4 and, if it exists, reads it out and sends it to the CPU. If it does not exist, the CPU is notified of it.

【0043】命令用キャッシュ3にも1次キャッシュ6
とTLB7が設けられる。TLB7はCPUからアクセ
ス先の命令が1次キャッシュ6に存在するか否かチェッ
クし、存在すればこれを読み出してCPUに渡し、存在
しなければ、これをCPUに通知する。
The instruction cache 3 as well as the primary cache 6
And TLB7 are provided. The TLB 7 checks whether or not the instruction of the access destination from the CPU exists in the primary cache 6, and if it exists, it is read and passed to the CPU, and if it does not exist, it is notified to the CPU.

【0044】CPUには読出部8、解読部9、演算部1
0、メモリアクセス部11、ライトバック部12、イン
ストラクション・バッファ13、リード・バッファ1
4、ゼネラル・レジスタ15、例外検出部16、リクエ
スト制御回路17、ロジック及びマイクロプログラム保
持部18、偏位値加算部19、リクエストアドレス保持
部SAR、スカラシングル実行制御部SSMS等が設け
られる。なおP3〜P0、E1はパイプのステージを示
す。
The CPU has a reading section 8, a decoding section 9, and a computing section 1.
0, memory access unit 11, write back unit 12, instruction buffer 13, read buffer 1
4, a general register 15, an exception detection unit 16, a request control circuit 17, a logic and microprogram holding unit 18, a deviation value addition unit 19, a request address holding unit SAR, a scalar single execution control unit SSMS and the like are provided. Note that P3 to P0 and E1 indicate pipe stages.

【0045】例外検出部16は、例えばTLBフォルト
とか、アドレス指定例外とかの如き例外の発生及びその
要因を検出するものである。リクエスト制御回路17
は、演算部10でオーバーフローが生じたときそのあと
のリクエストの実行を阻止するものであり、図6に示す
如く、演算部10から例えばオーバーフローが生じて例
外が発生したとき例外発生信号「1」が出力され、論理
回路23がオフになる。これに続き、リクエスト生成回
路21からリクエストREQが出力されたとき、前記論
理回路23がオフになっているので、これを抑止するこ
とができる。
The exception detection unit 16 detects the occurrence of an exception such as a TLB fault or an addressing exception and its cause. Request control circuit 17
When the overflow occurs in the arithmetic unit 10, the subsequent request execution is blocked. As shown in FIG. 6, when the arithmetic unit 10 overflows and an exception occurs, an exception generation signal “1” is generated. Is output and the logic circuit 23 is turned off. Following this, when the request REQ is output from the request generation circuit 21, the logic circuit 23 is turned off, so this can be suppressed.

【0046】この図6はリクエストのステージ回路を示
し、リクエスト生成回路21はリクエスト生成の制御ロ
ジックで構成され、22、24はリクエストのステージ
を生成するフリップ・フロップである。演算部10で演
算された結果、例外が発生したとき、例外発生信号
「1」が出力され、論理回路23がオフになり、リクエ
ストREQのステージ信号ST0を抑止される。
FIG. 6 shows a request stage circuit. The request generation circuit 21 is composed of request generation control logic, and reference numerals 22 and 24 are flip-flops for generating the request stage. When an exception occurs as a result of the operation performed by the operation unit 10, the exception occurrence signal “1” is output, the logic circuit 23 is turned off, and the stage signal ST0 of the request REQ is suppressed.

【0047】このように、演算命令、ロード命令が同時
に実行されているとき、演算命令が例外を引き起こすと
ロード命令のリクエストREQが抑止されるため、割込
み発生後にシングル実行に切り換えて、先頭の命令から
再度実行させることが可能となる。もし、このリクエス
ト制御回路17がなければ、スカラ実行により演算命令
の後にあるロード命令を同時実行している場合には、先
にロード命令が完了しているため正確な割込みを実現す
るのが難しい。
As described above, when the operation instruction and the load instruction are simultaneously executed, if the operation instruction causes an exception, the request REQ of the load instruction is suppressed. Therefore, after the interrupt is generated, the execution is switched to the single execution and the first instruction is executed. It is possible to execute again from. If the request control circuit 17 is not provided, it is difficult to realize an accurate interrupt because the load instruction is completed first when the load instruction after the operation instruction is simultaneously executed by the scalar execution. .

【0048】ロジック及びマイクロプログラム保持部1
8は、本発明における割込み制御を行うためのロジック
回路及びマイクロプログラムを保持するものであり、マ
イクロ命令で構成される前記SARQやSADQの外
に、割込みが発生したとき、その例外要因に応じて動作
するマイクロプログラム等を保持する。例えばTLBフ
ォルトが発生したとき、これに対応するマイクロプログ
ラムが格納され、また演算部にオーバーフローが発生し
たとき、これに対応するマイクロプログラムが格納され
ている。
Logic and microprogram holding unit 1
Reference numeral 8 holds a logic circuit and a microprogram for performing interrupt control in the present invention, and when an interrupt occurs in addition to the SARQ or SADQ composed of microinstructions, depending on the exception factor thereof. Holds operating microprograms, etc. For example, when a TLB fault occurs, a microprogram corresponding thereto is stored, and when an overflow occurs in the arithmetic unit, a microprogram corresponding to this is stored.

【0049】偏位値加算部19は、命令の読み出しのた
めにアドレスを計算するものであって、ベース値にオフ
セット値を加算するものである。そしてその加算結果に
より得られたアドレスを、リクエストアドレス保持部S
ARにより保持する。
The deviation value adding unit 19 calculates an address for reading an instruction and adds an offset value to the base value. Then, the address obtained from the addition result is used as the request address holding unit S
Hold by AR.

【0050】またスカラ実行とシングル実行を制御する
スカラシングル実行制御部SSMSが設けられる。図5
は本発明の一実施例構成図であり、前記命令アドレス保
持部IA0、リクエストタイプ保持部RQA、命令シー
ケンス保持部SEQ0、シングルスカラ実行保持部MI
E0、リードサイズ保持部RBA、ライトサイズ指示部
ACA、リクエストアドレス保持部SAR、リクエスト
自動挿入指示部LST2、発生タイミング指示部IG
M、リクエスト再出部SARQ、SADQ、命令アドレ
ス保持部IAD、リクエストタイプ保持部RQD、サイ
ズ保持部ACD、リクエストアドレス保持部SAD、命
令シーケンス保持部SEQD、シングルスカラ実行保持
部MIED、ゼネラルレジスタ書込指示部GRWD、演
算命令用GR番号保持部R1WAD、ロード命令用GR
番号保持部R1WLD等を有する。
Also, a scalar single execution control unit SSMS for controlling the scalar execution and the single execution is provided. Figure 5
FIG. 3 is a configuration diagram of an embodiment of the present invention, in which the instruction address holding unit IA0, the request type holding unit RQA, the instruction sequence holding unit SEQ0, the single scalar execution holding unit MI.
E0, read size holding unit RBA, write size instructing unit ACA, request address holding unit SAR, request automatic insertion instructing unit LST2, generation timing instructing unit IG
M, request reissue part SARQ, SADQ, instruction address holding part IAD, request type holding part RQD, size holding part ACD, request address holding part SAD, instruction sequence holding part SEQD, single scalar execution holding part MIED, general register writing Instruction unit GRWD, operation instruction GR number holding unit R1WAD, load instruction GR
It has a number holding unit R1WLD and the like.

【0051】この外、演算命令用GR番号保持部R1W
A、ロード命令用GR番号保持部R1WL、命令の例外
発生タイミングが命令実行途中か命令の切れ目かを示す
発生タイミング指示部IGM、レジスタライト用のデー
タが記入されるレジスタTBB、各コマンドレジスタに
設けられたライトパスA、書き込みデータをライトパス
経由のデータかパイプ前段からのデータかを選択するマ
ルチプレクサ、パイプライン制御回路PC等が設けられ
る。
In addition to this, the GR number holding unit R1W for the operation instruction
A, GR number holding unit R1WL for load instruction, generation timing instruction unit IGM indicating whether instruction exception occurrence timing is in the middle of instruction execution or instruction break, register TBB in which data for register write is written, and provided in each command register The write path A, a multiplexer for selecting write data from the data via the write path or the data from the preceding stage of the pipe, a pipeline control circuit PC, etc. are provided.

【0052】実際では、パイプP0の横に並んでいる命
令アドレス保持部IA0、リクエスト自動挿入指示部L
ST2、ライトサイズ指示部ACA、リードサイズ保持
部RBA、リクエストタイプ保持部RQA、リクエスト
アドレス保持部SAR、シングルスカラ実行保持部MI
E0、命令シーケンス保持部SEQ0、演算命令用GR
番号保持部R1WA、ロード命令用GR番号保持部R1
WL、及びパイプE1の横に並んでいる命令アドレス保
持部IAD、サイズ保持部ACD、リクエストタイプ保
持部RQD、リクエストアドレス保持部SAD、シング
ルスカラ実行保持部MIED、命令シーケンス保持部S
EQD、ロード命令用GR番号保持部R1WLD、演算
命令用GR番号保持部R1WAD等はレジスタで構成さ
れる。
In practice, the instruction address holding unit IA0 and the request automatic insertion instructing unit L, which are arranged next to the pipe P0, are arranged.
ST2, write size instruction unit ACA, read size holding unit RBA, request type holding unit RQA, request address holding unit SAR, single scalar execution holding unit MI
E0, instruction sequence holding unit SEQ0, GR for operation instruction
Number holding unit R1WA, GR number holding unit R1 for load instruction
The instruction address holding unit IAD, the size holding unit ACD, the request type holding unit RQD, the request address holding unit SAD, the single scalar execution holding unit MIED, and the instruction sequence holding unit S that are lined up next to the WL and the pipe E1.
The EQD, the GR number holding unit R1WLD for the load instruction, the GR number holding unit R1WAD for the operation instruction and the like are configured by registers.

【0053】これらのレジスタは、通常動作時には毎ク
ロックごとに上のパイプ(P1又はP0)からの命令実
行に関するコマンド情報(割込みが発生した場合に命令
を継続実行できる)がセットされる。ひとたび割込みが
発生すると制御は、例えばマイクロコードRAMで構成
される割込処理用マイクロ命令保持部18−1に渡さ
れ、割込みに対応したマイクロプログラムが選択的に動
作する。
In these registers, command information (instruction can be continuously executed when an interrupt occurs) from the upper pipe (P1 or P0) is set for each clock during normal operation. Once the interrupt is generated, the control is passed to the interrupt processing microinstruction holding unit 18-1 composed of, for example, a microcode RAM, and the microprogram corresponding to the interrupt selectively operates.

【0054】このマイクロプログラムは、割込みが発生
した時点のマクロ命令の実行状態を分析し、例外処理後
完了させる命令SARQと、再開時再実行させる命令S
ADQを切り分け、再実行させる命令のコマンド情報を
クリアする。このクリアは、図中の各コマンドレジスタ
に設けられたライトパスAから行われる。またライトす
るデータはレジスタTBBに予めセットする。
This microprogram analyzes the execution state of the macro instruction at the time of occurrence of an interrupt, and the instruction SARQ to be completed after exception processing and the instruction S to be re-executed at restart.
The ADQ is separated and the command information of the instruction to be re-executed is cleared. This clearing is performed from the write path A provided in each command register in the figure. The data to be written is preset in the register TBB.

【0055】次に本発明の動作を、A、命令の実行中に
割込みが発生した場合(リクエスト命令による例外)、
B、命令の切れ目で割込みが発生した場合、C、命令の
切れ目で割込みが発生した場合(LS命令で例外が発生
した場合)、D、アドレス指定の例外(ADEX)/オ
ペレーション例外(OPEX)の発生した場合、E、命
令系の例外が発生した場合等について説明する。なお、
これらの説明に示す各フローチャートの制御は、図5等
に示すロジック及びマイクロプログラム保持部18によ
り行われる。
Next, the operation of the present invention will be described. A: When an interrupt occurs during the execution of an instruction (exception due to a request instruction),
B, an interrupt occurs at an instruction break, C, an interrupt occurs at an instruction break (when an exception occurs at the LS instruction), D, an addressing exception (ADEX) / operation exception (OPEX) The case where an exception occurs, E, an instruction-related exception occurs, and the like will be described. In addition,
The control of each flowchart shown in these descriptions is performed by the logic and microprogram holding unit 18 shown in FIG.

【0056】A.命令の実行中に割込みが発生した場合
(リクエスト命令による例外) 命令の実行中に割込みが発生した場合を図7及び図9に
基づき説明する。この場合は、図2(C)の例であり、
例外を発生した命令はパイプP0にある。また例えばT
LBフォルトが発生したものとして説明する。
A. When an Interrupt Occurs During Execution of an Instruction (Exception by Request Instruction) A case where an interrupt occurs during execution of an instruction will be described with reference to FIGS. 7 and 9. In this case, it is an example of FIG.
The instruction that caused the exception is in pipe P0. Also, for example, T
It is assumed that an LB fault has occurred.

【0057】(1)命令の実行中に割込みが発生したと
き、図4に示す例外検出部16がこれを検出して例外要
因を分析する。そしてリクエスト命令REQによる例外
であり、データ用キャッシュ2において、TLBフォル
トの発生したことが分析される。そしてこれがロジック
及びマイクロプログラム保持部18に通知され、これに
基づきTLBフォルトに対処するマイクロプログラムが
選択動作される。
(1) When an interrupt occurs during the execution of an instruction, the exception detection unit 16 shown in FIG. 4 detects this and analyzes the exception factor. Then, as an exception due to the request instruction REQ, the occurrence of the TLB fault is analyzed in the data cache 2. Then, this is notified to the logic and microprogram holding unit 18, and the microprogram for coping with the TLB fault is selectively operated based on this.

【0058】(2)先ず発生タイミング指示部IGMを
みて割込みの発生が命令の切れ目か命令の実行中かを判
別する。例えばIGM=「0」のとき命令実行中と判別
され、IGM=「1」のとき命令の切れ目で割込みが発
生したものと判断する。
(2) First, the generation timing instructing unit IGM is checked to determine whether an interrupt occurs at an instruction break or during instruction execution. For example, when IGM = "0", it is determined that the instruction is being executed, and when IGM = "1", it is determined that the interrupt occurs at the break of the instruction.

【0059】(3)IGM=「0」の場合は、図2
(C)に示す如く、命令実行中と判別される。そしてシ
ングルスカラ実行保持部MIE0が読み取られ、「0」
の場合は例えばシングル実行と判別され「1」の場合は
スカラ実行と判別される。そしてシングル実行の場合に
は再開アドレスは、パイプP1の命令アドレス保持部I
A1(図示省略)に保持された次命令のアドレスを再開
アドレスとして設定する。
(3) When IGM = “0”, FIG.
As shown in (C), it is determined that the instruction is being executed. Then, the single scalar execution holding unit MIE0 is read and "0" is read.
In the case of, for example, single execution is determined, and in the case of "1," it is determined as scalar execution. In the case of single execution, the restart address is the instruction address holding unit I of the pipe P1.
The address of the next instruction held in A1 (not shown) is set as the restart address.

【0060】(4)スカラ実行の場合には、命令シーケ
ンス保持部SEQ0をチェックし、「0」の場合は例え
ばスカラ実行している複数の命令の先頭がロードストア
命令(LS命令)であるので、割込みの発生しているロ
ードストア命令の次の命令から再開させるため、命令ア
ドレス保持部IA0に保持されたアドレスに命令長のバ
イト数である4を加算したものを再開アドレスとして設
定する。
(4) In the case of scalar execution, the instruction sequence holding unit SEQ0 is checked, and in the case of "0", for example, the heads of a plurality of instructions being scalar executed are load / store instructions (LS instructions). , In order to restart from the instruction next to the load / store instruction in which the interrupt has occurred, the address held in the instruction address holding unit IA0 plus 4 which is the number of bytes of the instruction length is set as the restart address.

【0061】(5)命令シーケンス保持部SEQ0が
「1」のときは、複数の命令の先頭が演算命令(ALU
命令)であるので、割込みの発生しているロードストア
命令の次の命令から再開させるため、命令アドレス保持
部IA0に保持されたアドレスに8を加算したものを再
開アドレスとして設定する。
(5) When the instruction sequence holding unit SEQ0 is "1", the head of the plurality of instructions is the arithmetic instruction (ALU).
Since this is an instruction), in order to restart from the instruction next to the load / store instruction in which the interrupt has occurred, the address held in the instruction address holding unit IA0 plus 8 is set as the restart address.

【0062】(6)それから例外処理を行う。例えばT
LBフォルトの場合には、TLBのエントリーの入れ替
えを行ない、実行モードをスカラモードにする。これは
シングルモードになっている場合もあり、シングルモー
ドのまま走行したのでは性能が悪いのでスカラモードに
する。
(6) Then, exception processing is performed. For example, T
In the case of an LB fault, the TLB entries are exchanged and the execution mode is set to the scalar mode. This may be in single mode, and running in single mode will result in poor performance, so it should be in scalar mode.

【0063】(7)マイクロ命令で構成されるリクエス
ト再出部SADQは、例外を発生したリクエストREQ
を出し直してこれを完了させる。 (8)マイクロ命令で構成されるリクエスト再出部SA
RQは、例外を発生したリクエストREQの次のサイク
ルで出しているリクエストがあった場合にこれを実行さ
せる。
(7) The request reissue unit SADQ composed of microinstructions requests the request REQ that generated the exception.
To complete this. (8) Request reissue unit SA composed of microinstructions
The RQ executes this when there is a request issued in the cycle next to the request REQ that generated the exception.

【0064】(9)それから再開アドレスから実行が行
われ、復帰完了となる。ところで前記(2)において発
生タイミング指示部IGM=「1」のときは、命令の切
れ目で割込みが発生した場合であり、図9に示す如き制
御が行われる。
(9) Then, execution is performed from the restart address, and the restoration is completed. By the way, in the above (2), when the generation timing instruction unit IGM = “1”, it means that the interrupt occurs at the break of the instruction, and the control as shown in FIG. 9 is performed.

【0065】(1)′その例外要因に基づく例外処理が
行われ、例えばTLBのエントリーの書き替えが行われ
る。 (2)′そしてシングルスカラ実行保持部MIEDをチ
ェックして、MIED=「0」のときシングル実行と判
断し、パイプP0の命令アドレス保持部IA0に保持さ
れている命令のアドレスを再開アドレスとしてセット
し、それからマイクロ命令で構成されているリクエスト
再出部SADQにより、例外を発生したリクエストを再
度実行する。
(1) 'Exception processing is performed based on the exception factor, and, for example, the TLB entry is rewritten. (2) ′ Then, the single scalar execution holding unit MIED is checked, and when MIED = “0” is determined to be single execution, the address of the instruction held in the instruction address holding unit IA0 of the pipe P0 is set as the restart address. Then, the request reissue unit SADQ composed of microinstructions re-executes the request in which the exception occurred.

【0066】(3)′しかしシングルスカラ実行保持部
MIED=「1」のとき、スカラ実行と判断し、それか
ら命令シーケンス保持部SEQDをチェックする。この
SEQDが「0」のとき、スカラ実行している複数の命
令の先頭がロードストア命令(LS命令)であるので、
命令アドレス保持部IADに保持されたアドレスに命令
長バイト数である4を加算したものを再開アドレスとし
て設定する。
(3) 'However, when the single scalar execution holding unit MIED = "1", it is judged to be a scalar execution, and then the instruction sequence holding unit SEQD is checked. When this SEQD is “0”, the start of a plurality of instructions that are scalar-executed is a load / store instruction (LS instruction).
The address held in the instruction address holding unit IAD plus 4 which is the number of instruction length bytes is set as the restart address.

【0067】命令シーケンス保持部SEQDが「1」の
ときは複数の命令の先頭が演算命令(ALU命令)であ
るので、割込みの発生しているロードストア命令から再
開させるため、命令アドレス保持部IADに保持された
アドレスに8を加算したものを再開アドレスとして設定
する。
When the instruction sequence holding unit SEQD is "1", the heads of a plurality of instructions are operation instructions (ALU instructions), so that the instruction address holding unit IAD is restarted from the load store instruction in which the interrupt has occurred. A value obtained by adding 8 to the address held in is set as the restart address.

【0068】それからリクエスト再出部SADQにより
例外を発生したリクエストを再度出し直してこれを完了
させる。そして再開アドレスから実行を行い復帰する。 B.命令の切れ目で割込みが発生した場合 命令の切れ目で割込みが発生した場合を図8に基づき説
明する。この場合は図3(A)、(B)の例であり、リ
クエストやTLBフォルト以外のケースである。
Then, the request reissue unit SADQ reissues the request in which the exception has occurred to complete the request. Then, execution is performed from the restart address and the process returns. B. When Interrupt Occurs at Instruction Break A case where an interrupt occurs at instruction break will be described with reference to FIG. This case is an example of FIGS. 3A and 3B, and is a case other than the request and the TLB fault.

【0069】(1)命令の切れ目で割込みが発生したと
き、図4に示す例外検出部16がこれを検出して、割込
み要因をリードし、オペレーション例外(OPEX)又
はアドレス指定例外(ADEX)か、それ以外かを判断
する。オペレーション例外は例えば未定義の命令がパイ
プに入ってきた場合であり、図3(B)に相当するもの
である。アドレス指定例外は、例えばメモリのアドレス
アライメント例外である。いずれも抑止することが必要
である。
(1) When an interrupt occurs at the break of an instruction, the exception detection unit 16 shown in FIG. 4 detects this and reads the interrupt factor to determine whether it is an operation exception (OPEX) or an addressing exception (ADEX). , Determine otherwise. The operation exception is, for example, when an undefined instruction enters the pipe, and corresponds to FIG. 3 (B). The addressing exception is, for example, a memory address alignment exception. It is necessary to deter both.

【0070】(2)オペレーション例外又はアドレス指
定例外の場合、(B)のルートに移り後述する図10に
移行する。この場合、例外を起こした命令は、現在実行
中の命令の次のパイプに入っている命令である。
(2) In the case of an operation exception or an addressing exception, the route moves to the route (B) and then to FIG. In this case, the instruction that caused the exception is the instruction in the pipe next to the currently executing instruction.

【0071】(3)しかしオペレーション例外でもなく
またアドレス指定例外でもなければ、命令系例外か否か
を判断する。命令系例外は、例えば命令を読みに行った
ときTLBフォルトを生じた場合であり、これも割込み
要因をチェックして行う。命令系例外の場合は、(C)
のルートに移り、後述する図11に移行する。
(3) However, if it is neither an operation exception nor an addressing exception, it is judged whether it is an instruction exception. An instruction type exception is, for example, when a TLB fault occurs when an instruction is read, and this is also performed by checking the interrupt factor. (C) for imperative exceptions
The process moves to the route No. and moves to FIG. 11 described later.

【0072】(4)命令系例外でなければ、例外命令つ
まり例外を発生した命令がロードストア命令(LS命
令)か、演算命令(ALU)かを割込み要因をチェック
して判定する。この場合演算命令の例外とロードストア
命令の例外が同時に発生することはない。そしてロード
ストア命令の例外の場合には(A)のルート、即ち前記
図9について説明した(1)′、(2)′、(3)′等
の制御が行われる。
(4) If it is not an instruction type exception, it is determined by checking the interrupt factor whether the exception instruction, that is, the instruction that caused the exception is a load store instruction (LS instruction) or an operation instruction (ALU). In this case, the exception of the operation instruction and the exception of the load / store instruction do not occur at the same time. In the case of an exception of the load / store instruction, the route of (A), that is, the control of (1) ′, (2) ′, (3) ′, etc. described with reference to FIG. 9 is performed.

【0073】(5)演算命令の場合は、命令実行モード
がシングル実行かスカラ実行かをシングルスカラ実行保
持部MIEDにより判別する。演算命令の例外信号によ
りロードストア命令のリクエストが抑止されるため、こ
の命令実行モードの判定は、図5に示されるシングルス
カラ実行保持部MIEDをチェックして行う。このシン
グルスカラ実行保持部MIEDが例えば「1」のときス
カラ実行、「0」のときシングル実行である。シングル
実行のときは、割込みを起こした命令と同時に実行して
いる命令はないので、例外処理後の再開アドレスは、パ
イプP0の命令アドレス保持部IA0に入っている命令
でよい。このとき、パイプE1の命令アドレス保持部I
ADには例外を発生した命令を含む命令列の先頭アドレ
スが入っている。
(5) In the case of an arithmetic instruction, the single scalar execution holding unit MIED determines whether the instruction execution mode is single execution or scalar execution. Since the request of the load / store instruction is suppressed by the exception signal of the operation instruction, the instruction execution mode is determined by checking the single scalar execution holding unit MIED shown in FIG. For example, when the single scalar execution holding unit MIED is "1", it is a scalar execution, and when it is "0", it is a single execution. In single execution, there is no instruction that is executing at the same time as the instruction that caused the interrupt, so the restart address after exception processing may be the instruction stored in the instruction address holding unit IA0 of the pipe P0. At this time, the instruction address holding unit I of the pipe E1
AD contains the start address of the instruction sequence including the instruction that generated the exception.

【0074】(6)またスカラ実行のときは、割込みを
起こした命令と同時に実行している命令があるので、命
令シーケンスを調べる必要がある。このため、命令シー
ケンスの判定を、図5に示す命令シーケンス保持部SE
QDをチェックして行う。この命令シーケンス保持部S
EQDが例えば「1」のとき演算命令ALUが先頭であ
り、「0」のときはロードストア命令LSが先頭であ
る。このとき、例外を発生しているのは演算命令なの
で、演算命令まで完了させ、演算命令の次から実行させ
る。即ち、再開アドレスは、命令シーケンス保持部SE
QDが「1」のときIAD+4、命令シーケンス保持部
SEQDが「0」のときIADに保持されたアドレスと
なる。
(6) In scalar execution, there is an instruction that is being executed at the same time as the instruction that caused the interrupt, so it is necessary to check the instruction sequence. Therefore, the instruction sequence is determined by the instruction sequence holding unit SE shown in FIG.
Check QD and do. This instruction sequence holding unit S
When the EQD is, for example, "1", the operation instruction ALU is at the head, and when the EQD is "0", the load / store instruction LS is at the head. At this time, since the operation instruction is the exception, the operation instruction is completed and the operation instruction is executed after the operation instruction. That is, the restart address is the instruction sequence holding unit SE
When QD is "1", the address is held in IAD + 4, and when the instruction sequence holding unit SEQD is "0", the address is held in IAD.

【0075】(7)ここで命令アドレス保持部IADに
保持されたアドレスから再実行するということは、ロー
ドストア命令から実行をやり直し、実行モードをシング
ル実行モードに変更し再実行することによりロードスト
ア命令を先に単独で実行し、次に演算命令を実行するこ
とにより演算命令単独で再度例外を発生し割込む。これ
により正確な割込みを保証し、さらに処理を単純化する
ことが可能となる。
(7) Here, the re-execution from the address held in the instruction address holding unit IAD means that the execution is restarted from the load / store instruction, the execution mode is changed to the single execution mode, and the execution is re-executed. By executing the instruction first by itself and then executing the operation instruction, the operation instruction alone causes an exception again and interrupts. This ensures accurate interrupts and further simplifies processing.

【0076】(8)先頭が演算命令の場合は、再開アド
レスはIAD+4として設定され、演算命令に対する例
外処理例えばオーバーフロー処理が行われる。それから
実行モードをスカラモードに設定し、マイクロ命令によ
り構成されるリクエスト再出部SADQにより例外を発
生した命令つまり演算命令を再度とり出して完了させ、
復帰する。
(8) When the head is an arithmetic instruction, the restart address is set as IAD + 4, and exception processing, eg overflow processing, is performed on the arithmetic instruction. Then, the execution mode is set to the scalar mode, and the instruction that generated the exception, that is, the operation instruction, is fetched again by the request re-sending unit SADQ composed of micro-instructions and completed.
Return.

【0077】C.命令の切れ目で割込みが発生した場合
(LS命令で例外が発生した場合)は、前記(1)′、
(2)′、(3)′により説明したように図9に基づく
制御が行われる。
C. If an interrupt occurs at the break of the instruction (when an exception occurs in the LS instruction), (1) ′,
As described in (2) 'and (3)', the control based on FIG. 9 is performed.

【0078】D.アドレス指定の例外(ADEX)/オ
ペレーション例外(OPEX)の発生した場合 アドレス指定の例外(ADEX)又はオペレーション例
外(OPEX)の発生した場合について、図10に基づ
き説明する。この場合は、前記図8の(2)の(B)に
対するものである。
D. When an Addressing Exception (ADEX) / Operation Exception (OPEX) Occurs A case where an addressing exception (ADEX) or an operation exception (OPEX) occurs will be described with reference to FIG. This case corresponds to (B) in (2) of FIG.

【0079】この場合は命令の実行を抑止する必要のあ
る例外が発生した場合の処理フローであり、割込みを受
け付けるのは1サイクル早いタイミングである。従って
1つ上のパイプの情報をみることが必要である。
In this case, the processing flow is in the case where an exception that needs to suppress the execution of the instruction occurs, and the interrupt is accepted at a timing one cycle earlier. Therefore, it is necessary to look at the information for the pipe one level above.

【0080】(1)シングルスカラ実行保持部MIE0
をチェックし、命令実行モードがシングル実行かスカラ
実行かを判別する。 (2)シングル実行の場合は、この状態の場合、命令自
体は打ち切りとなり、OSに処理を渡すことになる。そ
のため、実行モードをスカラモードとし、例外処理とし
てOSに制御を渡して中断処理を行う。これ以上この命
令を継続実行することはない。
(1) Single scalar execution holding unit MIE0
Is checked to determine whether the instruction execution mode is single execution or scalar execution. (2) In the case of single execution, in this state, the instruction itself is aborted and the process is handed over to the OS. Therefore, the execution mode is set to the scalar mode, control is passed to the OS as an exception process, and the interruption process is performed. This instruction will not be executed any further.

【0081】(3)スカラ実行の場合は、再開アドレス
を命令アドレス保持部IA0に記入されているもので設
定する。そして実行モードをシングルモードにして、例
外の発生した命令を検出する。そしてリクエスト再出部
SADQにより、図3(B)のの命令を正常に終ら
せ、復帰する。
(3) In the case of scalar execution, the restart address is set by the one written in the instruction address holding unit IA0. Then, the execution mode is set to the single mode, and the instruction in which the exception has occurred is detected. Then, the request reissue unit SADQ normally terminates the instruction of FIG. 3B and returns.

【0082】即ち、図8において、例外を引き起こして
いる命令は、図3(B)のに入っている。従って図3
(B)のに入っている命令は、無条件に完了してよ
い。またこの図3(B)のもスカラ実行している可能
性があるため、どの命令が例外を引き起こしたのかを判
定するのが難しい。そこで図3(B)のの命令列を全
て完了して、の命令列の先頭からシングル実行モード
で1命令ずつ実行させる。これにより例外を発生したと
ころでシングル実行で割込むので、そのとき例外を処理
することになる。
That is, in FIG. 8, the instruction causing the exception is shown in FIG. Therefore, FIG.
The instructions contained in (B) may be completed unconditionally. Further, since there is a possibility that scalar execution is also performed in FIG. 3B, it is difficult to determine which instruction caused the exception. Therefore, all the instruction strings in FIG. 3B are completed, and the instructions are executed one by one in the single execution mode from the beginning of the instruction string. As a result, when an exception occurs, it is interrupted by a single execution, so the exception is processed at that time.

【0083】E.命令系の例外が発生した場合 命令系の例外が発生した場合について、図11に基づき
説明する。この場合は前記図8の(3)の(C)に対す
るものである。この場合の例外は命令系の例外、例えば
命令を読み出したときTLBフォルトが発生したような
ケースであるので、実行できる命令まですべて完了させ
たのち、当例外処理を実行する。割込みが発生したとき
スカラ実行であればロードストア命令まで完了させ、シ
ングル実行モードにしてロードストア命令の次から再実
行させる。やがてパイプに実行中の命令がなくなるとシ
ングルモードで割込むので、このとき例外処理を実行す
る。
E. When an Instruction Exception Occurs A case where an instruction exception occurs will be described with reference to FIG. This case corresponds to (C) in (3) of FIG. Since the exception in this case is an instruction-related exception, for example, a case where a TLB fault occurs when an instruction is read, the exception processing is executed after all the executable instructions are completed. If scalar execution is performed when an interrupt occurs, the load / store instruction is completed, the single execution mode is set, and the instruction is reexecuted after the load / store instruction. When there are no more instructions being executed in the pipe, it interrupts in single mode, so exception processing is executed at this time.

【0084】(1)割込みが発生したときシングルスカ
ラ実行保持部MIEDをチェックし、命令実行モードが
シングル実行か、スカラ実行か判別する。このシングル
スカラ実行保持部MIEDが例えば「0」のときシング
ル実行と判別する。シングル実行の場合は、その例外発
生に対する例外処理を行い、例外発生要因を解消してか
ら実行モードをスカラモードにし、この例外発生した命
令を再度実行し、復帰する。
(1) When an interrupt occurs, the single scalar execution holding unit MIED is checked to determine whether the instruction execution mode is single execution or scalar execution. When this single scalar execution holding unit MIED is "0", for example, it is determined to be single execution. In the case of single execution, exception processing for the exception occurrence is performed, the cause of the exception occurrence is eliminated, the execution mode is set to the scalar mode, the instruction in which the exception occurred is executed again, and the operation returns.

【0085】(2)スカラ実行の場合には、命令シーケ
ンス保持部SEQDをチェックし、例えばこれが「0」
のとき先頭の命令がロードストア命令であると判断され
る。このロードストア命令についてはこれを終了させ、
その次の命令から再開させるため、命令アドレス保持部
IADに記入されたアドレスに命令長のバイト数4を加
算したものを再開アドレスとして設定する。
(2) In the case of scalar execution, the instruction sequence holding unit SEQD is checked and, for example, this is "0".
At this time, it is determined that the first instruction is the load / store instruction. Finish this for this load store instruction,
In order to restart from the next instruction, the address written in the instruction address holding unit IAD plus the number of bytes 4 of the instruction length is set as the restart address.

【0086】(3)また命令シーケンス保持部SEQD
が「1」のとき、先頭の命令が演算命令ALUであると
判断される。このときリクエスト命令がないかをみて、
なければ前記(2)の命令アドレス保持部IADに記入
されたアドレスに命令長のバイト数4を加算したものを
再開アドレスとして設定する。またリクエスト命令があ
れば、リクエスト命令を終わらせ、再開アドレスを命令
アドレス保持部IADに記入されたアドレスに8を加算
したものを再開アドレスとして設定する。
(3) Also, the instruction sequence holding unit SEQD
Is "1", it is determined that the first instruction is the arithmetic instruction ALU. At this time, check if there is a request command,
If not, the address written in the instruction address holding unit IAD of (2) above plus the instruction length byte number 4 is set as the restart address. If there is a request command, the request command is terminated, and the restart address is set as the restart address obtained by adding 8 to the address written in the command address holding unit IAD.

【0087】(4)それから実行モードをシングルモー
ドとし、命令を1つ1つ順次実行させ、例外発生中の命
令を検出する。そしてそれに対応する処理を行い、リク
エスト再出部SADQによりこの例外の発生した命令を
再実行し、復帰する。
(4) Then, the execution mode is set to the single mode, the instructions are sequentially executed one by one, and the instruction in which the exception is occurring is detected. Then, the corresponding process is performed, the request reissue unit SADQ re-executes the instruction in which this exception occurred, and returns.

【0088】なお上記説明は命令長が4バイトの例につ
いて説明したが、本発明は勿論これのみに限定されるも
のではない。
In the above description, the instruction length is 4 bytes, but the present invention is not limited to this.

【0089】[0089]

【発明の効果】請求項1及び請求項2に記載された本発
明によれば、スーパースカラ制御における命令列中に各
種の割込みが発生した場合、複雑な命令コードを解析す
ることなく、高速に割込み処理を実行することが可能と
なる。
According to the present invention described in claim 1 and claim 2, when various interrupts occur in the instruction sequence in the superscalar control, the complicated instruction code is not analyzed at high speed. It becomes possible to execute interrupt processing.

【0090】請求項3に記載された本発明によれば演算
命令のみを完了させたり、ロードストア命令のみを完了
させることができる。請求項4に記載された本発明によ
れば、保留中のリクエスト及びゼネラルレジスタへの書
込みを完了させることができる。
According to the present invention described in claim 3, it is possible to complete only the operation instruction or the load / store instruction. According to the present invention described in claim 4, the pending request and the writing to the general register can be completed.

【0091】請求項5に記載された本発明によれば例外
がスカラ実行時に発生したのか、シングル実行時に発生
したのか判断し、また例外処理からの再開処理を変更で
きる。
According to the present invention described in claim 5, it is possible to judge whether the exception occurred at the time of scalar execution or at the time of single execution, and change the process of restarting from the exception process.

【0092】請求項6に記載された本発明によれば、ス
カラ実行のときの命令列の順序が演算命令→ロードスト
ア命令の順か、この逆のロードストア命令→演算命令の
順か判断でき、例外処理からの再開処理を変更すること
ができる。
According to the present invention described in claim 6, it is possible to judge whether the order of the instruction sequence at the time of scalar execution is the order of operation instruction → load store instruction or the reverse order of load store instruction → operation instruction. , It is possible to change the restart processing from exception processing.

【0093】請求項7に記載された本発明によれば、演
算命令でオーバーフローの如き例外が発生したとき同時
に実行中のロードストア命令のリクエストを抑制し、リ
クエストによる例外を防止し、リクエストの再投入が可
能となる。
According to the present invention described in claim 7, when an exception such as an overflow occurs in an operation instruction, the request of the load / store instruction being executed at the same time is suppressed, the exception due to the request is prevented, and the request is re-executed. Can be input.

【0094】請求項8に記載された本発明によれば、ス
ーパースカラ実行中の命令列のうちからロードストア命
令または演算命令のいずれかあるいは両方の命令実行完
了をキャンセルすることができる。
According to the present invention described in claim 8, it is possible to cancel the instruction execution completion of either or both of the load / store instruction and the operation instruction from the instruction sequence during the superscalar execution.

【0095】請求項9に記載された本発明によれば命令
実行中に例外を検出した場合に、どの命令から再フェッ
チできるか判別し、正しい再開処理ができる。請求項1
0に記載された本発明によれば、命令の切れ目に例外を
検出した場合に、どの命令から再フェッチできるのか判
別し、正しい再開処理ができる。
According to the present invention described in claim 9, when an exception is detected during the execution of an instruction, it is determined from which instruction the instruction can be refetched, and the correct restart processing can be performed. Claim 1
According to the present invention described in No. 0, when an exception is detected at the break of an instruction, it is possible to determine from which instruction the instruction can be refetched, and the correct restart processing can be performed.

【0096】請求項11に記載された本発明によれば、
命令の切れ目に例外を検出した場合に、ロードストア命
令より再フェッチすることができる。請求項12に記載
された本発明によれば、割込み時の状態を単純化した状
態で再度割込みを発生させることができる。
According to the present invention described in claim 11,
When an exception is detected at an instruction break, it can be refetched from the load / store instruction. According to the twelfth aspect of the present invention, the interrupt can be generated again in a simplified state at the time of the interrupt.

【0097】請求項13に記載された本発明によればす
べて発行可能な命令を完了したのちに例外処理を行うこ
とができる。請求項14に記載された本発明によれば、
シングルモードで再度例外を発生させてその例外処理を
行ってから、スカラモードに戻して再開処理を効率的に
行うことができる。
According to the thirteenth aspect of the present invention, exception processing can be performed after completion of all issuable instructions. According to the present invention described in claim 14,
It is possible to generate an exception again in the single mode, perform the exception processing, and then return to the scalar mode to efficiently perform the restart processing.

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

【図1】本発明の原理図である。FIG. 1 is a principle diagram of the present invention.

【図2】パイプラインにおいて同時実行の命令シーケン
スのパターン説明図である。
FIG. 2 is an explanatory diagram of patterns of instruction sequences for simultaneous execution in a pipeline.

【図3】パイプラインのステージと割込みタイミング説
明図である。
FIG. 3 is an explanatory diagram of pipeline stages and interrupt timings.

【図4】本発明を実施したデータ処理装置の概略図であ
る。
FIG. 4 is a schematic diagram of a data processing device embodying the present invention.

【図5】本発明の一実施例構成図である。FIG. 5 is a configuration diagram of an embodiment of the present invention.

【図6】本発明のリクエスト制御回路構成図である。FIG. 6 is a block diagram of a request control circuit according to the present invention.

【図7】命令の実行中に割込みが発生した場合(リクエ
スト命令による例外)の本発明の動作説明図である。
FIG. 7 is an operation explanatory diagram of the present invention when an interrupt occurs during execution of an instruction (exception due to request instruction).

【図8】命令の切れ目で割込みが発生した場合(リクエ
ストTLBフォルト以外)の本発明の動作説明図であ
る。
FIG. 8 is an operation explanatory diagram of the present invention when an interrupt occurs at a break of an instruction (other than a request TLB fault).

【図9】命令切れ目で割込みが発生した場合(LS命令
で例外が発生)の本発明の動作説明図である。
FIG. 9 is an operation explanatory diagram of the present invention when an interrupt occurs at an instruction break (an exception occurs at an LS instruction).

【図10】アドレス指定の例外(ADEX例外)あるい
はオペレーション例外(OPEX例外)の発生した場合
の本発明の動作説明図である。
FIG. 10 is an operation explanatory diagram of the present invention when an addressing exception (ADEX exception) or an operation exception (OPEX exception) occurs.

【図11】命令系の例外が発生した場合の本発明の動作
説明図である。
FIG. 11 is an explanatory diagram of the operation of the present invention when an instruction type exception occurs.

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

IGM 発生タイミング指示部 IBB レジスタライト用のデータが記入されるレジス
タ A ライトパス IA0 命令アドレス保持部 RQA リクエストタイプ保持部 SEQ0 命令シーケンス保持部 MIE0 シングルスカラ実行保持部 RBA リードサイズ保持部 ACA ライトサイズ指示部 SAR リクエストアドレス保持部 LST2 リクエスト自動挿入指示部 SARQ リクエスト再出部 SADQ リクエスト再出部 IAD 命令アドレス保持部 RQD リクエストタイプ保持部 ACD サイズ保持部 SAD リクエストアドレス保持部 SEQD 命令シーケンス保持部 MIED シングルスカラ実行保持部 GRWD ゼネラルレジスタ書込指示部 R1WAD 演算命令用GR番号保持部 R1WLD ロード命令用GR番号保持部 PC パイプライン制御回路 LMC ロジック・マイクロプログラム保持部 SSMS スカラシングル実行制御部
IGM generation timing instruction section IBB Register to write data for writing A write path IA0 instruction address holding section RQA request type holding section SEQ0 instruction sequence holding section MIE0 single scalar execution holding section RBA read size holding section ACA write size instruction section SAR request address holding unit LST2 request automatic insertion instruction unit SARQ request re-output unit SADQ request re-output unit IAD instruction address holding unit RQD request type holding unit ACD size holding unit SAD request address holding unit SEQD instruction sequence holding unit MIED single scalar execution holding Section GRWD General register write instruction section R1WAD Operation instruction GR number storage section R1WLD Load instruction GR number storage section PC Pipeline Control circuit LMC logic microprogram holder SSMS scalar single execution control unit

フロントページの続き (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 丸山 拓巳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 ポーンチャイ・チョンスワンナパイサーン 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹下 克典 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 野中 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 石塚 孝治 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 惣川 淳 石川県金沢市増泉3丁目4番30号 株式会 社富士通北陸システムズ内Front page continuation (72) Toru Watanabe Inventor Toru Watanabe 1015 Kamiodanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture, Fujitsu Limited (72) Inventor, Takumi Maruyama 1015, Kamedotachu, Nakahara-ku, Kawasaki City, Kanagawa Prefecture (72) Invention Shinya Kato 1015 Kamiodanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture, Fujitsu Limited (72) Inventor Ponchai Chong Suvarna Paisan, 1015, Kamedotachu, Nakahara-ku, Kawasaki City, Kanagawa Prefecture, Fujitsu Limited (72) Katsunori Takeshita, Kanagawa 1015 Kamiodanaka, Nakahara-ku, Kawasaki-shi, Fukushima, Fujitsu Limited (72) Inventor Takumi Nonaka 1015 Kamiotanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Kanagawa, Ltd. Address within Fujitsu Limited (72) Inventor Atsushi Soukawa 3-4-30 Masuizumi, Kanazawa-shi, Ishikawa Stock Company within Fujitsu Hokuriku Systems

Claims (14)

【特許請求の範囲】[Claims] 【請求項1】 パイプラインでマクロ命令を実行し、更
に複数のマクロ命令を同時に実行可能であり、命令の例
外発生タイミングを知る発生タイミング指示部IGM
と、スカラ実行とシングル実行を制御するスカラシング
ル実行制御部を備え、分岐命令と後続の命令の間では割
込みを受けつけないプロセッサにおいて、 マイクロコードによりリードライト可能な、マクロ命令
の命令アドレスを保持する命令アドレス保持部IA0
と、 マイクロコードによるリードライト可能な、マクロ命令
のリクエストのタイプを保持するリクエストタイプ保持
部RQAと、 マイクロコードによりリードライト可能な、マクロ命令
の命令シーケンスを保持する命令シーケンス保持部SE
Q0と、 マイクロコードによりリードライト可能な、マクロ命令
がスカラ実行かシングル実行かを保持するシングルスカ
ラ実行保持部MIE0と、 マイクロコードによりリードライト可能な、マクロ命令
のリクエストのリードサイズを示すリードサイズ保持部
RBAと、 マイクロコードによりリードライト可能な、マクロ命令
のリクエストのライトサイズを示すライトサイズ保持部
ACAと、 マイクロコードによりリードライト可能な、上記リクエ
ストのアドレスを保持するリクエストアドレス保持部S
ARと、 マイクロコードによりリードライト可能な、マクロ命令
のリクエストがバウンダリを跨がる場合にリクエストが
2つに分割されたことを示し、ハードで後半のリクエス
トを自動的に挿入することを示すリクエスト自動挿入指
示部LST2と、 上記命令の例外発生タイミングが、命令実行途中である
場合、例外処理後に再度リクエストを出し直すことを可
能にするリクエスト再出部SARQとを具備したことを
特徴とするプロセッサ制御装置。
1. A generation timing instruction unit IGM capable of executing a macro instruction in a pipeline and further executing a plurality of macro instructions at the same time, and knowing an exception generation timing of the instruction.
And a scalar single execution controller that controls scalar execution and single execution, and holds the instruction address of a macro instruction that can be read and written by microcode in a processor that does not accept an interrupt between a branch instruction and a subsequent instruction. Instruction address holding unit IA0
And a request type holding unit RQA that holds a request type of a macro instruction that is readable and writable by microcode, and an instruction sequence holding unit SE that holds an instruction sequence of a macro instruction that is readable and writable by microcode
Q0, a single scalar execution holding unit MIE0 that can be read / written by microcode and holds whether the macro instruction is scalar execution or single execution, and a read size that indicates the read size of a macro instruction request that can be read / written by microcode. A holding unit RBA, a write size holding unit ACA that is readable and writable by microcode and that indicates the write size of a request for a macro instruction, and a request address holding unit S that is readable and writable by microcode and that holds the address of the request.
A request that indicates that the request is divided into two when the AR and microcode readable / writable macro instruction requests cross the boundary, and that the latter half of the request is automatically inserted by hardware. A processor including an automatic insertion instructing unit LST2 and a request reissue unit SARQ that enables reissuing a request after exception processing when the exception occurrence timing of the above instruction is in the middle of instruction execution Control device.
【請求項2】 マイクロコードによりリード可能な、マ
クロ命令の命令アドレス又はそれを含む命令列の先頭ア
ドレスを保持する命令アドレス保持部IADと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列のリクエストのタイプを保持
するリクエストタイプ保持部RQDと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列のリクエストのサイズを保持
するサイズ保持部ACDと、 マイクロコードによりリードライト可能な、上記リクエ
ストのアドレスを保持するリクエストアドレス保持部S
ADと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列の命令シーケンスを保持する
命令シーケンス保持部SEQDと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列がスカラ実行かシングル実行
かを保持するシングルスカラ実行保持部MIEDと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列によるゼネラルレジスタ書込
みがあることを示すゼネラルレジスタ書込指示部GRW
Dと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列のうち演算命令のゼネラルレ
ジスタ書込み番号を保持する演算命令用GR番号保持部
R1WADと、 マイクロコードによりリードライト可能な、マクロ命令
あるいはそれを含む命令列のうちロード命令のゼネラル
レジスタ書込み番号を保持するロード命令用GR番号保
持部R1WLDと、 上記命令の例外発生タイミングが命令の切れ目である場
合、例外処理後に再度リクエストを出し直すことを可能
とするリクエスト再出部SADQとを具備したことを特
徴とする請求項1記載のプロセッサ制御装置。
2. An instruction address holding unit IAD, which holds an instruction address of a macro instruction or a start address of an instruction string including the instruction, which can be read by microcode, and a macro instruction which can be read / written by microcode, or includes the instruction. A request type holding unit RQD that holds the type of request of the instruction sequence, a size holding unit ACD that holds the size of the macro instruction or the request of the instruction sequence that includes it that can be read / written by microcode, and read / write by microcode A possible request address holding unit S that holds the address of the above request
AD, an instruction sequence holding unit SEQD that holds an instruction sequence of a macro instruction or an instruction sequence including the macro instruction that is readable and writable by microcode, and a macro instruction that is readable and writable by the microcode or an instruction sequence that includes the scalar is a scalar. A single scalar execution holding unit MIED for holding execution or single execution, and a general register write instructing unit GRW indicating that there is a general register write by a macro instruction or an instruction sequence including the same that can be read / written by microcode
D, a macro instruction readable / writable by microcode, a GR number holding unit R1WAD for an operation instruction that holds a general register write number of an operation instruction in an instruction sequence including the macro instruction, and a macro readable / writable by microcode GR number holding unit R1WLD for load instruction that holds the general register write number of the load instruction in the instruction or the instruction sequence including it, and if the exception occurrence timing of the above instruction is the break of the instruction, the request is issued again after the exception processing 2. The processor control device according to claim 1, further comprising a request re-output unit SADQ that enables correction.
【請求項3】 スカラ実行中の命令のうち、ロード命令
用GR番号保持部R1WLD及びリクエストタイプ保持
部RQDをクリアした後、リクエスト再出部SADQを
動作させることにより演算命令のみを完了させることが
でき、演算命令用GR番号保持部R1WADをクリアし
てリクエスト再出部SADQを動作させることによりロ
ードストア命令のみを完了することを可能にした請求項
2記載のプロセッサ制御装置。
3. Among the instructions being executed by the scalar, after clearing the GR number holding unit R1WLD for the load instruction and the request type holding unit RQD, only the operation instruction can be completed by operating the request reissue unit SADQ. 3. The processor control device according to claim 2, which is capable of completing the load / store instruction only by clearing the operation instruction GR number holding unit R1WAD and operating the request reissue unit SADQ.
【請求項4】 マクロ命令途中の例外に対して再開処理
時、リクエスト再出部SADQと、リクエスト再出部S
ARQを連続して動作させることにより保留中のリクエ
スト及びゼネラルレジスタへの書込みを完了できるよう
に構成したことを特徴とする請求項2記載のプロセッサ
制御装置。
4. A request re-output unit SADQ and a request re-output unit S during restart processing for an exception in the middle of a macro instruction.
3. The processor control device according to claim 2, wherein the pending request and the write to the general register can be completed by continuously operating the ARQ.
【請求項5】 マクロ命令途中の例外に対しては、上記
シングルスカラ実行保持部MIE0をチェックしてこれ
が例えば「1」のときその例外がスカラ実行時に発生
し、「0」のときその例外がシングル実行時に発生した
と判断し、マクロ命令の切れ目の例外に対しては上記シ
ングルスカラ実行保持部MIEDをチェックしてこれが
例えば「1」のとき、その例外がスカラ実行時に発生
し、「0」のときその例外がシングル実行時に発生した
ものと判断し、例外処理からの再開処理を変更できるよ
うにしたことを特徴とする請求項2記載のプロセッサ制
御装置。
5. For an exception in the middle of a macro instruction, the single scalar execution holding unit MIE0 is checked, and when it is "1", the exception occurs at the time of scalar execution, and when it is "0", the exception is raised. It is determined that the exception occurred at the time of single execution, and the single scalar execution holding unit MIED is checked for the exception at the break of the macro instruction. When this is "1", the exception occurs at the time of scalar execution, and "0". 3. The processor control device according to claim 2, wherein at that time, the exception is judged to have occurred at the time of single execution, and the restart processing from the exception processing can be changed.
【請求項6】 シングルスカラ実行保持部MIE0をチ
ェックしてこれが例えば「1」のとき上記命令シーケン
ス保持部SEQ0をチェックして、例外を発生したスカ
ラ実行命令列の命令順序は、この命令シーケンス保持部
SEQ0が例えば「1」のとき演算命令→ロードストア
命令の順であり、これが「0」のときロードストア命令
→演算命令の順であることを示し、またシングルスカラ
実行保持部MIEDをチェックしてこれが例えば「1」
のとき上記命令シーケンス保持部SEQDをチェックし
て、例外を発生したスカラ実行命令列の命令順序は、こ
の命令シーケンス保持部SEQDが例えば「1」のとき
演算命令→ロードストア命令の順であり、これが「0」
のときロードストア命令→演算命令の順であることを示
し、これらの情報により例外処理からの再開処理を変更
できるようにしたことを特徴とする請求項2記載のプロ
セッサ制御装置。
6. A single scalar execution holding unit MIE0 is checked, and when it is, for example, "1", the instruction sequence holding unit SEQ0 is checked, and the instruction sequence of the scalar execution instruction string in which the exception has occurred is the instruction sequence holding. When the part SEQ0 is, for example, "1", it is in the order of operation instruction → load / store instruction, and when it is "0", it is in the order of load / store instruction → operation instruction, and the single scalar execution holding unit MIED is checked. This is, for example, "1"
When the instruction sequence holding unit SEQD is “1”, for example, the instruction sequence holding unit SEQD checks the instruction sequence holding unit SEQD, and the instruction sequence of the scalar execution instruction sequence in which the exception occurs is the order of operation instruction → load store instruction, This is "0"
3. The processor control device according to claim 2, wherein the order is such that the load / store instruction is followed by the operation instruction, and the restart processing from the exception processing can be changed by these pieces of information.
【請求項7】 演算命令で例外が発生した場合、同時に
実行中のロードストア命令のリクエストを抑止し、リク
エストによる例外は発生しないようにして、リクエスト
の再投入を可能としたことを特徴とする請求項2記載の
プロセッサ制御装置。
7. When an exception occurs in an operation instruction, the request for the load / store instruction that is being executed at the same time is suppressed so that the exception due to the request does not occur and the request can be re-injected. The processor control device according to claim 2.
【請求項8】 演算命令で例外が発生した場合、同時に
実行中のロードストア命令のリクエストを抑止し、リク
エストによる例外は発生しないようにし、スカラ実行中
の命令列のうち、ロードストア命令又は演算命令のいず
れかあるいは両方の命令実行完了をキャンセルすること
を可能にしたことを特徴とする請求項2記載のプロセッ
サ制御装置。
8. When an exception occurs in an operation instruction, a request for a load / store instruction that is being executed at the same time is suppressed so that an exception due to the request does not occur. 3. The processor control apparatus according to claim 2, wherein it is possible to cancel the instruction execution completion of either or both of the instructions.
【請求項9】 命令実行中に例外を検出した場合、 シングル実行ならば命令アドレス保持部IA0に保持さ
れたアドレスをもとに例外を発生した命令の次の命令か
ら再フェッチを行い、 スカラ実行でロードストア命令で例外が発生し、スカラ
命令列がロードストア命令、演算命令、分岐命令の順で
ある場合、ロードストア命令のみ完了させ、演算命令か
ら再フェッチを行い、 スカラ実行でロードストア命令で例外が発生し、スカラ
命令列が演算命令、ロードストア命令、分岐命令の順で
ある場合演算命令とロードストア命令を完了させ、分岐
命令から再フェッチを行うようにしたことを特徴とする
請求項2記載のプロセッサ制御装置。
9. When an exception is detected during instruction execution, if single execution is performed, refetch is performed from the instruction next to the instruction that generated the exception based on the address held in the instruction address holding unit IA0, and scalar execution is performed. When a load / store instruction causes an exception and the scalar instruction sequence is in the order of load / store instruction, operation instruction, and branch instruction, only the load / store instruction is completed, refetch is performed from the operation instruction, and the load / store instruction is executed by the scalar execution. When an exception occurs in the scalar instruction sequence and the scalar instruction sequence is in the order of the operation instruction, the load store instruction, and the branch instruction, the operation instruction and the load store instruction are completed, and the refetch is performed from the branch instruction. Item 2. The processor control device according to item 2.
【請求項10】 命令の切れ目に例外を検出した場合、 シングル実行ならば、次命令即ち命令アドレス保持部I
A0に保持されたアドレスから再フェッチを行い、 スカラ実行でロードストア命令で例外が発生し、スカラ
命令列がロードストア命令、演算命令、分岐命令の順で
ある場合、ロードストア命令のみ完了させ、演算命令か
ら再フェッチを行いスカラ実行でロードストア命令で例
外が発生し、スカラ命令列が演算命令、ロードストア命
令、分岐命令の順である場合、演算命令とロードストア
命令を完了させ、分岐命令から再フェッチを行うように
したことを特徴とする請求項2記載のプロセッサ制御装
置。
10. When an exception is detected at the break of an instruction and if it is a single execution, the next instruction, that is, the instruction address holding unit I.
When refetching is performed from the address held in A0, an exception occurs in the load / store instruction during scalar execution, and the scalar instruction string is in the order of load / store instruction, operation instruction, and branch instruction, only the load / store instruction is completed. If an exception occurs in the load / store instruction due to refetching from the operation instruction and scalar execution, and the scalar instruction sequence is in the order of operation instruction, load / store instruction, and branch instruction, the operation instruction and load / store instruction are completed, and the branch instruction 3. The processor control device according to claim 2, wherein the refetch is performed from the.
【請求項11】 命令の切れ目に例外を検出した場合、 スカラ実行で演算命令で例外が発生し、スカラ命令列が
演算命令、ロードストア命令、分岐命令の順である場
合、演算命令のみを完了させ、ロードストア命令から再
フェッチを行い、 スカラ実行で演算命令で例外が発生し、スカラ命令列が
ロードストア命令、演算命令、分岐命令の順である場
合、実行モードをシングルモードにして再度ロードスト
ア命令から再フェッチを行うようにしたことを特徴とす
る請求項2記載のプロセッサ制御装置。
11. When an exception is detected at an instruction break, an exception occurs in an arithmetic instruction during scalar execution, and when the scalar instruction sequence is an arithmetic instruction, a load store instruction, and a branch instruction, only the arithmetic instruction is completed. If the exception occurs in the arithmetic instruction during scalar execution and the scalar instruction sequence is load / store instruction, arithmetic instruction, branch instruction in that order, set the execution mode to single mode and reload. The processor control device according to claim 2, wherein refetching is performed from a store instruction.
【請求項12】 スカラ実行時に、アドレス指定例外あ
るいはオペレーション例外で割込みが発生した場合に
は、実行モードをシングルモードにして次命令から再フ
ェッチを行い割込み時の状態を単純化した状態で再度割
込みを発生させるようにしたことを特徴とする請求項2
記載のプロセッサ制御装置。
12. When a scalar execution causes an interrupt due to an addressing exception or an operation exception, the execution mode is set to single mode, refetching is performed from the next instruction, and the interrupted state is simplified again. 3. The method according to claim 2, wherein
A processor controller as described.
【請求項13】 スカラ実行時に、命令系の例外が発生
した場合には、ロードストア命令及び演算命令は完了さ
せ、実行モードをシングルモードにして、以降の命令か
ら再フェッチを行い、すべての発行可能な命令を完了し
たのち例外処理を行うようにしたことを特徴とする請求
項2記載のプロセッサ制御装置。
13. When a scalar type instruction causes an instruction-type exception, the load / store instruction and operation instruction are completed, the execution mode is set to single mode, refetching is performed from the subsequent instructions, and all issues are issued. The processor control device according to claim 2, wherein exception processing is performed after completion of possible instructions.
【請求項14】 シングルモードで再度例外が発生し、
処理を完了したらその再開処理時にスカラモードに戻す
ことを特徴とする請求項2記載のプロセッサ制御装置。
14. The exception occurs again in the single mode,
The processor control device according to claim 2, wherein when the processing is completed, the scalar mode is returned to at the time of the restart processing.
JP13704294A 1994-06-20 1994-06-20 Processor controller Withdrawn JPH086790A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13704294A JPH086790A (en) 1994-06-20 1994-06-20 Processor controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13704294A JPH086790A (en) 1994-06-20 1994-06-20 Processor controller

Publications (1)

Publication Number Publication Date
JPH086790A true JPH086790A (en) 1996-01-12

Family

ID=15189512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13704294A Withdrawn JPH086790A (en) 1994-06-20 1994-06-20 Processor controller

Country Status (1)

Country Link
JP (1) JPH086790A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226014A (en) * 2022-12-16 2023-06-06 成都海光集成电路设计有限公司 Method and device for processing overflow under credit management and related equipment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226014A (en) * 2022-12-16 2023-06-06 成都海光集成电路设计有限公司 Method and device for processing overflow under credit management and related equipment

Similar Documents

Publication Publication Date Title
US5907860A (en) System and method of retiring store data from a write buffer
US7571304B2 (en) Generation of multiple checkpoints in a processor that supports speculative execution
US5471598A (en) Data dependency detection and handling in a microprocessor with write buffer
JP3588755B2 (en) Computer system
US6138230A (en) Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline
US5142634A (en) Branch prediction
JP3781052B2 (en) Superscaler microprocessor
US5630149A (en) Pipelined processor with register renaming hardware to accommodate multiple size registers
EP0649085B1 (en) Microprocessor pipe control and register translation
US7330963B2 (en) Resolving all previous potentially excepting architectural operations before issuing store architectural operation
US7624253B2 (en) Determining register availability for register renaming
US7363477B2 (en) Method and apparatus to reduce misprediction penalty by exploiting exact convergence
US5740398A (en) Program order sequencing of data in a microprocessor with write buffer
EP0651331B1 (en) A write buffer for a superpipelined, superscalar microprocessor
US5615402A (en) Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
JPH1021074A (en) Interrupt control system, processor and computer system
JP3800533B2 (en) Program counter control method and processor
US5841999A (en) Information handling system having a register remap structure using a content addressable table
JPH086790A (en) Processor controller
JP3748191B2 (en) Computer and its control method
JPH05307483A (en) Method and circuit for controlling write-in to register

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010904