説明

情報処理装置及びマイクロ命令処理方法

【課題】ソフトウェア命令の実行順序が確定前に、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態にすること
【解決手段】ソフトウェア命令先取部21は実行前のソフトウェア命令を先取りする。ソフトウェア命令記憶部22は取得したソフトウェア命令を格納し、格納されたソフトウェア命令が実行されたか否かの判定であるソフトウェア命令実行判定を行う。ソフトウェア命令実行部23はソフトウェア命令記憶部22からソフトウェア命令を取得して実行する。マイクロ命令先取部24はソフトウェア命令実行判定において実行されていないソフトウェア命令が存在すると判定された場合に、先取り済みのソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合に当該マイクロ命令を読み出す。マイクロ命令実行部26は読み出したマイクロ命令を取得して実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はマイクロ命令の処理にかかる情報処理装置及びマイクロ命令処理方法に関する。
【背景技術】
【0002】
情報処理装置において、プロセッサは命令セットアーキテクチャによって定められた命令(以後の記載ではソフトウェア命令と記載する。)を単純な命令であるマイクロ命令に分割して実行する。
【0003】
マイクロ命令制御を行う情報処理装置において、制御記憶容量の減少、命令処理性能の向上の要求が高まっている。特許文献1には、制御記憶容量の減少、命令処理性能の向上を図る情報処理装置に関する技術が開示されている。
【0004】
図6は、特許文献1に記載の情報処理装置の構成を示すブロック図である。以下に当該情報処理装置の動作を説明する。制御記憶560は、マイクロ命令を格納している。シーケンス記憶540は制御記憶560のマイクロ命令の実行順序を定めたシーケンスコードを格納している。命令制御ユニット510は命令(ソフトウェア命令)を解読し、シーケンス記憶540の読み出しアドレスを生成する。命令制御ユニット510は当該アドレスを先頭にして、シーケンス記憶540からシーケンスコードを順次読み出す。命令制御ユニット510は、当該シーケンスコードを制御記憶560の読み出しアドレスとして制御記憶560のマイクロ命令を順次読み出し、当該マイクロ命令を実行ユニット580に順次送出する。
【0005】
上述のように、マイクロ命令に対するシーケンスコードを順次生成して実行することにより、当該情報処理装置は制御記憶560に格納するマイクロ命令の格納容量を削減している。これにより、当該情報処理装置は処理効率を向上させている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平9−185505号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の情報処理装置では、実行するソフトウェア命令を解読して確定しなければ、当該ソフトウェア命令に対応するマイクロ命令のシーケンスコードを生成できない。すなわち、特許文献1に記載の情報処理装置では、ソフトウェア命令の処理順序が確定しなければ、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態に出来ない(先取りできない)という問題があった。
【0008】
本発明はこの問題点を解決するためになされたものであり、ソフトウェア命令の実行順序が確定する前であっても、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態にできる(先取りできる)情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【0009】
本発明にかかる情報処理装置の一態様は、実行前のソフトウェア命令を先取りするソフトウェア命令先取部と、前記ソフトウェア命令先取部が取得した前記ソフトウェア命令を格納するとともに、格納された前記ソフトウェア命令が実行されているか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令記憶部と、前記ソフトウェア命令記憶部から前記ソフトウェア命令を取得して実行するソフトウェア命令実行部と、前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取部と、前記マイクロ命令先取部が取得した前記マイクロ命令を格納するマイクロ命令記憶部と、前記マイクロ命令記憶部に格納された前記マイクロ命令を取得して実行するマイクロ命令実行部と、を備えるものである。
【0010】
本発明にかかるマイクロ命令処理方法の一態様は、実行前のソフトウェア命令を先取りするソフトウェア命令先取ステップと、先取した前記ソフトウェア命令を取得して実行するソフトウェア命令実行ステップと、前記ソフトウェア命令先取ステップにおいて先取した前記ソフトウェア命令が実行済みであるか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令判定ステップと、前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取ステップにおいて先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取ステップと、前記マイクロ命令先取ステップにおいて読み出された前記マイクロ命令を順次実行するマイクロ命令実行ステップと、を備えるものである。
【発明の効果】
【0011】
本発明によれば、ソフトウェア命令の実行順序が確定する前であっても、当該ソフトウェア命令に対応するマイクロ命令を実行可能な状態にする(先取りする)情報処理装置を提供することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態1にかかる情報処理装置の構成を示すブロック図である。
【図2】実施の形態1にかかる情報処理装置のマイクロ命令先取処理を示すフローチャートである。
【図3】実施の形態1にかかる情報処理装置の動作例を示す概念図である。
【図4】実施の形態1にかかる情報処理装置と、特許文献1にかかる情報処理装置の動作を示すタイミングチャートの説明図である。
【図5】実施の形態1にかかる情報処理装置と、特許文献1にかかる情報処理装置の動作を示すタイミングチャートである。
【図6】特許文献1にかかる情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【0013】
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。情報処理装置1は、記憶装置10と、プロセッサ20と、を備える。記憶装置10は、ソフトウェア命令格納部11と、マイクロ命令格納部12と、アドレス情報格納部13と、を備える。プロセッサ20は、ソフトウェア命令先取部21と、ソフトウェア命令記憶部22と、ソフトウェア命令実行部23と、マイクロ命令先取部24と、マイクロ命令記憶部25と、マイクロ命令実行部26と、を備える。
【0014】
記憶装置10は、所謂メモリ装置であり、RAM(Random Access Memory)、ROM(Read Only Memory)等が該当する。ソフトウェア命令格納部11は、実行対象となるソフトウェア命令を格納する記憶部である。マイクロ命令格納部12は、実行対象となるマイクロ命令を格納する記憶部である。アドレス情報格納部13は、実行対象となるマイクロ命令の読み出しアドレスを格納する記憶部である。これらの記憶部には、予め実行対象のソフトウェアプログラムに対応するデータが格納されている。
【0015】
ソフトウェア命令先取部21は、ソフトウェア命令の実行状況に応じて、実行前のソフトウェア命令を先取りする処理部である。ソフトウェア命令先取部21は、先取対象アドレス110を用いてソフトウェア命令格納部11から実行前のソフトウェア命令111を取得する。ソフトウェア命令先取部21は取得したソフトウェア命令を先取ソフトウェア命令210としてソフトウェア命令記憶部22に書き込む。
【0016】
ソフトウェア命令先取部21は、後述の先取キャンセル命令230が供給された場合にソフトウェア命令の取得を一時停止する。また、ソフトウェア命令先取部21は、後述の実行アドレス231に応じた命令からソフトウェア命令の先取を再開する。
【0017】
ソフトウェア命令記憶部22は、ソフトウェア命令先取部21が取得したソフトウェア命令を格納する記憶領域を備えた処理部である。ソフトウェア命令記憶部22は、内部に書込みポインタ及び読出しポインタを備える。書込みポインタは、ソフトウェア命令先取部21が最後に書き込んだソフトウェア命令を示す。読出しポインタは、後述のソフトウェア命令実行部23が最後にソフトウェア命令記憶部22から読み出したソフトウェア命令を示す。ソフトウェア命令記憶部22は、先取ソフトウェア命令210が書き込まれた場合に書込みポインタを更新する。
【0018】
ソフトウェア命令記憶部22は、読出しポインタと、書込みポインタとの比較を行う。本例では、ソフトウェア命令1、ソフトウェア命令2、ソフトウェア命令3の順序に従いソフトウェア命令が実行される。ここで、読出しポインタの値がソフトウェア命令2であり、書込みポインタがソフトウェア命令3である場合、ソフトウェア命令記憶部22は書込みポインタが読出しポインタより大きい(以下の記載では「書込みポインタ>読出しポインタ」とも記載する。)と判定する。言い換えると、ソフトウェア命令記憶部22はソフトウェア命令先取部21が読み出したソフトウェア命令がソフトウェア命令実行部23により実行されているか否かを判定する(以下の記載ではソフトウェア命令実行判定とも記載する。)。書込みポインタ>読出しポインタを満たす場合、ソフトウェア命令記憶部22は、マイクロ命令先取許可信号222をマイクロ命令先取部24に供給する。また、ソフトウェア命令記憶部22は後述のマイクロ命令先取部24が取得済みのマイクロ命令を示すマイクロ命令先取ポインタ223が供給される。ソフトウェア命令記憶部22は、格納済みのソフトウェア命令をソフトウェア命令先取ポインタ224により後述のマイクロ命令先取部24に通知する。
【0019】
ソフトウェア命令記憶部22は、ソフトウェア命令実行部23からソフトウェア命令読出し要求220が供給された場合に読出しポインタを更新する。その後、ソフトウェア命令記憶部22はソフトウェア命令読出し要求220に応じたソフトウェア命令221をソフトウェア命令実行部23に供給する。
【0020】
ソフトウェア命令記憶部22は、後述するソフトウェア命令実行部23から先取キャンセル命令230が供給された場合、書込みポインタ及び読出しポインタをリセットする。すなわち、ソフトウェア命令記憶部22は処理を行っている有効なソフトウェア命令が内部に存在しない状態に設定する。
【0021】
ソフトウェア命令実行部23は、ソフトウェア命令記憶部22から取得したソフトウェア命令を解読して実行する処理部である。ソフトウェア命令実行部23は、ソフトウェア命令の実行状況に合わせてソフトウェア命令読出し要求220を更新する。
【0022】
ソフトウェア命令実行部23は、読み出したソフトウェア命令が分岐命令であって分岐先のソフトウェア命令を実行する場合、実行アドレス231をソフトウェア命令先取部21、ソフトウェア命令記憶部22、及びマイクロ命令先取部24に通知する。また、ソフトウェア命令実行部23は先取キャンセル命令230をソフトウェア命令先取部21、ソフトウェア命令記憶部22、及びマイクロ命令先取部24に通知する。
【0023】
マイクロ命令先取部24は、マイクロ命令先取許可信号222が供給された場合にマイクロ命令先取ポインタ223をソフトウェア命令記憶部22に出力し、ソフトウェア命令先取ポインタ224を読み出す。マイクロ命令先取部24は内部に読出しポインタを備える。当該読出しポインタは、マイクロ命令格納部12から読み出したマイクロ命令に対応するソフトウェア命令の値が保持される。たとえば、マイクロ命令先取部24がソフトウェア命令1に対応するマイクロ命令を取得済みであり、ソフトウェア命令2に対応するマイクロ命令を未取得である場合、読出しポインタはソフトウェア命令2となる。この場合、マイクロ命令先取部24は、ソフトウェア命令1に対応するマイクロ命令が取得済みであることをマイクロ命令先取ポインタ223によりソフトウェア命令記憶部22に通知する。
【0024】
マイクロ命令先取部24は、ソフトウェア命令先取ポインタ224と内部の読出しポインタを比較し、マイクロ命令が先取可能か否かを判断する。具体的な判断方法は、図2を用いて後述する。マイクロ命令が先取可能である場合、マイクロ命令先取部24は読み出したソフトウェア命令先取ポインタ224を参照して生成したマイクロ命令読出し要求130を出力し、マイクロ命令のアドレス131をアドレス情報格納部13から読み出す。マイクロ命令先取部24は読み出したアドレス131からマイクロ命令を取り出すためのマイクロ命令先取アドレス120を生成する。マイクロ命令先取部24は、ソフトウェア命令先取部21が取得済みのソフトウェア命令と対応するマイクロ命令であり、未取得のマイクロ命令121をマイクロ命令格納部12から読み出す。マイクロ命令先取部24は読み出したマイクロ命令をマイクロ命令記憶部25に供給する。
【0025】
また、先取キャンセル命令230が供給された場合、マイクロ命令先取部24は内部の読出しポインタをリセットし、マイクロ命令の先取処理を停止する。マイクロ命令先取許可信号222が供給された場合に、マイクロ命令先取部24はマイクロ命令の先取処理を再開する。
【0026】
マイクロ命令記憶部25は、マイクロ命令先取部24から供給されたマイクロ命令を格納する処理部である。マイクロ命令先取部24からマイクロ命令が書き込まれた場合、マイクロ命令記憶部25は書込みポインタを更新する。また、後述するマイクロ命令実行部26からマイクロ命令読出し要求250が供給された場合、マイクロ命令記憶部25は読出しポインタを更新する。
【0027】
読出しポインタは、マイクロ命令実行部26内が読み込み済みのマイクロ命令を示すポインタである。書込みポインタは、マイクロ命令先取部24がマイクロ命令記憶部25に書き込んだマイクロ命令を示すポインタである。
【0028】
また、先取キャンセル命令230が供給された場合、マイクロ命令記憶部25は内部の書込みポインタ及び読出しポインタをリセットする。すなわち、マイクロ命令記憶部25は内部に有効なマイクロ命令を保持していない状態に設定する。
【0029】
マイクロ命令実行部26は、マイクロ命令をマイクロ命令記憶部25から読み出して順次実行するための処理部である。マイクロ命令実行部26は、マイクロ命令読出し要求250を出力し、マイクロ命令251を順次読み出して解読及び実行する。また、マイクロ命令実行部26はマイクロ命令実行中にマイクロ命令の実行シーケンスが変更される場合にマイクロ命令キャンセル信号260をソフトウェア命令実行部23に供給する。ソフトウェア命令実行部23は、マイクロ命令キャンセル信号260が供給された場合にはマイクロ命令先取部24に対して先取キャンセル命令230を供給する。
【0030】
次に、本実施の形態にかかる情報処理装置のマイクロ命令先取処理の制御方法を図2のフローチャートを用いて説明する。ソフトウェア命令記憶部22は、書込みポインタ>読出しポインタの状態となっているか否かを判定する(S11)。すなわち、ソフトウェア命令記憶部22は、実行中のソフトウェア命令以降のソフトウェア命令が内部に格納されているか否かを判定する。書込みポインタ>読出しポインタを満たさない場合(S11:No)、マイクロ命令先取部24はマイクロ命令の読出しを行わない。
【0031】
ソフトウェア命令記憶部22において書込みポインタ>読出しポインタを満たす場合(S11:Yes)、マイクロ命令先取部24は先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能であるか否かを判定する(S12)。当該判定は、マイクロ命令先取部24がソフトウェア命令先取ポインタ224と内部の読出しポインタを比較することにより行う。すなわち、マイクロ命令先取り部24はソフトウェア先取部21により読み出されたソフトウェア命令に対応するマイクロ命令の読出しが完了している否かを判定する。当該マイクロ命令の読出しが完了していない場合、マイクロ命令先取部24はマイクロ命令をマイクロ命令格納部12から読み出すことができる。
【0032】
先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能である場合(S12:Yes)、マイクロ命令先取部24はマイクロ命令をマイクロ命令格納部12から読み出す(S13)。先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能ではない場合(S12:No)、マイクロ命令先取部24はマイクロ命令の読出しを行わない。
【0033】
次に図3を用いて、本実施の形態にかかる情報処理装置の動作例を説明する。図3には、各ソフトウェア命令とマイクロ命令との関連を示されている。図3の例では、マイクロ命令先取部24が複数のマイクロ命令を先取可能な状態である。すなわち、上述の図2における条件S11(ソフトウェア命令記憶部22において書込みポインタ>読出しポインタ)及びS12(先取り済みのソフトウェア命令に対応するマイクロ命令が取り出し可能)が満たされている。
【0034】
また、図3の例において、ソフトウェア命令記憶部22には、ソフトウェア命令1〜3が格納されている。この場合、ソフトウェア命令記憶部22の書込みポインタはソフトウェア命令3となる。すなわち、ソフトウェア命令先取部21は、ソフトウェア命令1〜3をソフトウェア命令格納部11から取得済みである。
【0035】
また、ソフトウェア命令実行部23はソフトウェア命令1を実行中である。すなわち、ソフトウェア命令記憶部22の読出しポインタはソフトウェア命令1である。
【0036】
さらにまた、マイクロ命令先取部24の読出しポインタは、ソフトウェア命令2を示している。すなわち、マイクロ命令先取部24はソフトウェア命令2に対応するマイクロ命令の取得が終わっていないことを示している。
【0037】
上述の状態において、ソフトウェア命令記憶部22は書込みポインタ>読出しポインタ(ソフトウェア命令3>ソフトウェア命令1)であると判定し、マイクロ命令先取許可信号222をマイクロ命令先取部24に供給する。また、ソフトウェア命令記憶部22は、ソフトウェア命令3まで取得済みであることをソフトウェア命令先取ポインタ224によりマイクロ命令先取部24に通知する。
【0038】
マイクロ命令先取許可信号222が供給された場合、マイクロ命令先取部24はソフトウェア命令先取ポインタ224(ソフトウェア命令3)に基づいてマイクロ命令を取得する。本例では、マイクロ命令先取部24はソフトウェア命令先取ポインタ224と、内部の読出しポインタ(ソフトウェア命令2)と、からソフトウェア命令2を読み出すことを決定する。
【0039】
マイクロ命令先取部24は、ソフトウェア命令2に対応するマイクロ命令のアドレス情報131をアドレス情報格納部13から取得する。そして、マイクロ命令先取部24は取得したアドレス情報を用いてソフトウェア命令2に対応するマイクロ命令2−1〜2−4の取得を順次行う。マイクロ命令2−4の取得が終了した場合、マイクロ命令先取部24は内部の読出しポインタをソフトウェア命令3に更新する。すなわち、マイクロ命令先取部24は、ソフトウェア命令2に対応するマイクロ命令の取得が終了した状態に設定する。
【0040】
次に、ソフトウェア命令記憶部22は書込みポインタ>読出しポインタ(ソフトウェア命令3>ソフトウェア命令1)であると再度判定し、マイクロ命令先取許可信号222をマイクロ命令先取部24に供給する。また、マイクロ命令先取部24は、ソフトウェア命令先取部21により取得が終了したソフトウェア命令3に対応するマイクロ命令を未取得であると判定する。すなわち、マイクロ命令先取部24は、ソフトウェア命令3に対応するマイクロ命令が先取可能であると判定する。マイクロ命令先取部24はソフトウェア命令3に対応するマイクロ命令3−1〜3−4をマイクロ命令格納部12から読み出す。マイクロ命令3−4の取得が終了した場合、マイクロ命令先取部24は内部の読出しポインタをソフトウェア命令4(ソフトウェア命令3に後続する命令であり、図示せず)に更新する。すなわち、マイクロ命令先取部24は、ソフトウェア命令3に対応するマイクロ命令の取得が終了した状態に設定する。
【0041】
マイクロ命令先取部24がソフトウェア命令3に対応するマイクロ命令を取得した後にソフトウェア命令先取部24がソフトウェア命令の取得を行わなかった場合、上述のマイクロ命令先取処理の条件(図2、S12)が満たされない。そのため、マイクロ命令先取部24は、マイクロ命令の読出し処理を停止する。
【0042】
また、ソフトウェア命令実行部23は、実行対象のソフトウェア命令のシーケンス(処理順序)が変更された時点において、先取キャンセル命令230をソフトウェア命令記憶部22に供給する。先取キャンセル命令230が供給されたソフトウェア命令記憶部22は、書込みポインタ及び読出しポインタをリセットする。当該ポインタ群がリセットされた場合、ソフトウェア命令記憶部22はマイクロ命令先取許可信号222を無効化する。これにより、マイクロ命令先取部24はマイクロ命令の読出し処理を一時停止する。
【0043】
ソフトウェア命令先取部21は適宜ソフトウェア命令の読出し、及び読み出したソフトウェア命令をソフトウェア命令記憶部22に書き込む。当該書き込み処理により、ソフトウェア命令記憶部22はマイクロ命令先取許可信号222を再度有効にしてマイクロ命令先取部24に供給する。有効なマイクロ命令先取許可信号222が供給されたマイクロ命令先取部24は、マイクロ命令の読出し処理を再開する。
【0044】
次に図4及び図5を用いて、本実施の形態にかかる情報処理装置と、特許文献1に記載の情報処理装置との動作の差異について説明する。図5は、本実施の形態にかかる情報処理装置と特許文献1に記載の情報処理装置の動作比較を示すパイプライン構成の図である。図4は、図5に用いる各パイプラインステージを説明する図である。具体的には、各パイプラインの処理の概要が示されている。特許文献1の情報処理装置では、マイクロ命令のシーケンスコードの処理(SE、SA、SR)を行う。
【0045】
図5を用いて本実施の形態にかかる情報処理装置と、特許文献1に記載の情報処理装置の動作の差異について説明する。特許文献1に記載の情報処理装置では、シーケンスコードの加算を行った後に後続のソフトウェア命令の読出しと解読処理(D)を行っている。すなわち、特許文献1に記載の情報処理装置では、ソフトウェア命令の実行順序が定まる(図中のSAの処理が終了する)までは後続のソフトウェア命令の処理が開始できず、これに伴いソフトウェア命令の実行順序が定まるまで後続のマイクロ命令の取得等ができない。
【0046】
また、特許文献1に記載の情報処理装置では、シーケンスコードの処理をマイクロ命令毎に行う必要がある。また、ソフトウェア命令のシーケンスに変更が生じる場合、シーケンスコードに関する処理が大きくなる。
【0047】
さらにまた、特許文献1に記載の情報処理装置では、ソフトウェア命令の実行順序が確定し、その順序に従ってマイクロ命令の読出しを行う必要がある。
【0048】
一方、本実施の形態にかかる情報処理装置の動作について説明する。本実施の形態にかかる情報処理装置では、ソフトウェア命令の実行順序が定まるか否かによらずマイクロ命令の読出し処理を行う。また、本実施の形態にかかる情報処理装置ではマイクロ命令のシーケンスコードの処理(SE、SA、SR)を行わない。さらにまた、本実施の形態にかかる情報処理装置では、ソフトウェア命令のシーケンスに関わらずマイクロ命令を取り出す。
【0049】
続いて、本実施の形態にかかる情報処理装置の効果について説明する。上述のように本実施の形態にかかる情報処理装置は、ソフトウェア命令の実行順序が定まるか否かによらずマイクロ命令を読み出す。これにより、マイクロ命令の読出し処理効率を向上させることができる。また、本実施の形態にかかる情報処理装置は、マイクロ命令のシーケンスコードの処理を行わないため、マイクロ命令の処理効率を向上させることができる。さらにまた、本実施の形態にかかる情報処理装置では、ソフトウェア命令の処理シーケンスに関わらずマイクロ命令を取り出すことにより、非連続的なマイクロ命令の読出しを実現できる。
【0050】
上述した本実施の形態にかかる情報処理装置では、マイクロ命令の制御を行うための専用ハードウェアを必要としない。一般にマイクロ命令の処理を行うハードウェアを用いた場合、マイクロ命令処理の処理効率を向上できる。しかし、専用ハードウェアを用いることは費用面等から困難な場合が多い。本実施の形態では、専用のハードウェアを用いることなくマイクロ命令の処理効率を向上させることができる。
【0051】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。たとえば、情報処理装置1はソフトウェア命令記憶部22に格納されたソフトウェア命令を利用して複数のソフトウェア命令にかかるオペランドを先取するオペランド先取部を備える構成であってもよい。当該オペランド先取部は、マイクロ命令先取部21と略同一の手法によりオペランドを取得する処理部である。
【0052】
また、ソフトウェア命令先取部21及びマイクロ命令先取部24は複数のプロセッサ内に備えられてもよい。複数のプロセッサ内に当該処理部が存在することにより、マルチコアプロセッサ構成のシステムにも本発明の構成を適用することができる。
【0053】
さらにまた、アドレスフィールドを持たない垂直型のマイクロ命令に対しても、上述の情報処理装置はマイクロ命令語長を用いることによりマイクロ命令の先取処理を行うことができる。
【符号の説明】
【0054】
1 情報処理装置
10 記憶装置
11 ソフトウェア命令格納部
12 マイクロ命令格納部
13 アドレス情報格納部
20 プロセッサ
21 ソフトウェア命令先取部
22 ソフトウェア命令記憶部
23 ソフトウェア命令実行部
24 マイクロ命令先取部
25 マイクロ命令記憶部
26 マイクロ命令実行部

【特許請求の範囲】
【請求項1】
実行前のソフトウェア命令を先取りするソフトウェア命令先取部と、
前記ソフトウェア命令先取部が取得した前記ソフトウェア命令を格納するとともに、格納された前記ソフトウェア命令が実行されているか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令記憶部と、
前記ソフトウェア命令記憶部から前記ソフトウェア命令を取得して実行するソフトウェア命令実行部と、
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取部と、
前記マイクロ命令先取部が取得した前記マイクロ命令を格納するマイクロ命令記憶部と、
前記マイクロ命令記憶部に格納された前記マイクロ命令を取得して実行するマイクロ命令実行部と、を備える情報処理装置。
【請求項2】
前記ソフトウェア命令実行部は、取得した前記ソフトウェア命令が分岐命令であり、当該分岐先の処理を実行する場合、前記ソフトウェア命令先取部に前記ソフトウェア命令の先取処理をキャンセルさせ、前記マイクロ命令先取部に前記マイクロ命令の先取処理をキャンセルさせるとともに、前記ソフトウェア命令記憶部に格納された前記ソフトウェア命令を無効化させる先取キャンセル命令を出力することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記マイクロ命令実行部は、前記マイクロ命令の実行シーケンスが変更した場合に前記ソフトウェア命令実行部が前記先取キャンセル命令を出力することを指示するマイクロ命令キャンセル信号を出力することを特徴とする請求項1または請求項2に記載の情報処理装置。
【請求項4】
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するオペランドが読出し可能か否かを判定し、読出し可能である場合には当該オペランドを読み出すオペランド先取部、をさらに備えることを特徴とする請求項1乃至請求項3のいずれか1項に記載の情報処理装置。
【請求項5】
実行前のソフトウェア命令を先取りするソフトウェア命令先取ステップと、
先取した前記ソフトウェア命令を取得して実行するソフトウェア命令実行ステップと、
前記ソフトウェア命令先取ステップにおいて先取した前記ソフトウェア命令が実行済みであるか否かの判定であるソフトウェア命令実行判定を行うソフトウェア命令判定ステップと、
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取ステップにおいて先取り済みの前記ソフトウェア命令に対応するマイクロ命令が読出し可能か否かを判定し、読出し可能である場合には当該マイクロ命令を読み出すマイクロ命令先取ステップと、
前記マイクロ命令先取ステップにおいて読み出された前記マイクロ命令を順次実行するマイクロ命令実行ステップと、を備えるマイクロ命令処理方法。
【請求項6】
前記ソフトウェア命令実行ステップでは、取得した前記ソフトウェア命令が分岐命令であり、当該分岐先の処理を実行する場合、前記ソフトウェア命令先取ステップにおける前記ソフトウェア命令の先取処理をキャンセルさせ、前記マイクロ命令先取ステップにおける前記マイクロ命令の先取処理をキャンセルさせることを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記マイクロ命令実行ステップでは、前記マイクロ命令の実行シーケンスが変更した場合に前記ソフトウェア命令の先取処理をキャンセルさせ、前記マイクロ命令の先取処理をキャンセルさせることを特徴とする請求項5または請求項6に記載のマイクロ命令処理方法。
【請求項8】
前記ソフトウェア命令実行判定において実行されていない前記ソフトウェア命令が存在すると判定された場合に、前記ソフトウェア命令先取部により先取り済みの前記ソフトウェア命令に対応するオペランドが読出し可能か否かを判定し、読出し可能である場合には当該オペランドを読み出すオペランド先取ステップ、をさらに備えることを特徴とする請求項5乃至請求項7のいずれか1項に記載のマイクロ命令処理方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−248820(P2011−248820A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−124106(P2010−124106)
【出願日】平成22年5月31日(2010.5.31)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】