JP2016151922A - Memory control device and memory control method - Google Patents
Memory control device and memory control method Download PDFInfo
- Publication number
- JP2016151922A JP2016151922A JP2015029459A JP2015029459A JP2016151922A JP 2016151922 A JP2016151922 A JP 2016151922A JP 2015029459 A JP2015029459 A JP 2015029459A JP 2015029459 A JP2015029459 A JP 2015029459A JP 2016151922 A JP2016151922 A JP 2016151922A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- block
- information
- data
- read
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 293
- 238000000034 method Methods 0.000 title claims abstract description 178
- 238000012545 processing Methods 0.000 claims description 56
- 238000001514 detection method Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 description 19
- 230000010365 information processing Effects 0.000 description 16
- 230000004913 activation Effects 0.000 description 11
- 238000012790 confirmation Methods 0.000 description 8
- 230000006866 deterioration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
Description
本発明は、メモリに対してデータのアクセスを行うメモリ制御装置及びメモリ制御方法に関する。 The present invention relates to a memory control device and a memory control method for accessing data to a memory.
近年、メモリ容量の増大化に伴い、ビット単価で優れているNAND型フラッシュメモリが普及している。かかるNAND型フラッシュメモリでは、大容量化、高集積化に伴い、書き込んだデータの経年劣化の問題や、集中した読出し動作によりデータが正しく読み出せなくなるという問題が顕著化している。これらの問題は、データ保持を担う電荷が年数経過に伴い低下することや、読み出し動作に伴う隣接メモリセルへの微量な電荷蓄積によって保存データが破壊されてしまうことによって、生じるものである。 In recent years, with an increase in memory capacity, NAND flash memories that are superior in bit unit price have become widespread. In such a NAND flash memory, with the increase in capacity and integration, the problems of aging degradation of written data and the problem that data cannot be read correctly due to concentrated read operations have become prominent. These problems are caused by the fact that the charge for data retention decreases with the passage of years, and the stored data is destroyed due to a small amount of charge accumulation in the adjacent memory cells accompanying the read operation.
そこで、このような不具合を回避すべく、データの誤りを訂正する誤り訂正符号(ECC:Error Correcting Code)をデータに付加してデータとともに書き込み、これを読み出すことによりデータの誤り箇所を訂正する処理が行われる。しかし、訂正符号を用いて訂正できるビット数には限界があり、限界以上のビット数のエラーが発生した場合には訂正を行うことができない。そのため、訂正できるビット数が限界に達する前に誤りを検出し、訂正を行う必要がある。そこで、訂正できるビット数の限界前に誤りを検出する方法として、通常のデータ読出しがなされていないときにメモリチェックを行い、リフレッシュ処理を行う必要があるかどうか判別する装置が考えられた(例えば、特許文献1)。 Therefore, in order to avoid such a problem, an error correcting code (ECC) for correcting an error in data is added to the data and written together with the data, and the error is corrected by reading the data. Is done. However, there is a limit to the number of bits that can be corrected using the correction code, and correction cannot be performed when an error with the number of bits exceeding the limit occurs. Therefore, it is necessary to detect and correct an error before the number of correctable bits reaches the limit. Therefore, as a method for detecting an error before the limit of the number of bits that can be corrected, an apparatus for performing a memory check when normal data reading is not performed and determining whether it is necessary to perform refresh processing has been considered (for example, Patent Document 1).
かかる装置においては、メモリの待機時(アイドリング時)にメモリチェックを行って、リフレッシュ処理が必要な領域を判別する。しかしながら、メモリチェックの開始時点でメモリが待機状態であったとしても、その後、メモリチェック処理の最中にデータ読み出しが要求される場合がある。このような場合には、メモリチェック処理が完了してからデータの読み出し処理を行う必要があるため、データの読出し処理が遅延する等、メモリの動作が阻害されてしまうという問題があった。 In such an apparatus, a memory check is performed during memory standby (idling) to determine an area that requires refresh processing. However, even if the memory is in a standby state at the start of the memory check, data read may be requested during the memory check process thereafter. In such a case, since it is necessary to perform the data read process after the memory check process is completed, there is a problem that the operation of the memory is hindered, for example, the data read process is delayed.
また、特定のメモリセルへのアクセスが集中した場合、アクセスが集中したメモリセルだけではなく、同じメモリブロック内の隣接するメモリセルにビットエラーが多く発生する場合があり、エラーチェックを実行した時には既に誤り訂正符号で訂正できる限界以上のビット数のエラーが生じている可能性があるという問題があった。 In addition, when access to a specific memory cell is concentrated, many bit errors may occur not only in the memory cell where access is concentrated but also in adjacent memory cells in the same memory block. There has been a problem that there may be an error in the number of bits that exceeds the limit that can be corrected with an error correction code.
本発明は、上記問題を解決するべくなされたものであり、メモリの動作を阻害することなく、メモリのエラーチェック及びリフレッシュ処理を行うことが可能なメモリ制御装置及びメモリ制御方法を提供することを目的とする。 The present invention has been made to solve the above problems, and provides a memory control device and a memory control method capable of performing a memory error check and refresh process without hindering the operation of the memory. Objective.
本発明に係るメモリ制御装置は、メモリに対してデータの書込又は読出制御を行うメモリ制御装置であって、前記メモリに接続され、前記メモリに対して前記データの書込み又は読出しを行うインタフェース部と、前記メモリを構成する複数のブロックの各々に対するデータの読出し回数をブロックアクセス回数情報として記憶する記憶部と、前記ブロックアクセス回数情報に基づいて、前記メモリの前記複数のブロックのうちデータの読出し回数が第1の閾値を越えているブロックに対してリフレッシュ処理を行う制御部と、を有することを特徴とする。 A memory control device according to the present invention is a memory control device that performs data write or read control on a memory, and is an interface unit that is connected to the memory and performs data write or read on the memory And a storage unit for storing the number of times of reading data for each of the plurality of blocks constituting the memory as block access number information, and reading of data among the plurality of blocks of the memory based on the block access number information And a control unit that performs a refresh process on a block whose number of times exceeds a first threshold value.
また、本発明に係るメモリ制御方法は、メモリに対してデータの書込又は読出制御を行うメモリ制御方法であって、前記メモリを構成する複数のブロックの各々に対するデータの読出し回数をブロックアクセス回数情報として記憶するステップと、前記ブロックアクセス回数情報に基づいて、前記メモリの前記複数のブロックのうちデータの読出し回数が第1の閾値を越えているブロックに対してリフレッシュ処理を行うステップと、を含むことを特徴とする。 According to another aspect of the present invention, there is provided a memory control method for performing data write or read control on a memory, wherein the number of times data is read from each of a plurality of blocks constituting the memory is set to the number of block accesses. Storing as information, and performing refresh processing on a block in which the number of times of reading data exceeds a first threshold among the plurality of blocks of the memory based on the block access count information, It is characterized by including.
本発明においては、メモリ内の各メモリブロックへのアクセス回数に応じて、リフレッシュ処理及びメモリチェック処理を行うか否かを判別する。そして、アクセス回数が所定の閾値を越えている場合にのみ、リフレッシュ処理又はメモリチェック処理を行う。アクセス回数の少ないメモリブロックに対しては処理を行わないため、メモリチェック及びリフレッシュ処理に要する時間を短縮することができる。 In the present invention, it is determined whether or not to perform refresh processing and memory check processing according to the number of accesses to each memory block in the memory. The refresh process or the memory check process is performed only when the access count exceeds a predetermined threshold. Since processing is not performed for memory blocks with a small number of accesses, the time required for memory check and refresh processing can be shortened.
また、リセット信号を受信した際、このリセット信号がパワーオンリセット信号であるか否かを判別し、パワーオンリセット信号を受けたと判別した場合のみ、メモリチェック処理及びリフレッシュ処理を行うか否かの判別を行う。これにより、電源投入直後以外のリセット時にはメモリチェック及びリフレッシュ処理の為の待機状態が無いため、フラッシュメモリに対して高速アクセスを行うことが可能となる。 Further, when receiving the reset signal, it is determined whether or not the reset signal is a power-on reset signal. Only when it is determined that the power-on reset signal has been received, whether or not to perform the memory check process and the refresh process. Make a decision. As a result, since there is no standby state for memory check and refresh processing at the time of reset other than immediately after power-on, high-speed access to the flash memory can be performed.
よって、本発明によれば、メモリの動作を阻害することなく、メモリのエラーチェック及びリフレッシュ処理を行うことが可能となる。 Therefore, according to the present invention, it is possible to perform a memory error check and refresh process without hindering the operation of the memory.
以下、本発明の実施例を図面を参照しつつ詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図1は、本発明に係るメモリ制御装置を含む情報処理装置10の構成を示すブロック図である。図1に示すように、情報処理装置10は、CPU(Central Processing Unit)11、インタフェース部12、RAM(Random Access Memory)13、フラッシュメモリ14、CPUバス15、パワーオンリセット生成部16、オアゲート17及び内部リセット生成部18を含む。
FIG. 1 is a block diagram showing a configuration of an
CPU11は、CPUバス15を介してインタフェース部12、RAM13及び内部リセット生成部18に接続されている。CPU11は、CPUバス15及びインタフェース部12を介してフラッシュメモリ14に対してデータの読出し・書き込みアクセスを行う。
The CPU 11 is connected to the interface unit 12, the
すなわち、CPU11は、フラッシュメモリ14に格納されているプログラムデータ(図示せず)、つまり情報処理装置10の主機能を実現する為の主プログラムをインタフェース部12を介して読み出し、この主プログラムに従った主制御を実行する制御部である。更に、CPU11は、フラッシュメモリ14に格納されているリフレッシュプログラムデータ及びメモリチェックプログラムデータをインタフェース部12を介して読み出し、このリフレッシュプログラムデータに従ったリフレッシュ処理及びメモリチェックプログラムデータに従ったメモリチェック処理を実行する。このリフレッシュ処理は、対象のメモリブロックから符号化データ片を読み出し、誤り訂正処理を施して異なるメモリブロックに書き込む処理である。またメモリチェック処理は、フラッシュメモリ14内に記憶されたデータを正しく読み出せるか否かを検査する処理である。尚、リフレッシュ処理及びメモリチェック処理の詳細については後述する。
That is, the CPU 11 reads out program data (not shown) stored in the
インタフェース部12は、エラー検出訂正部20、ステータスレジスタ21及びメモリチェック領域指定レジスタ22を含む。エラー検出訂正部20は、後述するメモリチェック処理の対象となるメモリブロック(以下、単にブロックと称する)のチェック対象のページ(以下、オフセットページと称する)に含まれるエラーを検出する。また、エラー検出訂正部20は、指定されたブロックについて、エラーの訂正を行う。ステータスレジスタ21は、エラー検出訂正部20が検出したエラーのビット数等の情報を保持する。メモリチェック領域指定レジスタ22は、メモリチェック処理の対象として指定されたメモリ領域を示す情報を保持する。また、インタフェース部12は、フラッシュメモリ14に対する読み出し、書き込み等のアクセス用の制御情報を有する。インタフェース部12が有するこれらの制御情報は、リセット信号Rに応じてリセット(初期化)される。
The interface unit 12 includes an error detection /
RAM13は、記憶部としてのパワーオンリセットチェック領域30を含む。パワーオンリセットチェック領域30には、電源投入後の最初のリセット信号であるパワーオンリセット信号PRを受信したことを示す情報として例えば1バイトの値「0x5A」(パワーオンリセット済コード)が、CPU11によって書き込まれる。一旦「0x5A」が書き込まれると、パワーオンリセットチェック領域30は、電源がオフになるまで「0x5A」の値を保持する。また、RAM13には、ページ/ブロック情報31が格納される。ページ/ブロック情報31は、図2(a)に示すように、ブロックアクセス回数情報301、リフレッシュ対象ブロック情報302、メモリチェック対象ブロック情報303及びメモリチェック対象オフセットページ情報304を含む。
The
フラッシュメモリ14は、図3(a)に示すように、1ブロックがK個のページ1〜K(K;自然数)からなる、L個のブロック1〜L(L;自然数)のアクセス領域に区分けされている。また、フラッシュメモリ14は、管理情報40を記憶する領域を有する。管理情報40は、図2(b)に示すように、ブロックアクセス回数情報401、リフレッシュ対象ブロック情報402及びメモリチェック対象ブロック情報403を含む。
As shown in FIG. 3A, the
ブロックアクセス回数情報301及び401は、フラッシュメモリ14の各ブロックに対するリードアクセスの累積回数をブロック毎に示す情報である。尚、ブロックアクセス回数情報の更新処理については後述する。
The block
パワーオンリセット生成部16は、情報処理装置10の電源投入時に1パルスのリセット信号PR(第1リセット信号)を生成し、これをオアゲート17に供給する。内部リセット生成部18は、主制御の実行時に発令されたリセット要求指令、又はプログラムタイマ(図示せず)によるタイムアウトエラーに応じて1パルスのリセット信号IR(第2リセット信号)を生成し、これをオアゲート17に供給する。オアゲート17は、パワーオンリセット生成部16からリセット信号PRが供給された場合には、これをリセット信号R(初期化信号)としてCPU11及びインタフェース部12に供給する。また、オアゲート17は、内部リセット生成部18からリセット信号IRが供給された場合には、これをリセット信号RとしてCPU11及びインタフェース部12に供給する。
The power-on
CPU11は、リセット信号Rに応じて、図4に示す起動チェックルーチンに従って、起動チェック処理を実行する。起動チェック処理は、リフレッシュ処理、メモリチェック処理及びこれらの処理を行うか否かの判定処理を含む処理である。 In accordance with the reset signal R, the CPU 11 executes a start check process according to the start check routine shown in FIG. The activation check process is a process including a refresh process, a memory check process, and a process for determining whether to perform these processes.
まず、CPU11は、RAM13のパワーオンリセットチェック領域30に保持されている値が「0x5A」であるか否かを判定する(ステップS1)。ステップS1においてパワーオンリセットチェック領域30に保持されている値が「0x5A」であると判定された場合、CPU11は、受信したリセット信号Rがパワーオンリセット信号PRに基づくものではないと判定して、この起動チェックルーチンを終了する。他方、ステップS1においてパワーオンリセットチェック領域30に「0x5A」が保持されていないと判定した場合、CPU11は、受信したリセット信号Rがパワーオンリセット信号PRに基づくものであると判定して、RAM13のパワーオンリセットチェック領域30に「0x5A」を書き込む(ステップS2)。
First, the CPU 11 determines whether or not the value held in the power-on
次に、CPU11は、インタフェース部12を介してフラッシュメモリ14から図2(b)に示す管理情報40を読み出し、これをページ/ブロック情報31としてRAM13に書き込む(ステップS3)。これにより、管理情報40中のブロックアクセス回数情報401が、ブロックアクセス回数情報301としてRAM13に格納される。また、管理情報40中のリフレッシュ対象ブロック情報402が、リフレッシュ対象ブロック情報302としてRAM13に格納される。さらに、メモリチェック対象ブロック情報403が、メモリチェック対象ブロック情報303としてRAM13に格納される。
Next, the CPU 11 reads the
CPU11は、RAM13に格納されているブロックアクセス回数情報301に基づき、フラッシュメモリ14内の対象ブロック(例えば、ブロック1)のリードアクセスの回数が第1のアクセス閾値TA1を越えているか否か、すなわちTA1よりも大きいか否かを判定する(ステップS4)。なお、このステップS4における判定は、リフレッシュ対象ブロック情報の追加及び保存処理を経て、ブロック1〜ブロックLの全てのブロックについて行われる。
Based on the block
ステップS4の判定の結果、対象ブロックのリードアクセスの回数が第1のアクセス閾値TA1よりも大きかった場合、CPU11は、当該ブロックをリフレッシュ対象ブロックとして、リフレッシュ対象ブロック情報302に追加する(ステップS5)。また、CPU11は、当該情報をリフレッシュ対象ブロック情報402としてフラッシュメモリ14に保存する(ステップS6)。
As a result of the determination in step S4, when the number of read accesses of the target block is larger than the first access threshold TA1, the CPU 11 adds the block as a refresh target block to the refresh target block information 302 (step S5). . Further, the CPU 11 stores the information as the refresh
一方、ステップS4の判定の結果、対象ブロックのリードアクセスの回数が第1のアクセス閾値TA1を越えていなかった場合、CPU11は、対象ブロックのリードアクセスの回数が第2のアクセス閾値TA2(TA2<TA1)よりも大きいか否かを判定する(ステップS7)。 On the other hand, if it is determined in step S4 that the number of read accesses of the target block does not exceed the first access threshold TA1, the CPU 11 determines that the number of read accesses of the target block is the second access threshold TA2 (TA2 <TA It is determined whether it is larger than TA1) (step S7).
ステップS7の判定の結果、対象ブロックのリードアクセスの回数が第2のアクセス閾値TA2よりも大きかった場合、CPU11は、当該ブロックをメモリチェックの対象領域として、インタフェース部12のメモリチェック領域指定レジスタ22に設定する(ステップS8)。ステップS8の実行後、CPU11は、メモリチェックの対象ブロックについて、図5に示すメモリチェック対象オフセットページの更新処理を実行する(ステップS9)。 As a result of the determination in step S7, when the number of read accesses of the target block is larger than the second access threshold TA2, the CPU 11 sets the block as a memory check target area and the memory check area designation register 22 of the interface unit 12. (Step S8). After execution of step S8, the CPU 11 executes the update process of the memory check target offset page shown in FIG. 5 for the memory check target block (step S9).
図5は、かかるメモリチェック対象オフセットページ更新処理のルーチンを示すフローチャートである。CPU11は、まずRAM13に記憶されているメモリチェック対象オフセットページ情報304にて示される番号を1だけインクリメントした番号を、新たなメモリチェック対象オフセットページを示すページ番号としてRAM13のメモリチェック対象オフセットページ情報304に上書き記憶させる(ステップS21)。例えば、ページ番号「N」が記憶されていた場合、これに1をインクリメントしたページ番号「N+1」を新たなページ番号として上書き記憶させる。次に、CPU11は、インクリメントされたページ番号が最終ページの番号Kを超えたか否かの判定を行う(ステップS22)。ステップS22において最終ページの番号Kを超えたと判定された場合、つまりメモリチェック対象ブロック内でのメモリチェック処理が全て終了している場合には、CPU11は、RAM13に記憶されているメモリチェック対象オフセットページ情報304のページ番号を0に設定する(ステップS23)。
FIG. 5 is a flowchart showing a routine of such memory check target offset page update processing. The CPU 11 first uses the number obtained by incrementing the number indicated by the memory check target offset
図4におけるメモリチェック対象オフセットページ情報更新処理(ステップS9)の実行後、CPU11は、指定メモリ領域のメモリ読み出しチェック処理(メモリチェック処理)を実行する(ステップS10)。 After execution of the memory check target offset page information update process (step S9) in FIG. 4, the CPU 11 executes a memory read check process (memory check process) for the specified memory area (step S10).
すなわち、CPU11は、フラッシュメモリ14内のアドレスを指定して、読み出し指令信号をインタフェース部12に供給する。インタフェース部12は、かかる読み出し指令信号に応じて、指定されたアドレスに対応したページに記憶されている符号化データ片を、フラッシュメモリ14から読み出す。インタフェース部12のエラー検出訂正部20は、かかる符号化データ片に対してエラー検出処理を実行し、エラービットの数を示すエラー情報を生成する。CPU11は、かかるエラー情報を、エラーの検出された符号化データ片が保持されているフラッシュメモリ14内のブロックの番号と対応付けて、インタフェース部12のステータスレジスタ21に記憶させる。
That is, the CPU 11 specifies an address in the
なお、メモリチェック処理は、図3(b)に示すように、ページ数をインクリメントしつつ、対象ブロック(例えば、ブロックM)のKページ目までの全てのページについて行われる。 As shown in FIG. 3B, the memory check process is performed for all pages up to the Kth page of the target block (for example, block M) while incrementing the number of pages.
CPU11は、ステップS10の指定メモリ領域のメモリ読出しチェック処理中に、図6に示すようなエラー発生確認処理を実行する。 The CPU 11 executes an error occurrence confirmation process as shown in FIG. 6 during the memory read check process for the designated memory area in step S10.
CPU11は、ステータスレジスタ21に記憶されているエラー情報に基づいて、エラービットの数が第1のエラー閾値TE1を越えているか否か、すなわちTE1よりも大きいか否かを判定する(ステップS31)。この第1のエラー閾値TE1は、誤り訂正処理によって訂正可能なエラービット数の限界値に近い値であり、リフレッシュ処理が必要なビット数の目安となる数値である。
Based on the error information stored in the
エラービットの数が第1のエラー閾値TE1よりも大きいと判定された場合、CPU11は、当該ブロックをRAM13のリフレッシュ対象ブロック情報302に追加する(ステップS32)。また、CPU11は、当該情報をリフレッシュ対象ブロック情報402としてフラッシュメモリ14に保存する(ステップS33)。
When it is determined that the number of error bits is larger than the first error threshold TE1, the CPU 11 adds the block to the refresh
一方、ステップS31においてエラービットの数が第1のエラー閾値TE1を越えていないと判定された場合、CPU11は、エラービットの数が第2のエラー閾値TE2(TE2<TE1)よりも大きいか否かを判定する(ステップS34)。この第2のエラー閾値TE2は、リフレッシュ処理が必要な数には至らないものの経過観測が必要なエラービット数の目安となる数値である。 On the other hand, when it is determined in step S31 that the number of error bits does not exceed the first error threshold TE1, the CPU 11 determines whether or not the number of error bits is larger than the second error threshold TE2 (TE2 <TE1). Is determined (step S34). The second error threshold value TE2 is a numerical value that serves as a guide for the number of error bits that need to be observed, although the number does not require the refresh process.
エラービットの数が第2のエラー閾値TE2を越えていないと判定された場合、CPU11は、RAM13のメモリチェック対象ブロック情報303から当該ブロックをクリアする(ステップS35)。これに対し、エラービットの数が第2のエラー閾値TE2よりも大きいと判定された場合、CPU11は、当該ブロックのクリアを行わない。すなわち、RAM13は従前のメモリチェック対象ブロック情報303をそのまま保持する。
When it is determined that the number of error bits does not exceed the second error threshold TE2, the CPU 11 clears the block from the memory check
図4に示すステップS10において、CPU11は以上のようなエラー発生確認ルーチンを含む指定メモリ領域のメモリ読出しチェック処理を実行する。 In step S10 shown in FIG. 4, the CPU 11 executes a memory read check process for the designated memory area including the error occurrence confirmation routine as described above.
一方、ステップS7において、対象ブロックのリードアクセスの回数が閾値TA2を越えていないと判定された場合、CPU11は対象ブロックがインタフェース部12のメモリチェック領域指定レジスタ22に登録されているか否かを判定する(ステップS11)。この判定処理は、対象ブロックが、例えば前回の起動チェック処理時にメモリチェック処理の対象領域としてレジスタに登録されたにもかかわらず不慮の動作によってメモリチェック処理がなされなかったメモリブロックに該当するか否かを判定する処理である。メモリチェック領域指定レジスタ22に登録されていると判定された場合、CPU11は、ステップS9のメモリチェック対象オフセットページの更新処理の実行に移る。
On the other hand, if it is determined in step S7 that the number of read accesses of the target block does not exceed the threshold TA2, the CPU 11 determines whether or not the target block is registered in the memory check area designation register 22 of the interface unit 12. (Step S11). Whether the target block corresponds to, for example, a memory block that has not been subjected to the memory check process due to an unexpected operation even though it has been registered in the register as the target area for the memory check process during the previous startup check process It is the process which determines. If it is determined that it is registered in the memory check
ステップS11において対象ブロックがメモリチェック領域指定レジスタ22に登録されていないと判定された場合、又はリフレッシュ対象ブロック情報402のフラッシュメモリ14への保存処理(ステップS6)若しくは指定メモリ領域のメモリ読み出しチェック処理(ステップS10)の実行後、CPU11は、ブロックアクセス回数情報オフセットの更新処理を実行する(ステップS12)。
When it is determined in step S11 that the target block is not registered in the memory check
図7は、ブロックアクセス回数情報オフセットの更新処理のルーチンを示すフローチャートである。 FIG. 7 is a flowchart showing a routine for updating the block access count information offset.
CPU11は、まずRAM13に記憶されているブロックアクセス回数情報301にて示される対象ブロック番号を1だけインクリメントした番号を、アクセス回数のチェック対象としての新たなブロック番号として設定する(ステップS41)。例えば、アクセス回数のチェック対象がブロック番号「M」であった場合、これに1をインクリメントしたブロック番号「M+1」を新たなブロック番号として設定する。次に、CPU11は、インクリメントされたブロック番号が最終ブロックの番号Lを超えたか否かの判定を行う(ステップS42)。ステップS42において最終ブロックの番号Lを超えたと判定された場合、つまり全ブロックのアクセス回数のチェックが全て終了している場合には、CPU11は、ブロックアクセス回数情報のオフセットを0に設定する(ステップS43)。
First, the CPU 11 sets a number obtained by incrementing the target block number indicated by the block
CPU11は、ステップS4〜S12のチェック処理が全ブロックについて完了したか否かを判定する(ステップS13)。完了したと判定すると、CPU11は、リフレッシュ処理(ステップS14)の実行に移る。完了していないと判定すると、CPU11は、ステップS4に戻って、ステップS4〜S12の処理を再び実行する。 The CPU 11 determines whether or not the check processing in steps S4 to S12 has been completed for all blocks (step S13). If it is determined that the process has been completed, the CPU 11 proceeds to the execution of the refresh process (step S14). If it determines with having not completed, CPU11 will return to step S4 and will perform the process of step S4-S12 again.
図8は、リフレッシュ処理のルーチンを示すフローチャートである。CPU11は、RAM13のリフレッシュ対象ブロック情報302に基づき、リフレッシュ対象ブロックがあるか否かを判定する(ステップS51)。リフレッシュ対象ブロックがないと判定した場合、CPU11は、このリフレッシュ処理を終了する。
FIG. 8 is a flowchart showing a refresh processing routine. The CPU 11 determines whether there is a refresh target block based on the refresh
リフレッシュ対象ブロックがあると判定した場合、CPU11は、インタフェース部12に対してリフレッシュ処理の実行命令を送出する(ステップS52)。 When determining that there is a block to be refreshed, the CPU 11 sends a refresh processing execution command to the interface unit 12 (step S52).
すなわち、インタフェース部12は、まずリフレッシュ処理の対象ブロックから符号化データ片を読み出す。インタフェース部12のエラー検出訂正部20は、かかる符号化データ片に対して誤り訂正処理を施す。インタフェース部12は、誤り訂正処理の施された1ブロック分の符号化データ片を、当該符号化データ片が保持されていたブロックとは異なるブロックに書き込む。
That is, the interface unit 12 first reads the encoded data piece from the target block for the refresh process. The error detection /
CPU11は、リフレッシュ処理を実施したブロックの番号を、RAM13のリフレッシュ対象ブロック情報302から削除する(ステップS53)。また、CPU11は、当該ブロックの番号のアクセス回数を0に設定して(ステップS54)、RAM13のブロックアクセス回数情報301を更新する。
The CPU 11 deletes the number of the block on which the refresh process has been performed from the refresh
図4に示すリフレッシュ処理(ステップS14)の実行後、CPU11は、インタフェース部12を介してフラッシュメモリ14の管理情報40の更新処理を実行する。この管理情報40の更新処理には、ブロックアクセス回数情報401の更新処理が含まれる。
After executing the refresh process (step S14) shown in FIG. 4, the CPU 11 executes an update process of the
図9は、かかるブロックアクセス回数情報更新処理のルーチンを示すフローチャートである。CPU11は、フラッシュメモリ14に対してリードアクセスがあったか否かを判定する(ステップS61)。リードアクセスがないと判定した場合、CPU11は、このブロックアクセス回数情報更新処理を終了する。 FIG. 9 is a flowchart showing a routine of such block access count information update processing. The CPU 11 determines whether or not there has been a read access to the flash memory 14 (step S61). When determining that there is no read access, the CPU 11 ends the block access count information update process.
リードアクセスがあると判定した場合、CPU11は、リードアクセスがあったブロックのアクセス回数をインクリメントする(ステップS62)。また、CPU11は、全ブロックに対するリードアクセスの回数(全リードアクセス回数)をインクリメントする(ステップS63)。 If it is determined that there is a read access, the CPU 11 increments the access count of the block in which the read access has been made (step S62). In addition, the CPU 11 increments the number of read accesses to all blocks (total number of read accesses) (step S63).
CPU11は、全リードアクセス回数が第3のアクセス閾値TA3を越えたか否かを判定する(ステップS64)。TA3を越えていないと判定すると、CPU11は、このブロックアクセス回数情報更新処理を終了する。一方、TA3を越えていると判定すると、CPU11は、インクリメントしたブロックアクセス回数情報をブロックアクセス回数情報401としてフラッシュメモリ14に保存する(ステップS65)。
The CPU 11 determines whether or not the total number of read accesses has exceeded the third access threshold TA3 (step S64). If it is determined that TA3 has not been exceeded, the CPU 11 ends the block access count information update process. On the other hand, when determining that TA3 is exceeded, the CPU 11 stores the incremented block access count information in the
以上のように、上記した起動チェック処理では、まずフラッシュメモリ14内の各メモリブロックに対するリードアクセスの回数に応じて、対象ブロックに対してリフレッシュ処理及びメモリチェック処理を行うか否かを判別する。そして、リードアクセスの回数が第1のアクセス閾値TA1を越えている場合にはリフレッシュ処理を行い、第1のアクセス閾値TA1は越えていないものの第2のアクセス閾値TA2を越えている場合にはメモリチェック処理を行う。つまり、リードアクセスの回数が第2のアクセス閾値TA2を超えていない場合には、メモリチェック処理及びリフレッシュ処理を行わないようにしたのである。これにより、アクセス回数が少ないメモリブロックに対しては処理がなされないため、メモリチェック処理及びリフレッシュ処理の実行に要する時間を短縮することができる。
As described above, in the above-described start check process, first, it is determined whether or not the refresh process and the memory check process are performed on the target block according to the number of read accesses to each memory block in the
また、上記した起動チェック処理では、RAM13において更新したブロックアクセス回数情報301をブロックアクセス回数情報401としてフラッシュメモリ14に保存する。これにより、前回の起動チェック処理時のブロックアクセス回数及び累積したブロックアクセス情報が取得可能となり、的確なブロックアクセス回数に基づいた起動チェック処理、リフレッシュ処理及びメモリチェック処理の実施が可能となる。
In the activation check process described above, the block
また、上記した起動チェック処理では、RAM13において更新したリフレッシュ対象ブロック情報302をリフレッシュ対象ブロック情報402としてフラッシュメモリ14に保存する。これにより、前回の起動チェック処理時のリフレッシュ対象ブロック情報を取得することができるため、リフレッシュ対象ブロック情報に登録されているものの不慮の動作等により前回の起動チェック時にリフレッシュ処理が実施されなかったブロックに対して、リフレッシュ処理を行うことが可能となる。
In the above-described start check process, the refresh
また、上記した起動チェック処理では、RAM13において更新したメモリチェック対象ブロック情報303をメモリチェック対象ブロック情報403としてフラッシュメモリ14に保存する。これにより、メモリチェック対象ブロック情報に登録されているものの不慮の動作等により前回の起動チェック時にメモリチェック処理が実施されなかったブロックに対して、メモリチェック処理を行うことが可能となる。また、前回の起動チェック処理時のメモリチェック対象ブロック情報から継続してエラービット数が第2のエラー閾値TE2を越えているブロックに対して、メモリチェック処理を行うことが可能となる。
In the above-described start check process, the memory check
また、上記した起動チェック処理では、RAM13のパワーオンリセットチェック領域30に保持されている値に基づき、リセット信号Rがパワーオンリセット信号PRに基づくものであるか否かを判別する。そして、パワーオンリセット信号PRに基づくリセット信号Rを受けた場合のみ、起動チェック処理を行う。つまり、内部リセット信号IRに基づくリセット信号Rを受けた場合は、リフレッシュ処理及びメモリチェック処理を実行するか否かの判定を行わないようにしたのである。これにより、電源投入直後を除き、フラッシュメモリ14へのアクセス時における起動チェック処理、メモリチェック処理及びリフレッシュ処理を実行する為の待機状態が無いため、フラッシュメモリ14に対して常に高速アクセスを行うことが可能となる。さらに、電源投入直後にのみ起動チェック処理、メモリチェック処理及びリフレッシュ処理を行うため、頻繁にこれらの処理を行うことに起因するメモリの劣化を抑えることができる。
In the above-described start check process, it is determined whether or not the reset signal R is based on the power-on reset signal PR based on the value held in the power-on
実施例2にかかる情報処理装置は、各部の構成については図1に示す実施例1の情報処理装置10と同様であり、ブロックアクセス情報の更新処理において実施例1の情報処理装置10と異なる。以下、ブロックアクセス情報の更新処理について説明する。
The information processing apparatus according to the second embodiment is the same as the
図10は、ブロックアクセス回数情報更新処理のルーチンを示すフローチャートである。CPU11は、フラッシュメモリ14に対してリードアクセスがあったか否かを判定する(ステップS71)。リードアクセスがないと判定した場合、CPU11は、このブロックアクセス回数情報更新処理を終了する。 FIG. 10 is a flowchart showing a routine of block access frequency information update processing. The CPU 11 determines whether or not there has been a read access to the flash memory 14 (step S71). When determining that there is no read access, the CPU 11 ends the block access count information update process.
リードアクセスがあると判定した場合、CPU11は、リードアクセスがあったブロックのアクセス回数をインクリメントする(ステップS72)。 If it is determined that there is a read access, the CPU 11 increments the access count of the block that has been accessed (step S72).
CPU11は、リードアクセスがあったブロックのアクセス回数が第4のアクセス閾値TA4を越えたか否かを判定する(ステップS73)。TA4を越えていないと判定すると、CPU11は、このブロックアクセス回数情報更新処理を終了する。一方、TA4を越えていると判定すると、CPU11は、TA4を越えたブロックについてのアクセス回数情報をブロックアクセス回数情報401としてフラッシュメモリ14に保存する(ステップS74)。
The CPU 11 determines whether or not the access count of the block that has undergone read access has exceeded the fourth access threshold TA4 (step S73). If it is determined that TA4 has not been exceeded, the CPU 11 ends the block access count information update process. On the other hand, if it is determined that TA4 has been exceeded, the CPU 11 stores the access count information for the block that has exceeded TA4 in the
以上のように、本実施例においては、リードアクセスの回数が第4のアクセス閾値TA4を越えたブロックについてのみ、ブロックアクセス回数情報の更新及びフラッシュメモリ14への保存を行う。したがって、ブロックアクセス回数情報のオフセットを小さくすることができ、起動チェック処理に要する時間を短縮することができる。また、頻繁に情報の保存を行うことによるメモリの劣化を抑えることができる。
As described above, in the present embodiment, the block access count information is updated and stored in the
実施例2にかかる情報処理装置は、各部の構成については図1に示す実施例1の情報処理装置10と同様であり、ページ/ブロック情報31としてRAM13に格納される情報及び管理情報40としてフラッシュメモリ14に記憶される情報が実施例1の情報処理装置10と異なる。また、実施例1の起動チェック処理と同様のリフレッシュ処理及びメモリチェック処理の判定処理を行う第1のモードの他に、後述する優先メモリチェック処理を行う第2のモードを備える点で実施例1の情報処理装置10と異なる。以下、実施例1と異なる部分及び動作について説明する。
The information processing apparatus according to the second embodiment is the same as the
図11(a)に示すように、RAM13に格納されるページ/ブロック情報31は、301〜304の各情報に加えて、優先メモリチェック対象ブロック情報305及び優先メモリチェック対象オフセットページ情報306を含む。
As shown in FIG. 11A, the page /
図11(b)に示すように、フラッシュメモリ14に記憶される管理情報40は、401〜403の各情報に加えて、チェック対象オフセットページ情報404及び優先メモリチェックブロック情報405を含む。
As illustrated in FIG. 11B, the
CPU11は、リセット信号Rに応じて、図12に示す起動チェックルーチンに従って、第1モード処理又は第2モード処理を実行する。 In response to the reset signal R, the CPU 11 executes the first mode process or the second mode process according to the activation check routine shown in FIG.
まず、CPU11は、RAM13のパワーオンリセットチェック領域30に保持されている値が「0x5A」であるか否かを判定する(ステップS1)。ステップS1においてパワーオンリセットチェック領域30に保持されている値が「0x5A」であると判定された場合、CPU11は、受信したリセット信号Rがパワーオンリセット信号PRに基づくものではないと判定して、この起動チェックルーチンを終了する。他方、ステップS1においてパワーオンリセットチェック領域30に「0x5A」が保持されていないと判定した場合、CPU11は、受信したリセット信号Rがパワーオンリセット信号PRに基づくものであると判定して、RAM13のパワーオンリセットチェック領域30に「0x5A」を書き込む(ステップS2)。
First, the CPU 11 determines whether or not the value held in the power-on
次に、CPU11は、インタフェース部12を介してフラッシュメモリ14から図11(b)に示す管理情報40を読み出し、これをページ/ブロック情報31としてRAM13に書き込む(ステップS3)。これにより、管理情報40中のブロックアクセス回数情報401、リフレッシュ対象ブロック情報402、メモリチェック対象ブロック情報403、チェック対象オフセットページ情報404及び優先メモリチェック対象ブロック情報405が、それぞれブロックアクセス回数情報301、リフレッシュ対象ブロック情報302、メモリチェック対象ブロック情報303、メモリチェック対象オフセットページ情報304及び優先メモリチェック対象ブロック情報305としてRAM13に格納される。
Next, the CPU 11 reads the
CPU11は、RAM13に格納されているブロックアクセス回数情報301に基づき、フラッシュメモリ14内の全ブロックに対するリードアクセスの回数の合計数が第5のアクセス閾値TA5を越えているか否か、すなわちTA5よりも大きいか否かを判定する(ステップS4)。
Based on the block
第5のアクセス閾値TA5を越えていると判定された場合、CPU11は、第1モード処理を実行する(ステップS5)。この第1モード処理は、実施例1における起動チェック処理の図4のステップS4〜S14に相当する処理である。したがって、ここでは第1モード処理についての説明は省略する。 When it is determined that the fifth access threshold TA5 has been exceeded, the CPU 11 executes a first mode process (step S5). This first mode process is a process corresponding to steps S4 to S14 in FIG. 4 of the activation check process in the first embodiment. Therefore, description of the first mode process is omitted here.
一方、全ブロックに対するリードアクセスの回数の合計が第5のアクセス閾値TA5を越えていないと判定された場合、CPU11は、第2モード処理の実行に移る(ステップS6)。 On the other hand, if it is determined that the total number of read accesses to all blocks does not exceed the fifth access threshold TA5, the CPU 11 proceeds to the execution of the second mode process (step S6).
図13は、第2モード処理のルーチンを示すフローチャートである。まず、CPU11は、RAM13に格納されている優先メモリチェック対象ブロック情報305に基づき、フラッシュメモリ14内の対象ブロック(例えば、ブロック1)が優先メモリチェックの対象ブロックか否かを判定する(ステップS11)。なお、このステップS11における判定は、後述するメモリチェック対象ブロック及びオフセットページ情報更新処理を経て、ブロック1〜ブロックLの全てのブロックについて行われる。
FIG. 13 is a flowchart showing a routine of the second mode process. First, based on the priority memory check
ステップS11の判定の結果、対象ブロックが優先メモリチェックの対象ブロックであった場合、CPU11は、当該ブロックを優先メモリチェック対象領域として、インタフェース部12のメモリチェック領域指定レジスタ22に設定する(ステップS12)。ステップS12の実行後、CPU11は、優先メモリチェック対象オフセットページ更新処理の実行に移る(ステップS13)。 As a result of the determination in step S11, if the target block is a target block for the priority memory check, the CPU 11 sets the block as a priority memory check target area in the memory check area designation register 22 of the interface unit 12 (step S12). ). After execution of step S12, the CPU 11 proceeds to execution of a priority memory check target offset page update process (step S13).
図14は、かかる優先メモリチェック対象オフセットページ更新処理のルーチンを示すフローチャートである。CPU11は、まずRAM13に記憶されている優先メモリチェック対象オフセットページ情報306にて示される番号を1だけインクリメントした番号を、新たな優先メモリチェック対象オフセットページを示す番号としてRAM13の優先メモリチェック対象オフセットページ情報306に上書き記憶させる(ステップS21)。例えば、ページ番号「N」が記憶されていた場合、これに1をインクリメントしたページ番号「N+1」を新たなページ番号として上書き記憶させる。次に、CPU11は、インクリメントされたページ番号が最終ページの番号Kを超えたか否かの判定を行う(ステップS22)。ステップS22において最終ページの番号Kを超えたと判定された場合、つまり優先メモリチェック対象ブロック内での優先メモリチェック処理(後述する)が全て終了している場合には、RAM13の優先メモリチェックの対象オフセットページ情報306を初期値にクリアする(ステップS23)。ステップS23の実行後、CPU11は、メモリチェック対象ブロック及びオフセットページ更新処理の実行に移る(ステップS24)。
FIG. 14 is a flowchart showing a routine of such a priority memory check target offset page update process. The CPU 11 first increments the number indicated by the priority memory check target offset
図15は、かかるメモリチェック対象ブロック及びオフセットページ更新処理のルーチンを示すフローチャートである。CPU11は、RAM13に記憶されているメモリチェック対象ブロック情報303が示す番号を1だけインクリメントした番号を、新たなメモリチェック対象ブロックを示す番号としてRAM13に上書き記憶させる(ステップS31)。次に、CPU11は、インクリメントされたブロック番号が最終ブロックの番号Lを超えたか否かの判定を行う(ステップS32)。ステップ32において最終ブロックの番号Lを超えたと判定された場合、つまり通常のメモリチェックの対象ブロックでのメモリチェック処理が一通り完了している場合には、CPU11は、RAM13に記憶されているメモリチェック対象ブロック情報303のブロック番号を0に設定する(ステップS33)。次に、CPU11は、RAM13に記憶されているメモリチェック対象オフセットページ情報304が示すページ番号を1だけインクリメントした番号を、新たなメモリチェック対象オフセットページを示す番号としてRAM13に上書き記憶させる(ステップS34)。次に、CPU11は、インクリメントされたページ番号が最終ページの番号Kを超えたか否かの判定を行う(ステップS35)。ステップ35において最終ページの番号Kを超えたと判定された場合、つまり通常のメモリチェックの対象ブロック内で全てのページについてメモリチェック処理が完了している場合には、CPU11は、RAM13に記憶されているメモリチェック対象オフセットページ情報304のページ番号を0に設定する(ステップS36)。
FIG. 15 is a flowchart showing a routine of such memory check target block and offset page update processing. The CPU 11 overwrites and stores in the RAM 13 a number obtained by incrementing the number indicated by the memory check
ステップS36の実行後、又はステップS32において最終ブロック番号Lを超えていないと判定された場合、あるいはステップS35において最終ページ番号Kを超えていないと判定された場合、CPU11は、図15に示すメモリチェック対象ブロック及びオフセットページ更新ルーチンを抜けて図13のステップS16の実行に移る。 After execution of step S36, or when it is determined in step S32 that the final block number L has not been exceeded, or in step S35 it is determined that the final page number K has not been exceeded, the CPU 11 stores the memory shown in FIG. After exiting the check target block and offset page update routine, the flow proceeds to execution of step S16 in FIG.
一方、図13に示すステップS11において、対象ブロックが優先メモリチェックの対象ブロックではないと判定された場合、CPU11は、当該ブロックを通常のメモリチェック対象領域として、インタフェース部12のメモリチェック領域指定レジスタ22に設定する(ステップS14)。ステップS14の実行後、CPU11は、図15に示すメモリチェック対象ブロック及びオフセットページ情報更新処理の実行に移る(ステップS15)。 On the other hand, if it is determined in step S11 shown in FIG. 13 that the target block is not the target block for the priority memory check, the CPU 11 sets the block as a normal memory check target area and uses the memory check area designation register of the interface unit 12. Is set to 22 (step S14). After execution of step S14, the CPU 11 proceeds to execution of the memory check target block and offset page information update process shown in FIG. 15 (step S15).
図13に示す優先メモリチェック対象オフセットページ情報更新処理(ステップS13)、又はメモリチェック対象ブロック及びオフセットページ情報更新処理(ステップS15)の実行後、CPU11は、指定メモリ領域のメモリ読出しチェック処理(メモリチェック処理)を実行する(ステップS16)。 After executing the priority memory check target offset page information update process (step S13) shown in FIG. 13 or the memory check target block and offset page information update process (step S15), the CPU 11 performs a memory read check process (memory for the specified memory area). Check processing) is executed (step S16).
すなわち、CPU11は、フラッシュメモリ14内のアドレスを指定して、読み出し指令信号をインタフェース部12に供給する。インタフェース部12は、かかる読み出し指令信号に応じて、指定されたアドレスに対応したページに記憶されている符号化データ片を、フラッシュメモリ14から読み出す。インタフェース部12のエラー検出訂正部20は、かかる符号化データ片に対してエラー検出処理を実行し、エラービットの数を示すエラー情報を生成する。CPU11は、かかるエラー情報を、エラーの検出された符号化データ片が保持されているフラッシュメモリ14内のブロックの番号と対応付けて、インタフェース部12のステータスレジスタ21に記憶させる。
That is, the CPU 11 specifies an address in the
なお、メモリチェック処理においては、ブロック番号をインクリメントしつつ読出し及びエラーの検出を行い、例えばブロック1のページN、ブロック2のページN、ブロック3のページN・・・という順番で、全てのブロックの対応するページを対象ページとしてメモリチェックを行う。また、最終ブロックまでメモリチェックが終わるとオフセットページをインクリメントするため、電源投入の度に異なるページに対してメモリチェック処理が行われる。
In the memory check process, reading and error detection are performed while incrementing the block number. For example, all blocks in the order of page N in
これに対し、優先メモリチェック処理においては、優先メモリチェックの対象ブロックに対して、ページ数をインクリメントしつつチェックを行う。これにより、図3(b)に示すように、例えばブロックMの全てのページについてメモリチェックが行われる。 On the other hand, in the priority memory check process, a check is performed while incrementing the number of pages for the target block for the priority memory check. As a result, as shown in FIG. 3B, for example, a memory check is performed on all pages of the block M.
CPU11は、ステップS16の指定メモリ領域のメモリ読出しチェック処理中に、図16に示すようなエラー発生確認処理を実行する。 The CPU 11 executes an error occurrence confirmation process as shown in FIG. 16 during the memory read check process for the designated memory area in step S16.
図16において、CPU11は、ステータスレジスタ21に記憶されているエラー情報に基づいて、エラーが有るか否か、つまりエラービット数が1以上であるか否かを判定する(ステップS41)。エラーが無いと判定した場合、CPU11は、このエラー発生確認処理を終了する。 In FIG. 16, the CPU 11 determines whether or not there is an error, that is, whether or not the number of error bits is 1 or more, based on the error information stored in the status register 21 (step S41). When determining that there is no error, the CPU 11 ends the error occurrence confirmation process.
一方、ステップS41においてエラーが有ると判定した場合、CPU11は、ステータスレジスタ21に記憶されているエラー情報に基づいて、エラービットの数が第3のエラー閾値TE3よりも大きいか否かを判定する(ステップS42)。エラービットの数が第3のエラー閾値TE3よりも大きいと判定された場合、CPU11は、当該ブロックの番号をRAM13の優先メモリチェック対象ブロック情報305に追加する(ステップS43)。次に、CPU11は、エラービットの数が第4のエラー閾値TE4(TE4>TE3)よりも大きいか否かを判定する(ステップS44)。エラービットの数が第4のエラー閾値TE4よりも大きいと判定された場合、CPU11は、当該ブロックの番号をRAM13のリフレッシュ対象ブロック情報302に追加する(ステップS45)。
On the other hand, if it is determined in step S41 that there is an error, the CPU 11 determines whether the number of error bits is larger than the third error threshold TE3 based on the error information stored in the
ステップS45の実行後、又はステップS44においてエラービットの数が第4のエラー閾値TE4以下であると判定された場合、CPU11は、このエラー発生確認ルーチンを終了する。 After execution of step S45, or when it is determined in step S44 that the number of error bits is equal to or less than the fourth error threshold value TE4, the CPU 11 ends the error occurrence confirmation routine.
このエラー発生確認ルーチンを含む指定メモリ領域のメモリ読出しチェック処理(ステップS16)の実行後、CPU11は、メモリ読出しチェックが全ブロックについて完了したか否かを判定する(ステップS17)。完了したと判定すると、CPU11は、リフレッシュ処理(ステップS18)の実行に移る。完了していないと判定すると、CPU11は、ステップS11に戻って、ステップS11〜S16の処理を再び実行する。 After executing the memory read check process (step S16) for the designated memory area including this error occurrence confirmation routine, the CPU 11 determines whether or not the memory read check has been completed for all blocks (step S17). If it is determined that the process has been completed, the CPU 11 proceeds to the execution of the refresh process (step S18). If it determines with having not completed, CPU11 will return to step S11 and will perform the process of step S11-S16 again.
図17は、リフレッシュ処理のルーチンを示すフローチャートである。CPU11は、RAM13のリフレッシュ対象ブロック情報302に基づき、リフレッシュ対象ブロックがあるか否かを判定する(ステップS51)。リフレッシュ対象ブロックがないと判定した場合、CPU11は、このリフレッシュ処理を終了する。
FIG. 17 is a flowchart illustrating a refresh processing routine. The CPU 11 determines whether there is a refresh target block based on the refresh
リフレッシュ対象ブロックがあると判定した場合、CPU11は、インタフェース部12に対してリフレッシュ処理の実行命令を送出する(ステップS52)。 When determining that there is a block to be refreshed, the CPU 11 sends a refresh processing execution command to the interface unit 12 (step S52).
すなわち、インタフェース部12は、まずリフレッシュ処理の対象ブロックから符号化データ片を読み出す。インタフェース部12のエラー検出訂正部20は、かかる符号化データ片に対して誤り訂正処理を施す。インタフェース部12は、誤り訂正処理の施された1ブロック分の符号化データ片を、当該符号化データ片が保持されていたブロックとは異なるブロックに書き込む。
That is, the interface unit 12 first reads the encoded data piece from the target block for the refresh process. The error detection /
CPU11は、リフレッシュ処理を実施したブロックの番号を、RAM13のリフレッシュ対象ブロック情報302から削除する(ステップS53)。また、CPU11は、当該ブロックの番号をRAM13の優先メモリチェック対象ブロック情報305から削除する(ステップS54)。
The CPU 11 deletes the number of the block on which the refresh process has been performed from the refresh
リフレッシュ処理の実行後、CPU11は、図12の管理情報更新処理(ステップS7)を実行する。この管理情報更新処理は、RAM13に格納されたページ/ブロック情報31をフラッシュメモリ14の管理情報40として保存する処理であり、実施例1又は実施例2と同様のブロックアクセス回数情報更新処理を含む。
After executing the refresh process, the CPU 11 executes the management information update process (step S7) of FIG. This management information update process is a process of saving the page /
以上のように、本実施例において、情報処理装置10は、実施例1と同様の処理を行う第1モード処理の他に、優先メモリチェック処理を含む第2モード処理を実行する機能を有する。そして、フラッシュメモリ14の全ブロックに対するリードアクセス回数の合計が所定の閾値(TA5)を越えている場合には第1モード処理を実行し、越えていない場合には第2モード処理を実行する。すなわち、本実施例の情報処理装置10は、アクセス回数が多い場合にはアクセス回数に応じたリフレッシュ処理及びメモリチェック処理を実行し、アクセス回数が少ない場合にはアクセス回数を前提としないメモリチェック処理、優先メモリチェック処理及びリフレッシュ処理を実行する。したがって、メモリに対するアクセスが少ない場合にもメモリチェックを行うことができ、状況に応じた適切なリフレッシュ処理及びメモリチェック処理を実行することができる。
As described above, in this embodiment, the
以上、説明したように、本発明によれば、メモリ内の各メモリブロックに対するリードアクセスの回数に応じて、対象ブロックに対してリフレッシュ処理及びメモリチェック処理を行うか否かを判別する。そして、リードアクセスの回数が所定の閾値を越えている場合にのみ、メモリチェック処理及びリフレッシュ処理を行う。したがって、アクセス回数が少ないメモリブロックに対しては処理がなされないため、メモリチェック処理及びリフレッシュ処理の実行に要する時間を短縮することができる。 As described above, according to the present invention, it is determined whether the refresh process and the memory check process are performed on the target block according to the number of read accesses to each memory block in the memory. Only when the number of read accesses exceeds a predetermined threshold, the memory check process and the refresh process are performed. Therefore, since processing is not performed on a memory block with a small number of accesses, the time required for executing the memory check processing and the refresh processing can be shortened.
また、ブロック単位でのアクセス回数に応じてリフレッシュ処理及びメモリチェック処理を行うため、アクセスが集中しているメモリセルのみならず、これと同じブロック内の隣接するメモリセルに対してもリフレッシュ処理及びメモリチェック処理を行うことができる。 Further, since refresh processing and memory check processing are performed according to the number of accesses in block units, refresh processing and memory processing are performed not only on memory cells where access is concentrated, but also on adjacent memory cells in the same block. Memory check processing can be performed.
また、本発明によれば、パワーオンリセット信号を受けた場合のみ、メモリチェック処理、リフレッシュ処理及びこれらを行うか否かの判定を行うため、電源投入直後以外のリセット時にはメモリチェック及びリフレッシュ処理の為の待機状態が無い。したがって、フラッシュメモリに対して高速アクセスを行うことが可能となる。 In addition, according to the present invention, only when a power-on reset signal is received, the memory check process, the refresh process, and whether to perform these processes are determined. There is no waiting state for Therefore, high speed access to the flash memory can be performed.
なお、上記実施例では、ブロックアクセス回数情報301及び401として、フラッシュメモリ14の各ブロック毎のリードアクセス回数の情報を管理している。しかし、これに限らず、例えばブロックを構成するページ単位や誤り訂正処理における処理データ量の単位でアクセス回数の情報を管理してもよい。
In the above embodiment, as the block
また、上記実施例では、パワーオンリセット信号PRに基づくリセット信号Rの受信時にパワーオンリセットチェック領域30に1バイトの値「0x5A」を書き込み、この値が保持されているか否かによって、受信したリセット信号Rがパワーオンリセット信号PRに基づくものか否かの判定を行っている。しかし、リセット信号Rがパワーオンリセット信号PRに基づくものか否かをパワーオンリセットチェック領域30に所定の値が書き込まれているか否かによって判定できれば良いのであって、書き込む値は「0x5A」に限られない。また、誤認識を防ぐため、例えば1バイトではなく数バイトの値を書き込むことにより、リセット信号Rがパワーオンリセット信号PRに基づくものかどうかの判定を行っても良い。
Further, in the above embodiment, when the reset signal R based on the power-on reset signal PR is received, the 1-byte value “0x5A” is written in the power-on
また、上記実施例では、フラッシュメモリ14が管理情報40を記憶している。しかし、インタフェース部12と接続された不揮発性メモリ等をフラッシュメモリとは別に設け、当該不揮発性メモリ等に管理情報40を記憶させる構成であってもよい。
In the above embodiment, the
また、上記実施例では、メモリチェック処理について、フラッシュメモリ14内に記憶されたデータを正しく読み出せるか否かを検査する処理として説明したが、これに加えて、データを正しく書き込めるか否かを検査する処理を行っても良い。
In the above embodiment, the memory check process has been described as a process for checking whether or not the data stored in the
また、上記実施例3では、全ブロックに対するアクセス回数が第5のアクセス閾値TA5を越えているか否かに応じて、第1モード処理と第2モード処理のいずれかが選択される構成として説明した。しかし、これに限られず、アクセス回数が所定の閾値を越えているブロックが存在するか否かに応じて、第1モード処理又は第2モード処理を選択する構成であってもよい。また、情報処理装置10の電源投入後にユーザがいずれかのモードを選択し、その選択に応じていずれかの処理を実行する構成であってもよい。また、ユーザの選択をインタフェース部12内のレジスタに予め記憶しておき、電源投入後にこれを参照してモードを決定する構成であってもよい。
In the third embodiment, the description has been given of the configuration in which one of the first mode processing and the second mode processing is selected depending on whether the number of accesses to all blocks exceeds the fifth access threshold TA5. . However, the present invention is not limited to this, and the first mode process or the second mode process may be selected depending on whether there is a block whose access count exceeds a predetermined threshold. Alternatively, the user may select any mode after power-on of the
10 情報処理装置
11 CPU
12 インタフェース部
13 RAM
14 フラッシュメモリ
15 CPUバス
16 パワーオンリセット生成部
17 オアゲート
18 内部リセット生成部
20 エラー検出訂正部
21 ステータスレジスタ
22 メモリチェック領域指定レジスタ
30 パワーオンリセットチェック領域
31 ページ/ブロック情報
40 管理情報
10 Information processing apparatus 11 CPU
12
14
Claims (10)
前記メモリに接続され、前記メモリに対して前記データの書込み又は読出しを行うインタフェース部と、
前記メモリを構成する複数のブロックの各々に対するデータの読出し回数をブロックアクセス回数情報として記憶する記憶部と、
前記ブロックアクセス回数情報に基づいて、前記メモリの前記複数のブロックのうちデータの読出し回数が第1の閾値を越えているブロックに対してリフレッシュ処理を行う制御部と、
を有することを特徴とするメモリ制御装置。 A memory control device that performs data write or read control on a memory,
An interface unit connected to the memory and writing or reading the data to or from the memory;
A storage unit for storing, as block access number information, the number of times data is read for each of a plurality of blocks constituting the memory;
Based on the block access count information, a control unit that performs a refresh process on a block in which the number of data reads exceeds a first threshold among the plurality of blocks of the memory;
A memory control device comprising:
前記制御部は、前記複数のブロックのうち前記エラービット数が所定のエラー閾値を超えたデータを含むブロックに対して、前記リフレッシュ処理を行なうことを特徴とする請求項2に記載のメモリ制御装置。 The memory check process includes an error detection process for generating information indicating the number of error bits by performing error detection on the data read from the memory,
The memory control device according to claim 2, wherein the control unit performs the refresh process on a block including data in which the number of error bits exceeds a predetermined error threshold among the plurality of blocks. .
リセット要求に応じて第2リセット信号を生成する第2リセット信号生成部と、
前記第1リセット信号又は前記第2リセット信号を、前記インタフェース部が有する前記書込み又は読出しの制御情報を初期化する初期化信号として、前記インタフェース部に送出する初期化信号供給部と、
を有し、
前記制御部は、前記初期化信号に応じて前記インタフェース部の前記制御情報が初期化された後に、前記初期化信号が前記第1リセット信号に基づくものであるか否かを判定し、前記第1リセット信号に基づくものであると判定した場合に、前記ブロックアクセス回数情報に基づいて、前記メモリの各々のブロックの前記データの読出し回数が前記第1の閾値又は前記第2の閾値を越えているか否かの判定を行うことを特徴とする請求項2又は3に記載のメモリ制御装置。 A first reset signal generator for generating a first reset signal in response to power-on;
A second reset signal generator for generating a second reset signal in response to the reset request;
An initialization signal supply unit that sends the first reset signal or the second reset signal to the interface unit as an initialization signal that initializes the write or read control information of the interface unit;
Have
The control unit determines whether the initialization signal is based on the first reset signal after the control information of the interface unit is initialized according to the initialization signal. When it is determined that the data is based on one reset signal, the number of times the data is read from each block of the memory exceeds the first threshold value or the second threshold value based on the block access frequency information. 4. The memory control device according to claim 2, wherein a determination is made as to whether or not the memory control device is present.
前記制御部は、前記初期化信号に応じて前記記憶領域に前記パワーオンリセット済コードが記憶されているか否かを判別し、記憶されていないと判別した場合に、前記レジスタに前記パワーオンリセット済コードを書き込むとともに、前記初期化信号が前記第1リセット信号に基づくものであると判定することを特徴とする請求項4に記載のメモリ制御装置。 The storage unit includes a storage area for storing a power-on reset code indicating that the first initialization signal after power-on has been sent.
The control unit determines whether the power-on reset code is stored in the storage area according to the initialization signal, and determines that the power-on reset is stored in the register when it is determined that the code is not stored. 5. The memory control device according to claim 4, wherein a completed code is written and it is determined that the initialization signal is based on the first reset signal.
前記データの読出し回数に拘わらず前記メモリの各ブロックに対して前記メモリチェック処理を行う第2のモードと、
を備え、
前記制御部は、前記ブロックアクセス回数情報に基づいて、前記第1のモードおよび前記第2のモードのうちの一方を選択して前記メモリチェック処理又は前記リフレッシュ処理を実行することを特徴とする請求項2乃至5のいずれか1に記載のメモリ制御装置。 A first mode in which the refresh process or the memory check process is performed according to the number of times of reading the data;
A second mode for performing the memory check processing on each block of the memory regardless of the number of times of reading the data;
With
The control unit selects one of the first mode and the second mode based on the block access count information, and executes the memory check process or the refresh process. Item 6. The memory control device according to any one of Items 2 to 5.
前記メモリを構成する複数のブロックの各々に対するデータの読出し回数をブロックアクセス回数情報として記憶するステップと、
前記ブロックアクセス回数情報に基づいて、前記メモリの前記複数のブロックのうちデータの読出し回数が第1の閾値を越えているブロックに対してリフレッシュ処理を行うステップと、
を含むことを特徴とするメモリ制御方法。 A memory control method for performing data write or read control on a memory,
Storing the number of read times of data for each of a plurality of blocks constituting the memory as block access number information;
Performing a refresh process on a block in which the number of read times of data exceeds a first threshold among the plurality of blocks of the memory based on the block access count information;
A memory control method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015029459A JP6423282B2 (en) | 2015-02-18 | 2015-02-18 | Memory control device and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015029459A JP6423282B2 (en) | 2015-02-18 | 2015-02-18 | Memory control device and memory control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016151922A true JP2016151922A (en) | 2016-08-22 |
JP6423282B2 JP6423282B2 (en) | 2018-11-14 |
Family
ID=56696516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015029459A Active JP6423282B2 (en) | 2015-02-18 | 2015-02-18 | Memory control device and memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6423282B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021510887A (en) * | 2018-03-23 | 2021-04-30 | マイクロン テクノロジー,インク. | Methods for detecting and mitigating deterioration of memory media, and memory devices that employ them |
JP2021522567A (en) * | 2018-04-20 | 2021-08-30 | マイクロン テクノロジー,インク. | Equipment and method for counter update operation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008192266A (en) * | 2007-02-07 | 2008-08-21 | Megachips Lsi Solutions Inc | Memory controller |
JP2010198219A (en) * | 2009-02-24 | 2010-09-09 | Toshiba Corp | Memory controller and semiconductor memory device |
-
2015
- 2015-02-18 JP JP2015029459A patent/JP6423282B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008192266A (en) * | 2007-02-07 | 2008-08-21 | Megachips Lsi Solutions Inc | Memory controller |
JP2010198219A (en) * | 2009-02-24 | 2010-09-09 | Toshiba Corp | Memory controller and semiconductor memory device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021510887A (en) * | 2018-03-23 | 2021-04-30 | マイクロン テクノロジー,インク. | Methods for detecting and mitigating deterioration of memory media, and memory devices that employ them |
US11393543B2 (en) | 2018-03-23 | 2022-07-19 | Micron Technology, Inc. | Methods for detecting and mitigating memory media degradation and memory devices employing the same |
JP2021522567A (en) * | 2018-04-20 | 2021-08-30 | マイクロン テクノロジー,インク. | Equipment and method for counter update operation |
Also Published As
Publication number | Publication date |
---|---|
JP6423282B2 (en) | 2018-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10061512B2 (en) | Data storage device and data writing method thereof | |
KR102154436B1 (en) | Semiconductor memory device | |
TWI437568B (en) | Method for improving performance when flash memory storage device works in wide temperature range | |
US10846008B2 (en) | Apparatuses and methods for single level cell caching | |
US10725695B2 (en) | Memory system and operating method thereof | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
US9449684B2 (en) | Storage control device, storage device, information processing system, and storage control method | |
US8856614B2 (en) | Semiconductor memory device detecting error | |
JP2015018451A (en) | Memory controller, storage device, and memory control method | |
CN109426441B (en) | Data storage device and operation method thereof | |
US10586601B2 (en) | Semiconductor memory device and read control method thereof | |
US20150220394A1 (en) | Memory system and method of controlling memory system | |
US20140164724A1 (en) | Method and apparatus for processing system command during memory backup | |
JP2012133832A (en) | Nonvolatile semiconductor memory device and read-out voltage detection method | |
KR101205628B1 (en) | Semiconductor memory device and read method thereof | |
JP5883284B2 (en) | Semiconductor memory control device and control method | |
JP6423282B2 (en) | Memory control device and memory control method | |
US8873327B2 (en) | Semiconductor device and operating method thereof | |
JP2835107B2 (en) | Error correction circuit for nonvolatile semiconductor memory device and error correction method thereof | |
JP2020042890A (en) | Memory system and controlling method of memory system | |
JP2017058870A (en) | Memory control device and memory control method | |
US11176988B2 (en) | Control method for memory and non-transitory computer-readable media | |
KR102227196B1 (en) | Data storing system and operating method thereof | |
JP6448254B2 (en) | Memory control device and memory control method | |
US10297304B1 (en) | Memory device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171030 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180710 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180903 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180918 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6423282 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |