JP3988740B2 - Parallel processing device, instruction retry method, and program - Google Patents
Parallel processing device, instruction retry method, and program Download PDFInfo
- Publication number
- JP3988740B2 JP3988740B2 JP2004096661A JP2004096661A JP3988740B2 JP 3988740 B2 JP3988740 B2 JP 3988740B2 JP 2004096661 A JP2004096661 A JP 2004096661A JP 2004096661 A JP2004096661 A JP 2004096661A JP 3988740 B2 JP3988740 B2 JP 3988740B2
- Authority
- JP
- Japan
- Prior art keywords
- parallel processing
- data
- rewrite
- instruction
- destination address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
Description
本発明は、障害発生時にもコンピュータシステムの運用を継続するために命令実行の再試行を行う機能を備えた並列処理装置、命令再試行方法、およびプログラムに関する。 The present invention relates to a parallel processing device, a command retry method, and a program having a function of retrying command execution in order to continue operation of a computer system even when a failure occurs.
従来より、コンピュータシステムにおいては、障害発生時にも命令再試行を行うことで安定した運用ができるようにするため、多くのハードウェア(以下、HW)資源が投入されている。
一例として、本出願人による特許文献1のものでは、プロセッサでマイクロコードの実行中に障害を検出した場合、キャッシュデータ待避制御回路を備えたキャッシュデータ待避部により、予め待避しておいたそのマイクロコードに先行するマイクロコードによって更新された書き込みデータをキャッシュメモリに書き戻して復旧させている。
2. Description of the Related Art Conventionally, in a computer system, many hardware (hereinafter referred to as HW) resources have been invested to enable stable operation by retrying instructions even when a failure occurs.
As an example, in
また、特許文献2のものでは、データの退避および回復を行う回路により、退避データ回復サイクル数を一定値として障害発生部位に応じて退避データスタックのポインタを操作して回復を行っている。 Further, in Patent Document 2, a circuit that saves and restores data performs recovery by operating the pointer of the saved data stack according to the location of the failure by setting the number of saved data recovery cycles to a constant value.
また、特許文献3のものでは、ソフトウェアレジスタ数に応じてバックアップレジスタを含む回路を設け、バックアップレジスタの内容をソフトウェアレジスタに戻すことによりソフトウェア命令単位の再実行を行う手段を備えている。
しかしながら、上述した特許文献1から3のものは、HW構成を工夫することで障害発生時の命令再試行を行おうとするものであり、HW構成を簡略化することについてまで考慮されたものではなかった。
近年、プロセッサの高速化に伴い、個々の命令が簡素化して制御も簡素化されてくると同時に、複数命令が同時に実行できるアーキテクチャに移行してきている。このような背景から、複雑なHW制御を用いずに再試行可能とする手段が必要とされていた。
However, the above-mentioned
In recent years, with the speeding up of processors, individual instructions have been simplified and control has been simplified, and at the same time, the architecture has shifted to an architecture in which a plurality of instructions can be executed simultaneously. From such a background, a means for enabling retry without using complicated HW control has been required.
また、上述した特許文献1から3のものは、並列処理装置に適用することや、その空いている並列処理部を活用してデータの退避を行うことについてまで考慮されたものではなかった。
In addition, the above-mentioned
本発明はこのような状況に鑑みてなされたものであり、複雑なHW構成を必要とせずに実現することができると共に、並列処理装置における空いている並列処理部を有効に活用することで、処理速度の低下をほとんど発生させることなく通常運用時におけるデータの退避を行うことができ、障害発生時にも命令実行の再試行を行うことができ、安定した運用を行うことができる(可用性を向上させることができる)並列処理装置、命令再試行方法、およびプログラムを提供することを目的とする。 The present invention has been made in view of such a situation, and can be realized without requiring a complicated HW configuration, and by effectively utilizing a free parallel processing unit in a parallel processing device, Data can be saved during normal operation with almost no decrease in processing speed, instruction execution can be retried even when a failure occurs, and stable operation can be performed (improves availability) It is an object to provide a parallel processing device, an instruction retry method, and a program.
かかる目的を達成するために、本発明の第1の態様としての並列処理装置は、複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置であって、メモリに保持していたデータを書き換える処理が実行される場合に、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させ、上記した書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元処理を行うことで、各並列処理部が前記書き換え準備処理から再試行するよう構成されたことを特徴とする。 In order to achieve such an object, a parallel processing device according to a first aspect of the present invention is a parallel processing device that includes a plurality of parallel processing units and can perform parallel processing by each parallel processing unit, and is held in a memory. When a process for rewriting data that has been executed is executed, the parallel processing unit that is vacant during the rewrite preparation process preceding the rewrite instruction saves the data write destination address and pre-rewrite data in the memory, and rewrites the above instruction When a failure occurs after executing the process, the parallel processing unit retries from the rewrite preparation process by performing a restoration process that retrieves and restores the saved data write destination address and the pre-rewrite data It is characterized by that.
カウンタ手段を備え、上記したデータ書き出し先アドレスおよび前記書き換え前データを退避させる毎に前記カウンタ手段を加算し、障害発生後に上記した復元処理を行う際には、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタ手段を減算することが好ましい。 A counter means, and the counter means is added each time the data write destination address and the pre-rewrite data are saved, and when the restoration process is performed after the failure occurs, the saved data write destination address and It is preferable that the counter means is subtracted every time the pre-rewrite data is taken out.
上記したカウンタ手段は、プロセッサ内部の汎用レジスタに設けられたことが好ましい。
上記したカウンタ手段は、メモリ内に設けられてもよい。
上記した各処理は、ファームウェアに基づいて実行されることが好ましい。
The counter means described above is preferably provided in a general-purpose register inside the processor.
The counter means described above may be provided in the memory.
Each process described above is preferably executed based on firmware.
また、本発明の第2の態様としての命令再試行方法は、複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置における命令再試行方法であって、メモリに保持していたデータを書き換える処理が実行される場合に、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させる退避工程と、上記した書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元工程と、前記復元工程の後で各並列処理部が前記書き換え準備処理から再試行する再試行工程とを備えたことを特徴とする。 An instruction retry method according to a second aspect of the present invention is an instruction retry method in a parallel processing device that includes a plurality of parallel processing units and can be processed in parallel by each parallel processing unit, and is held in a memory. When the process of rewriting the data that has been performed is executed, the parallel processing unit that is vacant during the rewrite preparation process preceding the instruction to be rewritten saves the data write destination address and the pre-rewrite data in the memory, and When a failure occurs after execution of the rewritten instruction processing, a restoration step of retrieving and restoring the saved data write destination address and the pre-rewrite data, and each parallel processing unit after the restoration step performs the rewrite preparation processing And a retrying step of retrying from the above.
上記した退避工程では、前記データ書き出し先アドレスおよび前記書き換え前データを退避させる毎にカウンタを加算し、上記した復元工程では、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタを減算することが好ましい。
上記した各工程は、ファームウェアに基づいて行われることが好ましい。
In the saving step, a counter is added each time the data write destination address and the pre-rewrite data are saved, and in the restore step, the saved data write destination address and the pre-rewrite data are extracted each time the data is taken out. It is preferable to subtract the counter.
Each of the above steps is preferably performed based on firmware.
また、本発明の第3の態様としての命令再試行プログラムは、複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置における命令再試行プログラムであって、メモリに保持していたデータを書き換える処理が実行される場合、コンピュータに、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させる退避処理と、上記した書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元処理と、前記復元処理の後で各並列処理部が前記書き換え準備処理から再試行する再試行処理とを実行させることを特徴とする。 An instruction retry program according to a third aspect of the present invention is an instruction retry program in a parallel processing device that includes a plurality of parallel processing units and can be processed in parallel by each parallel processing unit, and is held in a memory. When the process of rewriting the data that has been performed is executed, the computer causes the parallel processing unit that is vacant during the rewrite preparation process preceding the instruction to be rewritten to save the data write destination address and the pre-rewrite data in the memory; When a failure occurs after execution of the above-described rewrite instruction process, the data write destination address and the pre-rewrite data that have been saved are retrieved and restored, and each parallel processing unit after the restore process performs the rewrite A retry process for retrying from the preparation process is executed.
上記した退避処理では、前記データ書き出し先アドレスおよび前記書き換え前データを退避させる毎にカウンタを加算し、上記した復元処理では、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタを減算することが好ましい。 In the saving process, a counter is added each time the data write destination address and the pre-rewrite data are saved, and in the restore process, the saved data write destination address and the pre-rewrite data are extracted each time the data is taken out. It is preferable to subtract the counter.
以上のように、本発明によれば、複雑なHW構成を必要とせずに実現することができると共に、並列処理装置における空いている並列処理部を有効に活用することで、処理速度の低下をほとんど発生させることなく通常運用時におけるデータの退避を行うことができる。
このことにより、通常運用時にも処理速度の低下をほとんど発生させず、障害発生時にも命令実行の再試行を行うことができ、安定した運用を行う(可用性を向上させる)ことができる。
As described above, according to the present invention, it can be realized without the need for a complicated HW configuration, and the processing speed can be reduced by effectively utilizing a vacant parallel processing unit in the parallel processing device. Data can be saved during normal operation with almost no occurrence.
As a result, almost no decrease in processing speed occurs even during normal operation, and instruction execution can be retried even when a failure occurs, and stable operation (improves availability).
次に、本発明に係る並列処理装置を、VLIW(Very Long Instruction Word)アーキテクチャプロセッサを用いた並列処理装置に適用した一実施形態について、図面を用いて詳細に説明する。
本実施形態としての並列処理装置は、特別なHW制御を用いずにファームウェア(以下、FW)による制御のみでソフトウェア(以下、SW)命令の再試行を可能とする好適なものを例示している。
Next, an embodiment in which the parallel processing device according to the present invention is applied to a parallel processing device using a VLIW (Very Long Instruction Word) architecture processor will be described in detail with reference to the drawings.
The parallel processing apparatus according to the present embodiment exemplifies a suitable one that allows a software (hereinafter, SW) instruction to be retried only by control by firmware (hereinafter, FW) without using special HW control. .
まず、本発明の概要について、図1を参照して説明する。
1つのSW命令を複数のFW処理で行う場合、FW処理4で行われるデータの書き出しは予め決められている動作であり、メモリに保持していたデータを書き換える処理である。
このFW処理4に先行するFW処理2およびFW処理3においては、既に書き込み先アドレスが判明しているため、FW処理2またはFW処理3にでは書き込み前のデータをリードして一時退避エリアに保持しておく動作も並行して行わせる。FW処理4の実行以降で救済可能な間欠障害が発生した場合、FW処理4で行ったデータ書き換えをFW処理〈1〉およびFW処理〈2〉でリカバリし、SW命令の最初から再度実行する。
この動作により、複雑な回路や大規模なHW資源の投資を行わずにプロセスの救済率を向上させることができる。
First, an outline of the present invention will be described with reference to FIG.
When one SW instruction is executed by a plurality of FW processes, the data writing performed in the FW process 4 is a predetermined operation, and is a process of rewriting data held in the memory.
In the FW process 2 and the
With this operation, it is possible to improve the process rescue rate without investing complicated circuits or large-scale HW resources.
次に、本発明の第1の実施形態としての並列処理装置の構成と処理の概要とについて、図2を参照して説明する。
この図2は、1ステップで複数の処理ユニットが実行可能なVLIWアーキテクチャプロセッサについての、あるSW命令の処理フローの一部を抜き出したものである。
Next, the configuration of the parallel processing apparatus as the first embodiment of the present invention and the outline of the processing will be described with reference to FIG.
FIG. 2 shows a part of the processing flow of a certain SW instruction for a VLIW architecture processor that can execute a plurality of processing units in one step.
本実施形態としての並列処理装置は、図2に示すように、VLIWアーキテクチャのプロセッサからなり、そのVLIWアーキテクチャとしてロードユニット(L−UNIT;ロード部)と、ストアユニット(S−UNIT;ストア部)と、演算ユニット(E−UNIT;演算部)と、分岐ユニット(B−UNIT;分岐部)とを備え、図2の例におけるFW処理1から5などの処理をFWに基づいて実行する。
As shown in FIG. 2, the parallel processing apparatus according to the present embodiment includes a VLIW architecture processor. As the VLIW architecture, a load unit (L-UNIT; load unit) and a store unit (S-UNIT; store unit) are included. And an arithmetic unit (E-UNIT; arithmetic unit) and a branch unit (B-UNIT; branching unit), and execute processing such as
この図2に示す処理フローを実現する場合、FW処理1〜5が順に行われる。
FW処理1では、ロードユニットがデータAの取り出しを行うと同時に、演算ユニットが書き出し先アドレスの計算を行う。FW処理2では、演算ユニットが、データAの比較対象データBを計算する。FW処理3では、演算ユニットがデータAとデータBとの比較を行い、FW処理4で比較結果の大きいデータが書き出し先アドレスに格納される。
すなわち、FW処理4が、メモリの書き出し先アドレスに保持していたデータを書き換える書き換え処理として位置づけられる処理であり、FW処理1〜3が、メモリに一時保持を行いながらロード、演算などを行い、その書き換え処理に先行する処理として書き換えるデータを準備する書き換え準備処理として位置づけられる処理である。
FW処理5は、ストア(メモリに保持していたデータの書き換え)を伴わない処理を、メモリに保持していたデータを書き換える処理の実行に直接関係しない後段の処理として例示したものである。
When the processing flow shown in FIG. 2 is realized,
In the
That is, the FW process 4 is a process that is positioned as a rewrite process that rewrites the data held at the write destination address of the memory, and the FW processes 1 to 3 perform loading, calculation, etc. while temporarily holding the memory, This process is positioned as a rewrite preparation process for preparing data to be rewritten as a process preceding the rewrite process.
The FW process 5 is an example of a process that does not involve storing (rewriting of data held in the memory) as a subsequent process that is not directly related to the execution of the process of rewriting data held in the memory.
次に、図2に示す処理例の実行中に障害が発生した場合の本実施形態による再試行処理について、図3を参照して説明する。
FW処理2では、ロードユニットが書き出し先アドレスのデータを読み出すと同時に、ストアユニットがプロセッサ内部に持つ汎用レジスタを使用したアクセスカウンタを参照し、書き出し先アドレスの退避を行う。この退避はメモリ領域に予め割り当てられたFW専用領域に対して行われる。
FW処理3ではFW処理2と同様の手順により、FW処理4で書き換えられる前のデータの退避をストアユニットが行う。FW処理4では、退避処理完了後、演算ユニットがアクセスカウンタを加算する。
Next, retry processing according to the present embodiment when a failure occurs during execution of the processing example shown in FIG. 2 will be described with reference to FIG.
In the FW process 2, the load unit reads the data at the write destination address, and at the same time, the store unit refers to an access counter using a general-purpose register in the processor to save the write destination address. This evacuation is performed for the FW dedicated area previously allocated to the memory area.
In the
次に、FW処理5で障害が発生すると、リカバリ処理が行われる。
FW処理〈1〉では、ロードユニットがアクセスカウンタを参照して退避エリアから復元先のアドレスを取り出す。FW処理〈2〉でも、FW処理〈1〉同様にロードユニットが退避エリアから復元データを取り出す。FW処理〈3〉では、ストアユニットがSW領域内のメモリにデータを復元する。また、同時に演算ユニットがアクセスカウンタを減算し、分岐ユニットがSW命令の先頭番地に分岐させる。
Next, when a failure occurs in the FW process 5, a recovery process is performed.
In the FW process <1>, the load unit refers to the access counter and extracts the restoration destination address from the save area. In the FW process <2>, the load unit retrieves the restored data from the save area in the same way as the FW process <1>. In the FW process <3>, the store unit restores data to the memory in the SW area. At the same time, the arithmetic unit subtracts the access counter, and the branch unit branches to the head address of the SW instruction.
次に、図1から図3を用いて上述した本実施形態の動作例における通常運用時の処理の詳細について説明する。
上述した図2に示す処理はSW命令処理の一部であり各FW処置1〜5は、追い越し不可能な処理である。この処理の流れで、FW処理4を行うとメモリのデータが書き換えられるため、障害発生後に再試行としてもう一度同じSW命令をやり直しても同じ結果にならない可能性がある。このFW処理4でのストア動作は予め決められた動作であることから、先行するFW処理2,3で、書き換えられる前のデータとそのときのアドレスを退避しておく。
Next, details of processing during normal operation in the operation example of the present embodiment described above will be described with reference to FIGS. 1 to 3.
The process shown in FIG. 2 described above is a part of the SW instruction process, and each
具体的にはFW処理2を実行する際に、FW処理1で計算されたアドレスによるデータロードを行うと同時に、ストアユニットが書き込み先アドレスを退避させておく。この退避では、プロセッサ内に設けられている汎用レジスタをアクセスカウンタとして使用する。このカウンタ値から、メモリ上の退避領域(図3ではFWが自由に使用可能なメモリ領域であるFW使用領域を設定)へのアクセスアドレスに用いて退避を行う。
Specifically, when the FW process 2 is executed, the store unit saves the write destination address at the same time as the data load by the address calculated in the
FW処理3では、FW処理2で読み出したデータ(書き換え前のデータ)をストアユニットが、アドレス同様、退避領域にストアする。データとアドレスとの住み分けは、特定の固定変位を設けて住み分けることでアクセスカウンタを共有することが可能である。
FW処理2,3での退避処理が完了したらFW処理4においてアクセスカウンタを加算しておく。これにより次回退避時にはその加算により増加されたカウンタ値でアクセスが可能となる。
In the
When the saving process in the FW processes 2 and 3 is completed, an access counter is added in the FW process 4. As a result, at the time of next saving, access is possible with the counter value increased by the addition.
なお、上述した一連の退避処理は、ストアユニットなどが行うこととして説明したが、特定のユニット(並列処理部)に限定されず、図3に示すFW処理2,3およびFW処理4での空き処理ユニットが実行するよう埋め込まれることとしてよい。
こうして空いている処理ユニット(並列処理部)が退避処理を行うことにより、並列処理装置における空いている並列処理部を有効に活用することができるため、通常処理における処理速度を低下させることなく、退避処理も並行させて処理を実行していくことができる。
Although the above-described series of save processing has been described as being performed by a store unit or the like, it is not limited to a specific unit (parallel processing unit), and is free in the
Since the vacant processing unit (parallel processing unit) performs the evacuation process in this way, the vacant parallel processing unit in the parallel processing device can be effectively used, so without reducing the processing speed in the normal processing, Processing can be executed in parallel with the save processing.
次に、図2、図3により上述した動作における障害発生後の命令再試行処理の詳細について説明する。
FW処理4以降の処理、例えばFW処理5において救済可能な間欠障害(一時的な1ビットエラーによる障害など)が発生した場合、障害処理用のリカバリFWが起動する。このリカバリFWによるリカバリ処理(復元処理)をFW処理〈1〉〜〈3〉とする。
Next, details of the instruction retry process after the occurrence of a failure in the operation described above with reference to FIGS. 2 and 3 will be described.
When an intermittent failure that can be remedied in FW processing 4 or later processing, for example, FW processing 5 (a failure due to a temporary 1-bit error, etc.) occurs, recovery FW for failure processing is activated. The recovery processing (restoration processing) by this recovery FW is defined as FW processing <1> to <3>.
FW処理〈1〉では、ロードユニットが退避エリアから退避データの復元先アドレスを取り出す。FW処理〈2〉では、ロードユニットが復元すべきデータを退避エリアから取り出す。この処理における退避エリアへのアクセスは、退避時と同様アクセスカウンタを用いて行う。
すなわち、複数の退避がある場合は、退避する度に加算されたカウンタ値に対して、復元すべきデータを退避エリアから取り出す度に減算しながらアクセスする。
このことにより、複数回の退避データの復元を行うこともできる。
In the FW process <1>, the load unit extracts the restoration destination address of the saved data from the save area. In the FW process <2>, data to be restored by the load unit is taken out from the save area. Access to the save area in this process is performed using an access counter as in the save.
That is, when there are a plurality of saves, the counter value added each time the save is performed is accessed while subtracting the data to be restored from the save area.
As a result, the saved data can be restored a plurality of times.
FW処理〈3〉では、これら復元情報により復元先アドレスに復元データをストアすると同時に、分岐ユニットがこのSW命令の最初に分岐させることで、SW命令の実行そのものをやり直す。すなわち、FW処理4に先行する書き換え準備処理であるFW処理1からの処理を再試行する。
この再試行を行うことにより、従来では救済できなかったプロセスを救済可能とすることができる。
In the FW process <3>, the restoration data is stored at the restoration destination address based on the restoration information, and at the same time, the branch unit branches at the beginning of the SW instruction, thereby redoing the execution of the SW instruction. That is, the process from the
By performing this retry, it is possible to relieve a process that could not be relieved in the past.
以上のように、第1の実施形態によれば、以下の効果が得られる。
第1の効果は、HWの設計品質が確保でき、必要以上のHW投資が不要なことにある。すなわち、データ書き換えの更新時に行う制御や障害発生時の再試行制御をHWとして作り込む必要をなくすことができるため、HWの通常制御とあわせて複雑な回路を組み込む必要をなくすことができ、設計品質の確保や、HW資源の投資を不要にできることにある。
その理由は、本発明では全てFWによる制御を行っており、使用するHWも特別に設けたものを使用していないため、HWの構成を処理高速化にも適応した簡略化されたものとすることができるからである。
As described above, according to the first embodiment, the following effects can be obtained.
The first effect is that the design quality of the HW can be secured, and unnecessary HW investment is unnecessary. In other words, since it is possible to eliminate the need to create control for performing data rewrite updates and retry control when a failure occurs as a HW, it is possible to eliminate the need to incorporate complicated circuits together with normal control for HW. This is to ensure quality and eliminate the need for HW resource investment.
The reason is that, in the present invention, all control is performed by FW, and a specially provided HW is not used. Therefore, the configuration of the HW is simplified to be adapted for high-speed processing. Because it can.
第2の効果は、性能遅延を極小化したうえで可用性(安定した継続運用性能)の向上が実現できることにある。
その理由は、VLIWアーキテクチャにおける空きユニット(並列処理部)が、本来の処理である書き換え準備処理(FW処理1〜3)および書き換え処理(FW処理4)と並列に退避に関わる処理を実行するためである。
The second effect is that it is possible to improve availability (stable continuous operation performance) while minimizing performance delay.
The reason is that an empty unit (parallel processing unit) in the VLIW architecture executes a process related to saving in parallel with the rewrite preparation process (
次に、本発明の第2の実施形態としての並列処理装置の構成と処理とについて、図4を参照して詳細に説明する。
この第2の実施形態は、上述した第1の実施形態に対して、アクセスカウンタをプロセッサ内部の汎用レジスタでなく、メモリ内に設けるようにしたものである。
Next, the configuration and processing of the parallel processing apparatus as the second embodiment of the present invention will be described in detail with reference to FIG.
In the second embodiment, an access counter is provided in a memory instead of a general-purpose register in the processor as compared with the first embodiment described above.
FW処理1’では、ロードユニットがメモリ内に設けたアクセスカウンタの読み出しを行う。FW処理2’では、演算ユニットが読み出したアクセスカウンタに加算を行う。
これらFW処理1’〜2’は一連のSW命令処理のうちFW処理1に先行して行われる処理と並行して実施して構わない。
In the
These FW processes 1 ′ to 2 ′ may be performed in parallel with a process performed prior to the
FW処理1では上述した第1の実施形態と同様にSW命令処理の一部が行われるが、同時にFW処理2’で加算されたアクセスカウンタ値をストアユニットがメモリ内のカウンタ領域に書き込む。FW処理2、3では上述した第1の実施形態と同じ処理が行われる。
FW処理4ではSW命令処理の一部を実行するだけとなる。すなわち、このFW処理4では、ストアユニットが比較結果の大きいデータを書き出し先アドレスに格納するだけとなる。
In the
In the FW process 4, only a part of the SW instruction process is executed. That is, in this FW process 4, the store unit only stores data having a large comparison result at the write destination address.
次に、第2の実施形態における障害発生後の処理について説明する。
FW処理〈1’〉では、ロードユニットがメモリ上のアクセスカウンタを読み出す。FW処理〈1〉では、第1の実施形態同様、ロードユニットが復元先のアドレス取り出しを行うと同時に、演算ユニットが読み出したアクセスカウンタの減算を行う。FW処理〈2〉では、ロードユニットが復元データを取り出すと同時に、減算されたカウンタ値をストアユニットがメモリ内のアクセスカウンタに書き込む。FW処理〈3〉では、ストアユニットが復元先アドレスに復元データを書き戻し、分岐ユニットがSW命令の先頭に戻す。
Next, processing after the occurrence of a failure in the second embodiment will be described.
In the FW process <1 ′>, the load unit reads the access counter on the memory. In the FW process <1>, as in the first embodiment, the load unit extracts the restoration destination address and simultaneously subtracts the access counter read by the arithmetic unit. In the FW process <2>, the load unit retrieves the restored data, and at the same time, the store unit writes the subtracted counter value to the access counter in the memory. In the FW process <3>, the store unit writes the restored data back to the restoration destination address, and the branch unit returns to the beginning of the SW instruction.
以上説明したように、アクセスカウンタはプロセッサ内部のレジスタを用いずに特定のメモリ領域でも実現可能であり、使用するHWに合わせてカウンタの更新制御は変更されても構わない。さらにアクセスカウンタそのものも、退避領域へのアクセスが一意に行えるのであれば、特に上述した各実施形態で示した方法に限定されず、任意のものであってよい。 As described above, the access counter can be realized in a specific memory area without using a register in the processor, and the counter update control may be changed according to the HW to be used. Further, the access counter itself is not particularly limited to the method described in each of the above-described embodiments as long as the access to the save area can be uniquely performed, and may be arbitrary.
また、上述した各実施形態は、本発明の好適な実施形態であり、本発明の主旨を逸脱しない範囲内において、種々変形して実施することが可能である。
例えば、上述した各実施形態では、データ書き出し先アドレスや書き換え前データを退避させる処理は書き換え処理の直前に行われることとして説明しているが、書き換え処理よりも前に実行されて書き込み先のデータが退避データと同じになるのであればそのタイミングに限定されず、任意のタイミングで行われることとしてよい。
Each of the above-described embodiments is a preferred embodiment of the present invention, and various modifications can be made without departing from the spirit of the present invention.
For example, in each of the above-described embodiments, the process of saving the data write destination address and the pre-rewrite data is described as being performed immediately before the rewrite process, but the write destination data is executed before the rewrite process. Is the same as the saved data, it is not limited to the timing, and may be performed at an arbitrary timing.
また、上述した各実施形態では退避データを限定していないが、HW資源の使用制約やFW制御上の限界から、一定の制約(特定範囲内のアドレス、特定長内のデータなど)を与えて実現しても構わない。 In addition, the save data is not limited in each of the above-described embodiments, but given certain restrictions (address within a specific range, data within a specific length, etc.) due to restrictions on the use of HW resources and FW control. It does not matter if it is realized.
また、メモリ内のデータ更新のみならずSWから透過なレジスタについても退避可能であり、逆にSWから透過なレジスタの更新のみを退避/復元対象とする構成であっても構わない。この場合、退避先はメモリ内であってもよく、またSWから透過ではないワークレジスタでも良いが、この透過ではないワークレジスタとする場合、メモリ内のデータ更新以降は再試行不可能となる。 Further, not only the data update in the memory but also a register transparent from the SW can be saved, and conversely, only the update of the register transparent from the SW can be saved / restored. In this case, the save destination may be in the memory or may be a work register that is not transparent from the SW. However, when the work register is not transparent, it is impossible to retry after updating the data in the memory.
上述した退避/復元処理の埋め込みは、上述した一定の制約に当てはまるストア動作をキーにしてコンパイル時に自動生成してよいし、FW作成ツールで盛り込んでも構わない。また、退避処理埋め込み箇所に特定のパターンが存在する場合は、退避処理をパターン化して作り込むことも可能である。 The embedding of the saving / restoring process described above may be automatically generated at the time of compiling using a store operation that meets the above-described certain restrictions as a key, or may be included by an FW creation tool. Further, when a specific pattern exists in the save process embedding location, the save process can be created in a pattern.
また、以上に、本発明に係る並列処理装置をVLIWアーキテクチャプロセッサを用いた並列処理装置に適用した一実施形態について説明したが、複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置であればこのものに限定されず、例えばスーパースカラによるプロセッサなどにも本発明は同様に適用可能である。 Further, the embodiment in which the parallel processing device according to the present invention is applied to the parallel processing device using the VLIW architecture processor has been described above. However, the parallel processing device includes a plurality of parallel processing units and can be processed in parallel by each parallel processing unit. However, the present invention is not limited to this as long as it is a parallel processing apparatus, and the present invention can be similarly applied to, for example, a superscalar processor.
本発明は、例えば高信頼性、高可用性(安定した継続運用性能)の求められるハイエンドサーバ領域での無停止運用を必要とするシステムなどに適用可能である。 The present invention is applicable to, for example, a system that requires non-stop operation in a high-end server area where high reliability and high availability (stable continuous operation performance) are required.
Claims (10)
メモリに保持していたデータを書き換える処理が実行される場合に、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させ、
前記書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元処理を行うことで、各並列処理部が前記書き換え準備処理から再試行するよう構成されたことを特徴とする並列処理装置。 A parallel processing device including a plurality of parallel processing units and capable of processing in parallel by each parallel processing unit,
When the process of rewriting the data held in the memory is executed, the parallel processing unit that is vacant during the rewrite preparation process preceding the instruction to be rewritten saves the data write destination address and the pre-rewrite data in the memory,
When a failure occurs after execution of the instruction to be rewritten, each parallel processing unit retries from the rewriting preparation process by performing a restoration process that retrieves and restores the saved data write destination address and the pre-rewrite data. A parallel processing device configured to perform
前記データ書き出し先アドレスおよび前記書き換え前データを退避させる毎に前記カウンタ手段を加算し、
障害発生後に前記復元処理を行う際には、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタ手段を減算することを特徴とする請求項1記載の並列処理装置。 A counter means,
The counter means is added each time the data write destination address and the pre-rewrite data are saved,
2. The parallel processing apparatus according to claim 1, wherein when the restoration process is performed after a failure occurs, the counter means is subtracted every time the saved data write destination address and the pre-rewrite data are taken out.
メモリに保持していたデータを書き換える処理が実行される場合に、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させる退避工程と、
前記書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元工程と、
前記復元工程の後で各並列処理部が前記書き換え準備処理から再試行する再試行工程とを備えたことを特徴とする命令再試行方法。 An instruction retry method in a parallel processing device comprising a plurality of parallel processing units and capable of processing in parallel by each parallel processing unit,
When a process for rewriting data held in the memory is executed, a parallel processing unit that is vacant during the rewrite preparation process preceding the instruction to be rewritten saves the data write destination address and the pre-rewrite data in the memory When,
When a failure occurs after execution of the instruction to be rewritten, a restoration step of taking out and restoring the saved data write destination address and the pre-rewrite data;
An instruction retry method comprising: a retry step in which each parallel processing unit re-trys from the rewrite preparation processing after the restoration step.
前記復元工程では、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタを減算することを特徴とする請求項6記載の命令再試行方法。 In the saving step, a counter is added each time the data write destination address and the pre-rewrite data are saved,
7. The instruction retry method according to claim 6, wherein in the restoration step, the counter is subtracted every time the saved data write destination address and the pre-rewrite data are taken out.
メモリに保持していたデータを書き換える処理が実行される場合、
コンピュータに、
当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させる退避処理と、
前記書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元処理と、
前記復元処理の後で各並列処理部が前記書き換え準備処理から再試行する再試行処理とを実行させることを特徴とする命令再試行プログラム。 An instruction retry program in a parallel processing device that includes a plurality of parallel processing units and can be processed in parallel by each parallel processing unit,
When processing to rewrite the data held in memory is executed,
On the computer,
A save process in which a parallel processing unit that is free during the rewrite preparation process preceding the instruction to be rewritten saves the data write destination address and pre-rewrite data in the memory;
If a failure occurs after execution of the instruction to be rewritten, a restoration process for taking out and restoring the saved data write destination address and the pre-rewrite data;
An instruction retry program that causes each parallel processing unit to perform a retry process from the rewrite preparation process after the restoration process.
前記復元処理では、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタを減算することを特徴とする請求項9記載の命令再試行プログラム。
In the save process, a counter is added each time the data write destination address and the pre-rewrite data are saved,
10. The instruction retry program according to claim 9, wherein in the restoration process, the counter is subtracted every time the saved data write destination address and the pre-rewrite data are taken out.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004096661A JP3988740B2 (en) | 2004-03-29 | 2004-03-29 | Parallel processing device, instruction retry method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004096661A JP3988740B2 (en) | 2004-03-29 | 2004-03-29 | Parallel processing device, instruction retry method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005284647A JP2005284647A (en) | 2005-10-13 |
JP3988740B2 true JP3988740B2 (en) | 2007-10-10 |
Family
ID=35182962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004096661A Expired - Fee Related JP3988740B2 (en) | 2004-03-29 | 2004-03-29 | Parallel processing device, instruction retry method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3988740B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422658A (en) * | 2011-09-21 | 2017-12-01 | 日立汽车系统株式会社 | Programing change acquisition methods |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946582B2 (en) | 2010-10-14 | 2018-04-17 | Nec Corporation | Distributed processing device and distributed processing system |
-
2004
- 2004-03-29 JP JP2004096661A patent/JP3988740B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422658A (en) * | 2011-09-21 | 2017-12-01 | 日立汽车系统株式会社 | Programing change acquisition methods |
CN107422658B (en) * | 2011-09-21 | 2020-03-10 | 日立汽车系统株式会社 | Program change acquisition method |
Also Published As
Publication number | Publication date |
---|---|
JP2005284647A (en) | 2005-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5105887B2 (en) | Apparatus and method for handling data cache misses for asynchronous pipelines out-of-order | |
US7774636B2 (en) | Method and system for kernel panic recovery | |
EP1966697B1 (en) | Software assisted nested hardware transactions | |
JP5161696B2 (en) | Virtual computer system, error recovery method in virtual computer system, and virtual computer control program | |
WO1995016959A1 (en) | System and method for synchronization in split-level data cache system | |
JP2003067184A (en) | Checkpointing of superscalar out-of-order processor for error recovery | |
JP2017037370A (en) | Computing device, process control method and process control program | |
TWI786181B (en) | Permitting unaborted processing of transaction after exception mask update instruction | |
US6490668B2 (en) | System and method for dynamically moving checksums to different memory locations | |
JP2007531164A (en) | Method and structure for explicit software control of data speculation | |
JP2009134565A (en) | Virtual machine system and method for controlling virtual machine system | |
JPS58121457A (en) | Information processing device | |
JP3988740B2 (en) | Parallel processing device, instruction retry method, and program | |
JP4155052B2 (en) | Emulator, emulation method and program | |
JPH07141176A (en) | Command retrial control system | |
JP2007532990A (en) | Method and structure for explicit software control of thread execution including helper subthreads | |
US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
JP2009230479A (en) | Microprocessor | |
WO2010109631A1 (en) | Information processing device, information processing method and information processing program | |
JP5163061B2 (en) | Multiprocessor system, microprocessor, and microprocessor fault processing method | |
JP6691294B2 (en) | Information processing apparatus, dynamic link program, and program restart method | |
JP2007094986A (en) | Simulation apparatus and simulation method | |
JP2671160B2 (en) | Exception handling method | |
JP2022510763A (en) | Equipment and data processing methods for transactional memory | |
KR20140111416A (en) | Apparatus and method for non-blocking execution of a static scheduled processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20070626 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070709 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100727 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: 20110727 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110727 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120727 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120727 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130727 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |