JPS58123141A - High-speed count branch executing system - Google Patents

High-speed count branch executing system

Info

Publication number
JPS58123141A
JPS58123141A JP541182A JP541182A JPS58123141A JP S58123141 A JPS58123141 A JP S58123141A JP 541182 A JP541182 A JP 541182A JP 541182 A JP541182 A JP 541182A JP S58123141 A JPS58123141 A JP S58123141A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
counting
register
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
JP541182A
Other languages
Japanese (ja)
Other versions
JPS6232506B2 (en
Inventor
Masanobu Akagi
赤木 正信
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
Nippon Electric 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP541182A priority Critical patent/JPS58123141A/en
Publication of JPS58123141A publication Critical patent/JPS58123141A/en
Publication of JPS6232506B2 publication Critical patent/JPS6232506B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

Abstract

PURPOSE:To actuate the executing function of an instruction while a loop is repeated with virtually zero time, by substituting a count branch by-pass register provided to control the loop frequency for the function of a numerical branch instruction. CONSTITUTION:A numerical branch instruction is first set to an instruction register 4, and then an effective numerical value display F/F(E)11a is set at a time point when the numerical branch instruction is decoded at an instruction decoder 5. Thereafter, a loop is reset by an AND circuit 13 when it ends. However, the loop functions to show a numerical branch bias register (BBR)11 is effective until it is reset by a comparator 14 when the GRN (general-purpose register number) of a GRN holding part 11-1 held at the BBR11 is identical with the number of a general-purpose register 8 which is used for other instructions.

Description

【発明の詳細な説明】 本発明は,情報処理装置に於ける同一計数分岐命令の多
数回の繰返しによるプログラムの実行を高速で行なうこ
とのできる高速計数分岐実行方式に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a high-speed counting branch execution method that allows an information processing device to execute a program at high speed by repeating the same counting branch instruction many times.

従来,この種の情報処理装置は,計数分岐命令(以降B
CT命令と呼ぶ)の実行を必要とする場合,該尚するB
CT命令を主記憶装置(キャッシュ,或は命令キャンシ
ーメモリに存在することもある),或は命令パッファか
ら読んだ後,指定された汎用レジスタ(GR)を読み出
して計数動作を行なっていた。即ち,同じBCT命令を
多数回繰シ返えすようなループを構成するプログラムに
於て,途中で行われるBCT命令の役割シは,単にルー
プ回数を管理することだけであるにも拘らず,ループの
繰返し毎に改めて命令の取出しと実行を行なっていた。
Conventionally, this type of information processing device uses counting branch instructions (hereinafter referred to as B
(referred to as a CT instruction), the corresponding B
After reading the CT instruction from the main memory (which may exist in a cache or instruction cache memory) or from an instruction buffer, a designated general register (GR) is read and a counting operation is performed. In other words, in a program that configures a loop that repeats the same BCT instruction many times, the role of the BCT instruction executed midway through the loop is simply to manage the number of loops. Each time the command is repeated, the command is retrieved and executed again.

従って,BCT命令の実行時間がループの繰返し回数分
必要となシ,プログラム実行の性能が低下するという欠
点があった 本発明の目的は,BCT命令が最初に実行されるときを
除き,それ以降のループの繰返しに際しては,ループ回
数の管理の為に設けた計数分岐パイ・ぐスレジスタによ
5BCT命令の機能を代行させることによって,上記欠
点を除去し,ループの繰返し中はBCT命令の実行機能
を見かけ上ゼロ時間で動作させることのできる高速計数
分岐実行方式を提供することにある。
Therefore, the purpose of the present invention is that the BCT instruction does not require the execution time equal to the number of loop repetitions, and the program execution performance deteriorates. When repeating the loop, the above drawback is eliminated by substituting the function of the 5BCT instruction with a counting branch register provided to manage the number of loops. The purpose of this invention is to provide a high-speed counting branch execution method that can operate in apparently zero time.

本発明によれば,指定された汎用レジスタの保J+1− 持する秦≠値を計数し,該計数結果によシ分岐の有無を
決定して計数分岐命令を実行する情報処理装置に於て,
先取り命令アドレスを供給するアドレス供給回路と,計
数値を計数する計数回路と,計数分岐命令の実行が予定
されていることを監視する為の監視命令アドレスと前記
アドレス供給回路から供給される先取り命令アドレスと
を比較するアドレス比較回路と,1組以上の計数分岐パ
イ・ぐスレジスタとを含み,前記計数分岐パイ・ぐスレ
シスタには,前記汎用レジスタの汎用レジスタ番号と該
汎用レジスタの保持する計数値と分岐先アドレスと前記
監視命令アドレスとを各々保持する部分を備え,計数分
岐命令の実行時に,該計数分岐命令に対応する情報を前
記計数分岐パイ・ぞスレジスタにセットせしめ,前記ア
ドレス比較回路によって次に先取シすべき命令として該
計数分岐命令が予定されていることが判明した場合,前
記計数回路を働かせると共に前記計数値の内容に従って
前岐分岐先アドレスにより命令を先取シすることを特徴
とする情報処理装置に於ける高速計数分岐実行方式が得
られる。
According to the present invention, in an information processing device that counts the value held by a specified general-purpose register, determines whether or not to branch based on the counting result, and executes a counted branch instruction,
An address supply circuit that supplies a prefetch instruction address, a counting circuit that counts a count value, a monitoring instruction address that monitors whether a counted branch instruction is scheduled to be executed, and a prefetch instruction that is supplied from the address supply circuit. It includes an address comparison circuit that compares the address with the address, and one or more sets of counting branch pi/gus registers, and the counting branch pi/gus register includes the general-purpose register number of the general-purpose register and the count value held by the general-purpose register. , a branch destination address, and the monitoring instruction address, respectively, and when a counting branch instruction is executed, information corresponding to the counting branch instruction is set in the counting branch path/zoos register, and the address comparison circuit sets the information corresponding to the counting branch instruction. If it is found that the counted branch instruction is scheduled as the next instruction to be preempted, the counting circuit is activated and the instruction is preempted at the previous branch branch destination address according to the content of the counted value. A high-speed counting branch execution method in an information processing device can be obtained.

次に,本発明による高速計数分岐実行方式について,図
面を参照して詳細に説明する。
Next, the high-speed counting branch execution method according to the present invention will be explained in detail with reference to the drawings.

第1図は,本発:1“明に適用される命令型式の例をフ
ォーマットによシ示したものである。この図に見られる
ように,命令には,RR型式とRX型式が存在し,命・
令コード(op)で動作の種類を指定すると共に,第1
および第2オペランドをそれぞれR1およびR2(或は
X2r82+D2)によって指定する。R1,R2は汎
用レジスタ(GR),或はペースレジスタ(BR)の番
号を与えるものであシ,指定されたGR.或はBRの内
容が第1,或は第2オイランドとなる。X2はGRの番
号(GRN)を与え,指定されたGRの内容が第2オペ
ランドのアドレスに対するインデックス値として働く。
Figure 1 shows the format of an example of the instruction type applied to this invention: 1. As seen in this figure, there are RR type and RX type of instructions. ,life·
In addition to specifying the type of operation with the instruction code (op),
and the second operand is designated by R1 and R2 (or X2r82+D2), respectively. R1 and R2 give the numbers of general registers (GR) or pace registers (BR). Alternatively, the content of BR becomes the first or second Euland. X2 gives the GR number (GRN), and the contents of the designated GR serve as an index value for the address of the second operand.

B2はBHの番号(BRN)を与え,指定されたBRの
内容が第2オペランドのアドレスのベースとして働く。
B2 gives the number (BRN) of the BH, and the contents of the specified BR serve as the basis for the address of the second operand.

D2は,その値が第2オKランドのアドレスのディスプ
レースメントとして働く。
The value of D2 serves as a displacement of the address of the second OK land.

即ち+X2+B2およびD2によシ指定される第2オ波
ランドは,指定されたBR,GRの内容とD2を加えて
できるアドレスの示す主記憶装置内データであることが
指定される。なおこの命令型式の例では,上記の2種類
に限定したが,従来技術で知られる各種の型式,例えば
RI,XX等が存在しても良いことは言うまでもない。
That is, the second wave land designated by +X2+B2 and D2 is designated as the data in the main memory indicated by the address created by adding the contents of the designated BR and GR and D2. In this example, the instruction format is limited to the above two types, but it goes without saying that various types known in the prior art, such as RI, XX, etc. may also exist.

本発明において,高速化の対象となるBCT命令は,第
1オペランドでループの回数を制御する計数値(CN)
を示し,第2オペランドではCNの計“0”′ 数結果が中でないときに分岐する分岐先命令を示す。即
ち,第2オスランドのアドレスが分岐先アドレス(BA
)となる。従って,BCT命令の論理的動作は命令実行
毎にCNを指定された〇Rから読み出して計数し,結果
を指定されたGRに書き“0” 戻すと共に,結果が拳であればシーケンスの次“0”/
1 の命令,゛▼でなければBAの示す命令を次に1行する
ように命令シーケンスを変更干るように働く。これによ
シ,最初のCNで与えられる回数だけ分岐先命令とBC
T命令で囲まれるループ部分を繰返し実行するように指
定される。
In the present invention, the BCT instruction targeted for speedup uses a count value (CN) that controls the number of loops in the first operand.
, and the second operand indicates the branch destination instruction to be branched to when the total number of CN results is not ``0''. In other words, the address of the second osland is the branch destination address (BA
). Therefore, the logical operation of the BCT instruction is to read CN from the specified 〇R every time the instruction is executed, count it, write the result to the specified GR and return it to ``0'', and if the result is a fist, the next in the sequence is ``0''. 0”/
If the instruction 1 is not ▼, the instruction sequence is changed so that the instruction indicated by BA is executed in the next line. With this, the branch destination instruction and BC are executed as many times as given by the first CN.
A loop surrounded by T instructions is specified to be repeatedly executed.

第2図は,本発明による実施例の構成をブロック図によ
シ示したものである。この図に於て,アドレス供給回路
(IAC)1は,命令キャッシュ回路(IC)2の保持
する命令を実行に先立って読み出す為に,先取りナベき
命令のアドレスをIC2に与えるように働く。IC2は
命令専用のキャッシュであるが,後述するオ啄ランドキ
ャッシュ回路(OC)9と共用できるように構成されて
いても良く,図示していない主記憶装置内のデータの一
部の写しを保持しておシ,与えられた先取シ命令アドレ
スに従って命令を読み出す。IC2から読み出されるデ
ータ幅は4バイトであシ,2つの命令の部分が含まれて
いる場合がある為に,命令境界整列回路(AL)3が命
令レジスタ(IR)4の一部の内容とIC2の出力とか
ら次に実行すべき命令を左端をそろえて整列したのちに
IR4に与える。IR4は実行すべき命令を保持し,と
シ出された命令コードが命令デコーダ5によりデコード
され,アドレス加算回路(AA)5により第2オ被ラン
ドアドレスの計算をしている間命令情報が出力される。
FIG. 2 is a block diagram showing the configuration of an embodiment according to the present invention. In this figure, an address supply circuit (IAC) 1 serves to supply the address of a prefetch command to an instruction cache circuit (IC) 2 in order to read the instruction held by the IC 2 before execution. The IC2 is a cache dedicated to instructions, but it may be configured so that it can be shared with an Otakuland cache circuit (OC) 9, which will be described later, and holds a copy of part of the data in the main memory (not shown). Then, the instruction is read out according to the given preemption instruction address. The data width read from IC2 is 4 bytes and may include two instruction parts, so the instruction boundary alignment circuit (AL) 3 aligns the contents of part of the instruction register (IR) 4 The next instruction to be executed is arranged with the left end aligned with the output of IC2, and then is given to IR4. The IR4 holds the instruction to be executed, the issued instruction code is decoded by the instruction decoder 5, and the address addition circuit (AA) 5 outputs instruction information while the second address is being calculated. be done.

ペースレノスタ(BR)7は,IR4から読出しアドレ
ス(RA)入力端子にBRNが与えられると,指定され
だBRの内容が読出しデータ(RD)出力端子から出力
され,さらに書込みアドレス(WA)入力端子,涯込デ
ータ(WD)入力端子に各々BRNと書き込み用データ
が与えられて書込みが行われるようになっている。汎用
レジスタ(GR)8は,読出しが2つのレジスタに対し
て並行に行なえるようになっておシ,読出しアドレス(
RIA)および(R2A)の2つの入力端子と,読出し
データ(RID)および(R2D)の2つの出力端子が
あることを除いて,その他はBR7と同様に構成されて
いる。OC9は,メモリオベランドを保持するキャッシ
ュ回路でアシ,オペランドデータを演算実行部(EU)
10に与えて演算動作を実行させる。
When the pace reno star (BR) 7 receives BRN from the IR4 to the read address (RA) input terminal, the contents of the specified BR are output from the read data (RD) output terminal, and the write address (WA) input terminal, Writing is performed by applying BRN and write data to the write data (WD) input terminals. The general-purpose register (GR) 8 is designed so that reading can be performed on two registers in parallel.
The configuration is otherwise similar to BR7 except that there are two input terminals, RIA) and (R2A), and two output terminals, read data (RID) and (R2D). OC9 is a cache circuit that holds memory operands and transfers the operand data to the operation execution unit (EU).
10 to execute the arithmetic operation.

計数分岐バイパスレジスタ(BBR)11は,本発明に
おける特徴を形成するものであって,本実施例では一組
だけ存在し,有効表示F7/F(E)11aを伴なって
いる。このBBR11は複数組設けても良く,その場合
には多重ループを複数のBCT命令で構成したプログラ
ムに対して高速処理が可能になる。Ellaは別の形,
例えば監視アドレス(SA)としてプログラムが使うこ
とのないアドレスの値をBBR11内に入れておく.こ
とによって同一の機能を持たせることができる。BBR
11には,GRN保持部11−1.CN保持部112.
BA保持部11−3,SA保持部11−4が存在し,各
々最初にBCT命令がデコードされたときにそれぞれ対
応する値が七,トされる。即ち.GRNとしてBCT命
令のR++CNとしてR1の示すGR8の内容,BAと
して第2オイランドアドレスがセットされる。
The counting branch bypass register (BBR) 11 forms a feature of the present invention, and in this embodiment, only one set is present, accompanied by a valid indicator F7/F(E)11a. A plurality of BBRs 11 may be provided, in which case high-speed processing becomes possible for a program in which multiple loops are composed of a plurality of BCT instructions. Ella is another form,
For example, store the value of an address that the program will never use as a monitoring address (SA) in the BBR11. This allows them to have the same functionality. BBR
11 includes a GRN holding unit 11-1. CN holding section 112.
There is a BA holding section 11-3 and an SA holding section 11-4, and when a BCT instruction is decoded for the first time, the corresponding values are set to 7. That is. The content of GR8 indicated by R1 is set as R++CN of the BCT instruction as GRN, and the second Euland address is set as BA.

又,SAとして,該当BCT命令を先取シする為に,I
AC1から前以って与えられた先取シ命令アドレスが調
整レジスタ12によシタイミングの調整力二行なわれた
後にセットされる。
Also, as SA, in order to pre-empt the corresponding BCT command,
The preemption instruction address previously given from AC1 is set after the timing adjustment is performed by the adjustment register 12.

このような構成において,最初にBCT命令力−IR4
にセットされ,次にその命令が命令デコーダ5において
デコードされた時点でE11aAfセットされる。以後
,ループが終了すると,アンド回路13によってリセッ
トされるが,BBR11に保持しているGRN保持部1
1−1のGRN−Af他の命令で使用されるGRの番号
と同じである時に,比較回路l4によってリセットされ
るまで,BBR11力;有効であることを示すように働
く。また,この例においてd,SAとしてBCT命令の
アドレスカ二使用さtているが,/ソイプラインの構造
によっては,BCT命令に先行する命令のアドレス,或
はICへのアクセス単位に従った適当なアドレスであっ
ても良く,本質的には先取シすべき命令−7EBCT命
令であるか否かを検出することの可能なアドレスであれ
ばよい。BBR11のなかに対応する情報力;セットさ
れると,GR8のR1で指定されたレジスタ“0” には選択回路15.16を用いて値一力よ書き込まれる
。これは,ループの終了時点で指定された“0”7 GR8の内容がψになっているはずである為に,“0” 前以って一一を書いておくことを意味する。同時に,C
N保持部11−2の内容は計数回路(CTR)17によ
って値が“1#たけ減じられる。これは,最初のBCT
命令の実行による計数動作に対応する。
In such a configuration, first the BCT command force - IR4
Then, when the instruction is decoded by the instruction decoder 5, E11aAf is set. Thereafter, when the loop ends, it is reset by the AND circuit 13, but the GRN holding unit 1 held in the BBR 11
When the GRN-Af of 1-1 is the same as the GR number used in another instruction, it works to indicate that the BBR11 is valid until it is reset by the comparator circuit 14. Also, in this example, the address of the BCT instruction is used as d and SA, but depending on the structure of the line, the address of the instruction preceding the BCT instruction or an appropriate address according to the unit of access to the IC may be used. It may be an address, and essentially any address that can detect whether or not it is an instruction-7EBCT instruction that should be preempted may be used. Corresponding information in BBR11: When set, a value is written to register "0" designated by R1 of GR8 using selection circuits 15 and 16. This means that 11 is written in advance of "0" because the contents of "0" 7GR8 specified at the end of the loop should be ψ. At the same time, C
The value of the content of the N holding unit 11-2 is decreased by "1#" by the counting circuit (CTR) 17.
Corresponds to counting operations by executing instructions.

SA保持部11−4の内容は,Ellai:セットされ
ている時は常にIAC1から与えられる先取シ命令アド
レスとアドレス比較器(ACP)18において比較され
ており,結果が一致を示したときにはIAC1からの先
取り命令アト9レスを選択回路19によシ選択回路20
を通して与えられる値に換えるように働く。これによp
,CNの示すループ回数の間,BCT命令を実行する代
シにBCT命令の先取りのタイミングで分岐先命令を先
取シするように動作することとなる。一方,CN保持部
11−2の内容はACP18が一致を示す毎にCTR1
7によって計数され,再セットされると共に,比較回路
20で゛1”と比較される。もし,比較回路2oが一致
を検出すると,次のBCT命令はループの最後であるこ
とを示すものであるから,選択回路21によって選択さ
れ,選択回路19に与えられるアドレスは,それまでの
BA保持部11−3の内容に代ってアドレス調整加算回
路(ATA)22の出カが選択されるようになる。AT
A22は,SA保持部11−4の持つBCT命令のアド
レスからBCT命令の次に並んでいる命令のアドレスを
与える為の加算回路であり,4バイト境界内のBCT命
令の位置やBCT命令の長さによって加算値が異なる。
The contents of the SA holding unit 11-4 are always compared with the preemption command address given from IAC1 in the address comparator (ACP) 18 when Ellai: is set, and when the result shows a match, the content is read from IAC1. The prefetch instruction at 9 is selected by the selection circuit 19 and the selection circuit 20
It works to convert to the value given through. This p
During the number of loops indicated by , CN, the branch destination instruction is preempted at the timing of prefetching the BCT instruction on behalf of executing the BCT instruction. On the other hand, the contents of the CN holding unit 11-2 are changed to CTR1 every time the ACP 18 indicates a match.
7 and reset, and compared with "1" in the comparison circuit 20. If the comparison circuit 2o detects a match, the next BCT instruction indicates the end of the loop. , the address selected by the selection circuit 21 and given to the selection circuit 19 is such that the output of the address adjustment adder circuit (ATA) 22 is selected instead of the previous contents of the BA holding section 11-3. Naru.AT
A22 is an adder circuit for giving the address of the instruction next to the BCT instruction from the address of the BCT instruction held in the SA holding unit 11-4, and it calculates the position of the BCT instruction within the 4-byte boundary and the length of the BCT instruction. The additional value differs depending on the size.

ループの最後が比較回路20で検出されている時に,A
CP]8が一致を検出すると,アンド回路13が働いて
Ellaをリセットし.BBR11を無効とすると共に
,選択回路19.21によシ与えられる先取り命令アド
レスはATA22の出力が選択され,BCT命令の次に
並んでいる命令を読出すようにシーケンスが変更されて
,ループを終了させる。
When the end of the loop is detected by the comparison circuit 20, A
CP]8 detects a match, the AND circuit 13 operates and resets Ella. In addition to disabling BBR11, the output of ATA22 is selected as the prefetch instruction address given by selection circuit 19.21, and the sequence is changed so that the instruction next to the BCT instruction is read out, thereby ending the loop. Terminate it.

一方,比較回路14は,BBR11が有効に働いている
間に.GRN保持部11−1の持つGR8の番号と同じ
レジスタが他の命令で使われると,GRS内にはその時
点では正しい内容が入っていない為,BBR11の機能
をキャンセルするように働く。即ち,IR4内にある命
令がGRN保持部11−1の持っGRNと同じGRNを
指定していることを比較回路14で検出すると,IR4
内の命令の実行を一時待期させ,その間にGRN保持部
11−1の内容を選択回路15を通してGR8に書込ア
ドレス(WA)として与えると共に,CN保持部11−
2の内容(この時点に於て指定されたGRが保持してい
るべき内容)を選択回路16を通してGR8に書込デー
タ(WD)として与えることによシ,指定されたGずの
内容を正しいものに修正してEllaをリセットする。
On the other hand, the comparator circuit 14 operates while the BBR 11 is working effectively. If a register with the same number as GR8 of the GRN holding unit 11-1 is used by another instruction, the function of the BBR 11 is canceled because the GRS does not contain the correct contents at that time. That is, when the comparator circuit 14 detects that the instruction in the IR4 specifies the same GRN as the GRN held by the GRN holding unit 11-1, the IR4
During this period, the contents of the GRN holding section 11-1 are given as a write address (WA) to the GR8 through the selection circuit 15, and the contents of the CN holding section 11-1 are given as a write address (WA) to the GR8 through the selection circuit 15.
By giving the contents of 2 (the contents that the designated GR should hold at this point) to GR8 as write data (WD) through the selection circuit 16, the contents of the designated GR can be corrected. Fix it and reset Ella.

最後に,上記の実施例によって得られる効果を第3図の
BCT命令実行タイムチャートを参照して説明する。こ
のタイムチャートの例は,主記憶装置上において,命令
がAllA21A31B,Cの順に並んでおり,命令B
がBCT命令,BAが命令AIを指すものとして示して
ある。いま,命令Bを最初に実行する時は,BBR11
には内容がまだ準備されていない為,従来装置と同様に
BCT命令の動作として3クロックの実行時間を要した
後に命令Alに分岐する。なお,各命令は個々の命令の
実行時間としては3クロックづつ要しているが,従来技
術で知られるとうり,パイプライン制御方式を採用して
いる為にノぐイゾラインが充分うまく働く場合は,見か
け上1クロックで1つの命令が実行されてしまうように
見える。しかし,BCT命令により行われる分岐動作は
,命令のシーケンスを乱すものであシ,通常はz4’イ
ブラインの効果が消えてしまう。タイムチャートに見ら
れる最初の命令シーケンスAI−A2−A3−B−A.
がこの事実を示している。ループ中のBCT命令(命令
B)は,BBR11が働いている為,命令として実行さ
れることはなく々る。そして,命令の実行はシーケンス
Al−A2−A3−Al・・・を取ることとなり,全て
の命令が見かけ上1クロックで実行され,ノクイプライ
ンが理想的に働くことになる。タイムチャートに於ける
2回目以降に繰返し中の命令A.以下は,この事実を示
している。ループの最後では,BBR11によシ命令の
最後が検出され,BCT命令(命令B)は実行されるこ
となく,命令Cにシーケンスが移る。このことは,タイ
ムチャートにおける最後の段階に見られる。
Finally, the effects obtained by the above embodiment will be explained with reference to the BCT instruction execution time chart of FIG. In this example of a time chart, the instructions are arranged in the order of AllA21A31B and C on the main memory, and the instructions are B.
is shown as indicating the BCT instruction and BA as indicating the instruction AI. Now, when executing instruction B for the first time, BBR11
Since the contents have not yet been prepared, the BCT instruction takes three clocks to execute as in the conventional device, and then branches to the instruction Al. Note that each instruction requires three clocks to execute each individual instruction, but as is known in the prior art, since the pipeline control method is adopted, if the Nog Iso Line works well enough, , it appears that one instruction is executed in one clock. However, the branch operation performed by the BCT instruction disturbs the instruction sequence, and normally the effect of the z4' Eve line disappears. The first instruction sequence AI-A2-A3-B-A. seen in the time chart.
shows this fact. The BCT instruction (instruction B) in the loop is rarely executed as an instruction because the BBR 11 is working. Then, the instructions are executed in the sequence Al-A2-A3-Al, . . . , and all the instructions are apparently executed in one clock, so that the no-quip line works ideally. Instruction A being repeated from the second time onwards in the time chart. The following illustrates this fact. At the end of the loop, the BBR 11 detects the end of the instruction, and the sequence moves to instruction C without executing the BCT instruction (instruction B). This can be seen in the last step in the time chart.

以上の説明によシ明らかなように,本発明によれば,計
数分岐パイiRスレジスタにょシ最初に与えられたとき
以外,BCT命令を見かけ上実行することなしに命令シ
ーケンスを正しく制御することによって,BCT命令を
用いたループを有するプログラムを高速で実行でき,処
理効率を向上すべく大きな効果が得られる。
As is clear from the above description, according to the present invention, by correctly controlling the instruction sequence without apparently executing the BCT instruction except when the counting branch path register is first given, , BCT instructions can be executed at high speed, and a great effect can be obtained in improving processing efficiency.

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

第1図は本発明に適用される命令型式の例を示すフォー
マット,第2図は本発明による実施例の構成を示すブロ
ック図,第3図は,第2図の実施例におけるBCT命令
の実行例を説明するためのタイムチャートである。 図において1はアドレス供給回路(IAC),2は命令
キャッシュ回路(IC),3は命令境界整列回路(AL
),4は命令レジスタ(IR),5は命令デコーダ,6
はアドレス加算回路(AA),7[べ−スレノスタ(B
R),8は汎用レジスタ(GR),9はオ被ランドキャ
ッシュ回路(QC),10は演算実行部(EU),11
は計数分岐バイieスレジスタ(BBR).11aは有
効表示F/F(E),11−1は汎用レジスタ番号(G
RN)保持部,11−2は計数値化 (CN)保持部,113は分岐クアドレス(BA)保持
部,11−4は監視アドレス(SA)保持部,12は調
整レジスタ,13はアンド回路,14.20は比較回路
,15,16,19.21は選択回路,17は計数回路
(CTR),18はアドレス比較器(ACP),22=
はアドレス調整加算回路(ATA)である0 232−
Fig. 1 is a format showing an example of an instruction type applied to the present invention, Fig. 2 is a block diagram showing the configuration of an embodiment according to the present invention, and Fig. 3 is an execution of the BCT instruction in the embodiment of Fig. 2. It is a time chart for explaining an example. In the figure, 1 is an address supply circuit (IAC), 2 is an instruction cache circuit (IC), and 3 is an instruction boundary alignment circuit (AL).
), 4 is an instruction register (IR), 5 is an instruction decoder, 6
is the address adder circuit (AA), 7 [base reno star (B)
R), 8 is a general-purpose register (GR), 9 is an overland cache circuit (QC), 10 is an arithmetic execution unit (EU), 11
is the counting branch bias register (BBR). 11a is the valid display F/F (E), 11-1 is the general register number (G
RN) holding unit, 11-2 is a count conversion (CN) holding unit, 113 is a branch address (BA) holding unit, 11-4 is a monitoring address (SA) holding unit, 12 is an adjustment register, and 13 is an AND circuit. , 14.20 is a comparison circuit, 15, 16, 19.21 is a selection circuit, 17 is a counting circuit (CTR), 18 is an address comparator (ACP), 22=
is the address adjustment adder circuit (ATA) 0 232-

Claims (1)

【特許請求の範囲】[Claims] 1指定された汎用レジスタの保持する◆嶺値を計数し,
該計数結果によシ分岐の有無を決定して計数分岐命令を
実行する情報処理装置に於で,先取り命令アドレスを供
給するアドレス供給回路と,計数値を計数する計数回路
と,計数分岐命令の実行が予定されていることを監視す
る為の監視命令アドレスと前記アドレス供給回路から供
給される先取り命令アドレスとを比較するアドレス比較
回路と,1組以上の計数分岐バイパスレジスタとを含み
,前記計数分岐バイパスレジスタには,前記汎用レノス
タの汎用レジスタ番号と該汎用レジスタの保持する計数
値と分岐先アドレスと前記監視命令アドレスとを各々保
持する部分を備え,計数分岐命令の実行時に,該計数分
岐命令に対応する情報を前記計数分岐バイパスレジスタ
にセットせしめ,前記アドレス比較回路によって次に先
取シすべき命令として該計数分岐命令が予定されている
ことが判明した場合,前記計数回路を働かせると共に前
記計数値の内容に従って前記分岐先アドレスによシ命令
を先取りすることを特徴とする情報処理装置に於ける高
速計数分岐実行方式。
1 Count the ◆ peak value held in the specified general-purpose register,
In an information processing device that executes a counting branch instruction by determining whether or not to branch based on the counting result, an address supply circuit that supplies a prefetch instruction address, a counting circuit that counts a count value, and a counting branch instruction an address comparison circuit that compares a monitor instruction address for monitoring scheduled execution with a prefetch instruction address supplied from the address supply circuit; and one or more sets of counting branch bypass registers; The branch bypass register includes a part that holds the general-purpose register number of the general-purpose register, the count value held by the general-purpose register, the branch destination address, and the monitoring instruction address, and when the counting branch instruction is executed, the counting branch Information corresponding to the instruction is set in the counting branch bypass register, and when it is determined by the address comparison circuit that the counting branch instruction is scheduled as the next instruction to be preempted, the counting circuit is activated and the counting branch bypass register is set. A high-speed counting branch execution method in an information processing device, characterized in that a branch instruction is prefetched at the branch destination address according to the contents of a count value.
JP541182A 1982-01-19 1982-01-19 High-speed count branch executing system Granted JPS58123141A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP541182A JPS58123141A (en) 1982-01-19 1982-01-19 High-speed count branch executing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP541182A JPS58123141A (en) 1982-01-19 1982-01-19 High-speed count branch executing system

Publications (2)

Publication Number Publication Date
JPS58123141A true JPS58123141A (en) 1983-07-22
JPS6232506B2 JPS6232506B2 (en) 1987-07-15

Family

ID=11610399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP541182A Granted JPS58123141A (en) 1982-01-19 1982-01-19 High-speed count branch executing system

Country Status (1)

Country Link
JP (1) JPS58123141A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61127035A (en) * 1984-11-26 1986-06-14 Hitachi Ltd Processor containing repetition control circuit
JPS62159228A (en) * 1986-01-07 1987-07-15 Nec Corp Instruction prefetching device
JPS648445A (en) * 1987-06-30 1989-01-12 Mitsubishi Electric Corp Data processor equipped with branching predictive function
JPH02166520A (en) * 1988-12-21 1990-06-27 Matsushita Electric Ind Co Ltd Data processor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3807005C1 (en) * 1988-03-04 1989-02-23 Preh, Elektrofeinmechanische Werke Jakob Preh Nachf. Gmbh & Co, 8740 Bad Neustadt, De

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61127035A (en) * 1984-11-26 1986-06-14 Hitachi Ltd Processor containing repetition control circuit
JPS62159228A (en) * 1986-01-07 1987-07-15 Nec Corp Instruction prefetching device
JPS648445A (en) * 1987-06-30 1989-01-12 Mitsubishi Electric Corp Data processor equipped with branching predictive function
JPH02166520A (en) * 1988-12-21 1990-06-27 Matsushita Electric Ind Co Ltd Data processor

Also Published As

Publication number Publication date
JPS6232506B2 (en) 1987-07-15

Similar Documents

Publication Publication Date Title
EP1236094B1 (en) Branch instruction for multithreaded processor
US6675235B1 (en) Method for an execution unit interface protocol and apparatus therefor
EP1214660B1 (en) Sram controller for parallel processor architecture including address and command queue and arbiter
US8316191B2 (en) Memory controllers for processor having multiple programmable units
US4541046A (en) Data processing system including scalar data processor and vector data processor
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
JP2503164B2 (en) Data processing system
JPH0463430B2 (en)
KR100956970B1 (en) System and method for performing masked store operations in a processor
CN109997109B (en) Stream engine with extraction advance hysteresis
US11204770B2 (en) Microprocessor having self-resetting register scoreboard
JPH02140831A (en) Data processor
US4287561A (en) Address formulation interlock mechanism
US5504925A (en) Apparatus and method for implementing interrupts in pipelined processors
US20090177868A1 (en) Apparatus, system, and method for discontiguous multiple issue of instructions
JPH08221272A (en) Method for loading of instruction onto instruction cache
JPS58123141A (en) High-speed count branch executing system
US6842812B1 (en) Event handling
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US6581086B1 (en) Multiply and accumulate unit (MAC) and method therefor
US7093254B2 (en) Scheduling tasks quickly in a sequential order
US5208915A (en) Apparatus for the microprogram control of information transfer and a method for operating the same
JPH02159624A (en) First-in first-out register device
EP0306891A2 (en) Pipelined slave protocol for high performance CPU-FPU cluster
EP0012242A1 (en) Digital data processor for word and character oriented processing