JPS6395538A - Control system for instruction processing order - Google Patents

Control system for instruction processing order

Info

Publication number
JPS6395538A
JPS6395538A JP24163486A JP24163486A JPS6395538A JP S6395538 A JPS6395538 A JP S6395538A JP 24163486 A JP24163486 A JP 24163486A JP 24163486 A JP24163486 A JP 24163486A JP S6395538 A JPS6395538 A JP S6395538A
Authority
JP
Japan
Prior art keywords
instruction
branch
execution
instructions
supplied
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.)
Granted
Application number
JP24163486A
Other languages
Japanese (ja)
Other versions
JPH0668722B2 (en
Inventor
Naoki Nishi
直樹 西
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 JP61241634A priority Critical patent/JPH0668722B2/en
Publication of JPS6395538A publication Critical patent/JPS6395538A/en
Publication of JPH0668722B2 publication Critical patent/JPH0668722B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To shorten the processing time with the titled control system by reusing an instruction sequence that is already executed as an instruction group to be applied to an arithmetic part. CONSTITUTION:A read address generating part 25 produces an address to read out successively a stored 1st executing instruction sequence and supplies this sequence to an instruction group selecting part 21. Each instruction of the 1st executing instruction sequence receives a branch information tag and is supplied to an instruction executing order deciding application part 3 to be rearranged here into a 2nd executing instruction sequence. This 2nd sequence is stored in a memory part 41 in place of the 1st sequence by the address supplied from a write address generating part 24. In such a way, the instruction executing order of a group of instruction already executed is reused to decide the instruction executing order. Thus the processing time is shortened with a control system for instruction processing order.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラムの命令順序によらず命令実行順序を
決定する命令処理順序制御方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an instruction processing order control method that determines the instruction execution order regardless of the order of instructions in a program.

〔従来の技術〕[Conventional technology]

従来より命令処理の高速化を目的とした、命令処理順序
を動的に決定しプログラムで指定された順序によらず演
算部に命令投入を行う方式が用いられている。(例えば
IBM360/’91浮動小数処理装置:デー・ダブリ
ュー・アンダーンン、エフ・リュー・スパラチオ、エフ
・エム・トマスロ著°゛ザ アイビーエム システム、
/ 360モデル91:マシンフィロソフィ アンド 
インス1〜ラクション ハンドリング°°アイビーエム
 ジャーナル オン リサーチ アンド デベロプメン
Iへ、8−24頁、1号、11巻、1967年1月(D
、W、Anderson、 F、J、5paracio
、F、M、Tomasulo、The IBM 5ys
t、em/360 Mode1月:Machine P
h1lo−sopby  and  In5truct
、ioo  Haodling″ IBM  Jour
nalof Re5earch & Developm
ent+PP、8−24 、N(L 1、Voe 、1
1 、Jan1967):エフ・ワイズ、リュー・イー
・スミス著゛インストラクション イッシュロジック 
フォー パイブラインド スーパーコンピュータズ″第
11回アニュアル インタナショナルシンポジウム オ
ン コンピュータ アーキテクチャ、110−118頁
、1984(S。
Conventionally, for the purpose of speeding up instruction processing, a method has been used in which the instruction processing order is dynamically determined and instructions are input to an arithmetic unit regardless of the order specified in the program. (For example, IBM 360/'91 floating point processor: The IBM System, written by D.W. Anderson, F.L. Sparacio, and F.M. Tomasulo,
/ 360 Model 91: Machine Philosophy and
Ins 1~Raction Handling°°IBM Journal on Research and Development I, pp. 8-24, No. 1, Volume 11, January 1967 (D
, W. Anderson, F. J., 5paracio.
, F., M., Tomasulo, The IBM 5ys
t, em/360 Mode January: Machine P
h1lo-sopby and In5truct
, ioo Haodling'' IBM Jour
nalof Re5earch & Develop
ent+PP, 8-24, N(L 1, Voe, 1
1, Jan 1967): ``Instruction Ish Logic'' written by F. W. and Liu E. Smith.
"Four Pie Blind Supercomputers" 11th Annual International Symposium on Computer Architecture, pp. 110-118, 1984 (S.

Weiss  、  J、E、Sm1th   ”In
5truct、ion  l5sue  Logicf
or Pipelined Supercompute
rs”’ 11th AnnualInternati
onal Sy+nposiun+ on Compu
ter^rchitecure、l’l’、110−1
18、+9114 ))。
Weiss, J.E., Sm1th”In
5truct, ion l5sue Logicf
or Pipelined Supercompute
rs"' 11th Annual International
onal Sy+nposiun+ on Compu
ter^architecure, l'l', 110-1
18, +9114 )).

これら命令処理順序制御を行う計算機では、命令の入出
力オペランドの衝突および演算器の使用可能状況を判定
しプログラムで指定された順序によらず演算部への命令
投入を決定する手段を有している、以ド、この手段を実
行待機キューと呼ぶ。
These computers that control the order of instruction processing have a means to determine the conflict between instruction input/output operands and the availability status of the arithmetic unit, and to decide whether to input instructions to the arithmetic unit regardless of the order specified in the program. Hereinafter, this means will be referred to as an execution queue.

実行待機キューは第7図に示すように、演算器に投入す
べき命令群32が必要とするオペランド33の到着を確
認し、必要なオペランドが整った命令から演算器に送り
込んでいく機構であり、オペランド待ちとなっている待
機命令32を複数個保持する。
As shown in FIG. 7, the execution waiting queue is a mechanism that confirms the arrival of operands 33 required by a group of instructions 32 to be input to the arithmetic unit, and sends the instructions to the arithmetic unit starting with the instructions that have the necessary operands. , holds a plurality of standby instructions 32 waiting for operands.

[発明が解決しようとする問題点] 前述した命令の入出力オペランドの衝突の検出及び演算
器の使用状況から演算器への投入可能性の判定を行う手
段がどれだけ最適な命令実行順序の制御を行えるかは、
実行待機キューのエントリ数に依存する、即ちある時刻
T1に演算器に投入すべき命令が見つかる可能性は0時
刻T1に投入可能かどうかを判定出来る命令数(実行待
機キューのエントリ数)が多いほど高くなる。
[Problems to be Solved by the Invention] How optimal is the control of the order of instruction execution by means for detecting conflicts between the input and output operands of the instructions described above and determining the possibility of inputting them to the arithmetic unit based on the usage status of the arithmetic unit? Is it possible to do this?
It depends on the number of entries in the execution waiting queue, that is, the possibility of finding an instruction to be input to the arithmetic unit at a certain time T1 is 0.The number of instructions (number of entries in the execution waiting queue) that can be judged whether it can be input at time T1 is large. The higher the price, the higher the price.

しかし実行待機キューのエントリ数を増やせない要因も
存在する。特に、定められたクロック時間内で演算器へ
の投入可能性の判定を行い、投入すべき命令を決定しよ
うとした場合、実現可能な実行待機キューのエントリ数
にはおのずと限界が生ずることが上げられる。タロツク
周期を延ばすことや、演算器への投入可能性の判定に要
するクロック数を増すことはスループットの観点から問
題が多くなる。
However, there are also factors that prevent the number of entries in the execution queue from being increased. In particular, when trying to determine the possibility of inputting instructions to an arithmetic unit within a set clock time and deciding which instructions to input, there is a natural limit to the number of entries in the execution queue that can be realized. It will be done. Extending the tarock cycle or increasing the number of clocks required to determine the possibility of inputting data to an arithmetic unit poses many problems from the viewpoint of throughput.

すなわち従来の命令処理順序制御方式では小容量の実行
待機キューでは効果的な命令順序をうろことが困難であ
るという問題点がある。
That is, in the conventional instruction processing order control method, there is a problem in that it is difficult to determine the effective order of instructions in a small-capacity execution queue.

〔問題点を解決するための手段〕[Means for solving problems]

本発明の方式は、プログラムを格納するプログラム格納
手段と、供給される命令群の各命令の入出力オペランド
の衝突および演算部の使用可能状況を判定し前記プログ
ラムで指定された順序によらずに前記演算部へf)命令
供給順序を決定し前記演算部に前記各命令を供給する命
令実行順序決定供給手段と、前記演算部に供給した命令
群と該命令群の各命令の前記演算部への供給順とを保持
する実行命令シーケンス記憶手段と、前記プログラム格
納手段と前記実行命令シーケンス記憶手段とから命令群
の供給をうけ前記命令実行順序決定供給手段へ供給する
命令群を選択し、前記実行命令シーケンス記憶手段へ前
記演算部に供給された命令を順に格納する書込アドレス
を発生し、前記実行命令シーケンス記憶手段から格納さ
れている命令を順に読出す続出アドレスを発生ずる実行
命令群選択書込読出手段とを含んで構成される。
The system of the present invention uses a program storage means for storing a program, and determines the collision of input/output operands of each instruction of a supplied instruction group and the availability status of the arithmetic unit, without depending on the order specified in the program. f) an instruction execution order determining supply means that determines the instruction supply order and supplies each of the instructions to the arithmetic unit, and a group of instructions supplied to the arithmetic unit and each instruction of the instruction group to the arithmetic unit; an execution instruction sequence storage means for holding a supply order of the instructions; Execution instruction group selection that generates a write address for sequentially storing the instructions supplied to the arithmetic unit in the execution instruction sequence storage means, and generates a successive address for sequentially reading out the stored instructions from the execution instruction sequence storage means. It is configured to include a writing/reading means.

〔作用〕[Effect]

第2図に示すプログラム例を用いて作用を説明する。第
2図においてC4−a+b  f4−d−teはプログ
ラムのあるループ内に2つの代入式があることを示して
いる。第3図(a、 )はこれらの2つの代入式をオブ
ジェクト・プログラムに展開したものである。この命令
シーケンスを以下元の命令シーケンスという。ここでM
 (a)はメモリのa番地に格納されている値を表わし
、A、B、C。
The operation will be explained using the program example shown in FIG. In FIG. 2, C4-a+b f4-d-te indicates that there are two assignment expressions in a certain loop of the program. FIG. 3(a,) shows the expansion of these two assignment expressions into an object program. This instruction sequence is hereinafter referred to as the original instruction sequence. Here M
(a) represents the value stored at address a in memory, A, B, C.

D、E、Fはそれぞれ対応する特定のレジスタに格納さ
れている値をいう。
D, E, and F each refer to a value stored in a corresponding specific register.

このプログラムを本発明による命令処理順序制御方式で
処理した場合、ループ動作の初回および2回目は第3図
<a>に示す与えられたプログラムの命令並びすなわち
元の命令シーケンスを入力とし、3回目は2回目に演算
器に投入された命令順、第4図(a>に示す第1の実行
命令シーケンス(後述)を人力とし、以降ループ繰り返
しによりN回目(N22)はN−1回目に演算器に投入
された命令順を入力として処理が進められる。
When this program is processed by the instruction processing order control method according to the present invention, the first and second loop operations use the given program instruction sequence shown in FIG. 3 <a>, that is, the original instruction sequence, and the third loop operation is the order of instructions input to the arithmetic unit for the second time, the first execution command sequence (described later) shown in Figure 4 (a) is performed manually, and the Nth (N22) is calculated at the N-1st time by repeating the loop. Processing proceeds using the order of instructions input into the device as input.

第4図(a)、第5図(a)に実行待機キューのエンI
・り数を2とした場合の処理順序を示す。
Figures 4(a) and 5(a) show the execution standby queue.
・The processing order when the number is 2 is shown.

第4図(a)は初回および2回目に演算器に投入された
命令順(以下これと第1の実行命令シーケンスという)
、第5図(a>は3回目に演算器に投入された命令順(
以下これを第2の実行命令シーケンスという)であり、
初回および2回目実行時よりも3回目実行時の実行命令
シーケンスの方がより効果的になっている。
Figure 4(a) shows the order of instructions input to the arithmetic unit for the first and second time (hereinafter referred to as the first execution instruction sequence).
, FIG. 5 (a> is the order of instructions input to the arithmetic unit for the third time (
This is hereinafter referred to as the second execution command sequence),
The execution instruction sequence is more effective during the third execution than during the first and second executions.

第3図(b)、第4図(b)および第5図(b)にこの
ような並び替えが行われた場合の実行タイミング例を示
す。第3図(b)は命令処理順序制御を行わない方式で
実行しようとした場合、第4図(b)は従来の命令処理
順序制御を実行した場合、第5図(b)は本発明の命令
処理順序制御を実行した場合である。第5図(b)から
明らかなように、本発明による命令処理順序制御方式で
は実行回数を重ねることにより処理時間が短かくなるよ
うに最適な命令処理順序での実行が行われるようになる
。従って、命令待機キューのエントり数が少なくても最
適処理順序を得ることが可能である。
FIG. 3(b), FIG. 4(b), and FIG. 5(b) show examples of execution timing when such sorting is performed. FIG. 3(b) shows the case when execution is attempted without instruction processing order control, FIG. 4(b) shows the case when conventional instruction processing order control is executed, and FIG. This is the case when instruction processing order control is executed. As is clear from FIG. 5(b), in the instruction processing order control method according to the present invention, by increasing the number of executions, instructions are executed in the optimum order so that the processing time is shortened. Therefore, it is possible to obtain the optimum processing order even if the number of entries in the instruction waiting queue is small.

〔実施例〕〔Example〕

次に、本発明の実施例について図面を参照して説明する
Next, embodiments of the present invention will be described with reference to the drawings.

第1図は本発明の一実施例を示すブロック図である。第
1図の命令処理順序制御方式はプログラムを保持するプ
ログラム記憶部1と、演算器に投入すべき命令群を得る
実行命令群選択書込読出部2と、命令の入出力オペラン
ドの衝突及び演算器の使用状況を判定しプログラムで指
定された順序によらず演算部への命令投入を決定する命
令実行順序決定投入部3と、既に投入した命令群とその
順序を保持する実行命令シーケンス記憶部4とから構成
される。
FIG. 1 is a block diagram showing one embodiment of the present invention. The instruction processing order control system shown in FIG. 1 includes a program storage unit 1 that holds programs, an execution instruction group selection/writing/reading unit 2 that obtains a group of instructions to be input to an arithmetic unit, and conflict and calculation of input/output operands of instructions. an instruction execution order determining input unit 3 that determines the usage status of the device and determines input of instructions to the arithmetic unit regardless of the order specified in the program; and an execution instruction sequence storage unit that holds a group of instructions that have already been input and their order. It consists of 4.

実行命令群選択書込読出部2は、命令群選択部21と、
分岐アドレス・テーブル22と、分岐アドレス管理部2
3と、演算器へ投入した命令を保持するアドレスを発生
する書込アドレス発生部24と、実行すべき命令を演算
器に投入した命令群から選択読みだすためのアドレスを
発生する読出アドレス発生部25とから構成さhる。
The execution instruction group selection writing/reading unit 2 includes an instruction group selection unit 21;
Branch address table 22 and branch address management section 2
3, a write address generation unit 24 that generates an address to hold an instruction input to the arithmetic unit, and a read address generation unit 24 that generates an address for selectively reading out an instruction to be executed from the instruction group input to the arithmetic unit. It consists of 25.

また、実行命令シーケンス記憶部4は、記憶部41と、
読みだしアドレスを格納するレジスタ42と、読みだし
た命令を格納するレジスタ43と、書き込みアドレス格
納するレジスタ44と、書き込む命令を格納するレジス
タ45とから構成される装 次に、本実施例の動作について第2図に示すプログラム
を例にとりかつ命令実行順序決定投入部3にある実行待
機キューのエントリ数が2の場合について説明する。
Further, the execution instruction sequence storage unit 4 includes a storage unit 41,
The operation of this embodiment is as follows: a register 42 for storing read addresses, a register 43 for storing read instructions, a register 44 for storing write addresses, and a register 45 for storing write instructions. The following describes a case where the program shown in FIG. 2 is taken as an example and the number of entries in the execution queue in the instruction execution order determining/inputting section 3 is two.

プログラム記憶部lには第3図(a)に示す元の命令シ
ーケンスで第2図のプログラムが格納されている。
The program storage unit 1 stores the program shown in FIG. 2 with the original instruction sequence shown in FIG. 3(a).

プログラム記憶部1から元の命令シーケンスで命令が実
行命令群選択書込読出部2の命令群選択′部21に供給
される。実行命令群選択書込読出部2の主たる動作は分
岐命令の実行を契機として開始される。それまでは命令
群選択部21はプログラム記憶部1から供給される命令
群を選択し各命令が分岐命令か否かを判定し命令実行順
序決定投入部3に供給する。
Instructions in the original instruction sequence are supplied from the program storage section 1 to the instruction group selection section 21 of the execution instruction group selection writing/reading section 2. The main operation of the execution instruction group selection write/read unit 2 is started with the execution of a branch instruction. Until then, the instruction group selection unit 21 selects the instruction group supplied from the program storage unit 1, determines whether each instruction is a branch instruction, and supplies the instruction execution order determination input unit 3.

命令群選択部21で供給された命令が分岐命令であるこ
とが判明したときにはその次に供給される命令から分岐
情報タグを付して命令実行順序決定投入部3に供給する
。この分岐情報タグは分岐命令以前に命令実行順序決定
投入部3に供給された命令と分岐命令より後に供給され
た命令とを区別するために使用され原則的には分岐命令
毎に異なった分岐情報タグが使用される。
When the instruction supplied by the instruction group selection unit 21 is found to be a branch instruction, a branch information tag is attached to the next supplied instruction and the instruction is supplied to the instruction execution order determination input unit 3. This branch information tag is used to distinguish between instructions supplied to the instruction execution order determination input unit 3 before the branch instruction and instructions supplied after the branch instruction, and in principle, different branch information is provided for each branch instruction. tags are used.

かくして初回においは命令実行順序決定投入部3には元
の命令シーケンスで命令が供給される。
Thus, for the first time, instructions are supplied to the instruction execution order determining input section 3 in the original instruction sequence.

命令実行順序決定投入部3には第6図に示すような実行
待機キュー61が用窓されている。第6図ではエントリ
数はn個であるがここでは前述のようにn=2の場合に
ついて説明する。
An execution standby queue 61 as shown in FIG. 6 is provided in the instruction execution order determining input section 3. Although the number of entries is n in FIG. 6, the case where n=2 will be described here as described above.

実行待機キュー61には分岐情報タグフィールド64、
待機命令フィールド62および必要なオペランドフィー
ルド63があり対応する情報を格納し、必要なオペラン
ドが整った命令から順に出力される。また実行待機キュ
ー61が満杯のときには格納されている命令以降に命令
実行順序決定投入部3に供給された命令はたとえ必要な
オペランドが整っていても演算器には出力されない。
The execution standby queue 61 includes a branch information tag field 64;
There is a standby instruction field 62 and a necessary operand field 63, which store corresponding information, and are output in order from the instruction with the necessary operands. Further, when the execution standby queue 61 is full, the instructions supplied to the instruction execution order determining input unit 3 after the stored instruction are not output to the arithmetic unit even if the necessary operands are in place.

第3図(a)に示す元の命令シーケンスで供給された命
令群がこの命令実行順序決定投入部3で如何に実行順序
が決定されるか、すなわち第1の実行命令シーケンスが
如何にして作成されるかを説明する。
How is the execution order of the instruction group supplied in the original instruction sequence shown in FIG. Explain how it will be done.

元の命令シーケンスにおいて、必要なオペランドを整え
るまで、待機しなければならない待機命令は命令103
,104,107および108である。命令101と1
02は必要なオペランドが整っているので順に演算器に
投入され、命令103と104の2個が先ず実行待機キ
ュー61に格納され保持する。また命令105以降は実
行待機キュー61が満杯故演算器に投入されない。命令
101.102の演算器での実行結果、命令103はオ
ペランドが整ったので演算器に投入される。これにより
実行待機キュー61にはあきができたので命令105と
106とが実行待機キュー61をへて演算器に投入され
命令107が実行待機キュー61に格納される。そして
オペランドの整一)た順に命令104,107,108
が演算器に出力される。かくして第4図(a >に示す
第1の実行命令シーケンスが得られろ。
In the original instruction sequence, the wait instruction that must wait until the necessary operands are ready is instruction 103.
, 104, 107 and 108. Instructions 101 and 1
Since the necessary operands are ready, instructions 02 are sequentially input to the arithmetic units, and the two instructions 103 and 104 are first stored and held in the execution waiting queue 61. In addition, instructions after instruction 105 are not input to the arithmetic unit because the execution waiting queue 61 is full. As a result of the execution of instructions 101 and 102 in the arithmetic unit, instruction 103 is input to the arithmetic unit because the operands are ready. As a result, the execution waiting queue 61 becomes empty, so instructions 105 and 106 are input to the arithmetic unit through the execution waiting queue 61, and instruction 107 is stored in the execution waiting queue 61. and instructions 104, 107, 108 in the order of operands
is output to the arithmetic unit. Thus, the first execution command sequence shown in FIG. 4(a) is obtained.

このようにして初回の演算器への命令投入が第2図のプ
ログラムについて行なわれ、ループの最後にある分岐命
令がプログラム記憶部1から命令群選択部21に供給さ
れる。
In this way, the first instruction input to the arithmetic unit is performed for the program shown in FIG. 2, and the branch instruction at the end of the loop is supplied from the program storage section 1 to the instruction group selection section 21.

命令群選択部21では供給された命令が分岐命令である
ときには前述のようにその次に供給される命令から分岐
情報タグを付して命令実行順序決定投入部3に供給する
準備をする。
When the supplied instruction is a branch instruction, the instruction group selection section 21 attaches a branch information tag to the next supplied instruction and prepares to supply it to the instruction execution order determining input section 3, as described above.

分岐命令が命令実行順序決定投入部3を経て演算器に供
給され実行されるとその結果分岐先アドレス情報(プロ
グラム記憶部1のアドレス情報)が演算器から実行命令
群選択書込読出部2の分岐アドレス管理部23に供給さ
れる。
When a branch instruction is supplied to the arithmetic unit via the instruction execution order determination input unit 3 and executed, the branch destination address information (address information in the program storage unit 1) is transferred from the arithmetic unit to the execution instruction group selection write/read unit 2. It is supplied to the branch address management section 23.

分岐アドレス管理部23は供給された分岐先アドレスが
分岐アドレステーブル22に登録されているかどうかを
調べ、登録されていないときにはこの分岐先アドレスを
分岐アドレステーブル22に登録しく第1図ではAdd
  1(i=1〜n)と表わしている)、さらにこの分
岐命令に続く実行命令シーケンスを実行命令シーケンス
記憶部4の記憶部41に格納する格納領域の先頭アドレ
スを決定し、分岐アドレステーブル22に分岐先アドレ
スと対にして登録するくこの先頭アドレスは第1図では
Lo+−1(i=1〜n)と表わしている)。
The branch address management unit 23 checks whether the supplied branch destination address is registered in the branch address table 22, and if it is not registered, registers this branch destination address in the branch address table 22. In FIG.
1 (represented as i=1 to n)), and further determines the start address of the storage area in which the execution instruction sequence following this branch instruction is stored in the storage section 41 of the execution instruction sequence storage section 4, and stores the execution instruction sequence in the branch address table 22. In FIG. 1, the first address of this node, which is registered as a pair with the branch destination address, is expressed as Lo+-1 (i=1 to n)).

g込アドレス発生部24は上記のようにして決定された
先頭アドレスを分岐アドレステーブル22より11(給
され、また命令群選択部21から分岐情報タグの供給を
うけて、命令実行順序決定投入部3から供給される演算
部へ投入した命令の5テ岐′情報タグを参照して分岐命
令につづいて演算部で実行された命1tを順に格納する
記憶部41/\の書込アトしスを発生してレジスタ44
に供給する。
The g-address generation section 24 receives the start address determined as described above from the branch address table 22 (11), and receives the branch information tag from the instruction group selection section 21, and then sends the start address determined as described above to the instruction execution order determination input section. The write address of the storage unit 41/\ stores in order the instructions 1t executed in the arithmetic unit following the branch instruction by referring to the 5-te branch' information tag of the instruction input to the arithmetic unit supplied from 3. and register 44
supply to.

命令群選択部21には分岐命令の実行により決定したプ
ログラム記憶部1の分岐先アドレスにある命令から順に
供給され、第2回目のループ動作に移行する。
The instruction group selection unit 21 is sequentially supplied with instructions starting from the branch destination address of the program storage unit 1 determined by the execution of the branch instruction, and the program moves to the second loop operation.

第2回目のループ動作で命令実行順序決定投入部3から
演算部に供給される命令シーケンスは前述と同様、第1
の実行命令シーケンスである。しかしてこの第1の実行
命令シーケンスは命令実行順序決定投入部3により演算
部へ供給されるとともに実行命令シーケンス記憶部4の
レジスタ45にも供給されかつ供給された命令の分岐情
報タグが書込アドレス発生部24に供給されるので書込
アドレス発生部24から供給される記憶部41のアドレ
スに第1の実行命令シーケンスが格納される。
The instruction sequence supplied from the instruction execution order determination input unit 3 to the calculation unit in the second loop operation is the same as described above.
This is the execution instruction sequence. Therefore, this first execution instruction sequence is supplied to the arithmetic unit by the instruction execution order determination input unit 3, and is also supplied to the register 45 of the execution instruction sequence storage unit 4, and the branch information tag of the supplied instruction is written. Since the first execution instruction sequence is supplied to the address generation section 24, the first execution instruction sequence is stored in the address of the storage section 41 supplied from the write address generation section 24.

第2回目のループ動作の最後にまた分岐命令が実行され
、分岐アドレス管理部23はその分岐先アドレスの分岐
アドレステーブル22への登録の有無をチェックする。
At the end of the second loop operation, another branch instruction is executed, and the branch address management unit 23 checks whether the branch destination address is registered in the branch address table 22.

今度は分岐先アドレスは登録されているので、分岐アド
レス管理部23は命令群選択部21に選択する命令群は
実行命令シーケンス記憶部4から供給されるものに切替
える。よう指示するとともに、分岐アドレステーブル2
2から格納している第1の実行命令シーケンスの先頭ア
ドレスを書込アドレス発生部24と読出アドレス発生部
25とに供給する。読出アドレス発生部25は格納され
ている第1の実行命令シーケンスを順次読出すアドレス
を発生して第1の実行命令シーケンスを命令群選択部2
1に供給する3書込アドレス発生部24の動作は前述と
同様におこなわれる。この第1の実行命令シーケンスの
各命令は分岐情報タグが付されて命令実行順序決定投入
部3に供給される。
This time, since the branch destination address has been registered, the branch address management section 23 switches the instruction group selected by the instruction group selection section 21 to the one supplied from the execution instruction sequence storage section 4. branch address table 2.
The start address of the first execution instruction sequence stored from 2 onwards is supplied to the write address generation section 24 and the read address generation section 25. The read address generation unit 25 generates addresses for sequentially reading out the stored first execution instruction sequences, and outputs the first execution instruction sequences to the instruction group selection unit 2.
The operation of the 3-write address generating section 24 that supplies the 3rd address to the 1st bit is performed in the same manner as described above. Each instruction of this first execution instruction sequence is attached with a branch information tag and supplied to the instruction execution order determining input unit 3.

第1の実行命令シーケンスは命令実行順序決定投入部3
において前記の元の命令シーケンスから第1の実行命令
シーケンスに並べかえが行なわれたと同様の動作で第5
図(a>に示す第2の実行白金シーケンスに並べかえら
れる。この第2の実行命令シーケンスは書込アドレス発
生部24がら供給されるアドレスにより記憶部41で第
1の実行命令シーケンスに代えて記憶される。以■ζこ
のくりかえしが行なわれる、 このようにして本実施例では命令実行順序決定に当って
はすでに実行された命令群の命令実行順序を再利用して
いる。
The first execution instruction sequence is executed by the instruction execution order determining input unit 3.
The fifth execution instruction sequence is rearranged from the original instruction sequence to the first execution instruction sequence in the same manner.
The second execution instruction sequence is rearranged into the second execution instruction sequence shown in FIG. This is repeated. In this way, in this embodiment, when determining the instruction execution order, the instruction execution order of a group of instructions that have already been executed is reused.

第3図(b)7第4図(b)および第5図(b)に示す
ようにに例えばLOAD命令、5TORE命令が3’L
n(tnは1クロックサイクル時間)、ADD命令が4
toの処理時間を要すとすれば全処理時間は元の命令シ
ーケンスのときには20 t o 、第1の実行命令シ
ーケンスのときは16to、第2の実行命令シーケンス
のときは13t l、と改善されている。
FIG. 3(b) 7 As shown in FIG. 4(b) and FIG. 5(b), for example, the LOAD instruction and 5TORE instruction are 3'L
n (tn is one clock cycle time), ADD instruction is 4
If the processing time of to is required, the total processing time is improved to 20 to for the original instruction sequence, 16 to for the first execution instruction sequence, and 13 to for the second execution instruction sequence. ing.

本実施例の説明ではループの1部のプログラムについて
の改善のみを示したがループ全体では一最に更に改善は
大となる。
In the description of this embodiment, only the improvement of a part of the program of the loop has been shown, but the improvement will be even greater for the entire loop.

また本実施例ではシングルルーズについて説明したがシ
ングルループが複数個ある場合および多重ループになっ
ている場合についても本発明は適用できる。この場合に
は分岐情報タグが有効に作用し異なったループでは実行
命令シーケンスは区別されて保有することができる。ま
たループでなくとも1つの命令群が分岐命令の使用によ
り繰かえし使用される場合には本発明は適用できる。
Furthermore, although a single loose loop has been described in this embodiment, the present invention can also be applied to a case where there are a plurality of single loops or a case where there are multiple loops. In this case, the branch information tag is effective and execution instruction sequences can be kept distinct in different loops. Furthermore, the present invention can be applied to cases where one instruction group is used repeatedly by using branch instructions, even if it is not a loop.

本実施例では命令実行順序決定投入部3に実行待機キュ
ーが1個しかない場合について説明した゛が複数個の実
行待機キューを有する場合についても適用できる。
In this embodiment, the explanation has been made for the case where the instruction execution order determination and input section 3 has only one execution waiting queue, but it can also be applied to the case where the instruction execution order deciding input section 3 has a plurality of execution waiting queues.

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

本発明には既に実行された命令シーケンスを演算部に投
入する命令群として再利用することにより、演算部の投
入時にその命令群の命令シーケンスをより処理時間が短
かくなるように並べかえることができ実行待機キューの
エン1〜り数が少なくとも処理時間を短縮できる命令順
序を得ることができるという効果がある。
In the present invention, by reusing an already executed instruction sequence as a group of instructions to be input to the arithmetic unit, the instruction sequence of the instruction group can be rearranged to shorten the processing time when the arithmetic unit is input. This has the effect that it is possible to obtain an instruction order that can at least reduce the processing time by reducing the number of entries in the execution waiting queue.

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

第1図は本発明の一実施例を示すブロック図、第2図は
本発明の詳細な説明するための原始プログラム図、第3
図は第2図の目的プログラムを示した元の命令シーケン
ス図、およびその処理タイムチャート、第4図は第1の
実行命令シーケンス図およびその処理タイムチャート、
第5図は第2の実行命令シーケンス図、およびその処理
タイムチャーI・図、第6図は命令実行順序決定投入部
3の実行待機キューを示す配置図、第7図は実行待機キ
ューを説明する説明図である。 1・・・プログラム記憶部、2・・・実行命令群選択書
込続出部、3・・・命令実行順序決定投入部、4・・・
実行命令シーケンス記憶部、21・・・命令群選択部、
22・・・分岐アドレス・テーブル、23・・・分岐ア
ドレス管理部、24・・・書込アドレス発生部、25・
・・読出アドレス発生部、31.61・・・実行待機キ
ュー、32.62・・・待機命令フィールド、33゜6
3・・・必要なオペランドフィールド、41・・・記憶
部、42〜45・・・レジスタ、64・・・分岐情報タ
グフィールド、101〜108・・・命令。 、74−1 代理人 弁理士 内 原  台、パ。 −ζ 第4菌 一+1−+、lく(/1−J−、I“(り−〜勺寸 −
一一一−ド :) 工 〆\ い S−”XU司X、・・・・・ト
FIG. 1 is a block diagram showing an embodiment of the present invention, FIG. 2 is a source program diagram for explaining the present invention in detail, and FIG. 3 is a block diagram showing an embodiment of the present invention.
The figure shows an original instruction sequence diagram showing the target program of FIG. 2 and its processing time chart, and FIG. 4 shows a first execution instruction sequence diagram and its processing time chart.
FIG. 5 is a second execution instruction sequence diagram and its processing time chart, FIG. 6 is a layout diagram showing an execution waiting queue of the instruction execution order determining input unit 3, and FIG. 7 is an explanation of the execution waiting queue. FIG. DESCRIPTION OF SYMBOLS 1...Program storage unit, 2...Execution instruction group selection writing successive unit, 3...Instruction execution order determination input unit, 4...
Execution instruction sequence storage unit, 21...instruction group selection unit,
22... Branch address table, 23... Branch address management section, 24... Write address generation section, 25.
... Read address generation section, 31.61 ... Execution standby queue, 32.62 ... Standby instruction field, 33゜6
3... Necessary operand field, 41... Storage section, 42-45... Register, 64... Branch information tag field, 101-108... Instruction. , 74-1 Agent Patent Attorney Uchihara Dai, Pa. -ζ 4th bacterium 1+1-+, lku(/1-J-, I"(ri-~勺size-
111-de:)

Claims (2)

【特許請求の範囲】[Claims] (1)プログラムを格納するプログラム格納手段と、 供給される命令群の各命令の入出力オペランドの衝突お
よび演算部の使用可能状況を判定し前記プログラムで指
定された順序によらずに前記演算部への命令供給順序を
決定し前記演算部に前記各命令を供給する命令実行順序
決定供給手段と、前記演算部に供給した命令群と該命令
群の各命令の前記演算部への供給順とを保持する実行命
令シーケンス記憶手段と、 前記プログラム格納手段と前記実行命令シーケンス記憶
手段とから命令群の供給をうけ前記命令実行順序決定供
給手段へ供給する命令群を選択し、前記実行命令シーケ
ンス記憶手段へ前記演算部に供給された命令を順に格納
する書込アドレスを発生し、前記実行命令シーケンス記
憶手段から格納されている命令を順に読出す読出アドレ
スを発生する実行命令群選択書込読出手段とを含むこと
を特徴とする命令処理順序制御方式。
(1) A program storage means for storing a program, and a program storage unit that determines the collision of input/output operands of each instruction of a supplied instruction group and the usability status of the arithmetic unit, and determines the usability status of the arithmetic unit and the arithmetic unit in accordance with the order specified in the program. an instruction execution order determining supply means for determining the order in which instructions are supplied to the operating section and supplying each of the instructions to the operating section; a group of instructions supplied to the operating section; and an order in which each instruction of the instruction group is supplied to the operating section; Execution instruction sequence storage means for storing a set of instructions; and receiving a group of instructions from the program storage means and the execution instruction sequence storage means, selects a group of instructions to be supplied to the instruction execution order determination supply means, and selects a group of instructions to be supplied to the instruction execution order determination supply means; execution instruction group selection writing/reading means for generating write addresses for sequentially storing instructions supplied to the arithmetic unit in the means; and generating read addresses for sequentially reading stored instructions from the execution instruction sequence storage means; An instruction processing order control method comprising:
(2)実行命令群選択書込読出手段には分岐命令の分岐
先アドレスと前記分岐命令につづく命令群の実行命令シ
ーケンス記憶手段への格納領域の先頭アドレスとを保持
する分岐アドレステーブルを備え、 プログラム記憶手段から供給される命令が分岐命令であ
りかつ該分岐命令の分岐先アドレスが前記分岐アドレス
テーブルに登録されていない第1の場合には対応する前
記先頭アドレスを決定し前記分岐先アドレスと先頭アド
レスとを前記分岐アドレステーブルに登録して前記先頭
アドレスを参照して書込アドレスを発生し、前記プログ
ラム記憶手段から供給される命令群を選択し、前記プロ
グラム記憶手段から供給される命令が分岐命令でありか
つ該分岐命令の分岐先アドレスが前記分岐アドレステー
ブルに登録されている第2の場合には登録されている対
応する先頭アドレスを参照して書込アドレスと読出アド
レスとを発生し実行命令シーケンス記憶手段から供給さ
れる命令群を選択し、前記プログラム記憶手段から供給
される命令が分岐命令でない第3の場合には前記プログ
ラム記憶手段から供給される命令群を選択する特許請求
の範囲第(1)項記載の命令処理順序制御方式。
(2) The execution instruction group selection writing/reading means is provided with a branch address table that holds the branch destination address of the branch instruction and the start address of the storage area in the execution instruction sequence storage means of the instruction group following the branch instruction, In the first case where the instruction supplied from the program storage means is a branch instruction and the branch destination address of the branch instruction is not registered in the branch address table, the corresponding start address is determined and the branch destination address is A start address is registered in the branch address table, a write address is generated by referring to the start address, a group of instructions supplied from the program storage means is selected, and the instructions supplied from the program storage means are In the second case where the branch instruction is a branch instruction and the branch destination address of the branch instruction is registered in the branch address table, a write address and a read address are generated by referring to the corresponding registered start address. Selecting a group of instructions supplied from an execution instruction sequence storage means, and selecting a group of instructions supplied from the program storage means in a third case where the instruction supplied from the program storage means is not a branch instruction. The instruction processing order control method described in scope item (1).
JP61241634A 1986-10-09 1986-10-09 Instruction processing order controller Expired - Lifetime JPH0668722B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61241634A JPH0668722B2 (en) 1986-10-09 1986-10-09 Instruction processing order controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61241634A JPH0668722B2 (en) 1986-10-09 1986-10-09 Instruction processing order controller

Publications (2)

Publication Number Publication Date
JPS6395538A true JPS6395538A (en) 1988-04-26
JPH0668722B2 JPH0668722B2 (en) 1994-08-31

Family

ID=17077233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61241634A Expired - Lifetime JPH0668722B2 (en) 1986-10-09 1986-10-09 Instruction processing order controller

Country Status (1)

Country Link
JP (1) JPH0668722B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149567A (en) * 1992-11-04 1994-05-27 Nec Corp Preceding controller
US7885806B2 (en) 2002-08-19 2011-02-08 Semiconductor Technology Academic Research Center Simulation method and simulation system of instruction scheduling

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5110746A (en) * 1974-07-17 1976-01-28 Hitachi Ltd
JPS53118951A (en) * 1977-03-26 1978-10-17 Mitsubishi Electric Corp Microprogram trace unit
JPS57101953A (en) * 1980-12-17 1982-06-24 Hitachi Ltd Program execution trace system
JPS5999552A (en) * 1982-11-30 1984-06-08 Matsushita Electric Ind Co Ltd Microcomputer
JPS6027945A (en) * 1983-07-27 1985-02-13 Nec Corp Instruction fetching device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5110746A (en) * 1974-07-17 1976-01-28 Hitachi Ltd
JPS53118951A (en) * 1977-03-26 1978-10-17 Mitsubishi Electric Corp Microprogram trace unit
JPS57101953A (en) * 1980-12-17 1982-06-24 Hitachi Ltd Program execution trace system
JPS5999552A (en) * 1982-11-30 1984-06-08 Matsushita Electric Ind Co Ltd Microcomputer
JPS6027945A (en) * 1983-07-27 1985-02-13 Nec Corp Instruction fetching device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149567A (en) * 1992-11-04 1994-05-27 Nec Corp Preceding controller
US7885806B2 (en) 2002-08-19 2011-02-08 Semiconductor Technology Academic Research Center Simulation method and simulation system of instruction scheduling

Also Published As

Publication number Publication date
JPH0668722B2 (en) 1994-08-31

Similar Documents

Publication Publication Date Title
JP3555140B2 (en) Semiconductor floorplan and method for register rename circuit
CN100478871C (en) System and method for time-of-life counter design for handling instruction flushes from a queue
JP3724581B2 (en) Backup device
US5892963A (en) System and method for assigning tags to instructions to control instruction execution
EP0243892A2 (en) System for guaranteeing the logical integrity of data
EP0849665A2 (en) System and method for register renaming
CN107810478A (en) The block-based framework of parallel execution with continuous blocks
JPH07281896A (en) Information processor
JPH0766329B2 (en) Information processing equipment
NZ236142A (en) Data processor skips execution of instructions in queue that are tagged as requiring unavailable data
US6223278B1 (en) Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
EP0551173A2 (en) Dataflow computer
US5907693A (en) Autonomously cycling data processing architecture
JPH06236275A (en) Method and system for dispatch and execution of nonsequential instruction in superscalar processor system
JPH1185513A (en) Processor
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
JPS6395538A (en) Control system for instruction processing order
EP0762271A2 (en) Early completion of floating-point operations during load/store multiple operations
EP1902362A1 (en) Data flow-based information processing system and method
JP5392810B2 (en) Instruction issue control device and instruction issue control method
JPH10283178A (en) Method and system for issuing instruction
JP2920968B2 (en) Instruction processing order control method
JP2006195705A (en) Processor
KR20050085358A (en) Data processing system having a cartesian controller
JP3607548B2 (en) Vector arithmetic unit