JPH0769816B2 - Data processing device - Google Patents
Data processing deviceInfo
- Publication number
- JPH0769816B2 JPH0769816B2 JP63309459A JP30945988A JPH0769816B2 JP H0769816 B2 JPH0769816 B2 JP H0769816B2 JP 63309459 A JP63309459 A JP 63309459A JP 30945988 A JP30945988 A JP 30945988A JP H0769816 B2 JPH0769816 B2 JP H0769816B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- return
- call
- address
- stack
- 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)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明はデータ処理装置に係わり、特にサブルーチンの
コール、リターンを高速に処理するための機構を備えた
データ処理装置に関するものである。Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing device, and more particularly to a data processing device having a mechanism for processing calls and returns of subroutines at high speed.
従来の技術 従来のデータ処理装置としては、例えば特開昭62-28514
0号公報に示されている。第4図は従来のデータ処理装
置の構成を示すものである。100はスタック制御部、101
はアドレススタック、102は命令スタック、103は次命令
アドレスレジスタ、104はアドレスセレクタ、105は先行
フェッチによって複数の命令を保持している命令バッフ
ァ、106は命令セレクタ、107は命令アドレスを加算する
インクリメンタ、108は命令バッファ105から命令を切り
出すアライナ、109は命令レジスタ、110はレジスタファ
イル、111は比較器、112はキャッシュ、113は命令をデ
コードするデコーダである。2. Description of the Related Art As a conventional data processing device, for example, JP-A-62-28514 is used.
This is shown in Japanese Patent Publication No. 0. FIG. 4 shows the configuration of a conventional data processing device. 100 is a stack control unit, 101
Is an address stack, 102 is an instruction stack, 103 is a next instruction address register, 104 is an address selector, 105 is an instruction buffer holding a plurality of instructions by preceding fetch, 106 is an instruction selector, and 107 is an increment for adding instruction addresses. Reference numeral 108 is an aligner for cutting out an instruction from the instruction buffer 105, 109 is an instruction register, 110 is a register file, 111 is a comparator, 112 is a cache, and 113 is a decoder for decoding instructions.
以上のように構成された従来のデータ処理装置における
動作を以下に説明する。The operation of the conventional data processing apparatus configured as above will be described below.
命令バッファ105にはキャッシュ112から先行フェッチさ
れた命令列が保持されている。この命令バッファ105か
ら、次命令アドレスレジスタ103の値で制御されるアラ
イナ108によって命令を切り出し、命令レジスタ109に供
給する。命令レジスタ109に格納された命令をデコーダ1
13でデコードして命令実行を制御する。次命令アドレス
レジスタ103の値は、インクリメンタ107によって加算さ
れ、次の命令アドレスを示すようになっている。The instruction buffer 105 holds the instruction string fetched in advance from the cache 112. An instruction is cut out from the instruction buffer 105 by an aligner 108 controlled by the value of the next instruction address register 103 and supplied to the instruction register 109. Decoder 1 for instructions stored in instruction register 109
Decode at 13 to control instruction execution. The value of the next instruction address register 103 is added by the incrementer 107 to indicate the next instruction address.
デコーダ113はサブルーチン・コールを行うコール命令
を検出すると、スタック制御部100にコール命令の検出
を通知し、スタック制御部100によって、命令バッファ1
05の内容が命令スタック102に、次命令アドレス103の値
がアドレススタック102にプッシュされ、コール命令に
後続する命令を含む命令列とその命令列の先頭を示すア
ドレスが命令スタック102とアドレススタック101に退避
される。When the decoder 113 detects a call instruction for making a subroutine call, it notifies the stack control unit 100 of the detection of the call instruction, and the stack control unit 100 causes the instruction buffer 1
The contents of 05 are pushed onto the instruction stack 102, the value of the next instruction address 103 is pushed onto the address stack 102, and the instruction stack including the instruction following the call instruction and the address indicating the beginning of the instruction stack are the instruction stack 102 and the address stack 101. Are evacuated to.
コール命令を検出する度に命令列とアドレスを命令スタ
ック102とアドレススタック101にプッシュし、スタック
の容量を越えるとボトムの方から捨てるようになってい
る。即ち、スタックの容量で決まるネスト数分だけ命令
列とアドレスの組を保持している。また、コール命令実
行時にレジスタファイル110にリターンアドレスを格納
する。Whenever a call instruction is detected, an instruction sequence and an address are pushed onto the instruction stack 102 and the address stack 101, and when the stack capacity is exceeded, the instruction sequence and address are discarded from the bottom. That is, as many sets of instruction strings and addresses are held as the number of nests determined by the stack capacity. Also, the return address is stored in the register file 110 when the call instruction is executed.
デコーダ113でサブルーチン・リターンを行うリターン
命令を検出すると、スタック制御部100にリターン命令
の検出を通知する。スタック制御部100は、アドレスス
タック101のスタックトップからアドレスを読出し、そ
のアドレスがレジスタファイル110に格納されたアドレ
スと一致するかどうかを比較器111で判定する。一致し
た場合にはリターン先の命令列が命令スタック102のス
タックトップに保持されているため、命令スタック102
のスタックトップから命令バッファ105に命令列がポッ
プされ、アドレススタック101のスタックトップから次
命令アドレスレジスタ103に次命令アドレスがポップさ
れる。このようにして、サブルーチン・コール時に退避
したコール命令に後続する命令を含む命令列をサブルー
チン・リターン時に命令バッファ105に復帰し、同様に
復帰した次命令アドレス103の値を使ってコール命令に
よって中断された命令列の実行が可能になる。When the decoder 113 detects a return instruction for performing a subroutine return, the stack control unit 100 is notified of the detection of the return instruction. The stack control unit 100 reads an address from the stack top of the address stack 101, and the comparator 111 determines whether or not the address matches the address stored in the register file 110. If they match, the instruction sequence of the return destination is held at the top of the instruction stack 102, so the instruction stack 102
The instruction string is popped from the stack top of the above to the instruction buffer 105, and the next instruction address is popped from the stack top of the address stack 101 to the next instruction address register 103. In this way, the instruction sequence including the instruction following the call instruction saved at the time of the subroutine call is returned to the instruction buffer 105 at the time of the subroutine return, and is interrupted by the call instruction using the value of the next instruction address 103 which is also returned. The executed instruction sequence can be executed.
以上のような動作によって、サブルーチンのコール・リ
ターン処理の高速化を図っている。Through the above operation, the call / return processing of the subroutine is speeded up.
発明が解決しようとする課題 しかしながら上記のような構成では、コール命令実行に
よる命令分岐の高速化には効果がないうえ、デコーダ11
3でリターン命令の検出を行うため、どんなに高速化し
てもリターン命令の実行に1クロック以上を要するとい
う問題点を有していた。However, the above-described configuration is not effective in speeding up the instruction branching by executing the call instruction, and the decoder 11
Since the return instruction is detected in step 3, there is a problem that it takes one clock or more to execute the return instruction no matter how high the speed.
本発明はかかる点に鑑み、コール命令とリターン命令を
0クロックで実行することにより極めて高速にサブルー
チンのコール・リターン処理を行うデータ処理装置を提
供することを目的とする。。In view of the above point, the present invention has an object to provide a data processing device which executes call / return processing of a subroutine at an extremely high speed by executing a call instruction and a return instruction at 0 clock. .
課題を解決するための手段 本発明は、命令の実行をパイプライン処理するデータ処
理装置において、コール命令またはリターン命令で分岐
した先の分岐先命令と、分岐先次命令アドレスと、コー
ル命令またはリターン命令実行後のスタックポインタの
値とからなる分岐先情報を保持し、分岐先情報を検索す
るキーとしてプログラムカウンタの値とスタックポイン
タの値を有する分岐先情報保持手段を備え、保持した分
岐先情報をコール命令またはリターン命令が実行処理さ
れるサイクルよりも1サイクル以上前のサイクルのプロ
グラムカウンタとスタックポインタの値をキーとして検
索し、コール命令またはリターン命令の実行処理を待た
ずに前記分岐先情報保持手段から分岐先情報を供給する
ことを特徴とするデータ処理装置である。Means for Solving the Problems The present invention provides a data processing apparatus for pipeline processing instruction execution, a branch destination instruction branched to by a call instruction or a return instruction, a branch destination next instruction address, a call instruction or a return instruction. Branch destination information including a stack pointer value after instruction execution is held, and branch destination information holding means having a program counter value and a stack pointer value as a key for searching the branch destination information is provided, and the held branch destination information The branch destination information without waiting for the execution processing of the call instruction or the return instruction by searching with the values of the program counter and the stack pointer of the cycle one cycle or more before the execution processing of the call instruction or the return instruction as a key. The data processing device is characterized in that branch destination information is supplied from a holding unit.
作用 本発明は前記した手段により、分岐先情報保持手段の検
索を行なって、コール命令およびリターン命令をデコー
ドせずにサブルーチン・コールによる分岐先命令列の情
報およびサブルーチン・リターンによる戻り先命令列の
情報を得ることができ、コール命令とリターン命令を実
効的に0クロックで実行することを可能にする。分岐先
情報保持手段の検索をプログラムカウンタとスタックポ
インタのペアで行うことによって、リカーシブ・コール
にも対処可能である。According to the present invention, by the above-described means, the branch destination information holding means is searched, and the information of the branch destination instruction sequence by the subroutine call and the return destination instruction sequence by the subroutine return are searched without decoding the call instruction and the return instruction. Information can be obtained, and the call instruction and the return instruction can be effectively executed in 0 clock. Recursive calls can be dealt with by searching the branch destination information holding means with a pair of a program counter and a stack pointer.
実施例 第1図は本発明の実施例におけるデータ処理装置の構成
図である。第1図において1は命令キャッシュ、2は命
令レジスタ、3はデコーダ、4は命令実行部、5は命令
キャッシュからフェッチする命令のアドレスを示すプリ
フェッチカウンタ(PFC)、6はPFCを加算するインクリ
メンタ、7は命令レジスタに格納された命令のアドレス
を示すデコード部のプログラムカウンタ(PCD)、8は
スタックポインタ(SP)、9はスタックポインタのコピ
ー(SPD)、10はスタックポインタのコピーの更新を制
御するSPD制御部、11は比較器、12はコールあるいはリ
ターンで分岐した時の分岐先の先頭命令と後続する命令
のアドレスと分岐時のSPDを保持し、PCDとSPDとで検索
するコール・リターンバッファ、13はリターンアドレス
書換え検出部、14、15、16は、コール・リターンバッフ
ァ12からのデータに切り換えるためのセレクタ、17は汎
用レジスタである。Embodiment FIG. 1 is a block diagram of a data processing device in an embodiment of the present invention. In FIG. 1, 1 is an instruction cache, 2 is an instruction register, 3 is a decoder, 4 is an instruction execution unit, 5 is a prefetch counter (PFC) indicating an address of an instruction fetched from the instruction cache, and 6 is an incrementer for adding PFC. , 7 is the program counter (PCD) of the decoding unit that indicates the address of the instruction stored in the instruction register, 8 is the stack pointer (SP), 9 is the copy of the stack pointer (SPD), and 10 is the update of the copy of the stack pointer. SPD control unit to control, 11 is a comparator, 12 is a call to search by PCD and SPD by holding the address of the first instruction of the branch destination when branching by call or return, the address of the instruction following and the SPD at the time of branching Return buffer, 13 is a return address rewrite detection unit, 14, 15, 16 are selectors for switching to the data from the call / return buffer 12, 1 7 is a general-purpose register.
以上のように構成された本実施例について、以下その動
作を説明する。The operation of the present embodiment configured as described above will be described below.
本実施例におけるデータ処理装置では、命令の実行を命
令フェッチ(IF)、デコード(DEC)、データリード
(R)、実行(EX)、データライト(W)のパイプライ
ンで処理する。即ち、命令フェッチ・ステージで命令キ
ャッシュ1からPFC5で示されるアドレスの命令をフェッ
チしてセレクタ15を通して命令レジスタ2に送出し、次
のデコード・ステージで命令レジスタ2の命令をデコー
ドして実行部4を制御する。実行部4ではデータリード
・ステージで汎用レジスタ17からデータを読出し、実行
ステージで演算し、データライト・ステージで結果の書
込みを行う。メモリアクセスの場合には実行ステージで
アドレス計算を行って、データライト・ステージでメモ
リアクセスを行う。In the data processing apparatus according to the present embodiment, instruction execution is processed by the instruction fetch (IF), decode (DEC), data read (R), execution (EX), and data write (W) pipelines. That is, in the instruction fetch stage, the instruction of the address indicated by PFC5 is fetched from the instruction cache 1 and sent to the instruction register 2 through the selector 15, and the instruction of the instruction register 2 is decoded and executed by the execution unit 4 in the next decode stage. To control. The execution unit 4 reads data from the general-purpose register 17 in the data read stage, performs arithmetic in the execution stage, and writes the result in the data write stage. In the case of memory access, address calculation is performed in the execution stage, and memory access is performed in the data write stage.
SPD9はスタックポインタSP8のコピーであり、SPD制御部
10によってSPD9の更新を制御する。SPD制御部10は、SPD
9にSP8の値を書込むかコール・リターンバッファ12から
の値を書込むかの制御に加えて、コール・リターンバッ
ファ12からの値を書込んだ時には一定サイクルSPDの更
新を抑止する制御も行う。SPD9 is a copy of stack pointer SP8, and SPD controller
SPD9 update is controlled by 10. SPD control unit 10
In addition to the control to write the value of SP8 to 9 or the value from the call / return buffer 12, the control to suppress the update of the fixed cycle SPD when the value from the call / return buffer 12 is written To do.
デコード・ステージでは命令のデコードと並行して、SP
D9の値とPCD7の値とでコール・リターンバッファを検索
する。コール・リターンバッファがヒットした時には、
セレクタ15、14、16を制御して、コール・リターンバッ
ファ12から分岐先命令を命令レジスタ2に、分岐先次命
令アドレスをPFC5に、分岐先SPDの値をSPD9に送出す
る。即ち、過去にコール命令やリターン命令が実行され
てコール・リターンバッファ12に登録されており、再び
同じコール命令やリターン命令が実行される時には、直
前命令のデコード時にコール・リターンバッファ12を検
索することにより、コール命令やリターン命令自身を実
行することなしに、コール命令やリターン命令によって
分岐する分岐先命令列の情報を供給することができる。
以下にこの動作をさらに詳細に説明する。In the decode stage, SP is executed in parallel with instruction decoding.
The call / return buffer is searched with the value of D9 and the value of PCD7. When the call / return buffer is hit,
By controlling the selectors 15, 14 and 16, the call / return buffer 12 sends the branch destination instruction to the instruction register 2, the branch destination next instruction address to PFC5, and the branch destination SPD value to SPD9. That is, when a call instruction or a return instruction is executed in the past and is registered in the call / return buffer 12, and the same call instruction or a return instruction is executed again, the call / return buffer 12 is searched when the immediately preceding instruction is decoded. This makes it possible to supply the information of the branch destination instruction sequence branched by the call instruction or the return instruction without executing the call instruction or the return instruction itself.
This operation will be described in more detail below.
本実施例においては、コール・リターンシーケンスの例
として、ルーチンAからbsr命令でルーチンBをコール
し、ルーチンBを実行した後rts命令でルーチンAにリ
ターンする場合を挙げる。In this embodiment, as an example of the call / return sequence, a case where the routine B is called by the bsr instruction from the routine A, the routine B is executed and then the routine A is returned by the rts instruction is given.
第2図にルーチンBからリターンする場合を例として、
コール・リターンバッファに分岐先情報がない場合の動
作タイミングを示す。命令B2のデコードと並行して命令
B2のアドレスであるPCD7の値とその時のSPD9の値でコー
ル・リターンバッファ12を検索する。コール・リターン
バッファ12がミスヒットすると、命令キャッシュ1から
送出されているrts命令をセレクタ15で選択して命令レ
ジスタ2に格納してデコード・ステージ以下に流す。rt
s命令がスタックからリターンアドレスをポップしてPFC
5にリターンアドレスを格納することにより、リターン
先の命令処理をすることができる。この間SPD制御部10
は、SP9の値をマシンサイクルごとに、SPD9にコピーし
ている。コール・リターンバッファ12はミスヒットした
時、検索に使用したSPDとPCDの値をタグとするエントリ
を生成し、そのエントリのデータ部にリターン先命令A
1、リターン先次命令A2のアドレスおよびリターン先命
令A1をデコードしている時のPCD7の値をそれぞれが確定
していくごとに格納していく。As an example of returning from routine B in FIG. 2,
The following shows the operation timing when there is no branch destination information in the call / return buffer. Instruction in parallel with decoding of instruction B2
The call / return buffer 12 is searched by the value of PCD7 which is the address of B2 and the value of SPD9 at that time. When the call / return buffer 12 has a mishit, the rts instruction sent from the instruction cache 1 is selected by the selector 15 and stored in the instruction register 2 to flow below the decode stage. rt
s instruction pops return address from stack and PFC
By storing the return address in 5, it is possible to process the instruction at the return destination. During this time SPD control unit 10
Copies the value of SP9 to SPD9 every machine cycle. When a miss hit occurs, the call / return buffer 12 creates an entry with the SPD and PCD values used for the search as tags, and the return destination instruction A in the data part of the entry.
1. The address of the return destination next instruction A2 and the value of PCD7 when the return destination instruction A1 is being decoded are stored as they are determined.
次にコール・リターンバッファ12がヒットした場合の動
作を第3図に示す。コール・リターンバッファ12には第
2図で示した動作でリターン先の情報が登録されてい
る。命令B2のデコードと並列して命令B2のアドレスであ
るPCD7の値とその時のSPD9の値でコール・リターンバッ
ファ12を検索する。コール・リターンバッファ12がヒッ
トすると、セレクタ15、14、16を制御して、コール・リ
ターンバッファ12からリターン先命令A1を命令レジスタ
2に、リターン先次命令A2のアドレスをPFC5に、リター
ン先命令A1のデコード時のSPDの値をSPD9に送出する。Next, the operation when the call / return buffer 12 is hit is shown in FIG. Information on the return destination is registered in the call / return buffer 12 by the operation shown in FIG. In parallel with the decoding of the instruction B2, the call / return buffer 12 is searched by the value of PCD7 which is the address of the instruction B2 and the value of SPD9 at that time. When the call / return buffer 12 hits, the selectors 15, 14 and 16 are controlled so that the call / return buffer 12 returns the return destination instruction A1 to the instruction register 2, the return destination next instruction A2 address to PFC5, and the return destination instruction. The SPD value when A1 is decoded is sent to SPD9.
従って、命令の流れとしてはルーチンBにおけるリター
ン命令の直前命令B2の次にリターン先命令A1が実行され
る。即ち、リターン命令rtsは実効的に0クロックで実
行されたことになる。ここで、SPD9の更新はリターン先
命令A1の実行が終わるまでSPD制御部10によって抑止さ
れる。これは、コール・リターンバッファ12がミスヒッ
トした時のSPD9の変化との整合をとるためである。Therefore, as the instruction flow, the return destination instruction A1 is executed next to the instruction B2 immediately before the return instruction in the routine B. That is, the return instruction rts is effectively executed in 0 clock. Here, the update of SPD9 is suppressed by the SPD control unit 10 until the execution of the return destination instruction A1 is completed. This is to match the change in SPD9 when the call / return buffer 12 is hit.
ここでは、コール・リターンバッファ12の動作をリター
ン命令の場合を例として説明したが、同様にコール命令
の場合においても実効的に0クロックで実行することが
可能である。但し、コール命令の場合にはコール・リタ
ーンバッファ12への登録時の処理として、リターン命令
の場合の処理に加えて、リターンアドレス書換え検出部
13にリターンアドレスを格納するスタックのアドレスを
登録する。リターンアドレス書換え検出部13は、スタッ
クへの書込みを監視しており、リターンアドレス格納場
所への書込みを検出した時にはコール・リターンバッフ
ァ12の全パージを行うことにより、プログラムの暴走を
防止する。Here, the operation of the call / return buffer 12 has been described by taking the case of the return instruction as an example, but similarly, in the case of the call instruction, the operation can be effectively executed with 0 clock. However, in the case of a call instruction, in addition to the processing of the return instruction, the return address rewrite detection unit
Register the address of the stack that stores the return address in 13. The return address rewrite detection unit 13 monitors the writing to the stack, and when the writing to the return address storage location is detected, the call / return buffer 12 is completely purged to prevent runaway of the program.
以上のように本実施例によれば、コール・リターンバッ
ファ12にコール命令やリターン命令によって分岐する分
岐先命令列の情報を登録することによって、同じコール
・リターンシーケンスが行われる時には、コール命令や
リターン命令を0クロックで実行することができ、コー
ル・リターンを高速に処理できる。また、コール・リタ
ーンバッファ12を検索する情報として、プログラムカウ
ンタとスタックポインタのコピーを用いるため、リカー
シブ・コールに対しても対処可能である。As described above, according to this embodiment, when the same call / return sequence is performed, by registering the information of the branch destination instruction sequence branched by the call instruction or the return instruction in the call / return buffer 12, The return instruction can be executed in 0 clock, and the call / return can be processed at high speed. Further, since the copy of the program counter and the stack pointer is used as the information for searching the call / return buffer 12, recursive calls can be dealt with.
発明の効果 以上説明したように、本発明によれば、リカーシブ・コ
ールなどコール・リターンシーケンスの形態に係わら
ず、一度実行されたコール命令やリターン命令を再び実
行する時に、分岐先情報保持手段に格納されてさえいれ
ば、その情報を使用することによって、リターン命令や
コール命令を実効的に0クロックで実行することができ
るため、コールシーケンスやリターンシーケンスを高速
に処理することができ、その実用的効果は大きい。As described above, according to the present invention, regardless of the form of the call / return sequence such as recursive call, when the call instruction or the return instruction which has been executed once is executed again, the branch destination information holding means is provided. As long as it is stored, by using the information, the return instruction and the call instruction can be effectively executed with 0 clock, so that the call sequence and the return sequence can be processed at a high speed. Effect is large.
【図面の簡単な説明】 第1図は本発明の実施例の構成を示すブロック図、第2
図、第3図は同実施例の動作を説明するタイミング図、
第4図は従来例の構成図である。 1……命令キャッシュ、2……命令レジスタ、3……デ
コーダ、4……実行部、5……プリフェッチカウンタ
(PFC)、6……インクリメンタ、7……プログラムカ
ウンタ、8……スタックポインタ(SP)、9……スタッ
クポインタのコピー(SPD)、10……SPD制御部、11……
比較器、12……コール・リターンバッファ、13……リタ
ーンアドレス書換え検出部、14、15、16……セレクタ、
17……汎用レジスタ、100……スタック制御部、101……
アドレススタック、102……命令スタック、103……次命
令アドレスレジスタ、104……アドレスセレクタ、105…
…命令バッファ、106……命令セレクタ、107……インク
リメンタ、108……アライナ、109……命令レジスタ、11
0……レジスタファイル、111……比較器、112……キャ
ッシュ、113……デコーダ。BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing a configuration of an embodiment of the present invention, and FIG.
3 and FIG. 3 are timing charts for explaining the operation of the embodiment.
FIG. 4 is a block diagram of a conventional example. 1 ... Instruction cache, 2 ... Instruction register, 3 ... Decoder, 4 ... Execution unit, 5 ... Prefetch counter (PFC), 6 ... Incrementer, 7 ... Program counter, 8 ... Stack pointer ( SP), 9 ... Copy of stack pointer (SPD), 10 ... SPD control unit, 11 ...
Comparator, 12 ... Call / return buffer, 13 ... Return address rewriting detection unit, 14, 15, 16 ... Selector,
17 …… General purpose register, 100 …… Stack control block, 101 ……
Address stack, 102 ... Instruction stack, 103 ... Next instruction address register, 104 ... Address selector, 105 ...
… Instruction buffer, 106 …… Instruction selector, 107 …… Incrementer, 108 …… Aligner, 109 …… Instruction register, 11
0 …… Register file, 111 …… Comparator, 112 …… Cache, 113 …… Decoder.
Claims (1)
処理装置において、コール命令またはリターン命令で分
岐した先の分岐先命令と、分岐先次命令アドレスと、コ
ール命令またはリターン命令実行後のスタックポインタ
の値とからなる分岐先情報を保持し、分岐先情報を検索
するキーとしてプログラムカウンタの値とスタックポイ
ンタの値を有する分岐先情報保持手段を備え、保持した
分岐先情報をコール命令またはリターン命令が実行処理
されるサイクルよりも1サイクル以上前のサイクルのプ
ログラムカウンタとスタックポインタの値をキーとして
検索し、コール命令またはリターン命令の実行処理を待
たずに前記分岐先情報保持手段から分岐先情報を供給す
ることを特徴とするデータ処理装置。1. A data processing device for pipelined execution of instructions, a branch destination instruction branched to by a call instruction or a return instruction, a branch destination next instruction address, and a stack pointer after execution of the call instruction or the return instruction. And branch destination information holding means having a program counter value and a stack pointer value as a key for searching the branch destination information, and the held branch destination information is a call instruction or a return instruction. Is executed by using the program counter and the value of the stack pointer of the cycle one cycle or more before the execution processing as a key, and the branch destination information holding means stores the branch destination information without waiting for the execution processing of the call instruction or the return instruction. A data processing device, characterized in that
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63309459A JPH0769816B2 (en) | 1988-12-07 | 1988-12-07 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63309459A JPH0769816B2 (en) | 1988-12-07 | 1988-12-07 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02155038A JPH02155038A (en) | 1990-06-14 |
JPH0769816B2 true JPH0769816B2 (en) | 1995-07-31 |
Family
ID=17993246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63309459A Expired - Fee Related JPH0769816B2 (en) | 1988-12-07 | 1988-12-07 | Data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0769816B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2857600B2 (en) * | 1995-05-11 | 1999-02-17 | 松下電器産業株式会社 | Processor and program translator |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6393042A (en) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | Data processor |
-
1988
- 1988-12-07 JP JP63309459A patent/JPH0769816B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH02155038A (en) | 1990-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3004013B2 (en) | Apparatus and method for performing subroutine call and return operations | |
JP2504830Y2 (en) | Data processing device | |
US5790823A (en) | Operand prefetch table | |
EP0394624B1 (en) | Multiple sequence processor system | |
JPH03147022A (en) | Branch instruction processing apparatus and method | |
JPH11212788A (en) | Data supplying device for processor | |
JPH0242569A (en) | Context switching method and apparatus used for vector processing system | |
EP0655679B1 (en) | Method and apparatus for controlling instruction in pipeline processor | |
JPH0682320B2 (en) | Data processing device | |
JP2596712B2 (en) | System and method for managing execution of instructions, including adjacent branch instructions | |
GB2310740A (en) | Storing exception messages in an instruction queue | |
JPH077356B2 (en) | Pipelined microprocessor | |
US5841999A (en) | Information handling system having a register remap structure using a content addressable table | |
JPH0769816B2 (en) | Data processing device | |
WO1998011484A1 (en) | Command processor having history memory | |
JP2001306334A (en) | Emulation device | |
JP2534662B2 (en) | Instruction cache control method | |
JP3317985B2 (en) | Pseudo vector processor | |
US20070043551A1 (en) | Data processing | |
JPH06301537A (en) | Instruction fetching circuit | |
JPH07200406A (en) | Cache system | |
JP2902847B2 (en) | Self-modifying code execution method | |
JPH0248733A (en) | Information processor | |
JPH08137690A (en) | Program execution control method | |
JPH05113931A (en) | Address conversion processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |