JP2781779B2 - Branch control circuit - Google Patents

Branch control circuit

Info

Publication number
JP2781779B2
JP2781779B2 JP13715996A JP13715996A JP2781779B2 JP 2781779 B2 JP2781779 B2 JP 2781779B2 JP 13715996 A JP13715996 A JP 13715996A JP 13715996 A JP13715996 A JP 13715996A JP 2781779 B2 JP2781779 B2 JP 2781779B2
Authority
JP
Japan
Prior art keywords
branch
address
data
instruction
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP13715996A
Other languages
Japanese (ja)
Other versions
JPH09319579A (en
Inventor
光充 西村
Original Assignee
日本電気アイシーマイコンシステム株式会社
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 日本電気アイシーマイコンシステム株式会社 filed Critical 日本電気アイシーマイコンシステム株式会社
Priority to JP13715996A priority Critical patent/JP2781779B2/en
Publication of JPH09319579A publication Critical patent/JPH09319579A/en
Application granted granted Critical
Publication of JP2781779B2 publication Critical patent/JP2781779B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】情報処理システムの命令実行
制御に関し、特に非パイプライン処理方式の分岐制御回
路に関する。
[0001] 1. Field of the Invention [0002] The present invention relates to instruction execution control of an information processing system, and more particularly to a non-pipeline processing type branch control circuit.

【0002】[0002]

【従来の技術】コンピュータの分岐処理を高速化する方
法としては、特開平2−173825号公報(以下従来
例1という)で述べられている分岐前アドレステーブ
ル、分岐後アドレステーブルを備え、分岐命令のフェッ
チ時間を削除する方式、また、従来から知られている方
法としては、「マイクロプログラミング」(産業図書株
式会社発行)のP.45〜P.46で述べられているマ
イクロプログラムのマイクロ命令の中に次に実行すべき
マイクロ命令を指し示すアドレス部を設けておく方式
(以下、ネクストアドレス方式という)がある。ネクス
トアドレス方式については後述する。
2. Description of the Related Art As a method of accelerating the branch processing of a computer, there is provided a pre-branch address table and a post-branch address table described in Japanese Patent Application Laid-Open No. 2-173825 (hereinafter referred to as Conventional Example 1). As a method for deleting the fetch time of a program, a conventionally known method is described in “Microprogramming” (published by Sangyo Tosho Co., Ltd.). 45-P. There is a method (hereinafter, referred to as a next address method) in which an address portion indicating the microinstruction to be executed next is provided in the microinstructions of the microprogram described in 46. The next address method will be described later.

【0003】まず、従来例1について、図10のブロッ
ク図、図11並びに図12のプログラム例を示す模式図
を用いて説明する。図10において、本回路はメモリ
1,命令バッファ2,デコーダ/実行ユニット3,プロ
グラムカウンタ部4及び分岐テーブル部904から構成
される。
First, Conventional Example 1 will be described with reference to a block diagram of FIG. 10 and schematic diagrams showing program examples of FIGS. 11 and 12. 10, the circuit includes a memory 1, an instruction buffer 2, a decoder / execution unit 3, a program counter unit 4, and a branch table unit 904.

【0004】プログラムカウンタ部4によってメモリ1
上の次に実行すべき命令の格納アドレスを指定し、命令
バッファ2に読み込み(以降フェッチ処理と称す)、デ
コーダ/実行ユニット3に於いて命令を解読し実行す
る。分岐テーブル部904は分岐前アドレステーブル9
12,分岐後アドレステーブル911及びアドレス比較
器906を備え、それぞれのテーブルへは専用命令を用
いて所望の分岐動作の前にアドレスデータを書き込む。
プログラムカウンタ部4はプログラムカウンタ9,イン
クリメンタ7及びセレクタ8から構成され、セレクタ8
はアドレス比較器906の比較結果により、非一致時は
インクリメンタ7を、一致時は分岐後アドレステーブル
を選択するようになっている。
[0004] The memory 1 is controlled by the program counter unit 4.
The storage address of the instruction to be executed next is specified, read into the instruction buffer 2 (hereinafter referred to as fetch processing), and the decoder / execution unit 3 decodes and executes the instruction. The branch table section 904 stores the pre-branch address table 9
12, a post-branch address table 911 and an address comparator 906, and address data is written into each table using a dedicated instruction before a desired branch operation.
The program counter unit 4 includes a program counter 9, an incrementer 7, and a selector 8, and a selector 8
According to the comparison result of the address comparator 906, the incrementer 7 is selected when there is no match, and the address table after branching is selected when there is a match.

【0005】通常の非分岐命令の場合、プログラムカウ
ンタ9のアドレスデータはメモリ1へ供給すると共にイ
ンクリメンタ7へ供給され、インクリメンタ7によりイ
ンクリメントされたアドレスデータがセレクタ8を介し
プログラムカウンタ9へ書き戻される。本動作を繰り返
す事により、メモリ1上の命令コードを順次フェッチす
る。分岐命令の場合、分岐前アドレステーブル912上
のアドレスデータとプログラムカウンタ9のアドレスデ
ータをアドレス比較器906によって比較し、これらが
一致した場合、一致した分岐前アドレステーブル912
に対応する分岐後アドレステーブル911のアドレスデ
ータをセレクタ8を介しプログラムカウンタ9へ設定す
る。以上の動作により、分岐動作を実現する。
In the case of a normal non-branch instruction, the address data of the program counter 9 is supplied to the memory 1 and to the incrementer 7, and the address data incremented by the incrementer 7 is written to the program counter 9 via the selector 8. Will be returned. By repeating this operation, instruction codes on the memory 1 are sequentially fetched. In the case of a branch instruction, the address data on the pre-branch address table 912 and the address data of the program counter 9 are compared by the address comparator 906, and if they match, the matched pre-branch address table 912
Is set in the program counter 9 via the selector 8 after the branching in the address table 911 corresponding to. The branch operation is realized by the above operation.

【0006】いま、図11のプログラムを実行する場合
を考える。処理1乃至処理6は分岐命令を含む任意の命
令、JUMPnnnnHはnnnnH番地への分岐命令
を表す。アドレス0002H番地には分岐命令があり、
本方式で分岐処理を実現するため0002H番地実行以
前に、分岐前アドレステーブル912へは分岐前アドレ
スである“0001H”を、分岐後アドレステーブル9
11へは分岐後アドレスである“0100H”を専用命
令により書き込む必要がある。即ち、ユーザは処理2の
前に2つの専用命令をコーディングしなければいけな
い。同様に、0102H番地、0202H番地の分岐命
令についても、1つの分岐処理に対し2つの専用命令を
コーディングしておく必要がある。
Now, consider the case where the program shown in FIG. 11 is executed. Processes 1 to 6 represent any instruction including a branch instruction, and JUMPnnnnH represents a branch instruction to address nnnnH. There is a branch instruction at address 0002H,
Before the execution of the address 0002H, “0001H”, which is the pre-branch address, is stored in the pre-branch address table 912 before the execution of the address 0002H in order to realize the branch processing by this method.
It is necessary to write “0100H”, which is the post-branch address, to 11 by a dedicated instruction. That is, the user must code two dedicated instructions before process two. Similarly, for the branch instructions at addresses 0102H and 0202H, it is necessary to code two dedicated instructions for one branch process.

【0007】これらの変更を加えたプログラム例を図1
2に示す。図12では、図11のプログラムに対し専用
命令を追加しているため処理1乃至処理4の格納されて
いるアドレスは異なっている。図12において、電源投
入後0000H番地から命令フェッチと命令解読、実行
が開始される。0000H番地の分岐前アドレステーブ
ル書き込み専用命令により、分岐前アドレステーブル9
12に処理2の格納アドレスである0001Hを書き込
み、0001H番地の分岐後アドレステーブル書き込み
専用命令により、分岐後アドレステーブル911に分岐
先である0100Hを書き込む。以後、処理1、処理2
をフェッチ、実行するが、フェッチ時のプログラムカウ
ンタ9の値と分岐前アドレステーブル912上の値をア
ドレス比較器906によって比較する。処理2を格納し
ている0003Hをフェッチする時、アドレス比較器9
06はアドレス一致信号を出力し、セレクタ8に入力さ
れる。また分岐後アドレステーブルには分岐前アドレス
テーブルの一致データの位置情報が入力され、位置情報
により分岐後アドレステーブル911上の対応アドレス
データを選択し、セレクタ8に供給する。セレクタ8は
アドレス比較器906からのアドレス一致信号により分
岐後アドレステーブル911からのアドレスデータであ
る“0100H”を選択し、プログラムカウンタ9に供
給する。従って、0003Hをフェッチした後は010
0Hからフェッチが行われ、分岐動作を実現する。以
降、同様に分岐前アドレステーブル912、分岐後アド
レステーブル911への書き込みを行い、分岐動作を行
う。
FIG. 1 shows an example of a program with these changes.
It is shown in FIG. In FIG. 12, the addresses stored in processing 1 to processing 4 are different because a dedicated instruction is added to the program in FIG. In FIG. 12, instruction fetch, instruction decoding, and execution are started from address 0000H after power-on. The before-branch address table 9 at address 0000H is written in
12 is written with 0001H, which is the storage address of process 2, and the branch destination address table 911 is written with 0100H, which is the branch destination, in the post-branch address table 911 at address 0001H. Thereafter, processing 1 and processing 2
The value of the program counter 9 at the time of the fetch is compared with the value on the pre-branch address table 912 by the address comparator 906. When fetching 0003H storing the processing 2, the address comparator 9
06 outputs an address match signal and is input to the selector 8. The post-branch address table receives position information of the matching data of the pre-branch address table, selects corresponding address data on the post-branch address table 911 based on the position information, and supplies the selected address data to the selector 8. The selector 8 selects “0100H”, which is the address data from the post-branch address table 911, based on the address match signal from the address comparator 906, and supplies it to the program counter 9. Therefore, after fetching 0003H, 010
Fetch is performed from 0H, and a branch operation is realized. Thereafter, similarly, writing to the pre-branch address table 912 and the post-branch address table 911 is performed to perform the branch operation.

【0008】次に、従来例としてネクストアドレス方式
を図13を用いて説明する。図13はプログラムカウン
タ9からなるプログラムカウンタ部124により選択さ
れる、命令部123とネクストアドレス部122から構
成されるメモリ部121と、命令部123の出力が接続
された命令バッファ2と、命令バッファ2の出力が接続
されたデコーダ/実行ユニット3で構成される。また、
ネクストアドレス部122の出力は、プログラムカウン
タ9の入力となっている。
Next, a next address method will be described as a conventional example with reference to FIG. FIG. 13 shows a memory section 121 composed of an instruction section 123 and a next address section 122 selected by a program counter section 124 composed of the program counter 9, an instruction buffer 2 to which the output of the instruction section 123 is connected, and an instruction buffer section. 2 comprises a decoder / execution unit 3 to which the two outputs are connected. Also,
The output of the next address section 122 is input to the program counter 9.

【0009】ネクストアドレス部122と命令部123
は同一アドレスに割り付けられており、命令が命令バッ
ファ2にフェッチされると同時にネクストアドレス部1
22がプログラムカウンタ9に転送される。即ち、ネク
ストアドレス方式では全命令に分岐アドレスが付加さ
れ、命令フェッチと同時に分岐アドレスをフェッチする
ため、分岐命令のフェッチ時間は存在しない。
Next address section 122 and instruction section 123
Are assigned to the same address, and the next time the instruction is fetched into the instruction buffer 2, the next address 1
22 is transferred to the program counter 9. That is, in the next address method, a branch address is added to all instructions, and the branch address is fetched at the same time as the instruction fetch, so that there is no fetch time for the branch instruction.

【0010】[0010]

【発明が解決しようとする課題】第1の問題点は、従来
例1では、分岐前アドレステーブル912と分岐後アド
レステーブル911に登録できるアドレスの個数には制
約がある事である。そのため、比較的大規模なプログラ
ムでは分岐前アドレステーブル912と分岐後アドレス
テーブル911を頻繁に書き換える必要があり、パフォ
ーマンスは低下する。その理由は、アドレス比較器90
6によりプログラムカウンタ9のアドレス値と分岐前ア
ドレステーブル912上の複数個のアドレスデータを比
較しなければいけないためである。比較動作はフェッチ
動作毎の1システムクロック乃至数システムクロック間
で行うため、比較できるアドレスデータの個数は限られ
る。
The first problem is that in the prior art 1, the number of addresses that can be registered in the pre-branch address table 912 and the post-branch address table 911 is limited. Therefore, in a relatively large-scale program, it is necessary to frequently rewrite the pre-branch address table 912 and the post-branch address table 911, and the performance is reduced. The reason is that the address comparator 90
This is because it is necessary to compare the address value of the program counter 9 with a plurality of pieces of address data on the pre-branch address table 912 according to No. 6. Since the comparison operation is performed between one system clock and several system clocks for each fetch operation, the number of address data that can be compared is limited.

【0011】第2の問題点は、従来例1では、分岐命令
のフェッチ時間に変わり、テーブルの書き換え命令のフ
ェッチと書き換え時間が新たに発生しパフォーマンスが
低下する事である。その理由は、分岐前アドレステーブ
ル912のアドレスデータとプログラムカウンタ9のア
ドレス値が一致した場合、分岐後アドレステーブル91
1上の分岐前アドレステーブル912に対応するアドレ
スデータを選択し、読み出し、セレクタ8を介し、プロ
グラムカウンタ9に書き込む、という一連の動作を行う
必要があり、所定の動作時間を要すためである。
The second problem is that in the first conventional example, the fetch and rewrite time of the table rewrite instruction is newly generated instead of the fetch time of the branch instruction, and the performance is deteriorated. The reason is that if the address data of the pre-branch address table 912 matches the address value of the program counter 9, the post-branch address table 91
This is because it is necessary to perform a series of operations of selecting and reading the address data corresponding to the pre-branch address table 912 on 1 and writing the data to the program counter 9 via the selector 8, which requires a predetermined operation time. .

【0012】また、ネクストアドレス方式での問題点は
メモリ容量が増加することにより回路面積が増大化し、
製造原価が大幅に上がる事である。その理由は、全ての
命令ステップに於いて分岐アドレスを記憶させるため、
例えば64Kのメモリ空間を持つコンピュータシステム
の場合、 16bit×64K=1Mbit のメモリ素子を必要とする。その上、分岐を必要としな
い命令ステップに於いても分岐アドレスは記憶せねばな
らず、通常のプログラムの大部分のステップは分岐を必
要としない事を考慮すれば、増加した1Mbitの大部
分は無駄である。
Another problem with the next address method is that a circuit area increases due to an increase in memory capacity.
This means that the production cost will increase significantly. The reason is that the branch address is stored in every instruction step,
For example, in the case of a computer system having a 64K memory space, a memory element of 16 bits × 64K = 1 Mbit is required. In addition, the branch address must be stored even in an instruction step that does not require a branch. Considering that most steps in a normal program do not require a branch, most of the increased 1 Mbit is used. It is useless.

【0013】[0013]

【課題を解決するための手段】本発明の分岐制御回路
は、プログラムカウンタと比較する分岐前アドレスバッ
ファと、分岐時にプログラムカウンタに転送する分岐ア
ドレスバッファと、次に分岐前アドレスバッファ並びに
分岐後アドレスバッファに供給すべき分岐情報テーブル
データのアドレスを分岐情報テーブル上に具備する。
A branch control circuit according to the present invention comprises a pre-branch address buffer for comparing with a program counter, a branch address buffer for transferring to the program counter at the time of branch, a next pre-branch address buffer and a post-branch address. An address of the branch information table data to be supplied to the buffer is provided on the branch information table.

【0014】より具体的には、分岐情報テーブル(図1
の14)の分岐前アドレス(図2)と、分岐後アドレス
(図2)と、次に選択すべき分岐情報テーブルのアドレ
スであるネクストテーブルアドレス(図2)を選択し、
かつ選択されたデータを分岐前アドレスバッファ(図1
の12)と分岐後アドレスバッファ(図1の11)に格
納する分岐情報制御回路(図1の13)と、プログラム
カウンタ(図1の9)と分岐前アドレスバッファ(図1
の12)を比較するアドレス比較器(図1の6)を有
し、一致時には分岐後アドレスバッファ(図1の11)
を選択しプログラムカウンタ(図1の9)へ格納するセ
レクタ(図1の8)を有する。
More specifically, a branch information table (FIG. 1)
14), the pre-branch address (FIG. 2), the post-branch address (FIG. 2), and the next table address (FIG. 2) which is the address of the branch information table to be selected next.
The selected data is stored in the pre-branch address buffer (FIG. 1).
12), a branch information control circuit (13 in FIG. 1) to be stored in the post-branch address buffer (11 in FIG. 1), a program counter (9 in FIG. 1), and an address buffer before branch (FIG. 1).
12), and an address comparator (11 in FIG. 1) after branching when a match occurs.
Is selected and stored in the program counter (9 in FIG. 1).

【0015】前述のように構成してなる本発明の分岐制
御回路は、分岐前アドレスバッファ並びに分岐後アドレ
スバッファに供給すべき分岐情報テーブルデータのアド
レスを分岐情報テーブルに有することにより、プログラ
ムカウンタと比較するアドレスデータは一意に決める事
が出来、これを分岐前アドレスバッファに格納し、プロ
グラムカウンタと比較する。同様に、分岐時のアドレス
データは一意に決める事が出来、これを分岐後アドレス
バッファに格納し、分岐時にはこれをプログラムカウン
タに転送する。このため、プログラムカウンタとの比較
動作並びに分岐時のプログラムカウンタへの転送処理を
軽減し、高速動作可能とする。
The branch control circuit of the present invention having the above-described configuration has a branch information table having addresses of branch information table data to be supplied to the pre-branch address buffer and the post-branch address buffer. The address data to be compared can be uniquely determined, and this is stored in the pre-branch address buffer and compared with the program counter. Similarly, address data at the time of branching can be uniquely determined, and this is stored in an address buffer after branching, and transferred to a program counter at the time of branching. For this reason, the comparison operation with the program counter and the transfer processing to the program counter at the time of branching are reduced, and high-speed operation is enabled.

【0016】[0016]

【発明の実施の形態】次に、本発明の第1の実施の形態
について図面を参照して詳細に説明する。図1は本発明
の第1の実施の形態に関わるプログラム制御回路を備え
たコンピュータシステム及びプログラムカウンタ部の一
例を示すブロック図、図2は図1の分岐情報テーブルの
構成例を示す模式図である。図2のテーブルのデータは
図11のプログラム例から分岐情報を取り出し、分岐情
報テーブルを構成した例である。
Next, a first embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing an example of a computer system including a program control circuit and a program counter unit according to the first embodiment of the present invention, and FIG. 2 is a schematic diagram showing a configuration example of a branch information table in FIG. is there. The data of the table in FIG. 2 is an example in which branch information is extracted from the program example in FIG. 11 and a branch information table is configured.

【0017】図1に示すコンピュータシステムは、メモ
リ1と、命令バッファ2とデコーダ/実行ユニット3と
プログラムカウンタ部4と、分岐情報テーブル部5とを
備えており、メモリ1に格納されている命令を順次読み
出して実行する。メモリ1には各種の処理命令が格納さ
れており、前記プログラムカウンタ部4から出力される
アドレスデータにより指定された番地に格納されている
命令を読み出してこれを命令バッファ2に供給する。命
令バッファ2はメモリ1から出力される命令をフェッチ
してこれをデコーダ/実行ユニット3に供給する。デコ
ーダ/実行ユニット3は、前記命令バッファ2から命令
を取り込んでこれをデコードして処理を実行する。分岐
情報テーブル5は、プログラムの実行前にアセンブル処
理乃至はコンパイル処理により予めデータを格納してあ
る分岐情報テーブル14と、分岐情報制御回路13と、
分岐前アドレスバッファ12と、分岐後アドレスバッフ
ァ11とアドレス比較器6から構成される。分岐情報テ
ーブル14は分岐情報テーブルアドレスによりアドレス
される分岐前アドレステーブル141と、分岐後アドレ
ステーブル142と、ネクストテーブルアドレス143
により構成される。
The computer system shown in FIG. 1 includes a memory 1, an instruction buffer 2, a decoder / execution unit 3, a program counter unit 4, and a branch information table unit 5. Are sequentially read and executed. Various processing instructions are stored in the memory 1. The instruction stored in the address specified by the address data output from the program counter unit 4 is read out and supplied to the instruction buffer 2. The instruction buffer 2 fetches an instruction output from the memory 1 and supplies it to the decoder / execution unit 3. The decoder / execution unit 3 fetches an instruction from the instruction buffer 2, decodes the instruction, and executes the processing. The branch information table 5 includes a branch information table 14 in which data is stored in advance by an assembling process or a compiling process before execution of a program, a branch information control circuit 13,
It comprises an address buffer 12 before branching, an address buffer 11 after branching, and an address comparator 6. The branch information table 14 includes a pre-branch address table 141, a post-branch address table 142, and a next table address 143 addressed by a branch information table address.
It consists of.

【0018】分岐情報制御回路13は、分岐情報テーブ
ル14から出力されるネクストテーブルアドレスデータ
をアドレス比較器6から供給されるアドレス一致信号1
5をラッチクロックとする保持回路であるテーブルアド
レス131に保持し、分岐情報テーブル14のデータを
選択し、読み出した分岐前アドレスデータ並びに分岐後
アドレスデータを、それぞれ分岐前アドレスバッファ1
2並びに分岐後アドレスバッファ11に格納する。テー
ブルアドレス131はシステムリセット信号で“000
0H”に初期化される。アドレス比較器6はプログラム
カウンタ部4から出力されるアドレスデータと、分岐前
アドレスバッファ12に格納されているアドレスデータ
を比較する。プログラムカウンタ部4から出力されるア
ドレスデータと、分岐前アドレスバッファ12に格納さ
れているアドレスデータが一致したとき、アドレス比較
器6はアドレス一致信号15を発生し、これをプログラ
ムカウンタ部4に供給すると共に、分岐情報制御回路1
3に供給する。分岐情報制御回路13はネクストテーブ
ルアドレス143から供給されるアドレスをテーブルア
ドレス131にラッチする。プログラムカウンタ部4は
プログラムカウンタ9と、インクリメンタ7と、セレク
タ8により構成される。プログラムカウンタ9に格納さ
れているアドレスデータはインクリメンタ7に入力さ
れ、インクリメンタ7では次のアドレスデータを発生
し、セレクタ8に入力される。分岐情報テーブル5から
アドレス一致信号15が供給されていないときにはセレ
クタ8はインクリメンタ7の出力データを選択し、これ
をプログラムカウンタ9に供給する。分岐情報テーブル
部5からアドレス一致信号15が供給されたときにはセ
レクタ8は分岐後アドレスバッファ11の出力データを
選択し、これをプログラムカウンタ9に供給する。プロ
グラムカウンタ9はセレクタ8から供給されたアドレス
データを格納し、これをメモリ1に供給する。
The branch information control circuit 13 compares the next table address data output from the branch information table 14 with the address match signal 1 supplied from the address comparator 6.
5 is held in a table address 131 which is a holding circuit using a latch clock, the data of the branch information table 14 is selected, and the read pre-branch address data and the read post-branch address data are respectively stored in the pre-branch address buffer 1.
2 and stored in the address buffer 11 after branching. The table address 131 is “000” by a system reset signal.
The address comparator 6 compares the address data output from the program counter unit 4 with the address data stored in the pre-branch address buffer 12. The address output from the program counter unit 4 is initialized. When the data and the address data stored in the pre-branch address buffer 12 match, the address comparator 6 generates an address match signal 15 and supplies it to the program counter unit 4 and the branch information control circuit 1
Supply 3 The branch information control circuit 13 latches the address supplied from the next table address 143 to the table address 131. The program counter unit 4 includes a program counter 9, an incrementer 7, and a selector 8. The address data stored in the program counter 9 is input to the incrementer 7, where the next address data is generated and input to the selector 8. When the address match signal 15 is not supplied from the branch information table 5, the selector 8 selects the output data of the incrementer 7 and supplies it to the program counter 9. When the address match signal 15 is supplied from the branch information table section 5, the selector 8 selects the output data of the post-branch address buffer 11 and supplies this to the program counter 9. The program counter 9 stores the address data supplied from the selector 8 and supplies the address data to the memory 1.

【0019】次に、プログラムカウンタ部4について図
面を参照して詳細に説明する。
Next, the program counter section 4 will be described in detail with reference to the drawings.

【0020】図3は、プログラムカウンタ部4の構成例
を示すブロック図である。基準クロックをラッチクロッ
クとするプログラムカウンタ9とセレクタ8とインクリ
メンタ7で構成される。
FIG. 3 is a block diagram showing a configuration example of the program counter unit 4. It comprises a program counter 9 using a reference clock as a latch clock, a selector 8 and an incrementer 7.

【0021】インクリメンタ7は基準クロックを入力と
するインバータ73をラッチクロックとするラッチ回路
71とインクリメント回路72から構成される。プログ
ラムカウンタ9の値はインクリメント回路72に入力さ
れており、インクリメント回路72では、常に入力され
た値に“1”を加える動作を行う。つまり、プログラム
カウンタ9で保持する値が“0001H”のとき、イン
クリメント回路72では“1”を加算し、“0002
H”を生成する。このインクリメント回路72で“1”
加算された値はラッチ回路71に入力され基準クロック
の立ち下がりでラッチ回路71に保持される。セレクタ
8は、アドレス比較器6からの出力値のアドレス一致信
号15がインバータ83並びにバス開閉器82に接続さ
れ、インバータ83の出力はバス開閉器81に接続され
ている。バス開閉器81とバス開閉器82にはそれぞれ
バス出力としてラッチ回路71と、分岐後アドレスバッ
ファ11が接続され、バス開閉器81とバス開閉器82
出力は、インバータ73をラッチクロックとするラッチ
回路84に入力されている。いま、アドレス一致信号1
5が発生していない場合、バス開閉器82は“オフ”状
態となり、インバータ83が“1”となるためバス開閉
器81が“オン”し、ラッチ回路84にはラッチ回路7
1の値が入力され、基準クロックの立ち下がりのタイミ
ングでラッチ回路84にラッチされる。また、アドレス
一致信号15が発生している場合、インバータ83が
“0”となるためバス開閉器81が“オフ”状態とな
り、バス開閉器82が“オン”し、ラッチ回路84には
分岐後アドレスバッファ11が値が入力され、基準クロ
ックの立ち下がりのタイミングでラッチ回路84にラッ
チされる。
The incrementer 7 comprises a latch circuit 71 using an inverter 73 to which a reference clock is input as a latch clock, and an increment circuit 72. The value of the program counter 9 is input to the increment circuit 72, and the increment circuit 72 always performs an operation of adding "1" to the input value. That is, when the value held by the program counter 9 is “0001H”, the increment circuit 72 adds “1” and “0002”
H. The increment circuit 72 generates “1”.
The added value is input to the latch circuit 71 and held at the falling edge of the reference clock. In the selector 8, the address match signal 15 of the output value from the address comparator 6 is connected to the inverter 83 and the bus switch 82, and the output of the inverter 83 is connected to the bus switch 81. A latch circuit 71 and a post-branch address buffer 11 are connected to the bus switch 81 and the bus switch 82 as bus outputs, respectively.
The output is input to a latch circuit 84 using the inverter 73 as a latch clock. Now, address match signal 1
When the signal No. 5 is not generated, the bus switch 82 is in the “OFF” state, the inverter 83 is “1”, the bus switch 81 is “ON”, and the latch circuit 84
A value of 1 is input and latched by the latch circuit 84 at the falling timing of the reference clock. When the address match signal 15 is generated, the bus switch 81 is turned off because the inverter 83 is set to “0”, the bus switch 82 is turned “on”, and the latch circuit 84 The value is input to the address buffer 11 and is latched by the latch circuit 84 at the falling timing of the reference clock.

【0022】分岐情報テーブル5からアドレス一致信号
15が供給されていないときには、所定のタイミングで
命令を実行しているアドレスデータの値をインクリメン
トし、メモリ1に格納されている命令を順次出力され
る。分岐情報テーブル5からアドレス一致信号15が供
給されたときには分岐後アドレスバッファ11から出力
される分岐後アドレスデータを取り込み、メモリ1に格
納されている分岐先の命令を出力させ、また、分岐情報
テーブル14の保持しているテーブルアドレス131に
基づき、分岐前アドレスバッファ12,分岐後アドレス
バッファ11を更新する。
When the address match signal 15 is not supplied from the branch information table 5, the value of the address data executing the instruction is incremented at a predetermined timing, and the instructions stored in the memory 1 are sequentially output. . When the address match signal 15 is supplied from the branch information table 5, the post-branch address data output from the post-branch address buffer 11 is fetched, and the instruction of the branch destination stored in the memory 1 is output. The pre-branch address buffer 12 and the post-branch address buffer 11 are updated on the basis of the table address 131 held by 14.

【0023】次に、図4のプログラム例を示す模式図
と、図5の分岐動作を示すタイミングチャートを参照し
ながら第1の実施の形態の動作を説明する。図4は図1
1,図12のプログラムを第1の実施の形態に適用した
プログラム例である。図5のステージA乃至Hは説明の
ため付記したものであり、第1の実施の形態の回路動作
を示すものではない。
Next, the operation of the first embodiment will be described with reference to a schematic diagram showing a program example of FIG. 4 and a timing chart showing a branch operation of FIG. FIG. 4 shows FIG.
1 is a program example in which the program of FIG. 12 is applied to the first embodiment. Stages A to H in FIG. 5 are added for explanation, and do not show the circuit operation of the first embodiment.

【0024】プログラマは、図4の命令欄に記述してあ
るように、分岐命令を含んだ形でソースプログラムを作
成する。これは、通常の分岐命令を持つコンピュータシ
ステムのプログラムとソースレベルで完全に互換性を有
する事を意味する。次に、プログラムの実行前に図11
のプログラムをアセンブル処理乃至はコンパイル処理に
より、図2の分岐情報と、図4のプログラムに分け、図
2の分岐情報は分岐情報テーブル14に、図4のプログ
ラムはメモリ1に格納しておく。
The programmer creates a source program including a branch instruction as described in the instruction column of FIG. This means that it is completely compatible at the source level with a computer system program having ordinary branch instructions. Next, before executing the program, FIG.
4 is divided into the branch information of FIG. 2 and the program of FIG. 4 by assembling or compiling processing, and the branch information of FIG. 2 is stored in the branch information table 14 and the program of FIG.

【0025】図5において、電源投入後、システムリセ
ットがアクティブとなっており、ステージAでプログラ
ムカウンタ9は0000H番地に初期化される。ステー
ジBでプログラムカウンタ部4からアドレスデータ00
00Hがメモリ1に供給され、メモリ1から命令が読み
出され、命令バッファ2によりフェッチされ、デコード
/実行ユニット3で実行される。また、プログラムカウ
ンタ9から出力されたアドレスデータ“0000H”は
リセット期間中にインクリメント回路72に入力されイ
ンクリメント回路72で“1”が加算され“0001
H”が生成され、リセット期間並びにステージBの基準
クロックの立ち下がりでラッチ回路71にラッチされ
る。このとき、アドレス一致信号15は発生していない
ため、基準クロックの立ち下がりでセレクタ8のラッチ
回路84にラッチされ、インクリメンタ7に供給され、
ステージCでプログラムカウンタ9へインクリメントさ
れたアドレスデータが書き戻される。以上の一連の動作
により処理1,処理2をフェッチ、実行する。
In FIG. 5, after the power is turned on, the system reset is active, and in stage A, the program counter 9 is initialized to the address 0000H. At stage B, the address data 00
00H is supplied to the memory 1, the instruction is read from the memory 1, fetched by the instruction buffer 2, and executed by the decode / execute unit 3. The address data “0000H” output from the program counter 9 is input to the increment circuit 72 during the reset period, and “1” is added by the increment circuit 72 to “0001”.
H "is generated and latched by the latch circuit 71 at the reset period and at the fall of the reference clock of the stage B. At this time, since the address match signal 15 is not generated, the latch of the selector 8 is latched at the fall of the reference clock. Latched by the circuit 84 and supplied to the incrementer 7,
At stage C, the incremented address data is written back to the program counter 9. Processing 1 and processing 2 are fetched and executed by the above series of operations.

【0026】一方、電源投入後、ステージAで分岐情報
制御回路13は初期状態として分岐情報テーブルアドレ
スの“00”を選択している。分岐前アドレスの“00
01H”を読み出し、これを分岐前アドレスバッファ1
2に供給し、分岐前アドレスバッファ12はこれを格納
する。同様に、分岐後アドレスの“0100H”を読み
出し、これを分岐後アドレスバッファ11に供給し、分
岐後アドレスバッファ11はこれを格納する。次に、ス
テージBでネクストテーブルアドレスデータ“01H”
を読み出し、これを保持する。
On the other hand, after the power is turned on, in the stage A, the branch information control circuit 13 selects "00" of the branch information table address as an initial state. "00" of the address before branch
01H ”is read out and stored in the address buffer 1 before branching.
2 and the pre-branch address buffer 12 stores it. Similarly, the post-branch address “0100H” is read and supplied to the post-branch address buffer 11, and the post-branch address buffer 11 stores this. Next, in the stage B, the next table address data “01H”
Is read and held.

【0027】いま、ステージCでプログラムカウンタ部
4が“0001H”に進み、処理2をフェッチしたと
き、アドレス比較器6はプログラムカウンタ部4から出
力されるアドレスデータと分岐前アドレスバッファ12
のアドレスデータを比較し、アドレス一致信号15を発
生し、これをセレクタ8に供給する。セレクタ8はアド
レス一致信号15が入力された事により、ステージCの
基準クロックの立ち下がりのタイミングで分岐後アドレ
スバッファ11から出力される分岐後アドレスデータで
ある“0100H”を選択し、プログラムカウンタ9に
供給する。ステージDのタイミングで分岐後アドレスを
メモリ1に供給する。ステージCでプログラムカウンタ
9から出力されたアドレスデータ“0001H”はイン
クリメント回路72に入力されインクリメント回路72
で“1”が加算され“0002H”が生成され、ステー
ジCの基準クロックの立ち下がりでラッチ回路71にラ
ッチされる。しかし、このとき、アドレス一致信号15
が発生しているため、基準クロックの立ち下がりでセレ
クタ8には分岐後アドレスバッファ11の値である“0
100H”が入力されラッチ回路84にラッチされ、ス
テージDでプログラムカウンタ9へ分岐後アドレスバッ
ファ11のアドレスデータがラッチされる。従って、ス
テージCで0001Hをフェッチした後はステージDで
0100Hからフェッチが行われ、分岐動作を実現す
る。
When the program counter section 4 advances to "0001H" at stage C and fetches the processing 2, the address comparator 6 sets the address data output from the program counter section 4 and the address buffer 12 before branch.
And generates an address match signal 15, which is supplied to the selector 8. The selector 8 selects “0100H”, which is the post-branch address data output from the post-branch address buffer 11 at the falling timing of the reference clock of the stage C in response to the input of the address match signal 15, and the program counter 9 To supply. The address after the branch is supplied to the memory 1 at the timing of the stage D. The address data “0001H” output from the program counter 9 in stage C is input to the increment circuit 72 and
Is added to generate “0002H”, which is latched by the latch circuit 71 at the fall of the reference clock of the stage C. However, at this time, the address match signal 15
Has occurred, the selector 8 supplies the value of the post-branch address buffer 11 “0” at the falling of the reference clock.
100H "is input and latched by the latch circuit 84, the address data of the address buffer 11 is latched after branching to the program counter 9 at stage D. Therefore, after fetching 0001H at stage C, fetching from 0100H at stage D is performed. Performed to implement a branching operation.

【0028】一方、ステージCでアドレス比較器6から
アドレス一致信号15が分岐情報制御回路13に供給さ
れ、分岐情報制御回路13に保持しているテーブルアド
レス131のデータに基づき、分岐情報テーブル14の
01H番地を選択し、分岐前アドレスの“0101H”
を読み出し、これを分岐前アドレスバッファ12に供給
し、ステージDで分岐前アドレスバッファ12はこれを
格納する。同様に、分岐後アドレスの“0200Hを読
み出し、これを分岐後アドレスバッファ11に供給し、
ステージDで分岐後アドレスバッファ11はこれを格納
する。また、ステージDでネクストテーブルアドレスデ
ータ“02H”を読み出し、これを保持する。
On the other hand, in the stage C, the address match signal 15 is supplied from the address comparator 6 to the branch information control circuit 13, and based on the data of the table address 131 held in the branch information control circuit 13, the branch information table 14 Address 01H is selected and “0101H” of the address before branching is selected.
And supplies it to the pre-branch address buffer 12, and the pre-branch address buffer 12 stores this in stage D. Similarly, “0200H” of the post-branch address is read and supplied to the post-branch address buffer 11.
After branching at stage D, the address buffer 11 stores this. In the stage D, the next table address data "02H" is read and held.

【0029】以降、同様にアドレス比較器6によりプロ
グラムカウンタ部4から出力されるアドレスデータと分
岐前アドレスバッファ12のアドレスデータの比較を行
い、一致しないときにはプログラムカウンタ9のアドレ
スデータをインクリメントし、メモリ1に供給し順次命
令処理を実行する。アドレス比較器6により、一致した
ときには分岐後アドレスバッファ11のアドレスデータ
をプログラムカウンタ9に供給し、メモリ1に分岐後ア
ドレスを供給し分岐先の命令処理をフェッチし、分岐動
作を行う。
Thereafter, similarly, the address comparator 6 compares the address data output from the program counter unit 4 with the address data in the pre-branch address buffer 12, and when they do not match, increments the address data of the program counter 9 to increase the memory. 1 and sequentially executes the instruction processing. When they match, the address comparator 6 supplies the address data of the post-branch address buffer 11 to the program counter 9, supplies the post-branch address to the memory 1, fetches the instruction processing of the branch destination, and performs the branch operation.

【0030】このように、第1の実施の形態ではネクス
トテーブルアドレスを持たせ、ネクストテーブルアドレ
スにより、次に分岐する分岐前アドレスデータ並びに分
岐後アドレスデータを一意に選択し、それぞれを分岐前
アドレスバッファ12並びに分岐後アドレスバッファ1
1に格納しておく事により、アドレス比較器6による比
較動作と一致時のプログラムカウンタ9への分岐後アド
レスデータの供給動作が高速化できる。また、分岐情報
テーブル14には予めアドレスデータを格納しておくた
め、分岐情報テーブル14への書き込み専用命令は不要
であり、通常の分岐命令を使ったプログラムとはソース
レベルで完全な互換性がありプログラム修正は不要であ
る。また、メモリ1に格納するオブジェクトコードで
も、分岐命令の1つ前の命令格納アドレスを分岐情報テ
ーブルの分岐前アドレスとする事により本発明に適用で
きるため、オブジェクトコードレベルでも互換性があ
る。また、回路は簡素であり、他の高速化を図ったコン
ピュータシステム、例えば、ネクストアドレス方式やパ
イプライン制御に比べはるかにハードウェア量は少なく
済む。
As described above, in the first embodiment, a next table address is provided, and the next branch address data and the post-branch address data to be next branched are uniquely selected according to the next table address, and each is selected as the pre-branch address. Buffer 12 and post-branch address buffer 1
By storing the address data in 1, the operation of supplying the address data after branching to the program counter 9 when the comparison operation and the coincidence by the address comparator 6 coincide with each other can be speeded up. Also, since address data is stored in the branch information table 14 in advance, a dedicated instruction for writing to the branch information table 14 is unnecessary, and complete compatibility at the source level with a program using a normal branch instruction is provided. Yes, no program modification is required. Also, the object code stored in the memory 1 can be applied to the present invention by setting the instruction storage address immediately before the branch instruction as the pre-branch address of the branch information table, so that the object code level is compatible. Further, the circuit is simple, and the amount of hardware is much smaller than that of other high-speed computer systems such as the next address method and pipeline control.

【0031】次に、本発明の第2の実施の形態について
図面を参照して詳細に説明する。図6は本発明の第2の
実施の形態に関わるプログラム制御回路を備えたコンピ
ュータシステムの一例を示すブロック図、図7は図6で
実行されるプログラム例を示す模式図、図8は図6の分
岐情報テーブルの構成例を示す模式図であり、図8のテ
ーブルのデータは図7のプログラムのソースプログラム
から分岐情報を取り出し、分岐情報テーブルを構成した
例である。
Next, a second embodiment of the present invention will be described in detail with reference to the drawings. FIG. 6 is a block diagram showing an example of a computer system having a program control circuit according to the second embodiment of the present invention, FIG. 7 is a schematic diagram showing an example of a program executed in FIG. 6, and FIG. 9 is a schematic diagram illustrating a configuration example of a branch information table of FIG. 8, in which data in the table of FIG. 8 is obtained by extracting branch information from a source program of the program of FIG. 7 and forming a branch information table.

【0032】図6に示すコンピュータシステムは、メモ
リ1と、命令バッファ2とデコーダ/実行ユニット3
と、プログラムカウンタ部504と、分岐情報テーブル
505とを備えている。第1の実施の形態と同じ番号の
機能は同じ動作をするため、説明は省略する。プログラ
ムカウンタ部504はセレクタ508が3入力の選択機
能になっている他は第1の実施の形態と同じである。
The computer system shown in FIG. 6 includes a memory 1, an instruction buffer 2, and a decoder / execution unit 3.
, A program counter unit 504, and a branch information table 505. Since the functions having the same numbers as those in the first embodiment perform the same operations, the description will be omitted. The program counter unit 504 is the same as the first embodiment except that the selector 508 has a function of selecting three inputs.

【0033】分岐情報テーブル部505は、プログラム
の実行前にアセンブル処理乃至はコンパイル処理により
予めデータを格納してある分岐情報テーブル514と、
分岐情報制御回路513と、分岐前アドレスバッファ1
2と、分岐後アドレスバッファ11と、分岐前アドレス
テーブル520と、分岐条件テーブル521と、分岐後
アドレステーブル522と、分岐時ネクストテーブルア
ドレス523と、非分岐時ネクストテーブルアドレス5
24により構成される。
The branch information table unit 505 includes a branch information table 514 in which data is stored in advance by an assembling process or a compiling process before execution of the program.
Branch information control circuit 513 and pre-branch address buffer 1
2, a post-branch address buffer 11, a pre-branch address table 520, a branch condition table 521, a post-branch address table 522, a branch next table address 523, and a non-branch next table address 5.
24.

【0034】分岐情報制御回路513は、分岐条件判定
回路516から供給される分岐条件一致信号515に基
づき、分岐情報テーブル514の分岐時ネクストテーブ
ルアドレス523と非分岐時ネクストテーブルアドレス
524から出力されるネクストテーブルアドレスデータ
を選択するテーブルアドレスセレクタ519と、テーブ
ルアドレスセレクタ519から出力されるネクストテー
ブルアドレスデータをアドレス比較器6から供給される
アドレス一致信号15をラッチクロックとする保持回路
であるテーブルアドレス518から構成される。テーブ
ルアドレス518からの出力アドレスは分岐情報テーブ
ル514の各アドレステーブルに供給される。
The branch information control circuit 513 is output from the branch next table address 523 and the non-branch next table address 524 of the branch information table 514 based on the branch condition match signal 515 supplied from the branch condition determination circuit 516. A table address selector 519 for selecting the next table address data, and a table address 518 as a holding circuit using the next table address data output from the table address selector 519 as an address match signal 15 supplied from the address comparator 6 as a latch clock. Consists of The output address from the table address 518 is supplied to each address table of the branch information table 514.

【0035】分岐条件テーブル521は、図8に示すよ
うにZ=0とZ=1のZフラグの正負の条件値を備え
る。即ち、分岐条件が“Z=1”のときは、図8の分岐
条件テーブルアドレス0に示すように、Z=0の欄の値
は“1”とし、Z=1の欄の値は“1”とする。分岐条
件が“Z=0”のときは、図8の分岐条件テーブルアド
レス10に示すように、Z=0の欄の値は“1”とし、
Z=1の欄の値は“0”とする。分岐条件が“なし”の
とき、即ち“Z=0またはZ=1”は、図8の分岐条件
テーブルアドレス11に示すように、Z=0の欄の値を
“1”とし、Z=1の欄の値も“1”とする。
As shown in FIG. 8, the branch condition table 521 has positive and negative condition values of Z flags of Z = 0 and Z = 1. That is, when the branch condition is “Z = 1”, the value of the column of Z = 0 is “1” and the value of the column of Z = 1 is “1” as shown in the branch condition table address 0 in FIG. ". When the branch condition is “Z = 0”, the value of the column of Z = 0 is “1” as shown in the branch condition table address 10 in FIG.
The value in the column of Z = 1 is “0”. When the branch condition is “none”, that is, “Z = 0 or Z = 1”, as shown in the branch condition table address 11 in FIG. 8, the value of the column of Z = 0 is set to “1”, and Z = 1 Is also "1".

【0036】分岐条件判定回路516は、分岐条件テー
ブル521から供給されるZフラグの正の条件値とデコ
ーダ/実行ユニット3から出力されるZフラグとアドレ
ス比較器6から供給されるアドレス一致信号15の値が
第1のアンド回路を介しオア回路に入力されている。ま
た、分岐条件テーブル521から供給されるZフラグの
負の条件値とデコーダ/実行ユニット3から出力される
Zフラグの値の反転値とアドレス比較器6から供給され
るアドレス一致信号15が第2のアンド回路に入力さ
れ、この出力がオア回路の他入力になっている。つま
り、分岐条件テーブル521から供給されるZフラグの
正の条件値とデコーダ/実行ユニット3から出力される
Zフラグの値とアドレス一致信号15の論理積と、分岐
条件テーブル521から供給されるZフラグの負の条件
値とデコーダ/実行ユニット3から出力されるZフラグ
の値の反転値とアドレス一致信号15の論理積の論理和
を取り、条件一致信号として出力される。
The branch condition determination circuit 516 has a positive condition value of the Z flag supplied from the branch condition table 521, the Z flag output from the decoder / execution unit 3, and the address coincidence signal 15 supplied from the address comparator 6. Is input to the OR circuit via the first AND circuit. Further, the negative condition value of the Z flag supplied from the branch condition table 521, the inverted value of the value of the Z flag output from the decoder / execution unit 3, and the address match signal 15 supplied from the address comparator 6 are the second values. , And this output is the other input of the OR circuit. That is, the logical product of the positive condition value of the Z flag supplied from the branch condition table 521, the value of the Z flag output from the decoder / execution unit 3, and the address match signal 15, and the Z supplied from the branch condition table 521 The logical OR of the negative condition value of the flag, the inverted value of the value of the Z flag output from the decoder / execution unit 3 and the address match signal 15 is calculated, and the result is output as a condition match signal.

【0037】分岐情報テーブル514から読み出した分
岐前アドレスデータと、分岐条件と、分岐後アドレスデ
ータとを、それぞれ分岐前アドレスバッファ12と、分
岐条件バッファ517と、分岐後アドレスバッファ11
に格納する。アドレス比較器6はプログラムカウンタ部
504から出力されるアドレスデータと、分岐前アドレ
スバッファ12に格納されているアドレスデータを比較
する。プログラムカウンタ部4から出力されるアドレス
データと、分岐前アドレスバッファ12に格納されてい
るアドレスデータが一致したとき、アドレス比較器6は
アドレス一致信号15を発生し、これを分岐条件判定回
路516に供給する。分岐条件判定回路516にはデコ
ーダ/実行ユニット3から実行結果のZフラグと、分岐
条件バッファ517からZフラグの分岐条件値が供給さ
れる。
The pre-branch address data read from the branch information table 514, the branch condition, and the post-branch address data are stored in the pre-branch address buffer 12, the branch condition buffer 517, and the post-branch address buffer 11, respectively.
To be stored. The address comparator 6 compares the address data output from the program counter unit 504 with the address data stored in the pre-branch address buffer 12. When the address data output from the program counter unit 4 matches the address data stored in the pre-branch address buffer 12, the address comparator 6 generates an address match signal 15 and sends it to the branch condition determination circuit 516. Supply. The branch condition determination circuit 516 is supplied with the Z flag of the execution result from the decoder / execution unit 3 and the branch condition value of the Z flag from the branch condition buffer 517.

【0038】従って、アドレス比較器6からのアドレス
一致信号15と、デコーダ/実行ユニット3からのZフ
ラグの値と分岐条件バッファ517のZフラグの分岐条
件値が一致したとき、分岐条件判定回路516から分岐
条件一致信号515が出力される。分岐条件判定回路5
16の出力はセレクタ8と分岐情報制御回路513に供
給されている。分岐情報制御回路513にはアドレス比
較器6のアドレス一致信号15も供給されており、アド
レス比較器6のアドレス一致信号15が発生し、分岐条
件判定回路516からアドレス一致信号15が供給され
たときには分岐時ネクストアドレステーブル523のア
ドレスデータを読み出し、また、アドレス比較器6から
アドレス一致信号15が発生し、分岐条件判定回路51
6から“0”が供給されたときには非分岐時ネクストア
ドレステーブル524のアドレスデータを読み出す。分
岐情報制御回路513は読み出したネクストテーブルア
ドレスデータをテーブルアドレスセレクタ519で選択
し、テーブルアドレス518に保持する。
Therefore, when the address match signal 15 from the address comparator 6 matches the value of the Z flag from the decoder / execution unit 3 with the branch condition value of the Z flag in the branch condition buffer 517, the branch condition determination circuit 516 Output a branch condition match signal 515. Branch condition judgment circuit 5
The output of 16 is supplied to the selector 8 and the branch information control circuit 513. When the address match signal 15 of the address comparator 6 is also supplied to the branch information control circuit 513, the address match signal 15 of the address comparator 6 is generated and when the address match signal 15 is supplied from the branch condition determination circuit 516. The address data of the next address table 523 at the time of branching is read, and an address match signal 15 is generated from the address comparator 6, and the branch condition determination circuit 51
When “0” is supplied from 6, the address data of the next address table 524 at the time of non-branch is read. The branch information control circuit 513 selects the read next table address data by the table address selector 519, and holds the selected next table address data in the table address 518.

【0039】次に、図7のプログラム例を示す模式図
と、図9の分岐動作を示すタイミングチャートを参照し
ながら第2の実施の形態の動作を説明する。図8のステ
ージa乃至hは説明のため付記したものであり、第2の
実施の形態の回路動作を示すものではない。
Next, the operation of the second embodiment will be described with reference to a schematic diagram showing an example of a program in FIG. 7 and a timing chart showing a branch operation in FIG. The stages a to h in FIG. 8 are added for explanation, and do not show the circuit operation of the second embodiment.

【0040】図7のプログラムにおいて、JUMP Z
=1,nnnnHはデコーダ/実行ユニット3での命令
の実行結果によりゼロフラグが“1”となったときnn
nnHへ分岐し、JUMP Z=0,nnnnHはデコ
ーダ/実行ユニット3での命令の実行結果によりゼロフ
ラグが“0”となったときnnnnHへ分岐することを
表す。実施例1と同様に、図7の分岐情報は分岐情報テ
ーブル514に、そのプログラムの処理はメモリ1に格
納しておく。
In the program of FIG. 7, JUMP Z
= 1, nnnnH is nn when the zero flag is set to "1" by the execution result of the instruction in the decoder / execution unit 3.
Branching to nnH, JUMP Z = 0, nnnnH indicates that branching to nnnnH is performed when the zero flag becomes “0” according to the execution result of the instruction in the decoder / execution unit 3. As in the first embodiment, the branch information in FIG. 7 is stored in the branch information table 514, and the processing of the program is stored in the memory 1.

【0041】図6において、電源投入後プログラムカウ
ンタ9は0000H番地に初期化され、所定のタイミン
グでプログラムカウンタ部4からアドレスデータ000
0Hがメモリ1に供給され、メモリ1から命令が読み出
され、命令バッファ2によりフェッチされ、デコーダ/
実行ユニット3で実行される。また、プログラムカウン
タ9から出力されたアドレスデータはインクリメンタ7
に供給されプログラムカウンタ9のアドレスデータがイ
ンクリメントされる。以上の一連の動作により処理1,
処理2をフェッチ、実行する。
In FIG. 6, after the power is turned on, the program counter 9 is initialized to the address 0000H, and the address data 000 is transmitted from the program counter unit 4 at a predetermined timing.
0H is supplied to the memory 1, an instruction is read from the memory 1, fetched by the instruction buffer 2, and
It is executed by the execution unit 3. The address data output from the program counter 9 is stored in the incrementer 7
And the address data of the program counter 9 is incremented. Processing 1 by the above series of operations
Fetch and execute process 2.

【0042】一方、電源投入後、ステージaで分岐情報
制御回路513は初期状態として分岐情報テーブルアド
レスの”0”を選択し、分岐前アドレスの“0001
H”を読み出し、これを分岐前アドレスバッファ12に
供給し、分岐前アドレスバッファ12はこれを格納す
る。同様に、ステージaで分岐後アドレスの“0100
H”を読み出し、これを分岐後アドレスバッファ11に
供給し、分岐後アドレスバッファ11はこれを格納す
る。また、分岐条件“1”を読み出し、分岐条件バッフ
ァ517に供給し、これを格納する。また、分岐時ネク
ストテーブルアドレスデータ“10”と、非分岐時ネク
ストテーブルアドレスデータ“1”は読み出され、テー
ブルアドレスセレクタ519に入力される。
On the other hand, after the power is turned on, in stage a, the branch information control circuit 513 selects “0” of the branch information table address as an initial state and “0001” of the pre-branch address.
H "is read out and supplied to the pre-branch address buffer 12. The pre-branch address buffer 12 stores the same.
H "is read and supplied to the post-branch address buffer 11. The post-branch address buffer 11 stores the read H. The branch condition" 1 "is read, supplied to the branch condition buffer 517, and stored. The next table address data “10” at the time of branching and the next table address data “1” at the time of non-branching are read out and input to the table address selector 519.

【0043】いま、ステージcでプログラムカウンタ部
4が“0001H”に進み、処理2をフェッチすると
き、アドレス比較器6はプログラムカウンタ部504か
ら出力されるアドレスデータと分岐前アドレスバッファ
12のアドレスデータを比較し、アドレス一致信号15
を発生し、これを分岐条件判定回路516に供給する。
When the program counter section 4 advances to "0001H" at stage c and fetches the processing 2, the address comparator 6 determines whether the address data output from the program counter section 504 and the address data in the pre-branch address buffer 12 are present. And an address match signal 15
And supplies it to the branch condition determination circuit 516.

【0044】いま、処理2による実行結果でステージc
の基準クロックの立ち下がりでゼロフラグが“1”にな
ったとする。このとき、分岐条件バッファ517には分
岐条件としてZ=“1”が格納されており、分岐条件が
一致する。このとき、ステージcの基準クロックの立ち
下がりで分岐条件判定回路516から分岐条件一致信号
515が出力されセレクタ8と分岐情報制御回路513
に供給される。同時に、セレクタ8は分岐条件判定回路
516から分岐条件一致信号515が供給された事によ
り分岐後アドレスバッファ11から出力される分岐後ア
ドレスデータである“0100H”を選択し、これをプ
ログラムカウンタ9に供給する。ステージdでプログラ
ムカウンタ9は分岐後アドレスデータである“0100
H”を格納する。従って、ステージcで0001Hをフ
ェッチした後、ステージdで0100Hからフェッチが
行われ、分岐動作を実現する。
Now, the stage c in the execution result of the process 2
It is assumed that the zero flag becomes "1" at the fall of the reference clock. At this time, Z = “1” is stored as the branch condition in the branch condition buffer 517, and the branch condition matches. At this time, a branch condition matching signal 515 is output from the branch condition determination circuit 516 at the fall of the reference clock of the stage c, and the selector 8 and the branch information control circuit 513 are output.
Supplied to At the same time, the selector 8 selects “0100H”, which is the post-branch address data output from the post-branch address buffer 11 in response to the supply of the branch condition match signal 515 from the branch condition determination circuit 516, and sends it to the program counter 9. Supply. At stage d, the program counter 9 sets the address data "0100" after branching.
Accordingly, after fetching 0001H at stage c, fetch is performed from 0100H at stage d, thereby implementing a branch operation.

【0045】一方、ステージcで分岐条件一致信号51
5がテーブルアドレスセレクタ519に供給され、分岐
時ネクストテーブルアドレスデータが選択され、アドレ
ス一致信号15が入力されテーブルアドレス518に分
岐時ネクストテーブルアドレスデータ“10H”が格納
される。ステージdで、テーブルアドレス518からア
ドレス“10H”が分岐情報テーブル514に供給さ
れ、分岐前アドレスバッファ12へ“0101H”が格
納され、分岐後アドレスバッファ11へ“0200H”
が格納され、分岐条件バッファ517へ“Z=0”が格
納される。
On the other hand, at stage c, the branch condition match signal 51
5 is supplied to the table address selector 519, the next table address data at the time of branch is selected, the address match signal 15 is input, and the next table address data "10H" at the time of branch is stored in the table address 518. At stage d, the address “10H” is supplied from the table address 518 to the branch information table 514, “0101H” is stored in the pre-branch address buffer 12, and “0200H” is stored in the post-branch address buffer 11.
Is stored, and “Z = 0” is stored in the branch condition buffer 517.

【0046】次に、ステージeでプログラムカウンタ部
4が“0101H”に進み、処理5をフェッチすると
き、アドレス比較器6はプログラムカウンタ部504か
ら出力されるアドレスデータと分岐前アドレスバッファ
12のアドレスデータを比較し、アドレス一致信号15
を発生し、これを分岐条件判定回路516に供給する。
Next, at stage e, when the program counter section 4 advances to "0101H" and fetches the processing 5, the address comparator 6 makes the address data output from the program counter section 504 and the address of the pre-branch address buffer 12 The data is compared and the address match signal 15
And supplies it to the branch condition determination circuit 516.

【0047】いま、ステージeの基準クロックが立ち下
がったとき、処理5による実行結果でZフラグが“1”
になったとする。このとき、分岐条件バッファ517に
は分岐条件として“Z=0”が格納されており、分岐条
件は一致しない。このとき、分岐条件判定回路516か
ら分岐条件一致信号515は出力されない。セレクタ8
は分岐条件判定回路516から分岐条件一致信号515
が供給されていないため、インクリメンタ7を選択しこ
れをプログラムカウンタ9に供給する。従って、010
1Hをフェッチした後は0102Hからフェッチが行わ
れ、分岐動作は行わない。
When the reference clock of the stage e falls, the Z flag is set to "1" in the execution result of the processing 5.
Let's say At this time, “Z = 0” is stored as the branch condition in the branch condition buffer 517, and the branch condition does not match. At this time, the branch condition determination signal 515 is not output from the branch condition determination circuit 516. Selector 8
Is a branch condition match signal 515 from the branch condition determination circuit 516.
Is not supplied, the incrementer 7 is selected and supplied to the program counter 9. Therefore, 010
After fetching 1H, fetch is performed from 0102H, and the branch operation is not performed.

【0048】一方、ステージeで分岐条件一致信号51
5がテーブルアドレスセレクタ519に供給されていな
いため、非分岐時ネクストテーブルアドレスデータが選
択され、アドレス一致信号15が入力されテーブルアド
レス518に非分岐時ネクストテーブルアドレスデータ
“11H”が格納される。ステージfで、テーブルアド
レス518からアドレス“11H”が分岐情報テーブル
514に供給され、分岐前アドレスバッファ12へ“0
102H”が格納され、分岐後アドレスバッファ11へ
“0200H”が格納され、分岐条件バッファ517へ
“Z=0またはZ=1”が格納される。
On the other hand, at stage e, the branch condition match signal 51
5 is not supplied to the table address selector 519, the non-branch next table address data is selected, the address match signal 15 is input, and the non-branch next table address data “11H” is stored in the table address 518. At stage f, the address “11H” is supplied from the table address 518 to the branch information table 514, and “0” is supplied to the pre-branch address buffer 12.
102H "is stored," 0200H "is stored in the post-branch address buffer 11, and" Z = 0 or Z = 1 "is stored in the branch condition buffer 517.

【0049】以降、同様にアドレス比較器6によりプロ
グラムカウンタ部4から出力されるアドレスデータと分
岐前アドレスバッファ12のアドレスデータの比較と分
岐条件の比較を行い、分岐条件が一致しないときにはプ
ログラムカウンタ9のアドレスデータをインクリメント
し、メモリ1に供給し順次命令処理を実行する。分岐条
件が一致したときには分岐後アドレスバッファ11のア
ドレスデータをプログラムカウンタ9に供給し、メモリ
1に分岐後アドレスを供給し分岐先の命令処理をフェッ
チし、分岐動作を行う。
Thereafter, similarly, the address comparator 6 compares the address data output from the program counter unit 4 with the address data in the pre-branch address buffer 12 and the branch condition. Are incremented and supplied to the memory 1 to sequentially execute the instruction processing. When the branch condition is met, the address data in the post-branch address buffer 11 is supplied to the program counter 9, the post-branch address is supplied to the memory 1, the instruction processing of the branch destination is fetched, and the branch operation is performed.

【0050】このように、第2の実施の形態では分岐時
ネクストテーブルアドレス並びに非分岐時ネクストテー
ブルアドレスを持たせ、分岐動作の有無に関わらず、次
に分岐する分岐前アドレスデータ並びに分岐後アドレス
データを一意に選択し、それぞれを分岐前アドレスバッ
ファ12並びに分岐後アドレスバッファ11に格納して
おく事により、アドレス比較器6による比較動作と一致
時のプログラムカウンタ9への分岐後アドレスデータの
供給動作が高速化できる。また、分岐情報テーブル51
4には予めアドレスデータを格納しておくため、分岐情
報テーブル514への書き込み専用命令は不要であり、
通常の分岐命令を使ったプログラムとはソースレベルで
完全な互換性がありプログラム修正は不要である。ま
た、メモリ1に格納するオブジェクトコードでも、分岐
命令の1つ前の命令格納アドレスを分岐情報テーブルの
分岐前アドレスとする事により本発明に適用できるた
め、オブジェクトコードレベルでも互換性がある。
As described above, in the second embodiment, the next table address at the time of branch and the next table address at the time of non-branch are provided, and the address data before branch and the address after branch regardless of the presence or absence of the branch operation. By uniquely selecting data and storing them in the pre-branch address buffer 12 and the post-branch address buffer 11, respectively, the comparison operation by the address comparator 6 and the supply of the post-branch address data to the program counter 9 when they match. The operation can be speeded up. Also, the branch information table 51
No. 4 stores address data in advance, so that a write-only instruction to the branch information table 514 is unnecessary.
It is completely compatible at the source level with a program using a normal branch instruction, and no program modification is required. Also, the object code stored in the memory 1 can be applied to the present invention by setting the instruction storage address immediately before the branch instruction as the pre-branch address of the branch information table, so that the object code level is compatible.

【0051】また、第2の実施の形態では分岐条件とし
てZフラグだけとしたが、分岐条件バッファを増やすこ
とにより、キャリーフラグやサインフラグ等の分岐条件
を増加させることが出来るのは明らかである。同様に、
分岐条件バッファ、分岐後アドレスバッファを増やせば
多方向分岐も簡単に実現できることは明らかである。
In the second embodiment, only the Z flag is used as the branch condition. However, it is apparent that the branch conditions such as the carry flag and the sign flag can be increased by increasing the branch condition buffer. . Similarly,
It is clear that multidirectional branching can be easily realized by increasing the number of branch condition buffers and the number of address buffers after branching.

【0052】[0052]

【発明の効果】第1の効果は、分岐情報テーブルの分岐
前アドレスと分岐後アドレスに登録できるアドレスの個
数には制約がないことである。そのため、大規模なプロ
グラムでも全ての分岐前アドレス及び分岐後アドレスを
分岐情報テーブルに登録する事が出来るため、プログラ
ムの大規模化によるパフォーマンスの低下は起こらな
い。その理由は、分岐情報テーブル上に次に選択すべき
分岐情報テーブルアドレスを設けることにより、プログ
ラムカウンタと比較する分岐前アドレス並びに分岐後ア
ドレスは一意に決定でき、それぞれ分岐前アドレスバッ
ファ、分岐後アドレスバッファに格納するためである。
The first effect is that there is no restriction on the number of addresses that can be registered as the pre-branch address and the post-branch address in the branch information table. For this reason, even before a large-scale program, all the pre-branch addresses and the post-branch addresses can be registered in the branch information table, so that the performance does not deteriorate due to the large-scale program. The reason is that by providing the branch information table address to be selected next on the branch information table, the pre-branch address and the post-branch address to be compared with the program counter can be uniquely determined. This is for storing in a buffer.

【0053】第2の効果は、分岐情報テーブルの書き換
え命令のフェッチ時間と書き換え時間は全く発生しない
ため、パフォーマンスが大幅に向上する。その理由は、
分岐情報テーブルの分岐前アドレスと分岐後アドレスに
登録できるアドレスの個数には制約がないため、分岐情
報テーブルに予め分岐情報を用意しておく事が可能であ
り、分岐情報テーブルの書き換え命令は不要となるため
である。
The second effect is that the fetch time and the rewrite time of the rewrite instruction of the branch information table do not occur at all, so that the performance is greatly improved. The reason is,
Since there is no restriction on the number of addresses that can be registered in the pre-branch address and the post-branch address of the branch information table, it is possible to prepare branch information in the branch information table in advance, and there is no need to rewrite the branch information table. This is because

【0054】第3の効果は、通常の分岐命令を使ったプ
ログラムと互換性がある事である。このため、過去の莫
大なプログラムを本発明で使用する場合、プログラム修
正は不要であり、大幅な工数削減が図れる。その理由
は、分岐情報テーブルに予め分岐情報を用意しておく事
が可能であり、分岐情報テーブルの書き換え命令は不要
となるため、アセンブル処理乃至コンパイル処理に於い
て分岐情報テーブルに格納すべきデータが生成できるた
めである。
A third effect is that it is compatible with a program using a normal branch instruction. For this reason, when a huge program in the past is used in the present invention, the program does not need to be modified, and the number of steps can be significantly reduced. The reason is that it is possible to prepare the branch information in the branch information table in advance, and it is not necessary to rewrite the branch information table. Therefore, the data to be stored in the branch information table in the assembling process or the compile process is not required. Can be generated.

【0055】第4の効果は、分岐動作に全く動作時間を
必要としないためパフォーマンスが大幅に向上する事で
ある。具体的には、10回の分岐動作を必要とする1バ
イトのデータ転送処理を、通常の分岐命令を用いた場合
と比較した場合、24,7%の処理時間が削減され、2
0バイトのデータ転送処理の場合、41.0%の処理時
間が削減される。その理由は、分岐前アドレスバッファ
のアドレスデータとプログラムカウンタのアドレス値が
一致した場合、分岐後アドレスバッファのアドレスデー
タを、プログラムカウンタ9に書き込むため、通常のイ
ンクリメンタからプログラムカウンタへ書き戻す場合と
全く同じタイミングに出来るためである。
A fourth effect is that performance is greatly improved because no operation time is required for the branch operation. Specifically, when 1-byte data transfer processing requiring 10 branch operations is compared with the case of using a normal branch instruction, the processing time is reduced by 24.7%, and
In the case of the data transfer processing of 0 bytes, the processing time of 41.0% is reduced. The reason is that when the address data of the address buffer before branching matches the address value of the program counter, the address data of the address buffer after branching is written to the program counter 9, so that the normal incrementer writes back to the program counter. This is because they can be performed at exactly the same timing.

【0056】第5の効果は、他の高速化を図ったコンピ
ュータシステム、例えば、ネクストアドレス方式やパイ
プライン制御に比べはるかにハードウェア量は少なくて
済み、製造原価の上昇を抑える事が出来る事である。そ
の理由は、分岐処理を行う制御回路は簡素であり、ま
た、分岐情報テーブルの分岐前アドレス及び分岐後アド
レスは、分岐処理を必要とするアドレスデータのみであ
る無駄がないためである。
A fifth advantage is that the amount of hardware is much smaller than that of other high-speed computer systems, for example, the next address method or pipeline control, and the increase in manufacturing cost can be suppressed. It is. The reason is that the control circuit for performing the branch processing is simple, and the pre-branch address and the post-branch address in the branch information table are only the address data requiring the branch processing, so that there is no waste.

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

【図1】本発明の第1の実施の形態に係わるプログラム
制御回路を備えたコンピュータシステムの一例を示すブ
ロック図。
FIG. 1 is a block diagram showing an example of a computer system including a program control circuit according to a first embodiment of the present invention.

【図2】第1の実施の形態の分岐情報テーブルの構成例
を示す模式図。
FIG. 2 is a schematic diagram illustrating a configuration example of a branch information table according to the first embodiment;

【図3】本発明の実施の形態を備えたコンピュータシス
テムのプログラム・カウンタ部を説明するブロック図。
FIG. 3 is a block diagram illustrating a program counter unit of a computer system having an embodiment of the present invention.

【図4】第1の実施の形態を説明するためのプログラム
例を示す模式図。
FIG. 4 is a schematic diagram showing a program example for explaining the first embodiment;

【図5】第1の実施の形態の分岐動作を示すタイミング
チャート。
FIG. 5 is a timing chart showing a branch operation of the first embodiment.

【図6】本発明によるプログラム制御回路の第2の実施
の形態を備えたコンピュータシステムの一例を示すブロ
ック図。
FIG. 6 is a block diagram showing an example of a computer system including a second embodiment of the program control circuit according to the present invention.

【図7】第2の実施の形態を説明するためのプログラム
例を示す模式図。
FIG. 7 is a schematic diagram showing an example of a program for explaining a second embodiment.

【図8】第2の実施の形態の分岐情報テーブルの構成例
を示す模式図。
FIG. 8 is a schematic diagram illustrating a configuration example of a branch information table according to the second embodiment;

【図9】第2の実施の形態の分岐動作を示すタイミング
チャート。
FIG. 9 is a timing chart showing a branch operation according to the second embodiment.

【図10】従来の分岐制御回路を備えたコンピュータシ
ステムの一例を示すブロック図。
FIG. 10 is a block diagram illustrating an example of a computer system including a conventional branch control circuit.

【図11】従来例を説明するための分岐命令を用いたプ
ログラム例を示す模式図。
FIG. 11 is a schematic diagram showing an example of a program using a branch instruction for explaining a conventional example.

【図12】従来例を説明するための分岐命令を専用命令
で書き換えたプログラムを示す模式図。
FIG. 12 is a schematic diagram showing a program in which a branch instruction for describing a conventional example is rewritten with a dedicated instruction.

【図13】従来の他の分岐制御回路を備えたコンピュー
タシステムの一例を示すブロック図。
FIG. 13 is a block diagram showing an example of a computer system provided with another conventional branch control circuit.

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

1 メモリ 2 命令バッファ 3 デコーダ/実行ユニット 4 プログラムカウンタ部 5 分岐情報テーブル部 6 アドレス比較器 7 インクリメンタ 8 セレクタ 9 プログラムカウンタ 11 分岐後アドレスバッファ 12 分岐前アドレスバッファ 13 分岐情報制御回路 14 分岐情報テーブル 15 アドレス一致信号 513 分岐情報制御回路 514 分岐情報テーブル 515 分岐条件一致信号 516 分岐条件判定回路 517 分岐条件バッファ 911 分岐後アドレステーブル 912 分岐前アドレステーブル 906 アドレス比較器 121 メモリ部 122 ネクストアドレス部 123 命令部 124 プログラムカウンタ部 DESCRIPTION OF SYMBOLS 1 memory 2 instruction buffer 3 decoder / execution unit 4 program counter part 5 branch information table part 6 address comparator 7 incrementer 8 selector 9 program counter 11 post-branch address buffer 12 pre-branch address buffer 13 branch information control circuit 14 branch information table 15 Address match signal 513 Branch information control circuit 514 Branch information table 515 Branch condition match signal 516 Branch condition judgment circuit 517 Branch condition buffer 911 Address after branch address 912 Address table before branch 906 Address comparator 121 Memory unit 122 Next address unit 123 Instruction Section 124 Program counter section

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 命令を途中で分岐させる場合、分岐前ア
ドレス・データと分岐後アドレス・データと分岐情報テ
ーブル・アドレス・データとからなるデータを一組の分
岐情報データとして、複数の分岐情報データの組を格納
する分岐情報テーブル部と、前記分岐情報テーブル上の
一組の分岐情報データを指示し、分岐前アドレス・バッ
ファと分岐後アドレス・バッファ及び分岐情報テーブル
・アドレス・ポインタへ転送する分岐情報制御回路と、
プログラム・カウンタの値と前記分岐前アドレス・バッ
ファに保持されている分岐前アドレス・データ値とを比
較し、これらのデータ値が一致しているときアドレス一
致信号を能動にして出力するアドレス比較器と、前記ア
ドレス一致信号が非能動のときには前記のプログラム・
カウンタの値をインクリメントしたデータを選択し、前
記アドレス一致信号が能動のときには前記分岐後アドレ
ス・バッファに保持されている分岐後アドレス・データ
を選択して前記プログラム・カウンタに転送して、次に
実行すべき命令が格納されたメモリのアドレスを指示す
るようにしたプログラム・カウンタ部とを備えたことを
特徴とする分岐制御回路。
When a branch is made in the middle of an instruction, a plurality of pieces of branch information data are set as data consisting of address data before branch, address data after branch, and branch information table address data as a set of branch information data. And a branch information table for storing a set of the branch information table, and a branch for designating a set of branch information data on the branch information table and transferring the set to a pre-branch address buffer, a post-branch address buffer, and a branch information table address pointer. An information control circuit;
An address comparator that compares the value of a program counter with the pre-branch address data value held in the pre-branch address buffer, and activates and outputs an address match signal when these data values match. And when the address match signal is inactive, the program
Selecting the data obtained by incrementing the value of the counter, and selecting the post-branch address data held in the post-branch address buffer and transferring it to the program counter when the address match signal is active; A program counter unit for designating an address of a memory in which an instruction to be executed is stored.
【請求項2】 分岐情報テーブル部の分岐情報データの
組が、分岐前アドレス・データと、分岐条件データと、
前記分岐条件データが満たされた時の分岐後アドレス・
データと、前記の分岐条件が満たされなかった時に次に
実行すべき命令が格納されたメモリのアドレス・データ
と、前記分岐条件が満たされた時に次に参照すべき分岐
情報テーブルのアドレス・データとから構成され、前記
分岐情報制御回路は、前記分岐条件の一致・不一致に応
じて前記の分岐情報テーブル上の一組の分岐情報データ
を指示し、前記分岐情報制御回路の指示する分岐情報デ
ータの分岐条件データと処理命令から出力される分岐条
件フラグ・データとを比較して、これらの分岐条件デー
タが一致している時には、前記アドレス一致信号を能動
に、前記分岐条件データが不一致の時には非能動にする
分岐条件判定回路を備えることを特徴とする請求項1記
載の分岐制御回路。
2. A set of branch information data in a branch information table portion includes: pre-branch address data; branch condition data;
Address after branch when the branch condition data is satisfied
Data, address data of a memory storing an instruction to be executed next when the branch condition is not satisfied, and address data of a branch information table to be referred next when the branch condition is satisfied The branch information control circuit designates a set of branch information data on the branch information table according to the coincidence / mismatch of the branch condition, and the branch information data designated by the branch information control circuit. Is compared with the branch condition flag data output from the processing instruction, and when these branch condition data match, the address match signal is activated, and when the branch condition data does not match, 2. The branch control circuit according to claim 1, further comprising a branch condition determination circuit for making it inactive.
【請求項3】 分岐情報テーブル部の分岐情報データ
は、プログラムの実行前に、予め分岐情報データ生成手
段により生成されることを特徴とする請求項1または2
に記載の分岐制御回路。
3. The branch information data of the branch information table section is generated beforehand by a branch information data generating means before execution of a program.
2. The branch control circuit according to 1.
JP13715996A 1996-05-30 1996-05-30 Branch control circuit Expired - Fee Related JP2781779B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13715996A JP2781779B2 (en) 1996-05-30 1996-05-30 Branch control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13715996A JP2781779B2 (en) 1996-05-30 1996-05-30 Branch control circuit

Publications (2)

Publication Number Publication Date
JPH09319579A JPH09319579A (en) 1997-12-12
JP2781779B2 true JP2781779B2 (en) 1998-07-30

Family

ID=15192207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13715996A Expired - Fee Related JP2781779B2 (en) 1996-05-30 1996-05-30 Branch control circuit

Country Status (1)

Country Link
JP (1) JP2781779B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2620210A1 (en) 2005-08-25 2007-03-01 Toyo Boseki Kabushiki Kaisha Plant producing hyaluronic acid

Also Published As

Publication number Publication date
JPH09319579A (en) 1997-12-12

Similar Documents

Publication Publication Date Title
US5530825A (en) Data processor with branch target address cache and method of operation
EP0689128B1 (en) Computer instruction compression
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
EP0476722B1 (en) Data processing system
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
US5761723A (en) Data processor with branch prediction and method of operation
US6449710B1 (en) Stitching parcels
US4539635A (en) Pipelined digital processor arranged for conditional operation
US20020188830A1 (en) Bit replacement and extraction instructions
US5446849A (en) Electronic computer which executes squash branching
US4562538A (en) Microprocessor having decision pointer to process restore position
US20070294517A1 (en) Method and device for saving and restoring a set of registers of a microprocessor in an interruptible manner
EP4152146A1 (en) Data processing method and device, and storage medium
US4541047A (en) Pipelined data processing system
US5390306A (en) Pipeline processing system and microprocessor using the system
US6601160B2 (en) Dynamically reconfigurable data space
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
US6505291B1 (en) Processor having a datapath and control logic constituted with basis execution blocks
US5586337A (en) Programmable controller with timing control
JP2781779B2 (en) Branch control circuit
KR100355630B1 (en) Computer system having a rom correction unit
US5596761A (en) Central processing unit with internal register initializing means
US6282632B1 (en) Information processor having duplicate operation flags
GB2069733A (en) Conditional instruction execution in a pipelined processor
EP0666538A2 (en) Data processor with branch target address cache and method of operation

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980414

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090515

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090515

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100515

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100515

Year of fee payment: 12

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100515

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100515

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110515

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees