JP2007164318A - Storage system - Google Patents
Storage system Download PDFInfo
- Publication number
- JP2007164318A JP2007164318A JP2005357373A JP2005357373A JP2007164318A JP 2007164318 A JP2007164318 A JP 2007164318A JP 2005357373 A JP2005357373 A JP 2005357373A JP 2005357373 A JP2005357373 A JP 2005357373A JP 2007164318 A JP2007164318 A JP 2007164318A
- Authority
- JP
- Japan
- Prior art keywords
- address
- block
- area
- super
- acquired
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、不揮発性のファイルメモリ等に利用される不揮発性の記憶装置に関し、例えば、フラッシュメモリカード若しくはハードディスク互換のフラッシュディスクなどに適用して有効な技術に関する。 The present invention relates to a non-volatile storage device used for a non-volatile file memory or the like, for example, a technique effective when applied to a flash memory card or a hard disk compatible flash disk.
フラッシュメモリに代表される電気的に書換え可能な不揮発性メモリの書き換えではメモリセルに電気的なストレスがかり、書き換え回数が増すに従ってメモリセルの特性が劣化する。ファイルメモリにおける書換え若しくは消去単とされる一部の物理ブロックに対して書き換えが集中すると、当該一部の物理ブロックだけ特性劣化が著しくなる。そこで、論理アドレスと物理アドレスの対応を適宜変更することにより、そのような特性劣化が局所的な物理アドレスに集中することを緩和することができる。一方、書換えや消去対象にされない物理ブロックであっても、書き換え対象とされる物理ブロックのメモリセルトランジスタとワード線が共通であったり、ビット線が共通であったりすると、所謂ワード線ディスターブやビット線ディスターブによる影響を受け、メモリセルの閾値電圧が累積的に変化して、その記憶情報が不所望に変化(データ化け)する虞がある。上記ディスターブによるデータ化けに対処するには、特許文献1,2に記載のように、相対的に書き換え回数の少ない物理ブロックと別の物理ブロックとの間で論理アドレスの割り当てを入れ換えればよい。
In rewriting of an electrically rewritable nonvolatile memory such as a flash memory, an electrical stress is applied to the memory cell, and the characteristics of the memory cell deteriorate as the number of rewrites increases. When rewriting concentrates on a part of physical blocks which are simply rewritten or erased in the file memory, the characteristic deterioration becomes significant only for the part of physical blocks. Therefore, by appropriately changing the correspondence between the logical address and the physical address, it is possible to alleviate the concentration of such characteristic deterioration on the local physical address. On the other hand, even in a physical block that is not subject to rewriting or erasing, if the word line or bit line is the same as the memory cell transistor of the physical block that is subject to rewriting, the so-called word line disturb or bit Under the influence of line disturbance, the threshold voltage of the memory cell may change cumulatively, and the stored information may change undesirably (data corruption). In order to deal with the data corruption caused by the disturbance, as described in
本発明者は、物理ブロックの書き換え回数(消去回数)をカウントし、書き換え回数の多いブロックと少ないブロックを入れ替えることで、書き換え回数の平準化と、ディスターブ対策を行なうことについて検討した。これによれば、物理ブロックの書き換え回数が一定値になったことで、書き換え回数の少ないブロックと入れ替える場合、書き換え回数の少ないブロックを検索するのに比較的長い時間を要し、書き換え時間が大幅に延び、アクセス性能を低下させる。例えば、書き換え回数の一番少ないブロックを検索するには、全ブロックに格納されている書き換え回数を読み出し、最も少ないブロックを見つける必要がある。全ブロックの読み出しには、膨大な時間が必要であり、性能低下は免れない。また、書き換え回数を物理ブロック単位に管理するには、物理ブロック毎に書き換え回数を保存する領域が必要である。そうすると、物理ブロックに対してデータ部の書き換えとは別に、書き換え回数の更新も必要になる。物理ブロックと同じ消去単に含まれる管理情報に消去回数を保存した場合、物理ブロックの書き換え前に管理情報を読み出し、書き換え回数を退避する。その後、書き換え回数を更新した管理情報をフラッシュメモリに転送する処理が必要になるため、この点においてもアクセス性能低下を生ずる。 The present inventor has studied the leveling of the number of rewrites and countermeasures against the disturbance by counting the number of times of rewriting (erasing number) of the physical block and replacing the block with a larger number of rewrites and the block with a smaller number of rewrites. According to this, when the number of physical block rewrites has become a fixed value, when replacing with a block with a small number of rewrites, it takes a relatively long time to search for a block with a small number of rewrites, and the rewrite time is greatly increased To reduce the access performance. For example, to search for the block with the smallest number of rewrites, it is necessary to read the number of rewrites stored in all the blocks and find the block with the least number of rewrites. Reading all blocks requires an enormous amount of time, and performance degradation is inevitable. In order to manage the number of rewrites in units of physical blocks, an area for storing the number of rewrites for each physical block is required. In this case, it is necessary to update the number of rewrites separately from the rewrite of the data part for the physical block. When the number of erasures is stored in the management information that is simply included in the same erasure as the physical block, the management information is read before the physical block is rewritten, and the number of rewrites is saved. Thereafter, a process for transferring the management information whose number of rewrites has been updated to the flash memory is required, and this also causes a decrease in access performance.
本発明の目的は、書き換え回数の平準化とディスターブ対策のために行なう物理ブロックに対する論理アドレスの割り当て変更に伴う処理時間を短縮可能にすることにある。 An object of the present invention is to make it possible to shorten the processing time associated with the logical address assignment change for the physical block, which is performed for leveling the number of rewrites and countermeasures against disturbance.
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。 The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。 The following is a brief description of an outline of typical inventions disclosed in the present application.
《スーパーブロック単位のアドレス管理形態》本発明に係る記憶装置(1)は、不揮発性メモリ(2)と制御回路(3)とを有する。前記不揮発性メモリは、記憶情報の書き換えが可能にされる複数個の不揮発性メモリセルの集合であるブロック領域(BLK)単位に記憶情報を初期化する消去処理が可能にされ、消去処理されたブロック領域に情報を書込む書込み処理が可能にされる。例えば複数のページ領域(PAG)の集合を前記ブロック領域(BLK)とすると、前記不揮発性メモリは、記憶情報の書き換えが可能にされる複数個の不揮発性メモリセルの集合であるページ領域単位に記憶情報を書込む書込み処理が可能にされ、複数のページ領域の集合であるブロック領域単位に記憶情報を初期化する消去処理が可能にされる。前記制御回路は、データ用の複数のブロック領域の集合であるスーパーブロック(SB(SB−0〜SB−15))単位で一つの空きブロック(BLK−V)の割り当てと残りのブロック領域に対する論理アドレスの割り当てを行ない、その割り当てを示す最新のアドレス変換テーブル(SBTBL)を当該スーパーブロック内で最後に書込み処理が行なわれた一つのブロック領域に保持させ、夫々のスーパーブロックにおける前記アドレス変換テーブルを有するブロック領域の物理アドレスを示すアドレステーブル(CPTBL)を管理用のブロック領域(BLK−C)に格納させる。前記制御回路は、外部からのアクセス要求に応答するとき、当該アクセス要求に係る論理アドレスに対応する物理アドレスを、当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルから取得し、取得した物理アドレスを用いてブロック領域のアクセス制御を行う。 << Address Management Form in Superblock Unit >> The storage device (1) according to the present invention includes a nonvolatile memory (2) and a control circuit (3). The nonvolatile memory can be erased by initializing the stored information in a block area (BLK) unit that is a set of a plurality of nonvolatile memory cells that can rewrite the stored information. Write processing for writing information in the block area is enabled. For example, when a set of a plurality of page areas (PAGs) is defined as the block area (BLK), the non-volatile memory has a page area unit that is a set of a plurality of non-volatile memory cells in which stored information can be rewritten. Write processing for writing storage information is enabled, and erasure processing for initializing storage information in units of block areas, which is a set of a plurality of page areas, is enabled. The control circuit allocates one free block (BLK-V) in units of super blocks (SB (SB-0 to SB-15)), which is a set of a plurality of block areas for data, and logic for the remaining block areas. The address assignment is performed, and the latest address conversion table (SBTBL) indicating the assignment is held in one block area where the last write process is performed in the super block, and the address conversion table in each super block is stored. An address table (CPTBL) indicating the physical address of the block area is stored in the management block area (BLK-C). When responding to an access request from the outside, the control circuit obtains a physical address corresponding to the logical address related to the access request from an address conversion table corresponding to the super block to which the logical address related to the access request is assigned. Acquires and performs block area access control using the acquired physical address.
ブロック領域に対する上記アドレス管理形態によれば、スーパーブロック単位で論理アドレス範囲が割り当てられ、スーパーブロック内に一つの空きブロックを確保し、スーパーブロック内の残りのブロック領域に対する論理アドレスの割り当てが可変にされる。論理アドレスの割り当てが可変にされる範囲は対応するするパーブロック内であるから、ほとんどの場合、書き換え回数の平準化とディスターブ対策は各々のスーパーブロック内で考えればよい。書換え回数の多寡はスーパーブロック内で考慮すればよく、不揮発性メモリの全範囲で個々のブロック領域に対する書換え回数を把握しなくてもよい。ブロック領域に対する論理アドレスの割り当てを示すアドレス変換テーブルもスーパーブロック単位で形成すれば良い。各々のスーパーブロックにおいてアドレス変換テーブルは最後に書込み処理が行なわれたブロック領域に保持させることにより、ブロック領域の書換えと一緒にアドレス変換テーブルの書換えも可能になる。各々のスーパーブロックにおいて有効な管理テーブルが格納されている物理アドレスを示すアドレステーブルは、ブロック領域に対する書換え毎に変更になるが、管理用のブロック領域で一括管理することができる。これらにより、書き換え回数の平準化とディスターブ対策のために行なう物理ブロックに対する論理アドレスの割り当て変更に伴う処理時間の短縮が可能になる。 According to the above address management mode for block areas, a logical address range is allocated in units of super blocks, one empty block is secured in the super block, and logical address allocation to the remaining block areas in the super block is variable. Is done. Since the range in which the logical address allocation is made variable is in the corresponding par block, in most cases, the leveling of the number of rewrites and the countermeasure against the disturbance may be considered in each super block. The number of times of rewriting may be considered in the super block, and it is not necessary to grasp the number of times of rewriting for each block area in the entire range of the nonvolatile memory. An address conversion table that indicates allocation of logical addresses to block areas may be formed in units of super blocks. In each super block, the address conversion table is held in the block area where the last write processing is performed, so that the address conversion table can be rewritten together with the rewriting of the block area. An address table indicating a physical address in which a valid management table is stored in each super block is changed every time the block area is rewritten, but can be collectively managed in the management block area. As a result, it is possible to reduce the processing time associated with the logical address assignment change to the physical block, which is performed for leveling the number of rewrites and countermeasures against disturbance.
本発明の一つの具体的な形態として前記制御回路は、外部からのアクセス要求に応答するとき、前記アドレステーブルを取得していないときは不揮発性メモリからアドレステーブルを読み込む。当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルを取得していないとき前記制御回路は当該アドレス変換テーブルの物理アドレスを前記取得したアドレステーブルから検索し、検索した物理アドレスに格納されたアドレス変換テーブルを前記不揮発性メモリから取得する。前記制御回路は、取得したアドレス変換テーブルから当該アクセス要求に係る論理アドレスに対応する物理アドレスを取得し、取得した物理アドレスを用いてブロック領域のアクセス制御が可能にされる。 As one specific form of the present invention, the control circuit reads an address table from a non-volatile memory when responding to an access request from the outside and not acquiring the address table. When the address conversion table corresponding to the super block to which the logical address related to the access request is assigned is not acquired, the control circuit searches the physical address of the address conversion table from the acquired address table, and the searched physical The address conversion table stored in the address is acquired from the nonvolatile memory. The control circuit acquires a physical address corresponding to the logical address related to the access request from the acquired address conversion table, and enables access control of the block area using the acquired physical address.
《書込みシーケンス》前記ブロック領域に対する書込みシーケンスの点における本発明の具体的な形態として、前記制御回路は、外部からのアクセス要求に応答して書換え処理を行なうとき、現在の空きブロックの物理アドレスに前記アクセス要求に係る論理アドレスを新たに割り当てると共に、前記アドレス変換テーブルから取得した物理アドレスのブロック領域を新たな空きブロックに割り当て、新たに論理アドレスが割り当てられる前記ブロック領域に対するデータの書換えを制御し、その書換え制御によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させる。 << Write Sequence >> As a specific form of the present invention in terms of a write sequence for the block area, when the control circuit performs a rewrite process in response to an access request from the outside, the control circuit uses the physical address of the current empty block. The logical address related to the access request is newly assigned, the block area of the physical address acquired from the address conversion table is assigned to a new empty block, and data rewriting for the block area to which a new logical address is assigned is controlled. The location of the address conversion table changed by the rewrite control is reflected in the address table.
《アドレステーブルの逐次位置変更書込み》前記アドレステーブルの管理という点における本発明の更に具体的な形態として、前記制御回路は、前記アドレステーブルを格納するのに複数個の管理用のブロック領域(BLK−C)を用い、前記アドレステーブルの格納には前記管理用のブロック領域を順次切換えて用いると共に、アドレステーブルの書込み毎に、書込み対象とされるブロック領域上におけるアドレステーブルの複数の格納位置を順次変更する制御を行い、更に、変更されたアドレステーブル(CPTBL)の格納位置を示すフラグ情報のテーブル(FLGTBL)を書込み対象のブロック領域上において更新し、管理用のブロック領域に新たにアドレステーブルを書込むための空き領域が無くなったとき当該管理用のブロック領域を消去する。アドレステーブルの書込み位置を逐次変更することにより、その書込み位置をもって、書換え回数の指標となる。 << Sequential Location Change Writing of Address Table >> As a more specific form of the present invention in terms of management of the address table, the control circuit has a plurality of management block areas (BLK) for storing the address table. -C), the address block is stored by sequentially switching the management block area, and for each address table write, a plurality of address table storage positions on the block area to be written are set. Control is performed to change sequentially, and the flag information table (FLGTBL) indicating the storage location of the changed address table (CPTBL) is updated on the write target block area, and a new address table is added to the management block area. When there is no more free space to write To clear the area. By sequentially changing the write position of the address table, the write position becomes an index of the number of rewrites.
《入れ換え処理の第1形態》物理ブロック間で論理アドレスを入れ換える入れ換え処理という点における本発明の具体的な形態として、前記アドレステーブルはスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレス情報を格納する領域(REPA)を有する。前記制御回路は、入れ換え処理の実行タイミングを検出すると、前記アドレステーブルからブロック領域単位の入れ換え対象物理アドレスの情報を取得し、現在の空きブロックの物理アドレスに前記取得した入れ換え対象物理アドレスの論理アドレスを新たに割り当てると共に、前記取得した入れ換え対象物理アドレスのブロック領域を新たな空きブロックに割り当て、前記新たな空きブロックと前記新たに論理アドレスを割り当てたブロック領域との間のデータの入れ換えとデータの更新を制御し、当該データの更新制御によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させると共に、アドレステーブルが保有するスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレスの情報を更新する。入れ換え処理対象を特定するのに、書換え回数の少ないブロック領域を検索したりする処理を一切要しない。ブロック領域単位の入れ換え対象物理アドレスの情報を更新する規則は、順次変更であってもよい。 << First Form of Replacement Process >> As a specific form of the present invention in terms of a replacement process for replacing a logical address between physical blocks, the address table stores replacement target physical address information for each block area in a super block. It has a region (REPA). When detecting the execution timing of the replacement process, the control circuit acquires information on the replacement target physical address in block area units from the address table, and adds the logical address of the acquired replacement target physical address to the physical address of the current free block. And assigning the block area of the acquired replacement target physical address to a new empty block, exchanging data between the new empty block and the block area to which the new logical address is assigned, and data The update is controlled, the location of the address conversion table changed by the update control of the data is reflected in the address table, and the information on the physical address to be replaced in the block area in the super block held by the address table is updated.No process for searching for a block area with a small number of rewrites is required to specify a replacement process target. The rule for updating the information of the replacement target physical address in block area units may be changed sequentially.
前記入れ換え処理の更に具体的な形態として、アドレステーブルの書込み位置を逐次変更することにより、その書込み位置をもって、書換え回数の指標となる、という点に着目する。即ち、前記制御回路は、前記アドレステーブルを格納するのに複数個の管理用のブロック領域(BLK−C)を用い、前記アドレステーブルの格納には前記管理用のブロック領域を順次切換えて用いると共に、アドレステーブルの書込み毎に、書込み対象とされるブロック領域上におけるアドレステーブルの複数の格納位置を順次変更する制御を行い、更に、変更されたアドレステーブルの格納位置を示すフラグ情報を書込み対象のブロック領域上において更新し、管理用のブロック領域に新たにアドレステーブルを書込むための空き領域が無くなったとき当該管理用のブロック領域を消去する。更に、前記制御回路は、書込み処理の後に管理用のブロック領域が消去されたことを、前記入れ換え処理の実行タイミングとして検出する。 As a more specific form of the replacement process, attention is paid to the fact that by sequentially changing the write position of the address table, the write position becomes an index of the number of rewrites. That is, the control circuit uses a plurality of management block areas (BLK-C) to store the address table, and sequentially uses the management block areas to store the address table. Each time the address table is written, control is performed to sequentially change a plurality of storage positions of the address table on the block area to be written, and flag information indicating the storage position of the changed address table is further written. Updating is performed on the block area, and when there is no free area for writing a new address table in the management block area, the management block area is deleted. Furthermore, the control circuit detects that the management block area has been erased after the write process as the execution timing of the replacement process.
更に具体的な形態として、前記制御回路は、入れ換え処理の直前に行なわれた書換え処理対象とされたスーパーブロックに関する前記アドレステーブル上の入れ換え対象物理アドレス情報が示す物理アドレスを入れ換え対象とする。 As a more specific form, the control circuit sets the physical address indicated by the replacement target physical address information on the address table related to the super block that is the target of the rewrite process performed immediately before the replacement process.
また、別の具体的な形態として、前記制御回路は、入れ換え処理の直前に行なわれた書換え処理対象とされたスーパーブロックの隣のスーパーブロックに関する前記アドレステーブル上の入れ換え対象物理アドレス情報が示す物理アドレスを入れ換え対象とする。これによれば、直前に書換え処理の対象になったスーパーブロックの隣のスーパーブロックが入れ替え処理の対象になるから、一つのスーパーブロックが頻繁に書換えられても、隣のスーパーブロックに対して入れ替え処理を施すことができる。一つのスーパーブロックに対する書換えが集中しても、他のスーパーブロックにおける書換え回数の平準化に資することができる。また。隣のスーパーブロック間においてワード線が共通化されるような構成を想定すると、ディスターブは異なるスーパーブロック間でも発生するから、特定のスーパーブロックだけが頻繁に書換えられる場合にディスターブの影響を全体的に緩和する効果を期待することができる。 Further, as another specific form, the control circuit is configured such that the physical address information indicated by the replacement target physical address information on the address table related to the super block adjacent to the super block that is the target of the rewrite processing performed immediately before the replacement processing. Change the address. According to this, since the super block next to the super block that was the target of the rewrite process immediately before becomes the target of the replacement process, even if one super block is frequently rewritten, it is replaced with the adjacent super block. Processing can be performed. Even if rewriting for one super block is concentrated, it is possible to contribute to leveling of the number of rewritings in other super blocks. Also. Assuming a configuration in which the word lines are shared between adjacent super blocks, disturbance occurs even between different super blocks. Therefore, when only a specific super block is frequently rewritten, the influence of disturb is totally A mitigating effect can be expected.
更に別の具体的な形態として、前記制御回路は、取得した入れ換え対象物理アドレス情報に応ずる物理アドレスが空きブロックであるときは、当該スーパーブロックに関する入れ換え対象物理アドレス情報を更新して、入れ換え処理を終了する。入れ換え対象物理アドレス情報に応ずる物理アドレスが空きブロックにされた特定のスーパーブロックだけが頻繁に書換えられる場合に、当該スーパーブロック内で実質的に入れ換え処理が行なわれなくなる事態を回避可能になる。すなわち、特定アドレスに書き込みが集中した場合、当該書込み対象スーパーブロックにおける入替処理で、「入替対象=空きブロック」となった時に、入替対象を更新しないと次回の入替処理でも「入替対象=空きブロック」となる可能性が高いため、ディスターブ対策の機能が失われる場合がある。「入替対象=空きブロック」となった時に、入替対象を更新することで、書き込み処理で指定されるアドレスに関係なく、ディスターブ対策を実施することが可能になる。 As yet another specific form, when the physical address corresponding to the acquired replacement target physical address information is an empty block, the control circuit updates the replacement target physical address information related to the super block and performs replacement processing. finish. When only a specific super block whose physical address corresponding to the replacement target physical address information is an empty block is frequently rewritten, it is possible to avoid a situation in which the replacement process is not substantially performed in the super block. That is, when writing concentrates on a specific address, if the replacement process in the super block to be written becomes “replacement target = empty block” and the replacement target is not updated, “replacement target = empty block” ”, The disturbance prevention function may be lost. By updating the replacement target when “replacement target = empty block”, it becomes possible to implement the disturbance countermeasure regardless of the address specified in the writing process.
《入れ換え処理の第2形態》物理ブロック間で論理アドレスを入れ換える入れ換え処理という点における本発明の別の具体的な形態として、前記アドレステーブルは複数のスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレス情報を格納するアドレス領域(REPA)と前記複数のスーパーブロック内におけるブロック領域の書換え処理回数を格納する回数領域(NMBA)を有する。前記制御回路は書換え処理において書換え処理対象とされたスーパーブロックに関する前記回数領域の値をインクリメントする。前記制御回路は、入れ換え処理の実行タイミングを検出すると、前記アドレステーブルからブロック領域単位の入れ換え対象物理アドレスの情報を取得し、現在の空きブロックの物理アドレスに前記取得した入れ換え対象物理アドレスの論理アドレスを新たに割り当てると共に、前記取得した入れ換え対象物理アドレスのブロック領域を新たな空きブロックに割り当て、前記新たな空きブロックと前記新たに論理アドレスを割り当てたブロック領域との間のデータの入れ換えとデータの更新を制御し、当該データの更新によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させると共に、アドレステーブルが保有する複数のスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレスの情報を更新する。 << Second Form of Replacement Process >> As another specific form of the present invention in terms of a replacement process for replacing a logical address between physical blocks, the address table is a physical address to be replaced in units of block areas in a plurality of super blocks. It has an address area (REPA) for storing information and a number area (NMBA) for storing the number of rewrite processes of the block area in the plurality of super blocks. The control circuit increments the value in the number-of-times area related to the super block that is the target of the rewrite process in the rewrite process. When detecting the execution timing of the replacement process, the control circuit acquires information on the replacement target physical address in block area units from the address table, and adds the logical address of the acquired replacement target physical address to the physical address of the current free block. And assigning the block area of the acquired replacement target physical address to a new empty block, exchanging data between the new empty block and the block area to which the new logical address is assigned, and data Controls updating, reflects the location of the address translation table changed by updating the data to the address table, and updates information on physical addresses to be replaced in block areas in a plurality of super blocks held by the address table You .
この入れ換え処理における具体的な形態として、前記制御回路は、書換え処理において更新された前記回数領域の値が所定値に到達したことを、入れ換え処理の実行タイミングとして検出する。前記回数領域の値は、前記複数のスーパーブロック内におけるブロック領域の書換え処理回数を示すから、前記複数のスーパーブロック間においてワード線が共通化されているような構成を想定すると、ディスターブは異なるスーパーブロック間でも発生するから、特定のスーパーブロックだけが頻繁に書換えられる場合にディスターブの影響を当該複数のスーパーブロックで全体的に緩和する効果を期待することができる。 As a specific form of the replacement process, the control circuit detects that the value of the number of times area updated in the rewrite process has reached a predetermined value as the execution timing of the replacement process. Since the value of the number-of-times area indicates the number of times the block area has been rewritten in the plurality of super blocks, assuming a configuration in which word lines are shared between the plurality of super blocks, disturbs are different in super. Since it also occurs between blocks, when only a specific super block is frequently rewritten, it is possible to expect an effect of alleviating the influence of disturbance by the plurality of super blocks.
更に具体的な形態として、前記制御回路は、入れ換え処理の直前に行なわれた書換え処理対象とされたスーパーブロックに関する前記アドレステーブル上の入れ換え対象物理アドレス情報が示す物理アドレスを入れ換え対象とする。 As a more specific form, the control circuit sets the physical address indicated by the replacement target physical address information on the address table related to the super block that is the target of the rewrite process performed immediately before the replacement process.
また、別の具体的な形態として、前記制御回路は、取得した入れ換え対象物理アドレス情報に応ずる物理アドレスが空きブロックであるときは、当該スーパーブロックに関する入れ換え対象物理アドレス情報を更新して、入れ換え処理を終了する。入れ換え対象物理アドレス情報に応ずる物理アドレスが空きブロックにされた特定のスーパーブロックだけが頻繁に書換えられる場合に、当該スーパーブロック内で実質的に入れ換え処理が行なわれなくなる事態を回避可能になる。 As another specific form, when the physical address corresponding to the acquired replacement target physical address information is an empty block, the control circuit updates the replacement target physical address information related to the super block and performs replacement processing. Exit. When only a specific super block whose physical address corresponding to the replacement target physical address information is an empty block is frequently rewritten, it is possible to avoid a situation in which the replacement process is not substantially performed in the super block.
更に、上記入れ換え処理の第2形態においても、アドレステーブルの書込み位置を逐次変更する手段を採用することは可能である。即ち、前記制御回路は、前記アドレステーブルを格納するのに複数個の管理用のブロック領域を用い、前記アドレステーブルの格納には前記管理用のブロック領域を順次切換えて用いると共に、アドレステーブルの書込み毎に、書込み対象とされるブロック領域上におけるアドレステーブルの複数の格納位置を順次変更する制御を行い、更に、変更されたアドレステーブルの格納位置を示すフラグ情報を書込み対象のブロック領域上において更新し、管理用のブロック領域に新たにアドレステーブルを書込むための空き領域が無くなったとき当該管理用のブロック領域を消去する。 Furthermore, also in the second form of the replacement process, it is possible to employ means for sequentially changing the write position of the address table. That is, the control circuit uses a plurality of management block areas to store the address table, and sequentially switches the management block areas to store the address table and writes the address table. Each time, control is performed to sequentially change a plurality of storage positions of the address table on the block area to be written, and flag information indicating the storage position of the changed address table is updated on the block area to be written. When there is no more free area for writing a new address table in the management block area, the management block area is erased.
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。 The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.
すなわち、書き換え回数の平準化とディスターブ対策のために行なう物理ブロックに対する論理アドレスの割り当て変更に伴う処理時間の短縮が可能になる。 That is, it is possible to reduce the processing time associated with the logical address assignment change to the physical block performed for leveling the number of rewrites and for countermeasures against disturbance.
《メモリカード》
図2には本発明に係る記憶装置の一例であるフラッシュメモリカードが示される。フラッシュメモリカード(FMC)1は消去及び書き込み可能な不揮発性メモリ例えばフラッシュメモリ(FLASH)2と、メモリ制御及び外部インタフェース制御を行う制御回路としてのカードコントローラ(CCRL)3とをカード基板に備えて成る。
"Memory card"
FIG. 2 shows a flash memory card which is an example of a storage device according to the present invention. The flash memory card (FMC) 1 includes an erasable and writable nonvolatile memory such as a flash memory (FLASH) 2 and a card controller (CCRL) 3 as a control circuit for performing memory control and external interface control. Become.
前記カードコントローラ3は、例えばカードホストとしてのホストコンピュータ(HST)6との間でIDEディスクインタフェース仕様などに従った外部インタフェース制御を行う。カードコントローラ3は、ホストコンピュータ6からの指示に従って、フラッシュメモリ2をアクセスするアクセス制御機能を有する。このアクセス制御機能はハードディスク互換の制御機能であり、例えばホストコンピュータ6がセクタデータの集合をファイルデータとして管理するとき、カードコントローラ3は論理アドレスとしてのセクタアドレスを物理メモリアドレスに対応させてフラッシュメモリ2のアクセス制御などを行う。図1に従えば、前記カードコントローラ3は、ホストインタフェース回路(HIF)10、中央処理装置(CPU)11、ROM12、RAM13、フラッシュインタフェース回路(FIF)14、エラー検出訂正回路(ECC)15、バッファインタフェース回路(BIF)16、及びバッファメモリ(BMRY)17を備える。
The
前記ホストインタフェース回路10は、ATA(ATAttachment)、IDE(Integrated Device Electronics)、SCSI(Small Computer System Interface)、MMC(MultiMediaCard:登録商標)、PCMCIA(Personal Computer Memory Card International Association)等の所定のプロトコルに従って、ホストコンピュータ6との間のコマンドインタフェース及びデータ入出力を制御する。前記ホストインタフェース回路10はホストコンピュータ6から発行されたメモリカードコマンドを解読し、解読結果に従った処理を割り込み等によってCPU11に指示する。
The
前記CPU11は、RAM13をワーク領域として利用し、ROM12が保有するプログラムを実行して、カードコントローラ3を全体的に制御する。
The
フラッシュインタフェース回路14はCPU11の制御に従ってフラッシュメモリ2にフラッシュアクセスコマンドを発行してデータの書換えや読出しを制御する。
The
前記バッファインタフェース回路16はホストインタフェース回路10とバッファメモリ17との間のデータ転送制御並びにバッファメモリ17とフラッシュインタフェース回路14との間のデータ転送制御を行う。ホストインタフェース回路10が入力した書込みデータは一旦バッファメモリ17に格納され、その後、バッファメモリ17からフラッシュインタフェース回路10に転送された書き込みデータがフラッシュメモリに書込まれえる。また、フラッシュメモリ2から読み出された読出しデータは一旦バッファメモリ17に格納され、その後、バッファメモリ17からホストインタフェース回路10に転送された読出しデータがホストコンピュータ6に向けて出力される。
The
前記フラッシュメモリ2は代表的に示されたメモリアレイ(MARY)20とデータレジスタ(DREG)21を有する。メモリアレイ20は電気的に記憶情報の書き換えが可能にされる多数の不揮発性メモリセルを有する。不揮発性メモリセルには、例えば、電荷蓄積層としてフローティングゲートを有するMOSスタックゲート構造、或いは電荷蓄積層としてシリコン窒化膜を有するスプリットゲート構造等を採用することができる。何れにおいても、電荷蓄積領域に電子を注入(正孔を放出)する処理(書込み処理)を行なうことによって閾値電圧を高くし、また、前記電荷蓄積領域から電子を放出(正孔を注入)して初期化する処理(消去処理)を行なうことによって閾値電圧を低くする。不揮発性メモリセルはこの書込み処理と消去処理による閾値電圧の相違によって情報を記憶することができる。1個の不揮発性メモリセルに選択的にプログラムできる閾値電圧状態を2つの状態とすることによって2値記憶を行うことができる。1個の不揮発性メモリセルに選択的にプログラムできる閾値電圧状態を4つの状態とする4値記憶を行うように構成することも可能である。
The
特に制限されないが、メモリアレイは複数個の不揮発性メモリセルの集合であるページ領域(単にページとも記す)PAG単位に記憶情報を書込む書込み処理が可能にされ、複数のページPAGの集合であるブロック領域(単にブロックとも記す)BLK単位に記憶情報を初期化する消去処理が可能にされる。要するに、ページPAGが書込み単位(PGM unit)とされ、ブロックBLKが消去単位(ERS unit)とされる。例えば、1個のページPAG(1ページ)は例えば2キロバイト(KB)+64KBの記憶容量を有し、1個のブロックBLK(1ブロック)は4ページのサイズを有する。1ブロックの不揮発性メモリセルは、特に制限されないが、共通のワード線に接続され、例えば消去処理選択ワード線に負の高電圧を印加し、ウェル領域をグランド電位にする事により、例えばFNトンネルによって1ブロック単位の一括消去を行なうことができる。ワード線を共有する1ブロック4ページの不揮発性メモリセルはページ毎に1個づつ隣り合わせで順次ワード線に沿って配置され、不揮発性メモリセルのドレインは選択的にページ単位でビット線に接続される。書込み処理を行なうときは、ワード線に正の高電圧を印加し、1ページの不揮発性メモリセルのソースをビット線に接続し、書込み選択とされるメモリセルに対応するビット線にはドレインからソースに向かう電流経路を形成し、書込み非選択とされるメモリセルにはドレインからソースに向かう電流経路の形成を抑制する。前記電流経路を介して不揮発性メモリセルに流れるソース電流によってホットエレクトロンが発生され、これによって電子が不揮発性メモリセルの電荷蓄積領域に注入され、その閾値電圧が高くされる。データの書き換えでは、ブロック単位の消去を行なった後、当該ブロックを構成する4ページに対してページ単位で書込み処理が行なわれる。 Although there is no particular limitation, the memory array is a set of a plurality of page PAGs, which enables a write process to write storage information in a page area (also simply referred to as a page) PAG, which is a set of a plurality of nonvolatile memory cells. An erasing process for initializing the stored information in a block area (also simply referred to as a block) BLK is made possible. In short, the page PAG is a writing unit (PGM unit), and the block BLK is an erasing unit (ERS unit). For example, one page PAG (one page) has a storage capacity of, for example, 2 kilobytes (KB) +64 KB, and one block BLK (one block) has a size of four pages. One block of non-volatile memory cells is not particularly limited, but is connected to a common word line. For example, by applying a negative high voltage to an erase processing selection word line and setting a well region to a ground potential, for example, an FN tunnel Can be erased in one block unit. Non-volatile memory cells of one block and four pages sharing a word line are arranged along the word line one by one for each page, and the drains of the non-volatile memory cells are selectively connected to bit lines on a page basis. The When a write process is performed, a positive high voltage is applied to the word line, the source of one page of nonvolatile memory cells is connected to the bit line, and the bit line corresponding to the memory cell selected for writing is connected to the bit line from the drain. A current path toward the source is formed, and formation of a current path from the drain to the source is suppressed in the memory cell that is not selected for writing. Hot electrons are generated by the source current flowing through the non-volatile memory cell through the current path, whereby electrons are injected into the charge storage region of the non-volatile memory cell, and the threshold voltage is increased. In data rewriting, after erasing in units of blocks, a writing process is performed in units of pages for the four pages constituting the block.
データレジスタ21は、特に制限されないが、メモリアレイ20との間でページ単位のデータ入出力を行ない、最大1ブロックのデータを格納可能である。また、データレジスタ21はフラッシュインタフェース回路14との間でバイト単位のデータ入出力を行なう。例えばデータの書換えでは、消去対象ブロックBLKから読み出されたデータがデータレジスタ21に退避される。退避されたデータは、フラッシュインタフェース回路14から供給される書込みデータ等によってモディファイされる。モディファイされたデータは、消去後のブロックBLKにページ単位で書込まれる。
The data register 21 is not particularly limited, but can input / output data in units of pages to / from the
《スーパーブロック単位のデータ管理形態》
図1にはメモリアレイ2におけるデータ構成が例示される。メモリアレイ21のページ単位の物理アドレスであるページアドレスは、0000h〜0FFFhとされる。hは16進数であることを意味する。1ページ(書込単位)PAGは2112バイトである。1ページPAGには、データ領域(DataArea)としての4つのセクタ(512バイト)及びセクタに対するECCコード(8バイト)領域と、32バイトの管理領域(ControlArea)によって構成される。4つのページPAGで1ブロックBLK(消去単位)となる。ここではブロックBLKの数は400hとなる。
<< Data management form in units of super blocks >>
FIG. 1 illustrates a data configuration in the
64個のブロックBLKの単位をスーパーブロックSBと定義する。図1の例では16個のスーパーブロック(SB)は夫々64個のブロックBLKで構成される。図1には代表的に16個のスーパーブロックSB−0〜SB−15が示される。 A unit of 64 blocks BLK is defined as a super block SB. In the example of FIG. 1, 16 super blocks (SB) are each composed of 64 blocks BLK. FIG. 1 typically shows 16 super blocks SB-0 to SB-15.
スーパーブロックSB−0〜SB−14は、ユーザデータを格納するためのユーザデータ領域(UseDataArea)とされる。一つのスーパーブロックSBには、63ブロックBLK分のユーザデータを格納できる。残り一つは空きブロックBLK−Vとして確保されている。図1の例では、スーパーブロックSB−0においてページアドレス:0014h〜0017hが空きブロックBLK−Vになっている。スーパーブロックSB−1ではページアドレス:0100h〜0103hが空きブロックBLK−Vになっている。その詳細については後述するが、データの書換え等において、必ず、空きブロックを消去した後、消去した空きブロックが書込み対象ブロックにされる。また、書換え前に書換え対象ユーザデータが格納されていたブロックが、新たな空きブロックにされる。したがって、ブロックに対する書き換えが行なわれれば論理アドレスとページアドレスとの対応はもとより空きブロックの割り当て状態も変更されることになる。 The super blocks SB-0 to SB-14 are used as a user data area (UseDataArea) for storing user data. One super block SB can store user data for 63 blocks BLK. The remaining one is secured as an empty block BLK-V. In the example of FIG. 1, page addresses: 0014h to 0017h are empty blocks BLK-V in the super block SB-0. In the super block SB-1, page addresses: 0100h to 0103h are empty blocks BLK-V. Although details will be described later, in data rewriting or the like, after erasing an empty block, the erased empty block is always set as a write target block. Further, the block in which the rewrite target user data is stored before the rewriting is set as a new empty block. Therefore, if the block is rewritten, not only the correspondence between the logical address and the page address but also the allocation state of the empty block is changed.
ユーザデータ領域であるスーパーブロックSB−0〜SB−14における各ブロックBLKの管理領域は、当該スーパーブロックSB内におけるアドレス変換テーブルとしてのSB内テーブル(SBTBL)を格納するための領域とされる。SB内テーブルSBTBLは当該スーパーブロックSBにおける空きブロックBLK−Vの割り当てと残りのブロックBLKに対する論理アドレスの割り当てを示すテーブルである。スーパーブロックSBにおいてブロックに対する書き換えが行なわれたとき、新たなSB内テーブルSBTBLの格納場所は最後に書込み処理が行なわれた(要するに、最も最近書込み処理が行なわれた)当該書換え対象ブロックBLKの管理領域(ControlArea)とされる。図1において“最新”と記載された管理領域が当該スーパーブロックSBにおける最新のSB内テーブルSBTBLを保有する。要するに、図1では、スーパーブロックSB−0内において、ユーザデータ000h〜00Fhが最後に書き込まれたことを示しているので、ページアドレス0004h〜0007hの管理領域が最新のSB内テーブルSBTBLを保有している。 The management area of each block BLK in the super blocks SB-0 to SB-14, which is the user data area, is an area for storing an SB table (SBTBL) as an address conversion table in the super block SB. The intra-SB table SBTBL is a table showing allocation of empty blocks BLK-V in the super block SB and logical addresses for the remaining blocks BLK. When the block is rewritten in the super block SB, the storage location of the new in-SB table SBTBL is finally subjected to the writing process (in short, the most recently written process is performed). It is set as an area (Control Area). The management area described as “latest” in FIG. 1 holds the latest SB table SBTBL in the super block SB. In short, FIG. 1 shows that the user data 000h to 00Fh was written last in the super block SB-0, so that the management area of the page addresses 0004h to 0007h holds the latest SB table SBTBL. ing.
図3にはSB内テーブルSBTBLの構成が例示される。SB内テーブルSBTBLは図の左上端より、当該スーパーブロックに割り当てられる連続する63×4個の論理アドレスに対応するページアドレスが順番に格納され、最後に空きブロックBLK−Vのページアドレスが格納されるようになっている。図1のスーパーブロックSB−0を一例とすれば、SB内テーブルSBTBLの先頭はユーザデータ0h〜Fhが格納されたページアドレスPADRS[UserData(0h〜Fh)]:0004h〜0007hを保有し、次にユーザデータ10h〜1Fhが格納されたページアドレスPADRS[UserData(10h〜1Fh)]:00FCh〜00FFhを保有し、最後は空きブロックBLK−Vが割り当てられたページアドレスPADRS[VBLK]:0014h〜0017hを保有する。これに従えば、スーパーブロックSB−0に割り当てられる先頭4セクタ分の論理アドレスはページアドレスPADRS:0004h〜0007hに、次の4セクタ分の論理アドレスはページアドレスPADRS:00FCh〜00FFhに割り当てられている。 FIG. 3 illustrates the configuration of the SB table SBTBL. In the SB table SBTBL, page addresses corresponding to consecutive 63 × 4 logical addresses assigned to the super block are sequentially stored from the upper left end of the figure, and finally the page addresses of the empty blocks BLK-V are stored. It has become so. Taking the super block SB-0 of FIG. 1 as an example, the head of the in-SB table SBTBL has page addresses PADRS [UserData (0h to Fh)]: 0004h to 0007h in which user data 0h to Fh are stored. Page address PADRS [UserData (10h to 1Fh)]: 00FCh to 00FFh in which user data 10h to 1Fh are stored in the last page address PADRS [VBLK]: 0014h to 0017h to which an empty block BLK-V is allocated. Is held. According to this, the logical addresses for the first four sectors assigned to the super block SB-0 are assigned to page addresses PADRS: 0004h to 0007h, and the logical addresses for the next four sectors are assigned to page addresses PADRS: 00FCh to 00FFh. Yes.
図1においてスーパーブロックSB−15は代替領域及びチップテーブル領域として利用される。代替領域は不良ブロックの代わりに使用するブロックである。例えば図1において、スーパーブロックSB−0内のページアドレス0008h〜000Bhが不良ブロックであり、これを代替するのにページアドレス0F00h〜0F03hのブロックを使用している。同様に、ページアドレス0010h〜0013hの不良ブロックを代替するのにページアドレス0F04h〜0F07hのブロックを使用している。 In FIG. 1, the super block SB-15 is used as an alternative area and a chip table area. The replacement area is a block used in place of a bad block. For example, in FIG. 1, page addresses 0008h to 000Bh in the super block SB-0 are defective blocks, and blocks of page addresses 0F00h to 0F03h are used to replace them. Similarly, blocks of page addresses 0F04h to 0F07h are used to replace defective blocks of page addresses 0010h to 0013h.
図1のチップテーブル領域は2個の管理用のブロックBLK−Cから成る。2個の管理用ブロックBLK−Cに割り当てられたチップテーブル領域CTAREAには、図4に例示されるように、最新のSB内テーブルSBTBLのページアドレス及び入れ換え対象ページアドレスを登録するためのチップテーブルCPTBLを格納する。また、チップテーブル領域CTAREAの管理領域には、最新のチップテーブルCPTBLがどこに格納されているかを示すためのチップテーブルフラグを有するフラグテーブルFLGTBLが格納される。 The chip table area in FIG. 1 is composed of two management blocks BLK-C. In the chip table area CTAREA allocated to the two management blocks BLK-C, as illustrated in FIG. 4, a chip table for registering the page address of the latest SB table SBTBL and the replacement target page address. Stores CPTBL. In addition, a flag table FLGTBL having a chip table flag for indicating where the latest chip table CPTBL is stored is stored in the management area of the chip table area CTAREA.
図4にはチップテーブル領域CTAREAとそこに格納されたチップテーブルCPTBL及びチップテーブルフラグのフラグテーブルFLGTBLが示される。チップテーブルCPTBLは、スーパーブロックSB−0の最新のSB内テーブルのページアドレスを先頭に、順次、スーパーブロックSB−1からSB14のそれぞれにおける最新のSB内テーブルのページアドレスを保有し、さらに、スーパーブロックSB−0における入れ替え対象ページアドレスを先頭に、順次、スーパーブロックSB−1からSB14の夫々における入れ替え対象ページアドレスを保有し、最後にそれらに対するECCコードを保有する。チップテーブルCPTBLは例えば512バイトのテーブルサイズを有する。入替対象とは、ディスターブ対策のために書き換えを行う物理ブロックのことである。領域REPAはスーパーブロック単位の入れ替え対象ページアドレスを保持する領域である。ディスターブ対策のための入れ替え処理、並び書換え処理については詳細を後述する。 FIG. 4 shows a chip table area CTAREA, a chip table CPTBL stored therein, and a flag table FLGTBL of chip table flags. The chip table CPTBL sequentially holds the page address of the latest SB table in each of the super blocks SB-1 to SB14, starting with the page address of the latest SB table in the super block SB-0. The replacement target page addresses in the super blocks SB-1 to SB14 are sequentially held starting with the replacement target page address in the block SB-0, and finally the ECC code for them is held. The chip table CPTBL has a table size of, for example, 512 bytes. The replacement target is a physical block to be rewritten to prevent disturbance. The area REPA is an area for holding a replacement target page address in units of super blocks. The details of the replacement process and the rewrite process for preventing disturbance will be described later.
チップテーブル領域CTAREAの各ページには4セクタ分に対応されるカラム0〜カラム3を割り当て、チップテーブルCPTBLの格納には管理用ブロックBLK−Cを順次切換えて用いると共に、チップテーブルCPTBLの書込み毎にページ上の書込みカラム位置を順次切換える制御を行う。例えば図4に例示されるように、上段の管理ブロックBLK−Cにおけるページアドレス0FF8hのカラム0をチップテーブルCPTBLの書き込みの基点とすると、次の書き込みでは下段の管理ブロックBLK−Cにおけるページアドレス0FFChのカラム0、その次の書き込みでは上段の管理ブロックBLK−Cにおけるページアドレス0FF8hのカラム1、というように、矢印で示されるように順次変更され、最後に、下段の管理ブロックBLK−Cにおけるページアドレス0FFFhのカラム3の位置まで変更される。
図5にはフラグテーブルFLGTBLの一例が示される。チップテーブル領域CTAREAにおける最新のチップテーブルの格納位置を示すチップテーブルフラグのフラグテーブルFLGTBLは、8ページ分のカラム0〜カラム3のチップテーブル格納領域に対応して8×4のフラグ領域を有する。フラグテーブルFLGTBLはチップテーブル領域CTAREAが消去処理されたときFFhに初期化され、チップテーブル領域CTAREAの先頭に最新のチップテーブルが格納されるとき先頭のチップテーブルフラグがFFhから00hに変更される(S1)。それ以降、最新のチップテーブルの格納位置の変更に応じて対応するフラグテーブルFLGTBL上の位置においてチップテーブルフラグがFFhから00hに変更される(S2,S3)。フラグテーブルFLGTBL上の全てのチップテーブルフラグが00hになったとき(S4)、次にチップテーブルの格納位置を変更するときは、先ず、0FF8h〜0FFBhのページアドレスを消去処理して初期化し、その後で、0FF8hのページに最新のチップテーブルとチップテーブルフラグとを書込む(S5)。更にその次に、0FFCh〜0FFFhのチップテーブル領域に最新のチップテーブルを書込むときは、先に0FFCh〜0FFFhのページアドレスを消去処理して初期化し、その後、0FFChのページに最新のチップテーブルとチップテーブルフラグとを書込む(TR1)。
FIG. 5 shows an example of the flag table FLGTBL. The chip table flag flag table FLGTBL indicating the storage position of the latest chip table in the chip table area CTAREA has an 8 × 4 flag area corresponding to the chip table storage areas of
上記チップテーブルCPTBLとフラグテーブルFLGTBLの構成によれば、フラグテーブルFLGTBLの更新方向とは逆方向からフラグ“00h”の検索を行ない、フラグ“00h”を検出した位置に応ずるページアドレスのカラム位置が、最新のチップテーブルの格納位置になる。これによって取得したチップテーブルCPTBLから、アクセス要求に係る論理アドレスに割り当てられたスーパーブロックSBに応ずる最新のSB内テーブルSBTBLが格納されているページアドレスを得ることができ、そのページアドレスを用いて必要なSB内テーブルSBTBLを取得すればよい。前述のようにデータの書換えではデータの書込み先はそのときの空きブロックBLK−Vとされ、論理アドレスの割り当て変更を伴うことから、データの書き換えが生ずれば最新のSB内テーブルSBTBLの格納位置も変更され、其れに伴ってチップテーブルCPTBLが更新され、フラグテーブルFLGTBLも更新されることになる。前記SB内テーブルSBTBL、チップテーブルCPTBL、フラグテーブルFLGTBLに対する参照や操作はCPU11が必要なテーブルをRAM13に読み込んで行なう。CPU11は読み込んだテーブルを変更したときは、その変更をフラッシュメモリ上のブロックに反映する制御を行う。以下において、上記スーパーブロック単位のデータ管理形態を採用した場合における各種アクセス制御形態について説明する。
According to the configuration of the chip table CPTBL and the flag table FLGTBL, the flag “00h” is searched from the direction opposite to the update direction of the flag table FLGTBL, and the column position of the page address corresponding to the position where the flag “00h” is detected is determined. It becomes the storage position of the latest chip table. As a result, it is possible to obtain the page address in which the latest SB table SBTBL corresponding to the super block SB assigned to the logical address related to the access request is stored from the obtained chip table CPTBL, and it is necessary to use the page address. What is necessary is just to acquire SB intra-table SBTBL. As described above, in the data rewrite, the data write destination is the empty block BLK-V at that time, and the logical address assignment is changed. Therefore, if the data rewrite occurs, the storage position of the latest SB table SBTBL is stored. As a result, the chip table CPTBL is updated accordingly, and the flag table FLGTBL is also updated. The
《リード処理》
図6にはリード処理フローが例示される。ホストコンピュータ6からリードコマンドが発行されると(S1021)、CPU11はそれによって指定された論理アドレスに対応するスーパーブロックSBの番号(SB番号)を算出する(S102)。例えば、ホストコンピュータ6が論理アドレスとして、ユーザデータ300hの論理アドレスを指定した場合、図1に従えばSB番号はスーパーブロックSB−0となる。CPU11は算出したSB番号のSB内テーブルSBTBLを、RAM13に既に読み出しているかを確認する(S103)。読み出し済みである場合には、CPU11はRAM13上のSB内テーブルSBTBLからアクセス要求に係る論理アドレスが格納されているページアドレスを取得する(S110)。
《Lead processing》
FIG. 6 illustrates a read processing flow. When a read command is issued from the host computer 6 (S1021), the
必要なSB内テーブルSBTBLがRAM13に読み出されていない場合、SB内テーブルの最新位置を登録したチップテーブルCPTBLが既にRAM13上に読み出し済みであるかが確認される(S105)。読み出し済みの場合、CPU11はRAM13上のチップテーブルCPTBLから最新SB内テーブルが格納されているページアドレスを取得(S108)する。チップテーブルCPTBLがRAM13に読み出されていない場合、チップテーブル領域CTAREAの管理情報としてフラグテーブルFLGTBLを読み出し、最新のチップテーブルの位置を特定(S106)。これに従って、最新のチップテーブルをRAM13に読み出す(S107)。読み出したチップテーブルCPTBLを用いて、最新のSB内テーブルのページアドレスを取得する(S108)。図4の例に従えば、最新SB内テーブルSBTBLはページアドレス0004h〜0007hに格納されていることが分かる。そして、CPU11は最新のSB内テーブルをRAM13に読み出す(S109)。
If the necessary in-SB table SBTBL has not been read out to the
CPU11はRAM13上の最新のSB内テーブルを用いて、アクセス対象論理アドレスに対応するページアドレスを取得する(S110)。図3の例に従えば、アクセス対象論理アドレスのユーザデータ300hはページアドレス0000h〜0003hに格納されていることが分かるので、CPU11はページアドレス0000h〜0003hからバッファメモリ17にユーザデータを読み出す(S111)。最後に、CPU11はバッファメモリ17に読み出したユーザデータをホストインタフェース回路10を介してホストコンピュータ6に向けて出力する(S112)。ホストコンピュータ6が、さらにユーザデータを読み出す場合には(連続してユーザデータ301hを読み出す場合など)、ステップS102〜ステップS112を繰り返す。
The
《書換え処理》
図7には書換え処理フローが例示される。図8にはユーザデータ300h〜30Fhの論理アドレスに対する書換え処理を一例としたときにおける図7の処理ステップとテーブルの登録アドレスとの対応を例示する説明図である。
《Rewrite processing》
FIG. 7 illustrates a rewrite processing flow. FIG. 8 is an explanatory diagram illustrating the correspondence between the processing steps of FIG. 7 and the registered addresses of the table when the rewriting process for the logical addresses of the
ホストコンピュータ6からライトコマンドが発行されると(S201)、CPU11はそれによって指定された論理アドレスに対応するスーパーブロックSBの番号(SB番号)を算出する(S202)。例えば、ホストコンピュータ6が論理アドレスとして、ユーザデータ300h〜30Fhの論理アドレスを指定した場合、図1に従えばSB番号はスーパーブロックSB−0となる。CPU11は算出したSB番号のSB内テーブルSBTBLを、RAM13に既に読み出しているかを確認する(S203)。必要なSB内テーブルSBTBLがRAM13に読み出されていない場合、SB内テーブルSBTBLの最新位置を登録したチップテーブルCPTBLが既にRAM13上に読み出し済みであるかが確認される(S205)。読み出し済みの場合、CPU11はRAM13上のチップテーブルCPTBLから最新SB内テーブルが格納されているページアドレスを取得(S208)する。チップテーブルCPTBLがRAM13に読み出されていない場合、チップテーブル領域CTAREAの管理情報としてフラグテーブルFLGTBLを読み出し、最新のチップテーブルの位置を特定する(S206)。これに従って、最新のチップテーブルをRAM13に読み出す(S207)。読み出したチップテーブルCPTBLを用いて、最新のSB内テーブルのページアドレスを取得する(S208)。図4の例に従えば、最新SB内テーブルSBTBLはページアドレス0004h〜0007hに格納されていることが分かる。そして、CPU11は最新のSB内テーブルをRAM13に読み出す(S209)。
When a write command is issued from the host computer 6 (S201), the
この後、CUP11はRAM13上の最新のSB内テーブルを用いて、アクセス対象スーパーブロックSBにおける空きブロックBLK−Vのページアドレスを取得する(S210)。図3の例では、空きブロックは、ページアドレス0014h〜0017hである。次いで、その空きブロックBLK−Vを消去する(S211)。
Thereafter, the
ここで、RAM13上のSB内テーブルSBTBLを用いて今回のアクセス対象とされる論理アドレスが割り当てられているページアドレスを取得し、そのページアドレスのブロックのデータをバッファメモリ17に退避する。退避したデータは、バッファメモリ17上において、今回ホストコンピュータ6から供給された書込みデータとモディファイされて、後述の書き込み処理に供される。例えばホストコンピュータから供給された書込みデータが1ページ分のデータであるときは残り3ページ分のデータはそのままにされる。この後、CPU11はRAM13上のSB内テーブルSBTBLにおいて今回のアクセス対象とされる論理アドレスが割り当てられているページアドレスと空きブロックのページアドレスとを更新する(S212)。図8の例に従えば、SB内テーブルのユーザデータ300〜30Fhの論理アドレスに対応するページアドレスの情報0000h〜0003hを0014h〜0017hに、SB内テーブルの空きブロックに関するページアドレスの情報0014h〜0017hを0000h〜0003hに更新する。
Here, the page address to which the logical address to be accessed this time is assigned is acquired using the SB table SBTBL on the
次いで、CPU11は、ステップS211で消去された空きブロック0014h〜0017hに、上記モディファイされた書き込みデータとステップS212で更新されたSB内テーブルSBTBLの書き込みを制御する(S213)。
Next, the
更に、RAM13上のチップテーブルにおいて、今回書換え対象とされたスーパーブロックにおける最新のSB内テーブルSBTBLが格納されたページアドレスを更新する(S214)。図8の例に従えば、最新のSB−0内テーブルのページアドレスを0014h〜0017hに更新する。この後、CPU11はRAM13で更新したチップテーブルCPTBLとフラグテーブルFLGTBLをチップテーブル領域CTAREAの次のカラム位置に書き込む(S215)。チップテーブルCPTBL及びフラグテーブルFLGTBLの更新手順は図5で説明した通りであり、必要ならば、予め、チップテーブル領域CTAREAの一方のブロックに対する消去を行う。最後に入替処理S216を行う。ホストコンピュータ6が更に連続して別のユーザデータを書き込む場合には前記ステップS202〜S216を繰り返す。
Further, in the chip table on the
上記書込み処理においては、アクセス対象論理アドレスに対応するブロックとそのときの空きブロックとの入れ替えが行なわれる。この入れ替えにより、ブロックに対する書き換え回数の平準化と書き換え頻度の少ないブロックに対するディスターブ対策を達成することができる。但し、ホストコンピュータ6によるアクセス対象論理アドレスが偏る場合にはその効果は十分ではない。以下に具体例を説明する入れ替え処理はその点を改善しようとするものであり、カードコントローラ3主体でランダムな入れ替え処理を可能にするものである。
In the write process, the block corresponding to the access target logical address is replaced with the empty block at that time. By this replacement, it is possible to achieve leveling of the number of times of rewriting for the block and a countermeasure for disturbing the block having a low frequency of rewriting. However, when the access target logical address by the host computer 6 is biased, the effect is not sufficient. The replacement process described below as a specific example is intended to improve this point, and enables a random replacement process mainly by the
《入れ替え処理》
図9には入れ替え処理フローが例示される。図7のステップS215においてチップテーブル領域CTAREAにおいてページアドレス0FFCh〜0FFFhを消去した場合に入替の処理を実行する(S301)。要するに書換え処理毎に最新のチップテーブルCPTBLをチップテーブル領域CTAREAに順次書込む処理が一巡されたタイミングを以って入れ替え処理を行なう。
《Replacement process》
FIG. 9 illustrates a replacement process flow. When the page addresses 0FFCh to 0FFFh are erased in the chip table area CTAREA in step S215 of FIG. 7, replacement processing is executed (S301). In short, every time the rewriting process is performed, the replacement process is performed at a timing when the process of sequentially writing the latest chip table CPTBL in the chip table area CTALEA is completed.
先ず、書換え処理で更新したスーパーブロックSBの入替対象を、チップテーブルCPTBLから取得する(S302)。図4の例では、スーパーブロックSB−0の入替対象ページアドレスは000Ch〜000Fhとされている。この入替対象ページアドレスが空きブロックであるかを確認し、空きブロックの場合には、入替処理を行わない(S303)。実質的な入れ替え対象がないからである。 First, the replacement target of the super block SB updated by the rewriting process is acquired from the chip table CPTBL (S302). In the example of FIG. 4, the replacement target page address of the super block SB-0 is 000Ch to 000Fh. It is confirmed whether the replacement target page address is an empty block. If it is an empty block, the replacement process is not performed (S303). This is because there is no substantial replacement target.
入替処理を行う場合、まず、現在の空きブロックを消去する(S304)。空きブロックは、RAM13上のSB内テーブルSBTBLから取得する。次いで、RAM13上のSB内テーブルにおいて、入替処理となるユーザデータのページアドレスと空きブロックのページアドレスを更新する(S305)。例では、ページアドレス000Ch〜000Fhが入替対象であり、空きブロックがページアドレス0014h〜0017hのとき、SB内テーブルでは、ページアドレス000Ch〜000Fhを空きブロックに、また、ユーザデータ020h〜02Fhのページアドレスを0014h〜0017hに更新する。
When performing the replacement process, first, the current empty block is erased (S304). The empty block is acquired from the SB table SBTBL on the
消去した空きブロック(ページアドレス:0014h〜0017h)に、ユーザデータ020h〜02Fhと更新したSB内テーブルを書き込む(S306)。ここで、ユーザデータ020h〜02Fhは一旦カードコントローラ3のバッファメモリ17に読み出されてから、空きブロックに書き込まれることになる。
The user data 020h to 02Fh and the updated SB table are written in the erased empty blocks (page addresses: 0014h to 0017h) (S306). Here, the user data 020h to 02Fh is once read to the
最新のSB−0内テーブルが格納されているページアドレスが変更され、且つ入替処理が実行されたので、RAM13上のチップテーブルCPTBLにおいて、最新SB内テーブルのページアドレスと、入替対象のページアドレスを更新する(S307)。例えば最新SB内テーブルのページアドレスは0014h〜0017hに、入替対象のページアドレスは現在の入替対象の次のブロックである0010h〜0013hに更新される。ただし、ページアドレス0010h〜0013hは不良ブロックであるので、入替対象にはページアドレス0F04h〜0F07hを登録する。最後に、最新のチップテーブルCPTBLとフラグテーブルFLGTBLをフラッシュメモリ2のチップテーブル領域CTAREAに書き込む(S308)。
Since the page address in which the latest SB-0 table is stored is changed and the replacement process is executed, the page address of the latest SB table and the page address to be replaced in the chip table CPTBL on the
図10には入替対象のページアドレス更新手順が例示される。入替対象のページアドレスは、入替処理が発生する毎に、次のページアドレスに移動する。また、スーパーブロックの最後のページアドレスの次は、スーパーブロックの先頭のページアドレスに移動する。例えば、ページアドレス00FCh〜00FFhの次は、ページアドレス0000h〜0003hにとなる。
FIG. 10 illustrates a page address update procedure for replacement. The page address to be replaced moves to the next page address every time a replacement process occurs. In addition, after the last page address of the super block, it moves to the top page address of the super block. For example, the page addresses 00FCh to 00FFh are followed by
以上説明したスーパーブロック単位のデータ管理形態によれば、スーパーブロック毎にアクセス対象論理アドレスに対応するブロックとそのときの空きブロックとの入れ替えが行なわれるから、ブロックに対する書き換え回数の平準化と書き換え頻度の少ないブロックに対するディスターブ対策を達成することができる。このとき、物理ブロックの書き換え回数をカウントしたり、書換え回数の少ないブロックを検索したりすることを要しないので、書き換え処理時間を短縮でき、書き込み性能の向上に資することができる。さらに、所定のタイミングでカードコントローラ3主体によるスーパーブロック内でのランダムな入れ替え処理が可能にされるから、ホストコンピュータ6によるアクセス対象論理アドレスが偏っていても、前記平準化とディスターブ対策の実効性を確保することができる。
According to the data management form in units of super blocks described above, the block corresponding to the logical address to be accessed and the empty block at that time are replaced for each super block. Disturbance countermeasures for blocks with few can be achieved. At this time, it is not necessary to count the number of physical block rewrites or search for a block with a small number of rewrites, so that the rewrite processing time can be shortened and the writing performance can be improved. Further, since random replacement processing within the super block by the
《入れ替え処理の第2の例》
図11には入れ替え処理の第2の例が示される。図9の第1の例との相違点は、入れ替え処理を行なうタイミングと、入れ替え対象の選択方法である。即ち、図7ステップS215においてチップテーブル領域においてページアドレス0FF8h〜0FFBhを消去した場合に入替の処理を実行する(S401)。入れ替え対象は書換え処理と同じスーパーブロックから選択するのではなく、隣のスーパーブロックに対して行う(S402)。例えば、直前の書換え対象がスーパーブロックSB−0に属するブロックであったとき、入れ替え対象は隣のスーパーブロックSB−1の入替対象ページアドレスとされ、例えば図4の例に従えばスーパーブロックSB−1のページアドレス0100h〜0103Fhとされている。その他の処理手順は図9と同じである。
<< Second example of replacement process >>
FIG. 11 shows a second example of the replacement process. The difference from the first example in FIG. 9 is the timing for performing the replacement process and the method for selecting the replacement target. That is, when page addresses 0FF8h to 0FFBh are erased in the chip table area in step S215 in FIG. 7, replacement processing is executed (S401). The replacement target is not selected from the same super block as the rewriting process, but is performed on the adjacent super block (S402). For example, when the previous rewrite target is a block belonging to the super block SB-0, the replacement target is the replacement target page address of the adjacent super block SB-1, and for example, according to the example of FIG. 4, the super block SB- 1 page addresses 0100h to 0103Fh. Other processing procedures are the same as those in FIG.
図11の入れ替え処理手順によれば、直前に書換え処理の対象になったスーパーブロックの隣のスーパーブロックが入れ替え処理の対象になるから、一つのスーパーブロックが頻繁に書換えられても、隣のスーパーブロックに対して入れ替え処理を施すことができる。一つのスーパーブロックに対する書換えが集中しても、他のスーパーブロックにおける書換え回数の平準化に資することができる。 According to the replacement processing procedure of FIG. 11, since the super block next to the super block that was the target of the rewrite process immediately before becomes the target of the replacement process, even if one super block is frequently rewritten, A replacement process can be performed on the block. Even if rewriting for one super block is concentrated, it is possible to contribute to leveling of the number of rewritings in other super blocks.
《入れ替え処理の第3の例》
図12には入れ替え処理の第3の例が示される。図9の第1の例との相違点は、入替対象に保存されたデータを救済する必要がない場合、即ち、入れ替え対象が空きブロックの場合に、チップテーブルに格納されている入替対象のページアドレスを更新する処理(S508)を行なうことである。例えば、直前の書換え対象がスーパーブロックSB−0に属するブロックであったとき、入れ替え対象ページアドレスが0014Ch〜0017hのとき、これが空きブロックであるときに、当該入れ替え対象ページアドレスを隣のページアドレス0018h〜001AFhに変更する。その他の処理手順は図9と同じである。これによれば、特定アドレスに書き込みが集中した場合、当該書込み対象スーパーブロックにおける入替処理で、「入替対象=空きブロック」となった時に、入替対象を更新しないと次回の入替処理でも「入替対象=空きブロック」となる可能性が高いため、ディスターブ対策の機能が失われる場合がある。「入替対象=空きブロック」となった時に、入替対象を更新することで、書き込み処理で指定されるアドレスに関係なく、ディスターブ対策を実施することが可能になる。
<< Third example of replacement process >>
FIG. 12 shows a third example of the replacement process. The difference from the first example of FIG. 9 is that the page to be replaced that is stored in the chip table when it is not necessary to rescue the data stored in the replacement target, that is, when the replacement target is an empty block. The process of updating the address (S508) is performed. For example, when the previous rewrite target is a block belonging to the super block SB-0, when the replacement target page address is 0014Ch to 0017h, and this is an empty block, the replacement target page address is set to the adjacent page address 0018h. Change to ~ 001AFh. Other processing procedures are the same as those in FIG. According to this, when writing concentrates on a specific address, if the replacement target in the super block to be written becomes “replacement target = empty block” and the replacement target is not updated, the “replacement target” = Disabling function may be lost because there is a high possibility of becoming “= free block”. By updating the replacement target when “replacement target = empty block”, it becomes possible to implement a countermeasure against disturbance regardless of the address specified in the writing process.
《入れ替え対象の別の指定方法》
次に、入れ替え処理における入れ替え対象を複数のスーパーブロック単位で管理するようにした場合の例を説明する。図13にはそのときのチップテーブルの構成が例示され、図14にはそのときの書き換え処理フローが例示され、図15にはそのときの入れ替え処理フローが例示される。
<Another method for specifying the replacement target>
Next, an example in which the replacement target in the replacement process is managed in units of a plurality of super blocks will be described. FIG. 13 illustrates the configuration of the chip table at that time, FIG. 14 illustrates the rewrite processing flow at that time, and FIG. 15 illustrates the replacement processing flow at that time.
入れ替え処理対象を複数のスーパーブロック単位で管理する場合、チップテーブルCPTBLは図13に示されるように変更される。基本的構成は図4と同様であるが、入替対象のページアドレスが複数スーパーブロック単位で管理され、複数スーパーブロック単位の更新回数を保持する領域が追加された点が相違される。例えば、管理の単位はスーパーブロックSB−0〜SB−3のようにされ、このときの入替対象のページアドレスが採り得る範囲は当該スーパーブロックSB−0〜SB−3の全範囲である000h〜FBFhとなり、その更新回数はスーパーブロックSB−0〜SB−3の全体における更新回数の総和とする。 When managing the replacement processing target in units of a plurality of super blocks, the chip table CPTBL is changed as shown in FIG. The basic configuration is the same as in FIG. 4 except that the page address to be replaced is managed in units of a plurality of super blocks and an area for holding the number of updates in units of a plurality of super blocks is added. For example, the management unit is set to super blocks SB-0 to SB-3, and the range that can be taken by the page address to be replaced at this time is the entire range of the super blocks SB-0 to SB-3. FBFh, and the number of updates is the sum of the number of updates in the entire super blocks SB-0 to SB-3.
このときの書換え処理フローは図13のように変更されるが、基本的な処理手順は図7とほぼ同じである。相違点は、複数のスーパーブロックSBの単位で更新回数をカウントするため、管理単位の番号を論理アドレスであるユーザデータアドレスから計算する処理ステップS609,S610と、チップテーブルCPTBLで管理する更新回数を更新する処理ステップS617である。 The rewrite processing flow at this time is changed as shown in FIG. 13, but the basic processing procedure is almost the same as in FIG. The difference is that since the number of updates is counted in units of a plurality of super blocks SB, the processing steps S609 and S610 for calculating the management unit number from the user data address which is a logical address, and the number of updates managed in the chip table CPTBL are set. It is processing step S617 to update.
更に入れ替え処理も図15のように変更されるが、基本的な処理手順は図9とほぼ同じである。相違点は、入替処理のトリガが、複数スーパーブロック単位の更新回数が規定値、例えばFFFhとなったとき、とすることである。 Further, the replacement process is also changed as shown in FIG. 15, but the basic processing procedure is almost the same as that in FIG. The difference is that the replacement processing trigger is when the number of updates in units of a plurality of super blocks reaches a specified value, for example, FFFh.
この入れ替え対象の指定手順によれば、ディスターブに起因するデータの救済が複数のスーパーブロック単位で必要な場合に、データの救済が可能となる。例えば、ディスターブの影響が複数のスーパーブロックSBに跨って発生する時に、特定のスーパーブロックに書き込みが集中した場合でも、ディスターブを受ける範囲(書き込みが発生しないが、ディスターブの影響を受ける他のスーパーブロック)を全て入れ替え処理による救済の対象とすることができる。要するに、今まで説明したブロックの構成とは違うが、異なるスーパーブロック間においてワード線が全体的に若しくは部分的に共通化されるような構成を想定すると、ディスターブは異なるスーパーブロック間でも発生するから、特定のスーパーブロックだけが頻繁に書換えられる場合にディスターブの影響を全体的に緩和する効果を期待することができる。 According to this replacement target designation procedure, data can be relieved when data relieving due to disturbance is required in units of a plurality of super blocks. For example, when the influence of disturb occurs across a plurality of super blocks SB, even if writing concentrates on a specific super block, the range subject to disturb (other super blocks that are not affected by writing but are affected by disturb) ) Can all be repaired by replacement processing. In short, although different from the block configuration described so far, if a configuration in which word lines are shared in whole or in part between different super blocks is assumed, disturbance occurs between different super blocks. When only a specific super block is frequently rewritten, it is possible to expect an effect of alleviating the influence of disturb as a whole.
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。 Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.
例えば、フラッシュメモリのメモリアレイ構成はAND型であってもNAND型であってもよい。また、ページサイズ、ブロックのサイズ、スーパーブロックのサイズは適宜変更可能である。また、消去や書き込み方式、消去単位に対するワード線の構成やウェルの構成などについても適宜変更可能である。要するに、本発明は具体的なメモリアレイの構成には一切限定されない。 For example, the memory array configuration of the flash memory may be an AND type or a NAND type. The page size, block size, and super block size can be changed as appropriate. In addition, the erasing and writing methods, the word line configuration and the well configuration for the erasing unit can be changed as appropriate. In short, the present invention is not limited to a specific configuration of the memory array.
1 フラッシュメモリカード(FMC)
2 フラッシュメモリ(FLASH)
3 カードコントローラ(CCRL)
6 ホストコンピュータ(HST)
10 ホストインタフェース回路(HIF)
11 中央処理装置(CPU)
12 ROM
13 RAM
14 フラッシュインタフェース回路(FIF)
15 エラー検出訂正回路(ECC)
16 バッファインタフェース回路(BIF)
17 バッファメモリ(BMRY)
20メモリアレイ(MARY)
21 データレジスタ(DREG)
PAG ページ領域(ページ)
BLK ブロック領域(ブロック)
BLK−V 空きブロック
BLK−C 管理用ブロック
SB(SB−0〜SB−15は) スーパーブロック
SB−0〜SB−14 ユーザデータ領域
SBTBL アドレス変換テーブルとしてのSB内テーブル
CTAREA チップテーブル領域
CPTBL チップテーブル
FLGTBL フラグテーブル
NMBA 書換え回数保持領域
REPA 入れ替え対象ページアドレスの保持領域
1 Flash memory card (FMC)
2 Flash memory (FLASH)
3 Card controller (CCRL)
6 Host computer (HST)
10 Host interface circuit (HIF)
11 Central processing unit (CPU)
12 ROM
13 RAM
14 Flash interface circuit (FIF)
15 Error detection and correction circuit (ECC)
16 Buffer interface circuit (BIF)
17 Buffer memory (BMRY)
20 memory array (MARY)
21 Data register (DREG)
PAG page area (page)
BLK block area (block)
BLK-V Empty block BLK-C Management block SB (SB-0 to SB-15) Super block SB-0 to SB-14 User data area SBTBL In-SB table as address conversion table CTAREA Chip table area CPTBL Chip table FLGTBL flag table NMBA Rewrite count holding area REPA Holding area for page address to be replaced
Claims (18)
前記不揮発性メモリは、記憶情報の書き換えが可能にされる複数個の不揮発性メモリセルの集合であるブロック領域単位に記憶情報を初期化する消去処理が可能にされ、消去処理されたブロック領域に情報を書込む書込み処理が可能にされ、
前記制御回路は、データ用の複数のブロック領域の集合であるスーパーブロック単位で一つの空きブロックの割り当てと残りのブロック領域に対する論理アドレスの割り当てを行ない、その割り当てを示す最新のアドレス変換テーブルを当該スーパーブロック内で最後に書込み処理が行なわれた一つのブロック領域に保持させ、夫々のスーパーブロックにおける前記アドレス変換テーブルを有するブロック領域の物理アドレスを示すアドレステーブルを管理用のブロック領域に格納させ、
前記制御回路は、外部からのアクセス要求に応答するとき、当該アクセス要求に係る論理アドレスに対応する物理アドレスを、当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルから取得し、取得した物理アドレスを用いてブロック領域のアクセス制御が可能にされる記憶装置。 A storage device having a nonvolatile memory and a control circuit,
The non-volatile memory can be erased to initialize the memory information in a block area unit, which is a set of a plurality of non-volatile memory cells in which the memory information can be rewritten. Write processing to write information is enabled,
The control circuit allocates one free block and logical addresses to the remaining block areas in units of super blocks, which is a set of a plurality of block areas for data, and stores the latest address conversion table indicating the allocation. It is held in one block area where the last write processing is performed in the super block, and an address table indicating the physical address of the block area having the address conversion table in each super block is stored in the management block area.
When responding to an access request from the outside, the control circuit obtains a physical address corresponding to the logical address related to the access request from an address conversion table corresponding to the super block to which the logical address related to the access request is assigned. A storage device that can acquire and control access to a block area using the acquired physical address.
前記制御回路は、入れ換え処理の実行タイミングを検出すると、前記アドレステーブルからブロック領域単位の入れ換え対象物理アドレスの情報を取得し、現在の空きブロックの物理アドレスに前記取得した入れ換え対象物理アドレスの論理アドレスを新たに割り当てると共に、前記取得した入れ換え対象物理アドレスのブロック領域を新たな空きブロックに割り当て、前記新たな空きブロックと前記新たに論理アドレスを割り当てたブロック領域との間のデータの入れ換えとデータの更新を制御し、当該データの更新制御によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させると共に、アドレステーブルが保有するスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレスの情報を更新する請求項4記載の記憶装置。 The address table has an area for storing physical address information for replacement in block area units in a super block,
When detecting the execution timing of the replacement process, the control circuit acquires information on the replacement target physical address in block area units from the address table, and adds the logical address of the acquired replacement target physical address to the physical address of the current free block. And assigning the block area of the acquired replacement target physical address to a new empty block, exchanging data between the new empty block and the block area to which the new logical address is assigned, and data The update is controlled, the location of the address conversion table changed by the update control of the data is reflected in the address table, and the information on the physical address to be replaced in the block area in the super block held by the address table is updated. Motomeko 4 storage device according.
前記制御回路は、書込み処理の後に管理用のブロック領域が消去されたことを、前記入れ換え処理の実行タイミングとして検出する請求項6記載の記憶装置。 The control circuit uses a plurality of management block areas to store the address table, and sequentially switches and uses the management block areas to store the address table, each time the address table is written. The control is performed to sequentially change a plurality of storage positions of the address table on the block area to be written, and the flag information indicating the storage position of the changed address table is updated on the block area to be written, When there is no more free space to write a new address table in the management block area, the management block area is deleted.
The storage device according to claim 6, wherein the control circuit detects that the management block area has been erased after the writing process as an execution timing of the replacement process.
前記制御回路は書換え処理において書換え処理対象とされたスーパーブロックに関する前記回数領域の値をインクリメントし、
前記制御回路は、入れ換え処理の実行タイミングを検出すると、前記アドレステーブルからブロック領域単位の入れ換え対象物理アドレスの情報を取得し、現在の空きブロックの物理アドレスに前記取得した入れ換え対象物理アドレスの論理アドレスを新たに割り当てると共に、前記取得した入れ換え対象物理アドレスのブロック領域を新たな空きブロックに割り当て、前記新たな空きブロックと前記新たに論理アドレスを割り当てたブロック領域との間のデータの入れ換えとデータの更新を制御し、当該データの更新によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させると共に、アドレステーブルが保有する複数のスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレスの情報を更新する請求項4記載の記憶装置。 The address table has an address area for storing physical address information to be replaced in units of block areas in a plurality of super blocks, and a number area for storing the number of rewrite processing times of the block areas in the plurality of super blocks,
The control circuit increments the value of the number-of-times area related to the super block that is the target of the rewrite process in the rewrite process,
When detecting the execution timing of the replacement process, the control circuit acquires information on the replacement target physical address in block area units from the address table, and adds the logical address of the acquired replacement target physical address to the physical address of the current free block. And assigning the block area of the acquired replacement target physical address to a new empty block, exchanging data between the new empty block and the block area to which the new logical address is assigned, and data Controls updating, reflects the location of the address translation table changed by updating the data to the address table, and updates information on physical addresses to be replaced in block areas in a plurality of super blocks held by the address table You Memory device according to claim 4, wherein.
前記不揮発性メモリは、記憶情報の書き換えが可能にされる複数個の不揮発性メモリセルの集合であるブロック領域単位に記憶情報を初期化する消去処理が可能にされ、消去処理されたブロック領域に情報を書込む書込み処理が可能にされ、
前記制御回路は、データ用の複数のブロック領域の集合であるスーパーブロック単位で一つの空きブロックの割り当てと残りのブロック領域に対する論理アドレスの割り当てを行ない、その割り当てを示す最新のアドレス変換テーブルを当該スーパーブロック内で最後に書込み処理が行なわれた一つのブロック領域に保持させ、夫々のスーパーブロックにおける前記アドレス変換テーブルを有するブロック領域の物理アドレスを示すアドレステーブルを管理用のブロック領域に格納させ、
前記制御回路は、外部からのアクセス要求に応答するとき、前記アドレステーブルを取得していないときは不揮発性メモリからアドレステーブルを読み込み、当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルを取得していないときは当該アドレス変換テーブルの物理アドレスを前記取得したアドレステーブルから検索し、検索した物理アドレスに格納されたアドレス変換テーブルを前記不揮発性メモリから取得し、取得したアドレス変換テーブルから当該アクセス要求に係る論理アドレスに対応する物理アドレスを取得し、取得した物理アドレスを用いてブロック領域のアクセス制御が可能にされる記憶装置。 A storage device having a nonvolatile memory and a control circuit,
The non-volatile memory can be erased to initialize the memory information in a block area unit, which is a set of a plurality of non-volatile memory cells in which the memory information can be rewritten. Write processing to write information is enabled,
The control circuit allocates one free block and logical addresses to the remaining block areas in units of super blocks, which is a set of a plurality of block areas for data, and stores the latest address conversion table indicating the allocation. It is held in one block area where the last write processing is performed in the super block, and an address table indicating the physical address of the block area having the address conversion table in each super block is stored in the management block area.
When the control circuit responds to an access request from the outside, when the address table is not acquired, the control circuit reads the address table from the nonvolatile memory and corresponds to the super block to which the logical address related to the access request is assigned. When the address conversion table to be acquired is not acquired, the physical address of the address conversion table is searched from the acquired address table, and the address conversion table stored in the searched physical address is acquired from the nonvolatile memory and acquired. A storage device that acquires a physical address corresponding to a logical address related to the access request from an address conversion table and enables access control of a block area using the acquired physical address.
前記不揮発性メモリは、記憶情報の書き換えが可能にされる複数個の不揮発性メモリセルの集合であるページ領域単位に記憶情報を書込む書込み処理が可能にされ、複数のページ領域の集合であるブロック領域単位に記憶情報を初期化する消去処理が可能にされ、
前記制御回路は、データ用の複数のブロック領域の集合であるスーパーブロック単位で一つの空きブロックの割り当てと残りのブロック領域に対する論理アドレスの割り当てを行ない、その割り当てを示す最新のアドレス変換テーブルを当該スーパーブロック内で最後に書込み処理が行なわれた一つのブロック領域に保持させ、夫々のスーパーブロックにおける前記アドレス変換テーブルを有するブロック領域の物理アドレスを示すアドレステーブルを管理用のブロック領域に格納させ、
前記制御回路は、外部からのアクセス要求に応答するとき、前記アドレステーブルを取得していないときは不揮発性メモリからアドレステーブルを読み込み、当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルを取得していないときは当該アドレス変換テーブルの物理アドレスを前記取得したアドレステーブルから検索し、検索した物理アドレスに格納されたアドレス変換テーブルを前記不揮発性メモリから取得し、取得したアドレス変換テーブルから当該アクセス要求に係る論理アドレスに対応する物理アドレスを取得し、取得した物理アドレスを用いてブロック領域のアクセス制御が可能にされる記憶装置。 A storage device having a nonvolatile memory and a control circuit,
The non-volatile memory is a set of a plurality of page areas in which a write process for writing the storage information in a page area unit, which is a set of a plurality of non-volatile memory cells that can rewrite the stored information, is possible. Erase processing that initializes stored information in block area units is enabled,
The control circuit allocates one free block and logical addresses to the remaining block areas in units of super blocks, which is a set of a plurality of block areas for data, and stores the latest address conversion table indicating the allocation. It is held in one block area where the last write processing is performed in the super block, and an address table indicating the physical address of the block area having the address conversion table in each super block is stored in the management block area.
When the control circuit responds to an access request from the outside, when the address table is not acquired, the control circuit reads the address table from the nonvolatile memory and corresponds to the super block to which the logical address related to the access request is assigned. When the address conversion table to be acquired is not acquired, the physical address of the address conversion table is searched from the acquired address table, and the address conversion table stored in the searched physical address is acquired from the nonvolatile memory and acquired. A storage device that acquires a physical address corresponding to a logical address related to the access request from an address conversion table and enables access control of a block area using the acquired physical address.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005357373A JP2007164318A (en) | 2005-12-12 | 2005-12-12 | Storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005357373A JP2007164318A (en) | 2005-12-12 | 2005-12-12 | Storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007164318A true JP2007164318A (en) | 2007-06-28 |
Family
ID=38247157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005357373A Pending JP2007164318A (en) | 2005-12-12 | 2005-12-12 | Storage system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007164318A (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010097563A (en) * | 2008-10-20 | 2010-04-30 | Nec Corp | Network storage system, disk array device, host device, access control method, and data access method |
JP2010515179A (en) * | 2007-01-17 | 2010-05-06 | メモライト メモリテック (シェンチェン) カンパニー リミテッド | Flash memory block management method |
JP2010146512A (en) * | 2008-12-22 | 2010-07-01 | Tdk Corp | Memory controller, flash memory system having memory controller, and control method of flash memory |
JP2010146515A (en) * | 2008-12-22 | 2010-07-01 | Tdk Corp | Memory controller, flash memory system equipped with memory controller, and control method of flash memory |
JP2010250533A (en) * | 2009-04-15 | 2010-11-04 | Tdk Corp | Memory controller, flash memory system with memory controller, and control method for flash memory |
JP2010250413A (en) * | 2009-04-13 | 2010-11-04 | Tdk Corp | Memory controller, flash memory system with memory controller, and method for controlling flash memory |
US8171208B2 (en) | 2008-03-01 | 2012-05-01 | Kabushiki Kaisha Toshiba | Memory system |
JP2013235531A (en) * | 2012-05-11 | 2013-11-21 | Sony Corp | Control device, storage device, and storage control method |
JP2013235530A (en) * | 2012-05-11 | 2013-11-21 | Sony Corp | Control device, storage device, and storage control method |
WO2014132346A1 (en) * | 2013-02-27 | 2014-09-04 | 株式会社日立製作所 | Semiconductor storage |
WO2015008338A1 (en) * | 2013-07-16 | 2015-01-22 | 富士通株式会社 | Information processing device, control circuit, control program, and control method |
JP2015201231A (en) * | 2015-06-19 | 2015-11-12 | 株式会社日立製作所 | Storage system with plurality of flash packages |
JP2016192213A (en) * | 2016-05-26 | 2016-11-10 | 株式会社日立製作所 | Storage system having plural flash packages |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1049447A (en) * | 1996-08-02 | 1998-02-20 | Tokyo Electron Ltd | Semiconductor memory device |
JP2002073409A (en) * | 2000-08-28 | 2002-03-12 | Toshiba Corp | Memory card and address conversion method for card |
WO2004040586A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
JP2005018490A (en) * | 2003-06-26 | 2005-01-20 | Tdk Corp | Memory controller and flash memory system equipped with memory controller |
JP2005316793A (en) * | 2004-04-30 | 2005-11-10 | Tdk Corp | Flash memory system and control method of flash memory |
-
2005
- 2005-12-12 JP JP2005357373A patent/JP2007164318A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1049447A (en) * | 1996-08-02 | 1998-02-20 | Tokyo Electron Ltd | Semiconductor memory device |
JP2002073409A (en) * | 2000-08-28 | 2002-03-12 | Toshiba Corp | Memory card and address conversion method for card |
WO2004040586A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
JP2005018490A (en) * | 2003-06-26 | 2005-01-20 | Tdk Corp | Memory controller and flash memory system equipped with memory controller |
JP2005316793A (en) * | 2004-04-30 | 2005-11-10 | Tdk Corp | Flash memory system and control method of flash memory |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010515179A (en) * | 2007-01-17 | 2010-05-06 | メモライト メモリテック (シェンチェン) カンパニー リミテッド | Flash memory block management method |
US8171208B2 (en) | 2008-03-01 | 2012-05-01 | Kabushiki Kaisha Toshiba | Memory system |
JP2010097563A (en) * | 2008-10-20 | 2010-04-30 | Nec Corp | Network storage system, disk array device, host device, access control method, and data access method |
US9104338B2 (en) | 2008-10-20 | 2015-08-11 | Nec Corporation | Network storage system, disk array device, host device, access control method, and data access method |
JP2010146512A (en) * | 2008-12-22 | 2010-07-01 | Tdk Corp | Memory controller, flash memory system having memory controller, and control method of flash memory |
JP2010146515A (en) * | 2008-12-22 | 2010-07-01 | Tdk Corp | Memory controller, flash memory system equipped with memory controller, and control method of flash memory |
JP2010250413A (en) * | 2009-04-13 | 2010-11-04 | Tdk Corp | Memory controller, flash memory system with memory controller, and method for controlling flash memory |
JP2010250533A (en) * | 2009-04-15 | 2010-11-04 | Tdk Corp | Memory controller, flash memory system with memory controller, and control method for flash memory |
JP2013235530A (en) * | 2012-05-11 | 2013-11-21 | Sony Corp | Control device, storage device, and storage control method |
JP2013235531A (en) * | 2012-05-11 | 2013-11-21 | Sony Corp | Control device, storage device, and storage control method |
WO2014132346A1 (en) * | 2013-02-27 | 2014-09-04 | 株式会社日立製作所 | Semiconductor storage |
JP6018696B2 (en) * | 2013-02-27 | 2016-11-02 | 株式会社日立製作所 | Semiconductor storage |
WO2015008338A1 (en) * | 2013-07-16 | 2015-01-22 | 富士通株式会社 | Information processing device, control circuit, control program, and control method |
JP6028866B2 (en) * | 2013-07-16 | 2016-11-24 | 富士通株式会社 | Information processing apparatus, control circuit, control program, and control method |
JP2015201231A (en) * | 2015-06-19 | 2015-11-12 | 株式会社日立製作所 | Storage system with plurality of flash packages |
JP2016192213A (en) * | 2016-05-26 | 2016-11-10 | 株式会社日立製作所 | Storage system having plural flash packages |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007164318A (en) | Storage system | |
US10783071B2 (en) | Data storage device and operating method thereof, wherein mapping table for valid data of source block that has not been copied to destination block has a higher priority than mapping information collected by reverse scanning from end of the destination block | |
US8595424B2 (en) | Cluster based non-volatile memory translation layer | |
US10503653B2 (en) | Memory system | |
KR100880425B1 (en) | Non-volatile semiconductor memory device for supporting high speed search in cache memory function | |
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
JP2008524705A (en) | Scratch pad block | |
JP2008146253A (en) | Storage device, computer system, and data processing method for storage device | |
JP2008146254A (en) | Storage device, computer system and data processing method for storage device | |
KR20200089338A (en) | Multi-level addressing | |
CN112445733A (en) | Memory system, memory controller and operation method | |
US20210365382A1 (en) | Memory system, memory controller, and operation method thereof | |
JP4661497B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4235646B2 (en) | Memory controller and flash memory system | |
CN113535598A (en) | Memory system, memory controller, and method of operating memory system | |
JP4661191B2 (en) | Memory controller, flash memory system, and flash memory control method | |
CN114968856B (en) | Memory system and method of operating the same | |
JP4558054B2 (en) | Memory system | |
JP4434171B2 (en) | Memory controller and flash memory system | |
CN114520013A (en) | Memory system and operating method thereof | |
CN112748870A (en) | Memory system, memory controller and method of operating memory controller | |
US11995352B2 (en) | Memory controller and operating method thereof | |
JP4254930B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4213166B2 (en) | Memory controller and flash memory system | |
JP4332108B2 (en) | Memory controller, flash memory system, and flash memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081121 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100507 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110811 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110818 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111222 |