(57)【要約】ＣＰＵ処理性能をほとんど低下させずに、ＤＭＡコントローラのモジュール相当分のゲート論理を不要にして、チップ面積を小さくすることができ、またデータ演算処理時のＣＰＵに対する割り込み処理の起動といった余計な切り替えオーバヘッドなどを回避し、高機能なデータ転送処理の処理性能を大幅に向上することができる情報処理装置である。コンフィグラブルスーパースカラマイクロプロセッサにおいて、ＤＭＡ転送要求がない場合は、パイプライン０とパイプライン１を合わせて通常のＣＰＵ命令の処理を実行する。このとき、同時に処理を実行できない場合はパイプライン１側は処理を休止する。ＤＭＡ転送要求がある場合は、パイプライン１側をＤＭＡ処理実行モードに設定し、必要に応じてデータ演算なども含めて、設定された転送語数のＤＭＡ転送処理を実行し、ＤＭＡ転送終了後、通常のＣＰＵ命令実行モードに戻す。
2004023291.tif 000002
【特許請求の範囲】
【請求項１】
複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成の情報処理装置であって、
第１メモリに格納された命令を第１スーパースカラパイプラインに展開して実行する際に、第２スーパースカラパイプラインが命令実行を行えない空きステージが生じた場合に、前記空きステージを用いて第２メモリに格納された命令を実行するように切り替える制御手段を有することを特徴とする情報処理装置。
【請求項２】
複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成の情報処理装置であって、
第１メモリに格納された命令を第１スーパースカラパイプラインに展開して実行する際に、第２スーパースカラパイプラインが命令実行を行えない空きステージが生じた場合に、前記空きステージを用いて第２メモリに格納されたＤＭＡＣコマンドを実行するように切り替える制御手段を有することを特徴とする情報処理装置。
【請求項３】
請求項２記載の情報処理装置において、
前記ＤＭＡＣコマンドは、演算処理したデータを転送可能とすることを特徴とする情報処理装置。
【請求項４】
請求項２記載の情報処理装置において、
前記制御手段は、ＣＰＵ処理とＤＭＡ転送処理とを切り替える際に、前記ＣＰＵ処理を優先する第１モード、前記ＤＭＡ転送処理を優先する第２モード、前記ＤＭＡ転送処理の一部チャネルのみを前記ＣＰＵ処理より優先する第３モード、一定期間毎に優先順位を切り替える第４モードを選択的なモードとして有することを特徴とする情報処理装置。
【請求項５】
請求項２記載の情報処理装置において、
前記制御手段は、ＣＰＵ処理とＤＭＡ転送処理とを切り替える際に、命令実行を行えない空きステージが生じた第２スーパースカラパイプラインに対して前記ＣＰＵ処理と前記ＤＭＡ転送処理のいずれか一方を固定的なモードとして切り替えることを特徴とする情報処理装置。
【請求項６】
請求項２記載の情報処理装置において、
前記制御手段は、ＤＭＡ転送処理の際に、ＤＭＡ転送に必要なソースアドレス、デスティネーションアドレスおよび転送語数と、アドレスラップアラウンド転送に必要な初期値情報とアドレス範囲情報をメモリに格納し、必要な情報のみをキャッシングレジスタにキャッシングすることを特徴とする情報処理装置。
【請求項７】
複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成の情報処理装置であって、
命令実行を行うための命令が格納された第１メモリと、
データ転送を実行するための第２メモリと、
少なくとも第１および第２スーパースカラパイプラインとを有し、
前記第１メモリに格納された命令を前記第１スーパースカラパイプラインに展開して実行する際に、前記第２スーパースカラパイプラインが前記第１メモリに格納された命令実行を行えない空きステージが生じた場合に、前記空きステージを用いて前記第２メモリに格納された命令を実行するように切り替える制御手段を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】  本発明は、情報処理装置に関し、特に複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成のマイクロプロセッサに適用して有効な技術に関する。
【背景技術】  本発明者が検討したところによれば、情報処理装置については、以下のような技術が考えられる。図１４および図１５により、本発明者が本発明の前提として検討した情報処理装置の一例を説明する。
図１４は、本発明者が本発明の前提として検討したマイクロプロセッサの構成の一例を示す。
マイクロプロセッサは、命令フェッチ要求・命令デコード・演算処理・汎用レジスタなどによるデータ保持などを行うＣＰＵ１０、ＤＭＡ転送処理を行うＤＭＡコントローラ１３、命令コードやデータを格納するためのＲＡＭなどで構成される内蔵メモリ１２、ＣＰＵ１０やＤＭＡコントローラ１３のデータ転送を行う内部バス１１、内部バス１１からの外部メモリアクセス要求に応じて外部メモリ制御を行う外部バスコントローラ１４、外部バスコントローラ１４に制御され外部メモリに信号を伝達する外部端子１４１、内部バス１１からの周辺モジュールアクセス要求に応じて周辺モジュールバス１７の制御を行う周辺バスコントローラ１６、マイクロプロセッサ内部に供給する動作クロックを生成するクロック生成回路１５、および各種周辺モジュールから構成される。内部バス１１には、内蔵メモリ１２や外部バスコントローラ１４や周辺バスコントローラ１６が接続される。
各種周辺モジュールは、一般的に、タイマ１８０、シリアル通信などを行うシリアルインタフェース１８１、ポートなどとして使われるポートインタフェース１８２などから成る。
ＣＰＵ１０は、命令フェッチ要求・命令デコードなどを行う命令フェッチユニット１００、演算処理を行う演算器１０１、データ保持を行うレジスタファイル１０２から成る。このＣＰＵ１０は、命令ポインタで指定されたアドレスから、順次命令をフェッチ・デコードし、デコード結果に従って、演算処理や、データのレジスタへの格納、レジスタからメモリなどへのデータの退避などを行う。
ＤＭＡコントローラ１３は、転送元アドレス（以下、ソースアドレスともいう）や転送先アドレス（以下、デスティネーションアドレスともいう）やアドレスラップアラウンド用のアドレスを保持するアドレスポインタ１３０、転送語数を保持するカウンタ１３１、ＤＭＡ転送時にデータを一時的に保持するデータレジスタ１３２を内蔵する。このＤＭＡコントローラ１３は、プロセッサ外部や周辺モジュールからのＤＭＡ転送要求に応じて、アドレスポインタ１３０で示される転送元アドレスから転送先アドレスへのデータ転送を行う。
図１５は、本発明者が本発明の前提として検討したスーパースカラマイクロプロセッサの構成の一例を示す。
スーパースカラマイクロプロセッサは、命令フェッチ要求・命令デコード・演算処理・汎用レジスタなどによるデータ保持を行うＣＰＵ１０ａ、命令コードをキャッシングする命令キャッシュ１９ａ、データをキャッシングするデータキャッシュ１９ｂ、命令コードやデータを格納するためのＲＡＭなどで構成される内蔵メモリ１２ａ、ＤＭＡ転送処理を行うＤＭＡコントローラ１３、ＣＰＵ１０ａからの命令コードフェッチ要求に対して命令コードを転送する命令転送バス１１ａ、ＣＰＵ１０ａからのデータ転送要求に対してデータを転送するデータ転送バス１１ｂおよび１１ｃ、ＤＭＡコントローラ１３や命令キャッシュ１９ａ、データキャッシュ１９ｂからのデータ転送要求に対してデータ転送を行う内部バス１１ｄ、内部バス１１ｄからの外部メモリアクセス要求に応じて外部メモリ制御を行う外部バスコントローラ１４、内部バス１１ｄからの周辺モジュールアクセス要求に応じて周辺モジュールバスの制御を行う周辺バスコントローラ１６などから構成される。なお、周辺モジュールバスや、周辺モジュール、外部端子などは省略してある。
命令転送バス１１ａには、命令キャッシュ１９ａや内蔵メモリ１２ａが接続される。データ転送バス１１ｂおよび１１ｃには、データキャッシュ１９ｂや内蔵メモリ１２ａが接続される。内部バス１１ｄには、内蔵メモリ１２ａや外部バスコントローラ１４や周辺バスコントローラ１６が接続される。
ＣＰＵ１０ａは、命令フェッチ要求・命令デコードなどを行う命令フェッチユニット１００ａ、演算処理を行う演算器１０１ａ、データ保持を行うレジスタファイル１０２ａから成る。このＣＰＵ１０ａは、命令ポインタで指定されたアドレスから、順次命令をフェッチ・デコードし、デコードした結果、同時に複数命令が実行できる場合は、該当する複数命令の演算処理や、データのレジスタへの格納、レジスタからメモリなどへのデータの退避などを行う。
命令キャッシュ１９ａは、外部メモリに格納された、使用頻度の高いアドレスの命令コードのコピーを保持する。また、データキャッシュ１９ｂは、外部メモリに格納された、使用頻度の高いアドレスのデータのコピーを保持し、データの書き換えなどが行われた場合、必要に応じて外部メモリに書き戻す。
内蔵メモリ１２ａは、ＲＡＭなどで構成され、命令コードおよびデータを保持し、必要に応じて内蔵する命令コードおよびデータを読み出す。
なお、このようなマイクロプロセッサに関する技術としては、たとえば特開平４−６８４５９号公報に記載される技術などが挙げられる。この公報には、ＤＭＡ転送処理と演算処理命令を並列に行うことができるようにしたデジタル信号処理プロセッサが開示されている。しかしながら、本発明のような複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成のマイクロプロセッサに適用する技術ではない。
ところで、前記のようなスーパースカラマイクロプロセッサについて、本発明者が検討した結果、以下のようなことが明らかとなった。
たとえば、前記図１５のような命令実行パイプラインを２系統以上有するスーパースカラパイプライン構成のマイクロプロセッサにおいては、命令の並列度は概ね１．３程度とそれほど高くないため、全ての命令実行パイプラインが常時埋まることはなく、リソースの無駄が生じている。具体的には、２本のパイプラインで同時に命令実行ができない場合、１本のパイプラインは休止しているため、リソースの利用効率が低い。一方、ビジネス的には、効率の悪いリソースの使い方は、価格性能比を悪化させるため、プロセッサ上には極力無駄なリソースがなく、常時、適切に動作していることが望ましい。
また、マイクロコントローラと呼ばれる製品群においては、コントローラ上にＣＰＵに加えて、ＤＭＡコントローラを内蔵し、データ転送能力を強化する例が多い。このＤＭＡコントローラの処理内容は、一般的なＣＰＵの処理内容のサブセット的なことが一般的である。この場合、ＤＭＡコントローラは、専用の別モジュールとして構成されているため、面積効率が低い。さらには、データ転送において、単純なＤＭＡ転送だけではなく、転送の際に一種のデータ演算処理を行えると、より効率的なマイクロコントローラが構成できる。
これらにより、本発明者は、スーパースカラパイプラインプロセッサにおいて、使用頻度の低いパイプラインを、データ演算処理も行えるＤＭＡ転送用のＤＭＡコントローラとしても使えれば、専用のＤＭＡコントローラが不要になることで低価格になり、ＣＰＵ処理の性能低下も回避できると考えた。
また、ＤＭＡコントローラを構成する際、アドレスポインタや転送語数などの情報をチャネル分だけ保持する必要があるが、これを全てレジスタとして保持するとチップ上の占有面積が多くなるため、占有面積に対するデータ保持量の効率がよいＲＡＭモジュールなどに情報を保持し、必要なものだけを効率のよいキャッシングアルゴリズムを使って取得することにより、より占有面積を抑えたチップが作成できると考えた。
そこで、本発明の第１の目的は、ＣＰＵ処理性能をほとんど低下させずに、ＤＭＡコントローラのモジュール相当分のゲート論理を不要にして、チップ面積を小さくすることができる情報処理装置を提供することにある。
また、本発明の第２の目的は、データ演算処理時のＣＰＵに対する割り込み処理の起動といった余計な切り替えオーバーヘッドなどを回避し、高機能なデータ転送処理の処理性能を大幅に向上することができる情報処理装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【発明の開示】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成の情報処理装置に適用され、第１メモリに格納された命令を第１スーパースカラパイプラインに展開して実行する際に、第２スーパースカラパイプラインが命令実行を行えない空きステージ（たとえば空きサイクル、空き時間）が生じた場合に、この空きステージ（空きサイクル、空き時間）を用いて第２メモリに格納された命令を実行するように切り替える制御手段を有するものである。また、本発明の情報処理装置においては、第２メモリに格納された命令として、ＤＭＡＣコマンドを実行するようにしたものである。
具体的に、本発明の情報処理装置は、以下のような特徴を有するものである。
（１）スーパースカラプロセッサにおいて、一般的には、一連のＣＰＵ命令の並列実行を行うために構成されている複数のパイプラインの一部を、該当するＣＰＵ処理が行われていない空きステージに、該当するＣＰＵ処理とは別の独立した命令処理を行えるように切り替える制御手段を付加したエンハンストスーパースカラプロセッサ。
（２）スーパースカラプロセッサにおいて、一般的には、一連のＣＰＵ命令の並列実行を行うために構成されている複数のパイプラインの一部を、ＤＭＡ転送用のプログラマブルＤＭＡコントローラとしても使えるように切り替える制御手段を付加したエンハンストスーパースカラプロセッサ。
（３）前記（２）の切り替え制御手段を付加したパイプラインにおいて、ＣＰＵ処理とＤＭＡ転送処理の切り替えを、ＣＰＵ処理優先、ＤＭＡ転送処理優先、ＤＭＡ転送処理の一部チャネルのみをＣＰＵ処理より優先、一定期間毎に優先順位を切り替え、といったモードを持たせたプロセッサ。
（４）前記（２）の、複数パイプラインの一部はＣＰＵ処理とＤＭＡ転送処理の切り替えを、いずれか一方に固定的なモードを持たせたプロセッサ。
（５）ＤＭＡ転送に必要な、ソースアドレス、デスティネーションアドレス、転送語数、アドレスラップアラウンド転送に必要な初期値情報やアドレス範囲情報などを、専用レジスタではなく、ＲＡＭなどのメモリに格納し、必要に応じてキャッシングレジスタに情報をキャッシングすることを特徴とするＤＭＡ転送機能を有するプロセッサ。
（６）前記（２）、（３）、（４）のいずれかのプロセッサにおいて、前記（５）の機能を付加したエンハンストスーパースカラプロセッサ。
前記のように、命令実行パイプラインを２系統以上有するスーパースカラパイプライン構成のマイクロプロセッサにおいては、一般に命令の並列度は常に全ての命令実行パイプラインを埋めるほど高くない。この時々空いてしまうパイプラインを、データ演算処理も行えるＤＭＡ転送用のＤＭＡコントローラとしても使うことにより、ＣＰＵ処理性能の低下を回避しながら、専用のＤＭＡコントローラが不要になることで低価格になり、さらに、データ転送処理と同時に所望のデータ演算なども行えることにより、余計なＣＰＵ処理を起動するためのオーバーヘッドの大きい割り込み処理なども不要な、データ転送能力の強力なマイクロコントローラを実現することができる。
このとき、ＤＭＡ転送の場合の、転送要求に対する応答速度の要求が著しく速くはないことを利用して、ＤＭＡ転送用の各種情報を専用レジスタではなく、データ保持密度の高い、たとえばＲＡＭなどに置き、必要な情報のみをキャッシングして使うことにより、さらにＤＭＡコントローラとしてのチップ上の占有面積を抑えることができる。
【図面の簡単な説明】  図１は本発明の一実施の形態の情報処理装置（コンフィグラブルスーパースカラマイクロプロセッサ）を示す構成図、図２は本実施の形態において、ＣＰＵレジスタファイルを示す構成図、図３はＤＭＡＣレジスタファイルを示す構成図、図４はキャッシング機構付きＤＭＡＣレジスタファイルを示す構成図、図５はパイプラインのステージ構成を示す説明図、図６は各ステージの処理内容を示す説明図、図７はパイプライン１側のＣＰＵ命令実行およびＤＭＡ転送処理の切り替え制御を示すフロー図、図８はパイプライン０およびパイプライン１のＣＰＵ命令実行およびＤＭＡ転送処理の切り替えを含む処理の流れを示す説明図、図９はパイプライン１のＤＭＡ転送処理に関するモード設定を示す説明図、図１０は簡易データ処理を伴うＤＭＡ転送処理を示す説明図、図１１は簡易データ処理を伴うＤＭＡ転送処理を示すフロー図、図１２はＤＭＡ転送時のＤＭＡ転送情報のキャッシング動作を示す説明図、図１３はバス構成を適用したコンフィグラブルスーパースカラマイクロプロセッサを示す構成図、図１４は本発明の前提として検討したマイクロプロセッサを示す構成図、図１５は本発明の前提として検討したスーパースカラマイクロプロセッサを示す構成図である。
【発明を実施するための最良の形態】  以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
まず、図１により、本発明の一実施の形態の情報処理装置の構成の一例を説明する。図１は本実施の形態の情報処理装置の構成図を示す。
本実施の形態の情報処理装置は、たとえばコンフィグラブル（Ｃｏｎｆｉｇｕｒａｂｌｅ）スーパースカラマイクロプロセッサとされ、命令フェッチ要求・命令デコード・演算処理・汎用レジスタなどによるデータ保持・ＤＭＡ転送要求を受けてＤＭＡ転送処理を行うＥＣＰＵ（エンハンストＣＰＵ）１０ｂ、命令コードを格納し、ＲＡＭや命令キャッシュなどで構成される命令格納メモリ他１２０ａ、データを格納し、ＲＡＭやデータキャッシュなどで構成されるデータメモリ他１２０ｃおよび１２０ｄ、ＤＭＡＣコマンド群を格納するＤＭＡＣコマンド格納メモリ１２０ｂ、ＥＣＰＵ１０ｂからの命令コードやデータ転送要求に対して、命令格納メモリ他１２０ａやデータメモリ他１２０ｃや１２０ｄとの間で、命令コードやデータ転送を行うスイッチマトリックス（ＳＷＭＸ）１１ｅなどから構成される。
なお、スイッチマトリックス１１ｅは、特に限定されているわけではなく、通常のバス構成でも構わない。通常のバス構成にした場合は、たとえば後述する図１３に示すような構成となる。また、周辺モジュールバスや、周辺モジュール、外部端子などは省略してある。
スイッチマトリックスモジュール（ＳＷＭＸ）１１ｅは、スイッチマトリックスコントローラ１１ｅ１およびデータセレクタとしての機能を有するスイッチマトリックス１１ｅ０から成る。このスイッチマトリックスコントローラ１１ｅ１は、特に限定はされないが、アドレス情報やパイプラインコントローラ１００ｂ２の制御情報により、どのメモリとの間で命令コードやデータ転送を行うかを制御する。
ＥＣＰＵ１０ｂは、命令アドレスを制御する命令ポインタ１００ｂ４、ＤＭＡＣ制御コマンドアドレスを制御するＤＭＡＣポインタ１００ｂ５、命令実行パイプライン１側のＣＰＵ処理／ＤＭＡ転送処理の切り替え制御などを行うパイプラインコントローラ１００ｂ２、パイプラインコントローラ１００ｂ２の制御を受けて命令／コマンドデコーダ１００ｂ１に送り込む情報を切り替えるセレクタ１００ｂ３、パイプライン０側の命令コードのデコードを行う命令デコーダ１００ｂ０、パイプライン１側の命令コードおよびＤＭＡＣ制御コマンドのデコードを行う命令／コマンドデコーダ１００ｂ１、ＤＭＡ要求の情報を保持して順次ＤＭＡ転送処理を起動するＤＭＡリクエストキュー１００ｂ６、演算処理を行う演算器（ＡＬＵ０）１０１ｂ０および（ＡＬＵ１）１０１ｂ１、ＣＰＵとしてのデータ保持を行うＣＰＵレジスタファイル１０２ｂ０、ＤＭＡＣとしてのデータ保持を行うＤＭＡＣレジスタファイル１０２ｂ１、パイプラインコントローラ１００ｂ２の制御を受けて演算器１０１ｂ１に供給するデータを選択するセレクタ１０２ｂ２から成る。
このＥＣＰＵ１０ｂは、命令ポインタで指定されたアドレスから、順次命令をフェッチ・デコードし、デコードした結果をもとに同時に複数命令が実行できる場合は、該当する複数命令の演算処理や、データのレジスタへの格納、レジスタからメモリなどへのデータの退避などを行う。また、ＤＭＡ転送要求がある場合は、後述する図９で示されるようなモードに従って、パイプライン１側（主な構成要素は、ＤＭＡＣポインタ１００ｂ５、命令ポインタ１００ｂ４の一部、命令／コマンドデコーダ１００ｂ１、演算器１０１ｂ１、ＣＰＵレジスタファイル１０２ｂ０の一部、ＤＭＡＣレジスタファイル１０２ｂ１、セレクタ１０２ｂ２）で、必要に応じてデータ演算も行いながら、ＤＭＡデータ転送処理を行う。
パイプラインコントローラ１００ｂ２は、ＤＭＡリクエストキュー１００ｂ６からのＤＭＡ転送要求、パイプライン１側の命令／コマンドデコーダ１００ｂ１のデコード結果などを受けて、主にパイプライン１側の動作を制御する。また、必要に応じて、スイッチマトリックスコントローラ１１ｅ１を介してスイッチマトリックス１１ｅ０の制御を行う。
ＤＭＡＣコマンド格納メモリ１２０ｂは、ＲＡＭなどで構成され、ＣＰＵ用の命令コードと同様に順次実行されるようなＤＭＡＣコマンドコードを保持し、必要に応じて内蔵するＤＭＡＣコマンドコードを読み出す。
次に、図２により、本実施の形態において、ＥＣＰＵを構成するＣＰＵレジスタファイルの構成の一例を説明する。図２はＣＰＵレジスタファイルの構成図を示す。
ＣＰＵレジスタファイル１０２ｂ０は、レジスタ１０２ｂ００、書き込み用のセレクタ１０２ｂ０１、デコーダ１０２ｂ０２、ＡＮＤゲート１０２ｂ０３、読み出し用のセレクタ１０２ｂ０４などから構成される。この例では、書き込みが２ポート、読み出しが４ポートであり、これらが同時に動作可能となる。
デコーダ１０２ｂ０２は、パイプライン０およびパイプライン１からのレジスタ番号の指示情報１０２ｂ０６を受け、レジスタ読み出し用セレクタ１０２ｂ０４の制御および、クロック１０２ｂ０５と合わせてレジスタ書き込み信号の生成を行う。また、パイプライン０およびパイプライン１からの入力情報制御１０２ｂ０６により、レジスタへの書き込みデータを選択するセレクタ１０２ｂ０１の制御を行う。レジスタへの書き込みデータとしては、ＡＬＵ０やＡＬＵ１といった演算器の出力１０２ｂ０８やメモリからの読み出しデータ１０２ｂ０７が選択できる。
次に、図３により、ＤＭＡＣレジスタファイルの構成の一例を説明する。図３はＤＭＡＣレジスタファイルの構成図を示す。
ＤＭＡＣレジスタファイル１０２ｂ１は、ソースアドレスのレジスタ１０２ｂ１００、デスティネーションアドレスのレジスタ１０２ｂ１０１、カウンタのレジスタ１０２ｂ１０２、書き込み用のセレクタ１０２ｂ１１、デコーダ１０２ｂ１２、ＡＮＤゲート１０２ｂ１３、読み出し用のセレクタ１０２ｂ１４などから構成される。
デコーダ１０２ｂ１２は、パイプライン１からのレジスタ番号の指示情報１０２ｂ１６を受け、レジスタ読み出し用セレクタ１０２ｂ１４の制御および、クロック１０２ｂ１５と合わせてレジスタ書き込み信号の生成を行う。また、パイプライン１からの入力情報制御１０２ｂ１６により、レジスタへの書き込みデータを選択するセレクタ１０２ｂ１１の制御を行う。レジスタへの書き込みデータとしては、ＡＬＵ１演算器の出力１０２ｂ１８やメモリからの読み出しデータ１０２ｂ１７が選択できる。また、ソースアドレスのレジスタ１０２ｂ１００、デスティネーションアドレスのレジスタ１０２ｂ１０１、カウンタのレジスタ１０２ｂ１０２などのＤＭＡ転送に必要なレジスタについては、転送に必要なチャネル数分有している。
次に、図４により、キャッシング機構付きＤＭＡＣレジスタファイルの構成の一例を説明する。図４はキャッシング機構付きＤＭＡＣレジスタファイルの構成図を示す。
キャッシング機構付きＤＭＡＣレジスタファイルは、前記ＤＭＡＣレジスタファイル１０２ｂ１の構成に対して、キャッシングレジスタ番号格納レジスタ１０２ｃ１６０、キャッシングバリッド情報格納レジスタ１０２ｃ１６１が付加され、ソースアドレスのレジスタ１０２ｃ１００、デスティネーションアドレスのレジスタ１０２ｃ１０１、カウンタのレジスタ１０２ｃ１０２などの働きが異なっている。この構成例では、ＤＭＡ転送に必要なレジスタをチャネル数分全て内蔵することはせず、必要な情報はメモリに格納する。
キャッシング機構付きＤＭＡＣレジスタファイルには、メモリに格納されている情報のキャッシュレジスタとしてコピーを保持する。キャッシングレジスタ番号格納レジスタ１０２ｃ１６０に、現在保持しているＤＭＡ転送用情報のチャネル番号を保持し、キャッシングバリッド情報格納レジスタ１０２ｃ１６１で保持している情報がＶａｌｉｄかどうかを制御する。
保持するアドレス情報やカウンタ情報は、特に限定はされないが、アドレスポインタとして使われるソースアドレスａ，ｂ，ｃといったキャッシングソースアドレスポインタ１０２ｃ１００やデスティネーションアドレスａ，ｂ，ｃといったキャッシングデスティネーションアドレスポインタ１０２ｃ１０１、転送語数カウンタとして使われるカウンタａ，ｂ，ｃといったキャッシングカウンタレジスタ１０２ｃ１０２に格納され、随時更新される。
また、格納しているあるチャネル情報を別のチャネルの情報に入れ替える際は、まず、キャッシングレジスタのデータをメモリに書き戻して、その後、別のチャネルの情報をメモリから読み込んで設定する。
このキャッシングレジスタの入れ替えアルゴリズムは、後述する図９に示すようなモード設定に依存し、一部だけ常駐するモードや、各チャネルの優先順位が順に入れ替わるラウンドロビンモードおよび、ＬＲＵと呼ばれる使用頻度の低いものを優先的に入れ替えるアルゴリズムなどの組み合わせになる。
続いて、図５により、本実施の形態において、パイプラインのステージ構成の一例を説明する。併せて、図６により、各ステージの処理内容の一例を説明する。図５はパイプラインのステージ構成の説明図、図６は各ステージの処理内容の説明図をそれぞれ示す。
本実施の形態のパイプライン制御においては、特にメモリに格納された命令をパイプラインに展開して実行する際に、別のパイプラインが命令実行を行えない空きステージが生じた場合に、この空きステージを用いて別のメモリに格納された命令を実行するように切り替えることが可能となっている。
パイプライン０側は、一般的なマイクロプロセッサのパイプラインと同様の５段ステージ構成となる。すなわち、ＣＰＵ命令処理専用となる。また、パイプライン１側は、一般的なマイクロプロセッサのパイプラインと同様の５段ステージ構成として動作する場合と、ＤＭＡＣとして５段ステージ構成で動作する場合がある。すなわち、ＣＰＵ命令処理／インテリジェントＤＭＡ転送処理兼用となる。
各ステージの処理内容は、図６に示すように、ＩＦが命令フェッチステージ、ＩＤが命令デコード＆レジスタ読み出しステージ、ＥＸが演算・アドレス計算ステージ、ＭＡがメモリアクセスステージ、ＷＢがレジスタ書き込みステージ、ＣＲがＤＭＡＣ制御コマンド読み出しステージ、ＣＤがＤＭＡＣ制御コマンドデコード＆レジスタ読み出しステージをそれぞれ表す。
次に、図７により、ＤＭＡ処理優先モードの場合の、パイプライン１側のＣＰＵ命令実行およびＤＭＡ転送処理の切り替え制御のフローの一例を説明する。図７はパイプライン１側のＣＰＵ命令実行およびＤＭＡ転送処理の切り替え制御のフロー図を示す。
まず、ＤＭＡ転送要求があるかどうかを判定し（ステップＳ１）、要求がある場合（Ｙｅｓ）は、パイプライン１側をＤＭＡ処理実行モードに設定し（ステップＳ２）、必要に応じてデータ演算なども含めて、設定された転送語数のＤＭＡ転送処理を終了するまで繰り返して実行する（ステップＳ３，Ｓ４）。この後、特に制限はされないが、ＤＭＡ転送終了時に転送終了を示すフラグの設定などを行い（ステップＳ５）、ＤＭＡ転送処理を終了する。なお、この設定されたフラグにより、割り込み要求信号を駆動したり、ソフトウェアによるポーリングで終了を確認したりする。
一方、ステップＳ１の判定において、ＤＭＡ転送要求がない場合（Ｎｏ）は、パイプライン１側をＣＰＵ命令実行モードに設定し（ステップＳ６）、パイプライン０と同時実行可能かどうかを判定し（ステップＳ７）、可能な場合（Ｙｅｓ）はＣＰＵ命令を実行して（ステップＳ８）、パイプライン０と合わせて通常のスーパースカラマイクロプロセッサとして動作する。
次に、図８により、パイプライン０およびパイプライン１のＣＰＵ命令実行およびＤＭＡ転送処理の切り替えを含む処理の流れの一例を説明する。併せて、図９により、パイプライン１のＤＭＡ転送処理に関するモード設定の一例を説明する。図８はパイプライン０およびパイプライン１のＣＰＵ命令実行およびＤＭＡ転送処理の切り替えを含む処理の流れの説明図、図９はパイプライン１のＤＭＡ転送処理に関するモード設定の説明図をそれぞれ示す。これらのモード設定のための情報は、ＥＣＰＵ１０ｂに含まれる図示はしない制御レジスタに設定する、もしくは命令を実行することによってそれぞれのモードを切り替えることが可能になる。
ＤＭＡ転送要求がない場合は、パイプライン０とパイプライン１を合わせて通常のスーパースカラマイクロプロセッサとしてＣＰＵ命令の処理を実行する。このとき、パイプライン０側とパイプライン１側で実行するＣＰＵ命令によっては、同時に処理を実行できない場合があり、その場合はパイプライン１側は処理を休止する。
ＤＭＡ転送要求がある場合は、モード設定にもよるが、パイプライン１側をＤＭＡ処理実行モードに設定し、必要に応じてデータ演算なども含めて、設定された転送語数のＤＭＡ転送処理を実行し、ＤＭＡ転送終了後、通常のＣＰＵ命令実行モードに戻す。すなわち、ＤＭＡ転送要求があった時点で、パイプライン１側のレジスタファイルをＣＰＵレジスタファイルからＤＭＡＣレジスタファイルに切り替え、ＤＭＡ転送処理が終了したらＣＰＵレジスタファイルに切り替える。
パイプライン１のＤＭＡ処理に関するモード設定は、図９（ａ）に示すように、モード０がＤＭＡ処理禁止、モード１がＤＭＡ処理許可の設定となる。さらに、ＤＭＡ処理許可については、図９（ｂ）に示すように、モード０がＣＰＵ処理優先、モード１が最優先ＤＭＡチャネルのみＣＰＵ処理より優先、モード２が最優先およびその次のＤＭＡチャネルのみＣＰＵ処理より優先、モード３が一定時間毎にＣＰＵ処理優先とＤＭＡ処理優先モードを切り替え、モード４が一定時間毎にＣＰＵ処理優先とモード１ないし２を切り替え、モード５が制御信号によりＣＰＵ処理優先とＤＭＡ処理優先モードを切り替え、モード６が制御信号によりＣＰＵ処理優先とモード１ないし２を切り替え、モード７がＤＭＡ処理優先の各モードがある。
さらに、ＤＭＡチャネル（ｃｈ．）間の優先順位については、図９（ｃ）に示すように、モード０がチャネル０＞チャネル１＞・・・＞チャネルｎ−１で固定、モード１がラウンドロビン、モード２がチャネル０のみ固定で、チャネル１以下はラウンドロビン、モード３がチャネル０、チャネル１のみ固定で、チャネル２以下はラウンドロビンとなる。ラウンドロビンとは、複数チャネルの優先順位が順に変わっていくことを表す。
次に、表１により、ＲＡＭを用いたＤＭＡＣコマンドメモリの構成の一例を説明する。
ＲＡＭ上には、ＤＭＡ転送に必要な情報の格納領域を確保し、ＤＭＡ転送処理のプログラムを格納する。この例の場合、チャネル０は単純なＤＭＡ転送処理を行い、チャネル１はデータ転送時に付加的なデータ処理を同時に行える。ＤＭＡＣコマンドメモリとして、内蔵ＲＡＭを用意すれば、コマンドメモリ兼ＤＭＡ情報格納エリアとして使用可能である。
【表１】
2004023291.tif 000003
次に、図１０および図１１により、簡易データ処理を伴うＤＭＡ転送処理の一例を説明する。図１０は簡易データ処理を伴うＤＭＡ転送処理の説明図、図１１はそのフロー図をそれぞれ示す。
この例では、入力データの上位ビットの“０”部分を取り除くパッキング処理をしながら、パッキングデータを単位サイズ毎の出力データとしてＤＭＡ転送処理を行っている。すなわち、ＤＭＡ転送要求により起動し、まずパイプライン１をＤＭＡ処理実行モードに設定する（ステップＳ１１）。そして、ソースアドレスから入力データを読み込み（ステップＳ１２）、この読み込んだデータの上位ビットの“０”を読み飛ばして左詰し（ステップＳ１３）、この左詰したパッキングデータを既存データに連結して書き込む（ステップＳ１４）。この処理を、転送データが終了するまで繰り返して行い（ステップＳ１５）、終了した時点でＤＭＡ転送終了フラグをセットして終了となる（ステップＳ１６）。
これにより、従来行われていた、データパッキング処理や、ソフトウェアによる、ＤＭＡ転送終了時にＣＰＵをオーバーヘッドの大きい割り込み要求などで起動し、不要な“０”部分を取り除く処理を別途行わせるといった余計な処理を行わなくて済み、システム性能の向上が見込まれる。
次に、表２により、ＤＭＡ転送コントローラにキャッシングレジスタを搭載した場合のＤＭＡ転送プログラムの一例を説明する。
この例では、キャッシングレジスタのヒット／ミスの判定と情報の設定を、Ｉｄｄｍａｒという命令にて行っている。
【表２】
2004023291.tif 000004
次に、図１２により、ＤＭＡ転送コントローラにキャッシングレジスタを１セット搭載した場合の、ＤＭＡ転送時のＤＭＡ転送情報のキャッシングの動作の一例を説明する。図１２はＤＭＡ転送時のＤＭＡ転送情報のキャッシングの動作の説明図を示す。
この例では、パイプライン１の動作において、チャネル０のＤＭＡ要求、続けてチャネル０のＤＭＡ要求があり、その後、チャネル１のＤＭＡ要求があった場合を示している。この際に、ＤＭＡ転送後のＣＰＵ処理においては、命令の組み合わせにより一時的に命令処理を休止することがある。
この例の場合に、チャネル０のＤＭＡ転送要求が連続したため、１回目はＤＭＡ転送情報をメモリなどからロードするが、２回目のＤＭＡ転送情報はメモリなどからロードせず、キャッシングされている情報を使用しており、応答速度の改善および低消費電力化が見込める。その後、チャネル１のＤＭＡ転送要求が発生しているため、チャネル０のＤＭＡ転送情報をメモリなどに退避してから、チャネル１のＤＭＡ転送情報をキャッシングレジスタにコピーしている。
次に、図１３により、バス構成を適用したコンフィグラブルスーパースカラマイクロプロセッサの構成の一例を説明する。図１３はバス構成を適用したコンフィグラブルスーパースカラマイクロプロセッサの構成図を示す。
バス構成を適用したコンフィグラブルスーパースカラマイクロプロセッサは、前記図１に示したスイッチマトリックスモジュール（ＳＷＭＸ）をバス構成に代えた構成であり、ＥＣＰＵ１０ｂからの命令コードフェッチ要求に対して命令コードを転送する命令転送バス１１０ａ、ＥＣＰＵ１０ｂからのデータ転送要求に対してデータを転送するデータ転送バス１１０ｂおよび１１０ｃから成る。他の構成および動作は、前記図１と同様である。
以上説明したように、本実施の形態のコンフィグラブルスーパースカラマイクロプロセッサによれば、ＣＰＵ処理用のパイプライン機構によって、ＣＰＵ処理の空き時間などにＤＭＡ転送処理を行うことにより、ＣＰＵ処理性能をほとんど低下させずに、ＤＭＡコントローラのモジュール相当分のゲート論理が不要になり、チップ面積が小さくなる。
また、従来の汎用のＤＭＡコントローラの場合、ＤＭＡ転送処理と同時にデータ演算処理を行うことは難しく、本実施の形態のプログラマブルＤＭＡ転送機能により、ＤＭＡデータ転送とデータ演算を連続して行えるため、データ演算処理時のＣＰＵに対する割り込み処理の起動といった余計な切り替えオーバヘッドなどが回避でき、高機能なデータ転送処理の処理性能が大幅に向上できる。
この結果、製品全体として、ＤＭＡコントローラのモジュール相当分のチップ面積削減を可能とする。さらに、高機能・高性能データ転送機能により、演算を伴うようなデータ転送処理を行う場合、システム性能が大幅に向上する。また、内部バスなどに接続されるバスマスタの個数が減るため、負荷容量的にも、レイアウト的にも、負荷が減り、動作速度向上も期待できる。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
たとえば、スーパースカラプロセッサの命令実行パイプラインは、２本に限定されるものではなく、３本以上のパイプラインを有する場合にも適用可能である。パイプラインの本数が多くなると、ＣＰＵ命令を同時に行うスーパースカラマイクロプロセッサとしては、同時に各パイプラインを途切れなく動作させられる確立は下がるが、空いているパイプラインを別の処理に充てられるため、さらにＤＭＡ転送能力の高いマイクロプロセッサを構成することができる。
【産業上の利用可能性】  以上のように、本発明にかかる情報処理装置は、特に複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成のマイクロプロセッサや、組み込み分野を主なターゲットとする高性能マイクロコントローラに適用して有用であり、さらに信号処理を行うための処理プロセッサにおいての、インテリジェントデータ転送コントローラなどにも広く適用することができる。
【図１】
2004023291.tif 000005
【図２】
2004023291.tif 000006
【図３】
2004023291.tif 000007
【図４】
2004023291.tif 000008
【図５】
2004023291.tif 000009
【図６】
2004023291.tif 000010
【図７】
2004023291.tif 000011
【図８】
2004023291.tif 000012
【図９】
2004023291.tif 000013
【図１０】
2004023291.tif 000014
【図１１】
2004023291.tif 000015
【図１２】
2004023291.tif 000016
【図１３】
2004023291.tif 000017
【図１４】
2004023291.tif 000018
【図１５】
2004023291.tif 000019
【手続補正書】
【提出日】平成15年2月14日(2003.2.14)
【手続補正００１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】（削除）
【請求項２】複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成の情報処理装置であって、
第１メモリに格納された命令を第１スーパースカラパイプラインに展開して実行する際に、第２スーパースカラパイプラインが命令実行を行えない空きステージが生じた場合に、前記空きステージを用いて第２メモリに格納されたＤＭＡＣコマンドを実行するように切り替える制御手段を有し、
前記制御手段は複数の制御モードを有しており、前記制御モードが第１制御モードの場合は前記第２メモリに格納されたＤＭＡＣコマンドを実行するように切り替えることを禁止し、第２制御モードの場合は切り替えることを許可することを特徴とする情報処理装置。
【請求項３】請求項２記載の情報処理装置において、
前記ＤＭＡＣコマンドは、演算処理したデータを転送可能とすることを特徴とする情報処理装置。
【請求項４】請求項２記載の情報処理装置において、
前記制御手段は、前記第２制御モードにおいてＣＰＵ処理とＤＭＡ転送処理とを切り替える際に、前記ＣＰＵ処理を優先する第１モード、前記ＤＭＡ転送処理を優先する第２モード、前記ＤＭＡ転送処理の一部チャネルのみを前記ＣＰＵ処理より優先する第３モード、一定期間毎に優先順位を切り替える第４モードを選択的なモードとして有することを特徴とする情報処理装置。
【請求項５】（削除）
【請求項６】請求項２記載の情報処理装置において、
前記制御手段は、ＤＭＡ転送処理の際に、ＤＭＡ転送に必要なソースアドレス、デスティネーションアドレスおよび転送語数と、アドレスラップアラウンド転送に必要な初期値情報とアドレス範囲情報をメモリに格納し、必要な情報のみをキャツシングレジスタにキャッシングすることを特徴とする情報処理装置。
【請求項７】複数系統の命令実行パイプラインを有するスーパースカラパイプライン構成の情報処理装置であって、
命令実行を行うための命令が格納された第１メモリと、
データ転送を実行するための第２メモリと、
少なくとも第１および第２スーパースカラパイプラインとを有し、
前記第１メモリに格納された命令を前記第１スーパースカラパイプラインに展開して実行する際に、前記第２スーパースカラパイプラインが前記第１メモリに格納された命令実行を行えない空きステージが生じた場合に、前記空きステージを用いて前記第２メモリに格納された命令を実行するように切り替える制御手段を有し、
前記制御手段は複数の制御モードを有しており、前記制御モードが第１制御モードの場合は前記第２メモリに格納された命令を実行するように切り替えることを禁止し、第２制御モードの場合は前記第２メモリに格納された命令を実行するために切り替えることを許可することを特徴とする情報処理装置。
【請求項８】請求項７記載の情報処理装置において、
前記第２メモリに格納された命令は、前記第２スーパースカラパイプラインで実行可能なデータ転送制御に関する命令であることを特徴とする情報処理装置。




【国際調査報告】
2004023291.tif 000020
2004023291.tif 000021