(57)【特許請求の範囲】
【請求項１】
制御部が、ライト及びリードを許可する第１の記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する第２の記憶部を前記第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせ、
前記制御部が、前記第１の記憶部の故障を検出すると、前記第２の記憶部からのリードを許可する、
メモリ制御方法。
【請求項２】
前記制御部は、前記第１のリフレッシュ周期よりも短い複数の値の中から、選択信号に応じて前記第２のリフレッシュ周期を選択する、請求項１に記載のメモリ制御方法。
【請求項３】
複数の記憶部に対する制御信号を生成する制御信号生成部を有し、
前記制御信号生成部は、
前記複数の記憶部のうち、ライト及びリードを許可する第１の記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する第２の記憶部を前記第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせ、
前記第１の記憶部の故障が検出されると、前記第２の記憶部からのリードを許可する、
制御信号を生成するメモリコントローラ。
【請求項４】
複数の記憶部と、
前記複数の記憶部を制御するメモリコントローラと、
を有し、
前記メモリコントローラは、
前記複数の記憶部のうち、ライト及びリードを許可する第１の記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する第２の記憶部を前記第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせ、
前記第１の記憶部の故障が検出されると、前記第２の記憶部からのリードを許可する、
電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御方法、メモリコントローラ及び電子装置に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）などの半導体記憶装置は、パーソナルコンピュータなど各種の電子装置のメモリとして用いられている。
データ処理を行うサーバや通信関係の装置など、精密なデータが求められる装置においては、より信頼性の高いメモリが求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００９−５０７３２４号公報
【特許文献２】特開平５−２６６６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ＤＲＡＭなどの半導体記憶装置では、各メモリセル間の製造ばらつきにより、リードやライト時に、ビット間で干渉を生じる可能性があった。その干渉により、同じビットにリード動作やライト動作を繰り返すと、隣接ビットにおいてリードエラーなどが生じ、メモリの信頼性が低下する問題があった。
【課題を解決するための手段】
【０００５】
発明の一観点によれば、メモリ制御方法が提供される。このメモリ制御方法では、制御部が、ライト及びリードを許可する第１の記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する第２の記憶部を第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせる。そして、制御部が、第１の記憶部の故障を検出すると、第２の記憶部からのリードを許可する。
【０００６】
また、発明の一観点によれば、メモリコントローラが提供される。このメモリコントローラは、複数の記憶部に対する制御信号を生成する制御信号生成部を有する。この制御信号生成部は、複数の記憶部のうち、ライト及びリードを許可する第１の記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する第２の記憶部を第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせ、第１の記憶部の故障が検出されると、第２の記憶部からのリードを許可する、制御信号を生成する。
【０００７】
また、発明の一観点によれば、電子装置が提供される。この電子装置は、複数の記憶部と、複数の記憶部を制御するメモリコントローラと、を有している。メモリコントローラは、複数の記憶部のうち、ライト及びリードを許可する第１の記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する第２の記憶部を第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせる。そして、メモリコントローラは、第１の記憶部の故障が検出されると、第２の記憶部からのリードを許可する。
【発明の効果】
【０００８】
開示のメモリ制御方法、メモリコントローラ及び電子装置によれば、メモリの信頼性低下を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態のメモリ制御方法の一例を説明する図である。
【図２】本実施の形態のメモリ制御方法を適用する電子装置の一例を示す図である。
【図３】ＤＲＡＭの一例を示す図である。
【図４】ＤＲＡＭの制御方法の一例を示すフローチャートである。
【図５】ＤＲＡＭのライト時の動作例を示すタイミングチャートである。
【図６】ＤＲＡＭのリード時の動作例を示すタイミングチャートである。
【図７】通常動作状態のＤＲＡＭにビットエラーが発生した際の、メモリコントローラの動作例を示す図である。
【図８】ＤＲＡＭ内の複数の記憶部を個々に制御する例を示す図である。
【図９】リフレッシュ周期選択部を有するメモリコントローラの一例を示す図である。
【図１０】リフレッシュ周期選択部の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、本実施の形態のメモリ制御方法の一例を説明する図である。
【００１１】
制御部１は、記憶部２−１，２−２，…，２−ｎを制御するものである。制御部１は、たとえば、メモリコントローラである。記憶部２−１〜２−ｎは、たとえば、ＤＲＡＭなどのリフレッシュを行う半導体記憶装置である。また、記憶部２−１〜２−ｎは、１つの半導体記憶装置内の記憶部であってもよい。なお、以下の説明では、ＤＲＡＭは、ＳＤＲＡＭ（Synchronous DRAM）やＤＤＲ  ＳＤＲＡＭ（Double-Data-Rate SDRAM）なども含むものとする。
【００１２】
制御部１は、記憶部２−１〜２−ｎのうち、ライト及びリードを許可する記憶部を第１のリフレッシュ周期でリフレッシュさせ、ライトを許可しリードを禁止する記憶部を第１のリフレッシュ周期よりも短い第２のリフレッシュ周期でリフレッシュさせる。
【００１３】
図１の例では、制御部１は、記憶部２−１に対しては、ライト及びリードを許可する制御信号を供給し、通常動作させ、記憶部２−２〜２−ｎに対しては、リードを禁止させる制御信号を供給する。そのため、記憶部２−２〜２−ｎのリフレッシュ周期Ｔ２が、記憶部２−１のリフレッシュ周期Ｔ１よりも短くなるように制御されている。
【００１４】
ライト時には、記憶部２−１〜２−ｎには、同じデータが記憶される。リード時には、記憶部２−１からデータが読み出され、記憶部２−２〜２−ｎからはデータが読み出されない。
【００１５】
また、制御部１は、通常動作をしていた記憶部２−１の故障（たとえば、２ビット以上のエラーで、ＥＣＣ（Error Correcting Code）機能でエラー訂正ができない状態）を検出すると、記憶部２−２〜２−ｎの何れかからのリードを許可する。図１の例では、制御部１は、記憶部２−２からのリードを許可するようにして、記憶部２−２を通常動作状態に切り替える。
【００１６】
このように、制御部１は、記憶部２−１に対してはライト及びリードを許可し、記憶部２−２〜２−ｎに対しては、リードを禁止させるとともに、リフレッシュ周期を記憶部２−１よりも短くする。これにより、記憶部２−２〜２−ｎのビットへのアクセス数が減り、かつ、リフレッシュの頻度が増えるため、記憶したビットの値が、隣接ビットによる干渉などの影響で変わってしまうことを抑制できる。
【００１７】
そのため、通常動作状態であった記憶部２−１が故障したときには、誤った値が格納されている可能性の低い、すなわち格納されている値の信頼性が高い、記憶部２−２〜２−ｎの何れかを通常動作に切り替えられる。これにより、メモリの信頼性低下を抑制できる。
【００１８】
（第２の実施の形態）
図２は、本実施の形態のメモリ制御方法を適用する電子装置の一例を示す図である。
電子装置１０は、たとえば、サーバコンピュータ、パーソナルコンピュータ、各種の通信機器などである。電子装置１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、メモリコントローラ１３、ＤＲＡＭ１４−１，１４−２、アドレスバス１５、データバス１６を有している。
【００１９】
ＣＰＵ１１は、電子装置１０全体を制御する。ＲＯＭ１２は、ＣＰＵ１１が実行する基本的なプログラムやデータを格納する。
メモリコントローラ１３は、図１に示した制御部１と同様の機能を有しており、ＤＲＡＭ１４−１，１４−２に対するデータのリードやライトまたはリフレッシュなどの制御を行う。メモリコントローラ１３は、ＤＲＡＭ１４−１，１４−２に対する各種制御信号を生成する制御信号生成部１３ａを有している。
【００２０】
制御信号としては、たとえば、チップセレクト信号／ＣＳ、ロウアドレスストローブ信号／ＲＡＳ、コラムアドレスストローブ信号／ＣＡＳ、ライトイネーブル信号／ＷＥなどがある。
【００２１】
なお、図２では、簡略化のため上記のような制御信号が伝達するメモリコントローラ１３とＤＲＡＭ１４−１，１４−２間の信号線１７，１８を、それぞれ１本で図示している。
【００２２】
さらに、制御信号生成部１３ａは、ＤＲＡＭ１４−１，１４−２のリフレッシュを制御するリフレッシュ制御部１３ｂと、ＥＣＣ機能を用いてエラー訂正などを行うＥＣＣ制御部１３ｃを有している。
【００２３】
なお、ＤＲＡＭ１４−１，１４−２には、たとえば、図示しないクロック生成部からクロック信号ＣＫ、反転したクロック信号／ＣＫ、クロックイネーブル信号ＣＫＥなども供給される。
【００２４】
図３は、ＤＲＡＭの一例を示す図である。なお、図３では、ＤＲＡＭ１４−１の一例を示しているが、ＤＲＡＭ１４−２についても同じである。ここでは、ＤＲＡＭの例として、ＤＤＲ−ＳＤＲＡＭの回路構成例が示されている。
【００２５】
ＤＲＡＭ１４−１は、内部クロック生成部２０、コマンドデコーダ２１、制御部２２、モードレジスタ２３、ロウアドレスバッファ／リフレッシュカウンタ２４、コラムアドレスバッファ／バーストカウンタ２５を有している。さらにＤＲＡＭ１４−１は、メモリセルアレイ２６、センスアンプ２７、ロウデコーダ２８、コラムデコーダ２９、データ制御回路３０、ラッチ回路３１、入出力バッファ３２、ＤＬＬ（Delay Locked Loop）回路３３を有している。
【００２６】
アドレスバス１５は、コマンドデコーダ２１、モードレジスタ２３、ロウアドレスバッファ／リフレッシュカウンタ２４、コラムアドレスバッファ／バーストカウンタ２５に接続されており、これらに外部アドレスが供給される。データバス１６は、入出力バッファ３２に接続されている。
【００２７】
内部クロック生成部２０は、入力されるクロック信号ＣＫ、反転したクロック信号／ＣＫ、クロックイネーブル信号ＣＫＥに応じて内部クロック信号を生成し、たとえば、コマンドデコーダ２１、制御部２２、コラムデコーダ２９、ラッチ回路３１に供給する。
【００２８】
コマンドデコーダ２１は、制御信号生成部１３ａからチップセレクト信号／ＣＳ、ロウアドレスストローブ信号／ＲＡＳ、コラムアドレスストローブ信号／ＣＡＳ、ライトイネーブル信号／ＷＥを受けてデコードし、デコード結果を制御部２２に供給する。
【００２９】
制御部２２は、モードレジスタ２３の設定値やデコード結果に応じ、ロウアドレスバッファ／リフレッシュカウンタ２４、コラムアドレスバッファ／バーストカウンタ２５、センスアンプ２７、ロウデコーダ２８、データ制御回路３０、ラッチ回路３１を制御する。
【００３０】
モードレジスタ２３には、たとえば、外部アドレスやバンクアドレスによって、ＣＡＳレイテンシやバースト長などが設定される。
ロウアドレスバッファ／リフレッシュカウンタ２４は、アドレスバス１５を介して指定されるロウアドレスを保持するとともに、カウンタによりリフレッシュ時に指定するロウアドレスを順に指定する。
【００３１】
コラムアドレスバッファ／バーストカウンタ２５は、アドレスバス１５を介して指定されるコラムアドレスを保持するとともに、カウンタによりバーストモードで指定するカラムアドレスを順に指定する。
【００３２】
メモリセルアレイ２６は、複数のメモリセルを有している。
センスアンプ２７は、指定されたメモリセルに記憶されたデータを読み出す。
ロウデコーダ２８は、ロウアドレスバッファ／リフレッシュカウンタ２４に保持されたロウアドレスをデコードして、メモリセルアレイ２６のロウを選択する。
【００３３】
コラムデコーダ２９は、コラムアドレスバッファ／バーストカウンタ２５に保持されたコラムアドレスをデコードして、メモリセルアレイ２６のコラムを選択する。
データ制御回路３０は、メモリセルアレイ２６へのデータの書き込みなどを制御する。
【００３４】
ラッチ回路３１は、データ制御回路３０と、入出力バッファ３２との間で送受信されるパラレルデータを一時保持する。
入出力バッファ３２は、ＤＬＬ回路３３により位相調整されたクロック信号ＣＫと反転したクロック信号／ＣＫに同期して、外部とのデータの送受信を行う。
【００３５】
次に、図２に示した電子装置１０のメモリコントローラ１３によるＤＲＡＭ１４−１，１４−２の制御方法の一例を説明する。
図４は、ＤＲＡＭの制御方法の一例を示すフローチャートである。
【００３６】
メモリコントローラ１３は、ライト及びリードを許可して通常動作させるＤＲＡＭと、リードを禁止させるＤＲＡＭを決定する（ステップＳ１）。どのＤＲＡＭを通常動作させるかは、ユーザが設定するようにしてもよい。設定した内容は、たとえば、メモリコントローラ１３内の図示しないレジスタに格納される。
【００３７】
以下では、ＤＲＡＭ１４−１を通常動作させるＤＲＡＭとし、ＤＲＡＭ１４−２を、リードを禁止させるＤＲＡＭとした場合について説明する。
メモリコントローラ１３のリフレッシュ制御部１３ｂは、リフレッシュ周期の設定を行う（ステップＳ２）。リフレッシュ制御部１３ｂは、通常動作させるＤＲＡＭ１４−１のリフレッシュ周期をＴ１と設定した場合、リードを禁止させるＤＲＡＭ１４−２のリフレッシュ周期Ｔ２をＴ１より短く設定する。これにより、ＤＲＡＭ１４−２では、リフレッシュが、通常動作させるＤＲＡＭ１４−１よりも頻繁に発生するようになる。
【００３８】
リフレッシュ制御部１３ｂは、たとえば、Ｔ１を６４ｍｓとした場合、Ｔ２を３２ｍｓなどと設定する。設定した値は、たとえば、メモリコントローラ１３内の図示しないレジスタに格納される。
【００３９】
メモリコントローラ１３は、ＣＰＵ１１側からライトまたはリード要求が発生したか否かを判断する（ステップＳ３）。ライト要求が発生した場合、制御信号生成部１３ａはライトを行わせる制御信号を生成し、ＤＲＡＭ１４−１，１４−２に供給してライトを実行させる（ステップＳ４）。
【００４０】
図５は、ＤＲＡＭのライト時の動作例を示すタイミングチャートである。ＤＲＡＭ１４−１，１４−２のライト時の動作例が示されている。上から、クロック信号ＣＫ、コマンド、アドレス、ライトされるデータの例が示されている。
【００４１】
コマンドは、メモリコントローラ１３からＤＲＡＭ１４−１，１４−２に供給される制御信号によって、コマンドデコーダ２１でデコードされる命令の種類を示している。
タイミングｔ１で、ＤＲＡＭ１４−１，１４−２とも活性化（ＡＣＴと表記されている）される。このとき、ロウアドレス（ＲＯＷと表記されている）がＤＲＡＭ１４−１，１４−２に供給される。続いて、タイミングｔ２で、ＤＲＡＭ１４−１，１４−２でライトコマンド（ＷＲと表記されている）が生成される。このとき、コラムアドレス（ＣＯＬと表記されている）がＤＲＡＭ１４−１，１４−２に供給される。また、データＤ０，Ｄ１，Ｄ２，Ｄ３が順にＤＲＡＭ１４−１，１４−２に供給され、ライトが行われる。すなわち、ＤＲＡＭ１４−１，１４−２には、同じデータが同じタイミングで書き込まれていく。
【００４２】
一方、リード要求が発生した場合、制御信号生成部１３ａはリードを行わせる制御信号を生成し、ＤＲＡＭ１４−１に供給してリードを実行させる（ステップＳ５）。ＤＲＡＭ１４−２に対してはリードを禁止する制御信号を供給する。たとえば、制御信号生成部１３ａは、ＤＲＡＭ１４−２に対して供給するチップセレクト信号／ＣＳを“１”にして、ＤＲＡＭ１４−２を非選択状態にする。これにより、ＤＲＡＭ１４−２のリードは行われない。
【００４３】
図６は、ＤＲＡＭのリード時の動作例を示すタイミングチャートである。ＤＲＡＭ１４−１，１４−２のリード時の動作例が示されている。上から、クロック信号ＣＫ、チップセレクト信号／ＣＳ、コマンド、アドレス、リードされるデータの例が示されている。
【００４４】
タイミングｔ５で、ＤＲＡＭ１４−１に供給されるチップセレクト信号／ＣＳは、“０”になり、ＤＲＡＭ１４−１は選択状態になる。それに対し、ＤＲＡＭ１４−２に供給されるチップセレクト信号／ＣＳは、“１”のままであり、非選択状態のままである。
【００４５】
ＤＲＡＭ１４−１については、タイミングｔ６で活性化される。このとき、ロウアドレスがＤＲＡＭ１４−１に供給される。続いて、タイミングｔ７で、ＤＲＡＭ１４−１でリードコマンド（ＲＤと表記されている）が生成される。このとき、コラムアドレスがＤＲＡＭ１４−１に供給される。タイミングｔ８から、ＤＲＡＭ１４−１からデータＤ０，Ｄ１，Ｄ２，Ｄ３が順に読み出される。ＤＲＡＭ１４−２からは読み出されない。
【００４６】
図４の処理フローにおいて、ライト要求もリード要求も行われない場合、または、ステップＳ４，Ｓ５の処理後、リフレッシュ制御部１３ｂは、リフレッシュ周期Ｔ２のリフレッシュタイミングになったか否かを判定する（ステップＳ６）。
【００４７】
たとえば、メモリコントローラ１３は、図示しないタイマを有しており、レジスタに設定したリフレッシュ周期Ｔ２の値と比較することで、リフレッシュ周期Ｔ２のリフレッシュタイミングになったか否かを判定する。
【００４８】
リフレッシュ周期Ｔ２のリフレッシュタイミングとなった場合、リフレッシュ制御部１３ｂは、リフレッシュを行わせる制御信号を生成し、ＤＲＡＭ１４−２に供給してリフレッシュを行わせる（ステップＳ７）。
【００４９】
リフレッシュ周期Ｔ２のリフレッシュタイミングでない場合、またはステップＳ７の処理後、リフレッシュ制御部１３ｂは、リフレッシュ周期Ｔ１のリフレッシュタイミングになったか否かを判定する（ステップＳ８）。
【００５０】
たとえば、メモリコントローラ１３は、タイマの値と、レジスタに設定したリフレッシュ周期Ｔ１の値とを比較することで、リフレッシュ周期Ｔ１のリフレッシュタイミングになったか否かを判定する。
【００５１】
リフレッシュ周期Ｔ１のリフレッシュタイミングに達した場合、リフレッシュ制御部１３ｂは、リフレッシュを行わせる制御信号を生成し、通常動作させるＤＲＡＭ１４−１に供給してリフレッシュを行わせる（ステップＳ９）。
【００５２】
リフレッシュ周期Ｔ１のリフレッシュタイミングでない場合、またはステップＳ９の処理後、ステップＳ３からの処理が繰り返される。
なお、上記の各ステップの順序は、特に限定されない。たとえば、ステップＳ３，Ｓ６，Ｓ８の判断は、同時に行ってもよい。メモリコントローラ１３は、ライトまたはリード要求と、リフレッシュ周期Ｔ１またはリフレッシュ周期Ｔ２のリフレッシュタイミングが同時の場合には、ライトまたはリード要求を優先させ、リフレッシュをスキップさせる。
【００５３】
次に、通常動作状態のＤＲＡＭにビットエラーが発生した際の、メモリコントローラ１３の動作例を説明する。
図７は、通常動作状態のＤＲＡＭにビットエラーが発生した際の、メモリコントローラの動作例を示す図である。
【００５４】
ＥＣＣ制御部１３ｃは、通常状態とされたＤＲＡＭから読み出されたデータのエラーチェックを行い、ビットエラーが発生している場合にはＥＣＣ技術を用いた訂正が可能であるか否かを判断する（ステップＳ２０）。１ビットエラーの場合には、ＥＣＣ技術を用いて訂正可能であるので、ＥＣＣで訂正した後、ステップＳ２０の処理を繰り返す。
【００５５】
たとえば、２ビット以上のエラーが発生している場合は、ＥＣＣ制御部１３ｃは、ＥＣＣ技術を用いて訂正不可と判断し、通常状態とされたＤＲＡＭが故障状態と認識する。このとき、制御信号生成部１３ａは、リード禁止状態であったＤＲＡＭに対するリードを許可する（ステップＳ２１）。たとえば、図２のＤＲＡＭ１４−２をリード禁止状態としていた場合、制御信号生成部１３ａは、リード要求が発生すると、たとえば、ＤＲＡＭ１４−２に供給するチップセレクト信号／ＣＳを“０”にして、リード禁止状態を解除する。制御信号生成部１３ａは、通常状態であった１４−１に対しては、たとえば、チップセレクト信号／ＣＳを“１”として非選択状態にして、誤ったデータが読み出されないようにする。
【００５６】
その後、リフレッシュ制御部１３ｂは、リードを許可するようにしたＤＲＡＭのリフレッシュ周期を、通常状態であったＤＲＡＭと同じリフレッシュ周期に変更し（ステップＳ２２）、故障発生時の処理を終える。たとえば、図２のＤＲＡＭ１４−１がリフレッシュ周期＝６４ｍｓで通常動作状態であり、ＤＲＡＭ１４−２がリフレッシュ周期＝３２ｍｓでリード禁止状態であったとする。その場合、リフレッシュ制御部１３ｂは、通常動作状態に変更するＤＲＡＭ１４−２のリフレッシュ周期を、たとえば、６４ｍｓに変更する。
【００５７】
なお、ＥＣＣ技術で訂正不可能で故障と認識されたＤＲＡＭは、正しい値を書き込むことでリカバリ可能であればエラー訂正が行われ、待機状態とされる。このとき、メモリコントローラ１３は、エラー訂正が行われたＤＲＡＭへのリードを禁止させ、ライトは許可するようにし、リフレッシュ周期を、通常動作状態としたＤＲＡＭよりも短くするように変更してもよい。
【００５８】
また、メモリコントローラ１３は、エラー訂正後のＤＲＡＭを通常動作状態に戻し、通常動作状態としていたＤＲＡＭを、リード禁止状態に戻すようにしてもよい。
以上のように、メモリコントローラ１３は、あるＤＲＡＭに対しては、ライト及びリードを許可して通常動作させ、他のＤＲＡＭに対しては、リードを禁止させるとともに、リフレッシュ周期を通常動作させるＤＲＡＭよりも短くする。これにより、リード禁止状態のＤＲＡＭのビットへのアクセス数が減り、かつ、リフレッシュの頻度が増えるため、記憶したビットの値が、隣接ビットによる干渉などの影響で変わってしまうことを抑制できる。
【００５９】
そのため、通常動作状態であったＤＲＡＭが故障したときには、誤った値が格納されている可能性の低い、すなわち格納されている値の信頼性の高い、リード禁止状態でリフレッシュ周期の短いＤＲＡＭを通常動作に切り替えられる。これにより、メモリの信頼性低下を抑制できる。
【００６０】
なお、図２に示した例では、ＤＲＡＭ１４−１，１４−２が２つの場合について説明したが、３つ以上であってもよい。
また、上記では、チップセレクト信号／ＣＳによりリードを禁止するか否かを指定する例を説明したが、これに限定されない。ＳＤＲＡＭなどでは、ライトイネーブル信号／ＷＥが“１”で、ロウアドレスストローブ信号／ＲＡＳが“１”、コラムアドレスストローブ信号／ＣＡＳが“０”のときリード動作を行う。そのため、制御信号生成部１３ａは、リードを禁止するＤＲＡＭに対しては、リード要求がなされても、ロウアドレスストローブ信号／ＲＡＳを“０”、コラムアドレスストローブ信号／ＣＡＳを“１”とすることで、リードを禁止させることができる。
【００６１】
（第３の実施の形態）
第２の実施の形態では、メモリコントローラが複数のＤＲＡＭ１４−１，１４−２を制御する場合を例にして説明したが、１つのＤＲＡＭ内の複数の記憶部に対して、上記のような処理を行うようにしてもよい。
【００６２】
図８は、ＤＲＡＭ内の複数の記憶部を個々に制御する例を示す図である。
メモリコントローラ４０は、制御信号生成部４１を有している。制御信号生成部４１は、図２に示したような前述したようなリフレッシュ制御部１３ｂやＥＣＣ制御部１３ｃを有しているが図示を省略している。
【００６３】
ＤＲＡＭ５０は、記憶部５１，５２と論理回路（図８の例ではＯＲ回路５３，５４）を有している。記憶部５１，５２は、たとえば、図３に示したような構成の一部またはすべてを有している。
【００６４】
メモリコントローラ４０の制御信号生成部４１は、記憶部５１，５２に対して異なるリフレッシュ周期でリフレッシュを行わせる制御信号を、信号線６０，６１を介して供給する。また、制御信号生成部４１は、チップセレクト信号／ＣＳを、信号線６２を介してＤＲＡＭ５０に供給する。さらに制御信号生成部４１は、各記憶部５１，５２のリードを禁止させるか否かを制御する制御信号（以下リード禁止信号という）を、信号線６３，６４を介してＤＲＡＭ５０に供給する。
【００６５】
ライトイネーブル信号／ＷＥなど、その他の制御信号が伝達される信号線については図示を省略している。
ＯＲ回路５３の一方の入力端子には、信号線６２を介してチップセレクト信号／ＣＳが入力され、他方の入力端子には、信号線６３を介してリード禁止信号が入力される。
【００６６】
ＯＲ回路５４の一方の入力端子には、信号線６２を介してチップセレクト信号／ＣＳが入力され、他方の入力端子には、信号線６４を介してリード禁止信号が入力される。
ＯＲ回路５３，５４の出力信号は、記憶部５１，５２に入力される。記憶部５１，５２はこの出力信号をチップセレクト信号／ＣＳとして扱う。すなわち、この出力信号が“１”であれば、記憶部５１，５２は非選択状態となり、“０”であれば選択状態となる。
【００６７】
たとえば、記憶部５１を通常状態とし、記憶部５２をリード禁止状態とする場合について説明する。
その場合、制御信号生成部４１は、記憶部５１に対してあるリフレッシュ周期でリフレッシュを行わせ、記憶部５２に対しては、記憶部５１のリフレッシュ周期よりも短いリフレッシュ周期でリフレッシュを行わせる。
【００６８】
ライト動作時には、制御信号生成部４１は、チップセレクト信号／ＣＳを“０”とし、信号線６３，６４を伝達するリード禁止信号を“０”とする。これにより、ＯＲ回路５３，５４の出力信号はともに“０”となり、記憶部５１，５２がともに選択状態となり、ライト動作が行われる。
【００６９】
リード動作時には、制御信号生成部４１は、チップセレクト信号／ＣＳを“０”とし、
信号線６３を伝達するリード禁止信号を“０”、信号線６４を伝達するリード禁止信号を“１”とする。これにより、ＯＲ回路５３の出力信号は“０”になり、記憶部５１は選択状態になるが、ＯＲ回路５４の出力信号は“１”となり、記憶部５２は非選択状態となる。そのため、記憶部５１からはリードが行われるが、記憶部５２からはリードが行われないようになる。
【００７０】
通常動作状態の記憶部５１の故障が検出された場合、制御信号生成部４１は、リード動作時には、信号線６３を伝達するリード禁止信号を“１”、信号線６４を伝達するリード禁止信号を“０”とする。これにより、ＯＲ回路５３の出力信号は“１”となり、記憶部５１は、非選択状態となり、ＯＲ回路５４の出力信号は“０”となり、記憶部５２は、選択状態となる。そのため、記憶部５２からはリードが行われるが、記憶部５１からはリードが行われない状態となる。
【００７１】
以上のように、メモリコントローラ４０は、ＤＲＡＭ５０中のある記憶部に対しては、ライト及びリードを許可して通常動作させ、他の記憶部に対しては、リードを禁止させるとともに、リフレッシュ周期を通常動作させる記憶部よりも短くする。これにより、リード禁止状態の記憶部のビットへのアクセス数が減り、かつ、リフレッシュの頻度が増えるため、記憶したビットの値が、隣接ビットによる干渉などの影響で変わってしまうことを抑制できる。
【００７２】
そのため、通常動作状態であった記憶部が故障したときには、誤った値が格納されている可能性の低い、すなわち格納されている値の信頼性の高い、リード禁止状態でリフレッシュ周期の短い記憶部を通常動作に切り替えられる。これにより、メモリの信頼性低下を抑制できる。
【００７３】
なお、図８に示した例では、記憶部５１，５２が２つの場合について説明したが、３つ以上であってもよい。
また、リードを禁止させる記憶部に対するリフレッシュ周期を複数の値から選択できるようにしてもよい。
【００７４】
図９は、リフレッシュ周期選択部を有するメモリコントローラの一例を示す図である。図８と同じ要素については同一符号を付している。
電子装置１０ｂにおいて、メモリコントローラ４０ａの制御信号生成部４１ａは、リフレッシュ周期選択部４２を有している。
【００７５】
リフレッシュ周期選択部４２は、たとえば、ＣＰＵ７０側からの選択信号に応じてリードを禁止させる記憶部に対するリフレッシュ周期を選択する。
図１０は、リフレッシュ周期選択部の一例を示す図である。
【００７６】
リフレッシュ周期選択部４２は、複数のレジスタ８０−１，８０−２，…，８０−ｎと、セレクタ８１を有している。
レジスタ８０−１〜８０−ｎには、リフレッシュ周期として、通常動作させる記憶部におけるリフレッシュ周期よりも短い値、たとえば、３２ｍｓ、１ｍｓ、５００μｓ、２５０μｓ、…、１μｓなどと複数のリフレッシュ周期を示す値が保持される。
【００７７】
セレクタ８１は、たとえば、ＣＰＵ７０からの選択信号に応じて、レジスタ８０−１〜８０−ｎに保持されているリフレッシュ周期を示す何れかの値を出力し、リフレッシュ制御部４３に供給する。
【００７８】
リフレッシュ制御部４３は、選択されたリフレッシュ周期で、リードを禁止させる記憶部をリフレッシュさせる制御信号を生成する。
これにより、たとえば、格納される値の信頼性をより向上させたい場合には、より小さいリフレッシュ周期に変更でき、消費電力を考慮する場合には、より大きいリフレッシュ周期に変更できるようになる。
【００７９】
なお、このようなリフレッシュ周期選択部４２は、図２に示したメモリコントローラ１３にも適用可能であることは言うまでもない。
以上、実施の形態に基づき、本発明のメモリ制御方法、メモリコントローラ及び電子装置の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００８０】
１  制御部
２−１〜２−ｎ  記憶部
１０  電子装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  メモリコントローラ
１３ａ  制御信号生成部
１３ｂ  リフレッシュ制御部
１３ｃ  ＥＣＣ制御部
１４−１，１４−２  ＤＲＡＭ
１５  アドレスバス
１６  データバス
１７，１８  信号線
【図１】
0005861553.tif 000002
【図２】
0005861553.tif 000003
【図３】
0005861553.tif 000004
【図４】
0005861553.tif 000005
【図５】
0005861553.tif 000006
【図６】
0005861553.tif 000007
【図７】
0005861553.tif 000008
【図８】
0005861553.tif 000009
【図９】
0005861553.tif 000010
【図１０】
0005861553.tif 000011