JP4332132B2 - Memory controller, flash memory system, and flash memory control method - Google Patents
Memory controller, flash memory system, and flash memory control method Download PDFInfo
- Publication number
- JP4332132B2 JP4332132B2 JP2005138944A JP2005138944A JP4332132B2 JP 4332132 B2 JP4332132 B2 JP 4332132B2 JP 2005138944 A JP2005138944 A JP 2005138944A JP 2005138944 A JP2005138944 A JP 2005138944A JP 4332132 B2 JP4332132 B2 JP 4332132B2
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- data
- checksum
- writing
- error
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。 The present invention relates to a memory controller and a flash memory system including the memory controller.
近年、フラッシュメモリの性能(記憶容量、信頼性、動作速度等)が向上し、不揮発性の記録媒体として、プログラム等を格納する用途に用いられつつある。 In recent years, flash memory performance (storage capacity, reliability, operation speed, etc.) has been improved, and it is being used as a nonvolatile recording medium for storing programs and the like.
フラッシュメモリは、その特性上、データが正常に書き込まれない(データに誤りが混入する)おそれがある。このため、データを書き込んだ後に、書き込んだデータを読み出して、正常に書き込みが成されたことを確認する手順(ベリフィケーション)が必要である。最も確実なベリフィケーションの手法は、データの全てのビットを照合する手法であるが、この手法は時間がかかり、利便性に欠ける。 Due to the characteristics of the flash memory, data may not be written normally (incorrect data may be mixed). For this reason, a procedure (verification) is required in which after the data is written, the written data is read and the normal writing is confirmed. The most reliable verification method is a method of collating all bits of data, but this method is time consuming and lacks convenience.
このため、データを所定のビット毎に区切り、それを順次加算して得られるチェックサム値を求め、このチェックサム値と予め算出された期待値とに一致を確認することでベリフィケーションの短時間化を図る手法が提案されている(例えば特許文献1)。
しかしながら、上記の手法では、予めチェックサムの期待値を求めておく必要があるため、データ作成時にチェックサムの期待値を求める時間を含めて総合的に考えると、ベリフィケーションの短時間化は十分とは言えない。 However, in the above method, since it is necessary to obtain the expected value of the checksum in advance, considering the time for obtaining the expected value of the checksum at the time of data creation, the verification can be shortened. That's not enough.
本発明は上記の実情に鑑みてなされたもので、ベリフィケーションの時間を抑制可能なフラッシュメモリの制御方法、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a flash memory control method, a memory controller, and a flash memory system including the memory controller that can suppress verification time.
本発明の第1の観点に係るメモリコントローラは、フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、フラッシュメモリにデータを書き込む書込手段と、前記フラッシュメモリに書き込まれるデータのエラーコレクションコードを生成するエラーコレクションコード生成手段と、前記エラーコレクションコードを前記フラッシュメモリに書き込むエラーコレクションコード書込手段と、前記書込手段が前記フラッシュメモリにデータを書き込むのと平行して、前記フラッシュメモリに書き込まれるデータのチェックサムの期待値を算出する期待値算出手段と、前記フラッシュメモリに書き込まれているデータを読み出す読出手段と、前記フラッシュメモリに書き込まれている前記エラーコレクションコードを読み出すエラーコレクションコード読出手段と、前記フラッシュメモリから読み出されたデータに含まれる誤りを、前記フラッシュメモリから読み出された前記エラーコレクションコードに基づいて訂正する訂正手段と、前記書込手段が前記フラッシュメモリにデータを書き込んだ後に、前記フラッシュメモリから当該書き込んだデータを読み出し、読み出したデータのチェックサム値を算出するチェックサム算出手段と、前記期待値算出手段が算出したチェックサムの期待値と前記チェックサム算出手段が算出したチェックサム値とを照合して、前記フラッシュメモリにデータが正しく書き込まれたか否かを判定する判定手段とを備え、前記チェックサム算出手段は、前記フラッシュメモリから読み出したデータに誤りが含まれていた場合、前記前記訂正手段により誤りが訂正されたデータのチェックサム値を算出することを特徴とする。
なお、本発明において、ホストシステムとは、フラッシュメモリを記録媒体として利用する装置を指すものとする。
A memory controller according to a first aspect of the present invention includes a writing unit that writes data to a flash memory in response to an instruction from a host system that uses the flash memory as a storage medium, and a memory that stores data written to the flash memory. and error correction code generating means for generating an error correction code, in parallel with the error correction code writing means for writing the error correction code in the flash memory, and the writing means for writing data to the flash memory, wherein an expected value calculation means for calculating an expected value of the checksum of the data being written to the flash memory, and reading means for reading the data written in the flash memory, the error correction code that is written in the flash memory And error correction code reading means for out look, the errors included in data read from the flash memory, and correction means for correcting, based on the error correction code read from the flash memory, the writing means After writing the data to the flash memory, the written data is read from the flash memory, the checksum calculation means for calculating the checksum value of the read data, and the expected value of the checksum calculated by the expected value calculation means And a check means for comparing the checksum value calculated by the checksum calculation means to determine whether or not data has been correctly written to the flash memory, and the checksum calculation means includes: If the read data contains errors And calculates a checksum value of the data whose error is corrected by said correcting means.
In the present invention, the host system refers to a device that uses a flash memory as a recording medium.
前記期待値算出手段は、ハードウェアによる加算器から構成されることが望ましい。 The expected value calculation means is preferably composed of an adder by hardware.
前記チェックサム算出手段は、ハードウェアによる加算器から構成されることが望ましい。 The checksum calculation means is preferably composed of an adder by hardware.
前記期待値算出手段及び前記チェックサム算出手段は、前記ホストシステムからの要求に応じて、算出する期待値及びチェックサム値のビット数を変更してもよい。 The expected value calculation means and the checksum calculation means may change the number of bits of the expected value and checksum value to be calculated in response to a request from the host system.
前記期待値算出手段及び前記チェックサム算出手段は、算出する期待値及びチェックサム値のビット数を、当該メモリコントローラと前記フラッシュメモリとを接続するバスのビット幅と等しいビット数としてもよい。 The expected value calculation unit and the checksum calculation unit may calculate the number of bits of the expected value and the checksum value to be equal to the bit width of the bus connecting the memory controller and the flash memory.
本発明の第2の観点に係るフラッシュメモリシステムは、上記の特徴のうち、少なくともいずれか一つを有するメモリコントローラと、フラッシュメモリとを備えることを特徴とする。 A flash memory system according to a second aspect of the present invention includes a memory controller having at least one of the above characteristics and a flash memory.
本発明の第3の観点に係るフラッシュメモリの制御方法は、フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、フラッシュメモリにデータを書き込む書込ステップと、前記フラッシュメモリに書き込まれるデータのエラーコレクションコードを生成するエラーコレクションコード生成ステップと、前記エラーコレクションコードを前記フラッシュメモリに書き込むエラーコレクションコード書込ステップと、書込ステップにより前記フラッシュメモリにデータが書き込まれるのと平行して、前記フラッシュメモリに書き込まれるデータのチェックサムの期待値を算出する期待値算出ステップと、前記書込ステップにより書き込まれたデータを前記フラッシュメモリから読み出す読出ステップと、前記書込ステップにより書き込まれたデータの前記エラーコレクションコードを前記フラッシュメモリから読み出すエラーコレクションコード読出ステップと、前記読出ステップにより読み出されたデータに含まれる誤りを、前記エラーコレクションコード読出ステップにより読み出された前記エラーコレクションコードに基づいて訂正する訂正ステップと、前記読出ステップにより読み出されたデータのチェックサム値を算出するチェックサム算出ステップと、前記期待値算出ステップにより算出されたチェックサムの期待値と、前記チェックサム算出ステップにより算出されたチェックサム値とを照合し、データが正しく書き込まれたか否かを判定する判定ステップとを備え、前記読出ステップにより読み出されたデータに誤りが含まれていた場合、前記チェックサム算出ステップでは、前記訂正ステップにより誤りが訂正されたデータのチェックサム値を算出することを特徴とする。 A flash memory control method according to a third aspect of the present invention includes a writing step of writing data to the flash memory in response to an instruction from a host system that uses the flash memory as a storage medium, and writing to the flash memory. and error correction code generation step of generating an error correction code of data, the error correction code writing step of writing the error correction code on the flash memory, Doo data to the flash memory by the writing step writing write Murrell in parallel, the expected value calculation step of calculating an expected value of the checksum of the data to be written to the flash memory, a reading step of reading write Mareta data from the flash memory writing by said write step, the write stearate An error correction code reading step of reading out the error correction code of the data written by the memory from the flash memory, and an error included in the data read out by the reading step is read by the error correction code reading step. A correction step for correcting based on the error collection code; a checksum calculation step for calculating a checksum value of the data read by the reading step; and an expected value of the checksum calculated by the expected value calculation step; the collates the checksum value calculated by the checksum calculating step, and a determination step of determining whether or not data has been written correctly, there is an error in the data read by the reading step If The serial checksum calculation step, and calculates a checksum value of the data whose error is corrected by said correction step.
本発明によれば、フラッシュメモリへのデータ書き込みと平行してチェックサムの期待値を求めるため、ベリフィケーションの時間を抑制することができる。 According to the present invention, since the expected value of the checksum is obtained in parallel with the data writing to the flash memory, the verification time can be suppressed.
以下、図面に基づき、本発明の実施の形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[フラッシュメモリシステム1の説明]
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。
[Description of flash memory system 1]
FIG. 1 is a block diagram schematically showing a
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
The
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、ROM(Read Only Memory)12と、第1の加算器15と、第1のレジスタ16と、第2の加算器17と、第2のレジスタ18と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
As shown in FIG. 1, the
マイクロプロセッサ6は、ROM12に記録されたプログラムに従って、コントローラ3の全体の動作を制御する。具体的には、マイクロプロセッサ6は、フラッシュメモリ2にデータを書き込むための書込処理、データを読み出すための読出処理、アドレス変換テーブルの作成、消去済ブロック検索用テーブルの作成等の処理を実行するように各部を制御する。
The microprocessor 6 controls the overall operation of the
ホストインターフェースブロック7は、ホストシステム4との間の、データ、アドレス情報、ステータス情報、外部コマンド情報等の授受を行なう。すなわち、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
The
より詳細には、ホストインターフェースブロック7は、ホストシステム4より供給されるホストアドレス及び外部コマンドを一時的に格納するコマンドレジスタ、書き込み又は読み出しを行うデータのサイズを格納するセクタ数レジスタ、書き込み又は読み出しを行うデータの論理ブロックアドレスを格納するLBA(Logical Block Addressing)レジスタ、等を有する。そして、これらのレジスタを介してホストシステム4との情報の授受を行う。
More specifically, the
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
The
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する。
The
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報等の授受を行う。
なお、本実施の形態のフラッシュメモリシステム1における、内部バス14は、16ビットのビット幅を有するものとする。
The flash
In the
ECCブロック11は、フラッシュメモリ2に書込むデータに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する。
The ECC block 11 generates an error correction code added to data to be written to the
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、書込処理、読出処理、アドレス変換テーブルの作成、消去済ブロック検索用テーブルの作成等の処理手順を定義するプログラムを格納する。
The
第1の加算器15は、フラッシュメモリ2にデータが書き込まれる際に、第1のレジスタ16と協働して、書き込むデータを内部バス14のビット数毎に区切って加算した累積値(チェックサムの期待値)を算出する。より詳細には、第1の加算器15は、内部バス14と等しいビット幅(すなわち16ビット)を有する加算器であり、内部バス14から供給される書込データと、第1のレジスタ16から供給される値と、を加算して、その値を第1のレジスタ16に保持させる。
When data is written to the
第1のレジスタ16は、第1の加算器15が出力する値を一時的に保持する記憶素子である。第1のレジスタ16は、保持値を第1の加算器15に戻す。
The
第2の加算器17は、第2のレジスタ18と協働して、フラッシュメモリ2から読み出されるデータを内部バス14のビット数毎に区切って加算した累積値(チェックサム値)を算出する。より詳細には、第2の加算器17は、内部バス14と等しいビット幅(すなわち16ビット)を有する加算器であり、内部バス14から供給される読出データと、第2のレジスタ18から供給される値と、を加算して、その値を第2のレジスタ18に保持させる。
The
第2のレジスタ18は、第2の加算器17が出力する値を一時的に保持する記憶素子である。第2のレジスタ18は、保持値を第2の加算器17に戻す。
The
[フラッシュメモリの説明]
次に、フラッシュメモリ2について説明する。図2は、フラッシュメモリ2のメモリ構造を概略的に示す図である。図2に示したように、フラッシュメモリ2はデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
[Description of flash memory]
Next, the
上記ページは、例えば、512バイトのユーザ領域25と、16バイトの冗長領域26によって構成される。ユーザ領域25は、主に、ホストシステム4から供給されるデータが格納される領域であり、冗長領域26は、エラーコレクションコード、ブロックステータス、対応論理ブロックアドレス等の付加情報が格納される領域である。
The page is composed of a 512-
エラーコレクションコードは、ユーザ領域25に格納されたデータに含まれる誤りを訂正するための付加情報であり、ECCブロック11によって生成される。このエラーコレクションコードに基づき、ユーザ領域25に格納されたデータに含まれる誤りが所定数以下であれば、その誤りが訂正される。
The error collection code is additional information for correcting an error included in the data stored in the
ブロックステータスは、そのブロックが不良ブロック(正常にデータの書込み等を行なうことができないブロック)であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。 The block status is a flag indicating whether or not the block is a bad block (a block in which data cannot be normally written). If it is determined that the block is a bad block, the block status is bad. A flag indicating a block is set.
対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。なお、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが格納されていない場合は消去済ブロックであると判断できる。 The corresponding logical block address indicates to which logical block address the block corresponds when data is stored in the block. If no data is stored in the block, the corresponding logical block address is not stored, so whether the corresponding logical block address is stored or not is determined whether the block is an erased block. Judgment can be made. That is, when the corresponding logical block address is not stored, it can be determined that the block is an erased block.
[論理ブロックアドレスと物理ブロックアドレスの説明]
フラッシュメモリ2はデータの上書きができないため、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという2段階の処理を行なわなければならない。このとき、消去はブロック単位で処理されるため、古いデータ(書替前のデータ)が書込まれていたページが含まれるブロックの、全ページのデータが消去されてしまう。従って、データの書替えを行なう場合、書替えるページが含まれるブロックの、他のページのデータについても、消去済ブロックに移動させる処理が必要となる。
[Description of logical block address and physical block address]
Since the
上記のようにデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム4側から与えられる論理ブロックアドレスと、フラッシュメモリ2内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。なお、このアドレス変換テーブルは、フラッシュメモリ2の冗長領域26に書込まれている対応論理ブロックアドレスに基づいて作成され、データが書替えられる毎に、その書替えに関わった部分の対応関係が更新される。
When data is rewritten as described above, since the data after rewriting is written in a block different from that before rewriting, the logical block address given from the host system 4 side and the block address in the
[ゾーンの構成の説明]
次に、フラッシュメモリ2内の複数のブロックで構成したゾーンを、論理ブロックアドレスの空間に割当てるゾーン管理について図面を参照して説明する。図3は、512のブロックでゾーンを構成した例を示している。図3に示した例では、ゾーンは、512のブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)で構成され、各ブロックは、読出し及び書込処理の単位である32のページP00〜P31で構成されている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込処理の単位である。
[Description of zone configuration]
Next, zone management for assigning a zone composed of a plurality of blocks in the
また、このゾーンを、論理ブロックアドレスの空間に割当てる場合、不良ブロックの発生を考慮して、ゾーンを構成するブロック数よりも少ないブロック数の論理ブロックアドレスの空間に割当てられる。この割当は、通常、フラッシュメモリ2の仕様に応じて行なわれるが、例えば、512のブロックで構成されたゾーンを、500ブロック分の論理ブロックアドレスの空間に割当てたり、490ブロック分の論理ブロックアドレスの空間に割当てたりすることができる。この際、論理ブロックアドレスの空間に割当てるブロック数を増やせば、フラッシュメモリ2の使用効率は良くなるが、不良ブロックの発生に対する許容量(許容できる不良ブロックの発生数)は少なくなる。
なお、本実施の形態のフラッシュメモリシステム1においては、図4に示したように、512ブロックで構成されたゾーンを、496ブロック分の論理ブロックアドレスの空間に割当てるものとする。
In addition, when this zone is allocated to a logical block address space, it is allocated to a logical block address space having a smaller number of blocks than the number of blocks constituting the zone in consideration of the occurrence of defective blocks. This allocation is normally performed according to the specifications of the
In the
[アドレス変換テーブルの説明]
次に、アドレス変換テーブルについて、説明する。アドレス変換テーブルは、論理ブロックアドレスと物理ブロックアドレスの対応関係を管理する。
図5は、図4に示したゾーン0に対するアドレス変換テーブルの一例を示したものであり、各論理ブロックアドレスに対応するデータが格納されているフラッシュメモリ2内での物理ブロックアドレスが、論理ブロックアドレス順に記述されている。また、フラッシュメモリ2にデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、物理ブロックアドレスではなく、データが格納されていないことを示すフラグ(以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う)が設定される。
[Description of address translation table]
Next, the address conversion table will be described. The address conversion table manages the correspondence between logical block addresses and physical block addresses.
FIG. 5 shows an example of an address conversion table for the
例えば、図4に示したゾーン0のアドレス変換テーブルを作成する場合、マイクロプロセッサ6は、496ブロック分の物理ブロックアドレスを記述できる領域をワークエリア8(SRAM)上に確保し、その物理ブロックアドレスを記述する領域に初期設定として未格納フラグを設定する。その後、マイクロプロセッサ6は、フラッシュメモリインターフェースブロック10を制御してフラッシュメモリ2のゾーン0を構成するブロックの冗長領域26を順次読出していき、冗長領域26に論理ブロックアドレス(対応論理ブロックアドレスとして記述されている論理ブロックアドレス)が記述されている場合には、アドレス変換テーブルのその論理ブロックアドレスに対応する部分に、その論理ブロックアドレスが記述されているブロックの物理ブロックアドレスを記述する。
For example, when the address conversion table for
なお、このアドレス変換テーブルの作成処理で物理ブロックアドレスが記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。 It should be noted that the unstored flag described in the initial setting remains as it is for the part where the physical block address is not described in the address conversion table creation process.
[消去済ブロック検索用テーブルの説明]
次に、消去済ブロック検索用テーブルについて、図面を参照して説明する。消去済ブロック検索用テーブルは、データの書込み先とすることができる消去済ブロックを検索するためのテーブルである。
[Description of erased block search table]
Next, the erased block search table will be described with reference to the drawings. The erased block search table is a table for searching for an erased block that can be a data write destination.
まず、消去済ブロック検索用テーブルを用いて、消去済ブロックを検索する方法について説明する。例えば、図4に示したゾーンの消去済ブロックを検索する場合、マイクロプロセッサ6は、512ビットの領域をSRAM上に確保し、その領域の各ビットにゾーンを構成する各ブロックを割当てた消去済ブロック検索用テーブルを作成する。 First, a method for searching for an erased block using the erased block search table will be described. For example, when searching for an erased block in the zone shown in FIG. 4, the microprocessor 6 secures a 512-bit area on the SRAM and assigns each block constituting the zone to each bit in the area. Create a block search table.
図6は、図4に示したゾーン0とゾーン1の消去済ブロック検索用テーブルを概念的に示した概念図である。ここで、ゾーン0の消去済ブロック検索用テーブル上のビットは、ブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)に対応し、ゾーン1の消去済ブロック検索用テーブル上のビットは、ブロックB0512〜B1023(物理ブロックアドレスの0512〜1023)に対応する。
FIG. 6 is a conceptual diagram conceptually showing the erased block search table for
また、消去済ブロック検索用テーブル上のビットと、ゾーンを構成するブロックとの対応関係については、図6に示した消去済ブロック検索用テーブル上のビットを、上の行から下の行へ、各行を左から右へ物理ブロックアドレス順に対応させている。従って、ゾーン0の消去済ブロック検索用テーブルでは、左上のビットが、B0000(物理ブロックアドレスの0000)のブロックに対応し、右下のビットが、B0511(物理ブロックアドレスの0511)のブロックに対応する。
For the correspondence between the bits on the erased block search table and the blocks constituting the zone, the bits on the erased block search table shown in FIG. 6 are changed from the upper row to the lower row. Each row is associated from left to right in the order of physical block addresses. Therefore, in the erased block search table for
また、消去済ブロック検索用テーブル上のビットは、「0」と「1」で消去済ブロックであるか否かを示しており、例えば、データが書込まれている場合(または不良ブロックであることを示すブロックステータスが記述されている場合)は、そのビットに「0」を、データが書込まれていない場合(消去済ブロックの場合)は、そのビットに「1」を設定する。 The bit on the erased block search table indicates whether the block is an erased block with “0” and “1”. For example, when data is written (or a defective block) Is set to “0” in the bit, and “1” is set in the bit when data is not written (in the case of an erased block).
なお、この消去済ブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。例えば、マイクロプロセッサ6は、消去済ブロック検索用テーブルを作成するワークエリア8(SRAM)上の領域に「0」を設定しておき、各ブロックの冗長領域26に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに「1」を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。つまり、ゾーンを構成するブロックの冗長領域26に記述されているデータを読出したときにこの処理を行なえば、消去済ブロックに対応するビットだけに「1」が設定され、消去済ブロックでないブロックに対応するビットは予め設定した「0」のままになる。
The erased block search table can be created together when creating the address conversion table. For example, the microprocessor 6 sets “0” in the area on the work area 8 (SRAM) for creating the erased block search table, and the logical block address corresponding to the
また、マイクロプロセッサ6は、消去済ブロックにデータを書込が書き込まれたときに、そのブロックに対応するビットを「1」から「0」に変更し、データが書込まれているブロックがブロック消去されたときに、そのブロックに対応するビットを「0」から「1」に変更することで、消去済ブロック検索用テーブルを随時更新する。 Further, when data is written to the erased block, the microprocessor 6 changes the bit corresponding to the block from “1” to “0”, and the block in which the data is written is changed to the block. When erased, the bit corresponding to the block is changed from “0” to “1” to update the erased block search table as needed.
次に、この消去済ブロック検索用テーブルを用いて消去済ブロックを検索する場合について図7を参照して説明する。図7は、ゾーン0の消去済ブロック検索用テーブルを示している。例えば、一番上の行の各ビットは、ブロックB0000〜B0007(物理ブロックアドレスの0000〜0007)に対応し、一番下の行はブロックB0504〜B0511(物理ブロックアドレスの0504〜0511)に対応する。
Next, a case where an erased block is searched using this erased block search table will be described with reference to FIG. FIG. 7 shows an erased block search table for
マイクロプロセッサ6は、消去済ブロック検索用テーブルを、上の行から下の行へと走査する。また、マイクロプロセッサ6は、消去済ブロック検索用テーブル内の各行を左から右へと走査する。すなわち、マイクロプロセッサ6は、ブロックB0000(物理ブロックアドレスの0000)に対応するビット(一番上の行の、一番左のビット)から、ブロックB0511(物理ブロックアドレスの0511)に対応するビット(一番下の行の、一番右のビット)までを走査していき、消去済ブロックに対応する「1」のビットを検索する。 The microprocessor 6 scans the erased block search table from the upper row to the lower row. The microprocessor 6 scans each row in the erased block search table from left to right. That is, the microprocessor 6 starts from the bit corresponding to the block B0000 (physical block address 0000) (the leftmost bit in the top row) to the bit corresponding to the block B0511 (physical block address 0511) ( The rightmost bit in the bottom row is scanned, and the bit “1” corresponding to the erased block is searched.
図7に示した消去済ブロック検索用テーブルを検索する場合、上から2番目の行の、左から3番目のビットが「1」なので、マイクロプロセッサ6は、ここで検索を終了し、このビットに対応するブロックB0010(物理ブロックアドレスの0010)を、データの書込み先のブロックとして特定する。 When searching the erased block search table shown in FIG. 7, since the third bit from the left of the second row from the top is “1”, the microprocessor 6 ends the search here, and this bit The block B0010 (physical block address 0010) corresponding to is specified as the data write destination block.
また、次回の検索は、上から2番目の行の、左から4番目のビットから走査を開始し、上から4番目の行の、左から5番目のビットが「1」なので、マイクロプロセッサ6は、ここで検索を終了し、このビットに対応するブロックB0028(物理ブロックアドレスの0028)を、データの書込み先のブロックとして特定する。その後も、このような検索を続けていき、一番下の行の、一番右のビットまで走査が進んだときは、一番上の行の、一番左のビットに戻る。 The next search starts scanning from the fourth bit from the left in the second row from the top. Since the fifth bit from the left in the fourth row from the top is “1”, the microprocessor 6 The search ends here, and a block B0028 (physical block address 0028) corresponding to this bit is specified as a block to which data is written. Thereafter, such a search is continued, and when the scanning proceeds to the rightmost bit in the bottom row, the processing returns to the leftmost bit in the top row.
[書込処理の説明]
次に、ホストシステム4からのコマンドに応答して実行される書込処理について、図8に示すタイムチャートを参照して説明する。この書込処理では、フラッシュメモリ2へのデータ書き込みとともに、チェックサムの期待値の算出が行われ、書き込みがされた後にチェックサム値の算出と照合とがなされる。
ホストシステム4からの書込処理の実行を要求するコマンドは、ホストインターフェースブロック7のコマンドレジスタに書き込まれる。また、データの書き込み先の論理ブロックアドレスと、書き込むデータのサイズとは、それぞれホストインターフェースブロック7のLBAレジスタと、セクタ数レジスタとに書き込まれる。
[Description of writing process]
Next, write processing executed in response to a command from the host system 4 will be described with reference to a time chart shown in FIG. In this writing process, the expected value of the checksum is calculated along with the data writing to the
A command requesting execution of the writing process from the host system 4 is written in the command register of the
コマンドレジスタに書き込まれた命令に応答して、マイクロプロセッサ6は、消去済ブロック検索用テーブルを検索して特定したブロックに、データを書込む。この書込処理では、マイクロプロセッサ6は、フラッシュメモリインターフェースブロック10を制御して、内部バス14を介して、書込み先のブロック内のページに、データを書込む。マイクロプロセッサ6は、データを書き込んだブロックの冗長領域26に、エラーコレクションコード、論理ブロックアドレス等を書き込む。
In response to the instruction written in the command register, the microprocessor 6 writes data into the block identified by searching the erased block search table. In this writing process, the microprocessor 6 controls the flash
このとき、図8(a)に示すように、フラッシュメモリ2に書き込まれるデータは、内部バス14のビット幅(16ビット)毎に区切られて、データの先頭から順に、逐次、フラッシュメモリ2に送られる。
At this time, as shown in FIG. 8A, the data to be written to the
また、内部バス14を介してフラッシュメモリ2に書き込まれるデータは、同時に第1の加算器15にも供給される。図8(b)に示すように、第1の加算器15は、内部バス14を介して受け取ったデータと第1のレジスタ16が保持しているデータとを加算し、第1のレジスタ16の保持値を、その加算した値に更新させる。上記の加算を繰り返し、フラッシュメモリ2に書き込まれるデータの末尾(Dn)まで達したときの、第1のレジスタ16の保持値がチェックサムの期待値となる。
なお、第1のレジスタ16の保持値は、書込処理の開始時に0にリセットされるものとする。また、データの加算を繰り返すことにより、いわゆる桁溢れが生じた場合、溢れた桁は無視し、内部バス14のビット幅(すなわち加算値の下位16ビット)の値にのみ着目してチェックサムの期待値を求めるものとする。
The data written to the
Note that the value held in the
フラッシュメモリ2へのデータの書き込みが終わると、マイクロプロセッサ6は、フラッシュメモリインターフェースブロック10を制御して、内部バス14を介して、書き込んだデータを読出して、データが正常に書き込まれたかを確認する(ベリフィケーション)。
When the writing of data to the
この処理では、書き込んだデータをバッファ9に読み出し、読み出したデータに含まれる誤りをエラーコレクションコードに基づいて訂正する。誤りが訂正されたデータは、データを書き込むときと同様に、内部バス14のビット幅(16ビット)毎に区切られて、内部バス14側に送出される。この際、フラッシュメモリ2は、非活性状態にしておく。このデータは、内部バス14に接続されている第2の加算器17に供給される。データを書き込むときと同様に、図8(b)に示すように、第2の加算器17は、内部バス14を介して受け取ったデータと第2のレジスタ18が保持しているデータとを加算し、第2のレジスタ18の保持値を、その加算した値に更新させる。上記の加算を繰り返し、フラッシュメモリ2から読み出されるデータの末尾(Dn)まで達したときの、第2のレジスタ18の保持値がチェックサム値となる。
In this process, the written data is read to the
なお、第2のレジスタ18の保持値は、ベリフィケーションの開始時に0にリセットされるものとする。
また、データの加算を繰り返すことにより、いわゆる桁溢れが生じた場合、溢れた桁は無視し、内部バス14のビット幅(すなわち加算値の下位16ビット)の値にのみ着目してチェックサム値を求めるものとする。
Note that the value held in the
If so-called digit overflow occurs by repeating the addition of data, the overflow digit is ignored, and only the value of the bit width of the internal bus 14 (that is, the lower 16 bits of the added value) is taken into consideration. Is to be sought.
上記のチェックサム値を求めるためのデータ読み出しが終了すると、マイクロプロセッサ6は、第1のレジスタ16が保持するチェックサムの期待値と、第2のレジスタ18が保持するチェックサム値とを照合する。すなわち、第1のレジスタ16が保持するチェックサムの期待値と、第2のレジスタ18が保持するチェックサム値とが一致していれば、マイクロプロセッサ6は、正常に書き込みがされたと判別して、書込処理を終了する。また、第1のレジスタ16が保持するチェックサムの期待値と、第2のレジスタ18が保持するチェックサム値とが不一致である場合には、マイクロプロセッサ6は、書込処理が正常になされなかったことを、ホストシステム4に通知する。
When the data reading for obtaining the checksum value is completed, the microprocessor 6 collates the expected checksum value held in the
また、上記書込処理で、ホストシステム4側から供給された論理ブロックアドレスに対応する旧データが存在する場合(上書きをする場合)は、上記新データの書込処理の後に旧データの消去処理が行なわれる。なお、消去する旧データが格納されているブロックの物理ブロックアドレスは、図5に示したアドレス変換テーブルに基づいて得ることができる。この消去処理では、マイクロプロセッサ6は、フラッシュメモリインターフェースブロック10を制御して、内部バス14を介して、フラッシュメモリ2から旧データが格納されているブロックの物理ブロックアドレスのデータを消去する。
In addition, when old data corresponding to the logical block address supplied from the host system 4 side exists in the write process (when overwriting), the old data is erased after the new data write process. Is done. The physical block address of the block storing the old data to be erased can be obtained based on the address conversion table shown in FIG. In this erasing process, the microprocessor 6 controls the flash
[読出処理の説明]
読出処理は、ホストシステム4からのコマンドに応答して実行される。
ホストシステム4からの読出処理の実行を要求するコマンドは、ホストインターフェースブロック7のコマンドレジスタに書き込まれる。また、読み出すデータの論理ブロックアドレスは、ホストインターフェースブロック7のLBAレジスタに書き込まれる。
[Description of read processing]
The read process is executed in response to a command from the host system 4.
A command requesting execution of read processing from the host system 4 is written in the command register of the
コマンドレジスタに書き込まれた命令に応答して、マイクロプロセッサ6は、LBAレジスタに書き込まれた論理ブロックアドレスを、図5に示したアドレス変換テーブルに基づき物理ブロックアドレス(論理ブロックアドレスに対応するデータが格納されているブロックの物理ブロックアドレス)に変換する。 In response to the instruction written in the command register, the microprocessor 6 converts the logical block address written in the LBA register into a physical block address (data corresponding to the logical block address is based on the address conversion table shown in FIG. 5). Converted to the physical block address of the stored block).
続いて、マイクロプロセッサ6は、フラッシュメモリインターフェースブロック10を制御して、内部バス14を介して、ホストシステム4側から与えられる論理ブロックアドレスに対応するデータが格納されているブロック内のページに格納されているデータを、バッファ9に読出す。
Subsequently, the microprocessor 6 controls the flash
マイクロプロセッサ6は、バッファ9に読み出したデータに含まれる誤りを、当該データに付加されているエラーコレクションコードに基づいて訂正する。そして、マイクロプロセッサ6は、訂正後のデータを、ホストインターフェースブロック7を制御して、外部バス13を介してホストシステム4に供給し、読出処理を終了する。
The microprocessor 6 corrects an error included in the data read to the
以上で説明したように、本実施の形態のフラッシュメモリシステム1は、フラッシュメモリ2へのデータ書き込みと平行して、チェックサムの期待値を求める。このため、書き込むデータのチェックサム期待値を予め求めておく必要がない。
As described above, the
また、本実施の形態のフラッシュメモリシステム1は、チェックサムの期待値及びチェックサム値を求めるのに、ハードウェアによって実現される加算器(第1の加算器15及び第2の加算器17)を用いる。このため、チェックサムの期待値及びチェックサム値を求めるため別途の処理時間を要せず、ベリフィケーションをすることにより生じる書込処理の所用時間の増加を抑制できる。
Further, the
特に、本実施の形態のフラッシュメモリシステム1は、チェックサムの期待値及びチェックサム値を求めるための加算器のビット幅を、内部バス14のビット幅と等しくしている。このため、期待値及びチェックサム値を計算する際に、改めてデータを区切って加算器に供給する必要が無く、ベリフィケーションをすることにより生じる書込処理の所用時間の増加を抑制できる。
In particular, in the
上記実施の形態においては、チェックサム値を求めるときの区切りのビット数(すなわち加算器のビット幅)を内部バス14のビット幅と等しくする場合を例に説明したが、チェックサム値を求めるときの区切りのビット数を可変にしてもよい。 In the above embodiment, the case has been described in which the number of bits for delimiting when obtaining the checksum value (that is, the bit width of the adder) is equal to the bit width of the internal bus 14, but when obtaining the checksum value. The number of bits of the delimiter may be variable.
この場合、例えば、LBAレジスタにチェックサムを算出するときのビット幅を設定し、マイクロプロセッサ6が設定されたビット幅毎にデータを分割して第1の加算器15に供給してチェックサムの期待値を算出するようにすればよい。また、読み出したデータに対しても同様にマイクロプロセッサ6が設定されたビット幅毎にデータを分割して第2の加算器17に供給してチェックサム値を算出するようにすればよい。
In this case, for example, the bit width for calculating the checksum is set in the LBA register, and the microprocessor 6 divides the data for each set bit width and supplies the data to the
また、上記実施の形態におけるフラッシュメモリシステム1は、チェックサムの期待値を求めるための第1の加算器15及び第1のレジスタ16と、チェックサム値を求めるための第2の加算器17及び第2のレジスタ18と、を有する場合を例に説明した。しかし、第1の加算器15と第2の加算器17とを一つの加算器で共用することが可能であり、同様に、第1のレジスタ16と第2のレジスタ18とを一つのレジスタで共用することが可能である。
Further, the
この場合、データ書き込みと平行して求めたチェックサムの期待値をワークエリア8に記録し、書き込み後のベリフィケーションの際にチェックサムの期待値を求めたときと同一の加算器とレジスタを用いてチェックサム値を求める。そして、レジスタに保持されたチェックサム値と、ワークエリア8に記録されたチェックサムの期待値とを照合すればよい。
In this case, the expected checksum value obtained in parallel with the data writing is recorded in the
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
15 第1の加算器
16 第1のレジスタ
17 第2の加算器
18 第2のレジスタ
25 ユーザ領域
26 冗長領域
1
13 External bus 14
Claims (7)
前記フラッシュメモリに書き込まれるデータのエラーコレクションコードを生成するエラーコレクションコード生成手段と、
前記エラーコレクションコードを前記フラッシュメモリに書き込むエラーコレクションコード書込手段と、
前記書込手段が前記フラッシュメモリにデータを書き込むのと平行して、前記フラッシュメモリに書き込まれるデータのチェックサムの期待値を算出する期待値算出手段と、
前記フラッシュメモリに書き込まれているデータを読み出す読出手段と、
前記フラッシュメモリに書き込まれている前記エラーコレクションコードを読み出すエラーコレクションコード読出手段と、
前記フラッシュメモリから読み出されたデータに含まれる誤りを、前記フラッシュメモリから読み出された前記エラーコレクションコードに基づいて訂正する訂正手段と、
前記書込手段が前記フラッシュメモリにデータを書き込んだ後に、前記フラッシュメモリから当該書き込んだデータを読み出し、読み出したデータのチェックサム値を算出するチェックサム算出手段と、
前記期待値算出手段が算出したチェックサムの期待値と前記チェックサム算出手段が算出したチェックサム値とを照合して、前記フラッシュメモリにデータが正しく書き込まれたか否かを判定する判定手段とを備え、
前記チェックサム算出手段は、前記フラッシュメモリから読み出したデータに誤りが含まれていた場合、前記前記訂正手段により誤りが訂正されたデータのチェックサム値を算出することを特徴とするメモリコントローラ。 Writing means for writing data to the flash memory in response to an instruction from a host system that uses the flash memory as a storage medium;
Error collection code generation means for generating an error collection code of data written to the flash memory;
Error collection code writing means for writing the error collection code to the flash memory;
In parallel with the writing means writing data to the flash memory, an expected value calculating means for calculating an expected value of a checksum of data written to the flash memory ;
Reading means for reading data written in the flash memory;
Error correction code reading means for reading the error correction code written in the flash memory;
Correction means for correcting an error included in the data read from the flash memory based on the error collection code read from the flash memory;
After the writing means writes data to the flash memory, the written data is read from the flash memory, and a checksum calculation means for calculating a checksum value of the read data ;
A determination unit that compares the expected value of the checksum calculated by the expected value calculation unit with the checksum value calculated by the checksum calculation unit to determine whether data has been correctly written to the flash memory ; Prepared,
The checksum calculation unit calculates a checksum value of the data in which the error is corrected by the correction unit when an error is included in the data read from the flash memory .
ことを特徴とする請求項1に記載のメモリコントローラ。 The expected value calculation means is composed of an adder by hardware.
The memory controller according to claim 1.
ことを特徴とする請求項1又は2に記載のメモリコントローラ。 The checksum calculation means is composed of an adder by hardware.
The memory controller according to claim 1, wherein the memory controller is a memory controller.
ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。 The expected value calculation means and the checksum calculation means change the number of bits of the expected value and checksum value to be calculated in response to a request from the host system.
The memory controller according to claim 1, wherein the memory controller is a memory controller.
ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。 The expected value calculation means and the checksum calculation means set the number of bits of the expected value and checksum value to be calculated to be equal to the bit width of the bus connecting the memory controller and the flash memory.
The memory controller according to claim 1, wherein the memory controller is a memory controller.
前記フラッシュメモリに書き込まれるデータのエラーコレクションコードを生成するエラーコレクションコード生成ステップと、
前記エラーコレクションコードを前記フラッシュメモリに書き込むエラーコレクションコード書込ステップと、
書込ステップにより前記フラッシュメモリにデータが書き込まれるのと平行して、前記フラッシュメモリに書き込まれるデータのチェックサムの期待値を算出する期待値算出ステップと、
前記書込ステップにより書き込まれたデータを前記フラッシュメモリから読み出す読出ステップと、
前記書込ステップにより書き込まれたデータの前記エラーコレクションコードを前記フラッシュメモリから読み出すエラーコレクションコード読出ステップと、
前記読出ステップにより読み出されたデータに含まれる誤りを、前記エラーコレクションコード読出ステップにより読み出された前記エラーコレクションコードに基づいて訂正する訂正ステップと、
前記読出ステップにより読み出されたデータのチェックサム値を算出するチェックサム算出ステップと、
前記期待値算出ステップにより算出されたチェックサムの期待値と、前記チェックサム算出ステップにより算出されたチェックサム値とを照合し、データが正しく書き込まれたか否かを判定する判定ステップとを備え、
前記読出ステップにより読み出されたデータに誤りが含まれていた場合、前記チェックサム算出ステップでは、前記訂正ステップにより誤りが訂正されたデータのチェックサム値を算出することを特徴とするフラッシュメモリの制御方法。 A writing step of writing data to the flash memory in response to an instruction from a host system using the flash memory as a storage medium;
An error collection code generation step of generating an error collection code of data written to the flash memory;
An error collection code writing step of writing the error collection code into the flash memory;
In parallel with the data that write Murrell to the flash memory by the writing step, an expected value calculation step of calculating an expected value of the checksum of the data to be written to the flash memory,
A reading step of reading write Mareta data from the flash memory writing by said writing step,
An error correction code reading step of reading out the error correction code of the data written by the writing step from the flash memory;
A correction step for correcting an error included in the data read by the reading step based on the error collection code read by the error collection code reading step;
A checksum calculation step of calculating a checksum value of the data read by the reading step ;
The expected value of the checksum calculated by the expected value calculating step, wherein collates the checksum value calculated by the checksum calculating step, and a determination step of determining whether or not data has been written correctly,
When an error is included in the data read by the reading step, the checksum calculation step calculates a checksum value of the data whose error is corrected by the correction step . Control method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005138944A JP4332132B2 (en) | 2005-05-11 | 2005-05-11 | Memory controller, flash memory system, and flash memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005138944A JP4332132B2 (en) | 2005-05-11 | 2005-05-11 | Memory controller, flash memory system, and flash memory control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006318132A JP2006318132A (en) | 2006-11-24 |
JP4332132B2 true JP4332132B2 (en) | 2009-09-16 |
Family
ID=37538776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005138944A Expired - Fee Related JP4332132B2 (en) | 2005-05-11 | 2005-05-11 | Memory controller, flash memory system, and flash memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4332132B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291297B2 (en) * | 2008-12-18 | 2012-10-16 | Intel Corporation | Data error recovery in non-volatile memory |
JP2015141666A (en) * | 2014-01-30 | 2015-08-03 | 日本精機株式会社 | Method and device for inspecting nonvolatile memory |
JP6363044B2 (en) * | 2015-03-31 | 2018-07-25 | 日立オートモティブシステムズ株式会社 | Control device |
-
2005
- 2005-05-11 JP JP2005138944A patent/JP4332132B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006318132A (en) | 2006-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4245585B2 (en) | Memory controller, flash memory system, and flash memory control method | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
JP4828816B2 (en) | Memory card, semiconductor device, and memory card control method | |
US8200891B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP5364807B2 (en) | MEMORY CONTROLLER AND NONVOLATILE MEMORY DEVICE | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
US8200892B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP4332132B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP2006221334A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP4513786B2 (en) | Memory controller, memory system, and memory control method | |
JP4153535B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4661191B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4332134B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4655034B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4433792B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP3934659B1 (en) | Memory controller and flash memory system | |
JP4818453B1 (en) | Electronic device and data reading method | |
JP4692843B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP3670151B2 (en) | Flash memory access method, system including driver for accessing flash memory, and flash memory | |
JP4177301B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4569554B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2012037971A (en) | Memory controller, nonvolatile memory system provided with memory controller, and method for controlling nonvolatile memory | |
JP2007199846A (en) | Memory control device and memory control method | |
JP4235595B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4068594B2 (en) | Flash memory controller, flash memory system, and flash memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081007 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081127 |
|
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: 20090609 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090619 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |