(57)【要約】【課題】ソフトウェア命令の実行順序が確定前に、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態にすること【解決手段】ソフトウェア命令先取部２１は実行前のソフトウェア命令を先取りする。ソフトウェア命令記憶部２２は取得したソフトウェア命令を格納し、格納されたソフトウェア命令が実行されたか否かの判定であるソフトウェア命令実行判定を行う。ソフトウェア命令実行部２３はソフトウェア命令記憶部２２からソフトウェア命令を取得して実行する。マイクロ命令先取部２４はソフトウェア命令実行判定において実行されていないソフトウェア命令が存在すると判定された場合に、先取り済みのソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合に当該マイクロ命令を読み出す。マイクロ命令実行部２６は読み出したマイクロ命令を取得して実行する。【選択図】図１
2011248820.tif 000002
【特許請求の範囲】
【請求項１】
実行前のソフトウェア命令を先取りするソフトウェア命令先取部と、
前記ソフトウェア命令先取部が取得した前記ソフトウェア命令を格納するとともに、格納された前記ソフトウェア命令が実行されているか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令記憶部と、
前記ソフトウェア命令記憶部から前記ソフトウェア命令を取得して実行するソフトウェア命令実行部と、
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取部と、
前記マイクロ命令先取部が取得した前記マイクロ命令を格納するマイクロ命令記憶部と、
前記マイクロ命令記憶部に格納された前記マイクロ命令を取得して実行するマイクロ命令実行部と、を備える情報処理装置。
【請求項２】
前記ソフトウェア命令実行部は、取得した前記ソフトウェア命令が分岐命令であり、当該分岐先の処理を実行する場合、前記ソフトウェア命令先取部に前記ソフトウェア命令の先取処理をキャンセルさせ、前記マイクロ命令先取部に前記マイクロ命令の先取処理をキャンセルさせるとともに、前記ソフトウェア命令記憶部に格納された前記ソフトウェア命令を無効化させる先取キャンセル命令を出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記マイクロ命令実行部は、前記マイクロ命令の実行シーケンスが変更した場合に前記ソフトウェア命令実行部が前記先取キャンセル命令を出力することを指示するマイクロ命令キャンセル信号を出力することを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するオペランドが読出し可能か否かを判定し、読出し可能である場合には当該オペランドを読み出すオペランド先取部、をさらに備えることを特徴とする請求項１乃至請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
実行前のソフトウェア命令を先取りするソフトウェア命令先取ステップと、
先取した前記ソフトウェア命令を取得して実行するソフトウェア命令実行ステップと、
前記ソフトウェア命令先取ステップにおいて先取した前記ソフトウェア命令が実行済みであるか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令判定ステップと、
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取ステップにおいて先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取ステップと、
前記マイクロ命令先取ステップにおいて読み出された前記マイクロ命令を順次実行するマイクロ命令実行ステップと、を備えるマイクロ命令処理方法。
【請求項６】
前記ソフトウェア命令実行ステップでは、取得した前記ソフトウェア命令が分岐命令であり、当該分岐先の処理を実行する場合、前記ソフトウェア命令先取ステップにおける前記ソフトウェア命令の先取処理をキャンセルさせ、前記マイクロ命令先取ステップにおける前記マイクロ命令の先取処理をキャンセルさせることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記マイクロ命令実行ステップでは、前記マイクロ命令の実行シーケンスが変更した場合に前記ソフトウェア命令の先取処理をキャンセルさせ、前記マイクロ命令の先取処理をキャンセルさせることを特徴とする請求項５または請求項６に記載のマイクロ命令処理方法。
【請求項８】
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するオペランドが読出し可能か否かを判定し、読出し可能である場合には当該オペランドを読み出すオペランド先取ステップ、をさらに備えることを特徴とする請求項５乃至請求項７のいずれか１項に記載のマイクロ命令処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロ命令の処理にかかる情報処理装置及びマイクロ命令処理方法に関する。
【背景技術】
【０００２】
情報処理装置において、プロセッサは命令セットアーキテクチャによって定められた命令（以後の記載ではソフトウェア命令と記載する。）を単純な命令であるマイクロ命令に分割して実行する。
【０００３】
マイクロ命令制御を行う情報処理装置において、制御記憶容量の減少、命令処理性能の向上の要求が高まっている。特許文献１には、制御記憶容量の減少、命令処理性能の向上を図る情報処理装置に関する技術が開示されている。
【０００４】
図６は、特許文献１に記載の情報処理装置の構成を示すブロック図である。以下に当該情報処理装置の動作を説明する。制御記憶５６０は、マイクロ命令を格納している。シーケンス記憶５４０は制御記憶５６０のマイクロ命令の実行順序を定めたシーケンスコードを格納している。命令制御ユニット５１０は命令（ソフトウェア命令）を解読し、シーケンス記憶５４０の読み出しアドレスを生成する。命令制御ユニット５１０は当該アドレスを先頭にして、シーケンス記憶５４０からシーケンスコードを順次読み出す。命令制御ユニット５１０は、当該シーケンスコードを制御記憶５６０の読み出しアドレスとして制御記憶５６０のマイクロ命令を順次読み出し、当該マイクロ命令を実行ユニット５８０に順次送出する。
【０００５】
上述のように、マイクロ命令に対するシーケンスコードを順次生成して実行することにより、当該情報処理装置は制御記憶５６０に格納するマイクロ命令の格納容量を削減している。これにより、当該情報処理装置は処理効率を向上させている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−１８５５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の情報処理装置では、実行するソフトウェア命令を解読して確定しなければ、当該ソフトウェア命令に対応するマイクロ命令のシーケンスコードを生成できない。すなわち、特許文献１に記載の情報処理装置では、ソフトウェア命令の処理順序が確定しなければ、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態に出来ない（先取りできない）という問題があった。
【０００８】
本発明はこの問題点を解決するためになされたものであり、ソフトウェア命令の実行順序が確定する前であっても、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態にできる（先取りできる）情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明にかかる情報処理装置の一態様は、実行前のソフトウェア命令を先取りするソフトウェア命令先取部と、前記ソフトウェア命令先取部が取得した前記ソフトウェア命令を格納するとともに、格納された前記ソフトウェア命令が実行されているか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令記憶部と、前記ソフトウェア命令記憶部から前記ソフトウェア命令を取得して実行するソフトウェア命令実行部と、前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取部と、前記マイクロ命令先取部が取得した前記マイクロ命令を格納するマイクロ命令記憶部と、前記マイクロ命令記憶部に格納された前記マイクロ命令を取得して実行するマイクロ命令実行部と、を備えるものである。
【００１０】
本発明にかかるマイクロ命令処理方法の一態様は、実行前のソフトウェア命令を先取りするソフトウェア命令先取ステップと、先取した前記ソフトウェア命令を取得して実行するソフトウェア命令実行ステップと、前記ソフトウェア命令先取ステップにおいて先取した前記ソフトウェア命令が実行済みであるか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令判定ステップと、前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取ステップにおいて先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取ステップと、前記マイクロ命令先取ステップにおいて読み出された前記マイクロ命令を順次実行するマイクロ命令実行ステップと、を備えるものである。
【発明の効果】
【００１１】
本発明によれば、ソフトウェア命令の実行順序が確定する前であっても、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態にする（先取りする）情報処理装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる情報処理装置の構成を示すブロック図である。
【図２】実施の形態１にかかる情報処理装置のマイクロ命令先取処理を示すフローチャートである。
【図３】実施の形態１にかかる情報処理装置の動作例を示す概念図である。
【図４】実施の形態１にかかる情報処理装置と、特許文献１にかかる情報処理装置の動作を示すタイミングチャートの説明図である。
【図５】実施の形態１にかかる情報処理装置と、特許文献１にかかる情報処理装置の動作を示すタイミングチャートである。
【図６】特許文献１にかかる情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。情報処理装置１は、記憶装置１０と、プロセッサ２０と、を備える。記憶装置１０は、ソフトウェア命令格納部１１と、マイクロ命令格納部１２と、アドレス情報格納部１３と、を備える。プロセッサ２０は、ソフトウェア命令先取部２１と、ソフトウェア命令記憶部２２と、ソフトウェア命令実行部２３と、マイクロ命令先取部２４と、マイクロ命令記憶部２５と、マイクロ命令実行部２６と、を備える。
【００１４】
記憶装置１０は、所謂メモリ装置であり、ＲＡＭ（Random Access Memory)、ＲＯＭ（Read Only Memory）等が該当する。ソフトウェア命令格納部１１は、実行対象となるソフトウェア命令を格納する記憶部である。マイクロ命令格納部１２は、実行対象となるマイクロ命令を格納する記憶部である。アドレス情報格納部１３は、実行対象となるマイクロ命令の読み出しアドレスを格納する記憶部である。これらの記憶部には、予め実行対象のソフトウェアプログラムに対応するデータが格納されている。
【００１５】
ソフトウェア命令先取部２１は、ソフトウェア命令の実行状況に応じて、実行前のソフトウェア命令を先取りする処理部である。ソフトウェア命令先取部２１は、先取対象アドレス１１０を用いてソフトウェア命令格納部１１から実行前のソフトウェア命令１１１を取得する。ソフトウェア命令先取部２１は取得したソフトウェア命令を先取ソフトウェア命令２１０としてソフトウェア命令記憶部２２に書き込む。
【００１６】
ソフトウェア命令先取部２１は、後述の先取キャンセル命令２３０が供給された場合にソフトウェア命令の取得を一時停止する。また、ソフトウェア命令先取部２１は、後述の実行アドレス２３１に応じた命令からソフトウェア命令の先取を再開する。
【００１７】
ソフトウェア命令記憶部２２は、ソフトウェア命令先取部２１が取得したソフトウェア命令を格納する記憶領域を備えた処理部である。ソフトウェア命令記憶部２２は、内部に書込みポインタ及び読出しポインタを備える。書込みポインタは、ソフトウェア命令先取部２１が最後に書き込んだソフトウェア命令を示す。読出しポインタは、後述のソフトウェア命令実行部２３が最後にソフトウェア命令記憶部２２から読み出したソフトウェア命令を示す。ソフトウェア命令記憶部２２は、先取ソフトウェア命令２１０が書き込まれた場合に書込みポインタを更新する。
【００１８】
ソフトウェア命令記憶部２２は、読出しポインタと、書込みポインタとの比較を行う。本例では、ソフトウェア命令１、ソフトウェア命令２、ソフトウェア命令３の順序に従いソフトウェア命令が実行される。ここで、読出しポインタの値がソフトウェア命令２であり、書込みポインタがソフトウェア命令３である場合、ソフトウェア命令記憶部２２は書込みポインタが読出しポインタより大きい（以下の記載では「書込みポインタ＞読出しポインタ」とも記載する。）と判定する。言い換えると、ソフトウェア命令記憶部２２はソフトウェア命令先取部２１が読み出したソフトウェア命令がソフトウェア命令実行部２３により実行されているか否かを判定する（以下の記載ではソフトウェア命令実行判定とも記載する。）。書込みポインタ＞読出しポインタを満たす場合、ソフトウェア命令記憶部２２は、マイクロ命令先取許可信号２２２をマイクロ命令先取部２４に供給する。また、ソフトウェア命令記憶部２２は後述のマイクロ命令先取部２４が取得済みのマイクロ命令を示すマイクロ命令先取ポインタ２２３が供給される。ソフトウェア命令記憶部２２は、格納済みのソフトウェア命令をソフトウェア命令先取ポインタ２２４により後述のマイクロ命令先取部２４に通知する。
【００１９】
ソフトウェア命令記憶部２２は、ソフトウェア命令実行部２３からソフトウェア命令読出し要求２２０が供給された場合に読出しポインタを更新する。その後、ソフトウェア命令記憶部２２はソフトウェア命令読出し要求２２０に応じたソフトウェア命令２２１をソフトウェア命令実行部２３に供給する。
【００２０】
ソフトウェア命令記憶部２２は、後述するソフトウェア命令実行部２３から先取キャンセル命令２３０が供給された場合、書込みポインタ及び読出しポインタをリセットする。すなわち、ソフトウェア命令記憶部２２は処理を行っている有効なソフトウェア命令が内部に存在しない状態に設定する。
【００２１】
ソフトウェア命令実行部２３は、ソフトウェア命令記憶部２２から取得したソフトウェア命令を解読して実行する処理部である。ソフトウェア命令実行部２３は、ソフトウェア命令の実行状況に合わせてソフトウェア命令読出し要求２２０を更新する。
【００２２】
ソフトウェア命令実行部２３は、読み出したソフトウェア命令が分岐命令であって分岐先のソフトウェア命令を実行する場合、実行アドレス２３１をソフトウェア命令先取部２１、ソフトウェア命令記憶部２２、及びマイクロ命令先取部２４に通知する。また、ソフトウェア命令実行部２３は先取キャンセル命令２３０をソフトウェア命令先取部２１、ソフトウェア命令記憶部２２、及びマイクロ命令先取部２４に通知する。
【００２３】
マイクロ命令先取部２４は、マイクロ命令先取許可信号２２２が供給された場合にマイクロ命令先取ポインタ２２３をソフトウェア命令記憶部２２に出力し、ソフトウェア命令先取ポインタ２２４を読み出す。マイクロ命令先取部２４は内部に読出しポインタを備える。当該読出しポインタは、マイクロ命令格納部１２から読み出したマイクロ命令に対応するソフトウェア命令の値が保持される。たとえば、マイクロ命令先取部２４がソフトウェア命令１に対応するマイクロ命令を取得済みであり、ソフトウェア命令２に対応するマイクロ命令を未取得である場合、読出しポインタはソフトウェア命令２となる。この場合、マイクロ命令先取部２４は、ソフトウェア命令１に対応するマイクロ命令が取得済みであることをマイクロ命令先取ポインタ２２３によりソフトウェア命令記憶部２２に通知する。
【００２４】
マイクロ命令先取部２４は、ソフトウェア命令先取ポインタ２２４と内部の読出しポインタを比較し、マイクロ命令が先取可能か否かを判断する。具体的な判断方法は、図２を用いて後述する。マイクロ命令が先取可能である場合、マイクロ命令先取部２４は読み出したソフトウェア命令先取ポインタ２２４を参照して生成したマイクロ命令読出し要求１３０を出力し、マイクロ命令のアドレス１３１をアドレス情報格納部１３から読み出す。マイクロ命令先取部２４は読み出したアドレス１３１からマイクロ命令を取り出すためのマイクロ命令先取アドレス１２０を生成する。マイクロ命令先取部２４は、ソフトウェア命令先取部２１が取得済みのソフトウェア命令と対応するマイクロ命令であり、未取得のマイクロ命令１２１をマイクロ命令格納部１２から読み出す。マイクロ命令先取部２４は読み出したマイクロ命令をマイクロ命令記憶部２５に供給する。
【００２５】
また、先取キャンセル命令２３０が供給された場合、マイクロ命令先取部２４は内部の読出しポインタをリセットし、マイクロ命令の先取処理を停止する。マイクロ命令先取許可信号２２２が供給された場合に、マイクロ命令先取部２４はマイクロ命令の先取処理を再開する。
【００２６】
マイクロ命令記憶部２５は、マイクロ命令先取部２４から供給されたマイクロ命令を格納する処理部である。マイクロ命令先取部２４からマイクロ命令が書き込まれた場合、マイクロ命令記憶部２５は書込みポインタを更新する。また、後述するマイクロ命令実行部２６からマイクロ命令読出し要求２５０が供給された場合、マイクロ命令記憶部２５は読出しポインタを更新する。
【００２７】
読出しポインタは、マイクロ命令実行部２６内が読み込み済みのマイクロ命令を示すポインタである。書込みポインタは、マイクロ命令先取部２４がマイクロ命令記憶部２５に書き込んだマイクロ命令を示すポインタである。
【００２８】
また、先取キャンセル命令２３０が供給された場合、マイクロ命令記憶部２５は内部の書込みポインタ及び読出しポインタをリセットする。すなわち、マイクロ命令記憶部２５は内部に有効なマイクロ命令を保持していない状態に設定する。
【００２９】
マイクロ命令実行部２６は、マイクロ命令をマイクロ命令記憶部２５から読み出して順次実行するための処理部である。マイクロ命令実行部２６は、マイクロ命令読出し要求２５０を出力し、マイクロ命令２５１を順次読み出して解読及び実行する。また、マイクロ命令実行部２６はマイクロ命令実行中にマイクロ命令の実行シーケンスが変更される場合にマイクロ命令キャンセル信号２６０をソフトウェア命令実行部２３に供給する。ソフトウェア命令実行部２３は、マイクロ命令キャンセル信号２６０が供給された場合にはマイクロ命令先取部２４に対して先取キャンセル命令２３０を供給する。
【００３０】
次に、本実施の形態にかかる情報処理装置のマイクロ命令先取処理の制御方法を図２のフローチャートを用いて説明する。ソフトウェア命令記憶部２２は、書込みポインタ＞読出しポインタの状態となっているか否かを判定する（Ｓ１１）。すなわち、ソフトウェア命令記憶部２２は、実行中のソフトウェア命令以降のソフトウェア命令が内部に格納されているか否かを判定する。書込みポインタ＞読出しポインタを満たさない場合（Ｓ１１：Ｎｏ）、マイクロ命令先取部２４はマイクロ命令の読出しを行わない。
【００３１】
ソフトウェア命令記憶部２２において書込みポインタ＞読出しポインタを満たす場合（Ｓ１１：Ｙｅｓ）、マイクロ命令先取部２４は先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能であるか否かを判定する（Ｓ１２）。当該判定は、マイクロ命令先取部２４がソフトウェア命令先取ポインタ２２４と内部の読出しポインタを比較することにより行う。すなわち、マイクロ命令先取り部２４はソフトウェア先取部２１により読み出されたソフトウェア命令に対応するマイクロ命令の読出しが完了している否かを判定する。当該マイクロ命令の読出しが完了していない場合、マイクロ命令先取部２４はマイクロ命令をマイクロ命令格納部１２から読み出すことができる。
【００３２】
先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能である場合（Ｓ１２：Ｙｅｓ）、マイクロ命令先取部２４はマイクロ命令をマイクロ命令格納部１２から読み出す（Ｓ１３）。先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能ではない場合（Ｓ１２：Ｎｏ）、マイクロ命令先取部２４はマイクロ命令の読出しを行わない。
【００３３】
次に図３を用いて、本実施の形態にかかる情報処理装置の動作例を説明する。図３には、各ソフトウェア命令とマイクロ命令との関連を示されている。図３の例では、マイクロ命令先取部２４が複数のマイクロ命令を先取可能な状態である。すなわち、上述の図２における条件Ｓ１１（ソフトウェア命令記憶部２２において書込みポインタ＞読出しポインタ）及びＳ１２（先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能）が満たされている。
【００３４】
また、図３の例において、ソフトウェア命令記憶部２２には、ソフトウェア命令１〜３が格納されている。この場合、ソフトウェア命令記憶部２２の書込みポインタはソフトウェア命令３となる。すなわち、ソフトウェア命令先取部２１は、ソフトウェア命令１〜３をソフトウェア命令格納部１１から取得済みである。
【００３５】
また、ソフトウェア命令実行部２３はソフトウェア命令１を実行中である。すなわち、ソフトウェア命令記憶部２２の読出しポインタはソフトウェア命令１である。
【００３６】
さらにまた、マイクロ命令先取部２４の読出しポインタは、ソフトウェア命令２を示している。すなわち、マイクロ命令先取部２４はソフトウェア命令２に対応するマイクロ命令の取得が終わっていないことを示している。
【００３７】
上述の状態において、ソフトウェア命令記憶部２２は書込みポインタ＞読出しポインタ（ソフトウェア命令３＞ソフトウェア命令１）であると判定し、マイクロ命令先取許可信号２２２をマイクロ命令先取部２４に供給する。また、ソフトウェア命令記憶部２２は、ソフトウェア命令３まで取得済みであることをソフトウェア命令先取ポインタ２２４によりマイクロ命令先取部２４に通知する。
【００３８】
マイクロ命令先取許可信号２２２が供給された場合、マイクロ命令先取部２４はソフトウェア命令先取ポインタ２２４（ソフトウェア命令３）に基づいてマイクロ命令を取得する。本例では、マイクロ命令先取部２４はソフトウェア命令先取ポインタ２２４と、内部の読出しポインタ（ソフトウェア命令２）と、からソフトウェア命令２を読み出すことを決定する。
【００３９】
マイクロ命令先取部２４は、ソフトウェア命令２に対応するマイクロ命令のアドレス情報１３１をアドレス情報格納部１３から取得する。そして、マイクロ命令先取部２４は取得したアドレス情報を用いてソフトウェア命令２に対応するマイクロ命令２−１〜２−４の取得を順次行う。マイクロ命令２−４の取得が終了した場合、マイクロ命令先取部２４は内部の読出しポインタをソフトウェア命令３に更新する。すなわち、マイクロ命令先取部２４は、ソフトウェア命令２に対応するマイクロ命令の取得が終了した状態に設定する。
【００４０】
次に、ソフトウェア命令記憶部２２は書込みポインタ＞読出しポインタ（ソフトウェア命令３＞ソフトウェア命令１）であると再度判定し、マイクロ命令先取許可信号２２２をマイクロ命令先取部２４に供給する。また、マイクロ命令先取部２４は、ソフトウェア命令先取部２１により取得が終了したソフトウェア命令３に対応するマイクロ命令を未取得であると判定する。すなわち、マイクロ命令先取部２４は、ソフトウェア命令３に対応するマイクロ命令が先取可能であると判定する。マイクロ命令先取部２４はソフトウェア命令３に対応するマイクロ命令３−１〜３−４をマイクロ命令格納部１２から読み出す。マイクロ命令３−４の取得が終了した場合、マイクロ命令先取部２４は内部の読出しポインタをソフトウェア命令４（ソフトウェア命令３に後続する命令であり、図示せず）に更新する。すなわち、マイクロ命令先取部２４は、ソフトウェア命令３に対応するマイクロ命令の取得が終了した状態に設定する。
【００４１】
マイクロ命令先取部２４がソフトウェア命令３に対応するマイクロ命令を取得した後にソフトウェア命令先取部２４がソフトウェア命令の取得を行わなかった場合、上述のマイクロ命令先取処理の条件（図２、Ｓ１２）が満たされない。そのため、マイクロ命令先取部２４は、マイクロ命令の読出し処理を停止する。
【００４２】
また、ソフトウェア命令実行部２３は、実行対象のソフトウェア命令のシーケンス（処理順序）が変更された時点において、先取キャンセル命令２３０をソフトウェア命令記憶部２２に供給する。先取キャンセル命令２３０が供給されたソフトウェア命令記憶部２２は、書込みポインタ及び読出しポインタをリセットする。当該ポインタ群がリセットされた場合、ソフトウェア命令記憶部２２はマイクロ命令先取許可信号２２２を無効化する。これにより、マイクロ命令先取部２４はマイクロ命令の読出し処理を一時停止する。
【００４３】
ソフトウェア命令先取部２１は適宜ソフトウェア命令の読出し、及び読み出したソフトウェア命令をソフトウェア命令記憶部２２に書き込む。当該書き込み処理により、ソフトウェア命令記憶部２２はマイクロ命令先取許可信号２２２を再度有効にしてマイクロ命令先取部２４に供給する。有効なマイクロ命令先取許可信号２２２が供給されたマイクロ命令先取部２４は、マイクロ命令の読出し処理を再開する。
【００４４】
次に図４及び図５を用いて、本実施の形態にかかる情報処理装置と、特許文献１に記載の情報処理装置との動作の差異について説明する。図５は、本実施の形態にかかる情報処理装置と特許文献１に記載の情報処理装置の動作比較を示すパイプライン構成の図である。図４は、図５に用いる各パイプラインステージを説明する図である。具体的には、各パイプラインの処理の概要が示されている。特許文献１の情報処理装置では、マイクロ命令のシーケンスコードの処理（ＳＥ、ＳＡ、ＳＲ）を行う。
【００４５】
図５を用いて本実施の形態にかかる情報処理装置と、特許文献１に記載の情報処理装置の動作の差異について説明する。特許文献１に記載の情報処理装置では、シーケンスコードの加算を行った後に後続のソフトウェア命令の読出しと解読処理（Ｄ）を行っている。すなわち、特許文献１に記載の情報処理装置では、ソフトウェア命令の実行順序が定まる（図中のＳＡの処理が終了する）までは後続のソフトウェア命令の処理が開始できず、これに伴いソフトウェア命令の実行順序が定まるまで後続のマイクロ命令の取得等ができない。
【００４６】
また、特許文献１に記載の情報処理装置では、シーケンスコードの処理をマイクロ命令毎に行う必要がある。また、ソフトウェア命令のシーケンスに変更が生じる場合、シーケンスコードに関する処理が大きくなる。
【００４７】
さらにまた、特許文献１に記載の情報処理装置では、ソフトウェア命令の実行順序が確定し、その順序に従ってマイクロ命令の読出しを行う必要がある。
【００４８】
一方、本実施の形態にかかる情報処理装置の動作について説明する。本実施の形態にかかる情報処理装置では、ソフトウェア命令の実行順序が定まるか否かによらずマイクロ命令の読出し処理を行う。また、本実施の形態にかかる情報処理装置ではマイクロ命令のシーケンスコードの処理（ＳＥ、ＳＡ、ＳＲ）を行わない。さらにまた、本実施の形態にかかる情報処理装置では、ソフトウェア命令のシーケンスに関わらずマイクロ命令を取り出す。
【００４９】
続いて、本実施の形態にかかる情報処理装置の効果について説明する。上述のように本実施の形態にかかる情報処理装置は、ソフトウェア命令の実行順序が定まるか否かによらずマイクロ命令を読み出す。これにより、マイクロ命令の読出し処理効率を向上させることができる。また、本実施の形態にかかる情報処理装置は、マイクロ命令のシーケンスコードの処理を行わないため、マイクロ命令の処理効率を向上させることができる。さらにまた、本実施の形態にかかる情報処理装置では、ソフトウェア命令の処理シーケンスに関わらずマイクロ命令を取り出すことにより、非連続的なマイクロ命令の読出しを実現できる。
【００５０】
上述した本実施の形態にかかる情報処理装置では、マイクロ命令の制御を行うための専用ハードウェアを必要としない。一般にマイクロ命令の処理を行うハードウェアを用いた場合、マイクロ命令処理の処理効率を向上できる。しかし、専用ハードウェアを用いることは費用面等から困難な場合が多い。本実施の形態では、専用のハードウェアを用いることなくマイクロ命令の処理効率を向上させることができる。
【００５１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。たとえば、情報処理装置１はソフトウェア命令記憶部２２に格納されたソフトウェア命令を利用して複数のソフトウェア命令にかかるオペランドを先取するオペランド先取部を備える構成であってもよい。当該オペランド先取部は、マイクロ命令先取部２１と略同一の手法によりオペランドを取得する処理部である。
【００５２】
また、ソフトウェア命令先取部２１及びマイクロ命令先取部２４は複数のプロセッサ内に備えられてもよい。複数のプロセッサ内に当該処理部が存在することにより、マルチコアプロセッサ構成のシステムにも本発明の構成を適用することができる。
【００５３】
さらにまた、アドレスフィールドを持たない垂直型のマイクロ命令に対しても、上述の情報処理装置はマイクロ命令語長を用いることによりマイクロ命令の先取処理を行うことができる。
【符号の説明】
【００５４】
１    情報処理装置
１０  記憶装置
１１  ソフトウェア命令格納部
１２  マイクロ命令格納部
１３  アドレス情報格納部
２０  プロセッサ
２１  ソフトウェア命令先取部
２２  ソフトウェア命令記憶部
２３  ソフトウェア命令実行部
２４  マイクロ命令先取部
２５  マイクロ命令記憶部
２６  マイクロ命令実行部
【図１】
2011248820.tif 000003
【図２】
2011248820.tif 000004
【図３】
2011248820.tif 000005
【図４】
2011248820.tif 000006
【図５】
2011248820.tif 000007
【図６】
2011248820.tif 000008