JPH028333B2 - - Google Patents
Info
- Publication number
- JPH028333B2 JPH028333B2 JP59248948A JP24894884A JPH028333B2 JP H028333 B2 JPH028333 B2 JP H028333B2 JP 59248948 A JP59248948 A JP 59248948A JP 24894884 A JP24894884 A JP 24894884A JP H028333 B2 JPH028333 B2 JP H028333B2
- Authority
- JP
- Japan
- Prior art keywords
- store
- buffer
- instruction fetch
- operand
- instruction
- 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 - Lifetime
Links
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、オペランドアクセス用バツフア記憶
装置と、命令フエツチ用バツフア記憶装置と、主
記憶装置へのストアアクセスを行う為の複数のス
トアアドレスレジスタと、ストアデータレジスタ
より構成されるストアバツフアを備えたデータ処
理装置におけるストアバツフア制御方式に関す
る。Detailed Description of the Invention [Field of Industrial Application] The present invention provides a buffer storage device for operand access, a buffer storage device for instruction fetch, and a plurality of store address registers for performing store access to main storage. The present invention also relates to a store buffer control method in a data processing device equipped with a store buffer constituted by a store data register.
近年、データ処理装置の能力を向上させる為
に、各種の方式が考えられているが、その方式の
1つとして、パイプライン方式がある。この方式
は1つの命令実行シーケンスを、複数のフエーズ
に分けて、それらの各フエーズをそれぞれ実行す
る複数のステーシヨンを設け、各ステーシヨンが
独立に動けるように構成することによつて、複数
の命令を同時に処理しようとするものである。 In recent years, various methods have been considered to improve the performance of data processing devices, and one of the methods is a pipeline method. This method divides one instruction execution sequence into multiple phases, provides multiple stations to execute each phase, and configures each station to operate independently. They are intended to be processed simultaneously.
通常、データ処理装置の中核となる中央処理装
置(以下CPUと云う)は第8図に示すように、
3つの機能ブロツク、即ちI−UNIT1、E−
UNIT2、S−UNIT3、とバツフア記憶装置
(BS)4とから構成されている。 Usually, the central processing unit (hereinafter referred to as CPU), which is the core of a data processing device, is as shown in Figure 8.
Three functional blocks, namely I-UNIT1, E-
It is composed of a UNIT 2, an S-UNIT 3, and a buffer storage device (BS) 4.
I−UNIT1は命令を解読し、該CPUのパイ
プライン全体を制御する。E−UNIT2は演算を
行い、S−UNIT3はバツフア記憶装置(以下
BSと云う)4と主記憶装置(図示せず)へのア
クセスを制御するユニツトである。 I-UNIT1 decodes instructions and controls the entire pipeline of the CPU. E-UNIT2 performs calculations, and S-UNIT3 performs buffer storage (hereinafter referred to as
This is a unit that controls access to the BS (BS) 4 and the main memory (not shown).
上記CPUパイプラインの1例として、I−
UNIT1のパイプラインを第9図に示す。 As an example of the above CPU pipeline, I-
Figure 9 shows the pipeline of UNIT1.
1つの命令は、命令フエツチフエーズ(INST
FETCH)にBS4から読み出された後、φA〜φF
迄の6つのフエーズを通ることにより処理され
る。 One instruction is the instruction fetch phase (INST
FETCH) after being read from BS4, φA ~ φF
It is processed by passing through the following six phases.
各フエーズの1部は2つ、又は3つのサイクル
に分割されていて、各サイクルの処理分担は次の
通りである。 A portion of each phase is divided into two or three cycles, and the processing assignments for each cycle are as follows.
I:命令フエツチのアドレス計算。I: Instruction fetch address calculation.
T:当該命令のアドレスについて、アドレス変換
バツフア(TLB)、及びBS4のタグ部を参照
する。T: Refer to the address translation buffer (TLB) and the tag section of BS4 for the address of the instruction.
B:BS4の読み出し。B: Reading of BS4.
D:命令の解読。D: Decoding the command.
R:レジスタリード。R: Register read.
A:オペランドフエツチのアドレス計算。A: Operand fetch address calculation.
T:当該オペランドのアドレスについて、アドレ
ス変換バツフア(TLB)、及びBS4のタグ部
をアクセスする。T: Access the address translation buffer (TLB) and the tag section of BS4 for the address of the operand.
B:BS4の読み出し。B: Reading of BS4.
E1:演算実行サイクル1。E1: Operation execution cycle 1.
E2:演算実行サイクル2。E2: Operation execution cycle 2.
V:チエツクサイクル。V: Check cycle.
W:演算結果の書き込みサイクル。W: Write cycle of operation results.
上記CPUパイプラインの中で、BS4へのアク
セスがどのように行われるかを示したものが第1
0図であり、BS4を制御するS−UNIT3のパ
イプラインbをI−UNIT1のパイプラインaと
対比させて示している。 In the above CPU pipeline, the first one shows how access to BS4 is performed.
0, which shows the pipeline b of the S-UNIT3 that controls the BS4 in comparison with the pipeline a of the I-UNIT1.
本図から明らかなように、命令フエツチ、オペ
ランドアクセス共に、4サイクルよりなり、各サ
イクルでの処理は次のようになつている。 As is clear from the figure, both instruction fetch and operand access consist of four cycles, and the processing in each cycle is as follows.
P:BS4を使用する優先順位を決めるプライオ
リテイサイクル。P: Priority cycle that determines the priority for using BS4.
T:当該フエツチのアドレスについて、アドレス
変換バツフア(TLB)、及びBS4のタグ部を
参照する。T: For the fetch address, refer to the address translation buffer (TLB) and the tag section of BS4.
B:BS4の読み出し。B: Reading of BS4.
R:アクセスの結果により、読み出しデータをI
−UNIT1、及びE−UNIT2へ送出するリザ
ルトサイクル。R: Depending on the access result, the read data is
-Result cycle sent to UNIT1 and E-UNIT2.
BS4へのアクセスは、第10図に示すように、
1命令を処理するパイプラインの中で、Iサイク
ルとAサイクルと、2回出されている。 Access to BS4 is as shown in Figure 10.
In the pipeline that processes one instruction, the I cycle and A cycle are issued twice.
この為、該2つのBS4へのアクセスに衝突が
起こるのを避ける為に、上記IサイクルとAサイ
クルとが重ならないように、2サイクルに1命令
を処理する構成となつている。この関係を第11
図の斜線で示している。 Therefore, in order to avoid conflict between accesses to the two BS4s, one instruction is processed every two cycles so that the I cycle and A cycle do not overlap. This relationship is the 11th
It is indicated by diagonal lines in the figure.
このパイプラインを用いたCPUにおいて、若
しも該パイプラインへの命令投入を毎サイクル行
えるように構成すれば、CPUの処理速度を2倍
に向上させることができる。 If a CPU using this pipeline is configured so that instructions can be input to the pipeline every cycle, the processing speed of the CPU can be doubled.
然しながら、毎サイクルパイプラインを起動す
るとなると、IサイクルとAサイクルの衝突が起
こり、Iサイクル1回当たり2個の命令をフエツ
チすることができるとしても、該I−UNIT1の
パイプラインの処理能力は1.5サイクルで1命令
しか実行できないことになる。 However, if the pipeline is activated every cycle, a conflict will occur between the I cycle and the A cycle, and even if two instructions can be fetched per I cycle, the processing capacity of the pipeline of the I-UNIT1 will be limited. This means that only one instruction can be executed in 1.5 cycles.
従つて、効率の良い毎サイクルパイプラインを
構成するのであれば、命令フエツチ用のBSと、
オペランドフエツチ用のBSとを分離して、それ
ぞれ独立に動作できる構成とする必要がある。 Therefore, if you want to configure an efficient every-cycle pipeline, you need a BS for instruction fetching,
It is necessary to separate the BS for operand fetch and create a configuration that allows each to operate independently.
上記2つのBSを備えた場合に問題となるのは、
同一のブロツク(32バイト、或いは64バイト単
位)が、該2つのBSに存在した時の内容の一致
を図る制御である。 The problem with having the above two BSs is:
This is a control to match the contents when the same block (in units of 32 bytes or 64 bytes) exists in the two BSs.
この問題は、2台のCPUが、それぞれ別個の
BSを持つている時のデータの一致をとる制御方
式に類似している。 The problem is that the two CPUs are
It is similar to the control method that matches data when you have BS.
第12図に、上記2つのBSを持つ従来方式の
例を示す。本図において、31はオペランド実効
アドレスレジスタ(以下OERと云う)、32はオ
ペランドアクセス用バツフア記憶(以下、オペラ
ンドバツフア記憶と云う)、33はオペランドワ
ードレジスタ(以下OWRと云う)、34は命令
実効レジスタ(以下IERと云う)、35は命令フ
エツチ用バツフア記憶(以下、命令フエツチバツ
フア記憶と云う)、36は命令ワードレジスタ
(以下IWRと云う)、37はオペランドストアデ
ータレジスタ(以下OSDRと云う)、38は命令
ストアデータレジスタ(以下ISDRと云う)であ
る。
FIG. 12 shows an example of the conventional system having the above two BSs. In this figure, 31 is an operand effective address register (hereinafter referred to as OER), 32 is a buffer memory for operand access (hereinafter referred to as operand buffer memory), 33 is an operand word register (hereinafter referred to as OWR), and 34 is an instruction. Effective register (hereinafter referred to as IER), 35 an instruction fetch buffer memory (hereinafter referred to as instruction fetch buffer memory), 36 an instruction word register (hereinafter referred to as IWR), 37 an operand store data register (hereinafter referred to as OSDR). , 38 are instruction store data registers (hereinafter referred to as ISDR).
この従来例においては、I−UNIT1からのオ
ペランドフエツチのアドレスは、OER31にセ
ツトされ、オペランドバツフア記憶32がアクセ
スされ、読み出されたデータはOWR33にセツ
トされてE−UNIT2へ送出される。 In this conventional example, the address of the operand fetch from I-UNIT1 is set in OER31, the operand buffer memory 32 is accessed, and the read data is set in OWR33 and sent to E-UNIT2. .
同様にして、命令フエツチアドレスは、IER3
4にセツトされ、命令フエツチバツフア記憶35
からの読み出しデータは、IWR36にセツトさ
れて、I−UNIT1に送出される。 Similarly, the instruction fetch address is IER3
4, command fetch buffer memory 35
The read data from is set in IWR36 and sent to I-UNIT1.
上記オペランドストアアドレスは、OER1、
及びIER34に同時にセツトされ、オペランドバ
ツフア記憶32だけでなく、命令フエツチバツフ
ア記憶35にも、当該アドレスのデータブロツク
が存在するか否かが調べられる。 The operand store address above is OER1,
and IER 34 at the same time, and it is checked not only in operand buffer storage 32 but also in instruction fetch buffer storage 35 whether or not a data block at the address exists.
これは、該データブロツクの先頭に命令列が配
置されていても、その後にデータが含まれている
可能性があるからである。 This is because even if an instruction sequence is placed at the beginning of the data block, data may be included after it.
そして、当該ブロツクが存在する時には、E−
UNIT2からのオペランドストアデータをOSDR
37、及びISDR38にセツトして、オペランド
バツフア記憶32、及び命令フエツチバツフア記
憶35の、当該アドレスのブロツクに書き込みを
行う。 Then, when the block exists, E-
OSDR the operand store data from UNIT2
37 and ISDR 38, and writes to the block at the corresponding address in the operand buffer memory 32 and the instruction fetch buffer memory 35.
他方、オペランドフエツチ、或いは命令フエツ
チの際に、当該バツフア記憶中に該当するアドレ
スが存在しない時には、図示していない主記憶装
置に対して当該アドレスのデータのブロツク転送
要求を出し、ブロツク転送されてきたデータが、
上記2つのバツフア記憶に書き込まれるように動
作する。 On the other hand, when an operand fetch or an instruction fetch is performed, if the corresponding address does not exist in the buffer storage, a block transfer request for the data at the address is issued to the main memory (not shown), and the block transfer is performed. The data that came
It operates so that it is written to the two buffer memories mentioned above.
上記の従来方式においては、オペランドストア
の際に、オペランドバツフア記憶32をアクセス
するS−UNIT3のP,T,B,Rで示されるパ
イプラインと、命令フエツチバツフア記憶をアク
セスするS−UNIT3のパイプラインとを、第1
3図に示すように同期させなければならない問題
がある。
In the above-mentioned conventional method, when storing an operand, the pipeline indicated by P, T, B, and R of the S-UNIT 3 that accesses the operand buffer storage 32 and the pipeline of the S-UNIT 3 that accesses the instruction fetch buffer storage are used. line and the first
As shown in Figure 3, there is a problem that requires synchronization.
即ち、本図の1に示すように、Pop,Pipとも
該プライオリテイサイクルにおいて、優先権がと
れると、直ちにストアの為のバツフアアクセスが
できるが、例えば2で示すように、命令フエツチ
用バツフア記憶が、ブロツク転送要求(Pmi)を
処理している場合には、Pifが3サイクル遅らさ
れ、これと同期をとる為に、オペランド側のパイ
プラインも3サイクル待たされることになる。 That is, as shown in 1 in the figure, if both Pop and Pip get priority in the priority cycle, they can immediately access the buffer for storing, but as shown in 2, for example, the buffer for instruction fetching When the memory is processing a block transfer request (Pmi), Pif is delayed by three cycles, and in order to synchronize with this, the pipeline on the operand side is also forced to wait for three cycles.
本発明は上記従来の欠点に鑑み、オペランドフ
エツチ、及び命令フエツチの両パイプラインを同
期化することなく、命令フエツチバツフア記憶に
オペランドストアを反映させる手段を提供するこ
とを目的とするものである。 SUMMARY OF THE INVENTION In view of the above-mentioned drawbacks of the conventional art, it is an object of the present invention to provide a means for reflecting operand stores in instruction fetch buffer storage without synchronizing both the operand fetch and instruction fetch pipelines.
この目的は、
オペランドアクセス用バツフア記憶装置と、命
令フエツチ用バツフア記憶装置と、主記憶装置へ
のストアアクセスを行う為の複数個のストアアド
レスレジスタ及びストアデータレジスタから構成
されるストアバツフアとを備え、命令フエツチは
上記命令フエツチ用バツフア記憶装置から行い、
オペランドフエツチは上記オペランドアクセス用
バツフア記憶装置から行い、オペランドストアは
上記オペランドアクセス用バツフア記憶装置と、
上記ストアバツフアに同一シーケンスで行い、命
令フエツチ用バツフア記憶装置へのオペランドス
トアの反映は、上記ストアバツフアから別シーケ
ンスで行う手段を有するデータ処理装置におい
て、上記ストアバツフアは、命令フエツチ用バツ
フア記憶装置に反映すべきストアアドレスと、ス
トアデータを保持していることを示す複数のホー
ルド(HOLD)フラグと、複数のストアバツフ
アの内、とれを命令フエツチ用バツフア記憶装置
に反映すべきかを示すポインタを持ち、命令フエ
ツチ用バツフア記憶装置への書き込みシーケンス
を始めた際、上記ポインタで示されるストアバツ
フアに対応する命令フエツチストア送出(IF ST
ISSUED)フラグをオンにして、且つ上記ポイン
タの値を書き込みシーケンスの各サイクルでの識
別(ID)ビツトとして使用することにより、書
き込み終了時には、上記識別(ID)ビツトで示
されるストアバツフアのホールド(HOLD)フ
ラグをリセツトし、上記書き込みシーケンスが中
断された場合には、上記識別(ID)ビツトで示
されるストアバツフアの命令フエツチストア送出
(IF ST ISSUED)フラグをリセツトすることに
より、上記ホールド(HOLD)フラグがオンで、
且つ命令フエツチストア送出(IF ST ISSUED)
フラグがオフのストアバツフアについて、書き込
みシーケンスの再起動を行う本発明の命令バツフ
アへのストア制御方式によつて達成される。
This purpose includes a buffer storage device for operand access, a buffer storage device for instruction fetch, and a store buffer composed of a plurality of store address registers and store data registers for performing store access to the main storage device. The instruction fetch is performed from the instruction fetch buffer storage device,
The operand fetch is performed from the operand access buffer storage device, and the operand store is performed from the operand access buffer storage device,
In a data processing device having a means for performing the operand store in the store buffer in the same sequence and reflecting the operand store in the instruction fetch buffer storage device in a different sequence from the store buffer, the store buffer is reflected in the instruction fetch buffer storage device. It has a store address to be stored, multiple hold (HOLD) flags indicating that store data is being held, and a pointer indicating which of multiple store buffers should be reflected in the instruction fetch buffer storage device. When starting the write sequence to the buffer storage device for IF ST, the instruction fetch store transmission (IF ST
By turning on the ISSUED flag and using the value of the above pointer as an identification (ID) bit at each cycle of the write sequence, at the end of the write, the store buffer indicated by the above identification (ID) bit is held (HOLD). ) flag, and if the above write sequence is interrupted, the above hold (HOLD) flag is reset by resetting the instruction fetch store issue (IF ST ISSUED) flag of the store buffer indicated by the above identification (ID) bit. On,
And send command fetish store (IF ST ISSUED)
This is achieved by the instruction buffer store control method of the present invention, which restarts the write sequence for store buffers whose flags are off.
これは、ストアスルー方式のバツフア記憶に設
けられているストアバツフアのアドレス、及びデ
ータを利用して、命令フエツチバツフア記憶への
オペランドストアの反映を行うようにしたもので
ある。 This uses the address and data of the store buffer provided in the store-through type buffer storage to reflect the operand store in the instruction fetch buffer storage.
即ち、本発明によれば、オペランドバツフア記
憶と、命令フエツチバツフア記憶と、主記憶装置
へのストアアクセスを行う為の複数のストアアド
レスレジスタ(STAR)と、ストアデータレジ
スタ(STD)より構成されるストアバツフアを
有するデータ処理装置において、上記命令フエツ
チバツフア記憶に反映すべきストアアドレス、ス
トアデータを保持していることを示す複数の
STB HOLDフラグと、命令フエツチパイプライ
ンに上記命令フエツチバツフア記憶への書き込み
を送出したことを示すIF ST ISSUEDフラグと、
どのストアバツフアから該命令フエツチパイプラ
インに投入されたかを示すIDビツトを備え、先
行のパイプライン処理の遅延によつて、後続する
パイプライン処理がキヤンセルされた時、該IF
ST ISSUEDフラグをリセツトすることにより、
上記STB HOLDフラグがオンで、IF ST
ISSUEDフラグがオフとなつているストアバツフ
アを検出することによつて、該キヤンセルされた
パイプライン処理を上記命令フエツチパイプライ
ンに再投入するようにしたものであるので、オペ
ランドストアの命令フエツチバツフア記憶への反
映が矛盾なく行うことができる効果がある。
That is, according to the present invention, it is composed of an operand buffer memory, an instruction fetch buffer memory, a plurality of store address registers (STAR) for performing store access to the main memory, and a store data register (STD). In a data processing device having a store buffer, a plurality of store addresses and store data to be reflected in the instruction fetch buffer memory are stored.
an STB HOLD flag, an IF ST ISSUED flag indicating that a write to the instruction fetch buffer memory has been sent to the instruction fetch pipeline;
It is equipped with an ID bit that indicates which store buffer inputs the instruction into the fetch pipeline, and when the subsequent pipeline processing is canceled due to the delay of the preceding pipeline processing, the instruction is input to the fetch pipeline.
By resetting the ST ISSUED flag,
If the above STB HOLD flag is on, IF ST
By detecting a store buffer whose ISSUED flag is off, the canceled pipeline processing is reintroduced to the instruction fetch pipeline, so the instruction fetch buffer memory of the operand store is This has the effect of allowing the reflection of information to be carried out without contradiction.
以下本発明の実施例を図面によつて詳述する。
本発明は、I−UNIT1からのストアアクセス
は、バツフア記憶へ書き込むと同時に、ストアの
アドレスと、データを保持できるストアバツフア
にセツトし、主記憶装置へも書き込む、所謂スト
アスルー方式を前提としている。
Embodiments of the present invention will be described in detail below with reference to the drawings.
The present invention is based on the premise that the store access from I-UNIT 1 is a so-called store-through method in which the store address and data are set in a store buffer that can hold the data at the same time as writing to the buffer memory, and the data is also written to the main memory.
第1図は本発明の基本動作に関連する構成例を
ブロツク図で示した図、第2図はストアバツフア
(STB)の構成を示す図、第3図A,Bは第1図
に示す実施例の詳細な構成を示す図、第4図は
STB VALID、STB READYの動作を説明する
図、第5図はストアバツフア制御フラグの動作を
タイムチヤートで示した図、第6図は命令フエツ
チパイプラインに対するIDの動作を説明する図、
第7図は本発明を実施してストアアクセス制御を
行う場合の動作をタイムチヤートで示した図であ
る。 FIG. 1 is a block diagram showing a configuration example related to the basic operation of the present invention, FIG. 2 is a diagram showing the configuration of a store buffer (STB), and FIGS. 3A and B are examples of the embodiment shown in FIG. 1. Figure 4 shows the detailed configuration of
A diagram explaining the operation of STB VALID and STB READY, FIG. 5 is a diagram showing the operation of the store buffer control flag as a time chart, and FIG. 6 is a diagram explaining the operation of ID for the instruction fetch pipeline.
FIG. 7 is a time chart showing the operation when store access control is performed by implementing the present invention.
第1図において、31〜38は第12図で説明
したものと同じものであり、ストアアドレスレジ
スタ(以下STARと云う)390と、ストアデ
ータレジスタ(以下STDと云う)391、及び
第2図で示しているストアバツフア(STB)の
制御フラグであるSTB HOLDフラグH、及びIF
ST ISSUEDフラグIが、本発明を実施するのに
必要な機能ブロツクである。 In FIG. 1, 31 to 38 are the same as those explained in FIG. STB HOLD flag H, which is the control flag of the store buffer (STB) shown, and IF
The ST ISSUED flag I is a functional block necessary to implement the present invention.
先ず、I−UNIT1からのオペランドストアア
ドレスは、IER34にはセツトしないで、OER
31側にだけセツトされ、オペランドバツフア記
憶32に当該アドレスがあるか否かがチエツクさ
れ、あればOSDR37にセツトされたオペランド
ストアデータが、オペランドバツフア記憶32に
書き込まれる。 First, the operand store address from I-UNIT1 is not set in IER34, but is stored in OER.
It is checked whether the address exists in the operand buffer memory 32, and if so, the operand store data set in the OSDR 37 is written to the operand buffer memory 32.
これと同時に、該オペランドストアアドレスは
STAR390にセツトされ、E−UNIT2からの
オペランドストアデータはSTD391にセツト
され、その後に主記憶装置への書き込み要求が出
される。 At the same time, the operand store address is
STAR 390 is set, operand store data from E-UNIT2 is set to STD 391, and then a write request to the main memory is issued.
本発明は、前記ストアスルー方式のバツフア記
憶に設けられている、上記オペランドストアアド
レス、及びデータがセツトされているSTAR3
90、及びSTD391のアドレスと、データを
利用することにより、命令フエツチバツフア記憶
35へのオペランドストアの反映を行うものであ
る。 The present invention provides the operand store address provided in the store-through type buffer storage and the STAR3 in which the data is set.
By using the addresses and data of 90 and STD 391, the operand store is reflected in the instruction fetch buffer memory 35.
上記STAR390にセツトされたオペランド
ストアアドレスはIER34にセツトされ、命令フ
エツチバツフア記憶35に当該アドレスが存在す
るか否かがチエツクされる。そして、当該アドレ
スが存在すると、STD391内のストアデータ
をISDR38を通して命令フエツチバツフア記憶
35に書き込まれる。 The operand store address set in the STAR 390 is set in the IER 34, and it is checked whether the address exists in the instruction fetch buffer memory 35. If the address exists, the store data in the STD 391 is written to the instruction fetch buffer memory 35 through the ISDR 38.
上記の動作により、オペランドのストアアクセ
スにおいては、オペランドフエツチと、命令フエ
ツチの両パイプラインを同期して実行させる必要
はなくなり、命令フエツチバツフア記憶35への
オペランドストアの反映は、ストアバツフア
(STB)のアドレス(即ち、STAR390の内
容)とデータ(STD391)を用いて、I−
UNIT1のパイプラインとは非同期に行うことが
できる。然も、STAR390とSTD391は、
既にS−UNIT3の構成要素として設けられてお
り、これを流用することにより、新たなハードウ
エアを殆ど追加することなしに実現することがで
きる所に特徴がある。 Due to the above operation, in operand store access, it is no longer necessary to execute both the operand fetch and instruction fetch pipelines synchronously, and the operand store is reflected in the instruction fetch buffer memory 35 in the store buffer (STB). Using the address (i.e. contents of STAR390) and data (STD391), I-
This can be done asynchronously with the pipeline of UNIT1. However, STAR390 and STD391 are
It has already been provided as a component of S-UNIT3, and its feature is that by reusing it, it can be implemented without adding almost any new hardware.
次に、本発明を実施した場合の詳細な動作につ
いて、第3図〜第7図を用いて説明する。 Next, detailed operations when implementing the present invention will be described using FIGS. 3 to 7.
第3図A、及び第3図Bは、便宜上、一枚の図
面を一点鎖線の位置で分割したものである。 For convenience, FIG. 3A and FIG. 3B are obtained by dividing one drawing at the positions indicated by dashed-dotted lines.
本図において、I−UNITからのオペランドア
クセスアドレスと、命令フエツチアドレスが、そ
れぞれOER31、IER34にセツトされると同
時に、アドレス変換バツフアOP TLB311、
IF TLB312により、論理アドレスを実アドレ
スに高速に変換すると、バツフア記憶32,35
のブロツクアドレスをそれぞれ記憶しているOP
BS TAG313、IF BS TAG314をアクセ
スする。 In this figure, the operand access address and instruction fetch address from I-UNIT are set in OER31 and IER34, respectively, and at the same time address translation buffer OP TLB311,
When a logical address is converted into a real address at high speed by the IF TLB 312, buffer memories 32, 35
OP that remembers the block address of each
Access BS TAG313 and IF BS TAG314.
上記OP TLB311、IF TLB312から読
み出された論理アドレスは、比較回路315,3
16により、該当アドレスかどうかがチエツクさ
れると同時に、その実アドレス部はOP BS
TAG313、IF BS TAG314内に保持され
ているバツフア記憶のブロツクアドレスと比較さ
れ、OP BS TAG313、IF BS TAG314
の比較器317,318のそれぞれ16個の内の1
つの一致信号が有効になることにより、オペラン
ドバツフア記憶32、命令フエツチバツフア記憶
35の出力が、それぞれアライン&セレクト回路
319,320により選択され、それぞれオペラ
ンドデータ、命令データとして、それぞれE−
UNIT、I−UNITへ送出される。 The logical addresses read from the above OP TLB 311 and IF TLB 312 are
16, the address is checked to see if it is the applicable address, and at the same time the real address part is sent to the OP BS.
It is compared with the block address of the buffer memory held in TAG313 and IF BS TAG314, and the OP BS TAG313 and IF BS TAG314 are
1 out of 16 comparators 317 and 318
When the two match signals become valid, the outputs of the operand buffer memory 32 and the instruction fetch buffer memory 35 are selected by the align & select circuits 319 and 320, respectively, and are used as operand data and instruction data, respectively.
Sent to UNIT, I-UNIT.
オペランド実アドレスレジスタ(以下、ORR
と云う)321、命令実アドレスレジスタ(以
下、IRRと云う)322は比較回路315,31
6により、一致が生じたアドレス変換バツフア
TLB311,312のPRIMARYと、
ALTERNATEの一方に保持されている実アドレ
スを受け取り、バツフア記憶32,35に該当ブ
ロツクが存在しなかつた時、主記憶装置への転送
要求アドレスをMAR323にセツトするのに使
用される。 Operand real address register (hereinafter referred to as ORR)
) 321, instruction real address register (hereinafter referred to as IRR) 322, comparator circuits 315, 31
6, the address translation buffer where the match occurred
PRIMARY of TLB311,312,
When the real address held in one of the ALTERNATE registers is received and the corresponding block does not exist in the buffer memories 32 and 35, it is used to set the transfer request address to the main memory in the MAR 323.
上記動作を更に詳細に述べると、オペランドス
トアのアクセスは、OER31にセツトされると
共に、OP TLB311、OP BS TAG313を
アクセスし、ストアすべきブロツクがオペランド
バツフア記憶32内に存在するか否かを調べる。 To describe the above operation in more detail, when accessing the operand store, the OER 31 is set, the OP TLB 311 and the OP BS TAG 313 are accessed, and it is determined whether or not the block to be stored exists in the operand buffer memory 32. investigate.
同時に、OP BS TAG311からの実アドレ
スは、ORR321を経由して、4個のSTAR3
90の1個に主記憶装置へのストアアドレスとし
て保持される。 At the same time, the real address from OP BS TAG311 is sent to four STAR3 via ORR321.
90 as a store address to the main memory.
ストアすべきデータは、E−UNITから送ら
れ、ストアアライン回路324を通り、4個のス
トアバツフアSTD391の内の1個にセツトさ
れる。 Data to be stored is sent from the E-UNIT, passes through the store align circuit 324, and is set in one of the four store buffers STD 391.
オペランドバツフア記憶32への書き込みは、
ストアアライン回路324を通りOSDR37から
行われる。 Writing to the operand buffer memory 32 is as follows:
It is performed from the OSDR 37 through the store alignment circuit 324.
ストアバツフアは、第2図に示すように、主記
憶装置へのストアの実アドレスを保持する
STAR390と、8バイトのデータを保持する
STD391よりなり、制御フラグとして、上記
STAR390にアドレスが入つたことを示すバ
リツドフラグVと、STDにデータが入つたこと
を示すレデイーフラグRと、8バイト以内の部分
書込み時の書き込みバイト位置を示すバイトマー
ク(BM)とがあり、更に命令フエツチバツフア
記憶に反映すべきストアデータを保持しているこ
とを示すSTB HOLDフラグHと、命令フエツチ
パイプラインに命令フエツチバツフア記憶への書
き込みアクセスを投入したことを示すIF ST
ISSUEDフラグIとを設けている。 The store buffer holds the real address of the store to main memory, as shown in Figure 2.
Holds STAR390 and 8 bytes of data
It consists of STD391, and the above is used as a control flag.
There is a valid flag V indicating that an address has been entered in STAR390, a ready flag R indicating that data has been entered in STD, and a byte mark (BM) indicating the write byte position when writing a portion of 8 bytes or less. The STB HOLD flag H indicates that store data to be reflected in the instruction fetch buffer memory is held, and the IF ST indicates that a write access to the instruction fetch buffer memory has been input to the instruction fetch pipeline.
ISSUED flag I is provided.
4個のストアバツフアは、アクセス毎に順番に
使われていき、4番目迄くると、主記憶装置への
はきだしが行われていれば、1番目へサイクリツ
クに戻るように機能する。 The four store buffers are used in order for each access, and when the fourth store buffer is reached, if the data has been written to the main memory, the function is to cyclically return to the first store buffer.
命令フエツチバツフア記憶35への反映は、セ
レクト回路325により、4個のSTAR390
の内の1個が選択され、IER34にセツトされ
る。 The instruction is reflected in the fetch buffer memory 35 by selecting four STARs 390 by the select circuit 325.
One of them is selected and set in IER34.
同時に、IF BS TAG314がアクセスされ、
該当ブロツクがあるか否かが調べられる。この
際、IER34にセツトされるアドレスは実アドレ
スであるので、TLB312を使う必要はなく、
IER34の値が直接比較器318へ送出される。
(図示せず)
若し、ストアアドレスが命令フエツチバツフア
記憶35内に存在すればSTD391の対応する
ストアデータがセレクト回路326により選択さ
れ、ISDR38を経由して命令フエツチバツフア
記憶35に書き込まれる。 At the same time, IF BS TAG314 is accessed,
It is checked whether the corresponding block exists or not. At this time, since the address set in IER34 is a real address, there is no need to use TLB312,
The value of IER 34 is sent directly to comparator 318.
(Not shown) If the store address exists in the instruction fetch buffer memory 35, the corresponding store data in the STD 391 is selected by the select circuit 326 and written to the instruction fetch buffer memory 35 via the ISDR 38.
上記命令フエツチバツフア記憶35への反映と
同時に、STAR390はセレクト回路325を
通り、MAR323にセツトされ、主記憶装置へ
のストアアドレスとなり、STD391内の対応
するデータは、MDI327を通り、主記憶装置
への書き込みデータとして送出される。 At the same time as the instruction is reflected in the fetch buffer memory 35, STAR 390 passes through the select circuit 325 and is set in MAR 323, becoming the store address to the main memory, and the corresponding data in STD 391 passes through the MDI 327 and is set to the main memory. Sent as write data.
オペランドストアアドレスがSTAR390に
入つた後で、且つ命令フエツチバツフア記憶35
への反映が済む前に、同一アドレスがIER34に
入つた場合には、IRR322へセツトされた命令
フエツチの実アドレスと、STAR390内のス
トアの実アドレスとが比較器328により調べら
れ、若し一致すると命令フエツチのやり直しを指
示する。 After the operand store address enters STAR 390 and the instruction fetch buffer memory 35
If the same address enters the IER 34 before the instruction has been reflected in the IRR 322, the comparator 328 checks the real address of the instruction fetch set in the IRR 322 and the real address of the store in the STAR 390, and if they match. Then, he instructs her to repeat the command fetish.
若し、4個のSTAR390が総て使用されて
おり、新たなオペランドストアアドレスがセツト
できない場合には、上記アドレスの比較ができな
いので、オペランドストアアクセスと命令フエツ
チとの順序性を保障する為、STAR390が次
のストアアドレスを受け取ることができるように
なる迄、総ての命令フエツチアクセスを待たせる
必要がある。従つて、これらの命令フエツチのや
り直しはI−UNIT1が制御する。(図示せず)
以上の動作により、オペランドストアアクセス
と命令フエツチの順序性を保障することができ
る。該命令フエツチリトライ信号の制御回路が否
定入力付きナンド回路329である。 If all four STARs 390 are used and a new operand store address cannot be set, the above addresses cannot be compared, so in order to guarantee the order of operand store access and instruction fetch, All instruction fetch accesses must wait until STAR 390 can receive the next store address. Therefore, the redoing of these instruction fetches is controlled by I-UNIT1. (Not shown) The above operations ensure the order of operand store access and instruction fetch. The control circuit for the instruction fetch retry signal is a NAND circuit 329 with negative input.
尚、命令フエツチバツフア記憶35へのストア
の反映は、本発明がストアスルー方式を前提とし
ていることから、命令フエツチバツフア記憶35
への書き込みをしないで、該当するブロツクアド
レスを、IF BS TAG314上で無効にすること
によつても実現できることは明らかである。 Note that the store is reflected in the instruction fetch buffer memory 35 because the present invention is based on a store-through method.
It is clear that this can also be achieved by invalidating the corresponding block address on the IF BS TAG 314 without writing to it.
本発明は、このような命令フエツチバツフア記
憶35へのストアの反映を行う際の、ストアバツ
フアの制御に関係している。 The present invention relates to the control of the store buffer when the store is reflected in the instruction fetch buffer memory 35.
ストアバツフアの制御フラグとして、前述した
ように、バリツドフラグV(以下、STB VARID
と云う)と、レデイーフラグR(以下、STB
READYと云う)とがあり、第4図によつて、そ
の動作の詳細を示す。 As mentioned above, the valid flag V (hereinafter referred to as STB VARID) is used as a control flag for the store buffer.
) and ready flag R (hereinafter referred to as STB).
READY), and the details of its operation are shown in Figure 4.
先ず、オペランドストアアクセスは、本図に示
されているように、第3図のOP TLB311と、
OP BS TAG313をアクセスして、ストアす
べきブロツクがあるか否かを示す第1フロー
(P、T、B、R)と、OP BS DATA32に、
E−UNITからデータを書き込む第2フロー
(P、W、S)とからなる。ここで、
W:TLB,TAGに対する書き込みサイクル。 First, operand store access is performed using the OP TLB 311 in FIG. 3, as shown in this figure.
The first flow (P, T, B, R) that accesses the OP BS TAG 313 and indicates whether there is a block to be stored or not, and the OP BS DATA 32,
It consists of a second flow (P, W, S) that writes data from E-UNIT. Here, W: write cycle for TLB and TAG.
S:BSに対する書き込みサイクル。S: Write cycle for BS.
である。It is.
STB VALIDは、STAR390にORR32
1からのストアアドレスがセツトされるRサイク
ルにおいてオンとなり、STB READYはSTD
391にストアアライン回路324からのデータ
がセツトされるSサイクルにオンとなるように制
御される。 STB VALID is STAR390 and ORR32
It is turned on in the R cycle when the store address from 1 is set, and STB READY is set to STD.
It is controlled to be turned on in the S cycle when data from the store align circuit 324 is set in 391.
STAR390、STD391にセツトされたス
トアアドレスとストアデータは、Sサイクルの終
わりのタイミングにおいて、それぞれMAR32
3、MDI327にセツトされ主記憶装置に送出
され、該送出の完了タイミングにおいて、上記
STB VALID、STB READYフラグはリセツト
される。 The store address and store data set in STAR390 and STD391 are respectively stored in MAR32 at the end of the S cycle.
3. It is set in the MDI 327 and sent to the main memory, and at the timing of completion of the sending, the above
STB VALID and STB READY flags are reset.
本実施例においては、4個のSTAR390、
STD391を持つており、これらの何れを使用
するかを、2ビツトのポインタをデコードした信
号により選択される。 In this example, four STAR390,
It has STD391, and which of these to use is selected by a signal decoded from a 2-bit pointer.
STAR390の選択は、ポインタSTB INP
により行われ、STAR390がセツトされた後、
+1されて、次のSTAR390を指示するよう
に動作する。 STAR390 selection is pointer STB INP
After the STAR390 is set,
+1 and operates to indicate the next STAR390.
ポインタSTB DINPは、BサイクルのSTB
INPの値をWサイクル迄シフトし、STAR39
0に対応するSTD391を選択するのに使用さ
れる。 Pointer STB DINP is STB of B cycle
Shift the INP value to W cycle and STAR39
Used to select STD391 corresponding to 0.
MAR323、MDI327にどのストアバツフ
アからセツトすべきかは、ポインタSTB OUTP
により決められ、デコード出力は選択回路
(SEL)の制御信号として用いられる。 Use the pointer STB OUTP to determine which store buffer should be set to MAR323 and MDI327.
The decoded output is used as a control signal for the selection circuit (SEL).
このような構成をとるバツフア記憶装置におい
ては、主記憶装置への送出と、命令フエツチバツ
フア記憶35へのストアアクセスの順番は、必ず
しも決められない。 In a buffer storage device having such a configuration, the order of sending to the main storage device and store access to the instruction fetch buffer storage 35 is not necessarily determined.
何故ならば、主記憶装置への送出は、インタフ
エースバスが“空き”である時に可能であり、既
に他のリクエストが送出中であれば待たなければ
ならない。 This is because sending to main memory is possible when the interface bus is "free" and must wait if another request is already being sent.
命令フエツチバツフア記憶35へのストアアク
セスも、命令フエツチ側のパイプラインがビジー
であると、必ずしも受け付けてくれるとは限らな
い。 Store access to the instruction fetch buffer memory 35 will not necessarily be accepted if the pipeline on the instruction fetch side is busy.
又、命令フエツチ側パイプラインに受け付けら
れた後でも、先行するリクエストの状態によつて
は、処理を続行できず、一旦キヤンセルされて、
再投入を要求される場合もある。 Furthermore, even after the instruction is accepted by the pipeline on the fetch side, processing cannot be continued depending on the state of the preceding request, and is temporarily canceled.
You may be required to re-enter the system.
このような、ストアアクセスを制御する為に、
本発明においては、ストアバツフアに、前述のよ
うに、命令フエツチバツフア記憶35に反映すべ
きストアデータを保持していることを示すSTB
HOLDフラグと、命令フエツチ側パイプライン
に命令フエツチバツフア記憶35への書き込みア
クセスを送出したことを示すIF ST ISSUEDフ
ラグと、どのストアバツフアから命令フエツチパ
イプラインに投入したかを示すIDビツトとを設
けている。 In order to control store access like this,
In the present invention, the STB indicates that store data to be reflected in the instruction fetch buffer memory 35 is held in the store buffer as described above.
A HOLD flag, an IF ST ISSUED flag that indicates that a write access to the instruction fetch buffer memory 35 has been sent to the instruction fetch side pipeline, and an ID bit that indicates from which store buffer the instruction was input to the instruction fetch pipeline. There is.
これらの2つのフラグと、前述のSTB
VALID、STB READYフラグのタイミング関係
を第5図に示す。 These two flags and the STB mentioned above
Figure 5 shows the timing relationship between the VALID and STB READY flags.
STB HOLDフラグは、STB VALIDフラグと
同じRサイクルでセツトされ、命令フエツチバツ
フア記憶35へのストアアクセスが保留されてい
ることを示す。 The STB HOLD flag is set in the same R cycle as the STB VALID flag, indicating that store access to the instruction fetch buffer memory 35 is on hold.
ストアバツフアから命令フエツチパイプライン
への投入は、第4図のポインタSTB IF STP
によつて制御され、このポインタが示すストアバ
ツフアにSTB HOLDフラグが付いているなら
ば、第5図に示す命令フエツチパイプラインにプ
ライオリテイP(IF ST IOW)(前記第1フロ
ー)のリクエストを立てる。 Inputting the instruction from the store buffer to the instruction fetch pipeline is performed using the pointer STB IF STP in Figure 4.
If the STB HOLD flag is attached to the store buffer indicated by this pointer, a request with priority P (IF ST IOW) (the first flow) is sent to the instruction fetch pipeline shown in FIG. stand up
このリクエストの優先順位がとれ、命令フエツ
チパイプラインが起動されると、対応するストア
バツフアのIF ST ISSUEDフラグがオンとなり、
命令フエツチバツフア記憶35へのストアアクセ
スが送出されたことを示す。 When this request is prioritized and the instruction fetch pipeline is activated, the IF ST ISSUED flag of the corresponding store buffer is turned on.
Indicates that a store access to the instruction fetch buffer memory 35 has been sent.
命令フエツチパイプラインでは、第6図に示す
ように、上記IF ST LOWリクエストがTサイク
ルに移行する際に、STB IF STPのデコード
出力に対応するIF ST ISSUEDフラグをセツ
トし、且つどのストアバツフアからのストアアク
セスが投入されたかを示すSTB IF STPの内
容を、先ずT IDにセツトし、順次B ID、
R ID、W IDへとシフトされる。 In the instruction fetch pipeline, as shown in Figure 6, when the above IF ST LOW request moves to the T cycle, the IF ST ISSUED flag corresponding to the decoded output of STB IF STP is set, and the IF ST ISSUED flag is set from which store buffer. First, the contents of STB IF STP indicating whether a store access has been entered is set to T ID, and then B ID,
It is shifted to R ID and W ID.
Rサイクルにおいて、命令フエツチバツフア記
憶35にストアすべきアドレスブロツクがないこ
とが判明すると、R IDのデコード出力で示
されたストアバツフアのSTB HOLDフラグを、
第5図のようにRサイクルの終わりのタイミング
でリセツトする。 In the R cycle, if it is found that there is no address block to be stored in the instruction fetch buffer memory 35, the STB HOLD flag of the store buffer indicated by the decoded output of R ID is set to
As shown in FIG. 5, it is reset at the end of the R cycle.
若し、アドレスブロツクが存在した場合には、
書き込みを行う為のP(IF ST HIGH)(前記第
2フロー)をセツトし、書き込みフローを起動す
る。 If an address block exists,
P (IF ST HIGH) (the second flow) for writing is set and the write flow is activated.
この場合のストアバツフアのIDはW IDで
示され、対応するSTB HOLDフラグがリセツト
されることになる。 The ID of the store buffer in this case is indicated by W ID, and the corresponding STB HOLD flag will be reset.
該STB HOLDフラグは、第3図Bにおける、
命令フエツチバツフア記憶35へのデータの反映
が済んでいないことを示し、IRR322へセツト
された命令フエツチの実アドレスとSTAR39
0内のストアの実アドレスとを比較器328でチ
エツクすべきか否かの制御信号として使用され
る。 The STB HOLD flag is as shown in FIG. 3B.
Indicates that the data has not been reflected in the instruction fetch buffer memory 35, and the actual address of the instruction fetch set in the IRR 322 and the STAR 39
It is used as a control signal to determine whether the comparator 328 should check the real address of the store within 0.
STB HOLDフラグがオフになれば、上記比較
器328の結果は無視されるように制御される。 When the STB HOLD flag is turned off, the result of the comparator 328 is controlled to be ignored.
このような、命令フエツチパイプラインへのス
トアアクセスにおいて、第7図に示すように、先
行するP(IF ST LOW)のアドレスブロツクが
命令フエツチバツフア記憶35に存在した場合に
は、実際の書き込みを行う必要がある。 In such a store access to the instruction fetch pipeline, if the preceding address block of P (IF ST LOW) exists in the instruction fetch buffer memory 35, as shown in FIG. There is a need to do.
この時、P(IF ST HIGH)リクエストが優先
順位を取れれば良いが、図示のように、1サイク
ルデイレイされた場合には、後続のP(IF ST
LOW)がP(IF ST HIGH)の為に保存してあ
る情報(図示せず)を破壊してしまう為、後続の
リクエストをBサイクルの終わりのタイミングで
キヤンセルしなければならない。 At this time, it is fine as long as the P(IF ST HIGH) request takes priority, but as shown in the figure, if it is delayed for one cycle, the subsequent P(IF ST HIGH)
LOW) destroys the information (not shown) stored for P(IF ST HIGH), subsequent requests must be canceled at the end of the B cycle.
このようなケースにおいて、該キヤンセルされ
たストアアクセスが再送出できるように制御され
ることが要求される。 In such a case, it is required to control the canceled store access so that it can be retransmitted.
本実施例においては、図示のようにTサイク
ル、及びBサイクルで、このようなケースが生起
すると、上記キヤンセルを起動する為の制御フリ
ツプフロツプ「IF ST WAIT」が付勢され、第
6図のT ID、B IDのデコード出力によ
つて、IF ST ISSUEDフラグをリセツトされる
ので、STB HOLDフラグをオンにした侭、IF
ST ISSUEDフラグがオフとなる。 In this embodiment, when such a case occurs in the T cycle and the B cycle as shown in the figure, the control flip-flop "IF ST WAIT" for starting the above-mentioned cancel is activated, and the T cycle in FIG. The IF ST ISSUED flag is reset by the decoded output of ID and B ID, so while the STB HOLD flag is turned on, the IF
ST ISSUED flag is turned off.
第6図のSTB IF STPは、命令フエツチパ
イプラインにストアアクセスを送出すると+1さ
れるが、IF ST ISSUEDフラグ、T ID〜
W IDは、該キヤンセルされたストアバツフ
アを示しているので、STB HOLDフラグがオン
で、IF ST ISSUEDフラグがオフになつている
ストアバツフアを検出すると、命令フエツチパイ
プラインに、上記キヤンセルされたP(IF ST
LOW)を再送出するように制御される。再送出
の際には、同一8バイト以内のストアが複数、ス
トアバツフアに入つている可能性があるので、ス
トアの反映の順序性を守る為、前述したような
IF BS TAG314の無効化を指示する場合があ
る。 STB IF STP in Figure 6 is incremented by 1 when a store access is sent to the instruction fetch pipeline, but the IF ST ISSUED flag, T ID~
W ID indicates the canceled store buffer, so when a store buffer with the STB HOLD flag on and the IF ST ISSUED flag turned off is detected, the canceled P( IF ST
LOW) is controlled to be retransmitted. When retransmitting, there is a possibility that multiple stores within the same 8 bytes are in the store buffer, so in order to protect the order of store reflection, the above-mentioned
The IF BS TAG 314 may be instructed to be invalidated.
このように制御することにより、オペランドス
トアの命令フエツチバツフア記憶35に対する反
映が矛盾なく行うことができる。 By controlling in this manner, the operand store can be reflected in the instruction fetch buffer memory 35 without any contradiction.
以上、詳細に説明したように、本発明の命令バ
ツフアへのストア制御方式は、オペランドバツフ
ア記憶と、命令フエツチバツフア記憶と、主記憶
装置へのストアアクセスを行う為の複数のストア
アドレスレジスタ(STAR)と、ストアデータ
レジスタ(STD)より構成されるストアバツフ
アを有するデータ処理装置において、上記命令フ
エツチバツフア記憶に反映すべきストアアドレ
ス、ストアデータを保持していることを示す複数
のSTB HOLDフラグと、命令フエツチパイプラ
インに上記命令フエツチバツフア記憶への書き込
みを送出したことを示すIF ST ISSUEDフラグ
と、どのストアバツフアから該命令フエツチパイ
プラインに投入されたかを示すIDビツトを備え、
先行のパイプライン処理の遅延によつて、後続す
るパイプライン処理がキヤンセルされた時、該
IF ST ISSUEDフラグをリセツトすることによ
り、上記STB HOLDフラグがオンでIF ST
ISSUEDフラグがオフとなつているストアバツフ
アを検出することによつて、該キヤンセルされた
パイプライン処理を上記命令フエツチパイプライ
ンに再投入するようにしたものであるので、オペ
ランドストアの命令フエツチバツフア記憶への反
映が矛盾なく行うことができる効果がある。
As described above in detail, the instruction buffer store control method of the present invention includes operand buffer storage, instruction fetch buffer storage, and a plurality of store address registers (STAR ) and a store buffer consisting of a store data register (STD), a store address to be reflected in the instruction fetch buffer memory, a plurality of STB HOLD flags indicating that store data is held, and an instruction. An IF ST ISSUED flag indicating that the write to the fetch buffer memory of the above instruction has been sent to the fetch pipeline, and an ID bit indicating from which store buffer the instruction was input to the fetch pipeline,
When a subsequent pipeline process is canceled due to a delay in the previous pipeline process, the corresponding
By resetting the IF ST ISSUED flag, the above STB HOLD flag is on and the IF ST
By detecting a store buffer whose ISSUED flag is off, the canceled pipeline processing is reintroduced to the instruction fetch pipeline, so the instruction fetch buffer memory of the operand store is This has the effect of allowing the reflection of information to be carried out without contradiction.
第1図は本発明の基本動作に関連する構成例を
ブロツク図で示した図、第2図はストアバツフア
(STB)の構成の一例を示した図、第3図A,B
は第1図に示す実施例の詳細な構成を示す図、第
4図はSTB VALID、STB READYの動作を説
明する図、第5図はストアバツフア制御フラグの
動作をタイムチヤートで示した図、第6図は命令
フエツチパイプラインに対するIDの動作を説明
する図、第7図は本発明を実施してストアアクセ
ス制御を行う場合の動作をタイムチヤートで示し
た図、第8図は中央処理装置(CPU)の構成を
示した図、第9図はI−UNITパイプラインの動
作を説明した図、第10図は1命令のバツフア記
憶へのアクセスタイミングを示す説明図、第11
図は2サイクル1命令処理の説明図、第12図は
従来の2つのバツフア記憶を持つ方式をブロツク
図で示した図、第13図は第12図で示した従来
方式に必要な同期制御タイミングを説明する図、
である。
図面において、1はI−UNIT、2はE−
UNIT、3はS−UNIT、4はバツフア記憶、3
1はオペランド実行アドレスレジスタ(OER)、
32はオペランドバツフア記憶、33はオペラン
ドワードレジスタ(OWR)、34は命令実行レ
ジスタ(IFR)、35は命令フエツチバツフア記
憶、36は命令ワードレジスタ(IWR)、37は
オペランドストアデータレジスタ(OSDR)、3
8は命令ストアデータレジスタ(ISDR)、31
1,312はアドレス変換バツフア(OP TLB、
IF TLB)、313,314はタグ部(OP BS
TAG、IF BS TAG)、317,318は比較
器、35,36は比較器、319はアライン&セ
レクト回路、324はストアアライン回路、32
1はオペランド実アドレスレジスタ(ORR)、3
22は命令実アドレスレジスタ(IRR)、390
はストアアドレスレジスタ(STAR)、391は
ストアデータレジスタ(STD)、はSTB
VALIDフラグ、はSTB READYフラグ、は
ポインタSTB INP、はポインタSTB OUTP、
はポインタSTB IF STP、〜はID、I,
T,B,D,R,A,E1,E2,V,W,Sは
パイプラインの各サイクル、STAR VALID V,
STB READY R,STB HOLD H,IF ST
ISSUEDフラグIは制御フラグ、をそれぞれ示
す。
FIG. 1 is a block diagram showing an example of the configuration related to the basic operation of the present invention, FIG. 2 is a diagram showing an example of the configuration of a store buffer (STB), and FIGS. 3A and B
1 is a diagram showing the detailed configuration of the embodiment shown in FIG. 1, FIG. 4 is a diagram explaining the operation of STB VALID and STB READY, FIG. Figure 6 is a diagram explaining the operation of the ID for the instruction fetch pipeline, Figure 7 is a time chart showing the operation when controlling store access by implementing the present invention, and Figure 8 is a diagram explaining the operation of the central processing unit. (CPU) configuration, Figure 9 is a diagram explaining the operation of the I-UNIT pipeline, Figure 10 is an explanatory diagram showing the access timing to buffer memory for one instruction,
The figure is an explanatory diagram of two-cycle one-instruction processing, Figure 12 is a block diagram of a conventional system with two buffer memories, and Figure 13 is the synchronous control timing required for the conventional system shown in Figure 12. A diagram explaining
It is. In the drawings, 1 is I-UNIT and 2 is E-UNIT.
UNIT, 3 is S-UNIT, 4 is buffer memory, 3
1 is the operand execution address register (OER),
32 is operand buffer storage, 33 is operand word register (OWR), 34 is instruction execution register (IFR), 35 is instruction fetch buffer storage, 36 is instruction word register (IWR), 37 is operand store data register (OSDR), 3
8 is an instruction store data register (ISDR), 31
1,312 is an address translation buffer (OP TLB,
IF TLB), 313 and 314 are the tag part (OP BS
TAG, IF BS TAG), 317 and 318 are comparators, 35 and 36 are comparators, 319 is an align & select circuit, 324 is a store align circuit, 32
1 is the operand real address register (ORR), 3
22 is an instruction real address register (IRR), 390
is store address register (STAR), 391 is store data register (STD), is STB
VALID flag, STB READY flag, pointer STB INP, pointer STB OUTP,
is pointer STB IF STP, ~ is ID, I,
T, B, D, R, A, E1, E2, V, W, S are each cycle of the pipeline, STAR VALID V,
STB READY R, STB HOLD H, IF ST
The ISSUED flag I indicates a control flag.
Claims (1)
命令フエツチ用バツフア記憶装置と、主記憶装置
へのストアアクセスを行う為の複数個のストアア
ドレスレジスタ及びストアデータレジスタから構
成されるストアバツフアとを備え、命令フエツチ
は上記命令フエツチ用バツフア記憶装置から行
い、オペランドフエツチは上記オペランドアクセ
ス用バツフア記憶装置から行い、オペランドスト
アは上記オペランドアクセス用バツフア記憶装置
と、上記ストアバツフアに同一シーケンスで行
い、命令フエツチ用バツフア記憶装置へのオペラ
ンドストアの反映は、上記ストアバツフアから別
シーケンスで行う手段を有するデータ処理装置に
おいて、上記ストアバツフアは、命令フエツチ用
バツフア記憶装置に反映すべきストアアドレス
と、ストアデータを保持していることを示す複数
のホールド(HOLD)フラグと、複数のストア
バツフアの内、どれを命令フエツチ用バツフア記
憶装置に反映すべきかを示すポインタを持ち、命
令フエツチ用バツフア記憶装置への書き込みシー
ケンスを始めた際、上記ポインタで示されるスト
アバツフアに対応する命令フエツチストア送出
(IF ST ISSUED)フラグをオンにして、且つ上
記ポインタの値を書き込みシーケンスの各サイク
ルでの識別(ID)ビツトとして使用することに
より、書き込み終了時には、上記識別(ID)ビ
ツトで示されるストアバツフアのホールド
(HOLD)フラグをリセツトし、上記書き込みシ
ーケンスが中断された場合には、上記識別(ID)
ビツトで示されるストアバツフアの命令フエツチ
ストア送出(IF ST ISSUED)フラグをリセツ
トすることにより、上記ホールド(HOLD)フ
ラグがオンで、且つ命令フエツチストア送出
(IF ST ISSUED)フラグがオフのストアバツフ
アについて、書き込みシーケンスの再起動を行う
ことを特徴とする命令バツフアへのストア制御方
式。1 buffer storage device for operand access;
It is equipped with an instruction fetch buffer storage device and a store buffer composed of a plurality of store address registers and store data registers for performing store access to the main memory, and instruction fetches are performed from the instruction fetch buffer storage device. , the operand fetch is performed from the operand access buffer storage device, the operand store is performed to the operand access buffer storage device and the store buffer in the same sequence, and the operand store is reflected in the instruction fetch buffer storage device as described above. In a data processing device having a means for performing processing in a separate sequence from a store buffer, the store buffer has a store address to be reflected in the instruction fetch buffer storage device and a plurality of hold flags indicating that store data is held. , has a pointer indicating which of multiple store buffers should be reflected in the instruction fetch buffer storage device, and when a write sequence to the instruction fetch buffer storage device is started, the instruction corresponding to the store buffer indicated by the pointer is By turning on the IF ST ISSUED flag and using the value of the above pointer as the identification (ID) bit at each cycle of the write sequence, at the end of the write, the data indicated by the above identification (ID) bit Reset the store buffer's hold (HOLD) flag, and if the above write sequence is interrupted, the above identification (ID) is reset.
By resetting the instruction fetch store sending (IF ST ISSUED) flag of the store buffer indicated by the bit, the write sequence for the store buffer where the above hold flag is on and the instruction fetch store sending (IF ST ISSUED) flag is off. A store control method to an instruction buffer characterized by rebooting.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP59248948A JPS61131041A (en) | 1984-11-26 | 1984-11-26 | System for controlling storage in instruction buffer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP59248948A JPS61131041A (en) | 1984-11-26 | 1984-11-26 | System for controlling storage in instruction buffer |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61131041A JPS61131041A (en) | 1986-06-18 |
| JPH028333B2 true JPH028333B2 (en) | 1990-02-23 |
Family
ID=17185794
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59248948A Granted JPS61131041A (en) | 1984-11-26 | 1984-11-26 | System for controlling storage in instruction buffer |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61131041A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08228934A (en) * | 1995-02-28 | 1996-09-10 | Kawashima Kogyo Kk | Cooking container |
-
1984
- 1984-11-26 JP JP59248948A patent/JPS61131041A/en active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08228934A (en) * | 1995-02-28 | 1996-09-10 | Kawashima Kogyo Kk | Cooking container |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61131041A (en) | 1986-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0690371B1 (en) | Fetch and store buffer for supporting out of order execution in a data processing system | |
| US5293500A (en) | Parallel processing method and apparatus | |
| JP4045062B2 (en) | Method, processor, and system for executing load instructions | |
| US5598550A (en) | Cache controller for processing simultaneous cache accesses | |
| US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
| JPH0526212B2 (en) | ||
| US6301654B1 (en) | System and method for permitting out-of-order execution of load and store instructions | |
| JP3400458B2 (en) | Information processing device | |
| US6738837B1 (en) | Digital system with split transaction memory access | |
| US6883077B2 (en) | Cache control device and method with TLB search before key receipt | |
| JPS59231652A (en) | Memory access overlap detection method | |
| US5129065A (en) | Apparatus and methods for interface register handshake for controlling devices | |
| JPS62102344A (en) | Buffer memory control system | |
| US6647450B1 (en) | Multiprocessor computer systems with command FIFO buffer at each target device | |
| JPH0351012B2 (en) | ||
| US8688890B2 (en) | Bit ordering for communicating an address on a serial fabric | |
| JPH028333B2 (en) | ||
| US20140136796A1 (en) | Arithmetic processing device and method for controlling the same | |
| JP2538993B2 (en) | Operand store cache memory store control method | |
| JPWO1992005489A1 (en) | Computer System | |
| JPH02259945A (en) | Storing processing system | |
| JPS60123944A (en) | Buffer memory controlling system of information processor | |
| JPH0376501B2 (en) | ||
| WO1995022110A1 (en) | Write-read data operation for microprocessor | |
| JPS5938828A (en) | Data processing system |