JP3988740B2 - 並列処理装置、命令再試行方法、およびプログラム - Google Patents
並列処理装置、命令再試行方法、およびプログラム 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
一例として、本出願人による特許文献1のものでは、プロセッサでマイクロコードの実行中に障害を検出した場合、キャッシュデータ待避制御回路を備えたキャッシュデータ待避部により、予め待避しておいたそのマイクロコードに先行するマイクロコードによって更新された書き込みデータをキャッシュメモリに書き戻して復旧させている。
近年、プロセッサの高速化に伴い、個々の命令が簡素化して制御も簡素化されてくると同時に、複数命令が同時に実行できるアーキテクチャに移行してきている。このような背景から、複雑なHW制御を用いずに再試行可能とする手段が必要とされていた。
上記したカウンタ手段は、メモリ内に設けられてもよい。
上記した各処理は、ファームウェアに基づいて実行されることが好ましい。
上記した各工程は、ファームウェアに基づいて行われることが好ましい。
このことにより、通常運用時にも処理速度の低下をほとんど発生させず、障害発生時にも命令実行の再試行を行うことができ、安定した運用を行う(可用性を向上させる)ことができる。
本実施形態としての並列処理装置は、特別なHW制御を用いずにファームウェア(以下、FW)による制御のみでソフトウェア(以下、SW)命令の再試行を可能とする好適なものを例示している。
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資源の投資を行わずにプロセスの救済率を向上させることができる。
この図2は、1ステップで複数の処理ユニットが実行可能なVLIWアーキテクチャプロセッサについての、あるSW命令の処理フローの一部を抜き出したものである。
FW処理1では、ロードユニットがデータAの取り出しを行うと同時に、演算ユニットが書き出し先アドレスの計算を行う。FW処理2では、演算ユニットが、データAの比較対象データBを計算する。FW処理3では、演算ユニットがデータAとデータBとの比較を行い、FW処理4で比較結果の大きいデータが書き出し先アドレスに格納される。
すなわち、FW処理4が、メモリの書き出し先アドレスに保持していたデータを書き換える書き換え処理として位置づけられる処理であり、FW処理1〜3が、メモリに一時保持を行いながらロード、演算などを行い、その書き換え処理に先行する処理として書き換えるデータを準備する書き換え準備処理として位置づけられる処理である。
FW処理5は、ストア(メモリに保持していたデータの書き換え)を伴わない処理を、メモリに保持していたデータを書き換える処理の実行に直接関係しない後段の処理として例示したものである。
FW処理2では、ロードユニットが書き出し先アドレスのデータを読み出すと同時に、ストアユニットがプロセッサ内部に持つ汎用レジスタを使用したアクセスカウンタを参照し、書き出し先アドレスの退避を行う。この退避はメモリ領域に予め割り当てられたFW専用領域に対して行われる。
FW処理3ではFW処理2と同様の手順により、FW処理4で書き換えられる前のデータの退避をストアユニットが行う。FW処理4では、退避処理完了後、演算ユニットがアクセスカウンタを加算する。
FW処理〈1〉では、ロードユニットがアクセスカウンタを参照して退避エリアから復元先のアドレスを取り出す。FW処理〈2〉でも、FW処理〈1〉同様にロードユニットが退避エリアから復元データを取り出す。FW処理〈3〉では、ストアユニットがSW領域内のメモリにデータを復元する。また、同時に演算ユニットがアクセスカウンタを減算し、分岐ユニットがSW命令の先頭番地に分岐させる。
上述した図2に示す処理はSW命令処理の一部であり各FW処置1〜5は、追い越し不可能な処理である。この処理の流れで、FW処理4を行うとメモリのデータが書き換えられるため、障害発生後に再試行としてもう一度同じSW命令をやり直しても同じ結果にならない可能性がある。このFW処理4でのストア動作は予め決められた動作であることから、先行するFW処理2,3で、書き換えられる前のデータとそのときのアドレスを退避しておく。
FW処理2,3での退避処理が完了したらFW処理4においてアクセスカウンタを加算しておく。これにより次回退避時にはその加算により増加されたカウンタ値でアクセスが可能となる。
こうして空いている処理ユニット(並列処理部)が退避処理を行うことにより、並列処理装置における空いている並列処理部を有効に活用することができるため、通常処理における処理速度を低下させることなく、退避処理も並行させて処理を実行していくことができる。
FW処理4以降の処理、例えばFW処理5において救済可能な間欠障害(一時的な1ビットエラーによる障害など)が発生した場合、障害処理用のリカバリFWが起動する。このリカバリFWによるリカバリ処理(復元処理)をFW処理〈1〉〜〈3〉とする。
すなわち、複数の退避がある場合は、退避する度に加算されたカウンタ値に対して、復元すべきデータを退避エリアから取り出す度に減算しながらアクセスする。
このことにより、複数回の退避データの復元を行うこともできる。
この再試行を行うことにより、従来では救済できなかったプロセスを救済可能とすることができる。
第1の効果は、HWの設計品質が確保でき、必要以上のHW投資が不要なことにある。すなわち、データ書き換えの更新時に行う制御や障害発生時の再試行制御をHWとして作り込む必要をなくすことができるため、HWの通常制御とあわせて複雑な回路を組み込む必要をなくすことができ、設計品質の確保や、HW資源の投資を不要にできることにある。
その理由は、本発明では全てFWによる制御を行っており、使用するHWも特別に設けたものを使用していないため、HWの構成を処理高速化にも適応した簡略化されたものとすることができるからである。
その理由は、VLIWアーキテクチャにおける空きユニット(並列処理部)が、本来の処理である書き換え準備処理(FW処理1〜3)および書き換え処理(FW処理4)と並列に退避に関わる処理を実行するためである。
この第2の実施形態は、上述した第1の実施形態に対して、アクセスカウンタをプロセッサ内部の汎用レジスタでなく、メモリ内に設けるようにしたものである。
これらFW処理1’〜2’は一連のSW命令処理のうちFW処理1に先行して行われる処理と並行して実施して構わない。
FW処理4ではSW命令処理の一部を実行するだけとなる。すなわち、このFW処理4では、ストアユニットが比較結果の大きいデータを書き出し先アドレスに格納するだけとなる。
FW処理〈1’〉では、ロードユニットがメモリ上のアクセスカウンタを読み出す。FW処理〈1〉では、第1の実施形態同様、ロードユニットが復元先のアドレス取り出しを行うと同時に、演算ユニットが読み出したアクセスカウンタの減算を行う。FW処理〈2〉では、ロードユニットが復元データを取り出すと同時に、減算されたカウンタ値をストアユニットがメモリ内のアクセスカウンタに書き込む。FW処理〈3〉では、ストアユニットが復元先アドレスに復元データを書き戻し、分岐ユニットがSW命令の先頭に戻す。
例えば、上述した各実施形態では、データ書き出し先アドレスや書き換え前データを退避させる処理は書き換え処理の直前に行われることとして説明しているが、書き換え処理よりも前に実行されて書き込み先のデータが退避データと同じになるのであればそのタイミングに限定されず、任意のタイミングで行われることとしてよい。
Claims (10)
- 複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置であって、
メモリに保持していたデータを書き換える処理が実行される場合に、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させ、
前記書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元処理を行うことで、各並列処理部が前記書き換え準備処理から再試行するよう構成されたことを特徴とする並列処理装置。 - カウンタ手段を備え、
前記データ書き出し先アドレスおよび前記書き換え前データを退避させる毎に前記カウンタ手段を加算し、
障害発生後に前記復元処理を行う際には、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタ手段を減算することを特徴とする請求項1記載の並列処理装置。 - 前記カウンタ手段は、プロセッサ内部の汎用レジスタに設けられたことを特徴とする請求項1または2記載の並列処理装置。
- 前記カウンタ手段は、メモリ内に設けられたことを特徴とする請求項1または2記載の並列処理装置。
- 前記各処理は、ファームウェアに基づいて実行されることを特徴とする請求項1から4の何れか1項に記載の並列処理装置。
- 複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置における命令再試行方法であって、
メモリに保持していたデータを書き換える処理が実行される場合に、当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させる退避工程と、
前記書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元工程と、
前記復元工程の後で各並列処理部が前記書き換え準備処理から再試行する再試行工程とを備えたことを特徴とする命令再試行方法。 - 前記退避工程では、前記データ書き出し先アドレスおよび前記書き換え前データを退避させる毎にカウンタを加算し、
前記復元工程では、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタを減算することを特徴とする請求項6記載の命令再試行方法。 - 前記各工程は、ファームウェアに基づいて行われることを特徴とする請求項6または7記載の命令再試行方法。
- 複数の並列処理部を備えて各並列処理部により並列に処理可能な並列処理装置における命令再試行プログラムであって、
メモリに保持していたデータを書き換える処理が実行される場合、
コンピュータに、
当該書き換える命令に先行する書き換え準備処理中に空いている並列処理部がメモリにおけるデータ書き出し先アドレスおよび書き換え前データを退避させる退避処理と、
前記書き換える命令の処理実行後に障害が発生した場合、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出して復元する復元処理と、
前記復元処理の後で各並列処理部が前記書き換え準備処理から再試行する再試行処理とを実行させることを特徴とする命令再試行プログラム。 - 前記退避処理では、前記データ書き出し先アドレスおよび前記書き換え前データを退避させる毎にカウンタを加算し、
前記復元処理では、退避させた前記データ書き出し先アドレスおよび前記書き換え前データを取り出す度に前記カウンタを減算することを特徴とする請求項9記載の命令再試行プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004096661A JP3988740B2 (ja) | 2004-03-29 | 2004-03-29 | 並列処理装置、命令再試行方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004096661A JP3988740B2 (ja) | 2004-03-29 | 2004-03-29 | 並列処理装置、命令再試行方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005284647A JP2005284647A (ja) | 2005-10-13 |
JP3988740B2 true JP3988740B2 (ja) | 2007-10-10 |
Family
ID=35182962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004096661A Expired - Fee Related JP3988740B2 (ja) | 2004-03-29 | 2004-03-29 | 並列処理装置、命令再試行方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3988740B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422658A (zh) * | 2011-09-21 | 2017-12-01 | 日立汽车***株式会社 | 程序变更获取方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2629198A4 (en) * | 2010-10-14 | 2014-04-16 | Nec Corp | DISTRIBUTED TREATMENT DEVICE AND DISTRIBUTED TREATMENT SYSTEM |
-
2004
- 2004-03-29 JP JP2004096661A patent/JP3988740B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422658A (zh) * | 2011-09-21 | 2017-12-01 | 日立汽车***株式会社 | 程序变更获取方法 |
CN107422658B (zh) * | 2011-09-21 | 2020-03-10 | 日立汽车***株式会社 | 程序变更获取方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2005284647A (ja) | 2005-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5105887B2 (ja) | 非同期式パイプラインのためのデータ・キャッシュ・ミスをアウト・オブ・オーダ方式で処理するための装置及び方法 | |
EP1966697B1 (en) | Software assisted nested hardware transactions | |
US7774636B2 (en) | Method and system for kernel panic recovery | |
JP5161696B2 (ja) | 仮想計算機システムおよび仮想計算機システムにおけるエラー回復方法ならびに仮想計算機制御プログラム | |
WO1995016959A1 (fr) | Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux | |
JP2003067184A (ja) | エラー・リカバリのためのスーパースカラ、アウトオブオーダ・プロセッサのチェックポインティング | |
JP2006048696A (ja) | 複数の順序ベクトルで複数のメモリ順序モデルを実施する方法及び装置 | |
JP2007531164A (ja) | データスペキュレーションの明示的ソフトウェア制御のための方法及び構造 | |
TWI786181B (zh) | 在例外遮罩更新指令之後允許未中止的交易處理 | |
JP2017037370A (ja) | 計算機、プロセス制御方法およびプロセス制御プログラム | |
EP3123321A1 (en) | Software replayer for transactional memory programs | |
US6490668B2 (en) | System and method for dynamically moving checksums to different memory locations | |
JP2007532990A (ja) | ヘルパーサブスレッドを含むスレッドの実行の明示的ソフトウェア制御のための方法及び構造 | |
JP2009134565A (ja) | 仮想計算機システム及び仮想計算機システムの制御方法 | |
JPS58121457A (ja) | 情報処理装置 | |
JP3988740B2 (ja) | 並列処理装置、命令再試行方法、およびプログラム | |
JP2007094986A (ja) | シミュレーション装置およびシミュレーション方法 | |
JP4155052B2 (ja) | エミュレータ、エミュレーション方法およびプログラム | |
JPH07141176A (ja) | コマンドリトライ制御方式 | |
US7890740B2 (en) | Processor comprising a first and a second mode of operation and method of operating the same | |
JP2009230479A (ja) | マイクロプロセッサ | |
WO2010109631A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP5163061B2 (ja) | マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法 | |
JP2022510763A (ja) | トランザクショナル・メモリのための装置及びデータ処理方法 | |
JP2671160B2 (ja) | 例外処理方式 |
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 |