JPH0769820B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0769820B2
JPH0769820B2 JP1072623A JP7262389A JPH0769820B2 JP H0769820 B2 JPH0769820 B2 JP H0769820B2 JP 1072623 A JP1072623 A JP 1072623A JP 7262389 A JP7262389 A JP 7262389A JP H0769820 B2 JPH0769820 B2 JP H0769820B2
Authority
JP
Japan
Prior art keywords
stage
instruction
information holding
flag information
pipeline
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
Application number
JP1072623A
Other languages
English (en)
Other versions
JPH02138625A (ja
Inventor
文彦 寺山
祐一 斉藤
豊彦 ▲吉▼田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1072623A priority Critical patent/JPH0769820B2/ja
Priority to US07/497,375 priority patent/US5239633A/en
Publication of JPH02138625A publication Critical patent/JPH02138625A/ja
Publication of JPH0769820B2 publication Critical patent/JPH0769820B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、パイプライン処理を行うデータ処理装置に
係り、特にメモリ間接アドレッシング,レジスタ間接ア
ドレッシングをアドレス計算ステージで行うデータ処理
装置に関するものである。
〔従来の技術〕
データ処理装置の処理速度を上げるための方法として、
パイプライン処理方式がある。
パイプライン処理方式は、命令処理を分割しデータ処理
装置中で複数の命令を同時に実行することでスループッ
トを上げ1命令の見かけ上の実行速度を上げるものであ
る。例えば、1命令が命令デコード,オペランドアドレ
ス計算,オペランドフェッチ,演算実行の4ステージの
パイプラインで実行されるように構成したデータ処理装
置では、最大4つの命令がそれぞれの処理ステージで同
時に実行される。それに対し、1命令ずつ処理を行うデ
ータ処理装置では、命令デコード,オペランドアドレス
計算,オペランドフェッチ,演算実行のすべての処理を
終えねば次の命令処理に進めない。そのためこの場合、
パイプライン処理を行うデータ処理装置は見かけ上4倍
の命令処理速度を持つことができる。
データ処理装置の処理速度を上げるためには、パイプラ
イン処理効率を高めることが必要である。パイプライン
処理の効率を高めるには、パイプラインの各ステージ負
荷が均等であることと、各ステージが同数のクロックサ
イクルでデータを処理し、次々とパイプライン処理が進
行することが必要である。
パイプライン中の連続したデータ処理の進行を乱す要因
には、ジャンプ命令,例外,割込み,パイプライン中の
命令どうしのコンフリクト等がある。ここで、パイプラ
イン中のコンフリクトの主なものの1つは、演算実行ス
テージが書込む汎用レジスタあるいはメモリをオペラン
ドアドレス計算ステージがその書込み前に参照すること
である。
プログラム通りに命令が正しく実行されるためには、演
算実行ステージが汎用レジスタあるいはメモリ書込みを
終えた後で、オペランドアドレス計算ステージがその汎
用レジスタあるいはメモリを参照しなければならない。
第4図は従来のパイプライン制御機構を説明する回路ブ
ロック図であり、41は命令デコーダで、命令を解読し
て、レジスタ書込み予約信号をレジスタ書込み処理用の
SRフリップフロップ42のセット入力に出力し、メモリ書
込み予約信号をメモリ書込み処理用のSRフリップフロッ
プ43のセット入力に出力する。SRフリップフロップ42,
メモリ書込み処理用のSRフリップフロップ43はそれぞれ
演算処理部44からのリセット信号によりリセットされ
る。
第5図はパイプライン処理推移を説明する状態図であ
り、51は命令デコードステージを示し、52はアドレス計
算ステージを示し、53はオペランドフェッチステージを
示し、54は演算実行ステージを示し、T1〜T8は処理サイ
クルを示し、I1〜I3はパイプラインを流れる命令を示
す。
次に第4図を参照しながら従来のレジスタあるいはメモ
リへの書込みに伴うパイプライン制御方式を説明する。
命令デコーダ41は入力された命令が演算処理部44におい
てレジスタあるいはメモリにデータを書き込むかどうか
を調べる。次いで、メモリに書き込む場合には、メモリ
書込み予約信号をSRフリップフロップ43に送出し「1」
にセットする。SRフリップフロップ43の値は、「1」を
セットした命令が演算処理部44において、処理を終了し
たときに、「0」にリセットされ、その後再び命令処理
が開始される。
メモリ書き込みと同様に、レジスタ書き込みもレジスタ
書込み予約信号がSRフリップフロップ42をセットし、演
算処理部44で処理が終了した時リセットされる。このよ
うな、パイプライン制御によるステージ遅延を第5図を
参照しなが説明する。
例えば命令I1がメモリ書き込み予約をすると、命令I2は
処理サイクルT3で処理が停止し、処理サイクルT4で命令
I1がメモリにデータを書き込むまでデコード処理を実行
できない。処理サイクルT4で停止信号がリセットされ、
処理サイクルT5で命令I2は再び処理を開始する。結果と
して、命令I2には2サイクルの遅延が生じる。レジスタ
書き込み予約の場合も同様の遅延が生ずる。
このため、上記のようなレジスタコンフリクトに伴うこ
の問題点を、例えば特願昭62-144394号等に示されるよ
うに改善する提案が既になされている。
〔発明が解決しようとする課題〕
ところが、従来の方法では、前の命令がメモリに値を書
き込む場合、その後ろの命令が前の命令のメモリ書き込
みを終了するまで、オペランドアドレス計算処理を停止
し、パイプラインの処理速度の著しい低下を招くという
問題点があった。
この発明は、上記の問題点を解決するためになされたも
ので、命令のメモリ書き込み状態を調べてメモリ書込み
予約情報を各ステージに順次転送することにより、先行
命令のメモリ書き込みに伴う後続命令のオペランドアド
レス計算処理に起因する処理停止頻度を大幅に減少させ
て、効率よくパイプライン処理を実行できるデータ処理
装置を得ることを目的とする。
〔課題を解決するための手段〕
この発明に係るデータ処理装置は、オペランドのアドレ
ス計算を行う第1のパイプラインステージと演算結果の
オペランドの書き込みを行う第2のパイプラインステー
ジとを含むパイプライン処理機構と、メモリ空間への演
算結果のオペランド書き込みを行う第1の命令に関する
処理を第1のパイプラインステージで実行する際に、メ
モリ空間にオペランドを書き込む旨を予約するオペラン
ド書込み予約手段と、このオペランド書込み予約手段の
出力を保持する1つまたは複数の予約ラッチ手段と、第
1の命令に関する処理を第2のパイプラインステージで
処理する際に、1つまたは複数の予約ラッチ手段の内容
をクリアする予約ラッチクリア手段と、第1のパイプラ
インステージでオペランドのアドレス計算のためにメモ
リ空間をアクセスする第2の命令に関する処理を実行す
る際に、予約ラッチの内容に基づいて第1のパイプライ
ンステージでのオペランドのアドレス計算を抑止するオ
ペランドアドレス計算抑止手段とから構成したものであ
る。
また、入力データ信号と入力イネーブル信号とクリア信
号と出力信号をもつ1ビットのレジスタ回路である第1
のフラグ情報保持部と、入力データ信号と入力イネーブ
ル信号とクリア信号と出力信号を持つ1ビットのレジス
タ回路である第2のフラグ情報保持部と、第3のパイプ
ラインステージと第4のパイプラインステージに対応し
て第1のフラグ情報保持部と第2のフラグ情報保持部を
直列接続したフラグ情報保持手段と、第1のフラグ情報
保持部および第2のフラグ情報保持部の各出力の論理和
をとりながらフラグ情報保持手段におけるフラグ情報保
持状態を検出するフラグ情報保持状態検出手段と、第3
のパイプラインステージで第1の命令を処理するとき第
1のフラグ情報保持部をセットし、第1の命令の処理が
第3のパイプラインステージでの処理から第4のパイプ
ラインステージでの処理に移るとき、第1のフラグ情報
保持部の内容を上記第2のフラグ情報保持部に転送し、
かつ上記第1のフラグ情報保持部をクリアすることによ
り、フラグ情報保持手段内で順次情報を移動し、フラグ
情報保持状態検出手段の出力に従い、オペランドのアド
レス計算のためにメモリ空間をアクセスする第2の命令
に関する処理を制御するパイプライン制御手段とを設け
たものである。
〔作用〕
この発明においては、メモリ空間に演算結果のオペラン
ド書き込みを行う第1の命令、例えばメモリ書込み命令
に関する処理を第1のパイプラインステージで行うと
き、メモリ空間にオペランドを書き込むことをオペラン
ド書込み予約手段に予約し、第1の命令に関する処理を
第2のパイプラインステージで行うとき、予約ラッチク
リア手段により予約ラッチ手段の内容をクリアし、オペ
ランドのアドレス計算のためにメモリ空間をアクセスす
る第2の命令、例えばアドレス計算でメモリアクセスす
る命令に関する処理を第1のパイプラインステージで行
うとき、オペランドアドレス計算抑止機構により、オペ
ランドのアドレス計算を遅延して実行する。
また、パイプライン制御手段が第3のパイプラインステ
ージで第1の命令、例えばメモリ書込みを行う命令とそ
の他の命令を処理するとき第1のフラグ情報保持部をセ
ットし、第1の命令の処理が第3のパイプラインステー
ジでの処理から第4のパイプラインステージでの処理に
移るとき、第1のフラグ情報保持部の内容を第2のフラ
グ情報保持部に転送し、かつ第1のフラグ情報保持部を
クリアすることにより、フラグ情報保持手段内で順次情
報を移動させる。また、パイプライン制御手段は、フラ
グ情報保持状態検出手段の出力に従い第2の命令、例え
ばアドレス計算でメモリアクセスする命令に関する処理
実行を制御する。
〔実施例〕
第1図はこの発明の一実施例を示すデータ処理装置の構
成を説明するブロック図であり、例えば5段のパイプラ
イン構成となっている場合を示してある。
この図において、1は命令フェッチステージ(IFステー
ジ)で、命令のプリフェッチ処理を行う。2はデコード
ステージ(Dステージ)で、命令のデコードを行う。3
は第1のパイプラインステージとなるオペランドアドレ
ス計算ステージ(Aステージ)で、オペランドのアドレ
ス計算を行う。4は第3のパイプラインステージとなる
オペランドフェッチステージ(Fステージ)で、マイク
ロROMアクセスとオペランドのフェッチを行う。5は第
2または第4のパイプラインステージとなる実行ステー
ジ(Eステージ)で、命令の実行を行う。
IFステージ1はDステージ2に命令コードを渡し、Dス
テージ2からAステージ3には演算に関する情報とオペ
ランドのアドレス計算に関する情報が渡され、Aステー
ジ3からFステージ4にはマイクロプログラムルーチン
のエントリ番地,マイクロプログラムへのパラメータ情
報とオペランドのアドレス,アクセス方法に関する情報
が渡され、Fステージ4からEステージ5には演算制御
情報とオペランドやオペランドアドレスに関する情報が
渡される。
6は命令デコーダで、IFステージ1から出力される命令
を演算に関する情報とオペランドアドレス計算に関する
情報にデコードする。7は命令デコーダ、8はデコーダ
で、命令デコーダ7は演算に関する情報をさらにデコー
ドして、Eステージ5でレジスタあるいはメモリ書込み
を行うかどうかを判断してデコード結果をレジスタ書込
み予約回路9あるいはメモリ書込み予約回路10に予約す
る。デコーダ8はオペランドに関する情報をさらにデコ
ードして、そのデコード結果をレジスタ書込み予約回路
9に出力する。
11はレジスタ書込み予約フラグ回路(Fステージ4に設
ける)で、レジスタ書込み予約回路9に予約され、パイ
プライン制御回路15から出力される制御信号(詳細は後
述する)に基づいてレジスタ書込み予約回路9から転送
されるレジスタ書込み予約情報を保持する。
12はメモリ書込み予約フラグ回路(Fステージ4に設け
る)で、メモリ書込み予約回路10に予約され、パイプラ
イン制御回路15から出力される制御信号(詳細は後述す
る)に基づいてメモリ書込み予約回路10から転送される
メモリ書込み予約情報を保持する。
13はレジスタ書込み予約フラグ回路(Eステージ5に設
ける)で、レジスタ書込み予約フラグ回路11に保持さ
れ、パイプライン制御回路15から出力される制御信号
(詳細は後述する)に基づいてレジスタ書込み予約フラ
グ回路11から転送されるレジスタ書込み予約情報を保持
する。
14はメモリ書込み予約フラグ回路(Eステージ5に設け
る)で、メモリ書込み予約フラグ回路12に保持され、パ
イプライン制御回路15から出力される制御信号(詳細は
後述する)に基づいてメモリ書込み予約フラグ回路12か
ら転送されるレジスタ書込み予約情報を保持する。
なお、メモリ空間に演算結果のオペランド書き込みを行
う第1の命令に関する処理を第1のパイプラインステー
ジ(Aステージ3)で行うとき、メモリ空間にオペラン
ドを書き込むことをオペランド書込み予約手段(メモリ
書込み予約回路10)に予約し、第1の命令に関する処理
を第2のパイプラインステージ(Eステージ5)で完了
のとき、予約ラッチクリア手段(パイプライン制御回路
15が兼ねる)により予約ラッチ手段(メモリ書込み予約
フラグ回路14)の内容をクリアし、オペランドのアドレ
ス計算のためにメモリ空間をアクセスする第2の命令に
関する処理を第1のパイプラインステージで行うとき、
オペランドアドレス計算抑止機構(パイプライン制御回
路15が兼ねる)により、オペランドのアドレス計算を遅
延して実行する。
以下、パイプライン中の命令どうしのコンフリクトに伴
うパイプライン制御動作について説明する。
データ処理装置中で処理される命令は、IFステージ1よ
りDステージ2に渡され、命令デコーダ6でデコードさ
れ演算に関する情報とオペランドアドレス計算に関する
情報がAステージ3に渡される。Aステージ3ではオペ
ランドアドレス計算に関する情報によりオペランドアド
レス計算をするとともに、演算に関する情報を命令デコ
ーダ7でさらにデコードしEステージ5でレジスタある
いはメモリに書込みするかどうかを判断する。書込みに
関するデコード結果は、レジスタ書込み予約回路9,メモ
リ書込み予約回路10にセットされる。レジスタ書込み予
約回路9は、レジスタの数だけ予約回路を持ち、命令デ
コーダ7の出力とレジスタ指定のためのデコーダ8の出
力により予約される。メモリ書込み予約フラグはアドレ
スに関係なく1つだけであり命令デコーダ7の出力によ
り予約される。
1命令が複数のオペランドを有する場合、1命令は複数
の処理単位に分けてデコードされ、書込み予約情報は繰
り返し行われる書込み予約により蓄積される。
このような、1命令が複数の処理単位に分けて処理され
ることは、特願昭61-236456号等に詳しく述べられてあ
る。
1命令のAステージ処理が終了すると、書込み予約情報
はFステージ4に転送され、レジスタ書込み予約フラグ
回路11あるいはメモリ書込み予約フラグ回路12に保持さ
れる。命令のFステージ処理終了とともにEステージ5
への書込み予約情報の転送が行われる。書込み予約情報
は、書込み予約した命令が処理されているステージのフ
ラグ回路が保持しており、書込み予約情報を転送したフ
ラグ回路は保持していた書込み予約情報をクリアする。
Eステージ5で書込み予約した命令の処理が終了した時
点で、レジスタ書込み予約フラグ回路13あるいはメモリ
書込み予約フラグ回路14がクリアされる。オペランドア
ドレス計算でメモリ間接アドレッシングのためにメモリ
を参照する命令は、Aステージ3でメモリ書込み予約フ
ラグ回路12,14の少なくとも1つがセットされていれば
処理を停止し、メモリ書込み予約フラグ回路12,14がす
べてリセットされるまで待つ。
同様に、Aステージ3でオペランドのアドレス計算でレ
ジスタ参照する命令は、参照するレジスタに対応するレ
ジスタ書込み予約フラグ回路11,13が1つでもセットさ
れていれば処理を停止し、そのレジスタ書込み予約フラ
グ回路11,13がすべてリセットされるのを待つ。
この制御方式では、Aステージ3で書込み予約を行うの
で、オペランドアドレス計算に使用するレジスタやメモ
リのオペランド書込み予約が先に行われ、自分自身でコ
ンフリクトを起こすことはない。これらの書込み予約情
報の転送は、すべて総括的にパイプライン制御回路15
(詳細は後述する)が制御する。
次に第2図および第3図を参照しながら第1図に示した
データ処理装置における書込み予約情報転送処理につい
てさらに説明する。
第2図は、第1図に示した書込み予約情報転送回路の一
例を説明する構成図であり、21はメモリ書込み予約ラッ
チで、アンドゲート21a,21b,ノアゲート21c,インバータ
21d等から構成され、アンドゲート21aには非重複2相ク
ロックφ2および命令デコーダ7からのメモリ書込み予
約信号22が入力され、Fステージ4のRレジスタ23に出
力される。Rレジスタ23はマスタスレーブ構成となって
おり、トランスミッションゲート23a,23b,インバータ23
c,ノアゲート23d等よりなり、後段のEステージ5のEI
レジスタ24に書込み予約情報を転送する。25はEレジス
タで、EIレジスタ24を介して書込み予約情報を受け取
る。26はオアゲートで、Rレジスタ23のスレーブおよび
マスタ側のノアゲート23dの出力,EIレジスタ24の出力,E
レジスタ25の出力等のオア(論理和)をとり(メモリ書
込み予約フラグの設定状態を検出する処理)Aステージ
3のアンドゲート27に書込み予約信号を出力する。な
お、アンドゲート27の一方には、メモリ間接参照信号28
が入力され、上記書込み予約信号とのアンド出力がメモ
リコンフリクト信号29として出力され、このメモリコン
フリクト信号29が「1」の間は、Aステージ3における
オペランドアドレス計算が停止する。このように、各ス
テージに1ビットの書込み予約情報転送ラインを設け、
命令デコーダ7,デコーダ8より出力されるメモリまたは
レジスタの書込み予約情報を順次後段のステージに遷移
転送し、Eステージ5に書込み予約情報を通知する。そ
して、各ステージに対する書込み予約情報状態をオア論
理で検出させ、命令に対する書込み予約情報がいずれか
のステージに対して転送中および転送後、Eステージ5
によるメモリまたはレジスタ書込みが完了するまで、A
ステージ3におけるオペランドアドレス計算開始を遅延
制御させる。
なお、Aステージ3のメモリ書込み予約ラッチ21はパイ
プライン制御回路15から出力されるAステージ終了信号
30によりリセットされるとともに、Rレジスタ書込み信
号31によりラッチされた書込み予約信号がFステージ4
に転送される。
また、Fステージ4のRレジスタ23は、マスタ側に転送
された書込み予約信号をパイプライン制御回路15から出
力されるRレジスタ読出し信号36によりスレーブ側に書
込み予約信号を転送し、Rレジスタクリア信号32により
クリアされる。
さらに、Eステージ5のEIレジスタ24はパイプライン制
御回路15から出力されるEIレジスタ書込み信号33により
Rレジスタ23から書込み予約信号を受取り、Eステージ
開始信号34によりEIレジスタ24から書込み予約信号を受
取り、Eステージ終了信号35によりクリアされる。な
お、図中の〜は各ノード出力を示す。
第3図は、第2図に示した各信号の送出タイミングを説
明するタイミングチャートである。
メモリ書込み予約信号22は、命令デコーダ7から出力さ
れ、メモリ書込み予約ラッチ21をセットする。1つの命
令が複数オペランドについてのメモリ書込みを行うとき
は、その回数だけメモリ書込み予約信号22がメモリ書込
み予約ラッチ21をセットする。最終的に1命令のアドレ
ス計算処理が終ったところで、Aステージ終了信号30と
Rレジスタ書込み信号31によりメモリ書込み予約情報は
Eステージ4に送出され、メモリ書込み予約ラッチ21は
リセットされる。そして、書込み予約情報がFステージ
4に転送されると、Fステージ4のメモリ書込み予約フ
ラグであるRレジスタ23はマスタスレーブ構成となって
おり、次命令のメモリ書込み予約情報の取り入れと、E
ステージ5へのメモリ書込み予約情報の転送を同時に行
う。Rレジスタ読出し信号36によりスレーブへメモリ書
込み情報が転送され、Rレジスタ23のマスタは次の命令
のメモリ書込み予約情報の入力がない場合にはクリアさ
れる。
Fステージ4で命令の処理が終了すると、メモリ書込み
予約情報は、EIレジスタ24に対するEIレジスタ書込み信
号33によりEステージ5へ転送され、Rレジスタ23のス
レーブ側がRレジスタ23のマスタ側からの入力情報にオ
ーバーライトされる。
EIレジスタ24が、Fステージ4よりメモリ書込み予約情
報を受け取ると、入力レジスタであるEIレジスタ24から
入力されたメモリ書込み予約情報は、Eステージ開始信
号34によりEレジスタ25に転送され、次命令の予約情報
入力がなければEIレジスタ24はクリアされる。Eレジス
タ25に入力されたメモリ書込み予約情報は、Eステージ
処理は終了時に、Eステージ終了信号35によりクリアさ
れる。
このようにメモリ書込み予約情報は、パイプラインを転
送される命令と同期してパイプライン中を転送され、E
ステージ5でメモリ書込みが行われ命令が終了するとク
リアされる。
なお、パイプライン制御手段となるパイプライン制御回
路15が第3のパイプラインステージとなるFステージ4
で第1の命令を処理するとき第1のフラグ情報保持部
(メモリ書込み予約フラグ回路12)をセットし、第1の
命令の処理が第3のパイプラインステージでの処理から
第4のパイプラインステージ(Eステージ5)での処理
に移るとき、メモリ書込み予約フラグ回路12の内容を第
2のフラグ情報保持部(メモリ書き込み予約フラグ回路
14)に転送し、かつメモリ書き込み予約フラグ回路12を
クリアすることにより、フラグ情報保持手段内で順次情
報を移動させる。また、パイプライン制御回路15は、フ
ラグ情報保持状態検出手段(オアゲート26およびアンド
ゲート27等より構成される)の出力に従い第3のパイプ
ラインステージでの第2の命令に関する処理実行を制御
るす。
以下、第2図の動作について説明する。
各ステージのメモリ書込み予約フラグの出力はオアゲー
ト26でオアされ、アンドゲート27に入力する。Aステー
ジ3でメモリ参照する命令はメモリ間接参照信号28を
「1」とする。このため、パイプライン中を先行する命
令が1つでもメモリ書込み予約がなされた場合には、メ
モリコンフリクト信号29が「1」となり、Aステージ3
は処理を停止する。そして、メモリ書込み予約した命令
がすべてEステージ5で処理されてメモリコンフリクト
信号29が「0」になると、Aステージ3は処理を再開す
る。
なお、上記実施例では、メモリ書込み予約情報の転送に
ついて説明したが、レジスタ予約情報でも同様のハード
ウエアにより転送させることが可能である。特に、レジ
スタ予約情報は、レジスタの数だけあり、レジスタ予約
とレジスタコンフリクト信号の発生は、レジスタ毎に独
立して行われる。Aステージ3でレジスタを参照する命
令はレジスタ間接参照信号28を「1」とし、パイプライ
ン中を先行する命令が1つでも対応するレジスタを書込
み予約していれば、レジスタコンフリクト信号が「1」
となり、Aステージ3は処理を停止する。そして、レジ
スタ書込み予約した命令がすべてEステージ5で処理さ
れ、レジスタコンフリクト信号が「0」となると、Aス
テージ3は処理を再開する。
なお、ジャンプ命令や割込みをEステージ5が実行する
場合には、ジャンプが起こると、パイプライン中の命令
はキャンセルされ、IFステージ1が新たにジャンプ先の
命令取り込みを開始する。このとき、パイプライン中の
命令と同様にレジスタ書込み予約情報,メモリ書込み予
約情報もクリアされる。レジスタ書込み予約フラグ,メ
モリ書込み予約フラグにはリセット入力があり、Eステ
ージ5でジャンプが起こると、クリアされる。
このとき、メモリ書込み予約ラッチ21は、Aステージ終
了信号30により、Rレジスタ23は、Rレジスタ読出し信
号36とRレジスタクリア信号32により、EIレジスタ24は
Eステージ開始信号34により、Eレジスタ25はEステー
ジ終了信号35によりそれぞれクリアされる。
また、上記実施例においては、メモリ空間全体について
1系統のメモリ書込み予約とコンフリクトチェックを行
う場合について説明したが、メモリのアドレスにより複
数の空間に分けてその空間毎に書込み予約とコンフリク
トチェックを行うようにしてもよい。
さらに、上記実施例では、メモリ書き込みを行う命令が
書き込み予約を行いコンフリクトチェックを行う構成で
あるが、パイプライン中に命令が存在するかしないかに
よりコンフリクトチェックを行う構成にしてもよい。そ
の場合、パイプラインステージに対応したフラグ情報保
持回路が、そのステージの命令存在情報を持つようにす
る。パイプラインステージに命令があればフラグは1と
なり、命令が存在しなければフラグは「0」である。パ
イプライン中を命令が転送されて行くとそれに対応し
て、命令の存在を示すフラグがフラグ情報保持回路中を
転送されて行く。フラグ情報保持回路は、そのステージ
の処理が終ると命令存在を示すフラグを次段のパイプラ
インステージに送り出しフラグ情報をクリアする。オペ
ランドのアドレス計算を行うステージより後段のステー
ジのフラグ情報保持回路出力すべての論理和をとり、ア
ドレス計算ステージより後段のステージに命令があるか
ないか検出する。1つでも後段のステージに命令があれ
ば論理和信号は「1」となり、後段のステージの命令が
すべて無くなれば論理和信号は「0」となる。アドレス
計算ステージで処理される命令がメモリを参照するアド
レス計算を行う場合、フラグ情報保持回路出力の論理和
信号を調べ、後段のステージで命令が存在しないことを
確認してからアドレス計算を実行する。論理和信号が
「「1」であれば、後段のステージの命令がメモリ書き
込みする可能性があるのでアドレス計算の実行を停止
し、後段のステージの命令がすべて完了し論理和信号が
「0」となってからアドレス計算を実行する。このよう
にしてメモリコンフリクトチェックを行うことも可能で
ある。
〔発明の効果〕
以上説明したように、この発明はオペランドのアドレス
計算を行う第1のパイプラインステージと演算結果のオ
ペランドの書き込みを行う第2のパイプラインステージ
とを含むパイプライン処理機構と、メモリ空間への演算
結果のオペランド書き込みを行う第1の命令に関する処
理を第1のパイプラインステージで実行する際に、メモ
リ空間にオペランドを書き込む旨を予約するオペランド
書込み予約手段と、このオペランド書込み予約手段の出
力を保持する1つまたは複数の予約ラッチ手段と、第1
の命令に関する処理を第2のパイプラインステージで処
理する際に、1つまたは複数の予約ラッチ手段の内容を
クリアする予約ラッチクリア手段と、第1のパイプライ
ンステージでオペランドのアドレス計算のためにメモリ
空間をアクセスする第2の命令に関する処理を実行する
際に、予約ラッチの内容に基づいて第1のパイプライン
ステージでのオペランドのアドレス計算を抑止するオペ
ランドアドレス計算抑止手段とから構成したもので、オ
ペランド計算ステージでメモリ参照する命令だけがメモ
リコンフリクトによる処理待ちとなり、パイプライン処
理の乱れを大幅に減少させて、パイプライン処理効率を
高めることができる。また、パイプラインを構成する各
ステージ毎にメモリ書き込み予約フラグがあるので、パ
イプライン中に複数の命令によるメモリ書き込み予約情
報を保持させることが可能となる。
また、入力データ信号と入力イネーブル信号とクリア信
号と出力信号をもつ1ビットのレジスタ回路である第1
のフラグ情報保持部と、入力データ信号と入力イネーブ
ル信号とクリア信号と出力信号を持つ1ビットのレジス
タ回路である第2のフラグ情報保持部と、第3のパイプ
ラインステージと第4のパイプラインステージに対応し
て第1のフラグ情報保持部と第2のフラグ情報保持部を
直列接続したフラグ情報保持手段と、第1のフラグ情報
保持部および第2のフラグ情報保持部の各出力の論理和
をとりながらフラグ情報保持手段におけるフラグ情報保
持状態を検出するフラグ情報保持状態検出手段と、第3
のパイプラインステージで第1の命令を処理するとき第
1のフラグ情報保持部をセットし、第1の命令の処理が
第3のパイプラインステージでの処理から第4のパイプ
ラインステージでの処理に移るとき、第1のフラグ情報
保持部の内容を上記第2のフラグ情報保持部に転送し、
かつ上記第1のフラグ情報保持部をクリアすることによ
り、フラグ情報保持手段内で順次情報を移動し、フラグ
情報保持状態検出手段の出力に従い、オペランドのアド
レス計算のためにメモリ空間をアクセスする第2の命令
に関する処理を制御するパイプライン制御手段とを設け
たので、パイプライン中の各ステージにメモリ書込み予
約情報/レジスタ書込み予約情報を転送する際に、各ス
テージに保持されたメモリ書込み予約情報/レジスタ書
込み予約情報をクリアしながら後段ステージに転送で
き、命令実行ステージでの命令終了時点でパイプライン
中のメモリ書込み予約情報/レジスタ書込み予約情報を
自動的にオールクリアでき、パイプライン処理の効率を
格段に向上できる等の優れた効果を奏する。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すデータ処理装置の構
成を説明するブロック図、第2図は、第1図に示した書
込み予約情報転送回路の一例を説明する構成図、第3図
は、第2図に示した各信号の送出タイミングを説明する
タイミングチャート、第4図は従来のパイプライン制御
機構を説明する回路ブロック図、第5図はパイプライン
処理推移を説明する状態図である。 図において、1はIFステージ、2はDステージ、3はA
ステージ、4はFステージ、5はEステージ、6,7は命
令デコーダ、8はデコーダ、9はレジスタ書込み予約回
路、10はメモリ書込み予約回路、11,13はレジスタ書込
み予約フラグ回路、12,14はメモリ書込み予約フラグ回
路である。 なお、図中の同一符号は同一または相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】オペランドのアドレス計算を行う第1のパ
    イプラインステージと演算結果のオペランドの書き込み
    を行う第2のパイプラインステージとを含むパイプライ
    ン処理機構と、メモリ空間への演算結果のオペランド書
    き込みを行う第1の命令に関する処理を前記第1のパイ
    プラインステージで実行する際に、前記メモリ空間にオ
    ペランドを書き込む旨を予約するオペランド書込み予約
    手段と、このオペランド書込み予約手段の出力を保持す
    る1つまたは複数の予約ラッチ手段と、前記第1の命令
    に関する処理を前記第2のパイプラインステージで処理
    する際に、前記1つまたは複数の予約ラッチ手段の内容
    をクリアする予約ラッチクリア手段と、前記第1のパイ
    プラインステージで前記オペランドのアドレス計算のた
    めにメモリ空間をアクセスする第2の命令に関する処理
    を実行する際に、前記予約ラッチ手段の内容に基づいて
    前記第1のパイプラインステージでのオペランドのアド
    レス計算を抑止するオペランドアドレス計算抑止手段と
    から構成したことを特徴とするデータ処理装置。
  2. 【請求項2】第1の命令およびこの第1の命令に続くオ
    ペランドのアドレス計算のためにメモリ空間をアクセス
    する第2の命令を順次処理する第3のパイプラインステ
    ージと、この第3のパイプラインステージの後段の第4
    のパイプラインステージとを含むパイプライン処理機構
    を有するデータ処理装置において、入力データ信号と入
    力イネーブル信号とクリア信号と出力信号をもつ1ビッ
    トのレジスタ回路である第1のフラグ情報保持部と、入
    力データ信号と入力イネーブル信号とクリア信号と出力
    信号を持つ1ビットのレジスタ回路である第2のフラグ
    情報保持部と、上記第3のパイプラインステージと上記
    第4のパイプラインステージに対応して上記第1のフラ
    グ情報保持部と上記第2のフラグ情報保持部を直列接続
    したフラグ情報保持手段と、前記第1のフラグ情報保持
    部および前記第2のフラグ情報保持部の各出力の論理和
    をとりながら前記フラグ情報保持手段におけるフラグ情
    報保持状態を検出するフラグ情報保持状態検出手段と、
    前記第3のパイプラインステージで第1の命令を処理す
    るとき前記第1のフラグ情報保持部をセットし、前記第
    1の命令の処理が前記第3のパイプラインステージでの
    処理から前記第4のパイプラインステージでの処理に移
    るとき、前記第1のフラグ情報保持部の内容を上記第2
    のフラグ情報保持部に転送し、かつ上記第1のフラグ情
    報保持部をクリアすることにより、前記フラグ情報保持
    手段内で順次情報を移動し、前記フラグ情報保持状態検
    出手段の出力に従い、オペランドのアドレス計算のため
    にメモリ空間をアクセスする第2の命令に関する処理を
    制御するパイプライン制御手段とを設けたことを特徴と
    するデータ処理装置。
JP1072623A 1988-08-18 1989-03-24 データ処理装置 Expired - Lifetime JPH0769820B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1072623A JPH0769820B2 (ja) 1988-08-18 1989-03-24 データ処理装置
US07/497,375 US5239633A (en) 1989-03-24 1990-05-04 Data processor executing memory indirect addressing and register indirect addressing

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP63-205566 1988-08-18
JP20556688 1988-08-18
JP1072623A JPH0769820B2 (ja) 1988-08-18 1989-03-24 データ処理装置

Publications (2)

Publication Number Publication Date
JPH02138625A JPH02138625A (ja) 1990-05-28
JPH0769820B2 true JPH0769820B2 (ja) 1995-07-31

Family

ID=26413754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1072623A Expired - Lifetime JPH0769820B2 (ja) 1988-08-18 1989-03-24 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0769820B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6227829A (ja) * 1985-07-30 1987-02-05 Fujitsu Ltd 多重ロード命令制御装置

Also Published As

Publication number Publication date
JPH02138625A (ja) 1990-05-28

Similar Documents

Publication Publication Date Title
US5293500A (en) Parallel processing method and apparatus
EP0405495B1 (en) Instruction unit logic management apparatus included in a pipelined processing unit and method therefor
JPS5932045A (ja) 情報処理装置
KR20100003309A (ko) 파이프라인 프로세서에서 조건 명령 실행을 촉진시키기 위해 로컬 조건 코드 레지스터를 이용하기 위한 방법 및 장치
JP2009099097A (ja) データ処理装置
JP2620511B2 (ja) データ・プロセッサ
JPH02227730A (ja) データ処理システム
JPH0760388B2 (ja) パイプライン制御回路
US5239633A (en) Data processor executing memory indirect addressing and register indirect addressing
JPH0769820B2 (ja) データ処理装置
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
JPH0769825B2 (ja) 並列処理装置
JP3158107B2 (ja) 浮動小数点状態および制御レジスタ(fpscr)命令を直接実行するための方法および装置
JP3014682B2 (ja) プログラム制御方法及び装置
JPH07244588A (ja) データ処理装置
JP2824484B2 (ja) パイプライン処理計算機
JPS6259829B2 (ja)
JP2503223B2 (ja) 先行制御方式
JP3743155B2 (ja) パイプライン制御型計算機
JP2504263B2 (ja) デ―タ処理装置
JPS60247743A (ja) パイプライン演算制御装置
JP2933182B2 (ja) パイプライン制御方法
CN119987866A (zh) 一种指令处理方法、存储介质及电子设备
JPH06161778A (ja) マルチフロー命令制御方法及び命令処理装置
JPH0269825A (ja) パイプライン制御方式