(57)【要約】【課題】用途に応じて同一マイクロプロセッサを使い分ける場合に、命令デコード、命令実行などにより規定される最大動作周波数の制約が発生する。【解決手段】本発明は、例えば、用途に応じて、最大動作周波数を可変にするために、命令または命令セットの一部を無効化させることを特徴とする。一例として、命令を、メモリから読み出してフェッチする命令フェッチ部と、命令フェッチ部でフェッチした命令に対するデコード処理を行う命令デコード部と、デコード後の命令に対する処理を実行する命令実行部とを有して構成されるマイクロプロセッサにおいて、前記命令デコード部が、外部設定値を入力とし、外部設定値によって、一部の命令をデコード対象から除外すること、または低速化させることを特徴とする。【選択図】  図２
2011158930.tif 000002
【特許請求の範囲】
【請求項１】
命令を、メモリから読み出してフェッチする命令フェッチ部と、命令フェッチ部でフェッチした命令に対するデコード処理を行う命令デコード部と、デコード後の命令に対する処理を実行する命令実行部とを有して構成されるマイクロプロセッサにおいて、
前記命令デコード部が、外部設定値を入力とし、外部設定値によって、一部の命令をデコード対象から除外すること、または低速化させることを特徴とするマイクロプロセッサ。
【請求項２】
前記命令デコード部が、前記外部設定値によって、デコードする命令群を選択する命令デコード選択部と、選択された命令群に対する命令デコードを行う命令デコード実行部を、２つ以上有することを特徴とする
請求項１に記載のマイクロプロセッサ。
【請求項３】
前記命令デコード部が、所定の命令群に対する命令デコードを行う命令デコード実行部を２つ以上有し、前記外部設定値によって、前記命令デコード実行部の命令デコード結果のいずれかを選択し、前記命令実行部に出力する命令デコード選択部を有することを特徴とする
請求項２に記載のマイクロプロセッサ。
【請求項４】
前記命令デコード部が、入力する命令の一部のデコード処理を実行するプリ命令デコード実行部と、残された命令に対するデコード処理を行う２つ以上のサブ命令デコード実行部とを有して構成され、
前記プリ命令デコード実行部が、前記外部設定値によって、前記サブ命令デコード実行部の一つにプリ命令デコードの結果を出力することを特徴とする
請求項２に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサに関する。例えば、命令または命令セットの一部を無効化または低速化させることにより、最大動作周波数を可変にすることが出来るマイクロプロセッサに関するものである。
【背景技術】
【０００２】
本技術分野の背景技術として、例えば、特開２００７−１７２２８５号公報（特許文献１）がある。該公報には、「［課題］回路規模の縮小化と処理時間の短縮化等に貢献するリコンフィギュラブル回路を提供する。［解決手段］それぞれが複数の算術論理演算機能を選択的に実行可能な複数の論理回路２から構成される演算部と、複数の論理回路２の間の接続関係を保持する接続部と、を備えるリコンフィギュラブル回路において、少なくとも１つの論理回路２は、その論理回路２の演算で使用する入力４ｂを、その論理回路２の演算の次の演算を実行する論理回路２に入力する専用の入力伝播線６を有する入力伝播回路５を備える。さらに、入力伝播回路５は、入力伝播回路５を備える第１の論理回路２で使用するデータを、第１の論理回路２の演算の次の演算を実行する第２の論理回路２に入力する際、第１の論理回路２での演算実行時間の間、データを保持し、第２の論理回路２で演算を実行するときに、第２の論理回路２に入力できるようにするデータ保持機構７を備える。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１７２２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的なマイクロプロセッサは、メモリから命令を読み出し、一度フェッチした後、命令デコードを行い、デコード結果に従い、処理を実行する。
【０００５】
マイクロプロセッサの最大動作周波数は、対応する命令と、処理内容によるハードウェアの遅延制約によって決まるため、基本構成が同一であっても、対応する命令と、処理内容の違いにより、個別のマイクロプロセッサを設計する必要がある。これらのマイクロプロセッサを様々な用途に適用する場合、その用途に応じて、例えば、動作周波数、必要な命令、必要な処理や処理パフォーマンスなどの条件が異なるため、異なるマイクロプロセッサとして設計する必要があった。
【０００６】
この改善策として、例えば、動作周波数、必要な命令、必要な処理や処理パフォーマンスなどをパラメータとして定義し、パラメータに応じてマイクロプロセッサを自動的に生成する方法がある。
【０００７】
また、同一のマイクロプロセッサを異なる用途で使用する場合、最も論理回路遅延時間の長い処理で決められる動作周波数が、動作周波数の上限、すなわち最大動作周波数となるため、最も論理回路遅延時間の長い処理が不要である用途に対しても、最大動作周波数の制約上、マイクロプロセッサの処理パフォーマンスが制限されるという課題がある。
【０００８】
前記マイクロプロセッサの自動生成の方法では、生成されるマイクロプロセッサはパラメータに応じて決められた性能のみ満足するものであり、このように用途に応じて同一マイクロプロセッサを使い分ける場合に、最大動作周波数など動作上の制約が発生するという課題が残る。
【０００９】
解決しようとする問題点は、用途に応じて同一マイクロプロセッサを使い分ける場合に、命令デコード、命令実行などにより規定される最大動作周波数の制約が発生する点である。
【課題を解決するための手段】
【００１０】
本発明は、一例として、用途に応じて、最大動作周波数を可変にするために、命令または命令セットの一部を無効化させることを特徴とする。
【発明の効果】
【００１１】
本発明のマイクロプロセッサは、例えば、用途に応じて動作周波数を可変に出来るため、用途に応じて複数のマイクロプロセッサを実装したり、最大動作周波数で動作することの出来る必要以上に処理パフォーマンスの高いマイクロプロセッサを実装したりすることなく、単一のマイクロプロセッサを様々な用途で使い分けられるという利点がある。
【００１２】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】マイクロプロセッサの一般的な構成を示した説明図である。
【図２】マイクロプロセッサの実施方法を示した説明図である。（実施例１）
【図３】図２で示すマイクロプロセッサにおける命令デコード部の構成の一例を示す説明図である。（実施例２）
【図４】図２で示すマイクロプロセッサにおける命令デコード部の構成の一例を示す説明図である。（実施例３）
【図５】図２で示すマイクロプロセッサにおける命令デコード部の構成の一例を示す説明図である。（実施例４）
【発明を実施するための形態】
【００１４】
図１に一般的なマイクロプロセッサの構成を示す。
【００１５】
メモリ部１は、機械語１００を格納するメモリである。
【００１６】
命令フェッチ部２は、前記メモリ部１から読み出した機械語１００をフェッチするブロックである。
【００１７】
命令デコード部４は、前記命令フェッチ部２から読み出した機械語１０１の命令デコード処理を行うブロックである。命令の種類が多いほど、デコード処理に伴うセレクタが多段になり、回路遅延が大きくなる。これは、マイクロプロセッサの最大動作周波数を抑える方向に働く。
【００１８】
命令実行部３は、前記命令デコード部１０でデコードされた命令１０３に対応する処理を行うブロックである。
【００１９】
図２は、本実施例によるマイクロプロセッサの命令デコード方法の典型的な一例である。以下、図２を用いて説明する。
【００２０】
図２で示すマイクロプロセッサの命令デコード方式は、Ｎ種類の命令、すなわち命令Ｎｉ（ｉ＝１、２、・・・、ｎ）に対応するものとする。
【００２１】
命令デコード部５は、機械語１０１を入力とし、命令群選択信号１０５で指定される命令群に対して、機械語１０１のデコード処理を行い、デコードして得られた命令１０３を命令実行部３に供給するブロックである。ここで、命令群とは、機械語１０１に対してデコード処理する命令のセットである。
【００２２】
例えば、２種類の命令群Ａ及び命令群Ｂについて考える。命令群Ａは命令Ｎｉ（ｉ＝１、２・・・、ｍ  ただしｍ＜ｎ）、命令群Ｂは命令Ｎｉ（ｉ＝ｍ＋１、ｍ＋２・・・、ｎ）で構成されるものとする。命令群選択信号１０５は、命令群Ａまたは、全ての命令群（命令群Ａ及び命令群Ｂ）の選択をすることが出きる値をとるものとする。命令群選択信号１０５の値が、命令群Ａを選択している場合、命令デコード部５は、機械語１０１に対して、命令群Ａのいずれであるかでコード処理をし、命令群Ａに含まれる命令であった場合、命令実行部３に命令１０３を供給する。一方、機械語１０１のデコード処理した結果、命令群Ａに含まれる命令でない場合、命令実行部３に対して、命令１０３を発行しない。従って、命令群選択信号１０５の値が、命令群Ａを選択している場合、命令デコード部５におけるデコード処理において、命令群Ｂに対するデコード処理を省くことが出来、論理回路の遅延量も削減することが出来きるため、命令デコード部５における最大動作周波数を上げることが可能となる。
【００２３】
図３は、図２で示す命令デコード部５の典型的な一例である。以下、図３を用いて説明する。
【００２４】
この例では、命令デコード部５は、命令デコード選択部１１と、命令デコード実行部Ａ１２と、命令デコード実行部Ｂ１３とで構成される。
【００２５】
また、命令群選択信号１０５は、命令群Ａまたは、全ての命令群（命令群Ａ及び命令群Ｂ）の選択をすることが出きる値をとるものとする。
【００２６】
命令デコード実行部Ａ１２は、全ての命令群に対するデコード処理を行うブロックである。また、命令デコード実行部Ｂ１３は、命令群Ａに対するデコード処理を行うブロックである。従って、デコード処理に対する論理回路の遅延量は、命令デコード実行部Ａ１２に比べて、命令デコード実行部Ｂ１３の方が少なくなる。
【００２７】
命令デコード選択部１１は、命令群選択信号１０５を入力とし、命令群選択信号１０５の値に従い、機械語１０１を命令デコード実行部Ａ１２と、命令デコード実行部Ｂ１３のいずれか片方に出力するブロックである。
【００２８】
命令群選択信号１０５が、命令群Ａに対するデコード処理を選択している場合、入力される機械語１０１は、命令デコード実行部Ｂ１３でデコード処理される。デコードした結果得られる命令１０３が、命令群Ａに含まれる場合、命令１０３を命令実行部３に供給する。
【００２９】
以上より、マイクロプロセッサの命令群Ａのみを使用したい場合に、命令群選択信号１０５によって、命令群Ａに対するデコード処理を選択することによって、命令デコード処理の回路遅延量を短くし、最大動作周波数を向上させることが出来る。
【００３０】
図４は、図２で示す命令デコード部５の典型的な別の一例である。以下、図４を用いて説明する。
【００３１】
この例では、命令デコード部５は、命令デコード選択部２３と、命令デコード実行部Ａ２１と、命令デコード実行部Ｂ２２とで構成される。
【００３２】
また、命令群選択信号１０５は、命令群Ａまたは、全ての命令群（命令群Ａ及び命令群Ｂ）の選択をすることが出きる値をとるものとする。
【００３３】
命令デコード実行部Ａ２１は、入力される機械語１０１に対して、全ての命令群に対するデコード処理を行うブロックである。また、命令デコード実行部Ｂ２２は、入力される機械語１０１に対して、命令群Ａに対するデコード処理を行うブロックである。従って、入力される機械語１０１に対するデコード処理に対する論理回路の遅延量は、命令デコード実行部Ａ２１に比べて、命令デコード実行部Ｂ２２の方が少なくなる。
【００３４】
命令デコード選択部２３は、命令群選択信号１０５と、命令デコード実行部Ａ２１がデコードした結果得られる命令１２０と、命令デコード実行部Ｂ２２がデコードした結果得られる命令１２１を入力とし、命令群選択信号１０５の値に従い、命令１２０と命令１２１のいずれか片方を、命令実行部３に供給するブロックである。
【００３５】
以上より、マイクロプロセッサの命令群Ａのみを使用したい場合に、命令群選択信号１０５によって、命令群Ａに対するデコード処理を選択することによって、命令デコード処理の回路遅延量を短くし、最大動作周波数を向上させることが出来る。
【００３６】
図５は、図２で示す命令デコード部５の典型的な一例である。以下、図５を用いて説明する。
【００３７】
この例では、命令デコード部５は、プリ命令デコード部４１と、サブ命令デコード部Ａ４２と、サブ命令デコード部Ｂ４３とで構成される。
【００３８】
また、命令群選択信号１０５は、命令群Ａまたは、全ての命令群（命令群Ａ及び命令群Ｂ）の選択をすることが出来る値をとるものとする。
【００３９】
プリ命令デコード部４１は、機械語１０１の一部領域に対してデコード処理を行い、その結果得られる命令が命令群Ａに含まれる場合には、機械語または機械語の一部（例えば、機械語１０１からプリでコード処理で使用した領域を削除したもの）１４０を、サブ命令デコード部Ａ４２に供給し、それ以外の場合には、前記機械語または機械語の一部１４０を、サブ命令デコード部Ａ４３に供給するブロックである。
【００４０】
サブ命令デコード部Ａ４２は、命令群選択信号１０５が全ての命令群（命令群Ａ及び命令群Ｂ）を選択している場合、前記機械語または機械語の一部１４０を入力とし、全ての命令群（命令群Ａ及び命令群Ｂ）に対する命令デコード処理を行い、命令実行部３に対して、命令１０３を供給するブロックである。
【００４１】
サブ命令デコード部Ｂ４３は、命令群選択信号１０５が命令群Ａを選択している場合、前記機械語または機械語の一部１４０を入力とし、命令群Ａに対する命令デコード処理を行い、命令実行部３に対して、命令１０３を供給するブロックである。
【００４２】
図３、図４、及び図５で示す実施例では、命令群Ａと、全ての命令群のいずれか、すなわち、２種類の命令群に対する選択をしたが、Ｎ種類（ｎは正の数）の命令群に対する選択が出来る構成としても良い。
【００４３】
また、各命令群が有する命令の一部または全ては重複しても良い。
【００４４】
例えば、対応する命令を命令Ｎｉ（ｉ＝１、２、３・・・９）とし、命令群Ａは命令Ｎｉ（ｉ＝１、２、３、４、５）、命令群Ｂは命令Ｎｉ（ｉ＝３、５、６、７、８、９）、命令群Ｃは命令Ｎｉ（ｉ＝５、６）で構成される場合を例に上げることが出来る。この場合、選択できる命令群の一例として、命令群Ａまたは、命令群Ｂまたは、命令群Ｃがある。選択できる命令群の別の一例として、命令群Ａまたは、命令群Ｂ及び命令郡Ｃがある。選択できる命令群の別の一例として、命令群Ａ及び命令群Ｂまたは、命令群Ｂ及び命令郡Ｃがある。選択できる命令群の別の一例として、全ての命令群または、命令群Ａまたは、命令群Ｃがある。
【００４５】
以上，添付図面を参照しながら本発明にかかる好適な実施形態について説明したが，本発明はかかる例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【００４６】
例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、２つ以上の実施例を、その全部または一部において同時に採用する構成も可能である。
【符号の説明】
【００４７】
１      メモリ
２      命令フェッチ部
３      命令実行部
５      命令デコード部
１０５  命令群選択信号
【図１】
2011158930.tif 000003
【図２】
2011158930.tif 000004
【図３】
2011158930.tif 000005
【図４】
2011158930.tif 000006
【図５】
2011158930.tif 000007