JP4128551B2 - Information processing apparatus and store instruction control method - Google Patents
Information processing apparatus and store instruction control method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, 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)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Description
本発明は、データを主記憶上やキャッシュメモリ上の所定の記憶領域へストアするためのストア命令を実行する情報処理装置及びストア命令制御方法に関する。 The present invention relates to an information processing apparatus and a store instruction control method for executing a store instruction for storing data in a predetermined storage area on a main memory or a cache memory.
従来から、データを所定の記憶領域へストアするためのストア命令を実行する情報処理装置がある(例えば、下記特許文献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をそなえて構成されている。
Conventionally, there is an information processing apparatus that executes a store instruction for storing data in a predetermined storage area (see, for example, Patent Document 1 below).
FIG. 7 is a block diagram showing a configuration of a conventional
ここで、図7に示す従来の情報処理装置100の上記各構成要素の詳細について、その動作に基づいて説明すると、図8は図7に示す従来の情報処理装置100によるストア命令制御方法の手順(情報処理装置100の動作)を説明するためのタイムチャートである。なお、図8におけるT1〜T12は時間単位、つまり、情報処理装置100における制御クロック単位を示すものである。
Here, the details of each of the above components of the conventional
図7,図8に示すように、情報処理装置100では、まず、命令処理部10が命令キャッシュ(図示せず)に保持された命令を解読する(図8のT1参照)。このとき、命令処理部10が解読した命令がストア命令(ストア要求)であれば、命令処理部10は、解読したストア命令とともにストアすべきデータの幅(以下、ストアデータ幅という;図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),演算器20によるストア先のアドレス(以下、ストアアドレスという)計算に用いられるアドレスレジスタ21の番号(値)もしくは即値オペランド,及び当該ストア命令によってストアすべきデータ(以下、ストアデータという)を保持する演算レジスタ22の番号(値)を取得する。
As shown in FIGS. 7 and 8, in the
そして、命令処理部10は、演算器20によるストアアドレスの計算に用いられるアドレスレジスタ21が確定すると(図8のT2参照)、解読したストア命令,ストアデータ幅,及びアライン指示情報をストアポート30−0〜30−nのいずれか(ここではストアポート30−0)に発行する(図8のT3参照)。
一方、演算器20は、ストアアドレスの計算に用いられるアドレスレジスタ21が確定すると(図8のT2参照)、アドレスレジスタ21を用いてストアアドレスの計算を実行する(図8のT3参照)。なお、演算器20の計算結果として得られたストアアドレスは格納用レジスタ(ここでは、アドレスレジスタ21が汎用レジスタであるため、アドレスレジスタ21)に一旦保持される。
When the
On the other hand, when the
次に、演算器20により算出されたストアアドレスがストアポート30−0〜30−nに対して発行される(図8のT4参照)が、ここで、当該ストアアドレスは少なくともストアポート30−0〜30−nをそなえる記憶処理装置のパイプラインに投入され、パイプラインを流れることで、変換ルックアサイドバッファ(TLB:Translation Lookaside Buffer;図示せず)を用いて実際のストア先である記憶領域(ここではキャッシュメモリ60)上のアドレス(物理アドレス;以下、アドレスレジスタ21に保持されたストアアドレスと区別しない場合には、単にストアアドレスという)に変換されて、変換されたストアアドレスがストアポート30−0に発行される(図8のT4参照)。なお、アドレスレジスタ21からのストアアドレスの発行が完了すると、アドレスレジスタ21は解放されて、他の処理による利用が可能になる。
Next, the store address calculated by the
また、ストアポート30−0は、ストア命令,ストアアドレス(物理アドレス),ストアデータ幅を受け取ったことを示す情報(ここではフラグ;図7中の“VALID”,“ADRS”,“LENGTH”参照)を保持するように構成されており、ストア命令を受け取るとVALIDフラグ30aがオン状態に設定され、ストアアドレスを受け取るとADRS(Address)フラグ30bがオン状態に設定され、さらにストアデータ幅を受け取るとLENGTHフラグ30cがオン状態に設定される(図8のT5参照)。
The store port 30-0 is information indicating that a store instruction, a store address (physical address), and a store data width have been received (here, a flag; see “VALID”, “ADRS”, and “LENGTH” in FIG. 7). ) When the store instruction is received, the VALID
そして、命令処理部10は、ストア命令のストアポート30−0への発行を確認すると、演算レジスタ22が保持する当該ストア命令によりストアすべきストアデータをストアデータバッファ50−0〜50−n(ここではストアデータバッファ50−0)に発行すべく、演算レジスタ22からのストアデータの発行のロックを解除する(図8のT6参照)。つまり、従来の情報処理装置100では、演算レジスタ22の番号(値)が確定していても、ストア命令のストアポート30−0への発行が完了するまでは、演算レジスタ22からのストアデータの発行を抑止(インターロック)するように構成されている。
When the
次いで、演算レジスタ22に保持されたストアデータがストアポート30−0に対応するストアデータバッファ50−0に対して発行される(図8のT7参照)が、ここでは、まずアライン部40が、演算レジスタ22から発行されたストアデータを、ストア命令とともにストアポート30−0に対して発行されたストアデータ幅及びアライン指示情報(以下、これらをアライン情報という)を用いてアラインし(図8のT8参照)、その後、アライン部40によりアラインされたストアデータがストアデータバッファ50−0に保持される(図8のT9参照)。なお、演算レジスタ22からのストアデータの発行が完了すると、演算レジスタ22は解放されて、他の処理による利用が可能になる。
Next, the store data held in the
また、ストアポート30−0は、ストアデータバッファ50−0にストアデータが保持されているか否かを示す情報(ここではフラグ;図7中の“RSTDV”参照)を保持するように構成されており、ストアデータバッファ50−0が演算レジスタ22から発行されたストアデータを保持するとRSTDV(Received Store Date Valid)フラグ30dがオン状態に設定される(図8のT9参照)。
The store port 30-0 is configured to hold information (here, a flag; see “RSTDV” in FIG. 7) indicating whether or not store data is held in the store data buffer 50-0. When the store data buffer 50-0 holds the store data issued from the
ところで、ストアポート30−0にストアアドレスが保持されると(図8のT5参照)、命令処理部10は、ストア対象領域のページ属性を取り出し、例外の判定を行なう(図8のT6参照)。つまり、命令処理部10は、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断し、ストア可能であれば例外無しをストアポート30−0へ通知する一方、ストア不可能であれば例外有りをストアポート30−0へ通知して当該ストア命令の実行をキャンセルする。
By the way, when the store address is held in the store port 30-0 (see T5 in FIG. 8), the
なお、ストアポート30−0は、例外判定の結果(有無)を示す情報(ここではフラグ;図7中の“PSTV”参照)を保持するように構成されており、命令処理部10から受け取った例外の判定結果が例外無しであればPSTV(Post Status Valid)フラグ30eがオン状態に設定される一方、例外有りであればPSTVフラグ30eがオフ状態に設定される。
The store port 30-0 is configured to hold information (here, flag; refer to “PSTV” in FIG. 7) indicating the result (existence) of the exception determination, and is received from the
次いで、命令処理部10は、ストアポート30−0にストア命令,ストアアドレス,ストアデータの幅が保持され、当該ストア命令の例外判定の結果が例外無しであり、ストアデータがストアデータバッファ50−0に保持された状態(すなわち、VALIDフラグ30a,ADRSフラグ30b,LENGTHフラグ30c,PSTVフラグ30e,及びRSTDVフラグ30dのすべてがオン状態)になり、且つ、当該ストア命令に先行する命令がすべて完了したら、当該ストア命令が実行可能な状態であると判断して、ストアポート30−0に対してストア許可を通知する(図8のT10参照)。
Next, the
なお、ストアポート30−0は、命令処理部10からストア許可を受け取ったか否かを示す情報(ここではフラグ;図7中の“READY”参照)を保持するように構成されており、命令処理部10からストア許可を受け取ると、READYフラグ30fがオン状態に設定される。
そして、ストアポート30−0のREADYフラグ30fがオン状態に設定されると、ストア命令が実行され(図8のT11参照)、ストアポート30−0に保持されたストアアドレスに基づいて、キャッシュメモリ60における所定アドレス上に、ストアデータバッファ50−0に保持されたストアデータが書き込まれてストア命令の処理が完了する(図8のT12参照)。
The store port 30-0 is configured to hold information (here, a flag; see “READY” in FIG. 7) indicating whether or not the store permission has been received from the
When the READY
このように、従来の情報処理装置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参照)ように構成されている。
As described above, in the conventional
Therefore, as shown in FIG. 7, the conventional
つまり、従来の情報処理装置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がオン状態に設定されているためにストア命令が実行されないといったエラーを防止することができるようになっている。
ところで、上述した従来の情報処理装置100では、命令処理部10による命令の解読後、ストア命令をストアポート30−0〜30−nに対して発行するにあたっては、演算器20によるストアアドレスの計算に用いるアドレスレジスタ21の番号(値)が確定していることが必要であり、また、ストアデータをストアデータバッファ50−0〜50−nに対して発行するにあたっては、ストアデータを保持する演算レジスタ22の番号(値)が確定していることが必要であった。これらアドレスレジスタ21の番号と演算レジスタ22の番号とが確定する順序は一定ではない。
By the way, in the conventional
しかしながら、従来の情報処理装置100では、上述したように必ず先にストア命令を命令処理部10からストアポート30−0〜30−nに発行し、その後、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−nへ発行するようにインオーダーで処理を実行していたため、アドレスレジスタ21の番号が確定するよりも前に演算レジスタ22の番号が確定して当該演算レジスタ22にストアデータが保持されているような場合でも、アドレスレジスタ21の番号が確定してストア命令の発行が確認されるまでは、演算レジスタ22からのストアデータバッファ50−0〜50−nに対するストアデータの発行がロックされており、ストアデータの発行を待たなくてはならなかった。
However, in the conventional
このように、演算レジスタ22からストアデータバッファ50−0〜50−nに対するストアデータの発行が待たされる間は、当然、ストアデータを保持する演算レジスタ22の解放も待たされるため、その間は演算レジスタ22を他の演算に使用することができず、演算レジスタ22の使用効率が落ちていた。
本発明は、このような課題に鑑み創案されたもので、ストア命令を実行するにあたり、ストアデータを保持する演算レジスタの使用効率を向上できるようにすることを目的とする。
In this way, while waiting for the issuance of store data from the
The present invention has been devised in view of such problems, and an object of the present invention is to improve the use efficiency of an arithmetic register that holds store data when executing a store instruction.
上記目的を達成するために、本発明の情報処理装置は、命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記命令処理部が、前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させるように構成され、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴としている(請求項1)。 In order to achieve the above object, an information processing apparatus of the present invention includes an instruction processing unit that decodes an instruction and issues a processing instruction, and performs an operation according to the operation instruction issued as the processing instruction from the instruction processing unit. An arithmetic unit to be executed, an arithmetic register that holds an arithmetic result by the arithmetic unit, and the arithmetic result that is issued as the processing instruction from the instruction processing unit and stored in the arithmetic register is stored in a predetermined storage area A store port for storing the store instruction and a store data buffer for temporarily storing the operation result issued as store data from the operation register, and the instruction processing unit, in response to the store instruction, When the operation register holding the operation result is confirmed, the operation result is stored as the store data from the operation register to the store data buffer. The store port holds a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in the store data buffer. And a reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port, and before the store instruction is retained in the store port, When the store data is held in the store data buffer, the reset unit is prevented from setting the store data holding flag to an off state when the store instruction is held in the store port, and the store data buffer stores the store data. And a deterrence part that maintains the ON state of the data retention flag. It is set to (claim 1).
さらに、前記演算レジスタから前記ストアデータとして発行された前記演算結果をアラインするアライン部をそなえ、前記命令処理部が、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともにアラインに必要なアライン情報と当該アライン情報を前記アライン部で使用するか否かを示す使用/不使用情報とを発行するように構成され、前記アライン部で使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択するアライン情報選択部をさらにそなえて構成されることが好ましい(請求項2)。 Further, an alignment unit for aligning the operation result issued as the store data from the operation register is provided, and the instruction processing unit issues the operation result as the store data from the operation register to the store data buffer. When performing the operation, it is configured to issue alignment information necessary for alignment together with the calculation result and use / non-use information indicating whether or not the alignment information is used in the alignment unit, and use the alignment information in the alignment unit. An alignment information selection unit is further provided for selecting the alignment information from the alignment information issued together with the store data and the alignment information included in the store instruction based on the use / non-use information. (Claim 2).
このとき、前記命令処理部が、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することが好ましい(請求項3)。 At this time, after the instruction processing unit issues the store instruction to the store port, the operation result is issued from the operation register to the store data buffer as the store data. / While setting the non-use information to non-use, the operation result is issued from the operation register to the store data buffer as the store data before the store instruction is issued to the store port. In such a case, it is preferable to set the use / non-use information to use (claim 3).
また、前記ストア命令の実行をキャンセルするキャンセル部をそなえ、該キャンセル部が、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応する前記ストアデータ保持フラグがオフ状態に設定されることが好ましい(請求項4)。 A cancel unit for canceling execution of the store instruction; the cancel unit after the store data is issued to the store data buffer; and the store instruction corresponding to the store data is When canceling the store instruction before it is issued to the store port, the store data held in the store data buffer is deleted and the store data holding flag corresponding to the store data is set. It is preferably set to an off state (claim 4).
なお、前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをそなえ、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータが前記ストアデータバッファから前記ストアフェッチバイパスへ投入されることが好ましい(請求項5)。 Note that when a fetch instruction is issued from the instruction processing unit, a fetch bus for inputting data to be fetched by the fetch instruction from the predetermined storage area to the arithmetic unit or the arithmetic register, and the store data The fetch instruction uses the store data held in the store data buffer by providing store fetch bypass to directly input the store data held in the buffer from the store data buffer to the fetch bus. In this case, it is preferable that the store data is input from the store data buffer to the store fetch bypass.
また、上記目的を達成するために、本発明のストア命令制御方法は、命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、前記命令処理部により、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させ、前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴としている(請求項6)。 In order to achieve the above object, the store instruction control method of the present invention includes an instruction processing unit that decodes an instruction and issues a processing instruction, and an arithmetic instruction issued as the processing instruction from the instruction processing unit. An arithmetic unit that executes an arithmetic operation, an arithmetic register that holds an arithmetic result by the arithmetic unit, and is issued as the processing instruction from the instruction processing unit, and the arithmetic result held in the arithmetic register is stored in a predetermined storage area A store port for storing a store instruction for storing; and a store data buffer for temporarily storing the operation result issued as store data from the operation register, wherein the store port is stored in the store data buffer. When the store data corresponding to the store instruction is held, a store data holding flag that is set to an on state is held. A store instruction control method for controlling execution of the store instruction issued from the instruction processing unit in the configured information processing apparatus, wherein the instruction processing unit holds the operation register holding the operation result. Then, the calculation result is issued as the store data from the calculation register to the store data buffer, and the store instruction is held in the store port before the store data is held in the store data buffer. When the store instruction is held in the store port, the store data holding flag is set to an off state, while the store data is stored before the store instruction is held in the store port. Is stored in the store data buffer, the store instruction is stored in the store port. Said store data hold flag to suppress setting to the off state when it is held, is characterized by maintaining the ON state of said store data hold flag (claim 6).
さらに、前記命令処理部により、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともに当該演算結果のアラインに必要なアライン情報、及び当該アライン情報を前記アラインに際して使用するか否かを示す使用/不使用情報とを発行し、前記アラインに際して使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択することが好ましい(請求項7)。 Further, when the instruction processing unit issues the operation result as the store data from the operation register to the store data buffer, alignment information necessary for aligning the operation result together with the operation result, and the alignment Use / non-use information indicating whether or not information is used for the alignment is issued, and the alignment information used for the alignment is issued together with the store data based on the use / non-use information. It is preferable to select from the alignment information and the alignment information included in the store instruction.
このとき、前記命令処理部により、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することが好ましい(請求項8)。 At this time, when the operation result is issued from the operation register to the store data buffer as the store data after the store instruction is issued to the store port by the instruction processing unit, the use is performed. / While setting the non-use information to non-use, the operation result is stored as the store data from the operation register before the store instruction is issued to the store port by the instruction processing unit. In the case of issuing to the buffer, it is preferable to set the use / non-use information to use.
また、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータを削除するとともに、当該ストアデータに対応する前記ストアデータ保持フラグをオフ状態に設定することが好ましい(請求項9)。 The store instruction is canceled after the store data is issued to the store data buffer and before the store instruction corresponding to the store data is issued to the store port. Preferably, the store data held in the store data buffer is deleted, and the store data holding flag corresponding to the store data is set to an off state (claim 9).
なお、前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをさらにそなえて構成された前記情報処理装置において、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータを前記ストアデータバッファから前記ストアフェッチバイパスへ投入することが好ましい(請求項10)。 Note that when a fetch instruction is issued from the instruction processing unit, a fetch bus for inputting data to be fetched by the fetch instruction from the predetermined storage area to the arithmetic unit or the arithmetic register, and the store data In the information processing apparatus further comprising a store fetch bypass for directly inputting the store data held in the buffer from the store data buffer to the fetch bus, the store data is held in the store data buffer. When the store instruction uses the store data, it is preferable that the store data is input from the store data buffer to the store fetch bypass.
このように、本発明によれば、演算レジスタが確定すると、ストア命令のストアポートへの発行状況に関わらず、演算レジスタから演算結果をストアデータとしてストアデータバッファに対して発行させ、ストア命令がストアポートに保持されるよりも先にストアデータがストアデータバッファに保持された場合には、ストア命令がストアポートに保持された時点でストアデータ保持フラグがオフ状態に設定されることなくオン状態に維持されるため、ストア命令をストアポートに発行するよりも先にストアデータをストアデータバッファに対して発行させた場合でも、当該ストア命令を確実に実行することができる(請求項1,6)。 Thus, according to the present invention, when the operation register is determined, the operation result is issued from the operation register to the store data buffer as store data regardless of the issue status of the store instruction to the store port. If the store data is held in the store data buffer before being held in the store port, the store data holding flag is not set in the off state when the store instruction is held in the store port. Therefore, even when the store data is issued to the store data buffer before the store instruction is issued to the store port, the store instruction can be reliably executed. ).
したがって、従来の情報処理装置のように、演算レジスタが確定しているにも関わらず、演算レジスタからのストアデータの発行を、ストア命令の発行が完了するのを確認するまで待たなくてもよくなり、演算レジスタが確定した時点ですぐに演算レジスタからストアデータ(演算結果)を発行させることにより、演算レジスタからストアデータを早く発行させた分だけ、演算レジスタを早く解放して他の処理に割り当てることが可能になり、演算レジスタの使用効率を向上させることができる(請求項1,6)。 Therefore, unlike the conventional information processing apparatus, it is not necessary to wait for the issuance of store data from the operation register until it is confirmed that the store instruction is issued, even though the operation register is fixed. As soon as the calculation register is determined, store data (calculation result) is issued from the calculation register, and the calculation register is released as soon as the store data is issued from the calculation register as soon as possible. This makes it possible to improve the usage efficiency of the arithmetic registers.
また、演算レジスタからストアデータとして発行された演算結果をアラインする場合でも、ストアデータとともにアライン情報と使用/不使用情報が発行され、かかる使用/不使用情報に基づいてアラインが確実に行なわれ(請求項2,7)、ストア命令をストアポートに対して発行するよりも先にストアデータを演算レジスタからストアデータバッファに対して発行させる場合には、かかる使用/不使用情報を使用に設定するため、ストア命令をストアポートに発行するよりも先にストアデータをストアデータバッファに対して発行させた場合でも、アラインを確実に実行することができ、その結果、ストア命令を確実に実行することができる(請求項3,8)。 Even when the operation result issued as store data from the operation register is aligned, alignment information and use / non-use information are issued together with the store data, and alignment is reliably performed based on the use / non-use information ( Claims 2 and 7) When the store data is issued from the operation register to the store data buffer before the store instruction is issued to the store port, such use / nonuse information is set to use. Therefore, even if store data is issued to the store data buffer before issuing a store instruction to the store port, alignment can be executed reliably, and as a result, the store instruction must be executed reliably. (Claims 3 and 8).
さらに、ストアデータがストアデータバッファに対して発行された後であって、当該ストアデータに対応するストア命令がストアポートに対して発行される前に、ストア命令をキャンセルする場合には、ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応するストアデータ保持フラグがオフ状態に設定されるため、キャンセルを実行したにも関わらずストアポートのストアデータ保持フラグがオン状態のままになり、キャンセル実行後に当該ストアポートに保持されたストア命令が、ストアデータが既に保持されていると誤認して、誤って実行されることを防止することができ、キャンセル実行後のストア命令を確実に実行することができる(請求項4,9)。 Further, in the case where the store instruction is canceled after the store data is issued to the store data buffer and before the store instruction corresponding to the store data is issued to the store port, the store data The store data held in the buffer is deleted, and the store data holding flag corresponding to the store data is set to the off state, so that the store data holding flag of the store port is turned on despite the cancellation. It is possible to prevent the store instruction held in the store port after the cancel execution from being mistakenly executed as the store data is already held and being executed erroneously. The store instruction can be executed reliably (claims 4 and 9).
また、フェッチ命令が、ストア命令に使用するストアデータをフェッチする場合であっても、かかるフェッチ命令を、ストアフェッチバイパスを用いて早期に実行することができる(請求項5,10)。 Further, even when the fetch instruction fetches store data used for the store instruction, the fetch instruction can be executed at an early stage using the store fetch bypass (claims 5 and 10).
以下、図面を参照しながら本発明の実施の形態について説明する。
〔1〕本発明の第1実施形態について
〔1−1〕情報処理装置の構成について
まず、本発明の第1実施形態としての情報処理装置の構成について説明する。図1は本発明の第1実施形態としての情報処理装置の構成を示すブロック図である。なお、図1において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示している。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[1] Regarding the First Embodiment of the Present Invention [1-1] Regarding the Configuration of the Information Processing Apparatus First, the configuration of the information processing apparatus as the first embodiment of the present invention will be described. FIG. 1 is a block diagram showing a configuration of an information processing apparatus as a first embodiment of the present invention. In FIG. 1, the same reference numerals as those described above indicate the same or almost the same parts.
図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をそなえて構成されている。
As shown in FIG. 1, the information processing apparatus 1 according to the first embodiment of the present invention includes an
命令処理部10は、命令キャッシュ(図示せず)に保持された命令を解読して処理命令を発行するものであり、命令処理部10は解読した命令がストア命令(ストア要求)である場合には、命令を解読することにより、ストア命令とともにストアデータ幅(図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),後述する演算器20によるストア先のアドレス(以下、ストアアドレスという)計算に用いられるアドレスレジスタ21の番号(値),及び後述するストアデータを保持する演算レジスタ22の番号(値)を取得する。
The
演算器20は、命令処理部10から処理命令として発行された演算命令に応じて演算を実行するとともに、命令処理部10から処理命令として発行されたストア命令に基づく、当該ストア命令によりストアすべき所定の記憶領域(ここではキャッシュメモリ60)上のアドレス計算を後述するアドレスレジスタ21を用いて実行するものである。
アドレスレジスタ21は、演算器20によるストア先のアドレス計算に用いられるとともに、かかる計算の結果としてのストアアドレスを一時的に保持するものである。
The
The
演算レジスタ22は、演算器20による演算に用いられるとともに、かかる演算の結果得られたストアデータを一時的に保持するものである。なお、演算器20,アドレスレジスタ21,及び演算レジスタ22から演算部が構成される。
ストアポート30−0〜30−nは、命令処理部10から処理命令として発行され、演算レジスタ22に保持された演算結果(ストアデータ)を所定の記憶領域(ここではキャッシュメモリ60)にストアするためのストア命令を保持するものである。
The
The store ports 30-0 to 30-n store operation results (store data) issued as processing instructions from the
つまり、命令処理部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をそなえて構成されている。
That is, the
The store ports 30-0 to 30-n have a
VALIDフラグ30aは、ストアポート30−0〜30−nが命令処理部10から発行されたストア命令を受け取ったか否かを示す情報であり、ストア命令を受け取るとオン状態に設定される。
ADRS(Address)フラグ30bは、ストアポート30−0〜30−nがアドレスレジスタ21からストアアドレスを受け取ったか否かを示す情報であり、ストアアドレスを受け取るとオン状態に設定される。
The
The ADRS (Address)
LENGTHフラグ30cは、ストアポート30−0〜30−nが命令処理部10からストア命令とともに発行されたストアデータ幅を受け取ったか否かを示す情報であり、ストアデータ幅を受け取るとオン状態に設定される。
RSTDVフラグ30dは、ストアポート30−0〜30−nのそれぞれに対応した後述するストアデータバッファ50−0〜50−nが演算レジスタ22からストアデータを受け取ったか否かを示す情報であり、ストアデータバッファ50−0〜50−nにストアデータが保持された場合にオン状態に設定される。
The
The
PSTVフラグ30eは、命令処理部10がストア対象領域(所定の記憶領域;ここではキャッシュメモリ60)のページ属性を取り出し、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断する例外判定の結果を示す情報であり、かかる例外判定の結果が例外無し(ストア可能)であればオン状態に設定される。なお、命令処理部10による例外判定を行なうタイミングについては、図3を参照しながら後述する。
In the
READYフラグ30fは、命令処理部10がストアポート30−0〜30−nに保持されたストア命令が実行可能な状態であると判断して、当該ストア命令を実行させるべく、ストアポート30−0〜30−nに対して通知するストア許可を、ストアポート30−0〜30−nが受け取ったか否かを示す情報であり、命令処理部10からストア許可を受け取るとオン状態に設定される。
The
アライン部40は、演算レジスタ22からストアデータとして発行された演算結果を、命令処理部10からストア命令とともに発行されたストアデータの幅(図中LENGTHと表記)とストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記)とからなるアライン情報、もしくは、演算レジスタ22から発行されるストアデータに付随して発行されたアライン情報を用いてストアデータをアラインするものである。
The
アライン情報選択部41は、アライン部40でアラインに用いるアライン情報を、ストアデータに付随して発行されたアライン情報とともに発行された使用/不使用情報(図中CODE−VALIDと表記)に基づいて、命令処理部10からストア命令とともに発行されたアライン情報と、ストアデータに付随して発行されたアライン情報とから選択するものである。
The alignment
つまり、命令処理部10は、ストア命令をストアポート30−0〜30−nに対して発行する際に、当該ストア命令とともに前記アライン情報も発行するとともに、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−nに対して発行させる際に、当該ストアデータに付随して前記アライン情報と使用/不使用情報とを発行させる。
That is, when issuing the store instruction to the store ports 30-0 to 30-n, the
ストアデータバッファ50−0〜50−nは、命令処理部10により演算レジスタ22からストアデータとして発行され、アライン部40によってアラインされたストアデータを一時的に保持するものである。
命令処理部10は、ストア命令に基づいて演算レジスタ22に保持された演算結果をストアデータとしてストアデータバッファ50−0〜50−nに対して発行させるように構成されており、解読したストア命令に応じて、当該ストア命令によってストアすべき演算結果が保持された演算レジスタ22が確定すると(つまり、指定された演算レジスタ22に演算結果が保持されたら)、当該ストア命令のストアポート30−0〜30−nへの発行状況(発行したか否か)に関わらず、当該演算結果を演算レジスタ22からストアデータとして発行させる(後述する図3のT4参照)。
The store data buffers 50-0 to 50-n are temporarily stored as store data issued from the
The
なお、ストアデータバッファ50−0〜50−nとストアポート30−0〜30−nとはそれぞれ1対1で対応しており、命令処理部10は、ストア命令を発行するにあたり、いずれの対のストアポート及びストアデータバッファを用いるかを指定する。また、少なくともストアポート30−0〜30−n,アライン部40,ストアデータバッファ50−0〜50−n,及びキャッシュメモリ60から記憶制御装置が構成される。
Note that the store data buffers 50-0 to 50-n and the store ports 30-0 to 30-n have a one-to-one correspondence, and the
フェッチバス70は、命令処理部10が解読した処理命令がフェッチ命令であった場合に、命令処理部10から発行された当該フェッチ命令のフェッチ対象であるデータを所定の記憶領域(ここではキャッシュメモリ60)から前記演算部へ投入するためのバスである。
ストアフェッチバイパス71は、命令処理部10から発行されたフェッチ命令がストアデータバッファ50−0〜50−nに保持されているストアデータを使用する場合に、当該ストアデータをストアデータバッファ50−0〜50−nからフェッチバスへ直接投入するためのバスである。
When the processing instruction decoded by the
When the fetch instruction issued from the
ここで、命令処理部10は、解読した命令がフェッチ命令であった場合に、所定の条件を満たす場合には、ストアフェッチバイパス71を用いてフェッチを実行するように構成されており、例えば、ストアデータバッファ50−0〜50−nに保持されているストアデータを、当該ストアデータを用いるストア命令よりも後続のフェッチ命令が使用する場合には、当該ストア命令実行前に、ストアデータバッファ50−0〜50−nから当該ストアデータをストアフェッチバイパス71へ投入する。
Here, the
キャンセル部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は図の簡略化のためここでは省略している。
The cancel
FIGS. 2A and 2B are diagrams for explaining cancellation of execution of a store instruction by the cancel
図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をオフ状態にリセットするとともに、ストア命令が保持されている場合にはストア命令を削除する。
As shown in FIG. 2A, when an event for canceling execution of the store instruction occurs, the cancel
一方、図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にストアデータが保持されていれば、保持されているストアデータをキャンセル(削除)する。
On the other hand, as shown in FIG. 2B, in the store data buffers 50-0 to 50-n, the cancel
したがって、ストアデータがストアデータバッファ50−0〜50−nに対して発行された後であって、当該ストアデータに対応するストア命令がストアポート30−0〜30−nに対して発行される前[つまり、図2(a),(b)中のストアポート30−4及びストアデータバッファ50−4の状態]において、ストア命令がキャンセルされる場合には、キャンセル部80は、ストアデータバッファ50−4に保持されたストアデータを削除するとともに、対応するストアポート30−4のRSTDVフラグ30fをオフ状態にリセット(設定)するようになっている。
Therefore, after the store data is issued to the store data buffers 50-0 to 50-n, a store instruction corresponding to the store data is issued to the store ports 30-0 to 30-n. When the store instruction is canceled before [that is, the state of the store port 30-4 and the store data buffer 50-4 in FIGS. 2A and 2B], the cancel
リセット部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のオン状態を維持するものである。
The
The
上述したように、本情報処理装置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への発行とが、アウトオブオーダーで実行されるようになっている。
As described above, in the information processing apparatus 1, the
このように、本情報処理装置1では、ストア命令がストアポート30−0〜30−nに保持されるより先にストアデータがストアデータバッファ50−0〜50−nに保持される場合があるため、このような場合に、ストア命令に使用されるストアデータがストアデータバッファ50−0〜50−nに既に保持されているにも関わらず、ストア命令がストアポート30−0〜30−nに保持された時点でリセット部81によりRSTDVフラグ30dがオフ状態にリセットされることを抑止すべく、抑止部82がそなえられている。
As described above, in the information processing apparatus 1, the store data may be held in the store data buffers 50-0 to 50-n before the store instruction is held in the store ports 30-0 to 30-n. Therefore, in such a case, although the store data used for the store instruction is already held in the store data buffers 50-0 to 50-n, the store instruction is stored in the store ports 30-0 to 30-n. In order to prevent the
〔1−2〕ストア命令制御方法(情報処理装置1の動作)について
次に、本発明の第1実施形態としてのストア命令制御方法(情報処理装置1の動作)について説明する。
〔1−2−1〕ストアデータの発行がストア命令の発行よりも先に実行される場合について
図3は本発明の第1実施形態としてのストア命令制御方法(ストアデータの発行がストア命令の発行よりも先に実行される場合)の手順を示すタイムチャートである。なお、図3においてT1〜T12は時間単位、つまり、情報処理装置1における制御クロック単位を示すものである。
[1-2] Store Instruction Control Method (Operation of Information Processing Apparatus 1) Next, a store instruction control method (operation of the information processing apparatus 1) according to the first embodiment of the present invention will be described.
[1-2-1] Case in which issuance of store data is executed prior to issuance of store instruction FIG. 3 shows a store instruction control method according to the first embodiment of the present invention. It is a time chart which shows the procedure of the case where it performs before issue. In FIG. 3, T1 to T12 indicate time units, that is, control clock units in the information processing apparatus 1.
図3に示すように、情報処理装置1では、まず、命令処理部10が命令キャッシュ(図示せず)に保持された命令を解読する(図3のT1参照)。このとき、命令処理部10が解読した命令がストア命令(ストア要求)であれば、命令処理部10は、解読したストア命令とともにストアデータ幅(図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),演算器20によるストア先のアドレス計算に用いられるアドレスレジスタ21の番号(値),及び当該ストア命令によってストアすべきストアデータが保持される演算レジスタ22の番号(値)を取得する。
As shown in FIG. 3, in the information processing apparatus 1, first, the
ここで、命令解読後、演算器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が占有されていることなどによる。
Here, after the instruction is decoded, before the
このとき、命令処理部10は、演算レジスタ22から発行されるストアデータに付随してアライン情報(ストアデータ幅及びアライン指示情報)が発行されるようにするとともに、当該アライン情報をアライン部40で使用するか否かを示す使用/不使用情報(CODE−VALID)がストアデータに付随して発行されるようする(図3のT3参照)。なお、命令処理部10は、演算レジスタ22からのストアデータの発行が、ストア命令が発行されるより先に実行される場合には、使用/不使用情報が使用に設定されて発行されるようにする。なお、演算レジスタ22は、ストアデータの発行が完了すると解放されて他の処理による利用が可能になる。
At this time, the
そして、アライン情報選択部41が、アライン部40で使用するアライン情報を、使用/不使用情報に基づいて、ストア命令とともに発行されるアライン情報とストアデータに付随して発行されるアライン情報とから選択するが、ここでは使用/不使用情報が使用に設定されているため、アライン情報選択部41は、ストアデータに付随して発行されるアライン情報を選択し、この選択されたアライン情報を用いてアライン部40が演算レジスタ22から発行されたストアデータをアラインする(図3のT4参照)。
Then, the alignment
次いで、アラインされたストアデータは、ストアデータバッファ50−0に保持されて、ストアポート30−0のRSTDVフラグがオン状態に設定される(図3のT5参照)。
一方、演算器20によるストアアドレスの計算に用いられるアドレスレジスタ21が確定すると(図3のT3参照)、演算器20が、アドレスレジスタ21を用いてストアアドレスの計算を実行する(図3のT4参照)。なお、演算器20の計算結果として得られたストアアドレスはアドレスレジスタ21に一旦保持される。
Next, the aligned store data is held in the store data buffer 50-0, and the RSTDV flag of the store port 30-0 is set to the on state (see T5 in FIG. 3).
On the other hand, when the
このとき、命令処理部10は、解読したストア命令をストアデータ幅及びアライン指示情報とともにストアポート30−0に対して発行する(図3のT4参照)。
そして、演算器20により算出されアドレスレジスタ21に保持されたストアアドレスがストアポート30−0に対して発行される(図3のT5参照)。ここで、当該ストアアドレスは少なくともストアポート30−0〜30−nをそなえる記憶処理装置のパイプラインに投入され、パイプラインを流れることで、変換ルックアサイドバッファ(TLB:Translation Lookaside Buffer;図示せず)を用いて実際のストア先である記憶領域(ここではキャッシュメモリ60)上のアドレス(物理アドレス;以下、アドレスレジスタ21に保持されたストアアドレスと区別しない場合には、単にストアアドレスという)に変換されて、変換されたストアアドレスがストアポート30−0に発行される。
At this time, the
Then, the store address calculated by the
なお、アドレスレジスタ21は、ストアアドレスの発行が完了すると解放されて他の処理による利用が可能になる。
次に、ストアポート30−0がストア命令,ストアアドレス(物理アドレス),及びストアデータ幅を受け取ると、VALIDフラグ30a,ADRSフラグ30b,及びLENGTHフラグ30cがオン状態に設定される(図3のT6参照)。
Note that the
Next, when the store port 30-0 receives a store instruction, a store address (physical address), and a store data width, the
このとき、対応するストアデータバッファ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に投入することにより、かかるフェッチ命令を早期に完了させる。
At this time, since the store data is already stored in the corresponding store data buffer 50-0, the
When the store port 30-0 receives the store data width together with the store instruction, the
ところで、ストアポート30−0にストアアドレスが保持されると(図3のT6参照)、命令処理部10は、ストア対象領域のページ属性を取り出し、例外の判定を行なう(図3のT7参照)。つまり、命令処理部10は、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断し、ストア可能であれば例外無しをストアポート30−0へ通知する一方、ストア不可能であれば例外有りをストアポート30−0へ通知して当該ストア命令の実行をキャンセルする。
By the way, when the store address is held in the store port 30-0 (see T6 in FIG. 3), the
ここでは、例外判定の結果が例外無しであるため、ストアポート30−0のPSTVフラグ30eがオン状態に設定される。
次いで、命令処理部10は、ストアポート30−0にストア命令,ストアアドレス,ストアデータの幅が保持され、当該ストア命令の例外判定の結果が例外無しであり、ストアデータがストアデータバッファ50−0に保持された状態(すなわち、VALIDフラグ30a,ADRSフラグ30b,LENGTHフラグ30c,PSTVフラグ30e,及びRSTDVフラグ30dのすべてがオン状態)になり、且つ、当該ストア命令に先行する命令がすべて完了したら、当該ストア命令が実行可能な状態であると判断して、ストアポート30−0に対してストア許可を通知する(図3のT10参照)。
Here, since the exception determination result is no exception, the
Next, the
なお、このとき、ストアポート30−0のREADYフラグ30fはオン状態に設定される。
そして、ストアポート30−0のREADYフラグ30fがオン状態に設定されると(図3のT10参照)、ストア命令が実行され(図3のT11参照)、ストアポート30−0に保持されたストアアドレスに基づいて、キャッシュメモリ60における所定アドレス上に、ストアデータバッファ50−0に保持されたストアデータが書き込まれてストア命令の処理が完了する(図3のT12参照)。
At this time, the
When the
〔1−2−2〕ストアデータの発行がストア命令の発行後に実行される場合について
図4は本発明の第1実施形態としてのストア命令制御方法(ストアデータの発行がストア命令の発行後に実行される場合)の手順を示すタイムチャートである。なお、図4においてT1〜T12は時間単位、つまり、情報処理装置1における制御クロック単位を示すものである。
[1-2-2] Case in which issuance of store data is executed after issuance of store instruction FIG. 4 shows a store instruction control method according to the first embodiment of the present invention. It is a time chart which shows the procedure of a case where it is performed. In FIG. 4, T1 to T12 indicate time units, that is, control clock units in the information processing apparatus 1.
上述したように、本発明の第1実施形態としての情報処理装置1(図1参照)では、命令処理部10によるストア命令のストアポート30−0〜30−nに対する発行と、ストアデータの演算レジスタ22からストアデータバッファ50−0〜50−nに対する発行との発行順序を、アウトオブオーダーで実行することができる。以降、図4を参照しながら命令処理部10によるストアデータの発行がストア命令の発行後に実行される場合について説明するが、ここでは、図3を参照しながら上述した、ストアデータの発行がストア命令の発行より先に実行される場合とは異なる動作を中心に説明し、重複する動作についてはその説明を省略する。
As described above, in the information processing apparatus 1 (see FIG. 1) as the first embodiment of the present invention, the
図4に示す例では、命令処理部10による命令解読(図4のT1参照)後、まずアドレスレジスタ21が確定する(図4のT2参照)。その後、確定したアドレスレジスタ21を用いて演算器20がアドレス計算を実行するとともに、命令処理部10がストアポート30−0〜30−n(ここでは、ストアポート30−0)に対してストア命令を発行するのと同時に、演算レジスタ22が確定する(図4のT3参照)。
In the example shown in FIG. 4, after the instruction is decoded by the instruction processing unit 10 (see T1 in FIG. 4), the
そして、命令処理部10は、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−n(ここでは、ストアデータバッファ50−0)に対して発行するとともに、アライン情報及び使用/不使用情報(CODE−VALID)を発行させるが、ここでは、ストアデータの発行が実行されるよりも前にストア命令の発行が実行されているため、命令処理部10は、使用/不使用情報を不使用に設定して発行させる(図4のT4参照)。
Then, the
したがって、アライン情報選択部41は、使用/不使用情報に基づいてストア命令に付随して発行されたアライン情報を選択し、アライン部は選択されたストア命令に付随したアライン情報を用いて、ストアデータをアラインする(図4のT5参照)。
一方、ストアポート30−0にストア命令が保持されると、ここでは、ストアデータがストアデータバッファ50−0に保持されるよりも先にストア命令がストアポート30−0に保持されるため、抑止部82がリセット部81によるRSTDVフラグ30dのリセットを抑止することなく、リセット部81がRSTDVフラグ30dを一旦オフ状態に設定(リセット)する(図4のT5参照)。
Therefore, the alignment
On the other hand, when the store instruction is held in the store port 30-0, the store instruction is held in the store port 30-0 before the store data is held in the store data buffer 50-0. The suppressing
そして、その後ストアデータがストアデータバッファ50−0に保持されると、RSTDVフラグ30dがオン状態に設定される(図4のT6参照)。
なお、例外判定後(図4のT6参照)、ストア命令が実行されてストアデータがキャッシュメモリメモリ60に格納されるまでの動作(図4のT7〜T12参照)は、図3を参照しながら上述した場合と同様である。
After that, when the store data is held in the store data buffer 50-0, the
After the exception determination (see T6 in FIG. 4), the operations (see T7 to T12 in FIG. 4) from when the store instruction is executed until the store data is stored in the
〔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に対して発行させた場合でも、当該ストア命令を確実に実行することができる。
[1-3] Effects of the information processing apparatus 1 and the store instruction control method as the first embodiment of the present invention As described above, according to the information processing apparatus 1 and the store instruction control method of the first embodiment of the present invention. For example, when the
したがって、上記図7に示す従来の情報処理装置100のように、演算レジスタ22が確定しているにも関わらず、演算レジスタ22からのストアデータの発行を、ストア命令の発行を確認する(図8のT7参照)まで待たなくてもよくなり、演算レジスタ22が確定した時点ですぐに演算レジスタ22からストアデータ(演算結果)を発行させることができるため(図3のT3及び図4のT4参照)、従来の情報処理装置100よりも演算レジスタ22をより早期に(図3に示す例では3制御クロック単位分、図4に示す例では2制御クロック単位分早く)解放して、演算レジスタ22を他の処理に割り当てることが可能になる。つまり、演算レジスタ22の使用効率を向上させることができる。
Therefore, as in the conventional
また、上記図3,図4では、命令処理部10がストア許可を通知するタイミングが、上記図8に示す従来の情報処理装置100におけるタイミングと同じタイミング(図3,図4のT10及び図8のT10参照)である場合を例に挙げて説明したが、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法によれば、当該ストア命令に先行する命令が完了するタイミングによっては、ストア許可を通知できるタイミングを早める(図3に示す例ではT8のタイミング、図4に示す例ではT9のタイミングまで早める)ことができる。
3 and 4, the timing at which the
つまり、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法では、ストア命令の発行とストアデータの発行との発行順序をアウトオブオーダーに実行することができるため、アドレスレジスタ21と演算レジスタ22とが確定するタイミングが早ければ早いほど、ストア命令の実行タイミングを前倒しすることが可能になる。したがって、ストア許可の発行タイミング(ストア命令の実行タイミング)によっては、情報処理装置1の処理性能を向上させることが可能になる。
That is, in the information processing apparatus 1 and the store instruction control method according to the first embodiment of the present invention, the issuance order of the store instruction and the store data can be executed out-of-order. The earlier the timing at which the
なお、ストア命令の実行タイミングが最も早くなるのは、命令処理部10による命令解読後すぐに(つまり、図3,図4のT2のタイミングで)、アドレスレジスタ21と演算レジスタ22とが共に確定した場合であり、この場合には、ストア命令の実行タイミングを図3,図4のT9のタイミングに前倒しすることが可能になり、情報処理装置1の処理性能を向上させることが可能になる。
Note that the execution timing of the store instruction is the earliest after the
また、本発明の第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を用いて確実に実行することができる。
Further, according to the information processing apparatus 1 and the store instruction control method as the first embodiment of the present invention, as described above, the
さらに、本発明の第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をオフ状態に設定する。
Furthermore, in the information processing apparatus 1 and the store instruction control method according to the first embodiment of the present invention, after store data is issued to the store data buffers 50-0 to 50-n, the store data is stored in the store data. When the event that the store instruction is canceled occurs before the corresponding store instruction is issued to the store ports 30-0 to 30-n [the store port 30-4 in FIG. 2A and FIG. b), the cancel
これにより、キャンセル部80によるキャンセル実行後に当該ストアポート30−4に対してストアデータがストアデータバッファ50−4に保持されるよりも前にストア命令が保持されても、対応するストアデータバッファ50−4のRSTDVフラグ30dはオフ状態に設定されているため、キャンセル部80によるキャンセル実行後のストア命令を確実に実行することができる。つまり、ストアポート30−4のRSTDVフラグ30dがオン状態のままになり、ストアデータがストアデータバッファ50−4に保持されていると誤認して、キャンセル部80によるキャンセル実行後のストア命令が誤って実行されることを防止することができる。
Thereby, even if a store instruction is held before the store data is held in the store data buffer 50-4 for the store port 30-4 after cancellation by the cancel
〔2〕本発明の第2実施形態について
次に、本発明の第2実施形態について説明すると、図5は本発明の第2実施形態としての情報処理装置1′の構成を示すブロック図である。なお、図5において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示している。
図5に示すように、本発明の第2実施形態としての情報処理装置1′では、ストア命令の発行とストアデータの発行との発行順序を、ストア命令の発行が必ず先行するインオーダーの実行(第1の態様)と、ストアデータの発行をストア命令の発行状況に関わらず実行するアウトオブオーダーの実行(第2の態様)とで切り替えるべく、切替部83がそなえられている点を除いては、上記図1に示す第1実施形態の情報処理装置1と同様に構成されている。したがって、ここでは上記第1実施形態の情報処理装置1と共通部分については、その詳細な説明を省略する。
[2] Second Embodiment of the Present Invention Next, a second embodiment of the present invention will be described. FIG. 5 is a block diagram showing a configuration of an information processing apparatus 1 'as a second embodiment of the present invention. . In FIG. 5, the same reference numerals as those described above indicate the same or almost the same parts.
As shown in FIG. 5, in the information processing apparatus 1 ′ as the second embodiment of the present invention, the issue order of the store instruction and the issue of the store data is executed according to the in-order execution in which the issue of the store instruction always precedes. (
本発明の第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;図示せず)によりインオーダーの処理とアウトオブオーダーの処理とを切り替え可能に構成されている。
The information processing apparatus 1 ′ according to the second embodiment of the present invention includes a
切替部83の切り替えによりインオーダーの処理を実行する、つまり、切替部83によりインオーダーの処理を選択する場合には、命令処理部10は、ストア命令のストアポート30−0〜30−nに対する発行が完了するまでは、演算レジスタ22からのストアデータの発行をインターロックするとともに、ストアポート30−0〜30−nにストア命令が保持されると、リセット部81によりRSTDVフラグ30dをオフ状態に設定(リセット)させる。
When in-order processing is executed by switching of the switching
このとき、命令処理部10は、ストアデータの発行とともにアライン情報及び使用/不使用情報を発行させるが、使用/不使用情報を不使用に設定する。
なお、インオーダーの処理を実行する場合には、命令処理部10が、ストアデータの発行とともにアライン情報及び使用/不使用情報を発行させないように構成してもよい。
一方、切替部83の切り替えによりアウトオブオーダーの処理を実行する、つまり、切替部83によりアウトオブオーダーの処理を選択する場合には、命令処理部10は、演算レジスタ22からのストアデータの発行についてのインターロックを常に解除して、ストア命令のストアポート30−0〜30−nへの発行状況に関わらず、演算レジスタ22が確定するとストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる。
At this time, the
When executing in-order processing, the
On the other hand, when the out-of-order processing is executed by switching the switching
このとき、命令処理部10は、該ストアデータに付随してアライン情報及び使用/不使用情報を発行させ、使用/不使用情報を使用に設定する。
また、命令処理部10により、ストア命令がストアポート30−0〜30−nに保持されるよりも先にストアデータがストアデータバッファ50−0〜50−nに保持された場合には、抑止部82が、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグをオフ状態に設定することを抑止して、RSTDVフラグをオン状態に維持する。
At this time, the
In addition, if the
このように、本発明の第2実施形態としての情報処理装置1′によれば、上述した第1実施形態と同様の効果を得ることができるとともに、切替部83によって、命令処理部10によるストア命令のストアポート30−0〜30−nに対する発行と、ストアデータの演算レジスタ22からのストアデータバッファ50−0〜50−nに対する発行とを、インオーダーの処理とアウトオブオーダーの処理とで選択的に切り替えることにより、インオーダーの処理時に対するアウトオブオーダーの処理時の性能向上を試験することができる。つまり、切替部83によって、インオーダーの処理とアウトオブオーダーの処理とを切り替えることにより、演算レジスタ22が確定したらすぐにストアデータを発行して当該演算レジスタ22を解放させて他の処理に割り当てることによる演算レジスタ22の使用効率の向上を確認することができる。
As described above, according to the information processing apparatus 1 ′ as the second embodiment of the present invention, the same effect as that of the first embodiment described above can be obtained, and the switching
〔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によるアラインが確実に実行できるとともに、ストア命令を確実に実行することができる。
[3] Others The present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the spirit of the present invention.
For example, in the above-described embodiment, when the operation result is issued from the
また、上述した実施形態では、アライン部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が、ストア命令に付随して発行されたアライン情報を用いて当該ストアデータをアラインするように構成すればよい。
In the above-described embodiment, the
さらに、上述した実施形態では、ストア命令の実行よるストアデータの格納(書き込む)先をキャッシュメモリ60としたが、本発明はこれに限定されるものではなく、ストアデータの格納先を情報処理装置1(1′)に接続された外部の記憶装置としても良い。
Furthermore, in the above-described embodiment, the store data storage (write) destination by execution of the store instruction is the
また、上述した命令処理部10、アライン部40、アライン情報選択部41、キャンセル部80、リセット部81、抑止部82、及び切替部83としての機能は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(ストア命令制御プログラム)を実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からストア命令制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
Further, the functions as the
The program is provided in a form recorded on a computer-readable recording medium such as a flexible disk, CD-ROM, CD-R, CD-RW, or DVD. In this case, the computer reads the store instruction control program from the recording medium, transfers it to the internal storage device or the external storage device, and uses it. Further, the program may be recorded in a storage device (recording medium) such as a magnetic disk, an optical disk, or a magneto-optical disk, and provided from the storage device to a computer via a communication line.
ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記ストア命令制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、命令処理部10、アライン部40、アライン情報選択部41、キャンセル部80、リセット部81、抑止部82、及び切替部83としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
Here, the computer is a concept including hardware and an OS (operating system) and means hardware that operates under the control of the OS. Further, when the OS is unnecessary and the hardware is operated by the application program alone, the hardware itself corresponds to the computer. The hardware includes at least a microprocessor such as a CPU and means for reading a computer program recorded on a recording medium. The application program as the store instruction control program is stored in the computer as described above as the
さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ,パンチカード,コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。 In addition to the above-mentioned flexible disk, CD-ROM, CD-R, CD-RW, DVD, magnetic disk, optical disk, magneto-optical disk, IC card, ROM cartridge, magnetic tape as recording media according to the present embodiment , Various types of computer-readable media such as punch cards, computer internal storage devices (memory such as RAM and ROM), external storage devices, and printed materials on which codes such as bar codes are printed. .
〔4〕付記
(付記1)
命令を解読して処理命令を発行する命令処理部と、
該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、
該演算器による演算結果を保持する演算レジスタと、
前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、
前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、
前記命令処理部が、前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させるように構成され、
前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴とする、情報処理装置。
[4] Appendix (Appendix 1)
An instruction processing unit for decoding instructions and issuing processing instructions;
An arithmetic unit that performs an operation in accordance with an operation instruction issued as the processing instruction from the instruction processing unit;
A calculation register for holding a calculation result by the calculator;
A store port that stores a store instruction that is issued as the processing instruction from the instruction processing unit and stores the operation result held in the operation register in a predetermined storage area;
A store data buffer for temporarily holding the calculation result issued as store data from the calculation register;
The instruction processing unit is configured to issue the operation result as the store data from the operation register to the store data buffer when the operation register holding the operation result is determined according to the store instruction. And
The store port is configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in the store data buffer;
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port;
If the store data is held in the store data buffer prior to the store instruction being held in the store port, the reset unit may store the store instruction when the store instruction is held in the store port. An information processing apparatus, further comprising a suppression unit that suppresses setting a data retention flag to an off state and maintains the on state of the store data retention flag.
(付記2)
命令を解読して処理命令を発行する命令処理部と、
該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、
該演算器による演算結果を保持する演算レジスタと、
前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、
前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファと、
前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と、前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部とをそなえ、
前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴とする、情報処理装置。
(Appendix 2)
An instruction processing unit for decoding instructions and issuing processing instructions;
An arithmetic unit that performs an operation in accordance with an operation instruction issued as the processing instruction from the instruction processing unit;
A calculation register for holding a calculation result by the calculator;
A store port that stores a store instruction that is issued as the processing instruction from the instruction processing unit and stores the operation result held in the operation register in a predetermined storage area;
A store data buffer for temporarily holding the calculation result issued as store data from the calculation register;
A first mode in which issuance of the store instruction to the store port is always preceded by issuance of the operation result to the store data buffer; and when the operation register holding the operation result is determined, the store instruction A switching unit that selectively switches between the second mode for causing the calculation result to be issued from the calculation register to the store data buffer as the store data regardless of the issuance of
The store port is configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in the store data buffer;
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port;
By selecting the second mode by the switching unit, when the store data is held in the store data buffer before the store instruction is held in the store port, the store instruction is And further comprising a deterring unit that inhibits the reset unit from setting the store data retention flag to an off state when the store data is retained in the store port, and maintains the on state of the store data retention flag. An information processing apparatus characterized by comprising:
(付記3)
前記命令処理部が、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、当該演算結果とともに当該演算結果のアラインに必要なアライン情報を発行するように構成され、
前記命令処理部から発行された前記アライン情報もしくは前記ストア命令に含まれるアライン情報に基づいて、前記演算レジスタから発行された前記演算結果をアラインするアライン部をさらにそなえて構成されていることを特徴とする、付記1又は2記載の情報処理装置。
(Appendix 3)
When the instruction processing unit issues the operation result as the store data from the operation register to the store data buffer before issuing the store instruction to the store port, the operation processing unit It is configured to issue the alignment information necessary for aligning the operation result together with the result,
An alignment unit for aligning the operation result issued from the operation register based on the alignment information issued from the instruction processing unit or the alignment information included in the store instruction is further provided. The information processing apparatus according to Supplementary Note 1 or 2.
(付記4)
前記演算レジスタから前記ストアデータとして発行された前記演算結果をアラインするアライン部をそなえ、
前記命令処理部が、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともにアラインに必要なアライン情報と当該アライン情報を前記アライン部で使用するか否かを示す使用/不使用情報とを発行するように構成され、
前記アライン部で使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択するアライン情報選択部をさらにそなえて構成されていることを特徴とする、付記1又は2記載の情報処理装置。
(Appendix 4)
An align unit for aligning the operation results issued as the store data from the operation register;
When the instruction processing unit issues the operation result as the store data from the operation register to the store data buffer, the alignment unit uses the alignment information necessary for alignment and the alignment information together with the operation result. Configured to issue usage / non-use information indicating whether or not
An alignment information selection unit that selects the alignment information used in the alignment unit from the alignment information issued together with the store data and the alignment information included in the store instruction based on the use / non-use information. The information processing apparatus according to appendix 1 or 2, further comprising:
(付記5)
前記命令処理部が、
前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、付記4記載の情報処理装置。
(Appendix 5)
The instruction processing unit
When issuing the store instruction to the store port and then issuing the calculation result as the store data from the calculation register to the store data buffer, the use / nonuse information is set to non-use. While
Before issuing the store instruction to the store port, the operation result is used as the store data from the operation register to the store data buffer. The information processing apparatus according to appendix 4, wherein the information processing apparatus is set to
(付記6)
前記ストア命令の実行をキャンセルするキャンセル部をそなえ、
該キャンセル部が、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応する前記ストアデータ保持フラグがオフ状態に設定されることを特徴とする、付記1〜5のいずれか1項に記載の情報処理装置。
(Appendix 6)
A cancel unit for canceling execution of the store instruction;
The cancel unit executes the store instruction after the store data is issued to the store data buffer and before the store instruction corresponding to the store data is issued to the store port. When canceling, the store data held in the store data buffer is deleted, and the store data holding flag corresponding to the store data is set to an off state. 6. The information processing apparatus according to any one of 5 above.
(付記7)
前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、
前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをそなえ、
前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータが前記ストアデータバッファから前記ストアフェッチバイパスへ投入されることを特徴とする、付記1〜6のいずれか1項に記載の情報処理装置。
(Appendix 7)
A fetch bus for inputting data to be fetched by the fetch instruction from the predetermined storage area to the arithmetic unit or the arithmetic register when a fetch instruction is issued from the instruction processing unit;
A store fetch bypass for directly sending the store data held in the store data buffer from the store data buffer to the fetch bus;
Supplementary notes 1 to 6, wherein when the fetch instruction uses the store data held in the store data buffer, the store data is input from the store data buffer to the store fetch bypass. The information processing apparatus according to any one of the above.
(付記8)
前記演算器が、前記命令処理部により発行された前記ストア命令に基づいて前記演算結果をストアする前記所定の記憶領域上のストアアドレスを算出するとともに、
前記演算器によるストアアドレスの算出に用いられるアドレスレジスタをさらにそなえ、
前記命令処理部は、前記アドレスレジスタが確定すると前記ストア命令を前記ストアポートに発行することを特徴とする、付記1〜7のいずれか1項に記載の情報処理装置。
(Appendix 8)
The computing unit calculates a store address on the predetermined storage area for storing the computation result based on the store instruction issued by the instruction processing unit, and
Further comprising an address register used for calculation of the store address by the computing unit,
8. The information processing apparatus according to claim 1, wherein the instruction processing unit issues the store instruction to the store port when the address register is determined.
(付記9)
命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、
前記命令処理部により、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させ、
前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴とする、ストア命令制御方法。
(Appendix 9)
An instruction processing unit that decodes an instruction and issues a processing instruction, an arithmetic unit that executes an operation according to an arithmetic instruction issued as the processing instruction from the instruction processing unit, and an operation that holds an operation result by the arithmetic unit A register, a store port that is issued as the processing instruction from the instruction processing unit and stores the operation result stored in the operation register in a predetermined storage area, and store data from the operation register A store data buffer that temporarily holds the operation result issued as the store port, and the store port is set to an ON state when the store data corresponding to the store instruction is held in the store data buffer. Issued from the instruction processing unit in an information processing apparatus configured to hold a store data holding flag A store instruction control method for controlling the execution of the serial store instruction,
When the operation register holding the operation result is determined by the instruction processing unit, the operation result is issued from the operation register to the store data buffer as the store data.
If the store instruction is held in the store port before the store data is held in the store data buffer, the store data holding flag is set when the store instruction is held in the store port. While setting to off
If the store data is held in the store data buffer before the store instruction is held in the store port, the store data holding flag is set when the store instruction is held in the store port. The store instruction control method is characterized in that the store data holding flag is kept in an on state by suppressing the setting of the store state to the off state.
(付記10)
命令を解読して処理命令を発行する命令処理部と、該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファと、前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部とをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記命令処理部から発行された前記ストア命令の実行を制御するストア命令制御方法であって、
前記命令処理部により、前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴とする、ストア命令制御方法
(付記11)
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、当該演算結果とともに当該演算結果のアラインに必要なアライン情報を発行することを特徴とする、付記9又は10記載のストア命令制御方法。
(Appendix 10)
An instruction processing unit that decodes an instruction and issues a processing instruction, an arithmetic unit that executes an operation according to an arithmetic instruction issued as the processing instruction from the instruction processing unit, and an operation that holds an operation result by the arithmetic unit A register, a store port that is issued as the processing instruction from the instruction processing unit and stores the operation result stored in the operation register in a predetermined storage area, and store data from the operation register A store data buffer that temporarily holds the operation result issued as a first, and a first mode that always issues the store instruction to the store port prior to issuing the operation result to the store data buffer When the operation register holding the operation result is confirmed, the operation result is stored in the store register regardless of the issue of the store instruction. A switching unit that selectively switches the second register to be issued from the arithmetic register to the store data buffer as a data, and the store port stores the store data corresponding to the store instruction in the store data buffer. In an information processing apparatus configured to hold a store data holding flag that is set to an on state when the data is held, a store instruction control method that controls execution of the store instruction issued from the instruction processing unit There,
When the store instruction is held in the store port before the store data is held in the store data buffer by the instruction processing unit, the time when the store instruction is held in the store port To set the store data retention flag to the off state,
When the store data is held in the store data buffer before the store instruction is held in the store port by selecting the second mode by the switching unit, the store instruction The store instruction control method is characterized in that the store data retention flag is inhibited from being set to an off state at the time when the store data retention flag is held in the store port, and the store data retention flag is kept on. 11)
When the operation result is issued from the operation register to the store data buffer as the store data before the instruction processing unit issues the store instruction to the store port, the operation processing unit 11. The store instruction control method according to
(付記12)
前記命令処理部により、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともに当該演算結果のアラインに必要なアライン情報、及び当該アライン情報を前記アラインに際して使用するか否かを示す使用/不使用情報とを発行し、
前記アラインに際して使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択することを特徴とする、付記9又は10記載のストア命令制御方法。
(Appendix 12)
When the instruction processing unit causes the operation result to be issued from the operation register to the store data buffer as the store data, the operation information together with the alignment information necessary for aligning the operation result, and the alignment information Use / non-use information indicating whether or not to use at the time of alignment,
The alignment information used for the alignment is selected from the alignment information issued together with the store data and the alignment information included in the store instruction based on the use / non-use information. The store instruction control method according to
(付記13)
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、付記12記載のストア命令制御方法。
(Appendix 13)
When the operation result is issued from the operation register to the store data buffer as the store data after the store instruction is issued to the store port by the instruction processing unit, the use / unuse While setting the information to non-use,
When the operation result is issued from the operation register to the store data buffer as the store data before the store instruction is issued to the store port by the instruction processing unit, the use The store instruction control method according to appendix 12, wherein non-use information is set to use.
(付記14)
前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータを削除するとともに、当該ストアデータに対応する前記ストアデータ保持フラグをオフ状態に設定することを特徴とする、付記9〜13のいずれか1項に記載のストア命令制御方法。
(Appendix 14)
When canceling the store instruction after the store data is issued to the store data buffer and before the store instruction corresponding to the store data is issued to the store port Any one of appendices 9 to 13, wherein the store data held in the store data buffer is deleted and the store data holding flag corresponding to the store data is set to an off state. The store instruction control method described.
(付記15)
前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをさらにそなえて構成された前記情報処理装置において、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータを前記ストアデータバッファから前記ストアフェッチバイパスへ投入することを特徴とする、付記9〜14のいずれか1項に記載のストア命令制御方法。
(Appendix 15)
When a fetch instruction is issued from the instruction processing unit, a fetch bus for inputting data to be fetched by the fetch instruction from the predetermined storage area to the arithmetic unit or the arithmetic register, and the store data buffer The store stored in the store data buffer in the information processing apparatus further comprising a store fetch bypass for directly inputting the stored store data from the store data buffer to the fetch bus The store instruction control method according to any one of appendices 9 to 14, wherein when the data is used by the fetch instruction, the store data is input from the store data buffer to the store fetch bypass. .
(付記16)
前記演算結果をストアする前記所定の記憶領域上のストアアドレスを算出する際に用いられるアドレスレジスタが確定すると、前記命令処理部により前記ストア命令を前記ストアポートに発行することを特徴とする、付記9〜15のいずれか1項に記載のストア命令制御方法。
(Appendix 16)
Note that the instruction processing unit issues the store instruction to the store port when an address register used when calculating a store address in the predetermined storage area for storing the operation result is determined. The store instruction control method according to any one of 9 to 15.
(付記17)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムであって、
命令を解読して前記処理命令を発行するとともに、前記処理命令として発行した前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる命令処理部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラム。
(Appendix 17)
An arithmetic unit that executes an operation in accordance with an arithmetic instruction issued as a processing instruction, an arithmetic register that holds an arithmetic result by the arithmetic unit, and the arithmetic result that is issued as the processing instruction and held in the arithmetic register A store port for storing a store instruction for storing in a predetermined storage area; and a store data buffer for temporarily storing the operation result issued as store data from the operation register. Controlling execution of the store instruction in an information processing apparatus configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in a store data buffer A store instruction control program for causing a computer to realize a function,
Decoding the instruction and issuing the processing instruction, and when the operation register holding the operation result is determined according to the store instruction issued as the processing instruction, the operation result is stored as the store data in the operation register. An instruction processing unit for issuing to the store data buffer from
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port; and
If the store data is held in the store data buffer prior to the store instruction being held in the store port, the reset unit may store the store instruction when the store instruction is held in the store port. A store instruction control program that causes the computer to function as a suppression unit that suppresses setting a data retention flag to an off state and maintains the on state of the store data retention flag.
(付記18)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ストア命令制御プログラムが、
命令を解読して前記処理命令を発行するとともに、前記処理命令として発行した前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる命令処理部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体。
(Appendix 18)
An arithmetic unit that executes an operation in accordance with an arithmetic instruction issued as a processing instruction, an arithmetic register that holds an arithmetic result by the arithmetic unit, and the arithmetic result that is issued as the processing instruction and held in the arithmetic register A store port for storing a store instruction for storing in a predetermined storage area; and a store data buffer for temporarily storing the operation result issued as store data from the operation register. Controlling execution of the store instruction in an information processing apparatus configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in a store data buffer Computer storing a store instruction control program for causing a computer to realize the function A recording medium that can be taken,
The store instruction control program is
Decoding the instruction and issuing the processing instruction, and when the operation register holding the operation result is determined according to the store instruction issued as the processing instruction, the operation result is stored as the store data in the operation register. An instruction processing unit for issuing to the store data buffer from
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port; and
If the store data is held in the store data buffer prior to the store instruction being held in the store port, the reset unit may store the store instruction when the store instruction is held in the store port. A computer-readable storage medium storing a store instruction control program, wherein the computer is caused to function as a suppression unit that suppresses setting a data retention flag to an off state and maintains the on state of the store data retention flag Possible recording media.
(付記19)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムであって、
命令を解読して前記処理命令を発行する命令処理部、
前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と、前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラム。
(Appendix 19)
An arithmetic unit that executes an operation in accordance with an arithmetic instruction issued as a processing instruction, an arithmetic register that holds an arithmetic result by the arithmetic unit, and the arithmetic result that is issued as the processing instruction and held in the arithmetic register A store port for storing a store instruction for storing in a predetermined storage area; and a store data buffer for temporarily storing the operation result issued as store data from the operation register. Controlling execution of the store instruction in an information processing apparatus configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in a store data buffer A store instruction control program for causing a computer to realize a function,
An instruction processing unit for decoding the instruction and issuing the processing instruction;
A first mode in which issuance of the store instruction to the store port is always preceded by issuance of the operation result to the store data buffer; and when the operation register holding the operation result is determined, the store instruction A switching section that selectively switches the second result to be issued from the operation register to the store data buffer as the store data regardless of the issuance of
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port; and
By selecting the second mode by the switching unit, when the store data is held in the store data buffer before the store instruction is held in the store port, the store instruction is Preventing the reset unit from setting the store data retention flag to an off state at the time when the store data is retained in the store port, and causing the computer to function as a deterrence unit that maintains the on state of the store data retention flag A store instruction control program.
(付記20)
処理命令として発行された演算命令に応じて演算を実行する演算器と、該演算器による演算結果を保持する演算レジスタと、前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成された情報処理装置において、前記ストア命令の実行を制御する機能をコンピュータに実現させるためのストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ストア命令制御プログラムが、
命令を解読して前記処理命令を発行する命令処理部、
前記ストア命令の前記ストアポートへの発行を前記演算結果の前記ストアデータバッファへの発行に対して常に先行させる第1の態様と、前記演算結果が保持された前記演算レジスタが確定すると前記ストア命令の発行に関係なく当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる第2の態様とを選択的に切り替える切替部、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部、及び、
前記切替部により前記第2の態様を選択することによって、前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部として、前記コンピュータを機能させることを特徴とする、ストア命令制御プログラムを記録したコンピュータ読取可能な記録媒体。
(Appendix 20)
An arithmetic unit that executes an operation in accordance with an arithmetic instruction issued as a processing instruction, an arithmetic register that holds an arithmetic result by the arithmetic unit, and the arithmetic result that is issued as the processing instruction and held in the arithmetic register A store port for storing a store instruction for storing in a predetermined storage area; and a store data buffer for temporarily storing the operation result issued as store data from the operation register. Controlling execution of the store instruction in an information processing apparatus configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in a store data buffer Computer storing a store instruction control program for causing a computer to realize the function A recording medium that can be taken,
The store instruction control program is
An instruction processing unit for decoding the instruction and issuing the processing instruction;
A first mode in which issuance of the store instruction to the store port is always preceded by issuance of the operation result to the store data buffer; and when the operation register holding the operation result is determined, the store instruction A switching section that selectively switches the second result to be issued from the operation register to the store data buffer as the store data regardless of the issuance of
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port; and
By selecting the second mode by the switching unit, when the store data is held in the store data buffer before the store instruction is held in the store port, the store instruction is Preventing the reset unit from setting the store data retention flag to an off state at the time when the store data is retained in the store port, and causing the computer to function as a deterrence unit that maintains the on state of the store data retention flag A computer-readable recording medium having a store instruction control program recorded thereon.
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 切替部
1, 1 ′, 1 ″, 100
70 fetch
Claims (10)
該命令処理部から前記処理命令として発行された演算命令に応じて演算を実行する演算器と、
該演算器による演算結果を保持する演算レジスタと、
前記命令処理部から前記処理命令として発行され、前記演算レジスタに保持された前記演算結果を所定の記憶領域にストアするためのストア命令を保持するストアポートと、
前記演算レジスタからストアデータとして発行された前記演算結果を一時的に保持するストアデータバッファとをそなえ、
前記命令処理部が、前記ストア命令に応じて、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させるように構成され、
前記ストアポートが、前記ストアデータバッファに前記ストア命令に対応する前記ストアデータが保持された場合にオン状態に設定されるストアデータ保持フラグを保持するように構成されるとともに、
前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定するリセット部と、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合に、前記ストア命令が前記ストアポートに保持された時点で前記リセット部が前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持する抑止部とをさらにそなえて構成されていることを特徴とする、情報処理装置。 An instruction processing unit for decoding instructions and issuing processing instructions;
An arithmetic unit that performs an operation in accordance with an operation instruction issued as the processing instruction from the instruction processing unit;
A calculation register for holding a calculation result by the calculator;
A store port that stores a store instruction that is issued as the processing instruction from the instruction processing unit and stores the operation result held in the operation register in a predetermined storage area;
A store data buffer for temporarily holding the calculation result issued as store data from the calculation register;
The instruction processing unit is configured to issue the operation result as the store data from the operation register to the store data buffer when the operation register holding the operation result is determined according to the store instruction. And
The store port is configured to hold a store data holding flag that is set to an on state when the store data corresponding to the store instruction is held in the store data buffer;
A reset unit that sets the store data retention flag to an off state when the store instruction is retained in the store port;
If the store data is held in the store data buffer prior to the store instruction being held in the store port, the reset unit may store the store instruction when the store instruction is held in the store port. An information processing apparatus, further comprising a suppression unit that suppresses setting a data retention flag to an off state and maintains the on state of the store data retention flag.
前記命令処理部が、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる際に、当該演算結果とともにアラインに必要なアライン情報と当該アライン情報を前記アライン部で使用するか否かを示す使用/不使用情報とを発行するように構成され、
前記アライン部で使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択するアライン情報選択部をさらにそなえて構成されていることを特徴とする、請求項1記載の情報処理装置。 An align unit for aligning the operation results issued as the store data from the operation register;
When the instruction processing unit issues the operation result as the store data from the operation register to the store data buffer, the alignment unit uses the alignment information necessary for alignment and the alignment information together with the operation result. Configured to issue usage / non-use information indicating whether or not
An alignment information selection unit that selects the alignment information used in the alignment unit from the alignment information issued together with the store data and the alignment information included in the store instruction based on the use / non-use information. The information processing apparatus according to claim 1, further comprising:
前記ストア命令を前記ストアポートに対して発行した後に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を不使用に設定する一方、
前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、請求項2記載の情報処理装置。 The instruction processing unit
When issuing the store instruction to the store port and then issuing the calculation result as the store data from the calculation register to the store data buffer, the use / nonuse information is set to non-use. While
Before issuing the store instruction to the store port, the operation result is used as the store data from the operation register to the store data buffer. The information processing apparatus according to claim 2, wherein
該キャンセル部が、前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータが削除されるとともに、当該ストアデータに対応する前記ストアデータ保持フラグがオフ状態に設定されることを特徴とする、請求項1〜3のいずれか1項に記載の情報処理装置。 A cancel unit for canceling execution of the store instruction;
The cancel unit executes the store instruction after the store data is issued to the store data buffer and before the store instruction corresponding to the store data is issued to the store port. 2. When canceling, the store data held in the store data buffer is deleted, and the store data holding flag corresponding to the store data is set to an off state. The information processing apparatus according to any one of?
前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをそなえ、
前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータが前記ストアデータバッファから前記ストアフェッチバイパスへ投入されることを特徴とする、請求項1〜4のいずれか1項に記載の情報処理装置。 A fetch bus for inputting data to be fetched by the fetch instruction from the predetermined storage area to the arithmetic unit or the arithmetic register when a fetch instruction is issued from the instruction processing unit;
A store fetch bypass for directly sending the store data held in the store data buffer from the store data buffer to the fetch bus;
The store data is input from the store data buffer to the store fetch bypass when the fetch instruction uses the store data held in the store data buffer. 5. The information processing apparatus according to any one of 4.
前記命令処理部により、前記演算結果が保持された前記演算レジスタが確定すると当該演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させ、
前記ストアデータバッファに前記ストアデータが保持されるよりも先に、前記ストア命令が前記ストアポートに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定する一方、
前記ストアポートに前記ストア命令が保持されるよりも先に、前記ストアデータが前記ストアデータバッファに保持された場合には、前記ストア命令が前記ストアポートに保持された時点で前記ストアデータ保持フラグをオフ状態に設定することを抑止して、前記ストアデータ保持フラグのオン状態を維持することを特徴とする、ストア命令制御方法。 An instruction processing unit that decodes an instruction and issues a processing instruction, an arithmetic unit that executes an operation according to an arithmetic instruction issued as the processing instruction from the instruction processing unit, and an operation that holds an operation result by the arithmetic unit A register, a store port that is issued as the processing instruction from the instruction processing unit and stores the operation result stored in the operation register in a predetermined storage area, and store data from the operation register A store data buffer that temporarily holds the operation result issued as the store port, and the store port is set to an ON state when the store data corresponding to the store instruction is held in the store data buffer. Issued from the instruction processing unit in an information processing apparatus configured to hold a store data holding flag A store instruction control method for controlling the execution of the serial store instruction,
When the operation register holding the operation result is determined by the instruction processing unit, the operation result is issued from the operation register to the store data buffer as the store data.
If the store instruction is held in the store port before the store data is held in the store data buffer, the store data holding flag is set when the store instruction is held in the store port. While setting to off
If the store data is held in the store data buffer before the store instruction is held in the store port, the store data holding flag is set when the store instruction is held in the store port. The store instruction control method is characterized in that the store data holding flag is kept in an on state by suppressing the setting of the store state to the off state.
前記アラインに際して使用する前記アライン情報を、前記使用/不使用情報に基づいて、前記ストアデータとともに発行された前記アライン情報と、前記ストア命令に含まれる前記アライン情報とから選択することを特徴とする、請求項6記載のストア命令制御方法。 When the instruction processing unit causes the operation result to be issued from the operation register to the store data buffer as the store data, the operation information together with the alignment information necessary for aligning the operation result, and the alignment information Use / non-use information indicating whether or not to use at the time of alignment,
The alignment information used for the alignment is selected from the alignment information issued together with the store data and the alignment information included in the store instruction based on the use / non-use information. The store instruction control method according to claim 6.
前記命令処理部により、前記ストア命令を前記ストアポートに対して発行するよりも先に、前記演算結果を前記ストアデータとして前記演算レジスタから前記ストアデータバッファに対して発行させる場合には、前記使用/不使用情報を使用に設定することを特徴とする、請求項7記載のストア命令制御方法。 When the operation result is issued from the operation register to the store data buffer as the store data after the store instruction is issued to the store port by the instruction processing unit, the use / unuse While setting the information to non-use,
When the operation result is issued from the operation register to the store data buffer as the store data before the store instruction is issued to the store port by the instruction processing unit, the use 8. The store instruction control method according to claim 7, wherein the non-use information is set to use.
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004222044A JP4128551B2 (en) | 2004-07-29 | 2004-07-29 | Information processing apparatus and store instruction control method |
| US10/983,729 US7818545B2 (en) | 2004-07-29 | 2004-11-09 | Information processing unit and store instruction control method |
| DE602004023601T DE602004023601D1 (en) | 2004-07-29 | 2004-11-22 | Information processing unit for controlling a storage command and corresponding control method |
| 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 (en) | 2004-07-29 | 2004-07-29 | Information processing apparatus and store instruction control method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006040143A JP2006040143A (en) | 2006-02-09 |
| JP4128551B2 true JP4128551B2 (en) | 2008-07-30 |
Family
ID=35149150
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004222044A Expired - Fee Related JP4128551B2 (en) | 2004-07-29 | 2004-07-29 | Information processing apparatus and store instruction control method |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US7818545B2 (en) |
| EP (1) | EP1622002B1 (en) |
| JP (1) | JP4128551B2 (en) |
| DE (1) | DE602004023601D1 (en) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2007097017A1 (en) | 2006-02-27 | 2007-08-30 | Fujitsu Limited | Buffering apparatus and buffering method |
| JP2009118212A (en) * | 2007-11-07 | 2009-05-28 | Seiko Epson Corp | Image reading apparatus and image reading method |
| US8245004B2 (en) * | 2008-02-01 | 2012-08-14 | International Business Machines Corporation | Mechanisms for communicating with an asynchronous memory mover to perform AMM operations |
| US8015380B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Launching multiple concurrent memory moves via a fully asynchronoous memory mover |
| US8356151B2 (en) * | 2008-02-01 | 2013-01-15 | International Business Machines Corporation | Reporting of partially performed memory move |
| US8095758B2 (en) * | 2008-02-01 | 2012-01-10 | International Business Machines Corporation | Fully asynchronous memory mover |
| US8275963B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Asynchronous memory move across physical nodes with dual-sided communication |
| 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 (en) * | 2014-01-21 | 2017-09-20 | ルネサスエレクトロニクス株式会社 | Manufacturing method of semiconductor device |
| JP6680978B2 (en) | 2016-04-15 | 2020-04-15 | 富士通株式会社 | Arithmetic processing device and method for controlling arithmetic processing device |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60123936A (en) * | 1983-12-07 | 1985-07-02 | Fujitsu Ltd | System for controlling buffer storage |
| JP2532300B2 (en) * | 1990-10-17 | 1996-09-11 | 三菱電機株式会社 | Instruction supply device in parallel processing device |
| JPH05289848A (en) | 1992-04-15 | 1993-11-05 | Toshiba Corp | Processor |
| US5664137A (en) * | 1994-01-04 | 1997-09-02 | Intel Corporation | Method and apparatus for executing and dispatching store operations in a computer system |
| EP0676690B1 (en) | 1994-03-09 | 2003-05-14 | Sun Microsystems, Inc. | Delayed write of store instruction in processor device |
| JP3164732B2 (en) | 1994-07-04 | 2001-05-08 | 富士通株式会社 | Data processing device |
| WO1998033115A1 (en) * | 1997-01-24 | 1998-07-30 | Mitsubishi Denki Kabushiki Kaisha | A data processor |
| JP3628653B2 (en) | 2000-01-19 | 2005-03-16 | 富士通株式会社 | Storage control device and storage control method |
-
2004
- 2004-07-29 JP JP2004222044A patent/JP4128551B2/en not_active Expired - Fee Related
- 2004-11-09 US US10/983,729 patent/US7818545B2/en not_active Expired - Fee Related
- 2004-11-22 EP EP04257233A patent/EP1622002B1/en not_active Expired - Lifetime
- 2004-11-22 DE DE602004023601T patent/DE602004023601D1/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US20060026399A1 (en) | 2006-02-02 |
| EP1622002A1 (en) | 2006-02-01 |
| JP2006040143A (en) | 2006-02-09 |
| DE602004023601D1 (en) | 2009-11-26 |
| EP1622002B1 (en) | 2009-10-14 |
| US7818545B2 (en) | 2010-10-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6289445B2 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
| US7624253B2 (en) | Determining register availability for register renaming | |
| JP5635701B2 (en) | State update execution instruction, apparatus, method, and system at commit time | |
| JP4128551B2 (en) | Information processing apparatus and store instruction control method | |
| CN110515656B (en) | A kind of execution method of CASP instruction, microprocessor and computer equipment | |
| KR102524565B1 (en) | Store and load tracking by bypassing load store units | |
| JPH06242948A (en) | Pipeline processing computer | |
| 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 | |
| CA2367324C (en) | Re-order buffer managing method and processor | |
| KR20010053623A (en) | Processor configured to selectively free physical registers upon retirement of instructions | |
| CN111857826A (en) | Instruction execution method and instruction execution device | |
| JP7020304B2 (en) | Arithmetic processing unit and control method of arithmetic processing unit | |
| JP4160705B2 (en) | Processor and processor system | |
| EP1770507A2 (en) | Pipeline processing based on RISC architecture | |
| JP2894438B2 (en) | Pipeline processing equipment | |
| US20140365751A1 (en) | Operand generation in at least one processing pipeline | |
| US6550005B1 (en) | Mechanism for recovery from termination of a program instruction due to an exception in a pipeland processing system | |
| JP3199035B2 (en) | Processor and execution control method thereof | |
| JP2671161B2 (en) | Register interference check method | |
| JP2000181715A (en) | Command control apparatus and method | |
| JP3475861B2 (en) | Data processing device | |
| JP2901573B2 (en) | Super scalar information processing device | |
| US20100325400A1 (en) | Microprocessor and data write-in method thereof |
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 |