(57)【要約】      （修正有）【課題】マイクロプログラムでの再命令読み出しにおいて、ハードウェアの削減をしつつ、再命令読み出しを高速化する。【解決手段】記憶装置から命令バッファIBUFFERに読み出された命令を命令実行レジスタIWR0,1,2に読み出して実行し、命令実行中において、別の命令列の読み出しを行う再命令読み出しを実行するパイプライン命令実行処理部と、パイプライン命令実行処理部の制御を行うパイプライン命令実行制御部と、を有する命令処理装置において、処理待ちのマイクロプログラムを保持する処理待ちスタックを有し、再命令読み出しが行われる場合に、特定のマイクロプログラムのデコード結果に基づいて、後続命令に対する読み出し要求の停止を行うととともに、別の一連の命令列の命令アドレスの設定後、最終のマイクロプログラムを除くマイクロプログラムのデコード結果に基づいて、読み出し要求の停止の解除を行う。【選択図】図１５
2006260599.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置から命令バッファに読み出された命令を命令実行レジスタに読み出して実行し、一つの命令アドレスから開始される一連の命令実行中において、前記記憶装置に記憶されている他の命令アドレスから開始される別の一連の命令列の読み出しを行う再命令読み出しを実行するパイプライン命令実行処理部と、
マイクロプログラム格納部に格納されたマイクロプログラムをデコードすることにより前記パイプライン命令実行処理部の制御を行うパイプライン命令実行制御部と、を有する命令処理装置において、
処理待ちのマイクロプログラムを保持する処理待ちスタックを有し、
前記パイプライン命令実行処理部において前記再命令読み出しが行われる場合に、
前記パイプライン命令実行制御部は、特定のマイクロプログラムのデコード結果に基づいて、前記命令バッファに格納されている命令の後続命令に対する読み出し要求の停止を行うととともに、前記別の一連の命令列の命令アドレスの設定後、前記処理待ちスタックから読み出されたマイクロプログラムのうち、最終のマイクロプログラムを除くいずれかのマイクロプログラムのデコード結果に基づいて、前記後続命令に対する前記命令バッファへの読み出し要求の停止の解除を前記パイプライン命令実行部に対して行うことを特徴とする命令処理装置。
【請求項２】
前記記憶装置に記憶された命令を読み出す場合に、全ての命令が前記命令バッファを経由して、前記命令レジスタに格納されることを特徴とする請求項１に記載の命令処理装置。
【請求項３】
記憶装置から命令バッファに読み出された命令を命令実行レジスタに読み出して実行し、一つの命令アドレスから開始される一連の命令実行中において、前記記憶装置に記憶されている他の命令アドレスから開始される別の一連の命令列の読み出しを行う再命令読み出しの実行を、処理待ちスタックに格納されるマイクロプログラムをデコードすることにより制御を行う命令実行制御部を有する命令処理装置の命令制御方法において、
前記命令処理装置において前記再命令読み出しが行われる場合に、
前記命令実行制御部により、特定のマイクロプログラムのデコード結果に基づいて、前記命令バッファに格納されている命令の後続命令に対する読み出し要求の停止を行うステップと、
前記命令実行制御部により、前記別の一連の命令列の読み出しアドレスの設定を行うステップと、
前記命令実行制御部により、前記特定のマイクロプログラムに続くマイクロプログラムのうち前記処理待ちスタックに保持された最終のマイクロプログラムを除くマイクロプログラムのデコード結果に基づいて、前記後続命令に対する前記命令バッファへの読み出し要求の停止の解除を行うステップと、を有することを特徴とする命令制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置における命令処理装置に関する。
【背景技術】
【０００２】
情報処理装置において、ＬＣＴＬ（load control）命令などのシリアライズ処理を必要とする命令、ＬＰＳＷ（load program status word) 命令などのシステムの制御状態を変更する命令、又は、割り込みなどが実行されると、再命令読み出しが行われる。
【０００３】
近年の情報処理装置は、ハードウェアの削減をしつつ命令実行を実現するために、マイクロプログラムを採用している。ＬＣＴＬ命令などのシリアライズ処理を必要とする命令、ＬＰＳＷ命令などのシステムの制御状態を変更する命令、又は、割り込みなどの実行による再命令読み出し方法を実現する際も、同様にマイクロプログラムの使用を実現している。
【０００４】
図１は、マイクロプログラムを使用した再命令読み出しの手順を示すフローチャートである。
【０００５】
このマイクロプログラムを使用した再命令読み出しは、時系列で、マイクロプログラムの起動（ステップＳ１）−命令読み出し停止（ステップＳ２）−命令読み出しアドレス設定（ステップＳ３）−命令読み出し開始（ステップＳ４）を行うことにより実現している。
【０００６】
従来のパイプライン処理方式を採用した命令処理装置においても、図１の処理と同様な処理を行う。
【０００７】
図２〜図１３を用いて、従来のパイプライン処理方式を採用した再命令読み出し方法の詳細を説明する。図２〜図５は命令処理回路を示し、図２は回路の全体構成と図３〜図５の接続関係を示す。図６〜図８は、再命令読み出し処理のタイムチャートである。図９〜図１３は、命令処理回路に使用されるハード構成図を示す。
【０００８】
（基本的な再命令読み出し）
基本的な再命令読み出し処理はＬＰＳＷ命令で行われる。図６〜図８のタイムチャートの内、図６が本例の処理を示す。
【０００９】
ＬＰＳＷ命令における図１の手順は、次のように実行される。まず、図１のステップＳ１のマイクロプログラムの起動は、図３の命令バッファ（ＩＢＵＦＦＥＲ）上にフェッチされた命令が命令レジスタ（ＩＷＲ）にロードされ、Ｄサイクルにおいて命令を解読し、制御記憶アドレスレジスタ（ＣＳＡＲ）にオペコード（ＩＯ）を供給することによって、制御記憶部（ＭＣＳ）からマイクロプログラム制御情報（ＰＬＨＣ，ＰＣＲ，ＬＡＳＴ−ＷＯＲＤなど）を次々とＤタグ（ＤＴＡＧ）へ読み出し、そのマイクロプログラム制御情報をＤサイクルからＷサイクルまでシフトさせることによって各サイクル（Ｄサイクル〜Ｗサイクル）で各々の処理を行う。
【００１０】
図１のステップＳ２の命令読み出し停止は、図６のＦＣ２（ファンクションカウンタ２）で行われる。図３のＭＣＳから読み出されたＦＣ２のマイクロプログラム制御情報（ＰＬＨＣ＝０Ｃ）がＤサイクルからＷサイクルまでシフトされる。この時、ＴサイクルのＴＴＡＧからマイクロプログラム制御情報（ＰＬＨＣ＝０Ｃ）を解読し、Ｔ−ＣＯＮＴＲＯＬ信号（Ａ）が生成され（図１０参照）、図３の命令読み出し制御部に送られる。
【００１１】
送られたＴ−ＣＯＮＴＲＯＬ信号（Ａ）は、図１２のＲＥ−ＩＦＣＨ−ＴＧＲをオンし、図３の命令読み出し制御部から送られる信号（Ｃ）：＋ＩＦ−ＲＥＱ信号（図１２参照）によって命令読み出し停止を行う。また同時に、命令読み出し制御部から送られる信号（Ｄ）：−ＩＮＴＩＡＬＩＺＥ−ＮＳＩＣ信号（図１２参照）により図３のＩＢＵＦＦＥＲの状態と命令の位置を示すＮＳＩ−ＣＯＵＮＴＥＲをクリアすることで命令バッファの初期化を行っている。
【００１２】
図１のステップＳ３の命令読み出しアドレス設定は、図６のＦＣ０で行われる。図３のＭＣＳから読み出されたＦＣ０のマイクロプログラム制御情報（ＰＣＲ＝１４）がＤサイクルからＷサイクルまでシフトされる。この時、図４のＡサイクルのＡ−ＣＯＮＴＲＯＬ信号によりオペランドフェッチが出され、図５のＷサイクルのＷＴＡＧからはマイクロプログラム制御情報（ＰＣＲ＝１４）を解読し、Ｗ−ＣＯＮＴＲＯＬ信号（Ｅ）が生成され（図１１参照）、図５のＲＲ−ＬＣＨ（結果レジスタラッチ）を選択し、その出力をＰＳＷ（ＰＲＯＧＲＡＭ  ＳＴＡＴＵＳ  ＷＯＲＤ）に書き込ませる。
【００１３】
続けて、図６のＷ＋１サイクルにおいて、図１１のＷ−ＣＯＮＴＲＯＬ信号（Ｅ）をラッチしたＷ−ＣＯＮＴＲＯＬ−ＬＣＨ信号（Ｆ）により更新されたＰＳＷの命令アドレス（ＰＳＷＩＡＲ）を命令アドレスレジスタ（ＩＡＲ）にロードする。
【００１４】
図１のステップＳ４の命令読み出し開始は、図６のＦＣ５で行われる。図３のＭＣＳから読み出されたＦＣ５のマイクロプログラム制御情報（ＬＡＳＴ−ＷＯＲＤ）がＤサイクルからＷサイクルまでシフトされる。この時、図３のＤサイクルのＤＴＡＧから図９のマイクロプログラム制御情報（ＬＡＳＴ−ＷＯＲＤ）とＤ−ＶＡＬＩＤ信号（Ｄサイクルが有効である信号）との論理積（ＡＮＤ）をとることにより、ＮＳＩ−ＲＥＱ信号（Ｇ）が生成され、図３の命令読み出し制御部に送られる。
【００１５】
図３の命令読み出し制御部に送られたＮＳＩ−ＲＥＱ信号（Ｇ）は、図１２のＲＥ−ＩＦＣＨ−ＴＲＧのラッチをリセットし、続いてＳＴＡＲＴ−ＵＰのラッチをオンすることにより、その次のクロックサイクルからＩＦ−ＲＥＱ信号（Ｃ）が送られることによって命令読み出しの開始を行う。
【００１６】
以上説明したようにマイクロプログラムが処理されることにより、図１の手順を満足し、図６に示した基本的再命令読み出しが行われる。
【００１７】
（後続命令アドレスを生成し、再命令読み出しを行う例）
後続命令アドレスでの再命令読み出しは、ＬＣＴＬ（load control）命令で行われる。図６〜図８のタイムチャートの内、図７が本例の処理を示す。
【００１８】
ＬＣＴＬも図１の手順に従い、再命令読み出しを行う。本例でのステップＳ１の再命令読み出しのマイクロプログラム起動、ステップＳ２の命令読み出し停止、ステップＳ４の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理を行う。ただし、ステップＳ３の命令読み出しアドレス設定のみが異なる。
【００１９】
上述の基本的な再命令読み出しと同様に、ステップＳ１でマイクロプログラムが起動され、ステップＳ２の命令読み出し停止が図７のＦＣ２によって行われる。
【００２０】
図１のステップＳ３の命令読み出しアドレス設定は、図７のＦＣ６で行われる。図３のＭＣＳから読み出されたＦＣ６のマイクロプログラム制御情報（ＰＬＨＣ＝０Ｆ）がＤサイクルからＷサイクルまでシフトされるのと同様にＩＡＲにあるアドレスを図３の命令読み出し制御部から送られる命令アドレス修飾（ＩＡＭ）により補正されたアドレスとＩＷＲからデコードされた命令長コードがシフトされる。
【００２１】
この時、ＴサイクルのＴＴＡＧからはマイクロプログラム制御情報（ＰＬＨＣ＝０Ｆ）を解読し、Ｔ−ＣＯＮＴＲＯＬ信号（Ｂ）が生成され（図１０参照）、図４のＴＩＡＲ（Ｔサイクルの命令アドレスレジスタ）とＴＩＬＣ（Ｔサイクルの命令長コード）を加算したＴＩＡＲ＋ＴＩＬＣを選択し、そのＴＩＡＲ＋ＴＩＬＣをＩＡＲにロードする。
【００２２】
その後、図１のステップＳ４の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理をＦＣ８によって行う。
【００２３】
以上のようにマイクロプログラムが処理されることによって、図１の手順を満足し、図７に示す再命令読み出しが行われる。
【００２４】
（割り込み処理においてＣＰＵのステートに影響された再命令読み出しを行う例）
図６〜図８のタイムチャートの内、図８が本例の処理を示す。
【００２５】
割り込み処理においてＣＰＵのステートに影響された再命令読み出しも、図１の手順に従い、再命令読み出しを行う。本例でのステップＳ１のマイクロプログラム起動、ステップＳ２の命令読み出し停止、ステップＳ３の命令読み出しアドレス設定は、上述の基本的な再命令読み出しの説明と同様な処理を行う。ただし、ステップＳ４の命令読み出し開始のみが異なる。
【００２６】
上述の基本的な再命令読み出しと同様に、ステップＳ１でマイクロプログラムが起動され、ステップＳ２の命令読み出し停止が図８のＦＣ２、ステップＳ３の命令読み出しアドレス設定がＦＣ０で行われる。
【００２７】
図１のステップＳ４の命令読み出し開始は、図８のＦＣ８で行われる。図３のＭＣＳから読み出されたＦＣ８のマイクロプログラム制御情報（ＬＡＳＴ−ＷＯＲＤ）がＤサイクルからＷサイクルまでシフトされる。この時、ＤサイクルのＤＴＡＧからマイクロプログラム制御情報（ＬＡＳＴ−ＷＯＲＤ）とＤ−ＶＡＬＩＤ信号（Ｄサイクルが有効であることを示す信号）との論理積（ＡＮＤ）をとることにより、ＮＳＩ−ＲＥＱ信号（Ｇ）が生成され（図９参照）、図３の命令読み出し制御部とプロセス制御部に送られる。
【００２８】
図３の命令読み出し制御部に送られたＮＳＩ−ＲＥＱは、図１２のＲＥ−ＩＦＣＨ−ＴＧＲのラッチをリセットし、続いてＳＴＡＲＴ−ＵＰのラッチをオンする。図３のプロセス制御部に送られたＮＳＩ−ＲＥＱはラッチされ、ラッチされた信号とＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥ信号（図１３参照）の論理積（ＡＮＤ）をすることにより、ＳＴＡＲＴステート−ＰＲＯＣＥＳＳステートとステート遷移させ、ＰＲＯＣＥＳＳステートに入った時、図１２のＥＮＢ  ＰＲＯＣＥＳＳ−ＩＦＣＨがオンすることにより、その次のクロックサイクルからＩＦ−ＲＥＱ信号（Ｃ）が送られることによって命令読み出しの開始を行っている。
【００２９】
以上説明したようにマイクロプログラムが処理されることによって、図１の手順を満足し、図８に示し再命令読み出しが行われる。
【発明の開示】
【発明が解決しようとする課題】
【００３０】
以上説明した、従来のマイクロプログラムを採用したパイプライン処理方式の再命令読み出し方法には、次の３つの問題点がある。
【００３１】
１．後続命令アドレスの算出について
従来のパイプライン方式の命令処理方法においては、後続命令アドレスの算出を、Ｔサイクルの命令アドレスレジスタ及びＴサイクルの命令長コードによって算出している。このようにすると、ハードウェアの増加を招いてしまうため、新しい後続命令アドレスの算出方法が必要である。
【００３２】
２．命令読み出しの開始について
従来の命令読み出し開始は、図６〜図８に示すように、マイクロプログラムの最終フローのＤサイクルで、ＮＳＩ−ＲＥＱ信号により後続の命令読み出しを開始していた。これは、従来の命令投入制御においては、図１に示すように、最初の命令フェッチデータはＩＢＵＦＦＥＲを経由せず、直接、ＩＷＲに投入される方式であったため、再命令読み出しの際、現命令の実行中に後続の命令読み出しを開始すると、ＩＷＲの内容を破壊する虞があったためである。
【００３３】
これに対し、図６〜図８に示すようにマイクロプログラムの最終フローのＤサイクルにおいて、後続の命令読み出し開始を行うとＩＷＲの内容が破壊されるケースは一切ない。しかし、命令読み出し開始が最終フローのＤサイクルであると、命令フェッチのキャッシュミス、命令アドレスのアドレス変換などにより命令読み出し処理のクロックサイクル数が増大する場合は、必然的に、命令実行制御部への命令投入が、命令読み出し処理によるクロックサイクル数が増大した分だけ遅れる。
【００３４】
３．ＣＰＵのステート遷移について
割り込み処理において、最終フローのＤサイクル以降でステートがＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥ，ＳＴＡＲＴ，ＰＲＯＣＥＳＳ−ＳＴＡＴＥと遷移し、ＰＲＯＣＥＳＳ−ＳＴＡＴＥになって初めて命令読み出し開始を行っているため、後続命令の読み出しが遅れる。
【００３５】
本発明は、上記問題点を解決し、マイクロプログラムでの再命令読み出しにおいて、ハードウェアの削減をしつつ、新たな再命令読み出し方法の確立と、再命令読み出しを高速化することを目的とするものである。
【課題を解決するための手段】
【００３６】
本発明は、上記目的を達成するためになされたものである。
【００３７】
本発明の命令処理装置においては、処理待ちのスタックを設けて命令実行を行う。また、命令投入制御が完全に命令バッファ（ＩＢＵＦＦＥＲ）を経由し、命令を命令レジスタ（ＩＷＲ）へロードする方式を採用する。これにより、簡単な制御でＩＷＲの内容を破壊するケースを回避することができ、再命令読み出しをするマイクロプログラム処理において、マイクロプログラム実行中に予め命令フェッチ処理を行うことによって、マイクロプログラム処理が完了後、早期に命令実行パイプラインへ命令投入を行うことが可能となる。
【００３８】
本発明においては、更に、以下の理由により後述の手段を設ける。
【００３９】
１．命令処理装置は、本来、命令実行制御部と命令フェッチパイプラインはそれぞれ独立して動作するため、マイクロプログラム処理と命令フェッチ処理は同時実行可能である。
【００４０】
２．後続命令アドレスの算出は、Ｔサイクルの命令アドレスとＴサイクルの命令長コードから算出しなくとも算出する方法がある。
【００４１】
３．割り込み処理のマイクロプログラム処理が走行するＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥは、割り込み処理などのマイクロプログラムの起動に必要であるが、割り込み処理などのマイクロプログラムが走行している途中ではＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥでなくても良いこと。
【００４２】
以上の理由から、上記問題点を解決するために、以下に記載する手段を設ける。
【００４３】
１．命令読み出し要求の停止制御レジスタとマイクロプログラムによる命令読み出し要求の停止手段と停止解除手段を設けることによって再命令読み出しを可能とする。
【００４４】
２．図１の命令読み出し開始を別のマイクロプログラム制御情報により指示することで、マイクロプログラム実行と再命令読み出し処理の同時実行を可能とし、再命令読み出しの高速化も可能とする。
【００４５】
３．後続命令アドレスでの再命令読み出しにおいて、マイクロプログラム指示による自命令アドレスと自命令長を保持する手段と加算器を設けることによってハードウェアの削減をし、再命令読み出しを可能とする。
【００４６】
４．割り込み処理などの再命令読み出しにおいて、マイクロプログラム指示によって早期にＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥからＳＴＡＲＴ−ＳＴＡＴＥを経由してＰＲＯＣＥＳＳ−ＳＴＡＴＥにステート遷移させ、命令フェッチを可能とする手段を設けることにより、再命令読み出しを実行する。
【発明の効果】
【００４７】
本発明によれば、命令実行制御を処理待ちのスタックを設けて命令実行処理をし、かつ、マイクロプログラム制御を可能とする命令処理装置とし、再命令読み出しをマイクロプログラムにより制御し、再命令読み出しの高速化を可能とする。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の実施形態について図を用いて説明する。
【００４９】
本実施形態では、従来の命令処理の実行をパイプラインによって制御する代わりに、リザベーションステーションと呼ばれる処理待ちのスタックを設けて、命令の実行制御をする方式を採用し、この命令実行制御に対応したマイクロプログラム制御を実現する。以下に、処理待ちのスタックを設けた命令の実行制御方式における、一般的なマイクロプログラム動作を説明する。
【００５０】
図１４〜図１７は、処理待ちのスタックを設けたマイクロプログラム制御を実行する命令処理回路を示す。図１４は回路の全体構成と、図１５〜図１７の接続関係を示す。
【００５１】
最初に、図１４〜図１７の回路の一般的な動作について説明をする。
【００５２】
図１５のキャッシュから命令バッファ（ＩＢＵＦＦＥＲ）上に命令がフェッチされ、命令レジスタ（ＩＷＲ０／１／２）に命令がロードされる。ロードされた各命令は、Ｄサイクルで解読され、マイクロプログラムを使用する命令であればマイクロプログラム命令を保持するラッチ（ＩＷＲＭ）に命令をロードし、図１７のＤＯＰＣにオペコードを送る。
【００５３】
また、マイクロプログラムを起動するための制御記憶アドレスレジスタ（ＣＳＡＲ）に命令のオペコードを送り、制御記憶部（ＭＣＳ）からマイクロプログラム制御情報をＤＴＡＧへ次々と読み出す。Ｄサイクルにおいて命令を解読した時、その命令に関する情報がコミット・ステート・エントリ（ＣＳＥ）に、アドレス生成に関する情報がＲＳＡに、演算に関する情報がＲＳＥにそれぞれ登録される（図１６）。
【００５４】
ＲＳＡからは、Ａサイクルにおいて、そのエントリ情報を基にオペランド要求をキャッシュに送り、Ｐｓ，Ｔｓ，Ｂｓ，Ｒｓサイクルとシフトして、オペランドデータをＬＲにロードする。Ｒｓサイクルでは、オペランドデータの読み出しが完了したことを示すＦＣＨ−ＣＯＭＰ信号（完了報告信号）がＣＳＥに返される。
【００５５】
ＲＳＥは、エントリ情報が登録されるとそのエントリ情報を基に演算実行要求がＥ−ＵＮＩＴに出され、Ｐｅ，Ｂｅ，Ｘｅサイクルとシフトし、Ｘｅサイクルにおいて演算を実行する。また、演算実行がＸｅサイクルで完了した時、ＥＵ−ＣＯＭＰ（完了報告信号）がＣＳＥに返される。
【００５６】
ＣＳＥは、各機能ユニット（Ｓ−ＵＮＩＴ，Ｅ−ＵＮＩＴ）からの完了報告信号（ＦＣＨ−ＣＯＭＰ，ＥＵ−ＣＯＭＰ）を待つことによって、各機能の処理が完了したことを認識し、その命令又は１フローに必要な全ての処理の完了報告があるとＵサイクルにおいて命令実行が完了すると判断した信号（ＣＯＭＭＩＴ−ＣＯＭＰ）を出す。
【００５７】
図１７のＭＣＳから読み出されたマイクロプログラム制御情報は、オペコードを一緒にＤＴＡＧ，ＡＴＡＧ，ＴＴＡＧとシフトさせ、各サイクル（Ｄｍ，Ａｍ，Ｔｍｒ）をマイクロプログラムによって制御する。Ｔｍｒのサイクルでは、リザベーションステーションマイクロ（ＲＳＭ）にエントリ情報（オペコード、マイクロプログラム制御情報）が登録され、登録されたエントリ情報は、Ｂｍｒ，Ｘｍｒ，Ｕｍｒサイクルの制御に使用され、登録された順番にエントリ情報は開放される。ＭＤＢはマイクロプログラムによって読み出された演算結果を一時的に保持するバッファで、ＲＳＭの各エントリに対応している。
【００５８】
Ｂｍｒ，Ｘｍｒ，Ｕｍｒサイクルの制御において、演算ユニットのＰｅステートからＢｅステートへのリリースタイミングで同期を取ったＲＳＭのエントリ番号（ＲＳＭ−ＩＤ）をＢｍ，Ｘｍ，Ｕｍとシフトさせ、任意のステートでＲＳＭからマイクロプログラム制御情報を取り出すことにより、各ステート（Ｂｍｒ，Ｘｍｒ，Ｕｍｒ）を制御している。そして、命令の実行に必要な全ての完了報告が各機能ユニットからＣＳＥに送られると、命令実行が完了すると判断した信号（ＣＯＭＭＩＴ−ＣＯＭＰ）が出て、ＲＳＭからエントリ情報がＷＴＡＧへロードされ、Ｗｍサイクルの制御が可能となる。
【００５９】
以上説明したように、処理待ちのスタックを設けた命令実行処理方式は、従来のパイプライン処理方式によるマイクロプログラム処理と同様に、各ステートをＤｍ，Ａｍ，Ｔｍｒ，Ｂｍｒ，Ｘｍｒ，Ｕｍｒ，Ｗｍとして、マイクロプログラムによる制御を可能としている。
【００６０】
本発明においては、上記の命令実行処理方式の変更に伴い、マイクロプログラムを使用した再命令読み出しにおいて、ハードウェアの削減をしつつ、新たな再命令読み出し方法の確立と、情報処理装置における恒久的な問題として再命令読み出しの高速化を実現する。
【００６１】
次に、上記の図１４〜図１７の回路の動作について、図１８〜図２０のタイムチャートと、図２１〜図３３のハードウェアの構成図を用いて、再命令の種類ごとに詳細に説明をする。再命令の種類として、マイクロプログラムによる基本的な再命令読み出しを行う例、後続命令アドレスを生成し、再命令読み出しを行う例、割り込み処理においてステートに影響された再命令読み出しを行う例について説明する。
【００６２】
（基本的な再命令読み出しの例）
基本的な再命令読み出し処理は、ＬＰＳＷ命令で行われる。図１８〜図２０のタイムチャートの内、図１８が本例の処理を示す。
【００６３】
ＬＰＳＷ命令は、図１の手順に従って、時系列に再命令読み出し処理が実行される。まず、図１のステップＳ１のマイクロプログラムの起動は、図１５において、キャッシュから命令バッファ（ＩＢＵＦＦＥＲ）上に命令がフェッチされ、命令レジスタ（ＩＷＲ０／１／２）に命令がロードされる。ロードされた各命令はＤサイクルで解読され、マイクロプログラム命令であれば、マイクロプログラム命令を保持するラッチ（ＩＷＲＭ）に命令をロードし、図１７のＤＯＰＣにオペコードを送る。
【００６４】
また、マイクロプログラムを起動するための制御記憶アドレスレジスタ（ＣＳＡＲ）に命令のオペコードを送り、制御記憶部（ＭＣＳ）からマイクロプログラム制御情報（ＰＬＨＣ，ＥＭＩＴ等）をＤＴＡＧへ次々と読み出し、オペコードと一緒にＤｍ，Ａｍ，Ｔｍｒ，Ｂｍｒ，Ｘｍｒ，Ｕｍｒ，Ｗｍとシフトさせ、各サイクルの処理を行う。
【００６５】
図１のステップＳ２の命令読み出し停止は、図１８のＦＣ１（ファンクションカウンタ１）で行われる。図１７のＭＣＳから読み出されたＦＣ１のマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝３）がＤｍサイクルからＷｍサイクルまでシフトされる。この時、ＤｍサイクルのＤＴＡＧからマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝３）を解読し、Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号を生成する。
【００６６】
生成されたＤ−μ−ＨＡＬＴ−ＩＦＣＨ信号は、図１５の命令読み出し制御部に送られ、図２３のＨＡＬＴ−ＩＦＣＨ−ＴＧＲラッチをオンし、図２４のＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨラッチをオフし、図１５の（Ａ）ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ信号が出ないことによって命令読み出し停止を行い、また、図１５の（Ｂ）：ＣＬＥＡＲ−ＩＦＣＨ−ＡＬＬ信号が命令読み出し制御からＩＢＵＦＦＥＲの状態と命令読み出しデータの位置を示すＮＳＩ−ＣＯＵＮＴＥＲに送られることで命令バッファの初期化を行う。
【００６７】
図１のステップＳ３の命令読み出しアドレス設定は、図１８のＦＣ０，ＦＣ１で行われる。図１７のＭＣＳからＦＣ０のマイクロプログラム制御情報、ＦＣ１のマイクロプログラム制御情報が次々と読み出され、ＤｍサイクルからＷｍサイクルまでシフトされる。この時、図１７のＡｍサイクルにおいて、ＦＣ０，ＦＣ１とＡ−ＣＯＮＴＲＯＬによりオペランドフェッチが出され、まず、ＦＣ０において、ＷｍサイクルのＷＴＡＧからはマイクロプログラム制御情報を解読し、Ｗ−ＣＯＮＴＲＯＬ信号が生成され、図１６のＥＵ−ＲＲ（結果レジスタ）からＭＤＢを経由し、Ｗ−ＣＯＮＴＲＯＬ信号により、その出力をＰＳＷ−ＨＩＧＨ（ＰＲＯＧＲＡＭ  ＳＴＡＴＵＳ  ＷＯＲＤ  ＨＩＧＨ側）に書き込ませる。
【００６８】
また、続けてＦＣ１においてＷｍサイクルのＷＴＡＧからはマイクロプログラム制御情報を解読し、Ｗ−ＣＯＮＴＲＯＬ信号が生成され、図１６のＥＵ−ＲＲからＭＤＢを経由し、Ｗ−ＣＯＮＴＲＯＬ信号により、その出力をＰＳＷ−ＬＯＷ（ＰＲＯＧＲＡＭ  ＳＴＡＴＵＳ  ＷＯＲＤ  ＬＯＷ側）に書き込ませる。そして、ＰＳＷの変更後、ＰＳＷＩＡＲは、図１５の再命令アドレス生成部に送られ、再命令アドレスを保持する。図２９のＩＡＲＸはＰＳＷＩＡＲが入り、また、ＩＡＲＸ−ＩＬＣはＩＡＲＸ−ＮＳＩ−ＴＧＲがオフであるため、「０」が入り、再命令読み出しアドレスは、図２９〜図３１からＰＳＷＩＡＲを示す。
【００６９】
図１のステップＳ４の読み出し開始は、図１８のＦＣ２で行われる。図１７のＭＣＳから読み出されたＦＣ２のマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝０）がＤｍサイクルからＷｍサイクルまでシフトされる。この時、ＷｍサイクルのＷＴＡＧからマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝０）を解読し、Ｗ−μ−ＲＥＬＥＡＳＥ−ＩＦＣＨ信号を生成する。生成されたＷ−μ−ＲＥＬＥＡＳＥ−ＩＦＣＨ信号は、図１５の命令読み出し制御部に送られ、Ｗ−μ−ＲＥＬＥＡＳＥ−ＩＦＣＨ信号により、図２３のＨＡＬＴ−ＩＦＣＨ−ＴＧＲラッチをオフすることで、図２４のＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨラッチがつき、命令読み出しが可能となって、図１５の命令読み出し制御部から送られる信号（Ａ）：＋ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ信号によって命令読み出し開始を行う。
【００７０】
以上説明したようにマイクロプログラムが処理されることによって、図１の手順を満足し、図１８のような再命令読み出しが行われる。
【００７１】
図１８の再命令読み出しの全体動作について説明する。
【００７２】
まず、ＦＣ１のＤ−μ−ＨＡＬＴ−ＩＦＣＨ信号（又は、μ−ＳＨＯＲＴ−ＲＥ−ＩＦＣＨ信号）により再命令読み出しする命令以降の命令をＩＷＲ−ＶＡＬＩＤをオフすることによって無効にし、また、同時にＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号をオンする。ＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号は命令読み出し停止を指示し、ＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨ信号を止め、命令読み出しを停止させる。
【００７３】
次いで、ＣＬＥＡＲ−ＩＦ−ＰＯＲＴ−ＡＬＬ信号をオンし、命令バッファ機構の初期化と各ＰＯＲＴ−ＶＡＬＩＤのクリアを行い、また、各ＰＯＲＴ−ＶＡＬＩＤのクリアによってＮＯ−ＩＦ−ＰＯＲＴ−ＳＥＱ−ＶＡＬ信号が生成され、再命令読み出しアドレスをセレクトする。そして、ＰＳＷを変更後、ＦＣ２のＷ−μ−ＲＥＬＥＡＳＥ−ＩＦＣＨ信号によりＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号をオフすることによって、命令読み出し停止解除を指示し、ＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨ信号をオンし、命令読み出し要求（ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ信号）と再命令アドレスがキャッシュへ送出される。
【００７４】
（後続命令アドレスを生成し、再命令読み出しを行う例）
後続命令アドレスでの再命令読み出しは、ＬＣＴＬ命令で行われる。図１８〜図２０のタイムチャートの内、図１９が本例の処理を示す。
【００７５】
ＬＣＴＬ命令は、図１の手順に従って再命令読み出しを行う。後続命令アドレスでの再命令読み出しでのステップＳ１のマイクロプログラム起動、ステップＳ２の命令読み出し停止、ステップＳ４の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理を行う。ただし、ステップＳ３の命令読み出しアドレス設定のみが異なる。
【００７６】
上述の基本的な再命令読み出しと同様に、ステップＳ１でマイクロプログラムが起動され、ステップＳ２の命令読み出し停止を図１９のＦＣ０によって行う。
【００７７】
図１７のＭＣＳから読み出されたＦＣ１のマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝１）がＤｍサイクルからＷｍサイクルまでシフトされる。この時、ＷｍサイクルのＷＴＡＧからマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝０）を解読し、Ｗ−μ−ＩＡＲＸ−ＮＳＩ−ＴＧＲ信号を生成する。生成されたＷ−μ−ＩＡＲＸ−ＮＳＩ−ＴＧＲ信号は、再命令アドレス生成部に送られ、図２９のＩＡＲＸ−ＮＳＩ−ＴＧＲラッチにセットされる。
【００７８】
この時、ＰＳＷからのＰＳＷＩＡＲ（自命令アドレス）とＷ−ＯＰＣをデコードしたＷ−ＩＬＣ（自命令長）は、命令実行中、常に図１５の再命令アドレス生成部に送られる。ＩＡＲＸ−ＮＳＩ−ＴＧＲラッチがオンすると、ＩＡＲＸはＰＳＷＩＡＲが保持され、また、ＩＡＲＸ−ＩＬＣには、ＩＡＲＸ−ＮＳＩ−ＴＧＲラッチがオンしている間、Ｗ−ＩＬＣがＩＡＲＸ−ＩＬＣに入り、再命令アドレスはＰＳＷＩＡＲとＷ−ＩＬＣとを加算したアドレス（後続命令アドレス）を算出したことになる。
【００７９】
その後、図１のステップＳ４の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理を図１９のＦＣ２によって行う。
【００８０】
以上説明したようにマイクロプログラムが処理されることによって、図１の手順を満足し、図１９のような命令読み出しが行われる。
【００８１】
図１９の再命令読み出しの全体動作について説明する。
【００８２】
まず、ＦＣ０において、Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号により無効な命令のＩＷＲ−ＶＡＬＩＤをオフし、ＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号をオンして命令読み出しを停止させ、命令バッファの初期化と各ＰＯＲＴ−ＶＡＬＩＤをクリアし、再命令読み出しアドレスをセレクトする。ＦＣ１のＷ−μ−ＩＡＲＸ−ＮＳＩ−ＲＥＱ信号により再命令読み出しアドレスを後続命令アドレス（ＰＳＷＩＡＲ＋ＩＬＣ）にし、ＦＣ２のＷ−μ−ＲＥＬＥＡＳＥ−ＩＦＣＨ信号によりＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号をオフすることによって命令読み出し停止解除を指示し、ＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨ信号をオンし、命令読み出し要求（ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ信号）と再命令読み出しアドレス（後続命令アドレス）をキャッシュへ送出する。
【００８３】
（割り込み処理においてＣＰＵのステートに影響された再命令読み出しを行う例）
図１８〜図２０のタイムチャートの内、図２０が本例の処理を示す。
【００８４】
割り込み処理においてＣＰＵのステートに影響された再命令読み出しも、図１の手順に従い、再命令読み出しを行う。また、ＣＰＵのステートに影響された再命令読み出しのステップＳ１のマイクロプログラム起動、ステップＳ２の命令読み出し停止、ステップＳ３の命令読み出しアドレス設定、ステップＳ４の命令読み出し開始において、上述の基本的な再命令読み出しの説明と同様な処理を行うが、命令読み出し開始をする際に、マイクロプログラムによって命令読み出しが早く開始されるように工夫がされている。
【００８５】
上述の基本的な再命令読み出しと同様に、ステップＳ１でマイクロプログラムが起動され、ステップＳ２の命令読み出し停止とステップＳ３の命令読み出しアドレス設定がＦＣ０、ステップＳ４の命令読み出し開始がＦＣ１で行われる。
【００８６】
その後、図１７のＭＣＳから読み出されたＦＣ２のマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝４）がＤｍサイクルからＷｍサイクルまでシフトされる。この時、ＤｍサイクルのＤＴＡＧからマイクロプログラム制御情報（ＰＬＨＣ＝３，ＥＭＩＴ＝４）を解読し、Ｄ−μ−ＳＷ−ＰＲＯＣＥＳＳ信号を生成して、図１５のプロセス制御部に送る。
【００８７】
プロセス制御部では、図３３のようにＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥとＤ−μ−ＳＷ−ＰＲＯＣＥＳＳ信号の論理積（ＡＮＤ）をとった信号により、ＣＰＵのステートをＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥからＳＴＡＲＴ，ＰＲＯＣＥＳＳ−ＳＴＡＴＥと遷移させ、図１５の（Ｃ）：ＰＲＯＣＥＳＳ−ＳＴＡＴＥ信号を命令読み出し制御部に送り、図２４のＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号がオフになった次のサイクルでＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨラッチがオンとなり、そのサイクルで図１５の（Ａ）：ＩＦ−ＲＥＱＥＳＴ−ＶＡＬＩＤ信号が命令読み出し制御部からキャッシュへ送られ、再命令読み出しが開始される。
【００８８】
なお、割り込みのマイクロプログラム処理のような多重フローにおいて再命令読み出し開始を行うと、図３４のように、Ｐ，Ｔ，Ｂ，Ｒサイクルとシフトされ、命令読み出しデータが早期に命令バッファ上に読み出されるケースがある。このようなケースの場合、命令投入は、現命令が実行されて最終フローのＤｍサイクルが空くまで命令実行制御部に命令投入をしてはいけない。
【００８９】
その制御を図１７のＤｍサイクルにおいて、マイクロプログラム命令の最終フローを示す信号（Ｅ）：ＭＦ−ＬＡＳＴ−Ｄ信号を図１５の命令読み出し制御部に送り、図３５のように次命令要求信号（Ｆ）：ＮＳＩ−ＲＥＱＵＥＳＴ信号を図１５の命令読み出し制御部から各ＩＷＲに送ることでＩＢＵＦＦＥＲから各ＩＷＲへの命令投入制御を行っている。
【００９０】
以上のように、マイクロプログラムが処理されることにより、図１の手順を満足し、図２０のような再命令読み出しが行われる。
【００９１】
図２０の再命令読み出しの全体動作について説明する。
【００９２】
まず、ＦＣ０において、Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号により無効な命令のＩＷＲ−ＶＡＬＩＤをオフし、ＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号をオンして命令読み出しを停止させ、命令バッファの初期化と各ＰＯＲＴ−ＶＡＬＩＤをクリアし、再命令読み出しアドレスをセレクトする。ＦＣ２のＤ−μ−ＳＷ−ＰＲＯＣＥＳＳ信号によりＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥからＳＴＡＲＴ−ＳＴＡＴＥを経由してＰＲＯＣＥＳＳ−ＳＴＡＴＥにステート遷移させて命令読み出しが可能な状態にし、ＦＣ１のＷ−μ−ＲＥＬＥＡＳＥ−ＩＦＣＨ信号によりＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号をオフすることによって、命令読み出し停止解除を指示し、ＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨ信号をオンし、命令読み出し要求（ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ信号）と再命令読み出しアドレスをキャッシュへ送出する。
【００９３】
図２１〜３３、３５の、命令処理回路におけるハードウェアの構成について更に説明をする。
【００９４】
図２１、図２２は、図１５の命令実行制御部におけるＤ−ＴＡＧとＷ−ＴＡＧの詳細実施例である。図２１は、Ｄ−ＴＡＧとＷ−ＴＡＧに含まれるマイクロプログラム制御情報（ＰＬＨＣ，ＥＭＩＴ）を示しており、図２２のようにマイクロプログラム制御情報のＰＬＨＣとＥＭＩＴをデコードすることで、再命令読み出し処理に使用される制御信号を生成している。
【００９５】
以下に、再命令読み出し処理に使用される制御信号とマイクロプログラム制御情報を示す。
【００９６】
１．Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝３）
２．Ｗ−μ−ＲＥＬＥＡＳＥ−ＩＦＣ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝０）
３．Ｄ−μ−ＳＷ−ＰＲＯＣＥＳＳ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝４）
４．Ｗ−μ−ＩＡＲＸ−ＮＳＩ−ＲＥＱ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝１）
基本的に再命令読み出し処理は、Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝３）により命令フェッチを停止し、ＰＳＷを変更後、Ｗ−μ−ＲＥＬＥＡＳＥ−ＩＦＣ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝０）で命令フェッチ停止を解除することで、再命令読み出し処理を実行している。また、Ｄ−μ−ＳＷ−ＰＲＯＣＥＳＳ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝４）は、割り込み処理時の再命令読み出し処理でステート遷移を要求する信号として使用し、Ｗ−μ−ＩＡＲＸ−ＮＳＩ−ＲＥＱ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝１）は、ＬＣＴＬ命令における後続命令アドレス生成を要求する信号として使用する。
【００９７】
また、図２１のＷ−ＯＰＣは、Ｗサイクルのオペコードを示しており、図２２でＷ−ＯＰＣをデコードすることによって、後続命令アドレス生成時に使用されるＷ−ＩＬＣ（自命令長）を生成している。
【００９８】
図２３〜図２８は、図１５に示す（Ａ）命令読み出し制御部の詳細実施例である。マイクロプログラム制御情報により指示されるＤ−μ−ＨＡＬＴ−ＩＦＣＨ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝３）は、図２３のＨＡＬＴ−ＩＦＣＨ−ＴＧＲのラッチをセットし、また、ＩＷＲ０／１／２上にある命令で、再命令読み出し処理を実行するマイクロプログラム命令以降に存在する命令を無効にするために、図２８のμ−ＳＨＯＲＴ−ＲＥ−ＩＦＣＨ信号（＝Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号）によりＩＷＲ１−ＶＡＬＩＤとＩＷＲ２−ＶＡＬＩＤ又はＩＷＲ２−ＶＡＬＩＤのラッチをオフする。
【００９９】
Ｄ−μ−ＨＡＬＴ−ＩＦＣＨ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝３）によりセットされた図２３のＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号は、命令読み出し停止をする信号である。ＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号は図２４の命令読み出しが可能な状態を示すＥＮＢ−ＰＲＯＣＥＳＳ−ＩＦＣＨのラッチをオフし、命令読み出し要求（ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ）を停止させ、次に図２３のＣＬＥＡＲ−ＩＦ−ＰＯＲＴ−ＡＬＬ信号により図２５〜図２７の命令バッファの状態と命令フェッチデータの位置を示すＮＳＩ−ＣＯＵＮＴＥＲと図２４の命令フェッチパイプライン（３系統：Ａ／Ｂ／Ｃ）の有効性を示すＰＯＲＴ−ＶＡＬＩＤＡ／Ｂ／Ｃをクリアして命令フェッチの初期化を行う。
【０１００】
また、クリアされたＰＯＲＴ−ＶＡＬＩＤ  Ａ／Ｂ／ＣによってＮＯ−ＩＦ−ＰＯＲＴ−ＳＥＱ−ＶＡＬＩＤ信号を生成し、図２４、図３２のように命令読み出し要求（ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ）と再命令読み出しアドレスのセレクトを行っている。また、命令フェッチを停止した時、既に命令フェッチのリクエストが出されていることによって各ＩＷＲのＶＡＬＩＤラッチが余計にセットされるのを防ぐために、ＩＮＨ−Ｅ−ＶＡＬＩＤ信号（＝ＨＡＬＴ−ＩＦＣＨ−ＴＧＲ信号）で、図２８の各ＩＷＲ−ＶＡＬＩＤラッチにセットする信号を抑える。
【０１０１】
そして、ＰＳＷを更新後、マイクロプログラム制御情報により指示されるＷ−μ−ＲＥＬＥＡＳＥ−ＩＦＣ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝０）によって、図２３のＨＡＬＴ−ＩＦＣＨ−ＴＧＲのラッチをリセットし、命令読み出し停止を解除することによって命令読み出しを開始し、再命令読み出し処理を可能とする。
【０１０２】
また、図３５のＮＳＩ−ＲＥＱＵＥＳＴ信号は、再命令読み出し処理時の命令投入制御を行う信号である。各ＩＷＲの命令が有効であることを示す信号（ＩＷＲ０−ＶＡＬＩＤ，ＩＷＲ１−ＶＡＬＩＤ，ＩＷＲ２−ＶＡＬＩＤ）と各ＩＷＲの命令が多重フローの命令であることを示す信号（Ｄ０−ＭＦ−ＴＧＲ，Ｄ１−ＭＦ−ＴＧＲ，Ｄ２−ＭＦ−ＴＧＲ）と実行しているマイクロプログラム命令のＤｍサイクルにおける最終フローを示す信号（ＭＦ−ＬＡＳＴ−Ｄ）とＤｍサイクルのリリース信号（Ｄｍ−ＭＦ−ＲＥＬ）によって生成される。
【０１０３】
図２９〜図３２は、再命令読み出しアドレス生成部の詳細実施例を示す。
【０１０４】
図２９〜図３１は、再命令読み出しアドレスの生成回路を示す。通常、再命令読み出しするアドレスは、ＰＳＷＩＡＲの値であるが、ＬＣＴＬ命令時の再命令読み出し処理のように後続命令アドレスで再命令読み出し処理するケースがあるため、図２９〜図３１のようにＩＡＲＸ（自命令アドレス）とＩＬＣ（自命令長）と加算器を設け、Ｗ−μ−ＩＡＲＸ−ＮＳＩ−ＲＥＱ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝０）により制御されるＩＡＲＸ−ＮＳＩ−ＴＧＲのラッチによって、再命令読み出しアドレスの選択制御をすることによりＰＳＷＩＡＲ（ＰＳＷＩＡＲ＋０レングス）と後続命令アドレス（ＰＳＷＩＡＲ＋ＩＬＣ）を生成する。
【０１０５】
ＩＡＲＸ−ＮＳＩ−ＴＧＲのラッチがオフの時、再命令読み出しアドレスはＰＳＷＩＡＲがそのまま再命令読み出しアドレスとして生成され、ＩＡＲＸ−ＮＳＩ−ＴＧＲのラッチがオンの時、再命令読み出しアドレスは、後続命令アドレスを生成する。
【０１０６】
図３２は、再命令読み出しアドレスのセレクト回路である。図２４のＰＯＲＴ−ＶＡＬＩＤ（Ａ／Ｂ／Ｃ）がクリアされた状態の時、図２９〜図３１で生成された再命令読み出しアドレスを選択し、命令アドレスを図１５のキャッシュへ送出している。
【０１０７】
図３３は、プロセス制御部（図１５）の詳細実施例である。
【０１０８】
割り込み処理時の再命令読み出し処理はＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥで行われるため、命令読み出しが可能な状態を示すＥＮＤ−ＰＲＯＣＥＳＳ−ＩＦＣＨはオフであり、命令読み出し要求（ＩＦ−ＲＥＱＵＥＳＴ−ＶＡＬＩＤ）は発行されない状態にある。そこで、Ｄ−μ−ＳＷ−ＰＲＯＣＥＳＳ信号（ＰＬＨＣ＝３，ＥＭＩＴ＝４）によって、ＥＮＤ−ＰＲＯＣＥＳＳ−ＳＴＡＴＥからＳＴＡＲＴ−ＳＴＡＴＥを経由してＰＲＯＣＥＳＳ−ＳＴＡＴＥにステート遷移させ命令フェッチを可能な状態とする。
【０１０９】
図３６のタイムチャートを用いて、本発明と従来例とを比較して説明する。
【０１１０】
図３６は、マイクロプログラム処理で再命令読み出し処理を実行し、命令読み出しを停止させ、本発明と従来技術においてそれぞれ命令読み出し停止解除を行っている状態を示す。
【０１１１】
この時、本発明による命令読み出し開始は従来技術による命令読み出し開始より図に示した差分のクロック数だけ早く命令読み出しが可能となり、再命令読み出しアドレスが指す命令を命令実行制御部に早期に命令投入が可能となる。また、本発明において命令読み出し停止解除を指示するフローと最終フローの間にフローが多くあればあるほど、命令読み出しから命令実行パイプラインに命令を投入するまでの命令読み出し処理にかかるクロック数を確保できるため、命令読み出し処理のクロック数が増大するケースの場合でも、確保したクロック数以内で命令フェッチ処理が完了するならば、最終フローのＤｍサイクルの次のタイミングから早期に命令実行制御部へ命令投入が可能である。
【図面の簡単な説明】
【０１１２】
【図１】本発明及び従来例におけるマイクロプログラムを使用した再命令読み出しの手順を示すフローチャート。
【図２】パイプライン処理方式を採用した再命令読み出しの命令処理回路の全体構成と、図３〜図５の回路の接続関係を示す図。
【図３】図２に表示した第１の部分の詳細な構成を示す回路図。
【図４】図２に表示した第２の部分の詳細な構成を示す回路図。
【図５】図２に表示した第３の部分の詳細な構成を示す回路図。
【図６】図２の命令処理回路の第１の動作を示すタイムチャート。
【図７】図２の命令処理回路の第２の動作を示すタイムチャート。
【図８】図２の命令処理回路の第３の動作を示すタイムチャート。
【図９】図２の命令処理回路に使用される第１のハード構成図。
【図１０】図２の命令処理回路に使用される第２のハード構成図。
【図１１】図２の命令処理回路に使用される第３のハード構成図。
【図１２】図２の命令処理回路に使用される第４のハード構成図。
【図１３】図２の命令処理回路に使用される第５のハード構成図。
【図１４】本発明における、処理待ちのスタックを設けたマイクロプログラム制御を実行する命令処理回路の全体構成と、図１５〜図１７の回路の接続関係を示す図。
【図１５】図１４に表示した第１の部分の詳細な構成を示す回路図。
【図１６】図１４に表示した第２の部分の詳細な構成を示す回路図。
【図１７】図１４に表示した第３の部分の詳細な構成を示す回路図。
【図１８】図１４の命令処理回路の第１の動作を示すタイムチャート。
【図１９】図１４の命令処理回路の第２の動作を示すタイムチャート。
【図２０】図１４の命令処理回路の第３の動作を示すタイムチャート。
【図２１】図１４の命令処理回路に使用される第１のハード構成図。
【図２２】図１４の命令処理回路に使用される第２のハード構成図。
【図２３】図１４の命令処理回路に使用される第３のハード構成図。
【図２４】図１４の命令処理回路に使用される第４のハード構成図。
【図２５】図１４の命令処理回路に使用される第５のハード構成図。
【図２６】図１４の命令処理回路に使用される第６のハード構成図。
【図２７】図１４の命令処理回路に使用される第７のハード構成図。
【図２８】図１４の命令処理回路に使用される第８のハード構成図。
【図２９】図１４の命令処理回路に使用される第９のハード構成図。
【図３０】図１４の命令処理回路に使用される第１０のハード構成図。
【図３１】図１４の命令処理回路に使用される第１１のハード構成図。
【図３２】図１４の命令処理回路に使用される第１２のハード構成図。
【図３３】図１４の命令処理回路に使用される第１４のハード構成図。
【図３４】図２０の第３の動作の異なる動作を示すタイムチャート。
【図３５】図３４の動作に対応して設けられるハード構成図。
【図３６】本発明と実施例とを比較するタイムチャート。
【符号の説明】
【０１１３】
ＣＳＡＲ    制御記憶アドレスレジスタ
ＣＳＥ    コミット・ステート・エントリ
Ｄ，Ａ，Ｔ，Ｂ，Ｔ    サイクル
ＦＣ    フローカウンタ
ＩＢＵＦＦＥＲ    命令バッファ
ＩＷＲ    命令レジスタ
ＩＷＲＭ    ラッチ
ＭＣＳ    制御記憶部
ＲＳＭ    リザベーションステーションマイクロ
Ｓ−ＵＮＩＴ，Ｅ−ＵＮＩＴ    各機能ユニット
【図１】
2006260599.tif 000003
【図２】
2006260599.tif 000004
【図３】
2006260599.tif 000005
【図４】
2006260599.tif 000006
【図５】
2006260599.tif 000007
【図６】
2006260599.tif 000008
【図７】
2006260599.tif 000009
【図８】
2006260599.tif 000010
【図９】
2006260599.tif 000011
【図１０】
2006260599.tif 000012
【図１１】
2006260599.tif 000013
【図１２】
2006260599.tif 000014
【図１３】
2006260599.tif 000015
【図１４】
2006260599.tif 000016
【図１５】
2006260599.tif 000017
【図１６】
2006260599.tif 000018
【図１７】
2006260599.tif 000019
【図１８】
2006260599.tif 000020
【図１９】
2006260599.tif 000021
【図２０】
2006260599.tif 000022
【図２１】
2006260599.tif 000023
【図２２】
2006260599.tif 000024
【図２３】
2006260599.tif 000025
【図２４】
2006260599.tif 000026
【図２５】
2006260599.tif 000027
【図２６】
2006260599.tif 000028
【図２７】
2006260599.tif 000029
【図２８】
2006260599.tif 000030
【図２９】
2006260599.tif 000031
【図３０】
2006260599.tif 000032
【図３１】
2006260599.tif 000033
【図３２】
2006260599.tif 000034
【図３３】
2006260599.tif 000035
【図３４】
2006260599.tif 000036
【図３５】
2006260599.tif 000037
【図３６】
2006260599.tif 000038