(57)【要約】【課題】メモリに格納されるデータの信頼性を向上させるようにメモリを制御するメモリ制御装置を提供すること。【解決手段】ブロック領域判定部３１は、ＭＲＡＭに対するアクセスが、ＭＲＡＭの複数の領域のどの領域に対するアクセスであるかを判定する。アクセス頻度カウンタ更新部３２は、ブロック領域判定部３１によって判定された領域情報に基づいて、複数の領域ごとにアクセスされなかった頻度をカウントする。リフレッシュ領域判定部３３は、アクセス頻度カウンタ更新部３２によって複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定する。したがって、データの訂正が不可能となる前に誤ったデータを訂正して書き戻すことができ、ＭＲＡＭに格納されるデータの信頼性を向上させることが可能となる。【選択図】図２
2011060082.tif 000002
【特許請求の範囲】
【請求項１】
データ読出し時にデータの誤り検出および誤り訂正を行なう機能を備えたメモリを制御するメモリ制御装置であって、
前記メモリに対するアクセスが、該メモリの複数の領域のどの領域に対するアクセスであるかを判定する第１の領域判定手段と、
前記第１の領域判定手段によって判定された領域情報に基づいて、前記複数の領域ごとにアクセスされなかった頻度をカウントするカウント手段と、
前記カウント手段によって前記複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定する第２の領域判定手段と、
前記第２の領域判定手段によってリフレッシュが必要と判定された領域に対して、データ読出しを行なうリフレッシュ実行手段とを含む、メモリ制御装置。
【請求項２】
前記カウント手段は、データ読出しがあった領域に対応する前記頻度をリセットし、
データ書込みがあった領域に対応する前記頻度をリセットし、それ以外の領域に対応する前記頻度をインクリメントする、請求項１記載のメモリ制御装置。
【請求項３】
前記第２の領域判定手段は、前記カウント手段によって前記複数の領域ごとにカウントされたアクセスされなかった頻度が大きい順に、リフレッシュが必要な領域と判定する、請求項１または２記載のメモリ制御装置。
【請求項４】
前記第２の領域判定手段は、前記カウント手段によって前記複数の領域ごとにカウントされたアクセスされなかった頻度が基準値よりも大きい領域を、リフレッシュが必要な領域と判定する、請求項１または２記載のメモリ制御装置。
【請求項５】
前記第２の領域判定手段は、前記リフレッシュ実行手段によってデータ読出しが行なわれたときに、データ誤りがあった場合には前記基準値を変更する、請求項４記載のメモリ制御装置。
【請求項６】
前記第１の領域判定手段は、データ書込みがあった領域に対応する有効ビットの情報を無効から有効に変更し、
前記第２の領域判定手段は、有効ビットが有効となっている領域のみをリフレッシュ対象の領域とし、有効ビットが無効となっている領域をリフレッシュ対象の領域から除外する、請求項１〜５のいずれかに記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの誤り検出および誤り訂正を行なうＥＣＣ（Error Checking and Correcting）回路を備えたメモリを制御する技術に関し、特に、メモリに格納されるデータの信頼性を向上させるようにメモリを制御するメモリ制御装置に関する。
【背景技術】
【０００２】
近年、携帯電話、パーソナルコンピュータなどの情報処理装置に搭載されるフラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory）などの不揮発性メモリの大容量化、高速化が進んでいる。このような不揮発性メモリにおいては、メモリにデータを書込むときやメモリにデータが格納されている間に、データが誤った値となってしまう場合がある。これに対応するために、そのデータ誤りを検出して訂正するＥＣＣ回路を搭載して、格納されるデータの信頼性を向上させたメモリ装置が広く開発されている。これに関連する技術として、下記の特許文献１〜５に開示された発明がある。
【０００３】
特許文献１は、少ないメモリ容量で一時蓄積部のリクエスト頻度管理を行なうことを目的とする。ファイルシステムは、リクエスト信号を送出して情報を受信するユーザ端末群と、情報が蓄積されている基本ファイル部と、よくリクエストされる情報を蓄積している一時蓄積部と、リクエストされた情報を検索する検索部と、ユーザ端末群に情報を送出する情報送出部と、情報のリクエストされた順番をカウントするカウンタ部と、リクエストされた情報よりも小さいカウント値を一つ増加させる比較インクリメント部とを備える。ファイルシステムはさらに、全てのカウント値を一つ増加させるインクリメント部と、カウンタ部の最大カウント値を検出する最大値検出部と、最大カウント値に対応する情報を消去する消去部と、この消去部によって消去された情報に対応するカウンタ部の内容を消去すると共にこの消去した情報よりも大きいカウント値を一つ減少させるデクリメント部とを備える。
【０００４】
特許文献２は、ファイルシステムが突然使用できなくなることを防止するとともに、フラッシュメモリ自体の交換時期を判断できるようにすることを目的とする。フラッシュメモリ用ファイルシステムは、フラッシュメモリの各物理ブロック毎の書き込み発生回数が、書き込みを正常に行なえる書き替え保証回数を越えるかどうかを判断する判断手段と、この判断の結果、書き込み発生回数が書き替え保証回数を超える場合には、その物理ブロックに代わる未使用の代替物理ブロックを索出する索出手段とを有する。ファイルシステムはさらに、上記書き込み発生回数が書き替え保証回数を超える物理ブロックの記述内容を、代替物理ブロックにコピーする代替物理ブロック作成手段を有する。
【０００５】
特許文献３は、各メモリブロックの書き換え回数を平準化する書込み制御手段として、メモリブロックが不良となる時期を大幅に長くし、かつ予備領域を無くして利用可能容量を最大限にするフラッシュメモリ記憶媒体制御手段のファイルシステムの実現を目的とする。不揮発性メモリのメモリブロック個々の書込み回数をメモリブロックに格納する手段を設け、書込み回数値が最少のメモリブロックを書込み対象として見出す手段を設け、これらをユーザ書込みデータと共に更新した書込み回数データをメモリブロックに格納する書込み処理手段とする。
【０００６】
特許文献４は、ページイレーズ機能の活用でファイルの書換え性能を向上させることを目的とする。ブロックは、物理アドレス０，１，２，３から構成される。初期状態では、物理アドレス０，１，２，３は、全てイレーズ状態にある。物理アドレス０，１，２，３にデータＬＡ０，ＬＡ１，ＬＡ２，ＬＡ３がライトされると、カウント値は、それぞれ“１”となる。このように、ページ（物理アドレス）単位の書き換え動作を行ない、データ更新が行われた物理アドレスのカウンタ値については、その値を更新していく。最終的に、ブロック内のカウント値の合計が許容値３２に達すると、リフレッシュが行われ、ブロック内のメモリセルの状態が初期化される。
【０００７】
特許文献５は、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）においてデータ誤りを低減するための方法、および、その装置に関するものである。開示された方法では、データビットおよびその誤り訂正符号（ＥＣＣ）検査ビットを、記憶領域に格納する。その後、データビットおよびＥＣＣ検査ビットを読み出し、誤りを検出および検査する。次に、カウントに基づいてデータのリフレッシュを開始し、（記憶領域に格納されたデータビットおよびそのＥＣＣ検査ビットにアクセスし、最後に、記憶領域に対して、データビットおよびＥＣＣ検査ビットの検査、訂正、および復元を行うことにより、）上記データビットおよびそのＥＣＣ検査ビットをリフレッシュする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平６−１１０７４２号公報
【特許文献２】特開平８−２７２６６４号公報
【特許文献３】特開平１０−３１６１１号公報
【特許文献４】特開２００４−２４０５７２号公報
【特許文献５】特表２００６−５２７４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
不揮発性メモリの中には、ＭＲＡＭのようにデータの書き込み時に、書き込み対象以外の任意のデータを書き換えてしまうライトディスターブと呼ばれる不具合が生じる可能性が高いメモリが存在する。たとえ、データ読出し時にＥＣＣ回路によって誤り検出／誤り訂正を行なったとしても、ＭＲＡＭへの書き込み回数が増加するにしたがって、アクセス頻度が低い領域に格納されているデータがアクセスされない間に誤った値に書き換えられてしまう可能性が高くなる。したがって、アクセス頻度が低い領域において多数のビットが誤って書き換えられてしまうことが考えられる。
【００１０】
一方、ＥＣＣ回路は、データの２ビットの誤り検出、１ビットの誤り訂正しか行なえないのが一般的である。したがって、２ビット以上のデータの誤りを訂正することができない。そのため、アクセス頻度が低い領域において多数のビットが誤って書き換えられてしまった場合には、ＥＣＣ回路を用いたとしてもそれを訂正することができないといった問題があった。
【００１１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、メモリに格納されるデータの信頼性を向上させるようにメモリを制御するメモリ制御装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施例によれば、データ読出し時にデータの誤り検出および誤り訂正を行なう機能を備えたメモリを制御するメモリ制御装置が提供される。ブロック領域判定部は、ＭＲＡＭに対するアクセスが、ＭＲＡＭの複数の領域のどの領域に対するアクセスであるかを判定する。アクセス頻度カウンタ更新部は、ブロック領域判定部によって判定された領域情報に基づいて、複数の領域ごとにアクセスされなかった頻度をカウントする。リフレッシュ領域判定部は、アクセス頻度カウンタ更新部によって複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定する。そして、リフレッシュ実行部は、リフレッシュ領域判定部によってリフレッシュが必要と判定された領域に対して、データ読出しを行なう。
【発明の効果】
【００１３】
この実施例によれば、リフレッシュ領域判定部が、アクセス頻度カウンタ更新部によって複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定するので、データの訂正が不可能となる前に誤ったデータを訂正して書き戻すことができる。したがって、ＭＲＡＭに格納されるデータの信頼性を向上させることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態におけるメモリ制御回路を備えたデータ処理装置の構成例を示す図である。
【図２】本発明の第１の実施の形態におけるリフレッシュ制御回路１の機能的構成を示すブロック図である。
【図３】本発明の第１の実施の形態におけるリフレッシュ制御回路１の処理手順を説明するためのフローチャートである。
【図４】本発明の第２の実施の形態におけるリフレッシュ制御回路１ａの処理手順を説明するためのフローチャートである。
【図５】本発明の第３の実施の形態におけるリフレッシュ制御回路１ｂの処理手順を説明するためのフローチャートである。
【図６】本発明の第４の実施の形態におけるリフレッシュ制御回路１ｃの処理手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態におけるメモリ制御回路を備えたデータ処理装置の構成例を示す図である。なお、データの書込み時に、書込み対象以外の任意のデータを誤って書き換えてしまうライトディスターブを起こす代表的なメモリがＭＲＡＭであることから、メモリ装置をＭＲＡＭとして説明するが、これに限定されるものではない。
【００１６】
また、ＭＲＡＭに格納されるデータを読出し、それが既に誤ったデータに書き換えられている場合に、その誤っているデータを正しいデータに訂正して書き戻す操作をリフレッシュと呼ぶことにする。
【００１７】
このデータ処理装置は、メモリ制御装置（以下、リフレッシュ制御回路とも呼ぶ。）１と、ＣＰＵ（Central Processing Unit）１１と、ＥＣＣ回路１２と、ＭＲＡＭ１３と、アクセスセレクタ１４とを含む。
【００１８】
ＣＰＵ１１は、図示しない内蔵のメモリやＭＲＡＭ１３から命令コードをフェッチして実行することにより、ＭＲＡＭ１３に対するデータ書込み／データ読出しを行ないながら処理を行なう。このとき、ＣＰＵ１１は、アドレス信号線１０１を介してアドレスを出力し、データ信号線２０１を介してデータの入出力を行なう。
【００１９】
アクセスセレクタ１４は、アドレス信号線１０１を介してＣＰＵ１１から出力されるアドレスを受け、アドレス信号線１０２を介してリフレッシュ制御回路１から出力されるアドレスを受ける。アクセスセレクタ１４は、ＣＰＵ１１からＭＲＡＭ１３に対するアクセス要求がある場合に、ＣＰＵ１１からのアドレスを選択してアドレス信号線１０３を介してＥＣＣ回路１２に出力する。また、リフレッシュ制御回路１からＭＲＡＭ１３に対するアクセス要求がある場合に、リフレッシュ制御回路１からのアドレスを選択してアドレス信号線１０３を介してＥＣＣ回路１２に出力する。なお、ＣＰＵ１１からのアクセス要求とリフレッシュ制御回路１からのアクセス要求とが競合する場合には、ＣＰＵ１１からのアクセス要求を優先する。
【００２０】
ＭＲＡＭ１３は、データ記憶領域とそれに対応するＥＣＣチェックコード記憶領域とを有している。ＥＣＣ回路１２は、ＣＰＵ１１からデータ書込み要求を受けると、データ信号線２０２を介してデータをＭＲＡＭ１３に出力してデータ書き込みを行なう。このとき、ＥＣＣ回路１２は、ＥＣＣチェックコードを計算してＭＲＡＭ１３内のＥＣＣチェックコード記憶領域に格納する。
【００２１】
また、ＥＣＣ回路１２は、ＣＰＵ１１またはリフレッシュ制御回路１からデータ読出し要求を受けると、ＭＲＡＭ１３からデータを読み出すと共に、ＭＲＡＭ１３内のＥＣＣチェックコード記憶領域からＥＣＣチェックコードを読み出してデータの誤り検出を行ない、データ誤りがある場合にはデータを訂正して、訂正後のデータとＥＣＣチェックコードとをＭＲＡＭ１３に書き戻す。そして、ＥＣＣ回路１２は、データ信号線２０１を介して訂正後のデータをＣＰＵ１１に出力する。
【００２２】
なお、ＥＣＣ回路１２は、データ誤りを検出したときに、リフレッシュ制御回路１に対して誤り検出信号３０１を出力する。この誤り検出信号３０１は、後述する第３の実施の形態におけるメモリ制御装置によって使用される。
【００２３】
リフレッシュ制御回路１は、アクセス管理テーブル２と、ライトアクセス定義値レジスタ３とを含む。また、アクセス管理テーブル２は、ＭＲＡＭ１３内のデータを格納する領域を複数の領域（以下、ブロックと呼ぶ。）に分割し、ブロックごとにブロック有効ビット２１、アクセス頻度カウンタ２２、およびブロックアドレス２３の情報を保持する。
【００２４】
ブロック有効ビット２１は、当該ブロックが保持している情報が有効か否かを判定するために用いられる情報である。このブロック有効ビット２１は、後述する第４の実施の形態におけるメモリ制御装置によって使用される。
【００２５】
アクセス頻度カウンタ２２は、当該ブロックがアクセスされなかった頻度を示すカウンタの値である。リフレッシュ制御回路１は、アクセス頻度カウンタ２２の値を参照して、当該ブロックに対するリフレッシュを行なうか否かを判定する。
【００２６】
ブロックアドレス２３は、当該ブロックがＭＲＡＭ１３内のどの領域に対応するかを示す情報であり、ＣＰＵ１１がＭＲＡＭ１３にアクセスするときのアドレスの一部、たとえばＣＰＵ１１から出力されるアドレスの上位ビットが使用される。
【００２７】
ライトアクセス定義値レジスタ３は、ＭＲＡＭ１３に対してリフレッシュを開始するための基準値となる書込み回数を保持する。リフレッシュ制御回路１は、アクセス頻度カウンタ２２の値がライトアクセス定義値よりも大きいブロックに対してリフレッシュを行なう。なお、このライトアクセス定義値は、後述する第２〜第４の実施の形態におけるメモリ制御装置によって使用される。
【００２８】
図２は、本発明の第１の実施の形態におけるリフレッシュ制御回路１の機能的構成を示すブロック図である。リフレッシュ制御回路１は、ブロック領域判定部３１と、アクセス頻度カウンタ更新部３２と、リフレッシュ領域判定部３３と、リフレッシュ実行部３４とを含む。以下、リフレッシュ制御回路１がハードウェアによって実現される場合について説明するが、図示しないＣＰＵがプログラムを実行することによって、すなわちソフトウェアによってリフレッシュ制御回路１を実現することも可能である。
【００２９】
ブロック領域判定部３１は、ＣＰＵ１１から出力されるアドレスを受けると、アクセス管理テーブル２に格納されるブロックアドレス２３を参照して、ＭＲＡＭ１３のどの領域に対するアクセスであるかを判定する。
【００３０】
アクセス頻度カウンタ更新部３２は、ＣＰＵ１１からＭＲＡＭ１３へのアクセス要求およびリフレッシュ制御回路１からＭＲＡＭ１３へのアクセス要求に応じて、アクセス管理テーブル２に格納される各ブロックのアクセス頻度カウンタ２２の値を更新する。
【００３１】
リフレッシュ領域判定部３３は、アクセス管理テーブル２に格納されるアクセス頻度カウンタ２２の値を参照してリフレッシュが必要なブロック領域を判定し、リフレッシュ実行部３４に対して当該ブロックのリフレッシュの実行を要求する。
【００３２】
リフレッシュ実行部３４は、リフレッシュ領域判定部３３からリフレッシュの実行要求があったブロックに対するリフレッシュを実行する。具体的には、当該ブロックのブロックアドレス２３を参照して、アドレス信号線１０２を介してアクセスセレクタ１４にアドレスを出力すると共に、ＭＲＡＭ１３に対して当該ブロックに対するデータ読出し要求を行なう。これによって、ＥＣＣ回路１２は、ＭＲＡＭ１３からデータを読み出すと共に、ＭＲＡＭ１３内のＥＣＣチェックコード記憶領域からＥＣＣチェックコードを読み出してデータの誤り検出を行ない、データ誤りがある場合にはデータを訂正して、訂正後のデータとＥＣＣチェックコードとをＭＲＡＭ１３に書き戻す。
【００３３】
図３は、本発明の第１の実施の形態におけるリフレッシュ制御回路１の処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、アクセス頻度カウンタ更新部３２は、アクセス管理テーブル２に格納される全ブロックのアクセス頻度カウンタ２２をリセットして“０”とする（Ｓ１１）。
【００３４】
次に、ブロック領域判定部３１は、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求があるか否かを判定する（Ｓ１２）。データ書込み要求がある場合には（Ｓ１２，Ｙｅｓ）、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部３２に出力する（Ｓ１３）。
【００３５】
次に、アクセス頻度カウンタ更新部３２は、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ１４）、それ以外の全ブロックのアクセス頻度カウンタ２２の値を“１”だけインクリメントし（Ｓ１５）、ステップＳ１９に処理が進む。
【００３６】
また、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求がなければ（Ｓ１２，Ｎｏ）、ブロック領域判定部３１は、ＣＰＵ１１からＭＲＡＭ１３に対するデータ読出し要求があるか否かを判定する（Ｓ１６）。データ読出し要求がない場合には（Ｓ１６，Ｎｏ）、ステップＳ１２に戻って以降の処理を繰り返す。
【００３７】
また、データ読出し要求がある場合には（Ｓ１６，Ｙｅｓ）、ブロック領域判定部３１は、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部３２に出力する（Ｓ１７）。そして、アクセス頻度カウンタ更新部３２は、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ１８）、ステップＳ１９に処理が進む。
【００３８】
ステップＳ１９において、リフレッシュ領域判定部３３は、アクセス管理テーブル２に格納されるアクセス頻度カウンタ２２の値を参照して、カウント値が大きいブロックを抽出し、リフレッシュ実行部３４に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部３２に対して該当ブロックに関する情報を出力する。
【００３９】
ここで、リフレッシュ領域判定部３３は、最もアクセス頻度カウンタ２２の値が大きいブロックをリフレッシュ対象のブロックに決定してもよいし、アクセス頻度カウンタ２２の値が大きい複数のブロックをリフレッシュ対象のブロックに決定してもよい。また、リフレッシュ領域判定部３３は、ステップＳ１９の処理に移行した回数をカウントし、何回かに１回だけ最もアクセス頻度カウンタ２２の値が大きいブロックをリフレッシュ対象のブロックに決定するようにしてもよい。
【００４０】
アクセス頻度カウンタ更新部３２は、リフレッシュ領域判定部３３によってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ２２をリセットし（Ｓ２０）、ステップＳ１２に戻って以降の処理を繰り返す。
【００４１】
このように、ＣＰＵ１１がＭＲＡＭ１３へのデータ書込みおよびデータ読出しを繰り返すことによって、各ブロックのアクセス頻度カウンタ２２の値が変化する。そして、ＭＲＡＭ１３に対するデータ書込みが増えると、その間、データ書込みもデータ読出しも行なわれていないブロックのアクセス頻度カウンタ２２の値が増加することになる。
【００４２】
すなわち、アクセス頻度カウンタ２２の値が大きいブロックは暫くの間アクセスが行なわれておらず、ＭＲＡＭ１３内で保持される当該ブロックのデータにおいてライトディスターブによるデータの誤りが生じている可能性が高い。そこで、リフレッシュ制御回路１は、アクセス頻度カウンタ２２の値が大きい順に当該ブロックに対してデータ読出し要求を行なう。
【００４３】
以上説明したように、本実施の形態におけるメモリ制御装置によれば、アクセス頻度カウンタ２２の値が大きいブロックの順にリフレッシュを行なうようにしたので、アクセス頻度が少ないブロックに対して意図的に読出しを行なうことができる。したがって、データの訂正が不可能となる前にＥＣＣ回路１２によって誤ったデータを訂正して書き戻すことができ、ＭＲＡＭ１３に格納するデータの信頼性を高めることが可能となった。
【００４４】
（第２の実施の形態）
上述した第１の実施の形態においては、アクセス頻度カウンタ２２の値の相対関係によってリフレッシュを行なうブロックを決定していたため、ライトディスターブを起こすほど書込みが行なわれていないブロックに対してもリフレッシュが行なわれてしまうことが考えられる。
【００４５】
本発明の第２の実施の形態においては、アクセス頻度カウンタ２２の値が一定値を超えたブロックに対してリフレッシュを行ない、ライトディスターブを起こす程度に書込みが行なわれているブロックのデータの信頼性を高めるものである。
【００４６】
本発明の第２の実施の形態におけるデータ処理装置の構成は、図１に示す第１の実施の形態におけるデータ処理装置の構成と同様である。また、本発明の第２の実施の形態におけるリフレッシュ制御回路の機能的構成は、図２に示す第１の実施の形態におけるリフレッシュ制御回路の機能的構成と比較して、リフレッシュ領域判定部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、リフレッシュ制御回路およびリフレッシュ領域判定部の参照符号をそれぞれ１ａおよび３３ａとして説明する。
【００４７】
図４は、本発明の第２の実施の形態におけるリフレッシュ制御回路１ａの処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、アクセス頻度カウンタ更新部３２は、アクセス管理テーブル２に格納される全ブロックのアクセス頻度カウンタ２２をリセットして“０”とする（Ｓ３１）。このとき、ライトアクセス定義値レジスタ３に、リフレッシュ動作を開始する基準を予め規定した値が設定される。ＣＰＵ１１がライトアクセス定義値レジスタ３に値を設定するようにしてもよいし、リフレッシュ制御回路１が起動時にライトアクセス定義レジスタ３に所定の値を設定するようにしてもよい。
【００４８】
次に、ブロック領域判定部３１は、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求があるか否かを判定する（Ｓ３２）。データ書込み要求がある場合には（Ｓ３２，Ｙｅｓ）、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部３２に出力する（Ｓ３３）。
【００４９】
次に、アクセス頻度カウンタ更新部３２は、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ３４）、それ以外の全ブロックのアクセス頻度カウンタ２２の値を“１”だけインクリメントし（Ｓ３５）、ステップＳ３９に処理が進む。
【００５０】
また、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求がなければ（Ｓ３２，Ｎｏ）、ブロック領域判定部３１は、ＣＰＵ１１からＭＲＡＭ１３に対するデータ読出し要求があるか否かを判定する（Ｓ３６）。データ読出し要求がない場合には（Ｓ３６，Ｎｏ）、ステップＳ３２に戻って以降の処理を繰り返す。
【００５１】
また、データ読出し要求がある場合には（Ｓ３６，Ｙｅｓ）、ブロック領域判定部３１は、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部３２に出力する（Ｓ３７）。そして、アクセス頻度カウンタ更新部３２は、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ３８）、ステップＳ３９に処理が進む。
【００５２】
ステップＳ３９において、リフレッシュ領域判定部３３ａは、ライトアクセス定義値レジスタ３およびアクセス管理テーブル２に格納されるアクセス頻度カウンタ２２の値を参照して、アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックがあるか否かを判定する。
【００５３】
アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックがなければ（Ｓ３９，Ｎｏ）、ステップＳ３２に戻って以降の処理を繰り返す。また、アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックがあれば（Ｓ３９，Ｙｅｓ）、リフレッシュ実行部３４に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部３２に対して該当ブロックに関する情報を出力する（Ｓ４０）。
【００５４】
アクセス頻度カウンタ更新部３２は、リフレッシュ領域判定部３３ａによってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ２２をリセットし（Ｓ４１）、ステップＳ３２に戻って以降の処理を繰り返す。
【００５５】
以上説明したように、本実施の形態におけるメモリ制御装置によれば、アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックに対してリフレッシュを行なうようにしたので、第１の実施の形態において説明した効果に加えて、さらにＭＲＡＭ１３に格納するデータの信頼性を高めることが可能となった。
【００５６】
（第３の実施の形態）
上述した第２の実施の形態においては、ライトアクセス定義値レジスタ３に設定されたリフレッシュを開始するための基準値が低い場合には、ライトディスターブを起こすほど書込みが行なわれていない段階でもブロックに対するリフレッシュが行なわれてしまうことが考えられる。
【００５７】
逆に、ライトアクセス定義値レジスタ３に設定された基準値が高い場合には、リフレッシュが必要になっている状態であるにもかかわらず、ブロックに対するリフレッシュが行なわれないことが考えられる。
【００５８】
本発明の第３の実施の形態においては、ライトアクセス定義値レジスタ３の値を動的に変更させて、ライトディスターブを起こす可能性が高くなっているブロックに対してリフレッシュを行なうものである。
【００５９】
本発明の第３の実施の形態におけるデータ処理装置の構成は、図１に示す第１の実施の形態におけるデータ処理装置の構成と同様である。また、本発明の第３の実施の形態におけるリフレッシュ制御回路の機能的構成は、図２に示す第１の実施の形態におけるリフレッシュ制御回路の機能的構成と比較して、リフレッシュ領域判定部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、リフレッシュ制御回路およびリフレッシュ領域判定部の参照符号をそれぞれ１ｂおよび３３ｂとして説明する。
【００６０】
図５は、本発明の第３の実施の形態におけるリフレッシュ制御回路１ｂの処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、アクセス頻度カウンタ更新部３２は、アクセス管理テーブル２に格納される全ブロックのアクセス頻度カウンタ２２をリセットして“０”とする（Ｓ５１）。このとき、第２の実施の形態と同様に、ライトアクセス定義値レジスタ３に、リフレッシュ動作を開始する基準を予め規定した値が設定される。
【００６１】
次に、ブロック領域判定部３１は、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求があるか否かを判定する（Ｓ５２）。データ書込み要求がある場合には（Ｓ５２，Ｙｅｓ）、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部３２に出力する（Ｓ５３）。
【００６２】
次に、アクセス頻度カウンタ更新部３２は、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ５４）、それ以外の全ブロックのアクセス頻度カウンタ２２の値を“１”だけインクリメントし（Ｓ５５）、ステップＳ５９に処理が進む。
【００６３】
また、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求がなければ（Ｓ５２，Ｎｏ）、ブロック領域判定部３１は、ＣＰＵ１１からＭＲＡＭ１３に対するデータ読出し要求があるか否かを判定する（Ｓ５６）。データ読出し要求がない場合には（Ｓ５６，Ｎｏ）、ステップＳ５２に戻って以降の処理を繰り返す。
【００６４】
また、データ読出し要求がある場合には（Ｓ５６，Ｙｅｓ）、ブロック領域判定部３１は、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部３２に出力する（Ｓ５７）。そして、アクセス頻度カウンタ更新部３２は、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ５８）、ステップＳ５９に処理が進む。
【００６５】
ステップＳ５９において、リフレッシュ領域判定部３３ｂは、ライトアクセス定義値レジスタ３およびアクセス管理テーブル２に格納されるアクセス頻度カウンタ２２の値を参照して、アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックがあるか否かを判定する。
【００６６】
アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックがなければ（Ｓ５９，Ｎｏ）、ステップＳ５２に戻って以降の処理を繰り返す。また、アクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックがあれば（Ｓ５９，Ｙｅｓ）、リフレッシュ実行部３４に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部３２に対して該当ブロックに関する情報を出力する（Ｓ６０）。
【００６７】
アクセス頻度カウンタ更新部３２は、リフレッシュ領域判定部３３ｂによってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ２２をリセットする（Ｓ６１）。
【００６８】
次に、リフレッシュ領域判定部３３ｂは、ＥＣＣ回路１２から出力される誤り検出信号３０１を受け、データ誤りがあったか否かの情報を取得する（Ｓ６２）。
【００６９】
次に、リフレッシュ領域判定部３３ｂは、データ誤りがあったか否かに応じて、ライトアクセス定義値レジスタ３の値を修正し（Ｓ６３）、ステップＳ５２に戻って以降の処理を繰り返す。たとえば、データ誤りがなかった場合には、現在のライトアクセス定義値が小さいと判断して、より大きな値に修正する。また、データ誤りがあった場合には、現在のライトアクセス定義値が大きいと判断して、より小さな値に修正する。
【００７０】
以上説明したように、本実施の形態におけるメモリ制御装置によれば、データ誤りがあったか否かによってライトアクセス定義値を修正するようにしたので、第２の実施の形態において説明した効果に加えて、ＭＲＡＭ１３に対するリフレッシュをさらに適切に行なうことが可能となった。
【００７１】
（第４の実施の形態）
第１〜第３の実施の形態においては、ブロックにデータが書き込まれているか否かにかかわらず、暫くの間データ書込みが行なわれていないブロックに対してリフレッシュを行なうものであった。しかしながら、未だデータが書き込まれていないブロックに対してはデータの誤りが生じていても特に問題とはならない。
【００７２】
本発明の第４の実施の形態においては、ブロック有効ビット２１を用いて既にデータが書き込まれているブロックであるか否かも判定して、不要なリフレッシュ動作を行なわないようにするものである。
【００７３】
本発明の第４の実施の形態におけるデータ処理装置の構成は、図１に示す第１の実施の形態におけるデータ処理装置の構成と同様である。また、本発明の第４の実施の形態におけるリフレッシュ制御回路の機能的構成は、図２に示す第１の実施の形態におけるリフレッシュ制御回路の機能的構成と比較して、ブロック領域判定部およびリフレッシュ領域判定部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、リフレッシュ制御回路、ブロック領域判定部、アクセス頻度カウンタ更新部およびリフレッシュ領域判定部の参照符号をそれぞれ１ｃ、３１ｃ、３２ｃおよび３３ｃとして説明する。
【００７４】
図６は、本発明の第４の実施の形態におけるリフレッシュ制御回路１ｃの処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、ブロック領域判定部３１ｃは、全ブロックのブロック有効ビット２１の情報を無効とし、アクセス頻度カウンタ更新部３２ｃは、アクセス管理テーブル２に格納される全ブロックのアクセス頻度カウンタ２２をリセットして“０”とする（Ｓ７１）。
【００７５】
次に、ブロック領域判定部３１ｃは、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求があるか否かを判定する（Ｓ７２）。データ書込み要求がある場合には（Ｓ７２，Ｙｅｓ）、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部３２ｃに出力する（Ｓ７３）。
【００７６】
次に、アクセス頻度カウンタ更新部３２ｃは、該当ブロックのアクセス頻度カウンタ２２をリセットする（Ｓ７４）。そして、ブロック領域判定部３１ｃは、該当ブロックのブロック有効ビット２１の情報を無効から有効に変更する（Ｓ７５）。
【００７７】
次に、アクセス頻度カウンタ更新部３２は、それ以外の全ブロックのうちブロック有効ビット２１が有効となっているブロックのアクセス頻度カウンタ２２の値のみを“１”だけインクリメントし（Ｓ７６）、ステップＳ８０に処理が進む。
【００７８】
また、ＣＰＵ１１からＭＲＡＭ１３に対するデータ書込み要求がなければ（Ｓ７２，Ｎｏ）、ブロック領域判定部３１ｃは、ＣＰＵ１１からＭＲＡＭ１３に対するデータ読出し要求があるか否かを判定する（Ｓ７７）。データ読出し要求がない場合には（Ｓ７７，Ｎｏ）、ステップＳ７２に戻って以降の処理を繰り返す。
【００７９】
また、データ読出し要求がある場合には（Ｓ７７，Ｙｅｓ）、ブロック領域判定部３１ｃは、ＣＰＵ１１から出力されるアドレス情報とアクセス管理テーブル２に格納されるブロックアドレス２３とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部３２ｃに出力する（Ｓ７８）。そして、アクセス頻度カウンタ更新部３２ｃは、該当ブロックのアクセス頻度カウンタ２２をリセットし（Ｓ７９）、ステップＳ８０に処理が進む。
【００８０】
ステップＳ８０において、リフレッシュ領域判定部３３ｃは、リフレッシュを行なうべきブロックがあるか否かを判定する。この処理は、第１の実施の形態において説明したアクセス頻度カウンタ２２の値が大きいブロックの順にリフレッシュを行なうべきブロックであると判定する方法を用いてもよいし、第２および第３の実施の形態において説明したアクセス頻度カウンタ２２の値がライトアクセス定義値を超えたブロックをリフレッシュを行なうべきブロックであると判定する方法を用いてもよい。
【００８１】
リフレッシュを行なうべきブロックがなければ（Ｓ８０，Ｎｏ）、ステップＳ７２に戻って以降の処理を繰り返す。また、リフレッシュを行なうべきブロックがあれば（Ｓ８０，Ｙｅｓ）、リフレッシュ実行部３４に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部３２ｃに対して該当ブロックに関する情報を出力する（Ｓ８１）。
【００８２】
アクセス頻度カウンタ更新部３２ｃは、リフレッシュ領域判定部３３ｃによってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ２２をリセットし（Ｓ８２）、ステップＳ７２に戻って以降の処理を繰り返す。
【００８３】
以上説明したように、本実施の形態におけるメモリ制御装置によれば、ブロック有効ビット２１を用いて既にデータが書き込まれているブロックであるか否かも判断してリフレッシュを行なうか否かを判定するようにしたので、不要なリフレッシュ動作が行なわれるのを防止することが可能となった。
【００８４】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８５】
１  リフレッシュ制御回路、２  アクセス管理テーブル、３  ライトアクセス定義レジスタ、１１  ＣＰＵ、１２  ＥＣＣ回路、１３  ＭＲＡＭ、１４  アクセスセレクタ、２１  ブロック有効ビット、２２  アクセス頻度カウンタ、２３  ブロックアドレス、３１  ブロック領域判定部、３２  アクセス頻度カウンタ更新部、３３  リフレッシュ領域判定部、３４  リフレッシュ実行部、１０１，１０２，１０３，１０４  アドレス信号線、２０１，２０２  データ信号線。
【図１】
2011060082.tif 000003
【図２】
2011060082.tif 000004
【図３】
2011060082.tif 000005
【図４】
2011060082.tif 000006
【図５】
2011060082.tif 000007
【図６】
2011060082.tif 000008