JPH0954694A - パイプラインプロセッサおよびその処理方法 - Google Patents
パイプラインプロセッサおよびその処理方法Info
- Publication number
- JPH0954694A JPH0954694A JP20888995A JP20888995A JPH0954694A JP H0954694 A JPH0954694 A JP H0954694A JP 20888995 A JP20888995 A JP 20888995A JP 20888995 A JP20888995 A JP 20888995A JP H0954694 A JPH0954694 A JP H0954694A
- Authority
- JP
- Japan
- Prior art keywords
- read
- flag
- stage
- instruction
- 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
- 238000003672 processing method Methods 0.000 title claims description 13
- 238000000034 method Methods 0.000 claims abstract description 16
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【課題】パイプライン制御のCISC型プロセッサにお
いて、リード・モディフアイライト命令の実行に伴うハ
ザードを効率良く検出する手段を提供し、プロセッサの
性能向上を実現する。 【解決手段】キャッシュメモリのエントリ毎にセット・
リセット可能なLフラグ204を備える。RMW命令の
実行中のキャッシュリードステージ113においてLフ
ラグ204をセットするステップS14と、シャッシュ
ライトステージ115のデータ書込完了後にLフラグ2
04をリセットするステップS17とを含む。
いて、リード・モディフアイライト命令の実行に伴うハ
ザードを効率良く検出する手段を提供し、プロセッサの
性能向上を実現する。 【解決手段】キャッシュメモリのエントリ毎にセット・
リセット可能なLフラグ204を備える。RMW命令の
実行中のキャッシュリードステージ113においてLフ
ラグ204をセットするステップS14と、シャッシュ
ライトステージ115のデータ書込完了後にLフラグ2
04をリセットするステップS17とを含む。
Description
【0001】
【発明の属する技術分野】本発明はパイプラインプロセ
ッサおよびその処理方法に関し、特にリードモディファ
イライト処理を行うCISC型のパイプラインプロセッ
サおよびその処理方法に関する。
ッサおよびその処理方法に関し、特にリードモディファ
イライト処理を行うCISC型のパイプラインプロセッ
サおよびその処理方法に関する。
【0002】
【従来の技術】この種のCISC型のパイプラインプロ
ッセッサは、命令の解釈・実行を複数の手順(以下、ス
テージ)に分割し、それらのステージを並列に実行する
ことにより、複数個の命令の同時実行を実現している。
なお、この後の説明では、説明の便宜上、アクセス対象
メモリ上のデータはすべてキャッシュメモリ(以下キャ
ッシュ)内に複写されているものとする。
ッセッサは、命令の解釈・実行を複数の手順(以下、ス
テージ)に分割し、それらのステージを並列に実行する
ことにより、複数個の命令の同時実行を実現している。
なお、この後の説明では、説明の便宜上、アクセス対象
メモリ上のデータはすべてキャッシュメモリ(以下キャ
ッシュ)内に複写されているものとする。
【0003】一般的なパイプラインプロセッサの動作を
説明するためのプログラムの一例およびこのプログラム
の各命令のパイプラインステージの構成を示す図4
(A)〜(C)を参照すると、(A)に示すプログラム
は命令11,12から成り、命令11(INC [12
34])は、メモリの1234番地の内容に1を加算
し、その加算結果を元の1234番地に再び書き戻す動
作を行うことを指示するリードモディファイライト(R
MW)命令である。命令12(MOV A,[123
4])は、メモリの1234番地の内容を読出し、プロ
セッサのレジスタAにその内容を書込むことを指示する
ムーブ(MV)命令である。メモリの1234番地に数
値100が予め書込まれていると、命令11の実行によ
り、メモリの1234番地の内容は101に変化する。
次に命令12を実行すると、メモリの1234番地から
読みだされた数値101がレジスタAに書込まれる。
説明するためのプログラムの一例およびこのプログラム
の各命令のパイプラインステージの構成を示す図4
(A)〜(C)を参照すると、(A)に示すプログラム
は命令11,12から成り、命令11(INC [12
34])は、メモリの1234番地の内容に1を加算
し、その加算結果を元の1234番地に再び書き戻す動
作を行うことを指示するリードモディファイライト(R
MW)命令である。命令12(MOV A,[123
4])は、メモリの1234番地の内容を読出し、プロ
セッサのレジスタAにその内容を書込むことを指示する
ムーブ(MV)命令である。メモリの1234番地に数
値100が予め書込まれていると、命令11の実行によ
り、メモリの1234番地の内容は101に変化する。
次に命令12を実行すると、メモリの1234番地から
読みだされた数値101がレジスタAに書込まれる。
【0004】命令11(INC [1234])の動作
タイミングを示す図4(B)を参照すると、この図で示
す時間の経過は左から右の方向であり、この命令11は
その解釈・実行がオペコードフエッチステージ111
と、デコードステージ112と、キャッシュリードステ
ージ113と、演算ステージ114と、キャッシュライ
トステージ115との5個のステージに分割されてい
る。プロセッサはそれぞれのステージ111〜115を
左から右の方向へ実行する。
タイミングを示す図4(B)を参照すると、この図で示
す時間の経過は左から右の方向であり、この命令11は
その解釈・実行がオペコードフエッチステージ111
と、デコードステージ112と、キャッシュリードステ
ージ113と、演算ステージ114と、キャッシュライ
トステージ115との5個のステージに分割されてい
る。プロセッサはそれぞれのステージ111〜115を
左から右の方向へ実行する。
【0005】図4(B)を参照して命令11の実行を各
ステージに沿って説明すると、最初に、プロセッサはオ
ペコードフエッチステージ111でメモリから命令11
の機械語を読出す。ただし、プロッセッサはこの段階で
はこの読出した機械語が命令11であることは判らな
い。次のデコードステージ112で先に読込んだ機械語
をデコードし、プロセッサは命令11であること、すな
はち実行すべき動作を認識する。次のキャッシュリード
ステージ113で、キャッシュメモリに存在するデータ
をリードし、プロセッサ内の一時作業用のレジスタtm
p(図示省略)にロードする。次の演算ステージ114
でレジスタtmpの内容に1を加算する。次のキャッシ
ュライトステージ115でレジスタtmpの内容を元の
アドレスに書戻す。
ステージに沿って説明すると、最初に、プロセッサはオ
ペコードフエッチステージ111でメモリから命令11
の機械語を読出す。ただし、プロッセッサはこの段階で
はこの読出した機械語が命令11であることは判らな
い。次のデコードステージ112で先に読込んだ機械語
をデコードし、プロセッサは命令11であること、すな
はち実行すべき動作を認識する。次のキャッシュリード
ステージ113で、キャッシュメモリに存在するデータ
をリードし、プロセッサ内の一時作業用のレジスタtm
p(図示省略)にロードする。次の演算ステージ114
でレジスタtmpの内容に1を加算する。次のキャッシ
ュライトステージ115でレジスタtmpの内容を元の
アドレスに書戻す。
【0006】命令12(MOV A,[1234])の
動作タイミングを示す図4(C)を参照すると、この図
に示す命令12はその解釈・実行がオペコードフエッチ
ステージ121と、デコードステージ122と、キャッ
シュリードステージ123と、演算ステージ124との
4個のステージに分割されている。
動作タイミングを示す図4(C)を参照すると、この図
に示す命令12はその解釈・実行がオペコードフエッチ
ステージ121と、デコードステージ122と、キャッ
シュリードステージ123と、演算ステージ124との
4個のステージに分割されている。
【0007】図4(C)を参照して命令12の実行を各
ステージに沿って説明すると、まず、オペコードフエッ
チステージ121およびデコードステージ122までは
命令11と同一である。次のキャッシュリードステージ
123で、キャッシュメモリから指定されたアドレスの
データを作業用のレジスタtmpにロードする。次の演
算ステージ124で、レジスタtmpからレジスタAに
値を複写する。
ステージに沿って説明すると、まず、オペコードフエッ
チステージ121およびデコードステージ122までは
命令11と同一である。次のキャッシュリードステージ
123で、キャッシュメモリから指定されたアドレスの
データを作業用のレジスタtmpにロードする。次の演
算ステージ124で、レジスタtmpからレジスタAに
値を複写する。
【0008】以上、説明した図4(A)のRMW命令を
含むプログラムを単純にパイプライン演算実行すると、
図5(A)で示すタイミングになる。しかし、このタイ
ミングではRMW命令11の演算ステージ114と次の
MV命令12のキャッシュリードステージ123とが同
時に実行され、最初の命令11による更新前の1234
番地の内容が読出されるため誤った結果すなわちハザー
ドを発生する。すなわち、このタイミングで実行する
と、レジスタAの内容は100となってしまう。
含むプログラムを単純にパイプライン演算実行すると、
図5(A)で示すタイミングになる。しかし、このタイ
ミングではRMW命令11の演算ステージ114と次の
MV命令12のキャッシュリードステージ123とが同
時に実行され、最初の命令11による更新前の1234
番地の内容が読出されるため誤った結果すなわちハザー
ドを発生する。すなわち、このタイミングで実行する
と、レジスタAの内容は100となってしまう。
【0009】従来のパイプラインプロセッサではこのよ
うなハザードの発生を避けるため、図4(A)のRMW
命令およびMV命令を含むプログラムを図5(B)に示
すようにデコードステージ122とキャッシュリードス
テージ123との間に停止ステージ126,127を挿
入したタイミングで実行する。この場合は、最初のRM
W命令11のキャッシュライトステージ115の実行が
完了してから、MV命令12のキャッシュリードステー
ジ123を実行する。この場合、命令12の実行は2ス
テージ分だけ停止してしまう。
うなハザードの発生を避けるため、図4(A)のRMW
命令およびMV命令を含むプログラムを図5(B)に示
すようにデコードステージ122とキャッシュリードス
テージ123との間に停止ステージ126,127を挿
入したタイミングで実行する。この場合は、最初のRM
W命令11のキャッシュライトステージ115の実行が
完了してから、MV命令12のキャッシュリードステー
ジ123を実行する。この場合、命令12の実行は2ス
テージ分だけ停止してしまう。
【0010】従来のパイプラインプロセッサの処理方法
は、この例の最初のRMW命令11と2番目のMV命令
12とのように同一アドレスをアクセスする場合だけで
はなく、RMW命令とMV命令の両者で異なるアドレス
をアクセスする場合においても、2つの停止ステージを
有する図5(B)に示すタイミングで実行する。一般的
には、図4(A)のようなRMW命令に続いてMV命令
を実行するシーケンスのプログラムコードに遭遇した場
合、RMW命令とMV命令の各々のアドレスが異なる場
合が非常に多いと考えられる。両者のアドレスが異なっ
ている場合は停止ステージを含まない図5(A)のタイ
ミングで実行しても実行結果は正常である。
は、この例の最初のRMW命令11と2番目のMV命令
12とのように同一アドレスをアクセスする場合だけで
はなく、RMW命令とMV命令の両者で異なるアドレス
をアクセスする場合においても、2つの停止ステージを
有する図5(B)に示すタイミングで実行する。一般的
には、図4(A)のようなRMW命令に続いてMV命令
を実行するシーケンスのプログラムコードに遭遇した場
合、RMW命令とMV命令の各々のアドレスが異なる場
合が非常に多いと考えられる。両者のアドレスが異なっ
ている場合は停止ステージを含まない図5(A)のタイ
ミングで実行しても実行結果は正常である。
【0011】したがって、必ず2つの停止ステージを含
むタイミングで実行する従来のプロセッサでは、RMW
命令に続いてMV命令を実行するシーケンスのプログラ
ムコードでは、両命令の同一アドレスのアクセスを含ま
ない多くの場合は命令実行に要するステージ数すなわち
クロック数を無用に増加させ、性能低下要因となってい
る。
むタイミングで実行する従来のプロセッサでは、RMW
命令に続いてMV命令を実行するシーケンスのプログラ
ムコードでは、両命令の同一アドレスのアクセスを含ま
ない多くの場合は命令実行に要するステージ数すなわち
クロック数を無用に増加させ、性能低下要因となってい
る。
【0012】以上の処理に関連して、従来のパイプライ
ンプロセッサで用いられているキャッシュのエントリの
一例を示す図6を参照すると、この従来のプロセッサの
キャッシュのエントリは、そのエントリに記憶している
データ201と、複写元の(メイン)メモリのアドレス
202と、キャッシュの動作の制御用に必要な情報、こ
の例の場合はアドレス部とデータ部とそのエントリに記
録している内容が有効か無効かを示すVビット203と
から成っていた。
ンプロセッサで用いられているキャッシュのエントリの
一例を示す図6を参照すると、この従来のプロセッサの
キャッシュのエントリは、そのエントリに記憶している
データ201と、複写元の(メイン)メモリのアドレス
202と、キャッシュの動作の制御用に必要な情報、こ
の例の場合はアドレス部とデータ部とそのエントリに記
録している内容が有効か無効かを示すVビット203と
から成っていた。
【0013】
【発明が解決しようとする課題】上述した従来のパイプ
ラインプロセッサおよびその処理方法は、リードモディ
フアイライト(RMW)命令に続いてムーブ(MV)等
他処理の命令を実行する場合に確率的には非常に小さい
特殊ケースである上記RMW命令と他処理命令の同一ア
ドレスのアクセスによるハザード発生防止のため上記R
MW命令のキャシュリードステージの終了からキャシュ
ライトステージの終了まで上記他処理の命令の実行を停
止するので、これら両命令の実行ステージ数すなわちク
ロック数が増加し性能低下の要因となるという欠点があ
った。
ラインプロセッサおよびその処理方法は、リードモディ
フアイライト(RMW)命令に続いてムーブ(MV)等
他処理の命令を実行する場合に確率的には非常に小さい
特殊ケースである上記RMW命令と他処理命令の同一ア
ドレスのアクセスによるハザード発生防止のため上記R
MW命令のキャシュリードステージの終了からキャシュ
ライトステージの終了まで上記他処理の命令の実行を停
止するので、これら両命令の実行ステージ数すなわちク
ロック数が増加し性能低下の要因となるという欠点があ
った。
【0014】本発明の目的は、上記特殊ケースを効率良
く検出し命令実行クロック数を低減してプロセッサの性
能向上を実現するパイプラインプロセッサの処理方法を
提供することにある。
く検出し命令実行クロック数を低減してプロセッサの性
能向上を実現するパイプラインプロセッサの処理方法を
提供することにある。
【0015】
【課題を解決するための手段】本発明のパイプラインプ
ロセッサは、メモリ内の任意のアドレスからデータを読
出しこの読出したデータに所定の演算処理を行ないこの
処理後のデータを前記アドレスに書込むリードモディフ
ァイライト処理を単一のリードモディファイライト命令
で実行するリードモディファイライト処理手段と、前記
メモリのバッファ用のキャッシュメモリとを備え、1つ
の処理を複数の処理ステージに分割し各々のステージ毎
に並列に処理を実行するパイプラインプロセッサにおい
て、前記キャッシュメモリのエントリ毎にセット・リセ
ット可能なフラグを備え、前記リードモディファイライ
ト命令の実行中の前記キャッシュメモリからのデータ読
出時にこのデータ対応の前記フラグをセットするフラグ
セット手段と、前記キャッシュメモリへのデータの書込
みの完了後に前記フラグをリセットするフラグリセット
手段とを備えて構成されている。
ロセッサは、メモリ内の任意のアドレスからデータを読
出しこの読出したデータに所定の演算処理を行ないこの
処理後のデータを前記アドレスに書込むリードモディフ
ァイライト処理を単一のリードモディファイライト命令
で実行するリードモディファイライト処理手段と、前記
メモリのバッファ用のキャッシュメモリとを備え、1つ
の処理を複数の処理ステージに分割し各々のステージ毎
に並列に処理を実行するパイプラインプロセッサにおい
て、前記キャッシュメモリのエントリ毎にセット・リセ
ット可能なフラグを備え、前記リードモディファイライ
ト命令の実行中の前記キャッシュメモリからのデータ読
出時にこのデータ対応の前記フラグをセットするフラグ
セット手段と、前記キャッシュメモリへのデータの書込
みの完了後に前記フラグをリセットするフラグリセット
手段とを備えて構成されている。
【0016】本発明のパイプラインプロセッサの処理方
法は、キャッシュメモリ介してメモリ内の任意のアドレ
スからデータを読出しこの読出したデータに所定の演算
処理を行ないこの処理後のデータを前記アドレスに書込
むリードモディファイライト処理を単一のリードモディ
ファイライト命令である第1の命令で実行するとともに
このリードモディファイライト処理を前記データの読
出,演算,書込の各々に対応の第1,第2,第3の処理
ステージを含む複数の処理ステージに分割し各々のステ
ージ毎に並列に処理を実行するパイプラインプロセッサ
の処理方法において、前記キャッシュメモリのエントリ
毎にセット・リセット可能なフラグを配置し、前記第1
の処理ステージが、前記キャッシュメモリのエントリを
アクセスして前記フラグを読出すステップと、前記フラ
グのセット状態を点検するステップと、前記キャッシュ
メモリから前記データを読出すステップと、前記キャッ
シュメモリの前記フラグをセットするステップとを含
み、前記第3の処理ステージが、前記データを前記キャ
シュメモリに書込むステップと、前記キャッシュメモリ
の前記フラグをリセットするステップとを含むことを特
徴とするものである。
法は、キャッシュメモリ介してメモリ内の任意のアドレ
スからデータを読出しこの読出したデータに所定の演算
処理を行ないこの処理後のデータを前記アドレスに書込
むリードモディファイライト処理を単一のリードモディ
ファイライト命令である第1の命令で実行するとともに
このリードモディファイライト処理を前記データの読
出,演算,書込の各々に対応の第1,第2,第3の処理
ステージを含む複数の処理ステージに分割し各々のステ
ージ毎に並列に処理を実行するパイプラインプロセッサ
の処理方法において、前記キャッシュメモリのエントリ
毎にセット・リセット可能なフラグを配置し、前記第1
の処理ステージが、前記キャッシュメモリのエントリを
アクセスして前記フラグを読出すステップと、前記フラ
グのセット状態を点検するステップと、前記キャッシュ
メモリから前記データを読出すステップと、前記キャッ
シュメモリの前記フラグをセットするステップとを含
み、前記第3の処理ステージが、前記データを前記キャ
シュメモリに書込むステップと、前記キャッシュメモリ
の前記フラグをリセットするステップとを含むことを特
徴とするものである。
【0017】
【発明の実施の形態】次に、本発明の実施の形態を特徴
ずけるパイプラインプロセッサのキャッシュメモリ(以
下キャッシュ)のエントリを図6と共通の構成要素は共
通の文字を付して同様に模式的に示す図2を参照する
と、この実施の形態のパイプラインプロセッサのキャッ
シュのエントリには従来と共通のデータ201と、アド
レス202と、Vビット203とに加えて、リードモデ
ィファイライト(RMW)命令の実行過程におけるアク
セス中表示用のLフラグ204を追加している。
ずけるパイプラインプロセッサのキャッシュメモリ(以
下キャッシュ)のエントリを図6と共通の構成要素は共
通の文字を付して同様に模式的に示す図2を参照する
と、この実施の形態のパイプラインプロセッサのキャッ
シュのエントリには従来と共通のデータ201と、アド
レス202と、Vビット203とに加えて、リードモデ
ィファイライト(RMW)命令の実行過程におけるアク
セス中表示用のLフラグ204を追加している。
【0018】また、本実施の形態では、説明の便宜上プ
ログラムおよびこのプログラムの各命令の構成ステージ
を従来と共通の図4(A)〜(C)に示したものとす
る。すなわち、プログラムはRMW命令11(INC
[1234])と、MV命令12(MOV A,[12
34])とから成り、命令11はオペコードフエッチス
テージ111と、デコードステージ112と、キャッシ
ュリードステージ113と、演算ステージ114と、キ
ャッシュライトステージ115との5個のステージに分
割されている。命令12はオペコードフエッチステージ
121と、デコードステージ122と、キャッシュリー
ドステージ123と、演算ステージ124との4個のス
テージに分割されている。
ログラムおよびこのプログラムの各命令の構成ステージ
を従来と共通の図4(A)〜(C)に示したものとす
る。すなわち、プログラムはRMW命令11(INC
[1234])と、MV命令12(MOV A,[12
34])とから成り、命令11はオペコードフエッチス
テージ111と、デコードステージ112と、キャッシ
ュリードステージ113と、演算ステージ114と、キ
ャッシュライトステージ115との5個のステージに分
割されている。命令12はオペコードフエッチステージ
121と、デコードステージ122と、キャッシュリー
ドステージ123と、演算ステージ124との4個のス
テージに分割されている。
【0019】次に、本実施の形態のパイプラインプロセ
ッサの従来と共通のRMW命令11の実行手順をフロー
チャートで示す図1(A)を参照すると、この図に示す
本実施の形態のパイプラインプロセッサのRMW命令1
1の実行手順は、キャッシュリードステージ113がキ
ャッシュアクセス(ステップS11)とLフラグ204
のセット確認(ステップS12)とデータリード(ステ
ップS13)とLフラグ204のセット(ステップS1
4)を、演算ステージ114が演算実行(ステップS1
5)を、キャッシュライトステージ115がキャッシュ
へのデータライト(ステップS16)とLフラグ204
のリセット(ステップS17)をそれぞれ含む。
ッサの従来と共通のRMW命令11の実行手順をフロー
チャートで示す図1(A)を参照すると、この図に示す
本実施の形態のパイプラインプロセッサのRMW命令1
1の実行手順は、キャッシュリードステージ113がキ
ャッシュアクセス(ステップS11)とLフラグ204
のセット確認(ステップS12)とデータリード(ステ
ップS13)とLフラグ204のセット(ステップS1
4)を、演算ステージ114が演算実行(ステップS1
5)を、キャッシュライトステージ115がキャッシュ
へのデータライト(ステップS16)とLフラグ204
のリセット(ステップS17)をそれぞれ含む。
【0020】次に、図1(A)を参照して本実施の形態
のパイプラインプロセッサの処理について説明すると、
まず、キャッシュリードステージ113では、キャッシ
ュメモリのLフラグ204をリード(ステップS11)
し、1のセットの有無をチェックする(ステップS1
2)。1がセットされている場合は再度Lフラグ204
のリード(ステップS11)・判定(ステップS12)
を行う。Lフラグ204がセット(1)状態である限り
キャッシュリードステージ113を終了することはな
い。リセット(0)状態の場合は、キャッシュからデー
タを読みだして(ステップS13)tmpレジスタに転
送する。その後キャッシュのLフラグ204を1にセッ
トして(ステップS14)、キャッシュリードステージ
113の実行を終了する。次の演算ステージ114で
は、tmpレジスタに1を加算する(ステップS15)
だけで、従来のプロセッサの動作と同一である。最後の
キャッシュライトステージ115では、最初にキャッシ
ュにデータを書込む(ステップS16)。次にキャッシ
ュ内のLフラグ204を0にリセットする(ステップS
17)。
のパイプラインプロセッサの処理について説明すると、
まず、キャッシュリードステージ113では、キャッシ
ュメモリのLフラグ204をリード(ステップS11)
し、1のセットの有無をチェックする(ステップS1
2)。1がセットされている場合は再度Lフラグ204
のリード(ステップS11)・判定(ステップS12)
を行う。Lフラグ204がセット(1)状態である限り
キャッシュリードステージ113を終了することはな
い。リセット(0)状態の場合は、キャッシュからデー
タを読みだして(ステップS13)tmpレジスタに転
送する。その後キャッシュのLフラグ204を1にセッ
トして(ステップS14)、キャッシュリードステージ
113の実行を終了する。次の演算ステージ114で
は、tmpレジスタに1を加算する(ステップS15)
だけで、従来のプロセッサの動作と同一である。最後の
キャッシュライトステージ115では、最初にキャッシ
ュにデータを書込む(ステップS16)。次にキャッシ
ュ内のLフラグ204を0にリセットする(ステップS
17)。
【0021】次に、本実施の形態のパイプラインプロセ
ッサのMV命令12の実行手順をフローチャートで示す
図1(B)を参照すると、この図に示すMV命令12の
実行手順は、キャッシュリードステージ123がキャッ
シュアクセス(ステップS21)とLフラグ204のセ
ット確認(ステップS22)とデータリード(ステップ
S23)を、演算ステージ124が演算実行(ステップ
S24)をそれぞれ含む。
ッサのMV命令12の実行手順をフローチャートで示す
図1(B)を参照すると、この図に示すMV命令12の
実行手順は、キャッシュリードステージ123がキャッ
シュアクセス(ステップS21)とLフラグ204のセ
ット確認(ステップS22)とデータリード(ステップ
S23)を、演算ステージ124が演算実行(ステップ
S24)をそれぞれ含む。
【0022】次に、図1(B)を参照して本実施の形態
のパイプラインプロセッサの処理について説明すると、
まず、キャッシュリードステージ123では、キャッシ
ュのLフラグ204をリードし(ステップS21)、1
のセットの有無をチェックする(ステップS22)。1
がセットされている場合は再度Lフラグ204のリード
(ステップS21)・判定(ステップS22)を行う。
Lフラグ204がセット(1)状態である限りキャッシ
ュリードステージ123を終了することはない。リセッ
ト(0)状態の場合は、キャッシュからデータを読みだ
して(ステップS23)tmpレジスタに転送し、キャ
ッシュリードステージ123の実行を終了する。次の演
算ステージ124では、tmpレジスタからAレジスタ
に転送して(ステップS24)、この演算ステージ12
4を終了する。
のパイプラインプロセッサの処理について説明すると、
まず、キャッシュリードステージ123では、キャッシ
ュのLフラグ204をリードし(ステップS21)、1
のセットの有無をチェックする(ステップS22)。1
がセットされている場合は再度Lフラグ204のリード
(ステップS21)・判定(ステップS22)を行う。
Lフラグ204がセット(1)状態である限りキャッシ
ュリードステージ123を終了することはない。リセッ
ト(0)状態の場合は、キャッシュからデータを読みだ
して(ステップS23)tmpレジスタに転送し、キャ
ッシュリードステージ123の実行を終了する。次の演
算ステージ124では、tmpレジスタからAレジスタ
に転送して(ステップS24)、この演算ステージ12
4を終了する。
【0023】次に、本実施の形態のパイプラインプロセ
ッサの処理方法におけるハザードの検出およびその処理
手順について説明すると、上述の従来の技術で説明した
ように、RMW命令11とこれに続くMV命令12とか
ら成る図4(A)のようなプログラムにおいて、RMW
命令11とMV命令12とのアクセス対象アドレスが異
なる場合は、従来の理想的な動作タイミングである図5
(A)のタイミングで処理を実行しても全く問題は無
い。
ッサの処理方法におけるハザードの検出およびその処理
手順について説明すると、上述の従来の技術で説明した
ように、RMW命令11とこれに続くMV命令12とか
ら成る図4(A)のようなプログラムにおいて、RMW
命令11とMV命令12とのアクセス対象アドレスが異
なる場合は、従来の理想的な動作タイミングである図5
(A)のタイミングで処理を実行しても全く問題は無
い。
【0024】一方、RMW命令11とMV命令12との
アクセス対象アドレスが同一の場合の実行タイミングを
示す図3を参照すると、上述のように、RMW命令11
はキャッシュリードステージ113で該当するエントリ
のLフラグ204を1にセットする。次の演算ステージ
114は、MV命令12のキャッシュリードステージ1
23と並列に実行される。しかし、このキャッシュリー
ドステージ123で読出したLフラグ204は1にセッ
トされている。したがって、MV命令11はこのキャッ
シュリードステージ123を終了できず、次の演算ステ
ージ124に進むことができない。上記Lフラグ204
はRMW命令11のキャッシュライトステージ115に
なって始めて0にリセットされるため、MV命令12の
キャッシュリードステージ123でLフラグ204のリ
セット状態を確認し、データの読出可能となるのはRM
W命令11の実行が終了してからである。したがって、
プロセッサは上記プログラムを正常に実行できる。
アクセス対象アドレスが同一の場合の実行タイミングを
示す図3を参照すると、上述のように、RMW命令11
はキャッシュリードステージ113で該当するエントリ
のLフラグ204を1にセットする。次の演算ステージ
114は、MV命令12のキャッシュリードステージ1
23と並列に実行される。しかし、このキャッシュリー
ドステージ123で読出したLフラグ204は1にセッ
トされている。したがって、MV命令11はこのキャッ
シュリードステージ123を終了できず、次の演算ステ
ージ124に進むことができない。上記Lフラグ204
はRMW命令11のキャッシュライトステージ115に
なって始めて0にリセットされるため、MV命令12の
キャッシュリードステージ123でLフラグ204のリ
セット状態を確認し、データの読出可能となるのはRM
W命令11の実行が終了してからである。したがって、
プロセッサは上記プログラムを正常に実行できる。
【0025】このように、キャッシュリードステージ
で、キャッシュのエントリ内のLフラグ204の値を点
検することによりハザードを効率良く検出できる。
で、キャッシュのエントリ内のLフラグ204の値を点
検することによりハザードを効率良く検出できる。
【0026】
【発明の効果】以上説明したように、本発明のパイプラ
インプロセッサおよびその処理方法は、キャッシュメモ
リのエントリ毎にセット・リセット可能なフラグを備
え、リードモディファイライト命令の実行中のデータ読
出時に対応のフラグをセットし、データの書込みの完了
後に上記フラグをリセットすることによりこのフラグの
値を点検して、同一アドレスアクセスに起因するハザー
ドを効率良く検出することができるので、処理の大半を
占めハザードの発生のおそれがない異アドレスアクセス
の処理を高速化できるという効果がある。
インプロセッサおよびその処理方法は、キャッシュメモ
リのエントリ毎にセット・リセット可能なフラグを備
え、リードモディファイライト命令の実行中のデータ読
出時に対応のフラグをセットし、データの書込みの完了
後に上記フラグをリセットすることによりこのフラグの
値を点検して、同一アドレスアクセスに起因するハザー
ドを効率良く検出することができるので、処理の大半を
占めハザードの発生のおそれがない異アドレスアクセス
の処理を高速化できるという効果がある。
【図1】本発明の一実施の形態のパイプラインプロセッ
サの処理方法を示すフローチャートである。
サの処理方法を示すフローチャートである。
【図2】本実施の形態を特徴ずけるキャッシュメモリの
エントリの構成を模式的に示す説明図である。
エントリの構成を模式的に示す説明図である。
【図3】本実施の形態のRMW命令とMV命令とのアク
セス対象アドレスが同一の場合の実行タイミングを示す
タイムチャートである。
セス対象アドレスが同一の場合の実行タイミングを示す
タイムチャートである。
【図4】一般的なパイプラインプロセッサの動作を説明
するためのプログラムの一例およびこのプログラムの各
命令の対応のパイプラインステージの構成を示す図であ
る。
するためのプログラムの一例およびこのプログラムの各
命令の対応のパイプラインステージの構成を示す図であ
る。
【図5】従来のパイプラインプロセッサの実行タイミン
グの一例を示すタイムチャートである。
グの一例を示すタイムチャートである。
【図6】従来のパイプラインプロセッサのキャッシュメ
モリのエントリの構成を模式的に示す説明図である。
モリのエントリの構成を模式的に示す説明図である。
11 RMW命令 12 MV命令 111,121 オペコードフエッチステージ 112,122 デコードステージ 113,123 キャッシュリードステージ 114,124 演算ステージ 115 キャッシュライトステージ 201 アドレス 202 データ 203 Vビット 204 Lフラグ
Claims (2)
- 【請求項1】 メモリ内の任意のアドレスからデータを
読出しこの読出したデータに所定の演算処理を行ないこ
の処理後のデータを前記アドレスに書込むリードモディ
ファイライト処理を単一のリードモディファイライト命
令で実行するリードモディファイライト処理手段と、前
記メモリのバッファ用のキャッシュメモリとを備え、1
つの処理を複数の処理ステージに分割し各々のステージ
毎に並列に処理を実行するパイプラインプロセッサにお
いて、 前記キャッシュメモリのエントリ毎にセット・リセット
可能なフラグを備え、 前記リードモディファイライト命令の実行中の前記キャ
ッシュメモリからのデータ読出時にこのデータ対応の前
記フラグをセットするフラグセット手段と、 前記キャッシュメモリへのデータの書込みの完了後に前
記フラグをリセットするフラグリセット手段とを備える
ことを特徴とするパイプラインプロセッサ。 - 【請求項2】 キャッシュメモリ介してメモリ内の任意
のアドレスからデータを読出しこの読出したデータに所
定の演算処理を行ないこの処理後のデータを前記アドレ
スに書込むリードモディファイライト処理を単一のリー
ドモディファイライト命令である第1の命令で実行する
とともにこのリードモディファイライト処理を前記デー
タの読出,演算,書込の各々に対応の第1,第2,第3
の処理ステージを含む複数の処理ステージに分割し各々
のステージ毎に並列に処理を実行するパイプラインプロ
セッサの処理方法において、 前記キャッシュメモリのエントリ毎にセット・リセット
可能なフラグを配置し、 前記第1の処理ステージが、前記キャッシュメモリのエ
ントリをアクセスして前記フラグを読出すステップと、 前記フラグのセット状態を点検するステップと、 前記キャッシュメモリから前記データを読出すステップ
と、 前記キャッシュメモリの前記フラグをセットするステッ
プとを含み、 前記第3の処理ステージが、前記データを前記キャシュ
メモリに書込むステップと、 前記キャッシュメモリの前記フラグをリセットするステ
ップとを含むことを特徴とするパイプラインプロセッサ
の処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20888995A JPH0954694A (ja) | 1995-08-16 | 1995-08-16 | パイプラインプロセッサおよびその処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20888995A JPH0954694A (ja) | 1995-08-16 | 1995-08-16 | パイプラインプロセッサおよびその処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0954694A true JPH0954694A (ja) | 1997-02-25 |
Family
ID=16563809
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20888995A Pending JPH0954694A (ja) | 1995-08-16 | 1995-08-16 | パイプラインプロセッサおよびその処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0954694A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100491323B1 (ko) * | 2002-03-13 | 2005-05-24 | (주) 네오시스트 | 독립 파이프라인에 의한 저장 방식을 갖는 전자 계산기 |
| US6959367B2 (en) | 2001-12-25 | 2005-10-25 | Kabushiki Kaisha Toshiba | System having read-modify-write unit |
| JP2012123719A (ja) * | 2010-12-10 | 2012-06-28 | Hitachi Ltd | プログラマブルコントローラ |
| US8645796B2 (en) | 2010-06-24 | 2014-02-04 | International Business Machines Corporation | Dynamic pipeline cache error correction |
-
1995
- 1995-08-16 JP JP20888995A patent/JPH0954694A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6959367B2 (en) | 2001-12-25 | 2005-10-25 | Kabushiki Kaisha Toshiba | System having read-modify-write unit |
| KR100491323B1 (ko) * | 2002-03-13 | 2005-05-24 | (주) 네오시스트 | 독립 파이프라인에 의한 저장 방식을 갖는 전자 계산기 |
| US8645796B2 (en) | 2010-06-24 | 2014-02-04 | International Business Machines Corporation | Dynamic pipeline cache error correction |
| JP2012123719A (ja) * | 2010-12-10 | 2012-06-28 | Hitachi Ltd | プログラマブルコントローラ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6239780B2 (ja) | ||
| US5761467A (en) | System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field | |
| JPH0348537B2 (ja) | ||
| JPH0954694A (ja) | パイプラインプロセッサおよびその処理方法 | |
| JP2001306334A (ja) | エミュレーション装置 | |
| JP2553200B2 (ja) | 情報処理装置 | |
| JP3497087B2 (ja) | 命令制御装置及びその方法 | |
| KR950000088B1 (ko) | 데이터처리시스템 | |
| JP2000029690A (ja) | デ―タ処理の方法および装置 | |
| JP2915680B2 (ja) | Riscプロセッサ | |
| JPH04365133A (ja) | プレロード命令実行装置及びプログラム修正装置 | |
| JP3705263B2 (ja) | シーケンサ | |
| JP3428253B2 (ja) | シーケンサ | |
| JPH06149569A (ja) | レジスタ番号変更装置 | |
| JP2806690B2 (ja) | マイクロプロセッサ | |
| JP3130798B2 (ja) | バス転送装置 | |
| JP2001075801A (ja) | キャッシュパージ制御機構を有するプロセッサ | |
| JPH04338825A (ja) | 演算処理装置 | |
| JPH0535499A (ja) | データ処理装置及びデータ処理方法 | |
| JP2504570B2 (ja) | 記憶領域の書き込み検査処理方法 | |
| JPH08297583A (ja) | 割り込み処理装置およびその方法 | |
| JPS6149695B2 (ja) | ||
| JPH0578052B2 (ja) | ||
| JPH0916399A (ja) | 計算機 | |
| JPH10254698A (ja) | 情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19981027 |