EP1570489B1

Zone boundary adjustment for defects in non-volatile memories

Abstract

A non-volatile memory is divided into logical zones by the card controller in order reduce the size of the data structures it uses for address translation. Zone boundaries are adjusted to accommodate defects allowed by memory test to improve card yields and to adjust boundaries in the field to extend the usable lifetime of the card. Firmware scans for the presence of defective blocks on the card. Once the locations of these blocks are known, the firmware calculates the zone boundaries in such a way that good blocks are equally distributed among the zones. Since the number of good blocks meets the card test criteria by the memory test criteria, defects will reduce card yield fallout. The controller can perform dynamic boundary adjustments. When defects occur, the controller can perform the analysis again and, if needed, redistributes the zone boundaries, moving any user data.

EP1570489B1, drawing sheet 1
Sheet 1 of 6

Term

Term ended

Expired 2 December 2023, 2.8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

21 claims: 3 independent, 18 dependent

  1. 1
    A memory system circuit, comprising:a memory array (400) comprising a plurality of physical blocks of non-volatile storage elements wherein the storage elements within individual ones of the physical blocks are simultaneously erasable and wherein a physical block is a unit of erase, and a controller (301) that controls programming of data into addressed physical blocks, reading data from addressed physical blocks and erasing data from one or more of addressed physical blocks at a time, CHARACTERISED IN THAT : the controller (301) is arranged to subdivide the memory array (400) into logical zones that correspond to contiguous physical address spaces by introducing beginning and end physical block addresses for the logical zones, each logical zone comprised of a plurality of physical blocks for address translation;the controller further arranged to dynamically adjust the correspondence of physical blocks to logical zones.
  2. 2
    A memory system according to Claim 1, wherein said storage elements are multi-state storage units.
  3. 3
    A memory system according to Claims 1 or 2, wherein said controller (301) comprises a volatile memory section (29) containing a conversion table storing the correspondence between logical zones and physical blocks.
  4. 4
    A memory system according to Claim 3, wherein a copy of the correspondence is stored in the non-volatile memory.
  5. 6
    A memory system according to Claim 5, wherein said plurality of planes are from more than one chip (17).
  6. 8
    A memory system according to any one of Claims 1 to 6, wherein said correspondence of physical blocks to logical zones is adjusted in response to a program verify result.
  7. 9
    A memory system according to any one of Claims 1 to 6, wherein said correspondence of physical blocks to logical zones is adjusted in response to an erase verify result.
  8. 10
    A memory system according to any one of Claims 1 to 6, wherein said correspondence of physical blocks to logical zones is adjusted in response to a signal to the controller (301) from external to the memory system.
  9. 11
    A method of operating a non-volatile memory system comprising a plurality of physical blocks of non-volatile storage elements, wherein the storage elements within individual ones of the physical blocks are simultaneously erasable and wherein a physical block is a unit of erase, and a memory controller (301) circuit that controls programming of data into addressed physical blocks, reading data from addressed physical blocks and erasing data from one or more of addressed physical blocks at a time, the method characterised by :assigning for address translation, an initial correspondence of physical blocks forming a contiguous physical address space to logical zones by introducing beginning and end physical block addresses for the logical zones, so that the non-volatile storage elements are organized by the controller (301) into logical zones, each logical zone comprised of a plurality of physical blocks;subsequently identifying one or more (511-523, 701-705) of said physical blocks as defective;and assigning a first correspondence of physical blocks to logical zones by the controller (301) based on distribution of the identified defective physical blocks (511-523, 701-745).
  10. 12
    A method according to Claim 11, wherein said identifying comprises:testing said memory physical blocks;and determining said defective physical blocks (511-523, 701-705) based on said testing.
  11. 13
    A method according to Claim 12, wherein said testing is performed in response to a signal external to said memory system.
  12. 14
    A method according to Claim 12, wherein said memory system further comprises error correction logic and said testing is performed in response to an error correction code result.
  13. 15
    A method according to Claim 11, wherein said identifying is performed in response to a program verification result.
  14. 16
    A method according to Claim 11, wherein said identifying is performed in response to an erase verification result.
  15. 17
    A method according to Claim 11, wherein said assigning a first correspondence comprises distributing physical blocks to logical zones is based on minimising the variation in the number of non-defective physical blocks in said logical zones.
  16. 18
    A method according to Claim 11, further comprising maintaining said first correspondence in a volatile memory of the controller.
  17. 19
    A method according to Claim 18, further comprising maintaining said first correspondence in non-volatile memory.
  18. 20
    A method according to Claim 11, further comprising in response to said assigning a first correspondence, moving user data stored in a first physical block (711) to a second physical block (712) wherein said first physical block is part of a first logical zone prior to said assigning a first correspondence and is part of second logical zone subsequent to said assigning a first correspondence, and wherein said second logical zone is part of said first logical zone subsequent to said assigning a first correspondence.
  19. 21
    A method according to Claim 20, further comprising subsequent to said moving user data stored in a first physical block to a second physical block, assigning a second correspondence of physical blocks to logical zones by the controller based on distribution of the identified defective physical blocks.