(57)【要約】      （修正有）【課題】比較的命令語長が短くても、多くの種類の命令を定義することができるマイクロプロセッサを、回路規模を増大させることなく実現する。【解決手段】複数組の命令セットと、命令メモリ１１０からフェッチした命令を解読して中間解読結果を出力する命令解読手段１０１と、外部からの指示によって実行するデータ処理が決定されるデータ処理手段１０２と、命令セット識別子を保持する保持手段１０３と、前記保持手段１０３によって保持された命令セット識別子と前記命令解読手段から出力される中間解読結果を元に前記データ処理手段１０２に指示を与える指示手段１０４と、マイクロプロセッサ外部からの指示１１８によって命令セット識別子を生成する生成手段１０５と、前記データ処理手段１０２の出力結果１１７によって命令セット識別子を生成する生成手段１０５と、前記命令解読手段１０１が出力する中間解読結果よって命令セット識別子を生成する生成手段１０５とからなる。【選択図】図１
2006113655.tif 000002
【特許請求の範囲】
【請求項１】
複数組の命令セットと、
命令メモリからフェッチした命令を解読して中間解読結果を出力する命令解読手段と、
外部からの指示によって実行するデータ処理が決定されるデータ処理手段を備えるマイクロプロセッサであって、
命令セット識別子を保持する保持手段と、
前記保持手段によって保持された命令セット識別子と前記命令解読手段から出力される中間解読結果を元に前記データ処理手段に指示を与える指示手段を備えることを特徴とするマイクロプロセッサ。
【請求項２】
マイクロプロセッサ外部からの指示によって命令セット識別子を生成する生成手段を備えることを特徴とする、請求項１に記載のマイクロプロセッサ。
【請求項３】
前記データ処理手段の出力結果によって命令セット識別子を生成する生成手段を備えることを特徴とする、請求項１に記載のマイクロプロセッサ。
【請求項４】
前記命令解読手段が出力する中間解読結果よって命令セット識別子を生成する生成手段を備えることを特徴とする、請求項１に記載のマイクロプロセッサ。
【請求項５】
請求項２、３及び４の前記生成手段を複数組み合わせたことを特徴とする、請求項１に記載のマイクロプロセッサ。
【請求項６】
前記指示手段は、データ処理停止の指示を含むことを特徴とする、請求項１〜５のいずれか１項に記載のマイクロプロセッサ。
【請求項７】
クロックによって遅延された被処理データを前記データ処理手段に伝える遅延手段を備える所謂パイプライン機構を備えたマイクロプロセッサであって、
クロックによって遅延させた前記命令セット識別子を前記指示手段に伝える第１の遅延手段と、
クロックによって遅延させた前記中間解読結果を前記指示手段に伝える第２の遅延手段を備え、
前記指示手段は、前記第１の遅延手段から伝えられる命令セット識別子と、前記第２の遅延手段から伝えられる中間解読結果を元に、前記データ処理手段に指示を与えることを特徴とする、請求項１〜６のいずれか１項に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサに係り、特に複数組の命令セットを備えるマイクロプロセッサに関する。
【背景技術】
【０００２】
近年、マイクロプロセッサを用いた製品は、ますます高機能化が求められ、それに伴ってそのプログラムのコードサイズは巨大化している。ところが、携帯端末に代表される組み込み型のマイクロプロセッサが搭載された製品においては、コードサイズの増大は実装すべきＲＯＭの容量や個数の増加を招くので、製品のコストを上昇させてしまう。従って、このような製品においては、可能な限りそのコードサイズを縮小しておくことが望まれる。
【０００３】
プログラムのコードサイズの縮小化を実現する従来技術として、マイクロプロセッサの命令セットを定義する際に、使用頻度の高い命令を語長の短い命令に割り当てる方法が挙げられる。例えば、１バイト長命令と２バイト長命令を備えるマイクロプロセッサであれば、使用頻度の高い命令を１バイト長命令に割り当てる方法である。このように、マイクロプロセッサの命令語長を短くすることにより、コードサイズが縮小され、ＲＯＭの容量を小さくすることができる。
【０００４】
なお、ここでは、命令の語長とは、命令を構成するオペコードとオペランドのうちのオペコードのみの長さを指すものとする。また、オペコードは、マイクロプロセッサにフェッチされた後に命令デコーダによって解読される部分であり、その命令の種類すなわち演算処理を特定するコードである。
【０００５】
一方、マルチメディア技術の発展に伴い、近年は組み込み型のマイクロプロセッサにおいても、画像データ処理関連（データ圧縮・伸張、符号・復号、積和演算等）の命令を搭載する必要性が高まっている。しかしながら、上記のような命令語長の短いマイクロプロセッサでは、その命令語長を保持したまま、新たな命令を追加することは困難である。例えば、１バイト長命令として表現できる命令数はたかだか２５６種類であるが、この命令数では前記画像データ処理関連の命令を追加することは難しい。
【０００６】
このような問題に対処するマイクロプロセッサとして、複数の命令解読器を持ち、専用の切替命令によってそれらの命令解読器の中から1個だけを有効とする切替命令デコーダを備える命令解読器切替型プロセッサ及び翻訳装置が記載されている（特許文献１参照）。
【特許文献１】特開平９−３３０２１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら前記マイクロプロセッサの従来例では、命令セットの数に応じた複数の命令解読器を備えるため、回路規模の増大を招くという問題がある。また、複数の命令解読器や演算器のうち、現在選択されていない命令セットに対する命令解読器や実行中の命令で必要としない演算器までが活性化されてしまうため、消費電力が大きくなるという問題もある。
【０００８】
特にシステムＬＳＩにおいては、マイクロプロセッサと、プログラムを格納するメモリと、専用回路が１つのチップに搭載されるため、回路規模を抑えることは重要課題である。また、近年では１千万個以上のトランジスタが一つのチップに搭載されるため、チップの発熱が問題になっている。そこで、それらの活性化を抑えることで、消費電力を小さくし、チップの発熱を抑えなければならない。よって、システムＬＳＩを対象とした組み込み用途向けマイクロプロセッサにおいては、回路規模と消費電力が小さく、さらに多様な命令を備えることが望まれる。
【０００９】
また、前記マイクロプロセッサの従来例では、命令セットの切り替えは専用の命令によってのみ行なっている。このことは、命令セットの切り替えに伴うオーバーヘッドを生じ、実行時間の増加という問題を招く。
【００１０】
そこで本発明は、かかる問題に鑑みてなされたものであり、比較的命令語長が短くても、多くの種類の命令を定義することができるマイクロプロセッサを、回路規模を増大させることなく、同時に不要な電力消費を抑えて実現することを目的とする。例えば、１バイト長命令であれば、実質的に２５６個以上の命令を備えるマイクロプロセッサを、回路規模を増大させることなく実現することを目的とする。また、多様な方法で命令セットを切り替えることができ、柔軟性に富んだプログラムを組むことができ、命令セットの切り替えに伴うオーバーヘッドの小さいマイクロプロセッサを実現することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明のマイクロプロセッサは、複数組の命令セットと、命令メモリからフェッチした命令を解読して中間解読結果を出力する命令解読手段と、外部からの指示によって実行するデータ処理が決定されるデータ処理手段を備えるマイクロプロセッサであって、命令セット識別子を保持する保持手段と、前記保持手段によって保持された命令セット識別子と前記命令解読手段から出力される中間解読結果を元に前記データ処理手段に指示を与える指示手段を備えることによって、前記データ処理手段が、同一中間解読結果に対し命令セットによって異なる処理あるいは同一の処理を実行する。
【００１２】
また、前記マイクロプロセッサは、マイクロプロセッサ外部からの指示によって命令セット識別子を生成する生成手段を備えることによって、マイクロプロセッサ外部からの指示によって命令セットが切り替わる。
【００１３】
また、前記マイクロプロセッサは、前記データ処理手段の出力結果によって命令セット識別子を生成する生成手段を備えることによって、データ処理の結果によって命令セットが決定されて切り替わる。
【００１４】
また、前記マイクロプロセッサは、前記命令解読手段が出力する中間解読結果よって命令セット識別子を生成する生成手段を備えることによって、専用の命令によって命令セットが切り替わる。
【００１５】
また、前記マイクロプロセッサは、前記生成手段を複数組み合わせたことによって、複数の前記生成手段によって命令セットが切り替わる。
【００１６】
また、前記マイクロプロセッサは、前記指示手段がデータ処理の停止の指示を含むことによって、前記データ処理手段が前記指示手段からの指示により実行を停止する。
【００１７】
また、前記マイクロプロセッサは、クロックによって遅延された被処理データを前記データ処理手段に伝える遅延手段を備える所謂パイプライン機構を備えたマイクロプロセッサであって、クロックによって遅延させた前記命令セット識別子を前記指示手段に伝える第１の遅延手段と、クロックによって遅延させた前記中間解読結果を前記指示手段に伝える第２の遅延手段を備え、前記指示手段は、前記第１の遅延手段から伝えられた命令セット識別子と、前記第２の遅延手段から伝えられた中間解読結果を元に、前記データ処理手段に指示を与えることによって、前記データ処理手段が前記指示部からの指示と遅延された被処理データを同一クロックサイクル内に受けてデータ処理を実行する。
【発明の効果】
【００１８】
以上のことから明らかなように、請求項１によれば、本発明のマイクロプロセッサは、複数組の命令セットと、命令メモリからフェッチした命令を解読して中間解読結果を出力する命令解読手段と、外部からの指示によって実行するデータ処理が決定されるデータ処理手段を備えるマイクロプロセッサであって、命令セット識別子を保持する保持手段と、前記保持手段によって保持された命令セット識別子と前記命令解読手段から出力される中間解読結果を元に前記データ処理手段に指示を与える指示手段を備えることによって、前記データ処理手段が、同一中間解読結果に対し命令セットによって異なる処理あるいは同一の処理を実行する。
【００１９】
これよって、例えば１バイト長命令であれば２５６個以上の命令を備えることができるので、画像データ処理のようなある特定の目的に特化した命令を追加すれば、プログラムのコードサイズを維持したままで実行時間を短縮できる。また、マイクロプロセッサの従来例と比較すると、命令セットの数に応じた複数の命令解読器を備えていないので、命令の追加に伴う回路規模の増大を抑えられる。
【００２０】
また、請求項２によれば、本マイクロプロセッサは、マイクロプロセッサ外部からの指示によって命令セット識別子を生成する生成手段を備えることによって、マイクロプロセッサ外部からの指示によって命令セットが切り替わる。
【００２１】
また、請求項３によれば、本マイクロプロセッサは、前記データ処理手段の出力結果によって命令セット識別子を生成する生成手段を備えることによって、データ処理の結果によって命令セットが決定される。
【００２２】
また、請求項４によれば、本マイクロプロセッサは、前記命令解読手段が出力する中間解読結果よって命令セット識別子を生成する生成手段を備えることによって、専用の命令によって命令セットが切り替わる。
【００２３】
さらに、請求項５によれば、本マイクロプロセッサは、前記生成手段を複数組み合わせたことによって、複数の手段によって命令セットが切り替わる。
【００２４】
これらによって、多様な方法で命令セットを切り替えることができるので、柔軟性に富んだプログラムを組むことができ、命令セットの切り替えに伴うオーバーヘッドを小さくできるため、さらなるプログラムのコードサイズ削減と実行時間短縮を実現できる。
【００２５】
また、請求項６によれば、本マイクロプロセッサは、前記指示手段がデータ処理の停止の指示を含むことによって、前記データ処理手段が前記指示手段からの指示により実行を停止する。
【００２６】
これによって、前記データ処理手段が備える演算器を非活性化させることができるので、不要な電力消費を抑えることができる。
【００２７】
また、請求項７によれば、本マイクロプロセッサは、クロックによって遅延された被処理データを前記データ処理手段に伝える遅延手段を備える所謂パイプライン機構を備えたマイクロプロセッサであって、クロックによって遅延させた前記命令セット識別子を前記指示手段に伝える第１の遅延手段と、クロックによって遅延させた前記中間解読結果を前記指示手段に伝える第２の遅延手段を備え、前記指示手段は、前記第１の遅延手段から伝えられた命令セット識別子と、前記第２の遅延手段から伝えられた中間解読結果を元に、前記データ処理手段に指示を与えることによって、前記データ処理手段が前記指示部からの指示と遅延された被処理データを同一クロックサイクル内に受けてデータ処理を実行する。
【００２８】
これによって、マイクロプロセッサの従来例と比較して、パイプラインレジスタ内の遅延素子を削減できるため、回路規模を小さくできる。
【００２９】
以上のことから明らかなように、本発明は、マイクロプロセッサの命令語長を増やすことなく、回路規模の増大を抑えて命令を追加でき、不要な電力消費を抑え、プログラムのコードサイズを小さくし、その実行時間を短くすることができる。
【発明を実施するための最良の形態】
【００３０】
（実施形態１）
以下、本発明に係るマイクロプロセッサについて、図面を参照しながら具体的に説明する。図１は、本発明の実施の形態１におけるマイクロプロセッサの構成を示すブロック図である。本実施形態のマイクロプロセッサは、命令解読部１０１、データ処理部１０２、命令セット識別子保持部１０３、指示部１０４、命令セット識別子生成部１０５、パイプラインレジスタ１０６、命令メモリ１１０及び被処理データ保持部１１１から構成される。パイプラインレジスタ１０６は、遅延部１０７〜１０９を備える。
【００３１】
命令解読部１０１は、命令メモリ１１０からフェッチされた命令のオペコードを解読し、中間解読結果１１２を出力する。命令セット識別子保持部１０３は、命令セット識別子生成部１０５によって生成される命令セット識別子を保持して、その値を命令セット識別子１１３として出力する。被処理データ保持部１１１は、データ処理部１０２が処理する対象の被処理データを保持して、その値を被処理データ１１９として出力する。遅延部１０７は、クロックにより遅延させた被処理データ１１９を処理部１０２に伝える。遅延部１０８は、クロックにより遅延させた中間解読結果１１２を指示部１０４に伝える。遅延部１０９は、クロックにより遅延させた命令セット識別子１１３を指示部１０４に伝える。指示部１０４は、遅延部１０８から伝えられた中間解読結果１１４と遅延部１０９から伝えられた命令セット識別子１１５を元に、データ処理部１０２に指示信号１１６を送る。命令セット識別子生成部１０５は、所定の中間解読結果１１２、所定のデータ処理結果１１７、または外部からの指示信号１１８によって命令セット識別子を生成する。
【００３２】
本発明ではデータ処理部の構成を規定していないが、その一実施形態を図２に示す。データ処理部１０２は、ｎ個の演算ユニット２０１ａ〜２０１ｃ及び選択部２０２から構成される。演算ユニット２０１ａ〜２０１ｃは、被処理データ２０３ａ及び２０３ｂを演算し、演算結果を選択部２０２に出力する。選択部２０２は指示信号１１６を元に演算結果を選択して出力する。
【００３３】
次に、データ処理部１０２が備える演算ユニットの一実施形態を図３に示す。演算ユニット２０１ａは、演算器入力制御部３０１、演算器３０２、ＡＮＤゲート３０３ａ及び３０３ｂから構成される。演算器入力制御部３０１は、指示部１０４からの指示信号１１６がデータ処理の停止である場合に０を入力制御信号３０４として出力し、それ以外の指示の場合には１を出力する。ＡＮＤゲート３０３ａは被処理データ２０３ａと入力制御信号３０４の論理積を出力する。ＡＮＤゲート３０３ｂは被処理データ２０３ｂと入力制御信号３０４の論理積を出力する。演算器入力制御部３０１が１を出力した場合、演算器３０２への入力は被処理データ２０３ａ及び２０３ｂとなる。演算器入力制御部３０１が０を出力した場合、演算器３０２への入力は０となる。よって、指示部１０４からの指示信号１１６がデータ処理の停止である場合は、演算器３０２が非活性化されるので、不要な電力消費を抑えることができる。
【００３４】
なお、本発明に係るマイクロプロセッサのデータ処理部及び演算ユニットは、以上に説明した構成に限定されない。
【００３５】
次に、本実施形態のマイクロプロセッサが備えるパイプラインレジスタ１０６について、従来のマイクロプロセッサと比較しながら、詳細に説明する。
【００３６】
図４は、従来のマイクロプロセッサの命令解読部が出力する制御信号とパイプラインレジスタが備える遅延素子の関係を示すブロック図である。命令解読部４０１はｎ本の制御信号４０４ａ〜４０４ｄを出力する。パイプラインレジスタ４０２は、前記制御信号の本数と同じ数の遅延素子４０３ａ〜４０３ｄを備える。マイクロプロセッサの従来例が備える制御信号の本数は、マイクロプロセッサの命令のオペコードを表すビット数よりも多いため、パイプランレジスタは多くの遅延素子を備えなければならない。例えば、オペコードが８ビットだとしても、命令解読部が出力する制御信号は８本よりはるかに多く必要であるので、パイプラインレジスタは８個よりはるかに多くの遅延素子を備えなければならない。
【００３７】
これに対して、本実施形態のマイクロプロセッサでは、命令解読部１０１はマイクロプロセッサの従来例のように制御信号を出力するのではなく、中間解読結果１１２を出力する。中間解読結果は、本実施形態のマイクロプロセッサの命令のオペコードと１対１に対応する。マイクロプロセッサの従来例の制御信号は、本実施形態のマイクロプロセッサでは指示部１０４が出力する指示信号１１６に相当する。このため、本実施形態のマイクロプロセッサのパイプラインレジスタ１０６は、被処理データを遅延する遅延素子以外に、中間解読結果と命令セット識別子のビット数と同数の遅延素子を備えるだけでよい。例えば、オペコードが８ビットだとすると、命令解読部１０１は、８ビットのオペコードをフェッチし、８ビットの中間解読結果として出力する。よって、命令解読部１０１が出力する中間解読結果を指示部１０４に伝えるには、遅延部１０８は高々８個の遅延素子を備えればよい。また、本実施形態のマイクロプロセッサが４つの命令セットを備えるとすると、４つの命令セットを識別するのに必要なビット数は２であるので、命令セット識別子保持部１０３が保持する命令セット識別子は２ビットである。よって、命令セット識別子を指示部１０４に伝えるには、遅延部１０９は高々２個の遅延素子を備えればよい。
【００３８】
次に、本実施形態のマイクロプロセッサが備える命令について説明する。
【００３９】
図５は、本実施形態のマイクロプロセッサが備える命令の一部を示す表である。本図で用いられている“opｎ”は第ｎオペランドを意味する。なお、説明を容易にするため、本実施形態のマイクロプロセッサは、８ビットのオペコードと、３つの命令セットを備えるものとする。また、本実施形態のマイクロプロセッサの構成を示す図１では明示していないが、本実施形態のマイクロプロセッサは、マイクロプロセッサ外部からの信号が入力される入力ポートを備え、被処理データ保持部１１１の内部に、被処理データ及びデータ処理結果を保持する汎用レジスタと、積和演算の結果を保持する積和レジスタを備えている。
【００４０】
図６は、命令解読器１０１が出力する中間解読結果（２進数）及び命令セットと図５の命令の対応を示す表である。中間解読結果は、本実施形態のマイクロプロセッサの命令語長と同じ８ビットである。一方、命令セット識別子は、３つの命令セットを識別するのに必要なビット数である２ビットである。よって、本実施形態のマイクロプロセッサは、中間解読結果と命令セット識別子を組み合わせることにより、実質的に１０ビットの命令語長を持つマイクロプロセッサと同じ命令数、具体的には最大で１０２４個の命令を備えることができる。
【００４１】
ここで、同一中間解読結果に対し、命令セットによって実行するデータ処理が異なるものを「命令セット依存型命令」と呼び、命令セットに関係なく実行するデータ処理が同じであるものを「命令セット非依存型命令」と呼ぶ。
【００４２】
図６において、中間解読結果“００００００００”〜“０００００１１１”には命令セット依存型命令が割り当てられており、中間解読結果“００００１０００”〜“１１１１１１１１”には命令セット非依存型命令が割り当てられている。命令セット依存型命令の数を命令セット非依存型命令の数よりも少なくしているのは、命令セットの切り替えに伴うオーバーヘッドを回避するためである。
【００４３】
図６の中間解読結果“１１１１１００１”〜“１１１１１１１１”には命令セット識別子を生成する命令、即ち命令セットを切り替える命令が割り当てられている。中間解読結果の上位６ビットが命令セット切替命令を示し、下位２ビットが生成すべき命令セット識別子を示す。上位６ビットが“１１１１１０”の中間解読結果には、無条件命令セット切替命令が割り当てられている。これは、図５に示した“ｅｘ１”、“ｅｘ２”及び“ｅｘ３”である。上位６ビットが“１１１１１１”の中間解読結果には、条件付き命令セット切替命令が割り当てられている。これは、図５に示した “ｅｘ１ｅｑ”、“ｅｘ２ｅｑ”及び“ｅｘ３ｅｑ”である。命令セット識別子“０１”は命令セットＩに、命令セット識別子“１０”は命令セットIIに、命令セット識別子“１１”は命令セットIIIに、それぞれ対応する。
【００４４】
ここで、命令セット識別子生成部１０５が生成すべき命令セット識別子を決定する手順について詳細に説明する。本実施形態のマイクロプロセッサにおいては、命令セット識別子を決定する要因は、中間解読結果１１２、データ処理結果１１７及び外部からの指示信号１１８の３つがある。
【００４５】
命令解読部１０１が出力する中間解読結果１１２の上位６ビットが“１１１１１０”であった場合は、前記中間解読結果の下位２ビットを元に、命令セット識別子が決定される。
【００４６】
遅延部１０８から伝えられた中間解読結果１１４の上位６ビットが“１１１１１１”であった場合は、データ処理部１０２が遅延部１０７から伝えられた被処理データ１２０の第１オペランドと第２オペランドを比較してそれらが等しいという結果１１７を出力した場合に、前記中間解読結果の下位２ビットを元に、命令セット識別子が決定される。
【００４７】
また、中間解読結果とは関係なく、外部からの指示信号１１８、例えばリセット信号により、命令セット識別子が決定される。以下、本実施形態のマイクロプロセッサが実行するオブジェクトの例を示して、具体的に説明する。
【００４８】
図７は、無条件命令セット切替命令だけを使用した場合の、本実施形態のマイクロプロセッサの実行の対象となるオブジェクトのリストである。説明の容易のため、オブジェクトをアセンブラ形式で示す。rｎ（ｎは０以上）は汎用レジスタであり、iｎ（ｎは０以上）は入力ポートである。本オブジェクトは、２つの入力ポートから入力されたデータを、汎用レジスタ１と汎用レジスタ２がそれぞれ保持するデータが等しい場合は積和演算を１００回実行して汎用レジスタ３に書き込み、汎用レジスタ１と汎用レジスタ２がそれぞれ保持するデータが等しくない場合は加算を１００回実行して汎用レジスタ３に書き込む動作をする。
【００４９】
ステップＳ７０５及びＳ７０６はｂｅｑ命令の遅延分岐スロットであり、ステップＳ７１４及びＳ７１５はｂｌｔ命令の遅延分岐スロットであり、それぞれｎｏｐ命令が挿入されている。
【００５０】
ステップＳ７０１において、ｅｘ１命令を用いて命令セットＩへの初期化を行う。ステップＳ７０４においてｒ１＝ｒ２であればラベル“＿ｅｘｃｈ２”へ分岐し、ステップＳ７０８において命令セットIIに切り替わる。
【００５１】
ステップＳ７１１及びＳ７１６において、アセンブラ形式の表現では命令セットＩと命令セットIIで命令は異なるが、中間解読結果及び機械語命令は同一である。具体的には、ステップＳ７１１で使われている命令は、命令セットＩにおいてはａｄｄ命令で、命令セットIIにおいてはｍａｄｄ命令であるが、図６を参照すると、前記ａｄｄ命令と前記ｍａｄｄ命令には同一の中間解読結果“００００００００”が割り当てられている。同様に、ステップＳ７１６においてもｎｏｐ命令とｍｏｖｍａ命令に対し同一の中間解読結果“０００００１１１”が割り当てられている。本実施形態のマイクロプロセッサでは命令のオペコードと中間解読結果は１対１に対応するので、本実施形態のマイクロプロセッサは本オブジェクトの同一機械語命令に対し、２通りの動作を行なう。
【００５２】
一方、図８は、図７に示したオブジェクトと同様に汎用レジスタ３に書き込む動作をするオブジェクトを、条件付き命令セット切替命令を用いて生成したものである。ステップＳ８０５〜Ｓ８１２は図７のステップＳ７０９〜Ｓ７１６と同一である。ステップＳ８０４において、条件付き命令セット切替命令“ｅｘ２ｅｑ”を用いて、汎用レジスタ１と汎用レジスタ２の内容を比較して同一であった場合に命令セットIIに切り替えている。この場合の遅延分岐スロットはステップＳ８０５及びＳ８０６であり、それぞれｉｎ命令が挿入され、遅延分岐スロットが有効に活用されている。これにより、図７で示したオブジェクトと比べて、実行ステップ数が削減され、コードサイズの縮小と実行速度の向上が実現されている。
【００５３】
次に、外部からの指示により命令セットが決定される場合について説明する。図９の命令メモリ１１０には、命令セットＩで実行されるオブジェクト９１１と、命令セットIIで実行されるオブジェクト９１２と、命令セットIIIで実行されるオブジェクト９１３が入っている。外部からの指示信号１１８は、命令セット初期値９０３と、プログラムカウンタ初期値９０４を含む。例えば、リセット信号と同時に、命令セット識別子生成部１０５に対し命令セットIIを与え、プログラムカウンタ９０２に命令セットIIで実行されるオブジェクト９１２の先頭のアドレスを与えれば、専用の命令を用いることなく、命令セットを切り替えることができる。
【００５４】
以上説明したように、本発明の実施形態であるマイクロプロセッサにおいては、同一の命令のオペコードに対し命令セットによって異なる処理あるいは同一の処理を行なうことができる。また、実行中の命令が必要としない演算器を非活性化させることができるので、不要な電力消費を抑えられる。さらに、パイプラインレジスタ内の遅延素子の個数を減らすことができるので、回路規模を小さくできる。また、命令セットを決定する複数の手順を備えることにより、命令セットの変更を柔軟に行なうことができ、プログラムのコードサイズ縮小と実行時間の短縮を実現できる。これにより、命令の切り替えによって生じるオーバーヘッドを削減できる。
【００５５】
なお、本発明によって実現されるマイクロプロセッサは、上記実施形態に限定されるものではない。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態のマイクロプロセッサの構成を示すブロック図。
【図２】同マイクロプロセッサが備えるデータ処理部の一実施形態を示すブロック図。
【図３】同データ処理部が備える演算ユニットの一実施形態を示すブロック図。
【図４】従来のマイクロプロセッサにおけるパイプラインレジスタ内の遅延素子と制御信号の関係を示すブロック図。
【図５】本発明の一実施形態のマイクロプロセッサの備える命令セットの一部を示す表。
【図６】同マイクロプロセッサの中間解読結果と命令セット識別子の対応を示す表。
【図７】同マイクロプロセッサが実行するオブジェクトの第１の例。
【図８】同マイクロプロセッサが実行するオブジェクトの第２の例。
【図９】同マイクロプロセッサにおいて外部からの指示により命令セットが決定される例。
【符号の説明】
【００５７】
１０１  命令解読部
１０２  データ処理部
１０３  命令セット識別子保持部
１０４  指示部
１０５  命令セット識別子生成部
１０６  パイプラインレジスタ
１０７  遅延部
１０８  遅延部
１０９  遅延部
１１０  命令メモリ
１１１  被処理データ保持部
１１２  中間解読結果
１１３  命令セット識別子
１１４  遅延部１０６によって遅延された中間解読結果
１１５  遅延部１０８によって遅延された命令セット識別子
１１６  指示信号
１１７  データ処理結果
１１８  外部からの指示信号
１１９  被処理データ
１２０  遅延部１０７によって遅延された被処理データ
２０１ａ  演算ユニット１
２０１ｂ  演算ユニット２
２０１ｃ  演算ユニットｎ
２０２  選択部
２０３ａ  被処理データ
２０３ｂ  被処理データ
３０１  演算器入力制御部
３０２  演算器
３０３ａ  ＡＮＤゲート
３０３ｂ  ＡＮＤゲート
３０４  入力制御信号
４０１  命令解読部
４０２  パイプラインレジスタ
４０３ａ  遅延素子１
４０３ｂ  遅延素子２
４０３ｃ  遅延素子３
４０３ｄ  遅延素子ｎ
４０４ａ  制御信号１
４０４ｂ  制御信号２
４０４ｃ  制御信号３
４０４ｄ  制御信号ｎ
【図１】
2006113655.tif 000003
【図２】
2006113655.tif 000004
【図３】
2006113655.tif 000005
【図４】
2006113655.tif 000006
【図５】
2006113655.tif 000007
【図６】
2006113655.tif 000008
【図７】
2006113655.tif 000009
【図８】
2006113655.tif 000010
【図９】
2006113655.tif 000011