IP Library › Granted Patent US 10,120,816
Granted Patent B2
US 10,120,816 · App. 15/458,561 · Granted Nov 6, 2018

Bad column management with data shuffle in pipeline

Inventors: Wanfang Tsai (Palo Alto, CA); Yan Li (Milpitas, CA)
Assignee: SANDISK TECHNOLOGIES LLC
G06F13/1673G06F3/061G06F3/0655G06F3/0688G06F5/065G06F13/1642G11C7/106G11C7/1039G11C16/0483G11C16/10G11C16/3427G11C16/3436G11C16/3454G11C29/84G06F2205/067G06F2212/2022G06F2212/7203G11C7/1066
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 10,120,816
App. No.
15/458,561
Granted
Nov 6, 2018
Kind
B2
Abstract

Systems and methods for controlling data flow and data alignment using data expand and compress circuitry arranged between a variable data rate bi-directional first in, first out (FIFO) buffer and one or more memory arrays to compensate for bad column locations within the one or more memory arrays are described. The bi-directional FIFO may have a variable data rate with the array side and a fixed data rate with a serializer/deserializer (SERDES) circuit that drives input/output (I/O) circuitry. The data expand and compress circuitry may pack and unpack data and then align the data passing between the one or more memory arrays and the bi-directional FIFO using a temporary buffer, data shuffling logic, and selective pipeline stalls.

Claims (64)

1. An apparatus, comprising:

an input register configured to store a first set of data from one or more memory arrays;

a temporary buffer;

a control circuit configured to write a subset of the first set of data to the temporary buffer, the input register configured to store a second set of data from the one or more memory arrays;

an output register; and

the control circuit configured to detect that the second set of data does not include data associated with a bad column within the one or more memory arrays and configured to write the subset of the first set of data from the temporary buffer to the output register in response to the detection that the second set of data does not include data associated with a bad column, the control circuit configured to write a first subset of the second set of data from the input register to the output register and configured to write a second subset of the second set of data from the input register to the temporary buffer.

2. The apparatus of claim 1 , wherein:

the input register comprises data storage for M bytes of data;

the output register comprises data storage for M bytes of data; and

the control circuit configured to write N bytes of the first set of data less than the M bytes of data from the temporary buffer to the output register and configured to write M−N bytes of the second set of data from the input register to the output register, wherein M and N are positive integers.

3. The apparatus of claim 2 , wherein:

the control circuit configured to write N bytes of the second set of data from the input register to the temporary buffer.

4. The apparatus of claim 1 , wherein:

the input register configured to store a third set of data from the one or more memory arrays subsequent to storing the second set of data; and

the control circuit configured to detect that the third set of data includes data associated with a bad column within the one or more memory arrays and configured to write the second subset of a second set of data from the temporary buffer to the output register, the control circuit configured to write a first subset of the third set of data from the input register to the output register and configured to write a second subset of the third set of data from the input register to the temporary buffer.

5. The apparatus of claim 4 , wherein:

the input register comprises data storage for M bytes of data;

the output register comprises data storage for M bytes of data; and

the control circuit configured to write N bytes of the second set of data less than the M bytes of data from the temporary buffer to the output register and configured to write M−N bytes of the third set of data from the input register to the output register, wherein M and N are positive integers.

6. The apparatus of claim 5 , wherein:

the control circuit configured to detect that the third set of data includes X bytes of data associated with one or more bad columns within the one or more memory arrays and configured to write N−X bytes of the third set of data from the input register to the temporary buffer, wherein X is also a positive integer.

7. The apparatus of claim 1 , wherein:

the input register configured to store the second set of data from one or more memory arrays at a second point in time and configured to store a third set of data from the one or more memory arrays at a third point in time subsequent to the second point in time;

the input register configured to store M bytes of data;

the temporary buffer configured to store N bytes of data less than the M bytes of data; and

the control circuit configured to detect that the third set of data maps to bad column data of X bytes and that M−X bytes is less than M−N bytes, the control circuit configured to stall the transfer of data from the output register and write M−X bytes of the third set of data from the input register to the temporary buffer, wherein M, N, and X are positive integers.

8. The apparatus of claim 1 , wherein:

the one or more memory arrays comprise one of three-dimensional memory arrays or vertical NAND (NOT-AND) memory arrays.

9. The apparatus of claim 1 , wherein:

the output register transfers data to a bi-directional buffer.

10. The apparatus of claim 1 , wherein:

the one or more memory arrays comprise a non-volatile memory that is monolithically formed in one or more physical levels of memory cells having active areas disposed above a silicon substrate.

11. A system, comprising:

an input register configured to store a first set of data from one or more memory arrays and subsequently store a second set of data from the one or more memory arrays;

an output register;

a bad column detection circuit configured to detect that the second set of data does not include data associated with one or more bad columns within the one or more memory arrays;

a data transfer circuit configured to transfer a subset of the first set of data from a temporary buffer to the output register in response to the detection that the second set of data does not include data associated with one or more bad columns; and

means for transferring a first subset of the second set of data from the input register to the output register and writing a second subset of the second set of data from the input register to the temporary buffer.

12. The system of claim 11 , further comprising:

means for writing N bytes of the first set of data less than M bytes of data from the temporary buffer to the output register and writing M−N bytes of the second set of data from the input register to the output register, the input register comprises data storage for the M bytes of data and the output register comprises data storage for the M bytes of data, wherein M and N are positive integers.

13. The system of claim 12 , further comprising:

means for writing N bytes of the second set of data from the input register to the temporary buffer.

14. The system of claim 11 , wherein:

the one or more memory arrays comprise one of three-dimensional memory arrays or vertical NAND (NOT-AND) memory arrays.

15. An apparatus, comprising:

an input register configured to store a second set of data to be written to one or more memory arrays;

a temporary buffer;

an output register; and

a control circuit configured to detect that the output register does not have a data mapping to a bad column within the one or more memory arrays and configured to write a subset of a first set of data from the temporary buffer to the output register in response to detection that the output register does not have a data mapping to a bad column within the one or more memory arrays, the control circuit configured to write a first subset of the second set of data from the input register to the output register and configured to write a second subset of the second set of data from the input register to the temporary buffer.

16. The apparatus of claim 15 , wherein:

the input register comprises data storage for M bytes of data;

the output register comprises data storage for M bytes of data; and

the control circuit configured to write N bytes of the first set of data less than the M bytes of data from the temporary buffer to the output register and configured to write M−N bytes of the second set of data from the input register to the output register, wherein M and N are positive integers.

17. The apparatus of claim 16 , wherein:

the control circuit configured to write N bytes of the second set of data from the input register to the temporary buffer.

18. The apparatus of claim 15 , wherein:

the input register configured to store a third set of data to be written to the one or more memory arrays; and

the control circuit configured to detect that the output register does have a data mapping to a bad column within the one or more memory arrays and configured to write the second subset of the second set of data from the temporary buffer to the output register in response to detection that the output register does have a data mapping to a bad column within the one or more memory arrays, the control circuit configured to write a first subset of the third set of data from the input register to the output register and configured to write a second subset of the third set of data from the input register to the temporary buffer.

19. The apparatus of claim 18 , wherein:

the input register comprises data storage for M bytes of data;

the output register comprises data storage for M bytes of data; and

the control circuit configured to detect that the output register maps to bad column data of X bytes, the control circuit configured to write N bytes of the second set of data less than the M bytes of data from the temporary buffer to the output register and configured to write M−N−X bytes of the third set of data from the input register to the output register, the control circuit configured to write N+X bytes of the third set of data from the input register to the temporary buffer, wherein M, N, and X are positive integers.

20. The apparatus of claim 15 , wherein:

the one or more memory arrays comprise one of three-dimensional memory arrays or vertical NAND (NOT-AND) memory arrays.

Assignments (4)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2017
From: TSAI, WANFANG; LI, YAN
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 041572/0807 →
Continuity (3)
Provisional Application 62365180 · Jul 21, 2016
Provisional Application 62364519 · Jul 20, 2016
Related Publication 20180024948A1 · Jan 25, 2018