(57)【要約】【課題】  マイクロプロセッサおよびその制御方法における実行プログラムのコードサイズ縮小を実現する。【解決手段】  本発明のマイクロプロセッサおよびその制御方法は、複数の直接実行可能な命令で構成され、プログラム中のマクロ命令ＡまたはＢに基づいて選択、実行される命令セットＡおよびＢと、命令セットＡおよびＢが格納される書き換え可能な定義メモリ１１と、マクロ命令ＡまたはＢに基づいて定義メモリ１１の命令セットＡまたはＢを実行する前に、プログラム中でマクロ命ＡまたはＢの直後に配置された修正情報Ａ１、Ａ２、またはＢ１に基づいて命令セットＡまたはＢを修正し、修正された当該命令セットを実行するＣＰＵ１３を有する。【選択図】  図１
2006293673.tif 000002
【特許請求の範囲】
【請求項１】
複数の直接実行可能な命令で構成され、プログラム中のマクロ命令に基づいて選択され、実行される命令セットと、
前記命令セットが格納される書き換え可能な記憶手段と、
前記マクロ命令に基づいて前記記憶手段の前記命令セットを実行する前に、プログラム中で前記マクロ命令の直後に配置された修正情報を読み込み、当該修正情報に基づいて前記命令セットを修正し、修正された当該命令セットを実行する制御手段を有することを特徴とするマイクロプロセッサ。
【請求項２】
プログラムから読み込んだコードが複数の直接実行可能な命令からなる命令セットの実行を指示するマクロ命令であることを判定する命令判定ステップと、
前記命令判定ステップで前記コードが前記マクロ命令であると判定された場合に、前記コードの直後に配置された修正情報をさらに読み込み、当該修正情報に基づいて前記マクロ命令に対応する前記命令セットを修正する修正ステップと、
前記修正ステップで修正された前記命令セットの前記命令が実行される実行ステップを有することを特徴とするマイクロプロセッサの制御方法。
【請求項３】
前記修正情報は、修正するための新しい前記命令および前記命令セット上の位置情報を備え、
前記修正ステップは、読み込んだ前記修正情報の前記新しい命令を前記位置情報が示す前記命令セット上の位置に上書きすることで前記命令セットを修正することを特徴とする請求項２に記載のマイクロプロセッサの制御方法。
【請求項４】
前記修正情報は、前記命令セット上の２つの位置情報を備え、
前記修正ステップは、読み込んだ前記修正情報の前記位置情報が示す前記命令セットの２つの前記命令を交換することで前記命令セットを修正することを特徴とする請求項２に記載のマイクロプロセッサの制御方法。
【請求項５】
前記修正情報は、前記命令セット上の第１および第２の位置情報を備え、
前記修正ステップは、読み込んだ前記修正情報の前記第１の位置情報が示す前記命令セットの前記命令を前記第２の位置情報が示す前記命令セット上の位置に上書きすることで前記命令セットを修正することを特徴とする請求項２に記載のマイクロプロセッサの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサおよびその制御方法に関する。
【背景技術】
【０００２】
従来のマイクロプロセッサおよびその制御方法は、製造時もしくは電源投入時に命令体系が決定され、実行時には命令体系が固定されているものが一般的であった。一方、ソースプログラムの最適化は、命令の使用頻度に関わりなく、プログラムフローに関連して行われる。このため、コンパイルされた機械語レベルの実行プログラムでは、最適化により必ずしもコードサイズの削減が実現できるとは限らなかった。すなわち、例えば、実行時間で最適化すると、命令のインライン展開が多くなり、実行プログラムのコードサイズが大きくなってしまうという問題があった。
【０００３】
このような問題を解決する１つの方法として、複数の命令で構成される命令セットをマイクロプロセッサ内部に設けられた定義メモリに動的に格納し、その命令セットに対応するマクロ命令で定義メモリ内の命令セットを実行する（例えば、「特許文献１」を参照。）ことが考えられる。この方法によれば、最適化された実行プログラムで頻繁に繰り返される命令列をこのマクロ命令で置き換えることにより、実行プログラムのコードサイズの削減と実行時間の最適化を両立させることができる。
【０００４】
しかしながら、このようなマイクロプロセッサおよびその制御方法では、マクロ命令ごとに対応する命令セットを定義メモリに格納するので、命令列が一部違うだけでも別の命令セットとして定義メモリへ格納する必要があった。このため、大容量の定義メモリを用意しないと、定義メモリの書き換えが頻繁に生じ、最適化した実行プログラムであるにもかかわらず、実行時間が余計にかかってしまうという問題があった。
【特許文献１】特開２００２−３１８６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、実行プログラムのコードサイズを削減することができるマイクロプロセッサおよびその制御方法を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、複数の直接実行可能な命令で構成され、プログラム中のマクロ命令に基づいて選択、実行される命令セットと、前記命令セットが格納される書き換え可能な記憶手段と、前記マクロ命令に基づいて前記記憶手段の前記命令セットを実行する前に、プログラム中で前記マクロ命令の直後に配置された修正情報に基づいて前記命令セットを修正し、修正された当該命令セットを実行する制御手段を有することを特徴とするマイクロプロセッサが提供される。
【０００７】
本発明の別の一態様によれば、プログラムから読み込んだコードが複数の直接実行可能な命令からなる命令セットの実行を制御手段に指示するマクロ命令であることを判定する命令判定ステップと、前記命令判定ステップで前記コードが前記マクロ命令であると判定された場合に、前記プログラムで当該コードの直後に配置された修正情報をさらに読み込み、前記修正情報に基づいて前記マクロ命令に対応する前記命令セットを修正する修正ステップと、制御手段が前記修正ステップで修正された前記命令セットの前記命令を処理する実行ステップを有することを特徴とするマイクロプロセッサの制御方法が提供される。
【発明の効果】
【０００８】
本発明によれば、実行時に命令セットを動的に修正するので、実行プログラムのコードサイズを大幅に削減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例】
【００１０】
図１は、本発明の実施例に係わるマイクロプロセッサを示す回路ブロック図である。ここでは、主に、命令セットの修正にかかわる部分を示した。また、本発明の実施例に係わるマイクロプロセッサは、データバス幅は３２ビット、アドレス空間はバイト単位の３２ビットである。
【００１１】
本発明の実施例に係わるマイクロプロセッサは、命令セットＡおよびＢが格納される定義メモリ１１、定義メモリ１１が接続された内部バス１２、および内部バス１２を介して定義メモリ１１にアクセスする制御回路１３（以下、「ＣＰＵ１３」という。）を備えている。
【００１２】
また、本発明の実施例に係わるマイクロプロセッサは、図１の左側に１点鎖線で囲んで示した実行プログラム１４から命令コードを順次読み込んで、それに従って処理を実行する。
【００１３】
実行プログラム１４は、ＣＰＵ１３が直接実行可能な命令コード（以下、「命令」という。）、命令セットＡまたはＢの実行を指示するマクロ命令ＡおよびＢ、マクロ命令ＡまたはＢの直後に配置された修正情報Ａ１、Ａ２、およびＢ１を有している。
【００１４】
命令セットＡは、ＣＰＵ１３が直接実行可能な複数の命令列であり、ＣＰＵ１３が実行プログラム１４中のマクロ命令Ａを読み込むことによって選択され、実行される。ＣＰＵ１３は、命令セットの実行に先立って、マクロ命令Ａの直後に配置された修正情報Ａ１またはＡ２に基づいて、命令セットＡまたはＢの一部を修正する。命令セットＢも同様に、マクロ命令Ｂによって選択され、修正、実行される。
【００１５】
命令セットＡおよびＢは、実行プログラム１４の本体実行開始に先立って、外部から読み込まれ、定義メモリ１１へ格納される。
【００１６】
定義メモリ１１は、内部バス１２に接続された命令セット専用の書き換え可能な高速メモリであり、マクロ命令ＡまたはＢの実行時にＣＰＵ１３によってアクセスされる。
【００１７】
ＣＰＵ１３は、実行プログラム１４中のマクロ命令ＡまたはＢを読み込むと、その直後に配置された修正情報Ａ１またはＡ２またはＢ１をさらに読み込んで、それに基づいて定義メモリ１１中の命令セットＡまたはＢの一部を修正し、その修正された命令セットＡ１またはＡ２またはＢ１を実行する（修正動作の詳細は、図５〜図７で具体的な例を用いて後述する。）。
【００１８】
図２は、本発明の実施例に係わるマイクロプロセッサにおけるマクロ命令の構成を示すイメージ図である。本発明の実施例に係わるマイクロプロセッサでは、通常の命令が１ワード、３２ビット（４バイト）の固定長であるので、マクロ命令もこれに合わせて３２ビットである。
【００１９】
本発明の実施例に係わるマイクロプロセッサにおけるマクロ命令は、マクロ命令識別コード２１、命令セット識別コード２２、修正モード２３、およびＰＣ増加値２４を備えている。
【００２０】
マクロ命令識別コード２１は、通常の命令からマクロ命令を識別するためのコードであり、マクロ命令の上位２０ビットを占めている。
【００２１】
命令セット識別コード２２は、定義メモリ１１中に格納されている複数の命令セットを識別するためのコードであり、マクロ命令の第８ビットから第１１ビットの４ビットを占めている。したがって、初期状態で、１６種類の命令セットを定義メモリ１１に格納しておくことができる。
【００２２】
修正モード２３は、命令セットの具体的な修正の仕方を指示するコードであり、マクロ命令の第６ビットおよび第７ビットを占めている。修正モード２３には、修正なし（“００”）、上書きモード（“０１”）、交換モード（“１０”）、コピーモード（“１１”）の４種類がある（詳細は、図５〜図７で後述する。）。
【００２３】
ＰＣ増加値２４は、マクロ命令実行後のプログラムカウンタ（以下、「ＰＣ」という。）の増加分を示し、マクロ命令の下位６ビット（第０ビット〜第５ビット）を占めている。したがって、マクロ命令の直後に配置できる修正情報は、最大で１６ワード（６４バイト）である。
【００２４】
図３は、本発明の実施例に係わるマイクロプロセッサにおける修正情報の構成を示すイメージ図である。修正情報は、修正モード２３＝“００”（修正なし）の場合を除いて、マクロ命令の直後から配置される。
【００２５】
本発明の実施例に係わるマイクロプロセッサにおける修正情報は、２ワードを単位として構成され、マクロ命令の直後から配置される。そして、修正情報には、そのマクロ命令で規定される修正モード２３に対応して、図３（ａ）〜（ｃ）に示した３つの種類（以下、「修正情報３１ａ〜３１ｂ」という。）がある。
【００２６】
ここでは、マクロ命令が命令セットＡを修正するよう指示する場合の修正情報３１ａ〜３１ｃを例として説明する。
【００２７】
上書きモード（“０１”）では、図３（ａ）に示したように、マクロ命令の直後から修正情報３１ａとして“上書きする命令”および“上書きする位置”が配置される。“上書きする位置”は、命令セット識別コード２２で指定された命令セットＡ中での修正される命令のワード位置を示している。
【００２８】
上書きモードにおける命令セットＡの修正は、修正情報３１ａに基づいて、ＣＰＵ１３が命令セットＡ中の指定されたワード位置にある命令を“上書きする命令”で置き換えることによって行われる。
【００２９】
交換モード（“１０”）では、図３（ｂ）に示したように、マクロ命令の直後から修正情報３１ｂとして“交換する位置１”および“交換する位置２”が配置される。“交換する位置１”および“交換する位置２”は、命令セット識別コード２２で指定された命令セットＡ中で交換される２つの命令のワード位置を示している。
【００３０】
交換モードにおける命令セットＡの修正は、修正情報３１ｂに基づいて、ＣＰＵ１３が命令セットＡ中の指定されたワード位置にある２つの命令を交換することによって行われる。
【００３１】
コピーモード（“１１”）では、図３（ｃ）に示したように、マクロ命令の直後から修正情報３１ｃとして“コピー元位置”および“コピー先位置”が配置される。“コピー元位置”および“コピー先位置”は、命令セット識別コード２２で指定された命令セットＡ中でコピーされる命令のワード位置を示している。
【００３２】
コピーモードにおける命令セットＡの修正は、修正情報３１ｃに基づいて、ＣＰＵ１３が“コピー元位置”で指定されたワード位置にある命令セットＡの命令を“コピー先位置”で指定されたワード位置にコピーすることによって行われる。
【００３３】
次に、上述した構成を持つマイクロプロセッサの制御方法について説明する。  
図４は、本発明の実施例に係わるマイクロプロセッサの制御方法を示すフロー図である。ここでは、主に、命令セットの修正およびその実行にかかわる部分を示した。また、一例として、図１に示した実行プログラム１４に基づく動作を説明する。
【００３４】
本発明の実施例に係わるマイクロプロセッサの制御方法は、命令セット初期化ステップ（ＳＴ４１）、コード読み込みステップ（ＳＴ４２）、命令判定ステップ（ＳＴ４３）、命令セット修正ステップ（ＳＴ４４）、命令セット実行ステップ（ＳＴ４５）、命令実行ステップ（ＳＴ４６）、および終了判定ステップ（ＳＴ４７）を備えている。
【００３５】
ＳＴ４１では、ＣＰＵ１３が、命令セットの定義命令（図１の実行プログラム１４には示していない。）を実行して、命令セットＡおよびＢを定義メモリ１１へ格納する。命令セットＡおよびＢは外部から供給される。
【００３６】
命令セットＡおよびＢの格納が終了すると、ＳＴ４２で、ＣＰＵ１３は、実行プログラム１４上の命令コードを１ワード（１命令分）読み込む。
【００３７】
ＳＴ４３では、ＣＰＵ１３は、ＳＴ４２で読み込んだ命令コードがマクロ命令であるかを判定する。マクロ命令ＡまたはＢであれば（“Ｙｅｓ”）、制御はＳＴ４４へ移行する。読み込んだ命令コードが通常の命令であれば（“Ｎｏ”）、制御はＳＴ４６へ移行する。
【００３８】
ＳＴ４４では、ＣＰＵ１３は、まず、現在のＰＣにＰＣ増加値２４を加算して次の命令のアドレスを求め、これをＰＣスタックへ退避する。
【００３９】
次に、マクロ命令の修正モード２３が“修正なし”である場合を除いて、ＣＰＵ１３は、ＳＴ４２で読み込んだマクロ命令の直後に配置されている修正情報を読み込む。そして、修正モード２３に従って、図３で説明したようにその修正情報を解釈し、命令セットＡまたはＢを修正する。修正が終了すると、制御はＳＴ４５へ移行する。
【００４０】
マクロ命令の修正モード２３が“修正なし”である場合には、命令セットＡまたはＢの修正は行われず、制御はＳＴ４５へ移行する。
【００４１】
ＳＴ４５では、ＣＰＵ１３は、ＳＴ４４で修正された命令セットＡまたはＢを実行する。命令セットＡまたはＢの実行が終了すると、ＣＰＵ１３はＳＴ４４でＰＣスタックに退避した次の命令アドレスをＰＣに書き戻し、制御はＳＴ４７へ移行する。
【００４２】
ＳＴ４６では、ＣＰＵ１３は、ＳＴ４２で読み込んだ命令を直接実行する。
【００４３】
そして、ＳＴ４７で、ＣＰＵ１３は、実行終了の判定を行う。すなわち、ＳＴ４６またはＳＴ４５で実行した命令が停止命令であれば（｀Ｙｅｓ”）、ＣＰＵ１３は停止し、停止命令でなければ（“Ｎｏ”）、制御はＳＴ４２へ移行し、ＣＰＵ１３は次の命令コードを読み込む。
【００４４】
次に、各修正モード２３における命令セットの具体的な修正方法を説明する。  
図５は、本発明の実施例に係わるマイクロプロセッサの制御方法における上書きモードによる修正の一例を示すイメージ図である。ここでは、図１に示したマクロ命令Ａおよび修正情報Ａ１により命令セットＡが上書き修正される例を示した。
【００４５】
また、命令セットＡは、図５（ａ）に示したように、“命令１”、“命令２”、“命令１”、および“命令１”の４つの命令列からなるとし、修正情報Ａ１は、図５（ｂ）に示したように、“上書きする命令”＝“命令５”、“上書きする位置”＝“０”であるとする。
【００４６】
図５（ａ）はＳＴ４１で命令セットＡを定義メモリ１１に格納した状態を示し、図５（ｂ）はＳＴ４４で修正情報Ａ１に従って命令セットＡを修正する状態を示し、図５（ｃ）はＳＴ４５でＣＰＵ１３が実行する修正された命令セットＡ（以下、「命令セットＡ１」という。）の状態を示している。
【００４７】
上書きモードでは、図５（ｂ）に示したように、ＳＴ４４で、修正情報Ａ１の“命令５”が命令セットＡの第０ワードに上書きされる。これにより、命令セットＡは、図５（ｃ）に示したように、“命令５”、“命令２”、“命令１”、および“命令１”の命令列からなる命令セットＡ１に修正される。
【００４８】
そして、ＳＴ４５で、ＣＰＵ１３が、その上書き修正された命令セットＡ１を実行する。
【００４９】
図６は、本発明の実施例に係わるマイクロプロセッサの制御方法における交換モードによる修正の一例を示すイメージ図である。ここでは、マクロ命令Ａおよび修正情報Ａ２により命令セットＡ１が修正される例を示した。
【００５０】
また、定義メモリ１１内の命令セットは、図５に示した修正で命令セットＡ１に書き換えられているとし、修正情報Ａ２は、図６（ｂ）に示したように、“交換する位置１”＝“１”、“交換する位置２”＝“３”であるとする。
【００５１】
さらに、（ａ）命令セット初期化（ＳＴ４１）は、図５と同様であるので省略した。
【００５２】
図６（ｂ）はＳＴ４４で修正情報Ａ２に従って命令セットＡ１を修正する状態を示し、図６（ｃ）はＳＴ４５でＣＰＵ１３が実行する修正された命令セットＡ１（以下、「命令セットＡ２」という。）の状態を示している。
【００５３】
交換モードでは、図６（ｂ）に示したように、ＳＴ４４で、修正情報Ａ２に従って、命令セットＡ１の第１ワードにある“命令２”と第３ワードにある“命令１”が交換される。これにより、命令セットＡ１は、図６（ｃ）に示したように、“命令５”、“命令１”、“命令１”、および“命令２”の命令列からなる命令セットＡ２に修正される。
【００５４】
そして、ＳＴ４５で、ＣＰＵ１３が、その交換修正された命令セットＡ２を実行する。
【００５５】
図７は、本発明の実施例に係わるマイクロプロセッサの制御方法におけるコピーモードによる修正の一例を示すイメージ図である。ここでは、マクロ命令Ａおよび修正情報Ａ２により命令セットＡ１が修正される例を示した。
【００５６】
また、図６と同様に、定義メモリ１１には命令セットＡ１があるとし、（ａ）命令セット初期化（ＳＴ４１）は省略した。
【００５７】
図７（ｂ）はＳＴ４４で修正情報Ａ２に従って命令セットＡ１を修正する状態を示し、図７（ｃ）はＳＴ４５でＣＰＵ１３が実行する修正された命令セットＡ１（以下、「命令セットＡ３」という。）の状態を示している。
【００５８】
コピーモードでは、図７（ｂ）に示したように、ＳＴ４４で、修正情報Ａ２に従って、命令セットＡ１の第１ワードにある“命令２”が第３ワードにコピーされる。これにより、命令セットＡ１は、図６（ｃ）に示したように、“命令５”、“命令２”、“命令１”、および“命令２”の命令列からなる命令セットＡ３に修正される。
【００５９】
そして、ＳＴ４５で、ＣＰＵ１３が、そのコピー修正された命令セットＡ３を実行する。
【００６０】
次に、上述したマイクロプロセッサの制御方法における実行プログラム１４の生成方法について説明する。  
図８は、本発明の実施例に係わるマイクロプロセッサの制御方法における実行プログラム１４の生成方法を示すフロー図である。ここでは、主に、命令セットの抽出および修正情報の生成にかかわる部分を示した。
【００６１】
また、一例として、図１に示した実行プログラム１４の生成方法を説明する。  
図９は、本発明の実施例に係わるマイクロプロセッサの制御方法における実行プログラム１４の生成の一例を示すイメージ図である。ここでは、図８のフローに沿って生成される具体的なテーブルなどを示した。
【００６２】
本発明の実施例に係わるマイクロプロセッサの制御方法における実行プログラム１４の生成方法は、コンパイルステップ（ＳＴ８１）、命令セット抽出ステップ（ＳＴ８２）、修正情報生成ステップ（ＳＴ８３）、およびプログラム生成ステップ（ＳＴ８４）を備えている。
【００６３】
ＳＴ８１では、ソースプログラムがコンパイルされ、図９に示した原プログラム９１が生成される。原プログラム９１は、ＣＰＵ１３が直接実行可能な命令列からなり、例えば、実行時間に関して最適化オプションが選択されコンパイルされている。したがって、そのままでもＣＰＵ１３で実行可能なプログラムである。
【００６４】
ＳＴ８２では、図９に示したように、原プログラム９１の中から類似の命令列が命令セットＡ、Ａ１、およびＡ２として抽出され、命令セットテーブル９２に登録される。すなわち、命令セットＡとして、“命令１”、“命令２”、“命令１”、および“命令１”が登録され、命令セットＡ１として、“命令５”、“命令２”、“命令１”、および“命令１”が登録され、命令セットＡ２として、“命令５”、“命令１”、“命令１”、および“命令２”が登録される。
【００６５】
ＳＴ８３では、ＳＴ８２で生成された命令セットテーブル９２が検索され、修正情報Ａ１およびＡ２が修正モード２３とともに生成され修正情報テーブル９３に登録される。すなわち、図９に示したように、命令セットＡおよびＡ１が比較され、“上書きする命令”＝“命令５”、“上書きする位置”＝“０”が修正情報Ａ１として生成され、修正モード２３＝“０１”（上書きモード）とともに登録される。また、命令セットＡ１およびＡ２が比較され、“交換する位置１”＝“１”、“交換する位置２”＝“３”が修正情報Ａ１として生成され、修正モード２３＝“１０”（交換モード）とともに登録される。
【００６６】
ＳＴ８４では、ＳＴ８３で生成された修正情報テーブル９３に基づいて原プログラム９１が実行プログラム１４に改訂される。すなわち、図９に示したように、実行プログラム１４では、原プログラム９１の命令セットＡの替わりに修正モード２３＝“００”（修正なし）のマクロ命令Ａが配置され、命令セットＡ１の替わりに修正モード２３＝“０１”のマクロ命令Ａと修正情報Ａ１が配置され、命令セットＡ２の替わりに修正モード２３＝“１０”のマクロ命令Ａと修正情報Ａ２が配置される。
【００６７】
以上のようにして生成された実行プログラム１４が図１に示した本発明の実施例に係わるマイクロプロセッサによって実行される。上記実施例では、説明のため命令セットは４つの命令からなるとしたが、実際のプログラムでは、数１０〜数１００の命令列になる。したがって、上述した方法により、互いに数命令が異なる複数の命令セットを１つの命令セットから派生して実行することができ、少ない容量の定義メモリ１１で多くの命令セットを実行することができる。
【００６８】
上記実施例によれば、実行時に命令セットを動的に修正するので、実行プログラム１４のコードサイズを大幅に縮小したマイクロプロセッサおよびその制御方法を実現することができる。
【００６９】
さらに、上記実施例によれば、実行プログラム１４に埋め込まれた修正情報によって定義メモリ１１内の命令セットを動的に修正するので、少ない容量の定義メモリ１１で多種類の命令セットに対応することができる。
【００７０】
さらに、上記実施例によれば、命令セットの修正、実行を指示するマクロ命令が修正後のＰＣ増加値２４を有しており、１つのマクロ命令で複数の修正情報を実行させることができるので、１つの命令セットから他種類の命令セットを柔軟に派生させることができる。
【００７１】
上述の実施例では、本発明の実施例に係わるマイクロプロセッサは、固定命令長の３２ビットマイクロプロセッサであるとしたが、本発明はこれに限られるものではなく、原理的にはどのような構成のマイクロプロセッサにも適用可能である。
【００７２】
また、上述の実施例では、マクロ命令は、１ワード、３２ビットであるとしたが、本発明はこれに限られるものではない。
【００７３】
さらに、上述の実施例では、マクロ命令に、命令セット識別コード２２、修正モード２３、およびＰＣ増加値２４を含ませるとしたが、本発明はこれに限られるものではなく、例えば、これらをマクロ命令直後に配置するよう構成することもできる。このようにすれば、命令セット数、修正情報の最大ワード数などの制限を緩和することができる。
【００７４】
さらに、上述の実施例では、命令セットは命令セット識別コード２２によって識別されるとしたが、本発明はこれに限られるものではなく、例えば、定義メモリ１１上での命令セットのアドレスまたはアドレスの上位ビットなどによって識別されるように構成することもできる。このようにすれば、定義メモリ１１への命令セットの配置を柔軟にでき、定義メモリ１１の容量をより有効に活用することができる。
【００７５】
さらに、上述の実施例では、修正情報は２ワード単位で構成するとしたが、本発明はこれに限られるものではなく、例えば、可変長の構成とすることもできる。
【００７６】
さらに、上述の実施例では、上書きする命令を修正情報に直接配置するとしたが、本発明はこれに限られるものではなく、例えば、複数の上書きする命令を実行プログラム１４上の別の場所に配置し、そこへのポインタと命令数を修正情報に配置するようにしても良い。
【００７７】
さらに、上述の実施例では、初期状態で定義メモリ１１に格納できる命令セットは１６種類であるとしたが、本発明はこれに限られるものではない。
【００７８】
さらに、上述の実施例では、命令セットの定義メモリ１１への格納は命令セットの定義命令によって行うとしたが、本発明はこれに限られるものではなく、例えば、実行途中のマクロ命令（上書きモード）によって格納するように構成することもできる。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施例に係わるマイクロプロセッサを示す回路ブロック図。
【図２】本発明の実施例に係わるマイクロプロセッサにおけるマクロ命令の構成を示すイメージ図。
【図３】本発明の実施例に係わるマイクロプロセッサにおける修正情報の構成を示すイメージ図。
【図４】本発明の実施例に係わるマイクロプロセッサの制御方法を示すフロー図。
【図５】本発明の実施例に係わるマイクロプロセッサの制御方法における上書きモードによる修正の一例を示すイメージ図。
【図６】本発明の実施例に係わるマイクロプロセッサの制御方法における交換モードによる修正の一例を示すイメージ図。
【図７】本発明の実施例に係わるマイクロプロセッサの制御方法におけるコピーモードによる修正の一例を示すイメージ図。
【図８】本発明の実施例に係わるマイクロプロセッサの制御方法における実行プログラム１４の生成方法を示すフロー図。
【図９】本発明の実施例に係わるマイクロプロセッサの制御方法における実行プログラム１４の生成の一例を示すイメージ図。
【符号の説明】
【００８０】
１１  定義メモリ
１２  内部バス
１３  ＣＰＵ（制御回路）
１４  実行プログラム
ＳＴ４１  命令セット初期化ステップ
ＳＴ４２  コード読み込みステップ
ＳＴ４３  命令判定ステップ
ＳＴ４４  命令セット修正ステップ
ＳＴ４５  命令セット実行ステップ
ＳＴ４６  命令実行ステップ
ＳＴ４７  終了判定ステップ
【図１】
2006293673.tif 000003
【図２】
2006293673.tif 000004
【図３】
2006293673.tif 000005
【図４】
2006293673.tif 000006
【図５】
2006293673.tif 000007
【図６】
2006293673.tif 000008
【図７】
2006293673.tif 000009
【図８】
2006293673.tif 000010
【図９】
2006293673.tif 000011