(57)【要約】【課題】継続的に動作しつつソフトエラーの影響を抑制することができる記憶装置を得る。【解決手段】記憶装置を、データ保存手段１と、誤り訂正手段２と、エラーカウント手段３と、代替データ保存手段４と、データ選択手段５を備える構成とする。データ保存手段１は、入力される制御信号に基づいてデータの保存および出力を行う。誤り訂正手段２は、データ保存手段１からの出力データにエラーがある場合に誤り訂正データを生成する。エラーカウント手段３は、同一のアドレスで誤り訂正を行ったエラー回数をカウントする。代替データ保存手段４は、エラー回数があらかじめ設定された回数を超えたときに、制御信号が出力を指定したアドレスを代替アドレスとして保存する。データ選択手段５は、代替アドレスからの出力を指定されたときに、データ保存手段１に保存されているデータに代えて保存している誤り訂正データを出力する。【選択図】      図１
2016153928.tif 000002
【特許請求の範囲】
【請求項１】
入力される制御信号に基づいてデータの保存および出力を行うデータ保存手段と、
出力を要求する前記制御信号に基づいて前記データ保存手段から出力データとして出力される前記データの所定のエラーの有無を検知し、前記所定のエラーがある場合に前記出力データの誤り訂正を行って誤り訂正データを生成する誤り訂正手段と、
前記誤り訂正手段が、同一のアドレスからの前記出力データに対して誤り訂正を行った回数をエラー回数としてカウントするエラーカウント手段と、
前記エラー回数があらかじめ設定された回数を超えたときに、前記制御信号が出力を指定したアドレスを代替アドレスとして、前記誤り訂正データとを関連づけて保存する代替データ保存手段と、
前記制御信号によって、前記代替アドレスからデータの出力を指定されたときに、前記データ保存手段に保存されている前記データに代えて前記代替データ保存手段に保存している前記誤り訂正データを出力するデータ選択手段と
を備えることを特徴とする記憶装置。
【請求項２】
前記制御信号がデータの保存を要求するものであるときに、前記制御信号で示されたアドレスと、前記代替データ保存手段が保存している前記代替アドレスとを比較するアドレス比較手段をさらに備え、
前記代替データ保存手段は、前記制御信号で示されたアドレスと前記代替アドレスが一致したときに、前記誤り訂正データに代えて、前記制御信号とともに入力される前記データを保存することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記代替データ保存手段が前記誤り訂正データに代えて、前記制御信号とともに入力される前記データを保存するときに、前記データ保存手段も前記制御信号とともに入力される前記データを保存することを特徴とする請求項２に記載の記憶装置。
【請求項４】
前記代替データ保存手段は、代替データが保存されていることを示す情報を代替データ有効フラグとして保存し、
前記アドレス比較手段は、有効な前記代替アドレス有効フラグが保存されているときに、前記制御信号で示されたアドレスと、前記代替アドレスとの比較を行うことを特徴とする請求項２または３いずれかに記載の記憶装置。
【請求項５】
前記所定のエラーがソフトエラーであることを特徴とする請求項１から４いずれかに記載の記憶装置。
【請求項６】
入力される制御信号に基づいてデータを通常データとして保存し、
出力を要求する前記制御信号に基づいて出力データとして出力される前記通常データの所定のエラーの有無を検知し、前記所定のエラーがある場合に前記出力データの誤り訂正を行って誤り訂正データを生成し、
同一のアドレスからの前記出力データに対して誤り訂正を行った回数をエラー回数としてカウントし、
前記エラー回数があらかじめ設定された回数を超えたときに、前記制御信号が出力を指定したアドレスを代替アドレスとして、前記誤り訂正データと関連づけて保存し、
前記制御信号によって、前記代替アドレスからデータの出力を指定されたときに、前記通常データに代えて前記誤り訂正データを出力することを特徴とする記憶装置の制御方法。
【請求項７】
前記制御信号がデータの保存を要求するものであるときに、前記制御信号で示されたアドレスと、保存している前記代替アドレスとを比較し、
前記制御信号で示されたアドレスと前記代替アドレスが一致したときに、前記誤り訂正データに代えて、前記制御信号とともに入力される前記データを保存することを特徴とする請求項６に記載の記憶装置の制御方法。
【請求項８】
前記誤り訂正データに代えて、前記制御信号とともに入力される前記データを保存するときに、前記通常データとしても前記制御信号とともに入力される前記データを保存することを特徴とする請求項７に記載の記憶装置の制御方法。
【請求項９】
代替データが保存されていることを示す情報を代替データ有効フラグとして保存し、
有効な前記代替アドレス有効フラグが保存されているときに、前記制御信号で示されたアドレスと、前記代替アドレスとの比較を行うことを特徴とする請求項７または８いずれかに記載の記憶装置の制御方法。
【請求項１０】
前記所定のエラーがソフトエラーであることを特徴とする請求項６から９いずれかに記載の記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶装置に関するものであり、特に半導体記憶装置の信頼性向上に関するものである。
【背景技術】
【０００２】
情報処理装置の重要性の高まりとともに、情報処理装置は、高い処理能力と高可用性が要求されるようになっている。また、装置の設置面積の抑制や消費電力の低減のため、情報処理装置を構成するハードウェア量の増大は抑制されていることが望ましい。
【０００３】
情報処理装置では高速でデータの読み書きが可能な記憶装置として、ＳＲＡＭ（Static Random Access Memory）が使用されることが多い。動作している間、情報処理装置は、ＳＲＡＭでのデータの読み書きを継続的に行う。また、ＳＲＡＭは、情報処理装置の動作上、重要なハードウェアの１つであるため、安定して稼働することが要求される。しかし、ＳＲＡＭでは、経年劣化によるメモリセルの故障のような物理的な不具合から動作不良が生じ得る。
【０００４】
また、ＳＲＡＭではデータの反転のようなソフトエラーも生じ得るため、安定動作のためにはソフトエラーに対する対策も必要である。ソフトエラーへの対策としては、例えば、ＥＣＣ（Error Correcting Code）による１ビットの誤り訂正が行われる。しかし、ＥＣＣによるソフトエラーの誤り訂正を行ったとしても、メモリセルの不良が発生した状態でソフトエラーが発生すると、ＥＣＣによる誤り訂正で対応しきれない可能性がある。ＳＲＡＭにおいて誤り訂正が機能しない場合には、情報処理装置全体の動作の停止につながる恐れがある。そのため、ＳＲＡＭのような半導体記憶装置では、メモリセルの一部に不良が発生した際でも継続的に動作することが望ましく、対応する技術の開発が行われている。半導体記憶装置において、メモリセルの一部に不良が発生した際でも、継続的に動作を行うための技術としては、例えば、特許文献１のような技術が開示されている。
【０００５】
特許文献１は、エラーが発生した際に代替領域においてデータの読み書きを行う機能を有する半導体記憶装置に関するものである。特許文献１の半導体記憶装置は、ＥＣＣによる誤り訂正回路を備えている。特許文献１の半導体記憶装置は、起動時または外部からの制御信号に基づいて、試験動作を行うことで同一アドレスでの誤り訂正の発生回数を計数している。特許文献１の半導体記憶装置は、誤り訂正の発生回数が所定の回数になったときに欠陥が生じていると判断し、該当するアドレスを含むブロックを別の空き領域に複製する。特許文献１の半導体記憶装置は、欠陥と判断したアドレスを含むブロックへのアクセスが要求されたときに代替ブロックのアドレスへの変換することにより動作を行う。特許文献１では、そのような動作を行うことで欠陥の生じている箇所へのアクセスを回避することができるとしている。
【０００６】
また、特許文献２には、代替領域においてデータの読み書きを行う機能を有する不揮発性の半導体記憶装置が開示されている。特許文献２の半導体記憶装置は、記憶情報のエラーの検出および訂正を行うメモリコントローラを備えている。メモリコントローラは、所定の時間ごとまたは電源投入時に、記憶領域のデータのエラーの検出および訂正を行う。メモリコントローラは、エラー訂正を行った回数を計数し、エラー訂正が所定回数を超えたときに記憶するデータ領域の変更を行っている。特許文献２では、時間経過によるデータ変化を検出し、データ変化の著しい領域から他のデータ領域に変えることでデータの信頼性を確保することができるとしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０４−９８３４２号公報
【特許文献２】特開２０１１−１８３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術は次のような点で十分ではない。特許文献１の半導体装置は、起動時または外部からの制御信号の入力時に、試験動作を行いエラーの発生回数を計測している。そのため、情報処理装置の動作時にデータの読み書きを継続している間には、エラーの発生回数を計測することができない。そのため、継続的に動作を行いつつエラーの影響を抑制する技術としては十分ではない。また、特許文献１の半導体装置はブロックごと他の領域に変更するので、エラーが発生したときのための代替領域をブロック単位であらかじめ用意しておく必要がある。そのため、装置が大型化する可能性がある。
【０００９】
また、特許文献２の半導体装置は所定の時間ごとまたは電源投入時に、記憶領域のデータのエラー訂正回数の計測を行っている。そのため、特許文献２の半導体装置も情報処理装置の動作時にデータの読み書きを継続している間には、エラーの発生回数を計測することができない。よって、特許文献２の技術は、頻繁に読み書きが行われるＳＲＡＭのような記憶装置において、継続的に動作を行いつつエラーの影響を抑制する技術としては十分ではない。
【００１０】
本発明は、動作を継続しつつエラーの影響を抑制することが可能な記憶装置を得ることを目的としている。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明の記憶装置は、データ保存手段と、誤り訂正手段と、エラーカウント手段と、代替データ保存手段と、データ選択手段を備えている。データ保存手段は、入力される制御信号に基づいてデータの保存および出力を行う。誤り訂正手段は、出力を要求する制御信号に基づいてデータ保存手段から出力データとして出力されるデータの所定のエラーの有無を検知し、所定のエラーがある場合に出力データの誤り訂正を行って誤り訂正データを生成する。エラーカウント手段は、誤り訂正手段が、同一のアドレスからの出力データに対して誤り訂正を行った回数をエラー回数としてカウントする。代替データ保存手段は、エラー回数があらかじめ設定された回数を超えたときに、制御信号が出力を指定したアドレスを代替アドレスとして、誤り訂正データとを関連づけて保存する。データ選択手段は、制御信号によって、代替アドレスからデータの出力を指定されたときに、データ保存手段に保存されているデータに代えて代替データ保存手段に保存している誤り訂正データを出力する。
【００１２】
本発明の記憶装置の制御方法は、入力される制御信号に基づいてデータを通常データとして保存する。本発明の記憶装置の制御方法は、出力を要求する制御信号に基づいて出力データとして出力される通常データの所定のエラーの有無を検知し、所定のエラーがある場合に出力データの誤り訂正を行って誤り訂正データを生成する。本発明の記憶装置の制御方法は、同一のアドレスからの出力データに対して誤り訂正を行った回数をエラー回数としてカウントする。本発明の記憶装置の制御方法は、エラー回数があらかじめ設定された回数を超えたときに、制御信号が出力を指定したアドレスを代替アドレスとして、誤り訂正データと関連づけて保存する。本発明の記憶装置の制御方法は、制御信号によって、代替アドレスからデータの出力を指定されたときに、通常データに代えて誤り訂正データを出力する。
【発明の効果】
【００１３】
本発明によると、動作を継続しつつエラーの影響を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態の構成の一部を示す図である。
【図４】本発明の第２の実施形態の構成の一部を示す図である。
【図５】本発明の第２の実施形態の動作フローを示す図である。
【図６】本発明の第２の実施形態の動作フローを示す図である。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態の記憶装置の構成の概要を示したものある。
【００１６】
本実施形態の記憶装置は、データ保存手段１と、誤り訂正手段２と、エラーカウント手段３と、代替データ保存手段４と、データ選択手段５を備えている。データ保存手段１は、入力される制御信号に基づいてデータの保存および出力を行う。誤り訂正手段２は、出力を要求する制御信号に基づいてデータ保存手段１から出力データとして出力されるデータの所定のエラーの有無を検知し、所定のエラーがある場合に出力データの誤り訂正を行って誤り訂正データを生成する。エラーカウント手段３は、誤り訂正手段２が、同一のアドレスからの出力データに対して誤り訂正を行った回数をエラー回数としてカウントする。代替データ保存手段４は、エラー回数があらかじめ設定された回数を超えたときに、制御信号が出力を指定したアドレスを代替アドレスとして、誤り訂正データとを関連づけて保存する。データ選択手段５は、制御信号によって、代替アドレスからデータの出力を指定されたときに、データ保存手段１に保存されているデータに代えて代替データ保存手段４に保存している誤り訂正データを出力する。
【００１７】
本実施形態の記憶装置では、誤り訂正手段２がデータ保存手段１から出力データとして出力されるデータの所定のエラーの有無を検知し、誤り訂正を行って誤り訂正データを生成している。また、エラーカウント手段３が同一のアドレスでの誤り訂正の回数をカウントし、あらかじめ設定された回数を超えたときに、代替データ保存手段４が誤り訂正データを代替アドレスと関連づけて保存している。代替アドレスからデータの出力を指定されたときに、データ選択手段５によって、代替データ保存手段４に保存している誤り訂正データの出力が行われる。すなわち、本実施形態の記憶装置は、同一のアドレスでの誤り訂正の回数があらかじめ設定された回数超えたときに、誤り訂正が行われたデータを誤り訂正データとして自装置に保存している。また、本実施形態の記憶装置は、再度、同じアドレスからの出力を指定されたときに、保存している誤り訂正データの出力を行っている。このように本実施形態の記憶装置は、誤り訂正の回数が多いアドレスのデータについて誤り訂正済みデータを保存し、保存した誤り訂正済みのデータからの出力を行うのでエラーの影響を抑制することができる。また、本実施形態の記憶装置は、通常の出力動作の際に生成された誤り訂正データを、代替のデータとして用いているので、エラーチェック等の動作を通常の動作とは別に行う必要はない。そのため、本実施形態の記憶装置は、エラーチェック等のために通常の動作を停止する必要はない。その結果、本実施形態の記憶装置は、動作を継続しつつエラーの影響を抑制することができる。
【００１８】
（第２の実施形態）
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の記憶装置の構成の概要を示したものである。
【００１９】
本実施形態の記憶装置は、記憶部１０と、エラー訂正部２０と、エラーカウント部３０と、代替データ記憶部４０と、セレクタ５０を備えている。
【００２０】
記憶部１０は、入力されたデータを記憶する機能を有する。本実施形態の記憶部１０は、ＳＲＡＭ（Static Random Access Memory）として形成されている。記憶部１０は、他の半導体記憶素子を用いて形成されていてもよい。記憶部１０は、入力されたデータを指定されたアドレスに書き込みを行って保存する。記憶装置には、記憶装置が備えられた情報処理装置等から制御信号およびデータが送られてくる。データの書き込みに関する信号として、データの書き込み先を示すライトアドレス信号ＷＡ、記憶部１０に保存するデータで構成されるライトデータ信号ＷＤおよび書き込みを要求する信号であるライトイネーブル信号ＷＥが記憶部１０に入力される。
【００２１】
また、記憶部１０は、読み出しを要求する信号を受け取ると、指定されたアドレスのデータをデータ信号Ｓ１１としセレクタ５０に出力する。データの読み出しに関する信号として、データを読み出す元となるアドレスを示すリードアドレス信号ＲＡおよび読み出しを要求する信号であるリードイネーブル信号ＲＥが記憶部１０に入力される。本実施形態の記憶部１０は、第１の実施形態のデータ保存手段１に相当する。
【００２２】
エラー訂正部２０は、データのエラーの有無のチェックおよびエラーが生じたデータの誤り訂正を行う機能を有する。エラー訂正部２０は、入力されたデータのＥＣＣエラーの有無をチェックする。エラーを検出した場合には、データ訂正部２０は、誤り訂正を行って誤り訂正データを生成する。
【００２３】
エラー訂正部２０は、セレクタ５０から入力されたデータまたは誤り訂正を行った誤り訂正データを出力信号Ｓ１３として出力する。エラー訂正部２０から出力されたデータは、記憶装置が備えられている情報処理装置等に送られる。エラーを検出しなかった場合には、データ訂正部２０は、データを変更する処理を行わずに、セレクタ５０から入力されたデータをそのまま出力する。
【００２４】
また、エラー検出をしたときに、エラー訂正部２０は、誤り訂正データとＥＣＣエラーを検知した情報を、エラーカウント部３０に誤り訂正データ信号Ｓ２２およびエラー検知信号Ｓ２１として送る。本実施形態のエラー訂正部２０は、第１の実施形態の誤り訂正手段２に相当する。
【００２５】
エラーカウント部３０の詳細な構成について図３を参照して説明する。図３は、エラーカウント部３０の構成の概要を示したものである。図３に示すように、エラーカウント部３０は、アドレス比較部３１と、エラーアドレス管理部３２と、誤り訂正データ記憶部３３と、データ切替判定部３４と、閾値記憶部３５を備えている。エラーカウント部３０のアドレス比較部３１には、情報処理装置等から記憶装置に送られてくるリードアドレス信号ＲＡが入力される。
【００２６】
アドレス比較部３１は、送られてきた誤り訂正データに対応するアドレスがエラーアドレスとして保存されているものと一致するかを判断する機能を有する。アドレス比較部３１は、エラー検知信号Ｓ２１を受け取ったときに、誤り訂正データ信号Ｓ２２の誤り訂正データに対応するリードアドレス信号ＲＡのアドレスがエラーアドレス管理部３２に保存されているエラーアドレスと一致するかを確認する。
【００２７】
リードアドレスと保存されているアドレスが一致する場合は、アドレス比較部３１は、エラーアドレス管理部３２のエラー回数を１増加させる。保存されているエラーアドレスと一致しなかった場合には、アドレス比較部３１は、受け取ったリードアドレスをエラーアドレスとしてエラーアドレス管理部３２に保存し、エラー回数を１に設定する。
【００２８】
エラーアドレス管理部３２は、エラーアドレスとエラーアドレスごとの異常の発生回数を保存する機能を有する。エラーアドレス管理部３２には、エラーアドレスとエラー発生回数が関連付けられて保存されている。また、エラーアドレス管理部３２は、アドレス有効フラグの情報を保存している。エラーアドレス有効フラグは、保存されているエラーアドレスが存在するかを示す情報である。アドレス比較部３１は、エラーアドレス有効フラグを参照し、フラグが有効なときのみリードアドレスとエラーアドレスの比較を行う。エラーアドレス有効フラグが無効であるときは、比較を行わなくてよいのでアドレス比較部３１の処理量を低減することができる。
【００２９】
本実施形態のエラーアドレス管理部３２は、複数のエラーアドレスを保存する機能を有する。また、エラーアドレス管理部３２に保存されるエラーアドレスを１つにして装置の構成を簡略化してもよい。
【００３０】
誤り訂正データ記憶部３３は、誤り訂正データを保存する機能を有する。誤り訂正データ記憶部３３は、エラー訂正部２０から誤り訂正データ信号Ｓ２２として送られてくる誤り訂正データを保存する。また、誤り訂正データ記憶部３３は、データ切替判定部３４がエラーが所定の回数を超えたと判断したときに、保存している誤り訂正データを誤り訂正データ信号Ｓ３２として代替データ記憶部４０に送る。
【００３１】
データ切替判定部３４は、エラーの発生回数を基に代替データである誤り訂正データの出力への切り替えの要否を判断する機能を有する。データ切替判定部３４は、エラーが発生した際に、エラーアドレス管理部３２に保存されたエラー回数と閾値記憶部３５に保存されている閾値を比較する。エラー回数が閾値を超えたときに、データ切替判定部３４は、代替データへの切り替えが必要であることを示す情報を代替データ記憶部４０にデータ切替判定信号Ｓ３１として送る。また、データ切替判定部３４は、誤りデータ記憶部３３に保存されている誤り訂正データを代替データ記憶部４０に誤り訂正データ信号Ｓ３２として送るように制御する。
【００３２】
閾値記憶部３５は、データ切替判定部３４が代替データへの切り替えの要否を判断する際に用いる、エラー回数の閾値の情報を保存する機能を有する。エラー回数の閾値の情報は、あらかじめ設定されて保存されている。
【００３３】
代替データ記憶部４０の詳細な構成について図４を参照して説明する。図４は、代替データ記憶部４０の構成の概要を示したものである。代替データ記憶部４０は、代替データ制御部４１と、リードデータ制御部４２と、セレクタ４３と、代替データ保存部４４と、代替アドレス管理部４５を備えている。代替データ制御部４１には、ライトアドレス信号ＷＡおよびライトイネーブル信号ＷＥが入力される。リードデータ制御部４２には、リードアドレス信号ＲＡおよびリードイネーブル信号ＲＥが入力される。また、セレクタ４３にはライトデータ信号ＷＤが入力される。
【００３４】
本実施形態のアドレス比較部３１およびエラーアドレス管理部３２は、第１の実施形態のエラーカウント手段３に相当する。
【００３５】
代替データ制御部４１は、代替データの保存に関する制御を行う機能を有する。代替データ制御部４１は、エラー回数が閾値を超えているアドレスへのデータの書き込みを要求するライトイネーブル信号ＷＥを受けとったときに、受け取ったデータを代替データとして代替データ保存部４４に保存する。代替データ制御部４１は、ライトイネーブル信号ＷＥを受け取ると、代替アドレス管理部４５を参照して有効な代替データあるかを示す代替データ有効フラグを確認する。代替データ有効フラグが有効であるとき、代替データ制御部４１は、ライトアドレス信号ＷＡがデータの書き込み先として示すライトアドレスが代替アドレス管理部４５に保存されているアドレスと一致するかを確認する。ライトアドレスと代替アドレス管理部４５に保存されているアドレスが一致した場合には、代替データ制御部４１は、ライトデータ信号ＷＤとして受け取ったデータを代替データ保存部４４に保存するようにセレクタ４３を制御する。
【００３６】
また、代替データ制御部４１は、データ切替判定信号Ｓ３１を受け取ったときに、誤り訂正データ信号Ｓ３２として送られてくる誤り訂正データを代替データ保存部４４に代替データとして保存する。データ切替判定信号Ｓ３１を受け取ったときに、代替データ制御部４１は、代替アドレス管理部４５を参照して、受け取ったエラーアドレスが保存されているアドレスと一致するかを確認する。一致する場合は、代替データ制御部４１は、一致したアドレスのデータを受け取った誤り訂正データに更新する。一致しない場合には、代替データ制御部４１は、代替アドレス管理部４５にエラーアドレスを代替アドレスとして保存する。また、代替データ制御部４１は、受け取った誤り訂正データを代替データ保存部４４に保存するようにセレクタ４３を制御する。また、代替データ制御部４１は、代替アドレス管理部４５の代替データ有効フラグが無効であったときは、代替データ有効フラグを有効に設定する。
【００３７】
リードデータ制御部４２は、代替データの出力に関する制御を行う機能を有する。リードデータ制御部４２は、エラー回数が閾値を超えているアドレスからの読み出しを要求する信号を受けた際に、代替データを出力するように制御する。リードデータ制御部４２は、データの読み出しを要求するリードイネーブル信号ＲＥを受け取ったときに、リードアドレス信号ＲＡに示されるリードアドレスが代替アドレス管理部４５に保存されているアドレスと一致するかを確認する。リードアドレスが代替アドレス管理部４５に保存されているアドレスと一致とき、代替アドレス管理部４５は、代替データの出力を示す信号をリードデータ選択信号Ｓ４１としてセレクタ５０に送る。また、代替アドレス管理部４５は、代替データ保存部４４を制御してリードアドレスに対応する代替データを代替データ信号Ｓ４２としてセレクタ５０に送る。
【００３８】
セレクタ４３は、代替データ制御部４１の制御に基づいて、入力されたデータを選択して代替データ保存部４４に出力する機能を有する。セレクタ４３は、ライトデータ信号ＷＤとして送られてくるライトデータと、誤り訂正データ信号Ｓ３２として送られてくる誤り訂正データのいずれかを代替データ保存部４４に出力する。ライトデータ信号ＷＤとして送られてくるライトデータは、記憶装置が備えられた情報処理装置等から新たに送られてくるデータである。また、誤り訂正データは、エラーカウント部３０から送られてくるデータである。
【００３９】
代替データ保存部４４は、代替データを保存する機能を有する。また、代替データ保存部４４は、リードデータ制御部４２から送られてくる制御信号に基づいて、保存している代替データを出力する機能を有する。代替データ保存部４４は、セレクタ４３から入力されたデータを代替アドレス管理部４５に保存された代替アドレスと関連づけて保存する。また、代替データ保存部４４は、リードデータ制御部４２から送られてくる制御信号に基づいて、保存している代替データを代替データ信号Ｓ４２としてセレクタ５０に出力する。
【００４０】
代替アドレス管理部４５は、代替データが保存されているアドレスを代替アドレスとして保存する機能を有する。代替アドレス管理部４５に保存されている代替アドレスと、代替データ保存部４４に保存されている代替データは、互いに関連付けられている。また、代替アドレス管理部４５は、代替データが存在するかを示す代替アドレス有効フラグのデータを保存している。
【００４１】
本実施形態の代替データ制御部４１、代替データ保存部４４および代替アドレス管理部４５は、第１の実施形態の代替データ保存手段４に相当する。
【００４２】
本実施形態の代替データ保存部４４および代替アドレス管理部４５は、複数の代替アドレスと対応する代替データを記憶する機能を有する。また、代替データ保存部４４および代替アドレス管理部４５は、１組のみ保存される構成として装置を簡略化してもよい。
【００４３】
セレクタ５０は、記憶部１０から送られてきたデータまたは代替データ記憶部４０から送られてきたデータのいずれかを選択して出力する機能を有する。セレクタ５０は、代替データ記憶部４０から送られてくるリードデータ選択信号Ｓ４１に基づいて、データを選択して、選択したデータをエラー訂正部２０に選択信号Ｓ１２として送る。本実施形態のリードデータ制御手段４２およびセレクタ５０は、第１の実施形態のデータ選択手段５に相当する。
【００４４】
本実施形態の記憶装置の動作について説明する。本実施形態の記憶装置にリード要求、すなわち保存しているデータの出力の要求があった場合の動作について説明する。情報処理装置等から記憶装置に送られてきたリードイネーブル信号ＲＥおよびリードアドレス信号ＲＡは、記憶部１０と代替データ記憶部４０のリードデータ制御部４２に入力される（ステップ１０１）。リードアドレス信号ＲＡは、アドレス比較部３１にも入力される。リードデータ制御部４２は、リード要求を受け取ると、代替アドレス管理部４５の代替アドレス有効フラグを参照して代替データが有効であるかを確認する。
【００４５】
代替データが有効でない場合は（ステップ１０２でＮｏ）、リードデータ制御部４２は、記憶部１０のデータを選択して出力する制御信号をリードデータ選択信号Ｓ４１としてセレクタ５０に出力する（ステップ１０３）。
【００４６】
セレクタ５０は、記憶部１０のデータを出力するリードデータ選択信号Ｓ４１を受け取ると、記憶部１０から送られてくるデータをエラー訂正部２０に送る。エラー訂正部２０は、データを受け取ると受け取ったデータについてＥＣＣエラーの有無を確認するエラーチェックを行う。
【００４７】
エラーを検出しなかったとき（ステップ１０４でＮｏ）、エラー訂正部２０は、記憶部１０から送られてきたデータをそのまま出力信号Ｓ１３として出力する。出力信号Ｓ１３は、記憶装置が備えられている情報処理装置等に送られる。
【００４８】
エラーを検出したとき（ステップ１０４でＹｅｓ）、エラー訂正部２０は、受け取ったデータのエラー訂正を行って、エラー訂正を行ったデータを誤り訂正データとして生成する（ステップ１０５）。エラー訂正を行うと、エラー訂正部２０は、誤り訂正データを出力信号Ｓ１３として出力する。また、エラー訂正部２０は、エラーを検出した情報と誤り訂正データをエラーカウント部３０にエラー検知信号Ｓ２１および誤り訂正データ信号Ｓ２２として送る。
【００４９】
エラーカウント部３０にエラーを検出した情報と誤り訂正データが入力されると、アドレス比較部３１は、リードアドレス信号ＲＡに示されているリードアドレスがエラーアドレス管理部３２に保存されているアドレスと一致するかを確認する。アドレス比較部３１は、エラーアドレス有効フラグを参照して、有効であるときのみリードアドレスとエラーアドレス管理部３２に保存されているアドレスの比較を行う。エラーアドレス有効フラグが無効のときは、アドレス比較部３１は、一致するアドレスがないとみなして動作を行う。
【００５０】
誤り訂正データに対応するリードアドレスがエラーアドレス管理部３２に保存されていないとき（ステップ１０６でＮｏ）、アドレス比較部３１は、リードアドレスをエラーアドレス管理部３２に新たに保存する（ステップ１１０）。アドレス比較部３１がエラーアドレス管理部３２に保存するリードアドレスを本実施形態ではエラーアドレスと呼ぶ。また、アドレス比較部３１は、リードアドレスを新たに保存する際に、エラー回数を１として設定する。また、エラーアドレス有効フラグが無効のときは、アドレス比較部３１は、エラーアドレス有効フラグを有効に設定する。
【００５１】
受け取ったリードアドレスがエラーアドレス管理部３２に保存されているとき（ステップ１０６でＹｅｓ）、アドレス比較部３１は、エラー回数を１増加させてエラー回数を積算するように保存されている情報を更新する（ステップ１０７）。
【００５２】
エラー回数の更新が行われると、データ切替判定部３４は、増加させた後のエラー回数と閾値記憶部３５に保存されている閾値を比較する。
【００５３】
エラー回数が閾値未満であるとき（ステップ１０８でＮｏ）、データ切替判定部３４は、代替データへの切り替えは不要と判断する。代替データへの切り替えが不要と判断されると、エラーカウント部３０は次に誤り訂正データが送られてくるまで待機状態となる。
【００５４】
エラー回数が閾値以上であるとき（ステップ１０８でＹｅｓ）、データ切替判定部３４は、代替データへの切り替えが必要と判断する。代替データへの切り替えが必要と判断すると、データ切替判定部３４は、誤り訂正データと、代替データへの切り替えが必要であることを示す情報を誤り訂正データ信号Ｓ３２およびデータ切替判定信号Ｓ３１として代替データ記憶部４０に送る。
【００５５】
誤り訂正データ信号Ｓ３２およびデータ切替判定信号Ｓ３１が代替データ記憶部４０に入力されると、代替データ制御部４１は、リードアドレスを代替アドレスとして代替アドレス管理部４５に保存する。また、代替データ制御部４１は、受け取った誤り訂正データを代替データとして代替データ保存部４４に保存する（ステップ１０９）。代替アドレス管理部４５に保存される代替アドレスと、代替データ保存部４４に代替データとして保存される誤り訂正データは、互いに関連付けられて保存される。また、代替データ制御部４１は、代替アドレス管理部４５の代替アドレス有効フラグを有効な状態として設定する。
【００５６】
リード要求を受け取った際に、代替アドレス有効フラグが有効な状態であるとき（ステップ１０２でＹｅｓ）、リードデータ制御部４２は受け取ったリードアドレスと、代替アドセル管理部４５に保存されているアドレスを比較する。受け取ったリードアドレスと、保存されているアドレスが一致したとき（ステップ１１１でＹｅｓ）、リードデータ制御部４２は、代替データの出力を要求するリードデータ選択信号Ｓ４１と、代替データ信号Ｓ４２をセレクタ５０に送る。
【００５７】
セレクタ５０は、リードデータ選択信号Ｓ４１と代替データ信号Ｓ４２を受け取ると、記憶部１０から送られてくるデータの代わりに、代替データを選択して誤り訂正部２０に送る（ステップ１１２）。すなわち、セレクタ５０は、記憶部１０から送られてくるデータの出力を行わない。誤り訂正部２０は、入力された代替データの誤りチェックを行い外部に出力する。
【００５８】
ステップ１１１で、受け取ったリードアドレスと、代替アドセル管理部４５に保存されているアドレスが一致しないとき（ステップ１１１でＮｏ）、記憶装置はステップ１０３からの動作を行う。すなわち、リードデータ制御部４２が、記憶部１０のデータを選択するリードデータ選択信号Ｓ４１をセレクタ５０に出力するステップ１０３以降の動作が行われる。
【００５９】
次に本実施形態の記憶装置にライト要求、すなわちデータを保存する要求があった場合の動作について説明する。ライト要求の信号およびデータは、ライトイネーブル信号ＷＥ、ライトアドレス信号ＷＡおよびライトデータ信号ＷＤとして記憶部１０および代替データ記憶部４０に入力される（ステップ１２１）。
【００６０】
記憶部１０は、ライト要求の信号およびデータを受け取ると、ライトアドレス信号ＷＡにライトアドレスとして示されているアドレスに、ライトデータ信号ＷＤのデータを保存することで書き込みを行う（ステップ１２２）。
【００６１】
ライト要求を受け取ると、代替データ制御部４１は、代替データ有効フラグが有効かを確認する。代替データ有効フラグが有効であるとき（ステップ１２３でＹｅｓ）、代替データ制御部４１は、ライトアドレス信号ＷＡとして受け取ったライトアドレスと代替アドレス管理部４５に保存されているアドレスを比較する。
【００６２】
代替アドレスとライトアドレスが一致する場合は（ステップ１２４でＹｅｓ）、代替データ制御部４１は、ライトデータ信号ＷＤとして受け取ったライトデータを代替データとして代替データ保存部４４に書き込みを行って保存する（ステップ１２５）。代替データを保存すると、代替データ記憶部４０は、次にライト要求またはリード要求が送られてくるまで待機状態となる。
【００６３】
代替アドレスとライトアドレスが一致しない場合は（ステップ１２３でＮｏ）、代替データ制御部４１は、代替データの保存は不要と判断する。代替データ制御部４１が代替データの保存は不要と判断すると、代替データ記憶部４０は、次にライト要求またはリード要求が送られてくるまで待機状態となる。
【００６４】
また、ステップ１２３で代替データのフラグが無効であるとき（ステップ１２３でＮｏ）、代替データ記憶部４０は、代替データの保存は不要と判断し、次にライト要求またはリード要求が送られてくるまで待機状態となる。
【００６５】
本実施形態の記憶装置は、記憶部１０から出力されたデータにソフトエラーが生じ、エラー訂正部２０で誤り訂正が行われた回数をエラーカウント部３０で積算している。エラーカウント部３０は、エラーの積算回数を所定の閾値と比較し、所定の閾値以上であったときに、代替データへの切り替えが必要と判断する。エラーが繰り返し発生するアドレスでは、物理的な不具合が生じている可能性またはこれから生じる可能性が高いからである。
【００６６】
代替データへの切り替えが必要と判断されると、代替データ記憶部４０には誤り訂正データが対応するアドレスとともに保存される。再度、同じアドレスがリードアドレスとして指定されたときには、記憶部１０に保存されているデータに代えて、代替データ記憶部４０から代替データの出力が行われる。
【００６７】
また、代替アドレスが保存されているアドレスを指定して新たなデータの書き込み要求があると、代替データ記憶部４０は、新たに入力されたデータを代替データとしてアドレスと関連づけて保存する。新たに入力されたデータは記憶部１０の故障の影響を受けておらず、エラーが無い可能性が高い。そのため、代替アドレスがリードアドレスとして指定されたときに、代替データ記憶部４０に直接、代替データとして保存されたデータを出力することでエラーの影響を抑制することができる。
【００６８】
このようにエラーの発生頻度が高いときに、代替データへ切り替えることにより、本実施形態の記憶装置は、物理的な故障で停止する状態を、動作を継続しながら避けることができる。また、本実施形態の記憶装置は、記憶部１０からの通常の出力動作において生成された誤り訂正データおよび新たに入力されたデータを代替データとしている。そのため、本実施形態の記憶装置では、エラーの有無の確認やデータの保存のための動作を通常の動作とは別に行う必要はない。その結果、本実施形態の記憶装置は、動作を継続しつつエラーの影響を十分に抑制することができる。
【符号の説明】
【００６９】
１    データ保存手段
２    誤り訂正手段
３    エラーカウント手段
４    代替データ保存手段
５    データ選択手段
１０    記憶部
２０    エラー訂正部
３０    エラーカウント部
３１    アドレス比較部
３２    エラーアドレス管理部
３３    誤り訂正データ記憶部
３４    データ切替判定部
３５    閾値記憶部
４０    代替データ記憶部
４１    代替データ制御部
４２    リードデータ制御部
４３    セレクタ
４４    代替データ保存部
４５    代替アドレス管理部
５０    セレクタ
Ｓ１１    データ信号
Ｓ１２    選択信号
Ｓ１３    出力信号
Ｓ２１    エラー検知信号
Ｓ２２    誤り訂正データ信号
Ｓ３１    データ切替判定信号
Ｓ３２    誤り訂正データ信号
Ｓ４１    リードデータ選択信号
Ｓ４２    代替データ信号
ＲＡ    リードアドレス信号
ＲＥ    リードイネーブル信号
ＷＡ    ライトアドレス信号
ＷＥ    ライトイネーブル信号
ＷＤ    ライトデータ信号
【図１】
2016153928.tif 000003
【図２】
2016153928.tif 000004
【図３】
2016153928.tif 000005
【図４】
2016153928.tif 000006
【図５】
2016153928.tif 000007
【図６】
2016153928.tif 000008