JP5888419B2 - データ処理装置、プロセッサ、及び動作履歴記録方法 - Google Patents
データ処理装置、プロセッサ、及び動作履歴記録方法 Download PDFInfo
- Publication number
- JP5888419B2 JP5888419B2 JP2014527917A JP2014527917A JP5888419B2 JP 5888419 B2 JP5888419 B2 JP 5888419B2 JP 2014527917 A JP2014527917 A JP 2014527917A JP 2014527917 A JP2014527917 A JP 2014527917A JP 5888419 B2 JP5888419 B2 JP 5888419B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- operation information
- unit
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、データ処理装置において、動作の内容を表す動作情報を履歴として保存するための技術に関する。
コンピュータ等のデータ処理装置では、処理に必要なデータは主記憶装置上に読出されて用いられる。主記憶装置では、アクセスはアドレス別に行われる。それにより、主記憶装置のエラーは各アドレスで発生する可能性がある。このことから、高い信頼性が要求されるデータ処理装置の多くは、ECC(Error Correcting Code)を格納可能な主記憶装置をサポートしている。ECCを格納可能な主記憶装置は以降、便宜的に「ECCメモリ」と表記する。
ECCメモリの各アドレスには、データと共に、ECCが格納される。ECCは、データと共に読出され、発生したエラーの検出、発生したエラーの訂正に用いられる。このことから、ECCメモリを採用したデータ処理装置では、より高い信頼性を実現させることができる。
ECCメモリを採用したデータ処理装置では、訂正可能なエラーが検出された場合、そのエラーが検出されたアドレスにリライトアクセスが行われるのが普通である。このリライトアクセスは、訂正可能なエラーが固定故障によるものか否かを確認するためのアクセスである。リライトアクセスでは、データの書込み、及び書込んだデータの読出しが行われる。従来のデータ処理装置の多くは、そのリライトアクセスにより再度、訂正可能なエラーが検出された場合、主記憶装置に固定故障が発生していると判定する。
主記憶装置は、通常、データを記憶する記憶装置であるメモリチップが複数、プリント基板に実装されたメモリモジュールである。メモリモジュールのなかには、通常は使用しないメモリチップ(以降「冗長メモリチップ」と表記)を1個以上、実装したものがある。メモリモジュールでは、実装されたメモリチップをグループ化し、グループ別にメモリチップにアクセスするようになっているものがある。それにより、1つ以上のグループを冗長用とすることも行われている。
データ処理装置では、発生した障害の原因を特定するために、動作内容を表す動作情報を履歴として保存することも行われている。履歴として保存する動作情報は、より多いほうが望ましい。メモリチップには、多くの動作情報を保存することができる。このことから、従来のデータ処理装置のなかには、動作情報の保存に冗長メモリチップを使用するものがある。
動作情報の保存に冗長メモリチップを使用する従来のデータ処理装置では、使用しているメモリチップに発生した固定故障により、固定故障が発生したメモリチップの代替として冗長メモリチップを使用する。固定故障が発生したメモリチップの代替として使用する冗長メモリチップには、動作情報を格納することができない。このため、従来のデータ処理装置のなかには、動作情報を格納する別の記憶装置を設けているものがある。
固定故障が発生したメモリチップの代替として冗長メモリチップを使用することにより、データ処理装置は処理の実行を継続させることができる。しかし、別の記憶装置を備えた従来のデータ処理装置では、冗長メモリチップを代替用とした後、動作情報は別の記憶装置にしか保存することはできない。別の記憶装置は、冗長メモリチップに格納する動作情報を一時的に保存するために用いていることから、容量はメモリチップと比較して非常に小さい。そのため、従来のデータ処理装置は、十分な動作情報を確保することが非常に困難となっている。
別の記憶装置として十分な容量の記憶装置を採用した場合、動作情報は冗長メモリチップに格納する必要はないことになる。十分な容量の記憶装置は、1個の部品として実装するのが普通である。そのため、十分な容量の記憶装置を採用すると、部品点数が増え、データ処理装置の製造コストを大きく増大させることになる。このようなことから、製造コストの上昇を抑えることは、十分な動作情報を蓄積できるようにすることと共に重要と思われる。
1側面では、本発明は、製造コストの上昇を抑えつつ、十分な動作情報を蓄積可能なデータ処理装置を提供することを目的とする。
本発明を適用した1システムは、第1の記憶部、及び第1の記憶部の代替とする第2の記憶部を備えた主記憶装置と、動作の内容を表す動作情報を生成する情報生成手段と、主記憶装置の第1の記憶部、及び第2の記憶部にアクセス可能なアクセス手段と、第2の記憶部を第1の記憶部の代替とするか否かを判定し、該判定結果を用いてアクセス手段を制御することにより、第2の記憶部を第1の記憶部の代替としない場合、動作情報を第2の記憶部に、動作情報以外の主記憶装置に格納すべきデータを第1の記憶部にそれぞれ格納させ、第2の記憶部を第1の記憶部の代替とする場合、動作情報を第1の記憶部に、動作情報以外の主記憶装置に格納すべきデータを第2の記憶部にそれぞれ格納させる代替判定手段と、を有する。
本発明を適用した1システムでは、製造コストの上昇を抑えつつ、十分な動作情報を蓄積することができる。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態によるデータ処理装置の構成例を説明する図である。本実施形態によるデータ処理装置は、例えばサーバとして用いられるコンピュータであり、図1に表すように、プロセッサ1、サービスプロセッサ(SVP)2、主記憶装置3、及びI/O(Input/Output)装置4を備えている。
図1は、本実施形態によるデータ処理装置の構成例を説明する図である。本実施形態によるデータ処理装置は、例えばサーバとして用いられるコンピュータであり、図1に表すように、プロセッサ1、サービスプロセッサ(SVP)2、主記憶装置3、及びI/O(Input/Output)装置4を備えている。
図1に表す構成例は、本実施形態によるデータ処理装置が備える特に主要な構成要素を抜粋して表した場合の構成例である。本実施形態によるデータ処理装置の構成は、図1に表す構成例に限定されない。例えば、プロセッサ1は複数、搭載されていても良い。主記憶装置3は、プロセッサ1毎に設けても良いが、1つ以上のプロセッサ1にそれぞれ接続された主記憶装置3を複数のプロセッサ3で共有させても良い。
上記SVP2は、データ処理装置を管理するための管理装置であり、不図示の端末装置とネットワークを介して接続されている。データ処理装置の保守・運用は、SVP2を用いて行うことができる。
I/O装置4は、例えばプロセッサ1が実行する各種プログラム、プログラムの実行に必要なデータ等を格納した外部記憶装置である。I/O装置4がそのような外部記憶装置であった場合、I/O装置4に格納されたプログラムのなかで実行の対象となるプログラム、実行中のプログラムの処理に必要なデータは主記憶装置3に読出される。
プロセッサ1は、本実施形態によるプロセッサであり、SVP2からのコマンドに従い、そのコマンドによって指定される処理を実行する。このプロセッサ1は、図1に表すように、命令処理部11、キャッシュ制御部12、I/O制御部13、SVPコマンド制御部14、及びメモリアクセス制御部15を備える。
命令処理部11は、プログラムの実行により処理を行う。この命令処理部11は、実際には1つ以上のプロセッサ・コアである。キャッシュ制御部12は、例えばプログラムの命令、及びデータをそれぞれ格納する2つのキャッシュメモリを備え、各キャッシュメモリの各エントリに格納する命令、或いはデータを制御する。I/O制御部13、及びメモリアクセス制御部15は、キャッシュ制御部12の制御に応じて動作する。I/O制御部13は、キャッシュ制御部12により指定されたデータをI/O装置4から読出す、或いはI/O装置4に書込むアクセスを行う。メモリアクセス制御部15も同様に、キャッシュ制御部12により指定されたデータを主記憶装置3から読出す、或いは主記憶装置3に書込むアクセスを行う。
図2A及び図2Bは、メモリアクセス制御部の構成例を説明する図である。ここでは、説明上、便宜的に、主記憶装置3は、通常時、命令処理部11に供給するデータの格納に使用されるメモリチップ31、及びメモリチップ31の代替用であるメモリチップ32がそれぞれ1つ実装されたメモリモジュールとして表している。主記憶装置3として採用されるメモリモジュールは、例えばDIMM(Dual Inline Memory Module)である。図2B中、メモリチップ31は「通常メモリ」、メモリチップ32は「スペアメモリ」とそれぞれ表記している。以降、この表記を用いる。通常メモリ31、及びスペアメモリ32として使用するメモリチップの個数は、特に限定されない。
通常メモリ31は、上記のように、固定故障が発生しない限り、プロセッサ1の命令処理部11が処理の実行に必要なデータの格納に用いられる。固定故障が発生した場合、通常メモリ31の代替としてスペアメモリ32が用いられる。それにより、スペアメモリ32は、通常メモリ31に固定故障が発生しない限り使用されず、通常メモリ31に固定故障が発生した場合、通常メモリ31は使用されなくなる。本実施形態では、このことに着目し、プロセッサ1の動作内容を表す動作情報の蓄積は、通常メモリ31に固定故障が発生したか否かにより、スペアメモリ32、或いは通常メモリ31に対して行うようにしている。
主記憶装置3としては、訂正可能なエラーの検出、エラー検出時における訂正を可能とするために、各アドレスにデータとECCが格納されるECCメモリを採用している。ECCメモリを主記憶装置3として採用したことから、主記憶装置3から読出したデータに訂正可能なエラーを検出した場合、データ処理装置はリライトアクセスを行うようになっている。それにより、本実施形態では、リライトアクセス時に再度、訂正可能なエラーが検出された場合、固定故障が発生していると見なすようにしている。
動作情報の蓄積に用いられるスペアメモリ32、及び通常メモリ31は、共に主記憶装置3に実装された構成要素である。そのため、動作情報の蓄積用の記憶装置を別に設ける場合と比較して、部品点数の増大、部品点数の増大に伴うデータ処理装置の製造コストの上昇は共に抑えることができる。
スペアメモリ32を通常メモリ31の代替とする場合、通常メモリ31に格納されているデータはスペアメモリ32にコピーされる。それにより、スペアメモリ32に蓄積されていた動作情報は全て消去される。しかし、コピー後は、通常メモリ31に動作情報を蓄積することができる。固定故障は、アドレス毎に発生するのが普通であることから、固定故障が発生した通常メモリ31には、動作情報を蓄積するうえで十分な容量が存在する。このようなことから、コピー後、直ぐに動作情報が必要となる状況とならない限り、十分な動作情報を蓄積することができる。
メモリアクセス制御部15は、通常メモリ31に発生する訂正可能なエラーを監視し、固定故障の発生に対応する。メモリアクセス制御部15は、図2A及び図2Bに表すように、内部論理部151、アクセス制御部152、スペア制御部153、読出し制御部153、及び動作履歴制御部155を備えている。
内部論理部151は、キャッシュ制御部12からのコマンドを処理し、主記憶装置3へのアクセスを制御する。内部論理部151は、実行部201、動作履歴データ生成部202、及びエラーチェック部203を備える。
キャッシュ制御部12は、キャッシュミスにより、必要なデータを主記憶装置3から読出すためのリードコマンドを発行する。このとき、キャッシュメモリの全てのエントリにデータが格納されていた場合、キャッシュ制御部12は、データを追い出すエントリを決定する。決定したエントリに格納されているデータが主記憶装置3上のデータと一致しない状態であれば、キャッシュ制御部12は、決定したエントリに格納されているデータを主記憶装置3に書込ませるライトバックのためのライトコマンドも発行する。そのようにキャッシュ制御部12が発行するコマンドが内部論理部151のメモリアクセス実行部201に入力される。
メモリアクセス実行部201は、例えば入力したコマンドを種類別に格納する複数のキュー(メモリ)、各キューに格納されたコマンドのなかから一つを選択する調停部、選択されたコマンドを処理するコマンド処理部、等を備えている。
リードコマンドには、例えばコマンドの種類を表す命令コード、データを読出すべきアドレスを表すアドレスデータ、が格納される。ライトコマンドには、命令コード、及びアドレスデータの他に、書込むべきデータが格納される。コマンド処理部は、例えば調停部から入力したコマンドを、命令コードとアドレスデータ、及びその他に分け、アクセス制御部152に出力する。それにより、書込むべきデータは命令コード、及びアドレスデータとは分けてアクセス制御部152に出力される。
動作履歴データ生成部202は、データ処理装置の動作内容を表す動作情報HIS_WT_DATAを生成する。動作情報HIS_WT_DATAは、周知の構成のデータであり、例えば図4に表すような構成である。図4に表記の「V」「OPC」「ADRS[31:00]」「INTL_STS[63:00]」「LOG_CNTR[15:00]」は、それぞれ以下のような情報を表している。
「V」は、当該動作情報HIS_WT_DATAが有効か否かを表すフラグである。「OPC」は、主記憶装置3へのアクセスの種別を表す操作コードである。この操作コードは、例えば上記命令コードである。「ADRS[31:00]」は、アドレスデータである。「[31:00]」は、アドレスデータが32ビットデータであることを表している。
「INTL_STS[63:00]」は、内部論理部151の内部状態を表す状態データである。状態データとしては、内部論理部151が備えた各種レジスタの値、各キューの状態を表すデータ、等が含まれる。「[63:00]」は、状態データが64ビットデータであることを表している。「LOG_CNTR[15:00]」は、コマンドが発行された間隔を表す発行間隔データである。「[15:00]」は、発行間隔データが16ビットデータであることを表している。以降も同様に、[]、及び[]内にコロンを挟む2つの数字を含むシンボル列はビット数を表すために用いる。
エラーチェック部203は、例えばメモリアクセス実行部201に入力されるコマンド、及びそのメモリアクセス実行部201の動作を監視し、重大なエラーの検出を行う。検出の対象となるエラーとしては、主記憶装置3からのデータに発生した訂正不可能なエラーが含まれる。訂正不可能なエラーが発生した場合、通常、データ処理装置は行うべき処理を停止させなければならない。
アクセス制御部152は、内部論理部151によるコマンドの処理に対応して、主記憶装置3にアクセスを行う。内部論理部151のコマンド処理部が出力する命令コード、及びアドレスデータは、アクセス制御部152のアドレスキュー211に格納される。コマンド処理部が出力するデータは、ライトデータキュー214に格納される。
アドレスキュー211から読出された命令コード、及びアドレスデータは、選択部(図2B中「プライオリティ」と表記)212に出力される。選択部212には、他に、スペア制御部153からのアドレスデータCOPY_ADRS[31:00]が出力される。選択部212は、スペア制御部153からのアドレスデータCOPY_ADRS[31:00]を優先的に選択して、メモリアクセスパイプライン213に出力する。メモリアクセスパイプライン213は、選択部212がスペア制御部153からのアドレスデータCOPY_ADRS[31:00]を選択した場合、選択部212から出力されるアドレスデータCOPY_ADRS[31:00]を優先的に処理する。図2B中に表記の「MEM_ACC_ADRS[31:00]」は、メモリアクセスパイプライン213から出力されるアドレスデータを表している。
ライトデータキュー214から読出されたデータは、書込みデータ選択部215に出力される。書込みデータ選択部215には、他に、読出し制御部154から読出されたデータが出力される。書込みデータ選択部215は、2つのデータのうちの何れかをメモリアクセスパイプライン213の指示に従って選択する。図2B中に表記の「MEM_WT_DATA」は書込みデータ選択部215が出力するデータを表している。
上記のように、メモリアクセスパイプライン213は、選択部212がスペア制御部153からのアドレスデータCOPY_ADRS[31:00]を選択した場合、選択部212から出力されるアドレスデータCOPY_ADRS[31:00]を優先的に処理する。メモリアクセスパイプライン213は、選択部213から出力されるアドレスデータCOPY_ADRS[31:00]を処理する場合、書込みデータ選択部215に指示して、書込みデータ選択部215に読出し制御部154からのデータを選択させる。この結果、スペア制御部153からアドレスデータCOPY_ADRS[31:00]が出力される場合、そのアドレスデータCOPY_ADRS[31:00]によって指定されるアドレスに、読出し制御部154からのデータを書込むアクセスが行われる。それにより、リライトアクセス時におけるデータの書込みが実現される。
スペア制御部153からのアドレスデータCOPY_ADRS[31:00]には、命令コードが付加されていない。それにより、メモリアクセスパイプライン213は、命令コードの有無により、選択部212から出力されたアドレスデータがスペア制御部153から出力されたものか否かを特定することができる。リライトアクセスでは、データの書込みを行った後、書込んだデータの読出しを行う。そのために、メモリアクセスパイプライン213は、例えば選択部212から出力されたアドレスデータCOPY_ADRS[31:00]にライトコマンドの命令コードを付加して出力し、次にそのアドレスデータCOPY_ADRS[31:00]にリードコマンドの命令コードを付加して出力する。
書込みデータ選択部215から出力されるデータMEM_WT_DATAは、ライトコマンドの処理時に必要となる。このことから、メモリアクセスパイプライン213は、ライトコマンドのアドレスデータMEM_ACC_ADRS[31:00]を出力する場合に、書込みデータ選択部215への選択指示を行う。ライトコマンドの命令コードを自ら付加していないアドレスデータMEM_ACC_ADRS[31:00]を出力する場合、メモリアクセスパイプライン213は、書込みデータ選択部215に、ライトデータキュー214からのデータを選択させる。
メモリアクセスパイプライン213から出力されたアドレスデータMEM_ACC_ADRS[31:00]はセレクタ216及び218に入力される。各セレクタ216及び218には、他に動作履歴制御部155から出力されるアドレスデータHIS_ADRS[31:00]が入力される。各セレクタ216及び218は、スペア制御部153から出力されるモード信号SPARE_STS[1:0]に従って、一つのアドレスデータを選択する。セレクタ216によって選択されたアドレスデータは制御信号生成部220に出力され、セレクタ218によって選択されたアドレスデータは制御信号生成部221に出力される。
制御信号生成部220は、セレクタ216から入力したアドレスデータを用いて、通常メモリ31にアクセスするための各種制御信号を生成する。他方の制御信号生成部221は、セレクタ218から入力したアドレスデータを用いて、スペアメモリ32にアクセスするための各種制御信号を生成する。アドレスデータからは、行アドレスを指定するRAS(Row Address Strobe signal)、及び列アドレスを指定するCAS(Column Address Strobe signal)が生成される。他に制御信号としては、チップセレクト信号、WE(Write enable)信号、等を各生後信号生成部220及び221は生成する。WE信号は、命令コードがライトコマンドを表していた場合に生成、つまりアクティブとなる。
書込みデータ選択部215から出力されたデータMEM_WT_DATAは、セレクタ217及び219に入力される。各セレクタ217及び219には、他に動作履歴データ生成部202から動作情報HIS_WT_DATAが入力される。各セレクタ217及び219は、スペア制御部153から出力されるモード信号SPARE_STS[1:0]に従って、データMEM_WT_DATA、或いは動作情報HIS_WT_DATAを選択する。セレクタ217によって選択されたデータはECC生成部222に出力され、セレクタ219によって選択されたデータはECC生成部223に出力される。
各ECC生成部222及び223は、入力したデータを用いてECCを生成し、入力したデータと共に、生成したECCを出力する。ECC生成部222から出力されるデータ、及びECCは通常メモリ31に入力され、ECC生成部223から出力されるデータ、及びECCはスペアメモリ32に入力される。
上記のような構成により、アクセス制御部152は、通常メモリ31及びスペアメモリ32の両方に、データMEM_WT_DATA及び動作情報HIS_WT_DATAの何れも書込むことができるようになっている。各セレクタ216〜219は、スペア制御部153から出力されるモード信号SPARE_STS[1:0]により、選択動作が制御される。それにより、データMEM_WT_DATA及び動作情報HIS_WT_DATAの格納先はモード信号SPARE_STS[1:0]により切り替えられるようになっている。
読出し制御部154は、通常メモリ31及びスペアメモリ32から読出されたデータを処理する。通常メモリ31及びスペアメモリ32から読出されたデータ及びECCは、読出し制御部154の各セレクタ231及び232に出力される。各セレクタ231及び232は、モード信号SPARE_STS[1:0]により、選択動作が制御される。セレクタ232によって選択されたデータ及びECCはSVPコマンド制御部14に出力され、セレクタ231によって選択されたデータ及びECCはECCチェック部233に出力される。
ECCチェック部233は、入力されたECCを用いて、入力されたデータに発生したエラーの検出、及び訂正可能なエラーの訂正を行う。訂正可能なエラーが検出された場合、ECCチェック部233は、その旨を表すエラー情報をスペア制御部153に出力する。ECCチェック部233は、その場合、例えば論理値が1のエラー情報を出力する。エラーが検出されなかったデータ、或いはエラーを訂正したデータはアクセス制御部152の書込みデータ選択部215、及び内部論理部151のメモリアクセス実行部201に出力される。
メモリアクセス実行部201に出力されたデータは、リードコマンドによって読出されたデータとして扱われる。書込みデータ選択部215に入力されたデータは、訂正可能なエラーが検出された場合に選択されることになる。
ECCチェック部233から出力されたエラー情報は、スペア制御部153のスペア切替判定部241に出力される。スペア制御部153は、着込みデータ選択部215から出力されるデータMEM_WT_DATAの格納先を通常メモリ31からスペアメモリ32に切り換える制御を行う。
メモリアクセスパイプライン213から出力されたアドレスデータMEM_ACC_ADRS[31:00]は、コピーアドレス生成部243及びエラーアドレス保持部244に出力される。スペア切替判定部241は、エラー情報がアクティブとなった場合、コピーアドレス生成部243にアドレスデータMEM_ACC_ADRS[31:00]を保持させる。
コピーアドレス生成部243は、カウンタ251及び判定部252を備えている。メモリアクセスパイプライン213からのアドレスデータMEM_ACC_ADRS[31:00]は、カウンタ251の初期値として保持される。カウンタ251のカウント値は、アクセス制御部152の選択部212に出力される。それにより、スペア切替判定部241は、例えば選択部212による選択動作を制御し、選択部212にカウンタ251のカウント値を選択させる。
通常メモリ31に固定故障が発生した場合、この通常メモリ31の代替としてスペアメモリ32が用いられる。通常メモリ31の代替としてスペアメモリ32を用いる場合、通常メモリ31に格納されている全てのデータはスペアメモリ32にコピーしなければならない。上記カウンタ251のカウント値は、そのコピーを行う際にアドレスデータCOPY_ADRS[31:00]として用いられる。
カウンタ251によるカウントは、初期値として0を設定するカウント値をインクリメントしていくことで行うようになっている。判定部252は、カウンタ251のカウント値を、通常メモリ31の最大アドレス値と比較し、そのカウント値が最大アドレス値を超えたか否かを判定する。カウント値が最大アドレス値を超えている場合、判定部252は、コピーが完了した旨を表すコピー完了信号を出力する。コピー完了信号の出力は、例えばコピー完了信号をアクティブにすることで行われる。ここでは、アクティブ時のコピー完了信号の論理値は1、つまりアクティブ時のコピー完了信号のレベルはH(High)と想定する。
選択部212からカウンタ251のカウント値を入力したメモリアクセスパイプライン213は、上記のように、書込みデータ選択部215に読出し制御部154からのデータ(エラーが訂正されたデータ)を選択させる。読出し制御部154からのデータを通常メモリ31に書込ませるために、メモリアクセスパイプライン213は、入力したカウント値であるアドレスデータCOPY_ADRS[31:00]をアドレスデータMEM_ACC_ADRS[31:00]として、ライトコマンドの命令コードを付加し出力する。次に、メモリアクセスパイプライン213は、このアドレスデータMEM_ACC_ADRS[31:00]に、リードコマンドの命令コードを付加して出力する。このようにして、訂正可能なエラーが検出された通常メモリ31のアドレスには、エラーを訂正したデータの書込み、書込んだデータの読出しによるリライトアクセスが行われる。
このリライトアクセスでのデータ読出し時に訂正可能なエラーをECCチェック部233が検出すると、ECCチェック部233は再度、論理値が1のヒット情報を出力する。スペア切替判定部241は、リライトアクセスでヒット情報の論理値が1となった場合、固定故障が通常メモリ31に発生していると見なし、コピーモードへの移行を指示するための信号であるコピーモード移行信号をモード切替部242に出力する。ここでは、アクティブ時のコピーモード移行信号の論理値は1、つまりアクティブ時のコピーモード移行信号のレベルはH(High)と想定する。
コピーモードは、通常メモリ31に格納されている全てのデータをスペアメモリ32にコピーするためのモードである。コピーモードの設定時に、エラーアドレス生成部243のカウンタ251のカウント値は、通常メモリ31からのデータの読出し、読出したデータのスペアメモリ32への書込みに用いるアドレスデータCOPY_ADRS[31:00]として用いられる。
本実施形態では、このコピーモードの他に、通常モード、及びスペアモードが存在する。通常モードは、通常メモリ31の代替としてスペアメモリ32を用いないモードであり、スペアモードは、通常メモリ31の代替としてスペアメモリ32を用いるモードである。通常メモリ31に固定故障が発生した場合、通常メモリ31のデータを全てスペアメモリ32にコピーするために、モードは、通常モード→コピーモード→スペアモード、の順序で移行する。コピーアドレス生成部243の判定部252から出力されるコピー完了信号は、モード切替部242にコピーモードからスペアモードに移行させるために用いられる。
図5は、モード切替部によって行われるモード切り替えを説明する図である。
図5に表すように、モード切替部242が出力する切り替えモード信号SPARE_STS[1:0]の2ビットの値は、モードの移行により変化する。2ビットの値は、通常モード時では“00”である。その2ビットの値は、コピーモード時では“01”、スペアモード時では“10”である。モード切替部242は、コピーモード移行信号がアクティブ、つまりその論理値が1となった場合に、切り替えモード信号SPARE_STS[1:0]の値を“00”から“01”に変化させる。その後、コピー完了信号がアクティブ、つまりその論理値が1となった場合、モード切替部242は、切り替えモード信号SPARE_STS[1:0]の値を“01”から“10”に変化させる。
図5に表すように、モード切替部242が出力する切り替えモード信号SPARE_STS[1:0]の2ビットの値は、モードの移行により変化する。2ビットの値は、通常モード時では“00”である。その2ビットの値は、コピーモード時では“01”、スペアモード時では“10”である。モード切替部242は、コピーモード移行信号がアクティブ、つまりその論理値が1となった場合に、切り替えモード信号SPARE_STS[1:0]の値を“00”から“01”に変化させる。その後、コピー完了信号がアクティブ、つまりその論理値が1となった場合、モード切替部242は、切り替えモード信号SPARE_STS[1:0]の値を“01”から“10”に変化させる。
アクセス制御部152の各セレクタ216〜219は、上記のように、スペア制御部153から出力されるモード信号SPARE_STS[1:0]により、選択動作が制御される。
このモード信号SPARE_STS[1:0]が“00”であった場合、つまり通常モードが設定されていた場合、セレクタ216は、メモリアクセスパイプライン213からのアドレスデータMEM_ACC_ADRS[31:00]を選択する。セレクタ217は、書込みモード選択部215からのデータMEM_WT_DATAを選択する。一方、セレクタ218は、動作履歴制御部155からのアドレスデータHIS_ADRS[31:00]を選択し、セレクタ219は動作履歴データ生成部202からの動作情報HIS_WT_DATAを選択する。
このようなことから、通常モード時は、通常メモリ31にはキャッシュ制御部12により指示されたデータが書込まれ、スペアメモリ32には動作情報HIS_WT_DATAが書込まれる。モード信号SPARE_STS[1:0]が“10”であった場合、つまりスペアモードが設定されていた場合、逆に、通常メモリ31には動作情報HIS_WT_DATAが書込まれ、スペアメモリ32にはキャッシュ制御部12により指示されたデータが書込まれる。
通常モード、及びスペアモードでは、各セレクタ216〜219は、モード信号SPARE_STS[1:0]の値によって指示される方のデータを選択して出力する。しかし、モード信号SPARE_STS[1:0]の値が“01”であるコピーモードでは、通常メモリ31からのデータの読出し、読出したデータのスペアメモリ32への書込みを行わなければならない。それにより、各セレクタ216〜219の選択動作は、メモリアクセスパイプライン213がアドレスデータMEM_ACC_ADRS[31:00]に付加する命令コードに応じて制御しなければならない。このことから、コピーモード時には、各セレクタ216〜219の選択動作は例えばメモリアクセスパイプライン213によって制御される。メモリアクセスパイプライン213は、リードコマンドの命令コードを付加したアドレスデータMEM_ACC_ADRS[31:00]を出力する場合、通常メモリ31からデータが読出されるように各セレクタ216〜219を制御する。ライトコマンドの命令コードを付加したアドレスデータMEM_ACC_ADRS[31:00]を出力する場合、メモリアクセスパイプライン213は、スペアメモリ32にデータMEM_WT_DATAが書込まれるように各セレクタ216〜219を制御する。
図6は、モード毎、及びアクセス種別毎に、通常メモリ及びスペアメモリにそれぞれ行われるアクセスの内容を説明する図である。
図6において、モードはモード信号SPARE_STS[1:0]の値により表している。アクセス種別としては、「通常のメモリアクセス(リード)」「通常のメモリアクセス(ライト)」「動作情報の書込み」「動作情報の読出し」「コピーリード」及び「コピーライト」の6種類を表している。通常のメモリアクセス(リード)及び通常のメモリアクセス(ライト)は、キャッシュ制御部12の制御によって行われるアクセスである。動作情報の書込み、及び動作情報の読出しは、動作情報HIS_WT_DATAの書込み、或いは読出しのためのアクセスである。コピーリード及びコピーライトは、リライトアクセスによって行われるアクセスである。
図6において、モードはモード信号SPARE_STS[1:0]の値により表している。アクセス種別としては、「通常のメモリアクセス(リード)」「通常のメモリアクセス(ライト)」「動作情報の書込み」「動作情報の読出し」「コピーリード」及び「コピーライト」の6種類を表している。通常のメモリアクセス(リード)及び通常のメモリアクセス(ライト)は、キャッシュ制御部12の制御によって行われるアクセスである。動作情報の書込み、及び動作情報の読出しは、動作情報HIS_WT_DATAの書込み、或いは読出しのためのアクセスである。コピーリード及びコピーライトは、リライトアクセスによって行われるアクセスである。
図6では、モード毎、及びアクセス種別毎に、アクセス制御部152がアクセスに用いるデータ、及び読出し制御部154が出力する読出されたデータ(リードデータ)を表している。図6中の「−」は、対応するデータが存在しないことを表している。図6に表すように、通常メモリ31及びスペアメモリ32には、モード毎、及びアクセス種別毎に、上述したようなアクセスが行われる。
図7は、通常メモリから読出されたデータに訂正可能なエラーが発生した場合のメモリアクセス制御部の動作を説明する図である。この図7では、訂正可能なエラーが検出された通常メモリ31からのデータの読出し、その後にリライトアクセスが続けて行われる場合を例にとって、動作のシーケンスを表している。
図7には、「メモリアクセス命令」「パイプライン」「DIMMアクセス」「リードデータ」「ECCチェック」「エラーアドレス」「訂正書込み」「訂正書込みデータ」「再読出し」及び「モード」を表記している。これらは、それぞれ以下のような動作を表している。
メモリアクセス命令は、キャッシュ制御部12によって発行されたコマンドである。その表記の横に配置した矩形は、メモリアクセスパイプライン213によってコマンドの命令コード、及びアドレスデータMEM_ACC_ADRS[31:00]が出力されるタイミングを表している。その矩形が表すコマンドは、リードコマンドである。
パイプラインでは、コマンドによる通常メモリ31へのアクセス時に、その通常メモリ31に供給されるクロック信号を表している。その表記の横に配置した各矩形は、それぞれクロック信号の1周期を表している。
DIMMアクセスでは、アクセスのために通常メモリ31に出力される信号を表している。その表記の横に配置した各矩形は、信号が出力されるタイミングを表している。その信号としては、RAS、CAS及びWTのみを表している。WTは、通常メモリ31に書込まれるデータの信号を表している。
リードデータでは、通常メモリ31からデータが読出されるタイミングを表している。そのタイミングは、その表記の横に配置した矩形で表している。「RD」はリードデータの略記である。
ECCチェックでは、読出し制御部154のECCチェック部233がエラー情報を出力するタイミングを矩形の位置で表している。「ERR」は、訂正可能なエラーが検出された旨を表すエラー情報が出力されたことを表している。
上記のように、訂正可能なエラーの検出によって、メモリアクセスパイプライン213から出力されたアドレスデータMEM_ACC_ADRS[31:00]はコピーアドレス生成部243に保持され、選択部212に出力される。エラーアドレスでは、コピーアドレス生成部243からアドレスデータが出力される期間、及びそのアドレスデータの内容を矩形の長さ、及び位置により表している。「ERR_ADRS」は、訂正可能なエラーの検出によってコピーアドレス生成部243からアドレスデータCOPY_ADRS[31:00]として出力されるアドレス値を表している。
訂正書込みでは、リライトアクセス時のライトコマンドの命令コード、及びアドレスデータMEM_ACC_ADRS[31:00](ERR_ADRS)がメモリアクセスパイプライン213から出力されるタイミングを矩形の位置により表している。訂正書込みデータでは、エラーを訂正したデータの出力をECCチェック部233が維持する期間を矩形の長さ、及び位置により表している。訂正されたデータは「REWRITE_DATA」と表記している。
再読出しでは、リライトアクセス時のリードコマンドの命令コード、及びアドレスデータMEM_ACC_ADRS[31:00](ERR_ADRS)がメモリアクセスパイプライン213から出力されるタイミングを矩形の位置により表している。
モードでは、通常モード、及びコピーモードがそれぞれ設定される期間を各矩形の長さ、及び位置により表している。
図7に表すように、訂正可能なエラーの検出によって、リライトアクセスのためのライトコマンド、及びリードコマンドがメモリアクセスパイプライン213によって発行・処理される。そのリライトアクセスでのリードコマンドの実行によって通常メモリ31から読出されたデータに訂正可能なエラーが発生していたため、モードは通常モードからコピーモードに移行し、コピーアドレス生成部243に保持された値はERR_ADRSから0に変更される。
動作履歴制御部155は、動作情報HIS_WT_DATAの格納、及び読出しを制御するものであり、カウント更新部261、及びレジスタ262を備える。図3を参照し、この動作履歴制御部155の構成、及び動作について詳細に説明する。この図3は、動作履歴制御部155の詳細な構成例を説明する図である。
図3では、外部からの信号として、切り替えモード信号SPARE_STS[1:0]、及びアドレスデータERR_ADRS[31:00]の他に、「履歴書込み指示」「フリーズ要求」「フリーズ解除要求」及び「読出し要求」を表記している。始めに、これらの信号について説明する。
動作情報HIS_WT_DATAは、動作履歴データ生成部202が生成し出力する。動作履歴データ生成部202は、動作情報HIS_WT_DATAを出力する場合、出力する動作情報HIS_WT_DATAの書込みを動作履歴制御部155に指示する。履歴書込み指示は、動作履歴データ生成部202が動作情報HIS_WT_DATAの書込みを行わせるために出力する信号である。
エラーチェック部203は、重大なエラーを検出した場合、動作情報HIS_WT_DATAの書込み停止を動作履歴制御部155に指示する。フリーズ要求は、その指示のための信号である。このフリーズ要求を動作履歴制御部155に出力する場合、内部論理部151は、重大なエラーの発生を例えばキャッシュ制御部12を介して命令処理部11に通知すると共に、SVPコマンド制御部14を介してSVP2に通知する。
SVP2とネットワークを介して接続された端末装置を操作するオペレータは、重大なエラーの発生を確認すると、そのエラーの原因を特定するために、履歴として蓄積された動作情報HIS_WT_DATAの収集を行う。その後、データ処理装置に処理を継続させる場合、オペレータは、動作情報HIS_WT_DATAの蓄積を再開させる。フリーズ解除要求は、動作履歴制御部155に動作情報HIS_WT_DATAの蓄積を再開させるための信号であり、SVP2からの指示によってSVPコマンド制御部14が出力する。このフリーズ解除要求は、内部論理部151にも入力され、このフリーズ解除要求の入力により、エラーチェック部203は、フリーズ要求の出力を停止させる。ここでは、フリーズ要求、及びフリーズ解除要求の出力は共に、信号レベルをアクティブにすることで行われると想定する。アクティブの信号レベルはHと想定する。
読出し要求は、動作情報HIS_WT_DATAの読出しを指示するための信号である。履歴として蓄積された動作情報HIS_WT_DATAの収集は、読出し要求をアクティブにすることで実現される。フリーズ解除要求と同様に、読出し要求は、SVP2からの指示によってSVP制御部14が出力する。アクティブの信号レベルはHと想定する。
図3において、レジスタ262は「FF」(フリップフロップ)と表記している。レジスタ262以外は全てカウント更新部261の構成要素である。カウント更新部261は、レジスタ262に保持されるアドレスデータHIS_ADRS[31:00]の値の更新、及び動作情報HIS_WT_DATAの書込み、或いは読出しのための信号生成を行う。次に、各構成要素の接続関係、及びその接続関係によって実現される動作について詳細に説明する。
フリーズ要求の否定は、ANDゲート321に入力される。ANDゲート321は、フリーズ要求の否定と、フリップフロップ(FF)323が出力するデータとの論理積をORゲート322に出力する。ORゲート322は、ANDゲート321からの論理積と、フリーズ要求との論理和を出力する。ORゲート322から出力される論理和がフリップフロップ323にデータとして保持される。
ANDゲート324は、フリップフロップ323からのデータの否定と、履歴書込み指示との論理積を出力する。ANDゲート324から出力される論理積は、動作情報HIS_WT_DATAの書込みを制御するための信号HIS_WT_ENBとなる。動作情報HIS_WT_DATAの書込みは、信号HIS_WT_ENBがアクティブとなった場合に可能となる。アクティブの信号レベルはHである。
動作情報HIS_WT_DATAを書込むには、履歴書込み指示の信号レベルに信号HIS_WT_ENBの信号レベルを連動させる必要がある。つまり、履歴書込み指示のアクティブにより信号HIS_WT_ENBもアクティブとなる必要がある。そのような連動は、フリーズ要求がインアクティブであり、且つフリーズ解除要求がアクティブの場合に実現される。
上記読出し要求は、動作情報HIS_WT_DATAの読出しを制御するための信号HIS_RD_ENBとして用いられる。
アドレスデータERR_ADRS[31:00]は、比較器301に出力される。比較器301は、アドレスデータERR_ADRS[31:00]の値を加算器303の加算結果と比較し、それらが一致する場合に、論理値が1の比較結果をANDゲート304に出力する。
図3では、ANDゲート304に切り替えモード信号SPARE_STS[1:0]が入力されるように表している。ANDゲート304に入力される論理値は、切り替えモード信号SPARE_STS[1:0]の値が“10”、つまりスペアモードが設定されている場合に1となる。これは、通常モード時、及びコピーモード時には、比較器301の比較結果は不要だからである。このようなことから、ANDゲート304が出力する論理積の値は、スペアモードの設定時であり、且つアドレスデータERR_ADRS[31:00]の値が加算器303の加算結果と一致する場合にのみ1となる。
加算器303の加算結果は加算器302に入力され、加算器302は入力した加算結果に1を加えた加算結果を出力する。図3では、加算器302の加算結果はANDゲート305に入力され、加算器303の加算結果はANDゲート306に入力されるように表している。ANDゲート305にはANDゲート304の出力する論理積が入力され、ANDゲート306にはANDゲート304の出力する論理積の否定が入力される。
ANDゲート305及び306は共に、実際にはANDゲート304の出力する論理積により、加算器302及び303の加算結果を出力するマスク回路である。それにより、ANDゲート304の出力する論理積の値が1であった場合、ANDゲート305から加算器302の加算結果が出力され、ANDゲート304の出力する論理積の値が0であった場合、ANDゲート306から加算器303の加算結果が出力される。ANDゲート305或いは306から出力された加算結果は、ORゲート307を介してANDゲート308に入力される。
ANDゲート308及び309も、上記ANDゲート305及び306と同様に、実際にはマスク回路である。ANDゲート308には、ORゲート307からの加算結果の他に、ORゲート325からの論理和が入力される。ANDゲート309には、レジスタ262に保持されたアドレスデータHIS_ADRS[31:00]と、ORゲート325からの論理和の否定とが入力される。ORゲート325が出力する論理和は、信号HIS_RD_ENBと信号HIS_WT_ENBとの論理和である。
ORゲート325の出力する論理和の値が1であった場合、ANDゲート308から加算器302の加算結果が出力され、ORゲート325の出力する論理和の値が0であった場合、ANDゲート309からアドレスデータHIS_ADRS[31:00]が出力される。ANDゲート308から出力される加算結果、或いはANDゲート309から出力されるアドレスデータHIS_ADRS[31:00]は、ORゲート310を介してレジスタ262に入力される。
ORゲート325の出力する論理和の値が0となるのは、信号HIS_WT_ENB及びHIS_RD_ENBが共にインアクティブの場合である。そのため、信号HIS_WT_ENB及びHIS_RD_ENBが共にインアクティブの場合、レジスタ262は、同じ値のアドレスデータHIS_ADRS[31:00]を保持することになる。それにより、レジスタ262に保持されたアドレスデータHIS_ADRS[31:00]は必要に応じて更新される。信号HIS_WT_ENB及びHIS_RD_ENBが共にインアクティブの場合とは、動作情報HIS_WT_DATAの書込み、及び読出しの何れも行わない場合である。
信号HIS_WT_ENB及びHIS_RD_ENBは、アドレスデータHIS_ADRS[31:00]と共にセレクタ216及び218に出力される。それにより、信号HIS_WT_ENB及びHIS_RD_ENB、並びにアドレスデータHIS_ADRS[31:00]は、制御信号生成部220或いは221によって処理される。このため、各制御信号生成部220及び221は、例えば信号HIS_WT_ENB及びHIS_RD_ENBを命令コードのように扱う。
上記のように、動作履歴制御部155は、メモリアクセス制御部15外から信号としてフリーズ解除要求、及び読出し要求を入力し、入力した信号に応じて動作する。しかし、フリーズ解除要求、及び読出し要求は共に、SVP2の制御によって入力される信号であり、命令処理部11或いはキャッシュ制御部12等からの信号は入力されない。それにより、動作履歴制御部155は、フリーズ解除要求、及び読出し要求にそれぞれ対応する動作を、メモリアクセス制御部15内で送受信される信号により自律的に行う。アクセス制御部152、スペア制御部153、及び読出し制御部154もメモリアクセス制御部15内で送受信される信号により、自律的に動作する。
このようなことから、命令処理部11及びキャッシュ制御部12等の何れにも、通常メモリ31での固定故障の発生の有無に応じて、動作情報HIS_WT_DATAの書込み先を変更するための機能を搭載させる必要は基本的にない。そのため、既に存在するプロセッサには、メモリアクセス制御部を本実施形態のようなメモリアクセス制御部15に置き換えることにより、本実施形態を適用することが可能である。本実施形態において、個別にアクセス可能な通常メモリ31、及びスペアメモリ32を備えた主記憶装置3を採用したのは、メモリアクセス制御部15による自律的な動作により、動作情報HIS_WT_DATAの書込み先を変更可能とするためである。命令処理部11或いはキャッシュ制御部12等に新たな機能を追加する場合には、バンク指定により通常メモリ31或いはスペアメモリ32を選択可能な主記憶装置3を採用しても良い。このようなことから、主記憶装置3として採用する記憶装置は特に限定されない。
動作情報HIS_WT_DATAを書込む、或いは読出すアクセスは、通常メモリ31、及びスペアメモリ32に存在するアドレスを対象にしなければならない。このため、特には図示していないが、ORゲート310から出力されるデータの値が通常メモリ31の最大アドレス値を超える場合、そのデータの値を0(最小アドレス値)にする仕組みが動作履歴制御部155には備えられている。
以降は、図8〜図10に表すフローチャートを参照して、メモリアクセス制御部15の動作について詳細に説明する。
図8は、通常メモリからデータを読出す場合のメモリアクセス制御部の動作を表すフローチャートである。始めに図8を参照して、通常メモリ31からデータを読出す動作、及びその読出しによって得られたデータに訂正可能なエラーが発生しているか否かに応じた動作について、詳細に説明する。
図8は、通常メモリからデータを読出す場合のメモリアクセス制御部の動作を表すフローチャートである。始めに図8を参照して、通常メモリ31からデータを読出す動作、及びその読出しによって得られたデータに訂正可能なエラーが発生しているか否かに応じた動作について、詳細に説明する。
通常モードでは、上記のように、メモリアクセスパイプライン213から出力された命令コード、及びアドレスデータMEM_ACC_ADRS[31:00]はセレクタ216を介して制御信号生成部220に入力される。その結果、制御信号生成部220は、通常メモリ31からデータを読出すアクセスを行う(S1)。そのアクセスにより通常メモリ31から読出されたECC、及びデータは、セレクタ231を介してECCチェック部233に入力される。それにより、ECCチェック部233は、ECCを用いてデータに発生したエラーの検出を行い、訂正可能なエラーを検出した場合、エラー情報をアクティブにする。スペア切替判定部241は、エラー情報を監視することにより、読出されたデータに訂正可能なエラーが検出されたか否かを判定する(S2)。
訂正可能なエラーが検出されなかった場合、S2の判定はNoとなり、スペア切替判定部241は制御を行わない。それにより、通常メモリ31への次のアクセスが行われる(S14)。訂正可能なエラーが検出された場合、S2の判定はYesとなる。それにより、スペア切替判定部241は、メモリアクセスパイプライン213から出力されているアドレスデータMEM_ACC_ADRS[31:00]をアドレスデータERR_ADRS[31;00]としてコピーアドレス生成部243に保持させる(S3)。
コピーアドレス生成部243に保持されたアドレスデータERR_ADRS[31:00]は、選択部212を介してメモリアクセスパイプライン213に入力される。ECCチェック部233から出力される、エラーが訂正されたデータは書込みデータ選択部215に入力される。それにより、メモリアクセスパイプライン213は、アドレスデータERR_ADRS[31:00]に、ライトコマンド及びリードコマンドの命令コードを順次、付加して出力する。この結果、通常メモリ31のアドレスデータERR_ADRS[31:00]によって指定されるアドレスに対し、データ、及びECCを書込み、書込んだデータ、及びECCを読出すリライトアクセスが行われる(S4、S5)。
読出されたデータは、ECCチェック部233により、エラー検出が行われる。それにより、スペア切替判定部241は、エラー情報を監視することにより、読出されたデータに訂正可能なエラーが再度、検出されたか否かを判定する(S6)。
訂正可能なエラーが再度、検出されなかった場合、S6の判定はNoとなり、スペア切替判定部241は制御を行わない。それにより、通常メモリ31への次のアクセスが行われる(S14)。訂正可能なエラーが再度、検出された場合、S6の判定はYesとなる。それにより、スペア切替判定部241は、メモリアクセスパイプライン213から出力されているアドレスデータERR_ADRS[31:00]をエラーアドレス保持部244に保持させ、コピーモード移行信号をアクティブにする(S7)。この結果、モード切替部242は、値が“01”の切り替えモード信号SPARE_STS[1:0]を出力する。
スペア切替制御部241は、次に、コピーアドレス生成部243のカウンタ251に0をセットし、通常メモリ31のデータを全てスペアメモリ32に移すコピーを開始させる(S8)。以降、スペア切替制御部241は、例えばECCチェック部233の動作を通して、アドレス毎に行われるデータのコピーの完了を監視する。
コピーアドレス生成部243のカウンタ251のカウント値は、コピーを行うアドレスを表すアドレスデータとして、選択部212を介してメモリアクセスパイプライン213に入力される。メモリアクセスパイプライン213は、上記のように、アドレスデータに付加する命令コードに応じて、各セレクタ216〜219の選択動作を制御する。それにより、通常メモリ31からのデータの読出し、読出したデータのスペアメモリ32への書込みが行われる(S9、S10)。
スペア切替判定部241は、スペアメモリ32へのデータの書込みが完了すると、その完了をコピーアドレス生成部のカウンタ251に通知する。その通知により、カウンタ251は、カウント値をインクリメントする(S11)。
インクリメント後のカウント値は、判定部252によって、通常メモリ31の最大アドレス値を超えるか否か判定される。その判定結果は、コピー完了信号としてモード切替部242に出力される。
カウンタ251のカウント値が通常メモリ31の最大アドレス値を超えていた場合、S12の判定はYesとなり、判定部252はコピー完了信号をアクティブにする。その結果、モード切替部242は、切り替えモード信号SPARE_STS[1:0]の値を“01”から“10”に変化させ、コピーモードからスペアモードに移行させる(S13)。その後は、通常メモリ31の代替としてスペアメモリ32が用いられ、動作情報HIS_WT_DATAは通常メモリ31に蓄積される。
カウンタ251のカウント値が通常メモリ31の最大アドレス値以下だった場合、S12の判定はNoとなり、判定部252はコピー完了信号をインアクティブのままとする。その結果、アドレスを変えて、通常メモリ31からのデータの読出し、読出したデータのスペアメモリ32への書込みが行われる(S9、S10)。
図9は、メモリアクセス制御部における動作情報の書込み動作を表すフローチャートである。次に図9を参照し、動作情報HIS_WT_DATAの書込み動作について詳細に説明する。
動作情報HIS_WT_DATAの書込みは、システムの立ち上げ、つまりデータ処理装置の電源のオンによって開始される。システムの立ち上げ時では、フリーズ要求はインアクティブ、フリーズ解除要求はアクティブとなっている。また、動作履歴制御部155のレジスタ262には、アドレスデータHIS_ADRS[31:00]の初期値が設定される(S21)。初期値の設定は、例えば命令処理部11等に行わせても良いが、不揮発性の不図示のメモリに初期値を格納させ、そのメモリに格納されている初期値をレジスタ262に保持させるようにしても良い。
動作履歴データ生成部202は、例えばメモリアクセス実行部201の指示により、動作情報HIS_WT_DATAの生成を行う。このことから、動作履歴データ生成部201は、メモリアクセス実行部201から動作情報HIS_WT_DATAの書込み指示があるか否かの判定を行う(S22)。
書込み指示がなかった場合、S22の判定はNoとなり、後述するS29に移行する。それにより、フリーズ要求がアクティブとなるまでの間、メモリアクセス実行部201からの書込み指示に対応できる状態が維持される。図9中、フリーズ要求は「HIS_FRZ_STS」と表記している。
一方、書込み指示があった場合、S22の判定はYesとなり、動作履歴データ生成部202は、次に切り替えモード信号SPARE_STS[1:0]の値が“01”か否か、つまりコピーモードが設定されているか否かを判定する(S23)。コピーモードが設定されていた場合、S23の判定はYesとなり、後述するS29に移行する。それにより、メモリアクセス実行部201からの書込み指示は無視される。
一方、コピーモードが設定されていない場合、S23の判定はNoとなり、動作履歴データ生成部202は、メモリアクセス実行部201から必要な情報を収集して、図4に表すような動作情報HIS_WT_DATAを生成する。動作履歴データ生成部202は、動作情報HIS_WT_DATAを生成・出力した後、動作履歴制御部155に書込み指示を行う(S24)。この書込み指示により、信号HIS_WT_ENBはアクティブ、ORゲート325の出力する論理和の値は1となり、加算器303の加算結果が新たにレジスタ262に保持される結果、アドレスデータERR_ADRS[31:00]の値はインクリメントされる(S25)。
動作履歴制御部155は、ANDゲート304により、切り替えモード信号SPARE_STS[1:0]の値が“00”、或いは“10”であった場合に、動作情報HIS_WT_DATAの書込みのための動作を行う。切り替えモード信号SPARE_STS[1:0]の値が“00”の場合、つまり通常モードが設定されていた場合、ANDゲート304の出力する論理積の値は常に0となり、スペアメモリ32の全てのアドレスは動作情報HIS_WT_DATAを書込む対象となる。このことから、動作履歴制御部155は、切り替えモード信号SPARE_STS[1:0]の値が“10”か否か判定する(S26)。切り替えモード信号SPARE_STS[1:0]の値が“00”であった場合、S26の判定はNoとなる。その結果、動作履歴制御部155は、加算器303の加算結果を用いて動作情報HIS_WT_DATAを書込むためのコマンドを作成し(S27)、そのコマンドによって、動作情報HIS_WT_DATAをスペアメモリ32に書込ませる(S28)。その後は、フリーズ要求HIS_FRZ_STSがインアクティブであれば、S29の判定がNoとなってS22に戻ることになる。それにより、メモリアクセス実行部201の次の書込み指示に対応することができる。一方、フリーズ要求HIS_FRZ_STSがアクティブであれば、S29の判定がYesとなって、動作情報HIS_WT_DATAの書込みは終了する(S30)。
切り替えモード信号SPARE_STS[1:0]の値が“10”であった場合、S25の判定はYesとなる。その場合、動作履歴制御部155は、アドレスデータHIS_ADRS[31:00]の値をインクリメントした値、つまり加算器303の加算結果がアドレスデータERR_ADRS[31:00]と一致するか否か判定する。加算器303の加算結果がアドレスデータERR_ADRS[31:00]と一致しない場合、S31の判定はNoとなる。その結果、動作履歴制御部155は、加算器303の加算結果を用いて動作情報HIS_WT_DATAを書込むためのコマンドを作成し(S32)、そのコマンドによって、動作情報HIS_WT_DATAを通常メモリ31に書込ませる(S23)。その後は、上記S29に移行する。
加算器303の加算結果がアドレスデータERR_ADRS[31:00]と一致する場合、S31の判定はYesとなり、ANDゲート304の出力する論理積の値は1となる。このため、レジスタ262には、加算器303の加算結果ではなく、加算器302の加算結果が保持される。その結果、レジスタ262から出力されるアドレスデータHIS_ADRS[31:00]の値は更にインクリメントされた値となる(S34)。その後は、上記S32に移行する。
図10は、メモリアクセス制御部における動作情報の読出し動作を表すフローチャートである。最後に図10を参照し、動作情報HIS_WT_DATAの読出し動作について詳細に説明する。動作情報HIS_WT_DATAの読出しは、SVP2からの指示により、SVPコマンド制御部14が読出し要求をアクティブにすることで行われる。図10では、読出し要求がアクティブになった後のメモリアクセス制御部15の動作を表している。
読出し要求がアクティブとなった場合、蓄積された全ての動作情報HIS_WT_DATAの読出しが行われる。動作情報HIS_WT_DATAの読出しは、現在のアドレスデータHIS_ADRS[31:00]の値から開始しても良いが、予め定めた固定値から開始しても良い。蓄積された全ての動作情報HIS_WT_DATAの読出しは、全てのアドレスから動作情報HIS_WT_DATAを読出すことで終了する。ここでは、動作情報HIS_WT_DATAの読出しは、フリーズ要求がアクティブとなった後に、現在のアドレスデータHIS_ADRS[31:00]の値から開始されると想定する。
上記想定では、読出し要求がアクティブとなった場合に、レジスタ262へのデータの格納は行われない。また、動作履歴制御部155は、図3に表す構成要素に加えて、動作情報HIS_WT_DATAの読出しの完了を判定するための完了判定部を備える。その完了判定部は、例えばレジスタ、比較器、及び通知部を少なくとも備える。レジスタは、動作情報HIS_WT_DATAの読出しを開始する前にレジスタ262に格納されていたアドレスデータHIS_ADRS[31:00]を保持する。比較器は、レジスタに保持されたアドレスデータHIS_ADRS[31:00]の値を、ORゲート310から出力されているデータの値と比較し、その比較結果を出力する。通知部は、比較結果が両者の一致を表していた場合に、SVPコマンド制御部14を介して、動作情報HIS_WT_DATAの読出しの完了を通知する。その通知により、読出し要求はインアクティブとなって、動作履歴制御部155による動作情報HIS_WT_DATAの読出し動作が終了する。
読出し要求がアクティブになると、動作履歴制御部155の完了判定部はレジスタ262に現在、格納されているアドレスデータHIS_ADRS[31:00]を保持する(S41)。動作履歴制御部155は、切り替えモード信号SPARE_STS[1:0]の値が“01”か否か、つまりコピーモードが設定されているか否か判定する(S42)。上記のように、コピーモードの設定時には、メモリアクセスパイプライン213の制御により、通常メモリ31のデータがスペアメモリ32にコピーされる。そのため、通常メモリ31、及びスペアメモリ32共に、動作情報HIS_WT_DATAの読出しのためのアクセスは行えない。このことから、読出し要求がアクティブになると(S41)、メモリアクセス制御部15は、切り替えモード信号SPARE_STS[1:0]の値が“01”か否か、つまりコピーモードが設定されているか否か判定する形となる(S42)。コピーモードが設定されていた場合、S42の判定はYesとなる。その場合、メモリアクセス制御部15の完了判定部は、SVPコマンド制御部14を介して、動作情報HIS_WT_DATAの読み取りが行えない旨をSVP2に通知する。その通知により、SVP2は、SVPコマンド制御部14にアクティブのフリーズ解除要求を出力させ、読出し要求をインアクティブにする(S49)。その読出し要求がインアクティブとなることで、動作情報HIS_WT_DATAの読出し動作が終了する(S50)。
コピーモードが設定されていない場合、S42の判定はNoとなる。読出し要求がアクティブとなることに伴い、上記ORゲート325の出力する論理和の値は1となり、レジスタ262には加算器302或いは303の加算結果が保持される。そのため、レジスタ262に新たに保持されるアドレスデータHIS_ADRS[31:00]の値は、それまでの値より少なくともインクリメントされた値となる(S43)。
切り替えモード信号SPARE_STS[1:0]の値が“00”、つまり通常モードが設定されている場合(S44のNo)、動作履歴制御部155は、アドレスデータHIS_ADRS[31:00]及びアクティブの信号HIS_RD_ENBを出力する(S45)。その結果、アクセス制御部152は、スペアメモリ32のアドレスデータHIS_ADRS[31:00]によって指定されるアドレスから動作情報HIS_WT_DATAを読出す(S46)。読出された動作情報HIS_WT_DATAは、読出し制御部154、及びSVPコマンド制御部14を介してSVP2に出力される(S47)。このときのアドレスデータHIS_ADRS[31:00]は、加算器303の加算結果である。
動作情報HIS_WT_DATAの出力時に、ORゲート310からはレジスタ262に次に保持すべきアドレスデータHIS_ADRS[31:00]が出力されている。完了判定部は、そのアドレスデータHIS_ADRS[31:00]の値を、保持したアドレスデータHIS_ADRS[31:00]の値と比較することにより、全ての動作情報HIS_WT_DATAを読出したか否か判定する(S48)。それらの値が一致した場合、S48の判定はYesとなり、完了判定部は、SVPコマンド制御部14を介して、動作情報HIS_WT_DATAの読出しが完了したことをSVP2に通知する。その通知により、SVP2は、SVPコマンド制御部14にアクティブのフリーズ解除要求を出力させ、読出し要求をインアクティブにする(S49)。
切り替えモード信号SPARE_STS[1:0]の値が“10”、つまりスペアモードが設定されている場合(S44のYes)、加算器303の加算結果とアドレスデータERR_ADRS[31:00]の値とが一致する可能性がある。それらの値が一致しない場合(S51のNo)、レジスタ262には加算器303の加算結果がアドレスデータHIS_ADRS[31:00]として保持される。動作履歴制御部155は、アドレスデータHIS_ADRS[31:00]及びアクティブの信号HIS_RD_ENBを出力する(S52)。その結果、アクセス制御部152は、通常メモリ31のアドレスデータHIS_ADRS[31:00]によって指定されるアドレスから動作情報HIS_WT_DATAを読出す(S53)。その後は上記S47に移行する。
加算器303の加算結果とアドレスデータERR_ADRS[31:00]の値とが一致する場合(S51のYes)、動作履歴制御部155は、加算器303の加算結果ではなく、加算器302の加算結果をレジスタ262に保持させる。それにより、レジスタ262に格納されるアドレスデータHIS_ADRS[31:00]の値は、S43の処理後のアドレスデータHIS_ADRS[31:00]の値を更にインクリメントした値となる(S54)。このため、次に移行するS52では、アドレスデータHIS_ADRS[31:00]として加算器302の加算結果が出力される。
なお、本実施形態では、プロセッサ1に動作情報HIS_WT_DATAの書込み、及び読出しの両方を行わせているが、動作情報HIS_WT_DATAの書込み、及び読出しのうちの少なくとも一方をプロセッサ1以外の構成要素に行わせるようにしても良い。複数のプロセッサ1を搭載したデータ処理装置では、1つ以上のプロセッサ1に、動作情報HIS_WT_DATAの書込み、及び読出しを行わせるようにしても良い。このようなこともあり、本実施形態は様々な変形を行うことができる。本実施形態において、プロセッサ1に動作情報HIS_WT_DATAの書込み、及び読出しを行わせているのは、プロセッサ1に搭載された主記憶装置3へのアクセス機能を有効に利用し、データ処理装置全体での製造コストをより抑えられるようにするためである。
Claims (4)
- 第1の記憶部、及び前記第1の記憶部の代替とする第2の記憶部を備えた主記憶装置と、
動作の内容を表す動作情報を生成する情報生成手段と、
前記主記憶装置の前記第1の記憶部、及び前記第2の記憶部にアクセス可能なアクセス手段と、
前記第2の記憶部を前記第1の記憶部の代替とするか否かを判定し、該判定結果を用いて前記アクセス手段を制御することにより、前記第2の記憶部を前記第1の記憶部の代替としない場合、前記動作情報を前記第2の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第1の記憶部にそれぞれ格納させ、前記第2の記憶部を前記第1の記憶部の代替とする場合、前記動作情報を前記第1の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第2の記憶部にそれぞれ格納させる代替判定手段と、
を有することを特徴とするデータ処理装置。 - 前記代替制御手段は、前記第1の記憶部のアドレス別に、前記第2の記憶部を前記第1の記憶部の代替とすべき固定故障の発生の有無を判定する故障判定手段、及び前記固定故障が発生していると前記故障判定手段が判定したアドレスを表すアドレスデータを保持する保持手段、を有し、
前記アクセス手段は、前記第1の記憶部に前記動作情報を格納する場合、前記保持手段に保持されたアドレスデータが表すアドレス以外に前記動作情報を格納する、
ことを特徴とする請求項1記載のデータ処理装置。 - 動作の内容を表す動作情報を生成する情報生成手段と、
第1の記憶部、及び前記第1の記憶部の代替とする第2の記憶部を備えた主記憶装置にアクセス可能なアクセス手段と、
前記第2の記憶部を前記第1の記憶部の代替とするか否かを判定し、該判定結果を用いて前記アクセス手段を制御することにより、前記第2の記憶部を前記第1の記憶部の代替としない場合、前記動作情報を前記第2の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第1の記憶部にそれぞれ格納させ、前記第2の記憶部を前記第1の記憶部の代替とする場合、前記動作情報を前記第1の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第2の記憶部にそれぞれ格納させる代替判定手段と、
を有することを特徴とするプロセッサ。 - データ処理装置に、第1の記憶部、及び前記第1の記憶部の代替とする第2の記憶部を備えた主記憶装置を採用し、
前記主記憶装置が採用されたデータ処理装置に、
動作の内容を表す動作情報を生成させ、
前記第2の記憶部を前記第1の記憶部の代替とするか否かを判定させ、
前記第2の記憶部を前記第1の記憶部の代替とするか否かの判定結果に従って、前記動作を前記第2の記憶部、及び前記第1の記憶部のうちの一方に格納させる、
ことを特徴とする動作履歴記録方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/069771 WO2014020749A1 (ja) | 2012-08-02 | 2012-08-02 | データ処理装置、プロセッサ、及び動作履歴記録方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5888419B2 true JP5888419B2 (ja) | 2016-03-22 |
JPWO2014020749A1 JPWO2014020749A1 (ja) | 2016-07-11 |
Family
ID=50027476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014527917A Active JP5888419B2 (ja) | 2012-08-02 | 2012-08-02 | データ処理装置、プロセッサ、及び動作履歴記録方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5888419B2 (ja) |
WO (1) | WO2014020749A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353127A (ja) * | 1998-06-05 | 1999-12-24 | Nec Corp | ディスクアレイ装置 |
JP2008250784A (ja) * | 2007-03-30 | 2008-10-16 | Nec Computertechno Ltd | 解析情報の採取方法及びトレーサー回路 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001101087A (ja) * | 1999-09-29 | 2001-04-13 | Sharp Corp | メモリ及びメモリ制御方法 |
JP2008171103A (ja) * | 2007-01-10 | 2008-07-24 | Seiko Epson Corp | 半導体記憶装置管理システム、半導体記憶装置、半導体記憶装置管理システムの制御方法およびプログラム |
JP2009134672A (ja) * | 2007-12-03 | 2009-06-18 | Sony Ericsson Mobilecommunications Japan Inc | メモリ管理方法および携帯端末装置 |
JP5421636B2 (ja) * | 2009-03-31 | 2014-02-19 | サンデン株式会社 | コンテンツ再生装置 |
-
2012
- 2012-08-02 WO PCT/JP2012/069771 patent/WO2014020749A1/ja active Application Filing
- 2012-08-02 JP JP2014527917A patent/JP5888419B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353127A (ja) * | 1998-06-05 | 1999-12-24 | Nec Corp | ディスクアレイ装置 |
JP2008250784A (ja) * | 2007-03-30 | 2008-10-16 | Nec Computertechno Ltd | 解析情報の採取方法及びトレーサー回路 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2014020749A1 (ja) | 2016-07-11 |
WO2014020749A1 (ja) | 2014-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7328365B2 (en) | System and method for providing error check and correction in memory systems | |
US7447948B2 (en) | ECC coding for high speed implementation | |
US5701313A (en) | Method and apparatus for removing soft errors from a memory | |
JP4395425B2 (ja) | 破損データ値を処理するためのデータ処理装置と方法 | |
JP4734003B2 (ja) | ソフトエラー訂正方法、メモリ制御装置及びメモリシステム | |
JP2012113466A (ja) | メモリコントローラ及び情報処理システム | |
US9645904B2 (en) | Dynamic cache row fail accumulation due to catastrophic failure | |
JP2010009102A (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
US10817369B2 (en) | Apparatus and method for increasing resilience to faults | |
KR20170031758A (ko) | 역방향 메모리 스페어링을 위한 방법 및 장치 | |
US10108469B2 (en) | Microcomputer and microcomputer system | |
US10649829B2 (en) | Tracking errors associated with memory access operations | |
US8176388B1 (en) | System and method for soft error scrubbing | |
JP2010170462A (ja) | 障害処理装置および方法 | |
JP5021978B2 (ja) | マルチプロセッサシステム及びその動作方法 | |
JP2013238926A (ja) | 信号処理回路およびそれを用いた試験装置 | |
US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
JP5888419B2 (ja) | データ処理装置、プロセッサ、及び動作履歴記録方法 | |
WO2020189617A1 (ja) | メモリ障害対処システム、情報処理装置及びメモリ障害対処方法 | |
JPWO2012046343A1 (ja) | メモリモジュール冗長化方法、記憶処理装置、及びデータ処理装置 | |
JP2014026589A (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
JPH05165581A (ja) | アレイディスク装置のデータ復元量制御方法 | |
EP4303731A2 (en) | Electronic device managing corrected error and operating method of electronic device | |
KR20240003823A (ko) | 정정된 에러를 관리하는 전자 장치 및 전자 장치의 동작 방법 | |
JP2000305840A (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: 20160119 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5888419 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |