[go: up one dir, main page]

JP2012068765A - Memory controller, flash memory system with memory controller, and control method of flash memory - Google Patents

Memory controller, flash memory system with memory controller, and control method of flash memory Download PDF

Info

Publication number
JP2012068765A
JP2012068765A JP2010211428A JP2010211428A JP2012068765A JP 2012068765 A JP2012068765 A JP 2012068765A JP 2010211428 A JP2010211428 A JP 2010211428A JP 2010211428 A JP2010211428 A JP 2010211428A JP 2012068765 A JP2012068765 A JP 2012068765A
Authority
JP
Japan
Prior art keywords
block
physical
data
page
transfer
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.)
Withdrawn
Application number
JP2010211428A
Other languages
Japanese (ja)
Inventor
So Kanazawa
創 金澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2010211428A priority Critical patent/JP2012068765A/en
Publication of JP2012068765A publication Critical patent/JP2012068765A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

PROBLEM TO BE SOLVED: To suppress the efficiency reduction of access processing based on inter-block transfer by reducing the frequency of inter-block transfer.SOLUTION: Data given from a host system is written in a physical page within a physical block being managed as a write destination block. The number of physical pages storing invalid data therein within the physical block is counted and a physical block having the greatest number of pages is specified. Valid data being stored in that physical block is transferred to a physical page within a physical block being managed as a transfer destination block. Different physical blocks are selected for the physical block being managed as the write destination block and the physical block being managed as the transfer destination block.

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に係り、特に、ホストシステムから与えられる論理アドレスをフラッシュメモリ内の物理アドレスに変換する際に、ページ単位でアドレス変換を行うことによりフラッシュメモリへのアクセスを制御するメモリコントローラ等に関する。このメモリコントローラ等におけるデータの格納先の管理では、ホストシステムから与えられるデータの格納先と、フラッシュメモリ内で複写(転送)されるデータの格納先を異なる物理ブロックに振り分けることにより、物理ブロックを空きブロック化する際の処理効率を改善している。   The present invention relates to a memory controller, a flash memory system including the memory controller, and a flash memory control method, and more particularly, when converting a logical address given from a host system into a physical address in the flash memory, an address in page units. The present invention relates to a memory controller that controls access to a flash memory by performing conversion. In the management of the data storage destination in this memory controller or the like, the physical block is allocated by allocating the data storage destination given from the host system and the data storage destination copied (transferred) in the flash memory to different physical blocks. Improves processing efficiency when creating empty blocks.

近年、小型メモリカードやSSD(Solid State Drive)などの不揮発性半導体メモリを使用した記憶装置の市場が拡大している。これらの製品には、不揮発性メモリと、それを制御するためのメモリコントローラが搭載されている。このメモリコントローラによる制御により、従来HDDが使用されていたシステムにおいて、特段のソフトウェアやハードウェア回路を必要とせず、これらの記憶装置を使用することができる。例えば、ホストシステムからHDDへのアクセスでは、セクタ単位(512バイト単位)で書き込み先のアドレスが指定され、それぞれのアドレスに対応するデータは、それぞれのアドレスに対応するセクタに書き込まれる。従って、不揮発性半導体メモリを使用した記憶装置もこのようなセクタ単位でのデータ書き込みに対応する必要がある。   In recent years, the market for storage devices using nonvolatile semiconductor memories such as small memory cards and SSDs (Solid State Drives) is expanding. These products are equipped with a nonvolatile memory and a memory controller for controlling the nonvolatile memory. By the control by the memory controller, these storage devices can be used without requiring special software or hardware circuits in a system in which a conventional HDD is used. For example, in the access from the host system to the HDD, the address of the write destination is specified in units of sectors (in units of 512 bytes), and the data corresponding to each address is written to the sector corresponding to each address. Therefore, a storage device using a non-volatile semiconductor memory needs to cope with such data writing in sectors.

このような記憶装置では、不揮発性メモリとして、通常、NAND型フラッシュメモリ(以下、フラッシュメモリ)が使用されている。ところが、このフラッシュメモリには、消去処理及び書き込み処理における制限や書き換え回数の制限等の種々の制限が存在する。   In such a storage device, a NAND flash memory (hereinafter referred to as a flash memory) is usually used as a nonvolatile memory. However, this flash memory has various limitations such as a limitation in erasure processing and writing processing, and a limitation on the number of rewrites.

例えば、フラッシュメモリでは、上書きによる書き換えができないため、データの書き込み先は消去状態の領域でなければならない。つまり、データの書き込み先の領域が消去状態でない場合、データの書き込みを行う前に、その書き込み先の領域を消去状態にしなければならない。このデータ消去の処理単位が、物理ブロックであり、この物理ブロックは複数個の物理ページで構成されている。そして、この物理ページが、データ書き込みの処理単位になっている。例えば、それぞれの物理ブロックは、64個、128個又は256個の物理ページで構成されている。また、それぞれの物理ページは、4セクタ(2048バイト)、8セクタ(4096バイト)又は16セクタ(8192バイト)のユーザ領域を含んでいる。   For example, a flash memory cannot be rewritten by overwriting, so the data write destination must be an erased area. That is, when the data write destination area is not in the erased state, the data write destination area must be in the erased state before data writing is performed. This data erasure processing unit is a physical block, and this physical block is composed of a plurality of physical pages. This physical page is a processing unit for data writing. For example, each physical block is composed of 64, 128, or 256 physical pages. Each physical page includes a user area of 4 sectors (2048 bytes), 8 sectors (4096 bytes), or 16 sectors (8192 bytes).

このように、フラッシュメモリでは、データの上書きができないため、データの書き替えを行うときには、通常、新データは、旧データとは異なる物理ページに書き込まれる。さらに、その旧データが書き込まれている物理ブロック内に空きページが無いときには、別の物理ブロック内の空きページにその新データが書き込まれる。このようなデータの書き替えが行われると、旧データが消去されるまで、ホストシステムから与えられるアドレスが同じデータが複数存在する。従って、同じアドレスのデータが複数存在する場合、最新のデータだけが有効データとして取り扱われ、その他のデータは無効データとして取り扱われる。   As described above, since data cannot be overwritten in the flash memory, when data is rewritten, normally, new data is written on a physical page different from old data. Further, when there is no empty page in the physical block in which the old data is written, the new data is written in an empty page in another physical block. When such data rewriting is performed, a plurality of data having the same address given from the host system exist until the old data is erased. Therefore, when there are a plurality of data with the same address, only the latest data is treated as valid data, and the other data is treated as invalid data.

この無効データが増加すると、フラッシュメモリの空き容量が低下する。しかし、有効データが格納されている物理ページが残っている場合、その物理ページが属している物理ブロックに対する消去処理を行うことができないため、その物理ブロック内の有効データを他の物理ブロックに転送し、このデータ転送によりその物理ブロック内の全てのデータが無効データになった後に、その物理ブロックに対する消去処理が行われる。NAND型フラッシュメモリの大容量化に伴い、このブロック間転送が、記憶装置のパフォーマンスに与える影響が無視できなくなっている。つまり、NAND型フラッシュメモリのブロックサイズが増大し、書き込み時間が長くなったために、このブロック間転送の時間が長くなり、記憶装置のパフォーマンスに与える影響が大きくなっている。   When this invalid data increases, the free capacity of the flash memory decreases. However, if there is a physical page in which valid data is stored, erase processing cannot be performed on the physical block to which the physical page belongs, so the valid data in the physical block is transferred to another physical block. Then, after all the data in the physical block becomes invalid data by this data transfer, the erasure process is performed on the physical block. With the increase in capacity of NAND flash memory, the effect of this inter-block transfer on the performance of the storage device cannot be ignored. In other words, since the block size of the NAND flash memory has increased and the writing time has become longer, this inter-block transfer time has become longer, which has a greater effect on the performance of the storage device.

特開平08―115252号公報Japanese Patent Laid-Open No. 08-115252 特開2005−222550号公報JP 2005-222550 A

ブロック間転送の影響を抑制するために、引例1では、全てのデータに読み書き頻度情報を持たせて、更に、メモリ使用情報、メモリ固有情報などを持たせて、これらの情報に基づいて、ホストシステムから与えられるデータの書き込み先物理アドレスを指定している。このようにした場合、管理すべき情報が増加し、その管理が煩雑になる。   In order to suppress the influence of inter-block transfer, in Reference 1, all data is given read / write frequency information, further memory use information, memory specific information, etc. are given, and based on these information, the host The physical address to which data given by the system is written is specified. In such a case, information to be managed increases, and the management becomes complicated.

引例2では、ブロック間転送をする際に、それぞれの物理ブロックにおいてブロック間転送を実行する場合の時間的な影響等を算出し、その影響の少ない物理ブロックを選択してブロック間転送を実行している。このようにすれば、ブロック間転送にかかる時間を短縮されるが、時間的な影響等を算出するための負担が増加する。   In Reference 2, when inter-block transfer is performed, the time effect when inter-block transfer is executed in each physical block is calculated, and a physical block with less influence is selected and inter-block transfer is executed. ing. In this way, the time required for inter-block transfer can be shortened, but the burden for calculating temporal effects and the like increases.

そこで、本発明は、ブロック間転送の頻度を低減し、ブロック間転送に基づくアクセス処理の効率低下を抑制することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。   Accordingly, the present invention provides a memory controller, a flash memory system including the memory controller, and a flash memory control method capable of reducing the frequency of inter-block transfer and suppressing the efficiency of access processing based on inter-block transfer. The purpose is to do.

本発明の第1の側面に従うメモリコントローラは、
ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位であるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
フラッシュメモリ内の消去状態の物理ブロックを検索する空きブロック検索手段と、
前記空きブロック検索手段により検出された消去状態の物理ブロックを、書き込み先ブロックとして管理する書き込み先管理手段と、
前記書き込み先管理手段より前記書き込み先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番でデータが格納されていくように、当該物理ブロック内の格納先の物理ページを指示する書き込み先指示手段と、
ホストシステムから与えられるデータを、前記書き込み先指示手段により指示されている物理ページに書き込む書き込み手段と、
前記空きブロック検索手段により検出された消去状態の物理ブロックを、転送先ブロックとして管理する転送先管理手段と、
物理ブロック内の無効データが格納されている物理ページのページ数をカウントし、当該ページ数が一番大きい物理ブロックを特定する転送元特定手段と、
前記転送先管理手段より前記転送先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番でデータが格納されていくように、当該物理ブロック内の格納先の物理ページを指示する転送先指示手段と、
前記転送元特定手段により特定された物理ブロックに格納されている有効データを、前記転送先指示手段により指示されている物理ページに転送する転送手段とを備え、
前記書き込み先管理手段は、前記書き込み先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記書き込み先ブロックとして新たに管理し、
前記転送先管理手段は、前記転送先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記転送先ブロックとして新たに管理し、
前記書き込み先管理手段により前記書き込み先ブロックとして管理されている物理ブロックと前記転送先管理手段により前記転送先ブロックとして管理されている物理ブロックは異なる物理ブロックであることを特徴とする。
A memory controller according to the first aspect of the present invention comprises:
A logical page including one or a plurality of logical sectors to which a logical address given by the host system is assigned is defined, and a physical block including a plurality of physical pages which are processing units of write processing is a processing unit of erasing processing. A memory controller that controls access to a flash memory,
An empty block search means for searching for an erased physical block in the flash memory,
Write destination management means for managing the physical block in the erased state detected by the empty block search means as a write destination block;
The physical of the storage destination in the physical block is stored so that the data is stored in the physical page in the physical block managed as the write destination block by the write destination management unit in the order from the first page to the last page. Write destination instruction means for indicating a page;
Writing means for writing data given from the host system to the physical page instructed by the writing destination instruction means;
Transfer destination management means for managing a physical block in the erased state detected by the empty block search means as a transfer destination block;
A transfer source specifying means for counting the number of physical pages in which invalid data in the physical block is stored, and specifying a physical block having the largest number of pages;
The physical storage in the physical block is stored in the physical page in the physical block managed as the transfer destination block by the transfer destination management unit so that data is stored in the order from the first page to the last page. A transfer destination instruction means for indicating a page;
Transfer means for transferring valid data stored in the physical block specified by the transfer source specifying means to the physical page specified by the transfer destination indicating means,
The write destination management means newly manages another physical block as the write destination block when data is stored in all physical pages in the physical block managed as the write destination block,
The transfer destination management means newly manages another physical block as the transfer destination block when data is stored in all physical pages in the physical block managed as the transfer destination block,
The physical block managed as the write destination block by the write destination management unit and the physical block managed as the transfer destination block by the transfer destination management unit are different physical blocks.

本発明の第1の側面に従うメモリコントローラは、
フラッシュメモリ内の消去状態の物理ブロックのブロック数を管理する空きブロック管理手段を更に備え、
前記転送手段による有効データの転送は、前記ブロック数が所定値以下になったときに実行されることが好ましい。
A memory controller according to the first aspect of the present invention comprises:
A free block management means for managing the number of erased physical blocks in the flash memory;
The transfer of valid data by the transfer means is preferably executed when the number of blocks becomes a predetermined value or less.

本発明の第2の側面に従うフラッシュメモリシステムは、
本発明の第1の側面に従うメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備える。
A flash memory system according to the second aspect of the present invention comprises:
A memory controller according to the first aspect of the present invention;
A flash memory controlled by the memory controller is provided.

本発明の第3の側面に従うフラッシュメモリの制御方法は、
ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位であるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
フラッシュメモリ内の消去状態の物理ブロックを検索する空きブロック検索ステップと、
前記空きブロックステップにより検出された消去状態の物理ブロックを、書き込み先ブロックとして管理する書き込み先管理ステップと、
前記書き込み先管理ステップより前記書き込み先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番で、ホストシステムから与えられるデータを書き込む書き込みステップと、
前記空きブロック検索ステップにより検出された消去状態の物理ブロックを、転送先ブロックとして管理する転送先管理ステップと、
物理ブロック内の無効データが格納されている物理ページのページ数をカウントし、当該ページ数が一番大きい物理ブロックを特定する転送元特定ステップと、
前記転送先管理ステップより前記転送先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番で、前記転送元特定手段により特定された物理ブロックに格納されている有効データを転送する転送ステップとを備え、
前記書き込み先管理ステップでは、前記書き込み先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記書き込み先ブロックとして新たに管理し、
前記転送先管理ステップでは、前記転送先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記転送先ブロックとして新たに管理し、
前記書き込み先管理ステップにより前記書き込み先ブロックとして管理されている物理ブロックと前記転送先管理ステップにより前記転送先ブロックとして管理されている物理ブロックは異なる物理ブロックであることを特徴とする。
A control method of a flash memory according to the third aspect of the present invention includes:
A logical page including one or a plurality of logical sectors to which a logical address given by the host system is assigned is defined, and a physical block including a plurality of physical pages which are processing units of write processing is a processing unit of erasing processing. A flash memory control method for controlling access to a certain flash memory,
An empty block search step for searching for an erased physical block in the flash memory; and
A write destination management step for managing the physical block in the erased state detected by the empty block step as a write destination block;
A writing step of writing data provided from the host system in the order from the first page to the last page in the physical page in the physical block managed as the write destination block from the write destination management step;
A transfer destination management step of managing the erased physical block detected by the empty block search step as a transfer destination block;
A transfer source specifying step of counting the number of physical pages in which invalid data in the physical block is stored, and specifying a physical block having the largest number of pages;
The physical pages in the physical block managed as the transfer destination block by the transfer destination management step are stored in the physical block specified by the transfer source specifying means in the order from the first page to the last page. A transfer step for transferring data,
In the write destination management step, when data is stored in all physical pages in the physical block managed as the write destination block, another physical block is newly managed as the write destination block,
In the transfer destination management step, when data is stored in all physical pages in the physical block managed as the transfer destination block, another physical block is newly managed as the transfer destination block,
The physical block managed as the write destination block by the write destination management step and the physical block managed as the transfer destination block by the transfer destination management step are different physical blocks.

本発明の第3の側面に従うフラッシュメモリの制御方法は、
フラッシュメモリ内の消去状態の物理ブロックのブロック数を管理する空きブロック管理ステップを更に備え、
前記転送ステップによる有効データの転送は、前記ブロック数が所定値以下になったときに実行されることが好ましい。
A control method of a flash memory according to the third aspect of the present invention includes:
A free block management step for managing the number of erased physical blocks in the flash memory;
The transfer of valid data in the transfer step is preferably executed when the number of blocks becomes a predetermined value or less.

本発明によれば、フラッシュメモリ内の記憶領域の管理において、ホストシステムから与えられるデータの書き込み先になる物理ページの物理アドレスと、ブロック間転送で転送されるデータの転送先となる物理ページの物理アドレスが別々のポインタを用いて管理される。この記憶領域の管理により、ホストシステムから与えられるデータと、ブロック間転送で転送されるデータが、互いに異なる物理ブロックに格納される。ここで、ブロック間転送で転送されるデータは、書き換え頻度の低いデータである確率が高いため、書き換え頻度の低いデータと高いデータが効率的に分離される。そして、書き換え頻度の低いデータと高いデータが分離されることにより、書き換え頻度の低いデータがブロック間転送の対象になる頻度を低く抑えることができる。   According to the present invention, in the management of the storage area in the flash memory, the physical address of the physical page that becomes the write destination of the data given from the host system and the physical page that becomes the transfer destination of the data transferred by inter-block transfer Physical addresses are managed using separate pointers. By managing the storage area, data given from the host system and data transferred by inter-block transfer are stored in different physical blocks. Here, since data transferred by inter-block transfer has a high probability of being data with low rewrite frequency, data with low rewrite frequency and data with high rewrite frequency are efficiently separated. Then, by separating the data with low rewrite frequency from the data with high rewrite frequency, the frequency with which data with low rewrite frequency is subject to inter-block transfer can be kept low.

また、物理ブロックごとに、無効データを格納した物理ページのページ数が管理され、そのページ数が多い物理ブロックがブロック間転送の転送元として優先的に選択される。このようにブロック間転送の転送元の物理ブロックを選択することにより、転送元の物理ブロックの空きブロック化にかかる処理時間を短縮することができる。   For each physical block, the number of physical pages storing invalid data is managed, and a physical block with a large number of pages is preferentially selected as a transfer source for inter-block transfer. By selecting the transfer source physical block for inter-block transfer in this way, it is possible to shorten the processing time required for making the transfer source physical block free block.

図1は、本実施の形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。FIG. 1 is a block diagram schematically showing a flash memory system 1 according to the present embodiment. 図2は、ホストシステム側の論理アドレスと、フラッシュメモリ内の物理アドレスとの対応関係を示す図である。FIG. 2 is a diagram showing the correspondence between the logical address on the host system side and the physical address in the flash memory. 図3は、アドレス変換テーブルを示す図である。FIG. 3 is a diagram illustrating an address conversion table. 図4は、空きブロックテーブルを示す図である。FIG. 4 shows an empty block table. 図5は、物理ブロックカウンタテーブルを示す図である。FIG. 5 is a diagram illustrating a physical block counter table. 図6は、無効データページテーブルを示す図である。FIG. 6 is a diagram showing an invalid data page table. 図7は、ホストシステムから与えられるデータをフラッシュメモリに書き込む書き込み処理を説明するためのフローチャートである。FIG. 7 is a flowchart for explaining a writing process for writing data given from the host system into the flash memory. 図8は、物理ブロック間でデータを転送するブロック間転送処理説明するためのフローチャートである。FIG. 8 is a flowchart for explaining an inter-block transfer process for transferring data between physical blocks.

図1に示されているように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。   As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a memory controller 3 that controls the flash memory 2. The memory controller 3 is connected to the flash memory 2 via the internal bus 14.

フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。   The flash memory system 1 is connected to the host system 4 via the external bus 13. The host system 4 is composed of a CPU (Central Processing Unit) for controlling the entire operation of the host system 4, a companion chip for transferring information to and from the flash memory system 1, and the like. The host system 4 may be various information processing apparatuses such as a personal computer and a digital still camera that process various types of information such as characters, sounds, and image information.

メモリコントローラ3は、図1に示されているように、マイクロプロセッサ6と、ホストインターフェースブロック7と、SRAM8と、バッファメモリ9と、フラッシュメモリインターフェースブロック10と、誤り訂正ブロック11と、ROM(Read Only Memory)12とから構成される。
以下、各機能ブロックについて説明する。
As shown in FIG. 1, the memory controller 3 includes a microprocessor 6, a host interface block 7, an SRAM 8, a buffer memory 9, a flash memory interface block 10, an error correction block 11, and a ROM (Read Only Memory) 12.
Hereinafter, each functional block will be described.

ホストインターフェースブロック7は、ホストシステム4との間で行われるデータ、アドレス情報、ステータス情報、外部コマンド等の送受信を制御する。つまり、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、ホストシステム4から供給されるデータ等を取り込む。また、フラッシュメモリシステム1は、ホストインターフェースブロック7を介して、データ等をホストシステム4に供給する。外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。   The host interface block 7 controls transmission / reception of data, address information, status information, external commands and the like performed with the host system 4. That is, the flash memory system 1 captures data supplied from the host system 4 via the host interface block 7. The flash memory system 1 supplies data and the like to the host system 4 via the host interface block 7. The external command is a command for the host system 4 to instruct the flash memory system 1 to execute processing.

ホストインターフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2には、書き込むデータ又は読み出すデータのセクタ数が書き込まれる。LBA(Logical Block Address)レジスタR3には、書き込み又は読み出しを開始する論理セクタに対応するLBAが書き込まれる。LBAは、512バイトの容量を持った論理セクタに割り当てられたアドレスである。   The host interface block 7 includes a command register R1, a sector number register R2, and an LBA register R3. Information given from the host system 4 is written in the command register R1, the sector number register R2, and the LBA register R3. External commands such as a write command and a read command are written in the command register R1. In the sector number register R2, the number of sectors of data to be written or read is written. In an LBA (Logical Block Address) register R3, an LBA corresponding to a logical sector from which writing or reading is started is written. The LBA is an address assigned to a logical sector having a capacity of 512 bytes.

SRAM(Static Random Access Memory)8は、フラッシュメモリ2の制御に必要な情報を一時的に格納する揮発性メモリである。フラッシュメモリ2にアクセスするために必要な各種のテーブルは、SRAM8に保持され、SRAM8上で更新される。フラッシュメモリ2にアクセスするために必要なテーブルが、SRAM8に保持されていない場合は、そのテーブルはSRAM8上で作成される。但し、そのテーブルが、フラッシュメモリ2に格納されている場合は、格納されているテーブルがフラッシュメモリ2から読み出され、SRAM8に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。本発明では、アドレス変換テーブルは、論理ページと物理ページの対応関係を管理するためのテーブルである。さらに上記テーブル類に加えて、本発明ではホストシステムからのデータ書き込み用とブロック間のデータ転送先のための2つのポインタ情報を記憶する。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。   An SRAM (Static Random Access Memory) 8 is a volatile memory that temporarily stores information necessary for controlling the flash memory 2. Various tables necessary for accessing the flash memory 2 are held in the SRAM 8 and updated on the SRAM 8. When a table necessary for accessing the flash memory 2 is not held in the SRAM 8, the table is created on the SRAM 8. However, when the table is stored in the flash memory 2, the stored table is read from the flash memory 2 and held in the SRAM 8. The various tables include an address conversion table, a search table, a defective block table, and the like. In the present invention, the address conversion table is a table for managing the correspondence between logical pages and physical pages. In addition to the above tables, the present invention stores two pointer information for writing data from the host system and for data transfer destinations between blocks. The bad block table is a table for managing bad blocks.

バッファメモリ9は、フラッシュメモリ2から読み出したデータ、又はフラッシュメモリ2に書き込むデータを、一時的に保持する揮発性メモリである。   The buffer memory 9 is a volatile memory that temporarily holds data read from the flash memory 2 or data to be written to the flash memory 2.

フラッシュメモリインターフェースブロック10は、フラッシュメモリ2との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。   The flash memory interface block 10 controls transmission / reception of data, address information, status information, internal commands and the like performed with the flash memory 2. Here, the internal command is a command for the memory controller 3 to instruct the flash memory 2 to execute processing, and the flash memory 2 operates in accordance with the internal command given from the memory controller 3.

誤り訂正ブロック11は、フラッシュメモリ2にデータを書き込むときに、そのデータをBCH符号の誤り訂正符号(ECC:Error Correcting Code)に符号化し、フラッシュメモリ2から符号化されたデータを読み出したときに、その符号化されたデータを復号化する。つまり、フラッシュメモリ2に書き込まれるデータは、冗長ビットが付加されたBCH符号に符号化されてフラッシュメモリ2に書き込まれ、その符号化されたデータ(冗長ビットが付加されたデータ)は、読み出されたときに復号化される。この復号化では、符号化の際に付加される冗長ビットのビット数に応じて、所定のビット数までのビットエラーが訂正される。更に、誤り訂正ブロック11は、このBCH符号に基づいた訂正機能に加えて、当該訂正機能の訂正能力を超えるビット数のビットエラーが発生したことを検出する検出機能を備えている。   When the error correction block 11 writes data to the flash memory 2, the error correction block 11 encodes the data into an error correcting code (ECC) of the BCH code and reads the encoded data from the flash memory 2. The encoded data is decoded. That is, data written to the flash memory 2 is encoded into a BCH code to which redundant bits are added and written to the flash memory 2, and the encoded data (data to which redundant bits are added) is read. When decrypted, it is decrypted. In this decoding, bit errors up to a predetermined number of bits are corrected according to the number of redundant bits added at the time of encoding. In addition to the correction function based on the BCH code, the error correction block 11 has a detection function for detecting that a bit error having the number of bits exceeding the correction capability of the correction function has occurred.

ROM12は、フラッシュメモリ2を制御するために必要なファームウェアを格納するための不揮発性の記憶素子である。尚、フラッシュメモリシステム1を起動させるために必要な最小限のファームウェアだけをROM12に格納し、その他のファームウェアをフラッシュメモリ2に格納するようにしてもよい。   The ROM 12 is a non-volatile storage element for storing firmware necessary for controlling the flash memory 2. Note that only the minimum firmware necessary for starting up the flash memory system 1 may be stored in the ROM 12, and other firmware may be stored in the flash memory 2.

マイクロプロセッサ6は、ROM12又はフラッシュメモリ2から、ファームウェアを読み込み、ファームウェアに従って動作する。メモリコントローラ3に含まれる機能ブロックは、マイクロプロセッサ6により制御される。   The microprocessor 6 reads firmware from the ROM 12 or the flash memory 2 and operates according to the firmware. The functional blocks included in the memory controller 3 are controlled by the microprocessor 6.

フラッシュメモリ2は、NAND型フラッシュメモリであり、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。尚、フラッシュメモリには、SLC(Single Level Cell)タイプのメモリセルで構成されたものと、MLC(Multi Level Cell)タイプのメモリセルで構成されたものがある。   The flash memory 2 is a NAND flash memory, and includes a register and a memory cell array in which a plurality of memory cells are two-dimensionally arranged. The memory cell array includes a plurality of memory cell groups and word lines. Here, the memory cell group is a group in which a plurality of memory cells are connected in series. Each word line is for selecting a specific memory cell in the memory cell group. Data is written from the register to the selected memory cell or data is read from the selected memory cell to the register between the selected memory cell and the register via the word line. The flash memory includes a memory cell composed of SLC (Single Level Cell) type memory cells and a memory cell composed of MLC (Multi Level Cell) type memory cells.

NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。それぞれの物理ブロックは、複数のページ(物理ページ)で構成され、それぞれの物理ページは、ユーザ領域と冗長領域で構成されている。ユーザ領域は、ホストシステム4から与えられるデータを主に格納するための領域であり、冗長領域は、論理アドレス情報、ブロックステータス(フラグ)情報、ECC等の付加データを主に格納するための領域である。   In the NAND flash memory, a data read operation and a data write operation are performed in units of pages, and a data erase operation is performed in units of blocks (physical blocks). Each physical block is composed of a plurality of pages (physical pages), and each physical page is composed of a user area and a redundant area. The user area is an area for mainly storing data given from the host system 4, and the redundant area is an area for mainly storing additional data such as logical address information, block status (flag) information, ECC, and the like. It is.

論理アドレス情報は、当該情報に係る物理ページと対応する論理ページを特定するための情報である。ブロックステータス(フラグ)は、当該情報に係る物理ブロックが、不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス(フラグ)が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス(フラグ)を、ユーザ領域に書き込んでいる製造メーカもある。   The logical address information is information for specifying a logical page corresponding to the physical page related to the information. The block status (flag) is a flag indicating whether the physical block related to the information is a defective block (a physical block in which data cannot be normally written). The defective blocks include an initial defective block and a late defective block. The initial defective block is a defective block detected before shipment. A late defective block is a defective block generated during use. For an initial defective physical block, a block status (flag) indicating a defective block is written by the manufacturer. Some manufacturers also write a block status (flag) indicating the initial defective physical block in the user area.

次に、アドレス変換の手順と書き込みの制御方法について説明する。本発明では、図2に示すようにホストシステム側の論理アドレスと、フラッシュメモリ内の物理アドレスとを関係付けるためのアドレス変換をページ単位で行う。従って、ホストシステムのアクセス単位である論理セクタ(512バイト)が複数個含まれる論理ページを定義し、この論理ページ単位で、論理ページと物理ページとの対応関係を管理する。本実施の形態では、8セクタ(4096バイト)のユーザー領域を持つ物理ページで構成されたフラッシュメモリを用いる。従って、論理ページは、8個の論理セクタで構成されている。   Next, an address conversion procedure and a write control method will be described. In the present invention, as shown in FIG. 2, address conversion for associating a logical address on the host system side with a physical address in the flash memory is performed in units of pages. Accordingly, a logical page including a plurality of logical sectors (512 bytes) which are access units of the host system is defined, and the correspondence between the logical page and the physical page is managed in this logical page unit. In the present embodiment, a flash memory composed of physical pages having a user area of 8 sectors (4096 bytes) is used. Therefore, the logical page is composed of 8 logical sectors.

論理ページ番号(LPN)は、論理ページに付けられている通し番号である。物理ブロックアドレス(PBA)は、フラッシュメモリ内で物理ブロックに割り当てられているアドレスに対応する。物理ページ番号(PPN)は、各物理ブロック内の物理ページに付けられた各物理ブロック内での通し番号である。尚、物理ブロックアドレス(PBA)の下位側に物理ページ番号(PPN)を連結したものが、フラッシュメモリ内で物理ページに割り当てられている物理ページアドレス(PPA)に対応する。   The logical page number (LPN) is a serial number assigned to the logical page. The physical block address (PBA) corresponds to an address assigned to the physical block in the flash memory. The physical page number (PPN) is a serial number in each physical block assigned to a physical page in each physical block. Note that a physical page number (PPN) connected to the lower side of the physical block address (PBA) corresponds to a physical page address (PPA) assigned to a physical page in the flash memory.

論理ページ番号(LPN)から物理ページアドレス(PPA)の変換は、図3に示したようなアドレス変換テーブルを用いて行われる。このアドレス変換テーブルは、それぞれの論理ページ番号(LPN)に対応する物理ページアドレス(PPA)が格納される領域で構成されている。物理ページアドレス(PPA)は、物理ブロックアドレス(PBA)を示すビットと物理ブロック内の物理ページ番号(PPN)を示すビットで構成される。本実施例では、1つの論理ページ番号(LPN)あたり23Bitの領域で構成されている。この23Bitの領域のうち、上位15bitは物理ブロックアドレス(PBA)に対応し、下位8ビットは物理ページ番号(PPN)に対応する。   The conversion from the logical page number (LPN) to the physical page address (PPA) is performed using an address conversion table as shown in FIG. This address conversion table is configured by an area in which a physical page address (PPA) corresponding to each logical page number (LPN) is stored. The physical page address (PPA) includes a bit indicating a physical block address (PBA) and a bit indicating a physical page number (PPN) in the physical block. In this embodiment, each logical page number (LPN) is composed of a 23-bit area. Of the 23-bit area, the upper 15 bits correspond to the physical block address (PBA), and the lower 8 bits correspond to the physical page number (PPN).

本実施の形態では、ホストシステムから与えられるデータの書き込み先の物理ページアドレス(PPA)を書き込みポインタ(WP)に基づいて管理し、物理ブロック間でデータを転送するときの転送先の物理ページアドレス(PPA)を転送ポインタ(TP)に基づいて管理する。また、ホストシステムから与えられるデータの書き込み先となる物理ブロックと、物理ブロック間でデータを転送するときの転送先となる物理ブロックは、互いに異なる物理ロックに管理されている。従って、書き込みポインタ(WP)により指示される物理ページアドレス(PPA)の物理ページが属する物理ブロックと、転送ポインタ(TP)により指示される物理ページアドレス(PPA)の物理ページが属する物理ブロックは、互いに異なる物理ブロックになる。   In this embodiment, the physical page address (PPA) of the data write destination given from the host system is managed based on the write pointer (WP), and the physical page address of the transfer destination when data is transferred between physical blocks. (PPA) is managed based on the transfer pointer (TP). In addition, a physical block that is a write destination of data given from the host system and a physical block that is a transfer destination when data is transferred between the physical blocks are managed by different physical locks. Therefore, the physical block to which the physical page of the physical page address (PPA) indicated by the write pointer (WP) belongs and the physical block to which the physical page of the physical page address (PPA) indicated by the transfer pointer (TP) belong are The physical blocks are different from each other.

ホストシステムから書き込みデータとLBA等の情報与えられた場合、書き込みポインタ(WP)により、書き込み先の物理ページの物理ページアドレス(PPA)を取得する。そして、その物理ページアドレス(PPA)の物理ページにホストシステムから与えられるデータが書き込まれる。このデータの書き込みに伴い、アドレス変換テーブルの更新が行われる。このアドレス変換テーブルでは、書き込んだデータの論理ページ番号(LPN)に対応する領域に、その領域の物理ページアドレス(PPA)が書き込まれる。尚、書き込むデータに対応する論理ページ番号(LPN)は、ホストシステムから与えられるLBA等に基づいて求められる。   When write data and information such as LBA are given from the host system, the physical page address (PPA) of the physical page of the write destination is acquired by the write pointer (WP). Then, data given from the host system is written to the physical page of the physical page address (PPA). As the data is written, the address conversion table is updated. In this address conversion table, the physical page address (PPA) of the area is written in the area corresponding to the logical page number (LPN) of the written data. The logical page number (LPN) corresponding to the data to be written is obtained based on LBA or the like given from the host system.

ブロック間転送を行う場合、転送ポインタ(TP)により、転送先の物理ページの物理ページアドレス(PPA)を取得する。そして、その物理ページアドレス(PPA)の物理ページに転送元のデータが転送される。   When inter-block transfer is performed, a physical page address (PPA) of a transfer destination physical page is acquired by a transfer pointer (TP). Then, the transfer source data is transferred to the physical page of the physical page address (PPA).

消去状態の物理ブロック又は有効なデータが格納されていない物理ブロックである空きブロックは、図4に示したような空きブロックテーブルを用いて管理される。この空きブロックテーブルでは、フラッシュメモリ内の各物理ブロックがテーブル上の1つのビットに割り当てられている。そして、それぞれのビットの論理値(“0”又は“1”)が、そのビットに割り当てられている物理ブロックが空きブロックに該当するか否かを示している。この例では、論理値“0”が空きブロックに該当することを示し、論理値“1”が空きブロックに該当しないことを示す。また、空きブロックテーブル上の各アドレスには、1バイト(8ビット)の領域が割り当てられている。そして、テーブル全体では、アドレス#0〜アドレス#2047までの2048バイトの領域が、この空きブロックテーブル用の領域として使用される。例えば、アドレス#0の最下位ビットから最上位ビットまでの8ビットに、物理ブロックアドレス(PBA)#0から#7までの8個の物理ブロックがそれぞれ割り当てられている。アドレス#1の最下位ビットから最上位ビットまでの8ビットに、物理ブロックアドレス(PBA)#8から#15までの8個の物理ブロックがそれぞれ割り当てられている。以下同様に、物理ブロックアドレス(PBA)#16から#16383までの物理ブロックが順次割り当てられている。   An empty block, which is an erased physical block or a physical block in which no valid data is stored, is managed using an empty block table as shown in FIG. In this empty block table, each physical block in the flash memory is assigned to one bit on the table. The logical value (“0” or “1”) of each bit indicates whether or not the physical block assigned to that bit corresponds to an empty block. In this example, a logical value “0” indicates that it corresponds to an empty block, and a logical value “1” indicates that it does not correspond to an empty block. A 1-byte (8-bit) area is assigned to each address on the empty block table. In the entire table, an area of 2048 bytes from address # 0 to address # 2047 is used as an area for this empty block table. For example, eight physical blocks of physical block addresses (PBA) # 0 to # 7 are allocated to 8 bits from the least significant bit to the most significant bit of address # 0. Eight physical blocks from physical block addresses (PBA) # 8 to # 15 are assigned to 8 bits from the least significant bit to the most significant bit of address # 1, respectively. Similarly, physical blocks from physical block addresses (PBA) # 16 to # 16383 are sequentially assigned.

書き込みポインタ(WP)は、ホストシステムから与えられるデータの書き込み先として割り当てられた物理ブロック内の物理ページの物理ページアドレス(PPA)を先頭ページから末尾ページに向かって順次指定する。転送ポインタ(TP)は、物理ブロック間でデータを転送するときの転送先として割り当てられた物理ブロック内の物理ページの物理ページアドレス(PPA)を先頭ページから末尾ページに向かって順次指定する。   The write pointer (WP) sequentially specifies the physical page address (PPA) of the physical page in the physical block assigned as the write destination of the data given from the host system from the first page to the last page. The transfer pointer (TP) sequentially specifies the physical page address (PPA) of the physical page in the physical block assigned as the transfer destination when transferring data between the physical blocks from the first page to the last page.

従って、書き込みポインタ(WP)又は転送ポインタ(TP)の指定対象として割り当てられた物理ブロックについては、その物理ブロックに対応する空きブロックテーブル上のビットの論理値が、“0”から“1”に変更される。   Therefore, for the physical block assigned as the designation target of the write pointer (WP) or transfer pointer (TP), the logical value of the bit on the empty block table corresponding to the physical block changes from “0” to “1”. Be changed.

ブロック間転送の転送元の物理ブロックに格納されている全ての有効データが、転送先の物理ブロックに転送されることにより、この転送元の物理ブロックは空きブロック化する。この転送元の物理ブロックが空きブロック化したときに、この転送元の物理ブロックに対応する空きブロックテーブル上のビットの論理値が、“1”から“0”に変更される。   All the valid data stored in the transfer-source physical block of the inter-block transfer is transferred to the transfer-destination physical block, so that the transfer-source physical block becomes an empty block. When the transfer-source physical block becomes an empty block, the logical value of the bit on the empty block table corresponding to the transfer-source physical block is changed from “1” to “0”.

物理ブロック内の無効データが格納されている物理ページのページ数は、図5に示されているような物理ブロックカウンタテーブルで管理される。この物理ブロックカウンタテーブルでは、物理ブロック毎に、その物理ブロック内の無効データが格納されている物理ページのページ数の値を保持している。ここで、無効データとは、新たなデータによって置き換えられたデータのことを指す。ホストシステムから与えられたデータを、書き込みポインタ(WP)により指示される物理ページアドレス(PPA)の物理ページに書き込んだときに、そのデータによって置き換えられたデータは、無効データになる。つまり、データを書き込んだときに、そのデータと同じ論理ページに対応する旧データがあった場合、その旧データが有効データから無効データに変わる。従って、データを書き込んだときに、その旧データが格納されている物理ブロック内の無効データが格納されている物理ページのページ数は1つ増加する。このように物理ブロック内の無効データが格納されている物理ページのページ数が増加した場合、物理ブロックカウンタテーブルに保持されているページ数の値が更新される。   The number of physical pages storing invalid data in the physical block is managed by a physical block counter table as shown in FIG. In the physical block counter table, for each physical block, the value of the number of physical pages in which invalid data in the physical block is stored is held. Here, invalid data refers to data replaced by new data. When data given from the host system is written to the physical page at the physical page address (PPA) indicated by the write pointer (WP), the data replaced by the data becomes invalid data. That is, when data is written and there is old data corresponding to the same logical page as the data, the old data changes from valid data to invalid data. Therefore, when data is written, the number of physical pages in which invalid data is stored in the physical block in which the old data is stored increases by one. Thus, when the number of pages of physical pages storing invalid data in a physical block increases, the value of the number of pages held in the physical block counter table is updated.

本実施の形態では、1個の物理ブロックが64ページの物理ページで構成されている。従って、物理ブロックカウンタテーブルに保持されている無効データが格納されている物理ページのページ数の値は、“0”から“64”まで間で変化する。このページ数の値が“64”になった物理ブロックは、有効データが格納されていないため、消去処理され、空きブロックとして取り扱われる。   In the present embodiment, one physical block is composed of 64 physical pages. Accordingly, the value of the number of physical pages in which invalid data held in the physical block counter table is stored varies from “0” to “64”. Since the physical block with the page number value of “64” does not store valid data, it is erased and handled as an empty block.

各物理ブロック内の無効データが格納されている物理ページは、図6に示されているような無効データページテーブルで管理されている。この無効データページテーブルでは、フラッシュメモリ内の各物理ページがテーブル上の1つのビットに割り当てられている。そして、それぞれのビットの論理値(“0”又は“1”)が、そのビットに割り当てられている物理ページに格納されているデータが無効データに該当するか否かを示している。この例では、論理値“0”が格納されているデータが無効データに該当しないことを示し、論理値“1”が格納されているデータが無効データに該当することを示す。つまり、物理ページにデータが格納されていないとき又は有効データが格納されているときは、その物理ページに対応するビットの論理値が“0”になり、物理ページに無効データが格納されているときは、その物理ページに対応するビットの論理値が“1”になる。また、無効データページテーブル上の各アドレスには、1バイト(8ビット)の領域が割り当てられている。そして、テーブル全体では、アドレス#0〜アドレス#524287までの524288バイトの領域が、この無効データページテーブル用の領域として使用される。例えば、アドレス#0の最下位ビットから最上位ビットまでの8ビットに、物理ブロックアドレス(PBA)#0の物理ブロック内の物理ページ番号(PPN)#0から#7までの8個の物理ページがそれぞれ割り当てられている。アドレス#1の最下位ビットから最上位ビットまでの8ビットに、物理ブロックアドレス(PBA)#0の物理ブロック内の物理ページ番号(PPN)#8から#15までの8個の物理ページがそれぞれ割り当てられている。このように、物理ブロックアドレス(PBA)#0から#16383までの物理ブロック内の物理ページが順次割り当てられている。   A physical page in which invalid data in each physical block is stored is managed by an invalid data page table as shown in FIG. In this invalid data page table, each physical page in the flash memory is assigned to one bit on the table. The logical value (“0” or “1”) of each bit indicates whether or not the data stored in the physical page assigned to the bit corresponds to invalid data. In this example, data indicating that the logical value “0” is stored does not correspond to invalid data, and data indicating that the logical value “1” is stored corresponds to invalid data. That is, when no data is stored in the physical page or valid data is stored, the logical value of the bit corresponding to the physical page is “0”, and invalid data is stored in the physical page. In this case, the logical value of the bit corresponding to the physical page becomes “1”. A 1-byte (8-bit) area is assigned to each address on the invalid data page table. In the entire table, an area of 524288 bytes from address # 0 to address # 524287 is used as an area for this invalid data page table. For example, 8 physical pages from physical page number (PPN) # 0 to # 7 in the physical block of physical block address (PBA) # 0 are added to 8 bits from the least significant bit to the most significant bit of address # 0. Are assigned to each. Eight physical pages from physical page number (PPN) # 8 to # 15 in the physical block of physical block address (PBA) # 0 are respectively included in the 8 bits from the least significant bit to the most significant bit of address # 1. Assigned. In this way, the physical pages in the physical blocks having physical block addresses (PBA) # 0 to # 16383 are sequentially allocated.

次に、ホストシステムから与えられるデータをフラッシュメモリに書き込む書き込み処理を、図7を参照して説明する。
ステップ1:
ホストシステムから与えられる1ページ分のデータが、書き込みポインタ(WP)により指示される物理ページアドレス(PPA)の物理ページに書き込まれる。
ステップ2:
書き込みポインタ(WP)により指示される物理ページアドレス(PPA)の物理ページが、物理ブロック内の末尾の物理ページであるか否かが判断される。書き込みポインタ(WP)により指示される物理ページアドレス(PPA)の物理ページが、物理ブロック内の末尾の物理ページであると判断された場合、ステップ3に進む。書き込みポインタ(WP)により指示される物理ページアドレス(PPA)の物理ページが、物理ブロック内の末尾の物理ページでないと判断された場合、ステップ6に進む。
ステップ3:
空きブロックテーブルを用いた空きブロック検索が行われる。
ステップ4:
ステップ3の空きブロック検索で検出された物理ブロック内の先頭の物理ページに対応する物理ページアドレス(PPA)が書き込みポインタ(WP)に設定される。
ステップ5:
空きブロックテーブルを更新する。つまり、ステップ3の空きブロック検索で検出された物理ブロックに対応するビットの論理値が、“0”から“1”に変更される。
ステップ6:
書き込みポインタ(WP)に設定されている物理ページアドレス(PPA)の値がインクリメントされる。つまり、書き込みポインタ(WP)に設定されている物理ページアドレス(PPA)の値が、その次の物理ページの物理ページアドレス(PPA)に変更される。
Next, a writing process for writing data given from the host system into the flash memory will be described with reference to FIG.
Step 1:
One page of data provided from the host system is written to the physical page at the physical page address (PPA) indicated by the write pointer (WP).
Step 2:
It is determined whether or not the physical page at the physical page address (PPA) indicated by the write pointer (WP) is the last physical page in the physical block. If it is determined that the physical page of the physical page address (PPA) indicated by the write pointer (WP) is the last physical page in the physical block, the process proceeds to step 3. If it is determined that the physical page at the physical page address (PPA) indicated by the write pointer (WP) is not the last physical page in the physical block, the process proceeds to step 6.
Step 3:
An empty block search using an empty block table is performed.
Step 4:
The physical page address (PPA) corresponding to the first physical page in the physical block detected by the empty block search in step 3 is set in the write pointer (WP).
Step 5:
Update the free block table. That is, the logical value of the bit corresponding to the physical block detected by the empty block search in step 3 is changed from “0” to “1”.
Step 6:
The value of the physical page address (PPA) set in the write pointer (WP) is incremented. That is, the value of the physical page address (PPA) set in the write pointer (WP) is changed to the physical page address (PPA) of the next physical page.

このように、ホストシステムから与えられるデータは、ホストシステムから与えられるデータの書き込み先として割り当てられた物理ブロック内の物理ページに、先頭の物理ページから末尾の物理ページに向かって順次書き込まれていく。そして、全ての物理ページにデータが書き込まれたときに、新たな物理ブロック(空きブロック)が、ホストシステムから与えられるデータの書き込み先として新たに割り当てられる。   As described above, data given from the host system is sequentially written from the first physical page to the last physical page in the physical page in the physical block assigned as the write destination of the data given from the host system. . When data is written to all physical pages, a new physical block (empty block) is newly assigned as a data write destination given from the host system.

また、ホストシステムから与えられるデータを、書き込み先の物理ブロック内の物理ページに書き込んだときに、そのデータと同じ論理ページ番号(LPN)に対応する旧データが存在する場合、つまり、そのデータが書き込まれることにより無効データになるデータがある場合、物理ブロックカウンタテーブルと無効データページテーブルの更新が行われる。   In addition, when data given from the host system is written to a physical page in the physical block of the write destination, if there is old data corresponding to the same logical page number (LPN) as that data, that is, the data is When there is data that becomes invalid data by being written, the physical block counter table and the invalid data page table are updated.

物理ブロックカウンタテーブルの更新では、この無効データになるデータが格納されている物理ページが属する物理ブロックに対応するページ数の値、つまり、この物理ブロック内の無効データが格納されている物理ページのページ数を示す値がインクリメントされる。このように、ホストシステムから与えられるデータが書き込まれることにより無効データになるデータがある場合、そのデータが格納されている物理ページが属する物理ブロックに対応するページ数の値が1増加する。   In updating the physical block counter table, the value of the number of pages corresponding to the physical block to which the physical page storing the invalid data is stored, that is, the physical page storing the invalid data in the physical block. A value indicating the number of pages is incremented. As described above, when there is data that becomes invalid data by writing data given from the host system, the value of the number of pages corresponding to the physical block to which the physical page storing the data belongs increases by one.

無効データページテーブルの更新では、ホストシステムから与えられるデータが書き込まれることにより無効データになるデータがある場合、そのデータが格納されている物理ページに対応するビットの論理値が、“0”から“1”に変更される。   In the update of the invalid data page table, when there is data that becomes invalid data by writing the data given from the host system, the logical value of the bit corresponding to the physical page storing the data is changed from “0”. It is changed to “1”.

次に、物理ブロック間でデータを転送するブロック間転送処理を、図8を参照して説明する。このブロック間転送処理は、転送元の物理ブロックを空きブロック化するために行われる処理であり、フラッシュメモリ内の空きブロックの個数が、所定の個数以下になったときに行われる
ステップ1:
物理ブロックカウンタテーブルを参照し、無効データが格納されている物理ページのページ数を示す値が最も“64”
に近い物理ブロックを特定する。更に、その物理ブロック内の有効データが格納されている物理ページのページ数を求める。無効データが格納されている物理ページのページ数を示す値がnの場合、有効データが格納されている物理ページのページ数は64−nになる。
ステップ2:
無効データページテーブルを参照し、ステップ1で特定された物理ブロック内の有効データが格納されている物理ページを特定する。そして、ステップ1で特定された物理ブロック内の1ページ分の有効データを、転送ポインタ(TP)により指示される物理ページアドレス(PPA)の物理ページに転送(複写)する。
ステップ3:
転送ポインタ(TP)により指示される物理ページアドレス(PPA)の物理ページが、物理ブロック内の末尾の物理ページであるか否かが判断される。転送ポインタ(TP)により指示される物理ページアドレス(PPA)の物理ページが、物理ブロック内の末尾の物理ページであると判断された場合、ステップ4に進む。転送ポインタ(TP)により指示される物理ページアドレス(PPA)の物理ページが、物理ブロック内の末尾の物理ページでないと判断された場合、ステップ7に進む。
ステップ4:
空きブロックテーブルを用いた空きブロック検索が行われる。
ステップ5:
ステップ4の空きブロック検索で検出された物理ブロック内の先頭の物理ページに対応する物理ページアドレス(PPA)が転送ポインタ(TP)に設定される。
ステップ6:
空きブロックテーブルを更新する。つまり、ステップ4の空きブロック検索で検出された物理ブロックに対応するビットの論理値が、“0”から“1”に変更される。
ステップ7:
転送ポインタ(TP)に設定されている物理ページアドレス(PPA)の値がインクリメントされる。つまり、転送ポインタ(TP)に設定されている物理ページアドレス(PPA)の値が、その次の物理ページの物理ページアドレス(PPA)に変更される。
ステップ8:
ステップ1で特定された物理ブロック内に有効データが格納されている物理ページが残っている場合は、ステップ2に戻り、有効データが格納されている物理ページが残っていない場合は、ブロック間転送処理を終了する。つまり、有効データが格納されている物理ページのページ数分のデータが転送された後に、ブロック間転送処理を終了する。
Next, an inter-block transfer process for transferring data between physical blocks will be described with reference to FIG. This inter-block transfer process is a process performed to make a transfer source physical block into an empty block, and is performed when the number of empty blocks in the flash memory becomes equal to or less than a predetermined number.
With reference to the physical block counter table, the value indicating the number of physical pages in which invalid data is stored is the most “64”.
Identify physical blocks close to. Further, the number of physical pages in which valid data in the physical block is stored is obtained. If the value indicating the number of physical pages in which invalid data is stored is n, the number of physical pages in which valid data is stored is 64-n.
Step 2:
By referring to the invalid data page table, a physical page in which valid data in the physical block identified in step 1 is stored is identified. Then, the valid data for one page in the physical block identified in step 1 is transferred (copied) to the physical page at the physical page address (PPA) indicated by the transfer pointer (TP).
Step 3:
It is determined whether or not the physical page at the physical page address (PPA) indicated by the transfer pointer (TP) is the last physical page in the physical block. If it is determined that the physical page of the physical page address (PPA) indicated by the transfer pointer (TP) is the last physical page in the physical block, the process proceeds to step 4. If it is determined that the physical page of the physical page address (PPA) indicated by the transfer pointer (TP) is not the last physical page in the physical block, the process proceeds to step 7.
Step 4:
An empty block search using an empty block table is performed.
Step 5:
The physical page address (PPA) corresponding to the first physical page in the physical block detected by the empty block search in step 4 is set in the transfer pointer (TP).
Step 6:
Update the free block table. That is, the logical value of the bit corresponding to the physical block detected by the empty block search in step 4 is changed from “0” to “1”.
Step 7:
The value of the physical page address (PPA) set in the transfer pointer (TP) is incremented. That is, the value of the physical page address (PPA) set in the transfer pointer (TP) is changed to the physical page address (PPA) of the next physical page.
Step 8:
If there is a physical page in which valid data is stored in the physical block identified in step 1, return to step 2; if there is no physical page in which valid data is stored, transfer between blocks. End the process. That is, after the data corresponding to the number of physical pages in which valid data is stored is transferred, the inter-block transfer process is terminated.

このように、ブロック間転送処理より転送されるデータは、その転送先として割り当てられた物理ブロック内の物理ページに、先頭の物理ページから末尾の物理ページに向かって順次書き込まれていく。そして、全ての物理ページにデータが書き込まれたときに、新たな物理ブロック(空きブロック)が、ブロック間転送処理より転送されるデータの転送先として新たに割り当てられる。   In this way, the data transferred by the inter-block transfer process is sequentially written from the first physical page to the last physical page on the physical page in the physical block assigned as the transfer destination. When data is written to all physical pages, a new physical block (empty block) is newly allocated as a transfer destination of data transferred by the inter-block transfer process.

また、ブロック間転送処理が終了した後に、転送元の物理ブロックは消去処理され、それに伴って物理ブロックカウンタテーブルと無効データページテーブルの更新が行われる。物理ブロックカウンタテーブルの更新では、転送元の物理ブロック内の無効データが格納されている物理ページのページ数を示す値が“0”に再設定される。無効データページテーブルの更新では、転送元の物理ブロック内の各物理ページに対応するビットの論理値が“0”に再設定される。   Further, after the inter-block transfer process is completed, the transfer source physical block is erased, and the physical block counter table and the invalid data page table are updated accordingly. In the update of the physical block counter table, the value indicating the number of physical pages in which invalid data in the transfer source physical block is stored is reset to “0”. In updating the invalid data page table, the logical value of the bit corresponding to each physical page in the transfer source physical block is reset to “0”.

ブロック間転送処理より転送されるデータは、書き換え頻度が低いデータである確率が高いため、ブロック間転送処理より転送されるデータの転送先の物理ブロックとホストシステムから与えられるデータの書き込み先の物理ブロックを異なる物理ブロックにすることにより、相対的に書き換え頻度が低いデータと相対的に書き換え頻度が高いデータが効率的に分離される。このように相対的に書き換え頻度が低いデータと相対的に書き換え頻度が高いデータが、互いに異なる物理ブロックに分離して格納されることにより、ブロック間転送処理が実行される回数やそのブロック間転送処理により転送されるデータの総量が低減される。   The data transferred by the inter-block transfer process has a high probability of being data with a low rewrite frequency. By making the blocks different physical blocks, data with relatively low rewrite frequency and data with relatively high rewrite frequency are efficiently separated. In this way, data with relatively low rewrite frequency and data with relatively high rewrite frequency are stored separately in different physical blocks, so that the number of times that inter-block transfer processing is executed and the transfer between the blocks The total amount of data transferred by processing is reduced.

以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々の変更を加え得ることは勿論である。   Although the embodiment of the present invention has been described above, this is an example for explaining the present invention, and the scope of the present invention is not limited to this embodiment. Of course, various modifications can be made without departing from the scope of the present invention.

例えば、複数のフラッシュメモリをアクセスするために複数のチャンネルのバスを備えたフラッシュメモリシステムにおいても本発明は有効である。各チャンネルに接続された複数のフラッシュメモリから、それぞれ選択された複数の物理ブロックを、ひとつの仮想ブロックとして定義する。さらにその仮想ブロックを構成する複数の物理ブロックにそれぞれ含まれる複数の物理ページを、ひとつの仮想ページと定義する。この様な仮想空間に対しても本発明は適用可能である。その場合、ホストシステムのLBA空間からフラッシュメモリ内の物理アドレスへのアドレス変換は、仮想ページの単位で行われる。つまり、ひとつの論理ページはひとつの仮想ページに割り当てられる。従って、論理ページのサイズは、仮想ページのユーザデータ領域の合計値に一致する。   For example, the present invention is also effective in a flash memory system having a plurality of channel buses for accessing a plurality of flash memories. A plurality of physical blocks respectively selected from a plurality of flash memories connected to each channel are defined as one virtual block. Furthermore, a plurality of physical pages respectively included in a plurality of physical blocks constituting the virtual block are defined as one virtual page. The present invention can also be applied to such a virtual space. In that case, the address conversion from the LBA space of the host system to the physical address in the flash memory is performed in units of virtual pages. That is, one logical page is assigned to one virtual page. Therefore, the size of the logical page matches the total value of the user data area of the virtual page.

本発明は、種々のデジタル情報を取り扱うパーソナルコンピュータやデジタルスチルカメラ等の電子機器に装着又内蔵される情報記憶(記録)装置に適用することができる。   The present invention can be applied to an information storage (recording) device mounted on or built in an electronic device such as a personal computer or a digital still camera that handles various digital information.

1…フラッシュメモリシステム、2…フラッシュメモリ、3…メモリコントローラ 1 ... flash memory system, 2 ... flash memory, 3 ... memory controller

Claims (5)

ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位であるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
フラッシュメモリ内の消去状態の物理ブロックを検索する空きブロック検索手段と、
前記空きブロック検索手段により検出された消去状態の物理ブロックを、書き込み先ブロックとして管理する書き込み先管理手段と、
前記書き込み先管理手段より前記書き込み先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番でデータが格納されていくように、当該物理ブロック内の格納先の物理ページを指示する書き込み先指示手段と、
ホストシステムから与えられるデータを、前記書き込み先指示手段により指示されている物理ページに書き込む書き込み手段と、
前記空きブロック検索手段により検出された消去状態の物理ブロックを、転送先ブロックとして管理する転送先管理手段と、
物理ブロック内の無効データが格納されている物理ページのページ数をカウントし、当該ページ数が一番大きい物理ブロックを特定する転送元特定手段と、
前記転送先管理手段より前記転送先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番でデータが格納されていくように、当該物理ブロック内の格納先の物理ページを指示する転送先指示手段と、
前記転送元特定手段により特定された物理ブロックに格納されている有効データを、前記転送先指示手段により指示されている物理ページに転送する転送手段とを備え、
前記書き込み先管理手段は、前記書き込み先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記書き込み先ブロックとして新たに管理し、
前記転送先管理手段は、前記転送先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記転送先ブロックとして新たに管理し、
前記書き込み先管理手段により前記書き込み先ブロックとして管理されている物理ブロックと前記転送先管理手段により前記転送先ブロックとして管理されている物理ブロックは異なる物理ブロックであることを特徴とするメモリコントローラ。
A logical page including one or a plurality of logical sectors to which a logical address given by the host system is assigned is defined, and a physical block including a plurality of physical pages which are processing units of write processing is a processing unit of erasing processing. A memory controller that controls access to a flash memory,
An empty block search means for searching for an erased physical block in the flash memory,
Write destination management means for managing the physical block in the erased state detected by the empty block search means as a write destination block;
The physical of the storage destination in the physical block is stored so that the data is stored in the physical page in the physical block managed as the write destination block by the write destination management unit in the order from the first page to the last page. Write destination instruction means for indicating a page;
Writing means for writing data given from the host system to the physical page instructed by the writing destination instruction means;
Transfer destination management means for managing a physical block in the erased state detected by the empty block search means as a transfer destination block;
A transfer source specifying means for counting the number of physical pages in which invalid data in the physical block is stored, and specifying a physical block having the largest number of pages;
The physical storage in the physical block is stored in the physical page in the physical block managed as the transfer destination block by the transfer destination management unit so that data is stored in the order from the first page to the last page. A transfer destination instruction means for indicating a page;
Transfer means for transferring valid data stored in the physical block specified by the transfer source specifying means to the physical page specified by the transfer destination indicating means,
The write destination management means newly manages another physical block as the write destination block when data is stored in all physical pages in the physical block managed as the write destination block,
The transfer destination management means newly manages another physical block as the transfer destination block when data is stored in all physical pages in the physical block managed as the transfer destination block,
The memory controller, wherein the physical block managed as the write destination block by the write destination management means and the physical block managed as the transfer destination block by the transfer destination management means are different physical blocks.
フラッシュメモリ内の消去状態の物理ブロックのブロック数を管理する空きブロック管理手段を更に備え、
前記転送手段による有効データの転送は、前記ブロック数が所定値以下になったときに実行されることを特徴とする請求項1に記載のメモリコントローラ。
A free block management means for managing the number of erased physical blocks in the flash memory;
2. The memory controller according to claim 1, wherein transfer of valid data by the transfer means is executed when the number of blocks becomes a predetermined value or less.
請求項1又は2に記載のメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備えるフラッシュメモリシステム。
Memory controller according to claim 1 or 2,
A flash memory system comprising a flash memory controlled by the memory controller.
ホストシステムから与えられる論理アドレスが割り当てられている論理セクタを1個又は複数個含む論理ページを定義して、書き込み処理の処理単位である物理ページを複数個含む物理ブロックが消去処理の処理単位であるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
フラッシュメモリ内の消去状態の物理ブロックを検索する空きブロック検索ステップと、
前記空きブロックステップにより検出された消去状態の物理ブロックを、書き込み先ブロックとして管理する書き込み先管理ステップと、
前記書き込み先管理ステップより前記書き込み先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番で、ホストシステムから与えられるデータを書き込む書き込みステップと、
前記空きブロック検索ステップにより検出された消去状態の物理ブロックを、転送先ブロックとして管理する転送先管理ステップと、
物理ブロック内の無効データが格納されている物理ページのページ数をカウントし、当該ページ数が一番大きい物理ブロックを特定する転送元特定ステップと、
前記転送先管理ステップより前記転送先ブロックとして管理されている物理ブロック内の物理ページに、先頭ページから末尾ページに向かう順番で、前記転送元特定手段により特定された物理ブロックに格納されている有効データを転送する転送ステップとを備え、
前記書き込み先管理ステップでは、前記書き込み先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記書き込み先ブロックとして新たに管理し、
前記転送先管理ステップでは、前記転送先ブロックとして管理している物理ブロック内の全ての物理ページにデータが格納されたときに、別の物理ブロックを前記転送先ブロックとして新たに管理し、
前記書き込み先管理ステップにより前記書き込み先ブロックとして管理されている物理ブロックと前記転送先管理ステップにより前記転送先ブロックとして管理されている物理ブロックは異なる物理ブロックであることを特徴とするフラッシュメモリの制御方法。
A logical page including one or a plurality of logical sectors to which a logical address given by the host system is assigned is defined, and a physical block including a plurality of physical pages which are processing units of write processing is a processing unit of erasing processing. A flash memory control method for controlling access to a certain flash memory,
An empty block search step for searching for an erased physical block in the flash memory; and
A write destination management step for managing the physical block in the erased state detected by the empty block step as a write destination block;
A writing step of writing data provided from the host system in the order from the first page to the last page in the physical page in the physical block managed as the write destination block from the write destination management step;
A transfer destination management step of managing the erased physical block detected by the empty block search step as a transfer destination block;
A transfer source specifying step of counting the number of physical pages in which invalid data in the physical block is stored, and specifying a physical block having the largest number of pages;
The physical pages in the physical block managed as the transfer destination block by the transfer destination management step are stored in the physical block specified by the transfer source specifying means in the order from the first page to the last page. A transfer step for transferring data,
In the write destination management step, when data is stored in all physical pages in the physical block managed as the write destination block, another physical block is newly managed as the write destination block,
In the transfer destination management step, when data is stored in all physical pages in the physical block managed as the transfer destination block, another physical block is newly managed as the transfer destination block,
Control of a flash memory, wherein the physical block managed as the write destination block by the write destination management step and the physical block managed as the transfer destination block by the transfer destination management step are different physical blocks Method.
フラッシュメモリ内の消去状態の物理ブロックのブロック数を管理する空きブロック管理ステップを更に備え、
前記転送ステップによる有効データの転送は、前記ブロック数が所定値以下になったときに実行されることを特徴とする請求項4に記載のフラッシュメモリの制御方法。
A free block management step for managing the number of erased physical blocks in the flash memory;
5. The flash memory control method according to claim 4, wherein the transfer of valid data in the transfer step is executed when the number of blocks becomes a predetermined value or less.
JP2010211428A 2010-09-21 2010-09-21 Memory controller, flash memory system with memory controller, and control method of flash memory Withdrawn JP2012068765A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010211428A JP2012068765A (en) 2010-09-21 2010-09-21 Memory controller, flash memory system with memory controller, and control method of flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010211428A JP2012068765A (en) 2010-09-21 2010-09-21 Memory controller, flash memory system with memory controller, and control method of flash memory

Publications (1)

Publication Number Publication Date
JP2012068765A true JP2012068765A (en) 2012-04-05

Family

ID=46166011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010211428A Withdrawn JP2012068765A (en) 2010-09-21 2010-09-21 Memory controller, flash memory system with memory controller, and control method of flash memory

Country Status (1)

Country Link
JP (1) JP2012068765A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014203315A1 (en) * 2013-06-17 2014-12-24 富士通株式会社 Information processing device, control circuit, control program, and control method
WO2014203316A1 (en) * 2013-06-17 2014-12-24 富士通株式会社 Information processing device, control circuit, control program, and control method
JP2015001909A (en) * 2013-06-17 2015-01-05 富士通株式会社 Information processing apparatus, control circuit, control program, and control method
CN113434438A (en) * 2021-06-15 2021-09-24 武汉天喻信息产业股份有限公司 Method for prolonging writing life of FLASH of smart card
JP2022137330A (en) * 2021-03-09 2022-09-22 株式会社デンソー Memory control method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014203315A1 (en) * 2013-06-17 2014-12-24 富士通株式会社 Information processing device, control circuit, control program, and control method
WO2014203316A1 (en) * 2013-06-17 2014-12-24 富士通株式会社 Information processing device, control circuit, control program, and control method
JP2015001909A (en) * 2013-06-17 2015-01-05 富士通株式会社 Information processing apparatus, control circuit, control program, and control method
JP5967308B2 (en) * 2013-06-17 2016-08-10 富士通株式会社 Information processing apparatus, control circuit, control program, and control method
JP5967307B2 (en) * 2013-06-17 2016-08-10 富士通株式会社 Information processing apparatus, control circuit, control program, and control method
JP2022137330A (en) * 2021-03-09 2022-09-22 株式会社デンソー Memory control method
CN113434438A (en) * 2021-06-15 2021-09-24 武汉天喻信息产业股份有限公司 Method for prolonging writing life of FLASH of smart card

Similar Documents

Publication Publication Date Title
US8453021B2 (en) Wear leveling in solid-state device
US8037232B2 (en) Data protection method for power failure and controller using the same
US8176295B2 (en) Logical-to-physical address translation for a removable data storage device
US8266481B2 (en) System and method of wear-leveling in flash storage
US20170039141A1 (en) Mapping table updating method, memory storage device and memory control circuit unit
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US10303367B2 (en) Mapping table updating method without updating the first mapping information, memory control circuit unit and memory storage device
US9268688B2 (en) Data management method, memory controller and memory storage apparatus
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
CN101408864B (en) Data protection method for power failure and controller using the method
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP2011242833A (en) Memory controller, flash memory system provided with memory controller and control method of flash memory
TWI651650B (en) Memory management method and storage controller using the same
JP2012068765A (en) Memory controller, flash memory system with memory controller, and control method of flash memory
JP2012058770A (en) Memory controller, flash memory system equipped with memory controller and control method of flash memory
JP2012037971A (en) Memory controller, nonvolatile memory system provided with memory controller, and method for controlling nonvolatile memory
EP4075284B1 (en) Method and storage device for improving memory performance for intensive read workloads
JP2012068764A (en) Memory controller, nonvolatile memory system with memory controller, and control method of nonvolatile memory
JP2006221334A (en) Memory controller, flash memory system, and control method for flash memory
CN118349186B (en) Mapping table updating method and storage device
US11687444B2 (en) Data managing method. memory controlling circuit unit and memory storage device

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20131203