(57)【要約】【課題】マイクロプロセッサの命令実行時におけるデータコンフリクトの発生を自動的に判定し、コンパイラによる最適化を必要とせずに、データコンフリクトを回避することが可能な命令実行制御方式を実現する。【解決手段】複数命令のデコード情報によりデータコンフリクト発生を予測判定し、そのタイミングとアドレスを特定する判定回路１０と、データコンフリクト発生が予測された場合にコンフリクト回避制御信号を生成する制御回路１１と、コンフリクト回避制御信号に応じてコンフリクトの対象となるデータを一時保持するラッチ１２と、コンフリクト回避制御信号に応じてデータコンフリクト発生時に、通常の記憶領域４からのデータ選択に代えて、ラッチ１２に保持されたデータを選択するセレクタ１４とを備え、パイプラインストールの回避を行う。【選択図】  図１
2006004234.tif 000002
【特許請求の範囲】
【請求項１】
命令メモリ、デコーダ、演算部、記憶領域を有し、パイプライン方式で命令を実行するマイクロプロセッサにおける命令実行制御方式であって、
前記デコーダにおける複数の命令デコード情報により命令実行時のデータコンフリクト発生を予測判定し、データコンフリクト発生時のタイミングと前記記憶領域のデータアドレスを特定する判定回路と、
前記判定回路によりデータコンフリクト発生が予測された場合にコンフリクト回避制御信号を生成する制御回路と、
前記コンフリクト回避制御信号に応じて前記判定回路により特定された前記記憶領域のデータアドレスのデータを一時保持するラッチと、
前記コンフリクト回避制御信号に応じて前記判定回路により特定されたデータコンフリクト発生時のタイミングでデータ選択を行うセレクタと、
を備えてパイプラインストールの回避を行うマイクロプロセッサの命令実行制御方式。
【請求項２】
前記セレクタは、通常は前記記憶領域のデータを選択し、前記判定回路により特定されたデータコンフリクト発生時のタイミングでは前記ラッチに保持されたデータを選択し、前記選択したデータを前記演算部に送る請求項１記載のマイクロプロセッサの命令実行制御方式。
【請求項３】
前記デコーダおよび前記判定回路は、パイプラインの段数に応じてデータコンフリクト発生の予測判定に必要な複数の命令を常時処理する請求項１記載のマイクロプロセッサの命令実行制御方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサの処理能力を向上させるための命令実行制御方式に関する。
【背景技術】
【０００２】
従来、マイクロプロセッサの処理能力向上技術として、処理の並列度を高めるための様々な技術が開発されている。ＶＬＩＷ（Very Long Instruction Word）方式に関する処理能力向上技術としては特許文献１に記載されているものがある。
【０００３】
ＶＬＩＷ方式は１つの命令語中に複数の命令を収容し、それらを同時に実行する方式であり、実行する命令間に依存関係（データコンフリクト等）が極力発生しないように、事前にコンパイラによってプログラムを最適化する。同時に実行される命令がない場合はＮＯＰ（No Operation）命令が実行されるため、処理性能を向上させるためにはコンパイラによる最適化技術が要求される。
【特許文献１】特願平６−２３０９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方式では、データコンフリクト等の依存関係が頻発する場合はパイプラインストールが大きな問題となり、処理能力が悪化してしまうという問題があった。
【０００５】
本発明は、マイクロプロセッサの命令実行において、データコンフリクトが生じた場合に制御系が自動的に状況を判断し、コンパイラによる最適化を必要とせずに、実行する命令間の依存関係によるコンフリクトを回避することが可能な命令実行制御方式を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の命令実行制御方式における第１の態様は、命令メモリ、デコーダ、演算部、記憶領域を有し、パイプライン方式で命令を実行するマイクロプロセッサにおいて、前記デコーダにおける複数の命令デコード情報により命令実行時のデータコンフリクト発生を予測判定しデータコンフリクト発生時のタイミングと前記記憶領域のデータアドレスを特定する判定回路と、前記判定回路によりデータコンフリクト発生が予測された場合にコンフリクト回避制御信号を生成する制御回路と、前記コンフリクト回避制御信号に応じて前記判定回路により特定された前記記憶領域のデータアドレスのデータを一時保持するラッチと、前記コンフリクト回避制御信号に応じて前記判定回路により特定されたデータコンフリクト発生時のタイミングでデータ選択を行うセレクタと、を備えてパイプラインストールの回避を行うものである。
【０００７】
本発明の命令実行制御方式における第２の態様は、第１の態様の命令実行制御方式において、前記セレクタは、通常は前記記憶領域のデータを選択し、前記判定回路により特定されたデータコンフリクト発生時のタイミングでは前記ラッチに保持されたデータを選択し、前記選択したデータを前記演算部に送るものである。
【０００８】
これら第１および第２の態様の構成によれば、判定回路によりデータコンフリクト発生を予測判定し、制御回路によりデータコンフリクトを回避するための制御信号を生成することによって、データコンフリクト発生時に必要となる記憶領域のデータをラッチに一時保持し、データコンフリクト発生時にラッチのデータを選択することで誤ったデータを使用しないようにすることができるため、データコンフリクトを回避することができ、処理能力を向上させることができる。
【０００９】
本発明の命令実行制御方式における第３の態様は、第１の態様の命令実行制御方式において、前記デコーダおよび前記判定回路は、パイプラインの段数に応じてデータコンフリクト発生の予測判定に必要な複数の命令を常時処理するものである。
【００１０】
この構成によれば、データコンフリクト発生の予測判定に必要な数命令先の命令コードを保持し、データコンフリクトが発生するのか否かの判定を行うことができるため、パイプライン段数によらずデータコンフリクト発生を予測判定することができる。
【発明の効果】
【００１１】
本発明によれば、データコンフリクトの発生をあらかじめ予測し、そのデータをラッチに一時保持することにより、所定のアドレスからの正しいデータを使用するとともに、そのアドレスに対するデータの書き込みも同時にできるため、データコンフリクトを回避することができ、マイクロプロセッサの処理性能を向上させることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面を参照しながら説明する。図１は本発明の一実施の形態に係る命令実行制御方式を実施するマイクロプロセッサの構成を示すブロック図である。図１において、マイクロプロセッサは、命令メモリ１、デコーダ２、演算部３、記憶領域（レジスタ、メモリ）４、判定回路１０、制御回路１１、ラッチ１２、セレクタ１３、１４から構成され、データバス１、データバス２、データバス３を備えている。
【００１３】
命令メモリ１から読み出された命令はデコーダ２でデコードされ、そのデータがデータバス１を介して演算部３および記憶領域４に送られる。セレクタ１４は記憶領域４またはラッチ１２のデータを選択し、それがデータバス２を介して演算部３に送られる。演算部３の出力はデータバス３を介して記憶領域４に送られる。
【００１４】
判定回路１０はデコーダ２によるデコード結果の情報からコンフリクトが発生する時間と記憶領域のアドレスを判断する。制御回路１１は判定回路１０の判断結果に基づき制御信号１と制御信号２を生成する。
【００１５】
制御信号１はコンフリクトが発生するアドレスのデータを選択し、そのデータを記憶領域４からラッチ１２へ転送し、これをラッチ１２で一時保持する。制御信号２はデータが衝突しないように、記憶領域４もしくはラッチ１２の一方のデータを選択する。すなわち、コンフリクトが発生している場合はラッチ１２のデータをデータバス２に転送し、コンフリクトが発生していない場合は記憶領域４のデータをデータバス２に転送する。
【００１６】
図２は、従来方式の問題例として、５段パイプライン制御時にコンフリクトが発生する場合を説明する図である。図２に示す５段パイプラインにおいて、各段はそれぞれ、ＩＦ（命令フェッチ）、ＤＥＣ（命令デコーダ）、ＥＸ（命令実行）、ＭＡ（メモリアクセス）、ＷＢ（レジスタ書き込み）である。
【００１７】
命令Ａと命令Ｂの関係として、命令Ａにおいて特定のレジスタにデータをライトしようとすることと同時に、命令Ｂにおいてこのレジスタからデータをリードする場合にコンフリクトが発生する。従来方式であれば数サイクルのストールが発生し、処理が悪化していた。
【００１８】
図３は本実施形態による命令実行制御動作を示すフローチャートである。ステップ３１において命令メモリ１からのデータをデコーダ２で命令デコードし、ステップ３２において判定回路１０によりコンフリクトが発生する可能性を判断し、コンフリクト発生によりバス制御が必要と判断した場合は、その時間とアドレスを特定する。
【００１９】
その情報に基づき、ステップ３３において制御回路１１が制御信号を生成し、ステップ３４においてコンフリクトが発生しているアドレスのデータをラッチ１２に一時保持する。ラッチ１２に保持されたデータは、ステップ３５においてコンフリクトが発生する時間にセレクタ１４を介してデータバスに転送される。
【００２０】
このようにして、コンフリクトが発生している箇所に対して読み出しと同時にデータを書き込むことができるため、コンフリクトが生じても処理性能を落とすことなく命令を実行することができる。
【産業上の利用可能性】
【００２１】
本発明のマイクロプロセッサにおける命令実行制御方式は、コンフリクトが発生した場合の回避を可能にすし、汎用的なプロセッサにおいてコンフリクト発生による処理性能の悪化を回避することができる点において有用である。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施の形態に係る命令実行制御方式を実施するマイクロプロセッサの構成を示すブロック図。
【図２】５段パイプライン制御時にコンフリクトが発生する場合を説明する図。
【図３】本発明の一実施の形態による命令実行制御動作を示すフローチャート。
【符号の説明】
【００２３】
１  命令メモリ
２  デコーダ
３  演算部
４  記憶領域（レジスタ、メモリ）
１０  判定回路
１１  制御回路
１２  ラッチ
１３、１４  セレクタ
３１〜３５  ステップ
ＩＦ  命令フェッチ
ＤＥＣ  命令デコーダ
ＥＸ  命令実行
ＭＡ  メモリアクセス
ＷＢ  レジスタ書き込み
【図１】
2006004234.tif 000003
【図２】
2006004234.tif 000004
【図３】
2006004234.tif 000005