JPH09212360A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH09212360A JPH09212360A JP8017907A JP1790796A JPH09212360A JP H09212360 A JPH09212360 A JP H09212360A JP 8017907 A JP8017907 A JP 8017907A JP 1790796 A JP1790796 A JP 1790796A JP H09212360 A JPH09212360 A JP H09212360A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- general
- unit
- purpose register
- result
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 書き込み制御を複雑としないで且つストール
を持たせずに書き込みのコンフリクトを回避することが
できるデータ処理装置を提供する。 【解決手段】 演算結果を格納する汎用レジスタ部と、
前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を前記汎用レジスタ部へ
所定のサイクル後出力する第1の演算部と、前記汎用レ
ジスタ部より読み出されたデータを用いて所定の演算を
行い、その演算結果を前記第1の演算部より長いサイク
ル後出力する第2の演算部と、前記第2の演算部より出
力された演算結果を次の演算が終了するまで保存する一
時保存レジスタとを備えた。
を持たせずに書き込みのコンフリクトを回避することが
できるデータ処理装置を提供する。 【解決手段】 演算結果を格納する汎用レジスタ部と、
前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を前記汎用レジスタ部へ
所定のサイクル後出力する第1の演算部と、前記汎用レ
ジスタ部より読み出されたデータを用いて所定の演算を
行い、その演算結果を前記第1の演算部より長いサイク
ル後出力する第2の演算部と、前記第2の演算部より出
力された演算結果を次の演算が終了するまで保存する一
時保存レジスタとを備えた。
Description
【0001】
【発明の属する技術分野】本発明は、パイプライン処理
で演算を行うデータ処理装置に関する。
で演算を行うデータ処理装置に関する。
【0002】
【従来の技術】パイプライン処理を行なうことが可能な
演算ユニットにおいて、演算器が複数であった場合は、
それぞれの演算器において実行される演算命令の演算時
間(レイテンシ)が全て同じであるか、あるいは演算器
が1つであれば、演算結果を演算結果保存用の汎用レジ
スタへ書き込む時のリソースコンフリクトは生じない。
演算ユニットにおいて、演算器が複数であった場合は、
それぞれの演算器において実行される演算命令の演算時
間(レイテンシ)が全て同じであるか、あるいは演算器
が1つであれば、演算結果を演算結果保存用の汎用レジ
スタへ書き込む時のリソースコンフリクトは生じない。
【0003】しかし、一般的に、除算/開平(SQR
T)などのレイテンシは他の演算のレイテンシに比べ非
常に大きい。従って、第1の命令(以降、MACと記
す)と、第1の命令に比べより多くのレイテンシを有す
る第2の命令(以降、DIVと記す)を別々の演算器で
実行し、その結果を1つの汎用レジスタに書き込むよう
な構成であった場合は、2つの演算が同時に終了した時
に、1つの汎用レジスタへ同時に演算結果を書き込もう
とするので、書き込みのコンフリクトが生じる。
T)などのレイテンシは他の演算のレイテンシに比べ非
常に大きい。従って、第1の命令(以降、MACと記
す)と、第1の命令に比べより多くのレイテンシを有す
る第2の命令(以降、DIVと記す)を別々の演算器で
実行し、その結果を1つの汎用レジスタに書き込むよう
な構成であった場合は、2つの演算が同時に終了した時
に、1つの汎用レジスタへ同時に演算結果を書き込もう
とするので、書き込みのコンフリクトが生じる。
【0004】これを回避するために、(1)書き込みポ
ートを複数にする(複数命令を同時に発行できる演算ユ
ニットなど)、(2)後続命令をストールさせる、とい
った方策が採られている。
ートを複数にする(複数命令を同時に発行できる演算ユ
ニットなど)、(2)後続命令をストールさせる、とい
った方策が採られている。
【0005】以降に、従来のデータ処理装置について、
ブロック図(図5)と、2つの演算結果を汎用レジスタ
へ書き込む時にコンフリクトが起きた例を示すパイプラ
イン図(図6)とを用いて説明し、また、その回避策に
ついて、上記(2)の方法を用いてコンフリクトを回避
した例を示すパイブライン図(図7)を用いて説明す
る。
ブロック図(図5)と、2つの演算結果を汎用レジスタ
へ書き込む時にコンフリクトが起きた例を示すパイプラ
イン図(図6)とを用いて説明し、また、その回避策に
ついて、上記(2)の方法を用いてコンフリクトを回避
した例を示すパイブライン図(図7)を用いて説明す
る。
【0006】図5に示す従来のデータ処理装置では、演
算を行なう演算器としてMAC用演算器101とDIV
用演算器102の2種類の演算器と、さらにこれら演算
器101,102によって得られた演算結果を書き込む
ための1種類の汎用レジスタ103とを備えている。な
お、図中では、動作を見やすくするため、書き込み用の
汎用レジスタ103と読み込み用の汎用レジスタ103
とに書き分けているが、実際の汎用レジスタ103は1
種類である。
算を行なう演算器としてMAC用演算器101とDIV
用演算器102の2種類の演算器と、さらにこれら演算
器101,102によって得られた演算結果を書き込む
ための1種類の汎用レジスタ103とを備えている。な
お、図中では、動作を見やすくするため、書き込み用の
汎用レジスタ103と読み込み用の汎用レジスタ103
とに書き分けているが、実際の汎用レジスタ103は1
種類である。
【0007】命令シーケンス104(命令内容について
は後述する)よりデコーダ105へ命令が送られると、
デコーダ105では、汎用レジスタ103に対し、演算
データを演算器101または102へ出力するためのア
ドレスを指定し、さらに演算命令がMAC用演算器10
1とDIV用演算器102のどちらで実行されるものか
を判断し、演算を実行する側の演算器へ各サイクル毎に
ラッチ回路106を経て、各演算実行ステージ(20
1,202,203まはた204,205)へ演算開始
命令を発行する。
は後述する)よりデコーダ105へ命令が送られると、
デコーダ105では、汎用レジスタ103に対し、演算
データを演算器101または102へ出力するためのア
ドレスを指定し、さらに演算命令がMAC用演算器10
1とDIV用演算器102のどちらで実行されるものか
を判断し、演算を実行する側の演算器へ各サイクル毎に
ラッチ回路106を経て、各演算実行ステージ(20
1,202,203まはた204,205)へ演算開始
命令を発行する。
【0008】次に、演算開始命令が発行されると、汎用
レジスタ103の出力ポート103Aより、演算データ
が演算器101または102へ入力され、各ステージ毎
(201,202,203または204,205)に所
定の演算処理が行なわれる。MAC用演算器101で
は、データが入力されてから3サイクル目で演算が終了
し、その後、4サイクル目で演算結果書き込み用のセレ
クタ107を経由し、汎用レジスタ103へ演算結果の
書き込みが行なわれる。一方、DIV用演算器102で
はデータが入力されてから6サイクル目で演算が終了
し、7サイクル目でMAC演算器101と共通のセレク
タ107を経由し、汎用レジスタ103へ演算結果の書
き込みが行なわれる。
レジスタ103の出力ポート103Aより、演算データ
が演算器101または102へ入力され、各ステージ毎
(201,202,203または204,205)に所
定の演算処理が行なわれる。MAC用演算器101で
は、データが入力されてから3サイクル目で演算が終了
し、その後、4サイクル目で演算結果書き込み用のセレ
クタ107を経由し、汎用レジスタ103へ演算結果の
書き込みが行なわれる。一方、DIV用演算器102で
はデータが入力されてから6サイクル目で演算が終了
し、7サイクル目でMAC演算器101と共通のセレク
タ107を経由し、汎用レジスタ103へ演算結果の書
き込みが行なわれる。
【0009】前記命令シーケンスとしては、「MAC−
a」、「MAC−b」、「DIV−a」、「MAC−
c」、「MAC−d」、「MAC−e」、「MAC−
f」、「DIV−b」,「MAC−g」、「MAC−
h」、「MAC−i」の順で構成されている。ここで、
「MAC−a」,「MAC−b」,…,「MAC−i」
は、全て共通の命令であり、MAC用演算器101にて
演算を実行し汎用レジスタ103へ書き込む命令であ
る。また、「DIV−a」,「DIV−b」は、共通の
命令であり、DIV用演算器102にて演算を実行し汎
用レジスタ103へ書き込む命令である。
a」、「MAC−b」、「DIV−a」、「MAC−
c」、「MAC−d」、「MAC−e」、「MAC−
f」、「DIV−b」,「MAC−g」、「MAC−
h」、「MAC−i」の順で構成されている。ここで、
「MAC−a」,「MAC−b」,…,「MAC−i」
は、全て共通の命令であり、MAC用演算器101にて
演算を実行し汎用レジスタ103へ書き込む命令であ
る。また、「DIV−a」,「DIV−b」は、共通の
命令であり、DIV用演算器102にて演算を実行し汎
用レジスタ103へ書き込む命令である。
【0010】図6のパイプライン図を用いて、図5の従
来装置において問題箇所となる演算結果の書き込み時の
コンフリクトについて述べる。
来装置において問題箇所となる演算結果の書き込み時の
コンフリクトについて述べる。
【0011】図6中において、コンフリクトが起きてい
る部分を[401]及び[402]で示している。先に
述べたように、MAC用演算器101での演算にかかる
時間は3サイクルであり、DIV用演算器102での演
算にかかる時間は6サイクルである。両演算器101,
102は共に、実行ステージ(ステージE1(20
1),ステージE2(202),ステージE3(20
3)、ステージE1(204),ステージE2(20
5))が異なる場合には、パイプライン処理による演算
命令の連続実行が可能である。
る部分を[401]及び[402]で示している。先に
述べたように、MAC用演算器101での演算にかかる
時間は3サイクルであり、DIV用演算器102での演
算にかかる時間は6サイクルである。両演算器101,
102は共に、実行ステージ(ステージE1(20
1),ステージE2(202),ステージE3(20
3)、ステージE1(204),ステージE2(20
5))が異なる場合には、パイプライン処理による演算
命令の連続実行が可能である。
【0012】従って、図6では#4から#7(期間T1
1)のようにMAC演算命令は順次発行され、演算処理
が実行できている。ところが、図5に示す装置のように
演算処理時間の違う2種類の演算器101,102によ
って演算を実行し、かつ演算結果を書き込む汎用レジス
タ103が共通のものであった場合は、図6中の[40
1],[402]のように、1つ前のサイクル([40
1]場合は#9)で同時に演算が終了したとき、次のサ
イクル([401]場合は#10)で同時に書き込もう
とするため(矢印403,404)、書き込み時にコン
フリクトが起きてしまう。
1)のようにMAC演算命令は順次発行され、演算処理
が実行できている。ところが、図5に示す装置のように
演算処理時間の違う2種類の演算器101,102によ
って演算を実行し、かつ演算結果を書き込む汎用レジス
タ103が共通のものであった場合は、図6中の[40
1],[402]のように、1つ前のサイクル([40
1]場合は#9)で同時に演算が終了したとき、次のサ
イクル([401]場合は#10)で同時に書き込もう
とするため(矢印403,404)、書き込み時にコン
フリクトが起きてしまう。
【0013】そこで、図6に示す[401],[40
2]のようなコンフリクトが起きないように、前述のコ
ンフリクト回避方法(2)を用いた従来例について図7
を用いて説明する。
2]のようなコンフリクトが起きないように、前述のコ
ンフリクト回避方法(2)を用いた従来例について図7
を用いて説明する。
【0014】2つの演算結果の書き込みステージが同じ
タイミングにならないようにするために、どちらか一方
(ここではMAC用演算器101の命令「MAC−e」
(501)の実行開始のタイミングを1サイクル(図7
中の#7の502)ずらすことにより、MAC用演算器
101の実行ステージは全段1サイクルずつ空き(点線
矢印504)、#10のライトバックステージ(50
3)に1サイクル分の空きができる。
タイミングにならないようにするために、どちらか一方
(ここではMAC用演算器101の命令「MAC−e」
(501)の実行開始のタイミングを1サイクル(図7
中の#7の502)ずらすことにより、MAC用演算器
101の実行ステージは全段1サイクルずつ空き(点線
矢印504)、#10のライトバックステージ(50
3)に1サイクル分の空きができる。
【0015】従って、その空白となったライトバックス
テージ(503)を利用し、「DIV−a」の演算結果
を書き戻すことができ、コンフリクトは回避される。図
6の[402]のコンフリクトについても同様の対策に
より回避できる(図7の505,506)。
テージ(503)を利用し、「DIV−a」の演算結果
を書き戻すことができ、コンフリクトは回避される。図
6の[402]のコンフリクトについても同様の対策に
より回避できる(図7の505,506)。
【0016】
【発明が解決しようとする課題】しかしながら、上記従
来のデータ処理装置のコンフリクト回避方法では、次の
ような問題点があった。
来のデータ処理装置のコンフリクト回避方法では、次の
ような問題点があった。
【0017】前述したように、従来のデータ処理装置の
コンフリクト回避方法としては、(1)書き込みポート
を複数にする、(2)後続命令をストールさせる、とい
った方策が採られている。しかし、書き込みポートを複
数にする方法(1)では、単にポート数が増えるだけで
なく、書き込み制御なども複雑になる。また、後続命令
をストールさせる方法(2)では、演算結果を書き込む
ために1サイクル以上、命令実行を遅らせることにな
り、演算処理の動作時間が遅くなるだけでなく、データ
処理装置全体の性能も低下させてしまうことになる。
コンフリクト回避方法としては、(1)書き込みポート
を複数にする、(2)後続命令をストールさせる、とい
った方策が採られている。しかし、書き込みポートを複
数にする方法(1)では、単にポート数が増えるだけで
なく、書き込み制御なども複雑になる。また、後続命令
をストールさせる方法(2)では、演算結果を書き込む
ために1サイクル以上、命令実行を遅らせることにな
り、演算処理の動作時間が遅くなるだけでなく、データ
処理装置全体の性能も低下させてしまうことになる。
【0018】本発明は、上述の如き従来の問題点を解決
するためになされたもので、その目的は、書き込み制御
を複雑としないで書き込みのコンフリクトを回避するこ
とができるデータ処理装置を提供することである。その
他の目的は、ストールを持たせずに書き込みのコンフリ
クトを回避し、演算処理を迅速に行うことができるデー
タ処理装置を提供することである。さらにその他の目的
は、書き込み制御を複雑としないで且つストールを持た
せずに書き込みのコンフリクトを回避し、演算処理を迅
速に行うことができるデータ処理装置を提供することで
ある。
するためになされたもので、その目的は、書き込み制御
を複雑としないで書き込みのコンフリクトを回避するこ
とができるデータ処理装置を提供することである。その
他の目的は、ストールを持たせずに書き込みのコンフリ
クトを回避し、演算処理を迅速に行うことができるデー
タ処理装置を提供することである。さらにその他の目的
は、書き込み制御を複雑としないで且つストールを持た
せずに書き込みのコンフリクトを回避し、演算処理を迅
速に行うことができるデータ処理装置を提供することで
ある。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、第1の発明の特徴は、演算結果を格納する汎用レジ
スタ部と、前記汎用レジスタ部より読み出されたデータ
を用いて所定の演算を行い、その演算結果を前記汎用レ
ジスタ部へ出力する演算部とを備え、前記演算部では新
たな演算を実行すると共に、前記演算部において行われ
た1つ前の演算実行の演算結果を前記汎用レジスタへ書
き込むことにある。
に、第1の発明の特徴は、演算結果を格納する汎用レジ
スタ部と、前記汎用レジスタ部より読み出されたデータ
を用いて所定の演算を行い、その演算結果を前記汎用レ
ジスタ部へ出力する演算部とを備え、前記演算部では新
たな演算を実行すると共に、前記演算部において行われ
た1つ前の演算実行の演算結果を前記汎用レジスタへ書
き込むことにある。
【0020】この第1の発明によれば、演算部では新た
な演算を実行すると共に、該演算部において行われた1
つ前の演算実行の演算結果は前記汎用レジスタへ書き込
まれる。
な演算を実行すると共に、該演算部において行われた1
つ前の演算実行の演算結果は前記汎用レジスタへ書き込
まれる。
【0021】第2の発明の特徴は、演算結果を格納する
汎用レジスタ部と、前記汎用レジスタ部より読み出され
たデータを用いて所定の演算を行い出力する演算部と、
前記演算部より出力された演算結果を保存し、次の演算
が終了するまで保存する一時保存レジスタとを備え、前
記演算部では新たな演算を実行すると共に、前記一時保
存レジスタに書き込まれている演算結果を前記汎用レジ
スタへ書き込むことにある。
汎用レジスタ部と、前記汎用レジスタ部より読み出され
たデータを用いて所定の演算を行い出力する演算部と、
前記演算部より出力された演算結果を保存し、次の演算
が終了するまで保存する一時保存レジスタとを備え、前
記演算部では新たな演算を実行すると共に、前記一時保
存レジスタに書き込まれている演算結果を前記汎用レジ
スタへ書き込むことにある。
【0022】この第2の発明によれば、演算部では新た
な演算を実行すると共に、一時保存レジスタに書き込ま
れている演算結果は汎用レジスタへ書き込まれる。
な演算を実行すると共に、一時保存レジスタに書き込ま
れている演算結果は汎用レジスタへ書き込まれる。
【0023】第3の発明の特徴は、演算結果を格納する
汎用レジスタ部と、前記汎用レジスタ部より読み出され
たデータを用いて所定の演算を行い、その演算結果を前
記汎用レジスタ部へ所定のサイクル後出力する第1の演
算部と、前記汎用レジスタ部より読み出されたデータを
用いて所定の演算を行い、その演算結果を前記第1の演
算部より長いサイクル後出力する第2の演算部と、前記
第2の演算部より出力された演算結果を次の演算が終了
するまで保存する一時保存レジスタとを備えたことにあ
る。
汎用レジスタ部と、前記汎用レジスタ部より読み出され
たデータを用いて所定の演算を行い、その演算結果を前
記汎用レジスタ部へ所定のサイクル後出力する第1の演
算部と、前記汎用レジスタ部より読み出されたデータを
用いて所定の演算を行い、その演算結果を前記第1の演
算部より長いサイクル後出力する第2の演算部と、前記
第2の演算部より出力された演算結果を次の演算が終了
するまで保存する一時保存レジスタとを備えたことにあ
る。
【0024】この第3の発明によれば、第1の演算部
は、その演算結果を汎用レジスタ部へ所定のサイクル後
出力し、第2の演算部は、その演算結果を第1の演算部
より長いサイクル後一時保存レジスタへ出力する。一時
保存レジスタは、第2の演算部より出力された演算結果
を次の演算が終了するまで保存する。
は、その演算結果を汎用レジスタ部へ所定のサイクル後
出力し、第2の演算部は、その演算結果を第1の演算部
より長いサイクル後一時保存レジスタへ出力する。一時
保存レジスタは、第2の演算部より出力された演算結果
を次の演算が終了するまで保存する。
【0025】第4の発明の特徴は、上記第3の発明にお
いて、前記第2の演算部での演算実行開始から、前記一
時保存レジスタに書き込まれている直前の演算結果を前
記汎用レジスタへ書き込むまでのサイクル数を、前記第
1の演算部において演算実行開始からその演算結果を前
記汎用レジスタに書き込むまでのサイクル数と同じにし
たことにある。
いて、前記第2の演算部での演算実行開始から、前記一
時保存レジスタに書き込まれている直前の演算結果を前
記汎用レジスタへ書き込むまでのサイクル数を、前記第
1の演算部において演算実行開始からその演算結果を前
記汎用レジスタに書き込むまでのサイクル数と同じにし
たことにある。
【0026】この第4の発明によれば、第1の演算部と
第2の演算部が同時に実行を開始しない場合に、第1の
演算部及び一時保存レジスタから汎用レジスタへの書き
込み時にコンフリクトが生じない。
第2の演算部が同時に実行を開始しない場合に、第1の
演算部及び一時保存レジスタから汎用レジスタへの書き
込み時にコンフリクトが生じない。
【0027】第5の発明の特徴は、上記第3または第4
の発明において、前記第2の演算部において行われた演
算実行の直前の演算結果は前記一時保存レジスタに書き
込まれており、前記第2の演算部では新たな演算を実行
すると共に、前記一時保存レジスタに書き込まれている
直前の演算結果を前記汎用レジスタへ書き込むことにあ
る。
の発明において、前記第2の演算部において行われた演
算実行の直前の演算結果は前記一時保存レジスタに書き
込まれており、前記第2の演算部では新たな演算を実行
すると共に、前記一時保存レジスタに書き込まれている
直前の演算結果を前記汎用レジスタへ書き込むことにあ
る。
【0028】この第5の発明によれば、第2の演算部で
は新たな演算を実行すると共に、一時保存レジスタに書
き込まれた第2の演算部による直前の演算結果を汎用レ
ジスタへ書き込む。
は新たな演算を実行すると共に、一時保存レジスタに書
き込まれた第2の演算部による直前の演算結果を汎用レ
ジスタへ書き込む。
【0029】第6の発明の特徴は、上記第3乃至第5の
発明において、前記第2の演算部は、除算と開平の両方
であるか、もしくは除算のみ、または開平のみを行うこ
とにある。
発明において、前記第2の演算部は、除算と開平の両方
であるか、もしくは除算のみ、または開平のみを行うこ
とにある。
【0030】この第6の発明によれば、第2の演算部の
演算時間が非常に長くなる。
演算時間が非常に長くなる。
【0031】第7の発明の特徴は、演算結果を格納する
汎用レジスタ部と、前記汎用レジスタ部より読み出され
たデータを用いて所定の演算を行い、その演算結果を前
記汎用レジスタ部へ所定のサイクル後出力する第1の演
算部と、前記汎用レジスタ部より読み出されたデータを
用いて所定の演算を行い、その演算結果を前記汎用レジ
スタ部へ所定のサイクル後出力する第2の演算部と、前
記汎用レジスタ部より読み出されたデータを用いて所定
の演算を行い、その演算結果を前記汎用レジスタ部へ所
定のサイクル後出力する第3の演算部と、前記第2の演
算部より出力された演算結果を保存し、次の演算が終了
するまで保存する第1の一時保存レジスタと、前記第3
の演算部より出力された演算結果を保存し、次の演算が
終了するまで保存する第2の一時保存レジスタとを備
え、前記第2及び第3の演算部でのデータ処理は前記第
1及び第2の一時保存レジスタのうちの任意のレジスタ
からの演算結果を前記汎用レジスタへ書き込むと共に、
前記汎用レジスタよりデータを読み出し前記第1、第2
及び第3の演算部うちの任意の演算部において所定の演
算を実行することにある。
汎用レジスタ部と、前記汎用レジスタ部より読み出され
たデータを用いて所定の演算を行い、その演算結果を前
記汎用レジスタ部へ所定のサイクル後出力する第1の演
算部と、前記汎用レジスタ部より読み出されたデータを
用いて所定の演算を行い、その演算結果を前記汎用レジ
スタ部へ所定のサイクル後出力する第2の演算部と、前
記汎用レジスタ部より読み出されたデータを用いて所定
の演算を行い、その演算結果を前記汎用レジスタ部へ所
定のサイクル後出力する第3の演算部と、前記第2の演
算部より出力された演算結果を保存し、次の演算が終了
するまで保存する第1の一時保存レジスタと、前記第3
の演算部より出力された演算結果を保存し、次の演算が
終了するまで保存する第2の一時保存レジスタとを備
え、前記第2及び第3の演算部でのデータ処理は前記第
1及び第2の一時保存レジスタのうちの任意のレジスタ
からの演算結果を前記汎用レジスタへ書き込むと共に、
前記汎用レジスタよりデータを読み出し前記第1、第2
及び第3の演算部うちの任意の演算部において所定の演
算を実行することにある。
【0032】この第7の発明によれば、演算部が3個以
上ある場合にも的確に対応することことができる。
上ある場合にも的確に対応することことができる。
【0033】第8の発明の特徴は、演算データを格納す
る汎用レジスタ部と、前記汎用レジスタより読み出され
たデータを用い演算命令に従って所定の演算を行い、そ
の演算結果を前記演算データとして前記汎用レジスタ部
へ所定のサイクルで出力する第1の演算部と、前記汎用
レジスタより読み出されたデータを用い演算命令に従っ
て所定の演算を行い、その演算結果を前記演算データと
して前記汎用レジスタ部へ前記第1の演算部より長いサ
イクルで出力する第2の演算部とを有し、前記第1と第
2の演算部の演算実行開始サイクルが異なるデータ処理
装置において、前記第2の演算部の演算結果を一時保存
するための一時保存レジスタを設け、前記第1の演算部
の前記汎用レジスタに対する書き込みタイミングと同一
タイミングで、前記一時保存レジスタ中のデータを前記
汎用レジスタに書き込むことにある。
る汎用レジスタ部と、前記汎用レジスタより読み出され
たデータを用い演算命令に従って所定の演算を行い、そ
の演算結果を前記演算データとして前記汎用レジスタ部
へ所定のサイクルで出力する第1の演算部と、前記汎用
レジスタより読み出されたデータを用い演算命令に従っ
て所定の演算を行い、その演算結果を前記演算データと
して前記汎用レジスタ部へ前記第1の演算部より長いサ
イクルで出力する第2の演算部とを有し、前記第1と第
2の演算部の演算実行開始サイクルが異なるデータ処理
装置において、前記第2の演算部の演算結果を一時保存
するための一時保存レジスタを設け、前記第1の演算部
の前記汎用レジスタに対する書き込みタイミングと同一
タイミングで、前記一時保存レジスタ中のデータを前記
汎用レジスタに書き込むことにある。
【0034】この第8の発明によれば、第1の演算部に
おいて演算を実行する命令(第1の命令)と第2の演算
部において演算を実行する命令(第1の命令と演算時間
が異なる第2の命令)との書き込みタイミングを同じサ
イクルに合わせることができる。従って、第1と第2の
演算部の書き込みのコンフリクトは発生しなくなり、し
かも従来のような余計なストールが不要となる。
おいて演算を実行する命令(第1の命令)と第2の演算
部において演算を実行する命令(第1の命令と演算時間
が異なる第2の命令)との書き込みタイミングを同じサ
イクルに合わせることができる。従って、第1と第2の
演算部の書き込みのコンフリクトは発生しなくなり、し
かも従来のような余計なストールが不要となる。
【0035】第9の発明の特徴は、上記第8の発明にお
いて、前記一時保存レジスタに書き込まれる前記第2の
演算部の演算結果は、該第2の演算部に対する1つ前の
演算命令の実行によって得られたデータであり、前記第
2の演算部に対する演算命令の発行に基づいて生成され
る空白サイクルで前記一時保存レジスタ中のデータを前
記汎用レジスタに書き込むと共に、前記第2の演算部の
次の演算を開始することにある。
いて、前記一時保存レジスタに書き込まれる前記第2の
演算部の演算結果は、該第2の演算部に対する1つ前の
演算命令の実行によって得られたデータであり、前記第
2の演算部に対する演算命令の発行に基づいて生成され
る空白サイクルで前記一時保存レジスタ中のデータを前
記汎用レジスタに書き込むと共に、前記第2の演算部の
次の演算を開始することにある。
【0036】この第9の発明によれば、例えば、演算実
行から汎用レジスタへ書き込むまでを1命令で行ってい
た命令を、演算実行用の命令と、汎用レジスタへの書き
込み用の命令との2つに分け、さらにこの2つの命令を
組み合わせて1つの命令を構成し、この命令を実行する
ことにより、一時保存レジスタ中の第2の演算部の既存
の演算結果を空白サイクルで汎用レジスタに書き込むと
共に、第2の演算部の次の演算を開始する。
行から汎用レジスタへ書き込むまでを1命令で行ってい
た命令を、演算実行用の命令と、汎用レジスタへの書き
込み用の命令との2つに分け、さらにこの2つの命令を
組み合わせて1つの命令を構成し、この命令を実行する
ことにより、一時保存レジスタ中の第2の演算部の既存
の演算結果を空白サイクルで汎用レジスタに書き込むと
共に、第2の演算部の次の演算を開始する。
【0037】
【発明の実施の形態】以下、本発明の実施形態を図面に
基づいて説明する。図1は、本発明の第1実施形態に係
るデータ処理装置の構成を示すブロック図である。
基づいて説明する。図1は、本発明の第1実施形態に係
るデータ処理装置の構成を示すブロック図である。
【0038】本実施形態のデータ処理装置は、命令(命
令内容については後述する)を出力する命令シーケンス
1を有し、その出力側には、命令シーケンス1からの命
令を解読して各種制御信号S1を出力するデコーダ2が
接続されている。デコーダ2の出力側には、演算データ
を格納する1種類の汎用レジスタ3が接続されると共
に、各サイクル毎に設けられた複数のラッチ回路(L)
4が接続されている。なお、図中では、動作を見やすく
するため、書き込み用の汎用レジスタ3と読み込み用の
汎用レジスタ3とに書き分けているが、実際の汎用レジ
スタ3は1種類である。
令内容については後述する)を出力する命令シーケンス
1を有し、その出力側には、命令シーケンス1からの命
令を解読して各種制御信号S1を出力するデコーダ2が
接続されている。デコーダ2の出力側には、演算データ
を格納する1種類の汎用レジスタ3が接続されると共
に、各サイクル毎に設けられた複数のラッチ回路(L)
4が接続されている。なお、図中では、動作を見やすく
するため、書き込み用の汎用レジスタ3と読み込み用の
汎用レジスタ3とに書き分けているが、実際の汎用レジ
スタ3は1種類である。
【0039】また、汎用レジスタ3の出力ポート3Aに
は、MAC用演算器5(第1の演算部)とDIV用演算
器6(第2の演算部)の2種類の演算器が接続されてい
る。MAC用演算器5は、汎用レジスタ3より読み出さ
れたデータを用いステージE1(5a)、ステージE2
(5b)及びステージE3(5c)の順で(各1サイク
ル)所定の演算を行い、その演算結果を3サイクルでセ
レクタ7の一方側に出力する。一方、DIV用演算器6
は、汎用レジスタ3より読み出されたデータを用い、ス
テージE1(6a:5サイクル)及びステージE2(6
b:1サイクル)の順で除算等を行い、その演算結果を
6サイクルで一時保存レジスタ(QUO)8へ出力す
る。そして、一時保存レジスタ8の出力側には、セレク
タ7の他方入力側が接続され、セレクタ7の出力側が前
記汎用レジスタ3に接続されている。
は、MAC用演算器5(第1の演算部)とDIV用演算
器6(第2の演算部)の2種類の演算器が接続されてい
る。MAC用演算器5は、汎用レジスタ3より読み出さ
れたデータを用いステージE1(5a)、ステージE2
(5b)及びステージE3(5c)の順で(各1サイク
ル)所定の演算を行い、その演算結果を3サイクルでセ
レクタ7の一方側に出力する。一方、DIV用演算器6
は、汎用レジスタ3より読み出されたデータを用い、ス
テージE1(6a:5サイクル)及びステージE2(6
b:1サイクル)の順で除算等を行い、その演算結果を
6サイクルで一時保存レジスタ(QUO)8へ出力す
る。そして、一時保存レジスタ8の出力側には、セレク
タ7の他方入力側が接続され、セレクタ7の出力側が前
記汎用レジスタ3に接続されている。
【0040】ここで、一時保存レジスタ8は、本発明の
特徴の一部を成し、前記DIV用演算器6の演算結果を
一時保存するためのレジスタであり、ラッチ回路4から
の制御信号S2により動作が制御され、次のD1V演算
が実行されて演算結果が上書きされるまで前の演算結果
を保存することができる。後に詳述するようにMAC用
演算器5の汎用レジスタ3に対する書き込みタイミング
と同一タイミングで、一時保存レジスタ8中のデータが
汎用レジスタ3に書き込まれるようになっている。
特徴の一部を成し、前記DIV用演算器6の演算結果を
一時保存するためのレジスタであり、ラッチ回路4から
の制御信号S2により動作が制御され、次のD1V演算
が実行されて演算結果が上書きされるまで前の演算結果
を保存することができる。後に詳述するようにMAC用
演算器5の汎用レジスタ3に対する書き込みタイミング
と同一タイミングで、一時保存レジスタ8中のデータが
汎用レジスタ3に書き込まれるようになっている。
【0041】また、命令シーケンス1の内容としては、
「MAC−a」、「MAC−b」、「DIV−a」、
「MAC−c」、「MAC−d」、「MAC−e」、
「MAC−f」、「DIV−b」,「MAC−g」、
「MAC−h」、「MAC−i」、「DIV−c」の順
で構成されている。ここで、「MAC−a」,「MAC
−b」,…,「MAC−i」は、全て共通の命令であ
り、MAC用演算器5にて演算を実行し汎用レジスタ3
へ書き込む命令である。また、「DIV−a」はDIV
用演算器6を用いて演算を実行する命令であり、「DI
V−b」は一時保存レジスタ8に保存された演算結果を
汎用レジスタ3へ書き込むと共に、次のDIV演算を開
始する命令である。さらに、「DIV−c」は一時保存
レジスタ8に保存された演算結果を汎用レジスタ3へ書
き込むだけの命令である。
「MAC−a」、「MAC−b」、「DIV−a」、
「MAC−c」、「MAC−d」、「MAC−e」、
「MAC−f」、「DIV−b」,「MAC−g」、
「MAC−h」、「MAC−i」、「DIV−c」の順
で構成されている。ここで、「MAC−a」,「MAC
−b」,…,「MAC−i」は、全て共通の命令であ
り、MAC用演算器5にて演算を実行し汎用レジスタ3
へ書き込む命令である。また、「DIV−a」はDIV
用演算器6を用いて演算を実行する命令であり、「DI
V−b」は一時保存レジスタ8に保存された演算結果を
汎用レジスタ3へ書き込むと共に、次のDIV演算を開
始する命令である。さらに、「DIV−c」は一時保存
レジスタ8に保存された演算結果を汎用レジスタ3へ書
き込むだけの命令である。
【0042】上記命令シーケンス1中の「DIV−b」
が本発明の特徴を成す演算命令であるが、この命令を実
行するに際し、DIV演算器6側の演算結果を一時的に
保存する前記一時保存レジスタ8が必要となり、該一時
保存レジスタ8を制御するための制御信号S2が必要と
なる。
が本発明の特徴を成す演算命令であるが、この命令を実
行するに際し、DIV演算器6側の演算結果を一時的に
保存する前記一時保存レジスタ8が必要となり、該一時
保存レジスタ8を制御するための制御信号S2が必要と
なる。
【0043】次に、以上のように構成されるデータ処理
装置の動作を説明する。
装置の動作を説明する。
【0044】命令シーケンス1よりデコーダ2へ命令が
送られると、デコーダ2では、汎用レジスタ3に対し、
演算データを演算器へ出力するためのアドレスを指定
し、さらに演算命令がMAC用演算器5とDIV用演算
器6のどちらで実行されるものかを判断し、演算を実行
する側の演算器へ各サイクル毎にラッチ回路4を経て、
各演算実行ステージ(5a,5b,5cまたは6a,6
b)へ演算開始命令を発行する。
送られると、デコーダ2では、汎用レジスタ3に対し、
演算データを演算器へ出力するためのアドレスを指定
し、さらに演算命令がMAC用演算器5とDIV用演算
器6のどちらで実行されるものかを判断し、演算を実行
する側の演算器へ各サイクル毎にラッチ回路4を経て、
各演算実行ステージ(5a,5b,5cまたは6a,6
b)へ演算開始命令を発行する。
【0045】そして、演算開始命令が発行されると、汎
用レジスタ3の出力ポート3Aより、演算データが演算
器へ入力され、各ステージ毎(5a,5b,5cまたは
6a,6b)に所定の演算処理が行なわれる。MAC用
演算器5では、データが入力されてから3サイクル目で
演算が終了し、その後、4サイクル目で演算結果書き込
み用のセレクタ7を経由し、汎用レジスタ3へ演算結果
の書き込みが行なわれる。
用レジスタ3の出力ポート3Aより、演算データが演算
器へ入力され、各ステージ毎(5a,5b,5cまたは
6a,6b)に所定の演算処理が行なわれる。MAC用
演算器5では、データが入力されてから3サイクル目で
演算が終了し、その後、4サイクル目で演算結果書き込
み用のセレクタ7を経由し、汎用レジスタ3へ演算結果
の書き込みが行なわれる。
【0046】一方、DIV用演算器6ではデータが入力
されてから6サイクル目で演算が終了し、7サイクル目
でDIV演算器6の演算結果を一時保存レジスタ8に書
き込む。この一時保存レジスタ8に書き込まれた演算結
果は、次のDIV演算命令が発行された時に、MAC用
演算器5を実行した時と同じ汎用レジスタ3への書き込
みタイミングで、セレクタ7を経由して汎用レジスタ3
へ書き込まれる。なお、演算命令は、演算器が違うもの
に対して2つ以上同時に発行されないものである。
されてから6サイクル目で演算が終了し、7サイクル目
でDIV演算器6の演算結果を一時保存レジスタ8に書
き込む。この一時保存レジスタ8に書き込まれた演算結
果は、次のDIV演算命令が発行された時に、MAC用
演算器5を実行した時と同じ汎用レジスタ3への書き込
みタイミングで、セレクタ7を経由して汎用レジスタ3
へ書き込まれる。なお、演算命令は、演算器が違うもの
に対して2つ以上同時に発行されないものである。
【0047】図2は、図1に示す装置の命令実行のパイ
プラインを示す図である。
プラインを示す図である。
【0048】デコーダ2で「MAC−a」,「MAC−
b」が順次発行されると(サイクル#1,#2)、MA
C用演算器5において、ステージE1(5a)、ステー
ジE2(5b)、ステージE2(5c)の順で3サイク
ルの演算が行なわれる。その演算結果は、セレクタ7を
経て、演算開始から4サイクル目(#5)に汎用レジス
タ3へ書き込まれる(ライトバックステージ11)。こ
の演算命令はパイプライン化されており、これを図2の
パイプラインで表わすと、#1から#6のサイクル期間
T1で示すように実行される。
b」が順次発行されると(サイクル#1,#2)、MA
C用演算器5において、ステージE1(5a)、ステー
ジE2(5b)、ステージE2(5c)の順で3サイク
ルの演算が行なわれる。その演算結果は、セレクタ7を
経て、演算開始から4サイクル目(#5)に汎用レジス
タ3へ書き込まれる(ライトバックステージ11)。こ
の演算命令はパイプライン化されており、これを図2の
パイプラインで表わすと、#1から#6のサイクル期間
T1で示すように実行される。
【0049】一方、DIV演算は、デコーダ2に「DI
V−a」命令(13)が入力されると、この「DIV−
a」命令は、DIV演算器6のステージE1(6a)に
おいて演算を実行する(12)。なお、このときは「D
IV−a」以前にDIV演算が行なわれていないため、
一時保存レジスタ8から汎用レジスタ3への演算結果書
き込み命令は不要である。また、DIV演算命令(1
3)が発行されると、MAC用演算器5では各ステージ
E1〜E3に1サイクル分の演算動作が行なわれない空
白(14)が生じ、その結果、ライトバックのステージ
についても1サイクルの空白(15)が生ずる。
V−a」命令(13)が入力されると、この「DIV−
a」命令は、DIV演算器6のステージE1(6a)に
おいて演算を実行する(12)。なお、このときは「D
IV−a」以前にDIV演算が行なわれていないため、
一時保存レジスタ8から汎用レジスタ3への演算結果書
き込み命令は不要である。また、DIV演算命令(1
3)が発行されると、MAC用演算器5では各ステージ
E1〜E3に1サイクル分の演算動作が行なわれない空
白(14)が生じ、その結果、ライトバックのステージ
についても1サイクルの空白(15)が生ずる。
【0050】DIV用演算器6のステージE1(6a)
での演算実行時間T2は5サイクルであり、続いてステ
ージE2(6b)へ実行ステージが移る(16)。すな
わち、デコード2に「DIV−b」が発行されると(#
8)、次のサイクル(#9)で「DIV−a」がステー
ジE2(6b)へ移り(16)、演算が終了すると、一
時保存レジスタ8への書き込みが行なわれ、その結果は
次の演算結果が書き込まれるまで保存される(17)。
での演算実行時間T2は5サイクルであり、続いてステ
ージE2(6b)へ実行ステージが移る(16)。すな
わち、デコード2に「DIV−b」が発行されると(#
8)、次のサイクル(#9)で「DIV−a」がステー
ジE2(6b)へ移り(16)、演算が終了すると、一
時保存レジスタ8への書き込みが行なわれ、その結果は
次の演算結果が書き込まれるまで保存される(17)。
【0051】次の「DIV−b」は、「DIV−a」の
演算ステージがステージE2(6b)へ移ると実行開始
可能となり、従って、「DIV−b」の実行については
「DIV−a」との空白なしに演算が開始できる(1
8)。また、「DIV−b」命令(19)は、「DIV
−a」(13)の演算結果を一時保存レジスタ8より汎
用レジスタ3へ書き込む(20)と共に(実際に汎用レ
ジスタ3へ書き込まれるのは命令開始後4サイクル目
(#12))、「DIV−b」の演算を開始する(2
1)ことが可能な命令である。この命令の実行により
「DIV−a」の演算結果を一時保存レジスタ8ヘ一時
的に保存することで、その演算結果をMAC演算と同様
に4サイクル目に汎用レジスタ3に書き込むことができ
る。
演算ステージがステージE2(6b)へ移ると実行開始
可能となり、従って、「DIV−b」の実行については
「DIV−a」との空白なしに演算が開始できる(1
8)。また、「DIV−b」命令(19)は、「DIV
−a」(13)の演算結果を一時保存レジスタ8より汎
用レジスタ3へ書き込む(20)と共に(実際に汎用レ
ジスタ3へ書き込まれるのは命令開始後4サイクル目
(#12))、「DIV−b」の演算を開始する(2
1)ことが可能な命令である。この命令の実行により
「DIV−a」の演算結果を一時保存レジスタ8ヘ一時
的に保存することで、その演算結果をMAC演算と同様
に4サイクル目に汎用レジスタ3に書き込むことができ
る。
【0052】最後に、全てのDIV演算が終了したとこ
ろで、一時保存レジスタ8に格納されている演算結果を
「DIV−c」命令(23)にて汎用レジスタ3へ書き
込み(24)、DIV演算は全て終了となる。
ろで、一時保存レジスタ8に格納されている演算結果を
「DIV−c」命令(23)にて汎用レジスタ3へ書き
込み(24)、DIV演算は全て終了となる。
【0053】このように、本実施形態では、従来ならば
空白のままになっていたライトバックステージ(22)
を利用し、「DIV−a」(13)にて得られ一時保存
レジスタ8に一時保存していた演算結果を、汎用レジス
タ3へ書き込み(22)、同時に次の演算を開始(1
8)できるため、余計なストールなどが必要なくなる。
空白のままになっていたライトバックステージ(22)
を利用し、「DIV−a」(13)にて得られ一時保存
レジスタ8に一時保存していた演算結果を、汎用レジス
タ3へ書き込み(22)、同時に次の演算を開始(1
8)できるため、余計なストールなどが必要なくなる。
【0054】図3は、本発明の実施形態に係るデータ処
理装置の構成を示すブロック図であり、図1と共通する
要素には同一の符号が付されている。
理装置の構成を示すブロック図であり、図1と共通する
要素には同一の符号が付されている。
【0055】本実施形態では、演算実行時間の異なる3
種類の演算器で構成したものである。すなわち、図1に
示すMAC用演算器5及びDIV用演算器6に加え、M
UL用演算器31を備えている。また、これら演算器
5,6,31によって得られた演算結果を書き込むため
の汎用レジスタは、上記第1実施形態と同様に汎用レジ
スタ3の1種類のみである。さらに、DIV演算6及び
MUL用演算器31は、MAC演算器5と実行サイクル
数が異なるので、上記第1実施形態て用いたのと同じよ
うにそれぞれの演算器6,31について制御信号S2で
制御される一時保存レジスタ8,32が設けられてい
る。
種類の演算器で構成したものである。すなわち、図1に
示すMAC用演算器5及びDIV用演算器6に加え、M
UL用演算器31を備えている。また、これら演算器
5,6,31によって得られた演算結果を書き込むため
の汎用レジスタは、上記第1実施形態と同様に汎用レジ
スタ3の1種類のみである。さらに、DIV演算6及び
MUL用演算器31は、MAC演算器5と実行サイクル
数が異なるので、上記第1実施形態て用いたのと同じよ
うにそれぞれの演算器6,31について制御信号S2で
制御される一時保存レジスタ8,32が設けられてい
る。
【0056】次に、本実施形態の動作を説明する。
【0057】命令シーケンス1よりデコーダ2へ命令が
送られると、デコーダ2では、汎用レジスタ3に対し、
演算データを演算器へ出力するためのアドレスを指定
し、さらに演算命令がMAC用演算器5、DIV用演算
器6及びMUL用演算器31のどちらで実行されるもの
かを判断し、演算を実行する演算器へ各サイクル毎にラ
ッチ回路4を経て、各演算実行ステージ(5a,5b,
5c、6a,6b、または31a,31b,31c)へ
演算開始命令を発行する。
送られると、デコーダ2では、汎用レジスタ3に対し、
演算データを演算器へ出力するためのアドレスを指定
し、さらに演算命令がMAC用演算器5、DIV用演算
器6及びMUL用演算器31のどちらで実行されるもの
かを判断し、演算を実行する演算器へ各サイクル毎にラ
ッチ回路4を経て、各演算実行ステージ(5a,5b,
5c、6a,6b、または31a,31b,31c)へ
演算開始命令を発行する。
【0058】そして、演算開始命令が発行されると、汎
用レジスタ3の出力ポート3Aより、演算データが演算
器へ入力され、各ステージ毎(5a,5b,5c、6
a,6bまたは31a,31b,31c)に所定の演算
処理が行なわれる。MAC用演算器5では、データが入
力されてから3サイクル目で演算が終了し、その後、4
サイクル目で演算結果書き込み用のセレクタ7を経由
し、汎用レジスタ3へ演算結果の書き込みが行なわれ
る。
用レジスタ3の出力ポート3Aより、演算データが演算
器へ入力され、各ステージ毎(5a,5b,5c、6
a,6bまたは31a,31b,31c)に所定の演算
処理が行なわれる。MAC用演算器5では、データが入
力されてから3サイクル目で演算が終了し、その後、4
サイクル目で演算結果書き込み用のセレクタ7を経由
し、汎用レジスタ3へ演算結果の書き込みが行なわれ
る。
【0059】一方、DIV用演算器6では、データが入
力されてから6サイクル目で演算が終了し、7サイクル
目でDIV演算器6の演算結果を一時保存レジスタ8に
書き込む。また、MUL用演算器31では、5サイクル
で演算が終了し、その演算結果を6サイクル目に一時保
存レジスタ32に書き込む。
力されてから6サイクル目で演算が終了し、7サイクル
目でDIV演算器6の演算結果を一時保存レジスタ8に
書き込む。また、MUL用演算器31では、5サイクル
で演算が終了し、その演算結果を6サイクル目に一時保
存レジスタ32に書き込む。
【0060】各一時保存レジスタ8,32に書き込まれ
た演算結果は、MAC用演算器において実行された演算
結果を汎用レジスタ3へ書き込むタイミングと同じタイ
ミングで、汎用レジスタ3に書き込まれる。なお、演算
命令は、演算器が違うものに対して2つ以上同時に発行
されないものである。
た演算結果は、MAC用演算器において実行された演算
結果を汎用レジスタ3へ書き込むタイミングと同じタイ
ミングで、汎用レジスタ3に書き込まれる。なお、演算
命令は、演算器が違うものに対して2つ以上同時に発行
されないものである。
【0061】また、本実施形態の命令シーケンス1の内
容としては、「MAC−a」、「MAC−b」、「DI
V−a」、「MAC−c」、「MAC−d」、「MAC
−e」、「MAC−f」、「M/D−a」、「MAC−
g」、「MAC−h」、「MAC−i」、「D/M−
a」の順で構成されている。ここで、「MAC−a」,
「MAC−b」,…,「MAC−i」は、全て共通の命
令であり、MAC用演算器5にて演算を実行し汎用レジ
スタ3へ書き込む命令である。また、「DIV−a」は
DIV用演算器6を用いて演算を実行する命令であり、
「M/D−a」は、DIV用演算器6の一時保存レジス
タ8に保存された演算結果を汎用レジスタ3へ書き込む
と共に、MUL用演算器31の演算を開始する命令であ
る。さらに、「D/M−a」は、MUL用演算器31の
一時保存レジスタ32に保存された演算結果を汎用レジ
スタ3へ書き込むと共に、MUL用演算器31の演算を
開始する命令である。
容としては、「MAC−a」、「MAC−b」、「DI
V−a」、「MAC−c」、「MAC−d」、「MAC
−e」、「MAC−f」、「M/D−a」、「MAC−
g」、「MAC−h」、「MAC−i」、「D/M−
a」の順で構成されている。ここで、「MAC−a」,
「MAC−b」,…,「MAC−i」は、全て共通の命
令であり、MAC用演算器5にて演算を実行し汎用レジ
スタ3へ書き込む命令である。また、「DIV−a」は
DIV用演算器6を用いて演算を実行する命令であり、
「M/D−a」は、DIV用演算器6の一時保存レジス
タ8に保存された演算結果を汎用レジスタ3へ書き込む
と共に、MUL用演算器31の演算を開始する命令であ
る。さらに、「D/M−a」は、MUL用演算器31の
一時保存レジスタ32に保存された演算結果を汎用レジ
スタ3へ書き込むと共に、MUL用演算器31の演算を
開始する命令である。
【0062】図4は、図3に示す装置の命令実行のパイ
プラインを示す図である。
プラインを示す図である。
【0063】デコーダ2で「MAC−a」,「MAC−
b」が順次発行されると(サイクル#1,#2)、MA
C用演算器5において、ステージE1(5a)、ステー
ジE2(5b)、ステージE2(5c)の順で3サイク
ルの演算が行なわれる。その演算結果は、セレクタ7を
経て演算開始から4サイクル目(#5)に汎用レジスタ
3へ書き込まれる(ライトバックステージ41)。この
演算命令はパイプライン化されており、これを図4のパ
イプラインで表わすと、#1から#6のサイクル期間T
5で示すように実行される。
b」が順次発行されると(サイクル#1,#2)、MA
C用演算器5において、ステージE1(5a)、ステー
ジE2(5b)、ステージE2(5c)の順で3サイク
ルの演算が行なわれる。その演算結果は、セレクタ7を
経て演算開始から4サイクル目(#5)に汎用レジスタ
3へ書き込まれる(ライトバックステージ41)。この
演算命令はパイプライン化されており、これを図4のパ
イプラインで表わすと、#1から#6のサイクル期間T
5で示すように実行される。
【0064】一方、DIV演算は、デコーダ2に「DI
V−a」命令(43)が入力されると、この「DIV−
a」命令は、DIV演算器6のステージE1(6a)に
おいて演算を実行する(42)。なお、このときは「D
IV−a」以前にDIV演算が行なわれていないため、
一時保存レジスタ8から汎用レジスタ3への演算結果書
き込み命令は不要となる。また、DIV演算命令(1
3)が発行されると、MAC用演算器5では各ステージ
E1〜E3に1サイクル分の演算動作が行なわれない空
白(44)が生じ、その結果、ライトバックステージに
ついても1サイクルの空白(45)が生ずる。
V−a」命令(43)が入力されると、この「DIV−
a」命令は、DIV演算器6のステージE1(6a)に
おいて演算を実行する(42)。なお、このときは「D
IV−a」以前にDIV演算が行なわれていないため、
一時保存レジスタ8から汎用レジスタ3への演算結果書
き込み命令は不要となる。また、DIV演算命令(1
3)が発行されると、MAC用演算器5では各ステージ
E1〜E3に1サイクル分の演算動作が行なわれない空
白(44)が生じ、その結果、ライトバックステージに
ついても1サイクルの空白(45)が生ずる。
【0065】DIV用演算器6のステージE1(6a)
での演算実行時間T6は5サイクルであり、続いてステ
ージE2(6b)へ実行ステージが移る(46)。その
演算が終了すると、一時保存レジスタ8への書き込みが
行なわれ、その結果は次の演算結果が書き込まれるまで
保存される(47)。
での演算実行時間T6は5サイクルであり、続いてステ
ージE2(6b)へ実行ステージが移る(46)。その
演算が終了すると、一時保存レジスタ8への書き込みが
行なわれ、その結果は次の演算結果が書き込まれるまで
保存される(47)。
【0066】次の「M/D−a」命令(48)では、
「DIV−a」命令(43)の演算結果を一時保存レジ
スタ8より汎用レジスタ3へ書き込むと共に(49,5
1)(実際に汎用レジスタ3へ書き込まれるのは「M/
D−a」命令開始後4サイクル目(#12)、MUL用
演算器31においてMUL演算を開始する(50)。
「DIV−a」命令(43)の演算結果を一時保存レジ
スタ8より汎用レジスタ3へ書き込むと共に(49,5
1)(実際に汎用レジスタ3へ書き込まれるのは「M/
D−a」命令開始後4サイクル目(#12)、MUL用
演算器31においてMUL演算を開始する(50)。
【0067】また、サイクル#11で発行される「D/
M−a」命令(52)は、「MUL−a」の演算結果を
一時保存レジスタ32より汎用レジスタ3へ書き込む
(53)と共に次のDIV演算(54)を開始させるこ
とができる。
M−a」命令(52)は、「MUL−a」の演算結果を
一時保存レジスタ32より汎用レジスタ3へ書き込む
(53)と共に次のDIV演算(54)を開始させるこ
とができる。
【0068】このように、演算実行時間の異なる3種類
の演算器で構成した本実施形態でも、上記第1実施形態
と同様の利点を得ることができるほか、演算を行う上で
のオペランドとして必要なデータ交換が容易となる。
の演算器で構成した本実施形態でも、上記第1実施形態
と同様の利点を得ることができるほか、演算を行う上で
のオペランドとして必要なデータ交換が容易となる。
【0069】
【発明の効果】以上詳細に説明したように、本発明によ
れば、新しい命令方式を用い、演算結果を一時保存レジ
スタに保存することにより、演算時間の異なる複数の命
令の書き込みタイミングを同じサイクルに合わせること
ができる。従って、複数の演算器の書き込みのコンフリ
クトが回避でき、しかも従来のようなストールが必要な
く実行可能となる。これにより、演算に必要な演算実行
サイクル数が減り、装置の性能が向上するという効果が
得られる。
れば、新しい命令方式を用い、演算結果を一時保存レジ
スタに保存することにより、演算時間の異なる複数の命
令の書き込みタイミングを同じサイクルに合わせること
ができる。従って、複数の演算器の書き込みのコンフリ
クトが回避でき、しかも従来のようなストールが必要な
く実行可能となる。これにより、演算に必要な演算実行
サイクル数が減り、装置の性能が向上するという効果が
得られる。
【0070】また、数種類の中の任意の演算器実行と、
各一時保存レジスタの中の任意のレジスタから汎用レジ
スタへの書き込みが可能であるため、演算を行う上での
オペランドとして必要なデータ交換を容易に行うことが
可能となる。
各一時保存レジスタの中の任意のレジスタから汎用レジ
スタへの書き込みが可能であるため、演算を行う上での
オペランドとして必要なデータ交換を容易に行うことが
可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るデータ処理装置の構成
を示すブロック図である。
を示すブロック図である。
【図2】図1に示す装置の命令実行のパイプラインを示
す図である。
す図である。
【図3】本発明の実施形態に係るデータ処理装置の構成
を示すブロック図である。
を示すブロック図である。
【図4】図3に示す装置の命令実行のパイプラインを示
す図である。
す図である。
【図5】従来のデータ処理装置の構成を示すブロック図
である。
である。
【図6】図3に示す装置においてコンフリクトが起きた
例を示すパイプライン図である。
例を示すパイプライン図である。
【図7】従来のコンフリクトを回避した例を示すパイブ
ライン図である。
ライン図である。
1 命令シーケンス 2 デコーダ 3 汎用レジスタ 4 ラッチ回路 5 MAC用演算器 6 DIV用演算器 7 セレクタ 8,32 一時保存レジスタ 31 MUL用演算器 S1,S2 制御信号
フロントページの続き (72)発明者 井出 進博 神奈川県川崎市幸区小向東芝町1 株式会 社東芝研究開発センター内
Claims (9)
- 【請求項1】 演算結果を格納する汎用レジスタ部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を前記汎用レジスタ部へ
出力する演算部とを備え、 前記演算部では新たな演算を実行すると共に、 前記演算部において行われた1つ前の演算実行の演算結
果を前記汎用レジスタへ書き込むことを特徴とするデー
タ処理装置。 - 【請求項2】 演算結果を格納する汎用レジスタ部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い出力する演算部と、 前記演算部より出力された演算結果を保存し、次の演算
が終了するまで保存する一時保存レジスタとを備え、 前記演算部では新たな演算を実行すると共に、 前記一時保存レジスタに書き込まれている演算結果を前
記汎用レジスタへ書き込むことを特徴とするデータ処理
装置。 - 【請求項3】 演算結果を格納する汎用レジスタ部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を前記汎用レジスタ部へ
所定のサイクル後出力する第1の演算部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を前記第1の演算部より
長いサイクル後出力する第2の演算部と、 前記第2の演算部より出力された演算結果を次の演算が
終了するまで保存する一時保存レジスタとを備えたこと
を特徴とするデータ処理装置。 - 【請求項4】 前記第2の演算部での演算実行開始か
ら、前記一時保存レジスタに書き込まれている直前の演
算結果を前記汎用レジスタへ書き込むまでのサイクル数
を、前記第1の演算部において演算実行開始からその演
算結果を前記汎用レジスタに書き込むまでのサイクル数
と同じにしたことを特徴とする請求項3記載のデータ処
理装置。 - 【請求項5】 前記第2の演算部において行われた演算
実行の直前の演算結果は前記一時保存レジスタに書き込
まれており、 前記第2の演算部では新たな演算を実行すると共に、 前記一時保存レジスタに書き込まれている直前の演算結
果を前記汎用レジスタへ書き込むことを特徴とする請求
項3または請求項4記載データ処理装置。 - 【請求項6】 前記第2の演算部は、除算と開平の両方
であるか、もしくは除算のみ、または開平のみを行うこ
とを特徴とする請求項3乃至請求項5記載のデータ処理
装置。 - 【請求項7】 演算結果を格納する汎用レジスタ部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を前記汎用レジスタ部へ
所定のサイクル後出力する第1の演算部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を所定のサイクル後出力
する第2の演算部と、 前記汎用レジスタ部より読み出されたデータを用いて所
定の演算を行い、その演算結果を所定のサイクル後出力
する第3の演算部と、 前記第2の演算部より出力された演算結果を保存し、次
の演算が終了するまで保存する第1の一時保存レジスタ
と、 前記第3の演算部より出力された演算結果を保存し、次
の演算が終了するまで保存する第2の一時保存レジスタ
とを備え、 前記第2及び第3の演算部でのデータ処理は前記第1及
び第2の一時保存レジスタのうちの任意のレジスタから
の演算結果を前記汎用レジスタへ書き込むと共に、 前記汎用レジスタよりデータを読み出し前記第1、第2
及び第3の演算部うちの任意の演算部において所定の演
算を実行することを特徴とするデータ処理装置。 - 【請求項8】 演算データを格納する汎用レジスタ部
と、前記汎用レジスタより読み出されたデータを用い所
定の演算を行い、その演算結果を前記演算データとして
前記汎用レジスタ部へ所定のサイクルで出力する第1の
演算部と、前記汎用レジスタより読み出されたデータを
用い所定の演算を行い、その演算結果を前記演算データ
として前記汎用レジスタ部へ前記第1の演算部より長い
サイクルで出力する第2の演算部とを有し、前記第1と
第2の演算部の演算実行開始サイクルが異なるデータ処
理装置において、 前記第2の演算部の演算結果を一時保存するための一時
保存レジスタを設け、 前記第1の演算部の前記汎用レジスタに対する書き込み
タイミングと同一タイミングで、前記一時保存レジスタ
中のデータを前記汎用レジスタに書き込むことを特徴と
するデータ処理装置。 - 【請求項9】 前記一時保存レジスタに書き込まれる前
記第2の演算部の演算結果は、該第2の演算部に対する
1つ前の演算命令の実行によって得られたデータであ
り、 前記第2の演算部に対する演算命令の発行に基づいて生
成される空白サイクルで前記一時保存レジスタ中のデー
タを前記汎用レジスタに書き込むと共に、前記第2の演
算部の次の演算を開始することを特徴とする請求項8記
載のデータ処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01790796A JP3435278B2 (ja) | 1996-02-02 | 1996-02-02 | データ処理装置 |
| US08/792,733 US5895498A (en) | 1996-02-02 | 1997-01-31 | Arithmetic processor which latches data in a temporary register before the data is latched in a general purpose register |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01790796A JP3435278B2 (ja) | 1996-02-02 | 1996-02-02 | データ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09212360A true JPH09212360A (ja) | 1997-08-15 |
| JP3435278B2 JP3435278B2 (ja) | 2003-08-11 |
Family
ID=11956826
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01790796A Expired - Fee Related JP3435278B2 (ja) | 1996-02-02 | 1996-02-02 | データ処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5895498A (ja) |
| JP (1) | JP3435278B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006048661A (ja) * | 2004-07-06 | 2006-02-16 | Matsushita Electric Ind Co Ltd | プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置 |
| JP2011528817A (ja) * | 2008-03-19 | 2011-11-24 | イマジネイション テクノロジーズ リミテッド | パイプラインプロセッサ |
| US8648934B2 (en) | 2010-08-30 | 2014-02-11 | Fujitsu Semiconductor Limited | Image processing apparatus, image processing method and scheduling apparatus |
| JP2021168189A (ja) * | 2020-07-15 | 2021-10-21 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 命令実行結果をライトバックするための装置及び方法、処理装置 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6092167A (en) * | 1998-03-20 | 2000-07-18 | Lsi Logic Corporation | Robust interface for high speed memory access |
| US20020016597A1 (en) * | 2000-08-02 | 2002-02-07 | Dwyer Clifford J. | Delivery apparatus for a self-expanding stent |
| JP2006228121A (ja) * | 2005-02-21 | 2006-08-31 | Toshiba Corp | 演算処理装置 |
| US10061580B2 (en) * | 2016-02-25 | 2018-08-28 | International Business Machines Corporation | Implementing a received add program counter immediate shift (ADDPCIS) instruction using a micro-coded or cracked sequence |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4124890A (en) * | 1977-06-20 | 1978-11-07 | Vasenkov Alexandr A | Microprocessor computing system |
| JPS58106636A (ja) * | 1981-12-18 | 1983-06-25 | Hitachi Ltd | パイプライン演算装置 |
| US5367691A (en) * | 1991-04-15 | 1994-11-22 | Motorola, Inc. | Pipe-staggered apparatus and method utilizing carry look-ahead signal processing |
| JPH0612229A (ja) * | 1992-06-10 | 1994-01-21 | Nec Corp | 乗累算回路 |
| US5771366A (en) * | 1995-06-09 | 1998-06-23 | International Business Machines Corporation | Method and system for interchanging operands during complex instruction execution in a data processing system |
-
1996
- 1996-02-02 JP JP01790796A patent/JP3435278B2/ja not_active Expired - Fee Related
-
1997
- 1997-01-31 US US08/792,733 patent/US5895498A/en not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006048661A (ja) * | 2004-07-06 | 2006-02-16 | Matsushita Electric Ind Co Ltd | プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置 |
| JP2011528817A (ja) * | 2008-03-19 | 2011-11-24 | イマジネイション テクノロジーズ リミテッド | パイプラインプロセッサ |
| US8648934B2 (en) | 2010-08-30 | 2014-02-11 | Fujitsu Semiconductor Limited | Image processing apparatus, image processing method and scheduling apparatus |
| JP2021168189A (ja) * | 2020-07-15 | 2021-10-21 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 命令実行結果をライトバックするための装置及び方法、処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3435278B2 (ja) | 2003-08-11 |
| US5895498A (en) | 1999-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108845829B (zh) | 一种系统寄存器访问指令的执行方法 | |
| JP2002163127A (ja) | トレース制御回路 | |
| JP3435278B2 (ja) | データ処理装置 | |
| JP3579843B2 (ja) | ディジタル信号処理装置 | |
| JP3756410B2 (ja) | 述語データを提供するシステム | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| JPH05342084A (ja) | データ記憶装置及びデータ記憶方法 | |
| CN101495960A (zh) | 有效的中断返回地址保存机制 | |
| JPH10143365A (ja) | 並列処理装置及びその命令発行方式 | |
| US6016541A (en) | Instruction controlling system and method thereof | |
| JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
| JPS60178580A (ja) | 命令制御方式 | |
| JPH0950376A (ja) | データ処理装置 | |
| JP5185478B2 (ja) | パイプライン処理方法並びにその方法を利用するパイプライン処理装置 | |
| JP2824484B2 (ja) | パイプライン処理計算機 | |
| JP2668987B2 (ja) | データ処理装置 | |
| JP2812610B2 (ja) | パイプライン制御方式 | |
| JP2929980B2 (ja) | 情報処理装置 | |
| JP3211791B2 (ja) | ループ処理方式 | |
| JPH08272608A (ja) | パイプライン処理装置 | |
| JP2806690B2 (ja) | マイクロプロセッサ | |
| US7490226B2 (en) | Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor | |
| JPH09146769A (ja) | パイプライン処理装置 | |
| US20020108022A1 (en) | System and method for allowing back to back write operations in a processing system utilizing a single port cache | |
| JPS6020245A (ja) | デ−タ処理装置の命令制御回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20030513 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090530 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |