JP2001092658A - データ処理回路及びデータ処理装置 - Google Patents
データ処理回路及びデータ処理装置Info
- Publication number
- JP2001092658A JP2001092658A JP26880499A JP26880499A JP2001092658A JP 2001092658 A JP2001092658 A JP 2001092658A JP 26880499 A JP26880499 A JP 26880499A JP 26880499 A JP26880499 A JP 26880499A JP 2001092658 A JP2001092658 A JP 2001092658A
- Authority
- JP
- Japan
- Prior art keywords
- data
- pipeline
- register
- instruction
- address
- 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
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【課題】 マイクロプロセッサとデジタルシグナルプロ
セッサの機能を一つのLSIに搭載するにあたり、物理
的な規模の増大を極力抑え、かつデジタルシグナルプロ
セッサとしての演算性能を落とさないデータ処理装置を
提供する。 【解決手段】 データパス上に、パイプラインレジスタ
と並行に設けられ、データの経路として、該バイパスを
通過する場合と該パイプラインレジスタに至る場合とを
得ることができるバイパス107、108、109、1
10、112と、該バイパスの出力とパイプラインレジ
スタの出力とを選択出力するためのセレクタ13、1
4、15、16、23を設ける。また、命令実行回路A
3とは別にアドレス生成回路17を設ける。
セッサの機能を一つのLSIに搭載するにあたり、物理
的な規模の増大を極力抑え、かつデジタルシグナルプロ
セッサとしての演算性能を落とさないデータ処理装置を
提供する。 【解決手段】 データパス上に、パイプラインレジスタ
と並行に設けられ、データの経路として、該バイパスを
通過する場合と該パイプラインレジスタに至る場合とを
得ることができるバイパス107、108、109、1
10、112と、該バイパスの出力とパイプラインレジ
スタの出力とを選択出力するためのセレクタ13、1
4、15、16、23を設ける。また、命令実行回路A
3とは別にアドレス生成回路17を設ける。
Description
【0001】
【発明の属する技術分野】本発明は、パイプライン処理
を行うデータ処理装置に関するものであり、特に、プロ
セッサによる信号処理技術及びプロセッサによる制御技
術に係り、高速な信号処理と複雑な制御の双方を必要と
する通信端末、マルチメディア機器等に適用する技術に
関するものである。
を行うデータ処理装置に関するものであり、特に、プロ
セッサによる信号処理技術及びプロセッサによる制御技
術に係り、高速な信号処理と複雑な制御の双方を必要と
する通信端末、マルチメディア機器等に適用する技術に
関するものである。
【0002】
【従来の技術】従来において、マイクロプロセッサと共
にデジタルシグナルプロセッサを一つのLSIに搭載し
たプロセッサについて記載されたものの例としては特開
平9−22379号や、日立SuperH RISC
engine SH−DSPプログラミングマニュアル
及び日経エレクトロニクスNo.666の第147頁か
ら第161頁に記載のものがある(従来技術1)。これ
によれば、CPUコアにデジタル信号処理回路を追加
し、命令フェッチ回路やアドレス生成回路を共有して物
理的な規模の増大を抑え、またALU演算、乗算、及び
2つのロードまたはストアの並行処理を可能としてデジ
タル信号処理を高速化している。
にデジタルシグナルプロセッサを一つのLSIに搭載し
たプロセッサについて記載されたものの例としては特開
平9−22379号や、日立SuperH RISC
engine SH−DSPプログラミングマニュアル
及び日経エレクトロニクスNo.666の第147頁か
ら第161頁に記載のものがある(従来技術1)。これ
によれば、CPUコアにデジタル信号処理回路を追加
し、命令フェッチ回路やアドレス生成回路を共有して物
理的な規模の増大を抑え、またALU演算、乗算、及び
2つのロードまたはストアの並行処理を可能としてデジ
タル信号処理を高速化している。
【0003】また、プロセッサのパイプラインを可変に
するデータ処理装置について記載されたものの例として
は、特開平9−319578号、及び特開平11−15
658号がある(従来技術2)。これによれば、命令実
行回路は、パイプライン段数がn段とnより大きいm段
とに可変であり、n段又はm段の何れかの段数で命令を
パイプライン処理する。パイプライン制御回路は、命令
実行手段のパイプライン段数を切り替える。この構成に
よれば、m段パイプライン処理では、動作クロックの上
限を向上させることができ高い処理性能を向上させるこ
とができる。また、低速クロックで足りる用途では、分
岐インタロックによるペナルティが少ないn段パイプラ
イン処理を利用することができる。
するデータ処理装置について記載されたものの例として
は、特開平9−319578号、及び特開平11−15
658号がある(従来技術2)。これによれば、命令実
行回路は、パイプライン段数がn段とnより大きいm段
とに可変であり、n段又はm段の何れかの段数で命令を
パイプライン処理する。パイプライン制御回路は、命令
実行手段のパイプライン段数を切り替える。この構成に
よれば、m段パイプライン処理では、動作クロックの上
限を向上させることができ高い処理性能を向上させるこ
とができる。また、低速クロックで足りる用途では、分
岐インタロックによるペナルティが少ないn段パイプラ
イン処理を利用することができる。
【0004】
【発明が解決しようとする課題】しかし、前記従来技術
1では、DSPデータ転送命令、及びDSP演算命令
は、IF(命令フェッチ)、ID(命令デコード)、E
X(命令実行)、MA(メモリアクセス)、WB/DS
P(ライトバックまたはDSPライトバック/DSP)
の5段パイプラインで処理され、DSP演算命令はWB
/DSPステージで実行されるため、デジタル信号処理
が高速に行われなくなる場合がある。例えば、DSP演
算と、メモリストアの並行処理を繰り返し行う場合を考
える。ここで、メモリストアの対象とするデータは、直
前の並行処理における演算の結果であるとする。この場
合、例えば、図4に示すような場合では、WB/DSP
ステージで得られた演算結果(命令1)を次の並行処理
のMAステージでストア(命令2)しようとしても、ま
だ演算結果が得られていないために競合が発生してスト
ールサイクルが発生し、処理効率が低下するという問題
がある。
1では、DSPデータ転送命令、及びDSP演算命令
は、IF(命令フェッチ)、ID(命令デコード)、E
X(命令実行)、MA(メモリアクセス)、WB/DS
P(ライトバックまたはDSPライトバック/DSP)
の5段パイプラインで処理され、DSP演算命令はWB
/DSPステージで実行されるため、デジタル信号処理
が高速に行われなくなる場合がある。例えば、DSP演
算と、メモリストアの並行処理を繰り返し行う場合を考
える。ここで、メモリストアの対象とするデータは、直
前の並行処理における演算の結果であるとする。この場
合、例えば、図4に示すような場合では、WB/DSP
ステージで得られた演算結果(命令1)を次の並行処理
のMAステージでストア(命令2)しようとしても、ま
だ演算結果が得られていないために競合が発生してスト
ールサイクルが発生し、処理効率が低下するという問題
がある。
【0005】また、上記従来技術1においては、マイク
ロプロセッサとデジタルシグナルプロセッサの演算器の
物理的な共有は行われておらず、物理的な規模の増大に
つながっているという問題がある。
ロプロセッサとデジタルシグナルプロセッサの演算器の
物理的な共有は行われておらず、物理的な規模の増大に
つながっているという問題がある。
【0006】マイクロプロセッサとデジタルシグナルプ
ロセッサのパイプラインの動作は本来大きく異なるた
め、これらを一つのLSIに搭載してデジタル信号処理
を高速化するためには、マイクロプロセッサとしての命
令とデジタルシグナルプロセッサとしての命令で、パイ
プラインの動作を切り替える必要があると考えた。
ロセッサのパイプラインの動作は本来大きく異なるた
め、これらを一つのLSIに搭載してデジタル信号処理
を高速化するためには、マイクロプロセッサとしての命
令とデジタルシグナルプロセッサとしての命令で、パイ
プラインの動作を切り替える必要があると考えた。
【0007】また、前記従来技術2では、パイプライン
段数を可変にしているが、クロックの周波数の上限を向
上させ、しかも用途に応じて高速クロックを使用すると
きも低速クロック使用するときも好適な処理能力を発揮
するコストパフォーマンスのよいデータ処理装置を提供
することを目的としており、マイクロプロセッサとデジ
タルシグナルプロセッサのパイプライン動作を切り替え
て実現するものではない。
段数を可変にしているが、クロックの周波数の上限を向
上させ、しかも用途に応じて高速クロックを使用すると
きも低速クロック使用するときも好適な処理能力を発揮
するコストパフォーマンスのよいデータ処理装置を提供
することを目的としており、マイクロプロセッサとデジ
タルシグナルプロセッサのパイプライン動作を切り替え
て実現するものではない。
【0008】そこで、本発明は上述の各種課題を解決し
ようとするものであり、マイクロプロセッサとデジタル
シグナルプロセッサの機能を一つのLSIに搭載するに
あたり、物理的な規模の増大を極力抑え、かつデジタル
シグナルプロセッサとしての演算性能を落とさないデー
タ処理装置を提供することを目的とする。
ようとするものであり、マイクロプロセッサとデジタル
シグナルプロセッサの機能を一つのLSIに搭載するに
あたり、物理的な規模の増大を極力抑え、かつデジタル
シグナルプロセッサとしての演算性能を落とさないデー
タ処理装置を提供することを目的とする。
【0009】
【課題を解決するための手段】本発明は上記問題点を解
決するために創作されたものであって、第1には、パイ
プライン処理を行うデータ処理回路であって、データパ
ス上に設けられた1又は複数のバイパス手段であって、
データの経路として、該バイパスを通過する場合と該パ
イプラインレジスタに至る場合とを得ることができるバ
イパス手段を有し、マイクロプロセッサのパイプライン
動作とデジタルシグナルプロセッサのパイプライン動作
との切替え動作を可能とすることを特徴とする。
決するために創作されたものであって、第1には、パイ
プライン処理を行うデータ処理回路であって、データパ
ス上に設けられた1又は複数のバイパス手段であって、
データの経路として、該バイパスを通過する場合と該パ
イプラインレジスタに至る場合とを得ることができるバ
イパス手段を有し、マイクロプロセッサのパイプライン
動作とデジタルシグナルプロセッサのパイプライン動作
との切替え動作を可能とすることを特徴とする。
【0010】この第1の構成のデータ処理回路によれ
ば、データパスにパイプラインレジスタと並行に設けら
れたバイパス手段を設けることにより、デジタルシグナ
ルプロセッサのパイプライン動作を実現することがで
き、マイクロプロセッサとデジタルプロセッサの機能を
1つのLSI上に搭載する上で、回路の重複を防止で
き、回路規模の縮小を図ることが可能となる。また、高
速なデジタル信号処理を行うためにデジタルシグナルプ
ロセッサとして動作する場合、演算性能を損なうことが
ない。
ば、データパスにパイプラインレジスタと並行に設けら
れたバイパス手段を設けることにより、デジタルシグナ
ルプロセッサのパイプライン動作を実現することがで
き、マイクロプロセッサとデジタルプロセッサの機能を
1つのLSI上に搭載する上で、回路の重複を防止で
き、回路規模の縮小を図ることが可能となる。また、高
速なデジタル信号処理を行うためにデジタルシグナルプ
ロセッサとして動作する場合、演算性能を損なうことが
ない。
【0011】また、第2には、上記第1の構成におい
て、上記データ処理回路が、上記バイパス手段からの出
力と、上記パイプラインレジスタの出力とを選択出力す
る選択手段を有することを特徴とする。
て、上記データ処理回路が、上記バイパス手段からの出
力と、上記パイプラインレジスタの出力とを選択出力す
る選択手段を有することを特徴とする。
【0012】また、第3には、上記第1又は第2の構成
において、マイクロプロセッサのパイプライン動作に切
り替えた場合と、デジタルシグナルプロセッサのパイプ
ライン動作に切り替えた場合とで、パイプラインレジス
タに与えられるクロック周波数を切り替えることを特徴
とする。
において、マイクロプロセッサのパイプライン動作に切
り替えた場合と、デジタルシグナルプロセッサのパイプ
ライン動作に切り替えた場合とで、パイプラインレジス
タに与えられるクロック周波数を切り替えることを特徴
とする。
【0013】また、第4には、データ処理装置であっ
て、上記第1又は第2又は第3の構成のデータ処理回路
と、上記データ処理回路へのアドレス情報を生成するた
めのアドレス生成回路であって、上記デジタルシグナル
プロセッサのパイプライン動作に切り替えた場合のアド
レス生成を行い、演算命令の演算とアドレス計算とを同
時に実行可能とするアドレス生成回路と、を有すること
を特徴とする。
て、上記第1又は第2又は第3の構成のデータ処理回路
と、上記データ処理回路へのアドレス情報を生成するた
めのアドレス生成回路であって、上記デジタルシグナル
プロセッサのパイプライン動作に切り替えた場合のアド
レス生成を行い、演算命令の演算とアドレス計算とを同
時に実行可能とするアドレス生成回路と、を有すること
を特徴とする。
【0014】
【発明の実施の形態】本発明の実施の形態としての実施
例を図面を利用して説明する。本発明に基づくデータ処
理装置Aは、図1に示されるように、命令フェッチ回路
A1と、命令解読/パイプライン制御回路A2と、命令
実行回路A3と、データメモリ25と、アドレス生成回
路17とを有している。
例を図面を利用して説明する。本発明に基づくデータ処
理装置Aは、図1に示されるように、命令フェッチ回路
A1と、命令解読/パイプライン制御回路A2と、命令
実行回路A3と、データメモリ25と、アドレス生成回
路17とを有している。
【0015】ここで、上記命令フェッチ回路A1は、図
1に示すように、プログラムカウンタと、命令メモリ
と、命令レジスタとを有し、プログラムカウンタで示さ
れるアドレスに基づき、命令メモリを読み出し、命令レ
ジスタに格納するようになっている。
1に示すように、プログラムカウンタと、命令メモリ
と、命令レジスタとを有し、プログラムカウンタで示さ
れるアドレスに基づき、命令メモリを読み出し、命令レ
ジスタに格納するようになっている。
【0016】また、上記命令解読/パイプライン制御回
路A2は、命令レジスタの内容を解読してレジスタファ
イルの読出しアドレスを生成したり、演算器を制御する
演算器制御信号を生成したりする。
路A2は、命令レジスタの内容を解読してレジスタファ
イルの読出しアドレスを生成したり、演算器を制御する
演算器制御信号を生成したりする。
【0017】また、上記命令実行回路A3は、レジスタ
ファイル1と、パイプラインレジスタ2、パイプライン
レジスタ3、パイプラインレジスタ6、パイプラインレ
ジスタ7、パイプラインレジスタ22と、セレクタ4、
セレクタ8、セレクタ9、セレクタ12、セレクタ1
3、セレクタ14、セレクタ15、セレクタ16、セレ
クタ23と、演算器5とを有している。この命令実行回
路A3は、上記データ処理回路として機能する。
ファイル1と、パイプラインレジスタ2、パイプライン
レジスタ3、パイプラインレジスタ6、パイプラインレ
ジスタ7、パイプラインレジスタ22と、セレクタ4、
セレクタ8、セレクタ9、セレクタ12、セレクタ1
3、セレクタ14、セレクタ15、セレクタ16、セレ
クタ23と、演算器5とを有している。この命令実行回
路A3は、上記データ処理回路として機能する。
【0018】また、レジスタファイル1の出力端とセレ
クタ13の入力端の間には、パイプラインレジスタ2と
並行に、バイパス107が設けられ、また、レジスタフ
ァイル1の出力端とセレクタ4の入力端末の間には、パ
イプラインレジスタ3と並行に、バイパス108が設け
られている。また、演算器5の出力端とセレクタ15の
入力端の間には、パイプラインレジスタ6及びパイプラ
インレジスタ10と並行に、バイパス109が設けら
れ、また、データメモリ25に接続されている読出しデ
ータバス104とセレクタ16の入力端の間には、パイ
プラインレジスタ11と並行に、バイパス110が設け
られ、また、セレクタ4の出力端とセレクタ23の入力
端の間には、パイプラインレジスタ22と並行に、バイ
パス112が設けられている。上記バイパス107、バ
イパス108、バイパス109、バイパス110、バイ
パス112は上記バイパス手段として機能し、また、セ
レクタ4、セレクタ13、セレクタ14、セレクタ1
5、セレクタ16、セレクタ23は上記選択出力手段と
して機能する。
クタ13の入力端の間には、パイプラインレジスタ2と
並行に、バイパス107が設けられ、また、レジスタフ
ァイル1の出力端とセレクタ4の入力端末の間には、パ
イプラインレジスタ3と並行に、バイパス108が設け
られている。また、演算器5の出力端とセレクタ15の
入力端の間には、パイプラインレジスタ6及びパイプラ
インレジスタ10と並行に、バイパス109が設けら
れ、また、データメモリ25に接続されている読出しデ
ータバス104とセレクタ16の入力端の間には、パイ
プラインレジスタ11と並行に、バイパス110が設け
られ、また、セレクタ4の出力端とセレクタ23の入力
端の間には、パイプラインレジスタ22と並行に、バイ
パス112が設けられている。上記バイパス107、バ
イパス108、バイパス109、バイパス110、バイ
パス112は上記バイパス手段として機能し、また、セ
レクタ4、セレクタ13、セレクタ14、セレクタ1
5、セレクタ16、セレクタ23は上記選択出力手段と
して機能する。
【0019】また、データメモリ25は、上記命令実行
回路A3と接続されている。つまり、アドレスバス10
3を介してセレクタ14と接続され、また、書込みデー
タバス111を介してセレクタ23と接続され、さら
に、読出しデータバス104を介してセレクタ8、セレ
クタ9と接続されている。
回路A3と接続されている。つまり、アドレスバス10
3を介してセレクタ14と接続され、また、書込みデー
タバス111を介してセレクタ23と接続され、さら
に、読出しデータバス104を介してセレクタ8、セレ
クタ9と接続されている。
【0020】また、アドレス生成回路17は、アドレス
レジスタ18、アドレスレジスタ19と、セレクタ20
と、アドレス計算回路21を有している。このアドレス
生成回路17の出力は、セレクタ14に入力されてい
る。
レジスタ18、アドレスレジスタ19と、セレクタ20
と、アドレス計算回路21を有している。このアドレス
生成回路17の出力は、セレクタ14に入力されてい
る。
【0021】ここで、従来におけるデータ処理装置B
は、図3に示すように構成され、命令フェッチ回路B1
と、命令解読/パイプライン制御回路B2と、命令実行
回路B3とを有している。そして、命令実行回路につい
て比較すると、本実施例の命令実行回路A3は、従来か
らの命令実行回路B3に、セレクタ13、セレクタ1
4、セレクタ15、セレクタ16、セレクタ23と、バ
イパス107、バイパス108、バイパス109、バイ
パス110、バイパス112を加えたものであり、さら
に、本実施例のデータ処理装置Aは、アドレス生成回路
17を別途有している点が図3に示す構成と異なる。
は、図3に示すように構成され、命令フェッチ回路B1
と、命令解読/パイプライン制御回路B2と、命令実行
回路B3とを有している。そして、命令実行回路につい
て比較すると、本実施例の命令実行回路A3は、従来か
らの命令実行回路B3に、セレクタ13、セレクタ1
4、セレクタ15、セレクタ16、セレクタ23と、バ
イパス107、バイパス108、バイパス109、バイ
パス110、バイパス112を加えたものであり、さら
に、本実施例のデータ処理装置Aは、アドレス生成回路
17を別途有している点が図3に示す構成と異なる。
【0022】ここで、上記各バイパスは、データの経路
としてバイパスを通過する場合とパイプラインレジスタ
に入力される場合とが得られるように、パイプラインレ
ジスタと並行に設けられ、また、各バイパスの出力先に
は、パイプラインレジスタの出力と選択出力できるよう
に、セレクタが設けられている。つまり、バイパス10
8、110のようにすでに従来の構成でセレクタが設け
られている場合は必要ないが、そうでない場合には、セ
レクタが設けられている。
としてバイパスを通過する場合とパイプラインレジスタ
に入力される場合とが得られるように、パイプラインレ
ジスタと並行に設けられ、また、各バイパスの出力先に
は、パイプラインレジスタの出力と選択出力できるよう
に、セレクタが設けられている。つまり、バイパス10
8、110のようにすでに従来の構成でセレクタが設け
られている場合は必要ないが、そうでない場合には、セ
レクタが設けられている。
【0023】上記構成のデータ処理装置Aの動作につい
て説明する。まず、このデータ処理装置Aがデジタルシ
グナルプロセッサとして3段パイプライン動作をする場
合について説明する。この3段パイプライン動作は、フ
ェッチ(F)、デコード(D)、実行(E)の3段で行
われる。
て説明する。まず、このデータ処理装置Aがデジタルシ
グナルプロセッサとして3段パイプライン動作をする場
合について説明する。この3段パイプライン動作は、フ
ェッチ(F)、デコード(D)、実行(E)の3段で行
われる。
【0024】まず、フェッチ(F)では、命令フェッチ
回路A1において、プログラムカウンタで示されるアド
レスに基づき、命令メモリが読み出され、読み出された
データが命令レジスタに格納される。
回路A1において、プログラムカウンタで示されるアド
レスに基づき、命令メモリが読み出され、読み出された
データが命令レジスタに格納される。
【0025】次に、デコード(D)では、命令解読/パ
イプライン制御回路A2において、命令レジスタに格納
されたデータを解読して、レジスタファイル1の読出し
アドレスを最大で2つ、レジスタファイル1の書込みア
ドレスを最大で2つ、さらには、演算器制御信号等の制
御信号を生成する。
イプライン制御回路A2において、命令レジスタに格納
されたデータを解読して、レジスタファイル1の読出し
アドレスを最大で2つ、レジスタファイル1の書込みア
ドレスを最大で2つ、さらには、演算器制御信号等の制
御信号を生成する。
【0026】次に、実行(E)では、デコード(D)で
生成されたレジスタファイル1の読出しアドレス、レジ
スタファイル1の書込みアドレス、演算器制御信号等の
制御信号が、命令解読/パイプライン制御回路A2によ
り同時に出力され、(1)レジスタファイル1からの最
大2つのデータの読出し、(2)演算器5による演算、
(3)データメモリ25からの読出し又はデータメモリ
25への書込み、(4)アドレス計算回路21によるア
ドレス計算、(5)レジスタファイル1への演算結果の
格納、(6)レジスタファイル1へのメモリ読出しデー
タの格納、(7)アドレスレジスタ18、19へのアド
レス計算結果の格納が行われる。
生成されたレジスタファイル1の読出しアドレス、レジ
スタファイル1の書込みアドレス、演算器制御信号等の
制御信号が、命令解読/パイプライン制御回路A2によ
り同時に出力され、(1)レジスタファイル1からの最
大2つのデータの読出し、(2)演算器5による演算、
(3)データメモリ25からの読出し又はデータメモリ
25への書込み、(4)アドレス計算回路21によるア
ドレス計算、(5)レジスタファイル1への演算結果の
格納、(6)レジスタファイル1へのメモリ読出しデー
タの格納、(7)アドレスレジスタ18、19へのアド
レス計算結果の格納が行われる。
【0027】なお、上記の(1)〜(7)の各処理は、
実行ステージにおいて全て行われるとは限らず、その一
部のみが行われる場合もある。例えば、上記(1)、
(2)、(5)の処理のみが行われる場合や、上記
(3)、(6)の処理のみが行われる場合や、上記
(4)、(7)の処理のみが行われる場合もある。
実行ステージにおいて全て行われるとは限らず、その一
部のみが行われる場合もある。例えば、上記(1)、
(2)、(5)の処理のみが行われる場合や、上記
(3)、(6)の処理のみが行われる場合や、上記
(4)、(7)の処理のみが行われる場合もある。
【0028】ここで、デジタルシグナルプロセッサとし
ての動作を実現するために、データの経路としては以下
のような経路によって処理が行われる。
ての動作を実現するために、データの経路としては以下
のような経路によって処理が行われる。
【0029】つまり、上記の(1)レジスタファイル1
からの2つのオペランドの読出し、(2)演算器5によ
る演算、(5)レジスタファイル1への演算結果の格納
の処理に際しては、レジスタファイル1から読み出した
オペランドの1つは、パイプラインレジスタ2を介する
ことなく、バイパス107を通って直接演算器5に入力
される。また、レジスタファイル1から読み出した他の
1つのオペランドも同様に、バイパス108とセレクタ
4を通して演算器5に入力される。そして、演算器5か
ら出力される演算結果は、パイプラインレジスタ6、パ
イプラインレジスタ10を介することなく、バイパス1
09とセレクタ15を通してレジスタファイル1に格納
される。
からの2つのオペランドの読出し、(2)演算器5によ
る演算、(5)レジスタファイル1への演算結果の格納
の処理に際しては、レジスタファイル1から読み出した
オペランドの1つは、パイプラインレジスタ2を介する
ことなく、バイパス107を通って直接演算器5に入力
される。また、レジスタファイル1から読み出した他の
1つのオペランドも同様に、バイパス108とセレクタ
4を通して演算器5に入力される。そして、演算器5か
ら出力される演算結果は、パイプラインレジスタ6、パ
イプラインレジスタ10を介することなく、バイパス1
09とセレクタ15を通してレジスタファイル1に格納
される。
【0030】また、上記の「(3)データメモリ25か
らの読出し又はデータメモリ25への書込み」における
データメモリ25からの読出し及び上記(6)レジスタ
ファイル1へのメモリ読出しデータの格納に際しては、
データメモリ25から読み出したデータは、データバス
104に乗り、パイプラインレジスタ11を介すること
なく、バイパス110とセレクタ16を介してレジスタ
ファイル1に格納される。
らの読出し又はデータメモリ25への書込み」における
データメモリ25からの読出し及び上記(6)レジスタ
ファイル1へのメモリ読出しデータの格納に際しては、
データメモリ25から読み出したデータは、データバス
104に乗り、パイプラインレジスタ11を介すること
なく、バイパス110とセレクタ16を介してレジスタ
ファイル1に格納される。
【0031】また、「(3)データメモリ25からの読
出し又はデータメモリ25への書込み」におけるデータ
メモリ25への書込みに際しては、レジスタファイルか
ら読み出したデータがバイパス108、セレクタ4、バ
イパス112、セレクタ23を通って書込みデータバス
111に出力されることになる。
出し又はデータメモリ25への書込み」におけるデータ
メモリ25への書込みに際しては、レジスタファイルか
ら読み出したデータがバイパス108、セレクタ4、バ
イパス112、セレクタ23を通って書込みデータバス
111に出力されることになる。
【0032】また、上記の(4)アドレス計算回路21
によるアドレス計算、(7)アドレスレジスタ18、1
9へのアドレス計算結果の格納においては、デジタルシ
グナルプロセッサとしての動作では、演算とアドレス計
算を同一サイクル内に行う必要があるため、メモリアド
レスについては、レジスタファイル1のレジスタによる
指定を行わずに、アドレスレジスタ18、19を使用
し、また、アドレス計算では演算器5を使用せずに、ア
ドレス生成回路17に設けられたアドレス計算回路21
を使用する。アドレス生成回路17が生成したアドレス
は、セレクタ14によって選択され、アドレスバス10
3に出力される。該アドレスは、「(3)データメモリ
25からの読出し又はデータメモリ25への書込み」に
おけるデータメモリ25からの読出しにおいて、読出し
アドレスとなり、また、「(3)データメモリ25から
の読出し又はデータメモリ25への書込み」におけるデ
ータメモリ25への書込みにおいて、書込みアドレスと
なる。
によるアドレス計算、(7)アドレスレジスタ18、1
9へのアドレス計算結果の格納においては、デジタルシ
グナルプロセッサとしての動作では、演算とアドレス計
算を同一サイクル内に行う必要があるため、メモリアド
レスについては、レジスタファイル1のレジスタによる
指定を行わずに、アドレスレジスタ18、19を使用
し、また、アドレス計算では演算器5を使用せずに、ア
ドレス生成回路17に設けられたアドレス計算回路21
を使用する。アドレス生成回路17が生成したアドレス
は、セレクタ14によって選択され、アドレスバス10
3に出力される。該アドレスは、「(3)データメモリ
25からの読出し又はデータメモリ25への書込み」に
おけるデータメモリ25からの読出しにおいて、読出し
アドレスとなり、また、「(3)データメモリ25から
の読出し又はデータメモリ25への書込み」におけるデ
ータメモリ25への書込みにおいて、書込みアドレスと
なる。
【0033】次に、デジタルシグナルプロセッサとして
の動作タイミングとデータの流れを例示する。まず、例
示プログラムを以下に示す。
の動作タイミングとデータの流れを例示する。まず、例
示プログラムを以下に示す。
【0034】命令1:A0=0; つまり、アドレスレ
ジスタA0に0を代入する。ここで、アドレスレジスタ
A0とは、アドレスレジスタ18が対応する。
ジスタA0に0を代入する。ここで、アドレスレジスタ
A0とは、アドレスレジスタ18が対応する。
【0035】命令2:R0=0; ここでは、レジスタ
ファイル1におけるレジスタR0(図1参照)に0を代
入する。これは、例えば、命令解読/パイプライン制御
回路A2から行われる。
ファイル1におけるレジスタR0(図1参照)に0を代
入する。これは、例えば、命令解読/パイプライン制御
回路A2から行われる。
【0036】命令3:R1=[A0++]; ここで
は、アドレスレジスタA0で示されるメモリ(データメ
モリ25)内の内容をレジスタファイル1におけるレジ
スタR1(図1参照)に転送する。また、アドレスレジ
スタA0(アドレスレジスタ18)の内容をインクリメ
ントする。
は、アドレスレジスタA0で示されるメモリ(データメ
モリ25)内の内容をレジスタファイル1におけるレジ
スタR1(図1参照)に転送する。また、アドレスレジ
スタA0(アドレスレジスタ18)の内容をインクリメ
ントする。
【0037】命令4:rpt7; 次の1つの命令(こ
こでは、命令5)を指定回数(ここでは、7回)繰り返
し実行する。
こでは、命令5)を指定回数(ここでは、7回)繰り返
し実行する。
【0038】命令5:R0+=R1;R1=[A0+
+]; レジスタファイル1におけるレジスタR0の内
容に、レジスタファイルにおけるレジスタR1の内容を
加算する。この加算は演算器5により行われる。そし
て、この加算結果がバイパス109、セレクタ15、バ
ス105を介して上記レジスタR0に代入される。ま
た、アドレスレジスタA0で示されるメモリ(データメ
モリ25)内の内容を上記レジスタR1に転送する。さ
らに、アドレスレジスタA0の内容をインクリメントす
る。
+]; レジスタファイル1におけるレジスタR0の内
容に、レジスタファイルにおけるレジスタR1の内容を
加算する。この加算は演算器5により行われる。そし
て、この加算結果がバイパス109、セレクタ15、バ
ス105を介して上記レジスタR0に代入される。ま
た、アドレスレジスタA0で示されるメモリ(データメ
モリ25)内の内容を上記レジスタR1に転送する。さ
らに、アドレスレジスタA0の内容をインクリメントす
る。
【0039】命令6:R0+=R1; 上記レジスタR
0の内容に、レジスタR1の内容を加算する。この加算
は演算器5により行われる。そして、この加算結果がレ
ジスタR0に代入される。
0の内容に、レジスタR1の内容を加算する。この加算
は演算器5により行われる。そして、この加算結果がレ
ジスタR0に代入される。
【0040】ここで、上記命令5の1回目の実行におけ
る実行ステージに入るまでは、レジスタR0、R1、ア
ドレスレジスタA0の内容は、以下のようになってい
る。つまり、レジスタR0の内容は上記命令2で代入し
た0である。また、レジスタR1の内容は命令3でロー
ドした、メモリ(データメモリ25)の0番地の内容と
等しい。アドレスレジスタA0の内容は、命令1で0を
代入した後、命令3でインクリメントしているため1と
なっている。
る実行ステージに入るまでは、レジスタR0、R1、ア
ドレスレジスタA0の内容は、以下のようになってい
る。つまり、レジスタR0の内容は上記命令2で代入し
た0である。また、レジスタR1の内容は命令3でロー
ドした、メモリ(データメモリ25)の0番地の内容と
等しい。アドレスレジスタA0の内容は、命令1で0を
代入した後、命令3でインクリメントしているため1と
なっている。
【0041】上記命令5の1回目の処理における実行ス
テージ以降のパイプライン動作を示すと図2のようにな
る。命令5の1回目の処理における実行ステージのタイ
ミングは、図2におけるタイミング1となる。この実行
ステージでは、上記のように、(1)レジスタファイル
1からの2つのデータの読出し、(2)演算器5による
演算、(3)データメモリ25からの読出し又はデータ
メモリ25への書込み、(4)アドレス計算回路21に
よるアドレス計算、(5)レジスタファイル1への演算
結果の格納、(6)レジスタファイル1へのメモリ読出
しデータの格納、(7)アドレスレジスタ18、19へ
のアドレス計算結果の格納が行われる。各処理について
さらに詳しく説明すると、以下のようになる。
テージ以降のパイプライン動作を示すと図2のようにな
る。命令5の1回目の処理における実行ステージのタイ
ミングは、図2におけるタイミング1となる。この実行
ステージでは、上記のように、(1)レジスタファイル
1からの2つのデータの読出し、(2)演算器5による
演算、(3)データメモリ25からの読出し又はデータ
メモリ25への書込み、(4)アドレス計算回路21に
よるアドレス計算、(5)レジスタファイル1への演算
結果の格納、(6)レジスタファイル1へのメモリ読出
しデータの格納、(7)アドレスレジスタ18、19へ
のアドレス計算結果の格納が行われる。各処理について
さらに詳しく説明すると、以下のようになる。
【0042】すなわち、上記(1)レジスタファイル1
からの2つのデータの読出しにおいては、レジスタファ
イル1からレジスタR0、R1の内容が読み出される。
なお、図2のタイミング1、命令5の1回目の処理にお
ける実行ステージにおいては、R0の内容は0であり、
R1の内容はメモリ(データメモリ25)における0番
地の内容と等しい。
からの2つのデータの読出しにおいては、レジスタファ
イル1からレジスタR0、R1の内容が読み出される。
なお、図2のタイミング1、命令5の1回目の処理にお
ける実行ステージにおいては、R0の内容は0であり、
R1の内容はメモリ(データメモリ25)における0番
地の内容と等しい。
【0043】また、上記(2)演算器5による演算にお
いては、レジスタR0の内容を、バイパス107とセレ
クタ13を通して演算器5に入力する。また、レジスタ
R1の内容を、バイパス108とセレクタ4を通して演
算器5に入力する。演算器5においては、入力されたデ
ータの加算を行う。図2のタイミング1の際には、演算
器5の出力は、0とメモリ(データメモリ25)の0番
地の内容の和、すなわち、メモリ(データメモリ25)
の0番地の内容に等しくなる。
いては、レジスタR0の内容を、バイパス107とセレ
クタ13を通して演算器5に入力する。また、レジスタ
R1の内容を、バイパス108とセレクタ4を通して演
算器5に入力する。演算器5においては、入力されたデ
ータの加算を行う。図2のタイミング1の際には、演算
器5の出力は、0とメモリ(データメモリ25)の0番
地の内容の和、すなわち、メモリ(データメモリ25)
の0番地の内容に等しくなる。
【0044】また、上記(3)データメモリ25からの
読出し又はデータメモリ25への書込みにおけるデータ
メモリ25からの読出しに際しては、アドレスレジスタ
A0の内容がセレクタ20とセレクタ14で選択され
て、アドレスレジスタ103に乗せられる。図2のタイ
ミング1の際には、アドレスレジスタA0の内容は1で
あり、また、このアドレスレジスタA0で示されるメモ
リ(データメモリ25)の内容が読み出されて読出しデ
ータバス104に乗せられる。
読出し又はデータメモリ25への書込みにおけるデータ
メモリ25からの読出しに際しては、アドレスレジスタ
A0の内容がセレクタ20とセレクタ14で選択され
て、アドレスレジスタ103に乗せられる。図2のタイ
ミング1の際には、アドレスレジスタA0の内容は1で
あり、また、このアドレスレジスタA0で示されるメモ
リ(データメモリ25)の内容が読み出されて読出しデ
ータバス104に乗せられる。
【0045】また、上記(4)アドレス計算回路21に
よるアドレス計算においては、アドレスレジスタA0の
内容がセレクタ20によって選択されてアドレス計算回
路21に入力される。アドレス計算回路21は、入力に
1を加算してアドレスレジスタ18、19に出力する。
よるアドレス計算においては、アドレスレジスタA0の
内容がセレクタ20によって選択されてアドレス計算回
路21に入力される。アドレス計算回路21は、入力に
1を加算してアドレスレジスタ18、19に出力する。
【0046】また、上記(5)レジスタファイル1への
演算結果の格納においては、演算器5の出力をバイパス
109とセレクタ15を通してレジスタファイル1のレ
ジスタR0に格納する。図2においてこの処理を行うタ
イミングは、タイミング1からタイミング2に移る時で
ある。
演算結果の格納においては、演算器5の出力をバイパス
109とセレクタ15を通してレジスタファイル1のレ
ジスタR0に格納する。図2においてこの処理を行うタ
イミングは、タイミング1からタイミング2に移る時で
ある。
【0047】また、上記(6)レジスタファイル1への
メモリ読出しデータの格納においては、読出しデータバ
ス104に乗った読出しデータを、バイパス110とセ
レクタ16を通してレジスタR1に格納する。図2にお
いてこの処理を行うタイミングは、タイミング1からタ
イミング2に移る時である。
メモリ読出しデータの格納においては、読出しデータバ
ス104に乗った読出しデータを、バイパス110とセ
レクタ16を通してレジスタR1に格納する。図2にお
いてこの処理を行うタイミングは、タイミング1からタ
イミング2に移る時である。
【0048】また、上記(7)アドレスレジスタ18、
19へのアドレス計算結果の格納においては、アドレス
計算回路21の出力を、アドレスレジスタA0に格納す
る。図2においてこの処理を行うタイミングは、タイミ
ング1からタイミング2に移る時である。
19へのアドレス計算結果の格納においては、アドレス
計算回路21の出力を、アドレスレジスタA0に格納す
る。図2においてこの処理を行うタイミングは、タイミ
ング1からタイミング2に移る時である。
【0049】なお、命令5の2回目以降の処理における
実行ステージは、図2のタイミング2以降に発生し、メ
モリデータ1ワード当たりの処理が1クロックサイクル
ごとに行われる。
実行ステージは、図2のタイミング2以降に発生し、メ
モリデータ1ワード当たりの処理が1クロックサイクル
ごとに行われる。
【0050】次に、本実施例のデータ処理装置Aは、上
記のように、従来の5段パイプライン動作を行うマイク
ロプロセッサの構成にバイパスやセレクタを追加した構
成であることからマイクロプロセッサとしてのパイプラ
イン動作を実現できることは明らかである。本実施例の
データ処理装置Aの5段パイプライン動作を説明すると
以下のようになる。
記のように、従来の5段パイプライン動作を行うマイク
ロプロセッサの構成にバイパスやセレクタを追加した構
成であることからマイクロプロセッサとしてのパイプラ
イン動作を実現できることは明らかである。本実施例の
データ処理装置Aの5段パイプライン動作を説明すると
以下のようになる。
【0051】命令フェッチ(IF)では、命令フェッチ
回路A1において、プログラムカウンタで示されるアド
レスに基づき、命令メモリが読み出され、読み出された
データが命令レジスタに格納される。
回路A1において、プログラムカウンタで示されるアド
レスに基づき、命令メモリが読み出され、読み出された
データが命令レジスタに格納される。
【0052】次に、命令デコード(ID)では、命令解
読/パイプライン制御回路A2において、命令レジスタ
を解読してレジスタファイルの読出しアドレス2つを生
成する。この読出しアドレスに基づき、レジスタファイ
ル1を読み出して、パイプラインレジスタ2、3に格納
する。また、命令解読/パイプライン制御回路A2にお
いて、命令レジスタを解読して、演算器制御信号等の制
御信号を生成する。なお、この制御信号は、命令解読/
パイプライン制御回路A2内で必要なサイクルだけ遅延
された後に、命令実行回路A3に入力されて演算器5等
の制御を行う。
読/パイプライン制御回路A2において、命令レジスタ
を解読してレジスタファイルの読出しアドレス2つを生
成する。この読出しアドレスに基づき、レジスタファイ
ル1を読み出して、パイプラインレジスタ2、3に格納
する。また、命令解読/パイプライン制御回路A2にお
いて、命令レジスタを解読して、演算器制御信号等の制
御信号を生成する。なお、この制御信号は、命令解読/
パイプライン制御回路A2内で必要なサイクルだけ遅延
された後に、命令実行回路A3に入力されて演算器5等
の制御を行う。
【0053】次に、命令実行(EX)の場合の動作につ
いて説明する。以下では、演算命令、ロード命令、スト
ア命令の3つの場合に分けて説明する。まず、演算命令
の場合には、パイプラインレジスタ2内のデータがセレ
クタ13を通して演算器5に入力され、また、パイプラ
インレジスタ3内のデータがセレクタ4を通して演算器
5に入力されて、演算器5における演算結果がパイプラ
インレジスタ6に格納される。
いて説明する。以下では、演算命令、ロード命令、スト
ア命令の3つの場合に分けて説明する。まず、演算命令
の場合には、パイプラインレジスタ2内のデータがセレ
クタ13を通して演算器5に入力され、また、パイプラ
インレジスタ3内のデータがセレクタ4を通して演算器
5に入力されて、演算器5における演算結果がパイプラ
インレジスタ6に格納される。
【0054】また、ロード命令の場合には、パイプライ
ンレジスタ2のデータがセレクタ13を通してパイプラ
インレジスタ7に格納される。このパイプラインレジス
タ7の値がメモリ読出しアドレスとなる。
ンレジスタ2のデータがセレクタ13を通してパイプラ
インレジスタ7に格納される。このパイプラインレジス
タ7の値がメモリ読出しアドレスとなる。
【0055】また、ストア命令の場合には、パイプライ
ンレジスタ2内のデータがセレクタ13を通してパイプ
ラインレジスタ7に格納され、また、パイプラインレジ
スタ3内のデータがセレクタ4を通してパイプラインレ
ジスタ22に格納される。このパイプラインレジスタ7
の値がメモリ書込みアドレスとなり、また、パイプライ
ンレジスタ22の値がメモリ書込みデータとなる。
ンレジスタ2内のデータがセレクタ13を通してパイプ
ラインレジスタ7に格納され、また、パイプラインレジ
スタ3内のデータがセレクタ4を通してパイプラインレ
ジスタ22に格納される。このパイプラインレジスタ7
の値がメモリ書込みアドレスとなり、また、パイプライ
ンレジスタ22の値がメモリ書込みデータとなる。
【0056】なお、ロード命令又はストア命令におい
て、ポインタとして使用したレジスタのポストインクリ
メント等を行う場合には、さらに、パイプラインレジス
タ2のデータをセレクタ13を通して演算器5に入力
し、インクリメント等の演算を行って、パイプラインレ
ジスタ6に格納する。
て、ポインタとして使用したレジスタのポストインクリ
メント等を行う場合には、さらに、パイプラインレジス
タ2のデータをセレクタ13を通して演算器5に入力
し、インクリメント等の演算を行って、パイプラインレ
ジスタ6に格納する。
【0057】次に、メモリアクセス(MA)の場合の動
作について説明する。以下では、演算命令、ロード命
令、ストア命令の3つの場合に分けて説明する。まず、
演算命令の場合には、パイプラインレジスタ6のデータ
をセレクタ8を通してパイプラインレジスタ10に格納
する。
作について説明する。以下では、演算命令、ロード命
令、ストア命令の3つの場合に分けて説明する。まず、
演算命令の場合には、パイプラインレジスタ6のデータ
をセレクタ8を通してパイプラインレジスタ10に格納
する。
【0058】また、ロード命令の場合には、パイプライ
ンレジスタ7のデータを、セレクタ14を通してアドレ
スバス103に出力する。そして、アドレスバス103
のアドレスに基づき、データメモリ25の読出しを行
い、読出しデータが読出しデータバス104に出力さ
れ、セレクタ9を通してパイプラインレジスタ11に格
納される。
ンレジスタ7のデータを、セレクタ14を通してアドレ
スバス103に出力する。そして、アドレスバス103
のアドレスに基づき、データメモリ25の読出しを行
い、読出しデータが読出しデータバス104に出力さ
れ、セレクタ9を通してパイプラインレジスタ11に格
納される。
【0059】また、ストア命令の場合には、パイプライ
ンレジスタ7のデータを、セレクタ14を通してアドレ
スバス103に出力し、パイプラインレジスタ22のデ
ータを、セレクタ23を通して書込みデータバス111
に出力する。アドレスバス103のアドレスと書込みデ
ータバス111のデータに基づき、データメモリ25の
書込みを行う。
ンレジスタ7のデータを、セレクタ14を通してアドレ
スバス103に出力し、パイプラインレジスタ22のデ
ータを、セレクタ23を通して書込みデータバス111
に出力する。アドレスバス103のアドレスと書込みデ
ータバス111のデータに基づき、データメモリ25の
書込みを行う。
【0060】なお、ロード命令又はストア命令におい
て、ポインタとして使用したレジスタのポストインクリ
メント等を行う場合には、さらに、パイプラインレジス
タ6のデータをセレクタ8を通してパイプラインレジス
タ10に格納する。
て、ポインタとして使用したレジスタのポストインクリ
メント等を行う場合には、さらに、パイプラインレジス
タ6のデータをセレクタ8を通してパイプラインレジス
タ10に格納する。
【0061】次に、ライトバック(WB)の場合の動作
について説明する。以下では、演算命令、ロード命令、
ストア命令の場合について説明する。まず、演算命令の
場合には、パイプラインレジスタ10のデータを、セレ
クタ15を通してレジスタファイル1に書き込む。ま
た、ロード命令の場合には、パイプラインレジスタ11
のデータを、セレクタ16を通してレジスタファイル1
に書き込む。
について説明する。以下では、演算命令、ロード命令、
ストア命令の場合について説明する。まず、演算命令の
場合には、パイプラインレジスタ10のデータを、セレ
クタ15を通してレジスタファイル1に書き込む。ま
た、ロード命令の場合には、パイプラインレジスタ11
のデータを、セレクタ16を通してレジスタファイル1
に書き込む。
【0062】なお、ロード命令又はストア命令におい
て、ポインタとして使用したレジスタのポストインクリ
メント等を行う場合には、さらに、パイプラインレジス
タ10のデータをセレクタ15を通してレジスタファイ
ル1に書き込む。
て、ポインタとして使用したレジスタのポストインクリ
メント等を行う場合には、さらに、パイプラインレジス
タ10のデータをセレクタ15を通してレジスタファイ
ル1に書き込む。
【0063】上記の3段パイプライン動作と5段パイプ
ライン動作を切り替えることにより、RISCアーキテ
クチャのマイクロプロセッサのパイプライン動作と、デ
ジタルシグナルプロセッサのパイプライン動作とを切り
替えて動作させることが可能となる。なお、マイクロプ
ロセッサのパイプライン動作に切り替えた場合と、デジ
タルシグナルプロセッサのパイプライン動作に切り替え
た場合とで、パイプラインレジスタに与えられるクロッ
ク周波数を切り替えるようにするのが好ましい。つま
り、マイクロプロセッサのパイプライン動作に切り替え
た場合のクロック周波数を、デジタルシグナルプロセッ
サのパイプライン動作に切り替えた場合のクロック周波
数よりも高くする。
ライン動作を切り替えることにより、RISCアーキテ
クチャのマイクロプロセッサのパイプライン動作と、デ
ジタルシグナルプロセッサのパイプライン動作とを切り
替えて動作させることが可能となる。なお、マイクロプ
ロセッサのパイプライン動作に切り替えた場合と、デジ
タルシグナルプロセッサのパイプライン動作に切り替え
た場合とで、パイプラインレジスタに与えられるクロッ
ク周波数を切り替えるようにするのが好ましい。つま
り、マイクロプロセッサのパイプライン動作に切り替え
た場合のクロック周波数を、デジタルシグナルプロセッ
サのパイプライン動作に切り替えた場合のクロック周波
数よりも高くする。
【0064】以上のように、本実施例のデータ処理装置
A、特に、命令実行回路A3によれば、マイクロプロセ
ッサのデータパスにバイパス手段を設けることにより、
デジタルシグナルプロセッサのパイプライン動作を実現
することができ、マイクロプロセッサとデジタルプロセ
ッサの機能を1つのLSI上に搭載する上で、回路の重
複を防止でき、回路規模の縮小を図ることが可能とな
る。また、従来の場合(上記従来技術1)に、DSP演
算直後にその演算結果をメモリにストアしようとする
と、競合が発生してストールサイクルが生じて処理効率
が低下するという問題を回避することが可能となるた
め、高速なデジタル信号処理を行うためにデジタルシグ
ナルプロセッサとして動作する場合、演算性能を損なう
ことがない。
A、特に、命令実行回路A3によれば、マイクロプロセ
ッサのデータパスにバイパス手段を設けることにより、
デジタルシグナルプロセッサのパイプライン動作を実現
することができ、マイクロプロセッサとデジタルプロセ
ッサの機能を1つのLSI上に搭載する上で、回路の重
複を防止でき、回路規模の縮小を図ることが可能とな
る。また、従来の場合(上記従来技術1)に、DSP演
算直後にその演算結果をメモリにストアしようとする
と、競合が発生してストールサイクルが生じて処理効率
が低下するという問題を回避することが可能となるた
め、高速なデジタル信号処理を行うためにデジタルシグ
ナルプロセッサとして動作する場合、演算性能を損なう
ことがない。
【0065】
【発明の効果】本発明に基づくデータ処理回路及びこれ
を有するデータ処理装置によれば、データパスにパイプ
ラインレジスタと並行に設けられたバイパス手段を設け
ることにより、デジタルシグナルプロセッサのパイプラ
イン動作を実現することができ、マイクロプロセッサと
デジタルプロセッサの機能を1つのLSI上に搭載する
上で、回路の重複を防止でき、回路規模の縮小を図るこ
とが可能となる。また、高速なデジタル信号処理を行う
ためにデジタルシグナルプロセッサとして動作する場
合、演算性能を損なうことがない。
を有するデータ処理装置によれば、データパスにパイプ
ラインレジスタと並行に設けられたバイパス手段を設け
ることにより、デジタルシグナルプロセッサのパイプラ
イン動作を実現することができ、マイクロプロセッサと
デジタルプロセッサの機能を1つのLSI上に搭載する
上で、回路の重複を防止でき、回路規模の縮小を図るこ
とが可能となる。また、高速なデジタル信号処理を行う
ためにデジタルシグナルプロセッサとして動作する場
合、演算性能を損なうことがない。
【図1】本発明の実施例に基づくデータ処理装置の構成
を示すブロック図である。
を示すブロック図である。
【図2】従来の本発明の実施例に基づくデータ処理装置
の動作を示すタイムチャートである。
の動作を示すタイムチャートである。
【図3】従来におけるデータ処理装置の構成を示すブロ
ック図である。
ック図である。
【図4】従来における構成の場合のストールサイクルに
ついて説明する説明図である。
ついて説明する説明図である。
A データ処理装置 A1 命令フェッチ回路 A2 命令解読/パイプライン制御回路 A3 命令実行回路 1 レジスタファイル 2、3、6、7、10、11、22 パイプラインレジ
スタ 4、8、9、12、13、14、15、16、20、2
3 セレクタ 5 演算器 17 アドレス生成回路 18、19 アドレスレジスタ 21 アドレス計算回路 25 データメモリ 107、108、109、110、112 バイパス
スタ 4、8、9、12、13、14、15、16、20、2
3 セレクタ 5 演算器 17 アドレス生成回路 18、19 アドレスレジスタ 21 アドレス計算回路 25 データメモリ 107、108、109、110、112 バイパス
Claims (4)
- 【請求項1】 パイプラインレジスタを有してパイプラ
イン処理を行うデータ処理回路であって、 データパス上に設けられた1又は複数のバイパス手段で
あって、データの経路として、該バイパスを通過する場
合と該パイプラインレジスタに至る場合とを得ることが
できるバイパス手段を有し、マイクロプロセッサのパイ
プライン動作とデジタルシグナルプロセッサのパイプラ
イン動作との切替え動作を可能とすることを特徴とする
データ処理回路。 - 【請求項2】 上記データ処理回路が、上記バイパス手
段からの出力と、上記パイプラインレジスタの出力とを
選択出力する選択手段を有することを特徴とする請求項
1に記載のデータ処理回路。 - 【請求項3】 マイクロプロセッサのパイプライン動作
に切り替えた場合と、デジタルシグナルプロセッサのパ
イプライン動作に切り替えた場合とで、パイプラインレ
ジスタに与えられるクロック周波数を切り替えることを
特徴とする請求項1又は2に記載のデータ処理回路。 - 【請求項4】 データ処理装置であって、 上記請求項1又は2又は3に記載のデータ処理回路と、 上記データ処理回路へのアドレス情報を生成するための
アドレス生成回路であって、上記デジタルシグナルプロ
セッサのパイプライン動作に切り替えた場合のアドレス
生成を行い、演算命令の演算とアドレス計算とを同時に
実行可能とするアドレス生成回路と、を有することを特
徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26880499A JP2001092658A (ja) | 1999-09-22 | 1999-09-22 | データ処理回路及びデータ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26880499A JP2001092658A (ja) | 1999-09-22 | 1999-09-22 | データ処理回路及びデータ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001092658A true JP2001092658A (ja) | 2001-04-06 |
Family
ID=17463508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26880499A Pending JP2001092658A (ja) | 1999-09-22 | 1999-09-22 | データ処理回路及びデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001092658A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012221149A (ja) * | 2011-04-07 | 2012-11-12 | Fujitsu Semiconductor Ltd | リコンフィグ可能な集積回路装置 |
KR101210274B1 (ko) * | 2008-12-19 | 2012-12-10 | 한국전자통신연구원 | 전력 소모 스케일링이 가능한 프로세서 |
JP2014238777A (ja) * | 2013-06-10 | 2014-12-18 | Necプラットフォームズ株式会社 | 処理装置、処理方法、および、プログラム |
-
1999
- 1999-09-22 JP JP26880499A patent/JP2001092658A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101210274B1 (ko) * | 2008-12-19 | 2012-12-10 | 한국전자통신연구원 | 전력 소모 스케일링이 가능한 프로세서 |
JP2012221149A (ja) * | 2011-04-07 | 2012-11-12 | Fujitsu Semiconductor Ltd | リコンフィグ可能な集積回路装置 |
JP2014238777A (ja) * | 2013-06-10 | 2014-12-18 | Necプラットフォームズ株式会社 | 処理装置、処理方法、および、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002333978A (ja) | Vliw型プロセッサ | |
KR20040016829A (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
KR100471794B1 (ko) | 가변파이프라인단수의데이터처리장치 | |
JPH11212786A (ja) | レジスタベースデータ処理のためのデータパスおよび方法 | |
JP2001092662A (ja) | プロセッサコア及びこれを用いたプロセッサ | |
JP3237858B2 (ja) | 演算装置 | |
US20070260857A1 (en) | Electronic Circuit | |
US20240004663A1 (en) | Processing device with vector transformation execution | |
JP3183844B2 (ja) | 可変パイプライン段数のデータ処理装置 | |
US6670895B2 (en) | Method and apparatus for swapping the contents of address registers | |
JP3541623B2 (ja) | データ処理装置 | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
JP2001092658A (ja) | データ処理回路及びデータ処理装置 | |
KR100278136B1 (ko) | 데이타처리장치 및 데이타처리방법 | |
JP2584156B2 (ja) | プログラム制御型プロセッサ | |
JP2861560B2 (ja) | データ処理装置 | |
US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages | |
US20050033939A1 (en) | Address generation | |
JPH11119998A (ja) | 情報処理装置 | |
JP3526773B2 (ja) | マルチプロセッサ装置およびその制御方法 | |
JP3325309B2 (ja) | サブルーチンリターン命令処理装置 | |
JP2925842B2 (ja) | パイプライン処理装置 | |
JPH07200289A (ja) | 情報処理装置 | |
JP2001034603A (ja) | 積和演算処理装置 | |
JPH07200291A (ja) | 可変長パイプライン制御装置 |