JPH0527972A - Instruction prefetch device - Google Patents

Instruction prefetch device

Info

Publication number
JPH0527972A
JPH0527972A JP17827391A JP17827391A JPH0527972A JP H0527972 A JPH0527972 A JP H0527972A JP 17827391 A JP17827391 A JP 17827391A JP 17827391 A JP17827391 A JP 17827391A JP H0527972 A JPH0527972 A JP H0527972A
Authority
JP
Japan
Prior art keywords
instruction
address
instructions
memory
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP17827391A
Other languages
Japanese (ja)
Inventor
Akifumi Nagao
彰文 長尾
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP17827391A priority Critical patent/JPH0527972A/en
Publication of JPH0527972A publication Critical patent/JPH0527972A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To suppress memory access for prefetching an instruction at an irreducibly minimum and to facilitate access to data in the same memory. CONSTITUTION:Each time an instruction read signal 7 is impressed from a read signal generator 6 to a memory 1, two instructions in the memory 1 starting from an address designated through an address line 5 by an address generator 1 is read through a fetch line 2. Each time an instruction output signal 8 is impressed, an instruction fetch queue 3 successively supplies read instructions to a processor as an output instruction 11 one by one from the small address and between this instruction fetch queue 3 and the memory 1, a jump instruction detection part 9 is interposed. When a branching instruction is contained in the instructions read by the instruction fetch queue 3, a jump instruction detecting signal 10 is outputted from a jump instruction detection part 9 to the read signal generator 6 so as to temporarily stop the read of the instructions from the memory 1 until the branch destination address of the branching instruction is fixed.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、プロセッサによる命令
の解読・実行に先立って該命令を予めメモリから読み出
しておくための命令プリフェッチ装置に関するものであ
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an instruction prefetch device for preliminarily reading an instruction from a memory before decoding and executing the instruction by a processor.

【0002】[0002]

【従来の技術】近年のプロセッサは、プログラムを構成
する命令をメモリから高速に読み出せるように性能が向
上している。ところが、メモリはプロセッサが解読・実
行すべき命令の格納のために用いられるだけでなく該解
読・実行の対象とはならないデータの格納のためにも用
いられるので、命令の読み出し頻度が高くなれば相対的
にメモリへのデータアクセスが待たされる頻度が高くな
る。そこで、メモリから1回のアクセスで複数の命令を
同時に読み出す形で命令のプリフェッチを進める一方
で、該プリフェッチした複数の命令を1命令ずつプロセ
ッサへ供給する形式の命令プリフェッチ装置が不可欠に
なっている。
2. Description of the Related Art Recent processors have been improved in performance so that the instructions constituting a program can be read out from a memory at high speed. However, since the memory is used not only for storing instructions to be decoded / executed by the processor but also for storing data that is not the target of decoding / execution, if the instruction read frequency increases The frequency of waiting for data access to the memory is relatively high. Therefore, an instruction prefetch device is indispensable in such a manner that a plurality of instructions are simultaneously read out by one access from a memory and prefetching of the instructions is advanced, while the prefetched plurality of instructions are supplied to the processor one instruction at a time. ..

【0003】図3は、従来の命令プリフェッチ装置の構
成を示したブロック図である。同図中の1は、命令やデ
ータが格納されたメモリであって、フェッチライン2を
通して2命令を同時に読み出すことができるものであ
る。3は、5命令分の命令格納領域を有する命令フェッ
チキューであって、2命令分以上の空き領域できたとき
にメモリ1から次の2命令を読み込む一方で、既に読み
込んだ命令を命令出力信号8が与えられる毎にアドレス
の若い順に1命令ずつ出力命令11としてプロセッサへ
順次供給するものである。4はメモリ1から次にプリフ
ェッチすべき命令のアドレスをアドレスライン5を通し
て順次指定するためのアドレスジェネレータであり、6
は該アドレスジェネレータ4により指定されたアドレス
から始まる2つの連続したアドレスの命令の読み出しタ
イミングを与えるための命令リード信号7を該メモリ1
に対して順次出力するリード信号ジェネレータである。
FIG. 3 is a block diagram showing the configuration of a conventional instruction prefetch device. Reference numeral 1 in the figure is a memory in which instructions and data are stored, and two instructions can be read simultaneously through the fetch line 2. Reference numeral 3 is an instruction fetch queue having an instruction storage area for 5 instructions. When a free area of 2 instructions or more is made available, the next 2 instructions are read from the memory 1 while the already read instruction is output as an instruction output signal. Each time 8 is given, one instruction is sequentially supplied to the processor as an output instruction 11 in ascending order of address. Reference numeral 4 is an address generator for sequentially designating the address of the instruction to be prefetched next from the memory 1 through the address line 5.
Outputs an instruction read signal 7 for giving the read timing of the instruction of two consecutive addresses starting from the address designated by the address generator 4.
Is a read signal generator that sequentially outputs to.

【0004】以上のように構成された従来の命令プリフ
ェッチ装置の動作を、図4に示したタイミング図にした
がって順次説明する。ただし、初期状態では命令フェッ
チキュー3の全ての命令格納領域が空であり、アドレス
ライン5上のアドレスはnから始まるものとする。ま
た、命令リード信号7と命令出力信号8とはいずれもL
OWの時にアクティブであるものとする。
The operation of the conventional instruction prefetch device configured as described above will be sequentially described with reference to the timing chart shown in FIG. However, in the initial state, all the instruction storage areas of the instruction fetch queue 3 are empty, and the address on the address line 5 starts from n. Further, both the command read signal 7 and the command output signal 8 are L.
Assume active during OW.

【0005】まず、アドレスジェネレータ4がアドレス
ライン5を通してメモリ1にアドレスnを示した状態
で、リード信号ジェネレータ6がメモリ1に対する命令
リード信号7をLOWにする。すると、メモリ1からフ
ェッチライン2を通して2命令(n、n+1)が読み出
され、これら2命令が命令フェッチキュー3に同時に読
み込まれる。この後、命令出力信号8がLOWになった
時点で、既にプリフェッチされた2命令のうちアドレス
の最も若い1命令(n)が命令フェッチキュー3から出
力命令11としてプロセッサへ供給される。
First, while the address generator 4 indicates the address n to the memory 1 through the address line 5, the read signal generator 6 sets the instruction read signal 7 to the memory 1 to LOW. Then, two instructions (n, n + 1) are read from the memory 1 through the fetch line 2, and these two instructions are simultaneously read into the instruction fetch queue 3. After that, when the instruction output signal 8 becomes LOW, one instruction (n) having the smallest address among the two prefetched instructions is supplied from the instruction fetch queue 3 to the processor as the output instruction 11.

【0006】命令(n)が出力命令11としてプロセッ
サへ供給された時点では命令フェッチキュー3に4命令
分の空き領域があるため、次の2命令のプリフェッチが
可能であり、リード信号ジェネレータ6は命令リード信
号7を再びLOWにすることができる。すなわち、命令
リード信号7がLOWになった時にはアドレスライン5
上のアドレスがn+2に更新されており、メモリ1から
次の2命令(n+2、n+3)が命令フェッチキュー3
にプリフェッチされる。そして、命令出力信号8がLO
Wになった時には、既にプリフェッチされた残りの命令
のうちアドレスの最も若い1命令(n+1)が命令フェ
ッチキュー3から出力命令11としてプロセッサへ供給
される。
At the time when the instruction (n) is supplied to the processor as the output instruction 11, the instruction fetch queue 3 has an empty area for four instructions, so that the next two instructions can be prefetched, and the read signal generator 6 is The instruction read signal 7 can be made LOW again. That is, when the instruction read signal 7 becomes LOW, the address line 5
The upper address is updated to n + 2, and the next two instructions (n + 2, n + 3) from the memory 1 are fetched from the instruction fetch queue 3
Prefetched to. And the command output signal 8 is LO
When it reaches W, one instruction (n + 1) with the smallest address among the remaining prefetched instructions is supplied from the instruction fetch queue 3 to the processor as the output instruction 11.

【0007】命令(n+1)が出力命令11としてプロ
セッサへ供給された時点では命令フェッチキュー3に3
命令分の空き領域があるため、次の2命令のプリフェッ
チが可能であり、リード信号ジェネレータ6は命令リー
ド信号7を再びLOWにすることができる。すなわち、
命令リード信号7がLOWになった時にはアドレスライ
ン5上のアドレスがn+4に更新されており、メモリ1
から次の2命令(n+4、n+5)が命令フェッチキュ
ー3に同様にプリフェッチされる。ただし、図4に示し
た例では命令出力信号8が一時的にHIGHを維持して
おり、命令フェッチキュー3はすぐにはプロセッサに命
令を供給しない。しかも、該2命令(n+4、n+5)
までプリフェッチされた状態では命令フェッチキュー3
に1命令分の空き領域しかないので、アドレスライン5
上のアドレスがn+6に更新されているにもかかわらず
該アドレスに基づいたメモリ1からの命令プリフェッチ
が行われることもない。時間が経過して次に命令出力信
号8がLOWになった時には、既にプリフェッチされた
残りの命令のうちアドレスの最も若い1命令(n+2)
が命令フェッチキュー3から出力命令11として出力さ
れる。
When the instruction (n + 1) is supplied to the processor as the output instruction 11, the instruction fetch queue 3 has 3
Since there is an empty area for instructions, the next two instructions can be prefetched, and the read signal generator 6 can set the instruction read signal 7 to LOW again. That is,
When the instruction read signal 7 becomes LOW, the address on the address line 5 has been updated to n + 4.
The next two instructions (n + 4, n + 5) are prefetched into the instruction fetch queue 3 in the same manner. However, in the example shown in FIG. 4, the instruction output signal 8 is temporarily kept HIGH, and the instruction fetch queue 3 does not immediately supply the instruction to the processor. Moreover, the two instructions (n + 4, n + 5)
Instruction fetch queue 3 when prefetched up to
Since there is only one instruction free area in the address line 5,
Even though the upper address is updated to n + 6, the instruction prefetch from the memory 1 based on the address is not performed. When the instruction output signal 8 becomes LOW next as time elapses, one instruction (n + 2) with the smallest address among the remaining prefetched instructions.
Is output from the instruction fetch queue 3 as an output instruction 11.

【0008】このようにして命令(n+2)が命令フェ
ッチキュー3から出力命令11としてプロセッサへ供給
されると、命令フェッチキュー3に2命令分の空き領域
ができるので、次に命令リード信号7がLOWになった
時に既に更新されていたアドレスライン5上のアドレス
n+6に基づいてメモリ1から次の2命令(n+6、n
+7)が命令フェッチキュー3にプリフェッチされる。
When the instruction (n + 2) is supplied from the instruction fetch queue 3 to the processor as the output instruction 11 in this way, an empty area for two instructions is created in the instruction fetch queue 3 and the next instruction read signal 7 is issued. Based on the address n + 6 on the address line 5 which has already been updated when it becomes LOW, the next two instructions (n + 6, n
+7) is prefetched to the instruction fetch queue 3.

【0009】この後は、命令出力信号8が2回LOWに
なって命令フェッチキュー3から2命令が出力される毎
に、命令リード信号7が1回LOWになって該命令フェ
ッチキュー3に2命令がプリフェッチされることとな
る。
After this, every time the instruction output signal 8 becomes LOW twice and two instructions are output from the instruction fetch queue 3, the instruction read signal 7 becomes LOW once and the instruction fetch queue 3 becomes 2 times. Instructions will be prefetched.

【0010】以上のとおり、本命令プリフェッチ装置に
よればメモリ1から2命令が同時にプリフェッチされる
ので、プロセッサが1命令ずつフェッチする場合に比べ
て命令フェッチのためのメモリアクセス頻度が下がり、
相対的にメモリ1へのデータアクセスが容易になる。
As described above, according to the present instruction prefetch device, since two instructions are simultaneously prefetched from the memory 1, the memory access frequency for instruction fetch is reduced as compared with the case where the processor fetches one instruction at a time.
Data access to the memory 1 becomes relatively easy.

【0011】[0011]

【発明が解決しようとする課題】上記従来の命令プリフ
ェッチ装置は、命令フェッチキュー3に2命令分以上の
空き領域が確保できているかぎり命令の種類にかかわら
ず2命令ずつ次々とプリフェッチしていく構成であった
ので、命令フェッチキュー3が無条件ジャンプ命令、サ
ブルーチンの無条件コール命令、無条件リターン命令等
のアドレスに飛びを生じさせる命令すなわち無条件分岐
命令を読み込んだり、条件ジャンプ命令、サブルーチン
の条件コール命令、条件リターン命令等のアドレスに飛
びを生じさせるおそれのある命令すなわち条件分岐命令
を読み込んだりした場合であっても、メモリ1において
該命令の後続アドレスに格納された他の命令を順次プリ
フェッチしてしまっていた。
The above-described conventional instruction prefetch device prefetches two instructions one after another regardless of the type of instruction as long as the instruction fetch queue 3 has a free space of two instructions or more. Because of the configuration, the instruction fetch queue 3 reads an instruction that causes a jump to an address such as an unconditional jump instruction, an unconditional call instruction of a subroutine, and an unconditional return instruction, that is, an unconditional branch instruction, a conditional jump instruction, and a subroutine. Even if an instruction such as a conditional call instruction or a conditional return instruction that may cause a jump to the address, that is, a conditional branch instruction is read, another instruction stored in the subsequent address of the instruction in the memory 1 It was prefetched one after another.

【0012】上記分岐命令のうち無条件分岐命令をプリ
フェッチした場合にはプロセッサによる該無条件分岐命
令の解読の後にプログラムの実行が必ず分岐先に飛ぶの
で、該解読時までに行われた後続アドレスの命令のプリ
フェッチは無駄になり、命令フェッチのために無用のメ
モリアクセスを実行したこととなる。条件分岐命令をプ
リフェッチした場合にもプロセッサによる該条件分岐命
令の解読の後にプログラムの実行が分岐先に飛ぶ場合が
あるので、該解読時までに行われた後続アドレスの命令
のプリフェッチは無駄になり、同様に命令フェッチのた
めに無用のメモリアクセスを実行したこととなる。
When an unconditional branch instruction of the above branch instructions is prefetched, the execution of the program is always skipped to the branch destination after the processor decodes the unconditional branch instruction. The prefetch of the instruction is wasted and unnecessary memory access is executed for the instruction fetch. Even if a conditional branch instruction is prefetched, the execution of the program may jump to the branch destination after the processor decodes the conditional branch instruction. Therefore, the prefetch of the instruction at the subsequent address performed before the decoding is useless. Similarly, unnecessary memory access is executed for instruction fetch.

【0013】このようにして命令フェッチのために次々
と無用のメモリアクセスが行われると、その分データア
クセスが遅れることとなるだけでなく、該無用のメモリ
アクセスがアクセス禁止領域にかかってしまった場合に
は割り込みが発生してプロセッサが不要の処理をしなけ
ればならなくなり、該プロセッサの命令実行性能が低下
する問題が生じる。
When unnecessary memory accesses are successively performed for instruction fetching in this manner, not only the data access is delayed by that amount, but also the unnecessary memory accesses are applied to the access prohibited area. In this case, an interrupt occurs and the processor has to perform unnecessary processing, which causes a problem that the instruction execution performance of the processor deteriorates.

【0014】本発明の目的は、メモリから1回のアクセ
スで複数の命令を同時に読み出す形で命令のプリフェッ
チを進める一方で該プリフェッチした複数の命令を1命
令ずつプロセッサへ供給する命令プリフェッチ装置にお
いて、命令のプリフェッチのためのメモリアクセスを必
要最小限におさえることにある。
An object of the present invention is to provide an instruction prefetch device for supplying a plurality of prefetched instructions to the processor one by one while advancing the instruction prefetch in such a manner that a plurality of instructions are simultaneously read from a memory by one access. The purpose is to minimize memory access for prefetching instructions.

【0015】[0015]

【課題を解決するための手段】上記課題を解決するため
に本発明は、命令フェッチキューが分岐命令をプリフェ
ッチした場合には該分岐命令の分岐先アドレスが確定す
るまでプリフェッチを一時停止する構成を採用したもの
である。
In order to solve the above problems, the present invention has a configuration in which, when an instruction fetch queue prefetches a branch instruction, the prefetch is suspended until the branch destination address of the branch instruction is determined. It was adopted.

【0016】具体的に説明すると、本発明は、メモリか
ら次にプリフェッチすべき命令のアドレスを順次指定す
るためのアドレスジェネレータと、該アドレスジェネレ
ータにより指定されたアドレスから始まる連続した複数
のアドレスの命令の読み出しタイミングを与えるための
命令リード信号を順次メモリに対して出力するリード信
号ジェネレータと、命令リード信号がメモリに与えられ
る毎に該メモリから読み出される複数の命令を同時に読
み込み該読み込んだ複数の命令をアドレスの若い順に1
命令ずつ順次プロセッサへ供給する命令フェッチキュー
と、該命令フェッチキューが読み込んだ複数の命令の中
にアドレスに飛びを生じさせる分岐命令又はアドレスに
飛びを生じさせるおそれのある分岐命令が含まれている
かどうかを逐次検査しいずれかの分岐命令が含まれてい
ることを検出した場合には該分岐命令の分岐先アドレス
が確定するまでリード信号ジェネレータによる命令リー
ド信号の出力を一時停止させる飛び命令検出部とを備え
た構成を採用したものである。
More specifically, according to the present invention, an address generator for sequentially designating an address of an instruction to be prefetched next from a memory, and a plurality of consecutive address instructions starting from the address designated by the address generator. Read signal generator for sequentially outputting instruction read signals for giving read timings to the memory and a plurality of instructions read simultaneously from the memory each time the instruction read signal is given to the memory 1 in ascending order of address
Whether an instruction fetch queue for sequentially supplying instructions to the processor and a plurality of instructions read by the instruction fetch queue include a branch instruction that causes a jump in an address or a branch instruction that may cause a jump in an address If a branch instruction is detected by sequentially checking whether any branch instruction is included, the jump instruction detecting unit that temporarily stops the output of the instruction read signal by the read signal generator until the branch destination address of the branch instruction is determined. It adopts a configuration with and.

【0017】[0017]

【作用】上記本発明によれば、従来同様にアドレスジェ
ネレータとリード信号ジェネレータとのはたらきによっ
てメモリから1回のアクセスで複数の命令を同時に読み
出す形で命令フェッチキューへの命令の読み込みが進め
られる一方で、該読み込まれた複数の命令は命令フェッ
チキューからアドレスの若い順に1命令ずつ順次プロセ
ッサへ供給される。したがって、プリフェッチのための
メモリアクセス頻度が下がり、メモリへのデータアクセ
スが容易になる。
According to the present invention described above, while the address generator and the read signal generator work in the same manner as in the prior art, the instructions are read into the instruction fetch queue in such a manner that a plurality of instructions are simultaneously read from the memory with one access. Then, the plurality of read instructions are sequentially supplied to the processor one instruction at a time from the instruction fetch queue in ascending order of address. Therefore, the frequency of memory access for prefetch is reduced, and data access to the memory is facilitated.

【0018】ただし、飛び命令検出部は命令フェッチキ
ューが読み込んだ命令の中にアドレスに飛びを生じさせ
る分岐命令すなわち無条件分岐命令とアドレスに飛びを
生じさせるおそれのある分岐命令すなわち条件分岐命令
とのいずれかが含まれているかどうかを常に検査してお
り、いずれかの分岐命令が含まれている場合には、該検
査により含まれていると判定された分岐命令の分岐先ア
ドレスが確定するまでリード信号ジェネレータによる命
令リード信号の出力が一時停止させられるので、命令フ
ェッチキューへの命令の読み込みが中断する。したがっ
て、該分岐命令の後続アドレスの命令のプリフェッチが
抑制される。
However, the jump instruction detection unit includes a branch instruction that causes a jump in an address, that is, an unconditional branch instruction, and a branch instruction that may cause a jump in an instruction, that is, a conditional branch instruction, in the instructions read by the instruction fetch queue. Is always inspected. If any of the branch instructions is included, the branch destination address of the branch instruction determined to be included by the inspection is determined. Since the output of the instruction read signal by the read signal generator is temporarily stopped, the reading of the instruction into the instruction fetch queue is interrupted. Therefore, prefetching of the instruction at the subsequent address of the branch instruction is suppressed.

【0019】[0019]

【実施例】以下、本発明の実施例について図面を参照し
ながら説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0020】図1は、本発明の実施例に係る命令プリフ
ェッチ装置の構成を示したブロック図である。同図中の
メモリ1、命令フェッチキュー3、アドレスジェネレー
タ4及びリード信号ジェネレータ6は、各々従来と同様
の構成であるので詳細な説明は省略する。本実施例では
メモリ1と命令フェッチキュー3との間に飛び命令検出
部9が介在している点が従来とは異なる。メモリ1から
読み出される命令は全て飛び命令検出部9を通して命令
フェッチキュー3に読み込まれるのであって、該飛び命
令検出部9は、命令フェッチキュー3が読み込んだ命令
の中にアドレスに飛びを生じさせる無条件分岐命令又は
アドレスに飛びを生じさせるおそれのある条件分岐命令
が含まれているかどうかを逐次検査し、いずれかの分岐
命令が含まれていることを検出した場合には該分岐命令
の分岐先アドレスが確定するまでリード信号ジェネレー
タ6による命令リード信号7の出力を一時停止させるよ
うに飛び命令検出信号10を出力するものである。リー
ド信号ジェネレータ6は、飛び命令検出信号10がアク
ティブでない時のみ動作して命令リード信号7を出力す
るのである。
FIG. 1 is a block diagram showing the configuration of an instruction prefetch device according to an embodiment of the present invention. The memory 1, the instruction fetch queue 3, the address generator 4, and the read signal generator 6 in the figure each have the same configuration as the conventional one, and therefore detailed description thereof will be omitted. The present embodiment is different from the conventional one in that the jump instruction detecting unit 9 is interposed between the memory 1 and the instruction fetch queue 3. All the instructions read from the memory 1 are read into the instruction fetch queue 3 through the jump instruction detection unit 9, and the jump instruction detection unit 9 causes a jump in an address in the instructions read by the instruction fetch queue 3. An unconditional branch instruction or a conditional branch instruction that may cause a jump in the address is sequentially checked, and if any branch instruction is detected, the branch of the branch instruction is detected. The skip command detection signal 10 is output so that the output of the command read signal 7 from the read signal generator 6 is temporarily stopped until the destination address is fixed. The read signal generator 6 operates only when the jump instruction detection signal 10 is inactive and outputs the instruction read signal 7.

【0021】以上のように構成された本実施例の命令プ
リフェッチ装置の動作を、図2に示したタイミング図に
したがって順次説明する。ただし、初期状態では命令フ
ェッチキュー3の全ての命令格納領域が空であり、アド
レスライン5上のアドレスはnから始まるものとする。
また、命令リード信号7、命令出力信号8及び飛び命令
検出信号10は、いずれもLOWの時にアクティブであ
るものとする。さらに、メモリ1のアドレスn+4には
無条件分岐命令が格納されており、該メモリ1の他のア
ドレスには分岐命令以外の命令が格納されているものと
する。
The operation of the instruction prefetch device of this embodiment having the above configuration will be sequentially described with reference to the timing chart shown in FIG. However, in the initial state, all the instruction storage areas of the instruction fetch queue 3 are empty, and the address on the address line 5 starts from n.
The command read signal 7, the command output signal 8 and the jump command detection signal 10 are all active when LOW. Further, it is assumed that an unconditional branch instruction is stored in the address n + 4 of the memory 1 and an instruction other than the branch instruction is stored in another address of the memory 1.

【0022】まず、アドレスジェネレータ4がアドレス
ライン5を通してメモリ1にアドレスnを示した状態
で、リード信号ジェネレータ6がメモリ1に対する命令
リード信号7をLOWにする。すると、メモリ1からフ
ェッチライン2を通して2命令(n、n+1)が読み出
され、これら2命令が飛び命令検出部9を通して命令フ
ェッチキュー3に同時に読み込まれる。これらの2命令
はいずれも分岐命令ではないので、飛び命令検出信号1
0はHIGHを維持する。この後、命令出力信号8がL
OWになった時点で、既にプリフェッチされた2命令の
うちアドレスの最も若い1命令(n)が命令フェッチキ
ュー3から出力命令11としてプロセッサへ供給され
る。
First, the read signal generator 6 sets the instruction read signal 7 to the memory 1 to LOW while the address generator 4 indicates the address n to the memory 1 through the address line 5. Then, two instructions (n, n + 1) are read from the memory 1 through the fetch line 2, and these two instructions are simultaneously read into the instruction fetch queue 3 through the jump instruction detecting unit 9. Since none of these two instructions is a branch instruction, the jump instruction detection signal 1
0 maintains HIGH. After this, the command output signal 8 is L
At the time of reaching OW, one instruction (n) having the smallest address among the two prefetched instructions is supplied from the instruction fetch queue 3 to the processor as the output instruction 11.

【0023】命令(n)が出力命令11としてプロセッ
サへ供給された時点では命令フェッチキュー3に4命令
分の空き領域があるため、次の2命令のプリフェッチが
可能であり、リード信号ジェネレータ6は命令リード信
号7を再びLOWにすることができる。すなわち、命令
リード信号7がLOWになった時にはアドレスライン5
上のアドレスがn+2に更新されており、メモリ1から
次の2命令(n+2、n+3)が飛び命令検出部9を通
して命令フェッチキュー3にプリフェッチされる。ただ
し、これら2命令も分岐命令ではないので、飛び命令検
出信号10がLOWになることはない。そして、命令出
力信号8がLOWになった時には、既にプリフェッチさ
れた残りの命令のうちアドレスの最も若い1命令(n+
1)が命令フェッチキュー3から出力命令11としてプ
ロセッサへ供給される。
At the time when the instruction (n) is supplied to the processor as the output instruction 11, the instruction fetch queue 3 has an empty area for four instructions, so that the next two instructions can be prefetched, and the read signal generator 6 The instruction read signal 7 can be made LOW again. That is, when the instruction read signal 7 becomes LOW, the address line 5
The upper address is updated to n + 2, and the next two instructions (n + 2, n + 3) from the memory 1 are prefetched to the instruction fetch queue 3 through the jump instruction detection unit 9. However, since these two instructions are not branch instructions as well, the jump instruction detection signal 10 does not become LOW. Then, when the instruction output signal 8 becomes LOW, one instruction (n +) with the smallest address among the remaining prefetched instructions (n +
1) is supplied from the instruction fetch queue 3 to the processor as the output instruction 11.

【0024】命令(n+1)が出力命令11としてプロ
セッサへ供給された時点では命令フェッチキュー3に3
命令分の空き領域があるため、次の2命令のプリフェッ
チが可能であり、リード信号ジェネレータ6は命令リー
ド信号7を再びLOWにすることができる。すなわち、
命令リード信号7がLOWになった時にはアドレスライ
ン5上のアドレスがn+4に更新されており、メモリ1
から次の2命令(n+4、n+5)が飛び命令検出部9
を通して命令フェッチキュー3に同様にプリフェッチさ
れる。ただし、アドレスn+4の命令が無条件分岐命令
であるので、飛び命令検出部9はリード信号ジェネレー
タ6に対して飛び命令検出信号10をLOWにする。こ
の場合は命令フェッチキュー3に1命令分の空き領域し
か残っていないけれども、リード信号ジェネレータ6が
LOWレベルの飛び命令検出信号10を受けている間は
仮に該命令フェッチキュー3に2命令分の空き領域が確
保できた場合でも該リード信号ジェネレータ6がメモリ
1に対して命令リード信号7をLOWにすることはな
く、アドレスジェネレータ5はアドレスライン5上に更
新後のアドレスn+6を維持する。
When the instruction (n + 1) is supplied to the processor as the output instruction 11, 3 is stored in the instruction fetch queue 3.
Since there is an empty area for instructions, the next two instructions can be prefetched, and the read signal generator 6 can set the instruction read signal 7 to LOW again. That is,
When the instruction read signal 7 becomes LOW, the address on the address line 5 has been updated to n + 4.
From the next two instructions (n + 4, n + 5) are skipped
Is prefetched to the instruction fetch queue 3 in the same manner. However, since the instruction at address n + 4 is an unconditional branch instruction, the jump instruction detection unit 9 sets the jump instruction detection signal 10 to LOW for the read signal generator 6. In this case, only one instruction empty area remains in the instruction fetch queue 3, but while the read signal generator 6 receives the skip instruction detection signal 10 at the LOW level, the instruction fetch queue 3 temporarily stores two instructions. Even when the empty area can be secured, the read signal generator 6 does not set the instruction read signal 7 to the memory 1 to LOW, and the address generator 5 maintains the updated address n + 6 on the address line 5.

【0025】図2に示した例ではこの時点で命令出力信
号8が一時的にHIGHを維持するために命令フェッチ
キュー3はすぐにはプロセッサに命令を供給しないけれ
ども、時間が経過して次に命令出力信号8がLOWにな
った時には、既にプリフェッチされた残りの命令のうち
アドレスの最も若い1命令(n+2)が命令フェッチキ
ュー3から出力命令11として出力される。このように
して命令(n+2)が命令フェッチキュー3から出力命
令11としてプロセッサへ供給されると、命令フェッチ
キュー3に2命令分の空き領域ができる。ところが、こ
のようにして命令フェッチキュー3に2命令分の空き領
域ができても、前記のとおりリード信号ジェネレータ6
がLOWレベルの飛び命令検出信号10を受けている間
は従来と違って該リード信号ジェネレータ6がメモリ1
に対して命令リード信号7をHIGHに保持する。した
がって、該メモリ1から後続の2命令(n+6、n+
7)が命令フェッチキュー3に読み込まれることはな
く、プリフェッチのための無用のメモリアクセスが回避
される。
In the example shown in FIG. 2, since the instruction output signal 8 temporarily maintains HIGH at this point, the instruction fetch queue 3 does not immediately supply an instruction to the processor. When the instruction output signal 8 becomes LOW, one instruction (n + 2) with the smallest address among the remaining prefetched instructions is output from the instruction fetch queue 3 as the output instruction 11. In this way, when the instruction (n + 2) is supplied from the instruction fetch queue 3 to the processor as the output instruction 11, the instruction fetch queue 3 has a free space for two instructions. However, even if a space for two instructions is created in the instruction fetch queue 3 in this way, as described above, the read signal generator 6
Is receiving the LOW level jump instruction detection signal 10, the read signal generator 6 is different from the conventional one in the memory 1.
In response to this, the instruction read signal 7 is held HIGH. Therefore, the following two instructions (n + 6, n +
7) is not read into the instruction fetch queue 3 and unnecessary memory access for prefetch is avoided.

【0026】ただし、このように命令フェッチキュー3
への命令の読み込みが中断している間でも、既に該命令
フェッチキュー3にプリフェッチされた残りの命令のプ
ロセッサへの供給は続行される。すなわち、命令出力信
号8がLOWになる毎に命令(n+3)と命令(n+
4)とが各々1命令ずつ命令フェッチキュー3から出力
命令11として順次プロセッサへ供給されるのである。
そして、分岐命令である命令(n+4)がプロセッサに
より解読されると、該分岐命令の分岐先アドレス(ここ
ではアドレスmとする。)が確定する。このようにして
分岐先アドレスmが確定すると、飛び命令検出信号10
がHIGHにもどされ、アドレスジェネレータ4がアド
レスライン5を通してメモリ1に該分岐先アドレスmを
示す。そして、入力信号としての飛び命令検出信号10
がHIGHにもどされたリード信号ジェネレータ6は、
命令リード信号7の出力を再開する。
However, as described above, the instruction fetch queue 3
Even while the reading of the instruction to the processor is suspended, the supply of the remaining instructions prefetched to the instruction fetch queue 3 to the processor is continued. That is, every time the instruction output signal 8 becomes LOW, the instruction (n + 3) and the instruction (n +
4) are sequentially supplied to the processor from the instruction fetch queue 3 as output instructions 11 one by one.
When the instruction (n + 4), which is a branch instruction, is decoded by the processor, the branch destination address (here, address m) of the branch instruction is determined. When the branch destination address m is determined in this way, the jump instruction detection signal 10
Are returned to HIGH, and the address generator 4 indicates the branch destination address m to the memory 1 through the address line 5. Then, the jump instruction detection signal 10 as the input signal
The read signal generator 6, which has been returned to HIGH,
The output of the instruction read signal 7 is restarted.

【0027】このようにしてアドレスジェネレータ4が
メモリ1にアドレスmを示した状態でリード信号ジェネ
レータ6が命令リード信号7をLOWにすると、メモリ
1からフェッチライン2を通して2命令(m、m+1)
が読み出され、これら2命令が飛び命令検出部9を通し
て命令フェッチキュー3に同時に読み込まれる。そし
て、命令出力信号8がLOWになった時点でこのうちの
1命令(m)が命令フェッチキュー3から出力命令11
としてプロセッサへ供給される。ただし、先にプリフェ
ッチされた残りの命令(n+5)は、無効な命令として
捨てられる。なお、この後の動作は上記と同様である。
Thus, when the read signal generator 6 sets the instruction read signal 7 to LOW while the address generator 4 indicates the address m in the memory 1, two instructions (m, m + 1) are fetched from the memory 1 through the fetch line 2.
Are read, and these two instructions are simultaneously read into the instruction fetch queue 3 through the jump instruction detection unit 9. Then, when the instruction output signal 8 becomes LOW, one instruction (m) out of these is output from the instruction fetch queue 3
Is supplied to the processor as. However, the remaining prefetched instructions (n + 5) are discarded as invalid instructions. The operation thereafter is the same as above.

【0028】以上のとおり、本実施例の命令プリフェッ
チ装置によれば、従来同様にメモリ1から2命令が同時
にプリフェッチされるのでプロセッサが1命令ずつフェ
ッチする場合に比べて命令フェッチのためのメモリアク
セス頻度が下がり、相対的にメモリ1へのデータアクセ
スが容易になる。しかも、命令フェッチキュー3に読み
込まれた命令の中に分岐命令が含まれている場合には、
該分岐命令の分岐先アドレスが確定するまでリード信号
ジェネレータ6による命令リード信号7の出力が一時停
止させられてメモリ1から命令フェッチキュー3への命
令の読み込みが中断する。したがって、該分岐命令の後
続アドレスの命令のプリフェッチが抑制される。
As described above, according to the instruction prefetch apparatus of the present embodiment, since two instructions from the memories 1 and 2 are simultaneously prefetched as in the conventional case, memory access for instruction fetch is performed as compared with the case where the processor fetches one instruction at a time. The frequency decreases, and the data access to the memory 1 becomes relatively easy. Moreover, if the instruction read into the instruction fetch queue 3 includes a branch instruction,
The output of the instruction read signal 7 from the read signal generator 6 is temporarily stopped until the branch destination address of the branch instruction is determined, and the reading of the instruction from the memory 1 to the instruction fetch queue 3 is interrupted. Therefore, prefetching of the instruction at the subsequent address of the branch instruction is suppressed.

【0029】なお、本実施例では命令フェッチキュー3
の容量を5命令分としたが、2命令分以上であれば任意
の容量を選択することができる。また、命令フェッチキ
ュー3が既に読み込んだ命令の中に分岐命令が含まれて
いるかどうかを検査するに際して、飛び命令検出部9が
命令フェッチキュー3の内部のどの位置にある命令を検
査するかは分岐命令の処理方法に応じて任意である。飛
び命令検出部9が命令フェッチキュー3への無条件分岐
命令の読み込みを検出した場合には飛び命令検出部9自
身が該無条件分岐命令を解読して分岐先アドレスを確定
させ、該分岐先アドレスについて直ちにプリフェッチを
再開する構成を採用してもよい。
In this embodiment, the instruction fetch queue 3
Although the capacity of 5 is for 5 instructions, any capacity can be selected as long as it is for 2 instructions or more. Further, when checking whether or not a branch instruction is included in the instructions that the instruction fetch queue 3 has already read, which position in the instruction fetch queue 3 the jump instruction detection unit 9 checks is determined. It is arbitrary depending on the processing method of the branch instruction. When the jump instruction detecting unit 9 detects the reading of the unconditional branch instruction into the instruction fetch queue 3, the jump instruction detecting unit 9 itself decodes the unconditional branch instruction to determine the branch destination address, and the branch destination A configuration may be adopted in which prefetch is restarted immediately for an address.

【0030】[0030]

【発明の効果】以上説明してきたように本発明によれ
ば、メモリから1回のアクセスで複数の命令を同時に命
令フェッチキューへ読み出す形で命令のプリフェッチを
進める一方で該プリフェッチした複数の命令を命令フェ
ッチキューから1命令ずつプロセッサへ供給する命令プ
リフェッチ装置において、命令フェッチキューが分岐命
令をプリフェッチした場合には該分岐命令の分岐先アド
レスが確定するまでプリフェッチを一時停止する構成を
採用したので、該分岐命令の後続アドレスの命令の無用
のプリフェッチが抑制され、命令のプリフェッチのため
のメモリアクセスが必要最小限におさえられる。したが
って、プリフェッチのための無用のメモリアクセスの実
行を原因とするデータアクセスの遅れが防止でき、メモ
リへのデータアクセスが容易になる。また、メモリアク
セスがアクセス禁止領域にかかってしまったときにプロ
セッサへの割込みが発生するシステムに本発明に係る命
令プリフェッチ装置が使用された場合であっても、該割
込みの発生がおさえられてプロセッサの命令実行性能が
向上する。
As described above, according to the present invention, while prefetching an instruction by advancing a plurality of instructions simultaneously from the memory to the instruction fetch queue with one access, the plurality of prefetched instructions are In the instruction prefetch device that supplies instructions from the instruction fetch queue to the processor one by one, when the instruction fetch queue prefetches a branch instruction, the prefetch is temporarily stopped until the branch destination address of the branch instruction is determined. Unnecessary prefetch of the instruction at the address subsequent to the branch instruction is suppressed, and the memory access for prefetching the instruction is minimized. Therefore, it is possible to prevent a delay in data access due to execution of unnecessary memory access for prefetch, and facilitate data access to the memory. Further, even when the instruction prefetch device according to the present invention is used in a system in which an interrupt to the processor occurs when the memory access occurs in the access prohibited area, the occurrence of the interrupt is suppressed and the processor Instruction execution performance is improved.

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

【図1】 本発明の実施例に係る命令プリフェッチ装置
の構成を示したブロック図である。
FIG. 1 is a block diagram showing a configuration of an instruction prefetch device according to an embodiment of the present invention.

【図2】 図1の命令プリフェッチ装置の動作を説明す
るためのタイミング図である。
FIG. 2 is a timing diagram illustrating an operation of the instruction prefetch device shown in FIG.

【図3】 従来の命令プリフェッチ装置の構成を示した
ブロック図である。
FIG. 3 is a block diagram showing a configuration of a conventional instruction prefetch device.

【図4】 図3の命令プリフェッチ装置の動作を説明す
るためのタイミング図である。
FIG. 4 is a timing diagram illustrating an operation of the instruction prefetch device of FIG.

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

1…メモリ 2…フェッチライン 3…命令フェッチキュー 4…アドレスジェネレータ 5…アドレスライン 6…リード信号ジェネレータ 7…命令リード信号 8…命令出力信号 9…飛び命令検出部 10…飛び命令検出信号 11…出力命令 1 ... Memory 2 ... Fetch line 3 ... Instruction fetch queue 4 ... Address generator 5 ... Address line 6 ... Read signal generator 7 ... Instruction read signal 8 ... Instruction output signal 9 ... Jump instruction detector 10 ... Jump instruction detection signal 11 ... Output order

Claims (1)

【特許請求の範囲】 【請求項1】 メモリから次にプリフェッチすべき命令
のアドレスを順次指定するためのアドレスジェネレータ
と、 該アドレスジェネレータにより指定されたアドレスから
始まる連続した複数のアドレスの命令の読み出しタイミ
ングを与えるための命令リード信号を順次前記メモリに
対して出力するリード信号ジェネレータと、 前記命令リード信号が前記メモリに与えられる毎に該メ
モリから読み出される複数の命令を同時に読み込み、該
読み込んだ複数の命令をアドレスの若い順に1命令ずつ
順次プロセッサへ供給する命令フェッチキューと、 該命令フェッチキューが読み込んだ複数の命令の中にア
ドレスに飛びを生じさせる分岐命令又はアドレスに飛び
を生じさせるおそれのある分岐命令が含まれているかど
うかを逐次検査し、いずれかの分岐命令が含まれている
ことを検出した場合には該分岐命令の分岐先アドレスが
確定するまで前記リード信号ジェネレータによる命令リ
ード信号の出力を一時停止させる飛び命令検出部とを備
えたことを特徴とする命令プリフェッチ装置。
Claim: What is claimed is: 1. An address generator for sequentially designating an address of an instruction to be prefetched next from a memory, and reading of instructions at a plurality of consecutive addresses starting from an address designated by the address generator. A read signal generator that sequentially outputs an instruction read signal for giving timing to the memory, and a plurality of instructions read simultaneously from the memory each time the instruction read signal is given to the memory, and the read plurality The instruction fetch queue that sequentially supplies the instructions to the processor one instruction at a time in ascending order of address, and a branch instruction that causes an address jump among a plurality of instructions read by the instruction fetch queue or a risk that an address jump may occur. Whether a branch instruction is included When the next inspection is performed and it is detected that any of the branch instructions is included, the jump instruction detecting unit that temporarily stops the output of the instruction read signal by the read signal generator until the branch destination address of the branch instruction is determined. An instruction prefetch device comprising:
JP17827391A 1991-07-18 1991-07-18 Instruction prefetch device Withdrawn JPH0527972A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17827391A JPH0527972A (en) 1991-07-18 1991-07-18 Instruction prefetch device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17827391A JPH0527972A (en) 1991-07-18 1991-07-18 Instruction prefetch device

Publications (1)

Publication Number Publication Date
JPH0527972A true JPH0527972A (en) 1993-02-05

Family

ID=16045593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17827391A Withdrawn JPH0527972A (en) 1991-07-18 1991-07-18 Instruction prefetch device

Country Status (1)

Country Link
JP (1) JPH0527972A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013121516A1 (en) 2012-02-14 2013-08-22 ルネサスエレクトロニクス株式会社 Data processing device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013121516A1 (en) 2012-02-14 2013-08-22 ルネサスエレクトロニクス株式会社 Data processing device
US9542190B2 (en) 2012-02-14 2017-01-10 Renesas Electronics Corporation Processor with fetch control for stoppage

Similar Documents

Publication Publication Date Title
US20020038415A1 (en) Processor architecture with independently addressable memory banks for storing instructions to be executed
JP2015184706A (en) Semiconductor device and command reading control method
JPH0527972A (en) Instruction prefetch device
KR970012141A (en) Data processing device performing pipeline processing
JP2694799B2 (en) Information processing device
JPH02287828A (en) Prefetch control system
CN111782272B (en) Execution control method and device for repeated program in VLIW processor
JPH0342723A (en) Data processor
JPH06149569A (en) Register number changing device
JPH0287229A (en) Prefetch control system for execution instruction
JP2001022577A (en) Information processor
JPS5952349A (en) Instruction pre-fetch controller
JP3476314B2 (en) Microprocessor
JPH0646381B2 (en) Instruction fetching device
JP2506591B2 (en) Auxiliary processor
KR100632317B1 (en) Method and system for buffering instructions in processor
JP2766114B2 (en) Instruction prefetch device
JPS60123935A (en) Information processor
JPH05143362A (en) Interruption processing system
JPH0774992B2 (en) Data processing device
JPH027128A (en) Information processor
JPH08286914A (en) Memory controller
JPH02278428A (en) Branch control system
JPH08212068A (en) Information processor
JPH04213727A (en) Information processor

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19981008