JPH07271580A - Data processor provided with branching destination prediction processing function - Google Patents

Data processor provided with branching destination prediction processing function

Info

Publication number
JPH07271580A
JPH07271580A JP6056194A JP6056194A JPH07271580A JP H07271580 A JPH07271580 A JP H07271580A JP 6056194 A JP6056194 A JP 6056194A JP 6056194 A JP6056194 A JP 6056194A JP H07271580 A JPH07271580 A JP H07271580A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
memory
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6056194A
Other languages
Japanese (ja)
Inventor
Masashi Yoshida
昌司 吉田
Takashi Hotta
多加志 堀田
Shigeya Tanaka
成弥 田中
Akira Osumi
明良 大角
Hiroji Saitou
拡二 斎藤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6056194A priority Critical patent/JPH07271580A/en
Publication of JPH07271580A publication Critical patent/JPH07271580A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To accurately predict a branching destination instruction (or an address) by the execution of a branching instruction and to perform the high- speed processing of the branching instruction. CONSTITUTION:This processor is provided with a first instruction memory 101 for holding history information which is the record of the executed results of branching in the past, branching destination addresses and information required for predicting the branching instruction of a branching destination instruction code and a second instruction memory 104 provided with an instruction code. The instruction of a branching destination is predicted from the history information in the execution of the branching instruction and pre-fetching is performed from the branching destination address and the instruction code in advance. Thus, the branching destination instruction is predicted at a high speed with sure prediction accuracy and the processing of the branching instruction is performed at a high speed.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、命令に基づいてデータ
を処理するデータ処理装置又は計算機に係り、特に分岐
命令の実行処理の高速化に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing device or a computer for processing data based on instructions, and more particularly to speeding up the execution processing of branch instructions.

【0002】[0002]

【従来の技術】従来のデータ処理装置又は計算機(以
下、データ処理装置という)の命令実行・演算処理等に
おいて分岐命令が実行された場合、分岐先の命令をフェ
ッチするまでに数サイクルを要する。
2. Description of the Related Art When a branch instruction is executed in the instruction execution / arithmetic processing of a conventional data processor or computer (hereinafter referred to as a data processor), it takes several cycles to fetch the branch destination instruction.

【0003】特に条件分岐命令は、演算結果から条件を
判定し、分岐先アドレスを実行するか、分岐命令から連
続する次の命令を実行するかを決定するので、次の処理
のために費やすマシンサイクル数の損失が大きい。
In particular, the conditional branch instruction determines the condition from the operation result and determines whether to execute the branch destination address or the next instruction following the branch instruction. The loss of the number of cycles is large.

【0004】上述のマシンサイクルの損失を軽減するた
めに、分岐の予測を行う。
In order to reduce the loss of the above machine cycle, branch prediction is performed.

【0005】つまり、分岐命令の正確な実行結果が判明
する前に、分岐が実行されるであろう分岐先を予測し、
その予測された命令を投機的に実行するものである。
That is, the branch destination where the branch will be executed is predicted before the accurate execution result of the branch instruction is known,
The predicted instruction is speculatively executed.

【0006】このような分岐予測方式は、19th-ISCA の
“Alternative Implementation ofTwo−Level Adaptive
Branch Prediction” 等に書かれているように、命令
コードで分岐命令と判明したときに予測を決定する静的
な方式と、命令コード以外に前回実行時の分岐先アドレ
ス、taken/not takenの情報の履歴などを保存し、その
情報から予測を決定する動的な方式がある。
Such a branch prediction method is based on the "Alternative Implementation of Two-Level Adaptive" of 19th-ISCA.
As described in "Branch Prediction", etc., a static method that determines the prediction when it is found to be a branch instruction by the instruction code, and the branch destination address at the previous execution time, taken / not taken information other than the instruction code. There is a dynamic method that saves the history, etc. and determines the prediction from that information.

【0007】静的な方式は、変位が負であるときはtake
n と予測し、変位が正であるときはnot taken と予測す
る方式である。これは、BTFN(Backward Taken For
wardNot−taken)という。
The static method takes when the displacement is negative.
It is a method that predicts n and predicts not taken when the displacement is positive. This is BTFN (Backward Taken For
wardNot-taken).

【0008】図2に動的な方式を示す。FIG. 2 shows a dynamic method.

【0009】分岐先アドレス,分岐先命令コードを持つ
分岐予測バッファを持ち、分岐先アドレス,分岐先命令
コードを高速に発行する方法(H32/200)によ
り、分岐のペナルティを減らす方法である。
This is a method of reducing a branch penalty by a method (H32 / 200) which has a branch prediction buffer having a branch target address and a branch target instruction code and issues the branch target address and the branch target instruction code at high speed.

【0010】図3に条件分岐の実行結果の履歴を保存
し、その情報により分岐先の予測を行い、分岐先の正確
性を増やす方法(DECのAlpha 等)である。
FIG. 3 shows a method for saving the history of execution results of conditional branches, predicting the branch destination based on the information, and increasing the accuracy of the branch destination (DEC Alpha, etc.).

【0011】[0011]

【発明が解決しようとする課題】上記のそれぞれの従来
技術によると、例えば、分岐予測バッファによるもので
は条件分岐の実行結果の履歴がないため条件分岐の予測
が外れるという問題が有る。
According to the above-mentioned respective prior arts, there is a problem that the prediction of the conditional branch is missed because there is no history of the execution result of the conditional branch in the branch prediction buffer.

【0012】また、条件分岐の実行結果の履歴を保持す
るものでは分岐先アドレス,分岐先コードがないので、
分岐先の予測が当たっても分岐先のアドレス計算及び分
岐先の命令のフェッチが早くできず、分岐処理によるマ
シンサイクルのペナルティが増えるという問題が有る。
Further, in the case of holding the history of execution results of conditional branch, since there is no branch destination address and branch destination code,
Even if the prediction of the branch target is successful, the address calculation of the branch target and the fetch of the branch target instruction cannot be performed quickly, and there is a problem that the machine cycle penalty due to the branch processing increases.

【0013】本発明の目的は、分岐先の予測が正確で、
かつ、分岐処理のペナルティの少ないデータ処理装置の
提供に有る。
An object of the present invention is to accurately predict branch destinations,
Moreover, it is to provide a data processing device with a small branch processing penalty.

【0014】[0014]

【課題を解決するための手段】上記目的を達成するため
の本発明の特徴は、分岐命令の命令アドレスに対応させ
て、分岐先アドレスと、分岐先命令を含む命令コードの
列と、分岐命令の実行履歴を合わせ持つ、第1命令メモ
リを持つことにより達成される。
The features of the present invention for achieving the above object are that a branch destination address, an instruction code string including the branch destination instruction, and a branch instruction corresponding to the instruction address of the branch instruction. This is achieved by having a first instruction memory that also has the execution history of.

【0015】[0015]

【作用】履歴は、過去の分岐命令の実行結果を登録する
ことにより、次に分岐命令を実行した時の分岐の実行を
動的予測することにより、分岐予測が当たりやすくな
る。分岐先アドレス,分岐先命令コードを登録すること
により、次に分岐命令を実行した時に、実際に分岐先ア
ドレスを計算したり、分岐先命令コードを第2命令メモ
リからフェッチしたりすることなく、第1命令メモリか
ら直接出すことができ、予測が当たったときの分岐のペ
ナルティが少なくなる。
According to the history, by registering the execution result of the past branch instruction, and by dynamically predicting the execution of the branch when the next branch instruction is executed, the branch prediction becomes easy to hit. By registering the branch destination address and the branch destination instruction code, when the branch instruction is executed next time, without actually calculating the branch destination address or fetching the branch destination instruction code from the second instruction memory, It can be issued directly from the first instruction memory, reducing the branch penalty when the prediction hits.

【0016】[0016]

【実施例】図1に本発明を適用した第1の実施例を示
す。
FIG. 1 shows a first embodiment to which the present invention is applied.

【0017】本発明の計算機システムは、分岐命令の履
歴(分岐実行履歴情報ともいう)101a,分岐先アド
レス101b,分岐先命令コード101cを保持する第
1命令メモリ101,演算装置102,メインメモリ1
03,命令コード104aを保持する第2命令メモリ1
04とから成る。
The computer system of the present invention comprises a first instruction memory 101 holding a branch instruction history (also referred to as branch execution history information) 101a, a branch destination address 101b, and a branch destination instruction code 101c, an arithmetic unit 102, and a main memory 1.
03, second instruction memory 1 holding instruction code 104a
04 and.

【0018】全ての命令コードはメインメモリ103に
保持されているが、よく使用される命令コードは、より
速くアクセスできるキャッシュメモリのような第1命令
メモリ101または第2命令メモリ104にコピーされ
る。
Although all instruction codes are held in the main memory 103, commonly used instruction codes are copied to the first instruction memory 101 or the second instruction memory 104 such as cache memory which can be accessed faster. .

【0019】演算装置102は、命令コードを第1命令
メモリ101からかまたは第2命令メモリ104からか
またはメインメモリ103からフェッチし、それに従っ
て演算を行い、演算結果をメインメモリ103又はデー
タキャッシュメモリ等に書き込む。
The arithmetic unit 102 fetches an instruction code from the first instruction memory 101, the second instruction memory 104, or the main memory 103, performs an operation according to the instruction code, and outputs the operation result to the main memory 103 or the data cache memory. Etc.

【0020】図4は、図1を詳細に示した図である。FIG. 4 is a diagram showing FIG. 1 in detail.

【0021】演算装置102は、演算部402,データ
メモリ403から成る。
The arithmetic unit 102 comprises an arithmetic unit 402 and a data memory 403.

【0022】演算部402は、第1命令メモリ101及
び第2命令メモリ104に命令アドレス402aを送
り、第1命令メモリ101から命令コード101f,動
的分岐先予測情報(分岐命令の履歴又は分岐実行履歴情
報ともいう)101d,分岐先アドレス101eを受け
取り、第2命令メモリ104から命令コード404aを
受け取る。
The arithmetic unit 402 sends the instruction address 402a to the first instruction memory 101 and the second instruction memory 104, and the instruction code 101f and the dynamic branch destination prediction information (branch instruction history or branch execution) from the first instruction memory 101. (Also referred to as history information) 101d, a branch destination address 101e, and an instruction code 404a from the second instruction memory 104.

【0023】また、演算部402は、第1命令メモリに
登録情報402bを送る。
The arithmetic unit 402 also sends the registration information 402b to the first instruction memory.

【0024】さらに、演算部402は、データメモリ4
03にデータアドレス402cを送り、データ405を
アクセスする。
Further, the arithmetic unit 402 is provided with a data memory 4
The data address 402c is sent to 03, and the data 405 is accessed.

【0025】データメモリ403は、演算部402から
受け取ったデータアドレス402cに応じたデータを出
力する。また、データメモリに保持されていないデータ
は、メインメモリ103からデータパス410を用いて
アクセスする。
The data memory 403 outputs data corresponding to the data address 402c received from the arithmetic unit 402. Further, the data not held in the data memory is accessed from the main memory 103 using the data path 410.

【0026】第2命令メモリ104は、演算部402か
ら命令アドレス402aを受け取り、演算部402に命
令コード404aを出力する。また、第2命令メモリに
保持されていない命令コードは、メインメモリ103か
らデータバス410を介して命令コードをアクセスす
る。
The second instruction memory 104 receives the instruction address 402a from the arithmetic unit 402 and outputs the instruction code 404a to the arithmetic unit 402. Further, the instruction code not held in the second instruction memory is accessed from the main memory 103 via the data bus 410.

【0027】演算部402は、第1命令メモリ101へ
出した命令アドレス402aに対応する命令コードに分
岐命令が含まれ、かつ、動的分岐予測情報101dによ
ってその分岐命令が分岐先へtaken すると予測されれ
ば、第1命令メモリ101に登録されている分岐先アド
レス101e及び分岐先命令コード101fをアクセス
し、その分岐先の命令の実行を進める。
The operation unit 402 predicts that the instruction code corresponding to the instruction address 402a issued to the first instruction memory 101 includes a branch instruction, and the branch instruction is taken to the branch destination by the dynamic branch prediction information 101d. If so, the branch destination address 101e and the branch destination instruction code 101f registered in the first instruction memory 101 are accessed to advance the execution of the branch destination instruction.

【0028】分岐先アドレス101eがあることによ
り、分岐先命令を即座にフェッチすることができ、分岐
先命令コード101fがあることにより、分岐先命令を
即座に発行することができる。
The presence of the branch destination address 101e enables immediate fetching of the branch destination instruction, and the presence of the branch destination instruction code 101f enables immediate issue of the branch destination instruction.

【0029】動的分岐予測情報101dが命令アドレス
402aが示す命令が分岐命令ではない、または、分岐
先へtaken しないと予測されれば、第2命令メモリ10
4から次の命令コード404aをアクセスし、実行す
る。
If the dynamic branch prediction information 101d predicts that the instruction indicated by the instruction address 402a is not a branch instruction or will not be taken to the branch destination, the second instruction memory 10
The next instruction code 404a is accessed from 4 and executed.

【0030】第2命令メモリ104にも命令コードが存
在しなかった時は、データバス410を介してメインメモ
リ103から命令コードをアクセスする。
If no instruction code exists in the second instruction memory 104, the instruction code is accessed from the main memory 103 via the data bus 410.

【0031】また演算部402は、分岐命令を実行しそ
の実行結果に基づいて、第1命令メモリ101の登録内
容を変更すべきか否かを決定し、登録情報402bを用
いて第1命令メモリ101の登録内容を変更する。
Further, the arithmetic unit 402 executes a branch instruction, determines whether or not to change the registered content of the first instruction memory 101 based on the execution result, and uses the registration information 402b to determine the first instruction memory 101. Change the registered contents of.

【0032】演算部402はさらに、メインメモリをア
クセスする命令を実行したときは、データアドレス40
2cをデータメモリ403に出力し、データ403aを
アクセスする。この時、データメモリ403にアクセス
すべきデータが存在しなければ、データバス410を介
してメインメモリ103からデータを持ってくる。
When the arithmetic unit 402 executes an instruction to access the main memory, the arithmetic unit 402 further stores the data address 40.
2c is output to the data memory 403 and the data 403a is accessed. At this time, if there is no data to be accessed in the data memory 403, the data is fetched from the main memory 103 via the data bus 410.

【0033】図19に単独分岐のケースを示す。プログ
ラムカウンタ(以下、PCという)のアドレスが示す4
命令に分岐命令が含まれており、分岐先アドレスがtで
ある場合に、図4に示した実施例の動作を図20のタイ
ムチャートで説明する。
FIG. 19 shows the case of a single branch. 4 indicated by the address of the program counter (hereinafter referred to as PC)
When the instruction includes a branch instruction and the branch destination address is t, the operation of the embodiment shown in FIG. 4 will be described with reference to the time chart of FIG.

【0034】( )は、中に書かれているアドレスが指
し示す命令コードのことを表している。
() Represents the instruction code indicated by the address written therein.

【0035】命令アドレス402aがPCであるとき、
第1命令メモリはヒットし、次サイクルの動的分岐予測
情報101dはtaken である予測(以下、taken予測と
いう)を指し示す情報になる。
When the instruction address 402a is a PC,
The first instruction memory is hit, and the dynamic branch prediction information 101d for the next cycle becomes information indicating a prediction that is taken (hereinafter referred to as taken prediction).

【0036】また、分岐先アドレス101eにtが、命
令コード101fに分岐先命令(t)が出力される。
Further, t is output to the branch destination address 101e, and the branch destination instruction (t) is output to the instruction code 101f.

【0037】第2命令メモリは、命令アドレス402a
の2サイクル後に対応する命令コード404aがでてく
るため、第1命令メモリを導入することにより分岐先命
令を早く得ることができる。
The second instruction memory has an instruction address 402a.
Since the corresponding instruction code 404a appears after two cycles of, the branch destination instruction can be obtained earlier by introducing the first instruction memory.

【0038】つまり、もし第1命令メモリが分岐先命令
を持っていないとすると、命令アドレス402aから第
1命令メモリをひいて分岐先命令アドレスを得るのに1
サイクル,402aに出た分岐先命令アドレスで第2命
令メモリを引いて分岐先命令を得るのに2サイクル,合
計3サイクルかかるからである。
In other words, if the first instruction memory does not have a branch destination instruction, it takes 1 to obtain the branch destination instruction address by subtracting the first instruction memory from the instruction address 402a.
This is because it takes two cycles to obtain the branch destination instruction by drawing the second instruction memory with the branch destination instruction address output in the cycle 402a.

【0039】図22は、PCにある分岐の分岐先t1に
また分岐があり、その分岐先t2にはさらに分岐があ
る、という連続分岐のケースを示す。
FIG. 22 shows a case of continuous branch in which there is another branch at the branch destination t1 of the branch in the PC and further branch at the branch destination t2.

【0040】図23は図4の実施例が図22のケースを
実行した時の動作を示している。
FIG. 23 shows the operation when the embodiment of FIG. 4 executes the case of FIG.

【0041】第1命令メモリの効果で、命令アドレス4
02aに分岐先アドレスを1サイクルで次々に出すこと
ができ、命令コード101fに毎サイクル分岐先命令を
フェッチすることが可能であり、高速化が図れる。
Due to the effect of the first instruction memory, the instruction address 4
The branch destination address can be sequentially output to 02a in one cycle, and the branch destination instruction can be fetched in the instruction code 101f every cycle, and the speed can be increased.

【0042】図5は、図4の第1命令メモリ101の構
成例である。
FIG. 5 is a configuration example of the first instruction memory 101 of FIG.

【0043】第1命令メモリ101は、アドレスタグ5
01,履歴502,分岐先アドレス503,分岐先命令
コード504,登録制御回路505,比較器506,動
的予測制御回路507から成る。
The first instruction memory 101 has an address tag 5
01, history 502, branch destination address 503, branch destination instruction code 504, registration control circuit 505, comparator 506, and dynamic prediction control circuit 507.

【0044】アドレスタグ501,履歴502,分岐先
アドレス503,分岐先命令コード504は、命令アド
レスの下位402abで引く連想メモリになっており、
アドレスタグ501は402aaで入力され501aを
出力し、履歴502は510で入力され502aを出力
し、分岐先アドレス503は505aで入力され101eを
出力し、分岐先命令コード504は505aで入力され
101fを出力する。登録制御回路505は、登録情報
402b,履歴510,ヒット情報507aを受け、新
しい履歴510,分岐先アドレス及び分岐先命令コード
505aを出力する。
The address tag 501, the history 502, the branch destination address 503, and the branch destination instruction code 504 are an associative memory which is drawn by the lower 402ab of the instruction address.
The address tag 501 is input at 402aa and outputs 501a, the history 502 is input at 510 and outputs 502a, the branch destination address 503 is input at 505a and outputs 101e, and the branch destination instruction code 504 is input at 505a and 101f. Is output. The registration control circuit 505 receives the registration information 402b, the history 510, and the hit information 507a, and outputs a new history 510, a branch destination address, and a branch destination instruction code 505a.

【0045】比較器506は、命令アドレス上位402
aaとアドレスタグ501aを受け、ヒット506aを
出力する。動的予測制御回路507は、命令アドレス上
位402aa,ヒット506a,履歴502aを受け、
動的分岐予測情報101d,ヒット情報507aを出力
する。
Comparator 506 is used for instruction address upper 402
Upon receiving aa and the address tag 501a, a hit 506a is output. The dynamic prediction control circuit 507 receives the instruction address upper 402aa, the hit 506a, and the history 502a,
The dynamic branch prediction information 101d and the hit information 507a are output.

【0046】本実施例では、命令アドレス1つに対し連
続した4命令を同時にフェッチする場合を示しており、
分岐先命令コード504は4命令分あるが、さらに多く
の命令をフェッチするようにすることも可能である。
In this embodiment, the case where four consecutive instructions are fetched simultaneously for one instruction address is shown.
Although there are four branch destination instruction codes 504, it is possible to fetch more instructions.

【0047】次に動作を説明する。Next, the operation will be described.

【0048】命令アドレス402aの下位数ビット40
2abでアドレスタグ501を引く。
Lower several bits 40 of instruction address 402a
The address tag 501 is pulled with 2ab.

【0049】アドレスタグ501には、登録されている
アドレスの上位ビットが入っているため、これを命令ア
ドレス上位402aaと比較器506にて比較すれば、
現在実行しようとしている命令アドレスに対応している
情報が第1命令メモリに格納されているか否かが判明
し、ヒット506aとして出力される。
Since the upper bit of the registered address is contained in the address tag 501, if this is compared with the instruction address upper 402aa by the comparator 506,
It is determined whether or not the information corresponding to the instruction address currently to be executed is stored in the first instruction memory, and it is output as the hit 506a.

【0050】このヒット506a,履歴502a,命令
アドレス402aなどから動的予測制御回路507は、
taken 予測すべきか,not taken 予測すべきかを決定す
る。動的分岐予測情報101dは、動的予測する/しな
い,taken予測/not taken予測、等の情報を含む。ヒッ
ト情報507aは、動的予測する/しないの情報を含
む。
From this hit 506a, history 502a, instruction address 402a, etc., the dynamic prediction control circuit 507
Determines whether to be taken or not taken. The dynamic branch prediction information 101d includes information such as dynamic prediction / not predicted, taken prediction / not taken prediction, and the like. The hit information 507a includes information of dynamic prediction / non-prediction.

【0051】また、登録制御回路505は、演算部40
2からの登録情報402b及び動的予測制御回路507
からのヒット情報507aを受けて、履歴502の更新
及びその他のフィールドの登録を行う。
Further, the registration control circuit 505 includes a calculation unit 40.
2 from the registration information 402b and the dynamic prediction control circuit 507
Upon receiving the hit information 507a from, the history 502 is updated and other fields are registered.

【0052】図6は、図4の演算部402の構成例であ
る。
FIG. 6 shows an example of the configuration of the arithmetic unit 402 shown in FIG.

【0053】演算部402は、命令スケジューラ60
1,命令アドレスユニット602,レジスタファイル6
03,演算器604,静的予測制御回路605,条件判
定部606,登録情報生成部607から成る。
The operation unit 402 is an instruction scheduler 60.
1, instruction address unit 602, register file 6
03, an arithmetic unit 604, a static prediction control circuit 605, a condition determination unit 606, and a registration information generation unit 607.

【0054】命令スケジューラ601は、第1命令メモ
リ101からの命令コード101f,動的分岐予測情報
101d及び第2命令メモリ104からの命令コード40
4aを受けて、命令アドレスユニット602,演算器6
04,静的予測制御回路605,登録情報生成部607など
に命令コード601aを配り、命令アドレスユニット6
02は、命令スケジューラ601からの命令コード60
1a,静的予測制御回路605からの静的予測結果60
5a,条件判定部606からの条件判定結果606a,
命令アドレス402a等より、分岐先アドレス602a
を生成し、登録情報生成部607へ送り、ストリームア
ドレス602bを生成し、また分岐位置601bを登録
情報生成部607に送る。
The instruction scheduler 601 includes the instruction code 101f from the first instruction memory 101, the dynamic branch prediction information 101d, and the instruction code 40 from the second instruction memory 104.
Receiving 4a, instruction address unit 602, arithmetic unit 6
04, the static prediction control circuit 605, the registration information generation unit 607, etc., the instruction code 601a is distributed to the instruction address unit 6
02 is the instruction code 60 from the instruction scheduler 601.
1a, static prediction result 60 from static prediction control circuit 605
5a, the condition determination result 606a from the condition determination unit 606,
From the instruction address 402a, etc., the branch destination address 602a
Is generated and sent to the registration information generation unit 607, the stream address 602b is generated, and the branch position 601b is sent to the registration information generation unit 607.

【0055】レジスタファイル603は、命令アドレス
ユニット602と610を通じて、演算器604と61
1を通じて、データメモリ403と405を通じてレジ
スタの値をやり取りする。
The register file 603 is stored in the arithmetic units 604 and 61 through the instruction address units 602 and 610.
1, the register values are exchanged via the data memories 403 and 405.

【0056】演算器604は、命令スケジューラ601
からの命令コード601aを受け取り、レジスタファイ
ル603から611を通じてレジスタの値を読み、演算
結果を402cを通じてデータアドレスとしてデータメ
モリ403に送り、また演算結果を402cを通じて条
件判定部606に送る。
The computing unit 604 is the instruction scheduler 601.
From the register file 603 to 611, the register value is read through the register files 603 to 611, the operation result is sent to the data memory 403 as a data address via 402c, and the operation result is sent to the condition determining unit 606 via 402c.

【0057】静的予測制御回路605は、命令スケジュ
ーラ601からの命令コード601a,図5の動的予測制御
回路507からの動的分岐予測情報101dを受けて、
静的予測の方法を決定し、静的予測結果605aを、命
令アドレスユニット602,登録情報生成部607に送
る。
The static prediction control circuit 605 receives the instruction code 601a from the instruction scheduler 601 and the dynamic branch prediction information 101d from the dynamic prediction control circuit 507 of FIG.
The method of static prediction is determined, and the static prediction result 605a is sent to the instruction address unit 602 and the registration information generation unit 607.

【0058】条件判定部606は、演算器604の演算
結果より条件分岐等の条件判定を行い、条件判定結果6
06aを命令アドレスユニット602,登録情報生成部
607に送る。
The condition judging unit 606 judges a condition such as a conditional branch from the calculation result of the calculator 604, and the condition judgment result 6
06a is an instruction address unit 602, a registration information generation unit
Send to 607.

【0059】登録情報生成部607は、命令スケジュー
ラ601からの命令コード601a,命令アドレスユニ
ット602からの分岐位置601b,静的予測制御回路
605からの静的予測結果605a,命令アドレスユニッ
ト602からの分岐先アドレス602a,条件判定部6
06からの条件判定結果606aを受け取り、図5の登
録制御回路505へ登録情報402bを送る。
The registration information generation unit 607 includes an instruction code 601a from the instruction scheduler 601, a branch position 601b from the instruction address unit 602, and a static prediction control circuit.
Static prediction result 605a from 605, branch destination address 602a from instruction address unit 602, condition determination unit 6
The condition determination result 606a from 06 is received, and the registration information 402b is sent to the registration control circuit 505 in FIG.

【0060】図18は、動的予測をとり入れた分岐命令
実行のフローチャートである。
FIG. 18 is a flow chart for executing a branch instruction incorporating dynamic prediction.

【0061】まず、命令フェッチサイクルで第1命令メ
モリを検索し、該当する分岐命令が第1命令メモリに登
録されているか否かを判定する。登録されている場合に
はヒットとなり、静的予測が抑止され、動的予測に従っ
てtaken予測またはnot taken予測が行われる。そして、
実際に条件分岐命令が実行され、条件判定を行った結
果、予測が当たっているか外れているか判明し、予測が
外れているときには、正しい命令アドレスを出し直し、
パイプラインをキャンセルする処理が必要である。
First, in the instruction fetch cycle, the first instruction memory is searched to determine whether or not the corresponding branch instruction is registered in the first instruction memory. If registered, it becomes a hit, static prediction is suppressed, and taken prediction or not taken prediction is performed according to dynamic prediction. And
When the conditional branch instruction is actually executed and the result of the condition judgment is made, it is determined whether the prediction is correct or incorrect, and if the prediction is incorrect, the correct instruction address is reissued.
A process to cancel the pipeline is required.

【0062】(5)はtaken 予測で実際taken だった場
合、(6)はtaken 予測で実際nottaken だった場合で
パイプラインに入っている分岐先命令をキャンセルし分
岐が飛ばなかった側の命令をやり直す。(7)はnot ta
ken 予測で実際not taken だった場合、(8)はnot ta
ken 予測で実際はtaken だった場合で、パイプラインに
入っている、分岐が飛ばなかった側の命令をキャンセル
し分岐先命令をやり直す。
When (5) is actually taken in the taken prediction and (6) is actually not taken in the taken prediction, the branch destination instruction in the pipeline is canceled and the instruction on the side where the branch is not skipped is deleted. Start over. (7) is not ta
(8) is not ta if it is actually not taken in the ken prediction.
If it is actually taken by ken prediction, the instruction in the pipeline where the branch was not taken is canceled and the branch destination instruction is redone.

【0063】第1命令メモリがミスしたときは、命令コ
ードから予測を決定する静的予測を行う。
When the first instruction memory is missed, the static prediction is performed to determine the prediction from the instruction code.

【0064】静的予測も、taken 予測またはnot taken
予測があり、それぞれ実際に当たり外れがあって、動的
予測の時と同様4つの状態に分れ、(1)(2)(3)(4)
である。
Static prediction is also taken prediction or not taken
There are predictions, and there are hits and misses in each, and there are 4 states as in the case of dynamic prediction. (1) (2) (3) (4)
Is.

【0065】次に図6に示す実施例の動作を説明する。Next, the operation of the embodiment shown in FIG. 6 will be described.

【0066】命令スケジューラ601は、第1命令メモ
リからの命令コード101fと第2命令メモリからの命
令コード404aとを受けて現在まさに実行しようとす
る命令コード601aを出す。静的予測制御回路605
は、第1命令メモリ101からの動的分岐予測情報10
1dが動的予測を行うことを示している時には静的予測
を抑止する。第1命令メモリ101からの動的分岐予測
情報101dが動的予測を行わないことを示している時
には静的予測を行い、taken 予測,not taken予測を表
す静的予測結果605aを出す。
The instruction scheduler 601 receives the instruction code 101f from the first instruction memory and the instruction code 404a from the second instruction memory and outputs the instruction code 601a which is about to be executed at present. Static predictive control circuit 605
Is the dynamic branch prediction information 10 from the first instruction memory 101.
Suppress static prediction when 1d indicates to make dynamic prediction. When the dynamic branch prediction information 101d from the first instruction memory 101 indicates that dynamic prediction is not performed, static prediction is performed and a static prediction result 605a indicating taken prediction and not taken prediction is output.

【0067】命令アドレスユニット602は、命令コー
ド601aから分岐命令をデコードし、命令フォーマッ
トに従ってアドレス計算し、分岐先アドレス602aを
生成する。静的予測制御回路605からの静的予測結果
605aに基づき、予測された命令アドレスをストリー
ムアドレス602bに出す。
The instruction address unit 602 decodes the branch instruction from the instruction code 601a, calculates the address according to the instruction format, and generates the branch destination address 602a. Based on the static prediction result 605a from the static prediction control circuit 605, the predicted instruction address is output to the stream address 602b.

【0068】また、条件分岐の予測外れ時には、条件分
岐の条件判定を行う606からの条件判定結果606a
を用いて誤った予測からの復帰命令アドレスをストリー
ムアドレス602bに出す。
When the conditional branch is not predicted, the conditional decision result 606a from the conditional decision 606 of the conditional branch is performed.
Is used to output the return instruction address from the incorrect prediction to the stream address 602b.

【0069】さらに、分岐でない時には命令アドレス4
02aをインクリメントして新しい命令アドレスを生成
する等の手順によりストリームアドレス602bを生成
する。
Further, when the branch is not made, the instruction address 4
The stream address 602b is generated by a procedure such as incrementing 02a to generate a new instruction address.

【0070】命令アドレス402aは、第1命令メモリ
からの動的分岐予測情報101dがtaken を予測する際
には、第1命令メモリからの分岐先アドレス101eを
選び、それ以外は命令アドレスユニット602からのス
トリームアドレス602bを選ぶ事により生成される。
For the instruction address 402a, when the dynamic branch prediction information 101d from the first instruction memory predicts taken, the branch destination address 101e from the first instruction memory is selected, and otherwise, from the instruction address unit 602. It is generated by selecting the stream address 602b.

【0071】また、命令アドレスユニット602は、サ
ブルーチンのコールなどで用いる、戻りアドレスを退避
するような分岐命令であった時には、戻りアドレスを生
成し、610を通じてレジスタファイル603に書き込
む。
Further, the instruction address unit 602 generates a return address and writes it in the register file 603 through 610 when it is a branch instruction used for calling a subroutine or the like and for saving the return address.

【0072】演算器604は、命令コード601aがA
DD命令等の演算命令であった時には611を通じてレ
ジスタファイル603からレジスタの値を読みだし、対
応する演算を行い、611を通じてレジスタファイル6
03に結果の値を書き込む。命令コード601aがメモ
リアドレスアクセスを行うような命令であった時には、
データアドレスの生成を行い、402cでデータメモリ
に出力する。
In the calculator 604, the instruction code 601a is A
When the operation instruction is a DD instruction or the like, the register value is read from the register file 603 through 611, the corresponding operation is performed, and the register file 6 is returned through 611.
Write the resulting value to 03. When the instruction code 601a is an instruction for memory address access,
A data address is generated and output to the data memory at 402c.

【0073】データメモリからまたはデータメモリへの
データは403aを通じてやり取りされる。
Data from or to the data memory is exchanged through 403a.

【0074】登録情報生成部607は、条件判定結果6
06a,分岐先アドレス602a,静的予測結果605
a,命令コード601a,分岐位置601b等から登録
情報402bを生成し、第1命令メモリ101に送る。
The registration information generator 607 determines whether the condition determination result 6
06a, branch destination address 602a, static prediction result 605
The registration information 402b is generated from a, the instruction code 601a, the branch position 601b, etc., and sent to the first instruction memory 101.

【0075】図15は、第1命令メモリ101を導入す
ることにより変化する命令スケジュラ601の詳細を示
したものである。
FIG. 15 shows the details of the instruction scheduler 601 which is changed by introducing the first instruction memory 101.

【0076】命令スケジュラ601は、セレクタ160
1,命令バッファ1602,競合判定1603,命令バ
ッファ制御1604よりなる。
The instruction scheduler 601 is the selector 160.
1, an instruction buffer 1602, a conflict determination 1603, and an instruction buffer control 1604.

【0077】セレクタ1602は、第1命令メモリ10
1からの命令コード101fと第2命令メモリからの命
令コード404aを動的分岐予測情報101dによりセ
レクトし、実行命令コード1601aを出力する。
The selector 1602 has the first instruction memory 10
The instruction code 101f from 1 and the instruction code 404a from the second instruction memory are selected by the dynamic branch prediction information 101d, and the execution instruction code 1601a is output.

【0078】実行命令コード1601aは、動的分岐予
測情報101dがtaken を予測する際には、第1命令メ
モリからの命令コード101fとなり、not taken を予
測する際には第2命令メモリからの命令コード404a
となる。命令バッファ1602は、フェッチした命令コード
をしばらくためておくバッファで、命令バッファ制御1
604からの命令バッファ制御信号1604aにより制
御され、命令コード601aを演算器に発行する。
The execution instruction code 1601a becomes the instruction code 101f from the first instruction memory when the dynamic branch prediction information 101d predicts taken, and the instruction from the second instruction memory when predicting not taken. Code 404a
Becomes The instruction buffer 1602 is a buffer for storing the fetched instruction code for a while, and the instruction buffer control 1
Controlled by the instruction buffer control signal 1604a from 604, the instruction code 601a is issued to the arithmetic unit.

【0079】競合判定1603は、命令バッファ160
2からの命令コード601aよりレジスタの競合などを
判定し、命令発行数1603aを算出する。
The conflict determination 1603 is executed by the instruction buffer 160.
The instruction issue number 1603a is calculated by determining register conflict or the like from the instruction code 601a from 2.

【0080】命令バッファ制御1604は、競合判定1
603からの命令発行数1603aより命令バッファ制
御信号1604aを命令バッファに送り、命令バッファ
1602を制御する。
The instruction buffer control 1604 determines the contention determination 1
The instruction buffer control signal 1604a is sent to the instruction buffer from the instruction issue number 1603a from the 603.
Control the 1602.

【0081】図7は、本発明の第2の実施例を示した図
である。
FIG. 7 is a diagram showing a second embodiment of the present invention.

【0082】演算部702から第1命令メモリと第2命
令メモリに同時に異なった命令アドレス702a,スト
リームアドレス702dを送り出し、第1命令メモリと
第2命令メモリからそれぞれ異なった命令コード101
f,404aを受け取る。
Different instruction addresses 702a and stream addresses 702d are simultaneously sent from the operation unit 702 to the first instruction memory and the second instruction memory, and different instruction codes 101 are sent from the first instruction memory and the second instruction memory, respectively.
f, 404a is received.

【0083】第1命令メモリから分岐先アドレス101
e・分岐先命令コード101fを受け取っているのと同
時に、第2命令メモリから分岐の飛ばなかった側の命令
404aを受け取ることができる。
Branch destination address 101 from the first instruction memory
e. The instruction on the side where the branch has not been skipped from the second instruction memory at the same time as receiving the branch destination instruction code 101f
Can receive 404a.

【0084】図7の動作をタイムチャートで説明する。The operation of FIG. 7 will be described with a time chart.

【0085】図21に、図19の単独分岐のケースで図
7の実施例の動作を示す。
FIG. 21 shows the operation of the embodiment of FIG. 7 in the case of the single branch of FIG.

【0086】命令アドレス402aがPCであるとき、
第1命令メモリはヒットし、次サイクルの動的分岐予測
情報101dがtaken 予測を指し示す。このとき、次サ
イクルでは、分岐先アドレスtになっている命令アドレ
ス402aで第1命令メモリを引き、第2命令メモリは
命令アドレスユニットで作られたPC+16のアドレス
になっているストリームアドレス702dで引くことが
できる。従って、命令コード101fの分岐先命令
(t)だけでなく分岐が飛ばなかった側の命令(PC+
16)も命令コード404aでフェッチすることがで
き、予測が外れた時にパイプラインを即座に切り換える
事が可能となり、性能が向上する。
When the instruction address 402a is a PC,
The first instruction memory is hit, and the dynamic branch prediction information 101d of the next cycle points to the taken prediction. At this time, in the next cycle, the first instruction memory is drawn at the instruction address 402a that is the branch destination address t, and the second instruction memory is drawn at the stream address 702d that is the PC + 16 address created by the instruction address unit. be able to. Therefore, not only the branch destination instruction (t) of the instruction code 101f, but also the instruction (PC +
16) can also be fetched with the instruction code 404a, and the pipeline can be immediately switched when the prediction is wrong, and the performance is improved.

【0087】図24は図22の分岐連続のケースでの図
7の実施例の動作を示す。
FIG. 24 shows the operation of the embodiment of FIG. 7 in the case of continuous branching of FIG.

【0088】図24では、各分岐先命令を命令コード1
01fにフェッチしてくることに加え、各分岐命令の分
岐が飛ばなかった側の命令を命令コード404aですべ
てフェッチしていくことができ、分岐命令のペナルティ
が極限まで抑制できる。
In FIG. 24, the instruction code 1 is assigned to each branch destination instruction.
In addition to fetching to 01f, it is possible to fetch all the instructions on the side where the branch of each branch instruction has not been skipped with the instruction code 404a, and the penalty of the branch instruction can be suppressed to the utmost limit.

【0089】図8は、図7の演算部702の構成を示す
図である。第2命令メモリ104へ出すストリームアド
レス702dは、第1命令メモリ101からの分岐先ア
ドレス101eでないほうの、命令アドレスユニットで
作られたPC+16を出す。この点以外は図6と同様で
ある。
FIG. 8 is a diagram showing the configuration of the arithmetic unit 702 of FIG. As the stream address 702d to be output to the second instruction memory 104, PC + 16 made of the instruction address unit, which is not the branch destination address 101e from the first instruction memory 101, is output. Other than this point, it is the same as FIG.

【0090】図8に示す演算部702の中の命令スケジ
ュラ601は、実施例1と全く同様図15のように構成
することができる。
The instruction scheduler 601 in the arithmetic unit 702 shown in FIG. 8 can be configured as shown in FIG. 15 just as in the first embodiment.

【0091】しかしまた、分岐が飛ばなかった側の命令
を命令コード404aでフェッチすることができる特徴
を生かして、演算部を図17のように構成し、そこに含
まれる命令スケジュラ1801を図16のように構成す
ることができる。
However, taking advantage of the feature that the instruction on the side where the branch is not skipped can be fetched by the instruction code 404a, the operation unit is configured as shown in FIG. 17, and the instruction scheduler 1801 included therein is shown in FIG. Can be configured as follows.

【0092】図17は、演算部702の構成である。図
8と異なっている部分のみ述べると、命令スケジューラ
1801は、第1命令メモリ101からの命令コード10
1f,第2命令メモリ404aからの命令コード404
a,静的予測制御回路605からの静的予測結果605
a,条件判定部606からの条件判定結果606a,動
的分岐予測情報101dを受け、命令コード601aを
出力する。
FIG. 17 shows the configuration of the arithmetic unit 702. Explaining only the parts different from FIG. 8, the instruction scheduler 1801 uses the instruction code 10 from the first instruction memory 101.
1f, instruction code 404 from second instruction memory 404a
a, static prediction result 605 from the static prediction control circuit 605
a, the condition determination result 606a from the condition determination unit 606, and the dynamic branch prediction information 101d are received, and the instruction code 601a is output.

【0093】図16において、命令スケジュラ1801
は、taken 側命令バッファ1701,not taken 側命令
バッファ1702,セレクタ1703,競合判定160
3,命令バッファ制御1604から構成される。taken
側命令バッファ1701は、第1命令バッファ101か
らの命令コード101fを受け、命令バッファ制御16
04からのtaken側命令バッファ制御信号1604aに
より制御され、taken側命令1701aを出力する。
In FIG. 16, the instruction schedule 1801
Is taken side instruction buffer 1701, not taken side instruction buffer 1702, selector 1703, conflict determination 160
3 and instruction buffer control 1604. taken
The side instruction buffer 1701 receives the instruction code 101f from the first instruction buffer 101 and receives the instruction buffer control 16f.
Controlled by the taken side instruction buffer control signal 1604a from 04, the taken side instruction 1701a is output.

【0094】not taken 側命令バッファ1702は、第
2命令バッファ404からの命令コード404aを受
け、命令バッファ制御1604からのnot taken 側命令
バッファ制御信号1604bにより制御され、not take
n 側命令1702aを出力する。
The not taken side instruction buffer 1702 receives the instruction code 404a from the second instruction buffer 404, and is controlled by the not taken side instruction buffer control signal 1604b from the instruction buffer control 1604.
The n-side instruction 1702a is output.

【0095】セレクタ1703は、命令発行制御170
4からのセレクト信号1704aによりセレクトされ、
命令コード606aを演算器に発行する。命令発行制御
1704は、静的予測制御回路605からの静的予測結
果605a、条件判定部606からの条件判定結果60
6aよりセレクト信号1704aを出力する。競合判定
1603は、命令バッファ1602からの命令コード6
01aよりレジスタの競合などを判定し、命令発行数1
603aを算出する。命令バッファ制御1604は、競
合判定1603からの命令発行数1603aよりtak
en 側命令バッファ制御信号1604aをtaken 側命
令バッファ1701に送り、not taken 側命令バッファ
制御信号1604bをnot taken 側命令バッファ170
2に送り、それぞれの命令バッファを制御する。
The selector 1703 controls the instruction issue control 170.
4 is selected by the select signal 1704a from
The instruction code 606a is issued to the arithmetic unit. The instruction issuance control 1704 includes a static prediction result 605 a from the static prediction control circuit 605 and a condition determination result 60 from the condition determination unit 606.
6a outputs a select signal 1704a. The conflict determination 1603 is the instruction code 6 from the instruction buffer 1602.
The number of issued commands is 1 based on the judgment of register conflict from 01a.
603a is calculated. The instruction buffer control 1604 uses the instruction issue count 1603a from the conflict determination 1603 to take
The en side instruction buffer control signal 1604a is sent to the taken side instruction buffer 1701, and the not taken side instruction buffer control signal 1604b is sent to the not taken side instruction buffer 170.
2 to control each instruction buffer.

【0096】次に図16の動作を説明する。Next, the operation of FIG. 16 will be described.

【0097】taken 側命令バッファ1701は、分岐が
taken した時の分岐先アドレスから先の命令コードをた
めておくバッファで、not taken 側命令バッファ170
2は、分岐がtaken しなかった時の分岐の後続アドレス
から先の命令コードをためておくバッファである。
The taken-side instruction buffer 1701 has a branch
This is a buffer that stores the instruction code ahead from the branch destination address when taken, and is the instruction buffer 170 on the not taken side.
Reference numeral 2 is a buffer for storing the previous instruction code from the subsequent address of the branch when the branch is not taken.

【0098】命令発行制御1704は、静的予測制御回
路605からの静的予測結果605aがtaken 予測を指し
示したときは1701a側、not taken 予測を指し示し
たときは1702a側がセレクトされるようセレクト信
号1704aを制御する。
The instruction issue control 1704 selects the select signal 1704a so that the side 1701a is selected when the static prediction result 605a from the static prediction control circuit 605 indicates the taken prediction and the side 1702a is selected when the static prediction result 605a indicates the not taken prediction. To control.

【0099】そして、分岐の実行の結果、条件判定部6
06からの条件判定結果606aが予測外れを示した
時、taken 予測で外れだったらnot taken 側の1702
a側、not taken 予測で外れだったらtaken 側の170
1a側をセレクトされるようセレクト信号1704aを
制御する。
Then, as a result of branch execution, the condition judging unit 6
When the condition judgment result 606a from 06 indicates a misprediction, and if the prediction is wrong in the taken prediction, 1702 on the not taken side
a side, not taken If the prediction is wrong, 170 on the taken side
The select signal 1704a is controlled so that the 1a side is selected.

【0100】これにより、予測外れ側の命令コードを即
座に発行することができ、命令フェッチからやり直す必
要がないので、分岐のペナルティをより減らすことがで
きる。これは、第1命令メモリから分岐のtaken した命
令をフェッチし、同時に第2命令メモリから分岐のnot
taken 側の命令をフェッチすることができることによる
効果である。
As a result, the instruction code on the misprediction side can be issued immediately, and it is not necessary to start over from the instruction fetch, so the branch penalty can be further reduced. This fetches the taken instruction of the branch from the first instruction memory, and at the same time not the branch of the second instruction memory.
This is the effect of being able to fetch the instruction on the taken side.

【0101】図9は、図7の第1命令メモリ101の構
成を示す図である。第1命令メモリ101を引くアドレ
ス402aa及び第1命令メモリ101に登録するアド
レスタグ501が、命令アドレスの上位全部でなく、一
部になっている。これにより、アドレスタグ501や、
比較器906のビット数を削減することができ、ハード
を小さくすることができる。ただし、比較器で比較して
いるビットを越えるような大きな変位があるような分岐
命令があると、動的予測情報が誤った情報を出してしま
う。これを是正するために、図10において、アドレス
チェック1008の機能がついている。
FIG. 9 is a diagram showing the structure of the first instruction memory 101 of FIG. The address 402aa for pulling the first instruction memory 101 and the address tag 501 to be registered in the first instruction memory 101 are not the entire upper order of the instruction address but a part thereof. As a result, the address tag 501,
The number of bits of the comparator 906 can be reduced, and the hardware can be reduced. However, if there is a branch instruction with a large displacement exceeding the bit being compared by the comparator, the dynamic prediction information will give incorrect information. In order to correct this, the function of address check 1008 is added in FIG.

【0102】図10は、図7の演算部702の構成を示
す図である。図10では、図8からアドレスチェック1
008が新たに加わった構成になっている。アドレスチ
ェック1008は、命令スケジューラ601からの命令
コード601a,命令アドレスユニット1002からの
分岐先アドレス602a,ストリームアドレス702dを
受け、予測ミス1008aを命令アドレスユニット10
02へ出す。アドレスチェック1008は、命令アドレ
スユニット1002で生成された本当の分岐先アドレス
1002aと第1命令メモリから引いてきた誤っている
かも知れない命令アドレス402aをビットごとに比較
し、もし不一致だったら、予測ミス信号1008aによ
り命令アドレスユニット1002が正しい命令アドレス
1002aを出し、分岐先命令をフェッチする。もし一致し
ていたら、動的予測を生かし、分岐命令を1サイクルで
実行することができる。
FIG. 10 is a diagram showing the configuration of the arithmetic unit 702 of FIG. In FIG. 10, address check 1 from FIG.
It has a configuration in which 008 is newly added. The address check 1008 receives the instruction code 601a from the instruction scheduler 601, the branch destination address 602a and the stream address 702d from the instruction address unit 1002, and outputs the misprediction 1008a to the instruction address unit 10
Take out to 02. The address check 1008 compares the true branch destination address 1002a generated by the instruction address unit 1002 with the possibly erroneous instruction address 402a fetched from the first instruction memory bit by bit. The instruction address unit 1002 receives the correct instruction address due to the miss signal 1008a.
1002a is issued and the branch destination instruction is fetched. If they match, the dynamic prediction can be used to execute the branch instruction in one cycle.

【0103】このアドレスチェック1008により、レ
ジスタ相対の分岐なども第1命令メモリに登録し、動的
予測制御を行うことができる。もし、アドレス計算に必
要なレジスタが書き換えられていたら、アドレスチェッ
ク1008で不一致が生じたことが予測ミス1008a
でわかるので、実際のアドレス計算した分岐先アドレス
を採用するようにすればよい。
By this address check 1008, a register-relative branch or the like can be registered in the first instruction memory to perform dynamic prediction control. If the registers required for address calculation have been rewritten, it is predicted that a mismatch has occurred in the address check 1008, and the prediction error 1008a.
Therefore, the branch destination address for which the actual address has been calculated should be adopted.

【0104】この実施例による効果は、第1命令メモリ
のハードを小さくすることができることである。
The effect of this embodiment is that the hardware of the first instruction memory can be reduced.

【0105】図11は、本発明の第4の実施例を示した
図である。
FIG. 11 is a diagram showing a fourth embodiment of the present invention.

【0106】演算装置102は、演算部1102からな
る。第1命令メモリ101は演算部1102からの命令
アドレス402aを受け、演算部1102に命令コード
101f,動的予測情報101d,分岐先アドレス101e
を送る。また、演算部1102からの登録情報402bを受
け取る。演算部1102は、第1命令メモリ101から
命令コード101f,動的予測情報101d,分岐先ア
ドレス101eを受け取り、第1命令メモリ101に命
令アドレス402aを送り、また第2命令メモリ110
4に命令アドレス/データアドレス1102cを送り、
第2命令メモリ1104と命令コード/データ1105
をやり取りする。
The arithmetic unit 102 comprises an arithmetic unit 1102. The first instruction memory 101 receives the instruction address 402a from the arithmetic unit 1102, and the arithmetic unit 1102 receives the instruction code.
101f, dynamic prediction information 101d, branch destination address 101e
To send. Also, the registration information 402b from the arithmetic unit 1102 is received. The operation unit 1102 receives the instruction code 101f, the dynamic prediction information 101d, and the branch destination address 101e from the first instruction memory 101, sends the instruction address 402a to the first instruction memory 101, and the second instruction memory 110.
Command address / data address 1102c to 4,
Second instruction memory 1104 and instruction code / data 1105
To exchange.

【0107】第2命令メモリ104は、演算部402か
ら命令アドレス/データアドレス1102aを受け取
り、演算部402と命令コード/データ1105をやり
取りする。また、メインメモリ103とデータバス41
0を通じ、命令コード/データのやり取りをする。
The second instruction memory 104 receives the instruction address / data address 1102a from the arithmetic unit 402 and exchanges the instruction code / data 1105 with the arithmetic unit 402. In addition, the main memory 103 and the data bus 41
Through 0, exchange of instruction code / data.

【0108】図12は、図11の演算部1102の構成
を示す図である。命令スケジューラ1201は、図11
の第1命令メモリ101からの命令コード101f、動
的予測情報101dと、命令コード/データ1105を
用いて第2命令メモリ1104からフェッチする命令コード
を受けて、命令アドレスユニット602,演算器604,静
的予測制御回路605,登録情報生成部607などに命
令コード601aを配る。命令アドレス/データアドレ
ス1102は、ストリームアドレス602a,命令アド
レス402a,演算器604からの演算結果604aを
セレクトして出す。
FIG. 12 is a diagram showing the configuration of the arithmetic unit 1102 of FIG. The instruction scheduler 1201 is shown in FIG.
The instruction code 101f from the first instruction memory 101, the dynamic prediction information 101d, and the instruction code fetched from the second instruction memory 1104 using the instruction code / data 1105 are received, and the instruction address unit 602, the arithmetic unit 604, The instruction code 601a is distributed to the static prediction control circuit 605, the registration information generation unit 607, and the like. The instruction address / data address 1102 selects and outputs the stream address 602a, the instruction address 402a, and the calculation result 604a from the calculator 604.

【0109】図11に示す実施例は、図7に示した第2
の実施例において、第2命令メモリ104とデータメモ
リ403を1つにマージしたものである。従って、この
命令/データ兼用の第2命令メモリ1104へ送るアド
レスは、図12の命令アドレスユニット602からの命
令アドレス402aと演算器604からのデータアドレ
ス604aをセレクトして出す形となる。また第2命令
メモリ1104とやり取りするデータ1105は、第2
命令メモリ1104と命令スケジューラ1201,第2命令
メモリ1104とレジスタファイル603を結び、命令
とデータでメモリとの口を兼用する形になる。
The embodiment shown in FIG. 11 corresponds to the second embodiment shown in FIG.
In this embodiment, the second instruction memory 104 and the data memory 403 are merged into one. Therefore, the address to be sent to the second instruction memory 1104 which also serves as the instruction / data is such that the instruction address 402a from the instruction address unit 602 and the data address 604a from the arithmetic unit 604 in FIG. 12 are selected and output. The data 1105 exchanged with the second instruction memory 1104 is the second
The instruction memory 1104 and the instruction scheduler 1201, the second instruction memory 1104 and the register file 603 are connected to each other so that the instruction and the data serve as a memory.

【0110】この実施例による効果は、第2命令メモリ
上にデータメモリを乗せてしまうことによりメモリの量
を節約し、第2命令メモリの使用効率を上げ、コストパ
フォーマンスの良いシステムを提供できることにある。
The effect of this embodiment is that the amount of memory is saved by placing the data memory on the second instruction memory, the efficiency of use of the second instruction memory is increased, and a system with good cost performance can be provided. is there.

【0111】図13は、図7の第1命令メモリ101の
構成を示す図である。命令アドレスの下位402abで
引くものは、アドレスタグ501,履歴502,分岐先
アドレス503,分岐先命令コード504、及びサブル
ーチンリターンに使われる分岐であることを示すRフィ
ールド1302からなる。戻り先アドレススタックは、
登録制御回路505からの登録情報505aで書き込ま
れ、戻り先アドレス1301aを出す。Rフィールド1
302は、登録制御回路505からの登録情報505a
で書き込まれ、セレクト信号1302aを出力する。分
岐先アドレス101eは、戻り先アドレススタック13
01からの戻り先アドレス1301と分岐先アドレス5
03からの503aとを、セレクト信号1302aでセ
レクトされ、生成される。
FIG. 13 is a diagram showing the configuration of the first instruction memory 101 of FIG. The lower part of the instruction address 402ab is composed of an address tag 501, a history 502, a branch destination address 503, a branch destination instruction code 504, and an R field 1302 indicating a branch used for a subroutine return. The return address stack is
It is written with the registration information 505a from the registration control circuit 505 and outputs the return address 1301a. R field 1
302 is registration information 505a from the registration control circuit 505.
And the select signal 1302a is output. The branch destination address 101e is the return destination address stack 13
Return address 1301 from 01 and branch destination address 5
503a from 03 is selected by the select signal 1302a and generated.

【0112】本実施例は、サブルーチンリターンに使わ
れる分岐命令の高速化のために、サブルーチンコールの
際生成されるサブルーチン戻りアドレスを戻りアドレス
スタックに積み、リターン時にスタックより戻りアドレ
スを取り出すことにより分岐命令の分岐先アドレスを早
く得ることのできるような予測バッファに本発明を適用
した例である。サブルーチンコール,サブルーチンリタ
ーンの分岐は、例えば図22に示すように、それぞれ、
レジスタ2番を差しているBL命令,レジスタ2番を差
し戻し値が0であるBV命令である。
In this embodiment, in order to speed up the branch instruction used for the subroutine return, the subroutine return address generated at the time of the subroutine call is stacked on the return address stack and the return address is taken out from the stack at the time of the return. It is an example in which the present invention is applied to a prediction buffer that can quickly obtain a branch destination address of an instruction. For example, as shown in FIG. 22, the branch of the subroutine call and the branch of the subroutine return are respectively
It is a BL instruction that inserts register number 2 and a BV instruction that has a return value of 0 in register number 2.

【0113】第1命令メモリの中にサブルーチンリター
ンを表すビットフィールドR1302を持ち、このビットが
立っていたら、分岐先アドレス101eを、戻りアドレ
ススタック1301より出た戻りアドレス1301aに
する。こうすることにより1サイクルで分岐先アドレス
101eを得ることができる。
The first instruction memory has a bit field R1302 representing a subroutine return. When this bit is set, the branch destination address 101e is set to the return address 1301a output from the return address stack 1301. By doing so, the branch destination address 101e can be obtained in one cycle.

【0114】図14は、図7の演算部702の構成を示
す図である。図14に示すように、予測が成功したかど
うかは図10の例と全く同じようにアドレスチェック10
08にて判定する。図14の図10との違いは命令アドレ
スユニット1402から登録情報生成部1407への信
号に戻りアドレス1402cが加わり、第1命令メモリ
101への登録情報402bに命令アドレスユニット1
402で作られた戻りアドレス1402cが新たに含ま
れる点だけである。
FIG. 14 is a diagram showing the configuration of the arithmetic unit 702 shown in FIG. As shown in FIG. 14, whether or not the prediction is successful is the same as in the example of FIG.
Judgment at 08. 14 is different from FIG. 10 in that the return address 1402c is added to the signal from the instruction address unit 1402 to the registration information generating unit 1407, and the instruction address unit 1 is added to the registration information 402b in the first instruction memory 101.
The only difference is that the return address 1402c created in 402 is newly included.

【0115】本実施例により、サブルーチンリターンの
分岐を1サイクルで実行できる性能向上の効果がある。
According to this embodiment, there is an effect of improving the performance that the branch of the subroutine return can be executed in one cycle.

【0116】[0116]

【発明の効果】実施例1による効果は、履歴,分岐先ア
ドレス、分岐先命令コードを合わせ持つことにより、高
速な予測をより確実に行うことを可能にすることであ
る。
The effect of the first embodiment is that the history, the branch destination address, and the branch destination instruction code are combined to enable more reliable high-speed prediction.

【0117】実施例2による効果は、予測が外れたとき
のペナルティを減らすことである。実施例3による効果
は、第1命令メモリのハードを小さくすることができる
点である。
The effect of the second embodiment is to reduce the penalty when the prediction is wrong. The effect of the third embodiment is that the hardware of the first instruction memory can be reduced.

【0118】実施例4による効果は、第2命令メモリ上
にデータメモリを載せてしまうことによりメモリの量を
節約し、第2命令メモリの使用効率を上げ、コストパフ
ォーマンスの良いシステムを提供できることにある。
The effect of the fourth embodiment is that the amount of memory is saved by placing the data memory on the second instruction memory, the efficiency of use of the second instruction memory is increased, and a system with good cost performance can be provided. is there.

【0119】実施例5により、サブルーチンリターンの
分岐を1サイクルで実行できる性能向上の効果がある。
The fifth embodiment has the effect of improving the performance in which the branch of the subroutine return can be executed in one cycle.

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

【図1】本発明を適用した第1の実施例。FIG. 1 shows a first embodiment to which the present invention is applied.

【図2】分岐先アドレス,分岐先命令コードを持つ分岐
予測バッファの従来例。
FIG. 2 is a conventional example of a branch prediction buffer having a branch destination address and a branch destination instruction code.

【図3】条件分岐の実行結果の履歴で予測を行う分岐予
測バッファの従来例。
FIG. 3 is a conventional example of a branch prediction buffer that performs prediction based on a history of execution results of conditional branches.

【図4】図1の詳細。FIG. 4 is a detail of FIG.

【図5】図4の第1命令メモリ101の構成例。5 is a configuration example of a first instruction memory 101 of FIG.

【図6】図4の演算部402の構成例。6 is a configuration example of a calculation unit 402 in FIG.

【図7】本発明の第2の実施例。FIG. 7 is a second embodiment of the present invention.

【図8】図7の演算部702の構成。8 is a configuration of a calculation unit 702 in FIG.

【図9】図7の第1命令メモリ101の構成。9 is a configuration of the first instruction memory 101 of FIG. 7. FIG.

【図10】図7の演算部702の構成。10 is a configuration of a calculation unit 702 in FIG.

【図11】本発明の第4の実施例。FIG. 11 is a fourth embodiment of the present invention.

【図12】図11の演算部1102の構成。12 is a configuration of a calculation unit 1102 in FIG.

【図13】図7の第1命令メモリ101の構成。13 is a configuration of the first instruction memory 101 of FIG.

【図14】図7の演算部702の構成。14 is a configuration of a calculation unit 702 in FIG.

【図15】図6のスケジューラ601の構成。15 is a configuration of a scheduler 601 of FIG.

【図16】図17のスケジューラ1801の構成。16 is a configuration of a scheduler 1801 of FIG.

【図17】図7の演算部702の構成。17 is a configuration of a calculation unit 702 of FIG.

【図18】動的予測を採り入れた分岐命令実行のフロー
チャート。
FIG. 18 is a flowchart of branch instruction execution that incorporates dynamic prediction.

【図19】単独分岐のケース。FIG. 19: Single branch case.

【図20】図19の単独分岐のケースで図4の動作。20 is the operation of FIG. 4 in the case of the single branch of FIG.

【図21】図19の単独分岐のケースで図7の動作。FIG. 21 is the operation of FIG. 7 in the case of the single branch of FIG.

【図22】連続分岐のケース。FIG. 22: Case of continuous bifurcation.

【図23】図22の分岐連続のケースで図4の動作。FIG. 23 is the operation of FIG. 4 in the case of continuous branching of FIG. 22.

【図24】図22の分岐連続のケースで図7の動作。24 is the operation of FIG. 7 in the case of continuous branching of FIG.

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

101…第1命令メモリ、101a…履歴、101b…
分岐先アドレス、101c…分岐先命令コード、102…演
算装置、103…メインメモリ、104…第2命令メモ
リ、104a…命令コード。
101 ... First instruction memory, 101a ... History, 101b ...
Branch destination address, 101c ... Branch destination instruction code, 102 ... Arithmetic unit, 103 ... Main memory, 104 ... Second instruction memory, 104a ... Instruction code.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 大角 明良 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 斎藤 拡二 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 ─────────────────────────────────────────────────── ─── Continuation of front page (72) Inventor Akira Okuno 7-1, 1-1 Omika-cho, Hitachi-shi, Ibaraki Hitachi Ltd. Hitachi Research Laboratory (72) Inventor Kenji Saito 1 Horiyamashita, Hadano-shi, Kanagawa General Manager Computer Division, Hiritsu Manufacturing Co., Ltd.

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】それぞれの分岐命令に応じて、それまでの
分岐命令の実行によって分岐した結果を示す分岐実行履
歴情報と、上記分岐命令によって指定される分岐先アド
レスと分岐先の命令コードとを保持する第1命令メモリ
部と、 命令の命令コードを保持する第2命令メモリ部と、 データの処理を実行するために命令アドレスを上記第2
命令メモリに出力し、上記第2命令メモリから上記命令
アドレスに対応する命令の命令コードをフェッチし、上
記フェッチされた命令コードが上記分岐命令かを判定
し、上記分岐命令であれば上記分岐実行履歴情報に基づ
く分岐先命令を上記分岐先アドレスと上記分岐先の命令
コードを用いてフェッチし、上記フェッチされた命令コ
ードに基づいてデータを処理する演算部とを有すること
を特徴とする分岐先予測処理機能を有するデータ処理装
置。
According to each branch instruction, branch execution history information indicating a result of branching by execution of a branch instruction up to that point, a branch destination address designated by the branch instruction, and a branch destination instruction code are provided. A first instruction memory unit for holding, a second instruction memory unit for holding an instruction code of an instruction, and an instruction address for executing data processing in the second instruction memory unit.
Output to the instruction memory, fetch the instruction code of the instruction corresponding to the instruction address from the second instruction memory, determine whether the fetched instruction code is the branch instruction, and execute the branch execution if it is the branch instruction. A branch destination including a calculation unit that fetches a branch destination instruction based on history information using the branch destination address and the instruction code of the branch destination, and processes data based on the fetched instruction code. A data processing device having a prediction processing function.
【請求項2】それぞれの分岐命令に応じて、それまでの
上記分岐命令の実行によって分岐した結果を示す分岐実
行履歴情報と、上記分岐命令によって指定される分岐先
アドレスと分岐先の命令コードとを保持する第1命令メ
モリ部と、 命令の命令コードを保持する第2命令メモリ部と、 データを保持するデータメモリ部と、 データの処理を実行するために命令アドレスを上記第2
命令メモリに出力し、上記第2命令メモリから上記命令
アドレスに対応する命令の命令コードをフェッチし、上
記フェッチされた命令コードが上記分岐命令かを判定
し、上記分岐命令であれば上記分岐実行履歴情報に基づ
く分岐先命令を上記分岐先アドレスと上記分岐先の命令
コードを用いてフェッチし、上記フェッチされた命令コ
ードに基づいて、上記命令コードで指定されるデータを
上記データメモリから読み出し、データを処理する演算
部とを有することを特徴とする分岐先予測処理機能を有
するデータ処理装置。
2. Branch execution history information indicating the result of branching by the execution of the branch instruction up to that point, branch destination address specified by the branch instruction, and branch destination instruction code according to each branch instruction. And a second instruction memory unit for holding the instruction code of the instruction, a data memory unit for holding the data, and an instruction address for executing the processing of the data.
Output to the instruction memory, fetch the instruction code of the instruction corresponding to the instruction address from the second instruction memory, determine whether the fetched instruction code is the branch instruction, and execute the branch execution if it is the branch instruction. A branch destination instruction based on history information is fetched using the branch destination address and the instruction code of the branch destination, and based on the fetched instruction code, data specified by the instruction code is read from the data memory, A data processing device having a branch destination prediction processing function, comprising: an arithmetic unit for processing data.
【請求項3】請求項1又は2において、 上記演算部は上記分岐命令によって分岐処理された分岐
先アドレスと上記分岐実行履歴情報に基づいて予測され
た予測分岐先アドレスとの一致を検出し、上記分岐実行
履歴情報を更新する履歴情報更新部を有することを特徴
とする分岐先予測処理機能を有するデータ処理装置。
3. The arithmetic unit according to claim 1 or 2, wherein the arithmetic operation unit detects a match between a branch destination address subjected to branch processing by the branch instruction and a predicted branch destination address predicted based on the branch execution history information, A data processing apparatus having a branch destination prediction processing function, comprising a history information updating unit for updating the branch execution history information.
【請求項4】命令及びデータを保持する主記憶部と、 それぞれの分岐命令に応じて、それまでの分岐命令の実
行によって分岐した結果を示す分岐実行履歴情報と、上
記分岐命令によって指定される分岐先アドレスと分岐先
の命令コードとを保持する第1命令メモリ部と、命令の
命令コードを保持する第2命令メモリ部と、データの処
理を実行するために命令アドレスを上記第2命令メモリ
に出力し、上記第2命令メモリから上記命令アドレスに
対応する命令の命令コードをフェッチし、上記フェッチ
された命令コードが上記分岐命令かを判定し、上記分岐
命令であれば上記分岐実行履歴情報に基づく分岐先命令
を上記分岐先アドレスと上記分岐先の命令コードを用い
てフェッチし、上記フェッチされた命令コードに基づい
てデータを処理する演算部とからなるプロセッサ部と、 上記主記憶部と上記プロセッサ部を接続するバス部とを
有することを特徴とする分岐先予測処理機能を有するデ
ータ処理システム。
4. A main storage unit for holding instructions and data, branch execution history information showing a result of branching by execution of a branch instruction up to that point, and the branch instruction specified by the branch instruction. A first instruction memory unit for holding a branch destination address and an instruction code for the branch destination, a second instruction memory unit for holding an instruction code of an instruction, and an instruction address for executing data processing. And fetches the instruction code of the instruction corresponding to the instruction address from the second instruction memory, determines whether the fetched instruction code is the branch instruction, and if it is the branch instruction, the branch execution history information. A branch destination instruction based on the above-mentioned branch destination address and the above-mentioned branch destination instruction code, and processes data based on the fetched instruction code. A data processing system having a branch destination prediction processing function, comprising: a processor unit including an arithmetic unit; and a bus unit connecting the main storage unit and the processor unit.
【請求項5】命令及びデータを保持する主記憶部と、 それぞれの分岐命令に応じて、それまでの上記分岐命令
の実行によって分岐した結果を示す分岐実行履歴情報
と、上記分岐命令によって指定される分岐先アドレスと
分岐先の命令コードとを保持する第1命令メモリ部と、
命令の命令コードを保持する第2命令メモリ部と、デー
タを保持するデータメモリ部と、データの処理を実行す
るために命令アドレスを上記第2命令メモリに出力し、
上記第2命令メモリから上記命令アドレスに対応する命
令の命令コードをフェッチし、上記フェッチされた命令
コードが上記分岐命令かを判定し、上記分岐命令であれ
ば上記分岐実行履歴情報に基づく分岐先命令を上記分岐
先アドレスと上記分岐先の命令コードを用いてフェッチ
し、上記フェッチされた命令コードに基づいて、上記命
令コードで指定されるデータを上記データメモリから読
み出し、データを処理する演算部とからなるプロセッサ
部と、 上記主記憶部と上記プロセッサ部を接続するバス部とを
有することを特徴とする分岐先予測処理機能を有するデ
ータ処理システム。
5. A main storage unit for holding instructions and data, branch execution history information indicating a result of branching by the execution of the branch instruction up to that point, and the branch instruction specified by the branch instruction. A first instruction memory unit for holding a branch destination address and a branch destination instruction code,
A second instruction memory unit for holding the instruction code of the instruction, a data memory unit for holding the data, and an instruction address for executing the processing of the data, output to the second instruction memory,
The instruction code of the instruction corresponding to the instruction address is fetched from the second instruction memory, it is determined whether the fetched instruction code is the branch instruction, and if it is the branch instruction, the branch destination based on the branch execution history information. An operation unit that fetches an instruction using the branch destination address and the branch destination instruction code, reads the data specified by the instruction code from the data memory based on the fetched instruction code, and processes the data. A data processing system having a branch destination prediction processing function, comprising: a processor unit consisting of; and a bus unit connecting the main memory unit and the processor unit.
【請求項6】請求項4又は5において、 上記演算部は上記分岐命令によって分岐処理された分岐
先アドレスと上記分岐実行履歴情報に基づいて予測され
た予測分岐先アドレスとの一致を検出し、上記分岐実行
履歴情報を更新する履歴情報更新部を有することを特徴
とする分岐先予測処理機能を有するデータ処理システ
ム。
6. The arithmetic unit according to claim 4 or 5, wherein the arithmetic operation unit detects a match between a branch destination address subjected to branch processing by the branch instruction and a predicted branch destination address predicted based on the branch execution history information, A data processing system having a branch destination prediction processing function, comprising a history information updating unit for updating the branch execution history information.
【請求項7】請求項4乃至6のいずれか1つにおいて、 上記演算部から出力される命令アドレスに対応する命令
コードが上記第2の命令メモリ部にないなら、上記演算
部は上記主記憶部から上記第2の命令メモリ部に上記命
令アドレスをアクセスすることを特徴とする分岐先予測
処理機能を有するデータ処理システム。
7. The arithmetic unit according to claim 4, wherein if the instruction code corresponding to the instruction address output from the arithmetic unit is not in the second instruction memory unit, the arithmetic unit is the main memory. Data access system having a branch destination prediction processing function, wherein the instruction address is accessed from the second section to the second instruction memory section.
【請求項8】請求項4乃至7のいずれか1つにおいて、 上記演算部から出力される命令アドレスに対応する命令
コードが上記第1の命令メモリ部にないなら、上記演算
部は上記主記憶部から上記第1の命令メモリ部に上記命
令アドレスをアクセスすることを特徴とする分岐先予測
処理機能を有するデータ処理システム。
8. The arithmetic unit according to claim 4, wherein if the instruction code corresponding to the instruction address output from the arithmetic unit is not in the first instruction memory unit, the arithmetic unit is the main memory. Data access system having a branch destination prediction processing function, wherein the instruction address is accessed from the first section to the first instruction memory section.
【請求項9】請求項4乃至8のいずれか1つにおいて、 上記演算部は上記第1の命令メモリ部と上記第2命令メ
モリ部とに並列にアクセスすることを特徴とする分岐先
予測処理機能を有するデータ処理システム。
9. The branch destination prediction process according to claim 4, wherein the arithmetic unit accesses the first instruction memory unit and the second instruction memory unit in parallel. Data processing system with functions.
JP6056194A 1994-03-30 1994-03-30 Data processor provided with branching destination prediction processing function Pending JPH07271580A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6056194A JPH07271580A (en) 1994-03-30 1994-03-30 Data processor provided with branching destination prediction processing function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6056194A JPH07271580A (en) 1994-03-30 1994-03-30 Data processor provided with branching destination prediction processing function

Publications (1)

Publication Number Publication Date
JPH07271580A true JPH07271580A (en) 1995-10-20

Family

ID=13145811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6056194A Pending JPH07271580A (en) 1994-03-30 1994-03-30 Data processor provided with branching destination prediction processing function

Country Status (1)

Country Link
JP (1) JPH07271580A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100715046B1 (en) * 2005-10-11 2007-05-09 삼성전자주식회사 Drum type washing machine
JP2016157371A (en) * 2015-02-26 2016-09-01 ルネサスエレクトロニクス株式会社 Processor and instruction code generation device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100715046B1 (en) * 2005-10-11 2007-05-09 삼성전자주식회사 Drum type washing machine
JP2016157371A (en) * 2015-02-26 2016-09-01 ルネサスエレクトロニクス株式会社 Processor and instruction code generation device

Similar Documents

Publication Publication Date Title
KR100431168B1 (en) A method and system for fetching noncontiguous instructions in a single clock cycle
EP0135844B1 (en) A data processor with a branch target instruction storage
EP0966710B1 (en) Penalty-based cache storage and replacement techniques
JP2531495B2 (en) Method and system for improving branch history prediction accuracy in a superscalar processor system
US7181598B2 (en) Prediction of load-store dependencies in a processing agent
JP3599409B2 (en) Branch prediction device
JP4027620B2 (en) Branch prediction apparatus, processor, and branch prediction method
US5592634A (en) Zero-cycle multi-state branch cache prediction data processing system and method thereof
JPH0334024A (en) Method of branch prediction and instrument for the same
EP0394624B1 (en) Multiple sequence processor system
EP1296229A2 (en) Scoreboarding mechanism in a pipeline that includes replays and redirects
JP2000222205A (en) Method and device for reducing delay of set associative cache by set prediction
KR20020097149A (en) Scheduler capable of issuing and reissuing dependency chains
US5930820A (en) Data cache and method using a stack memory for storing stack data separate from cache line storage
US20150149723A1 (en) High-performance instruction cache system and method
US5889986A (en) Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer
GB2310740A (en) Storing exception messages in an instruction queue
JPH07271580A (en) Data processor provided with branching destination prediction processing function
JP3765111B2 (en) Processor having branch registration instruction
WO2000008551A1 (en) Software directed target address cache and target address register
US20090006819A1 (en) Single Hot Forward Interconnect Scheme for Delayed Execution Pipelines
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers
US11507372B2 (en) Processing of instructions fetched from memory
JPH06301537A (en) Instruction fetching circuit
EP0912929B1 (en) A data address prediction structure and a method for operating the same