IP Library Granted Patent US 9,021,177
Granted Patent B2
US 9,021,177 · App. 13/096,736 · Granted Apr 28, 2015

System and method for allocating and using spare blocks in a flash memory

Inventors: Avigdor Segal (Netanya, IL); Igal Maly (Tel Aviv, IL)
Assignee: Densbits Technologies Ltd.
G11C29/82G06F12/0246
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,021,177
App. No.
13/096,736
Granted
Apr 28, 2015
Kind
B2
Abstract

A method for using a single spare block pool in flash memory comprising: allocating a plurality of flash memory arrays, wherein each flash memory array comprises a plurality of flash memory blocks; within a main flash memory array: allocating a used block pool comprising a plurality of used blocks and allocating a main spare block pool comprising a plurality of spare blocks; within each of the other flash memory arrays: allocating a used block pool comprising multiple used blocks; allocating a minimum spare block pool comprising a minimum number of spare blocks; allocating the main spare block pool and each of the minimum spare block pools to a single spare block pool; transferring a spare block from the main spare block pool to one of the minimum spare block pools; and transferring a spare block from a first minimum spare block pool to a second minimum spare block pool.

Claims (35)

1. A method of operating a Flash memory array, the method comprising:

allocating a first portion of spare blocks in the Flash memory array as a single level cell (SLC) and a first type of multi-level cell (MLC) spare block pool, and a second portion of spare blocks in the Flash memory array as a second type of MLC spare block pool;

wherein the second type of MLC is more prone to error that the first type of MLC;

wherein the first type MLC is used for storing more than a single bit per cell and less bits per cell than the second type of MLC;

wherein spare blocks of the first portion of the spare blocks have a program and erase cycle count value that does not exceed a maximal allowable program and erase cycle count of the first type of MLC blocks;

replacing bad SLC blocks and bad first type MLC blocks in the Flash memory array with spare blocks from the SLC and first type MLC spare block pool; and

if the number of spare blocks in the SLC and first type MLC spare block pool is less than a minimum SLC and first type MLC spare pool threshold, then re-allocating spare blocks from the second type MLC spare block pool to the SLC and first type MLC spare block pool.

2. The method of claim 1 , further comprising: re-allocating second type MLC blocks reaching a maximum second type MLC bearable cycle count to the SLC and first type MLC spare block pool.

3. The method of claim 1 wherein the first type MLC is used for storing two bits per cell and the second type MLC is arranged to store three bits per cell.

4. The method of claim 1 , further comprising: declaring an end of life of the Flash memory array when the number of blocks in the second type MLC spare block pool is less than a minimum second type MLC spare pool threshold.

5. The method of claim 1 , wherein the minimum SLC and first type spare pool threshold comprises a minimum number of spare blocks required for smooth operation.

6. A Flash memory device comprising: a plurality of Flash memory blocks; and a controller that is arranged to:

allocate a first portion of spare blocks in the Flash memory as a single level cell (SLC) and first type multi-level cell (MLC) spare block pool, and a second portion of spare blocks in the Flash memory as a second type multi-level cell (MLC) spare block pool;

wherein the first type MLC is used for storing more than a single bit per cell and less bits per cell than the second type of MLC;

wherein the second type of MLC is more prone to error that the first type of MLC;

wherein spare blocks of the first portion of the spare blocks have a program and erase cycle count value that does not exceed a maximal allowable program and erase cycle count of the first type of MLC blocks;

replace bad SLC and first type MLC blocks in the Flash memory with spare blocks from the SLC and first type MLC spare block pool; and

if the number of spare blocks in the SLC and first type MLC spare block pool is less than a minimum SLC and first type MLC spare pool threshold, then re-allocate spare blocks from the second type MLC spare block pool to the SLC and first type MLC spare block pool.

7. The device of claim 6 , wherein the controller is further configured to: re-allocate second type MLC blocks reaching a maximum second type MLC bearable cycle count to the SLC and first type MLC spare block pool.

8. The device of claim 6 , wherein the first type MLC is used for storing two bits per cell and the second type MLC is used for storing three bits per cell.

9. The device of claim 6 , wherein the controller is further configured to: declare an end of life of the Flash memory array when the number of blocks in the second type MLC spare block pool is less than a minimum second type MLC spare pool threshold.

10. The device of claim 6 , wherein the minimum SLC and first type MLC spare pool threshold comprises a minimum number of spare blocks required for smooth operation.

11. A method of operating a non-volatile memory array, the method comprising:

allocating less than N spare block pools for N types of non-volatile memory cells that comprise (N−1) types of multi-level cell (MLC) non-volatile memory cells MLCx(N)-MLCx(2) and a single level cell (SLC) non-volatile memory cells MLCx(1) thereby at least two types of non-volatile memory cells MLCx(j) and MLCx(j+1) share a spare block pool MLCx(j+1);

wherein index j ranges between N−2 and 1;

wherein N exceeds two;

wherein spare blocks of the spare block pool MCLx(j+1) have a program and erase cycle count value that does not exceed a maximal allowable program and erase cycle count of the MLC(j+1) blocks;

wherein a MLCx(j) non-volatile memory cell is arranged to store j bits;

exchanging bad MLCx(j) and MLCx(j+1) blocks in the non-volatile memory with spare blocks from the MLCx(j+1) spare block pool; and

if the number of spare blocks in the MLCx(j+1) spare block pool is less than a minimum MLCx(j+1) spare pool threshold, then transferring spare blocks from a MLCx(j+2) spare block pool to the MLCx(j) spare block pool.

12. The method of claim 11 , wherein j equals one.

13. The method of claim 11 , wherein the non-volatile memory array comprises a Flash memory array.

14. The method of claim 11 , wherein N is greater or equal to three.

15. The method of claim 11 , further comprising: transferring MLCx(j+2) blocks reaching a maximum MLCx(j+2) bearable cycle count to the MLCx(j+1) spare block pool.

16. The method of claim 11 , further comprising: declaring an end of life of the non-volatile memory array when a number of blocks in a MLCxN spare block pool is less than a minimum MLCxN spare pool threshold.

Assignments (9)
MERGER Recorded Mar 3, 2023
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED; BROADCOM INTERNATIONAL PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 062952/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2017
From: KREOS CAPITAL IV (EXPERT FUND) LIMITED
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 041339/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2016
From: DENSBITS TECHNOLOGIES LTD.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 037622/0224 →
SECURITY INTEREST Recorded Mar 18, 2015
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 035222/0547 →
SECURITY INTEREST Recorded Jul 30, 2014
From: DENSBITS TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 033444/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2013
From: SEGAL, AVIGDOR; MALY, IGAL
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 031048/0437 →
Continuity (2)
Provisional Application 61329366 · Apr 29, 2010
Related Publication 20110271043A1 · Nov 3, 2011