IP Library Granted Patent US 9,348,694
Granted Patent B1
US 9,348,694 · App. 14/050,264 · Granted May 24, 2016

Detecting and managing bad columns

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,348,694
App. No.
14/050,264
Granted
May 24, 2016
Kind
B1
Abstract

A system, computer readable medium and a method. The system includes a memory controller that comprises a control circuit and an interface. The memory controller is arranged to receive or generate bad columns information indicative of bad columns of the NAND flash memory array; wherein the bad columns information has a column resolution. The memory controller is arranged to receive an input data unit to be written to the NAND flash memory array; wherein the input data unit comprises bad column mapped data bits that are mapped to flash memory cells that belong to bad columns of the NAND flash memory array. The interface is arranged to send the input data unit to the NAND flash memory unit; instruct the NAND flash memory unit to write the input data unit to a first portion of the NAND flash memory array to provide a programmed data unit; send the bad column mapped data bits to the NAND flash memory unit; and instruct the NAND flash memory unit to write the bad column mapped data bits to a second portion of the NAND flash memory array to provide programmed bad column mapped data bits.

Claims (40)

1. A method for managing bad columns of a NAND flash memory array of a NAND flash memory unit, the method comprises:

receiving or generating bad columns information indicative of the bad columns of the NAND flash memory array on a column to column basis;

receiving an input data unit to be written to the NAND flash memory array; wherein the input data unit comprises bad column mapped data bits that are mapped to flash memory cells that belong to the bad columns of the NAND flash memory array;

sending the input data unit to the NAND flash memory unit and instructing the NAND flash memory unit to write the input data unit to a first portion of the NAND flash memory array to provide a programmed data unit;

sending the bad column mapped data bits to the NAND flash memory unit; and

instructing the NAND flash memory unit to write the bad column mapped data bits to a second portion of the NAND flash memory array to provide programmed bad column mapped data bits; and

wherein the first and second portions of the NAND flash memory array belong to a same physical page of the NAND flash memory array.

2. The method according to claim 1 comprising storing the bad column mapped data bits at a bad column mapped memory unit of a memory controller.

3. The method according to claim 1 comprising detecting the bad column mapped data bits in response to a first data structure that maps the flash memory cells of bad columns to locations of the bad column mapped data bits within the input data unit.

4. The method according to claim 1 comprising storing at the NAND flash memory unit a first data structure that maps the flash memory cells of the bad columns to locations of the bad column mapped data bits and a second data structure that maps codewords to (i) content of the second portion of the NAND flash memory array and to (ii) entries of the first data structure.

5. The method according to claim 1 comprising reading from the first portion of the NAND flash memory unit the programmed input data unit to provide a read data unit; applying an error correction process on the read data unit to provide error correction results; and determining whether to read the programmed bad column mapped data bits in response to the error correction results.

6. The method according to claim 5 comprising reading the programmed bad column mapped data bits to provide read bad column mapped data bits; and generating an output data unit in response to the read data unit and the read bad column mapped data bits.

7. The method according to claim 6 wherein the generating comprises replacing bits of the read data unit that were mapped to flash memory units of bad columns by the read bad column mapped data bits.

8. The method according to claim 6 , comprising detecting bits of the read data unit that were mapped to flash memory units of bad columns by accessing a first data structure that maps flash memory cells of bad columns to locations of bad column mapped data bits within the input data unit.

9. The method according to claim 6 , wherein the read data unit is associated with a certain codeword out of multiple codewords; wherein the method comprising detecting bits of the read data unit that belong to the certain codeword by accessing a first data structure that maps flash memory cells of bad columns to locations of bad column mapped data bits and by accessing a second data structure that maps codewords to (i) content of the second portion of the NAND flash memory array and to (ii) entries of the first data structure.

10. A non-transitory computer readable medium that stores instructions to be executed by a computer and cause the computer to perform stages comprising:

receiving or generating bad columns information indicative of bad columns of a NAND flash memory array of a NAND flash memory unit on a column to column basis;

receiving an input data unit to be written to the NAND flash memory array; wherein the input data unit comprises bad column mapped data bits that are mapped to flash memory cells that belong to the bad columns of the NAND flash memory array;

sending the input data unit to the NAND flash memory unit and instructing the NAND flash memory unit to write the input data unit to a first portion of the NAND flash memory array to provide a programmed data unit;

sending the bad column mapped data bits to the NAND flash memory unit;

instructing the NAND flash memory unit to write the bad column mapped data bits to a second portion of the NAND flash memory array to provide programmed bad column mapped data bits; and

wherein the first and second portions of the NAND flash memory array belong to a same physical page of the NAND flash memory array.

11. A system, comprising a memory controller that comprises a

control circuit and an interface;

wherein the control circuit is arranged to receive or generate bad columns information indicative of bad columns of the NAND flash memory array on a column to columns basis;

wherein the memory controller is arranged to receive an input data unit to be written to the NAND flash memory array; wherein the input data unit comprises bad column mapped data bits that are mapped to flash memory cells that belong to the bad columns of the NAND flash memory array;

wherein the interface is arranged to:

send the input data unit to the NAND flash memory unit;

instruct the NAND flash memory unit to write the input data unit to a first portion of the NAND flash memory array to provide a programmed data unit;

send the bad column mapped data bits to the NAND flash memory unit;

instruct the NAND flash memory unit to write the bad column mapped data bits to a second portion of the NAND flash memory array to provide programmed bad column mapped data bits; and

wherein the first and second portions of the NAND flash memory array belong to a same physical page of the NAND flash memory array.

12. The system according to claim 11 wherein the control circuit is arranged to store the bad column mapped data bits at a bad column mapped memory unit of the memory controller.

13. The system according to claim 11 wherein the control circuit is arranged to detect the bad column mapped data bits in response to a first data structure that maps the flash memory cells of the bad columns to locations of the bad column mapped data bits within the input data unit.

14. The system according to claim 11 wherein the control circuit is arranged to store at the NAND flash memory unit a first data structure that maps the flash memory cells of the bad columns to locations of the bad column mapped data bits and a second data structure that maps codewords to (i) content of the second portion of the NAND flash memory array and to (ii) entries of the first data structure.

15. The system according to claim 11 wherein the control circuit is arranged to read from the first portion of the NAND flash memory unit the programmed input data unit to provide a read data unit; apply an error correction process on the read data unit to provide error correction results; and determine whether to read the programmed bad column mapped data bits in response to the error correction results.

16. The system according to claim 15 wherein the control circuit is arranged to read the programmed bad column mapped data bits to provide read bad column mapped data bits; and generate an output data unit in response to the read data unit and the read bad column mapped data bits.

17. The system according to claim 16 wherein the control circuit is arranged to the generate the output data unit by replacing bits of the read data unit that were mapped to flash memory units of bad columns by read bad column mapped data bits.

18. The system according to claim 16 , wherein the control circuit is arranged to detect bits of the read data unit that were mapped to flash memory units of bad columns by accessing a first data structure that maps flash memory cells of bad columns to locations of bad column mapped data bits within the input data unit.

19. The system according to claim 16 , wherein the read data unit is associated with a certain codeword out of multiple codewords; wherein the control circuit is arranged to detect bits of the read data unit that belong to the certain codeword by accessing a first data structure that maps flash memory cells of bad columns to locations of bad column mapped data bits and by accessing a second data structure that maps codewords to (i) content of the second portion of the NAND flash memory array and to (ii) entries of the first data structure.

Assignments (10)
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 PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2015
From: NASSIE, AMIR
To: DENSBITS TECHNOLOGIES LTD.
Reel/Frame 036998/0510 →
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 →