JPH0277839A - Data processor - Google Patents
Data processorInfo
- Publication number
- JPH0277839A JPH0277839A JP22832488A JP22832488A JPH0277839A JP H0277839 A JPH0277839 A JP H0277839A JP 22832488 A JP22832488 A JP 22832488A JP 22832488 A JP22832488 A JP 22832488A JP H0277839 A JPH0277839 A JP H0277839A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- path
- data processing
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims abstract description 217
- 230000006870 function Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 241000913681 Questa Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、データ処理装置に係り、特に、命令読み出し
の高速化を図ったスーパーコンピュータ等のデータ処理
装置に関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a data processing device, and more particularly to a data processing device such as a supercomputer that achieves high-speed instruction reading.
近年、スーパーコンピュータにおいて命令の読み出しを
高速化する要請が強くなってきている。In recent years, there has been an increasing demand for speeding up the reading of instructions in supercomputers.
これは、
(1)より高速の演算を行おうとすると命令の読み出し
がネックとなる傾向が強くなること、(2)マシンサイ
クルを極端に短縮するとメモリ素子の性能がそれに追随
できず、命令の読み出しに長大なサイクルタイムが必要
になり、これがベクトル処理のスタートアップタイム増
大のように見 ′えること、等に対処しようと
するためである。This is because (1) reading instructions tends to become a bottleneck when trying to perform faster calculations, and (2) if the machine cycle is extremely shortened, the performance of the memory element cannot keep up with it, and reading instructions becomes more difficult. This is to deal with the fact that a long cycle time is required for vector processing, which appears to increase the start-up time of vector processing.
最近ではアーキテクチャ上の何らかの工夫により、命令
読み出しの時間を実質的に短縮させる方向で研究が進め
られている。Recently, research has been progressing in the direction of substantially shortening the instruction read time through some kind of architectural innovation.
スーパーコンピュータは、科学技術計算を対象に高速の
演算を行うように創られた専用の計算機である。従って
、汎用計算機のいくつかの機能のうち使用する可能性が
ほとんどなく、高速の計算を行う上で障害になる機能は
省略してもよい。このような機能の中に、プログラム中
の命令の書き替えを許す機能がある。一般に、大型計算
機は、この機能をサポートすると、特に、先行制御を深
くした処理の高速化が困難になり、また命令の並列実行
を行う場合にも障害となる。A supercomputer is a specialized computer created to perform high-speed calculations for scientific and technical calculations. Therefore, among some functions of a general-purpose computer, functions that are unlikely to be used and that pose an obstacle to high-speed calculation may be omitted. Among these functions is a function that allows instructions in a program to be rewritten. In general, when a large computer supports this function, it becomes difficult to speed up processing with deep advance control, and it also becomes an obstacle when executing instructions in parallel.
このため、ある種のベクトル処理装置は、ベクトル処理
側のストア命令でスカラ処理部側の命令を書き替えた場
合、その結果を保証しないようにして前述の問題を回避
している。For this reason, some vector processing devices avoid the above-mentioned problem by not guaranteeing the result when a store instruction on the vector processing side rewrites an instruction on the scalar processing unit side.
この種従来技術として、例えばHiTAC3−820処
理装置マニユアル6020−2−00IP、P、42等
に記述された技術が知られている。As this kind of conventional technology, for example, the technology described in HiTAC3-820 Processing Equipment Manual 6020-2-00IP, P, 42, etc. is known.
しかし、前記従来技術は、なお、命令読み出しの時間を
多く必要とし、スーパーコンピュータ等の科学技術計算
を専用に行う高速のデータ処理装置のネックとなってい
るという問題点を有している。However, the above-mentioned conventional technology still has the problem that it requires a lot of time to read instructions, which is a bottleneck for high-speed data processing devices such as supercomputers that are dedicated to scientific and technical calculations.
本発明の目的は、前記従来技術の問題点を解決し、プロ
グラム中の命令書き替え時に結果を保証しない仕様をベ
クトル処理部だけでなくスカラ処理部にまで拡大し、こ
れによってデータ処理装置のアーキテクチャ、ハードウ
ェア構成をスーパーコンピュータ向きに変更して、命令
読み出し速度の向上、スタートアップタイムの短縮を図
ることを可能としたデータ処理装置を提供することにあ
る。An object of the present invention is to solve the above-mentioned problems of the prior art, extend the specification that does not guarantee results when rewriting instructions in a program to not only the vector processing section but also the scalar processing section, and thereby improve the architecture of the data processing device. Another object of the present invention is to provide a data processing device whose hardware configuration is changed to be suitable for supercomputers, thereby making it possible to improve instruction reading speed and shorten startup time.
本発明によれば、前記目的は、次のような構造の命令バ
ッファと、命令バッファを制御する論理機構を備えるこ
とにより達成される。According to the present invention, the above object is achieved by providing an instruction buffer having the following structure and a logic mechanism for controlling the instruction buffer.
途]フ<771−
(1)命令アドレスを論理アドレスとするとき、アドレ
ス変換なしで引用できる命令バッファ。(1) An instruction buffer that can be referenced without address conversion when an instruction address is a logical address.
(2)命令によって命令バッファの内容を制御できる第
2の命令バッファ(以下Controlable I
n−5truction buffer、略してCバ
ッファという)。(2) A second instruction buffer (hereinafter referred to as Controllable I) that can control the contents of the instruction buffer by instructions.
n-5 traction buffer (abbreviated as C buffer).
バッファ ′ る量ム
(1)命令読み出し要求が命令リクエスタから発行され
たとき、命令アドレスが命令バッファ、Cバッファに在
るか否かを調べる論理回路。(1) A logic circuit that checks whether an instruction address exists in the instruction buffer or C buffer when an instruction read request is issued from an instruction requester.
(2)命令読み出し要求が命令リクエスタから発行され
た時点で命令アドレスが命令バッファ、Cバッファにエ
ントリされていないとき、主記憶部へ命令アドレスから
n命令骨の(n≧1)命令読み出し要求を発行する論理
回路。(2) If the instruction address has not been entered in the instruction buffer or C buffer at the time the instruction read request is issued from the instruction requester, a request to read n instructions (n≧1) from the instruction address to the main memory is made. Logic circuit to issue.
(3)命令バッファ、Cバッファの内容をキャンセルす
る論理回路。(3) A logic circuit that cancels the contents of the instruction buffer and C buffer.
(4)主記憶からCバッファへ命令で指定された語長だ
けデータを転送する論理回路。(4) A logic circuit that transfers data by the word length specified by the instruction from the main memory to the C buffer.
(5)命令読み出し要求が命令リクエスタから発行され
た時点で、命令アドレスが命令バッファにエントリされ
てなく、Cバッファにエントリされている場合、Cバッ
ファからn命令骨の命令を命令バッファに転送する論理
回路。(5) When an instruction read request is issued from the instruction requester, if the instruction address has not been entered in the instruction buffer but has been entered in the C buffer, transfer n instructions from the C buffer to the instruction buffer. logic circuit.
(6)主記憶からCバッファへデータを転送する処理の
起動を行い、次のサイクルで前記転送完了を待つことな
く、後続の命令を実行する命令解読/実行論理回路。(6) An instruction decoding/execution logic circuit that starts the process of transferring data from the main memory to the C buffer, and executes the subsequent instruction in the next cycle without waiting for the completion of the transfer.
(7)主記憶からCバッファへデータを転送する途中で
後続の命令が、そのデータ転送範囲に含まれているとき
、後続の命令の実行を中断させ、かつ転送データをCバ
ッファと命令バッファに書込み、かつ前記後続命令の実
行を再開させる論理回路。(7) If a subsequent instruction is included in the data transfer range while data is being transferred from main memory to the C buffer, the execution of the subsequent instruction is interrupted and the transferred data is transferred to the C buffer and the instruction buffer. Logic circuitry for writing and resuming execution of the subsequent instruction.
(8)命令読み出し要求が命令バッファにエントリされ
ていないとき、命令実行を中断させる論理回路。(8) A logic circuit that suspends instruction execution when no instruction read request is entered in the instruction buffer.
(9)読み出された命令が命令バッファに書込まれたと
き、命令実行を再開させる論理回路。(9) A logic circuit that resumes instruction execution when the read instruction is written to the instruction buffer.
(10) Cバッファを複数の部分に分け、各部分対応
にフリップフロップを設け、Cバッファの読み出しがあ
った時点で該フリップフロップを“1 ”にセットし、
インタバルタイマがある決ったタイミングで出力する信
号毎に該フリップフロップを“0°°にリセットする論
理部。(10) Divide the C buffer into a plurality of parts, provide a flip-flop corresponding to each part, and set the flip-flop to "1" when the C buffer is read.
A logic unit that resets the flip-flop to "0°" for each signal output by an interval timer at a certain timing.
(11)主記憶からCバッファへデータを転送する際、
Cバッファの書き込みカラムを決定し、該カラムにセッ
トされる命令の先頭論理アドレスを保持する記憶部を有
する論理回路。(11) When transferring data from main memory to C buffer,
A logic circuit having a storage unit that determines a write column of a C buffer and holds the first logical address of an instruction set in the column.
(12)主記憶から命令バッファに命令列を転送する際
、命令バッファのどのカラムに命令列を格納するかを決
定する論理回路。(12) A logic circuit that determines in which column of the instruction buffer the instruction string is stored when transferring the instruction string from the main memory to the instruction buffer.
〔作用]
バッファ記憶を具備するデータ処理装置は、バッファ記
憶を出来るだけ有効に使えるように、バッファ記憶上の
リプレースアルゴリズムが工夫されている。[Operation] In a data processing device equipped with a buffer memory, a replacement algorithm on the buffer memory is devised so that the buffer memory can be used as effectively as possible.
命令読み出し専用に命令バッファとCバッファを具備す
る本発明のデータ処理装置は、2つのバッファの制御に
命令読み出し要求の特性を利用し効率的なバッファリン
グが可能である。The data processing device of the present invention, which includes an instruction buffer and a C buffer exclusively for reading instructions, can perform efficient buffering by utilizing the characteristics of the instruction read request to control the two buffers.
プログラムの実行を解析すると、
(1)プログラム文の記述順序に従って順序だって命令
を主記憶から読み出すケースと、
(2)ループによって代表される同じ命令列をデータを
変えてくりかえし実行するケースと、(3)分岐によっ
て代表される全く別の命令アドレスに命令続出要求を行
うケースとに分類することができる。Analyzing program execution, we find that (1) instructions are read from main memory in order according to the order in which the program statements are written, (2) the same instruction sequence represented by a loop is repeatedly executed with different data, and ( 3) A case in which a request for successive instruction is made to a completely different instruction address represented by a branch.
前記ケース(1)では、1回の命令読出でn個(n≧1
)の命令を主記憶から読み出し、命令バッファに保持し
ておくことにより、命令読み出しの高速化を行うことが
可能である。また、命令バッファのリプレースアルゴリ
ズムも命令読み出しの順序性を利用して単純化すること
が可能である。In the above case (1), n (n≧1) instructions are read out once.
) is read from the main memory and held in the instruction buffer, it is possible to speed up instruction reading. Furthermore, the instruction buffer replacement algorithm can also be simplified by utilizing the order of instruction reading.
前記ケース(2)では、命令バッファの代りにCバッフ
ァを利用し、命令列の繰返し実行時にCバッファから命
令を読み出す。即ち、主記憶から命令読み出しを行うよ
り高速に処理することが可能である。Cバッファは、命
令によってバッファへの書き込が行われるので、命令を
頻発させない限り前にバッファ上にエントリした命令列
を保持している。このため、Cバッファは、ループや分
岐履歴のあるケース(3)の一部の場合でも有効に作用
する。またプログラムの全体でよく使用する関数、サブ
ルーチン等をCバッファに常駐させることにより主記憶
へのアクセス頻度を減少させ、処理を高速化することも
可能である。In case (2), a C buffer is used instead of an instruction buffer, and instructions are read from the C buffer when repeatedly executing a sequence of instructions. That is, it is possible to process faster than reading instructions from the main memory. Since the C buffer is written into the buffer by an instruction, the C buffer holds the instruction string previously entered on the buffer unless the instruction is issued frequently. Therefore, the C buffer works effectively even in some cases (3) where there is a loop or branch history. Furthermore, by making functions, subroutines, etc. that are frequently used throughout the program resident in the C buffer, it is possible to reduce the frequency of access to the main memory and speed up processing.
プログラム実行時、前述した、命令バッファを制御する
論理部は次のように作動する。When a program is executed, the logic unit controlling the instruction buffer described above operates as follows.
命令読み出し要求が処理装置内で発生すると、命令バッ
ファとCバッファに命令アドレスがエントリされていな
いか否かが調べられる。両方のバッファに命令アドレス
がエントリされていない場合、主記憶へ命令読み出し要
求が発行され命令実行は中断される。主記憶から命令列
が読み出され命令バッファに書き込まれると、命令バッ
ファから命令をとり出す動作が開始され、命令実行が再
開される。命令バッファに命令アドレスがエントリされ
てなく、Cバッファに命令アドレスがエントリされてい
る場合、Cバッファから命令バッファに命令列が転送さ
れた後命令実行が再開される。When an instruction read request occurs within the processing device, it is checked whether an instruction address has been entered in the instruction buffer and the C buffer. If an instruction address is not entered in both buffers, an instruction read request is issued to the main memory and instruction execution is interrupted. When the instruction sequence is read from the main memory and written into the instruction buffer, an operation to take out the instruction from the instruction buffer is started, and instruction execution is resumed. If no instruction address is entered in the instruction buffer but an instruction address is entered in the C buffer, instruction execution is resumed after the instruction sequence is transferred from the C buffer to the instruction buffer.
以上が一般的な命令実行方式である。The above is a general instruction execution method.
プログラムの中でCバッファへのデータ転送を要求する
命令が発行されると、主記憶からCバッファへデータを
転送する動作が開始され、次のマシンサイクルで前記デ
ータ転送命令以外の命令が実行される。Cバッファへの
データ転送命令が連続すると命令実行動作はシリアライ
ズされる。ただし、主記憶からCバッファへのデータ転
送パスを複数設け、Cバッファをインタリーブ構成また
は多面化するような論理的な工夫をすれば、命令実行動
作を並列処理化することができる。しかし、本発明では
、この部分についてこれ以上詳しく説明しない。主記憶
からCバッファへのデータの転送が行われているとき、
命令バッファ内に存在しない命令の読み出し要求が発行
されて、かつ、Cバッファへのデータ転送内にこの命令
読み出し要求の命令が含まれている場合、Cバッファヘ
データを書き込むと同時に命令バッファにもこのデータ
を書き込むように制御される。When an instruction that requests data transfer to the C buffer is issued in a program, the operation of transferring data from main memory to the C buffer is started, and instructions other than the data transfer instruction are executed in the next machine cycle. Ru. When data transfer instructions to the C buffer are issued consecutively, the instruction execution operation is serialized. However, if logical measures are taken such as providing a plurality of data transfer paths from the main memory to the C buffer and making the C buffer interleaved or multifaceted, instruction execution operations can be processed in parallel. However, in the present invention, this part will not be described in more detail. When data is being transferred from main memory to C buffer,
If a read request for an instruction that does not exist in the instruction buffer is issued, and the instruction for this instruction read request is included in the data transfer to the C buffer, the data is written to the C buffer and also written to the instruction buffer at the same time. It is controlled to write this data.
命令バッファ、Cバッファに格納された命令は、両バッ
ファに書き込むパスがないため、ストア系の命令によっ
ては書き替えられない。このためプログラム内の命令書
き替えに対して全く対処できなくなることを防止するた
め、命令バッファ、Cバッファの内容をキャンセルする
手段が設けられる。これによって、主記憶上で書き替え
られた命令列よりは、再度バッファに読み出されて実行
される。Instructions stored in the instruction buffer and the C buffer cannot be rewritten by store instructions because there is no path for writing to both buffers. Therefore, in order to prevent the program from being completely unable to cope with rewriting instructions in the program, a means for canceling the contents of the instruction buffer and the C buffer is provided. As a result, the instruction sequence that has been rewritten on the main memory is read out to the buffer again and executed.
本発明ではCバッファをうまく使用すれば性能の向上が
図れるが、仮に使用しなくてもプログラムは正常に動作
する。従って、旧オブジェクトプログラム等を実行する
場合も互換性の問題を生じることはない。In the present invention, performance can be improved if the C buffer is used wisely, but the program will operate normally even if it is not used. Therefore, no compatibility problem will occur even when old object programs are executed.
以下、本発明によるデータ処理装置の一実施例を図面に
より詳細に説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a data processing apparatus according to the present invention will be described in detail below with reference to the drawings.
説明を単純化し発明の本質的な点をわかり易く ′
するため、次のような制約条件を置いて説明を行うこと
とする。Simplify the explanation and make it easier to understand the essential points of the invention
Therefore, the explanation will be given with the following constraints.
(1)命令バッファ、Cバッファ、主記憶の論理的な関
係は、この順に命令処理部に近いものとする。(1) The logical relationship among the instruction buffer, C buffer, and main memory is that they are closest to the instruction processing unit in this order.
命令バッファとCバッファを論理的に命令処理部と等価
な位置におくように構成してもよい。また、命令バッフ
ァとCバッファを同じバッファ記憶の部分として、両者
を区別するような識別フラグを設けて実現するように構
成してもよい。しかし、分岐が頻発するような場合の救
済策としてならば後者の方式が有効であるが、関数やサ
ブルーチン等もCバッファに取り込んで主記憶参照動作
を滅少させようとする場合には、Cバッファは、命令バ
ッファよりもかなり大きい容量を持つ必要がある。また
、命令バッファと性質の異るCバッファを論理的に等価
な距離に置くことは、両者を制御する方式が複雑になる
ので望ましくない。The instruction buffer and the C buffer may be configured to be placed at logically equivalent positions to the instruction processing section. Alternatively, the instruction buffer and the C buffer may be implemented as part of the same buffer storage, and an identification flag may be provided to distinguish between the two. However, the latter method is effective as a remedy when branches occur frequently, but if you want to reduce main memory reference operations by importing functions, subroutines, etc. into the C buffer, the C The buffer needs to have a significantly larger capacity than the instruction buffer. Further, it is not desirable to place the instruction buffer and the C buffer, which have different properties, at a logically equivalent distance because the method for controlling both becomes complicated.
(2)命令語長を1種類とし!バイl−CB)とする。(2) One type of instruction word length! Bi l-CB).
(3)命令バッファを複数のカラムで構成し、1カラム
に格納される命令数をn個とする。(3) The instruction buffer is configured with a plurality of columns, and the number of instructions stored in one column is n.
(4)Cバッファを複数のカラムで構成し、1カラムに
格納される命令数をm−n個とする。(4) The C buffer is configured with a plurality of columns, and the number of instructions stored in one column is m−n.
(5)主記憶からCバッファへ転送されるデータの単位
をIt−m−n (B)とする。(5) Let It-m-n (B) be the unit of data transferred from the main memory to the C buffer.
(6)Cバッファから命令バッファに転送されるデータ
の単位をff1−n(B)とする。(6) Let ff1-n(B) be the unit of data transferred from the C buffer to the instruction buffer.
第1図は本発明によるデータ処理装置の一実施例の概略
を示すブロック図である。第1図において、1は主記憶
、2はCバッファ、3は命令バッファ、4は命令実行制
御部、5は命令実行部、6゜7は比較回路、8はリクエ
スタである。FIG. 1 is a block diagram schematically showing an embodiment of a data processing apparatus according to the present invention. In FIG. 1, 1 is a main memory, 2 is a C buffer, 3 is an instruction buffer, 4 is an instruction execution control section, 5 is an instruction execution section, 6.7 is a comparison circuit, and 8 is a requester.
まず、命令実行制御部4は、パス50.51上に命令読
み出し要求とアドレスを発行する。パス50上の要求は
、比較回路6に送られ、そこで命令バッファ3のエント
リアドレスと命令アドレスとが比較される。比較回路6
は、比較の結果命令バッファ3内に目的の命令が存在す
るならば、命令バッファ3からパス52を介してその命
令を命令実行制御部4に送出させる。命令バッファ3内
に目的の命令が存在しない場合は、パス53を通って主
記憶参照要求がリクエスタ8に発行される。First, the instruction execution control unit 4 issues an instruction read request and address on the path 50.51. The request on path 50 is sent to comparison circuit 6, where the entry address of instruction buffer 3 and the instruction address are compared. Comparison circuit 6
If, as a result of the comparison, the target instruction exists in the instruction buffer 3, the instruction is sent from the instruction buffer 3 to the instruction execution control unit 4 via the path 52. If the target instruction does not exist in the instruction buffer 3, a main memory reference request is issued to the requester 8 via the path 53.
また、パス51上に送られた信号は、比較回路7に送ら
れ、Cバッファ2のエントリアドレスと命令アドレスと
が比較される。比較の結果は、パス54を通ってリクエ
スタ8に発行される。Further, the signal sent on the path 51 is sent to the comparison circuit 7, and the entry address of the C buffer 2 and the instruction address are compared. The results of the comparison are issued to the requester 8 via path 54.
リクエスタ8は、パス53.54上の信号に基づいて次
のような動作を行う。Requester 8 performs the following operations based on the signals on paths 53 and 54.
(1)命令バッファ3にもCバッファ2にも目的の命令
がない場合、パス55を介して主記憶参照(以下BTと
略す)要求を発行する。BTリクエストは、主記憶1に
送られ、読み出されたデータは、パス56、セレクタ9
を通って命令バッファ3に書き込まれる。また比較回路
6には命令バッファ3に格納されているn個の命令の先
頭アドレスが格納される。(1) If there is no target instruction in either the instruction buffer 3 or the C buffer 2, a main memory reference (hereinafter abbreviated as BT) request is issued via the path 55. The BT request is sent to the main memory 1, and the read data is sent to the path 56 and the selector 9.
The command is written to the instruction buffer 3 through the . The comparison circuit 6 also stores the start addresses of n instructions stored in the instruction buffer 3.
(2)命令バッファ3に目的の命令がなく、Cバッファ
2に在る場合、リクエスタ8は、パス57を経由してC
バッファ2上のデータを読出しパス58゜セレクタ9を
通って命令バッファ3へそのデータを転送する。(2) If the target instruction is not in the instruction buffer 3 but exists in the C buffer 2, the requester 8 sends it to the C buffer via the path 57.
The data on the buffer 2 is read and transferred to the instruction buffer 3 through the path 58° selector 9.
リクエスタ8に対し直接命令実行制御部4から主記憶、
Cバッファ転送命令が発行された場合、リクエスタ8は
、パス60を通って主記憶参照要求(以下BT2リクエ
スト)を主記憶1に発行する。Directly from the instruction execution control unit 4 to the requester 8, the main memory,
When the C buffer transfer command is issued, the requester 8 issues a main memory reference request (hereinafter referred to as a BT2 request) to the main memory 1 through the path 60.
前述の主記憶参照要求は、全て論理−実アドレス変換が
行われて主記憶へ発行される。このアドレス変換処理に
ついては本発明の主旨とは直接関係がないので説明を省
略する。All of the above-mentioned main memory reference requests are issued to the main memory after undergoing logical-to-real address conversion. Since this address conversion process is not directly related to the gist of the present invention, a description thereof will be omitted.
BT2リクエストに対応して主記憶から読み出されたデ
ータは、データバッファ10を経てCバッファ2に書き
込まれる。同時にCバッファ2に格納されたm’n個の
命令の先頭アドレスが比較回路7のエントリ部に格納さ
れる。データバッファ10は主記憶からn個ずつ組にな
ってシリアルに読出されて来るデータをCバッファ20
m−n個の命令を格納しているカラムにセットする動作
を行う。Data read from the main memory in response to the BT2 request is written to the C buffer 2 via the data buffer 10. At the same time, the start addresses of m'n instructions stored in the C buffer 2 are stored in the entry section of the comparison circuit 7. The data buffer 10 receives data that is serially read out from the main memory in groups of n pieces to the C buffer 20.
An operation is performed to set m−n instructions in the column storing them.
第2図は第1図の命令バッファ3と比較回路6の構成を
示すブロック図である。第2図の例はn−3,2カラム
の命令バッファについての構成を示している。第2図で
は、第1図と同じ論理部には同じ番号を付け、パスにつ
いては第1図で1本のパスとして表示されているものを
異った用途に(例えば、コマンドとアドレス信号のよう
に)使う場合には、添字a、b、cを付けて表わしてい
る。また、図面の簡約化のため東線表示を用い、これを
太い実線であられしている。第3図以降についても同様
である。FIG. 2 is a block diagram showing the configuration of the instruction buffer 3 and comparison circuit 6 shown in FIG. 1. The example in FIG. 2 shows the configuration of an n-3, 2-column instruction buffer. In Figure 2, logic parts that are the same as in Figure 1 are given the same numbers, and paths that are shown as a single path in Figure 1 can be used for different purposes (for example, for command and address signals). ), the subscripts a, b, and c are added. In addition, to simplify the drawing, an east line representation is used, and this is indicated by a thick solid line. The same applies to FIG. 3 and subsequent figures.
第2図において、命令実行制御部4から命令読み出し要
求(アドレス)がパス50aを通ってレジスタ100に
セットされる。レジスタ100上のアドレスは100a
部が命令バッファのカラムアドレス、100b部がカラ
ム内アドレスを示していると仮定する。フリップフロッ
プ101は、カラム内の命令が使用できるか否か(有効
か否か)を示すフリップフロップであり、値“1″が有
効を示す。レジスタ102は、カラムの先頭に格納され
ている命令のアドレスを保持する。レジスタ列103は
前記のレジスタ102内の命令アドレスから連続する3
個の命令を保持する。フリップフロップ101、レジス
タ102.103をカラムという。論理回路104は、
サイクリックなカウンタであり、実装しであるカラム数
−1を超えると“0°゛にラップアラウンドされる。サ
イクリックカウンタ104の出力は、パス150を通っ
てスイッチング回路105〜107へ入力される。In FIG. 2, an instruction read request (address) from the instruction execution control unit 4 is set in the register 100 through a path 50a. Address on register 100 is 100a
Assume that the section 100b indicates the column address of the instruction buffer, and the section 100b indicates the intra-column address. A flip-flop 101 is a flip-flop that indicates whether an instruction in a column can be used (valid or not), and a value of "1" indicates validity. Register 102 holds the address of the instruction stored at the beginning of the column. The register column 103 consists of three consecutive instruction addresses in the register 102.
holds instructions. The flip-flop 101 and registers 102 and 103 are called columns. The logic circuit 104 is
It is a cyclic counter, and when it exceeds the number of columns minus 1, it wraps around to 0°.The output of the cyclic counter 104 is input to the switching circuits 105 to 107 through a path 150. .
パス151〜154は、第1図に示すセレクタ9から送
られてくる信号であって、それぞれアドバンス、ライト
イネーブル、アドレス、データ信号である。第1図では
これらの信号線は1本の信号線に省略して示されている
。これらの各信号は、スイッチング回路105〜107
によって各カラムに分配される。Paths 151 to 154 are signals sent from the selector 9 shown in FIG. 1, and are advance, write enable, address, and data signals, respectively. In FIG. 1, these signal lines are abbreviated to one signal line. Each of these signals is transmitted to switching circuits 105 to 107.
distributed to each column by
レジスタ100にセットされた命令アドレスは、比較回
路110によって、レジスタ102上の命令アドレスと
一致しているか否かが調べられ、その結果がAND回路
111に送られる。フリップフロップ101の出力も同
回路111に送られ、未セツトカラムのアドレスとの比
較を無効にする。The instruction address set in register 100 is checked by comparison circuit 110 to see if it matches the instruction address on register 102, and the result is sent to AND circuit 111. The output of flip-flop 101 is also sent to the same circuit 111, invalidating comparison with addresses in unset columns.
AND回路111の出力が“°1″のとき、対応するカ
ラムの中にレジスタ100上の命令アドレスに相当する
命令が存在することを示す。When the output of the AND circuit 111 is "°1", it indicates that an instruction corresponding to the instruction address on the register 100 exists in the corresponding column.
AND回路111の出力は、エンコーダ112によって
コード化されパス156上に送り出される。パス156
上の信号が“0”のとき、命令バッファ3内に命令アド
レスに対応する命令がないことを示す。パス156上の
コード信号は、セレクタ113に作用し命令のあるカラ
ムからのデータを選択してパス157〜159上に送出
する。The output of AND circuit 111 is encoded by encoder 112 and sent onto path 156. pass 156
When the above signal is "0", it indicates that there is no instruction corresponding to the instruction address in the instruction buffer 3. The code signal on path 156 acts on selector 113 to select data from the column containing the instruction and send it on paths 157-159.
レジスタ100内の100bフイールドは、カラム内ア
ドレスを保持している。該アドレスは、パス160を経
由してセレクタ114に作用し、パス157〜159の
どれかを選択し、そのデータをレジスタ116に送出す
る。レジスタ116の出力は、パス52を通って第1図
の命令実行制御部4に送られる。The 100b field in register 100 holds the intra-column address. The address acts on the selector 114 via the path 160, selects one of the paths 157-159, and sends the data to the register 116. The output of register 116 is sent to instruction execution control unit 4 in FIG. 1 through path 52.
パス156上の信号値が“0°゛となり、命令バッファ
3内に命令が存在しないことが示されたとき、比較回路
117は、パス53a上に“1′を出力する。パス53
a上のこの信号は、BT要求を示し、第1図のりクエス
タ8に送られる。レジスタ100の100aフイールド
のデータは、パス53bを通って同様にリクエスタ8に
送られる。When the signal value on the path 156 becomes "0°", indicating that there is no instruction in the instruction buffer 3, the comparison circuit 117 outputs "1" on the path 53a. pass 53
This signal on a indicates a BT request and is sent to NoriQuesta 8 in FIG. Data in field 100a of register 100 is similarly sent to requester 8 via path 53b.
第2図の命令バッファは、実装されているカラム数に入
っている命令の範囲内でならどのように分岐しても同じ
遅延時間後に命令を読出すことができる。The instruction buffer shown in FIG. 2 allows instructions to be read out after the same delay time no matter how branched within the range of instructions included in the number of columns implemented.
パス50b上に命令バッファ3の内容をクリアする信号
が送られてくると、フリップフロップ101の内容は、
“0°”にリセットされ、全エントリアドレスが無効化
される。When a signal to clear the contents of the instruction buffer 3 is sent on the path 50b, the contents of the flip-flop 101 are
It is reset to "0°" and all entry addresses are invalidated.
Cバッファ2の構成を示すブロック図が第3゜4図に示
されている。Cバッファ2は、命令バッファ3よりも大
容量であることが望ましいのでメモリ素子を用いて実現
する例を示した。Cバッファ2の書き込み動作と読み出
し動作は、並列的に行われるので、メモリ素子を使う場
合にはバッファの論理を2面化するか、1/2のマシン
サイクルで作動させる必要がある。ここではマシンサイ
クルを1/2とする場合を例として説明する。A block diagram showing the configuration of the C buffer 2 is shown in FIGS. 3-4. Since it is desirable that the C buffer 2 has a larger capacity than the instruction buffer 3, an example is shown in which it is realized using a memory element. Since the write operation and read operation of the C buffer 2 are performed in parallel, when using a memory element, it is necessary to make the buffer logic two-sided or to operate it in 1/2 machine cycle. Here, a case where the machine cycle is reduced to 1/2 will be explained as an example.
■マシンサイクルをW/Rサイクルの2つに分け、Wサ
イクルで作動する論理部を[株]で、Rサイクルで作動
する論理部を■で、両サイクルで作動する部分を◎で示
す。■The machine cycle is divided into two, the W/R cycle, and the logic section that operates in the W cycle is indicated by [stock], the logic section that operates in the R cycle is indicated by ■, and the section that operates in both cycles is indicated by ◎.
第3図を用いてCバッファ2への書込動作を説明する。The write operation to the C buffer 2 will be explained using FIG.
ここではm=3とする。Here, m=3.
Cバッファ2への書き込みデータは、主記憶1からパス
260上にn個の命令が1マシンサイクル単位に送られ
て来る。パス260に対するアドバンス信号はパス26
1である。論理回路210は、サイクリックカウンタで
、パス261上の7ドバンス信号によってO→1→2→
3→0→のように値が変化する。該カウンタの出力は、
パス255上に出力される。サイクリックカウンタ21
0は、値が3→0へ変化するとき、パス256上にパル
スを送出する。パス260上のCバッファのエントリア
ドレスは、レジスタ211にセットされる。パス256
上のパルス信号によって、レジスタ211上のデータは
、レジスタ212に移行し、スイッチング回路213に
送られる。パス254上の信号は、このエントリアドレ
スをどのレジスタ202に書き込むかを指示する。これ
によって、パス260上に送られて来たエントリアドレ
スは、レジスタ202のいずれかに書き込まれる。Write data to the C buffer 2 is sent from the main memory 1 to the path 260 in n instructions in units of one machine cycle. The advance signal for path 260 is
It is 1. The logic circuit 210 is a cyclic counter, and the 7 advance signal on the path 261 causes O→1→2→
The value changes like 3 → 0 →. The output of the counter is
It is output on path 255. cyclic counter 21
0 sends a pulse on path 256 when the value changes from 3 to 0. The entry address of the C buffer on path 260 is set in register 211. pass 256
The data on the register 211 is transferred to the register 212 and sent to the switching circuit 213 by the above pulse signal. A signal on path 254 indicates which register 202 to write this entry address into. As a result, the entry address sent on path 260 is written to one of the registers 202.
パス262上には、Cバッファに書き込むべきn個の命
令が主記憶1から送られて来る。パス262上のデータ
は、レジスタ214に格納された後、スイッチング回路
215に送られ、パス255上のサイクリックカウンタ
210の出力によってm−3に対応して3個実装されて
いるRAM素子201のどれかに送られる。On the path 262, n instructions to be written to the C buffer are sent from the main memory 1. The data on the path 262 is stored in the register 214 and then sent to the switching circuit 215, and the output of the cyclic counter 210 on the path 255 causes the data on the three RAM elements 201 mounted corresponding to m-3 to be sent to the switching circuit 215. sent somewhere.
パス261上のアドバンス信号は、レジスタ216を経
由してAND回路217に入力される。The advance signal on path 261 is input to AND circuit 217 via register 216.
パス253上の信号はW/Rサイクルを示す信号である
。ここではWサイクルを値“1゛で表わす。The signal on path 253 is a signal indicating the W/R cycle. Here, the W cycle is represented by the value "1".
従って、1マシンサイクルのWサイクル時にRAM素子
201に書き込みが行われる。Therefore, data is written to the RAM element 201 during the W cycle of one machine cycle.
フリップフロップ21Bは、Cバッファのカラム内の命
令列がインターバルタイマ230が出力を出している間
に使用されたか否かを示している。Flip-flop 21B indicates whether the instruction sequence in the column of the C buffer was used while the interval timer 230 was outputting.
ここでは、値“°1°゛が使用されたことを、値“0”
が使用されなかったことを示すとする。Here, the value “0” indicates that the value “°1°” was used.
Let us indicate that was not used.
フリップフロップ218は、インターバルタイマ230
が出力を出すと一斉に” o ”クリアされる。また、
このフリップフロップ21Bは、パス250上にCバッ
ファ読み出し論理部(第4図)からデータが読み出され
たことを示す信号が送られて来ると1°“にセットされ
る。The flip-flop 218 is an interval timer 230
When output is output, "o" is cleared all at once. Also,
This flip-flop 21B is set to 1.degree. when a signal is sent on path 250 from the C buffer read logic section (FIG. 4) indicating that data has been read.
フリップフロップ218の出力は、エンコーダ219に
よってコード化されパス263上に送り出される。22
0は、乱数発生器であって、その出力はパス264上に
送り出される。エンコーダ219の出力が全て“0”の
とき、即ちCバッファのどのカラムも使用されていると
き、比較回路222の出力は、“1゛となり、これによ
って、セレクタ221は、パス264と251を接続す
る。従って、パス251上の信号によってCバッファの
カラム上のデータをリプレースする場合、あまり多くの
データをCバッファに書込んでも性能向上は望めなくな
る。Cバッファの管理は、ユーザの責任で命令を発行し
なければならない。The output of flip-flop 218 is encoded by encoder 219 and sent on path 263. 22
0 is a random number generator whose output is sent out on path 264. When the outputs of the encoder 219 are all "0", that is, when any column of the C buffer is used, the output of the comparison circuit 222 is "1", and the selector 221 connects the paths 264 and 251. Therefore, when data on a column of the C buffer is replaced by a signal on path 251, performance improvement cannot be expected even if too much data is written to the C buffer.Management of the C buffer is the responsibility of the user. must be issued.
パス251上のデータは、第4図からの読み出アドレス
データバス252とセレクタ200上で、W/Rサイク
ルの選別が行われパス254上に送出されRAM201
のアドレス情報となる。パス254上のデータは第4図
にも送出される。Data on path 251 is subjected to W/R cycle selection on read address data bus 252 and selector 200 from FIG.
address information. Data on path 254 is also sent to FIG.
第4図はCバッファの読み出し部分のブロック図を示し
ている。パス57上にはCバッファを読み出するための
アドレスが送られてき、該アドレスは、レジスタ230
にセットされる。レジスタ230のaフィールドは、C
バッファから読み出す命令列が格納されているカラムの
命令列の先頭アドレスに対応する(比較できる)もので
ある。FIG. 4 shows a block diagram of the read portion of the C buffer. An address for reading the C buffer is sent on the path 57, and this address is sent to the register 230.
is set to The a field of register 230 is C
It corresponds to (can be compared with) the start address of the instruction string in the column in which the instruction string to be read from the buffer is stored.
bフィールドは、m個に別かれているCバッファのどの
ブロックを読出せばよいかを示している。The b field indicates which block of the m divided C buffers should be read.
Cフィールドは、第4図の論理では用いられない。The C field is not used in the logic of FIG.
レジスタ230のaフィールドのアドレスはパス280
を通って比較回路232に送られ、レジスタ202上の
カラムアドレスと比較される。フリップフロップ231
は、Cバッファのカラムアドレスが有効であるか否か、
即ちカラム内の命令列が使用できるか否かを示している
。ここではフリップフロップの値が“1゛の時に有効で
あるとする。比較回路232の出力と該フリップフロッ
プ231の出力とは、AND回路233で論理積がとら
れ、その結果がパス250上に送出される。The address of the a field of register 230 is path 280
The data is sent to the comparison circuit 232 and compared with the column address on the register 202. flip flop 231
is whether the column address of the C buffer is valid or not,
In other words, it shows whether the instruction string in the column can be used or not. Here, it is assumed that it is valid when the value of the flip-flop is "1". Sent out.
パス250上の信号は、エンコーダ234でコード化さ
れパス252を介してセレクタ200に送出される。セ
レクタ200からは、RAM201のアドレスが出力さ
れる。この論理についてはすでに第3図で説明した。R
AM201から読出されたデータ(命令列)は、セレク
タ235でレジスタ230のbフィールドの情報によっ
て選択されパス288上に送出される。The signal on path 250 is encoded by encoder 234 and sent to selector 200 via path 252. The selector 200 outputs the address of the RAM 201. This logic has already been explained in FIG. R
The data (instruction string) read from the AM 201 is selected by the selector 235 based on the information in the b field of the register 230 and sent onto the path 288.
パス261上の信号は、スイッチング回路237で選択
され、書き込みカラムに対応するフリップフロップ23
1のセットを行う。The signal on path 261 is selected by switching circuit 237 and sent to flip-flop 23 corresponding to the write column.
Perform set 1.
パス285は、第1図の命令実行制御回路4からのCバ
ッファパージパスである。Path 285 is a C buffer purge path from instruction execution control circuit 4 in FIG.
エンコーダ234の出力が“0°゛、即ちCバッファ内
に読み出すべき命令列がセットされていないとき、比較
回路236の出力が°“1°“となり、BT2リクエス
ト要求がパス54上に送出される。When the output of the encoder 234 is “0°”, that is, the instruction sequence to be read out is not set in the C buffer, the output of the comparison circuit 236 is “1°”, and the BT2 request is sent onto the path 54. .
第5図は第1図のりクエスタ8のCバッファへの転送処
理部のブロック図である。FIG. 5 is a block diagram of the transfer processing section to the C buffer of NoriQuesta 8 of FIG. 1.
第5図において、命令実行制御回路4からCバッファへ
データを転送する命令は、パス59a上に信号を送出す
ることにより発行される。この指示信号は、レジスタ3
00にスタックされる。フリップフロップ301は、[
Cバッファへのデー夕転送命令」が実行中であるとき値
“l”′を保持している。このとき、レジスタ300上
の後続のデータ転送命令は受は付けられない。データ転
送命令が完了しパス256上に終了信号が送出される(
第3図参照)とフリップフロップ301はリセットされ
、後続のデータ転送命令がレジスタ302にセットされ
実行に移される。一方、該転送命令のアドレスは、パス
59bを経由してリクエスタに送られてくる。パス59
c、d上の信号は、それぞれ転送数(mの値)、オーダ
を示していてレジスタ330,331に保持される。レ
ジスタ303には1回のデータ転送量(n (B))の
値が格納されている。パス354上の信号値が“′1パ
になるとカウンタ310がリセットされ、セレクタ30
4は、レジスタ306のデータを加算器311を通して
レジスタ312にセットする。In FIG. 5, an instruction to transfer data from instruction execution control circuit 4 to C buffer is issued by sending a signal on path 59a. This instruction signal is the register 3
Stacked at 00. The flip-flop 301 is [
It holds the value "l"' when the "data transfer instruction to C buffer" is being executed. At this time, subsequent data transfer commands on register 300 are not accepted. The data transfer instruction is completed and a completion signal is sent on path 256 (
(see FIG. 3) and the flip-flop 301 are reset, and the subsequent data transfer command is set in the register 302 and executed. On the other hand, the address of the transfer instruction is sent to the requester via path 59b. pass 59
Signals on c and d indicate the number of transfers (value of m) and order, respectively, and are held in registers 330 and 331. The register 303 stores the value of one data transfer amount (n (B)). When the signal value on the path 354 reaches “1”, the counter 310 is reset and the selector 30
4 sets the data in the register 306 to the register 312 through the adder 311.
またレジスタ330,331上のデータもレジスタ33
2,333へ移される。次のサイクルで、レジスタ31
2上のデータ(アドレス)は、パス351を通って加算
器311に還流する。次のす2フ
イクルでは、パス354上の信号は“0゛となり、セレ
クタ304は、レジスタ303のデータを加算器311
に送出する。AND回路313は、タイミングベースか
らのパルス“TB”“をパス352から入力されて、毎
マシンサイクル毎にレジスタ312に対してセット信号
を送出する。従って、パス351上にはlマシンサイク
ルピッチで主記憶1をアクセスするためのアドレスが生
成される。Also, the data on registers 330 and 331 are also stored in register 33.
Moved to 2,333. In the next cycle, register 31
The data (address) on 2 is returned to adder 311 through path 351. In the next two frames, the signal on the path 354 becomes "0", and the selector 304 transfers the data in the register 303 to the adder 311.
Send to. The AND circuit 313 receives the pulse "TB" from the timing base from the path 352 and sends out a set signal to the register 312 every machine cycle. An address for accessing main memory 1 is generated.
このアドレスは、比較回路310によってレジスタ33
2内のデータと比較され、両者が一致した場合、比較回
路310は、出力値“1゛を送出する。レジスタ332
には、Cバッファに何回!・n (B)のデータを転送
するかの情報が格納されている。比較回路310の出力
は、インバータ315で反転されて、パス353を通り
AND回路313に入力される。これにより、データ転
送に必要な回数のアドレスを生成した後はアドレスが生
成されないように制御される。This address is transferred to register 33 by comparison circuit 310.
2, and if they match, the comparison circuit 310 sends out an output value “1”.Register 332
How many times to C buffer?・Information on whether to transfer data n (B) is stored. The output of comparison circuit 310 is inverted by inverter 315 and input to AND circuit 313 through path 353. Thereby, control is performed so that no addresses are generated after the number of addresses required for data transfer has been generated.
フリップフロップ302の出力は、パス60aを通って
主記憶1へ送出される。この出力が“0”のとき、パス
60b、c上のデータは、無効データとして扱われる。The output of flip-flop 302 is sent to main memory 1 through path 60a. When this output is "0", data on paths 60b and 60c is treated as invalid data.
レジスタ312.333の出力は、それぞれパス60b
、cを通って主記憶1へ送られる。このパス60b、c
上のデータは、それぞれアドレス、オーダを示している
。The outputs of registers 312 and 333 are respectively connected to path 60b.
, c to the main memory 1. This path 60b,c
The above data indicates an address and an order, respectively.
第6図は第1図のりクエスタ8の論理部の一部で、Cパ
ツファヘデータを転送中、命令バッファ読み出し要求が
発生したときのCバッファと命令バッファ間のデータ転
送に関する部分を示す図である。FIG. 6 is a diagram showing a portion of the logic section of the Quester 8 of FIG. 1, which is related to data transfer between the C buffer and the instruction buffer when an instruction buffer read request occurs during data transfer to the C buffer.
第6図において、パス60b上にアドレスが送出されて
くると1マシンサイクル毎にレジスタ400〜402上
にそのアドレスが転送されていく。このとき、命令バッ
ファ側の比較回路6からBTリクエスト要求アドレスが
パス53bに出力されたとする。該アドレスは、レジス
タ403にスタックされ、比較回路404でアドレスの
一致が調べられ、その結果がエンコーダ405に送出さ
れる。エンコーダ405でコード化された結果は、レジ
スタ406にスタックされ、Cバッファへ書込むデータ
が主記憶lから読み出されるまで保持される。In FIG. 6, when an address is sent out on path 60b, that address is transferred onto registers 400-402 every machine cycle. At this time, it is assumed that the BT request request address is output from the comparison circuit 6 on the instruction buffer side to the path 53b. The addresses are stacked in a register 403, a comparison circuit 404 checks whether the addresses match, and the result is sent to an encoder 405. The result encoded by the encoder 405 is stacked in the register 406 and held until the data to be written to the C buffer is read from the main memory l.
Cバッファへ書込む処理は、第3図で説明した通りであ
るが、Cバッファへ書込むと同時に書込データを命令バ
ッファ側へ転送することが必要になる。このため、第3
図のスイッチング回路215の出力パス268をレジス
タ407〜409へ接続し、m個の書込データが順にレ
ジスタ407゜408、・・・・・・にセットされるよ
うにする。The process of writing to the C buffer is as explained in FIG. 3, but it is necessary to transfer the write data to the instruction buffer side at the same time as writing to the C buffer. For this reason, the third
The output path 268 of the switching circuit 215 shown in the figure is connected to the registers 407 to 409 so that m pieces of write data are sequentially set in the registers 407, 408, . . . .
レジスタ406の出力は、セレクタ411に作用し、レ
ジスタ407〜409上のデータのうち、比較回路40
4で一致したアドレスに対応するデータのみをレジスタ
410へ送る。一方、命令バッファ側とCバッファ側の
2つの比較回路6,7の出力が共に「レジスタ403上
のアドレスがエントリされていない」ことを示している
とき、パス53a、54上には“1”が出力されている
ので、これをAND回路412で論理積をとり結果をレ
ジスタ413に保持しておく。レジスタ413の出力は
、レジスタ4100セット信号として用いられる。命令
バッファ側の比較回路6のパス53a上の信号値が“1
”″で、Cバッファ側の比較回路7のパス54上の信号
値が“0”のとき、即ち命令バッファに目的とする命令
列がなく、Cバッファ上に目的とする命令列が存在する
とき、AND回路414でこれが検出され、AND回路
412の出力と併せて、エンコーダ415でコード化さ
れる。The output of the register 406 acts on the selector 411, and among the data on the registers 407 to 409, the comparison circuit 40
4, only data corresponding to the matched address is sent to the register 410. On the other hand, when the outputs of the two comparison circuits 6 and 7 on the instruction buffer side and the C buffer side both indicate that "the address on the register 403 has not been entered,""1" appears on the paths 53a and 54. Since this is outputted, an AND circuit 412 performs a logical product on this and the result is held in a register 413. The output of register 413 is used as a register 4100 set signal. The signal value on the path 53a of the comparator circuit 6 on the instruction buffer side is “1”.
"", when the signal value on the path 54 of the comparison circuit 7 on the C buffer side is "0", that is, when there is no target instruction sequence in the instruction buffer and there is a target instruction sequence on the C buffer. , is detected by an AND circuit 414, and is encoded by an encoder 415 together with the output of the AND circuit 412.
比較回路7からはAND回路414の出力が′“1”′
の場合、パス288上にCバッファから読み出した命令
列が送り出されている。従って、セレクタ416で主記
憶側のCバッファ書き込み命令列とパス288のCバッ
ファからの読み出し命令列が選択されて、そのいずれか
一方がパス58経由で命令バッファに送出されることに
なる。From the comparison circuit 7, the output of the AND circuit 414 is ``1''.
In this case, the instruction sequence read from the C buffer is sent out on path 288. Therefore, the selector 416 selects the C buffer write instruction sequence on the main memory side and the read instruction sequence from the C buffer on the path 288, and one of them is sent to the instruction buffer via the path 58.
第7図は第1図の命令実行制御部7のブロック図である
。FIG. 7 is a block diagram of the instruction execution control section 7 of FIG. 1.
第7図において、パス52を通って命令が命令バッファ
から送られて来る。パス52a、52b上にはそれぞれ
コマンド、データが伝播しているものとする。In FIG. 7, instructions are sent from the instruction buffer over path 52. It is assumed that commands and data are propagated on the paths 52a and 52b, respectively.
パス52b上のデータは、レジスタに501にセットさ
れる。レジスタ501のデータ即ち命令は、デコーダ5
03で解読され、論理回路504で命令実行に必要なオ
ーダ類が生成される。ここでは、命令実行に必要な情報
として、命令を実行する演算器などの資源、命令結果を
書き込むためのレジスタ類などのビジー状態を考える。The data on path 52b is set to 501 in the register. The data in the register 501, that is, the command, is sent to the decoder 5.
03, and a logic circuit 504 generates orders necessary for executing the instruction. Here, as information necessary for instruction execution, we consider the busy state of resources such as arithmetic units that execute instructions and registers for writing instruction results.
演算器。Arithmetic unit.
レジスタを総称してリソースといい、これらのリソース
のビジーを管理するためにフリップフロップ507が設
けられている。すなわち、フリップフロップ507が°
°1°゛のとき、対応するリソースがビジーであること
を示す。The registers are collectively called resources, and a flip-flop 507 is provided to manage the busy state of these resources. That is, the flip-flop 507 is
When it is 1°, it indicates that the corresponding resource is busy.
第7図において、論理回路504で命令を実行するため
の情報(簡単のため1個とする)が作られ、パス550
上にその情報が送出されると、この情報は、セレクタ5
08に作用し命令実行に必要なフリップフロップ507
の情報をパス551上に送出する。該情報は、インバー
タ509で反転されAND回路510に入力される。一
方、しジスタ500にセットされたレジスタ501上の
命令が有効であることを示す指示信号は、AND回路5
02を通って、レジスタ505にセットされ、パス55
2を介してAND回路510に入力される。即ちAND
回路510の出力が“I IIのとき、命令が実行可で
あることを示している。該出力は、レジスタ511を通
ってレジスタ501のセット信号となると同時に、パス
50を介して命令バッファ部に次命令続出要求のコマン
ド信号となって送出される。ANI)回路510の出力
が“0゛すなわち命令実行不可のとき、パス50上には
命令続出要求が生成されず、レジスタ501もセットさ
れない。またAND回路502の出力は常に°“0″と
なり命令実行が抑止される。In FIG. 7, information for executing an instruction in a logic circuit 504 (one piece is used for simplicity) is created, and a path 550
When the information is sent to the top, this information is sent to the selector 5.
Flip-flop 507 that acts on 08 and is necessary for instruction execution
information is sent out on path 551. The information is inverted by an inverter 509 and input to an AND circuit 510. On the other hand, an instruction signal indicating that the instruction on the register 501 set in the register 500 is valid is sent to the AND circuit 5.
02, is set in register 505, and passes through path 55.
2 to the AND circuit 510. That is, AND
When the output of the circuit 510 is "I II", it indicates that the instruction is executable. When the output of the ANI (ANI) circuit 510 is "0", that is, the instruction cannot be executed, no instruction successive request is generated on the path 50, and the register 501 is not set. Further, the output of the AND circuit 502 is always "0" and instruction execution is inhibited.
パス50上に命令実行指示が行われると、スイッチング
回路506を介してその命令実行に必要なリソースに対
応するフリップフロップ507が“1”にセットされる
。When an instruction execution instruction is issued on the path 50, the flip-flop 507 corresponding to the resource necessary for executing the instruction is set to "1" via the switching circuit 506.
このフリップフロップ507は、リソース側から命令処
理を完了したときに出力されるフリー信号がパス560
を介して送られて来るまで“0“にリセットされない。This flip-flop 507 receives a free signal outputted from the resource side when the instruction processing is completed through a path 560.
It is not reset to “0” until it is sent via the .
第7図のような方式の命令実行制御を行うと、1命令の
処理が複数ステージを要するような命令のとき、先行す
る命令の実行中に、後続の命令の実行をリソースがビジ
ーでなければ実行することができる。即ち、主記憶1か
らCバッファへのデータ転送が長いマシンサイクルを要
しても、命令の並列実行が可能であるので、命令実行に
及ぼす影響はほとんどない。When the instruction execution control method shown in Fig. 7 is used, when the processing of one instruction requires multiple stages, it is possible to execute the following instruction while the preceding instruction is being executed unless the resources are busy. can be executed. That is, even if data transfer from the main memory 1 to the C buffer requires a long machine cycle, since instructions can be executed in parallel, there is almost no effect on instruction execution.
前述した本発明の実施例は、主記憶からCバッファへの
命令列の転送が通常の命令フェッチを防げないような論
理的工夫を施し、Cバッファの導入による悪影響がない
ようにした。The embodiment of the present invention described above is logically contrived so that the transfer of an instruction sequence from the main memory to the C buffer does not prevent normal instruction fetching, so that the introduction of the C buffer does not have any adverse effects.
以上説明したように、本発明によれば、命令バッファと
Cバッファの性質の異る2つのバッファを用いて命令読
み出しの高速化を図ることができる。As described above, according to the present invention, it is possible to speed up instruction reading by using two buffers with different properties, the instruction buffer and the C buffer.
また、命令バッファによって、複数の命令を−度にバッ
ファ上に主記憶から読出すことにより、主記憶バッファ
間のデータ転送の効率を良くし、命令読み出し要求のア
ドレスの連続性に対するバッファの効率的反応を可能に
でき、命令バッファ内の命令に、任意の順序でアクセス
可能になるような論理構成をとることにより、バッファ
内分岐処理の著しい高速化を実現することができる。In addition, by reading multiple instructions from the main memory onto the buffer at a time using the instruction buffer, the efficiency of data transfer between main memory buffers is improved, and the efficiency of the buffer with respect to the continuity of addresses of instruction read requests is improved. By adopting a logical configuration that enables reactions and allows access to instructions in an instruction buffer in any order, it is possible to significantly speed up intra-buffer branch processing.
さらに、Cバッファによって、頻度高く使用されるルー
チン類のバッファ内常駐が可能になり、かつ、命令バッ
ファに容量的に入り切らないプログラム内の分岐処理を
高速化できる。Furthermore, the C buffer allows frequently used routines to reside in the buffer, and speeds up branch processing within a program that does not fit in the instruction buffer.
第1図は本発明によるデータ処理装置の一実施例の概略
構成を示すブロック図、第2図は命令バッファ部の構成
を示すブロック図、第3図、4図はCバッファ部の構成
を示すブロック図、第5図、第6図はりクエスタ部の構
成を示すブロック図、第7図は命令実行制御部の構成を
示すブロック図である。
1・・・・・・・・・主記憶、2・・・・・・・・・C
バッファ、3・・・・・・・・・命令バッファ、4・・
・・・・・・・命令実行制御部、5・・・・・・・・・
命令実行部、6.7・・・・・・・・・比較回路、8・
・・・・・・・・リクエスタ、9・・・・・・・・・セ
レクタ、10・・・・・・・・・データバッファ。FIG. 1 is a block diagram showing a schematic configuration of an embodiment of a data processing device according to the present invention, FIG. 2 is a block diagram showing the configuration of an instruction buffer section, and FIGS. 3 and 4 show the configuration of a C buffer section. Block Diagrams FIGS. 5 and 6 are block diagrams showing the structure of the Questa section, and FIG. 7 is a block diagram showing the structure of the instruction execution control section. 1・・・・・・・・・Main memory, 2・・・・・・・・・C
Buffer, 3...Instruction buffer, 4...
......Instruction execution control section, 5...
Instruction execution unit, 6.7... Comparison circuit, 8.
......Requester, 9...Selector, 10...Data buffer.
Claims (1)
令読み出し動作をトリガとして複数の命令を1回の主記
憶アクセスでバッファに転送し、次回の命令読み出しを
バッファから行う論理部、バッファにエントリされてい
ない命令を読み出すように要求されたとき、再び複数の
命令を1度に主記憶から読み出す論理部、及び、読み出
した命令列がバッファに入らないとき、自動的に前もつ
て読み出した命令列の一部を消去し、そこに新たな命令
を書き込む論理部を備える第1の命令バッファと、命令
によつて主記憶から命令列をローディングする論理部を
備える第2の命令バッファとを備えたことを特徴とする
データ処理装置。 2、前記第2の命令バツフアへの命令列転送と、データ
処理とを並列に実行可能であることを特徴とする特許請
求の範囲第1項記載のデータ処理装置。 3、前記第1及び第2の命令バッファの内容を無効化す
る論理部をさらに備えたことを特徴とする特許請求の範
囲第1項または第2項記載のデータ処理装置。 4、命令読み出し要求がデータ処理部から発行されたと
き、該読み出し要求の命令が、前記第1、第2の命令バ
ッファ内に存在するか否かを検出する論理部をさらに備
えることを特徴とする特許請求の範囲第1項、第2項ま
たは第3項記載のデータ処理装置。 5、前記読み出し要求の命令が、第1、第2の命令バッ
ファ内に存在するか否かを検出する論理部の検出結果に
基づいて、前記第2の命令バッファから前記第1の命令
バッファに命令列を転送する論理部をさらに備えること
を特徴とする特許請求の範囲第4項記載のデータ処理装
置。 6、命令読み出し要求に対する前記第1、第2の命令バ
ッファの応答に基づいて、主記憶へ、命令列の命令バツ
フアへの転送を要求する論理部をさらに備えることを特
徴とする特許請求の範囲第1項ないし第5項のうち1項
記載のデータ処理装置。 7、前記命令列の命令バツフアへの転送を要求する論理
部から発行された命令列の転送要求が未完のとき、デー
タ処理部から命令読み出し要求が発行され、前記論理部
の要求による命令列転送の中に、前記データ処理部の要
求による命令を含む場合、前記第2の命令バッファに前
記論理部の要求による命令列を書き込むと同時に、前記
データ処理部の要求による命令を含む部分を前記第1の
命令バッファに転送する機能を有する論理部をさらに備
えることを特徴とする特許請求の範囲第6項記載のデー
タ処理装置。[Scope of Claims] 1. In a data processing device equipped with an instruction buffer, a logic unit that uses an instruction read operation as a trigger to transfer a plurality of instructions to the buffer in one main memory access, and reads the next instruction from the buffer; When a request is made to read an instruction that has not been entered in the buffer, a logic section that reads out multiple instructions from main memory at once again, and when the read instruction sequence does not fit into the buffer, automatically reads the instructions beforehand. A first instruction buffer that includes a logic section that erases a part of a read instruction string and writes a new instruction there; and a second instruction buffer that includes a logic section that loads the instruction string from main memory according to the instruction. A data processing device comprising: 2. The data processing device according to claim 1, wherein the data processing device is capable of executing instruction sequence transfer to the second instruction buffer and data processing in parallel. 3. The data processing device according to claim 1 or 2, further comprising a logic unit that invalidates the contents of the first and second instruction buffers. 4. The device further comprises a logic unit that detects, when an instruction read request is issued from the data processing unit, whether or not the instruction of the read request exists in the first and second instruction buffers. A data processing device according to claim 1, 2, or 3. 5. The instruction of the read request is transferred from the second instruction buffer to the first instruction buffer based on the detection result of the logic unit that detects whether or not the instruction of the read request exists in the first and second instruction buffers. 5. The data processing device according to claim 4, further comprising a logic unit that transfers a sequence of instructions. 6. Claims further comprising a logic unit that requests transfer of an instruction sequence to the instruction buffer from the main memory based on responses of the first and second instruction buffers to an instruction read request. The data processing device according to one of items 1 to 5. 7. When the instruction sequence transfer request issued by the logic unit that requests the transfer of the instruction sequence to the instruction buffer is incomplete, the data processing unit issues an instruction read request, and the instruction sequence transfer according to the request from the logic unit includes an instruction requested by the data processing unit, the instruction sequence requested by the logic unit is written into the second instruction buffer, and at the same time, the part including the instruction requested by the data processing unit is written to the second instruction buffer. 7. The data processing device according to claim 6, further comprising a logic unit having a function of transferring the instruction to one instruction buffer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22832488A JPH0277839A (en) | 1988-09-14 | 1988-09-14 | Data processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22832488A JPH0277839A (en) | 1988-09-14 | 1988-09-14 | Data processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0277839A true JPH0277839A (en) | 1990-03-16 |
Family
ID=16874666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22832488A Pending JPH0277839A (en) | 1988-09-14 | 1988-09-14 | Data processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0277839A (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5718075A (en) * | 1980-07-07 | 1982-01-29 | Nec Corp | Information processor |
JPS6356731A (en) * | 1986-08-27 | 1988-03-11 | Mitsubishi Electric Corp | Data processor |
JPS6393039A (en) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | Computer |
-
1988
- 1988-09-14 JP JP22832488A patent/JPH0277839A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5718075A (en) * | 1980-07-07 | 1982-01-29 | Nec Corp | Information processor |
JPS6356731A (en) * | 1986-08-27 | 1988-03-11 | Mitsubishi Electric Corp | Data processor |
JPS6393039A (en) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | Computer |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6272596B1 (en) | Data processor | |
JPH0374434B2 (en) | ||
JP3797570B2 (en) | Apparatus and method using semaphore buffer for semaphore instructions | |
JPH0527971A (en) | Information processor | |
JPH0760388B2 (en) | Pipeline control circuit | |
US4047245A (en) | Indirect memory addressing | |
JPH03233630A (en) | Information processor | |
JPS5824954A (en) | Address controlling system | |
JP3481425B2 (en) | Cache device | |
US5276853A (en) | Cache system | |
JPH0512751B2 (en) | ||
JPH0277839A (en) | Data processor | |
JP2783285B2 (en) | Information processing device | |
JPH07319753A (en) | Multiplex system for bus cycle | |
JPS5925264B2 (en) | Vector instruction processing method | |
JPH0462086B2 (en) | ||
JP2001022581A (en) | Data processor and computer readable storage medium | |
JPS5896346A (en) | Hierarchical arithmetic system | |
JPH0934878A (en) | Vector register system | |
JPS60142450A (en) | Storage system | |
JPH01305452A (en) | Store control system for buffer memory device | |
JPH0346033A (en) | Data transfer control method for inter-job | |
JPH06131239A (en) | Main storage access control system | |
JPH04182831A (en) | Information processor and processing method | |
JPH0775017B2 (en) | Memory access method |