JP4128551B2 - 情報処理装置及びストア命令制御方法 - Google Patents

情報処理装置及びストア命令制御方法 Download PDF

Info

Publication number
JP4128551B2
JP4128551B2 JP2004222044A JP2004222044A JP4128551B2 JP 4128551 B2 JP4128551 B2 JP 4128551B2 JP 2004222044 A JP2004222044 A JP 2004222044A JP 2004222044 A JP2004222044 A JP 2004222044A JP 4128551 B2 JP4128551 B2 JP 4128551B2
Authority
JP
Japan
Prior art keywords
store
instruction
store data
issued
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004222044A
Other languages
English (en)
Other versions
JP2006040143A (ja
Inventor
隆司 三浦
巌 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004222044A priority Critical patent/JP4128551B2/ja
Priority to US10/983,729 priority patent/US7818545B2/en
Priority to DE602004023601T priority patent/DE602004023601D1/de
Priority to EP04257233A priority patent/EP1622002B1/en
Publication of JP2006040143A publication Critical patent/JP2006040143A/ja
Application granted granted Critical
Publication of JP4128551B2 publication Critical patent/JP4128551B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

本発明は、データを主記憶上やキャッシュメモリ上の所定の記憶領域へストアするためのストア命令を実行する情報処理装置及びストア命令制御方法に関する。
従来から、データを所定の記憶領域へストアするためのストア命令を実行する情報処理装置がある(例えば、下記特許文献1参照)。
図7は従来の情報処理装置100の構成を示すブロック図である。この図7に示すように、従来の情報処理装置100は、命令処理部10,演算器20,アドレスレジスタ21,演算レジスタ22,ストアポート30−0〜30−n(nは0以上の整数、ここでは2以上の整数),アライン部40,ストアデータバッファ50−0〜50−n(nは0以上の整数、ここでは2以上の整数),キャッシュメモリ(記憶領域)60,及びリセット部81をそなえて構成されている。
ここで、図7に示す従来の情報処理装置100の上記各構成要素の詳細について、その動作に基づいて説明すると、図8は図7に示す従来の情報処理装置100によるストア命令制御方法の手順(情報処理装置100の動作)を説明するためのタイムチャートである。なお、図8におけるT1〜T12は時間単位、つまり、情報処理装置100における制御クロック単位を示すものである。
図7,図8に示すように、情報処理装置100では、まず、命令処理部10が命令キャッシュ(図示せず)に保持された命令を解読する(図8のT1参照)。このとき、命令処理部10が解読した命令がストア命令(ストア要求)であれば、命令処理部10は、解読したストア命令とともにストアすべきデータの幅(以下、ストアデータ幅という;図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),演算器20によるストア先のアドレス(以下、ストアアドレスという)計算に用いられるアドレスレジスタ21の番号(値)もしくは即値オペランド,及び当該ストア命令によってストアすべきデータ(以下、ストアデータという)を保持する演算レジスタ22の番号(値)を取得する。
そして、命令処理部10は、演算器20によるストアアドレスの計算に用いられるアドレスレジスタ21が確定すると(図8のT2参照)、解読したストア命令,ストアデータ幅,及びアライン指示情報をストアポート30−0〜30−nのいずれか(ここではストアポート30−0)に発行する(図8のT3参照)。
一方、演算器20は、ストアアドレスの計算に用いられるアドレスレジスタ21が確定すると(図8のT2参照)、アドレスレジスタ21を用いてストアアドレスの計算を実行する(図8のT3参照)。なお、演算器20の計算結果として得られたストアアドレスは格納用レジスタ(ここでは、アドレスレジスタ21が汎用レジスタであるため、アドレスレジスタ21)に一旦保持される。
次に、演算器20により算出されたストアアドレスがストアポート30−0〜30−nに対して発行される(図8のT4参照)が、ここで、当該ストアアドレスは少なくともストアポート30−0〜30−nをそなえる記憶処理装置のパイプラインに投入され、パイプラインを流れることで、変換ルックアサイドバッファ(TLB:Translation Lookaside Buffer;図示せず)を用いて実際のストア先である記憶領域(ここではキャッシュメモリ60)上のアドレス(物理アドレス;以下、アドレスレジスタ21に保持されたストアアドレスと区別しない場合には、単にストアアドレスという)に変換されて、変換されたストアアドレスがストアポート30−0に発行される(図8のT4参照)。なお、アドレスレジスタ21からのストアアドレスの発行が完了すると、アドレスレジスタ21は解放されて、他の処理による利用が可能になる。
また、ストアポート30−0は、ストア命令,ストアアドレス(物理アドレス),ストアデータ幅を受け取ったことを示す情報(ここではフラグ;図7中の“VALID”,“ADRS”,“LENGTH”参照)を保持するように構成されており、ストア命令を受け取るとVALIDフラグ30aがオン状態に設定され、ストアアドレスを受け取るとADRS(Address)フラグ30bがオン状態に設定され、さらにストアデータ幅を受け取るとLENGTHフラグ30cがオン状態に設定される(図8のT5参照)。
そして、命令処理部10は、ストア命令のストアポート30−0への発行を確認すると、演算レジスタ22が保持する当該ストア命令によりストアすべきストアデータをストアデータバッファ50−0〜50−n(ここではストアデータバッファ50−0)に発行すべく、演算レジスタ22からのストアデータの発行のロックを解除する(図8のT6参照)。つまり、従来の情報処理装置100では、演算レジスタ22の番号(値)が確定していても、ストア命令のストアポート30−0への発行が完了するまでは、演算レジスタ22からのストアデータの発行を抑止(インターロック)するように構成されている。
次いで、演算レジスタ22に保持されたストアデータがストアポート30−0に対応するストアデータバッファ50−0に対して発行される(図8のT7参照)が、ここでは、まずアライン部40が、演算レジスタ22から発行されたストアデータを、ストア命令とともにストアポート30−0に対して発行されたストアデータ幅及びアライン指示情報(以下、これらをアライン情報という)を用いてアラインし(図8のT8参照)、その後、アライン部40によりアラインされたストアデータがストアデータバッファ50−0に保持される(図8のT9参照)。なお、演算レジスタ22からのストアデータの発行が完了すると、演算レジスタ22は解放されて、他の処理による利用が可能になる。
また、ストアポート30−0は、ストアデータバッファ50−0にストアデータが保持されているか否かを示す情報(ここではフラグ;図7中の“RSTDV”参照)を保持するように構成されており、ストアデータバッファ50−0が演算レジスタ22から発行されたストアデータを保持するとRSTDV(Received Store Date Valid)フラグ30dがオン状態に設定される(図8のT9参照)。
ところで、ストアポート30−0にストアアドレスが保持されると(図8のT5参照)、命令処理部10は、ストア対象領域のページ属性を取り出し、例外の判定を行なう(図8のT6参照)。つまり、命令処理部10は、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断し、ストア可能であれば例外無しをストアポート30−0へ通知する一方、ストア不可能であれば例外有りをストアポート30−0へ通知して当該ストア命令の実行をキャンセルする。
なお、ストアポート30−0は、例外判定の結果(有無)を示す情報(ここではフラグ;図7中の“PSTV”参照)を保持するように構成されており、命令処理部10から受け取った例外の判定結果が例外無しであればPSTV(Post Status Valid)フラグ30eがオン状態に設定される一方、例外有りであればPSTVフラグ30eがオフ状態に設定される。
次いで、命令処理部10は、ストアポート30−0にストア命令,ストアアドレス,ストアデータの幅が保持され、当該ストア命令の例外判定の結果が例外無しであり、ストアデータがストアデータバッファ50−0に保持された状態(すなわち、VALIDフラグ30a,ADRSフラグ30b,LENGTHフラグ30c,PSTVフラグ30e,及びRSTDVフラグ30dのすべてがオン状態)になり、且つ、当該ストア命令に先行する命令がすべて完了したら、当該ストア命令が実行可能な状態であると判断して、ストアポート30−0に対してストア許可を通知する(図8のT10参照)。
なお、ストアポート30−0は、命令処理部10からストア許可を受け取ったか否かを示す情報(ここではフラグ;図7中の“READY”参照)を保持するように構成されており、命令処理部10からストア許可を受け取ると、READYフラグ30fがオン状態に設定される。
そして、ストアポート30−0のREADYフラグ30fがオン状態に設定されると、ストア命令が実行され(図8のT11参照)、ストアポート30−0に保持されたストアアドレスに基づいて、キャッシュメモリ60における所定アドレス上に、ストアデータバッファ50−0に保持されたストアデータが書き込まれてストア命令の処理が完了する(図8のT12参照)。
このように、従来の情報処理装置100では、必ず先にストア命令を命令処理部10からストアポート30−0〜30−nに発行し、その後、演算器20による演算結果であるストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nへ発行するように、つまり、インオーダーで処理を行なうように構成されている。
したがって、図7に示すように、従来の情報処理装置100は、ストアポート30−0〜30−nのRSTDVフラグ30dをオフ状態にリセットしうるリセット部81をそなえており、命令処理部10から発行されたストア命令がストアポート30−0〜30−nに保持されたら、リセット部81がRSTDVフラグ30dをオフ状態にリセットする(図8のT5参照)ように構成されている。
つまり、従来の情報処理装置100では、インオーダーで処理が行なわれるため、ストアポート30−0〜30−nにストア命令が保持された時点で、対応するストアデータバッファ50−0〜50−nにストアデータが保持されていることはあり得ないため、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグ30dをオフ状態にリセットするように構成されている。これにより、例えば、本来ストアすべきストアデータとは異なる他のストアデータが対応するストアデータバッファ50−0〜50−nに保持されており、このストアすべきでない他のデータを誤ってストアしてしまったり、ストアデータバッファ50−0〜50−nがストアデータを保持していないにも関わらず誤ってRSTDVフラグ30dがオン状態に設定されているためにストア命令が実行されないといったエラーを防止することができるようになっている。
特開平5−289848号公報
ところで、上述した従来の情報処理装置100では、命令処理部10による命令の解読後、ストア命令をストアポート30−0〜30−nに対して発行するにあたっては、演算器20によるストアアドレスの計算に用いるアドレスレジスタ21の番号(値)が確定していることが必要であり、また、ストアデータをストアデータバッファ50−0〜50−nに対して発行するにあたっては、ストアデータを保持する演算レジスタ22の番号(値)が確定していることが必要であった。これらアドレスレジスタ21の番号と演算レジスタ22の番号とが確定する順序は一定ではない。
しかしながら、従来の情報処理装置100では、上述したように必ず先にストア命令を命令処理部10からストアポート30−0〜30−nに発行し、その後、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−nへ発行するようにインオーダーで処理を実行していたため、アドレスレジスタ21の番号が確定するよりも前に演算レジスタ22の番号が確定して当該演算レジスタ22にストアデータが保持されているような場合でも、アドレスレジスタ21の番号が確定してストア命令の発行が確認されるまでは、演算レジスタ22からのストアデータバッファ50−0〜50−nに対するストアデータの発行がロックされており、ストアデータの発行を待たなくてはならなかった。
このように、演算レジスタ22からストアデータバッファ50−0〜50−nに対するストアデータの発行が待たされる間は、当然、ストアデータを保持する演算レジスタ22の解放も待たされるため、その間は演算レジスタ22を他の演算に使用することができず、演算レジスタ22の使用効率が落ちていた。
本発明は、このような課題に鑑み創案されたもので、ストア命令を実行するにあたり、ストアデータを保持する演算レジスタの使用効率を向上できるようにすることを目的とする。
上記目的を達成するために、本発明の情報処理装置は、命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記命令処理部が、前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させるように構成され、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴としている(請求項1)。
さらに、前記演算レジスタから前記ストアデータとして発行された前記演算結果をアラインするアライン部をそなえ、前記命令処理部が、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともにアラインに必要なアライン情報と当該アライン情報を前記アライン部で使用するか否かを示す使用/不使用情報とを発行するように構成され、前記アライン部で使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択するアライン情報選択部をさらにそなえて構成されることが好ましい(請求項2)。
このとき、前記命令処理部が、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することが好ましい(請求項3)。
また、前記ストア命令の実行をキャンセルするキャンセル部をそなえ、該キャンセル部が、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応する前記ストアデータ保持フラグがオフ状態に設定されることが好ましい(請求項4)。
なお、前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをそなえ、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータが前記ストアデータバッファから前記ストアフェッチバイパスへ投入されることが好ましい(請求項5)。
また、上記目的を達成するために、本発明のストア命令制御方法は、命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、前記命令処理部により、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させ、前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴としている(請求項6)。
さらに、前記命令処理部により、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともに当該演算結果のアラインに必要なアライン情報、及び当該アライン情報を前記アラインに際して使用するか否かを示す使用/不使用情報とを発行し、前記アラインに際して使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択することが好ましい(請求項7)。
このとき、前記命令処理部により、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することが好ましい(請求項8)。
また、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータを削除するとともに、当該ストアデータに対応する前記ストアデータ保持フラグをオフ状態に設定することが好ましい(請求項9)。
なお、前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをさらにそなえて構成された前記情報処理装置において、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータを前記ストアデータバッファから前記ストアフェッチバイパスへ投入することが好ましい(請求項10)。
このように、本発明によれば、演算レジスタが確定すると、ストア命令のストアポートへの発行状況に関わらず、演算レジスタから演算結果をストアデータとしてストアデータバッファに対して発行させ、ストア命令がストアポートに保持されるよりも先にストアデータがストアデータバッファに保持された場合には、ストア命令がストアポートに保持された時点でストアデータ保持フラグがオフ状態に設定されることなくオン状態に維持されるため、ストア命令をストアポートに発行するよりも先にストアデータをストアデータバッファに対して発行させた場合でも、当該ストア命令を確実に実行することができる(請求項1,6)。
したがって、従来の情報処理装置のように、演算レジスタが確定しているにも関わらず、演算レジスタからのストアデータの発行を、ストア命令の発行が完了するのを確認するまで待たなくてもよくなり、演算レジスタが確定した時点ですぐに演算レジスタからストアデータ(演算結果)を発行させることにより、演算レジスタからストアデータを早く発行させた分だけ、演算レジスタを早く解放して他の処理に割り当てることが可能になり、演算レジスタの使用効率を向上させることができる(請求項1,6)。
また、演算レジスタからストアデータとして発行された演算結果をアラインする場合でも、ストアデータとともにアライン情報と使用/不使用情報が発行され、かかる使用/不使用情報に基づいてアラインが確実に行なわれ(請求項2,7)、ストア命令をストアポートに対して発行するよりも先にストアデータを演算レジスタからストアデータバッファに対して発行させる場合には、かかる使用/不使用情報を使用に設定するため、ストア命令をストアポートに発行するよりも先にストアデータをストアデータバッファに対して発行させた場合でも、アラインを確実に実行することができ、その結果、ストア命令を確実に実行することができる(請求項3,8)。
さらに、ストアデータがストアデータバッファに対して発行された後であって、当該ストアデータに対応するストア命令がストアポートに対して発行される前に、ストア命令をキャンセルする場合には、ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応するストアデータ保持フラグがオフ状態に設定されるため、キャンセルを実行したにも関わらずストアポートのストアデータ保持フラグがオン状態のままになり、キャンセル実行後に当該ストアポートに保持されたストア命令が、ストアデータが既に保持されていると誤認して、誤って実行されることを防止することができ、キャンセル実行後のストア命令を確実に実行することができる(請求項4,9)。
また、フェッチ命令が、ストア命令に使用するストアデータをフェッチする場合であっても、かかるフェッチ命令を、ストアフェッチバイパスを用いて早期に実行することができる(請求項5,10)。
以下、図面を参照しながら本発明の実施の形態について説明する。
〔1〕本発明の第1実施形態について
〔1−1〕情報処理装置の構成について
まず、本発明の第1実施形態としての情報処理装置の構成について説明する。図1は本発明の第1実施形態としての情報処理装置の構成を示すブロック図である。なお、図1において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示している。
図1に示すように、本発明の第1実施形態としての情報処理装置1は、命令処理部10,演算器20,アドレスレジスタ21,演算レジスタ22,ストアポート30−0〜30−n(nは0以上の整数、ここでは2以上の整数),アライン部40,アライン情報選択部41,ストアデータバッファ50−0〜50−n(nは0以上の整数、ここでは2以上の整数),キャッシュメモリ(記憶領域)60,フェッチバス70,ストアフェッチバイパス71,キャンセル部80,リセット部81,及び抑止部82をそなえて構成されている。
命令処理部10は、命令キャッシュ(図示せず)に保持された命令を解読して処理命令を発行するものであり、命令処理部10は解読した命令がストア命令(ストア要求)である場合には、命令を解読することにより、ストア命令とともにストアデータ幅(図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),後述する演算器20によるストア先のアドレス(以下、ストアアドレスという)計算に用いられるアドレスレジスタ21の番号(値),及び後述するストアデータを保持する演算レジスタ22の番号(値)を取得する。
演算器20は、命令処理部10から処理命令として発行された演算命令に応じて演算を実行するとともに、命令処理部10から処理命令として発行されたストア命令に基づく、当該ストア命令によりストアすべき所定の記憶領域(ここではキャッシュメモリ60)上のアドレス計算を後述するアドレスレジスタ21を用いて実行するものである。
アドレスレジスタ21は、演算器20によるストア先のアドレス計算に用いられるとともに、かかる計算の結果としてのストアアドレスを一時的に保持するものである。
演算レジスタ22は、演算器20による演算に用いられるとともに、かかる演算の結果得られたストアデータを一時的に保持するものである。なお、演算器20,アドレスレジスタ21,及び演算レジスタ22から演算部が構成される。
ストアポート30−0〜30−nは、命令処理部10から処理命令として発行され、演算レジスタ22に保持された演算結果(ストアデータ)を所定の記憶領域(ここではキャッシュメモリ60)にストアするためのストア命令を保持するものである。
つまり、命令処理部10は、解読したストア命令をストアポート30−0〜30−nに発行するように構成されており、当該ストア命令に基づく演算器20によるアドレス計算に用いられるアドレスレジスタ21の番号が確定すると、当該ストア命令を発行する(後述する図3のT3参照)。
また、ストアポート30−0〜30−nは、それぞれVALIDフラグ30a,ADRS(Address)フラグ30b,LENGTHフラグ30c,RSTDV(Received Store Date Valid)フラグ(ストアデータ保持フラグ)30d,PSTV(Post Status Valid)フラグ30e,及びREADYフラグ30fをそなえて構成されている。
VALIDフラグ30aは、ストアポート30−0〜30−nが命令処理部10から発行されたストア命令を受け取ったか否かを示す情報であり、ストア命令を受け取るとオン状態に設定される。
ADRS(Address)フラグ30bは、ストアポート30−0〜30−nがアドレスレジスタ21からストアアドレスを受け取ったか否かを示す情報であり、ストアアドレスを受け取るとオン状態に設定される。
LENGTHフラグ30cは、ストアポート30−0〜30−nが命令処理部10からストア命令とともに発行されたストアデータ幅を受け取ったか否かを示す情報であり、ストアデータ幅を受け取るとオン状態に設定される。
RSTDVフラグ30dは、ストアポート30−0〜30−nのそれぞれに対応した後述するストアデータバッファ50−0〜50−nが演算レジスタ22からストアデータを受け取ったか否かを示す情報であり、ストアデータバッファ50−0〜50−nにストアデータが保持された場合にオン状態に設定される。
PSTVフラグ30eは、命令処理部10がストア対象領域(所定の記憶領域;ここではキャッシュメモリ60)のページ属性を取り出し、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断する例外判定の結果を示す情報であり、かかる例外判定の結果が例外無し(ストア可能)であればオン状態に設定される。なお、命令処理部10による例外判定を行なうタイミングについては、図3を参照しながら後述する。
READYフラグ30fは、命令処理部10がストアポート30−0〜30−nに保持されたストア命令が実行可能な状態であると判断して、当該ストア命令を実行させるべく、ストアポート30−0〜30−nに対して通知するストア許可を、ストアポート30−0〜30−nが受け取ったか否かを示す情報であり、命令処理部10からストア許可を受け取るとオン状態に設定される。
アライン部40は、演算レジスタ22からストアデータとして発行された演算結果を、命令処理部10からストア命令とともに発行されたストアデータの幅(図中LENGTHと表記)とストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記)とからなるアライン情報、もしくは、演算レジスタ22から発行されるストアデータに付随して発行されたアライン情報を用いてストアデータをアラインするものである。
アライン情報選択部41は、アライン部40でアラインに用いるアライン情報を、ストアデータに付随して発行されたアライン情報とともに発行された使用/不使用情報(図中CODE−VALIDと表記)に基づいて、命令処理部10からストア命令とともに発行されたアライン情報と、ストアデータに付随して発行されたアライン情報とから選択するものである。
つまり、命令処理部10は、ストア命令をストアポート30−0〜30−nに対して発行する際に、当該ストア命令とともに前記アライン情報も発行するとともに、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−nに対して発行させる際に、当該ストアデータに付随して前記アライン情報と使用/不使用情報とを発行させる。
ストアデータバッファ50−0〜50−nは、命令処理部10により演算レジスタ22からストアデータとして発行され、アライン部40によってアラインされたストアデータを一時的に保持するものである。
命令処理部10は、ストア命令に基づいて演算レジスタ22に保持された演算結果をストアデータとしてストアデータバッファ50−0〜50−nに対して発行させるように構成されており、解読したストア命令に応じて、当該ストア命令によってストアすべき演算結果が保持された演算レジスタ22が確定すると(つまり、指定された演算レジスタ22に演算結果が保持されたら)、当該ストア命令のストアポート30−0〜30−nへの発行状況(発行したか否か)に関わらず、当該演算結果を演算レジスタ22からストアデータとして発行させる(後述する図3のT4参照)。
なお、ストアデータバッファ50−0〜50−nとストアポート30−0〜30−nとはそれぞれ1対1で対応しており、命令処理部10は、ストア命令を発行するにあたり、いずれの対のストアポート及びストアデータバッファを用いるかを指定する。また、少なくともストアポート30−0〜30−n,アライン部40,ストアデータバッファ50−0〜50−n,及びキャッシュメモリ60から記憶制御装置が構成される。
フェッチバス70は、命令処理部10が解読した処理命令がフェッチ命令であった場合に、命令処理部10から発行された当該フェッチ命令のフェッチ対象であるデータを所定の記憶領域(ここではキャッシュメモリ60)から前記演算部へ投入するためのバスである。
ストアフェッチバイパス71は、命令処理部10から発行されたフェッチ命令がストアデータバッファ50−0〜50−nに保持されているストアデータを使用する場合に、当該ストアデータをストアデータバッファ50−0〜50−nからフェッチバスへ直接投入するためのバスである。
ここで、命令処理部10は、解読した命令がフェッチ命令であった場合に、所定の条件を満たす場合には、ストアフェッチバイパス71を用いてフェッチを実行するように構成されており、例えば、ストアデータバッファ50−0〜50−nに保持されているストアデータを、当該ストアデータを用いるストア命令よりも後続のフェッチ命令が使用する場合には、当該ストア命令実行前に、ストアデータバッファ50−0〜50−nから当該ストアデータをストアフェッチバイパス71へ投入する。
キャンセル部80は、ストア命令の実行をキャンセルする事象が発生した場合、ストアポート30−0〜30−nに保持されたストア命令をキャンセル(削除)するものである。
図2(a),(b)はキャンセル部80によるストア命令実行のキャンセルを説明するための図であり、図2(a)はストアポート30−0〜30−n(ここではn=4)におけるキャンセルを説明するための図、図2(b)はストアデータバッファ50−0〜50−n(ここではn=4)におけるキャンセルを説明するための図である。なお、図2(a)において、ストアポート30−0〜30−nのADRSフラグ30b,LENGTHフラグ30c,PSTVフラグ30eは図の簡略化のためここでは省略している。
図2(a)に示すように、ストア命令の実行をキャンセルする事象が発生した場合には、キャンセル部80は、ストアポート30−0〜30−4において、ストア命令が保持され[つまり、VALIDフラグ30aがオン(ON)状態であり]、ストアデータが対応するストアデータバッファに保持され[つまり、RSTDVフラグ30dがオン(ON)状態であり]、且つREADYフラグ30fがオン(ON)状態であるストアポート(ここでは、ストアポート30−2)についてはキャンセルせず、また、ストア命令とストアデータとがともに保持されていないストアポート(ここでは、ストアポート30−3)についてもキャンセルせず、これら以外のストアポート(ここでは、ストアポート30−0,30−1,30−4)に対してはすべてキャンセルを実行し、これらのストアポート30−0,30−1,30−4の全フラグ30a〜30fをオフ状態にリセットするとともに、ストア命令が保持されている場合にはストア命令を削除する。
一方、図2(b)に示すように、ストアデータバッファ50−0〜50−nにおいては、キャンセル部80は、図2(a)に示すストアポート30−0,30−1,30−4に対応するストアデータバッファ50−0,50−1,50−4について、これらストアデータバッファ50−0,50−1,50−4にストアデータが保持されていれば、保持されているストアデータをキャンセル(削除)する。
したがって、ストアデータがストアデータバッファ50−0〜50−nに対して発行された後であって、当該ストアデータに対応するストア命令がストアポート30−0〜30−nに対して発行される前[つまり、図2(a),(b)中のストアポート30−4及びストアデータバッファ50−4の状態]において、ストア命令がキャンセルされる場合には、キャンセル部80は、ストアデータバッファ50−4に保持されたストアデータを削除するとともに、対応するストアポート30−4のRSTDVフラグ30fをオフ状態にリセット(設定)するようになっている。
リセット部81は、命令処理部10から発行されたストア命令がストアポート30−0〜30−nに保持された時点で当該ストアポート30−0〜30−nのRSTDVフラグ30dをオフ状態に設定するものである。
抑止部82は、ストアポート30−0〜30−nに命令処理部10から発行されたストア命令が保持されるよりも先に、命令処理部10により演算レジスタ22から発行されたストアデータがストアデータバッファ50−0〜50−nに保持された場合に、当該ストア命令がストアポート30−0〜30−nに保持された時点でリセット部81がRSTDVフラグ30dをオフ状態に設定することを抑止して、RSTDVフラグ30dのオン状態を維持するものである。
上述したように、本情報処理装置1では、命令処理部10が、演算器20によるアドレス計算に用いられるアドレスレジスタ21が確定したらストア命令をストアポート30−0〜30−nに対して発行する一方、ストア命令で使用するストアデータとしての演算結果が保持された演算レジスタ22が確定したら、当該ストア命令のストアポート30−0〜30−nへの発行に関係なく(発行状況に関わらず)、当該演算結果をストアデータとして演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる。つまり、本情報処理装置1では、ストア命令のストアポート30−0〜30−nに対する発行とストアデータ(演算結果)のストアデータバッファ50−0〜50−nへの発行とが、アウトオブオーダーで実行されるようになっている。
このように、本情報処理装置1では、ストア命令がストアポート30−0〜30−nに保持されるより先にストアデータがストアデータバッファ50−0〜50−nに保持される場合があるため、このような場合に、ストア命令に使用されるストアデータがストアデータバッファ50−0〜50−nに既に保持されているにも関わらず、ストア命令がストアポート30−0〜30−nに保持された時点でリセット部81によりRSTDVフラグ30dがオフ状態にリセットされることを抑止すべく、抑止部82がそなえられている。
〔1−2〕ストア命令制御方法(情報処理装置1の動作)について
次に、本発明の第1実施形態としてのストア命令制御方法(情報処理装置1の動作)について説明する。
〔1−2−1〕ストアデータの発行がストア命令の発行よりも先に実行される場合について
図3は本発明の第1実施形態としてのストア命令制御方法(ストアデータの発行がストア命令の発行よりも先に実行される場合)の手順を示すタイムチャートである。なお、図3においてT1〜T12は時間単位、つまり、情報処理装置1における制御クロック単位を示すものである。
図3に示すように、情報処理装置1では、まず、命令処理部10が命令キャッシュ(図示せず)に保持された命令を解読する(図3のT1参照)。このとき、命令処理部10が解読した命令がストア命令(ストア要求)であれば、命令処理部10は、解読したストア命令とともにストアデータ幅(図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),演算器20によるストア先のアドレス計算に用いられるアドレスレジスタ21の番号(値),及び当該ストア命令によってストアすべきストアデータが保持される演算レジスタ22の番号(値)を取得する。
ここで、命令解読後、演算器20によるストアアドレスの計算に用いられるアドレスレジスタ21が確定する(つまり、アドレスレジスタ21の番号が指定され、当該アドレスレジスタ21が使用できる状況になる)前に、演算レジスタ22が確定する(つまり、指定された演算レジスタ22にストアデータとして使用される演算結果が保持される)と(図3のT2参照)、命令処理部10は、ストア命令のストアポート30−0〜30−n(ここではストアポート30−0)への発行状況(発行したか否か)に関わらず、演算レジスタ22から演算結果をストアデータとしてストアデータバッファ50−0〜50−n(ここではストアデータバッファ50−0)に対して発行させる(図3のT3参照)。なお、アドレスレジスタ21の確定に時間を要するのは、当該ストア命令以前に発行された処理命令によってアドレスレジスタ21が占有されていることなどによる。
このとき、命令処理部10は、演算レジスタ22から発行されるストアデータに付随してアライン情報(ストアデータ幅及びアライン指示情報)が発行されるようにするとともに、当該アライン情報をアライン部40で使用するか否かを示す使用/不使用情報(CODE−VALID)がストアデータに付随して発行されるようする(図3のT3参照)。なお、命令処理部10は、演算レジスタ22からのストアデータの発行が、ストア命令が発行されるより先に実行される場合には、使用/不使用情報が使用に設定されて発行されるようにする。なお、演算レジスタ22は、ストアデータの発行が完了すると解放されて他の処理による利用が可能になる。
そして、アライン情報選択部41が、アライン部40で使用するアライン情報を、使用/不使用情報に基づいて、ストア命令とともに発行されるアライン情報とストアデータに付随して発行されるアライン情報とから選択するが、ここでは使用/不使用情報が使用に設定されているため、アライン情報選択部41は、ストアデータに付随して発行されるアライン情報を選択し、この選択されたアライン情報を用いてアライン部40が演算レジスタ22から発行されたストアデータをアラインする(図3のT4参照)。
次いで、アラインされたストアデータは、ストアデータバッファ50−0に保持されて、ストアポート30−0のRSTDVフラグがオン状態に設定される(図3のT5参照)。
一方、演算器20によるストアアドレスの計算に用いられるアドレスレジスタ21が確定すると(図3のT3参照)、演算器20が、アドレスレジスタ21を用いてストアアドレスの計算を実行する(図3のT4参照)。なお、演算器20の計算結果として得られたストアアドレスはアドレスレジスタ21に一旦保持される。
このとき、命令処理部10は、解読したストア命令をストアデータ幅及びアライン指示情報とともにストアポート30−0に対して発行する(図3のT4参照)。
そして、演算器20により算出されアドレスレジスタ21に保持されたストアアドレスがストアポート30−0に対して発行される(図3のT5参照)。ここで、当該ストアアドレスは少なくともストアポート30−0〜30−nをそなえる記憶処理装置のパイプラインに投入され、パイプラインを流れることで、変換ルックアサイドバッファ(TLB:Translation Lookaside Buffer;図示せず)を用いて実際のストア先である記憶領域(ここではキャッシュメモリ60)上のアドレス(物理アドレス;以下、アドレスレジスタ21に保持されたストアアドレスと区別しない場合には、単にストアアドレスという)に変換されて、変換されたストアアドレスがストアポート30−0に発行される。
なお、アドレスレジスタ21は、ストアアドレスの発行が完了すると解放されて他の処理による利用が可能になる。
次に、ストアポート30−0がストア命令,ストアアドレス(物理アドレス),及びストアデータ幅を受け取ると、VALIDフラグ30a,ADRSフラグ30b,及びLENGTHフラグ30cがオン状態に設定される(図3のT6参照)。
このとき、対応するストアデータバッファ50−0には、ストアデータが既に保持されているため、抑止部82が、リセット部81によってRSTDVフラグ30dをオフ状態に設定させることなく、リセット部81によるリセットを抑止してRSTDVフラグ30dをオン状態に維持する(図3のT6参照)。
なお、ストアポート30−0がストア命令とともにストアデータ幅を受け取ると、命令処理部10は、当該ストア命令の後続のフェッチ命令が当該ストア命令で使用するストアデータを使用するものであるか否か(つまり、当該ストア命令のストア対象領域を使用しているか否か)をストアデータ幅に基づいて判断する(図示せず)。ここで、後続のフェッチ命令が当該ストア命令が使用するストアデータを使用するものであれば、命令処理部10は、かかるフェッチ命令の実行を当該ストア命令の実行完了まで抑止するか、あるいは、当該ストア命令が使用するストアデータがストアデータバッファ50−0〜50−nに保持されたら、ストアデータバッファ50−0〜50−nからストアデータを取り出してキャッシュメモリ60への書き込みをバイパスしてフェッチデータバス71に投入することにより、かかるフェッチ命令を早期に完了させる。
ところで、ストアポート30−0にストアアドレスが保持されると(図3のT6参照)、命令処理部10は、ストア対象領域のページ属性を取り出し、例外の判定を行なう(図3のT7参照)。つまり、命令処理部10は、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断し、ストア可能であれば例外無しをストアポート30−0へ通知する一方、ストア不可能であれば例外有りをストアポート30−0へ通知して当該ストア命令の実行をキャンセルする。
ここでは、例外判定の結果が例外無しであるため、ストアポート30−0のPSTVフラグ30eがオン状態に設定される。
次いで、命令処理部10は、ストアポート30−0にストア命令,ストアアドレス,ストアデータの幅が保持され、当該ストア命令の例外判定の結果が例外無しであり、ストアデータがストアデータバッファ50−0に保持された状態(すなわち、VALIDフラグ30a,ADRSフラグ30b,LENGTHフラグ30c,PSTVフラグ30e,及びRSTDVフラグ30dのすべてがオン状態)になり、且つ、当該ストア命令に先行する命令がすべて完了したら、当該ストア命令が実行可能な状態であると判断して、ストアポート30−0に対してストア許可を通知する(図3のT10参照)。
なお、このとき、ストアポート30−0のREADYフラグ30fはオン状態に設定される。
そして、ストアポート30−0のREADYフラグ30fがオン状態に設定されると(図3のT10参照)、ストア命令が実行され(図3のT11参照)、ストアポート30−0に保持されたストアアドレスに基づいて、キャッシュメモリ60における所定アドレス上に、ストアデータバッファ50−0に保持されたストアデータが書き込まれてストア命令の処理が完了する(図3のT12参照)。
〔1−2−2〕ストアデータの発行がストア命令の発行後に実行される場合について
図4は本発明の第1実施形態としてのストア命令制御方法(ストアデータの発行がストア命令の発行後に実行される場合)の手順を示すタイムチャートである。なお、図4においてT1〜T12は時間単位、つまり、情報処理装置1における制御クロック単位を示すものである。
上述したように、本発明の第1実施形態としての情報処理装置1(図1参照)では、命令処理部10によるストア命令のストアポート30−0〜30−nに対する発行と、ストアデータの演算レジスタ22からストアデータバッファ50−0〜50−nに対する発行との発行順序を、アウトオブオーダーで実行することができる。以降、図4を参照しながら命令処理部10によるストアデータの発行がストア命令の発行後に実行される場合について説明するが、ここでは、図3を参照しながら上述した、ストアデータの発行がストア命令の発行より先に実行される場合とは異なる動作を中心に説明し、重複する動作についてはその説明を省略する。
図4に示す例では、命令処理部10による命令解読(図4のT1参照)後、まずアドレスレジスタ21が確定する(図4のT2参照)。その後、確定したアドレスレジスタ21を用いて演算器20がアドレス計算を実行するとともに、命令処理部10がストアポート30−0〜30−n(ここでは、ストアポート30−0)に対してストア命令を発行するのと同時に、演算レジスタ22が確定する(図4のT3参照)。
そして、命令処理部10は、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−n(ここでは、ストアデータバッファ50−0)に対して発行するとともに、アライン情報及び使用/不使用情報(CODE−VALID)を発行させるが、ここでは、ストアデータの発行が実行されるよりも前にストア命令の発行が実行されているため、命令処理部10は、使用/不使用情報を不使用に設定して発行させる(図4のT4参照)。
したがって、アライン情報選択部41は、使用/不使用情報に基づいてストア命令に付随して発行されたアライン情報を選択し、アライン部は選択されたストア命令に付随したアライン情報を用いて、ストアデータをアラインする(図4のT5参照)。
一方、ストアポート30−0にストア命令が保持されると、ここでは、ストアデータがストアデータバッファ50−0に保持されるよりも先にストア命令がストアポート30−0に保持されるため、抑止部82がリセット部81によるRSTDVフラグ30dのリセットを抑止することなく、リセット部81がRSTDVフラグ30dを一旦オフ状態に設定(リセット)する(図4のT5参照)。
そして、その後ストアデータがストアデータバッファ50−0に保持されると、RSTDVフラグ30dがオン状態に設定される(図4のT6参照)。
なお、例外判定後(図4のT6参照)、ストア命令が実行されてストアデータがキャッシュメモリメモリ60に格納されるまでの動作(図4のT7〜T12参照)は、図3を参照しながら上述した場合と同様である。
〔1−3〕本発明の第1実施形態としての情報処理装置1及びストア命令制御方法による効果について
このように、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法によれば、命令処理部10が、ストア命令のストアポート30−0〜30−nへの発行状況に関わらず、演算レジスタ22が確定すると演算レジスタ22から演算結果をストアデータとしてストアデータバッファ50−0〜50−nに対して発行させ、さらに当該ストアデータに付随してアライン情報及び使用/不使用情報を発行させてアライン部40によるアラインが可能に構成されるとともに、ストア命令がストアポート30−0〜30−nに保持されるよりも先にストアデータがストアデータバッファ50−0〜50−nに保持された場合には、抑止部82が、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグをオフ状態に設定することを抑止して、RSTDVフラグをオン状態に維持するため、ストア命令をストアポート30−0〜30−nに発行するよりも先にストアデータをストアデータバッファ50−0〜50−nに対して発行させた場合でも、当該ストア命令を確実に実行することができる。
したがって、上記図7に示す従来の情報処理装置100のように、演算レジスタ22が確定しているにも関わらず、演算レジスタ22からのストアデータの発行を、ストア命令の発行を確認する(図8のT7参照)まで待たなくてもよくなり、演算レジスタ22が確定した時点ですぐに演算レジスタ22からストアデータ(演算結果)を発行させることができるため(図3のT3及び図4のT4参照)、従来の情報処理装置100よりも演算レジスタ22をより早期に(図3に示す例では3制御クロック単位分、図4に示す例では2制御クロック単位分早く)解放して、演算レジスタ22を他の処理に割り当てることが可能になる。つまり、演算レジスタ22の使用効率を向上させることができる。
また、上記図3,図4では、命令処理部10がストア許可を通知するタイミングが、上記図8に示す従来の情報処理装置100におけるタイミングと同じタイミング(図3,図4のT10及び図8のT10参照)である場合を例に挙げて説明したが、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法によれば、当該ストア命令に先行する命令が完了するタイミングによっては、ストア許可を通知できるタイミングを早める(図3に示す例ではT8のタイミング、図4に示す例ではT9のタイミングまで早める)ことができる。
つまり、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法では、ストア命令の発行とストアデータの発行との発行順序をアウトオブオーダーに実行することができるため、アドレスレジスタ21と演算レジスタ22とが確定するタイミングが早ければ早いほど、ストア命令の実行タイミングを前倒しすることが可能になる。したがって、ストア許可の発行タイミング(ストア命令の実行タイミング)によっては、情報処理装置1の処理性能を向上させることが可能になる。
なお、ストア命令の実行タイミングが最も早くなるのは、命令処理部10による命令解読後すぐに(つまり、図3,図4のT2のタイミングで)、アドレスレジスタ21と演算レジスタ22とが共に確定した場合であり、この場合には、ストア命令の実行タイミングを図3,図4のT9のタイミングに前倒しすることが可能になり、情報処理装置1の処理性能を向上させることが可能になる。
また、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法によれば、上述したように、命令処理部10が、ストア命令のストアポート30−0〜30−nへの発行状況に関わらず、演算レジスタ22が確定すると演算レジスタ22から演算結果をストアデータとしてストアデータバッファ50−0〜50−nに対して発行させ、ストア命令がストアポート30−0〜30−nに保持されるよりも先にストアデータがストアデータバッファ50−0〜50−nに保持された場合には、抑止部82が、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグをオフ状態に設定することを抑止してRSTDVフラグをオン状態に維持するため、当該ストア命令より後続のフェッチ命令が、当該ストア命令に使用するストアデータをフェッチする場合であっても、命令処理部10は、かかる後続のフェッチ命令をストアフェッチバイパス71を用いて確実に実行することができる。
さらに、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法では、ストアデータがストアデータバッファ50−0〜50−nに対して発行された後であって、当該ストアデータに対応するストア命令がストアポート30−0〜30−nに対して発行される前において、ストア命令がキャンセルされる事象が発生した場合[図2(a)のストアポート30−4及び図2(b)のストアデータバッファ50−4参照]には、キャンセル部80が、ストアデータバッファ50−0〜50−n(ここではストアデータバッファ50−4)に保持されたストアデータを削除するとともに、対応するストアポート30−0〜30−n(ここではストアポート30−4)のRSTDVフラグ30dをオフ状態に設定する。
これにより、キャンセル部80によるキャンセル実行後に当該ストアポート30−4に対してストアデータがストアデータバッファ50−4に保持されるよりも前にストア命令が保持されても、対応するストアデータバッファ50−4のRSTDVフラグ30dはオフ状態に設定されているため、キャンセル部80によるキャンセル実行後のストア命令を確実に実行することができる。つまり、ストアポート30−4のRSTDVフラグ30dがオン状態のままになり、ストアデータがストアデータバッファ50−4に保持されていると誤認して、キャンセル部80によるキャンセル実行後のストア命令が誤って実行されることを防止することができる。
〔2〕本発明の第2実施形態について
次に、本発明の第2実施形態について説明すると、図5は本発明の第2実施形態としての情報処理装置1′の構成を示すブロック図である。なお、図5において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示している。
図5に示すように、本発明の第2実施形態としての情報処理装置1′では、ストア命令の発行とストアデータの発行との発行順序を、ストア命令の発行が必ず先行するインオーダーの実行(第1の態様)と、ストアデータの発行をストア命令の発行状況に関わらず実行するアウトオブオーダーの実行(第2の態様)とで切り替えるべく、切替部83がそなえられている点を除いては、上記図1に示す第1実施形態の情報処理装置1と同様に構成されている。したがって、ここでは上記第1実施形態の情報処理装置1と共通部分については、その詳細な説明を省略する。
本発明の第2実施形態としての情報処理装置1′は、切替部83をそなえて構成されており、この切替部83は、命令処理部10によるストア命令のストアポート30−0〜30−nへの発行をストアデータの演算レジスタ22からのストアデータバッファ50−0〜50−nへの発行に対して常に先行させるインオーダーの処理(第1の態様)と、演算結果が保持された演算レジスタ22が確定すると、ストア命令の発行に関係なく(発行状態に関わらず)演算レジスタ22から演算結果をストアデータとしてストアデータバッファ50−0〜50−nに対して発行させるアウトオブオーダーの処理(第2の態様)とを選択的に切り替えるものである。なお、切替部83は切替レジスタ(Operation Status Register;図示せず)によりインオーダーの処理とアウトオブオーダーの処理とを切り替え可能に構成されている。
切替部83の切り替えによりインオーダーの処理を実行する、つまり、切替部83によりインオーダーの処理を選択する場合には、命令処理部10は、ストア命令のストアポート30−0〜30−nに対する発行が完了するまでは、演算レジスタ22からのストアデータの発行をインターロックするとともに、ストアポート30−0〜30−nにストア命令が保持されると、リセット部81によりRSTDVフラグ30dをオフ状態に設定(リセット)させる。
このとき、命令処理部10は、ストアデータの発行とともにアライン情報及び使用/不使用情報を発行させるが、使用/不使用情報を不使用に設定する。
なお、インオーダーの処理を実行する場合には、命令処理部10が、ストアデータの発行とともにアライン情報及び使用/不使用情報を発行させないように構成してもよい。
一方、切替部83の切り替えによりアウトオブオーダーの処理を実行する、つまり、切替部83によりアウトオブオーダーの処理を選択する場合には、命令処理部10は、演算レジスタ22からのストアデータの発行についてのインターロックを常に解除して、ストア命令のストアポート30−0〜30−nへの発行状況に関わらず、演算レジスタ22が確定するとストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる。
このとき、命令処理部10は、該ストアデータに付随してアライン情報及び使用/不使用情報を発行させ、使用/不使用情報を使用に設定する。
また、命令処理部10により、ストア命令がストアポート30−0〜30−nに保持されるよりも先にストアデータがストアデータバッファ50−0〜50−nに保持された場合には、抑止部82が、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグをオフ状態に設定することを抑止して、RSTDVフラグをオン状態に維持する。
このように、本発明の第2実施形態としての情報処理装置1′によれば、上述した第1実施形態と同様の効果を得ることができるとともに、切替部83によって、命令処理部10によるストア命令のストアポート30−0〜30−nに対する発行と、ストアデータの演算レジスタ22からのストアデータバッファ50−0〜50−nに対する発行とを、インオーダーの処理とアウトオブオーダーの処理とで選択的に切り替えることにより、インオーダーの処理時に対するアウトオブオーダーの処理時の性能向上を試験することができる。つまり、切替部83によって、インオーダーの処理とアウトオブオーダーの処理とを切り替えることにより、演算レジスタ22が確定したらすぐにストアデータを発行して当該演算レジスタ22を解放させて他の処理に割り当てることによる演算レジスタ22の使用効率の向上を確認することができる。
〔3〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、演算レジスタ22から演算結果をストアデータとしてストアデータバッファ50−0〜50−nに対して発行させる際に、命令処理部10が、かかるストアデータとともにアライン情報及び使用/不使用情報を発行させるように構成され、命令処理部10は、ストア命令をストアポート30−0〜30−nに対して発行した後に、ストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる場合には、使用/不使用情報を不使用に設定する一方、ストア命令をストアポート30−0〜30−nに対して発行するよりも先にストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる場合には、使用/不使用情報を使用に設定するように構成したが、本発明はこれに限定されるものではなく、命令処理部10が、ストア命令をストアポート30−0〜30−nに対して発行した後に、ストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる場合には、アライン情報及び使用/不使用情報を当該ストアデータとともに発行しないようにする一方、ストア命令をストアポート30−0〜30−nに対して発行するよりも先にストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる場合には、当該ストアデータとともにアライン情報のみを発行させるようにしてもよい。この場合、アライン部40が、命令処理部10によりストアデータとともにアライン情報が発行された場合には、当該アライン情報を使用して、ストア命令に付随したアライン情報を使用しないように構成することにより、アライン情報選択部41を省くことができ、より簡素な構成でアライン部40によるアラインが確実に実行できるとともに、ストア命令を確実に実行することができる。
また、上述した実施形態では、アライン部40が演算レジスタ22とストアデータバッファ50−0〜50−nとの間に介装されるように構成したが、本発明はこれに限定されるものではない。図6は本発明の変形例としての情報処理装置1″の構成を示すブロック図である。例えば、この図6に示すように、アライン部40を、ストアデータバッファ50−0〜50−nの後段(つまり、ストアデータバッファ50−0〜50−nとキャッシュメモリ60との間)に設けるようにしてもよい。この場合には、アライン情報選択部41を省くことができ、さらに、命令処理部10がストアデータを演算レジスタ22から発行させる際に、当該ストアデータとともにアライン情報及び使用/不使用情報を発行することなく、ストアデータバッファ50−0〜50−nに保持されたストアデータをキャッシュメモリ60に格納する際に、アライン部40が、ストア命令に付随して発行されたアライン情報を用いて当該ストアデータをアラインするように構成すればよい。
さらに、上述した実施形態では、ストア命令の実行よるストアデータの格納(書き込む)先をキャッシュメモリ60としたが、本発明はこれに限定されるものではなく、ストアデータの格納先を情報処理装置1(1′)に接続された外部の記憶装置としても良い。
また、上述した命令処理部10、アライン部40、アライン情報選択部41、キャンセル部80、リセット部81、抑止部82、及び切替部83としての機能は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(ストア命令制御プログラム)を実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からストア命令制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記ストア命令制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、命令処理部10、アライン部40、アライン情報選択部41、キャンセル部80、リセット部81、抑止部82、及び切替部83としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ,パンチカード,コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
〔4〕付記
(付記1)
命令を解読して処理命令を発行する命令処理部と、
該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、
該演算器による演算結果を保持する演算レジスタと、
前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、
前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、
前記命令処理部が、前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させるように構成され、
前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴とする、情報処理装置。
(付記2)
命令を解読して処理命令を発行する命令処理部と、
該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、
該演算器による演算結果を保持する演算レジスタと、
前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、
前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファと、
前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と、前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部とをそなえ、
前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴とする、情報処理装置。
(付記3)
前記命令処理部が、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、当該演算結果とともに当該演算結果のアラインに必要なアライン情報を発行するように構成され、
前記命令処理部から発行された前記アライン情報もしくは前記ストア命令に含まれるアライン情報に基づいて、前記演算レジスタから発行された前記演算結果をアラインするアライン部をさらにそなえて構成されていることを特徴とする、付記1又は2記載の情報処理装置。
(付記4)
前記演算レジスタから前記ストアデータとして発行された前記演算結果をアラインするアライン部をそなえ、
前記命令処理部が、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともにアラインに必要なアライン情報と当該アライン情報を前記アライン部で使用するか否かを示す使用/不使用情報とを発行するように構成され、
前記アライン部で使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択するアライン情報選択部をさらにそなえて構成されていることを特徴とする、付記1又は2記載の情報処理装置。
(付記5)
前記命令処理部が、
前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、付記4記載の情報処理装置。
(付記6)
前記ストア命令の実行をキャンセルするキャンセル部をそなえ、
該キャンセル部が、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応する前記ストアデータ保持フラグがオフ状態に設定されることを特徴とする、付記1〜5のいずれか1項に記載の情報処理装置。
(付記7)
前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、
前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをそなえ、
前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータが前記ストアデータバッファから前記ストアフェッチバイパスへ投入されることを特徴とする、付記1〜6のいずれか1項に記載の情報処理装置。
(付記8)
前記演算器が、前記命令処理部により発行された前記ストア命令に基づいて前記演算結果をストアする前記所定の記憶領域上のストアアドレスを算出するとともに、
前記演算器によるストアアドレスの算出に用いられるアドレスレジスタをさらにそなえ、
前記命令処理部は、前記アドレスレジスタが確定すると前記ストア命令を前記ストアポートに発行することを特徴とする、付記1〜7のいずれか1項に記載の情報処理装置。
(付記9)
命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、
前記命令処理部により、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させ、
前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴とする、ストア命令制御方法。
(付記10)
命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファと、前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部とをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、
前記命令処理部により、前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴とする、ストア命令制御方法
(付記11)
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、当該演算結果とともに当該演算結果のアラインに必要なアライン情報を発行することを特徴とする、付記9又は10記載のストア命令制御方法。
(付記12)
前記命令処理部により、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともに当該演算結果のアラインに必要なアライン情報、及び当該アライン情報を前記アラインに際して使用するか否かを示す使用/不使用情報とを発行し、
前記アラインに際して使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択することを特徴とする、付記9又は10記載のストア命令制御方法。
(付記13)
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、付記12記載のストア命令制御方法。
(付記14)
前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータを削除するとともに、当該ストアデータに対応する前記ストアデータ保持フラグをオフ状態に設定することを特徴とする、付記9〜13のいずれか1項に記載のストア命令制御方法。
(付記15)
前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをさらにそなえて構成された前記情報処理装置において、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータを前記ストアデータバッファから前記ストアフェッチバイパスへ投入することを特徴とする、付記9〜14のいずれか1項に記載のストア命令制御方法。
(付記16)
前記演算結果をストアする前記所定の記憶領域上のストアアドレスを算出する際に用いられるアドレスレジスタが確定すると、前記命令処理部により前記ストア命令を前記ストアポートに発行することを特徴とする、付記9〜15のいずれか1項に記載のストア命令制御方法。
(付記17)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムであって、
命令を解読して前記処理命令を発行するとともに、前記処理命令として発行した前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる命令処理部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラム。
(付記18)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ストア命令制御プログラムが、
命令を解読して前記処理命令を発行するとともに、前記処理命令として発行した前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる命令処理部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体。
(付記19)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムであって、
命令を解読して前記処理命令を発行する命令処理部、
前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と、前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラム。
(付記20)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ストア命令制御プログラムが、
命令を解読して前記処理命令を発行する命令処理部、
前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と、前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体。
本発明の第1実施形態としての情報処理装置の構成を示すブロック図である。 本発明の第1実施形態としての情報処理装置のキャンセル部によるキャンセルを説明するための図であり、(a)はストアポートにおけるキャンセルを説明するための図、(b)はストアデータバッファにおけるキャンセルを説明するための図である。 本発明の第1実施形態としてのストア命令制御方法の手順を説明するためのタイムチャートである。 本発明の第1実施形態としてのストア命令制御方法の手順を説明するためのタイムチャートである。 本発明の第2実施形態としての情報処理装置の構成を示すブロック図である。 本発明の変形例としての情報処理装置の構成を示すブロック図である。 従来の情報処理装置の構成を示すブロック図である。 従来のストア命令制御方法の手順を説明するためのタイムチャートである。
符号の説明
1,1′,1″,100 情報処理装置
10 命令処理部
20 演算器
21 アドレスレジスタ
22 演算レジスタ
30−0〜30−n ストアポート
30a VALIDフラグ
30b ADRSフラグ
30c LENGTHフラグ
30d RSTDVフラグ(ストアデータ保持フラグ)
30e PSTVフラグ
30f READYフラグ
40 アライン部
41 アライン情報選択部
50−0〜50−n ストアデータバッファ
60 キャッシュメモリ(記憶領域)
70 フェッチバス
71 ストアフェッチバイパス
80 キャンセル部
81 リセット部
82 抑止部
83 切替部

Claims (10)

  1. 命令を解読して処理命令を発行する命令処理部と、
    該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、
    該演算器による演算結果を保持する演算レジスタと、
    前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、
    前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、
    前記命令処理部が、前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させるように構成され、
    前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、
    前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、
    前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴とする、情報処理装置。
  2. 前記演算レジスタから前記ストアデータとして発行された前記演算結果をアラインするアライン部をそなえ、
    前記命令処理部が、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともにアラインに必要なアライン情報と当該アライン情報を前記アライン部で使用するか否かを示す使用/不使用情報とを発行するように構成され、
    前記アライン部で使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択するアライン情報選択部をさらにそなえて構成されていることを特徴とする、請求項1記載の情報処理装置。
  3. 前記命令処理部が、
    前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
    前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、請求項2記載の情報処理装置。
  4. 前記ストア命令の実行をキャンセルするキャンセル部をそなえ、
    該キャンセル部が、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応する前記ストアデータ保持フラグがオフ状態に設定されることを特徴とする、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、
    前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをそなえ、
    前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータが前記ストアデータバッファから前記ストアフェッチバイパスへ投入されることを特徴とする、請求項1〜4のいずれか1項に記載の情報処理装置。
  6. 命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、
    前記命令処理部により、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させ、
    前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、
    前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴とする、ストア命令制御方法。
  7. 前記命令処理部により、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともに当該演算結果のアラインに必要なアライン情報、及び当該アライン情報を前記アラインに際して使用するか否かを示す使用/不使用情報とを発行し、
    前記アラインに際して使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択することを特徴とする、請求項6記載のストア命令制御方法。
  8. 前記命令処理部により、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
    前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、請求項7記載のストア命令制御方法。
  9. 前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータを削除するとともに、当該ストアデータに対応する前記ストアデータ保持フラグをオフ状態に設定することを特徴とする、請求項6〜8のいずれか1項に記載のストア命令制御方法。
  10. 前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをさらにそなえて構成された前記情報処理装置において、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータを前記ストアデータバッファから前記ストアフェッチバイパスへ投入することを特徴とする、請求項6〜9のいずれか1項に記載のストア命令制御方法。
JP2004222044A 2004-07-29 2004-07-29 情報処理装置及びストア命令制御方法 Expired - Fee Related JP4128551B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004222044A JP4128551B2 (ja) 2004-07-29 2004-07-29 情報処理装置及びストア命令制御方法
US10/983,729 US7818545B2 (en) 2004-07-29 2004-11-09 Information processing unit and store instruction control method
DE602004023601T DE602004023601D1 (de) 2004-07-29 2004-11-22 Informationsverarbeitungseinheit zur Steuerung eines Speicherungsbefehls und entsprechendes Steuerungsverfahren
EP04257233A EP1622002B1 (en) 2004-07-29 2004-11-22 Information processing unit controlling a store instruction and corresponding control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004222044A JP4128551B2 (ja) 2004-07-29 2004-07-29 情報処理装置及びストア命令制御方法

Publications (2)

Publication Number Publication Date
JP2006040143A JP2006040143A (ja) 2006-02-09
JP4128551B2 true JP4128551B2 (ja) 2008-07-30

Family

ID=35149150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004222044A Expired - Fee Related JP4128551B2 (ja) 2004-07-29 2004-07-29 情報処理装置及びストア命令制御方法

Country Status (4)

Country Link
US (1) US7818545B2 (ja)
EP (1) EP1622002B1 (ja)
JP (1) JP4128551B2 (ja)
DE (1) DE602004023601D1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007097017A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited バッファリング装置およびバッファリング方法
JP2009118212A (ja) * 2007-11-07 2009-05-28 Seiko Epson Corp 画像読取装置および画像読取方法
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US7937570B2 (en) * 2008-02-01 2011-05-03 International Business Machines Corporation Termination of in-flight asynchronous memory move
US9354884B2 (en) 2013-03-13 2016-05-31 International Business Machines Corporation Processor with hybrid pipeline capable of operating in out-of-order and in-order modes
JP6200818B2 (ja) * 2014-01-21 2017-09-20 ルネサスエレクトロニクス株式会社 半導体装置の製造方法
JP6680978B2 (ja) 2016-04-15 2020-04-15 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60123936A (ja) * 1983-12-07 1985-07-02 Fujitsu Ltd バッフア記憶制御方式
JP2532300B2 (ja) * 1990-10-17 1996-09-11 三菱電機株式会社 並列処理装置における命令供給装置
JPH05289848A (ja) 1992-04-15 1993-11-05 Toshiba Corp 演算処理装置
US5664137A (en) * 1994-01-04 1997-09-02 Intel Corporation Method and apparatus for executing and dispatching store operations in a computer system
DE69530720T2 (de) 1994-03-09 2003-11-27 Sun Microsystems Inc Verzögertes Cachespeicherschreiben eines Speicherungsbefehls
JP3164732B2 (ja) 1994-07-04 2001-05-08 富士通株式会社 データ処理装置
US6484253B1 (en) * 1997-01-24 2002-11-19 Mitsubishi Denki Kabushiki Kaisha Data processor
JP3628653B2 (ja) 2000-01-19 2005-03-16 富士通株式会社 記憶制御装置及び記憶制御方法

Also Published As

Publication number Publication date
EP1622002A1 (en) 2006-02-01
US20060026399A1 (en) 2006-02-02
JP2006040143A (ja) 2006-02-09
EP1622002B1 (en) 2009-10-14
DE602004023601D1 (de) 2009-11-26
US7818545B2 (en) 2010-10-19

Similar Documents

Publication Publication Date Title
US7624253B2 (en) Determining register availability for register renaming
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
JP5635701B2 (ja) コミット時における状態アップデート実行インストラクション、装置、方法、およびシステム
JP4128551B2 (ja) 情報処理装置及びストア命令制御方法
JPH06242948A (ja) パイプライン処理計算機
US5778220A (en) Method and apparatus for disabling interrupts in a highly pipelined processor
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
EP1770507A2 (en) Pipeline processing based on RISC architecture
KR20010053623A (ko) 명령들의 철회시 물리적인 레지스터들을 선택적으로자유롭게 사용하도록 구성된 프로세서
CN110515656B (zh) 一种casp指令的执行方法、微处理器及计算机设备
CA2367324C (en) Re-order buffer managing method and processor
US5848256A (en) Method and apparatus for address disambiguation using address component identifiers
JP7020304B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP4160705B2 (ja) プロセッサ及びプロセッサシステム
US20140365751A1 (en) Operand generation in at least one processing pipeline
JP2894438B2 (ja) パイプライン処理装置
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JP2671161B2 (ja) レジスタ干渉チェック方式
JP2000181715A (ja) 命令制御装置及びその方法
JP3475861B2 (ja) データ処理装置
US20100325400A1 (en) Microprocessor and data write-in method thereof
JP2901573B2 (ja) スーパースカラー方式の情報処理装置
JPH07262009A (ja) パイプライン処理コンピュータ装置
JPH06149569A (ja) レジスタ番号変更装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080422

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080514

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees