JP4128551B2 - Information processing apparatus and store instruction control method - Google Patents

Information processing apparatus and store instruction control method Download PDF

Info

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

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • 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 information processing apparatus 100. As shown in FIG. 7, the conventional information processing apparatus 100 includes an instruction processing unit 10, an arithmetic unit 20, an address register 21, an arithmetic register 22, store ports 30-0 to 30-n (n is an integer of 0 or more, Here, an integer of 2 or more), an align unit 40, store data buffers 50-0 to 50-n (n is an integer of 0 or more, here an integer of 2 or more), cache memory (storage area) 60, and reset unit 81 Is configured.

ここで、図7に示す従来の情報処理装置100の上記各構成要素の詳細について、その動作に基づいて説明すると、図8は図7に示す従来の情報処理装置100によるストア命令制御方法の手順(情報処理装置100の動作)を説明するためのタイムチャートである。なお、図8におけるT1〜T12は時間単位、つまり、情報処理装置100における制御クロック単位を示すものである。   Here, the details of each of the above components of the conventional information processing apparatus 100 shown in FIG. 7 will be described based on the operation thereof. FIG. 8 shows the procedure of the store instruction control method by the conventional information processing apparatus 100 shown in FIG. It is a time chart for demonstrating (operation | movement of the information processing apparatus 100). Note that T1 to T12 in FIG. 8 indicate time units, that is, control clock units in the information processing apparatus 100.

図7,図8に示すように、情報処理装置100では、まず、命令処理部10が命令キャッシュ(図示せず)に保持された命令を解読する(図8のT1参照)。このとき、命令処理部10が解読した命令がストア命令(ストア要求)であれば、命令処理部10は、解読したストア命令とともにストアすべきデータの幅(以下、ストアデータ幅という;図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),演算器20によるストア先のアドレス(以下、ストアアドレスという)計算に用いられるアドレスレジスタ21の番号(値)もしくは即値オペランド,及び当該ストア命令によってストアすべきデータ(以下、ストアデータという)を保持する演算レジスタ22の番号(値)を取得する。   As shown in FIGS. 7 and 8, in the information processing apparatus 100, first, the instruction processing unit 10 decodes an instruction held in an instruction cache (not shown) (see T1 in FIG. 8). At this time, if the instruction decoded by the instruction processing unit 10 is a store instruction (store request), the instruction processing unit 10 stores the width of data to be stored together with the decoded store instruction (hereinafter referred to as store data width; LENGTH in the figure). ), Alignment instruction information indicating right-justification and left-justification of store data (indicated as ALIGN in the figure), and the number of the address register 21 used for calculation of the store destination address (hereinafter referred to as store address) by the arithmetic unit 20 ( Value) or immediate operand, and the number (value) of the arithmetic register 22 holding data to be stored by the store instruction (hereinafter referred to as store data).

そして、命令処理部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 address register 21 used for calculation of the store address by the computing unit 20 is determined (see T2 in FIG. 8), the instruction processing unit 10 stores the decoded store instruction, store data width, and alignment instruction information in the store port 30. It is issued to any one of −0 to 30-n (here, store port 30-0) (see T3 in FIG. 8).
On the other hand, when the address register 21 used for calculating the store address is determined (see T2 in FIG. 8), the arithmetic unit 20 executes the store address calculation using the address register 21 (see T3 in FIG. 8). Note that the store address obtained as the calculation result of the arithmetic unit 20 is temporarily held in a storage register (in this case, the address register 21 is an address register 21 because the address register 21 is a general-purpose register).

次に、演算器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 computing unit 20 is issued to the store ports 30-0 to 30-n (see T4 in FIG. 8). Here, the store address is at least the store port 30-0. A storage area that is an actual store destination using a translation lookaside buffer (TLB) (not shown) by flowing into the pipeline of the storage processing device having ˜30-n and flowing through the pipeline. Here, the cache memory 60 is converted into an address (physical address; hereinafter, simply referred to as a store address if not distinguished from the store address held in the address register 21), and the converted store address is stored in the store port 30. It is issued at −0 (see T4 in FIG. 8). When the issue of the store address from the address register 21 is completed, the address register 21 is released and can be used by other processes.

また、ストアポート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 flag 30a is set to the on state, and when the store address is received, the ADRS (Address) flag 30b is set to the on state, and further the store data width is received. And LENGTH flag 30c are set to the on state (see T5 in FIG. 8).

そして、命令処理部10は、ストア命令のストアポート30−0への発行を確認すると、演算レジスタ22が保持する当該ストア命令によりストアすべきストアデータをストアデータバッファ50−0〜50−n(ここではストアデータバッファ50−0)に発行すべく、演算レジスタ22からのストアデータの発行のロックを解除する(図8のT6参照)。つまり、従来の情報処理装置100では、演算レジスタ22の番号(値)が確定していても、ストア命令のストアポート30−0への発行が完了するまでは、演算レジスタ22からのストアデータの発行を抑止(インターロック)するように構成されている。   When the instruction processing unit 10 confirms that the store instruction is issued to the store port 30-0, the instruction processing unit 10 stores the store data to be stored by the store instruction held by the arithmetic register 22 in the store data buffers 50-0 to 50-n ( Here, the issuance lock of the store data from the operation register 22 is released in order to issue it to the store data buffer 50-0) (see T6 in FIG. 8). That is, in the conventional information processing apparatus 100, even if the number (value) of the arithmetic register 22 is fixed, until the store instruction is issued to the store port 30-0, the store data from the arithmetic register 22 is stored. It is configured to suppress (interlock) issuance.

次いで、演算レジスタ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 operation register 22 is issued to the store data buffer 50-0 corresponding to the store port 30-0 (see T7 in FIG. 8). The store data issued from the arithmetic register 22 is aligned using the store data width and alignment instruction information (hereinafter referred to as alignment information) issued to the store port 30-0 together with the store instruction (refer to FIG. 8). Thereafter, the store data aligned by the align unit 40 is held in the store data buffer 50-0 (see T9 in FIG. 8). Note that when the issuance of store data from the arithmetic register 22 is completed, the arithmetic register 22 is released and can be used by other processes.

また、ストアポート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 operation register 22, an RSTDV (Received Store Date Valid) flag 30d is set to an on state (see T9 in FIG. 8).

ところで、ストアポート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 instruction processing unit 10 extracts the page attribute of the store target area and determines an exception (see T6 in FIG. 8). . That is, the instruction processing unit 10 determines whether or not the store address as the storage target area can be written (stored), and if the store is possible, the instruction processing unit 10 notifies the store port 30-0 that there is no exception, while the store is not possible. If there is an exception, the store port 30-0 is notified that there is an exception, and the execution of the store instruction is cancelled.

なお、ストアポート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 instruction processing unit 10. If the exception determination result is no exception, a PSTV (Post Status Valid) flag 30e is set to the on state, while if there is an exception, the PSTV flag 30e is set to the off state.

次いで、命令処理部10は、ストアポート30−0にストア命令,ストアアドレス,ストアデータの幅が保持され、当該ストア命令の例外判定の結果が例外無しであり、ストアデータがストアデータバッファ50−0に保持された状態(すなわち、VALIDフラグ30a,ADRSフラグ30b,LENGTHフラグ30c,PSTVフラグ30e,及びRSTDVフラグ30dのすべてがオン状態)になり、且つ、当該ストア命令に先行する命令がすべて完了したら、当該ストア命令が実行可能な状態であると判断して、ストアポート30−0に対してストア許可を通知する(図8のT10参照)。   Next, the instruction processing unit 10 stores the width of the store instruction, the store address, and the store data in the store port 30-0, the exception determination result of the store instruction is no exception, and the store data is stored in the store data buffer 50- 0 is held (that is, all of the VALID flag 30a, ADRS flag 30b, LENGTH flag 30c, PSTV flag 30e, and RSTDV flag 30d are on), and all instructions preceding the store instruction are completed. Then, it is determined that the store instruction is executable, and store permission is notified to the store port 30-0 (see T10 in FIG. 8).

なお、ストアポート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 instruction processing unit 10, and the instruction processing When store permission is received from the unit 10, the READY flag 30f is set to the on state.
When the READY flag 30f of the store port 30-0 is set to the on state, a store instruction is executed (see T11 in FIG. 8), and the cache memory is based on the store address held in the store port 30-0. Store data held in the store data buffer 50-0 is written at a predetermined address at 60, and the store instruction processing is completed (see T12 in FIG. 8).

このように、従来の情報処理装置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 information processing apparatus 100, the store instruction is always issued first from the instruction processing unit 10 to the store ports 30-0 to 30-n, and thereafter, the store data as the calculation result by the calculator 20 is calculated. It is configured to issue from the register 22 to the store data buffers 50-0 to 50-n, that is, to perform processing in order.
Therefore, as shown in FIG. 7, the conventional information processing apparatus 100 includes a reset unit 81 that can reset the RSTDV flag 30d of the store ports 30-0 to 30-n to an off state. When the issued store instruction is held in the store ports 30-0 to 30-n, the reset unit 81 is configured to reset the RSTDV flag 30d to an off state (see T5 in FIG. 8).

つまり、従来の情報処理装置100では、インオーダーで処理が行なわれるため、ストアポート30−0〜30−nにストア命令が保持された時点で、対応するストアデータバッファ50−0〜50−nにストアデータが保持されていることはあり得ないため、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグ30dをオフ状態にリセットするように構成されている。これにより、例えば、本来ストアすべきストアデータとは異なる他のストアデータが対応するストアデータバッファ50−0〜50−nに保持されており、このストアすべきでない他のデータを誤ってストアしてしまったり、ストアデータバッファ50−0〜50−nがストアデータを保持していないにも関わらず誤ってRSTDVフラグ30dがオン状態に設定されているためにストア命令が実行されないといったエラーを防止することができるようになっている。
特開平5−289848号公報
That is, in the conventional information processing apparatus 100, processing is performed in-order. Therefore, when a store instruction is held in the store ports 30-0 to 30-n, the corresponding store data buffers 50-0 to 50-n are stored. Since the store data cannot be held in the storage port 30-0 to 30-n, the reset unit 81 resets the RSTDV flag 30d to the OFF state when the store instruction is held in the store ports 30-0 to 30-n. Has been. As a result, for example, other store data different from the store data that should originally be stored is held in the corresponding store data buffers 50-0 to 50-n, and other data that should not be stored is erroneously stored. Or an error that the store instruction is not executed because the RSTDV flag 30d is erroneously set to the ON state even though the store data buffers 50-0 to 50-n do not hold the store data. Can be done.
Japanese Patent Laid-Open No. 5-289848

ところで、上述した従来の情報処理装置100では、命令処理部10による命令の解読後、ストア命令をストアポート30−0〜30−nに対して発行するにあたっては、演算器20によるストアアドレスの計算に用いるアドレスレジスタ21の番号(値)が確定していることが必要であり、また、ストアデータをストアデータバッファ50−0〜50−nに対して発行するにあたっては、ストアデータを保持する演算レジスタ22の番号(値)が確定していることが必要であった。これらアドレスレジスタ21の番号と演算レジスタ22の番号とが確定する順序は一定ではない。   By the way, in the conventional information processing apparatus 100 described above, when the store instruction is issued to the store ports 30-0 to 30-n after the instruction is decoded by the instruction processing unit 10, calculation of the store address by the arithmetic unit 20 is performed. It is necessary that the number (value) of the address register 21 to be used is fixed, and when issuing store data to the store data buffers 50-0 to 50-n, an operation for holding the store data It is necessary that the number (value) of the register 22 is fixed. The order in which the number of the address register 21 and the number of the arithmetic register 22 are determined is not constant.

しかしながら、従来の情報処理装置100では、上述したように必ず先にストア命令を命令処理部10からストアポート30−0〜30−nに発行し、その後、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−nへ発行するようにインオーダーで処理を実行していたため、アドレスレジスタ21の番号が確定するよりも前に演算レジスタ22の番号が確定して当該演算レジスタ22にストアデータが保持されているような場合でも、アドレスレジスタ21の番号が確定してストア命令の発行が確認されるまでは、演算レジスタ22からのストアデータバッファ50−0〜50−nに対するストアデータの発行がロックされており、ストアデータの発行を待たなくてはならなかった。   However, in the conventional information processing apparatus 100, as described above, the store instruction is always issued first from the instruction processing unit 10 to the store ports 30-0 to 30-n, and then the store data is stored in the store data buffer from the arithmetic register 22. Since the processing is executed in order to issue to 50-0 to 50-n, the number of the arithmetic register 22 is determined before the number of the address register 21 is determined, and the stored data is stored in the arithmetic register 22. Is stored, issuance of store data from the arithmetic register 22 to the store data buffers 50-0 to 50-n until the number of the address register 21 is confirmed and the issue of the store instruction is confirmed. Was locked and had to wait for store data to be issued.

このように、演算レジスタ22からストアデータバッファ50−0〜50−nに対するストアデータの発行が待たされる間は、当然、ストアデータを保持する演算レジスタ22の解放も待たされるため、その間は演算レジスタ22を他の演算に使用することができず、演算レジスタ22の使用効率が落ちていた。
本発明は、このような課題に鑑み創案されたもので、ストア命令を実行するにあたり、ストアデータを保持する演算レジスタの使用効率を向上できるようにすることを目的とする。
In this way, while waiting for the issuance of store data from the operation register 22 to the store data buffers 50-0 to 50-n, naturally, the operation register 22 holding the store data is also waited for release. 22 could not be used for other operations, and the use efficiency of the operation register 22 was reduced.
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 instruction processing unit 10, an arithmetic unit 20, an address register 21, an arithmetic register 22, and store ports 30-0 to 30-n (n Is an integer greater than or equal to 0 (here, an integer greater than or equal to 2), align unit 40, align information selection unit 41, store data buffers 50-0 to 50-n (n is an integer greater than or equal to 0, here an integer greater than or equal to 2), A cache memory (storage area) 60, a fetch bus 70, a store fetch bypass 71, a cancel unit 80, a reset unit 81, and a suppression unit 82 are provided.

命令処理部10は、命令キャッシュ(図示せず)に保持された命令を解読して処理命令を発行するものであり、命令処理部10は解読した命令がストア命令(ストア要求)である場合には、命令を解読することにより、ストア命令とともにストアデータ幅(図中LENGTHと表記),ストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記),後述する演算器20によるストア先のアドレス(以下、ストアアドレスという)計算に用いられるアドレスレジスタ21の番号(値),及び後述するストアデータを保持する演算レジスタ22の番号(値)を取得する。   The instruction processing unit 10 decodes an instruction held in an instruction cache (not shown) and issues a processing instruction. The instruction processing unit 10 determines that the decoded instruction is a store instruction (store request). By decoding the instruction, the store data width (denoted as LENGTH in the figure), align instruction information indicating the right or left justification of the store data (denoted as ALIGN in the figure), and an arithmetic unit 20 to be described later The number (value) of the address register 21 used for the calculation of the store destination address (hereinafter referred to as the store address) and the number (value) of the arithmetic register 22 holding the store data described later are acquired.

演算器20は、命令処理部10から処理命令として発行された演算命令に応じて演算を実行するとともに、命令処理部10から処理命令として発行されたストア命令に基づく、当該ストア命令によりストアすべき所定の記憶領域(ここではキャッシュメモリ60)上のアドレス計算を後述するアドレスレジスタ21を用いて実行するものである。
アドレスレジスタ21は、演算器20によるストア先のアドレス計算に用いられるとともに、かかる計算の結果としてのストアアドレスを一時的に保持するものである。
The arithmetic unit 20 performs an operation in accordance with an arithmetic instruction issued as a processing instruction from the instruction processing unit 10 and should store by the store instruction based on a store instruction issued as a processing instruction from the instruction processing unit 10 The address calculation on a predetermined storage area (here, the cache memory 60) is executed using an address register 21 described later.
The address register 21 is used for the store destination address calculation by the arithmetic unit 20 and temporarily stores a store address as a result of the calculation.

演算レジスタ22は、演算器20による演算に用いられるとともに、かかる演算の結果得られたストアデータを一時的に保持するものである。なお、演算器20,アドレスレジスタ21,及び演算レジスタ22から演算部が構成される。
ストアポート30−0〜30−nは、命令処理部10から処理命令として発行され、演算レジスタ22に保持された演算結果(ストアデータ)を所定の記憶領域(ここではキャッシュメモリ60)にストアするためのストア命令を保持するものである。
The calculation register 22 is used for calculation by the calculation unit 20 and temporarily stores store data obtained as a result of the calculation. The arithmetic unit 20, the address register 21, and the arithmetic register 22 constitute an arithmetic unit.
The store ports 30-0 to 30-n store operation results (store data) issued as processing instructions from the instruction processing unit 10 and held in the operation register 22 in a predetermined storage area (here, the cache memory 60). For storing store instructions.

つまり、命令処理部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 instruction processing unit 10 is configured to issue the decrypted store instruction to the store ports 30-0 to 30-n, and the address register 21 of the address register 21 used for address calculation by the arithmetic unit 20 based on the store instruction. When the number is determined, the store instruction is issued (see T3 in FIG. 3 described later).
The store ports 30-0 to 30-n have a VALID flag 30a, an ADRS (Address) flag 30b, a LENGTH flag 30c, a RSTDV (Received Store Date Valid) flag (store data retention flag) 30d, and a PSTV (Post Status Valid), respectively. ) Flag 30e and READY flag 30f.

VALIDフラグ30aは、ストアポート30−0〜30−nが命令処理部10から発行されたストア命令を受け取ったか否かを示す情報であり、ストア命令を受け取るとオン状態に設定される。
ADRS(Address)フラグ30bは、ストアポート30−0〜30−nがアドレスレジスタ21からストアアドレスを受け取ったか否かを示す情報であり、ストアアドレスを受け取るとオン状態に設定される。
The VALID flag 30a is information indicating whether or not the store ports 30-0 to 30-n have received store instructions issued from the instruction processing unit 10, and are set to an on state when receiving store instructions.
The ADRS (Address) flag 30b is information indicating whether or not the store ports 30-0 to 30-n have received a store address from the address register 21, and is set to an on state when the store address is received.

LENGTHフラグ30cは、ストアポート30−0〜30−nが命令処理部10からストア命令とともに発行されたストアデータ幅を受け取ったか否かを示す情報であり、ストアデータ幅を受け取るとオン状態に設定される。
RSTDVフラグ30dは、ストアポート30−0〜30−nのそれぞれに対応した後述するストアデータバッファ50−0〜50−nが演算レジスタ22からストアデータを受け取ったか否かを示す情報であり、ストアデータバッファ50−0〜50−nにストアデータが保持された場合にオン状態に設定される。
The LENGTH flag 30c is information indicating whether or not the store ports 30-0 to 30-n have received the store data width issued together with the store instruction from the instruction processing unit 10, and are set to the on state when the store data width is received. Is done.
The RSTDV flag 30d is information indicating whether store data buffers 50-0 to 50-n, which will be described later, corresponding to the store ports 30-0 to 30-n have received store data from the arithmetic register 22, respectively. When store data is held in the data buffers 50-0 to 50-n, the on state is set.

PSTVフラグ30eは、命令処理部10がストア対象領域(所定の記憶領域;ここではキャッシュメモリ60)のページ属性を取り出し、ストア対象領域としてのストアアドレスが書き込み(ストア)可能か否かを判断する例外判定の結果を示す情報であり、かかる例外判定の結果が例外無し(ストア可能)であればオン状態に設定される。なお、命令処理部10による例外判定を行なうタイミングについては、図3を参照しながら後述する。   In the PSTV flag 30e, the instruction processing unit 10 extracts the page attribute of the store target area (predetermined storage area; here, the cache memory 60), and determines whether or not the store address as the store target area can be written (stored). This is information indicating an exception determination result. If the exception determination result is no exception (storeable), the information is set to an on state. Note that the timing at which the instruction processing unit 10 performs exception determination will be described later with reference to FIG.

READYフラグ30fは、命令処理部10がストアポート30−0〜30−nに保持されたストア命令が実行可能な状態であると判断して、当該ストア命令を実行させるべく、ストアポート30−0〜30−nに対して通知するストア許可を、ストアポート30−0〜30−nが受け取ったか否かを示す情報であり、命令処理部10からストア許可を受け取るとオン状態に設定される。   The READY flag 30f determines that the instruction processing unit 10 can execute the store instruction held in the store ports 30-0 to 30-n, and executes the store instruction in order to execute the store instruction. Information indicating whether or not the store port 30-0 to 30-n has received the store permission to be notified to .about.30-n, and is set to the on state when the store permission is received from the instruction processing unit 10.

アライン部40は、演算レジスタ22からストアデータとして発行された演算結果を、命令処理部10からストア命令とともに発行されたストアデータの幅(図中LENGTHと表記)とストアデータの右詰,左詰を示すアライン指示情報(図中ALIGNと表記)とからなるアライン情報、もしくは、演算レジスタ22から発行されるストアデータに付随して発行されたアライン情報を用いてストアデータをアラインするものである。   The align unit 40 calculates the calculation result issued as the store data from the calculation register 22, stores the width of the store data issued together with the store instruction from the instruction processing unit 10 (denoted as LENGTH in the figure), and stores the data right-justified or left-justified The store data is aligned using the alignment information including the alignment instruction information (indicated as ALIGN in the figure) indicating the above, or the alignment information issued along with the store data issued from the operation register 22.

アライン情報選択部41は、アライン部40でアラインに用いるアライン情報を、ストアデータに付随して発行されたアライン情報とともに発行された使用/不使用情報(図中CODE−VALIDと表記)に基づいて、命令処理部10からストア命令とともに発行されたアライン情報と、ストアデータに付随して発行されたアライン情報とから選択するものである。   The alignment information selection unit 41 uses the alignment information used for the alignment in the alignment unit 40 based on the use / non-use information (denoted as CODE-VALID in the figure) issued together with the alignment information issued along with the store data. The selection is made from the alignment information issued together with the store instruction from the instruction processing unit 10 and the alignment information issued accompanying the store data.

つまり、命令処理部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 instruction processing unit 10 issues the alignment information together with the store instruction, and stores the store data from the operation register 22 in the store data buffer. When issuing to 50-0 to 50-n, the alignment information and use / non-use information are issued accompanying the store data.

ストアデータバッファ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 arithmetic register 22 by the instruction processing unit 10 and aligned by the align unit 40.
The instruction processing unit 10 is configured to issue the operation result held in the operation register 22 based on the store instruction as store data to the store data buffers 50-0 to 50-n. Accordingly, when the operation register 22 holding the operation result to be stored by the store instruction is confirmed (that is, when the operation result is stored in the specified operation register 22), the store port 30-0 of the store instruction is stored. The calculation result is issued as store data from the calculation register 22 regardless of the issue status (whether or not issued) to 30-n (see T4 in FIG. 3 described later).

なお、ストアデータバッファ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 instruction processing unit 10 determines which pair the store data buffer 50-0 to 50-n has when the store instruction is issued. Specifies whether to use the store port and store data buffer. Further, at least the store ports 30-0 to 30-n, the align unit 40, the store data buffers 50-0 to 50-n, and the cache memory 60 constitute a storage control device.

フェッチバス70は、命令処理部10が解読した処理命令がフェッチ命令であった場合に、命令処理部10から発行された当該フェッチ命令のフェッチ対象であるデータを所定の記憶領域(ここではキャッシュメモリ60)から前記演算部へ投入するためのバスである。
ストアフェッチバイパス71は、命令処理部10から発行されたフェッチ命令がストアデータバッファ50−0〜50−nに保持されているストアデータを使用する場合に、当該ストアデータをストアデータバッファ50−0〜50−nからフェッチバスへ直接投入するためのバスである。
When the processing instruction decoded by the instruction processing unit 10 is a fetch instruction, the fetch bus 70 stores data to be fetched by the fetch instruction issued from the instruction processing unit 10 in a predetermined storage area (here, a cache memory). 60) to the arithmetic unit.
When the fetch instruction issued from the instruction processing unit 10 uses store data held in the store data buffers 50-0 to 50-n, the store fetch bypass 71 stores the store data in the store data buffer 50-0. -50-n is a bus for direct input to the fetch bus.

ここで、命令処理部10は、解読した命令がフェッチ命令であった場合に、所定の条件を満たす場合には、ストアフェッチバイパス71を用いてフェッチを実行するように構成されており、例えば、ストアデータバッファ50−0〜50−nに保持されているストアデータを、当該ストアデータを用いるストア命令よりも後続のフェッチ命令が使用する場合には、当該ストア命令実行前に、ストアデータバッファ50−0〜50−nから当該ストアデータをストアフェッチバイパス71へ投入する。   Here, the instruction processing unit 10 is configured to execute fetch using the store fetch bypass 71 when the decoded instruction is a fetch instruction and satisfies a predetermined condition, for example, When the store data held in the store data buffers 50-0 to 50-n is used by a fetch instruction subsequent to the store instruction using the store data, the store data buffer 50 is executed before the store instruction is executed. The store data is input to the store fetch bypass 71 from −0 to 50-n.

キャンセル部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 unit 80 cancels (deletes) a store instruction held in the store ports 30-0 to 30-n when an event for canceling execution of the store instruction occurs.
FIGS. 2A and 2B are diagrams for explaining cancellation of execution of a store instruction by the cancel unit 80. FIG. 2A is a store port 30-0 to 30-n (here, n = 4). FIG. 2B is a diagram for explaining cancellation in the store data buffers 50-0 to 50-n (here, n = 4). In FIG. 2A, the ADRS flag 30b, LENGTH flag 30c, and PSTV flag 30e of the store ports 30-0 to 30-n are omitted here for simplification of the drawing.

図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 unit 80 holds the store instruction in the store ports 30-0 to 30-4 [that is, VALID Flag 30a is in the ON state], the store data is held in the corresponding store data buffer [that is, the RSTDV flag 30d is in the ON state], and the READY flag 30f is in the ON state. A certain store port (here, store port 30-2) is not canceled, and a store port (here, store port 30-3) in which neither a store instruction nor store data is held is canceled. For other store ports (here, store ports 30-0, 30-1, 30-4) Cancels all, resets all the flags 30a to 30f of these store ports 30-0, 30-1 and 30-4 to the OFF state, and deletes the store instruction when the store instruction is held To do.

一方、図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 unit 80 is connected to the store ports 30-0, 30-1, and 30-4 shown in FIG. Store data buffers 50-0, 50-1, and 50-4 corresponding to the store data buffers 50-0, 50-1, and 50-4 if the store data is held in the store data buffers 50-0, 50-1, and 50-4. Cancel (delete).

したがって、ストアデータがストアデータバッファ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 unit 80 displays the store data buffer. The store data held in 50-4 is deleted, and the RSTDV flag 30f of the corresponding store port 30-4 is reset (set) to an off state.

リセット部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 reset unit 81 sets the RSTDV flag 30d of the store port 30-0 to 30-n to an off state when the store instruction issued from the instruction processing unit 10 is held in the store ports 30-0 to 30-n. To do.
The suppression unit 82 stores the store data issued from the arithmetic register 22 by the instruction processing unit 10 before the store instruction issued from the instruction processing unit 10 is held in the store ports 30-0 to 30-n. When held in the data buffers 50-0 to 50-n, the reset unit 81 sets the RSTDV flag 30d to the off state when the store instruction is held in the store ports 30-0 to 30-n. It is suppressed and the ON state of the RSTDV flag 30d is maintained.

上述したように、本情報処理装置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 instruction processing unit 10 issues a store instruction to the store ports 30-0 to 30-n when the address register 21 used for address calculation by the computing unit 20 is determined. On the other hand, when the operation register 22 holding the operation result as the store data used in the store instruction is determined, regardless of the issue of the store instruction to the store ports 30-0 to 30-n (regardless of the issue status). The calculation result is issued as store data from the calculation register 22 to the store data buffers 50-0 to 50-n. That is, in the information processing apparatus 1, issuing store instructions to the store ports 30-0 to 30-n and issuing store data (calculation results) to the store data buffers 50-0 to 50-n are out-of-order. It is supposed to be executed in.

このように、本情報処理装置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 reset unit 81 from resetting the RSTDV flag 30d to the OFF state at the time when it is held in the state, a suppression unit 82 is provided.

〔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 instruction processing unit 10 decodes an instruction held in an instruction cache (not shown) (see T1 in FIG. 3). At this time, if the instruction decoded by the instruction processing unit 10 is a store instruction (store request), the instruction processing unit 10 stores the store data width (indicated as LENGTH in the drawing) together with the decoded store instruction, Align instruction information indicating left justification (indicated as ALIGN in the figure), the number (value) of the address register 21 used for calculating the storage destination address by the arithmetic unit 20, and the store data to be stored by the store instruction are held The number (value) of the arithmetic register 22 is acquired.

ここで、命令解読後、演算器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 address register 21 used for calculation of the store address by the arithmetic unit 20 is determined (that is, the address register 21 is designated and the address register 21 can be used), When the operation register 22 is finalized (that is, the operation result used as store data is held in the designated operation register 22) (see T2 in FIG. 3), the instruction processing unit 10 stores the store instruction store port 30. Regardless of the issue status (whether or not issued) to −0 to 30-n (here, store port 30-0), the operation data from the operation register 22 is stored as the store data buffer 50-0 to 50-n. (Here, it is issued to the store data buffer 50-0) (see T3 in FIG. 3). Note that it takes time to determine the address register 21 because the address register 21 is occupied by a processing instruction issued before the store instruction.

このとき、命令処理部10は、演算レジスタ22から発行されるストアデータに付随してアライン情報(ストアデータ幅及びアライン指示情報)が発行されるようにするとともに、当該アライン情報をアライン部40で使用するか否かを示す使用/不使用情報(CODE−VALID)がストアデータに付随して発行されるようする(図3のT3参照)。なお、命令処理部10は、演算レジスタ22からのストアデータの発行が、ストア命令が発行されるより先に実行される場合には、使用/不使用情報が使用に設定されて発行されるようにする。なお、演算レジスタ22は、ストアデータの発行が完了すると解放されて他の処理による利用が可能になる。   At this time, the instruction processing unit 10 causes the alignment information (store data width and alignment instruction information) to be issued along with the store data issued from the arithmetic register 22, and the align information is displayed by the align unit 40. Use / non-use information (CODE-VALID) indicating whether or not to use is issued along with the store data (see T3 in FIG. 3). Note that the instruction processing unit 10 issues the use / nonuse information set to use when the store data is issued from the arithmetic register 22 before the store instruction is issued. To. Note that the operation register 22 is released when the issuance of store data is completed, and can be used by other processes.

そして、アライン情報選択部41が、アライン部40で使用するアライン情報を、使用/不使用情報に基づいて、ストア命令とともに発行されるアライン情報とストアデータに付随して発行されるアライン情報とから選択するが、ここでは使用/不使用情報が使用に設定されているため、アライン情報選択部41は、ストアデータに付随して発行されるアライン情報を選択し、この選択されたアライン情報を用いてアライン部40が演算レジスタ22から発行されたストアデータをアラインする(図3のT4参照)。   Then, the alignment information selection unit 41 determines the alignment information used in the alignment unit 40 from the alignment information issued together with the store instruction and the alignment information issued accompanying the store data based on the use / non-use information. In this case, since the use / non-use information is set to use, the alignment information selection unit 41 selects the alignment information issued along with the store data, and uses the selected alignment information. The aligning unit 40 aligns the store data issued from the arithmetic register 22 (see T4 in FIG. 3).

次いで、アラインされたストアデータは、ストアデータバッファ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 address register 21 used for calculation of the store address by the arithmetic unit 20 is determined (see T3 in FIG. 3), the arithmetic unit 20 executes calculation of the store address using the address register 21 (T4 in FIG. 3). reference). The store address obtained as a calculation result of the arithmetic unit 20 is temporarily held in the address register 21.

このとき、命令処理部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 instruction processing unit 10 issues the decoded store instruction to the store port 30-0 together with the store data width and the alignment instruction information (see T4 in FIG. 3).
Then, the store address calculated by the arithmetic unit 20 and held in the address register 21 is issued to the store port 30-0 (see T5 in FIG. 3). Here, the store address is input to a pipeline of a storage processing device having at least the store ports 30-0 to 30-n, and flows through the pipeline, thereby causing a translation lookaside buffer (TLB) (not shown). ) To the address (physical address; hereinafter, simply referred to as the store address if not distinguished from the store address held in the address register 21) on the storage area (here, the cache memory 60) that is the actual store destination The converted store address is issued to the store port 30-0.

なお、アドレスレジスタ21は、ストアアドレスの発行が完了すると解放されて他の処理による利用が可能になる。
次に、ストアポート30−0がストア命令,ストアアドレス(物理アドレス),及びストアデータ幅を受け取ると、VALIDフラグ30a,ADRSフラグ30b,及びLENGTHフラグ30cがオン状態に設定される(図3のT6参照)。
Note that the address register 21 is released when the issue of the store address is completed, and can be used by other processes.
Next, when the store port 30-0 receives a store instruction, a store address (physical address), and a store data width, the VALID flag 30a, the ADRS flag 30b, and the LENGTH flag 30c are set to an on state (FIG. 3). (See T6).

このとき、対応するストアデータバッファ50−0には、ストアデータが既に保持されているため、抑止部82が、リセット部81によってRSTDVフラグ30dをオフ状態に設定させることなく、リセット部81によるリセットを抑止してRSTDVフラグ30dをオン状態に維持する(図3のT6参照)。
なお、ストアポート30−0がストア命令とともにストアデータ幅を受け取ると、命令処理部10は、当該ストア命令の後続のフェッチ命令が当該ストア命令で使用するストアデータを使用するものであるか否か(つまり、当該ストア命令のストア対象領域を使用しているか否か)をストアデータ幅に基づいて判断する(図示せず)。ここで、後続のフェッチ命令が当該ストア命令が使用するストアデータを使用するものであれば、命令処理部10は、かかるフェッチ命令の実行を当該ストア命令の実行完了まで抑止するか、あるいは、当該ストア命令が使用するストアデータがストアデータバッファ50−0〜50−nに保持されたら、ストアデータバッファ50−0〜50−nからストアデータを取り出してキャッシュメモリ60への書き込みをバイパスしてフェッチデータバス71に投入することにより、かかるフェッチ命令を早期に完了させる。
At this time, since the store data is already stored in the corresponding store data buffer 50-0, the suppression unit 82 does not cause the reset unit 81 to set the RSTDV flag 30d to the off state, and the reset by the reset unit 81 is performed. And the RSTDV flag 30d is kept on (see T6 in FIG. 3).
When the store port 30-0 receives the store data width together with the store instruction, the instruction processing unit 10 determines whether the fetch instruction subsequent to the store instruction uses the store data used in the store instruction. (That is, whether or not the store target area of the store instruction is used) is determined based on the store data width (not shown). Here, if the subsequent fetch instruction uses the store data used by the store instruction, the instruction processing unit 10 suppresses the execution of the fetch instruction until the execution of the store instruction is completed, or When the store data used by the store instruction is held in the store data buffers 50-0 to 50-n, the store data is fetched from the store data buffers 50-0 to 50-n and fetched by bypassing writing to the cache memory 60. By inputting the data to the data bus 71, the fetch instruction is completed early.

ところで、ストアポート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 instruction processing unit 10 extracts the page attribute of the store target area and determines an exception (see T7 in FIG. 3). . That is, the instruction processing unit 10 determines whether or not the store address as the storage target area can be written (stored), and if the store is possible, the instruction processing unit 10 notifies the store port 30-0 that there is no exception, while the store is not possible. If there is an exception, the store port 30-0 is notified that there is an exception, and the execution of the store instruction is cancelled.

ここでは、例外判定の結果が例外無しであるため、ストアポート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 PSTV flag 30e of the store port 30-0 is set to the on state.
Next, the instruction processing unit 10 stores the width of the store instruction, the store address, and the store data in the store port 30-0, the exception determination result of the store instruction is no exception, and the store data is stored in the store data buffer 50- 0 is held (that is, all of the VALID flag 30a, ADRS flag 30b, LENGTH flag 30c, PSTV flag 30e, and RSTDV flag 30d are on), and all instructions preceding the store instruction are completed. Then, it is determined that the store instruction is in an executable state, and store permission is notified to the store port 30-0 (see T10 in FIG. 3).

なお、このとき、ストアポート30−0のREADYフラグ30fはオン状態に設定される。
そして、ストアポート30−0のREADYフラグ30fがオン状態に設定されると(図3のT10参照)、ストア命令が実行され(図3のT11参照)、ストアポート30−0に保持されたストアアドレスに基づいて、キャッシュメモリ60における所定アドレス上に、ストアデータバッファ50−0に保持されたストアデータが書き込まれてストア命令の処理が完了する(図3のT12参照)。
At this time, the READY flag 30f of the store port 30-0 is set to the on state.
When the READY flag 30f of the store port 30-0 is set to the ON state (see T10 in FIG. 3), the store instruction is executed (see T11 in FIG. 3), and the store held in the store port 30-0 is performed. Based on the address, the store data held in the store data buffer 50-0 is written at a predetermined address in the cache memory 60, and the processing of the store instruction is completed (see T12 in FIG. 3).

〔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 instruction processing unit 10 issues the store instruction to the store ports 30-0 to 30-n and calculates the store data. The issue order from the register 22 to the store data buffers 50-0 to 50-n can be executed out of order. Hereinafter, a case in which the issue of the store data by the instruction processing unit 10 is executed after the issue of the store instruction will be described with reference to FIG. 4. Here, the issue of the store data described above with reference to FIG. The description will focus on operations that are different from the case where the operations are executed prior to the issuance of an instruction, and the description of overlapping operations will be omitted.

図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 address register 21 is first determined (see T2 in FIG. 4). Thereafter, the arithmetic unit 20 performs address calculation using the determined address register 21, and the instruction processing unit 10 stores the store instruction for the store ports 30-0 to 30-n (here, the store port 30-0). Is issued, the operation register 22 is fixed (see T3 in FIG. 4).

そして、命令処理部10は、演算レジスタ22からストアデータをストアデータバッファ50−0〜50−n(ここでは、ストアデータバッファ50−0)に対して発行するとともに、アライン情報及び使用/不使用情報(CODE−VALID)を発行させるが、ここでは、ストアデータの発行が実行されるよりも前にストア命令の発行が実行されているため、命令処理部10は、使用/不使用情報を不使用に設定して発行させる(図4のT4参照)。   Then, the instruction processing unit 10 issues store data from the operation register 22 to the store data buffers 50-0 to 50-n (here, the store data buffer 50-0), and the alignment information and use / unuse. Information (CODE-VALID) is issued. Here, since the issue of the store instruction is executed before the issue of the store data is executed, the instruction processing unit 10 does not use / not use information. It is set to use and issued (see T4 in FIG. 4).

したがって、アライン情報選択部41は、使用/不使用情報に基づいてストア命令に付随して発行されたアライン情報を選択し、アライン部は選択されたストア命令に付随したアライン情報を用いて、ストアデータをアラインする(図4のT5参照)。
一方、ストアポート30−0にストア命令が保持されると、ここでは、ストアデータがストアデータバッファ50−0に保持されるよりも先にストア命令がストアポート30−0に保持されるため、抑止部82がリセット部81によるRSTDVフラグ30dのリセットを抑止することなく、リセット部81がRSTDVフラグ30dを一旦オフ状態に設定(リセット)する(図4のT5参照)。
Therefore, the alignment information selection unit 41 selects the alignment information issued accompanying the store instruction based on the use / non-use information, and the align unit uses the alignment information attached to the selected store instruction to store the information. The data is aligned (see T5 in FIG. 4).
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 unit 82 does not prevent the resetting unit 81 from resetting the RSTDV flag 30d, and the resetting unit 81 temporarily sets (resets) the RSTDV flag 30d (see T5 in FIG. 4).

そして、その後ストアデータがストアデータバッファ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 RSTDV flag 30d is set to the on state (see T6 in FIG. 4).
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 cache memory 60 are described with reference to FIG. This is the same as described above.

〔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 instruction processing unit 10 determines the operation register 22 regardless of the issue status of the store instruction to the store ports 30-0 to 30-n, the operation data from the operation register 22 is stored as the store data buffer 50-0. To 50-n, and the alignment information and the use / non-use information are issued along with the store data so that the align unit 40 can perform the alignment, and the store instruction is stored in the store port 30- If store data is held in the store data buffers 50-0 to 50-n before being held in 0 to 30-n, suppression is performed. The stopping unit 82 prevents the reset unit 81 from setting the RSTDV flag to the OFF state when the store instruction is held in the store ports 30-0 to 30-n, and maintains the RSTDV flag in the ON state. Therefore, even when the store data is issued to the store data buffers 50-0 to 50-n before the store instruction is issued to the store ports 30-0 to 30-n, the store instruction is surely executed. can do.

したがって、上記図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 information processing apparatus 100 shown in FIG. 7, the issue of the store instruction from the operation register 22 is confirmed even though the operation register 22 is fixed (see FIG. 8 (see T7 in FIG. 8), and store data (calculation result) can be issued from the operation register 22 as soon as the operation register 22 is determined (T3 in FIG. 3 and T4 in FIG. 4). The calculation register 22 is released earlier than the conventional information processing apparatus 100 (by three control clock units in the example shown in FIG. 3 and two control clock units in the example shown in FIG. 4), and the calculation register 22 is released. 22 can be assigned to other processes. That is, the usage efficiency of the arithmetic register 22 can be improved.

また、上記図3,図4では、命令処理部10がストア許可を通知するタイミングが、上記図8に示す従来の情報処理装置100におけるタイミングと同じタイミング(図3,図4のT10及び図8のT10参照)である場合を例に挙げて説明したが、本発明の第1実施形態としての情報処理装置1及びストア命令制御方法によれば、当該ストア命令に先行する命令が完了するタイミングによっては、ストア許可を通知できるタイミングを早める(図3に示す例ではT8のタイミング、図4に示す例ではT9のタイミングまで早める)ことができる。   3 and 4, the timing at which the instruction processing unit 10 notifies the store permission is the same as the timing in the conventional information processing apparatus 100 shown in FIG. 8 (T10 in FIGS. 3 and 4 and FIG. 8). However, according to the information processing apparatus 1 and the store instruction control method as the first embodiment of the present invention, the timing of the instruction preceding the store instruction is completed. Can advance the timing at which the store permission can be notified (T8 timing in the example shown in FIG. 3 and T9 timing in the example shown in FIG. 4).

つまり、本発明の第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 operation register 22 is determined, the earlier the execution timing of the store instruction can be advanced. Therefore, the processing performance of the information processing apparatus 1 can be improved depending on the store permission issuance timing (store instruction execution timing).

なお、ストア命令の実行タイミングが最も早くなるのは、命令処理部10による命令解読後すぐに(つまり、図3,図4のT2のタイミングで)、アドレスレジスタ21と演算レジスタ22とが共に確定した場合であり、この場合には、ストア命令の実行タイミングを図3,図4のT9のタイミングに前倒しすることが可能になり、情報処理装置1の処理性能を向上させることが可能になる。   Note that the execution timing of the store instruction is the earliest after the instruction processing unit 10 decodes the instruction (that is, at the timing of T2 in FIGS. 3 and 4), both the address register 21 and the operation register 22 are determined. In this case, the execution timing of the store instruction can be advanced to the timing of T9 in FIGS. 3 and 4, and the processing performance of the information processing apparatus 1 can be improved.

また、本発明の第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 instruction processing unit 10 issues the store instruction to the store ports 30-0 to 30-n. Regardless of the situation, when the operation register 22 is determined, the operation register 22 issues the operation result as store data to the store data buffers 50-0 to 50-n, and the store instruction is sent to the store ports 30-0 to 30-n. When the store data is held in the store data buffers 50-0 to 50-n before being held, the suppression unit 82 is when the store instruction is held in the store ports 30-0 to 30-n. In order to prevent the reset unit 81 from setting the RSTDV flag to the off state and to keep the RSTDV flag in the on state, a fetch subsequent to the store instruction is performed. Decrees, even when fetching store data to be used for the store instruction, the instruction processing unit 10 can be surely performed by using the store fetch bypass 71 such subsequent fetch instruction.

さらに、本発明の第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 unit 80 deletes the store data held in the store data buffers 50-0 to 50-n (here, the store data buffer 50-4), and The RSTDV flag 30d of the corresponding store port 30-0 to 30-n (here, store port 30-4) is set to an off state.

これにより、キャンセル部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 unit 80, the corresponding store data buffer 50 is stored. -4 RSTDV flag 30d is set to the OFF state, so that the store instruction after the cancel execution by the cancel unit 80 can be reliably executed. That is, the RSTDV flag 30d of the store port 30-4 remains in the ON state, it is mistaken that the store data is held in the store data buffer 50-4, and the store instruction after the cancel execution by the cancel unit 80 is incorrect. Can be prevented from being executed.

〔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. (Switching unit 83 is provided for switching between (first mode) and out-of-order execution (second mode) in which store data is issued regardless of the issue status of store instructions). The configuration is the same as the information processing apparatus 1 of the first embodiment shown in FIG. Therefore, the detailed description of the parts common to the information processing apparatus 1 of the first embodiment is omitted here.

本発明の第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 switching unit 83, and the switching unit 83 stores store instructions 30-0 to 30-n for store instructions by the instruction processing unit 10. In-order processing (first mode) in which issuance to the store data is always preceded by issuance to the store data buffers 50-0 to 50-n from the operation register 22 and an operation in which the operation result is held When the register 22 is determined, an out-of-order process for issuing an operation result from the operation register 22 to the store data buffers 50-0 to 50-n as store data regardless of the issue of the store instruction (regardless of the issue state). (Second mode) is selectively switched. The switching unit 83 is configured to be able to switch between in-order processing and out-of-order processing by a switching register (Operation Status Register; not shown).

切替部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 unit 83, that is, when in-order processing is selected by the switching unit 83, the instruction processing unit 10 selects the store instructions 30-0 to 30-n for the store instruction. Until issuance is completed, issuance of store data from the arithmetic register 22 is interlocked, and when a store instruction is held in the store ports 30-0 to 30-n, the reset unit 81 turns off the RSTDV flag 30d. Set (reset) to.

このとき、命令処理部10は、ストアデータの発行とともにアライン情報及び使用/不使用情報を発行させるが、使用/不使用情報を不使用に設定する。
なお、インオーダーの処理を実行する場合には、命令処理部10が、ストアデータの発行とともにアライン情報及び使用/不使用情報を発行させないように構成してもよい。
一方、切替部83の切り替えによりアウトオブオーダーの処理を実行する、つまり、切替部83によりアウトオブオーダーの処理を選択する場合には、命令処理部10は、演算レジスタ22からのストアデータの発行についてのインターロックを常に解除して、ストア命令のストアポート30−0〜30−nへの発行状況に関わらず、演算レジスタ22が確定するとストアデータを演算レジスタ22からストアデータバッファ50−0〜50−nに対して発行させる。
At this time, the instruction processing unit 10 issues the alignment information and the use / non-use information together with the issue of the store data, but sets the use / non-use information to non-use.
When executing in-order processing, the instruction processing unit 10 may be configured not to issue the alignment information and the use / non-use information together with the issue of the store data.
On the other hand, when the out-of-order processing is executed by switching the switching unit 83, that is, when the out-of-order processing is selected by the switching unit 83, the instruction processing unit 10 issues store data from the arithmetic register 22. When the operation register 22 is fixed regardless of the issuance status of store instructions to the store ports 30-0 to 30-n, store data is stored from the operation register 22 into the store data buffer 50-0. Issue to 50-n.

このとき、命令処理部10は、該ストアデータに付随してアライン情報及び使用/不使用情報を発行させ、使用/不使用情報を使用に設定する。
また、命令処理部10により、ストア命令がストアポート30−0〜30−nに保持されるよりも先にストアデータがストアデータバッファ50−0〜50−nに保持された場合には、抑止部82が、ストア命令がストアポート30−0〜30−nに保持された時点で、リセット部81がRSTDVフラグをオフ状態に設定することを抑止して、RSTDVフラグをオン状態に維持する。
At this time, the instruction processing unit 10 issues alignment information and use / non-use information accompanying the store data, and sets the use / non-use information to use.
In addition, if the instruction processing unit 10 holds the store data 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, it is suppressed. When the store instruction is held in the store ports 30-0 to 30-n, the unit 82 prevents the reset unit 81 from setting the RSTDV flag to the off state, and maintains the RSTDV flag in the on state.

このように、本発明の第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 unit 83 stores the instruction by the instruction processing unit 10. Issuance of instructions to the store ports 30-0 to 30-n and issuance of store data from the operation register 22 to the store data buffers 50-0 to 50-n are performed in in-order processing and out-of-order processing. By selectively switching, it is possible to test the performance improvement during out-of-order processing compared to in-order processing. That is, by switching between in-order processing and out-of-order processing by the switching unit 83, as soon as the arithmetic register 22 is determined, store data is issued, the arithmetic register 22 is released, and assigned to other processing. Thus, improvement in the usage efficiency of the arithmetic register 22 can be confirmed.

〔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 operation register 22 to the store data buffers 50-0 to 50-n as the store data, the instruction processing unit 10 uses the alignment information and use along with the store data. The instruction processing unit 10 issues a store instruction to the store ports 30-0 to 30-n, and then stores the store data from the arithmetic register 22 to the store data buffer 50-0. When issuing to 50-n, the use / non-use information is set to non-use, while store data is issued prior to issuing a store instruction to store ports 30-0 to 30-n. When issuing from the arithmetic register 22 to the store data buffers 50-0 to 50-n, the use / nonuse information is set to use. However, the present invention is not limited to this. After the instruction processing unit 10 issues a store instruction to the store ports 30-0 to 30-n, the store data is stored from the arithmetic register 22. When issuing to the data buffers 50-0 to 50-n, the alignment information and the use / non-use information are not issued together with the store data, while the store instructions are stored in the store ports 30-0 to 30-n. When the store data is issued from the operation register 22 to the store data buffers 50-0 to 50-n prior to being issued to the store data, only the alignment information may be issued together with the store data. . In this case, the alignment unit 40 is configured so that, when the instruction processing unit 10 issues the alignment information together with the store data, the alignment information is used so that the alignment information accompanying the store instruction is not used. The alignment information selection unit 41 can be omitted, and the alignment by the alignment unit 40 can be reliably executed with a simpler configuration, and the store instruction can be reliably executed.

また、上述した実施形態では、アライン部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 align unit 40 is configured to be interposed between the arithmetic register 22 and the store data buffers 50-0 to 50-n. However, the present invention is not limited to this. Absent. 6 is a block diagram showing the configuration of an information processing apparatus 1 ″ as a modification of the present invention. For example, as shown in FIG. 6, the align unit 40 is connected to store data buffers 50-0 to 50-n. It may be provided in a subsequent stage (that is, between the store data buffers 50-0 to 50-n and the cache memory 60. In this case, the alignment information selection unit 41 can be omitted, and further, instruction processing is performed. When the unit 10 issues the store data from the arithmetic register 22, the store data held in the store data buffers 50-0 to 50-n is not issued without issuing the alignment information and the use / non-use information together with the store data. When storing in the cache memory 60, the aligning unit 40 aligns the store data using the alignment information issued accompanying the store instruction. It may be configured to.

さらに、上述した実施形態では、ストア命令の実行よるストアデータの格納(書き込む)先をキャッシュメモリ60としたが、本発明はこれに限定されるものではなく、ストアデータの格納先を情報処理装置1(1′)に接続された外部の記憶装置としても良い。   Furthermore, in the above-described embodiment, the store data storage (write) destination by execution of the store instruction is the cache memory 60. However, the present invention is not limited to this, and the store data storage destination is the information processing apparatus. An external storage device connected to 1 (1 ') may be used.

また、上述した命令処理部10、アライン部40、アライン情報選択部41、キャンセル部80、リセット部81、抑止部82、及び切替部83としての機能は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(ストア命令制御プログラム)を実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク,CD−ROM,CD−R,CD−RW,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からストア命令制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
Further, the functions as the instruction processing unit 10, the alignment unit 40, the alignment information selection unit 41, the cancellation unit 80, the reset unit 81, the suppression unit 82, and the switching unit 83 described above are computers (CPU, information processing apparatus, various terminals). Is implemented by executing a predetermined application program (store instruction control program).
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 instruction processing unit 10, the align unit 40, the align information selection unit 41, the cancel unit 80, the reset unit 81, the suppression unit 82, and the switching unit 83. The program code that realizes the function is included. Also, some of the functions may be realized by the OS instead of the application program.

さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク,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 appendix 9 or 10, wherein alignment information necessary for aligning the operation result is issued together with the result.

(付記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 appendix 9 or 10.

(付記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実施形態としての情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus as 1st Embodiment of this invention. 本発明の第1実施形態としての情報処理装置のキャンセル部によるキャンセルを説明するための図であり、(a)はストアポートにおけるキャンセルを説明するための図、(b)はストアデータバッファにおけるキャンセルを説明するための図である。2A and 2B are diagrams for explaining cancellation by a cancellation unit of the information processing apparatus according to the first embodiment of the present invention, in which FIG. 1A is a diagram for explaining cancellation in a store port, and FIG. 2B is cancellation in a store data buffer; It is a figure for demonstrating. 本発明の第1実施形態としてのストア命令制御方法の手順を説明するためのタイムチャートである。It is a time chart for demonstrating the procedure of the store instruction control method as 1st Embodiment of this invention. 本発明の第1実施形態としてのストア命令制御方法の手順を説明するためのタイムチャートである。It is a time chart for demonstrating the procedure of the store instruction control method as 1st Embodiment of this invention. 本発明の第2実施形態としての情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus as 2nd Embodiment of this invention. 本発明の変形例としての情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus as a modification of this invention. 従来の情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the conventional information processing apparatus. 従来のストア命令制御方法の手順を説明するためのタイムチャートである。It is a time chart for demonstrating the procedure of the conventional store instruction control method.

符号の説明Explanation of symbols

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 Information processing apparatus 10 Instruction processing unit 20 Operation unit 21 Address register 22 Operation register 30-0 to 30-n Store port 30a VALID flag 30b ADRS flag 30c LENGTH flag 30d RSTDV flag (store data hold flag)
30e PSTV flag 30f READY flag 40 align unit 41 align information selection unit 50-0 to 50-n store data buffer 60 cache memory (storage area)
70 fetch bus 71 store fetch bypass 80 cancel unit 81 reset unit 82 suppression unit 83 switching unit

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.
前記ストアデータが前記ストアデータバッファに対して発行された後であって、当該ストアデータに対応する前記ストア命令が前記ストアポートに対して発行される前に、前記ストア命令をキャンセルする場合には、前記ストアデータバッファに保持された当該ストアデータを削除するとともに、当該ストアデータに対応する前記ストアデータ保持フラグをオフ状態に設定することを特徴とする、請求項6〜8のいずれか1項に記載のストア命令制御方法。   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 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. 2. A store instruction control method according to 1. 前記命令処理部からフェッチ命令が発行された際に当該フェッチ命令のフェッチ対象であるデータを前記所定の記憶領域から前記演算器もしくは前記演算レジスタへ投入するためのフェッチバスと、前記ストアデータバッファに保持された前記ストアデータを、前記ストアデータバッファから前記フェッチバスへ直接投入するためのストアフェッチバイパスとをさらにそなえて構成された前記情報処理装置において、前記ストアデータバッファに保持されている前記ストアデータを前記フェッチ命令が使用する場合には、当該ストアデータを前記ストアデータバッファから前記ストアフェッチバイパスへ投入することを特徴とする、請求項6〜9のいずれか1項に記載のストア命令制御方法。   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 10. The store instruction control according to claim 6, 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. Method.
JP2004222044A 2004-07-29 2004-07-29 Information processing apparatus and store instruction control method Expired - Fee Related JP4128551B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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