JP3146058B2 - Parallel processing type processor system and control method of parallel processing type processor system - Google Patents

Parallel processing type processor system and control method of parallel processing type processor system

Info

Publication number
JP3146058B2
JP3146058B2 JP08249092A JP8249092A JP3146058B2 JP 3146058 B2 JP3146058 B2 JP 3146058B2 JP 08249092 A JP08249092 A JP 08249092A JP 8249092 A JP8249092 A JP 8249092A JP 3146058 B2 JP3146058 B2 JP 3146058B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
processing
trap
processor system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP08249092A
Other languages
Japanese (ja)
Other versions
JPH05181676A (en
Inventor
健 相川
健二 皆川
光男 斎藤
譲治 武田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP08249092A priority Critical patent/JP3146058B2/en
Publication of JPH05181676A publication Critical patent/JPH05181676A/en
Application granted granted Critical
Publication of JP3146058B2 publication Critical patent/JP3146058B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、命令レベルでの並列実
行を行うための並列処理型プロセッサシステムに関し、
より詳細には、並列処理型プロセッサシステムにおける
トラップ処理とストール処理の制御機能に関するもので
ある。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel processing type processor system for executing instructions at a parallel level.
More specifically, the present invention relates to a function for controlling trap processing and stall processing in a parallel processing type processor system.

【0002】[0002]

【従来の技術】近年、高速パーソナルコンピュータに対
して高まりつつある要望に応るものとして、機械語命令
レベルで並列処理が可能なスーパースカラプロセッサあ
るいはVLIWと呼ばれるCPUが開発されVLSIチ
ップとして実現されている。この様な並列処理CPUに
おいては、RISCの命令を基本的な命令セットとして
用い、複数命令を同時にフェッチ、実行することによ
り、処理性能を向上させている。特に、スーパースカラ
プロセッサは、従来の命令レベルで逐次処理を行うRI
SCを実現しユーザプログラムレベルで互換性を保つこ
とが可能なようなアーキテクチャを有し、計算機ユーザ
ーからの期待が高い。
2. Description of the Related Art In recent years, a CPU called a super scalar processor or VLIW capable of parallel processing at a machine language instruction level has been developed and realized as a VLSI chip in order to meet a growing demand for a high-speed personal computer. I have. In such a parallel processing CPU, the RISC instruction is used as a basic instruction set, and a plurality of instructions are simultaneously fetched and executed, thereby improving the processing performance. In particular, the super scalar processor is an RI that performs sequential processing at the conventional instruction level.
It has an architecture that realizes SC and can maintain compatibility at the user program level, and is highly expected by computer users.

【0003】このような従来のトラップ制御方法を採用
する命令レベルで並列処理を行うことができるプロセッ
サシステムは、図19に示すような構成を有している。
A processor system capable of performing parallel processing at an instruction level employing such a conventional trap control method has a configuration as shown in FIG.

【0004】この図19の構成は、命令レベルで並列処
理を実行可能なプロセッサシステムを実現するものであ
り、Fステージ(フェッチ)、Dステージ(デコー
ド)、Eステージ(実行)、Mステージ(メモリアクセ
ス)及びWステージ(レジスタライトバック)の5段の
パイプラインステージを有し、各命令の長さが1ワード
長(32ビット)である。
The configuration shown in FIG. 19 realizes a processor system capable of executing parallel processing at the instruction level, and includes an F stage (fetch), a D stage (decode), an E stage (execution), and an M stage (memory). Access) and W stage (register write back), each of which has five pipeline stages, and each instruction is one word long (32 bits).

【0005】図19に示されるように、このプロセッサ
システムは、命令を格納するための命令メモリ1と;F
ステージで4ワードバウンダリの4つの命令を命令メモ
リ1から同時にフェッチし、Dステージで4つのフェッ
チされた命令間のデータ依存関係及び制御依存関係を考
慮し、Eステージで命令供給線20、21、22及び2
3を介して実行可能な命令を供給する命令発行ユニット
2と;命令供給線20及び21から供給される命令に従
って、Eステージで算術論理演算及びメモリアドレス計
算を実行する算術論理演算ユニット(ALU0及びALU1)3
及び4と;命令供給線22から供給される命令に従って
Eステージで浮動小数点加減算を行う浮動小数点加算器
(FADD)5と;命令供給線23から供給される命令に従
ってEステージで浮動小数点乗除算を行う浮動小数点乗
算器(FMUL)6と;ALU03及びALU14の出力に従って、
Mステージで2ポートデータメモリ25に対してメモリ
アクセス処理を行うメモリアクセスユニット(MA0 及び
MA1 )7及び8と;FADD5及びFMUL6の出力に従って、
各々のMステージでの浮動小数点計算における例外チェ
ックを行うための浮動小数点例外チェックユニット(EC
1 及びEC2 )9及び10と;WステージでMA0 7、MA1
8、EC1 9及びEC2 10の出力を受ける4つの書き込み
ポートと、Eステージでオペランドデータ供給線12〜
19を介してALU03、ALU14、FADD5及びFMUL6へオペ
ランドデータを供給するための8つの読み込みポートと
からなる12のポートを有するマルチポートレジスタフ
ァイル11と、を備えている。
As shown in FIG. 19, this processor system has an instruction memory 1 for storing instructions;
At the stage, four instructions of a four-word boundary are fetched from the instruction memory 1 at the same time, and at the D stage, the instruction supply lines 20, 21, 22 and 2
An instruction issuing unit 2 for supplying an executable instruction via an instruction supply line 3; an arithmetic logic unit (ALU0 and ALU1) 3
A floating point adder (FADD) 5 for performing floating point addition and subtraction at the E stage according to the instruction supplied from the instruction supply line 22; and performing floating point multiplication and division at the E stage according to the instruction supplied from the instruction supply line 23. A floating point multiplier (FMUL) 6 to perform; according to the outputs of ALU03 and ALU14,
A memory access unit (MA0 and MA0) that performs memory access processing on the 2-port data memory 25 in the M stage
MA1) 7 and 8; according to the output of FADD5 and FMUL6
Floating-point exception check unit (EC) for checking exceptions in floating-point calculations at each M stage
1 and EC2) 9 and 10; MA0, MA1 at W stage
8, EC1 9 and EC2 10, four write ports for receiving the outputs, and the E stage with operand data supply lines 12 to
And a multiport register file 11 having 12 ports consisting of 8 read ports for supplying operand data to ALU03, ALU14, FADD5, and FMUL6 via an interface 19.

【0006】この図19の構成においては、MA0 7及び
MA1 8によってページフォールトやオーバーフローなど
の算術演算例外トラップが発生し、又、EC1 9及びEC2
10によって浮動小数点演算例外トラップが発生する。
In the configuration of FIG. 19, MA07 and MA07
MA1 8 causes an arithmetic exception trap, such as a page fault or overflow, and EC19 and EC2
10 causes a floating point operation exception trap.

【0007】このような例外トラップに対処するため
に、このプロセッサシステムには更に、トラップ発生の
原因を格納するためのトラップ原因レジスタ30と、ト
ラップ発生を引き起こした命令のアドレスを格納するた
めのトラップアドレスレジスタ32と、トラップ要求信
号線43〜46を介して送られる、MA0 7、MA1 8、EC
1 9及びEC2 10からのトラップ原因を受け、それに応
じてトラップ信号をトラップ信号線34ー38にアサー
トし、信号線40及び42を介してトラップ原因レジス
タ30及びトラップアドレスレジスタ32への入力を適
宜発生させる、トラップ制御ユニット33と、を備えて
いる。
To cope with such an exception trap, the processor system further includes a trap cause register 30 for storing the cause of the trap and a trap for storing the address of the instruction causing the trap. MA0 7, MA18, EC sent via the address register 32 and the trap request signal lines 43 to 46
In response to the trap cause from 19 and EC2 10, the trap signal is asserted on the trap signal lines 34-38 in response to the input to the trap cause register 30 and the trap address register 32 via the signal lines 40 and 42 as appropriate. And a trap control unit 33 for generating the trap.

【0008】トラップ信号線34におけるトラップ信号
は、命令発行ユニット2、ALU03及びALU14へ送られ、
一方、トラップ信号線35〜38におけるトラップ信号
は、各々、MA0 7、MA1 8、EC1 9及びEC2 10へ送ら
れる。トラップ制御ユニット33からのトラップ信号に
応じて、実行無効化フラグが各部に立てられ、その後の
パイプラインステージでの命令の処理をアボートする一
方、命令発行ユニット2は予め定められたトラップ処理
ルーチンに関する命令フェッチを開始し、このトラップ
処理ルーチンにおいて、トラップ原因レジスタ30及び
トラップアドレスレジスタ32に格納されたトラップ原
因及びトラップアドレスが使用される。
The trap signal on the trap signal line 34 is sent to the instruction issuing unit 2, ALU03 and ALU14,
On the other hand, the trap signals on the trap signal lines 35 to 38 are sent to MA0 7, MA1 8, EC1 9 and EC2 10, respectively. In response to a trap signal from the trap control unit 33, an execution invalidation flag is set in each unit to abort the subsequent instruction processing in the pipeline stage, while the instruction issuing unit 2 relates to a predetermined trap processing routine. Instruction fetch is started, and in this trap processing routine, the trap cause and the trap address stored in the trap cause register 30 and the trap address register 32 are used.

【0009】更に詳細には、トラップ制御ユニット33
は図20に示されるような構成を有している。即ち、ト
ラップ制御ユニット33は更に、Mステージで現在実行
される命令のアドレスの下位2ビットを除くことによっ
て得られるワードアドレスの共通部分を格納するMステ
ージプログラムカウンタ(MPC )51と;Mステージで
MA0 7、MA1 8、EC1 9及びEC2 10によって現在実行
される命令のアドレスの下位2ビットによって示される
ワードアドレスの個別部分を格納するためのMステージ
サブプログラムカウンタ(submpc1, submpc2, submpc3
及びsubmpc4 )53、54、55及び56と;Mステー
ジサブプログラムカウンタ53〜56の中で最小のエン
トリを、MPC 51のエントリと組み合わされてトラップ
アドレスレジスタ32に供給されるトラップアドレス4
2を発生するための出力47として出力し、最小のエン
トリを有するMステージサブプログラムカウンタ53〜
56に対応するトラップ要求信号線43〜46のうちの
1つを介して送られるトラップ原因をトラップ原因レジ
スタ30に供給されるトラップ原因40として出力する
トラップデータ生成ユニット57を備えている。
More specifically, the trap control unit 33
Has a configuration as shown in FIG. That is, the trap control unit 33 further includes an M stage program counter (MPC) 51 for storing a common part of the word address obtained by removing the lower two bits of the address of the instruction currently executed in the M stage;
M stage subprogram counters (submpc1, submpc2, submpc3) for storing the individual parts of the word address indicated by the lower two bits of the address of the instruction currently executed by MA0 7, MA1 8, EC1 9 and EC2 10.
And submpc4) 53, 54, 55 and 56; the smallest entry among the M-stage subprogram counters 53 to 56 is combined with the entry of the MPC 51 and the trap address 4 to be supplied to the trap address register 32.
2 is output as an output 47 for generating 2 and the M-stage subprogram counter 53-
A trap data generation unit 57 that outputs a trap cause sent via one of the trap request signal lines 43 to 46 corresponding to 56 as a trap cause 40 supplied to the trap cause register 30 is provided.

【0010】ここで、トラップ信号線34におけるトラ
ップ信号はトラップ要求信号線43〜46のいずれか1
つからトラップ原因を受けた時にアサートされ、各トラ
ップ信号35〜38は、トラップ要求信号線43〜46
の1つからトラップ要求を受け、対応するMステージサ
ブプログラムカウンタ53〜56の1つが、トラップ要
求を発生したMステージサブプログラムカウンタ35〜
56のうちの1つにおけるエントリより大きいか又は等
しいエントリを有する時にアサートされる。
The trap signal on the trap signal line 34 is one of the trap request signal lines 43 to 46.
, Is asserted when a trap cause is received, and each of the trap signals 35 to 38 is set to a trap request signal line 43 to 46.
And the corresponding one of the M-stage subprogram counters 53 to 56 receives the trap request from one of the M-stage subprogram counters 35 to 56 that have generated the trap request.
Asserted when it has an entry that is greater than or equal to an entry in one of 56.

【0011】図21は図19のプロセッサシステムによ
って実行されるプログラムの一例を示す図であり、図2
2は、上述の従来のトラップ制御方法を用いた図19の
プロセッサシステムによるパイプライン処理において、
図21のプログラムが実行された時に「load」命令でペ
ージフォールトが起こった場合の進行状況を示すもので
あり、斜線部分はアボートされた命令を示す。図22に
示すように、従来のトラップ制御においては、プログラ
ム実行の進行中にn+2 番目の「load」命令の実行により
トラップが発生したとき、命令番号がn+2 より大きいか
又は等しい命令だけがアボートされる。
FIG. 21 is a diagram showing an example of a program executed by the processor system of FIG.
2 is a pipeline processing by the processor system of FIG. 19 using the above-described conventional trap control method.
21 shows the progress of a page fault caused by the "load" instruction when the program of FIG. 21 is executed, and the hatched portion indicates the aborted instruction. As shown in FIG. 22, in the conventional trap control, when a trap occurs due to execution of an (n + 2) th “load” instruction while program execution is in progress, an instruction having an instruction number greater than or equal to n + 2 is executed. Only aborted.

【0012】[0012]

【発明が解決しようとする課題】しかしながら、このよ
うな従来のトラップ制御方法においては、C+3 サイクル
目にがMA1 8によってページフォールトが検出されてト
ラップ要求がトラップ要求線44を介して示されたとき
に、トラップ信号線35〜38におけるトラップ信号は
Mステージサブプログラムカウンタ53〜56における
エントリが互いに比較されてどれがどれより大きいかが
決定されるまで決められず、そのような比較処理を施す
サイクル時間がかなり長くなるためにクロック周波数の
低下を引き起こすという問題があった。
However, in such a conventional trap control method, a page fault is detected by the MA18 at the C + 3 cycle, and a trap request is indicated via the trap request line 44. The trap signals on the trap signal lines 35-38 are not determined until the entries in the M-stage subprogram counters 53-56 are compared with each other to determine which is greater, and such a comparison process is performed. There is a problem that the clock frequency is reduced because the cycle time is considerably long.

【0013】又、RISCは、単純なデータパス及び簡
易な制御回路を有する構成を必要としており、複数のR
ISCデータパスを有するスーパースカラプロセッサの
データパスはさほど複雑ではないが、スーパースカラプ
ロセッサの制御回路は、命令供給制御等を必要とするた
めに非常に複雑となる。特に、OSのようなソフトウエ
アのサポートがないと処理の続行が不可能になる、いわ
ゆる例外と呼ばれるケースの処理のためのハードウェア
が非常に複雑になり、そのようなハードウエアの設計に
非常に時間を要するために、このようなハードウェアが
スーパースカラプロセッサの実現におけるクリチカルパ
スとなる場合が多いという問題があった。
The RISC requires a configuration having a simple data path and a simple control circuit.
Although the data path of a superscalar processor having an ISC data path is not so complicated, the control circuit of the superscalar processor is very complicated because it requires instruction supply control and the like. In particular, without the support of software such as an OS, it is impossible to continue processing, and the hardware for processing a so-called exception case becomes very complicated, and the design of such hardware becomes very complicated. However, there is a problem that such hardware often becomes a critical path in the realization of a superscalar processor.

【0014】本発明は、この様な従来技術の課題を解決
するためになされたもので、サイクル時間を増加させる
ことなく処理可能で、システムにおけるクロック周波数
の低下を防げるようなトラップ及びストール制御機能を
組み込んだ、スーパースカラプロセッサ等の並列処理型
プロセッサシステムを提供することを目的とするもので
ある。
The present invention has been made to solve such problems of the prior art, and has a trap and stall control function capable of processing without increasing the cycle time and preventing a decrease in clock frequency in the system. It is an object of the present invention to provide a parallel processing type processor system, such as a superscalar processor, which incorporates a processor.

【0015】 [発明の構成][Configuration of the Invention]

【0016】[0016]

【課題を解決するための手段】上記課題を解決するため
本発明の並列処理型プロセッサシステムは、複数命令を
同時実行するN個(Nは整数)の演算器と、前記N個の
演算器により実行される命令を供給する命令供給手段
と、M個(N≧M、Mは整数)の命令が前記命令供給手
段から前記N個の演算器に同時に供給され、これらM個
の命令中の少なくとも一つの命令実行において処理例外
が発生したとき、前記N個の演算器に同時に供給された
前記M個の命令の処理を全てアボートするように前記N
個の演算器を制御するトラップ制御手段とを備えたこと
を特徴とする。
In order to solve the above-mentioned problems, a parallel processing type processor system according to the present invention comprises N (N is an integer) arithmetic units for simultaneously executing a plurality of instructions, and the N arithmetic units. Instruction supply means for supplying an instruction to be executed; and M (N ≧ M, M is an integer) instructions are simultaneously supplied from the instruction supply means to the N operation units, and at least one of the M instructions When a processing exception occurs in the execution of one instruction, the N instruction is executed so as to abort the processing of the M instructions supplied to the N arithmetic units at the same time.
And trap control means for controlling the number of arithmetic units.

【0017】又、本発明の並列処理型プロセッサシステ
ムの制御方法はN個の演算器にM個(N≧M)の命令を
同時に供給するステップと、これらM個の命令中の少な
くとも一つの命令実行において処理例外が発生したと
き、前記N個の演算器に同時に供給された前記M個の命
令の処理を全てアボートするように前記N個の演算器を
制御するステップとを備えたことを特徴とする。
Further, in the control method of the parallel processing type processor system according to the present invention, a step of simultaneously supplying M (N ≧ M) instructions to N arithmetic units, and at least one instruction among the M instructions And controlling the N arithmetic units so as to abort all the processing of the M instructions supplied to the N arithmetic units when a processing exception occurs in the execution. And

【0018】[0018]

【作用】本発明においては、命令供給手段によりN個の
演算器に同時に供給されたM個の命令の中の1つ以上の
命令実行過程で処理例外が発生したとき、同時に供給さ
れたM個の命令の実行をすべて中止する手段を備えたの
で、同時に演算器に供給されたM個の命令の処理過程で
どれか1つでも例外を発生したらM個の命令をすべてア
ボートしてOS内の処理ルーチンへディスパッチするこ
とにより、例外処理のためのハードウエアが簡単化され
る。
According to the present invention, when a processing exception occurs during the execution of one or more instructions among the M instructions simultaneously supplied to the N arithmetic units by the instruction supply means, the M simultaneously supplied instructions are output. Means for aborting the execution of all of the instructions, if at least one exception occurs during the processing of the M instructions supplied to the computing unit at the same time, all M instructions are aborted and the OS By dispatching to the processing routine, the hardware for exception handling is simplified.

【0019】[0019]

【実施例】以下、図1から図3を参照して、本発明に係
る並列処理型プロセッサシステムの第1の実施例を詳細
に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a first embodiment of a parallel processing type processor system according to the present invention will be described in detail with reference to FIGS.

【0020】この図1の構成は、命令レベルで並列処理
を行うことができるプロセッサシステムを実現するもの
であり、Fステージ(フェッチ)、Dステージ(デコー
ド)、Eステージ(実行)、Mステージ(メモリアクセ
ス)及びWステージ(レジスタライトバック)の5段の
パイプラインステージがあり、各命令の長さは1ワード
長(32ビット)である。
The configuration shown in FIG. 1 realizes a processor system capable of performing parallel processing at an instruction level, and includes an F stage (fetch), a D stage (decode), an E stage (execution), and an M stage ( There are five pipeline stages, a memory access) and a W stage (register write back), and each instruction is one word long (32 bits).

【0021】この第1実施例においては、図1に示すよ
うに、プロセッサシステムは、命令を格納するための命
令メモリ101と;Fステージで4ワードバウンダリの
4つの命令を命令メモリ101から同時にフェッチし、
Dステージで4つのフェッチされた命令間のデータ依存
関係及び制御依存関係を考慮し、Eステージで命令供給
線120、121、122及び123を介して実行可能
な命令を供給するためのする命令発行ユニット102
と;命令供給線120及び121から供給される命令に
従って、Eステージで算術論理演算及びメモリアドレス
計算を実行する算術論理演算ユニット(ALU0及びALU1)
103及び104と;命令供給線122から供給される
命令に従ってEステージで浮動小数点加減算を行う浮動
小数点加算器(FADD)105と;命令供給線123から
供給される命令に従ってEステージで浮動小数点乗除算
を行う浮動小数点乗算器(FMUL)106と;ALU0103
及びALU1104の出力に従って、Mステージで2ポート
データメモリ125に対するメモリアクセス処理を行う
メモリアクセスユニット(MA0 及びMA1 )107及び1
08と;FADD105及びFMUL106の出力に従って、各
々のMステージでの浮動小数点計算における例外チェッ
クを行うための浮動小数点例外チェックユニット(EC1
及びEC2 )109及び110と;WステージでMA0 10
7、MA1 108、EC1 109及びEC2 110の出力を受
ける4つの書き込みポートと、Eステージでオペランド
データ供給線112〜119を介してALU0103、ALU1
104、FADD105及びFMUL106へオペランドデータ
を供給するための8つの読み込みポートとからなる12
のポートを有するマルチポートレジスタファイル111
と、を備えている。
In the first embodiment, as shown in FIG. 1, a processor system includes an instruction memory 101 for storing instructions and four instructions of a 4-word boundary at the F stage from the instruction memory 101 at the same time. And
Instruction issuance to supply executable instructions via instruction supply lines 120, 121, 122 and 123 at E stage, taking into account data and control dependencies among the four fetched instructions at D stage Unit 102
Arithmetic logic units (ALU0 and ALU1) for executing arithmetic logic operations and memory address calculations in the E stage in accordance with the instructions supplied from the instruction supply lines 120 and 121
103 and 104; a floating point adder (FADD) 105 for performing floating point addition and subtraction at the E stage according to the instruction supplied from the instruction supply line 122; and floating point multiplication and division at the E stage according to the instruction supplied from the instruction supply line 123 Floating point multiplier (FMUL) 106 for performing ALU0103
And the memory access units (MA0 and MA1) 107 and 1 for performing a memory access process on the 2-port data memory 125 in the M stage according to the output of the ALU 1104
08; a floating-point exception check unit (EC1) for performing an exception check in the floating-point calculation in each M stage according to the output of the FADD 105 and the FMUL 106
And EC2) 109 and 110; MA0 10 at W stage
7, four write ports for receiving outputs of MA1 108, EC1 109 and EC2 110, and ALU0103 and ALU1 via operand data supply lines 112 to 119 in the E stage.
12 comprising eight read ports 104 for supplying operand data to 104, FADD 105 and FMUL 106
Multi-port register file 111 having three ports
And

【0022】この図1の構成においては、MA0 107及
びMA1 108によってページフォールトやオーバーフロ
ーなどの算術演算例外トラップが発生し、又、EC1 10
9及びEC2 110によって浮動小数点演算例外トラップ
が発生する。
In the configuration shown in FIG. 1, an arithmetic operation exception trap such as a page fault or an overflow is generated by MA0 107 and MA1 108, and EC1 10
9 and EC2 110 cause a floating point operation exception trap.

【0023】このような例外トラップに対処するため
に、このプロセッサシステムは更に、トラップ発生の原
因を格納するためのトラップ原因レジスタ130と;ト
ラップによって実行が遮断されている命令中で最も小さ
いアドレスを有する命令のアドレスを格納するためのア
ボートアドレスレジスタ131と;トラップ発生を起こ
した命令のアドレスを格納するためのトラップアドレス
レジスタ132と;トラップ要求信号線143〜146
を介して送られる、MA0 107、MA1 108、EC1 10
9及びEC2 110からのトラップ原因を受け、それに応
じてトラップ信号をトラップ信号線134を介してアサ
ートし、一方、信号線140、141及び142を介し
てトラップ原因レジスタ130、アボートアドレスレジ
スタ131、トラップアドレスレジスタ132への入力
を適宜発生させるトラップ制御ユニット133と、を備
えている。
To deal with such an exception trap, the processor system further includes a trap cause register 130 for storing the cause of the trap occurrence; An abort address register 131 for storing an address of an instruction having the same; a trap address register 132 for storing an address of an instruction causing a trap; and trap request signal lines 143 to 146.
MA0 107, MA1 108, EC1 10 sent via
9 and the trap cause from EC2 110 and asserts a trap signal accordingly via trap signal line 134, while trap cause register 130, abort address register 131, and trap signal via signal lines 140, 141 and 142. A trap control unit 133 for appropriately generating an input to the address register 132.

【0024】トラップ信号線134におけるトラップ信
号は、命令発行ユニット102、ALU0103、ALU110
4、FADD105、FMUL106、MA0 107、MA1 10
8、EC1 109及びEC2 110へ各々送られる。トラッ
プ制御ユニット133からのトラップ信号に応じて、実
行無効化フラグが各部に立てられ、その後のパイプライ
ンステージで命令の処理をアボートする一方、命令発行
ユニット102は予め定められたトラップ処理ルーチン
に関する命令フェッチを開始し、このトラップ処理ルー
チンにおいて、トラップ原因レジスタ130、アボート
アドレスレジスタ131及びトラップアドレスレジスタ
132に各々格納されているトラップ原因、アボートア
ドレス及びトラップアドレスが使用される。
The trap signal on the trap signal line 134 is transmitted to the instruction issuing unit 102, ALU0103, ALU110.
4, FADD105, FMUL106, MA0107, MA110
8, sent to EC1 109 and EC2 110, respectively. In response to a trap signal from the trap control unit 133, an execution invalidation flag is set in each unit, and the instruction processing is aborted in a subsequent pipeline stage, while the instruction issuing unit 102 executes an instruction related to a predetermined trap processing routine. Fetching is started, and in this trap processing routine, the trap cause, abort address, and trap address stored in the trap cause register 130, the abort address register 131, and the trap address register 132, respectively, are used.

【0025】更に詳細には、トラップ制御ユニット13
3は図2に示されるような構成を有している。即ち、ト
ラップ制御ユニット133は更に、Mステージで現在実
行される命令のアドレスの下位2ビットを除くことによ
って得られるワードアドレスの共通部分を格納するMス
テージプログラムカウンタ1(MPC )151と;Mステ
ージで現在実行される命令のうち最も小さいアドレスを
有する命令のアドレスの下位2ビットによって示される
ものであってMPC 151のエントリと組み合わされてア
ボートアドレスレジスタ131に供給されるアボートア
ドレスを発生することになるワードアドレスの個別部分
を格納するMステージプログラムカウンタ2(mpc )1
52と;MステージでMA0 107、MA1 108、EC1 1
09及びEC2 110によって現在実行される命令のアド
レスの下位2ビットによって示されるワードアドレスの
個別部分を格納するためのMステージサブプログラムカ
ウンタ(submpc1, submpc2, submpc3 及びsubmpc4 )1
53、154、155及び156と;Mステージサブプ
ログラムカウンタ153〜156の中で最小のエントリ
を、MPC 151のエントリと組み合わされてトラップア
ドレスレジスタ132に供給されるトラップアドレス1
42を発生するための出力147として出力し、最小の
エントリを有するMステージサブプログラムカウンタ1
53〜156に対応するトラップ要求信号線143〜1
46のうちの1つを介して送られるトラップ原因をトラ
ップ原因レジスタ130に供給されるトラップ原因14
0として出力するトラップデータ生成ユニット157
と;トラップ原因をトラップ要求信号線143〜146
のいずれか1つから受けたときにアサートされるトラッ
プ信号をトラップ信号線134に対して発生するトラッ
プ信号生成ユニット158と、を備えている。
More specifically, the trap control unit 13
3 has a configuration as shown in FIG. That is, the trap control unit 133 further includes an M stage program counter 1 (MPC) 151 for storing a common part of a word address obtained by removing the lower two bits of the address of the instruction currently executed in the M stage; To generate the abort address indicated by the lower two bits of the address of the instruction having the smallest address among the instructions currently executed and supplied to the abort address register 131 in combination with the entry of the MPC 151. M stage program counter 2 (mpc) 1 for storing an individual part of a word address
52; MA0 at the M stage, MA1 108, EC1 1
09 and M stage subprogram counters (submpc1, submpc2, submpc3 and submpc4) 1 for storing the individual parts of the word address indicated by the lower two bits of the address of the instruction currently being executed by EC2 110.
53, 154, 155, and 156; the smallest entry among the M stage subprogram counters 153 to 156 is combined with the entry of the MPC 151 to provide the trap address 1 supplied to the trap address register 132.
M-stage subprogram counter 1 with the smallest entry, output as output 147 to generate
Trap request signal lines 143-1 corresponding to 53-156
The trap cause sent via one of the trap causes 14 is provided to trap cause register 130.
Trap data generation unit 157 that outputs as 0
The trap cause signal lines 143 to 146
And a trap signal generation unit 158 that generates a trap signal asserted when received from any one of the trap signal lines 134.

【0026】図3は、図1のプロセッサシステムにおけ
るパイプライン処理において、前記図21のプログラム
が実行された時に「load」命令でページフォールトが起
こった場合の進行状況をしめすものであり、斜線部分は
アボートされた命令を示す。図3に示すように、図1の
第1実施例においては、プログラム実行の進行中にn+2
番目の「load」命令の実行によりトラップが発生したと
き、トラップを引き起こしているn+2 番目の命令と同時
にフェッチされた命令番号がn からn+3 の命令全てがア
ボートされる。図22に示される従来の場合と比較する
と、アボートされる命令の数が従来の場合の方が少ない
ので従来の場合の方が効率的であると思われるかも知れ
ないが、既に述べたように従来の場合は適切なトラップ
信号を決定する時間が必要なために、従来の場合の方が
この第1実施例よりサイクル時間が長くなり、実際には
この第1実施例の方が効率が高くなる。
FIG. 3 shows the progress of the pipeline processing in the processor system of FIG. 1 when a page fault occurs by the "load" instruction when the program of FIG. 21 is executed. Indicates an aborted instruction. As shown in FIG. 3, in the first embodiment shown in FIG. 1, n + 2
When a trap is generated by execution of the "load" instruction, all the instructions fetched at the same time as the (n + 2) th instruction causing the trap and having instruction numbers n to n + 3 are aborted. Compared to the conventional case shown in FIG. 22, the number of instructions to be aborted is smaller in the conventional case, so that the conventional case may seem to be more efficient. Since the conventional case requires time to determine an appropriate trap signal, the conventional case has a longer cycle time than the first embodiment, and in fact, the first embodiment has higher efficiency. Become.

【0027】より詳しく説明すると、図3に示されるパ
イプライン処理において、n 番目、n+1 番目、n+2 番目
及びn+3 番目の命令全てがサイクルC+3 でMステージに
入いり、n 番目の「fadd」処理についてのMステージ処
理がEC1 109で行われ、n+1 番目の「add 」処理につ
いてのMステージ処理がMA0 107で行われ、n+2 番目
の「load」処理についてのMステージ処理がMA1 108
で行われ、n+3 番目の「fmul」処理についてのMステー
ジ処理がEC2 110で行われる。このサイクルC+3 にお
いて、ページフォールトがMA1 108で検出されたと
き、MA1 108はトラップ要求信号線144を介してト
ラップ制御ユニット133にページフォールトトラップ
の発生を知らせる。ここで、このサイクルC+3 におい
て、MPC 151は、Mステージで現在実行されているn
番目〜n+3 番目の命令の下位2ビットを除いたワードア
ドレスを格納し、mpc 152は、Mステージで現在実行
されている命令中最小のアドレスを有するn 番目の命令
の下位2ビットを示すワードアドレスを格納しており、
この場合これは0である。一方、submpc1 153、subm
pc2 154、submpc3 155及びsubmpc4 156は、MA
0 107、MA1 108、EC1 109及びEC2 110の各
々で現在実行されているn+1 番目、n+2 番目、n番目及
びn+3 番目の命令の下位2ビットを各々示すワードアド
レスを格納している。
More specifically, in the pipeline processing shown in FIG. 3, all of the n-th, n + 1-th, n + 2-th and n + 3th instructions enter the M stage in cycle C + 3. An M-stage process for the n-th “fadd” process is performed in EC1 109, an M-stage process for the (n + 1) -th “add” process is performed in MA0 107, and the n + 2-th “load” process M1 processing of MA1 108
, And an M stage process for the (n + 3) th “fmul” process is performed in the EC2 110. In this cycle C + 3, when a page fault is detected at MA1 108, MA1 108 notifies trap control unit 133 via trap request signal line 144 that a page fault trap has occurred. Here, in this cycle C + 3, the MPC 151
The word address excluding the lower 2 bits of the (th) to (n + 3) th instructions is stored, and mpc 152 indicates the lower 2 bits of the nth instruction having the lowest address among the instructions currently being executed in the M stage. Stores the word address,
In this case this is zero. On the other hand, submpc1 153, subm
pc2 154, submpc3 155 and submpc4 156 are MA
0, 107, MA1 108, EC1 109, and EC2 110 store word addresses indicating the lower 2 bits of the (n + 1) th, n + 2th, nth, and n + 3th instructions currently being executed. ing.

【0028】トラップ信号生成ユニット158は、トラ
ップ要求信号線143〜146のいずれかにトラップ要
求があるとき、トラップ信号線134のトラップ信号を
アサートする。トラップ信号線134におけるアサート
されたトラップ信号は、命令発行ユニット102、ALU0
103、ALU1104、MA0 107、MA1 108、FADD1
05、FMUL106、EC1 109及びEC2 110に供給さ
れるので、これらのユニットにおける処理がアボートさ
れると同時に、命令発行ユニット102は予め定められ
たトラップ処理ルーチンに関する命令フェッチを始め
る。
The trap signal generation unit 158 asserts a trap signal on the trap signal line 134 when any of the trap request signal lines 143 to 146 has a trap request. The asserted trap signal on the trap signal line 134 is sent to the instruction issuing unit 102, ALU0
103, ALU1104, MA0107, MA1108, FADD1
05, FMUL 106, EC1 109 and EC2 110, so that the processing in these units is aborted and at the same time the instruction issuing unit 102 starts fetching instructions for a predetermined trap processing routine.

【0029】ここで、トラップデータ生成ユニット15
7がトラップ要求信号線144にトラップ要求を検出す
ると、このトラップ要求信号線144に対応するsubmpc
2 154のエントリが、信号線147に出力され、それ
がMPC 151のエントリと組み合わされてトラップアド
レス142、この場合n+2 番目の命令のアドレス、を生
成し、このn+2 番目の命令のアドレスはトラップアドレ
ス信号線142を介してトラップアドレスレジスタ13
2に格納される。
Here, the trap data generating unit 15
7 detects a trap request on the trap request signal line 144, the submpc corresponding to the trap request signal line 144
2 154 entries are output on signal line 147 which is combined with the MPC 151 entry to generate a trap address 142, in this case the address of the n + 2th instruction, The address is stored in the trap address register 13 via the trap address signal line 142.
2 is stored.

【0030】他方、MPC 151のエントリをmpc 152
のエントリと組み合わせることによりアボートアドレス
141が得られ、この場合のアボートアドレスであるn
番目の命令のアドレスはアボートアドレス信号線141
を介してアボートアドレスレジスタ131に格納され
る。
On the other hand, the entry of the MPC 151 is changed to the mpc 152
Abort address 141 is obtained by combining with the above entry, and the abort address n in this case is n.
The address of the instruction is the abort address signal line 141
Through the abort address register 131.

【0031】更に、トラップ要求を現在出しているトラ
ップ要求信号線に付随するMステージプログラムカウン
タ中で最小のアドレスを格納するsubmpc1 153、subm
pc2154、submpc3 155及びsubmpc4 156の一つ
に対応するトラップ要求信号線143〜146の1つに
おける信号がトラップ原因信号線140へ出力され、ト
ラップ原因レジスタ130に格納される。この場合、ト
ラップ要求は、トラップ要求信号線144のみから出さ
れいるので、トラップ要求信号線144の信号がトラッ
プ原因信号線140へ出力されトラップ原因レジスタ1
30に格納されることになる。
Further, submpc1 153, subm which stores the minimum address in the M stage program counter associated with the trap request signal line which is currently issuing a trap request.
The signal on one of the trap request signal lines 143 to 146 corresponding to one of pc2 154, submpc3 155 and submpc4 156 is output to the trap cause signal line 140 and stored in the trap cause register 130. In this case, since the trap request is issued only from the trap request signal line 144, the signal of the trap request signal line 144 is output to the trap cause signal line 140 and the trap cause register 1
30 will be stored.

【0032】ここでは、n 番目からn+3 番目の命令全て
が同時にフェッチされる場合を説明しているが、4つの
命令間にデータの依存性があるためにmpc のエントリが
0でない場合がありうる。又、2個以上のトラップ要求
がトラップ要求信号線143〜146において検出され
た場合には、submpc1 153、submpc2 154、submpc
3 155及びsubmpc4 156の内でMステージで現在実
行される命令中最小のアドレスを格納するもののエント
リが信号線147に出力される。
Here, the case where all the n-th to (n + 3) -th instructions are fetched at the same time has been described. However, there is a case where the entry of mpc is not 0 due to data dependency between the four instructions. It is possible. When two or more trap requests are detected on the trap request signal lines 143 to 146, submpc1 153, submpc2 154, submpc
Of the 3 155 and submpc 4 156, the entry that stores the lowest address among the instructions currently executed in the M stage is output to the signal line 147.

【0033】この実施例においては、トラップを引き起
こす命令とアボートされる命令は異なるので、アボート
アドレスレジスタ131とトラップアドレスレジスタ1
32の両方が必要である。
In this embodiment, since the instruction causing the trap and the instruction to be aborted are different, the abort address register 131 and the trap address register 1
Both 32 are required.

【0034】又、この実施例においては、トラップ要求
信号線143〜146のいずれであっても少なくとも1
つトラップ要求があればすぐにトラップ信号はアサート
されるのでトラップ信号線におけるエントリは非常に速
く決めることができる。他方、トラップ原因レジスタ1
30に格納されるトラップ原因140及びトラップアド
レスレジスタ132に格納されるトラップアドレス14
2は、Mステージサブプログラムカウンタ153〜15
6におけるエントリを比較した結果として決定されるた
め、これらはずっと後にならないと決められない。しか
し、一般的に言って、メモリアクセスをアボートするた
めにトラップ信号線におけるエントリが速く決められる
必要はあるが、レジスタに格納されるトラップデータは
ずっと遅く決められても構わないので、この実施例にお
いてはプロセッサシステムのサイクル時間を長くする必
要は生じない。
In this embodiment, at least one of the trap request signal lines 143 to 146 is provided.
Since the trap signal is asserted as soon as there is one trap request, the entry on the trap signal line can be determined very quickly. On the other hand, trap cause register 1
30 and the trap address 14 stored in the trap address register 132
2 is an M stage subprogram counter 153 to 15
Since these are determined as a result of comparing the entries in 6, these cannot be determined much later. However, generally speaking, in order to abort the memory access, the entry in the trap signal line needs to be determined quickly, but the trap data stored in the register may be determined much later. In, there is no need to increase the cycle time of the processor system.

【0035】従って、この第1実施例によると、システ
ムにおけるクロック周波数の低下を防げるように、サイ
クル時間を増加させることなく機能できるトラップ制御
機能を組み込んだスーパースカラプロセッサ等の並列処
理型プロセッサシステムを提供することが可能となる。
Therefore, according to the first embodiment, a parallel processing type processor system such as a super scalar processor incorporating a trap control function capable of functioning without increasing the cycle time so as to prevent a decrease in the clock frequency in the system is provided. Can be provided.

【0036】次に、図4から図6を参照して、本発明に
係る並列処理型プロセッサシステムの第2の実施例につ
いて詳細に説明する。
Next, a second embodiment of the parallel processing type processor system according to the present invention will be described in detail with reference to FIGS.

【0037】この第2実施例は、上述の第1実施例の応
用であり、以下の理由から、第1実施例のトラップ制御
機能に加え、更に、ストール制御機能を組み込んだもの
である。
The second embodiment is an application of the first embodiment described above, and incorporates a stall control function in addition to the trap control function of the first embodiment for the following reasons.

【0038】即ち、第1実施例のシステムを変形して、
図4に示すように、システムが更に、バス線を介して命
令キャッシュメモリ101A及び2ポートデータキャッ
シュメモリ125Aに接続されるメインメモリ161と
I/O装置162とを含むようにした場合、トラップ制
御機能だけではトラブルが起きる場合がある。トラブル
の原因は、ここでは、メモリアドレスにマップされる複
数のI/Oレジスタを通常含んでいるI/O装置162
である。このようなI/Oレジスタへのアクセスは、I
/Oレジスタのアドレスを特定するメモリアクセス命令
と同一の命令によってなされ、キャッシュは通常この目
的には使用されない。I/Oレジスタは、コマンド及び
パラメータをI/O装置162に設定するためとI/O
レジスタのステータスをプロセッサ側に示すためとに用
いられ、例えばI/O装置162のステータスを読み込
むためのアクセスに応じて、プロセッサ側でI/O装置
162のステータスを読み込んだときにステータスレジ
スタを消去するような形で、I/Oレジスタの内部状態
を変えてしまうタイプのI/Oレジスタがある。
That is, by modifying the system of the first embodiment,
As shown in FIG. 4, when the system further includes a main memory 161 and an I / O device 162 connected to the instruction cache memory 101A and the two-port data cache memory 125A via a bus line, trap control is performed. Trouble may occur only with the function. The cause of the trouble here is that the I / O device 162 typically includes a plurality of I / O registers mapped to memory addresses.
It is. Access to such an I / O register is based on I
This is done by the same instruction as the memory access instruction that specifies the address of the / O register, and the cache is not normally used for this purpose. The I / O registers are used to set commands and parameters to the I / O device
Used to indicate the status of the register to the processor. For example, in response to an access for reading the status of the I / O device 162, the status register is erased when the status of the I / O device 162 is read by the processor. There is an I / O register that changes the internal state of the I / O register in such a way that the I / O register changes.

【0039】そのようなI/O装置162を使用する場
合、上述の第1実施例のトラップ制御機能のみを有する
システムでは、以下のような問題に直面することにな
る。即ち、このシステムにおいては、2つのメモリアク
セス命令が同時実行可能なような2ポートデータキャッ
シュメモリ125Aについて、2つのアクセスユニット
107及び108が設けられている。従って、メモリア
クセスユニット107及び108において、2つのI/
Oアクセス命令がMステージに同時に到達する場合があ
る。しかし、I/Oアクセスの目的のためのラインはバ
ス線1601つのみしかないので、2つのI/Oアクセ
ス命令を同時に処理することは不可能である。この結
果、2つのI/Oアクセス命令のうちの最初の1つの処
理については2番目のI/Oアクセス命令の処理が始ま
る前にI/O装置162の側で完了していなければなら
ない。
When such an I / O device 162 is used, the system having only the trap control function of the above-described first embodiment encounters the following problems. That is, in this system, two access units 107 and 108 are provided for a two-port data cache memory 125A that can execute two memory access instructions simultaneously. Therefore, in the memory access units 107 and 108, two I / Os
The O access instruction may arrive at the M stage at the same time. However, since there is only one bus line 1601 for the purpose of I / O access, it is impossible to process two I / O access instructions simultaneously. As a result, the processing of the first one of the two I / O access instructions must be completed on the I / O device 162 side before the processing of the second I / O access instruction starts.

【0040】このような状況において、2番目のI/O
アクセス命令の処理でバスエラーなどの例外が起きる可
能性がある。そのような場合、もしシステムが上記第1
実施例のトラップ制御機能しか用いていないと、両方の
I/Oアクセス命令がアボートされることになる。従っ
て、適切なトラップ処理ルーチンを行った後に元のプロ
グラムを再度実行するとき、I/O装置162の側にお
いては最初のI/Oアクセス命令は終わったと見なされ
ているにも関わらず、これがもう一度実行されることに
なる。この場合、最初のI/Oアクセス命令が偶然に、
ステータスレジスタを読む命令であると、ステータスレ
ジスタはトラップ発生の前に既に一度読まれているの
で、このステータスレジスタの内容は既に消去されてお
り、最初のI/Oアクセス命令を再度実行するときには
もはや正しいものではなくなってしまっているためトラ
ブルが生じる。
In such a situation, the second I / O
An exception such as a bus error may occur in the processing of the access instruction. In such a case, if the system
If only the trap control function of the embodiment is used, both I / O access instructions will be aborted. Therefore, when the original program is executed again after performing the appropriate trap processing routine, even though the first I / O access instruction is considered to have been completed on the I / O device 162 side, this is repeated. Will be executed. In this case, the first I / O access instruction happens to be
For an instruction that reads the status register, since the status register has already been read once before the trap occurred, the contents of this status register have already been erased and will no longer be available when the first I / O access instruction is executed again. Trouble arises because it is no longer correct.

【0041】上記のトラブルは基本的に、Dステージで
は検出できない同一演算リソースの使用に関する要求の
競合がその後のパイプラインステージで起こり得ること
による。それ故、もしDステージでこれらの2つのメモ
リアクセス命令が実際に2つのI/Oアクセス命令であ
ることを検出できれば、これらの2つのメモリアクセス
命令をプロセッサに同時に供給しないことによってトラ
ブルは避けることが出来るが、その反面、I/Oアクセ
ス命令のためだけに特別な命令を使用することを要求す
ることになる。
The above-mentioned trouble is basically caused by the fact that a request for use of the same operation resource which cannot be detected in the D stage may compete in a subsequent pipeline stage. Therefore, if the D stage can detect that these two memory access instructions are actually two I / O access instructions, avoid trouble by not supplying these two memory access instructions to the processor at the same time. However, on the other hand, it is required to use a special instruction only for the I / O access instruction.

【0042】図4に示される第2実施例の構成において
は、この問題を、以下のように、そのような特別なI/
Oアクセス命令を使用せずに解決するようにしている。
In the configuration of the second embodiment shown in FIG. 4, this problem is solved as follows by such a special I / O.
The problem is solved without using the O access instruction.

【0043】まず第1に、この第2実施例においては、
命令がALU0103及びALU1104へ同時に供給されるこ
とになるとき、最初に実行されるべき、より小さいアド
レスを有する命令がALU0103へ供給されるように、命
令発行ユニット102AがALU0103及びALU1104へ
の命令供給を制御する。従って、メモリアクセス命令が
MA0 107及びMA1 108へ同時に届いたときには、MA
0 107が常に先に実行されるべきメモリアクセス命令
を有していることになる。
First, in the second embodiment,
When an instruction is to be supplied to ALU0103 and ALU1104 at the same time, instruction issuance unit 102A causes instruction supply to ALU0103 and ALU1104 so that the instruction having the smaller address to be executed first is supplied to ALU0103. Control. Therefore, the memory access instruction
When it reaches MA0 107 and MA1 108 at the same time,
0 107 will always have a memory access instruction to be executed first.

【0044】第2に、図4の構成は、ストール要求信号
がMA0 107、MA1 108、EC1 109及びEC2 110
からストール要求信号線170、71、72及び173
を介して各々供給されるストール制御ユニット163を
更に含んでおり、このストール制御ユニット163はst
all1信号180、stall2信号181及びstallv1 信号1
82を命令発行ユニット102A、ALU0103、ALU11
04、FADD105、FMUL106、MA0 107、MA1 10
8、EC1 109、EC2 110及びトラップ制御ユニット
133へ出力して、以下に記載するような適当なストー
ル制御を行う。
Second, in the configuration of FIG. 4, the stall request signals are MA0 107, MA1 108, EC1 109 and EC2 110.
To stall request signal lines 170, 71, 72 and 173
Further includes a stall control unit 163, each of which is supplied via
all1 signal 180, stall2 signal 181 and stallv1 signal 1
82 is the instruction issuing unit 102A, ALU0103, ALU11
04, FADD105, FMUL106, MA0107, MA1 10
8, output to EC1 109, EC2 110 and trap control unit 133 to perform appropriate stall control as described below.

【0045】stall1信号180は、MA0 107、MA1 1
08、EC1 109及びEC2 110のいずれかからのスト
ール要求があるときアサートされ、stall2信号181
は、MA0 107、MA1 108、EC1 109及びEC2 11
0のいずれかからのストール要求があるときアサートさ
れ、一方stallv1 信号182は、Mステージの処理がMA
1 108で現在実行されている命令のアドレスの下位2
ビットを示す。
The stall1 signal 180 is composed of MA0 107 and MA1 1
08, a stall request from any of EC1 109 and EC2 110, and a stall2 signal 181
Are MA0 107, MA1 108, EC1 109 and EC2 11
Asserted when there is a stall request from any of the STAs, while the stallv1 signal 182 indicates that
1 Lower 2 of the address of the instruction currently being executed at 108
Indicates a bit.

【0046】これらのstall1、stall2及びstallv1 信号
180〜182の値に従って、このシステムにおけるパ
イプライン処理は以下のように制御される。
In accordance with the values of these stall1, stall2 and stallv1 signals 180-182, the pipeline processing in this system is controlled as follows.

【0047】(1)ALU0103及びMA0 107のパイプ
ライン<103、107>: (a) Mステージ及びWステージ:stall2信号181がニ
ゲートであれば、stall1信号180に関係なくパイプラ
イン処理が行われる。
(1) Pipeline <103, 107> of ALU0103 and MA0107: (a) M stage and W stage: If stall2 signal 181 is negated, pipeline processing is performed regardless of stall1 signal 180.

【0048】(b) Eステージ:stall1信号180がニゲ
ートであれば、パイプライン処理が行われる。
(B) E stage: If the stall1 signal 180 is negated, pipeline processing is performed.

【0049】(2)ALU1104及びMA1 108のパイプ
ライン<104、108>:stall1信号180がニゲー
トであれば、パイプライン処理が行われる。
(2) Pipeline <104, 108> of ALU 1104 and MA 1 108: If stall 1 signal 180 is negated, pipeline processing is performed.

【0050】(3)FADD105及びEC1 109のパイプ
ライン<105、109>及びFMUL106及びEC2 11
0のパイプライン<106、110>: (a) Mステージ及びWステージ:stall1信号180がニ
ゲートであれば、stall1信号180に関係なくパイプラ
イン処理が行われる。
(3) Pipeline <105, 109> of FADD 105 and EC1 109 and FMUL 106 and EC2 11
0 pipeline <106, 110>: (a) M stage and W stage: If stall1 signal 180 is negated, pipeline processing is performed regardless of stall1 signal 180.

【0051】パイプライン処理は又、stall1信号180
がアサートでありstall2信号がニゲートであって、stal
lv1 信号182が、EC1 109及びEC2 110の各々に
おいてMステージの処理が現在行われている命令の下位
2ビットを格納するsubmpc3155及びsubmpc4 156
の各々より大きい値を示している場合に行われる。
The pipeline processing also includes the stall1 signal 180
Is asserted, stall2 signal is negated, and stal
The lv1 signal 182 is a submpc3155 and submpc4 156 that store the lower two bits of the instruction currently being processed by the M stage in EC1 109 and EC2 110, respectively.
Is performed when a value greater than each of the values is indicated.

【0052】(b) Eステージ:stall1信号180がニゲ
ートであれば、パイプライン処理が行われる。
(B) E stage: If the stall1 signal 180 is negated, pipeline processing is performed.

【0053】又、この第2実施例においては、mpc 15
2に格納される値はこれらstall1、stall2及びstallv1
信号180〜182の値に従って以下の様に決定され
る。即ち、stall1信号180がアサートされないとき、
mpc 152には、Eステージで実行された命令中の最小
アドレスがロードされ、stall1信号180及びstall2信
号181の両方がアサートされるときは、mpc 152は
前の値を維持するが、stall1信号180がアサートされ
るがstall2信号181信号はアサートされないときに
は、mpc 152にはstallv1 信号182によって示され
る値がロードされる。
In the second embodiment, mpc 15
The values stored in 2 are stall1, stall2 and stallv1
It is determined as follows according to the values of the signals 180 to 182. That is, when stall1 signal 180 is not asserted,
The mpc 152 is loaded with the lowest address in the instruction executed in the E stage, and when both the stall1 signal 180 and the stall2 signal 181 are asserted, the mpc 152 maintains the previous value, but the stall1 signal 180 Is asserted, but the stall2 signal 181 is not asserted, the mpc 152 is loaded with the value indicated by the stallv1 signal 182.

【0054】従って、この第2実施例では、MA1 108
だけからストール要求があれば、パイプライン<10
3、107>の処理が完了し、現在処理されている命令
のアドレスがMA1 108での命令のアドレスより小さい
ときのみ、パイプライン<105、109>と<10
6、110>の各々の処理が完了する。
Therefore, in this second embodiment, MA1 108
If there is a stall request only from the pipeline <10
3, 107> is completed, and only when the address of the instruction currently being processed is smaller than the address of the instruction in MA1 108, pipelines <105, 109> and <10
6, 110> is completed.

【0055】この結果、第1及び第2I/Oアクセス命
令が同時にMA0 107及びMA1 108に各々届いたと
き、MA1 108はストール要求をストール制御ユニット
163に出力するが、MA0 107は、1クロックサイク
ル以内でI/Oアクセス処理を完了させるのが不可能で
ない限り、ストール要求を出力しない。そして、EC1 1
09及びEC2 110もストール要求を出力しない時、st
all1信号180のみがアサートされ、stall2信号182
はアサートされない。そのような場合、パイプライン<
303、107>は処理が進められ、mpc 152には、
stallv1 信号182の値がロードされて,システムの状
態が2番目のI/Oアクセス命令より前の命令が実行完
了している状態となる。
As a result, when the first and second I / O access instructions arrive at MA0 107 and MA1 108 at the same time, MA1 108 outputs a stall request to stall control unit 163, but MA0 107 takes one clock cycle. The stall request is not output unless it is impossible to complete the I / O access processing within the period. And EC1 1
09 and EC2 110 also do not output a stall request, st
Only the all1 signal 180 is asserted and the stall2 signal 182
Is not asserted. In such cases, the pipeline <
303, 107> are processed, and the mpc 152 has
The value of the stallv1 signal 182 is loaded, and the state of the system becomes a state where the execution of the instruction before the second I / O access instruction is completed.

【0056】それ故、2番目のI/Oアクセス命令につ
いて例外が発生したときでも、最初のI/Oアクセス命
令は再度実行されない。他方、パイプライン<104、
108>の処理と、2番目のI/Oアクセス命令より大
きいアドレスを有する命令についてのパイプラインの処
理は、stall1信号180がニゲートになる迄ストールさ
れる。
Therefore, even when an exception occurs for the second I / O access instruction, the first I / O access instruction is not executed again. On the other hand, pipeline <104,
108> and the processing of the pipeline for instructions having addresses greater than the second I / O access instruction are stalled until the stall1 signal 180 becomes negated.

【0057】1クロックサイクル以内にI/Oアクセス
処理を完了させるのが不可能であるためにMA0 107が
ストール要求を出力するときには、最初のI/Oアクセ
ス命令が完了してstall2信号181がニゲートになるま
で、stall1信号及びstall2信号182がアサートされる
ので、全てのパイプラインはストールされる。
When MA0 107 outputs a stall request because it is impossible to complete the I / O access processing within one clock cycle, the first I / O access instruction is completed and stall2 signal 181 is negated. , The stall1 and stall2 signals 182 are asserted, so that all pipelines are stalled.

【0058】図6は、図4のプロセッサシステムにおけ
るパイプライン処理において、図5のプログラムを実行
した時にn+2 番目の「ロード」命令でバスエラーが起こ
った場合の進行状況を示すものである。図6に示される
ように、この図4の第2実施例においては、ストール要
求がサイクルC+3 においてn+2 番目の命令の実行によっ
て発生するとき、EC1 109で行われるn 番目の「fad
d」処理についてのMステージ処理及びMA0 107で行
われるn+1 番目の「add 」処理についてのMステージ処
理は、次のサイクルC+4 で終了するが、MA1 108での
n+2 番目の「load」操作についてのMステージ処理及び
EC2 110でのn+3 番目の「fmul」操作についてのMス
テージ処理及びは次のサイクルC+4 でストールされ、そ
の後のサイクルC+5 迄終了しない。一方、n+2 番目の
命令より大きいアドレスをもった後続の命令も全てサイ
クルC+4 でストールされる。
FIG. 6 shows the progress of the pipeline processing in the processor system of FIG. 4 when a bus error occurs at the (n + 2) th "load" instruction when the program of FIG. 5 is executed. . As shown in FIG. 6, in the second embodiment of FIG. 4, when the stall request is generated by the execution of the (n + 2) th instruction in the cycle C + 3, the n-th “fad” performed in EC1 109 is performed.
The M-stage processing for the “d” processing and the M-stage processing for the (n + 1) -th “add” processing performed in MA0 107 end in the next cycle C + 4.
M-stage processing for n + 2th "load" operation and
The M-stage processing for the n + 3rd “fmul” operation on EC2 110 is stalled in the next cycle C + 4 and does not end until the next cycle C + 5. On the other hand, all subsequent instructions having addresses larger than the (n + 2) th instruction are also stalled in cycle C + 4.

【0059】ここで、命令の実行中に例外が起こる可能
性を否定できないために命令の処理がストールされた後
で、命令の実行中に実際に例外が発生したときには、命
令の処理はアボートされる。さもなくば、命令実行中に
実際には例外が起こらなかったので命令の処理が再開さ
れる。
Here, after the processing of the instruction is stalled because the possibility of an exception occurring during the execution of the instruction cannot be denied, if the exception actually occurs during the execution of the instruction, the processing of the instruction is aborted. You. Otherwise, processing of the instruction is resumed because no exception actually occurred during instruction execution.

【0060】従って、この第2実施例によると、システ
ムにおけるクロック周波数の低下を防げるように、サイ
クル時間を増加させることなく機能できるトラップとス
トールの制御機能を組み込んだスーパースカラプロセッ
サ等の並列処理型プロセッサシステムを提供することが
可能となる。
Therefore, according to the second embodiment, a parallel processing type such as a super scalar processor incorporating a trap and stall control function capable of functioning without increasing the cycle time so as to prevent a decrease in the clock frequency in the system. A processor system can be provided.

【0061】次に図7を参照して、本発明に係る並列処
理型プロセッサシステムの第3の実施例を詳細に説明す
る。
Next, a third embodiment of the parallel processing type processor system according to the present invention will be described in detail with reference to FIG.

【0062】この第3実施例は、より一般的な設定にお
ける上記第2実施例のストール制御機能の一般化を行っ
たものである。
The third embodiment is a generalization of the stall control function of the second embodiment in a more general setting.

【0063】この第3実施例においては、図7に示され
るように、プロセッサシステムは、命令を格納する命令
キャッシュメモリ(I-cache )201と;Fステージで
I-cache 201から4ワードバウンダリの4つの命令を
同時にフェッチし、Dステージで4つのフェッチされた
命令間のデータ依存関係及び制御依存関係を考慮し、E
ステージで命令供給線220、221、222及び22
3を介して実行可能な命令を供給する命令発行ユニット
202と;命令供給線220及び221から供給される
命令に従って、Eステージで算術論理演算及びメモリア
ドレス計算を実行する論理演算ユニット(ALU0及びALU
1)203及び204と;ALU0203及びALU1204か
らのコマンドに従ってEステージで整数の乗除算を行う
ための整数乗除算器205と;ALU0203及びALU120
4からのアクセスされるデータを格納するためのデータ
キャッシュメモリ(D-cache )206と;命令供給線2
22から供給される命令に従ってEステージで浮動小数
点の加減算を行うための浮動小数点加算器(FADD)20
7と;命令供給線223から供給される命令に従ってE
ステージで浮動小数点の乗算を行うための浮動小数点乗
算器(FMUL)208と;FMUL208からのコマンドに従
ってEステージで浮動小数点の除算を行うための浮動小
数点除算器(FDIV)209と;命令発行ユニット202
で発行される命令を特定するための命令アドレス生成ユ
ニット210と;後に説明するトラップ制御及びストー
ル制御を行うための制御ユニット211と;ALU020
3、ALU1204の出力を格納するための整数レジスタフ
ァイル212と;FADD207及びFMUL208の出力を格
納するための浮動小数点レジスタファイル213とを備
えている。
In the third embodiment, as shown in FIG. 7, the processor system includes an instruction cache memory (I-cache) 201 for storing instructions and an F-stage.
At the same time, four instructions of a 4-word boundary are fetched from the I-cache 201 at the same time, and the data dependency and the control dependency between the four fetched instructions are considered in the D stage.
Instruction supply lines 220, 221, 222 and 22 at stage
An instruction issuance unit 202 for supplying an executable instruction via the instruction supply line 3; and an arithmetic operation unit (ALU0 and ALU) for executing an arithmetic and logic operation and a memory address calculation in the E stage according to the instruction supplied from the instruction supply lines 220 and 221.
1) 203 and 204; an integer multiplier / divider 205 for performing an integer multiplication / division in the E stage according to a command from ALU0203 and ALU1204; and ALU0203 and ALU120.
A data cache memory (D-cache) 206 for storing data to be accessed from the memory 4;
A floating-point adder (FADD) 20 for performing floating-point addition and subtraction at the E stage in accordance with an instruction supplied from
7; E in accordance with the instruction supplied from the instruction supply line 223
A floating point multiplier (FMUL) 208 for performing floating point multiplication in the stage; a floating point divider (FDIV) 209 for performing floating point division in the E stage in accordance with a command from the FMUL 208;
ALU020: an instruction address generation unit 210 for specifying an instruction issued by the ALU020; a control unit 211 for performing trap control and stall control described later;
3. An integer register file 212 for storing the output of the ALU 1204; and a floating-point register file 213 for storing the output of the FADD 207 and the FMUL 208.

【0064】上述の図4の第2実施例と同様に、図7の
プロセッサシステムは、更に、I-cache 201及びD-ca
che 206にキャッシュされるデータを格納するための
メインメモリ214と;I/Oレジスタを含むI/O装
置215と;メインメモリ214及びI/O装置215
をI-cache 201及びD-cache に接続させるバス線21
6とを有している。
As in the second embodiment of FIG. 4, the processor system of FIG. 7 further includes an I-cache 201 and a D-ca
main memory 214 for storing data cached in che 206; I / O device 215 including I / O registers; main memory 214 and I / O device 215
Bus line 21 for connecting to I-cache 201 and D-cache
6.

【0065】加えて、図7のプロセッサシステムには、
更に、I-cache 201とバス線216との間に設けられ
るプレデコーダ217と;命令発行ユニット202に接
続されているレジスタスコアボード回路218とが組み
込まれている。これらについては以下に詳細に説明す
る。
In addition, the processor system of FIG.
Further, a predecoder 217 provided between the I-cache 201 and the bus line 216; and a register scoreboard circuit 218 connected to the instruction issuing unit 202 are incorporated. These will be described in detail below.

【0066】まず、この第3実施例におけるトラップと
ストールの制御処理について説明する。
First, the trap and stall control processing in the third embodiment will be described.

【0067】一般に、並列処理型プロセッサシステム
は、マシン語命令の実行の時に同じリソースについての
競合する要求が発生するのを回避する機構、及び、マシ
ン語命令間の実行順序の正当性を保持する機構を有する
必要がある。ここで、実行順序の正当性とは、データ依
存関係及び制御依存関係のコンシステンシを意味する。
In general, a parallel processing type processor system has a mechanism for avoiding the occurrence of conflicting requests for the same resource during execution of a machine language instruction, and retains the correctness of the execution order between machine language instructions. You need to have a mechanism. Here, the validity of the execution order means the consistency of the data dependency and the control dependency.

【0068】データ依存関係のコンシステンシを維持す
るためには、実行順序をD→S関係、S→D関係及びD
→D関係の内の1つに維持する必要がある。ここで、D
→S関係は、先に実行すべき命令の結果を格納するリソ
ースが、後で実行すべき命令に用いられるソースデータ
が読みだされるリソースと同一である関係を示す。S→
D関係は、先に実行すべき命令の結果を格納するリソー
スが、後で実行すべき命令の結果を格納するためのリソ
ースと同一である関係を示す。D→D関係は、先に実行
すべき命令に用いられるソースデータが読みだされるリ
ソースが、後で実行すべき命令に用いられるソースデー
タが読みだされるリソースと同一であることを示す。こ
の図7の第3実施例においては、データ格納リソース
が、レジスタ及びメモリの2つの態様で存在し、両者間
のデータ依存関係のコンシステンシを保つ必要がある。
In order to maintain the consistency of the data dependency, the execution order is changed from D → S relation, S → D relation, and D → D relation.
→ It is necessary to maintain one of the D relationships. Where D
The → S relationship indicates that the resource storing the result of the instruction to be executed first is the same as the resource from which the source data used for the instruction to be executed later is read. S →
The D relation indicates that the resource for storing the result of the instruction to be executed first is the same as the resource for storing the result of the instruction to be executed later. The D → D relationship indicates that the resource from which the source data used for the instruction to be executed first is read is the same as the resource from which the source data used for the instruction to be executed later is read. In the third embodiment shown in FIG. 7, the data storage resources exist in two forms, the register and the memory, and it is necessary to maintain the consistency of the data dependency between them.

【0069】制御依存関係とは、先の分岐命令とその後
の命令との間の関係である。従来のVLIW型プロセッ
サにおける分岐命令については、この制御依存関係のコ
ンシステンシがコンパイラによって保たれている。しか
し、この第3実施例の並列処理型プロセッサシステムで
は、ユーザープログラムのオブジェクトコンパチビリテ
ィをもたせる必要があるので、制御依存関係のコンシス
テンシの保持はハードウェアにおいて実現させる必要が
ある。
The control dependency is a relationship between a previous branch instruction and a subsequent instruction. For a branch instruction in a conventional VLIW processor, the consistency of the control dependency is maintained by a compiler. However, in the parallel processing type processor system of the third embodiment, since it is necessary to provide object compatibility of the user program, it is necessary to realize the consistency of the control dependency relationship by hardware.

【0070】この第3実施例においては、プロセッサシ
ステムは、4ワードバウンダリの4つの命令を同時にフ
ェッチし、その4つの命令間でインオーダーな順序で同
時に発行されできる命令を各演算ユニットに発行して、
インオーダーな順序で命令の実行が完了する。
In the third embodiment, the processor system fetches four instructions of a four-word boundary at the same time, and issues instructions which can be issued simultaneously in an in-order order among the four instructions to each arithmetic unit. hand,
Instruction execution is completed in an in-order order.

【0071】この第3実施例においては、同じリソース
を使用する競合する要求が発生するのを回避しデータ依
存関係及び制御依存関係のコンシステンシを保持するた
めのハードウェアは、2つの機構を含んでいる。第1の
部分は、命令発行ユニット202によって実現される命
令発行機構であり、第2の部分は、制御ユニット211
によって実現されるストール機構である。
In the third embodiment, the hardware for avoiding the occurrence of conflicting requests using the same resources and maintaining the consistency of the data dependency and the control dependency includes two mechanisms. In. The first part is an instruction issuing mechanism implemented by the instruction issuing unit 202, and the second part is the control unit 211.
This is a stall mechanism realized by:

【0072】命令発行機構を実現するために、命令発行
ユニット202には、同じリソースを使用する競合する
要求の発生を検出するためのプレデコーダ217が備え
られており、これはキャッシュへのリフィル時(又はキ
ャッシュスルー命令フェッチの時は命令フェッチの時)
に同時にフェッチされた4つの命令の使用リソースと、
同時にフェッチされた命令のうちで最小のアドレスを有
する命令について競合があるかどうかとのマークを付け
る。命令発行ユニット202は又、D→S関係及びD→
D関係を検出するためのレジスタスコアボード回路21
8も備えており、プレデコーダ217によってマークさ
れる競合を回避しつつ、レジスタスコアボード回路21
8によって検出されるデータ依存関係及び制御依存関係
においてD→S及びD→D関係を保つことにより、Dス
テージでの命令発行処理をインオーダーな順序で行うこ
とができる。S→D関係については、ソースレジスタの
読み出し後に、命令発行をインオーダーな順序で行いイ
ンオーダーな順序で実行が完了することにより保たれ
る。
To implement the instruction issuance mechanism, the instruction issuance unit 202 is provided with a predecoder 217 for detecting occurrence of conflicting requests using the same resource, which is used when refilling the cache. (Or instruction fetch for cache-through instruction fetch)
Resources used for the four instructions fetched at the same time,
The instruction having the lowest address among the instructions fetched at the same time is marked as having a conflict. The instruction issuing unit 202 also has a D → S relation and a D →
Register scoreboard circuit 21 for detecting D relationship
8 to avoid conflicts marked by the predecoder 217,
By maintaining the D → S and D → D relationships in the data dependency and the control dependency detected by step 8, the instruction issuance processing in the D stage can be performed in an in-order order. The S → D relationship is maintained by reading out the source register and issuing instructions in an in-order order and completing the execution in the in-order order.

【0073】更に、この第3実施例においては、2つの
メモリアクセス命令を同時に実行することが可能である
ために、メモリリソースについてのデータ依存関係と同
様、メモリリソースの競合関係のコンシステンシも保つ
必要がある。命令発行ユニット202はDステージより
前で処理を行うので、命令発行ユニット202はこれら
の関係がないと仮定して処理を行っており、これらの関
係が存在するかどうかを正確に確認することができな
い。これらの関係の存在はMステージになるまで正確に
は決められず、関係の存在の可能性を決めることは可能
であっても、命令供給処理をそのような可能性に基づい
て過剰に制御してしまうと、パーフォーマンスが著しく
制限されてしまうことになる。
Furthermore, in the third embodiment, since two memory access instructions can be executed at the same time, the consistency of the memory resource competition as well as the data dependency of the memory resource is maintained. There is a need. Since the instruction issuing unit 202 performs processing before the D stage, the instruction issuing unit 202 performs processing on the assumption that these relationships do not exist, and it is possible to accurately confirm whether or not these relationships exist. Can not. The existence of these relationships cannot be determined exactly until the M stage, and although it is possible to determine the possibility of the existence of the relationship, the instruction supply process is over-controlled based on such a possibility. Doing so will severely limit performance.

【0074】ストール機構においては、実行完了はイン
オーダーな順序に保たれ、命令発行機構で既に考慮され
たもの以外のケース及び命令発行処理が速すぎて命令フ
ェッチ処理が追いつけなくなった場合についての制御を
行う。
In the stall mechanism, execution completion is kept in an in-order order, and control is performed in cases other than those already considered by the instruction issuing mechanism and when the instruction issuing processing is too fast to keep up with the instruction fetch processing. I do.

【0075】インオーダーな順序での実行完了において
は、Dステージから同時発行された命令は同時に実行完
了するという基本原理に基づいた命令の実行完了が達成
される。但し、ALU1204によってMステージで実行さ
れるていメモリアクセス命令Xによるメモリアクセス処
理が1サイクル時間内に終了できない時には、上記第2
実施例と同様に、命令Xによるストール要求に関わら
ず、このメモリアクセス命令Xより小さいアドレスを有
する命令を実行完了し、実行完了した命令の数だけmpc
が更新される。この機能を実行完了ステージにおけるグ
ループ機能と呼ぶ。この第3実施例においては、ALU02
03及びALU1204で命令を同時に実行するとき、命令
発行ユニット202は、ALU0203が常により小さいア
ドレスを有する命令を実行するような制御を行うので、
インオーダーな実行完了が保証される。この命令発行ユ
ニット202による制御によって、Dステージでは検出
することができないメモリリソースの使用に関する競合
する要求の発生によるデッドロックをMステージにおい
て防ぐことができる。
In the execution completion in the in-order order, the execution completion of the instruction based on the basic principle that the instructions issued simultaneously from the D stage are completed simultaneously is achieved. However, if the memory access processing by the memory access instruction X executed in the M stage by the ALU 1204 cannot be completed within one cycle time, the second
As in the embodiment, regardless of the stall request by the instruction X, the execution of the instruction having the address smaller than that of the memory access instruction X is completed, and the number of the mpc equal to the number of the executed instruction is completed.
Is updated. This function is called a group function in the execution completion stage. In the third embodiment, ALU02
03 and the ALU 1204 simultaneously execute an instruction, the instruction issuing unit 202 performs control such that the ALU 0203 always executes an instruction having a smaller address.
In-order execution completion is guaranteed. The control by the instruction issuing unit 202 can prevent a deadlock in the M stage due to a conflicting request regarding the use of memory resources that cannot be detected in the D stage.

【0076】この様な、ストール要求を発している命令
より小さいアドレスを有する命令のみについてパイプラ
イン処理を完了するための制御は、他の状況、例えば、
ALU0203でのMステージ処理が1サイクルで終了でき
ないような場合や、FADD207又はFMUL208のE2ステ
ージで実行される命令についてトラップの可能性が否定
できないためにストール要求がアサートされている場合
等にも同様に適用することが可能である。
The control for completing the pipeline processing only for an instruction having an address smaller than the instruction issuing the stall request is performed in other situations, for example,
The same applies when the M-stage processing in the ALU0203 cannot be completed in one cycle, or when a stall request is asserted because the possibility of trapping an instruction executed in the E2 stage of the FADD207 or FMUL208 cannot be denied. It is possible to apply to.

【0077】命令発行ユニット202は、メモリ(キャ
ッシュメモリを含む)に関する限り、同じリソースの使
用に関する競合する要求の発生あるいはデータ依存関係
を考慮しない。この第3実施例のプロセッサシステムは
RISCと同じように、いわゆる「load, store 」アーキテ
クチュアを採用するので、同じリソースの使用に関する
競合する要求の発生の防止及びデータ依存関係の保持を
確保するためには、「load」及び「store 」命令のみを
考慮すれば充分である。D-cache 206にはALU0203
及びALU1204用の専用ポートがあるので、ALU0203
及びALU1204の1つだけがD-cache 206にアクセス
している限りは、リソースの競合は起こらない。故に、
「load」及び「store 」命令は外部メモリに同時にアク
セスする際、データ依存関係はこの2つの命令が同じア
ドレスにアクセスしようとしている場合にのみ存在する
ことになる。
The instruction issuing unit 202 does not consider the occurrence of competing requests for the use of the same resource or the data dependency as far as the memory (including the cache memory) is concerned. The processor system of the third embodiment is
Like the RISC, it employs a so-called "load, store" architecture, so to avoid conflicting requests for the use of the same resources and to ensure that data dependencies are maintained, "load" and "store" It is sufficient to consider only the instructions. ALU0203 for D-cache 206
There is a dedicated port for ALU1204 and ALU1203.
And as long as only one of the ALUs 1204 is accessing the D-cache 206, no resource contention occurs. Therefore,
When the "load" and "store" instructions access the external memory simultaneously, a data dependency will exist only if the two instructions are trying to access the same address.

【0078】メモリリソース競合は実行完了ステージに
おける命令グループ機能によって解決される。メモリに
ついてのデータ依存関係には、「リードアフターライ
ト」、「ライトアフターリード」及び「ライトアフター
ライト」があり、そのコンシステンシはキャッシュメモ
リの側で保たれる。
The memory resource conflict is solved by the instruction group function in the execution completion stage. Data dependencies for the memory include “read after write”, “write after read”, and “write after write”, and the consistency is maintained on the cache memory side.

【0079】次に図8から図18を参照して、図7の第
3実施例におけるストール制御を詳細に説明する。
Next, the stall control in the third embodiment of FIG. 7 will be described in detail with reference to FIGS.

【0080】この第3実施例においては、ストールが生
じる場合は以下のように要約することができる。
In the third embodiment, the case where a stall occurs can be summarized as follows.

【0081】M0busy M1busy Imis(I-cache miss) FRbusy(FPUFA レジスタ書き込み競合) FAexch(FADD例外チェック) FMexch(FMUL例外チェック) FDexch(FMUL例外チェック) Fstall(強制ストール) これらの場合の各々に対応するストール要求信号がアサ
ートされる条件は以下のようなものである。
M0busy M1busy Imis (I-cache miss) FRbusy (FPUFA register write conflict) FAexch (FADD exception check) FMexch (FMUL exception check) FDexch (FMUL exception check) Fstall (forced stall) The conditions under which the stall request signal is asserted are as follows.

【0082】M0busy、M1busy:これらのタイプのストー
ル要求信号は、メモリアクセス処理(キャッシュ及びI
/Oに関するアクセス処理を含む)がMステージでt 番
目のサイクルに行われ、このメモリアクセス処理がこの
t 番目のサイクル中に完了できない時にアサートされ
る。
M0busy, M1busy: These types of stall request signals correspond to memory access processing (cache and I
/ O) is performed in the Mth stage in the t th cycle, and this memory access
Asserted when it cannot complete during the tth cycle.

【0083】Imis:このタイプのストール要求信号は、
新しい命令フェッチ要求があるがその命令フェッチが不
成功の時に、アサートされる。ストールがこのImisスト
ール要求によって起こった場合の例を図8から図12に
示す。ここでは、Imisストール要求信号は、fpc に新し
い値がロードされ「fpcen 」をアサートされてから1ク
ロックサイクル後に命令が命令レジスタにフェッチされ
ない時、実際にアサートされる。
Imis: This type of stall request signal is:
Asserted when there is a new instruction fetch request but the instruction fetch is unsuccessful. FIGS. 8 to 12 show an example in which a stall is caused by the Imis stall request. Here, the Imis stall request signal is actually asserted when the instruction is not fetched into the instruction register one clock cycle after fpc is loaded with a new value and "fpcen" is asserted.

【0084】図8は命令フェッチ時に命令キャッシュミ
スによるストールが発生した場合を示している。
FIG. 8 shows a case where a stall occurs due to an instruction cache miss during instruction fetch.

【0085】図9は命令フェッチ時に命令キャッシュミ
スによるストールが発生した後、システム中の他の部分
で別のストール要求が発生し、命令キャッシュミスによ
るストールが他の部分での別のストールより先に解消さ
れた場合を示している。
FIG. 9 shows that after a stall due to an instruction cache miss at the time of instruction fetch, another stall request occurs in another part of the system, and the stall due to the instruction cache miss precedes another stall in another part. FIG.

【0086】図10は命令キャッシュミスによるストー
ルがシステムの他の部分での別のストールと同時に発生
し、他の部分での別のストールの方が命令キャッシュミ
スによるストールよりも先に解消した場合を示してい
る。
FIG. 10 shows a case in which a stall due to an instruction cache miss occurs simultaneously with another stall in another part of the system, and another stall in the other part is resolved earlier than a stall due to the instruction cache miss. Is shown.

【0087】図11は命令フェッチ時の命令キャッシュ
ミスによるストールがジャンプ命令のジャンプ先で発生
した場合を示している。
FIG. 11 shows a case where a stall due to an instruction cache miss at the time of instruction fetch occurs at a jump destination of a jump instruction.

【0088】図12は命令キャッシュミスによるストー
ルに伴うキャッシュリフィル動作中にジャンプが起こっ
た場合を示している。
FIG. 12 shows a case where a jump occurs during a cache refill operation associated with a stall due to an instruction cache miss.

【0089】FRbusy:このタイプのストール要求信号
は、FDIV209がパイプラインのE2ステージにあってFM
UL208もこのE2ステージにある時にアサートされ、FD
IV以外のパイプライン処理を1サイクルの間ストールす
ることによって、FMUL208とFDIV209間での浮動小
数点レジスタファイル213への書き込みの競合を回避
するようにするものである。
FRbusy: This type of stall request signal is generated when the FDIV 209 is in the E2 stage of the pipeline and
UL208 is also asserted when in this E2 stage, FD
By stalling pipeline processing other than IV for one cycle, contention of writing to the floating-point register file 213 between the FMUL 208 and the FDIV 209 is avoided.

【0090】FAexch:FADD207のE1ステージにおい
て、トラップ発生の可能性が否定できないとき、FADD2
07におけるパイプライン処理は通常のF1型からF2型に
なる。この場合、FADD207での実行終了ステージはM
ステージになるため、FADD207のE2及びE3ステージの
間他のユニットの実行完了ステージを遅延させて全ての
ユニットがFADD207のMステージと同時に実行完了ス
テージに達するようにするために、このFAexchストール
要求信号をアサートすることによって他のユニットの処
理をストールする。このようなこのFAexchストール要求
信号によってストールが起こる状況が、図13に示され
ており、ここでは「fadd」命令と同時にフェッチされた
「Iadd」「fmul」命令の処理と、次のサイクルでフェッ
チされる「fadd」「Iadd」及び「fmul」命令の処理が
「fadd」命令の処理のE2及びE3ステージ間にストールさ
れる。
FAexch: In the E1 stage of FADD207, when the possibility of trap occurrence cannot be denied, FADD2
The pipeline processing at 07 changes from the normal F1 type to the F2 type. In this case, the execution end stage in FADD207 is M
This FAexch stall request signal is used to delay the execution completion stage of other units during the E2 and E3 stages of FADD207 so that all units reach the execution completion stage at the same time as the M stage of FADD207. Stall the processing of other units by asserting. FIG. 13 shows a situation in which a stall occurs due to such a FAexch stall request signal. Here, the processing of the “Iadd” and “fmul” instructions fetched simultaneously with the “fadd” instruction and the fetch in the next cycle are performed. The processing of the "fadd", "Iadd" and "fmul" instructions is stalled between the E2 and E3 stages of the processing of the "fadd" instruction.

【0091】FMexch:FMUL208のE1ステージにおい
て、トラップ発生の可能性が否定できない場合、FMUL2
08でのパイプライン処理は、通常のF1型からF2型タイ
プになる。この場合、FMUL208での実行完了ステージ
はMステージになるので、他のユニットの実行終了ステ
ージを2サイクル遅延させて全てのユニットがFMUL20
8のMステージと同時に実行完了ステージに達するよう
にするために、このFMexchストール要求信号をアサート
することによって他のユニットの処理をストールする。
FMexch: In the E1 stage of FMUL 208, if the possibility of trap occurrence cannot be denied, FMUL2
The pipeline processing at 08 changes from the normal F1 type to the F2 type. In this case, the execution completion stage in the FMUL 208 becomes the M stage, so that the execution completion stage of the other units is delayed by two cycles, and
In order to reach the execution completion stage at the same time as the M stage 8, the processing of other units is stalled by asserting the FMexch stall request signal.

【0092】FDexch:FDIV209のE1ステージにおい
て、トラップ発生の可能性が否定できない場合、FDIV2
09でのパイプライン処理は、通常のD1型からD2型にな
る。この場合、FDIV209での実行完了ステージはMス
テージになるので、他のユニットの実行完了ステージを
FDIV209がE3ステージを通過する迄遅延させて全ての
ユニットがFDIV209のMステージと同時に実行完了ス
テージに達するようにするために、このFDexchストール
要求信号をアサートすることによって他のユニットの処
理をストールする。このようなこのFDexchストール要求
信号によってストールが起こる場合が図14に示されて
おり、「fdiv」命令と同時にフェッチされた命令「iad
d」及び「fadd」の処理は、命令「fdiv」がE3ステージ
を通過するまでストールされる。
FDexch: In the E1 stage of FDIV209, if the possibility of occurrence of a trap cannot be denied, FDIV2
The pipeline processing at 09 changes from the normal D1 type to the D2 type. In this case, the execution completion stage of the FDIV 209 becomes the M stage, so the execution completion stage of the other units is changed to the M stage.
Stall the processing of other units by asserting this FDexch stall request signal to delay until the FDIV 209 has passed the E3 stage so that all units reach the execution complete stage at the same time as the M stage of the FDIV 209. . FIG. 14 shows a case where a stall occurs due to such an FDexch stall request signal, and the instruction “iad” fetched simultaneously with the “fdiv” instruction
The processing of “d” and “fadd” is stalled until the instruction “fdiv” passes through the E3 stage.

【0093】Fstall:このタイプのストール要求信号
は、実行完了ステージ以前にキャッシュミスリカバリの
ような処理を除く全てのパイプラインの処理をロックさ
せるために、外部からアサートされる。
Fstall: This type of stall request signal is externally asserted before the execution completion stage to lock all pipeline processing except for processing such as cache miss recovery.

【0094】図15から図17は、この第3実施例にお
けるストール制御のタイミングチャートの例を示す。
FIGS. 15 to 17 show examples of timing charts of stall control in the third embodiment.

【0095】図15のタイミングチャートにおいては、
N 番目のサイクルでALU0 203のMステージにおいて
キャッシュミスが検出されて、M0busy信号がアサートさ
れる一方で、キャッシュミスリカバリ処理がスタートす
る。一方、FMUL208についてトラップ発生の可能性が
否定されないので、FMexch信号がアサートされ、stall1
信号及びstall2信号がアサートされる。。
In the timing chart of FIG.
In the Nth cycle, a cache miss is detected in the M stage of ALU0 203, and the M0busy signal is asserted, while the cache miss recovery process starts. On the other hand, since the possibility of occurrence of a trap cannot be denied for FMUL 208, the FMexch signal is asserted and stall1
The signal and stall2 signal are asserted. .

【0096】N+2 番目のサイクルにおいては、ALU020
3についてキャッシュミスリカバリ処理が続けられる一
方、FMUL208は例外を生じなかったのでFMexch信号は
ニゲートされる。しかし、stall1信号及びstall2信号は
まだアサートされているので、FMUL208の実行は完了
できない。
In the (N + 2) th cycle, ALU020
While the cache miss recovery process continues for FM3, the FMexch signal is negated because FMUL 208 did not generate an exception. However, execution of FMUL 208 cannot be completed because the stall1 and stall2 signals are still asserted.

【0097】N+4 番目のサイクルにおいては、ALU020
3についてキャッシュミスリカバリ処理がこのサイクル
中に完了できるので、M0busy信号がニゲートされる。こ
のため、stall1信号及びstall2信号はニゲートされるの
で、他の全てのユニットでの実行が完了できるようにな
る。
In the N + 4th cycle, ALU020
The M0busy signal is negated because the cache miss recovery process for 3 can be completed during this cycle. Therefore, the stall1 signal and the stall2 signal are negated, so that execution in all other units can be completed.

【0098】そして最後に、N+5 番目のサイクルにおい
て、全ての命令の実行が完了されている。
Finally, in the (N + 5) th cycle, the execution of all instructions has been completed.

【0099】図16のタイミングチャートにおいては、
各処理ユニットでの命令のアドレスは、ALU0203<AL
U1204且つFMUL208<ALU1204<FADD207であ
ると仮定している。この場合、キャッシュミスがN 番目
のサイクルにおいてALU1204のMステージで検出され
て、M1busy信号がアサートされる一方で、キャッシュミ
スリマバリ処理がスタートする。一方、トラップ発生の
可能性がFMUL208について否定できないので、FMexch
信号がアサートされ、stall1信号及びstall2信号がアサ
ートされる。
In the timing chart of FIG.
The address of the instruction in each processing unit is ALU0203 <AL
It is assumed that U1204 and FMUL208 <ALU1204 <FADD207. In this case, a cache miss is detected in the M stage of the ALU 1204 in the Nth cycle, and the M1busy signal is asserted, while the cache miss recovery process starts. On the other hand, since the possibility of trap occurrence cannot be denied for FMUL 208, FMexch
The signal is asserted, and the stall1 and stall2 signals are asserted.

【0100】N+2 番目のサイクルにおいては、ALU120
4についてキャッシュミスリカバリ処理が続けられる一
方、FMUL208は例外を起こさなかったのでFMexch信号
はニゲートされる。この時点で、stall2信号はニゲート
されるのでALU0203及びFMUL208での実行は完了で
きるが、stall1信号がまだアサートされているので、FA
DD207の実行は完了できない。
In the (N + 2) th cycle, ALU120
While the cache miss recovery process continues for FM4, the FMexch signal is negated because FMUL 208 did not cause an exception. At this point, the stall2 signal is negated and the execution in ALU0203 and FMUL208 can be completed, but the stall1 signal is still asserted,
Execution of DD 207 cannot be completed.

【0101】N+4 番目のサイクルにおいては、ALU120
4についてキャッシュミスリカバリ処理がこのサイクル
中に完了できるので、M1busy信号がニゲートされる。こ
のため、stall1信号はニゲートされるので、FADD207
の実行が完了できるようになる。
In the N + 4th cycle, ALU120
Since the cache miss recovery process for 4 can be completed during this cycle, the M1busy signal is negated. Therefore, the stall1 signal is negated, so that the FADD207
Can be completed.

【0102】そして最後に、N+5 番目のサイクルにおい
て、全ての命令の実行が完了されている。
Finally, in the (N + 5) th cycle, all instructions have been executed.

【0103】図17のタイミングチャートにおいては、
N 番目のサイクルにおいてALU1204のMステージでキ
ャッシュミスが検出されて、M1busy信号がアサートされ
る一方でキャッシュミスリカバリ処理がスタートする。
一方、トラップ発生の可能性がFMUL208について否定
できないので、FMexch信号がアサートされ、stall1信号
及びstall2信号がアサートされる。
In the timing chart of FIG.
In the Nth cycle, a cache miss is detected at the M stage of the ALU 1204, and while the M1busy signal is asserted, the cache miss recovery process starts.
On the other hand, since the possibility of trap occurrence cannot be denied for the FMUL 208, the FMexch signal is asserted, and the stall1 signal and the stall2 signal are asserted.

【0104】N+2 番目のサイクルにおいては、ALU120
4についてキャッシュミスリカバリ処理が完了し、M1bu
sy信号がニゲートされ、同じN+2 番目のサイクル又はひ
とつ前のN+1 番目のサイクルにおいて、FMUL208が例
外を起こさなかったのでFMexch信号がニゲートされる。
この時点で、stall1信号及びstall2信号もニゲートされ
るので全ての命令の実行が完了できるようになる。
In the (N + 2) th cycle, ALU 120
4, the cache miss recovery process is completed, and M1bu
The sy signal is negated, and the FMexch signal is negated in the same N + 2th cycle or the previous N + 1th cycle because FMUL 208 did not raise an exception.
At this point, the stall1 signal and the stall2 signal are also negated, so that execution of all instructions can be completed.

【0105】この第3実施例におけるstall1信号、stal
l2信号及びFRbusy信号を用いたストール制御処理に応じ
た各処理ステージでの各パイプラインの処理について図
18に示される表に要約する。
In the third embodiment, the stall1 signal, stal
The table shown in FIG. 18 summarizes the processing of each pipeline in each processing stage according to the stall control processing using the l2 signal and the FRbusy signal.

【0106】この第3実施例においては、命令実行にお
いて例外発生の可能性を否定できないとして命令の処理
がストールされた後、命令の処理は、例外が実際に命令
実行の際に起こったときにアボートされるか、さもなく
ば、命令の実行において例外が実際には起こらなかった
ときに命令が復帰する。図18において、BUはプロセッ
サシステムの各処理ユニットに設けられた分岐ユニット
を指すものである。
In the third embodiment, after the processing of an instruction is stalled on the assumption that the possibility of occurrence of an exception cannot be denied in the execution of the instruction, the processing of the instruction is stopped when the exception actually occurs during the execution of the instruction. The instruction is aborted or otherwise returned when no exception actually occurred in the execution of the instruction. In FIG. 18, BU indicates a branch unit provided in each processing unit of the processor system.

【0107】故に、この第3実施例によると、システム
のクロック周波数の低下を防げるように、サイクル時間
を増加することなく処理可能なトラップとストールの制
御機能を組み込んだスーパースカラプロセッサ等の並列
処理型プロセッサシステムを提供することが可能とな
る。
Therefore, according to the third embodiment, a parallel processing such as a super scalar processor incorporating a trap and stall control function capable of processing without increasing the cycle time so as to prevent a decrease in the clock frequency of the system is prevented. It is possible to provide a type processor system.

【0108】[0108]

【発明の効果】以上説明したように、本発明の並列処理
計算機は、サイクル時間を増加させることなく、高速に
トラップとストールの制御処理が可能なものであり、ス
ーパースカラプロセッサ等の並列処理型プロセッサシス
テムにおいてシステムのクロック周波数を低下させるこ
となくトラップとストールの制御をより効率的に行うこ
とが可能となる。
As described above, the parallel processing computer of the present invention is capable of high-speed trap and stall control processing without increasing the cycle time. In a processor system, trap and stall control can be performed more efficiently without lowering the system clock frequency.

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

【図1】本発明に係る並列処理型プロセッサシステムの
第1実施例のブロック図である。
FIG. 1 is a block diagram of a first embodiment of a parallel processing type processor system according to the present invention.

【図2】図1の並列処理型プロセッサシステムにおける
トラップ制御ユニットのブロック図である。
FIG. 2 is a block diagram of a trap control unit in the parallel processing type processor system of FIG. 1;

【図3】図21のプログラムの実行時にトラップ要求が
生じた場合の図1の並列処理型プロセッサシステムにお
けるパイプライン処理の進行状況を示す図である。
FIG. 3 is a diagram showing the progress of pipeline processing in the parallel processing type processor system of FIG. 1 when a trap request occurs during execution of the program of FIG. 21;

【図4】本発明に係る並列処理型プロセッサシステムの
第2実施例のブロック図である。
FIG. 4 is a block diagram of a second embodiment of the parallel processing type processor system according to the present invention.

【図5】図4の並列処理型プロセッサシステムで実行さ
れるプログラムの一例を示す図である。
FIG. 5 is a diagram illustrating an example of a program executed by the parallel processing type processor system of FIG. 4;

【図6】図5のプログラムの実行時にトラップ要求が生
じた場合の図4の並列処理型プロセッサシステムにおけ
るパイプライン処理の進行状況を示す図である。
6 is a diagram showing a progress state of pipeline processing in the parallel processing type processor system of FIG. 4 when a trap request occurs during execution of the program of FIG. 5;

【図7】本発明に係る並列処理型プロセッサシステムの
第3実施例のブロック図である。
FIG. 7 is a block diagram of a third embodiment of a parallel processing type processor system according to the present invention.

【図8】図7の並列処理型プロセッサシステムにおけ
る、命令キャッシュミスによるストールの一例を示す図
である。
8 is a diagram illustrating an example of a stall due to an instruction cache miss in the parallel processing type processor system of FIG. 7;

【図9】図7の並列処理型プロセッサシステムにおけ
る、命令キャッシュミスによるストールの別の一例を示
すタイミングチャートである。
9 is a timing chart showing another example of a stall due to an instruction cache miss in the parallel processing type processor system of FIG. 7;

【図10】図7の並列処理型プロセッサシステムにおけ
る、命令キャッシュミスによるストールの別の一例を示
すタイミングチャートである。
10 is a timing chart showing another example of a stall due to an instruction cache miss in the parallel processing type processor system of FIG. 7;

【図11】図7の並列処理型プロセッサシステムにおけ
る、命令キャッシュミスによるストールの別の一例を示
すタイミングチャートである。
11 is a timing chart showing another example of a stall due to an instruction cache miss in the parallel processing type processor system of FIG. 7;

【図12】図7の並列処理型プロセッサシステムにおけ
る、命令キャッシュミスによるストールの別の一例を示
すタイミングチャートである。
12 is a timing chart showing another example of a stall due to an instruction cache miss in the parallel processing type processor system of FIG. 7;

【図13】図7の並列処理型プロセッサシステムにおけ
る、FAexchによるストールの一例を示すタイミングチャ
ートである。
13 is a timing chart showing an example of a stall by FAexch in the parallel processing type processor system of FIG. 7;

【図14】図7の並列処理型プロセッサシステムにおけ
る、FDexchによるストールの一例を示すタイミングチャ
ートである。
14 is a timing chart showing an example of a stall by FDexch in the parallel processing type processor system of FIG. 7;

【図15】図7の並列処理型プロセッサシステムにおけ
る、ストール制御処理の一例を示すタイミングチャート
である。
FIG. 15 is a timing chart showing an example of a stall control process in the parallel processing type processor system of FIG. 7;

【図16】図7の並列処理型プロセッサシステムにおけ
る、ストール制御処理の別の一例を示すタイミングチャ
ートである。
FIG. 16 is a timing chart showing another example of the stall control process in the parallel processing type processor system of FIG. 7;

【図17】図7の並列処理型プロセッサシステムにおけ
る、ストール制御処理の別の一例を示すタイミングチャ
ートである。
FIG. 17 is a timing chart showing another example of the stall control process in the parallel processing type processor system of FIG. 7;

【図18】図7の並列処理型プロセッサシステムにおけ
る、ストール制御処理に対する各パイプラインの処理態
様をまとめた表である。
18 is a table summarizing the processing modes of each pipeline for stall control processing in the parallel processing type processor system of FIG. 7;

【図19】従来のトラップ制御方法を用いた並列処理型
プロセッサシステムのブロック図である。
FIG. 19 is a block diagram of a parallel processing type processor system using a conventional trap control method.

【図20】図19の従来の並列処理型プロセッサシステ
ムにおけるトラップ制御ユニットのブロック図である。
20 is a block diagram of a trap control unit in the conventional parallel processing processor system of FIG.

【図21】並列処理型プロセッサシステムで実行される
プログラムの一例を示す図である。
FIG. 21 is a diagram illustrating an example of a program executed by the parallel processing type processor system.

【図22】図21のプログラムの実行時にトラップ要求
が生じた場合の図19の並列処理型プロセッサシステム
におけるパイプライン処理の進行状況を示す図である。
22 is a diagram showing the progress of pipeline processing in the parallel processing type processor system of FIG. 19 when a trap request occurs during execution of the program of FIG. 21.

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

101 命令メモリ 101A 命令キャッシュメモリ 102 命令発行ユニット 102A 命令発行ユニット 103 算術論理演算ユニット 104 算術論理演算ユニット 105 浮動小数点加算器 106 浮動小数点乗算器 107 メモリアクセスユニット 108 メモリアクセスユニット 109 浮動小数点例外チェックユニット 110 浮動小数点例外チェックユニット 111 マルチポートレジスタファイル 125 2ポートデータメモリ 125A 2ポートデータキャッシュメモリ 130 トラップ原因レジスタ 131 アボートアドレスレジスタ 132 トラップアドレスレジスタ 133 トラップ制御ユニット 151 Mステージプログラムカウンタ1 152 Mステージプログラムカウンタ2 153 Mステージサブプログラムカウンタ 154 Mステージサブプログラムカウンタ 155 Mステージサブプログラムカウンタ 156 Mステージサブプログラムカウンタ 157 トラップデータ生成ユニット 158 トラップ信号生成ユニット 160 バスライン 161 メインメモリ 162 I/O装置 163 ストール制御ユニット 201 命令キャッシュメモリ 202 命令発行ユニット 203 算術論理演算ユニット 204 算術論理演算ユニット 205 整数乗除算器 206 2ポートデータキャッシュメモリ 207 浮動小数点加算器 208 浮動小数点乗算器 209 浮動小数点除算器 210 命令アドレス生成ユニット 211 制御ユニット 212 整数レジスタファイル 213 浮動小数点レジスタファイル 214 メインメモリ 215 I/O装置 216 バスライン 217 プリデコーダ 218 レジスタスコアボード回路 101 Instruction Memory 101A Instruction Cache Memory 102 Instruction Issuing Unit 102A Instruction Issuing Unit 103 Arithmetic and Logic Operation Unit 104 Arithmetic and Logic Operation Unit 105 Floating Point Adder 106 Floating Point Multiplier 107 Memory Access Unit 108 Memory Access Unit 109 Floating Point Exception Check Unit 110 Floating point exception check unit 111 Multi-port register file 125 2-port data memory 125A 2-port data cache memory 130 Trap cause register 131 Abort address register 132 Trap address register 133 Trap control unit 151 M stage program counter 1 152 M stage program counter 2 153 M stage subprogram counter 1 4 M stage subprogram counter 155 M stage subprogram counter 156 M stage subprogram counter 157 Trap data generation unit 158 Trap signal generation unit 160 Bus line 161 Main memory 162 I / O device 163 Stall control unit 201 Instruction cache memory 202 Instruction issuance Unit 203 Arithmetic / Logic Operation Unit 204 Arithmetic / Logic Operation Unit 205 Integer Multiplier / Divider 206 2-Port Data Cache Memory 207 Floating Point Adder 208 Floating Point Multiplier 209 Floating Point Divider 210 Instruction Address Generation Unit 211 Control Unit 212 Integer Register File 213 Floating point register file 214 Main memory 215 I / O device 216 Bus line 217 Re-decoder 218 Register scoreboard circuit

───────────────────────────────────────────────────── フロントページの続き (72)発明者 武田 譲治 神奈川県川崎市幸区小向東芝町1 株式 会社東芝総合研究所内 (56)参考文献 特開 平4−247523(JP,A) 特開 平4−218841(JP,A) 特開 平5−53806(JP,A) 特開 平5−20070(JP,A) 特開 平4−353929(JP,A) 特開 平4−308930(JP,A) 特開 平4−308929(JP,A) 原哲也、外4名”SIMP(単一命令 流/多重パイプライン)方式に基づく改 良版スーパースカラ・プロセッサの構成 と処理”、電子情報通信学会技術研究報 告,Vol.90,No.144、社団法人 電子情報通信学会、平成2年(1990年) 7月20日、p.103−108 (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 ──────────────────────────────────────────────────続 き Continuation of the front page (72) Inventor Joji Takeda 1 Komukai Toshiba-cho, Saiwai-ku, Kawasaki-shi, Kanagawa Prefecture Toshiba Research Institute, Ltd. (56) References JP-A-4-247523 (JP, A) JP-A Heisei 4-218841 (JP, A) JP-A-5-53806 (JP, A) JP-A-5-20070 (JP, A) JP-A-4-353929 (JP, A) JP-A-4-308930 (JP, A) A) Japanese Patent Application Laid-Open No. 4-308929 (JP, A) Tetsuya Hara, et al., "Configuration and Processing of Improved Superscalar Processor Based on SIMP (Single Instruction Flow / Multiple Pipeline)", Electronic Information Communication Technical Report of the Society, Vol. 90, no. 144, The Institute of Electronics, Information and Communication Engineers, July 20, 1990, p. 103-108 (58) Field surveyed (Int. Cl. 7 , DB name) G06F 9/38

Claims (7)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 複数シーケンスの命令を同時実行するN
個(Nは正整数)の命令実行手段と、 前記N個の命令実行手段により同時実行される命令を供
給する命令供給手段と、 M個(N≧M、Mは正整数)の命令が前記命令供給手段
から前記N個の命令実行手段に同時に供給され、一クロ
ックサイクル中に前記M個の命令の中の少なくとも一つ
の命令実行において処理例外が発生したとき、該一クロ
ックサイクル中に前記N個の命令実行手段の全てにアボ
ート信号を送ることにより前記N個の命令実行手段に供
給された前記M個の命令の同時処理を全て該一クロック
サイクル中にアボートするように前記N個の命令実行手
段を制御するトラップ制御手段と、 を備えたことを特徴とする命令レベル並列処理型プロセ
ッサシステム。
1. A method for simultaneously executing a plurality of sequences of instructions.
(N is a positive integer) instruction execution means, instruction supply means for supplying instructions simultaneously executed by the N instruction execution means, and M (N ≧ M, M is a positive integer) instructions The instruction supply means simultaneously supplies the instruction execution means to the N instruction execution means, and when a processing exception occurs in the execution of at least one of the M instructions in one clock cycle, the N instruction execution is performed in the one clock cycle. Sending the abort signal to all of the N instruction execution means so that the simultaneous processing of the M instructions supplied to the N instruction execution means is aborted in the one clock cycle. An instruction level parallel processing type processor system, comprising: trap control means for controlling execution means.
【請求項2】 前記トラップ制御手段により処理がアボ
ートされた前記M個の命令の中で最も小さいアドレスを
有する命令のアドレスを格納するアボートアドレス格納
手段と、 前記M個の命令の中で前記処理例外を発生させた命令の
アドレスを格納するトラップアドレス格納手段と、 を更に備えたことを特徴とする請求項1記載の命令レベ
ル並列処理型プロセッサシステム。
2. An abort address storage means for storing an address of an instruction having the smallest address among the M instructions whose processing has been aborted by said trap control means; and said processing among said M instructions. 2. The instruction level parallel processing type processor system according to claim 1, further comprising: trap address storage means for storing an address of an instruction which caused the exception.
【請求項3】 前記N個の命令実行手段は、K個(M≧
K、Kは整数)の同等の機能を有する順序付けされた演
算手段を有し、前記命令供給手段はJ個(K≧J>1、
Jは整数)の順序付けされた命令を、該J個の命令の中
でより前の順序にある命令が該K個の演算手段の中でよ
り前の順序にある演算手段に供給されるように、該K個
の演算手段に供給することを特徴とする請求項1記載の
命令レベル並列処理型プロセッサシステム。
3. The method according to claim 1, wherein the N instruction executing means includes K instructions (M ≧ M).
K, where K is an integer) ordered arithmetic means having equivalent functions, wherein the instruction supply means is J pieces (K ≧ J> 1,
(J is an integer) so that the instructions in the J instructions earlier in the order are provided to the arithmetic means earlier in the K arithmetic means. The instruction level parallel processing type processor system according to claim 1, wherein said processor is supplied to said K arithmetic means.
【請求項4】 前記J個の命令中のI番目の命令の実行
において処理例外が発生する可能性を否定しきれないと
きには、前記J個の命令の中で該I番目の命令よりも後
の順序にある命令の処理をストールするように、前記J
個の命令の一部の処理をストールするストール手段を、
更に備えたことを特徴とする請求項3記載の命令レベル
並列処理型プロセッサシステム。
4. When the possibility of occurrence of a processing exception in the execution of the I-th instruction among the J instructions cannot be denied, the latter of the J instructions after the I-th instruction. So as to stall the processing of instructions in order.
Stall means to stall part of the processing of the instructions
The instruction level parallel processing type processor system according to claim 3, further comprising:
【請求項5】 前記M個の命令の実行において処理例外
が発生する可能性を否定しきれないときには、前記M個
の命令を実行すると共に前記M個の命令の実行後の更な
処理をストールし、前記M個の命令実行した際に
理例外が実際に発生したときには、前記M個の命令の
行後の更なる処理をアボートし、前記M個の命令実行
した際に処理例外が実際に発生しなかったときには、前
記M個の命令の実行後の更なる処理を再開するストール
制御手段を、更に備えたことを特徴とする請求項1記載
の命令レベル並列処理型プロセッサシステム。
5. When not be ruled out the possibility that the processing exception occurs in the execution of the M instruction, the M
And further execution after the execution of the M instructions.
That process stalls, said upon the occurrence of M processing <br/> management exception actually when an instruction has been executed, the M number of instruction execution of
Abort further processing after line and execute the M instructions
2. The instruction-level parallel processor according to claim 1, further comprising: a stall control unit that restarts further processing after the execution of the M instructions when a processing exception does not actually occur. Processing type processor system.
【請求項6】 前記処理例外に対処する手段と、 前記処理例外に対処した後に、前記トラップ制御手段に
よりアボートされた前記M個の命令を同時に再スタート
する手段と、 を更に備えたことを特徴とする請求項1記載の命令レベ
ル並列処理型プロセッサシステム。
6. A means for handling the processing exception, and means for simultaneously restarting the M instructions aborted by the trap control means after handling the processing exception. The instruction level parallel processing type processor system according to claim 1, wherein
【請求項7】 命令レベル並列処理型プロセッサシステ
ムの制御方法であって、 該システムのN個(Nは正整数)の命令実行手段により
同時実行される複数シーケンスのM個(N≧M、Mは正
整数)の命令を供給するステップと、 前記M個の命令が前記N個の命令実行手段に同時に供給
され、一クロックサイクル中に前記M個の命令の中の少
なくとも一つの命令実行において処理例外が発生したと
き、該一クロックサイクル中に前記N個の命令実行手段
の全てにアボート信号を送ることにより前記N個の命令
実行手段に同時に供給された前記M個の命令の処理を全
て該一クロックサイクル中にアボートするように前記N
個の命令実行手段を制御するステップと、 を備えたことを特徴とする命令レベル並列処理型プロセ
ッサシステムの制御方法。
7. A method for controlling an instruction level parallel processing type processor system, comprising: M (N ≧ M, M) of a plurality of sequences simultaneously executed by N (N is a positive integer) instruction execution means of the system. And M instructions are simultaneously supplied to the N instruction execution means, and are processed in at least one instruction execution of the M instructions in one clock cycle. When an exception occurs, an abort signal is sent to all of the N instruction execution means during the one clock cycle, thereby processing all of the M instructions supplied to the N instruction execution means simultaneously. N so that it aborts during one clock cycle
Controlling a plurality of instruction execution means. A method for controlling an instruction level parallel processing type processor system, comprising:
JP08249092A 1991-04-05 1992-04-03 Parallel processing type processor system and control method of parallel processing type processor system Expired - Lifetime JP3146058B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08249092A JP3146058B2 (en) 1991-04-05 1992-04-03 Parallel processing type processor system and control method of parallel processing type processor system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7336491 1991-04-05
JP3-73364 1991-04-05
JP08249092A JP3146058B2 (en) 1991-04-05 1992-04-03 Parallel processing type processor system and control method of parallel processing type processor system

Publications (2)

Publication Number Publication Date
JPH05181676A JPH05181676A (en) 1993-07-23
JP3146058B2 true JP3146058B2 (en) 2001-03-12

Family

ID=26414515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08249092A Expired - Lifetime JP3146058B2 (en) 1991-04-05 1992-04-03 Parallel processing type processor system and control method of parallel processing type processor system

Country Status (1)

Country Link
JP (1) JP3146058B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6533771B2 (en) 2000-02-02 2003-03-18 Uni-Charm Corporation Sanitary tampon of small fiber agglomerations
US6719743B1 (en) 1999-07-02 2004-04-13 Uni-Charm Corporation Sanitary tampon
USD1004080S1 (en) 2016-07-29 2023-11-07 Kimberly-Clark Worldwide, Inc. Tampon

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440703A (en) * 1993-09-20 1995-08-08 International Business Machines Corporation System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
JP3251148B2 (en) * 1995-05-30 2002-01-28 甲府日本電気株式会社 Pipeline data processing device
JP4891521B2 (en) 2003-03-28 2012-03-07 三洋電機株式会社 Data input / output method, and storage device and host device capable of using the method
JP5436033B2 (en) * 2009-05-08 2014-03-05 パナソニック株式会社 Processor
EP3131004A4 (en) * 2014-04-11 2017-11-08 Murakumo Corporation Processor and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
原哲也、外4名"SIMP(単一命令流/多重パイプライン)方式に基づく改良版スーパースカラ・プロセッサの構成と処理"、電子情報通信学会技術研究報告,Vol.90,No.144、社団法人電子情報通信学会、平成2年(1990年)7月20日、p.103−108

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6719743B1 (en) 1999-07-02 2004-04-13 Uni-Charm Corporation Sanitary tampon
US6533771B2 (en) 2000-02-02 2003-03-18 Uni-Charm Corporation Sanitary tampon of small fiber agglomerations
USD1004080S1 (en) 2016-07-29 2023-11-07 Kimberly-Clark Worldwide, Inc. Tampon

Also Published As

Publication number Publication date
JPH05181676A (en) 1993-07-23

Similar Documents

Publication Publication Date Title
US5838988A (en) Computer product for precise architectural update in an out-of-order processor
US7111126B2 (en) Apparatus and method for loading data values
US5420991A (en) Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US5561774A (en) Parallel processing type processor system with trap and stall control functions
US7571304B2 (en) Generation of multiple checkpoints in a processor that supports speculative execution
JP3120152B2 (en) Computer system
US5958047A (en) Method for precise architectural update in an out-of-order processor
US5890008A (en) Method for dynamically reconfiguring a processor
US6240502B1 (en) Apparatus for dynamically reconfiguring a processor
US20060248319A1 (en) Validating branch resolution to avoid mis-steering instruction fetch
US7076640B2 (en) Processor that eliminates mis-steering instruction fetch resulting from incorrect resolution of mis-speculated branch instructions
US5590294A (en) Method and apparatus for retarting pipeline processing
US6223278B1 (en) Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
US6219778B1 (en) Apparatus for generating out-of-order results and out-of-order condition codes in a processor
GB2429551A (en) Method and apparatus for avoiding live-lock in a processor that supports speculative-execution
US7565658B2 (en) Hidden job start preparation in an instruction-parallel processor system
US20050081195A1 (en) Selectively deferring the execution of instructions with unresolved data dependencies as they are issued in program order
US6052777A (en) Method for delivering precise traps and interrupts in an out-of-order processor
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
JP3146058B2 (en) Parallel processing type processor system and control method of parallel processing type processor system
US11507379B2 (en) Managing load and store instructions for memory barrier handling
US6049868A (en) Apparatus for delivering precise traps and interrupts in an out-of-order processor
JP2951580B2 (en) Method and data processing system supporting out-of-order instruction execution
US20050223201A1 (en) Facilitating rapid progress while speculatively executing code in scout mode
US5742755A (en) Error-handling circuit and method for memory address alignment double fault

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080105

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090105

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100105

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 12