(57)【要約】【課題】信頼性の向上及び性能低下を抑制する半導体記憶装置を提供すること。【解決手段】運用メモリと予備メモリとを備え、演算装置からのリクエストに応じてデータの書き込み／読み出しを行う半導体記憶装置であって、運用メモリの障害を検出する障害検出手段と、演算装置からの運用メモリあるいは予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出手段と、リクエスト検出手段による検出結果に応じたタイミングで、障害検出手段にて障害が検出された運用メモリの領域を予備メモリの所定領域に交替するメモリ交替手段と、を備えた。【選択図】図１
2009116978.tif 000002
【特許請求の範囲】
【請求項１】
運用メモリと予備メモリとを備え、演算装置からのリクエストに応じてデータの書き込み／読み出しを行う半導体記憶装置であって、
前記運用メモリの障害を検出する障害検出手段と、
前記演算装置からの前記運用メモリあるいは前記予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出手段と、
前記リクエスト検出手段による検出結果に応じたタイミングで、前記障害検出手段にて障害が検出された前記運用メモリの領域を前記予備メモリの所定領域に交替するメモリ交替手段と、
を備えたことを特徴とする半導体記憶装置。
【請求項２】
前記メモリ交替手段は、前記リクエスト検出手段にて前記運用メモリ及び前記予備メモリに対するデータの書き込み／読み出しのリクエストが無いと検出されたタイミングで、前記障害検出手段にて障害が少なくとも１度検出された前記運用メモリの領域を前記予備メモリの所定領域に交替する、
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記メモリ交替手段は、前記演算装置からのリクエストが無いときに交替リクエストを発する交替制御手段と、前記交替リクエストを受けて前記運用メモリの障害検出領域と前記予備メモリの所定領域とを交替するよう各領域のアドレスを登録するアドレス制御手段と、を備えた、
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記交替制御手段は、前記交替リクエストとして、前記運用メモリの障害検出領域に記憶されたデータを読み出すリードリクエストと、この読み出したデータを前記予備メモリの所定領域に記憶するライトリクエストと、を発する、
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記リクエスト検出手段は、前記演算装置からの書き込み／読み出しのリクエストを一時的に保持するリクエストバッファを備えた、
ことを特徴とする請求項２，３又は４記載の半導体装置。
【請求項６】
前記リクエスト検出手段は、前記リクエストバッファ内に保持された各リクエストの有効／無効を識別する情報を格納するリクエスト識別情報格納手段を備えると共に、このリクエスト識別情報格納手段内の情報に基づいて前記演算装置からのリクエストの有無を検出する、
ことを特徴とする請求項５記載の半導体記憶装置。
【請求項７】
前記リクエスト検出手段は、検出したリクエストの有無を、常時、前記メモリ交替手段に通知する、
ことを特徴とする請求項２，３，４，５又は６記載の半導体記憶装置。
【請求項８】
請求項１乃至７記載の半導体記憶装置と、前記演算装置と、を備えた、
ことを特徴とする情報処理装置。
【請求項９】
運用メモリと予備メモリとを備え、演算装置からのリクエストに応じてデータの書き込み／読み出しを行う半導体記憶装置に、
前記運用メモリの障害を検出する障害検出手段と、
前記演算装置からの前記運用メモリあるいは前記予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出手段と、
前記リクエスト検出手段による検出結果に応じたタイミングで、前記障害検出手段にて障害が検出された前記運用メモリの領域を前記予備メモリの所定領域に交替するメモリ交替手段と、
を実現させるためのプログラム。
【請求項１０】
前記メモリ交替手段は、前記リクエスト検出手段にて前記運用メモリ及び前記予備メモリに対するデータの書き込み／読み出しのリクエストが無いと検出されたタイミングで、前記障害検出手段にて障害が少なくとも１度検出された前記運用メモリの領域を前記予備メモリの所定領域に交替する、
ことを特徴とする請求項９記載のプログラム。
【請求項１１】
前記メモリ交替手段は、前記演算装置からのリクエストが無いときに交替リクエストを発する交替制御手段と、前記交替リクエストを受けて前記運用メモリの障害検出領域と前記予備メモリの所定領域とを交替するよう各領域のアドレスを登録するアドレス制御手段と、を備えた、
ことを特徴とする請求項１０記載のプログラム。
【請求項１２】
演算装置からのリクエストに応じてデータの書き込み／読み出しが行われる運用メモリ及び予備メモリのメモリ制御方法であって、
前記運用メモリの障害を検出する障害検出工程と、
この障害検出工程に前後して、前記演算装置からの前記運用メモリあるいは前記予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出工程と、
前記リクエスト検出工程による検出結果に応じたタイミングで、前記障害検出工程にて障害が検出された前記運用メモリの領域を前記予備メモリの所定領域に交替するメモリ交替工程と、
を有することを特徴とするメモリ制御方法。
【請求項１３】
前記メモリ交替工程は、前記リクエスト検出工程にて前記運用メモリ及び前記予備メモリに対するデータの書き込み／読み出しのリクエストが無いと検出されたタイミングで、前記障害検出工程にて障害が少なくとも１度検出された前記運用メモリの領域を前記予備メモリの所定領域に交替する、
ことを特徴とする請求項１２記載のメモリ制御方法。
【請求項１４】
前記メモリ交替工程は、前記演算装置からのリクエストが無いときに交替リクエストを発する交替制御工程と、前記交替リクエストを受けて前記運用メモリの障害検出領域と前記予備メモリの所定領域とを交替するよう各領域のアドレスを登録するアドレス制御工程と、を有する、
ことを特徴とする請求項１３記載のメモリ制御方法。
【請求項１５】
前記交替制御工程は、前記交替リクエストとして、前記運用メモリの障害検出領域に記憶されたデータを読み出すリードリクエストと、この読み出したデータを前記予備メモリの所定領域に記憶するライトリクエストと、を発する、
ことを特徴とする請求項１４記載のメモリ制御方法。
【請求項１６】
前記リクエスト検出工程は、前記演算装置からの書き込み／読み出しのリクエストを一時的に保持すると共に、各リクエストの有効／無効を識別する情報を保持し、当該各リクエストの有効／無効を識別する情報に基づいて前記演算装置からのリクエストの有無を検出する、
ことを特徴とする請求項１３，１４又は１５記載のメモリ制御方法。
【請求項１７】
前記リクエスト検出工程は、常時、前記演算装置からのリクエストの有無の検出を行う、
ことを特徴とする請求項１３，１４，１５又は１６記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置にかかり、特に、記憶領域の冗長機能を備えた半導体記憶装置に関する。
【背景技術】
【０００２】
半導体記憶装置は、所定のデータを記憶するよう常時使用する運用メモリエリアに加え、当該運用メモリエリアの欠陥に備え、予備メモリエリアを備えている。そして、欠陥が生じた運用メモリエリアを予備メモリエリアに切り替えることで、記憶データの冗長性を保っている。
【０００３】
ここで、特許文献１に開示の装置は、論理集積回路装置（ＬＳＩ）等に、ビルトインセルフテスト回路（ＢＩＳＴ）を内蔵している。そして、装置の電源オン時にメモリエリアに対する機能試験を行い、その結果に応じて障害となった欠陥エリアを、予備エリア（冗長エリア）に置き換え、欠陥エリアの救済を行っている。ところが、記憶エリアがＤＲＡＭの場合、近年の大容量化、高速化、制御の複雑化により、ＲＡＭ不良はアクセスパタンに依存する傾向が強くなってきている。そのため、ＢＩＳＴ等の試験では欠陥箇所を検出することが困難になっている。その結果、予備エリアを用意していても有効活用できず、信頼性の向上を図ることができない、という問題があった。
【０００４】
また、特許文献２，３に開示の装置は、運用メモリの１ビットエラーを検出し、その履歴を取る。そして、特定の運用メモリの１ビットエラーが所定の閾値を超えるなど多発すると、その運用メモリ内のデータを予備メモリに退避する。つまり、エラーが発生した運用メモリを予備メモリに切り替える動作を実行している。
【０００５】
【特許文献１】特開平１０−２４２２８８号公報
【特許文献２】特開平１１−３２９０号公報
【特許文献３】特開平１１−１７５４０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献には、特定の運用メモリにおけるエラーが多発した場合に、予備メモリに切り替える旨が開示されているが、そのタイミングについては不明である。例えば、システムの運用を停止させてメモリを切り替えると、連続的な運用を行うことができず、信頼性や利便性に支障をきたすこととなる。一方で、システム運用中にメモリの切り替えを行うと、他の処理に影響を及ぼし、システム自体の性能が低下する、という問題が生じうる。
【０００７】
このため、本発明の目的は、上述した課題である、信頼性の向上及び性能低下を抑制する半導体記憶装置を提供すること、にある。
【課題を解決するための手段】
【０００８】
そこで、本発明の一形態である半導体記憶装置は、
運用メモリと予備メモリとを備え、演算装置からのリクエストに応じてデータの書き込み／読み出しを行う半導体記憶装置であって、
運用メモリの障害を検出する障害検出手段と、
演算装置からの運用メモリあるいは予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出手段と、
リクエスト検出手段による検出結果に応じたタイミングで、障害検出手段にて障害が検出された運用メモリの領域を予備メモリの所定領域に交替するメモリ交替手段と、
を備えた、という構成を採る。
【発明の効果】
【０００９】
本発明は、以上のように構成され機能するので、これによると、運用メモリの障害発生領域が訂正不能エラーに進行することを未然に防ぐことが可能となり、半導体記憶装置の信頼性の向上を図ることができる。さらに、通常のリクエストに影響を及ぼすことなく、半導体記憶装置の性能低下を抑制することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の半導体記憶装置は、システム運用中に運用メモリである記憶エリアに発生した１ビットエラーに対し、当該障害領域を記憶エリアから予備メモリである冗長エリアに切り替えることにより、データを保護してシステムの信頼性の向上を図っている。そして、さらに、冗長エリアに切り替えるタイミングをシステム停止状態ではなく、システム運用中に、装置自体の性能を低下させることなく動的に行うことにより、さらなる信頼性の向上を図っている。
【００１１】
そして、本発明の一形態は、
運用メモリと予備メモリとを備え、演算装置からのリクエストに応じてデータの書き込み／読み出しを行う半導体記憶装置であって、
運用メモリの障害を検出する障害検出手段と、
演算装置からの運用メモリあるいは予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出手段と、
リクエスト検出手段による検出結果に応じたタイミングで、障害検出手段にて障害が検出された運用メモリの領域を予備メモリの所定領域に交替するメモリ交替手段と、
を備えた、という構成を採る。
【００１２】
そして、上記メモリ交替手段は、リクエスト検出手段にて運用メモリ及び予備メモリに対するデータの書き込み／読み出しのリクエストが無いと検出されたタイミングで、障害検出手段にて障害が少なくとも１度検出された運用メモリの領域を予備メモリの所定領域に交替する、という構成を採る。
【００１３】
上記発明によると、まず、半導体記憶装置は、運用メモリの障害を検出すると共に、演算装置からの書き込み／読み書きリクエストの有無を検出する。そして、運用メモリの障害を検出すると、演算装置からのリクエストの有無の検出結果に応じて、具体的には、リクエストが無くなったときに、運用メモリの障害発生領域を予備メモリの所定領域に交替する処理を実行する。これにより、運用メモリの障害発生領域が訂正不能エラーに進行することを未然に防ぐことが可能となり、半導体記憶装置の信頼性の向上を図ることができる。また、メモリの障害領域の交替作業を、システム運用中であっても書き込み／読み出しリクエストが無いときに実行するため、通常のリクエストに影響を及ぼすことなく、半導体記憶装置の性能低下を抑制することができる。
【００１４】
また、上記メモリ交替手段は、演算装置からのリクエストが無いときに交替リクエストを発する交替制御手段と、交替リクエストを受けて運用メモリの障害検出領域と予備メモリの所定領域とを交替するよう各領域のアドレスを登録するアドレス制御手段と、を備えた、という構成を採る。そして、上記交替制御手段は、交替リクエストとして、運用メモリの障害検出領域に記憶されたデータを読み出すリードリクエストと、この読み出したデータを予備メモリの所定領域に記憶するライトリクエストと、を発する、という構成を採る。
【００１５】
また、上記リクエスト検出手段は、演算装置からの書き込み／読み出しのリクエストを一時的に保持するリクエストバッファを備えた、という構成を採る。また、上記リクエスト検出手段は、リクエストバッファ内に保持された各リクエストの有効／無効を識別する情報を格納するリクエスト識別情報格納手段を備えると共に、このリクエスト識別情報格納手段内の情報に基づいて演算装置からのリクエストの有無を検出する、という構成を採る。さらに、リクエスト検出手段は、検出したリクエストの有無を、常時、メモリ交替手段に通知する、という構成を採る。
【００１６】
これにより、リクエストバッファ内におけるリクエストの有無、具体的には、リクエストバッファ内のリクエストの有効／無効を調べることで、書き込み／読み出しのリクエストの有無を容易に調べることができる。
【００１７】
また、本発明の他の形態であるプログラムは、
運用メモリと予備メモリとを備え、演算装置からのリクエストに応じてデータの書き込み／読み出しを行う半導体記憶装置に、
運用メモリの障害を検出する障害検出手段と、
演算装置からの運用メモリあるいは予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出手段と、
リクエスト検出手段による検出結果に応じたタイミングで、障害検出手段にて障害が検出された運用メモリの領域を予備メモリの所定領域に交替するメモリ交替手段と、
を実現させる、という構成を採る。
【００１８】
そして、上記メモリ交替手段は、リクエスト検出手段にて運用メモリ及び予備メモリに対するデータの書き込み／読み出しのリクエストが無いと検出されたタイミングで、障害検出手段にて障害が少なくとも１度検出された運用メモリの領域を予備メモリの所定領域に交替する、という構成を採る。
【００１９】
また、上記メモリ交替手段は、演算装置からのリクエストが無いときに交替リクエストを発する交替制御手段と、交替リクエストを受けて運用メモリの障害検出領域と予備メモリの所定領域とを交替するよう各領域のアドレスを登録するアドレス制御手段と、を備えた、という構成を採る。
【００２０】
また、本発明の他の形態であるメモリ制御方法は、
演算装置からのリクエストに応じてデータの書き込み／読み出しが行われる運用メモリ及び予備メモリのメモリ制御方法であって、
運用メモリの障害を検出する障害検出工程と、
この障害検出工程に前後して、演算装置からの運用メモリあるいは予備メモリに対するデータの書き込み／読み出しのリクエストの有無を検出するリクエスト検出工程と、
リクエスト検出工程による検出結果に応じたタイミングで、障害検出工程にて障害が検出された運用メモリの領域を予備メモリの所定領域に交替するメモリ交替工程と、
を有する、という構成を採る。
【００２１】
そして、上記メモリ交替工程は、リクエスト検出工程にて運用メモリ及び予備メモリに対するデータの書き込み／読み出しのリクエストが無いと検出されたタイミングで、障害検出工程にて障害が少なくとも１度検出された運用メモリの領域を予備メモリの所定領域に交替する、という構成を採る。
【００２２】
また、上記メモリ交替工程は、演算装置からのリクエストが無いときに交替リクエストを発する交替制御工程と、交替リクエストを受けて運用メモリの障害検出領域と予備メモリの所定領域とを交替するよう各領域のアドレスを登録するアドレス制御工程と、を有する、という構成を採る。そして、上記交替制御工程は、交替リクエストとして、運用メモリの障害検出領域に記憶されたデータを読み出すリードリクエストと、この読み出したデータを予備メモリの所定領域に記憶するライトリクエストと、を発する、という構成を採る。
【００２３】
また、上記リクエスト検出工程は、演算装置からの書き込み／読み出しのリクエストを一時的に保持すると共に、各リクエストの有効／無効を識別する情報を保持し、当該各リクエストの有効／無効を識別する情報に基づいて演算装置からのリクエストの有無を検出する、という構成を採る。そして、上記リクエスト検出工程は、常時、演算装置からのリクエストの有無の検出を行う、という構成を採る。
【００２４】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図７を参照して説明する。図１は、半導体記憶装置の構成を示すブロック図である。図２は、リクエストバッファ制御回路の構成を示すブロック図である。図３は、交替制御回路の構成を示すブロック図である。図４は、コマンド／アドレス制御回路の構成を示すブロック図である。図５乃至図６は、半導体記憶装置内におけるデータの流れを示す説明図である。図７は、半導体記憶装置の動作を示すフローチャートである。
【００２５】
［構成］
図１は、本実施形態における記憶装置１０（半導体記憶装置）と、演算装置１００と、を備えた情報処理装置を示している。そして、記憶装置１０は、図１に示すように、まず、上位装置である演算装置１００からのリクエストに応じて、データが書き込まれる、あるいは、データが読み出される、メモリを備えている。具体的には、運用メモリである記憶エリア７と、予備メモリである冗長エリア８と、を備えている。
【００２６】
また、記憶装置１０は、図１に示すように、リクエストバッファ制御回路２と、交替制御回路１と、コマンド／アドレス信号選択回路３と、ライトデータ選択回路４と、コマンド／アドレス制御回路５と、ライトデータ制御回路６と、リードデータ制御回路９と、リードデータ制御回路９内に設けられたＥＣＣ制御回路９１と、を備えている。以下、各構成について詳述する。
【００２７】
上記リクエストバッファ制御回路２（リクエスト検出手段）は、図２に示すように、それぞれｎワードからなるリクエストバッファ２２及びライトデータバッファ２３を備えている。また、リクエストバッファ制御回路２は、同様にｎワードからなり、リクエストの有効／無効を識別するＶａｌｉｄ情報を記憶するＶａｌｉｄ格納部２１（リクエスト識別情報格納手段）を備えている。
【００２８】
そして、リクエストバッファ制御回路２は、演算装置１００からのリクエストを入力し、記憶エリア７へのライトリクエスト、および、リードリクエストを発行可能なタイミングまで、各バッファ２２，２３に一時的に保持する。その後、発行可能タイミング時に、ライトリクエストの場合、コマンド／アドレス信号、ライトデータを、それぞれアドレス信号選択回路３、ライトデータ選択回路４を介して、コマンド／アドレス制御回路５、ライトデータ制御回路６へ発行する。また、リードリクエストの場合、コマンド／アドレス信号を、アドレス信号選択回路３を介してコマンド／アドレス制御回路６へ発行する。また、各ワードに対応したＶａｌｉｄ情報のＯＲ論理を取ることにより、リクエストバッファ内のリクエスト有無状態を、交替制御回路１へ常に報告し続ける。例えば、予め設定された間隔でリクエスト有無状態を通知したり、あるいは、Ｖａｌｉｄ情報が変化する毎に通知する。
【００２９】
以上のように、リクエストバッファ制御回路２は、演算装置１００からの記憶エリア７あるいは冗長エリア８に対するデータの書き込み／読み出しのリクエストの有無を検出して、常時、交替制御回路１に通知する機能を有する。
【００３０】
上記交替制御回路１（交替制御手段）は、図３に示すように、種々の入力信号を受け付ける。まず、入力信号として、リクエストバッファ制御回路２から出力されるリクエストバッファ状態信号を受け付ける。また、入力信号として、ＥＣＣ制御回路９１から出力される１ｂｉｔエラー検出結果およびエラーアドレス情報を受け付ける。また、入力信号として、１ｂｉｔエラー検出時のエラーアドレスに対して記憶エリア７から冗長エリア８へ交替作業を行う際に、記憶エリア７から対象アドレスのデータをリードして、その動作完了時にリードデータ制御回路９から出力されるリードリクエスト完了報告信号およびリードデータを受け付ける。また、入力信号として、上記リードデータを冗長エリア８にライトして、その動作完了時にコマンド／アドレス制御回路５から出力されるライト完了信号を受け付ける。さらに、入力信号として、記憶エリア７から冗長エリア８へ交替作業を行い、記憶エリア７から対象アドレスのデータをリードした後、通常リクエストによりそのアドレスのデータが書き換わった時に検出するリトライ信号を受け付ける。
【００３１】
また、交替制御回路１は、ＥＣＣ制御回路９１から出力される１ｂｉｔエラー状態を表す「１ｂｉｔエラー検出信号」により、”１”をセットし、コマンドアドレス制御回路５から出力される「ライト完了信号」により、リセット”０”されるＦ／Ｆ（フリップフロップ）１１を備えている。さらに、交替制御回路１は、リードデータ制御回路９から出力されるリードリクエスト完了状態を表す「リードリクエスト完了報告」により、”１”をセットし、コマンド／アドレス制御回路５から出力されるライト完了とリトライ信号とのＯＲ論理から生成される信号によりリセット”０”されるＦ／Ｆ（フリップフロップ）１２を備えている。
【００３２】
また、交替制御回路１は、図３に示すように、リクエストバッファ制御回路２から出力される「リクエストバッファ状態」と、上記Ｆ／Ｆ１１から出力される「１ｂｉｔエラー状態」と、上記Ｆ／Ｆ１２から出力される「リードリクエスト完了状態」と、の３つの条件から真理地表に従い「交替リクエスト」を生成する交替リクエスト生成回路１３を備えている。この交替リクエスト生成回路１３は、具体的には、１ｂｉｔエラーが発生して「１ｂｉｔエラー状態」が”１”であり、かつ、演算装置１００からのリクエストが無いことを表す「リクエストバッファ状態」が”０”であるときに、１ｂｉｔエラーが検出された記憶エリア７の領域を、冗長エリア８に交替する「交替リクエスト」を生成する。
【００３３】
なお、生成する「交替リクエスト」は、図３に示すように、記憶エリア７の障害検出領域に記憶されたデータを読み出す「リードリクエスト」と、この読み出したデータを冗長エリア８の所定領域に記憶する「ライトリクエスト」とがある。そして、これら「リードリクエスト」及び「ライトリクエスト」で使用するアドレスは、１ｂｉｔエラーが検出されたエラーアドレスとなり、「ライトリクエスト」で使用するデータは、「リードリクエスト」によるリードデータとなる。また、交替リクエスト発行時に同期して、「交替イネーブル」もあわせて発行し、コマンド／アドレス制御回路５に出力する。
【００３４】
上記コマンド／アドレス信号選択回路３と、ライトデータ選択回路４とは、交替制御回路１から発行される「交替イネーブル」を選択信号として使用する。具体的には、「交替イネーブル」が”０”のときは、リクエストバッファ制御回路２からのパスを選択し（図５参照）、「交替イネーブル」が“１”のときは、交替制御回路１からのパスを選択する（図６参照）。そして、選択に応じて、リクエストバッファ制御回路２からのデータ、あるいは、交替制御回路１からのデータを、それぞれコマンド／アドレス制御回路５とライトデータ制御回路６とに送出する。
【００３５】
上記コマンド／アドレス制御回路５（アドレス制御手段）は、上記交替リクエストを受けて記憶エリア７の障害検出領域と冗長エリア８の所定領域とを交替するよう各領域のアドレスを登録する機能を有する。具体的に、コマンド／アドレス制御回路５は、図４に示すように、まず、冗長エリアと同じｍワードの交替対称アドレス登録エリア５１を有する。また、同一ワード対応するリード完了情報（Ｒ（１）〜Ｒ（ｍ））を格納する領域を、ｍワード分、有する。さらに、ライト完了情報（Ｗ（１）〜Ｗ（ｍ））を格納する領域を、ｍワード分、有する。
【００３６】
そして、コマンド／アドレス制御回路５は、交替制御回路１からのリードコマンドと交替イネーブルとのＡＮＤ論理条件が成立した場合のみ、ライト完了情報（Ｗ（１）〜Ｗ（ｍ））が”０”である最若番号に対応する交替対象アドレス登録エリア５１に、エラーアドレスを登録する。また、リード完了情報（Ｒ（１）〜Ｒ（ｍ））は、リードデータ制御回路９からのリードリクエスト完了報告を受け付けた場合のみ、リード完了情報（Ｒ（１）〜Ｒ（ｍ））が”０”である最若番号のワードに“１”を登録する。そして、交替対称アドレス登録エリア５１に登録された各ワードのアドレスと、コマンド／アドレス信号選択回路３から送出されたアドレスとの比較を行い、その結果と、各ワードのリード完了情報がＲ（ｘ）＝１、ライト完了情報Ｗ（ｘ）＝０の条件が成立した場合は、対応するワードのリード完了情報をリセット“０”する。また、その各ワードのリセット信号（ｍ  ｂｉｔ）のＯＲ論理結果をリトライ信号として交替制御回路１へ報告する。
【００３７】
また、ライト完了情報（Ｗ（１）〜Ｗ（ｍ））は、ライトコマンドと交替イネーブルとのＡＮＤ論理条件が成立した場合のみ、ライト完了情報（Ｗ（１）〜Ｗ（ｍ））が”０”である最若番号のワードに“１”登録する。そして、ライトコマンドと交替イネーブルとのＡＮＤ論理条件が成立した場合、ライト完了報告を交替制御回路１へ送信する。また、交替対称アドレス登録エリア５１に登録された各ワードのアドレスとコマンド／アドレス信号選択回路３から送出されたアドレスとの比較結果と、各ワードのライト完了情報（Ｗ（１）〜Ｗ（ｍ））とのＡＮＤ論理条件結果（Ａ）を冗長エリアアドレス生成回路５７に送出し、その結果からアドレス生成回路５６にてデコードした情報を冗長エリアのアドレスとして使用する。生成されたアドレスは、条件結果（Ａ）“１”の場合はアドレス生成回路へ送出され、“０”の場合はコマンド／アドレス信号選択回路３から送出されたアドレスを選択してアドレス生成回路に発行し、アドレス生成回路５６は記憶エリア／冗長エリアの両エリアに送出する。また、条件結果（Ａ）をＯＲ論理した結果を冗長エリア選択信号として記憶エリア／冗長エリア選択回路５５に送出し、コマンド生成回路５４から出力されたコマンドを冗長エリア選択信号＝”０”の場合は記憶エリアへ、”１”の場合は冗長エリアへ、それぞれコマンドを送出する。
【００３８】
以上のように、コマンド／アドレス制御回路５は、上記交換制御回路１と協働して、演算装置１００から各エリア７，８へのリクエストが無いと検出されたタイミングで、障害が１度検出された記憶エリア７のアドレス領域を、冗長エリア８の所定領域に交替する、メモリ交替手段として機能する。なお、上記コマンド／アドレス制御回路５は、必ずしも上述した構成であることに限定されず、他の構成にて障害が検出された記憶エリア７のアドレス領域を冗長エリア８に交替してもよい。
【００３９】
また、上記ライトデータ制御回路６は、ライトデータ選択回路４から送出されたライトデータを受信した後に、当該ライトデータを記憶エリア／冗長エリアの両エリアに発行する。
【００４０】
上記リードデータ制御回路９（障害検出手段）は、記憶エリアおよび冗長エリアから読み出されたリードデータを受信した後に、ＥＣＣ制御回路９１にてデータ生成、１ｂｉｔエラー検出、データ訂正不能エラー検出を行い、演算装置１００へリードデータを送出する。また、１ｂｉｔエラーを検出した場合は、交替制御回路１へ１ｂｉｔエラー報告、エラーアドレス情報を送出し、また、交替イネーブル付きのリードリクエストについては、リードデータを交替制御回路１へ送出するが、演算装置１００には送出しない。なお、上記ＥＣＣ（Error Correction Code）制御回路９１は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００４１】
なお、上記では、各回路をアナログ回路で構成している場合を例示したが、演算装置に上記各回路の機能を構築するプログラムを組み込むことによって実現してもよい。
【００４２】
［動作］
次に、上述した記憶装置１の動作の概略を、図５乃至図７を参照して説明する。まず、また、リクエストバッファ制御回路２は、演算装置１００からのリクエストを受信して（図５の矢印Ｙ１）、記憶エリア７に対するデータの書き込み／読み込み処理を行う（図５の矢印Ｙ２，Ｙ３）。このとき、ＥＣＣ制御回路９１は、１ビットエラーの検出を常時行っている（障害検出工程）。そして、リクエストバッファ制御回路２は、リクエストバッファの状態を交替制御回路１へ出力し続ける（図５の矢印Ｙ４、リクエスト検出工程）。
【００４３】
その後、ＥＣＣ制御回路９１が、１ビットエラーを検出すると、交替制御回路１へ１ビットエラー検出結果、および、エラーアドレス情報を出力する（図５の矢印Ｙ５）。交替制御回路１は、ＥＣＣ制御回路９１からの１ビットエラー情報を受信して保持し（図７のステップＳ１）、エラーアドレスに対する記憶エリア７から冗長エリア８へデータを交替させるリクエストを生成する。
【００４４】
そして、交替制御回路１は、生成されたリクエストを、リクエストバッファ制御回路２から出力され続けているリクエストバッファ状態情報を監視し、バッファ内にリクエストが無い状態となったときに（図７のステップＳ２でイエス）、コマンド／アドレス制御回路５およびライトデータ制御回路６へ発行する（図６の矢印Ｙ６，Ｙ７、交替制御工程（メモリ交替工程））。これにより、コマンド／アドレス制御回路５が、エラーアドレスのデータを冗長エリア８へ移動させる（図７のステップＳ３、アドレス制御工程（メモリ交替工程）。そして、データ移動完了後は、コマンド／アドレス制御回路５にて交替対称となったアドレスに対するリクエストについては、冗長エリア８へアクセスするよう切り替える。
【００４５】
以上のようにして、本実施形態では、１ビットエラーが発生したアドレス内のデータを、通常のリクエストが無い状態のときに冗長エリアに移動するため、通常リクエストに影響を与えることなく動的に交替動作を行うことができる。従って、記憶装置１０の性能を低下させず、信頼性を向上させることができる。
【００４６】
次に、本実施形態における記憶装置１０の動作を、さらに詳細に説明する。まず、通常の動作時には、１ｂｉｔエラーが発生していないため、交替制御回路１から交替リクエストが発行されない。従って、交替イネーブル＝０の状態であるため、コマンド／アドレス信号選択回路３、ライトデータ選択回路４は、常にリクエストバッファ制御回路２側のパスが選択された状態となり（図５の矢印Ｙ２，Ｙ３）、記憶エリア７に対しライトおよびリードリクエストが発行されている。
【００４７】
この状態からＥＣＣ制御回路９１で１ｂｉｔエラーが検出されると、その検出結果およびエラーアドレス情報が交替制御回路１に報告され（図５の矢印Ｙ５）、交替制御回路１内にある１ｂｉｔエラー状態を表すＦ／Ｆ１１が「１」セットされる。このとき、リードリクエスト完了状態を表すＦ／Ｆ１２は“０”である。すると、交替リクエスト生成回路１３では、図３に示すように、リクエストバッファ制御回路２から出力されるリクエストバッファ状態の値が”１”の時は、通常リクエストが処理されているため交替リクエストは生成されないが、“０”の時には、リードリクエストおよび交替イネーブルが生成される。
【００４８】
そして、コマンド／アドレス信号選択回路３、ライトデータ選択回路４は、交替イネーブル＝１となることにより、交替制御回路１側のパスを選択する（図６の矢印Ｙ６，Ｙ７）。すると、交替制御回路１からのリードリクエストが、コマンド／アドレス制御回路５に入力される。そして、コマンド／アドレス制御回路５では、リードコマンドと交替イネーブルとのＡＮＤ条件が成立するため、交替対称アドレス登録エリア５１に１ｂｉｔエラーが発生したアドレスの登録を行う。このとき登録されるエリア番地は、リード完了情報（Ｒ（１）〜Ｒ（ｍ））が”０”である最若番号のワードとなり、図４の例では、ワード１（最下欄）に登録される。このとき、冗長エリア選択信号は“０”のため、受けたリードリクエストは記憶エリア７に対し発行され、リードデータがリードデータ制御回路９に入力された時点でリード完了報告がコマンド／アドレス制御回路５、交替制御回路１に発行される。また、リードデータについては、交替制御回路１にのみ発行される。コマンド／アドレス制御回路５では、リード完了情報（Ｒ（１）〜Ｒ（ｍ））が”０”である最若番号のワード１（Ｒ（１））に、リード完了情報“１”が登録される。
【００４９】
その後、交替制御回路１では、リードリクエスト完了状態を表すＦ／Ｆ１２が１セットされる。このとき１ｂｉｔエラー状態を表すＦ／Ｆ１１は“１”である。そして、リクエストバッファ制御回路２から出力されるリクエストバッファ状態の値が”１”の時は、通常リクエストが処理されているため交替リクエストは生成されないが、リクエストバッファ状態の値が“０”の時のみ、ライトリクエストおよび交替イネーブルが生成される。この時、リードデータ制御回路９から発行されたリードデータをライトデータとして使用する。
【００５０】
続いて、コマンド／アドレス制御回路５では、ライトコマンドと交替イネーブルとのＡＮＤ条件が成立するため、ライト完了情報（Ｗ（１）〜Ｗ（ｍ））が“０”である最若番号のワード１（Ｗ（１））（最下欄）に、ライト完了情報“１”が登録される。また、受け付けたライトコマンドのアドレスは、交替対称アドレス登録エリア５１のワード１に登録されたアドレスと一致するため、冗長エリア選択信号が“１”となる。これにより、冗長エリアアドレス生成回路５７に送出されたｍワード分のｂｉｔ数（アドレス一致したワードのみ”１”）の情報から、冗長エリアのアドレスが生成される。そして、アドレス生成回路５６を介して、記憶エリアおよび冗長エリアに対しアドレスが送出される。また、コマンドについては、冗長エリア選択信号が“１”により、記憶エリア／冗長エリア選択回路５５にて冗長エリア側が選択され、冗長エリア７にコマンドを送出する。また、ライト完了報告が交替制御回路１へ送出され、１ｂｉｔエラー状態、リードリクエスト完了状態を表す各Ｆ／Ｆ１１が“０”にリセットされる。
【００５１】
また、交替作業中のリードリクエスト完了後に、通常のライトリクエストにより登録されたエラーアドレス上のデータが書き変わってしまった場合は、Ｒ（Ｘ）＝１、Ｗ（Ｘ）＝０の条件と、アドレス一致条件とのＡＮＤ条件が成立し、条件成立した対応するワードのＲ（Ｘ）情報を“０”にリセットする。また、その各ワードに対応した信号とのＯＲ条件からリトライ信号が生成され、交替制御回路１へ送出される。交替制御回路１は、リードリクエスト完了状態を表すＦ／Ｆ１２が“０”にリセットされ、リクエストバッファ制御回路２から出力されるリクエストバッファ状態により、交替リクエスト生成回路１３にてエラーアドレスに対すリードリクエストが再発行させる。以降、上述同様に、交替作業を行う。
【００５２】
以上により、１ｂｉｔエラーが発生したアドレスに対する記憶エリアから冗長エリアへの交替作業が、性能を低下させずに完了することができる。これ以降、１ｂｉｔエラーが発生した場合も、同様に冗長エリアと同ワード数のｍワードまでの交替作業を行うことができる。そして、コマンド／アドレス制御回路５内に交替アドレスを登録しているため、交替作業後のリクエストがそのアドレスと一致した場合は、当該リクエストを冗長エリアに対し発行することになり、データの書き込み、読み出しを行う通常通り行うことができ、信頼性の向上を図ることができる。
【産業上の利用可能性】
【００５３】
本発明は、情報処理装置に搭載する半導体記憶装置に利用することができ、産業上の利用可能性を有する。
【図面の簡単な説明】
【００５４】
【図１】半導体記憶装置の構成を示すブロック図である。
【図２】リクエストバッファ制御回路の構成を示すブロック図である。
【図３】交替制御回路の構成を示すブロック図である。
【図４】コマンド／アドレス制御回路の構成を示すブロック図である。
【図５】半導体記憶装置内におけるデータの流れを示す説明図である。
【図６】半導体記憶装置内におけるデータの流れを示す説明図である。
【図７】半導体記憶装置の動作を示すフローチャートである。
【符号の説明】
【００５５】
１  交替制御回路
２  リクエストバッファ制御回路
３  コマンド／アドレス信号選択回路
４  ライトデータ選択回路
５  コマンド／アドレス制御回路
６  ライトデータ制御回路
７  記憶エリア
８  冗長エリア
９  リードデータ制御回路
１０  記憶装置
１３  交替リクエスト生成回路
２２  リクエストバッファ
２３  ライトデータバッファ
５１  交替対象アドレス登録エリア
５４  コマンド生成回路
５５  記憶エリア／冗長エリア選択回路
５６  アドレス生成回路
５７  冗長エリアアドレス生成回路
９１  ＥＣＣ制御回路
１００  演算装置
【図１】
2009116978.tif 000003
【図２】
2009116978.tif 000004
【図３】
2009116978.tif 000005
【図４】
2009116978.tif 000006
【図５】
2009116978.tif 000007
【図６】
2009116978.tif 000008
【図７】
2009116978.tif 000009