説明

データ処理システムおよびその制御方法

【課題】 パイプライン動作に障害を与えることなく、異なるアーキテクチャに対応する命令が混在したプログラムを実行できるデータ処理装置を提供する。
【解決手段】 DECステージ13、EXステージ14およびWBステージ15の構成を変更できるアーキテクチャ制御ユニット20を有するプロセッサ1を提供する。アーキテクチャ制御ユニット20は、IFステージ11でフェッチした命令19に対応するアーキテクチャ情報29により、パイプライン10を構成するステージ13〜15を、それぞれのステージにおいて命令19を処理するタイミングで、それぞれのステージ13〜15の構成を変更する。したがって、パイプライン10の流れを止めずに、アーキテクチャの異なる命令を実行できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アーキテクチャの異なるデータ処理システム用の命令あるいは命令セットを含むプログラムを、柔軟に実行することができるデータ処理システムおよびその制御方法に関するものである。
【背景技術】
【0002】
コンピュータの機能的構造あるいは物理的構造をアーキテクチャと称しており、コンピュータシステムのソフトウェアとハードウェア全体の機能を決定する重要なファクタの1つである。ハードウェアの構成が異なれば、それを制御するためのソフトウェアの命令も異なる。ソフトウェア設計の容易化、資産の利用などのために、命令を共通にする努力は常に行われているが、新しい機能を搭載したハードウェアを制御したり、目的の異なる機能を搭載したハードウェアを制御するために異なる命令が採用されることはある。また、同じ命令が、ハードウェアに対して異なる処理の実行を要求するものであることもある。特に、ハードウェアを直接制御する機械語に近い命令はアーキテクチャの影響を受けるので、命令が全て同一であるというケースは少ない。
【特許文献1】特開2003−167730号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
あるアプリケーションプログラムを異なるアーキテクチャのハードウェアで実行したいという要望がある。また、アプリケーションプログラムをより容易に開発したり、アプリケーションプログラムの一部を、その処理を実行するのに適した異なるアーキテクチャにより実行されるように設計したいという要望もある。
【0004】
特開2003−167730号公報においては、アプリケーション毎に最適化された命令セットで処理を行うことが可能なマイクロプロセッサとして、同一チップ上にデータパス部と制御部とを有し、その制御部をFPGAなどのプログラマブルロジックで構成し、データパス部はプログラマブルロジックではないハードウェアロジックで構成したマイクロプロセッサを提供することが開示されている。この技術を用いれば、アプリケーションプログラムに応じた命令セットで処理を行わせるように、マイクロプロセッサのプログラマブルロジックを書き換えることができる。しかしながら、FPGAのプログラマブルロジックを書き換えるためには処理を中断する必要があるので、1つのアプリケーションプログラムの中に複数のアーキテクチャの命令を含めることは不可能である。
【0005】
近年、動的に再構成可能なプロセッサが開発されており、1サイクルでロジックを書き換えることができる。したがって、FPGAの代わりに、動的に再構成可能なプロセッサを用いることにより、1つのアプリケーションプログラム中に複数のアーキテクチャの命令セットの命令を含めることができる可能性がある。しかしながら、マイクロプロセッサの多くは実質的な処理時間を短縮するために、パイプライン動作により処理が進むように設計されている。パイプラインの分割方法はいろいろな方式が考えられるが、特開2003−167730号公報においては、命令フェッチIF、命令デコードID、演算実行EX、メモリアクセスMEM、レジスタ書き込みWBの5つのステージに分割して、1クロックサイクルあたりに処理しなければならない内容を簡単にしたり、クロック周波数を引き上げて処理スピードを高速化している。
【0006】
したがって、制御部のロジックを1クロックサイクルで書き換えできるとしても、プログラム中の命令はパイプライン動作を制御する必要がある都合上、1つの命令によるパイプライン動作が終了するまでは、異なるアーキテクチャの命令セットをデコードできるように制御部を書き換えることができない。このため、制御部のロジックを書き換えるためにはパイプライン動作をいったん終え、リスタートする必要がある。したがって、リスタートのためにパイプラインが消費するクロックサイクル分の遅れが発生し、予定したアプリケーションプログラムとしての機能が得られなかったり、異なるアーキテクチャ用のプログラムを完全にエミュレートすることができないなどの問題が発生する。
【0007】
そこで、本発明においては、パイプライン動作をリスタートさせることなく、パイプライン動作に障害を与えず、異なるアーキテクチャに対応する命令、すなわち、異なる命令セットに属する命令が混在したアプリケーションプログラムを実行できるデータ処理システムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明においては、パイプライン動作により命令をフェッチして処理するデータ処理システムであって、パイプラインを構成するように接続される複数の回路要素と、パイプラインのステージの少なくともいずれかの構成を、フェッチした命令を処理するタイミングに合わせて、フェッチした命令に対応するアーキテクチャタイプに基づき変更するコンフィグレーション制御ユニットとを有する、データ処理システムを提供する。このデータ処理システムにおいては、パイプラインの各ステージの構成を、フェッチした命令を処理するタイミングで変更することができる。このため、パイプライン動作をリセットしたり、中断したりすることなく、異なるアーキテクチャの命令セットの命令が混在したアプリケーションプログラムを実行できる。
【0009】
本発明のデータ処理システムの制御方法は、パイプラインのステージの少なくともいずれかの構成を、フェッチした命令を処理するタイミングに合わせて、フェッチした命令に対応するアーキテクチャタイプに基づき変更する構成変更工程を有する。変更の対象となるものは、主に各ステージの処理を実現するためのデータパス構成であり、ALUなどの演算単位の機能を変更したり、ルックアップテーブル(LUT)の内容を変更したりすることも含まれる。
【0010】
アプリケーションプログラムに含まれる命令の属する命令セットのタイプが、ブロック単位あるいはファンクションユニット単位で異なる場合は、ブロック単位あるいはファンクションユニット単位で、パイプラインのアーキテクチャを交換すれば良い。したがって、アーキテクチャタイプを含む情報も、ブロック単位あるいはファンクションユニット単位で判断されるようにしても良い。しかしながら、その場合、アーキテクチャタイプを判断するために、ブロック単位あるいはファンクションユニット単位の命令のグループを判断する機能をデータ処理システムが持つ必要があり、構造および制御が複雑になる。さらに、命令単位で、異なる命令セットに属する命令が混在しているアプリケーションプログラムは処理できない。これに対し、パイプラインの各ステージを、フェッチした命令を処理するタイミングに合わせて、その命令のアーキテクチャタイプに合致するようにデータパスの構成を変更することにより、シンプルな回路構成および制御により、異なる命令セットに属する命令が命令単位で混在しているアプリケーションプログラムを処理できる。
【0011】
フェッチした命令に対応するアーキテクチャタイプの情報を得る1つの形態は、パイプラインが、フェッチした命令に対応するアーキテクチャタイプを判別するアーキテクチャ判別ステージを備えていることである。命令と、その命令に対応するアーキテクチャタイプの情報が予めセットになって格納されているアプリケーションプログラムを提供することが可能である。その場合は、パイプラインが、命令と共に、その命令に対応するアーキテクチャタイプの情報をフェッチするフェッチステージを備えていることにより、アーキテクチャタイプの情報を取得できる。
【0012】
アーキテクチャタイプの情報をパイプラインのサイクルにより転送することで、フェッチした命令が各ステージで実行されるタイミングに合わせて、パイプラインの各ステージの構成を変更できる。クロック同期のパイプライン動作では、パイプラインの各ステージは、パイプラインのサイクルに従い制御され、各ステージにおいて消費されるサイクルは予め判明している。したがって、各ステージの構成を、パイプラインのサイクルに従い変更することにより、各ステージの動作の制御と、各ステージの構成の制御とを独立して行なうことが可能であり、データフローコンピュータのように、処理ユニット単位で待ち合わせ機構を設けて発火制御する必要はない。
【0013】
パイプラインが、フェッチした命令をデコードするデコードステージと、フェッチした命令による演算を実行する実行ステージと、フェッチした命令によるレジスタ書き込みを行うWBステージとを少なくとも備えている場合は、コンフィグレーション制御ユニットは、デコードステージ、実行ステージ、WBステージの少なくともいずれかの構成を変更する。デコードステージの構成を変更することにより、フラグ位置が異なるなどの構造の異なる命令セットに属する命令を解釈することができる。実行ステージの構成またはWBステージの構成を変更することにより、複合命令の実行の可否を選択したり、フラグの自動更新の可否を選択したりすることができる。
【0014】
パイプラインの各ステージを構成するハードウェアは、アプリケーションプログラムに含まれる幾つかの命令セットのアーキテクチャに対応できるように予めデザインされたものであっても良い。その場合、コンフィグレーション制御ユニットは、構成変更工程において、アーキテクチャタイプの情報に従い、予め決められたデータパス構成を選択する。
【0015】
複数の回路要素の少なくとも一部が、それら回路要素の間の接続および/またはそれぞれの回路要素内の設定を、所定の範囲で任意に変更可能な動的に再構成できるハードウェアを用いることが可能であり、アーキテクチャタイプにより構成の変更が要求されるステージを、動的に再構成できるハードウェアで実現することが望ましい。コンフィグレーション制御ユニットが構成変更工程において、複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を変更することにより、パイプラインのステージを動的に変更することが可能である。ステージの構成を再構成することにより、複数のアーキテクチャに対応した複数のデータパス構成を予め実装しておく必要がなく、また、複数のデータパスを選択するためのセレクタも不要になる。したがって、構成の変更が必要なステージを少ないハードウェア資源で生成でき、さらに、セレクタなどで消費される時間および電力を削減できる。したがって、本発明のデータ処理システムを、コンパクトに実現でき、消費電力の低減も図れる。
【発明を実施するための最良の形態】
【0016】
図1に、本発明のデータ処理システムの一例の概略構成を示してある。このデータ処理システム1は、命令をフェッチして処理するプロセスをパイプラインで行うプロセッサである。プロセッサ1のパイプライン10は、外部あるいは内部のメモリ2に記録された、幾つかの命令からなるアプリケーションプログラム3から命令を、プログラムカウンタ16の制御により順番にフェッチするフェッチステージ(IF)11と、フェッチした命令の構成などから、そのフェッチした命令に対応するアーキテクチャタイプを判断するアーキテクチャ判別ステージ(TR)12と、フェッチした命令をデコードするデコードステージ(DEC)13、フェッチした命令による演算を実行する実行ステージ(EX)14、フェッチした命令によるレジスタ書き込みを行うWBステージ(WB)15を備えている。図1には、パイプラインレジスタは示していないが、それぞれのステージ11〜15の構成にパイプラインレジスタとして機能するレジスタが含まれている。また、DECステージ13では、フェッチした命令19がデコードされ、EXステージ14の制御情報31およびWBステージ15の制御情報32が生成され、それぞれEX制御部33およびWB制御部34にセットされる。WB制御部34に対しては、EXステージ14と同じサイクルのディレイを発生させるパイプラインディレイ用のレジスタ35を介して制御情報32が供給される。したがって、プロセッサ1においては、IFステージ11によりフェッチした命令19の処理は、これらのステージ11〜15において、所定のサイクルにより順番に実行される。
【0017】
DECステージ13、EXステージ14およびWBステージ15は、回路を動的に再構成できるハードウェアを用いて生成されている。動的に再構成可能なハードウェアの一例は、複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を、所定の範囲で任意に変更可能なものである。本願の出願人は、国際公開WO2002−095946号公報において、再構成可能なハードウェアの一例を開示しており、基本的には1クロックサイクルで回路構成を変更することができる。本例のプロセッサ1は、その全体を、再構成可能なハードウェアに実装することにより実現することが可能である。また、DECステージ13、EXステージ14およびWBステージ15を再構成可能なハードウェアに実装し、他の構成が固定されたステージをASICなどにより実装することも可能である。なお、本発明は、IFステージ11およびTRステージ12は、構成が固定されたものに限定される必要はなく、DECステージ13のデコード結果により、あるいは外部からの制御により、IFステージ11またはTRステージ12の構成を変更するものであっても良い。例えば、固定長の命令セットと、可変長の命令セットとが混在しているようなプログラムに対しては、IFステージ11の構成を変更することも有効である。
【0018】
このプロセッサ1は、DECステージ13、EXステージ14およびWBステージ15の構成を、TRステージ12により判断されたアーキテクチャタイプの情報(以降においてはアーキテクチャ情報)29に基づき制御するためのコンフィグレーション制御ユニット20を備えている。コンフィグレーション制御ユニット20は、DECステージ13、EXステージ14およびWBステージ15のそれぞれの構成を制御するステージ制御ユニット21a〜21cと、DECステージ13、EXステージ14およびWBステージ15のそれぞれの構成情報を記録したステージ構成メモリ22a〜22cとを備えている。ステージ制御ユニット21a〜21cは、パイプラインレジスタを介して接続されており、それぞれのステージ制御ユニット21aおよび21bは、DECステージ13およびEXステージ14と同じサイクルを消費した後に、アーキテクチャ情報29を転送する。したがって、コンフィグレーション制御ユニット20においては、アーキテクチャ情報29が、パイプライン10のサイクルによりステージ制御ユニット21a〜21cの間で転送され、ステージ制御ユニット21a〜21cのそれぞれは、DECステージ13、EXステージ14およびWBステージ15の構成を、それぞれのステージがフェッチした命令19を処理するタイミングに合わせて、フェッチした命令19のアーキテクチャ情報29に基づき再構成する。
【0019】
プログラム3に含まれる命令を、プログラム3の作成者の意図の通りに実行するためには、プログラム3の作成者が意図したように命令をデコードし、実行する必要がある。すなわち、プログラム3の命令は、その命令が実行されるべきアーキテクチャと同じあるいは共通するアーキテクチャのプロセッサにより実行されないと、プログラム3により与えられたアプリケーションは仕様通りには動かない。現在、プロセッサのアーキテクチャはCISCおよびRISCに大きく分けられており、RISCプロセッサと一口にいっても、ARM、MIPS、SPARC、PowerPC、Alphaなど、各メーカによってアーキテクチャが異なる。したがって、RISC用の命令は、多くが共通の内容を示すが、各アーキテクチャによって処理内容が異なっていたり、命令自体が異なる場合がある。多くの場合、各アーキテクチャは、若干異なる命令セット、すなわち、命令フォーマットを採用しており、TRステージ12により、フェッチした命令を解析することによりアーキテクチャを判断できることが多い。したがって、本例のプロセッサ1においては、複数のアーキテクチャの命令がプログラム3に混在していても、各命令を、作成者が意図したアーキテクチャにより実行できる。
【0020】
しかしながら、アーキテクチャにより、命令セットが共通する命令もあり、そのような場合は、プログラム3の側で、アーキテクチャが混在している場合は、命令毎にアーキテクチャ情報を指示することが望ましい。図2に示したプログラムコード3aは、フェッチされる命令19(In0〜In4)の単位で、アーキテクチャ情報(アーキテクチャコードC−0〜C−2)29が指示されている。このようなプログラム3aを対象とした、本発明のプロセッサにおいては、IFステージ11により、フェッチした命令19に対応するアーキテクチャ情報29を得ることができる。したがって、TRステージ12を省くことが可能であり、以降の説明においてはTRステージを省いていることがある。
【0021】
図3に、DECステージ13、EXステージ14およびWBステージ15の構成がパイプラインサイクル単位で変わり、フェッチした命令が実行される様子を模式的に示してある。このプロセッサ1のステージ13〜15の各々のステージは、それぞれの構成を、フェッチした命令19を処理するタイミング、すなわち、パイプラインサイクルに合わせて、フェッチした命令19に対応するアーキテクチャ情報29に基づき変更する工程(構成変更工程)25を含む制御方法により制御される。各ステージの処理の基本は、入力したデータに対して所望の処理を行って出力するというものであり、そのためのデータパス構造が変更の対象となる。データパスにALUなどの演算単位が含まれている場合は、その機能を変更したり、ルックアップテーブル(LUT)により出力を求める場合は、その内容を変更したりすることも含まれる。
【0022】
さらに、このプロセッサ1のステージ13〜15のステージ間は、アーキテクチャ情報29をパイプライン10のサイクルにより転送する工程26を含む制御方法により制御される。したがって、パイプライン10の流れをいったん止めたり、リスタート(リセット)させることなく、アーキテクチャの異なる命令を実行することができる。図3においては、一点鎖線のようにアーキテクチャ情報29がステージ間を転送され、それと共に、フェッチした命令19が転送される。したがって、個々のステージにおいては、再構成と命令実行とが繰り返され、パイプライン10としては、アーキテクチャの異なる命令19を、パイプライン10によりパイプライン動作を破綻させずに処理することができる。図3は、フェッチした命令19とアーキテクチャ情報29を区別し易い状態で示しているが、それぞれのステージにアーキテクチャ情報29が供給されるタイミングは、データがパイプライン10によりそれぞれのステージでフェッチした命令19により処理されるタイミングに合致していれば良い。したがって、各ステージのパイプラインレジスタがデータパスにより処理されたデータをラッチする前に、フェッチした命令19が、アーキテクチャ情報29により再構成された各々のステージで実行されるタイミングでアーキテクチャ情報29は各々のステージに供給されれば良い。また、EXステージ14およびWBステージ15などのDECステージ13の下流に位置するステージでは、フェッチした命令19は、それがデコードされた制御情報31および32として、それぞれのステージに供給されることは上述したとおりである。
【0023】
図4に、パイプラインを破綻させずにアーキテクチャを変更できる様子を示してある。図4(a)に示すように、アーキテクチャC−1とアーキテクチャC−2の命令が含まれているプログラム3を実行する際に、本例のプロセッサ1であれば、パイプライン10の各ステージ11〜15の進行に沿って構成を変更できるので、パイプライン10を止めずに、異なるアーキテクチャの命令を実行できる。したがって、本発明のプロセッサ1によれば、アーキテクチャの異なる命令を、アーキテクチャが同じ命令と同じレベルで混在させてプログラムを作成することができ、種々のアーキテクチャのプロセッサの機能を入り混じって利用したアプリケーションを容易に開発することができる。
【0024】
これに対し、アーキテクチャ情報29により、構成を一括して変更するようなプロセッサを仮定すると、図4(b)に示すように、アーキテクチャC−1の命令の処理が終了してからアーキテクチャC−2の構成に変更し、アーキテクチャC−2の命令を実行する必要がある。したがって、パイプライン10の動作をいったん止めて、再構成できた段階でリスタートする必要がある。このため、アーキテクチャの異なる命令を実行する段階で、1パイプラインサイクル分のディレイが発生することになり、そのようなディレイを想定していないプログラム3を仕様通りに実行することができない。さらに、構成を1クロックで変更できる再構成可能なハードウェアであれば遅れは1パイプラインサイクルで済むが、FPGAのように回路構成を変更するのにms単位の有意な時間を費やすハードウェアであると、アーキテクチャの異なる命令を1つのプログラムに混在させることは不可能になる。
【0025】
図5に、EXステージ14の構成を変更する例を示してある。アーキテクチャC−2においては以下のような加算命令の設定があり、アーキテクチャC−1にはそのような加算命令がない場合を想定している。
【0026】
命令:ADD Rd,Rn,Rm,LSL #5bit_Immed
動作:Rd=Rn+(Rm<<#5bit_Immed)
アーキテクチャC−1においては以下の2つの命令により上記の命令と同じ処理を実行できる。したがって、コンパイラーによりアーキテクチャC−1の命令に完全に置き換えることも可能である。
LSL Rm,Rm,#5bit_Immed
ADDU Rd,Rn,Rm
【0027】
しかしながら、2命令を使用することにより、実行クロック数が増大するので処理時間が延びる。さらに、2命令に分割することにより、それらの命令の間に割り込みが入る可能性があり、オリジナルのプログラムの仕様に完全に沿ったものにはならない。一方、アーキテクチャC−1のADD命令に関する構成をアーキテクチャC−2に置き換えてしまうと、アーキテクチャC−1の命令が実行できない。本例のプロセッサ1においては、アーキテクチャ情報29によりEXステージ14の構成を変更することによりこの問題を解決できる。すなわち、EXステージ14のステージ構成メモリ22bに、図5(a)に示したアーキテクチャC−1の構成と、図5(b)に示したアーキテクチャC−2の構成とを用意しておき、アーキテクチャC−2のADD命令をEXステージ14において実行するタイミングでEXステージ14のデータパス構成をアーキテクチャC−2に再構成すれば良い。
【0028】
図6に、EXステージ14の構成を変更する異なる例を示してある。この例では、EXステージ14にアーキテクチャC−1のデータパスとアーキテクチャC−2のデータパスとが予め用意され、さらに、それらのデータパスを切り換えるセレクタ14sが用意されている。したがって、ステージ制御ユニット21bがアーキテクチャ情報29に基づきセレクタ14sを切り換えることにより、アーキテクチャC−2のADD命令を、そのADD命令により予定されている通りに実行できる。この例においては、ステージ14としての機能を得るために、動的に回路を再構成できるハードウェアは必要ない。しかしながら、2つのアーキテクチャの回路を構成できる量のハードウェアに加えて、それらを切り換えるためのセレクタなどのハードウェアが必要になる。したがって、ハードウェアの量が増大し、データパス中にセレクタが介在するので、ステージにおける実行サイクルが本来のアーキテクチャよりも増大する可能性がある。プロセッサ1において実行可能なアーキテクチャの種類を増やそうとすると、この問題はさらに増大する。この問題は、回路を動的に再構成可能なハードウェアを採用することにより防ぐことができる。
【0029】
図7には、WBステージ15の構成を変更する例を示してある。図7はセレクタで切り換える例を示しているが、上記と同様に再構成可能なハードウェアによりWBステージ15の構成を変更できる。この例では、アーキテクチャC−2においては、alu_oprに加え、alu_oprSという命令があり、alu_oprではフラグを更新しないのに対し、alu_oprSではフラグを更新する。一方、アーキテクチャC−1においては、alu_oprという命令があり、alu_oprSはないが、alu_oprを実行することによりフラグを更新する。したがって、ステージ制御ユニット21cは、このステージで実行するフェッチした命令19がアーキテクチャ情報29によりアーキテクチャC−1の場合は、alu_oprによりフラグが更新されるようにセレクタ15sをセットする。一方、ステージ制御ユニット21cは、このステージで実行するフェッチした命令19がアーキテクチャ情報29によりアーキテクチャC−2の場合は、alu_oprSによりフラグが更新されるようにセレクタ15sをセットする。
【0030】
図8に、DECステージ13の構成を変更する例を示してある。この例も、セレクタで切り換える構成で示しているが、再構成可能なハードウェアによりデータパス構成を再構成できることは上述した通りである。アーキテクチャにより命令セットのフォーマットが異なることがあることは上述した通りである。図8(a)に示すように、キャリービットの位置がアーキテクチャにより異なる場合、図8(b)に示すように、アーキテクチャ情報29によりステージ制御ユニット21aがセレクタ13sを制御してDECステージ13のフラグリードの構成を変更することができる。図8(c)は、フラグビットの意味をアーキテクチャ毎に変えることができるDECステージ13の例である。アーキテクチャC−1ではキャリーを示すビットと、アーキテクチャC−2では異なる意味のあるビットとしてフェッチした命令19をデコードし、EXステージ14および/またはWBステージ15を制御することができる。
【0031】
なお、本例のプロセッサ1は、IFステージ11、DECステージ13、EXステージ14およびWBステージ15によりパイプライン10を構成しているが、EXステージあるいはWBステージが複数のステージに分割されていたり、メモリリード用のステージが独立しているなどの、異なる構成のパイプラインを備えたプロセッサについても本発明を適用することができる。また、プロセッサが有するパイプラインの数は1つに限定されるものではない。さらに、本発明が適用されるプロセッサあるいはデータ処理システムは、汎用のプロセッサとしてチップ化された製品に限らず、プロセッサがエンベッドされたSoCあるいはシステムLSIと称される製品群も含まれる。
【図面の簡単な説明】
【0032】
【図1】本発明のプロセッサの一例の概略構成を示すブロック図である。
【図2】アーキテクチャ情報を与えることができる異なるプログラムの一例を示す図である。
【図3】パイプラインのステージの構成が変わる様子を模式的に示す図である。
【図4】パイプラインのステージの構成を変えて命令を実行する様子を示す図であり、図4(a)は、本発明によりパイプラインの構成を変更したときの様子を示し、図4(b)はパイプラインの構成を一括して変えたときの様子を示してある。
【図5】EXステージの構成を再構成可能なハードウェアを用いて変更する例を示す図である。
【図6】EXステージの構成を、セレクタにより変更する例を示す図である。
【図7】WBステージの構成を、セレクタにより変更する例を示す図である。
【図8】DECステージの構成を、セレクタにより変更する例を示す図である。
【符号の説明】
【0033】
1 プロセッサ、 2 メモリ、 3 プログラム
10 パイプライン、 11 IFステージ、 12 TRステージ
13 DECステージ、 14 EXステージ、 15 WBステージ
19 フェッチした命令
20 コンフィグレーション制御ユニット
21a〜21c ステージ制御ユニット
22a〜22c ステージ構成メモリ
29 アーキテクチャ情報

【特許請求の範囲】
【請求項1】
パイプライン動作により命令をフェッチして処理するデータ処理システムであって、
パイプラインを構成するように接続される複数の回路要素と、
前記パイプラインのステージの少なくともいずれかの構成を、フェッチした命令を処理するタイミングに合わせて、前記フェッチした命令に対応するアーキテクチャタイプに基づき変更するコンフィグレーション制御ユニットとを有する、データ処理システム。
【請求項2】
請求項1において、前記パイプラインは、前記フェッチした命令に対応するアーキテクチャタイプを判別するアーキテクチャ判別ステージを備えている、データ処理システム。
【請求項3】
請求項1において、前記パイプラインは、命令と共に、その命令に対応するアーキテクチャタイプの情報をフェッチするフェッチステージを備えている、データ処理システム。
【請求項4】
請求項1において、前記コンフィグレーション制御ユニットは、前記アーキテクチャタイプの情報を前記パイプラインのサイクルにより転送する、データ処理システム。
【請求項5】
請求項1において、前記パイプラインは、前記フェッチした命令をデコードするデコードステージと、前記フェッチした命令による演算を実行する実行ステージと、前記フェッチした命令によるレジスタ書き込みを行うWBステージとを備えており、
前記コンフィグレーション制御ユニットは、前記デコードステージ、前記実行ステージおよび前記WBステージの少なくともいずれかの構成を変更する、データ処理システム。
【請求項6】
請求項1において、前記複数の回路要素の少なくとも一部は、それら回路要素の間の接続および/またはそれぞれの回路要素内の設定を、所定の範囲で任意に変更可能であり、
前記コンフィグレーション制御ユニットは、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を変更することにより、前記パイプラインのステージの少なくともいずれかを動的に再構成する、データ処理システム。
【請求項7】
パイプライン動作により命令をフェッチして処理するデータ処理システムの制御方法であって、
パイプラインのステージの少なくともいずれかの構成を、フェッチした命令を処理するタイミングに合わせて、前記フェッチした命令に対応するアーキテクチャタイプに基づき変更する構成変更工程を有する、データ処理システムの制御方法。
【請求項8】
請求項7において、前記パイプラインは、前記フェッチした命令に対応するアーキテクチャタイプを判別するアーキテクチャ判別ステージ、または、命令と共に、その命令に対応するアーキテクチャタイプの情報をフェッチするフェッチステージを備えており、
前記アーキテクチャタイプの情報を前記パイプラインのサイクルにより転送する工程を有する、データ処理システムの制御方法。
【請求項9】
請求項7において、前記パイプラインを構成するように接続される複数の回路要素の少なくとも一部は、それら回路要素の間の接続および/またはそれぞれの回路要素内の設定を、所定の範囲で任意に変更可能であり、
前記構成変更工程では、前記複数の回路要素の間の接続および/またはそれぞれの回路要素内の設定を変更することにより、前記パイプラインのステージの少なくともいずれかを動的に再構成する、データ処理システムの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−178653(P2006−178653A)
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願番号】特願2004−369779(P2004−369779)
【出願日】平成16年12月21日(2004.12.21)
【出願人】(500238789)アイピーフレックス株式会社 (15)
【Fターム(参考)】