JP2011060082A - Memory control device - Google Patents

Memory control device Download PDF

Info

Publication number
JP2011060082A
JP2011060082A JP2009210279A JP2009210279A JP2011060082A JP 2011060082 A JP2011060082 A JP 2011060082A JP 2009210279 A JP2009210279 A JP 2009210279A JP 2009210279 A JP2009210279 A JP 2009210279A JP 2011060082 A JP2011060082 A JP 2011060082A
Authority
JP
Japan
Prior art keywords
data
block
area
refresh
access
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.)
Pending
Application number
JP2009210279A
Other languages
Japanese (ja)
Other versions
JP2011060082A5 (en
Inventor
Mamoru Kurata
守 倉田
Masanori Hayashigoe
正紀 林越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009210279A priority Critical patent/JP2011060082A/en
Publication of JP2011060082A publication Critical patent/JP2011060082A/en
Publication of JP2011060082A5 publication Critical patent/JP2011060082A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a memory control device for controlling a memory so as to improve the reliability of data to be stored in the memory. <P>SOLUTION: A block area determination part 31 determines an area accessed in a plurality of areas of an MRAM. An access frequency counter updating part 32 counts non-access frequency for each plurality of areas, based on area information determined by the block area determination part 31. A refresh area determination part 33 determines an area to be refreshed according to the non-access frequency counted for each plurality of areas by the access area counter updating part 32. Thereby, error data can be corrected and rewritten before data correction is disabled, and the reliability of data to be stored in the MRAM can be improved. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、データの誤り検出および誤り訂正を行なうECC(Error Checking and Correcting)回路を備えたメモリを制御する技術に関し、特に、メモリに格納されるデータの信頼性を向上させるようにメモリを制御するメモリ制御装置に関する。   The present invention relates to a technology for controlling a memory having an ECC (Error Checking and Correcting) circuit that performs error detection and error correction of data, and in particular, controls the memory so as to improve the reliability of data stored in the memory. The present invention relates to a memory control device.

近年、携帯電話、パーソナルコンピュータなどの情報処理装置に搭載されるフラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリの大容量化、高速化が進んでいる。このような不揮発性メモリにおいては、メモリにデータを書込むときやメモリにデータが格納されている間に、データが誤った値となってしまう場合がある。これに対応するために、そのデータ誤りを検出して訂正するECC回路を搭載して、格納されるデータの信頼性を向上させたメモリ装置が広く開発されている。これに関連する技術として、下記の特許文献1〜5に開示された発明がある。   In recent years, the capacity and speed of non-volatile memories such as flash memories and MRAMs (Magnetoresistive Random Access Memory) mounted in information processing apparatuses such as mobile phones and personal computers are increasing. In such a nonvolatile memory, there is a case where data becomes an incorrect value when data is written to the memory or while data is stored in the memory. In order to cope with this, a memory device in which an ECC circuit for detecting and correcting the data error is mounted to improve the reliability of stored data has been widely developed. As techniques related to this, there are inventions disclosed in the following Patent Documents 1 to 5.

特許文献1は、少ないメモリ容量で一時蓄積部のリクエスト頻度管理を行なうことを目的とする。ファイルシステムは、リクエスト信号を送出して情報を受信するユーザ端末群と、情報が蓄積されている基本ファイル部と、よくリクエストされる情報を蓄積している一時蓄積部と、リクエストされた情報を検索する検索部と、ユーザ端末群に情報を送出する情報送出部と、情報のリクエストされた順番をカウントするカウンタ部と、リクエストされた情報よりも小さいカウント値を一つ増加させる比較インクリメント部とを備える。ファイルシステムはさらに、全てのカウント値を一つ増加させるインクリメント部と、カウンタ部の最大カウント値を検出する最大値検出部と、最大カウント値に対応する情報を消去する消去部と、この消去部によって消去された情報に対応するカウンタ部の内容を消去すると共にこの消去した情報よりも大きいカウント値を一つ減少させるデクリメント部とを備える。   Patent Document 1 aims to perform request frequency management of a temporary storage unit with a small memory capacity. The file system includes a group of user terminals that send out a request signal to receive information, a basic file part in which information is stored, a temporary storage part in which frequently requested information is stored, and requested information. A search unit for searching; an information sending unit for sending information to a user terminal group; a counter unit for counting the order in which information is requested; a comparison increment unit for incrementing a count value smaller than the requested information by one; Is provided. The file system further includes an increment unit that increments all count values by one, a maximum value detection unit that detects the maximum count value of the counter unit, an erase unit that erases information corresponding to the maximum count value, and the erase unit And a decrementing unit for erasing the contents of the counter unit corresponding to the information erased by 1 and decrementing the count value larger than the erased information by one.

特許文献2は、ファイルシステムが突然使用できなくなることを防止するとともに、フラッシュメモリ自体の交換時期を判断できるようにすることを目的とする。フラッシュメモリ用ファイルシステムは、フラッシュメモリの各物理ブロック毎の書き込み発生回数が、書き込みを正常に行なえる書き替え保証回数を越えるかどうかを判断する判断手段と、この判断の結果、書き込み発生回数が書き替え保証回数を超える場合には、その物理ブロックに代わる未使用の代替物理ブロックを索出する索出手段とを有する。ファイルシステムはさらに、上記書き込み発生回数が書き替え保証回数を超える物理ブロックの記述内容を、代替物理ブロックにコピーする代替物理ブロック作成手段を有する。   Patent Document 2 aims to prevent a file system from suddenly becoming unusable and to determine when to replace the flash memory itself. The file system for flash memory has a judging means for judging whether or not the number of times of writing for each physical block of the flash memory exceeds the guaranteed number of times of rewriting that can be normally written, and as a result of this judgment, In the case where the guaranteed number of rewrites is exceeded, there is a search means for searching for an unused alternative physical block in place of the physical block. The file system further includes alternative physical block creation means for copying the description content of the physical block whose number of occurrences of writing exceeds the guaranteed number of rewrites to the alternative physical block.

特許文献3は、各メモリブロックの書き換え回数を平準化する書込み制御手段として、メモリブロックが不良となる時期を大幅に長くし、かつ予備領域を無くして利用可能容量を最大限にするフラッシュメモリ記憶媒体制御手段のファイルシステムの実現を目的とする。不揮発性メモリのメモリブロック個々の書込み回数をメモリブロックに格納する手段を設け、書込み回数値が最少のメモリブロックを書込み対象として見出す手段を設け、これらをユーザ書込みデータと共に更新した書込み回数データをメモリブロックに格納する書込み処理手段とする。   Patent Document 3 discloses a flash memory storage that, as a write control means for leveling the number of rewrites of each memory block, greatly increases the time when a memory block becomes defective and maximizes the available capacity by eliminating a spare area. The object is to realize a file system of the medium control means. A means for storing the number of writes of each memory block of the nonvolatile memory in the memory block is provided, and a means for finding a memory block having the smallest number of times of writing as a write target is provided. Write processing means for storing in a block.

特許文献4は、ページイレーズ機能の活用でファイルの書換え性能を向上させることを目的とする。ブロックは、物理アドレス0,1,2,3から構成される。初期状態では、物理アドレス0,1,2,3は、全てイレーズ状態にある。物理アドレス0,1,2,3にデータLA0,LA1,LA2,LA3がライトされると、カウント値は、それぞれ“1”となる。このように、ページ(物理アドレス)単位の書き換え動作を行ない、データ更新が行われた物理アドレスのカウンタ値については、その値を更新していく。最終的に、ブロック内のカウント値の合計が許容値32に達すると、リフレッシュが行われ、ブロック内のメモリセルの状態が初期化される。   Patent Document 4 aims to improve the file rewriting performance by utilizing the page erase function. The block is composed of physical addresses 0, 1, 2, and 3. In the initial state, the physical addresses 0, 1, 2, and 3 are all in the erased state. When data LA0, LA1, LA2, and LA3 are written to physical addresses 0, 1, 2, and 3, the count values are “1”, respectively. In this way, the rewriting operation in units of pages (physical addresses) is performed, and the value of the counter value of the physical address for which data has been updated is updated. Finally, when the sum of the count values in the block reaches the allowable value 32, refresh is performed and the state of the memory cells in the block is initialized.

特許文献5は、磁気抵抗ランダムアクセスメモリ(MRAM)においてデータ誤りを低減するための方法、および、その装置に関するものである。開示された方法では、データビットおよびその誤り訂正符号(ECC)検査ビットを、記憶領域に格納する。その後、データビットおよびECC検査ビットを読み出し、誤りを検出および検査する。次に、カウントに基づいてデータのリフレッシュを開始し、(記憶領域に格納されたデータビットおよびそのECC検査ビットにアクセスし、最後に、記憶領域に対して、データビットおよびECC検査ビットの検査、訂正、および復元を行うことにより、)上記データビットおよびそのECC検査ビットをリフレッシュする。   Patent Document 5 relates to a method and apparatus for reducing data errors in a magnetoresistive random access memory (MRAM). In the disclosed method, data bits and their error correction code (ECC) check bits are stored in a storage area. Thereafter, data bits and ECC check bits are read to detect and check for errors. Next, start refreshing the data based on the count (access the data bits stored in the storage area and its ECC check bits, and finally check the data bits and ECC check bits for the storage area, By correcting and restoring, the data bits and their ECC check bits are refreshed).

特開平6−110742号公報JP-A-6-110742 特開平8−272664号公報JP-A-8-272664 特開平10−31611号公報Japanese Patent Laid-Open No. 10-31611 特開2004−240572号公報JP 2004-240572 A 特表2006−527447号公報JP-T-2006-527447

不揮発性メモリの中には、MRAMのようにデータの書き込み時に、書き込み対象以外の任意のデータを書き換えてしまうライトディスターブと呼ばれる不具合が生じる可能性が高いメモリが存在する。たとえ、データ読出し時にECC回路によって誤り検出/誤り訂正を行なったとしても、MRAMへの書き込み回数が増加するにしたがって、アクセス頻度が低い領域に格納されているデータがアクセスされない間に誤った値に書き換えられてしまう可能性が高くなる。したがって、アクセス頻度が低い領域において多数のビットが誤って書き換えられてしまうことが考えられる。   Among non-volatile memories, there is a memory such as an MRAM that has a high possibility of causing a problem called write disturb that rewrites arbitrary data other than a write target when data is written. Even if error detection / error correction is performed by the ECC circuit at the time of data reading, as the number of times of writing to the MRAM increases, the data stored in the area with low access frequency becomes an incorrect value while it is not accessed. The possibility of being rewritten increases. Therefore, it is conceivable that a large number of bits are erroneously rewritten in an area with low access frequency.

一方、ECC回路は、データの2ビットの誤り検出、1ビットの誤り訂正しか行なえないのが一般的である。したがって、2ビット以上のデータの誤りを訂正することができない。そのため、アクセス頻度が低い領域において多数のビットが誤って書き換えられてしまった場合には、ECC回路を用いたとしてもそれを訂正することができないといった問題があった。   On the other hand, the ECC circuit can generally perform only 2-bit error detection and 1-bit error correction of data. Therefore, it is impossible to correct an error in data of 2 bits or more. For this reason, when a large number of bits are erroneously rewritten in an area with low access frequency, there is a problem that even if an ECC circuit is used, it cannot be corrected.

本発明は、上記問題点を解決するためになされたものであり、その目的は、メモリに格納されるデータの信頼性を向上させるようにメモリを制御するメモリ制御装置を提供することである。   The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a memory control device that controls a memory so as to improve the reliability of data stored in the memory.

本発明の一実施例によれば、データ読出し時にデータの誤り検出および誤り訂正を行なう機能を備えたメモリを制御するメモリ制御装置が提供される。ブロック領域判定部は、MRAMに対するアクセスが、MRAMの複数の領域のどの領域に対するアクセスであるかを判定する。アクセス頻度カウンタ更新部は、ブロック領域判定部によって判定された領域情報に基づいて、複数の領域ごとにアクセスされなかった頻度をカウントする。リフレッシュ領域判定部は、アクセス頻度カウンタ更新部によって複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定する。そして、リフレッシュ実行部は、リフレッシュ領域判定部によってリフレッシュが必要と判定された領域に対して、データ読出しを行なう。   According to an embodiment of the present invention, there is provided a memory control device that controls a memory having a function of detecting and correcting data errors when reading data. The block area determination unit determines which of the plurality of areas of the MRAM is an access to the MRAM. The access frequency counter updating unit counts the frequency of not accessing each of the plurality of regions based on the region information determined by the block region determining unit. The refresh area determination unit determines an area that needs to be refreshed according to the frequency of not accessed which is counted for each of the plurality of areas by the access frequency counter update unit. The refresh execution unit reads data from the area determined to be refreshed by the refresh area determination unit.

この実施例によれば、リフレッシュ領域判定部が、アクセス頻度カウンタ更新部によって複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定するので、データの訂正が不可能となる前に誤ったデータを訂正して書き戻すことができる。したがって、MRAMに格納されるデータの信頼性を向上させることが可能となる。   According to this embodiment, the refresh area determination unit determines the area that needs to be refreshed according to the frequency of not accessed which is counted for each of the plurality of areas by the access frequency counter update unit. You can correct wrong data and write it back before it becomes impossible. Therefore, it is possible to improve the reliability of data stored in the MRAM.

本発明の第1の実施の形態におけるメモリ制御回路を備えたデータ処理装置の構成例を示す図である。It is a figure which shows the structural example of the data processor provided with the memory control circuit in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるリフレッシュ制御回路1の機能的構成を示すブロック図である。FIG. 2 is a block diagram showing a functional configuration of a refresh control circuit 1 in the first embodiment of the present invention. 本発明の第1の実施の形態におけるリフレッシュ制御回路1の処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the refresh control circuit 1 in the 1st Embodiment of this invention. 本発明の第2の実施の形態におけるリフレッシュ制御回路1aの処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the refresh control circuit 1a in the 2nd Embodiment of this invention. 本発明の第3の実施の形態におけるリフレッシュ制御回路1bの処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the refresh control circuit 1b in the 3rd Embodiment of this invention. 本発明の第4の実施の形態におけるリフレッシュ制御回路1cの処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the refresh control circuit 1c in the 4th Embodiment of this invention.

(第1の実施の形態)
図1は、本発明の第1の実施の形態におけるメモリ制御回路を備えたデータ処理装置の構成例を示す図である。なお、データの書込み時に、書込み対象以外の任意のデータを誤って書き換えてしまうライトディスターブを起こす代表的なメモリがMRAMであることから、メモリ装置をMRAMとして説明するが、これに限定されるものではない。
(First embodiment)
FIG. 1 is a diagram illustrating a configuration example of a data processing apparatus including a memory control circuit according to the first embodiment of the present invention. Since a typical memory that causes a write disturb that erroneously rewrites arbitrary data other than the data to be written at the time of data writing is an MRAM, the memory device will be described as an MRAM. However, the present invention is not limited to this. is not.

また、MRAMに格納されるデータを読出し、それが既に誤ったデータに書き換えられている場合に、その誤っているデータを正しいデータに訂正して書き戻す操作をリフレッシュと呼ぶことにする。   In addition, when data stored in the MRAM is read and the data is already rewritten to incorrect data, an operation of correcting the erroneous data to correct data and writing it back is referred to as refresh.

このデータ処理装置は、メモリ制御装置(以下、リフレッシュ制御回路とも呼ぶ。)1と、CPU(Central Processing Unit)11と、ECC回路12と、MRAM13と、アクセスセレクタ14とを含む。   The data processing device includes a memory control device (hereinafter also referred to as a refresh control circuit) 1, a CPU (Central Processing Unit) 11, an ECC circuit 12, an MRAM 13, and an access selector 14.

CPU11は、図示しない内蔵のメモリやMRAM13から命令コードをフェッチして実行することにより、MRAM13に対するデータ書込み/データ読出しを行ないながら処理を行なう。このとき、CPU11は、アドレス信号線101を介してアドレスを出力し、データ信号線201を介してデータの入出力を行なう。   The CPU 11 performs processing while writing / reading data to / from the MRAM 13 by fetching and executing an instruction code from a built-in memory (not shown) or the MRAM 13. At this time, the CPU 11 outputs an address via the address signal line 101 and inputs / outputs data via the data signal line 201.

アクセスセレクタ14は、アドレス信号線101を介してCPU11から出力されるアドレスを受け、アドレス信号線102を介してリフレッシュ制御回路1から出力されるアドレスを受ける。アクセスセレクタ14は、CPU11からMRAM13に対するアクセス要求がある場合に、CPU11からのアドレスを選択してアドレス信号線103を介してECC回路12に出力する。また、リフレッシュ制御回路1からMRAM13に対するアクセス要求がある場合に、リフレッシュ制御回路1からのアドレスを選択してアドレス信号線103を介してECC回路12に出力する。なお、CPU11からのアクセス要求とリフレッシュ制御回路1からのアクセス要求とが競合する場合には、CPU11からのアクセス要求を優先する。   The access selector 14 receives an address output from the CPU 11 via the address signal line 101 and receives an address output from the refresh control circuit 1 via the address signal line 102. When there is an access request from the CPU 11 to the MRAM 13, the access selector 14 selects an address from the CPU 11 and outputs it to the ECC circuit 12 via the address signal line 103. When there is an access request from the refresh control circuit 1 to the MRAM 13, the address from the refresh control circuit 1 is selected and output to the ECC circuit 12 via the address signal line 103. Note that when the access request from the CPU 11 and the access request from the refresh control circuit 1 conflict, the access request from the CPU 11 is given priority.

MRAM13は、データ記憶領域とそれに対応するECCチェックコード記憶領域とを有している。ECC回路12は、CPU11からデータ書込み要求を受けると、データ信号線202を介してデータをMRAM13に出力してデータ書き込みを行なう。このとき、ECC回路12は、ECCチェックコードを計算してMRAM13内のECCチェックコード記憶領域に格納する。   The MRAM 13 has a data storage area and an ECC check code storage area corresponding to the data storage area. When receiving a data write request from the CPU 11, the ECC circuit 12 outputs data to the MRAM 13 through the data signal line 202 and performs data write. At this time, the ECC circuit 12 calculates an ECC check code and stores it in the ECC check code storage area in the MRAM 13.

また、ECC回路12は、CPU11またはリフレッシュ制御回路1からデータ読出し要求を受けると、MRAM13からデータを読み出すと共に、MRAM13内のECCチェックコード記憶領域からECCチェックコードを読み出してデータの誤り検出を行ない、データ誤りがある場合にはデータを訂正して、訂正後のデータとECCチェックコードとをMRAM13に書き戻す。そして、ECC回路12は、データ信号線201を介して訂正後のデータをCPU11に出力する。   When the ECC circuit 12 receives a data read request from the CPU 11 or the refresh control circuit 1, the ECC circuit 12 reads data from the MRAM 13, reads an ECC check code from the ECC check code storage area in the MRAM 13, and performs data error detection. If there is a data error, the data is corrected, and the corrected data and the ECC check code are written back to the MRAM 13. Then, the ECC circuit 12 outputs the corrected data to the CPU 11 via the data signal line 201.

なお、ECC回路12は、データ誤りを検出したときに、リフレッシュ制御回路1に対して誤り検出信号301を出力する。この誤り検出信号301は、後述する第3の実施の形態におけるメモリ制御装置によって使用される。   The ECC circuit 12 outputs an error detection signal 301 to the refresh control circuit 1 when detecting a data error. This error detection signal 301 is used by a memory control device in a third embodiment to be described later.

リフレッシュ制御回路1は、アクセス管理テーブル2と、ライトアクセス定義値レジスタ3とを含む。また、アクセス管理テーブル2は、MRAM13内のデータを格納する領域を複数の領域(以下、ブロックと呼ぶ。)に分割し、ブロックごとにブロック有効ビット21、アクセス頻度カウンタ22、およびブロックアドレス23の情報を保持する。   The refresh control circuit 1 includes an access management table 2 and a write access definition value register 3. Further, the access management table 2 divides an area for storing data in the MRAM 13 into a plurality of areas (hereinafter referred to as blocks), and each block has a block valid bit 21, an access frequency counter 22, and a block address 23. Keep information.

ブロック有効ビット21は、当該ブロックが保持している情報が有効か否かを判定するために用いられる情報である。このブロック有効ビット21は、後述する第4の実施の形態におけるメモリ制御装置によって使用される。   The block valid bit 21 is information used to determine whether the information held by the block is valid. This block valid bit 21 is used by the memory control device in the fourth embodiment to be described later.

アクセス頻度カウンタ22は、当該ブロックがアクセスされなかった頻度を示すカウンタの値である。リフレッシュ制御回路1は、アクセス頻度カウンタ22の値を参照して、当該ブロックに対するリフレッシュを行なうか否かを判定する。   The access frequency counter 22 is a counter value indicating the frequency at which the block is not accessed. The refresh control circuit 1 refers to the value of the access frequency counter 22 to determine whether or not to refresh the block.

ブロックアドレス23は、当該ブロックがMRAM13内のどの領域に対応するかを示す情報であり、CPU11がMRAM13にアクセスするときのアドレスの一部、たとえばCPU11から出力されるアドレスの上位ビットが使用される。   The block address 23 is information indicating which area in the MRAM 13 the block corresponds to, and a part of the address when the CPU 11 accesses the MRAM 13, for example, the upper bits of the address output from the CPU 11 is used. .

ライトアクセス定義値レジスタ3は、MRAM13に対してリフレッシュを開始するための基準値となる書込み回数を保持する。リフレッシュ制御回路1は、アクセス頻度カウンタ22の値がライトアクセス定義値よりも大きいブロックに対してリフレッシュを行なう。なお、このライトアクセス定義値は、後述する第2〜第4の実施の形態におけるメモリ制御装置によって使用される。   The write access definition value register 3 holds the number of times of writing serving as a reference value for starting refreshing the MRAM 13. The refresh control circuit 1 performs refresh on the block in which the value of the access frequency counter 22 is larger than the write access definition value. This write access definition value is used by the memory control device in the second to fourth embodiments described later.

図2は、本発明の第1の実施の形態におけるリフレッシュ制御回路1の機能的構成を示すブロック図である。リフレッシュ制御回路1は、ブロック領域判定部31と、アクセス頻度カウンタ更新部32と、リフレッシュ領域判定部33と、リフレッシュ実行部34とを含む。以下、リフレッシュ制御回路1がハードウェアによって実現される場合について説明するが、図示しないCPUがプログラムを実行することによって、すなわちソフトウェアによってリフレッシュ制御回路1を実現することも可能である。   FIG. 2 is a block diagram showing a functional configuration of the refresh control circuit 1 according to the first embodiment of the present invention. The refresh control circuit 1 includes a block area determination unit 31, an access frequency counter update unit 32, a refresh area determination unit 33, and a refresh execution unit 34. Hereinafter, although the case where the refresh control circuit 1 is realized by hardware will be described, the refresh control circuit 1 can also be realized by a CPU (not shown) executing a program, that is, by software.

ブロック領域判定部31は、CPU11から出力されるアドレスを受けると、アクセス管理テーブル2に格納されるブロックアドレス23を参照して、MRAM13のどの領域に対するアクセスであるかを判定する。   When receiving the address output from the CPU 11, the block area determination unit 31 refers to the block address 23 stored in the access management table 2 and determines which area of the MRAM 13 is to be accessed.

アクセス頻度カウンタ更新部32は、CPU11からMRAM13へのアクセス要求およびリフレッシュ制御回路1からMRAM13へのアクセス要求に応じて、アクセス管理テーブル2に格納される各ブロックのアクセス頻度カウンタ22の値を更新する。   The access frequency counter updating unit 32 updates the value of the access frequency counter 22 of each block stored in the access management table 2 in response to an access request from the CPU 11 to the MRAM 13 and an access request from the refresh control circuit 1 to the MRAM 13. .

リフレッシュ領域判定部33は、アクセス管理テーブル2に格納されるアクセス頻度カウンタ22の値を参照してリフレッシュが必要なブロック領域を判定し、リフレッシュ実行部34に対して当該ブロックのリフレッシュの実行を要求する。   The refresh area determination unit 33 refers to the value of the access frequency counter 22 stored in the access management table 2 to determine a block area that needs to be refreshed, and requests the refresh execution unit 34 to execute the refresh of the block. To do.

リフレッシュ実行部34は、リフレッシュ領域判定部33からリフレッシュの実行要求があったブロックに対するリフレッシュを実行する。具体的には、当該ブロックのブロックアドレス23を参照して、アドレス信号線102を介してアクセスセレクタ14にアドレスを出力すると共に、MRAM13に対して当該ブロックに対するデータ読出し要求を行なう。これによって、ECC回路12は、MRAM13からデータを読み出すと共に、MRAM13内のECCチェックコード記憶領域からECCチェックコードを読み出してデータの誤り検出を行ない、データ誤りがある場合にはデータを訂正して、訂正後のデータとECCチェックコードとをMRAM13に書き戻す。   The refresh execution unit 34 performs a refresh on the block for which a refresh execution request has been received from the refresh area determination unit 33. Specifically, referring to the block address 23 of the block, the address is output to the access selector 14 via the address signal line 102 and a data read request for the block is made to the MRAM 13. As a result, the ECC circuit 12 reads data from the MRAM 13, reads an ECC check code from the ECC check code storage area in the MRAM 13, performs data error detection, corrects the data if there is a data error, The corrected data and the ECC check code are written back to the MRAM 13.

図3は、本発明の第1の実施の形態におけるリフレッシュ制御回路1の処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、アクセス頻度カウンタ更新部32は、アクセス管理テーブル2に格納される全ブロックのアクセス頻度カウンタ22をリセットして“0”とする(S11)。   FIG. 3 is a flowchart for explaining the processing procedure of the refresh control circuit 1 according to the first embodiment of the present invention. First, when the data processing apparatus is activated, the access frequency counter updating unit 32 resets the access frequency counters 22 of all the blocks stored in the access management table 2 to “0” (S11).

次に、ブロック領域判定部31は、CPU11からMRAM13に対するデータ書込み要求があるか否かを判定する(S12)。データ書込み要求がある場合には(S12,Yes)、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部32に出力する(S13)。   Next, the block area determination unit 31 determines whether or not there is a data write request from the CPU 11 to the MRAM 13 (S12). If there is a data write request (S12, Yes), the address information output from the CPU 11 and the block address 23 stored in the access management table 2 are collated to determine which block the data is written to, The information is output to the access frequency counter updating unit 32 (S13).

次に、アクセス頻度カウンタ更新部32は、該当ブロックのアクセス頻度カウンタ22をリセットし(S14)、それ以外の全ブロックのアクセス頻度カウンタ22の値を“1”だけインクリメントし(S15)、ステップS19に処理が進む。   Next, the access frequency counter updating unit 32 resets the access frequency counter 22 of the corresponding block (S14), increments the value of the access frequency counter 22 of all other blocks by "1" (S15), and step S19 The process proceeds.

また、CPU11からMRAM13に対するデータ書込み要求がなければ(S12,No)、ブロック領域判定部31は、CPU11からMRAM13に対するデータ読出し要求があるか否かを判定する(S16)。データ読出し要求がない場合には(S16,No)、ステップS12に戻って以降の処理を繰り返す。   If there is no data write request from the CPU 11 to the MRAM 13 (S12, No), the block area determination unit 31 determines whether there is a data read request from the CPU 11 to the MRAM 13 (S16). If there is no data read request (S16, No), the process returns to step S12 and the subsequent processing is repeated.

また、データ読出し要求がある場合には(S16,Yes)、ブロック領域判定部31は、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部32に出力する(S17)。そして、アクセス頻度カウンタ更新部32は、該当ブロックのアクセス頻度カウンタ22をリセットし(S18)、ステップS19に処理が進む。   When there is a data read request (S16, Yes), the block area determination unit 31 collates the address information output from the CPU 11 with the block address 23 stored in the access management table 2, and to which block It is determined whether it is data reading, and the information is output to the access frequency counter updating unit 32 (S17). Then, the access frequency counter updating unit 32 resets the access frequency counter 22 of the corresponding block (S18), and the process proceeds to step S19.

ステップS19において、リフレッシュ領域判定部33は、アクセス管理テーブル2に格納されるアクセス頻度カウンタ22の値を参照して、カウント値が大きいブロックを抽出し、リフレッシュ実行部34に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部32に対して該当ブロックに関する情報を出力する。   In step S <b> 19, the refresh area determination unit 33 refers to the value of the access frequency counter 22 stored in the access management table 2, extracts a block having a large count value, and refreshes the corresponding block with respect to the refresh execution unit 34. And information on the block is output to the access frequency counter updating unit 32.

ここで、リフレッシュ領域判定部33は、最もアクセス頻度カウンタ22の値が大きいブロックをリフレッシュ対象のブロックに決定してもよいし、アクセス頻度カウンタ22の値が大きい複数のブロックをリフレッシュ対象のブロックに決定してもよい。また、リフレッシュ領域判定部33は、ステップS19の処理に移行した回数をカウントし、何回かに1回だけ最もアクセス頻度カウンタ22の値が大きいブロックをリフレッシュ対象のブロックに決定するようにしてもよい。   Here, the refresh area determination unit 33 may determine the block with the largest access frequency counter 22 as the refresh target block, or set a plurality of blocks with the large access frequency counter 22 as the refresh target blocks. You may decide. In addition, the refresh area determination unit 33 counts the number of times of transition to the process of step S19, and determines the block having the largest access frequency counter 22 value as the refresh target block only once every several times. Good.

アクセス頻度カウンタ更新部32は、リフレッシュ領域判定部33によってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ22をリセットし(S20)、ステップS12に戻って以降の処理を繰り返す。   The access frequency counter update unit 32 resets the access frequency counter 22 corresponding to the block to be refreshed by the refresh area determination unit 33 (S20), returns to step S12, and repeats the subsequent processing.

このように、CPU11がMRAM13へのデータ書込みおよびデータ読出しを繰り返すことによって、各ブロックのアクセス頻度カウンタ22の値が変化する。そして、MRAM13に対するデータ書込みが増えると、その間、データ書込みもデータ読出しも行なわれていないブロックのアクセス頻度カウンタ22の値が増加することになる。   As described above, the CPU 11 repeatedly writes data to and reads data from the MRAM 13, thereby changing the value of the access frequency counter 22 of each block. When data writing to the MRAM 13 increases, the value of the access frequency counter 22 of the block in which neither data writing nor data reading is performed increases.

すなわち、アクセス頻度カウンタ22の値が大きいブロックは暫くの間アクセスが行なわれておらず、MRAM13内で保持される当該ブロックのデータにおいてライトディスターブによるデータの誤りが生じている可能性が高い。そこで、リフレッシュ制御回路1は、アクセス頻度カウンタ22の値が大きい順に当該ブロックに対してデータ読出し要求を行なう。   That is, a block having a large value of the access frequency counter 22 has not been accessed for a while, and there is a high possibility that a data error due to write disturb has occurred in the data of the block held in the MRAM 13. Therefore, the refresh control circuit 1 makes a data read request to the block in descending order of the value of the access frequency counter 22.

以上説明したように、本実施の形態におけるメモリ制御装置によれば、アクセス頻度カウンタ22の値が大きいブロックの順にリフレッシュを行なうようにしたので、アクセス頻度が少ないブロックに対して意図的に読出しを行なうことができる。したがって、データの訂正が不可能となる前にECC回路12によって誤ったデータを訂正して書き戻すことができ、MRAM13に格納するデータの信頼性を高めることが可能となった。   As described above, according to the memory control device of the present embodiment, since refresh is performed in the order of the block with the largest access frequency counter 22, the read is intentionally performed on the block with the low access frequency. Can be done. Therefore, before the correction of the data becomes impossible, the ECC circuit 12 can correct the erroneous data and write it back, and the reliability of the data stored in the MRAM 13 can be improved.

(第2の実施の形態)
上述した第1の実施の形態においては、アクセス頻度カウンタ22の値の相対関係によってリフレッシュを行なうブロックを決定していたため、ライトディスターブを起こすほど書込みが行なわれていないブロックに対してもリフレッシュが行なわれてしまうことが考えられる。
(Second Embodiment)
In the first embodiment described above, since the block to be refreshed is determined by the relative relationship of the value of the access frequency counter 22, the refresh is also performed on the block that has not been written to the extent that write disturb occurs. It is thought that it will be.

本発明の第2の実施の形態においては、アクセス頻度カウンタ22の値が一定値を超えたブロックに対してリフレッシュを行ない、ライトディスターブを起こす程度に書込みが行なわれているブロックのデータの信頼性を高めるものである。   In the second embodiment of the present invention, the reliability of the data of a block in which writing is performed to such an extent that refresh is performed on a block whose access frequency counter 22 exceeds a certain value and write disturb occurs. It is what raises.

本発明の第2の実施の形態におけるデータ処理装置の構成は、図1に示す第1の実施の形態におけるデータ処理装置の構成と同様である。また、本発明の第2の実施の形態におけるリフレッシュ制御回路の機能的構成は、図2に示す第1の実施の形態におけるリフレッシュ制御回路の機能的構成と比較して、リフレッシュ領域判定部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、リフレッシュ制御回路およびリフレッシュ領域判定部の参照符号をそれぞれ1aおよび33aとして説明する。   The configuration of the data processing apparatus in the second embodiment of the present invention is the same as the configuration of the data processing apparatus in the first embodiment shown in FIG. Further, the functional configuration of the refresh control circuit in the second embodiment of the present invention is different from the functional configuration of the refresh control circuit in the first embodiment shown in FIG. Only the difference. Therefore, detailed description of overlapping configurations and functions will not be repeated. Note that the reference numerals of the refresh control circuit and the refresh area determination unit are 1a and 33a, respectively.

図4は、本発明の第2の実施の形態におけるリフレッシュ制御回路1aの処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、アクセス頻度カウンタ更新部32は、アクセス管理テーブル2に格納される全ブロックのアクセス頻度カウンタ22をリセットして“0”とする(S31)。このとき、ライトアクセス定義値レジスタ3に、リフレッシュ動作を開始する基準を予め規定した値が設定される。CPU11がライトアクセス定義値レジスタ3に値を設定するようにしてもよいし、リフレッシュ制御回路1が起動時にライトアクセス定義レジスタ3に所定の値を設定するようにしてもよい。   FIG. 4 is a flowchart for explaining the processing procedure of the refresh control circuit 1a according to the second embodiment of the present invention. First, when the data processing apparatus is activated, the access frequency counter updating unit 32 resets the access frequency counters 22 of all the blocks stored in the access management table 2 to “0” (S31). At this time, a value that predefines the reference for starting the refresh operation is set in the write access definition value register 3. The CPU 11 may set a value in the write access definition value register 3, or the refresh control circuit 1 may set a predetermined value in the write access definition register 3 at startup.

次に、ブロック領域判定部31は、CPU11からMRAM13に対するデータ書込み要求があるか否かを判定する(S32)。データ書込み要求がある場合には(S32,Yes)、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部32に出力する(S33)。   Next, the block area determination unit 31 determines whether or not there is a data write request from the CPU 11 to the MRAM 13 (S32). When there is a data write request (S32, Yes), the address information output from the CPU 11 and the block address 23 stored in the access management table 2 are collated to determine which block the data is written to, The information is output to the access frequency counter updating unit 32 (S33).

次に、アクセス頻度カウンタ更新部32は、該当ブロックのアクセス頻度カウンタ22をリセットし(S34)、それ以外の全ブロックのアクセス頻度カウンタ22の値を“1”だけインクリメントし(S35)、ステップS39に処理が進む。   Next, the access frequency counter updating unit 32 resets the access frequency counter 22 of the corresponding block (S34), increments the value of the access frequency counter 22 of all other blocks by “1” (S35), and step S39. The process proceeds.

また、CPU11からMRAM13に対するデータ書込み要求がなければ(S32,No)、ブロック領域判定部31は、CPU11からMRAM13に対するデータ読出し要求があるか否かを判定する(S36)。データ読出し要求がない場合には(S36,No)、ステップS32に戻って以降の処理を繰り返す。   If there is no data write request from the CPU 11 to the MRAM 13 (S32, No), the block area determination unit 31 determines whether there is a data read request from the CPU 11 to the MRAM 13 (S36). If there is no data read request (S36, No), the process returns to step S32 and the subsequent processing is repeated.

また、データ読出し要求がある場合には(S36,Yes)、ブロック領域判定部31は、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部32に出力する(S37)。そして、アクセス頻度カウンタ更新部32は、該当ブロックのアクセス頻度カウンタ22をリセットし(S38)、ステップS39に処理が進む。   When there is a data read request (S36, Yes), the block area determination unit 31 collates the address information output from the CPU 11 with the block address 23 stored in the access management table 2 to determine which block. It is determined whether it is data reading, and the information is output to the access frequency counter updating unit 32 (S37). Then, the access frequency counter updating unit 32 resets the access frequency counter 22 of the corresponding block (S38), and the process proceeds to step S39.

ステップS39において、リフレッシュ領域判定部33aは、ライトアクセス定義値レジスタ3およびアクセス管理テーブル2に格納されるアクセス頻度カウンタ22の値を参照して、アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックがあるか否かを判定する。   In step S39, the refresh area determination unit 33a refers to the value of the access frequency counter 22 stored in the write access definition value register 3 and the access management table 2, and the value of the access frequency counter 22 exceeds the write access definition value. It is determined whether there is a block.

アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックがなければ(S39,No)、ステップS32に戻って以降の処理を繰り返す。また、アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックがあれば(S39,Yes)、リフレッシュ実行部34に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部32に対して該当ブロックに関する情報を出力する(S40)。   If there is no block in which the value of the access frequency counter 22 exceeds the write access definition value (S39, No), the process returns to step S32 and the subsequent processing is repeated. If there is a block in which the value of the access frequency counter 22 exceeds the write access definition value (S39, Yes), the refresh execution unit 34 refreshes the corresponding block and the access frequency counter update unit 32 The information regarding the corresponding block is output (S40).

アクセス頻度カウンタ更新部32は、リフレッシュ領域判定部33aによってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ22をリセットし(S41)、ステップS32に戻って以降の処理を繰り返す。   The access frequency counter update unit 32 resets the access frequency counter 22 corresponding to the block to be refreshed by the refresh area determination unit 33a (S41), returns to step S32, and repeats the subsequent processing.

以上説明したように、本実施の形態におけるメモリ制御装置によれば、アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックに対してリフレッシュを行なうようにしたので、第1の実施の形態において説明した効果に加えて、さらにMRAM13に格納するデータの信頼性を高めることが可能となった。   As described above, according to the memory control apparatus of the present embodiment, since the block whose access frequency counter 22 exceeds the write access definition value is refreshed, the first embodiment In addition to the effects described in (1), the reliability of the data stored in the MRAM 13 can be further increased.

(第3の実施の形態)
上述した第2の実施の形態においては、ライトアクセス定義値レジスタ3に設定されたリフレッシュを開始するための基準値が低い場合には、ライトディスターブを起こすほど書込みが行なわれていない段階でもブロックに対するリフレッシュが行なわれてしまうことが考えられる。
(Third embodiment)
In the second embodiment described above, when the reference value for starting refresh set in the write access definition value register 3 is low, the block is written even when the writing is not performed to the extent that write disturb occurs. It is conceivable that refresh is performed.

逆に、ライトアクセス定義値レジスタ3に設定された基準値が高い場合には、リフレッシュが必要になっている状態であるにもかかわらず、ブロックに対するリフレッシュが行なわれないことが考えられる。   On the contrary, when the reference value set in the write access definition value register 3 is high, it is considered that the block is not refreshed even though the refresh is necessary.

本発明の第3の実施の形態においては、ライトアクセス定義値レジスタ3の値を動的に変更させて、ライトディスターブを起こす可能性が高くなっているブロックに対してリフレッシュを行なうものである。   In the third embodiment of the present invention, the value of the write access definition value register 3 is dynamically changed to refresh a block that is highly likely to cause a write disturb.

本発明の第3の実施の形態におけるデータ処理装置の構成は、図1に示す第1の実施の形態におけるデータ処理装置の構成と同様である。また、本発明の第3の実施の形態におけるリフレッシュ制御回路の機能的構成は、図2に示す第1の実施の形態におけるリフレッシュ制御回路の機能的構成と比較して、リフレッシュ領域判定部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、リフレッシュ制御回路およびリフレッシュ領域判定部の参照符号をそれぞれ1bおよび33bとして説明する。   The configuration of the data processing apparatus in the third embodiment of the present invention is the same as the configuration of the data processing apparatus in the first embodiment shown in FIG. Further, the functional configuration of the refresh control circuit in the third embodiment of the present invention is different from the functional configuration of the refresh control circuit in the first embodiment shown in FIG. Only the difference. Therefore, detailed description of overlapping configurations and functions will not be repeated. Note that the reference numerals of the refresh control circuit and the refresh area determination unit are 1b and 33b, respectively.

図5は、本発明の第3の実施の形態におけるリフレッシュ制御回路1bの処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、アクセス頻度カウンタ更新部32は、アクセス管理テーブル2に格納される全ブロックのアクセス頻度カウンタ22をリセットして“0”とする(S51)。このとき、第2の実施の形態と同様に、ライトアクセス定義値レジスタ3に、リフレッシュ動作を開始する基準を予め規定した値が設定される。   FIG. 5 is a flowchart for explaining the processing procedure of the refresh control circuit 1b according to the third embodiment of the present invention. First, when the data processing apparatus is activated, the access frequency counter updating unit 32 resets the access frequency counters 22 of all the blocks stored in the access management table 2 to “0” (S51). At this time, as in the second embodiment, the write access definition value register 3 is set to a value that predefines the reference for starting the refresh operation.

次に、ブロック領域判定部31は、CPU11からMRAM13に対するデータ書込み要求があるか否かを判定する(S52)。データ書込み要求がある場合には(S52,Yes)、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部32に出力する(S53)。   Next, the block area determination unit 31 determines whether or not there is a data write request from the CPU 11 to the MRAM 13 (S52). If there is a data write request (S52, Yes), the address information output from the CPU 11 and the block address 23 stored in the access management table 2 are collated to determine which block the data is written to, The information is output to the access frequency counter update unit 32 (S53).

次に、アクセス頻度カウンタ更新部32は、該当ブロックのアクセス頻度カウンタ22をリセットし(S54)、それ以外の全ブロックのアクセス頻度カウンタ22の値を“1”だけインクリメントし(S55)、ステップS59に処理が進む。   Next, the access frequency counter updating unit 32 resets the access frequency counter 22 of the corresponding block (S54), increments the value of the access frequency counter 22 of all other blocks by “1” (S55), and step S59. The process proceeds.

また、CPU11からMRAM13に対するデータ書込み要求がなければ(S52,No)、ブロック領域判定部31は、CPU11からMRAM13に対するデータ読出し要求があるか否かを判定する(S56)。データ読出し要求がない場合には(S56,No)、ステップS52に戻って以降の処理を繰り返す。   If there is no data write request from the CPU 11 to the MRAM 13 (S52, No), the block area determination unit 31 determines whether there is a data read request from the CPU 11 to the MRAM 13 (S56). If there is no data read request (S56, No), the process returns to step S52 and the subsequent processing is repeated.

また、データ読出し要求がある場合には(S56,Yes)、ブロック領域判定部31は、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部32に出力する(S57)。そして、アクセス頻度カウンタ更新部32は、該当ブロックのアクセス頻度カウンタ22をリセットし(S58)、ステップS59に処理が進む。   When there is a data read request (S56, Yes), the block area determination unit 31 collates the address information output from the CPU 11 with the block address 23 stored in the access management table 2, and for which block It is determined whether it is data reading, and the information is output to the access frequency counter updating unit 32 (S57). Then, the access frequency counter updating unit 32 resets the access frequency counter 22 of the corresponding block (S58), and the process proceeds to step S59.

ステップS59において、リフレッシュ領域判定部33bは、ライトアクセス定義値レジスタ3およびアクセス管理テーブル2に格納されるアクセス頻度カウンタ22の値を参照して、アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックがあるか否かを判定する。   In step S59, the refresh area determination unit 33b refers to the values of the access frequency counter 22 stored in the write access definition value register 3 and the access management table 2, and the value of the access frequency counter 22 exceeds the write access definition value. It is determined whether there is a block.

アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックがなければ(S59,No)、ステップS52に戻って以降の処理を繰り返す。また、アクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックがあれば(S59,Yes)、リフレッシュ実行部34に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部32に対して該当ブロックに関する情報を出力する(S60)。   If there is no block in which the value of the access frequency counter 22 exceeds the write access definition value (S59, No), the process returns to step S52 and the subsequent processing is repeated. If there is a block in which the value of the access frequency counter 22 exceeds the write access definition value (S59, Yes), the refresh execution unit 34 refreshes the corresponding block and the access frequency counter update unit 32 The information about the corresponding block is output (S60).

アクセス頻度カウンタ更新部32は、リフレッシュ領域判定部33bによってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ22をリセットする(S61)。   The access frequency counter update unit 32 resets the access frequency counter 22 corresponding to the block to be refreshed by the refresh area determination unit 33b (S61).

次に、リフレッシュ領域判定部33bは、ECC回路12から出力される誤り検出信号301を受け、データ誤りがあったか否かの情報を取得する(S62)。   Next, the refresh area determination unit 33b receives the error detection signal 301 output from the ECC circuit 12 and acquires information indicating whether or not there is a data error (S62).

次に、リフレッシュ領域判定部33bは、データ誤りがあったか否かに応じて、ライトアクセス定義値レジスタ3の値を修正し(S63)、ステップS52に戻って以降の処理を繰り返す。たとえば、データ誤りがなかった場合には、現在のライトアクセス定義値が小さいと判断して、より大きな値に修正する。また、データ誤りがあった場合には、現在のライトアクセス定義値が大きいと判断して、より小さな値に修正する。   Next, the refresh area determination unit 33b corrects the value of the write access definition value register 3 according to whether or not there is a data error (S63), returns to step S52, and repeats the subsequent processing. For example, if there is no data error, it is determined that the current write access definition value is small, and is corrected to a larger value. If there is a data error, it is determined that the current write access definition value is large and is corrected to a smaller value.

以上説明したように、本実施の形態におけるメモリ制御装置によれば、データ誤りがあったか否かによってライトアクセス定義値を修正するようにしたので、第2の実施の形態において説明した効果に加えて、MRAM13に対するリフレッシュをさらに適切に行なうことが可能となった。   As described above, according to the memory control device of the present embodiment, the write access definition value is modified depending on whether or not there is a data error. In addition to the effects described in the second embodiment, Thus, it becomes possible to perform the refresh to the MRAM 13 more appropriately.

(第4の実施の形態)
第1〜第3の実施の形態においては、ブロックにデータが書き込まれているか否かにかかわらず、暫くの間データ書込みが行なわれていないブロックに対してリフレッシュを行なうものであった。しかしながら、未だデータが書き込まれていないブロックに対してはデータの誤りが生じていても特に問題とはならない。
(Fourth embodiment)
In the first to third embodiments, regardless of whether or not data is written in the block, the block in which data is not written for a while is refreshed. However, there is no particular problem even if a data error occurs in a block to which data has not yet been written.

本発明の第4の実施の形態においては、ブロック有効ビット21を用いて既にデータが書き込まれているブロックであるか否かも判定して、不要なリフレッシュ動作を行なわないようにするものである。   In the fourth embodiment of the present invention, the block valid bit 21 is used to determine whether or not the block has already been written with data, thereby preventing unnecessary refresh operations.

本発明の第4の実施の形態におけるデータ処理装置の構成は、図1に示す第1の実施の形態におけるデータ処理装置の構成と同様である。また、本発明の第4の実施の形態におけるリフレッシュ制御回路の機能的構成は、図2に示す第1の実施の形態におけるリフレッシュ制御回路の機能的構成と比較して、ブロック領域判定部およびリフレッシュ領域判定部の機能のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、リフレッシュ制御回路、ブロック領域判定部、アクセス頻度カウンタ更新部およびリフレッシュ領域判定部の参照符号をそれぞれ1c、31c、32cおよび33cとして説明する。   The configuration of the data processing apparatus in the fourth embodiment of the present invention is the same as the configuration of the data processing apparatus in the first embodiment shown in FIG. In addition, the functional configuration of the refresh control circuit in the fourth embodiment of the present invention is different from the functional configuration of the refresh control circuit in the first embodiment shown in FIG. Only the function of the area determination unit is different. Therefore, detailed description of overlapping configurations and functions will not be repeated. Note that the reference numerals of the refresh control circuit, the block area determination unit, the access frequency counter update unit, and the refresh area determination unit will be described as 1c, 31c, 32c, and 33c, respectively.

図6は、本発明の第4の実施の形態におけるリフレッシュ制御回路1cの処理手順を説明するためのフローチャートである。まず、データ処理装置が起動されると、ブロック領域判定部31cは、全ブロックのブロック有効ビット21の情報を無効とし、アクセス頻度カウンタ更新部32cは、アクセス管理テーブル2に格納される全ブロックのアクセス頻度カウンタ22をリセットして“0”とする(S71)。   FIG. 6 is a flowchart for explaining the processing procedure of the refresh control circuit 1c according to the fourth embodiment of the present invention. First, when the data processing apparatus is activated, the block area determination unit 31c invalidates the information of the block valid bits 21 of all blocks, and the access frequency counter update unit 32c stores all the blocks stored in the access management table 2. The access frequency counter 22 is reset to “0” (S71).

次に、ブロック領域判定部31cは、CPU11からMRAM13に対するデータ書込み要求があるか否かを判定する(S72)。データ書込み要求がある場合には(S72,Yes)、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ書込みであるかを判定し、その情報をアクセス頻度カウンタ更新部32cに出力する(S73)。   Next, the block area determination unit 31c determines whether or not there is a data write request from the CPU 11 to the MRAM 13 (S72). When there is a data write request (S72, Yes), the address information output from the CPU 11 and the block address 23 stored in the access management table 2 are collated to determine which block the data is written to, The information is output to the access frequency counter updating unit 32c (S73).

次に、アクセス頻度カウンタ更新部32cは、該当ブロックのアクセス頻度カウンタ22をリセットする(S74)。そして、ブロック領域判定部31cは、該当ブロックのブロック有効ビット21の情報を無効から有効に変更する(S75)。   Next, the access frequency counter updating unit 32c resets the access frequency counter 22 of the corresponding block (S74). Then, the block area determination unit 31c changes the information of the block valid bit 21 of the corresponding block from invalid to valid (S75).

次に、アクセス頻度カウンタ更新部32は、それ以外の全ブロックのうちブロック有効ビット21が有効となっているブロックのアクセス頻度カウンタ22の値のみを“1”だけインクリメントし(S76)、ステップS80に処理が進む。   Next, the access frequency counter updating unit 32 increments only the value of the access frequency counter 22 of the block in which the block valid bit 21 is valid among all the other blocks by “1” (S76), and step S80. The process proceeds.

また、CPU11からMRAM13に対するデータ書込み要求がなければ(S72,No)、ブロック領域判定部31cは、CPU11からMRAM13に対するデータ読出し要求があるか否かを判定する(S77)。データ読出し要求がない場合には(S77,No)、ステップS72に戻って以降の処理を繰り返す。   If there is no data write request from the CPU 11 to the MRAM 13 (S72, No), the block area determination unit 31c determines whether there is a data read request from the CPU 11 to the MRAM 13 (S77). If there is no data read request (S77, No), the process returns to step S72 and the subsequent processing is repeated.

また、データ読出し要求がある場合には(S77,Yes)、ブロック領域判定部31cは、CPU11から出力されるアドレス情報とアクセス管理テーブル2に格納されるブロックアドレス23とを照合し、どのブロックに対するデータ読み出しであるかを判定し、その情報をアクセス頻度カウンタ更新部32cに出力する(S78)。そして、アクセス頻度カウンタ更新部32cは、該当ブロックのアクセス頻度カウンタ22をリセットし(S79)、ステップS80に処理が進む。   When there is a data read request (S77, Yes), the block area determination unit 31c collates the address information output from the CPU 11 with the block address 23 stored in the access management table 2, and to which block It is determined whether it is data reading, and the information is output to the access frequency counter updating unit 32c (S78). Then, the access frequency counter updating unit 32c resets the access frequency counter 22 of the corresponding block (S79), and the process proceeds to step S80.

ステップS80において、リフレッシュ領域判定部33cは、リフレッシュを行なうべきブロックがあるか否かを判定する。この処理は、第1の実施の形態において説明したアクセス頻度カウンタ22の値が大きいブロックの順にリフレッシュを行なうべきブロックであると判定する方法を用いてもよいし、第2および第3の実施の形態において説明したアクセス頻度カウンタ22の値がライトアクセス定義値を超えたブロックをリフレッシュを行なうべきブロックであると判定する方法を用いてもよい。   In step S80, the refresh area determination unit 33c determines whether there is a block to be refreshed. This process may use the method of determining that the blocks to be refreshed in the order of the block having the largest value of the access frequency counter 22 described in the first embodiment, or the second and third embodiments. A method may be used in which a block in which the value of the access frequency counter 22 described in the embodiment exceeds the write access definition value is determined as a block to be refreshed.

リフレッシュを行なうべきブロックがなければ(S80,No)、ステップS72に戻って以降の処理を繰り返す。また、リフレッシュを行なうべきブロックがあれば(S80,Yes)、リフレッシュ実行部34に対して該当ブロックのリフレッシュを行なわせると共に、アクセス頻度カウンタ更新部32cに対して該当ブロックに関する情報を出力する(S81)。   If there is no block to be refreshed (S80, No), the process returns to step S72 and the subsequent processing is repeated. If there is a block to be refreshed (S80, Yes), the refresh execution unit 34 is caused to refresh the block, and information on the block is output to the access frequency counter update unit 32c (S81). ).

アクセス頻度カウンタ更新部32cは、リフレッシュ領域判定部33cによってリフレッシュ対象とされたブロックに対応するアクセス頻度カウンタ22をリセットし(S82)、ステップS72に戻って以降の処理を繰り返す。   The access frequency counter updating unit 32c resets the access frequency counter 22 corresponding to the block to be refreshed by the refresh area determination unit 33c (S82), returns to step S72, and repeats the subsequent processing.

以上説明したように、本実施の形態におけるメモリ制御装置によれば、ブロック有効ビット21を用いて既にデータが書き込まれているブロックであるか否かも判断してリフレッシュを行なうか否かを判定するようにしたので、不要なリフレッシュ動作が行なわれるのを防止することが可能となった。   As described above, according to the memory control device of the present embodiment, it is determined whether refresh is performed by determining whether or not the block has already been written using the block valid bit 21. As a result, unnecessary refresh operations can be prevented from being performed.

今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

1 リフレッシュ制御回路、2 アクセス管理テーブル、3 ライトアクセス定義レジスタ、11 CPU、12 ECC回路、13 MRAM、14 アクセスセレクタ、21 ブロック有効ビット、22 アクセス頻度カウンタ、23 ブロックアドレス、31 ブロック領域判定部、32 アクセス頻度カウンタ更新部、33 リフレッシュ領域判定部、34 リフレッシュ実行部、101,102,103,104 アドレス信号線、201,202 データ信号線。   1 refresh control circuit, 2 access management table, 3 write access definition register, 11 CPU, 12 ECC circuit, 13 MRAM, 14 access selector, 21 block valid bit, 22 access frequency counter, 23 block address, 31 block area determination unit, 32, access frequency counter update unit, 33 refresh area determination unit, 34 refresh execution unit, 101, 102, 103, 104 address signal line, 201, 202 data signal line.

Claims (6)

データ読出し時にデータの誤り検出および誤り訂正を行なう機能を備えたメモリを制御するメモリ制御装置であって、
前記メモリに対するアクセスが、該メモリの複数の領域のどの領域に対するアクセスであるかを判定する第1の領域判定手段と、
前記第1の領域判定手段によって判定された領域情報に基づいて、前記複数の領域ごとにアクセスされなかった頻度をカウントするカウント手段と、
前記カウント手段によって前記複数の領域ごとにカウントされたアクセスされなかった頻度に応じて、リフレッシュが必要な領域を判定する第2の領域判定手段と、
前記第2の領域判定手段によってリフレッシュが必要と判定された領域に対して、データ読出しを行なうリフレッシュ実行手段とを含む、メモリ制御装置。
A memory control device for controlling a memory having a function of performing error detection and error correction of data at the time of data reading,
First area determination means for determining which of a plurality of areas of the memory is an access to the memory;
Counting means for counting the frequency of not accessing each of the plurality of areas based on the area information determined by the first area determining means;
Second area determination means for determining an area that needs to be refreshed according to the frequency of not being accessed counted for each of the plurality of areas by the counting means;
A memory control apparatus comprising: refresh execution means for reading data from an area determined to be refreshed by the second area determination means.
前記カウント手段は、データ読出しがあった領域に対応する前記頻度をリセットし、
データ書込みがあった領域に対応する前記頻度をリセットし、それ以外の領域に対応する前記頻度をインクリメントする、請求項1記載のメモリ制御装置。
The counting means resets the frequency corresponding to the area where data was read,
The memory control device according to claim 1, wherein the frequency corresponding to an area where data has been written is reset and the frequency corresponding to other areas is incremented.
前記第2の領域判定手段は、前記カウント手段によって前記複数の領域ごとにカウントされたアクセスされなかった頻度が大きい順に、リフレッシュが必要な領域と判定する、請求項1または2記載のメモリ制御装置。   3. The memory control device according to claim 1, wherein the second area determination unit determines the areas that need to be refreshed in descending order of the frequency of not being accessed counted for each of the plurality of areas by the counting unit. . 前記第2の領域判定手段は、前記カウント手段によって前記複数の領域ごとにカウントされたアクセスされなかった頻度が基準値よりも大きい領域を、リフレッシュが必要な領域と判定する、請求項1または2記載のメモリ制御装置。   3. The second area determination unit determines an area where the frequency of non-access counted for each of the plurality of areas by the counting unit is larger than a reference value as an area that needs to be refreshed. The memory control device described. 前記第2の領域判定手段は、前記リフレッシュ実行手段によってデータ読出しが行なわれたときに、データ誤りがあった場合には前記基準値を変更する、請求項4記載のメモリ制御装置。   5. The memory control device according to claim 4, wherein the second area determination means changes the reference value when there is a data error when data is read by the refresh execution means. 前記第1の領域判定手段は、データ書込みがあった領域に対応する有効ビットの情報を無効から有効に変更し、
前記第2の領域判定手段は、有効ビットが有効となっている領域のみをリフレッシュ対象の領域とし、有効ビットが無効となっている領域をリフレッシュ対象の領域から除外する、請求項1〜5のいずれかに記載のメモリ制御装置。
The first area determination means changes the information of the valid bit corresponding to the area where data has been written from invalid to valid,
6. The second area determination unit according to claim 1, wherein only the area where the valid bit is valid is set as a refresh target area, and the area where the valid bit is invalid is excluded from the refresh target area. The memory control device according to any one of the above.
JP2009210279A 2009-09-11 2009-09-11 Memory control device Pending JP2011060082A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009210279A JP2011060082A (en) 2009-09-11 2009-09-11 Memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009210279A JP2011060082A (en) 2009-09-11 2009-09-11 Memory control device

Publications (2)

Publication Number Publication Date
JP2011060082A true JP2011060082A (en) 2011-03-24
JP2011060082A5 JP2011060082A5 (en) 2012-04-12

Family

ID=43947623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009210279A Pending JP2011060082A (en) 2009-09-11 2009-09-11 Memory control device

Country Status (1)

Country Link
JP (1) JP2011060082A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115354A (en) * 2014-12-15 2016-06-23 インフィネオン テクノロジーズ アーゲーInfineon Technologies Ag Nonvolatile memory refresh
WO2016194175A1 (en) * 2015-06-03 2016-12-08 株式会社日立製作所 Storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160837A (en) * 1995-12-07 1997-06-20 Ricoh Co Ltd Memory check system
JP4267682B1 (en) * 2008-06-04 2009-05-27 株式会社ハギワラシスコム NAND flash memory refresh method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160837A (en) * 1995-12-07 1997-06-20 Ricoh Co Ltd Memory check system
JP4267682B1 (en) * 2008-06-04 2009-05-27 株式会社ハギワラシスコム NAND flash memory refresh method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016115354A (en) * 2014-12-15 2016-06-23 インフィネオン テクノロジーズ アーゲーInfineon Technologies Ag Nonvolatile memory refresh
US9595354B2 (en) 2014-12-15 2017-03-14 Infineon Technologies Ag Nonvolatile memory refresh
WO2016194175A1 (en) * 2015-06-03 2016-12-08 株式会社日立製作所 Storage system

Similar Documents

Publication Publication Date Title
JP4722839B2 (en) MEMORY CONTROL CIRCUIT, NONVOLATILE MEMORY DEVICE, AND MEMORY CONTROL METHOD
US7765426B2 (en) Emerging bad block detection
US8453021B2 (en) Wear leveling in solid-state device
KR100954731B1 (en) Interface for a block addressable mass storage system
US20090228634A1 (en) Memory Controller For Flash Memory
KR102240261B1 (en) Memory management
US10268546B2 (en) Non-volatile memory devices and controllers
JP2004258946A (en) Memory card
JP2009037317A (en) Memory controller, non-volatile storage device using the same, and non-volatile memory system
US9430159B2 (en) Non-volatile memory devices and controllers
JP2004220068A (en) Memory card and method for writing data in memory
JP2011060082A (en) Memory control device
CN112084532A (en) Storage device and operation method of storage device
JP2016151922A (en) Memory control device and memory control method
CN118506847B (en) Method for detecting memory storage device and non-transient computer readable recording medium
US20240152289A1 (en) Storage device and method thereof
JP6267497B2 (en) Semiconductor memory control device and unstable memory region detection method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131029