JPH04145531A - Microprogram controller - Google Patents

Microprogram controller

Info

Publication number
JPH04145531A
JPH04145531A JP26669190A JP26669190A JPH04145531A JP H04145531 A JPH04145531 A JP H04145531A JP 26669190 A JP26669190 A JP 26669190A JP 26669190 A JP26669190 A JP 26669190A JP H04145531 A JPH04145531 A JP H04145531A
Authority
JP
Japan
Prior art keywords
address
branch
instruction
code
prefetch queue
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
JP26669190A
Other languages
Japanese (ja)
Inventor
Shinichi Okugawa
奥川 伸一
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP26669190A priority Critical patent/JPH04145531A/en
Publication of JPH04145531A publication Critical patent/JPH04145531A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To make the processing speed of the title controller faster by providing an address code conversion table which stores branched instruction codes by the amount of a prefetch queue. CONSTITUTION:An address code conversion table 2 is composed of a code section having a width equal to the maximum number of bytes contained in a prefetch queue and an address section for storing addresses of branch instructions. When coincidence is found between the content of a program counter register 8 and one of the addresses stored in the address section of the table 2 as a result of comparison, the branched instruction codes stored in the code section of the table 2 is transferred to prefetch registers 4-6. When the address of a branch instruction hit the table 2 in such way, the prefetch queue becomes ready without fetching operations. Therefore, the time loss required for making prefetch queue correcting work at the time of executing branch can be minimized and the execution performance of the system can be improved.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプログラム制御装置に係シ、特に命令
コードのプリフエッチキューを持ち、パイプライン制御
を行うマイクロプログラム制御装置に関するものである
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a microprogram control device, and more particularly to a microprogram control device that has an instruction code prefetch queue and performs pipeline control.

〔従来の技術〕[Conventional technology]

従来、ブリフェッチ制御を行なうマイクロプログラム制
御装置においては、ブランチ動作を行なう場合ブリフエ
ツデされ念命令は全て無効となう、改めてブランチ先の
命令を7エツチしてブリ7エツデキユーにセットすると
いう動作を行なうのが一般的であった。
Conventionally, in a microprogram control device that performs briefetch control, when a branch operation is performed, the brief is fetched and all pre-instructions are invalidated. was common.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上述したような、ブランチ動作を行うたびに、プリフェ
ッチキューにセットする命令コードの再フエツチ動作が
必要になるマイクロプログラム制御装置では、ブランチ
時のオーバーヘッドが大きいため、特にループなどを多
用してあシブランチを行なう頻度が高いプログラムを動
かすと処理速度が遅くなるという課題があった。
In the microprogram control device described above, which requires re-fetching the instruction code set in the prefetch queue every time a branch operation is performed, the overhead during branching is large. There was a problem in that the processing speed slowed down when running a program that frequently performed .

〔課題を解決するための手段〕[Means to solve the problem]

本発明のマイクロプログラム制御装置は、命令コードの
グリ7エツチキユーを持ち、パイプライン制御を行うマ
イクロプログラム制御装置K>いて、上記プリフェッチ
キューに入れられる最大バイト数分の幅を持つコード部
と、ブランチ命令のアドレスを格納するアドレス部から
なるブランチ用アドレス−コード変換テーブル金持ち、
ブランチ命令が出現してブランチを実行する際、上記ア
ドレス−コード変換テーブルのアドレス部を検索してそ
のブランチ命令のアドレスと一致するものがあるかどう
か調べ、一致するものがなかった場合a通常どおりブラ
ンチ先の命令を7エツチしてプリフェッチキューにセッ
トし直すという作業を行うようになしこれと同時にこの
アドレス−コード変換テーブルの1つのエントリーをと
ってそのアドレス部にはこのブランチ命令のアドレスを
The microprogram control device of the present invention has an instruction code grid, a microprogram control device K> that performs pipeline control, a code portion having a width corresponding to the maximum number of bytes that can be put in the prefetch queue, and a branch. A branch address-code conversion table consisting of an address field that stores the address of an instruction;
When a branch instruction appears and the branch is executed, the address part of the above address-code conversion table is searched to see if there is an address that matches the address of the branch instruction, and if there is no match, proceed as usual. The branch destination instruction is fetched seven times and set back into the prefetch queue.At the same time, one entry is taken from this address-code conversion table and the address of this branch instruction is written in the address field.

コード部にはそのプリフエッチキューにセラトスるブラ
ンチ先の命令コードをそれぞれ格納し、検索の結果一致
するものがあった場合は上記アドレス−コード変換テー
ブルのコード部をとシ出し、そのフェッチキューにセッ
トすることによシ、プリフェッチキュー分の7工ツチ時
間を省略してブランチ動作をすばやく行うようにしたも
のである。
The code section stores each instruction code of the branch destination to be Seratosed in its prefetch queue, and if a match is found as a result of the search, extracts the code section from the address-code conversion table mentioned above, and stores it in the fetch queue. By setting this to , the 7-step time required for the prefetch queue is omitted and the branch operation can be performed quickly.

〔作用〕[Effect]

本発明においては、システムの実行性能に大きく関与す
るブランチ命令の実行速度に関して、ブランチ先命令の
コードをプリフエッチキューの分だけ格納するアドレス
−コード変換テーブルを持つことによシ、ブランチ実行
時におけるプリフェッチキュー補正作業の時間のロスを
最小限におさえる。
In the present invention, with respect to the execution speed of branch instructions, which greatly affects the execution performance of the system, by having an address-code conversion table that stores the code of the branch destination instruction for the number of prefetch queues, it is possible to To minimize time loss during prefetch queue correction work.

〔実施例〕〔Example〕

以下、図面に基づき本発明の実施例を詳細に説明する。 Embodiments of the present invention will be described in detail below based on the drawings.

図は本発明の一実施例を示すブロック図である。The figure is a block diagram showing one embodiment of the present invention.

図において、1aは本発明を適用したマイクロプログラ
ム制御装置、1bは外部からのデータが印加される入力
端子、2はプリフェッチキューに入れられる最大バイト
数分の@金持つコード部と。
In the figure, 1a is a microprogram control device to which the present invention is applied, 1b is an input terminal to which data from the outside is applied, and 2 is a code section that has the maximum number of bytes that can be placed in the prefetch queue.

ブランチ命令のアドレスを格納するアドレス部からなる
ブランチ用アドレス−コード変換テーブル、3はこのア
ドレス−コード変換テーブル2を管理する変換テーブル
管理ブロック、4,5.6は命令コードのプリフェッチ
レジスタ、Tは現在実行中の命令が入っているカレント
命令レジスタ、8は実行中命令のアドレスを示すプログ
ラムカウンタが格納しであるプログラムカウンタレジス
タ、9はブランチ命令が発行されたときその条件を判定
してブランチを行なうか行なわないかを判断するブラン
チ条件判定ブロック、10は外部から与えられる命令コ
ードをプリフェッチレジスタ4やアドレス−コード変換
テーブル2に伝える命令コードバスである。
A branch address-code conversion table consisting of an address section that stores the address of a branch instruction, 3 a conversion table management block that manages this address-code conversion table 2, 4, 5.6 a prefetch register for instruction codes, and T a The current instruction register contains the currently executing instruction. 8 is the program counter register that stores the program counter indicating the address of the currently executing instruction. 9 is the program counter register that stores the program counter indicating the address of the currently executing instruction. 9 determines the condition when a branch instruction is issued and executes the branch. A branch condition determination block 10 is used to determine whether or not to execute a branch, and 10 is an instruction code bus that transmits an externally applied instruction code to a prefetch register 4 and an address-code conversion table 2.

なお、プリフェッチレジスタ4,5.6で3段のプリフ
エッチキューを形成している。
Note that the prefetch registers 4, 5, and 6 form a three-stage prefetch queue.

そして、ブランチ命令が出現してブランチを実行する際
、アドレス−コード変換テーブル2のアドレス部を検索
してそのブランチ命令のアドレスと一致するものがある
かどうか調べ、一致するものがなかつ念場合は通常どお
りブランチ先の命令をフェッチしてプリフェッチキュー
にセットし直すという作業を行うようになしこれと同時
にこのアドレス−コード変換テーブル201つのエント
リーをとってそのアドレス部にはこのブランチ命令のア
ドレスを、コード部にはそのプリフエッチキューにセッ
トするブランチ先の命令コードをそれぞれ格納し、検索
の結果一致するものがあった場合はアドレス−コード変
換テーブル2のコード部をとシ出し、そのプリフェッチ
キューにセットすることによシ、プリフェッチキュー分
の7工ツチ時間を省略してブランチ動作をすばやく行う
ように構成されている。
When a branch instruction appears and the branch is executed, the address part of the address-code conversion table 2 is searched to see if there is an address that matches the address of the branch instruction, and if there is no match, The branch destination instruction is fetched and set in the prefetch queue as usual, and at the same time, one entry is taken in the address-code conversion table 20, and the address of this branch instruction is written in the address field. The code section stores each branch destination instruction code to be set in the prefetch queue, and if a match is found as a result of the search, the code section of address-code conversion table 2 is extracted and the prefetch queue is By setting this, the configuration is such that the seven processing time required for the prefetch queue is omitted and the branch operation is performed quickly.

つぎにこの図に示す実施例の動作全説明する。Next, the entire operation of the embodiment shown in this figure will be explained.

まず、ブランチ命令以外の通常命令を実行しているとき
は、プリフェッチした命令はまずプリフェッチレジスタ
4にセットされ、カレント命令レジスタγにセットしで
ある命令の実行が終了するごとに、プリ7エツチレジス
タ4→プリフエツチレジスタ5→プリ7エツチレジスタ
6→カレント命令レジスタγと転送され、カレント命令
レジスタ7にセットされた時点でその命令の実行が始ま
る。
First, when a normal instruction other than a branch instruction is being executed, the prefetched instruction is first set in prefetch register 4, and then set in current instruction register γ. 4→prefetch register 5→prefetch register 6→current instruction register γ, and when set in current instruction register 7, execution of the instruction starts.

つffK、カレント命令レジスタTにセットされた命令
が条件ブランチ命令であった場合を説明する。まずブラ
ンチ条件判定ブロック9で条件が成立したか否かを判定
し、不成立の場合は従来どおりプリフェッチレジスタ6
から次の命令をカレント命令レジスタ7に転送し、その
命令の実行に入る。一方、条件が成立した場合には、変
換チーフル管理ブロック3にその旨を伝え、そのブラン
チ命令のアドレスがセットされであるプログラムカウン
タレジスタ8の内容を読みとってアドレス−コード変換
テーブル2のアドレス部との比較を行なう。そこでもし
一致するものがなかった場合は、従来の装置と同様ブラ
ンチ先の゛アドレスを計算し命令をフェッチしてプリフ
ェッチレジスタ4にセットするが、その際アドレス−コ
ード変換テーブル2の1つのエントリーをとってそのコ
ード部の(A)フィールドにもセットする。ここで、本
し、アドレスコード変換テーブル2が満杯だつ恵ときは
、最も古くエントリーされたものを追い出して使用する
。そして、さらに続ぐ2命令を7エツチして、その都度
プリフェッチレジスタ4→プリ7エツチレジスタ5→プ
リフエツチレジスタ6の転送をやりながらフェッチした
命令をプリフェッチレジスタ4にセットするが、これと
同時にアドレス−コード変換テーブル2のコード部の(
B)フィールドおよび(C)フィールドにもセットする
。また、そのエントリーのアドレス部にはブランチ命令
のアドレスをセットしておく。
ffK, the case where the instruction set in the current instruction register T is a conditional branch instruction will be explained. First, the branch condition judgment block 9 judges whether the condition is satisfied or not, and if the condition is not satisfied, the prefetch register 6
The next instruction is transferred to the current instruction register 7, and execution of that instruction begins. On the other hand, if the condition is met, this is communicated to the conversion master management block 3, which reads the contents of the program counter register 8 in which the address of the branch instruction is set and converts it into the address part of the address-code conversion table 2. Let's compare. If there is no match, the address of the branch destination is calculated, the instruction is fetched, and the instruction is set in the prefetch register 4, as in conventional devices.At this time, one entry in the address-code conversion table 2 is Also set it in the (A) field of the code section. Here, when the address code conversion table 2 is full, the oldest entry is removed and used. Then, the following two instructions are fetched 7 times, and the fetched instructions are set in prefetch register 4 while transferring from prefetch register 4 to prefetch register 5 to prefetch register 6, but at the same time. Code part of address-code conversion table 2 (
Also set in the B) field and the (C) field. Further, the address of the branch instruction is set in the address field of the entry.

以上でプリフェッチキューの準備が完了し、プリフェッ
チレジスタ6の命令をカレント命令レジスタ7へ転送し
て実行を再開する。
The preparation of the prefetch queue is thus completed, and the instruction in the prefetch register 6 is transferred to the current instruction register 7 to resume execution.

一方、プログラムカウンタレジスタ8とアドレス−コー
ド変換テーブル2のアドレス部の比較で一致したものが
あるときは、そのエントリーコード部にブランチ先の命
令コードが3命令分格納しであるため、それをプリフェ
ッチキューに転送する。すなわち、コード部の(A)フ
ィールドの内容をプリフェッチレジスタ6へ、 (B)
フィールドの内容をプリフェッチレジスタ5へ、(C)
フィールドの内容をプリフェッチレジスタ4へ同時に転
送することにより、プリフェッチキューの準備が1ステ
ツプ完了する。
On the other hand, if there is a match between the address part of the program counter register 8 and the address-code conversion table 2, the instruction code of the branch destination is stored in the entry code part for three instructions, so it is prefetched. Transfer to queue. That is, the contents of the (A) field of the code section are sent to the prefetch register 6, (B)
Field contents to prefetch register 5, (C)
By simultaneously transferring the contents of the fields to the prefetch register 4, one step of preparing the prefetch queue is completed.

このように、ブランチ命令のアドレスが変換テーブルに
ヒツトしたときはフェッチ動作、すなわち、メモリアク
セスなしにプリフエッチキューの準備が即完了するため
、ブランチ実行時のロスが最小限で済む。特にループ動
作のように同じ箇所のブランチ命令で何度もブランチす
るような場合はヒツト率がかなシ高ぐな夛有効である。
In this way, when the address of a branch instruction hits the translation table, the fetch operation, that is, the preparation of the prefetch queue is immediately completed without memory access, so that losses during branch execution can be minimized. This method is especially effective in cases where the branch instruction at the same location branches many times, such as in a loop operation, where the hit rate is very high.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発E!Aは、システムの実行性能
に大きく関与するブランチ命令の実行速度に関して、ブ
ランチ先命令のコードをプリ7エツテキユーの分だけ格
納するアドレスコード変換テーブルを持つことにより、
ブランチ実行時におけるプリフェッチキュー補正作業の
時間のロスを最小限におさえ、システムの実行性能を大
幅に向上することができる効果がある。
As explained above, the original E! Regarding the execution speed of branch instructions, which greatly affects the execution performance of the system, A has an address code conversion table that stores the code of the branch destination instruction by 7 times.
This has the effect of minimizing time loss in prefetch queue correction work during branch execution, and greatly improving system execution performance.

【図面の簡単な説明】[Brief explanation of the drawing]

図は本発明の一実施例を示すブロック図である。 2・・・・ブランチ用アドレス−コード変換チーフル、
3・・φ・変換テーブル管理ブロック、4〜6・・・拳
プリフェッチレジスタ、7・・・・カレント命令レジス
タ、8・・・・プログラムカウンタレジスタ、9・−・
・ブランチ条件判定ブロック、10・・・・命令コード
バス。 特ト出願人  日本電気株式会社
The figure is a block diagram showing one embodiment of the present invention. 2...Branch address-code conversion chifur,
3... φ Conversion table management block, 4 to 6... Fist prefetch register, 7... Current instruction register, 8... Program counter register, 9...
- Branch condition judgment block, 10... instruction code bus. Special applicant: NEC Corporation

Claims (1)

【特許請求の範囲】[Claims] 命令コードのプリフエッチキューを持ち、パイプライン
制御を行うマイクロプログラム制御装置において、前記
プリフエッチキューに入れられる最大バイト数分の幅を
持つコード部と、ブランチ命令のアドレスを格納するア
ドレス部からなるブランチ用アドレスコード変換テーブ
ルを持ち、ブランチ命令が出現してブランチを実行する
際、前記アドレス−コード変換テーブルのアドレス部を
検索してそのブランチ命令のアドレスと一致するものが
あるかどうか調べ、一致するものがなかった場合は通常
どおりブランチ先の命令をフェッチしてプリフエッチキ
ューにセットし直すという作業を行うようになしこれと
同時にこのアドレス−コード変換テーブルの1つのエン
トリーをとってそのアドレス部にはこのブランチ命令の
アドレスを、コード部にはそのプリフエッチキューにセ
ットするブランチ先の命令コードをそれぞれ格納し、検
索の結果一致するものがあった場合は前記アドレス−コ
ード変換テーブルのコード部をとり出し、そのプリフエ
ッチキューにセットすることにより、プリフエッチキュ
ー分のフェッチ時間を省略してブランチ動作をすばやく
行うようにしたことを特徴とするマイクロプログラム制
御装置。
In a microprogram control device that has a prefetch queue for instruction codes and performs pipeline control, the code portion has a width corresponding to the maximum number of bytes that can be placed in the prefetch queue, and the address portion stores the address of a branch instruction. When a branch instruction appears and the branch is executed, the address part of the address-code conversion table is searched to see if there is an address that matches the address of the branch instruction. If there is no match, the instruction at the branch destination is fetched and set in the prefetch queue as usual.At the same time, one entry of this address-code conversion table is taken. The address field stores the address of this branch instruction, and the code field stores the instruction code of the branch destination to be set in the prefetch queue. If a match is found as a result of the search, the address-code conversion is performed. A microprogram control device characterized in that a code section of a table is taken out and set in the prefetch queue, thereby omitting the fetch time corresponding to the prefetch queue and quickly performing a branch operation.
JP26669190A 1990-10-05 1990-10-05 Microprogram controller Pending JPH04145531A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26669190A JPH04145531A (en) 1990-10-05 1990-10-05 Microprogram controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26669190A JPH04145531A (en) 1990-10-05 1990-10-05 Microprogram controller

Publications (1)

Publication Number Publication Date
JPH04145531A true JPH04145531A (en) 1992-05-19

Family

ID=17434352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26669190A Pending JPH04145531A (en) 1990-10-05 1990-10-05 Microprogram controller

Country Status (1)

Country Link
JP (1) JPH04145531A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206006A (en) * 2012-03-27 2013-10-07 Fujitsu Ltd Processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0195331A (en) * 1987-10-08 1989-04-13 Fujitsu Ltd System for processing pipe line

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0195331A (en) * 1987-10-08 1989-04-13 Fujitsu Ltd System for processing pipe line

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206006A (en) * 2012-03-27 2013-10-07 Fujitsu Ltd Processor

Similar Documents

Publication Publication Date Title
US4648034A (en) Busy signal interface between master and slave processors in a computer system
JP2504830Y2 (en) Data processing device
JPH0242569A (en) Context switching method and apparatus used for vector processing system
JPH0215369A (en) Method and apparatus for executing instruction of vector processing system
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JPH0769812B2 (en) Data processing device
US5197136A (en) Processing system for branch instruction
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH04145531A (en) Microprogram controller
JPS6273333A (en) Emulation control system
WO1984000833A1 (en) Pre-execution next address calculating mechanism
JPH0326862B2 (en)
EP0315995B1 (en) Processing system for branch instruction
JPH0248733A (en) Information processor
JPS60231241A (en) Program advance fetch control system
JP2586690B2 (en) Instruction prefetch device
JP3625586B2 (en) Processor instruction execution control system
JPH02100740A (en) Block loading operation system for cache memory unit
JP3414579B2 (en) Programmable controller
JP2768878B2 (en) Data processing device, method for synchronizing instruction execution, method for saving instruction address when exception occurs, and method for invalidating instruction processing when exception occurs
JPH04167026A (en) Branching controller
JPH0514288B2 (en)
JPH03102523A (en) Branch control system for information processor
JPH01126733A (en) Information processor
JPH04317130A (en) Data processor