JP2007164318A - Storage system - Google Patents

Storage system Download PDF

Info

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
Application number
JP2005357373A
Other languages
Japanese (ja)
Inventor
Ikuo Hara
郁夫 原
Akira Nagao
明 長尾
Takayuki Tamura
隆之 田村
Kiyoshi Kamiya
清志 紙屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005357373A priority Critical patent/JP2007164318A/en
Publication of JP2007164318A publication Critical patent/JP2007164318A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To shorten a processing time accompanying the the change of the assignment of a logical address to a physical block to be performed for the leveling of the number of times of rewriting and for facilitating countermeasures to disturbance. <P>SOLUTION: A non-volatile memory uses a block region (BLK) as the group of non-volatile memory cells as an initialization unit. A control circuit performs the assignment of one vacant block (BLK-V) and the assignment of a logical address to the residual block region by a super block (SB) unit as the group of the block regions. A latest address conversion table showing the assignment is stored in the block region to which writing has been finally operated among the super blocks, and the location of an address conversion table held by each super block is held in the block region (BLK-C) for management. The physical address corresponding to the access request is acquired by using the address conversion table on the super block to which the logical address relating to the access request has been assigned. <P>COPYRIGHT: (C)2007,JPO&INPIT

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 Patent Documents 1 and 2, logical address assignment may be exchanged between a physical block with a relatively small number of rewrites and another physical block.

特開2004−310650号公報JP 2004-310650 A 米国特許第5568439号明細書US Pat. No. 5,568,439

本発明者は、物理ブロックの書き換え回数(消去回数)をカウントし、書き換え回数の多いブロックと少ないブロックを入れ替えることで、書き換え回数の平準化と、ディスターブ対策を行なうことについて検討した。これによれば、物理ブロックの書き換え回数が一定値になったことで、書き換え回数の少ないブロックと入れ替える場合、書き換え回数の少ないブロックを検索するのに比較的長い時間を要し、書き換え時間が大幅に延び、アクセス性能を低下させる。例えば、書き換え回数の一番少ないブロックを検索するには、全ブロックに格納されている書き換え回数を読み出し、最も少ないブロックを見つける必要がある。全ブロックの読み出しには、膨大な時間が必要であり、性能低下は免れない。また、書き換え回数を物理ブロック単位に管理するには、物理ブロック毎に書き換え回数を保存する領域が必要である。そうすると、物理ブロックに対してデータ部の書き換えとは別に、書き換え回数の更新も必要になる。物理ブロックと同じ消去単に含まれる管理情報に消去回数を保存した場合、物理ブロックの書き換え前に管理情報を読み出し、書き換え回数を退避する。その後、書き換え回数を更新した管理情報をフラッシュメモリに転送する処理が必要になるため、この点においてもアクセス性能低下を生ずる。   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 card controller 3 performs external interface control in accordance with, for example, an IDE disk interface specification with a host computer (HST) 6 as a card host. The card controller 3 has an access control function for accessing the flash memory 2 in accordance with an instruction from the host computer 6. This access control function is a hard disk compatible control function. For example, when the host computer 6 manages a set of sector data as file data, the card controller 3 associates a sector address as a logical address with a physical memory address to flash memory. 2 access control is performed. According to FIG. 1, the card controller 3 includes a host interface circuit (HIF) 10, a central processing unit (CPU) 11, a ROM 12, a RAM 13, a flash interface circuit (FIF) 14, an error detection and correction circuit (ECC) 15, a buffer. An interface circuit (BIF) 16 and a buffer memory (BMRY) 17 are provided.

前記ホストインタフェース回路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 host interface circuit 10 includes ATA (ATA Attachment), IDE (Integrated Device Electronics), SCSI (Small Computer System Interface, etc.), MMC (MultiMediaCard: Registered Trademark), and PCMCIA (Perm. Control the command interface and data input / output with the host computer 6. The host interface circuit 10 decodes the memory card command issued from the host computer 6 and instructs the CPU 11 to perform processing according to the decoding result by interruption or the like.

前記CPU11は、RAM13をワーク領域として利用し、ROM12が保有するプログラムを実行して、カードコントローラ3を全体的に制御する。   The CPU 11 uses the RAM 13 as a work area, executes a program stored in the ROM 12, and controls the card controller 3 as a whole.

フラッシュインタフェース回路14はCPU11の制御に従ってフラッシュメモリ2にフラッシュアクセスコマンドを発行してデータの書換えや読出しを制御する。   The flash interface circuit 14 issues a flash access command to the flash memory 2 under the control of the CPU 11 to control data rewriting and reading.

前記バッファインタフェース回路16はホストインタフェース回路10とバッファメモリ17との間のデータ転送制御並びにバッファメモリ17とフラッシュインタフェース回路14との間のデータ転送制御を行う。ホストインタフェース回路10が入力した書込みデータは一旦バッファメモリ17に格納され、その後、バッファメモリ17からフラッシュインタフェース回路10に転送された書き込みデータがフラッシュメモリに書込まれえる。また、フラッシュメモリ2から読み出された読出しデータは一旦バッファメモリ17に格納され、その後、バッファメモリ17からホストインタフェース回路10に転送された読出しデータがホストコンピュータ6に向けて出力される。   The buffer interface circuit 16 performs data transfer control between the host interface circuit 10 and the buffer memory 17 and data transfer control between the buffer memory 17 and the flash interface circuit 14. The write data input by the host interface circuit 10 is temporarily stored in the buffer memory 17, and then the write data transferred from the buffer memory 17 to the flash interface circuit 10 can be written to the flash memory. The read data read from the flash memory 2 is temporarily stored in the buffer memory 17, and then the read data transferred from the buffer memory 17 to the host interface circuit 10 is output to the host computer 6.

前記フラッシュメモリ2は代表的に示されたメモリアレイ(MARY)20とデータレジスタ(DREG)21を有する。メモリアレイ20は電気的に記憶情報の書き換えが可能にされる多数の不揮発性メモリセルを有する。不揮発性メモリセルには、例えば、電荷蓄積層としてフローティングゲートを有するMOSスタックゲート構造、或いは電荷蓄積層としてシリコン窒化膜を有するスプリットゲート構造等を採用することができる。何れにおいても、電荷蓄積領域に電子を注入(正孔を放出)する処理(書込み処理)を行なうことによって閾値電圧を高くし、また、前記電荷蓄積領域から電子を放出(正孔を注入)して初期化する処理(消去処理)を行なうことによって閾値電圧を低くする。不揮発性メモリセルはこの書込み処理と消去処理による閾値電圧の相違によって情報を記憶することができる。1個の不揮発性メモリセルに選択的にプログラムできる閾値電圧状態を2つの状態とすることによって2値記憶を行うことができる。1個の不揮発性メモリセルに選択的にプログラムできる閾値電圧状態を4つの状態とする4値記憶を行うように構成することも可能である。   The flash memory 2 has a memory array (MARY) 20 and a data register (DREG) 21 which are representatively shown. The memory array 20 has a large number of nonvolatile memory cells that can electrically rewrite stored information. The nonvolatile memory cell may employ, for example, a MOS stack gate structure having a floating gate as a charge storage layer, or a split gate structure having a silicon nitride film as a charge storage layer. In either case, the threshold voltage is increased by performing a process (writing process) for injecting electrons into the charge storage region (releases holes), and also releases electrons (injects holes) from the charge storage region. The threshold voltage is lowered by performing initialization processing (erasing processing). The nonvolatile memory cell can store information by the difference in threshold voltage between the writing process and the erasing process. By storing two threshold voltage states that can be selectively programmed in one nonvolatile memory cell, binary storage can be performed. It is also possible to perform quaternary storage with four threshold voltage states that can be selectively programmed in one nonvolatile memory cell.

特に制限されないが、メモリアレイは複数個の不揮発性メモリセルの集合であるページ領域(単にページとも記す)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 memory array 20 and store a maximum of one block of data. The data register 21 inputs and outputs data in units of bytes with the flash interface circuit 14. For example, in data rewriting, data read from the erase target block BLK is saved in the data register 21. The saved data is modified by the write data supplied from the flash interface circuit 14 or the like. The modified data is written in the erased block BLK in units of pages.

《スーパーブロック単位のデータ管理形態》
図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 memory array 2. The page address, which is a physical address of the page unit of the memory array 21, is set to 0000h to 0FFFh. h means a hexadecimal number. One page (writing unit) PAG is 2112 bytes. One page PAG includes four sectors (512 bytes) as a data area (DataArea), an ECC code (8 bytes) area for the sector, and a 32-byte management area (ControlArea). Four pages PAG form one block BLK (erase unit). Here, the number of blocks BLK is 400h.

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の位置まで変更される。   Columns 0 to 3 corresponding to 4 sectors are assigned to each page of the chip table area CTAARE, and the management block BLK-C is used in order to store the chip table CPTBL, and each write of the chip table CPTBL is performed. Control to sequentially switch the write column position on the page. For example, as illustrated in FIG. 4, if column 0 of page address 0FF8h in the upper management block BLK-C is used as a writing base point of the chip table CPTBL, page address 0FFCh in the lower management block BLK-C is used in the next writing. Column 0, and in the next write, column 1 of page address 0FF8h in the upper management block BLK-C is sequentially changed as indicated by the arrow, and finally the page in the lower management block BLK-C. It is changed to the position of column 3 at address 0FFFh.

図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 column 0 to column 3 for 8 pages. The flag table FLGTBL is initialized to FFh when the chip table area CTAREA is erased, and the head chip table flag is changed from FFh to 00h when the latest chip table is stored at the head of the chip table area CTAREA ( S1). Thereafter, the chip table flag is changed from FFh to 00h at the corresponding position on the flag table FLGTBL according to the change of the storage position of the latest chip table (S2, S3). When all the chip table flags on the flag table FLGTBL have become 00h (S4), when changing the storage position of the chip table, the page addresses 0FF8h to 0FFBh are first erased and initialized. Then, the latest chip table and chip table flag are written in the page of 0FF8h (S5). Next, when the latest chip table is written in the chip table area of 0FFCh to 0FFFh, the page address of 0FFCh to 0FFFh is first erased and initialized, and then the latest chip table is stored in the page of 0FFCh. A chip table flag is written (TR1).

上記チップテーブル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 CPU 11 reads necessary tables into the RAM 13 for reference and operation with respect to the SB table SBTBL, the chip table CPTBL, and the flag table FLGTBL. When the CPU 11 changes the read table, the CPU 11 performs control to reflect the change in the block on the flash memory. In the following, various access control modes when the data management mode in units of super blocks is adopted will be described.

《リード処理》
図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 CPU 11 calculates the number (SB number) of the super block SB corresponding to the logical address designated thereby (S102). For example, when the host computer 6 designates the logical address of the user data 300h as the logical address, the SB number is the super block SB-0 according to FIG. The CPU 11 checks whether or not the in-SB table SBTBL of the calculated SB number has already been read out to the RAM 13 (S103). If it has been read, the CPU 11 acquires the page address where the logical address related to the access request is stored from the SB table SBTBL on the RAM 13 (S110).

必要な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 RAM 13, it is confirmed whether the chip table CPTBL in which the latest position of the in-SB table is registered has already been read out on the RAM 13 (S105). If it has been read, the CPU 11 acquires the page address where the latest SB table is stored from the chip table CPTBL on the RAM 13 (S108). If the chip table CPTBL has not been read out to the RAM 13, the flag table FLGTBL is read out as the management information of the chip table area CTAREA and the position of the latest chip table is specified (S106). In accordance with this, the latest chip table is read into the RAM 13 (S107). Using the read chip table CPTBL, the page address of the latest SB table is acquired (S108). If the example of FIG. 4 is followed, it turns out that the newest SB table SBTBL is stored in page address 0004h-0007h. Then, the CPU 11 reads the latest SB table into the RAM 13 (S109).

CPU11はRAM13上の最新のSB内テーブルを用いて、アクセス対象論理アドレスに対応するページアドレスを取得する(S110)。図3の例に従えば、アクセス対象論理アドレスのユーザデータ300hはページアドレス0000h〜0003hに格納されていることが分かるので、CPU11はページアドレス0000h〜0003hからバッファメモリ17にユーザデータを読み出す(S111)。最後に、CPU11はバッファメモリ17に読み出したユーザデータをホストインタフェース回路10を介してホストコンピュータ6に向けて出力する(S112)。ホストコンピュータ6が、さらにユーザデータを読み出す場合には(連続してユーザデータ301hを読み出す場合など)、ステップS102〜ステップS112を繰り返す。   The CPU 11 acquires the page address corresponding to the access target logical address using the latest SB table on the RAM 13 (S110). According to the example of FIG. 3, since it can be seen that the user data 300h of the access target logical address is stored in the page addresses 0000h to 0003h, the CPU 11 reads the user data from the page addresses 0000h to 0003h to the buffer memory 17 (S111). ). Finally, the CPU 11 outputs the user data read to the buffer memory 17 to the host computer 6 via the host interface circuit 10 (S112). When the host computer 6 further reads user data (for example, when reading the user data 301h continuously), steps S102 to S112 are repeated.

《書換え処理》
図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 user data 300h to 30Fh is taken as an example.

ホストコンピュータ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 CPU 11 calculates the number of the super block SB (SB number) corresponding to the logical address designated thereby (S202). For example, when the host computer 6 designates the logical address of the user data 300h to 30Fh as the logical address, the SB number is the super block SB-0 according to FIG. The CPU 11 checks whether or not the in-SB table SBTBL of the calculated SB number has already been read out to the RAM 13 (S203). If the necessary SB table SBTBL has not been read to the RAM 13, it is confirmed whether the chip table CPTBL in which the latest position of the SB table SBTBL is registered has already been read on the RAM 13 (S205). If it has been read, the CPU 11 acquires the page address where the latest SB table is stored from the chip table CPTBL on the RAM 13 (S208). If the chip table CPTBL has not been read out to the RAM 13, the flag table FLGTBL is read out as the management information of the chip table area CTAREA, and the position of the latest chip table is specified (S206). Accordingly, the latest chip table is read out to the RAM 13 (S207). Using the read chip table CPTBL, the page address of the latest SB table is acquired (S208). If the example of FIG. 4 is followed, it turns out that the newest SB table SBTBL is stored in page address 0004h-0007h. Then, the CPU 11 reads the latest SB table into the RAM 13 (S209).

この後、CUP11はRAM13上の最新のSB内テーブルを用いて、アクセス対象スーパーブロックSBにおける空きブロックBLK−Vのページアドレスを取得する(S210)。図3の例では、空きブロックは、ページアドレス0014h〜0017hである。次いで、その空きブロックBLK−Vを消去する(S211)。   Thereafter, the CUP 11 acquires the page address of the empty block BLK-V in the access target super block SB using the latest SB table on the RAM 13 (S210). In the example of FIG. 3, the empty blocks are page addresses 0014h to 0017h. Next, the empty block BLK-V is erased (S211).

ここで、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 RAM 13, and the block data of the page address is saved in the buffer memory 17. The saved data is modified on the buffer memory 17 with the write data supplied from the host computer 6 this time, and used for the write process described later. For example, when the write data supplied from the host computer is for one page, the remaining three pages are left as they are. Thereafter, the CPU 11 updates the page address to which the logical address to be accessed this time is assigned and the page address of the empty block in the SB table SBTBL on the RAM 13 (S212). According to the example of FIG. 8, page address information 0000h to 0003h corresponding to the logical address of the user data 300 to 30Fh in the SB table is changed to 0014h to 0017h, and page address information 0014h to 0017h related to the empty block in the SB table. Is updated to 0000h to 0003h.

次いで、CPU11は、ステップS211で消去された空きブロック0014h〜0017hに、上記モディファイされた書き込みデータとステップS212で更新されたSB内テーブルSBTBLの書き込みを制御する(S213)。   Next, the CPU 11 controls writing of the modified write data and the in-SB table SBTBL updated in step S212 to the empty blocks 0014h to 0017h erased in step S211 (S213).

更に、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 RAM 13, the page address storing the latest SB in-table SBTBL in the super block to be rewritten this time is updated (S214). According to the example of FIG. 8, the page address of the latest SB-0 table is updated to 0014h to 0017h. Thereafter, the CPU 11 writes the chip table CPTBL and the flag table FLGTBL updated in the RAM 13 to the next column position of the chip table area CTAREA (S215). The update procedure of the chip table CPTBL and the flag table FLGTBL is as described with reference to FIG. 5, and if necessary, erasure is performed on one block of the chip table area CTAARE in advance. Finally, a replacement process S216 is performed. When the host computer 6 further writes other user data continuously, steps S202 to S216 are repeated.

上記書込み処理においては、アクセス対象論理アドレスに対応するブロックとそのときの空きブロックとの入れ替えが行なわれる。この入れ替えにより、ブロックに対する書き換え回数の平準化と書き換え頻度の少ないブロックに対するディスターブ対策を達成することができる。但し、ホストコンピュータ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 card controller 3.

《入れ替え処理》
図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 RAM 13. Next, in the SB table on the RAM 13, the page address of the user data to be replaced and the page address of the empty block are updated (S305). In the example, when the page addresses 000Ch to 000Fh are to be replaced and the free block is the page address 0014h to 0017h, the page address 000Ch to 000Fh is set to the free block and the page address of the user data 020h to 02Fh in the SB table. Is updated to 0014h to 0017h.

消去した空きブロック(ページアドレス: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 buffer memory 17 of the card controller 3 and then written to an empty block.

最新の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 RAM 13 are changed. Update (S307). For example, the page address of the latest SB table is updated to 0014h to 0017h, and the page address to be replaced is updated to 0010h to 0013h, which is the next block to be replaced. However, since page addresses 0010h to 0013h are defective blocks, page addresses 0F04h to 0F07h are registered as replacement targets. Finally, the latest chip table CPTBL and flag table FLGTBL are written to the chip table area CTAARE of the flash memory 2 (S308).

図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 page addresses 0000h to 0003h.

以上説明したスーパーブロック単位のデータ管理形態によれば、スーパーブロック毎にアクセス対象論理アドレスに対応するブロックとそのときの空きブロックとの入れ替えが行なわれるから、ブロックに対する書き換え回数の平準化と書き換え頻度の少ないブロックに対するディスターブ対策を達成することができる。このとき、物理ブロックの書き換え回数をカウントしたり、書換え回数の少ないブロックを検索したりすることを要しないので、書き換え処理時間を短縮でき、書き込み性能の向上に資することができる。さらに、所定のタイミングでカードコントローラ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 card controller 3 itself can be performed at a predetermined timing, even if the access target logical address by the host computer 6 is biased, the effectiveness of the above leveling and disturbance countermeasures Can be secured.

《入れ替え処理の第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.

本発明に係る記憶装置が保持するデータの構造を例示する説明図である。It is explanatory drawing which illustrates the structure of the data which the memory | storage device which concerns on this invention hold | maintains. 本発明に係る記憶装置の一例であるフラッシュメモリカードを例示するブロック図である。It is a block diagram which illustrates the flash memory card which is an example of the memory | storage device which concerns on this invention. SB内テーブルSBTBLの構成を例示する説明図である。It is explanatory drawing which illustrates the structure of table SBBT in SB. チップテーブル領域CTAREAとそこに格納されたチップテーブルCPTBL及びチップテーブルフラグのフラグテーブルFLGTBLの一例を示す説明図である。It is explanatory drawing which shows an example of flag table FLGTBL of the chip table area | region CTAREA, the chip table CPTBL stored there, and a chip table flag. フラグテーブルFLGTBLの一例を示す説明図である。It is explanatory drawing which shows an example of flag table FLGTBL. リード処理手順を例示するフローチャートである。It is a flowchart which illustrates a read processing procedure. 書換え処理手順を示すフローチャートである。It is a flowchart which shows the rewriting process procedure. ユーザデータ300h〜30Fhの論理アドレスに対する書換え処理を一例としたときにおける図7の処理ステップとテーブルの登録アドレスとの対応を例示する説明図である。It is explanatory drawing which illustrates a response | compatibility with the process step of FIG. 7, and the registration address of a table when the rewriting process with respect to the logical address of user data 300h-30Fh is made into an example. 入れ替え処理手順を示すフローチャートである。It is a flowchart which shows a replacement process procedure. 入替対象のページアドレス更新手順を例示する説明図である。It is explanatory drawing which illustrates the page address update procedure of replacement | exchange object. 入れ替え処理の第2の例に係る処理手順を示すフローチャートである。It is a flowchart which shows the process sequence which concerns on the 2nd example of replacement processing. 入れ替え処理の第3の例に係る処理手順を示すフローチャートである。It is a flowchart which shows the process sequence which concerns on the 3rd example of replacement processing. 入れ替え処理における入れ替え対象を複数のスーパーブロック単位で管理するようにしたときのチップテーブルの構成を例示する説明図である。It is explanatory drawing which illustrates the structure of a chip table when it is made to manage the replacement object in a replacement process per several superblock units. 図13に示されるチップテーブルを採用した場合における書き換え処理手順を示すフローチャートである。14 is a flowchart showing a rewrite processing procedure when the chip table shown in FIG. 13 is adopted. 図13に示されるチップテーブルを採用した場合における入れ替え処理手順を示すフローチャートである。It is a flowchart which shows the replacement process procedure in the case of employ | adopting the chip table shown by FIG.

符号の説明Explanation of symbols

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.
前記ブロック領域は複数のページ領域の集合であり、前記ページ領域は前記書込み処理の処理単位とされる請求項1記載の記憶装置。   The storage device according to claim 1, wherein the block area is a set of a plurality of page areas, and the page area is a processing unit of the writing process. 前記制御回路は、外部からのアクセス要求に応答するとき、前記アドレステーブルを取得していないときは不揮発性メモリからアドレステーブルを読み込み、当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルを取得していないときは当該アドレス変換テーブルの物理アドレスを前記取得したアドレステーブルから検索し、検索した物理アドレスに格納されたアドレス変換テーブルを前記不揮発性メモリから取得し、取得したアドレス変換テーブルから当該アクセス要求に係る論理アドレスに対応する物理アドレスを取得する請求項1記載の記憶装置。   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. The storage device according to claim 1, wherein a physical address corresponding to a logical address related to the access request is acquired from an address conversion table. 前記制御回路は、外部からのアクセス要求に応答して書換え処理を行なうとき、現在の空きブロックの物理アドレスに前記アクセス要求に係る論理アドレスを新たに割り当てると共に、前記アドレス変換テーブルから取得した物理アドレスのブロック領域を新たな空きブロックに割り当て、新たに論理アドレスが割り当てられる前記ブロック領域に対するデータの書換えを制御し、その書換え制御によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させる請求項1記載の記憶装置。   When the control circuit performs a rewrite process in response to an access request from the outside, the control circuit newly assigns a logical address related to the access request to the physical address of the current empty block, and the physical address acquired from the address conversion table The block area is allocated to a new empty block, data rewriting is controlled for the block area to which a new logical address is assigned, and the location of the address conversion table changed by the rewriting control is reflected in the address table. The storage device according to 1. 前記制御回路は、前記アドレステーブルを格納するのに複数個の管理用のブロック領域を用い、前記アドレステーブルの格納には前記管理用のブロック領域を順次切換えて用いると共に、アドレステーブルの書込み毎に、書込み対象とされるブロック領域上におけるアドレステーブルの複数の格納位置を順次変更する制御を行い、更に、変更されたアドレステーブルの格納位置を示すフラグ情報を書込み対象のブロック領域上において更新し、管理用のブロック領域に新たにアドレステーブルを書込むための空き領域が無くなったとき当該管理用のブロック領域を消去する請求項4記載の記憶装置。   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, 5. The storage device according to claim 4, wherein the management block area is erased when there is no more free area for writing the address table in the management block area. 前記アドレステーブルはスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレス情報を格納する領域を有し、
前記制御回路は、入れ換え処理の実行タイミングを検出すると、前記アドレステーブルからブロック領域単位の入れ換え対象物理アドレスの情報を取得し、現在の空きブロックの物理アドレスに前記取得した入れ換え対象物理アドレスの論理アドレスを新たに割り当てると共に、前記取得した入れ換え対象物理アドレスのブロック領域を新たな空きブロックに割り当て、前記新たな空きブロックと前記新たに論理アドレスを割り当てたブロック領域との間のデータの入れ換えとデータの更新を制御し、当該データの更新制御によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させると共に、アドレステーブルが保有するスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレスの情報を更新する請求項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.
前記制御回路は、入れ換え処理の直前に行なわれた書換え処理対象とされたスーパーブロックに関する前記アドレステーブル上の入れ換え対象物理アドレス情報が示す物理アドレスを入れ換え対象とする請求項7記載の記憶装置。   The storage device according to claim 7, wherein the control circuit targets a physical address indicated by replacement target physical address information on the address table related to a super block that is a target of a rewrite process performed immediately before the replacement process. 前記制御回路は、入れ換え処理の直前に行なわれた書換え処理対象とされたスーパーブロックの隣のスーパーブロックに関する前記アドレステーブル上の入れ換え対象物理アドレス情報が示す物理アドレスを入れ換え対象とする請求項7記載の記憶装置。   8. The control circuit sets the physical address 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 process performed immediately before the replacement process, as a replacement target. Storage device. 前記隣のスーパーブロックは、書換え処理対象とされたスーパーブロック内の不揮発性メモリセルとワード線を共有する請求項9記載の記憶装置。   The storage device according to claim 9, wherein the adjacent super block shares a word line with a nonvolatile memory cell in the super block to be rewritten. 前記制御回路は、取得した入れ換え対象物理アドレス情報に応ずる物理アドレスが空きブロックであるときは、当該スーパーブロックに関する入れ換え対象物理アドレス情報を更新して、入れ換え処理を終了する請求項6記載の記憶装置。   7. The storage device according to claim 6, wherein 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 ends the replacement processing. . 前記アドレステーブルは複数のスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレス情報を格納するアドレス領域と前記複数のスーパーブロック内におけるブロック領域の書換え処理回数を格納する回数領域を有し、
前記制御回路は書換え処理において書換え処理対象とされたスーパーブロックに関する前記回数領域の値をインクリメントし、
前記制御回路は、入れ換え処理の実行タイミングを検出すると、前記アドレステーブルからブロック領域単位の入れ換え対象物理アドレスの情報を取得し、現在の空きブロックの物理アドレスに前記取得した入れ換え対象物理アドレスの論理アドレスを新たに割り当てると共に、前記取得した入れ換え対象物理アドレスのブロック領域を新たな空きブロックに割り当て、前記新たな空きブロックと前記新たに論理アドレスを割り当てたブロック領域との間のデータの入れ換えとデータの更新を制御し、当該データの更新によって変更されたアドレス変換テーブルの所在を前記アドレステーブルに反映させると共に、アドレステーブルが保有する複数のスーパーブロック内におけるブロック領域単位の入れ換え対象物理アドレスの情報を更新する請求項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.
前記制御回路は、書換え処理において更新された前記回数領域の値が所定値に到達したことを、入れ換え処理の実行タイミングとして検出する請求項12記載の記憶装置。   The storage device according to claim 12, wherein the control circuit detects that the value of the number-of-times area updated in the rewriting process has reached a predetermined value as an execution timing of the replacing process. 前記制御回路は、入れ換え処理の直前に行なわれた書換え処理対象とされたスーパーブロックに関する前記アドレステーブル上の入れ換え対象物理アドレス情報が示す物理アドレスを入れ換え対象とする請求項13記載の記憶装置。   The storage device according to claim 13, wherein the control circuit targets a physical address indicated by replacement target physical address information on the address table related to a superblock that is a target of a rewrite process performed immediately before the replacement process. 前記制御回路は、取得した入れ換え対象物理アドレス情報に応ずる物理アドレスが空きブロックであるときは、当該スーパーブロックに関する入れ換え対象物理アドレス情報を更新して、入れ換え処理を終了する請求項12記載の記憶装置。   13. The storage device according to claim 12, wherein 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 ends the replacement process. . 前記制御回路は、前記アドレステーブルを格納するのに複数個の管理用のブロック領域を用い、前記アドレステーブルの格納には前記管理用のブロック領域を順次切換えて用いると共に、アドレステーブルの書込み毎に、書込み対象とされるブロック領域上におけるアドレステーブルの複数の格納位置を順次変更する制御を行い、更に、変更されたアドレステーブルの格納位置を示すフラグ情報を書込み対象のブロック領域上において更新し、管理用のブロック領域に新たにアドレステーブルを書込むための空き領域が無くなったとき当該管理用のブロック領域を消去する請求項12記載の記憶装置。   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, 13. The storage device according to claim 12, wherein the management block area is erased when there is no more free area for writing the address table in the management block area. 不揮発性メモリと制御回路とを有する記憶装置であって、
前記不揮発性メモリは、記憶情報の書き換えが可能にされる複数個の不揮発性メモリセルの集合であるブロック領域単位に記憶情報を初期化する消去処理が可能にされ、消去処理されたブロック領域に情報を書込む書込み処理が可能にされ、
前記制御回路は、データ用の複数のブロック領域の集合であるスーパーブロック単位で一つの空きブロックの割り当てと残りのブロック領域に対する論理アドレスの割り当てを行ない、その割り当てを示す最新のアドレス変換テーブルを当該スーパーブロック内で最後に書込み処理が行なわれた一つのブロック領域に保持させ、夫々のスーパーブロックにおける前記アドレス変換テーブルを有するブロック領域の物理アドレスを示すアドレステーブルを管理用のブロック領域に格納させ、
前記制御回路は、外部からのアクセス要求に応答するとき、前記アドレステーブルを取得していないときは不揮発性メモリからアドレステーブルを読み込み、当該アクセス要求に係る論理アドレスが割り当てられているスーパーブロックに対応するアドレス変換テーブルを取得していないときは当該アドレス変換テーブルの物理アドレスを前記取得したアドレステーブルから検索し、検索した物理アドレスに格納されたアドレス変換テーブルを前記不揮発性メモリから取得し、取得したアドレス変換テーブルから当該アクセス要求に係る論理アドレスに対応する物理アドレスを取得し、取得した物理アドレスを用いてブロック領域のアクセス制御が可能にされる記憶装置。
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.
JP2005357373A 2005-12-12 2005-12-12 Storage system Pending JP2007164318A (en)

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)

* Cited by examiner, † Cited by third party
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
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
US8171208B2 (en) 2008-03-01 2012-05-01 Kabushiki Kaisha Toshiba Memory system
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
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
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
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
CN108121668B (en) Memory mapping control device and control method
JP4558054B2 (en) Memory system
JP4434171B2 (en) Memory controller and flash memory system
CN114968856A (en) Memory system and operating method thereof
CN114520013A (en) Memory system and operating method thereof
CN112748870A (en) Memory system, memory controller and method of operating memory controller
JP2020160871A (en) Semiconductor storage apparatus
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method
JP4213166B2 (en) Memory controller and flash memory system

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