JP2944335B2 - Information processing device - Google Patents
Information processing deviceInfo
- Publication number
- JP2944335B2 JP2944335B2 JP28865992A JP28865992A JP2944335B2 JP 2944335 B2 JP2944335 B2 JP 2944335B2 JP 28865992 A JP28865992 A JP 28865992A JP 28865992 A JP28865992 A JP 28865992A JP 2944335 B2 JP2944335 B2 JP 2944335B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- holding
- exception
- 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 - Fee Related
Links
Landscapes
- Advance Control (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、プロセッサにおける分
岐制御方式に係り、特にプリフェッチ命令を蓄える命令
バッファと、命令デコード回路と、命令実行部と、プリ
フェッチ制御回路4と、動的アドレス変換回路と命令コ
ードメモリとを有し、動的アドレス変換(DAT)を行
うと共に、命令の先行フェッチを行う情報処理装置に関
する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a branch control system in a processor, and more particularly to an instruction buffer for storing a prefetch instruction, an instruction decode circuit, an instruction execution unit, a prefetch control circuit 4, a dynamic address conversion circuit, and the like. The present invention relates to an information processing apparatus having an instruction code memory, performing dynamic address translation (DAT), and performing prefetching of instructions.
【0002】[0002]
【従来の技術】現在、プロセッサにおける分岐命令の高
速化が進み、プロセッサにおいては、命令のパイプライ
ン処理等の先行制御が一般化してきている。このような
命令の先行制御においては、連続する命令列を実行する
場合には、非常に効率よく高速に動作するが、分岐命令
等により命令のシーケンスが変化する場合には、先行し
て実行した命令が無駄になるため、分岐命令が多く発行
されるとプロセッサの性能低下を来たす。従って、その
性能低下を抑えるために、分岐先の予測や、分岐アドレ
スに対する命令先行フェッチを行っている。このような
分岐先の命令のプリフェッチを行うプロセッサにおいて
は、分岐先の命令フェッチに対してアドレス変換(DA
T)の例外(TLBフォルト・ページフォルト・プロテ
クション例外等)が発生する場合がある。このような分
岐先の命令に対する例外は、条件分岐命令で分岐条件が
成立しなかった場合には、発生しないようにする必要が
ある。2. Description of the Related Art At present, the speed of branch instructions in processors is increasing, and in processors, advance control such as pipeline processing of instructions is becoming common. In such precedent control of instructions, when a continuous instruction sequence is executed, it operates very efficiently and at high speed, but when the sequence of instructions changes due to a branch instruction or the like, the instruction is executed in advance. Since instructions are wasted, if a large number of branch instructions are issued, the performance of the processor is reduced. Therefore, in order to suppress the performance degradation, prediction of the branch destination and instruction fetch for the branch address are performed. In such a processor that prefetches an instruction at a branch destination, address translation (DA) is performed on the instruction fetch at the branch destination.
T) exceptions (TLB fault page fault protection exception, etc.) may occur. It is necessary that such an exception to the instruction at the branch destination does not occur when the branch condition is not satisfied by the conditional branch instruction.
【0003】そこで、従来の分岐先の命令フェッチを行
うプロセッサにおいては、条件判定が終了するまで分岐
先の命令フェッチに対するDATの例外処理を行わない
ようにしていた。このため、分岐先の命令フェッチ中に
DATに関する例外が発生した場合には、以降の命令フ
ェッチを抑止し、その時の状態を保持して分岐条件が成
立した場合に例外処理が正しく行えるようにすることが
必要となる。Therefore, in a conventional processor for fetching an instruction at a branch destination, the DAT exception processing for the instruction fetch at the branch destination is not performed until the condition determination is completed. Therefore, when an exception related to DAT occurs during the instruction fetch at the branch destination, the subsequent instruction fetch is suppressed, and the state at that time is retained so that the exception processing can be performed correctly when the branch condition is satisfied. It is necessary.
【0004】[0004]
【発明が解決しようとする課題】従って、分岐先の命令
フェッチを行うプロセッサにおいては、DATに関する
例外が発生直後の命令フェッチを抑止するために、高速
なDATの例外検出と、命令フェッチ制御が必要であ
り、このため、ハード量の増加、マシンサイクルの低下
をきたしていた。Therefore, in a processor that fetches an instruction at a branch destination, high-speed DAT exception detection and instruction fetch control are required in order to suppress the instruction fetch immediately after the DAT-related exception occurs. Therefore, the amount of hardware increases and the machine cycle decreases.
【0005】そこで、本発明は、分岐先の命令フェッチ
において命令変換に関するエラーが発生した場合でも、
その時の状態を保持する必要をなくし、ハード量削減
と、マシンサイクルの高速化を図ることができる情報処
理装置を提供することを目的とする。Accordingly, the present invention provides a method for fetching an instruction even when an error relating to instruction conversion occurs in an instruction fetch at a branch destination.
It is an object of the present invention to provide an information processing apparatus which can eliminate the need to hold the state at that time, reduce the amount of hardware, and speed up the machine cycle.
【0006】[0006]
【課題を解決するための手段】本発明において、上記の
課題を解決するための手段は、命令の先行フェッチを行
う情報処理装置であって、前記先行フェッチにより得ら
れる分岐命令の分岐先アドレスを保持する第1の保持部
と、前記分岐命令の分岐条件が成立した場合で、かつ該
分岐条件が未確定中にアドレス変換処理に伴う例外が発
生している場合には、第1の保持部に保持された分岐先
アドレスから再度命令の先行フェッチを行うプリフェッ
チ制御部と、を備えることを特徴とする情報処理装置で
ある。According to the present invention, there is provided an information processing apparatus for performing an advanced fetch of an instruction, the information processing apparatus being configured to store a branch destination address of a branch instruction obtained by the advanced fetch. A first holding unit for holding, and a first holding unit when the branch condition of the branch instruction is satisfied and when an exception accompanying the address translation process occurs while the branch condition is undetermined. And a prefetch control unit that prefetches instructions again from the branch destination address stored in the prefetch control unit.
【0007】また、本発明では、前記分岐先アドレスが
確定したときの先行フェッチアドレスを保持する第2の
保持部とを備え、前記プリフェッチ制御部は、前記分岐
命令の分岐条件が成立しなかった場合には、第2の保持
部に保持されたアドレスから命令の先行フェッチを行う
ことを特徴とするものである。In the present invention, there is provided a second holding unit for holding a preceding fetch address when the branch destination address is determined, wherein the prefetch control unit does not satisfy a branch condition of the branch instruction. In this case, the instruction is prefetched from the address held in the second holding unit.
【0008】さらに、本発明では、前記分岐命令の分岐
条件が成立した場合で、かつアドレス変換処理に伴う例
外が発生していない場合は、前記第1の保持部に保持さ
れた分岐先アドレスから先行フェッチした命令を命令実
行部に実行させると共に、先行フェッチを継続すること
を特徴とするものである。Further, according to the present invention, when the branch condition of the branch instruction is satisfied and no exception occurs due to the address conversion processing, the branch destination address held in the first holding unit is read from the branch destination address. The prefetched instruction is executed by the instruction execution unit while the prefetched instruction is continued.
【0009】即ち、本発明は、図1に示すように、プリ
フェッチ命令を蓄える命令バッファ(1)と、命令デコ
ード回路(2)と、命令実行部(3)と、上記プリフェ
ッチ制御部に相当するプリフェッチ制御回路(4)と、
動的アドレス変換回路(5)と命令コードメモリ(6)
とを有し、動的アドレス変換(DAT)を行うと共に、
命令の先行フェッチを行うプロセッサにおいて、命令バ
ッファ1は分岐先の命令列を保持する分岐先命令列保持
手段IBを有し、命令デコード回路2は分岐アドレスが
確定し分岐条件の評価がまだ行われていないことを示す
予約フラグAを有し、プリフェッチ制御回路3は、その
分岐アドレスを保持する上記第1の保持部に相当する分
岐先レジスタBと、分岐アドレスが始まる連続する命令
列をAが有効である期間フェッチする保持レジスタC
と、分岐先アドレスが確定した時点での先行フェッチア
ドレスを保持する上記第2の保持部に相当するフェッチ
アドレスレジスタEとを有し、アドレス変換回路は予約
フラグAが分岐先の命令フェッチ中であることを示す間
にアドレス変換回路に伴う例外が発生したことを保持す
る例外検出フラグDを有し、条件分岐命令の実行におい
て、保持レジスタCにより分岐先命令のフェッチを再開
し、分岐条件が成立しなかった場合には、フェッチアド
レスレジスタEに保持したアドレスから命令の先行フェ
ッチを再開し、分岐条件が成立した場合で例外検出フラ
グDにアドレス変換回路5に伴う例外が発生していない
場合には、分岐先レジスタBの示す分岐アドレスをプロ
グラムカウンタにセットして、分岐先命令列保持手段I
Bの命令列を先行フェッチのデータとし、保持レジスタ
Cでフェッチした命令以降の命令列の先行フェッチを行
う一方、例外検出フラグDにアドレス変換回路5に伴う
例外が発生したことを示している場合には、分岐先命令
列保持手段IBの命令列を使用せず、分岐先レジスタB
の示す分岐アドレスから再度命令の先行フェッチをやり
直すことである。That is, as shown in FIG. 1, the present invention corresponds to an instruction buffer (1) for storing a prefetch instruction, an instruction decode circuit (2), an instruction execution unit (3), and the prefetch control unit. A prefetch control circuit (4);
Dynamic address translation circuit (5) and instruction code memory (6)
Performing dynamic address translation (DAT),
In a processor that prefetches an instruction, the instruction buffer 1 has branch destination instruction sequence holding means IB for holding a branch destination instruction sequence, and the instruction decode circuit 2 determines the branch address and evaluates the branch condition. The prefetch control circuit 3 has a branch destination register B corresponding to the first holding unit for holding the branch address and a continuous instruction sequence starting with the branch address. Holding register C to fetch during valid period
And a fetch address register E corresponding to the second holding unit for holding the preceding fetch address at the time when the branch destination address is determined. An exception detection flag D that holds that an exception accompanying the address translation circuit has occurred while indicating that the instruction is present. When the conditional branch instruction is executed, the holding register C restarts the fetch of the branch destination instruction, and the branch condition is satisfied. If the condition is not satisfied, the preceding fetch of the instruction is restarted from the address held in the fetch address register E, and if the branch condition is satisfied and the exception detected by the exception detection flag D does not involve the address conversion circuit 5 Sets the branch address indicated by the branch destination register B in the program counter, and stores the branch instruction sequence holding means I
A case where the instruction sequence of B is the data of the preceding fetch and the instruction sequence following the instruction fetched by the holding register C is prefetched, while the exception detection flag D indicates that the exception associated with the address conversion circuit 5 has occurred. Does not use the instruction sequence of the branch destination instruction sequence holding means IB,
Is to redo the preceding fetch of the instruction from the branch address indicated by.
【0010】[0010]
【作用】本発明では、命令デコード回路2において命令
バッファ1の出力に分岐命令がなかった場合、プリフェ
ッチ制御回路3は保持レジスタCのアドレスを更新する
とともに、保持レジスタCの出力をアドレス変換回路5
に送出し、対応する物理アドレスをメモリ6が受取り命
令バッファ1に命令データをセットする。これを繰り返
しプリフェッチを行う。According to the present invention, when there is no branch instruction in the output of the instruction buffer 1 in the instruction decoding circuit 2, the prefetch control circuit 3 updates the address of the holding register C and outputs the output of the holding register C to the address conversion circuit 5
, And the memory 6 receives the corresponding physical address, and sets the instruction data in the instruction buffer 1. This is repeated to perform prefetch.
【0011】ここで、アドレス変換回路5においてアド
レス変換に伴う例外が検出された場合には、アドレス変
換回路5は、例外検出フラグDから例外検出信号を命令
実行部3に送出し、命令実行部3は、命令の実行を中断
して例外に対する割り込み処理を行う。命令デコード回
路2において命令バッファ1の出力に分岐命令を検出し
た場合、分岐アドレスを計算して、プリフェッチ制御回
路4の分岐先レジスタB及び保持レジスタCに分岐先ア
ドレスをセットし、分岐予約フラグAをONにする。プ
リフェッチ制御手段4は、分岐先アドレスに対する命令
アドレスをアドレス変換回路5に送出する。アドレス変
換回路5はそれに対応する物理アドレスをメモリ6に送
出し、対応する命令コードが命令バッファ1にセットさ
れる。Here, when the address translation circuit 5 detects an exception accompanying the address translation, the address translation circuit 5 sends an exception detection signal from the exception detection flag D to the instruction execution unit 3, and the instruction execution unit 3 No. 3 interrupts execution of an instruction and performs interrupt processing for an exception. When the instruction decode circuit 2 detects a branch instruction at the output of the instruction buffer 1, the branch address is calculated, the branch destination address is set in the branch destination register B and the holding register C of the prefetch control circuit 4, and the branch reservation flag A is set. Turn ON. The prefetch control unit 4 sends an instruction address corresponding to a branch destination address to the address conversion circuit 5. The address conversion circuit 5 sends the corresponding physical address to the memory 6, and the corresponding instruction code is set in the instruction buffer 1.
【0012】この分岐先命令のプリフェッチは、命令実
行部3が分岐条件の判定を行っている間は継続して行わ
れる。予約フラグAがONの間において命令実行部3で
例外が検出された場合には、アドレス変換回路5の例外
検出フラグDがセットされる。命令実行部3において分
岐命令が実行され分岐が確定したときの動作は以下のと
おりである。The prefetch of the branch destination instruction is continuously performed while the instruction execution unit 3 determines the branch condition. If an exception is detected by the instruction execution unit 3 while the reservation flag A is ON, the exception detection flag D of the address conversion circuit 5 is set. The operation when the branch instruction is executed in the instruction execution unit 3 and the branch is determined is as follows.
【0013】 I 例外発生なし(D=OFF)で分岐条件不成立の時 フェッチアドレスレジスタEに保持したアドレスをCに
セットし、予約フラグAをリセットし、処理を継続す
る。 II 例外発生なし(D=OFF)で分岐条件成立の時 継続してプリフェッチを行い、予約フラグAをリセット
し、分岐先レジスタBに保持するアドレスに対応する命
令コードを命令デコード回路2から取り出し、命令実行
部3に送出する。I When no exception is generated (D = OFF) and the branch condition is not satisfied: The address held in the fetch address register E is set to C, the reservation flag A is reset, and the processing is continued. II When the branch condition is satisfied without occurrence of an exception (D = OFF) Prefetch is continuously performed, the reservation flag A is reset, and the instruction code corresponding to the address held in the branch destination register B is taken out from the instruction decode circuit 2, It is sent to the instruction execution unit 3.
【0014】 III 例外発生(D=ON)で分岐条件不成立の時 フェッチアドレスレジスタEに保持したアドレスを保持
レジスタCにセットし、予約フラグA及び例外検出フラ
グDをリセットし、処理を継続する。 IV 例外発生(D=ON)で分岐条件成立の時 分岐先レジスタBに保持したアドレスを保持レジスタC
にセットし、予約フラグA及び例外検出Dをリセット
し、分岐先レジスタBに保持するアドレスに対応する命
令コードを命令デコード回路2から取り出し、命令実行
部3に送出する。命令フェッチの再実行により、再びア
ドレス変換の例外を検出し、命令実行回路3に例外処理
のための割り込み信号を伝える。III When an exception occurs (D = ON) and the branch condition is not satisfied The address held in the fetch address register E is set in the holding register C, the reservation flag A and the exception detection flag D are reset, and the processing is continued. IV When an exception occurs (D = ON) and the branch condition is satisfied The address held in the branch destination register B is held in the holding register C
To reset the reservation flag A and the exception detection D, take out the instruction code corresponding to the address held in the branch destination register B from the instruction decode circuit 2 and send it to the instruction execution unit 3. By re-executing the instruction fetch, an exception of the address translation is detected again, and an interrupt signal for exception processing is transmitted to the instruction execution circuit 3.
【0015】[0015]
【実施例】以下、本発明に係る情報処理装置の実施例を
説明する。図1乃至図5は本発明に係る情報処理装置の
実施例を示すものである。図1及び図2において1は2
系統のバッファIBA11、IBB12、TFF(トグ
ルフリップフロップ)13及び、マルチプレクサ(MP
X)14からなる命令バッファ、2はデコーダ21、予
約フラグAであるJKフリップフロップ22、及び命令
実行部3から分岐(BR)非分岐(NBR)信号を受け
上記フリップフロップ22のK端子に論理和を出力する
アンドゲート23からなる命令デコード回路、3は命令
実行部を示している。また、4は命令のプリフェッチア
ドレスを保持・更新する保持レジスタC、分岐時に分岐
先アドレスを保持するレジスタB、分岐先アドレスが確
定した時点でのフェッチアドレスを保持するフェッチア
ドレスレジスタE、マルチプレクサ(MPX)41及び
アドレスを歩進させるインクリメンタ42から成るプリ
フェッチ制御回路、5はTLB(変換索引バッファ)5
1、デコーダ52例外検出フラグDであるJKフリップ
フロップ53、アンドゲート54、インバータ55及び
命令実行部3に割込信号を発生するアンドゲート56と
からなり論理アドレスを物理アドレスに変換すると共に
にDAT変換において、例外が発生したことを検出する
アドレス変換回路、6は、命令コードが格納され、アド
レス変換回路より入力される物理アドレスに対応する命
令コードを命令バッファ1に転送するメモリを示してい
る。DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the information processing apparatus according to the present invention will be described below. 1 to 5 show an embodiment of an information processing apparatus according to the present invention. 1 and 2, 1 is 2
System buffers IBA11, IBB12, TFF (toggle flip-flop) 13, and multiplexer (MP
X) 14, an instruction buffer 2, a decoder 21, a JK flip-flop 22 that is a reservation flag A, and a branch (BR) non-branch (NBR) signal from the instruction execution unit 3, and a logic is applied to the K terminal of the flip-flop 22. An instruction decode circuit 3 comprising an AND gate 23 for outputting a sum, 3 denotes an instruction execution unit. Reference numeral 4 denotes a holding register C for holding and updating a prefetch address of an instruction, a register B for holding a branch destination address at the time of branching, a fetch address register E for holding a fetch address when the branch destination address is determined, and a multiplexer (MPX). ) 41 and a prefetch control circuit comprising an incrementer 42 for incrementing an address.
1. The decoder 52 comprises a JK flip-flop 53 which is an exception detection flag D, an AND gate 54, an inverter 55, and an AND gate 56 which generates an interrupt signal to the instruction execution unit 3, and converts a logical address into a physical address and a DAT. An address translation circuit 6 for detecting the occurrence of an exception in translation is a memory that stores an instruction code and transfers an instruction code corresponding to a physical address input from the address translation circuit to the instruction buffer 1. .
【0016】次に本実施例に係る情報処理装置の作動を
説明する。先ず、命令バッファ1において、バッファI
BA11及びIBB12は、TFF13(トグルフリッ
プフロップ)によりMPX14で選択され、分岐が成立
する度に値が反転し反対側の命令バッファを選択され命
令デコード回路2に出力される。Next, the operation of the information processing apparatus according to this embodiment will be described. First, in the instruction buffer 1, the buffer I
The BA11 and the IBB12 are selected by the MPX14 by the TFF13 (toggle flip-flop). Each time a branch is taken, the value is inverted, the instruction buffer on the opposite side is selected and output to the instruction decode circuit 2.
【0017】デコーダ21は、入力された命令コードか
ら分岐命令の分岐先アドレスを生成し、分岐命令が検
出され、有効な分岐先アドレスが生成されたことを示
す分岐検出信号を生成し、当信号がONになったと
き、予約フラグA(JKフリップフロップ22)をセッ
トする。この予約フラグAは、分岐命令の分岐条件が確
定したときにK入力がONになり、リセットされる。ま
た、MPX14の出力から命令コードを切り出して、命
令コードを命令実行部3に転送する。The decoder 21 generates a branch destination address of a branch instruction from the input instruction code, detects a branch instruction, and generates a branch detection signal indicating that a valid branch destination address has been generated. Turns ON, the reservation flag A (JK flip-flop 22) is set. The reservation flag A is reset when the K input is turned on when the branch condition of the branch instruction is determined. Further, it extracts an instruction code from the output of the MPX 14 and transfers the instruction code to the instruction execution unit 3.
【0018】命令実行部3は分岐命令において、分岐条
件判定タイミングにおいて、分岐条件成立時には、信号
BRを出力し、分岐条件非成立時には、NBRを命令デ
コード回路2に出力する。プリフェッチ制御回路4は分
岐検出信号がONになった時に、分岐先レジスタBに
分岐先アドレスをセットすると同時に、MPX41に
より保持レジスタCの入力に分岐先アドレスが選択さ
れ、が保持レジスタCにセットされる。また、がO
Nになった時に、保持レジスタCの出力をフェッチアド
レスレジスタEにコピーする。The instruction execution unit 3 outputs a signal BR when a branch condition is satisfied at a branch condition determination timing in a branch instruction, and outputs an NBR to the instruction decode circuit 2 when the branch condition is not satisfied. When the branch detection signal is turned on, the prefetch control circuit 4 sets the branch destination address in the branch destination register B, and at the same time, selects the branch destination address as the input of the holding register C by the MPX 41 and sets the branch destination address in the holding register C. You. In addition,
When it becomes N, the output of the holding register C is copied to the fetch address register E.
【0019】また信号NBRがONになった時には、M
PX41はフェッチアドレスレジスタEをセレクトし、
フェッチアドレスレジスタEの値が保持レジスタCにセ
ットされる。さらに信号がONになった時には、分岐
先レジスタBの出力がMPX41で選択され、保持レジ
スタCに分岐先レジスタBの値がセットされる。それ以
外の時には、保持レジスタCを更新した信号がMPX
41に選択され、プリフェッチが行われる度に、保持レ
ジスタCの値は更新される。When the signal NBR is turned on, M
PX41 selects fetch address register E,
The value of the fetch address register E is set in the holding register C. When the signal is further turned on, the output of the branch destination register B is selected by the MPX 41, and the value of the branch destination register B is set in the holding register C. At other times, the signal that updates the holding register C is MPX
41, the value of the holding register C is updated every time the prefetch is performed.
【0020】アドレス変換回路5では、TLB51によ
り、論理アドレスから物理アドレスに変換すると同時に
デコーダ6はそのアドレスに対するTLBフォルトを検
出してTLBF信号を出力する。予約フラグAがOFF
の時には、TLBフォルト信号TLBFがそのまま3へ
の割り込み信号となるがA=1の間は、割り込みを抑止
する。A=1の間にTLBFがONになった時には、例
外検出フラグD(JKフリップフロップ53)がセット
され、分岐が成立したときに信号を出力する。In the address conversion circuit 5, the TLB 51 converts a logical address into a physical address, and at the same time, the decoder 6 detects a TLB fault for the address and outputs a TLBF signal. Reservation flag A is OFF
In the case of (1), the TLB fault signal TLBF becomes an interrupt signal to 3 as it is, but interrupts are suppressed while A = 1. When TLBF is turned on while A = 1, the exception detection flag D (JK flip-flop 53) is set, and a signal is output when the branch is taken.
【0021】これらの作動を実際の例に基づいて説明す
る。図3乃至図5は、実施例に係るプロセッサにおける
分岐制御方式の作動を示すタイミングチャートである。
先ず、分岐先においてTLBフォルト(例外)が発生し
ない場合であって、通常に分岐するときには、図3
(1)に示すように、命令バッファ1のIBAを実行中
デコーダ21からの分岐検出信号で予約フラグAがO
Nとなり、保持レジスタCは継続してプリフェッチを行
う。そして、命令実行部3からのBR信号により予約フ
ラグAをリセットし、分岐先レジスタBに保持するアド
レスに対応する命令コードIBBを命令デコード回路2
から取り出し、TFF13によりMPX14を切り換え
て、命令バッファ1から、デコーダ21からは切り替わ
った命令コードIBBが命令実行部3に送出される。こ
れにより、分岐が正常に行われる。These operations will be described based on actual examples. FIGS. 3 to 5 are timing charts showing the operation of the branch control method in the processor according to the embodiment.
First, in the case where no TLB fault (exception) occurs at the branch destination, and when branching normally, FIG.
As shown in (1), the reservation flag A is set to O by the branch detection signal from the decoder 21 during the execution of the IBA of the instruction buffer 1.
N, and the holding register C continuously performs prefetch. Then, the reservation flag A is reset by the BR signal from the instruction execution unit 3, and the instruction code IBB corresponding to the address held in the branch destination register B is decoded by the instruction decoding circuit 2.
The MPX 14 is switched by the TFF 13, and the switched instruction code IBB is transmitted from the instruction buffer 1 to the instruction execution unit 3 from the decoder 21. Thereby, the branch is performed normally.
【0022】分岐が行われない場合には、図3(2)に
示すように、NBR信号により予約フラグAはリセット
され、MPX1は切り替わらず、そのまま命令コードI
BAが命令実行部3に出力される。分岐先においてTL
Bフォルトが発生する場合は本実施例は以下のように作
動する。If the branch is not taken, the reservation flag A is reset by the NBR signal as shown in FIG. 3 (2), the MPX1 is not switched, and the instruction code I is not changed.
BA is output to the instruction execution unit 3. TL at branch destination
If a B fault occurs, this embodiment operates as follows.
【0023】先ず分岐先でTLBフォルトが発生し、分
岐をしない場合を図4に示す。命令バッファ1のIBA
を実行中デコーダ21からの分岐検出信号で予約フラ
グAがONとなり、保持レジスタCに保持されたアドレ
スを使用し、継続してプリフェッチを行う。途中TLB
フォルト信号がデコーダから出力されると、フェッチア
ドレスレジスタEに保持したアドレスを保持レジスタC
にセットする。しかしNBR信号の出力と共に、予約フ
ラグA及び例外検出フラグDをリセットし、処理を継続
する。FIG. 4 shows a case where a TLB fault occurs at the branch destination and the branch is not taken. IBA of instruction buffer 1
Is executed, the reservation flag A is turned on by the branch detection signal from the decoder 21, and the prefetch is continuously performed using the address held in the holding register C. TLB on the way
When the fault signal is output from the decoder, the address held in the fetch address register E is stored in the holding register C.
Set to. However, the reservation flag A and the exception detection flag D are reset together with the output of the NBR signal, and the processing is continued.
【0024】次に、分岐先でTLBフォルトが発生し、
分岐をする場合を図5に示す。命令バッファ1のIBA
を実行中デコーダ21からの分岐検出信号で予約フラ
グAがONとなり、保持レジスタCに保持されたアドレ
スを使用し、継続してプリフェッチを行う。途中TLB
フォルト信号がデコーダ52から出力されると、フェッ
チアドレスレジスタEに保持したアドレスを保持レジス
タCにセットする。さらに、分岐先レジスタBに保持し
たアドレスを保持レジスタCにセットし、予約フラグA
及び例外検出Dをリセットし、分岐先レジスタBに保持
するアドレスに対応する命令コードを命令デコード回路
2から取り出し、命令実行部3に送出する。Next, a TLB fault occurs at the branch destination,
FIG. 5 shows the case of branching. IBA of instruction buffer 1
Is executed, the reservation flag A is turned on by the branch detection signal from the decoder 21, and the prefetch is continuously performed using the address held in the holding register C. TLB on the way
When the fault signal is output from the decoder 52, the address held in the fetch address register E is set in the holding register C. Further, the address held in the branch destination register B is set in the holding register C, and the reservation flag A
And resets the exception detection D, retrieves the instruction code corresponding to the address held in the branch destination register B from the instruction decode circuit 2, and sends it to the instruction execution unit 3.
【0025】そして、分岐命令の再実行により、デコー
ダ52がTLBFを検出する。このとき、予約フラグは
リセットされているのでデコーダ52からのTLBF信
号はアンドゲート56を通過して、命令実行回路3に例
外処理のための割り込み信号INTとして伝わり割込処
理が行われる。Then, the re-execution of the branch instruction causes the decoder 52 to detect the TLBF. At this time, since the reservation flag has been reset, the TLBF signal from the decoder 52 passes through the AND gate 56, is transmitted to the instruction execution circuit 3 as an interrupt signal INT for exception processing, and interrupt processing is performed.
【0026】[0026]
【発明の効果】以上説明したように、本発明によれば、
情報処理装置を、条件分岐命令の実行において、保持レ
ジスタCにより分岐先命令のフェッチを再開し、分岐条
件が成立しなかった場合には、第2の保持部であるフェ
ッチアドレスレジスタEに保持したアドレスから命令の
先行フェッチを再開し、分岐条件が成立した場合で例外
検出フラグDにアドレス変換回路5に伴う例外が発生し
ていない場合には、第1の保持部である分岐先レジスタ
Bの示す分岐アドレスをプログラムカウンタにセットし
て、分岐先命令列保持手段IBの命令列を先行フェッチ
のデータとし、保持レジスタCでフェッチした命令以降
の命令列の先行フェッチを行う一方、例外検出フラグD
にアドレス変換回路5に伴う例外が発生したことを示し
ている場合には、分岐先命令列保持手段IBの命令列を
使用せず、分岐先レジスタBの示す分岐アドレスから再
度命令の先行フェッチをやり直すようにしたから、分岐
先命令のプリフェッチにおいて、分岐条件が確定する前
にアドレス変換の例外が発生した場合には、プリフェッ
チの抑止等の特殊な動作を必要とせず、分岐条件が確定
した後に再実行することにより、分岐制御、プリフェッ
チ制御の簡単化、高速化を実現することができるという
効果を奏する。As described above, according to the present invention,
In the execution of the conditional branch instruction, the information processing apparatus restarts the fetch of the branch target instruction by the holding register C, and holds the information in the fetch address register E as the second holding unit when the branch condition is not satisfied. When the prefetch of the instruction is resumed from the address and the branch condition is satisfied, and the exception detection flag D does not include the exception associated with the address conversion circuit 5, the branch destination register B serving as the first holding unit is read. The branch address shown is set in the program counter, the instruction sequence of the branch destination instruction sequence holding means IB is used as prefetch data, and the instruction sequence following the instruction fetched by the holding register C is prefetched, while the exception detection flag D
Indicates that the exception associated with the address translation circuit 5 has occurred, the instruction fetch of the instruction is performed again from the branch address indicated by the branch destination register B without using the instruction sequence of the branch instruction storage unit IB. If an exception of address translation occurs in the prefetch of the branch destination instruction before the branch condition is determined, no special operation such as suppression of prefetch is required, and after the branch condition is determined. The re-execution has an effect that simplification and high-speed branch control and prefetch control can be realized.
【図1】本発明の原理図である。FIG. 1 is a principle diagram of the present invention.
【図2】本発明に係る情報処理装置の実施例を示す図で
ある。FIG. 2 is a diagram showing an embodiment of an information processing apparatus according to the present invention.
【図3】図2に示した情報処理装置の作動を示すタイミ
ングチャートである。FIG. 3 is a timing chart showing an operation of the information processing apparatus shown in FIG. 2;
【図4】図2に示した情報処理装置の作動を示すタイミ
ングチャートである。FIG. 4 is a timing chart showing an operation of the information processing apparatus shown in FIG. 2;
【図5】図2に示した情報処理装置の作動を示すタイミ
ングチャートである。FIG. 5 is a timing chart illustrating an operation of the information processing apparatus illustrated in FIG. 2;
1 命令バッファ 2 命令デコード回路 3 命令実行部 4 プリフェチ制御回路 5 動的アドレス変換回路 6 メモリ DESCRIPTION OF SYMBOLS 1 Instruction buffer 2 Instruction decode circuit 3 Instruction execution part 4 Prefetch control circuit 5 Dynamic address conversion circuit 6 Memory
───────────────────────────────────────────────────── フロントページの続き (72)発明者 渡部 徹 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 丸山 拓巳 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 竹野 巧 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 加藤 慎哉 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 ポーンシャイチョンスワンナパイサン 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭63−12030(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Toru Watanabe 1015 Uedanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Takumi Maruyama 1015 Kamikodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Fujitsu Limited ( 72) Inventor Takumi Takeno 1015 Uedanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Shinya Kato 1015, Kamiodanaka, Nakahara-ku, Kawasaki City, Kanagawa Prefecture Inside Fujitsu Limited (72) Inventor Pornshaichswanna Paisan 1015 Ueodanaka, Nakahara-ku, Kawasaki-shi, Kanagawa Prefecture Within Fujitsu Limited (56) References JP-A-63-12030 (JP, A) (58) Fields investigated (Int. Cl. 6 , DB name) G06F 9 / 38
Claims (3)
であって、 前記先行フェッチにより得られる分岐命令の分岐先アド
レスを保持する第1の保持部と、 前記分岐命令の分岐条件が成立した場合で、かつ該分岐
条件が未確定中にアドレス変換処理に伴う例外が発生し
ている場合には、第1の保持部に保持された分岐先アド
レスから再度命令の先行フェッチを行うプリフェッチ制
御部と、 を備えることを特徴とする情報処理装置。 (1)Information processing device for prefetching instructions
And Branch destination address of the branch instruction obtained by the preceding fetch
A first holding unit for holding the dress, When the branch condition of the branch instruction is satisfied, and
An exception occurred during the address translation process while the condition was undetermined.
The branch destination address held in the first holding unit.
Prefetch system that prefetches instructions again from the
Obe and An information processing apparatus comprising:
行フェッチアドレスを保持する第2の保持部とを備え、A second holding unit for holding a row fetch address, 前記プリフェッチ制御部は、前記分岐命令の分岐条件がThe prefetch control unit determines that a branch condition of the branch instruction is
成立しなかった場合には、第2の保持部に保持されたアIf not established, the address held in the second holding unit
ドレスから命令の先行フェッチを行うことを特徴とするPrefetching instructions from the address
請求項1記載の情報処理装置。The information processing device according to claim 1.
で、かつアドレス変換処理に伴う例外が発生していないAnd no exception has occurred due to the address translation process
場合は、前記第1の保持部に保持された分岐先アドレスIn the case, the branch destination address held in the first holding unit
から先行フェッチした命令を命令実行部に実行させるとWhen the instruction execution unit executes the instruction fetched earlier from
共に、先行フェッチを継続することを特徴とする請求項In both cases, the preceding fetch is continued.
1または2記載の情報処理装置。3. The information processing apparatus according to 1 or 2.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28865992A JP2944335B2 (en) | 1992-10-27 | 1992-10-27 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28865992A JP2944335B2 (en) | 1992-10-27 | 1992-10-27 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06139070A JPH06139070A (en) | 1994-05-20 |
JP2944335B2 true JP2944335B2 (en) | 1999-09-06 |
Family
ID=17733026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28865992A Expired - Fee Related JP2944335B2 (en) | 1992-10-27 | 1992-10-27 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2944335B2 (en) |
-
1992
- 1992-10-27 JP JP28865992A patent/JP2944335B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06139070A (en) | 1994-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0423906B1 (en) | Method of and apparatus for nullifying an instruction | |
US6848044B2 (en) | Circuits and methods for recovering link stack data upon branch instruction mis-speculation | |
US6760835B1 (en) | Instruction branch mispredict streaming | |
US5469552A (en) | Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions | |
JPH056894B2 (en) | ||
JP2944335B2 (en) | Information processing device | |
US5237664A (en) | Pipeline circuit | |
JP2008299729A (en) | Processor | |
JPH06295243A (en) | Data processor | |
JP2680899B2 (en) | Information processing apparatus and control method therefor | |
JPH1196006A (en) | Information processor | |
JPH10124312A (en) | Central processor | |
US8966228B2 (en) | Instruction fetching following changes in program flow | |
JP2636562B2 (en) | calculator | |
JP2783285B2 (en) | Information processing device | |
JP2894438B2 (en) | Pipeline processing equipment | |
JPH0212429A (en) | Information processor with function coping with delayed jump | |
JPH0773034A (en) | Information processor | |
JP2503223B2 (en) | Prior control method | |
JP3112861B2 (en) | Microprocessor | |
JP3798180B2 (en) | Method and system for buffering instructions in a processor | |
JP2574918B2 (en) | Interrupt return processing method | |
JPH04195630A (en) | Data processor | |
JPH0424731B2 (en) | ||
JPH0774992B2 (en) | Data processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990601 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 13 |
|
LAPS | Cancellation because of no payment of annual fees |