IP Library › Granted Patent US 8,473,669
Granted Patent B2
US 8,473,669 · App. 12/632,549 · Granted Jun 25, 2013

Method and system for concurrent background and foreground operations in a non-volatile memory array

Inventor: Alan W. Sinclair (Falkirk, GB)
Assignee: SanDisk Technologies Inc.
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 8,473,669
App. No.
12/632,549
Granted
Jun 25, 2013
Kind
B2
Abstract

A method and system for permitting host write operations in one part of a flash memory concurrently with another operation in a second part of the flash memory is disclosed. The method includes receiving data at a front end of a memory system, selecting at least one of a plurality of subarrays in the memory system for executing a host write operation, and selecting at least one other subarray in which to execute a second operation. The write operation and second operation are then executed substantially concurrently. The memory system includes a plurality of subarrays, each associated with a separate subarray controller, and a front end controller adapted to select and initiate concurrent operations in the subarrays.

Claims (78)

1. A method of operating a memory system having an array of non-volatile memory cells, the method comprising the memory system:

receiving data at a front end of the memory system from a host, wherein the data comprises a plurality of host logical block addresses (LBAs);

selecting at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for the received data, wherein each of the plurality of subarrays is associated with a unique, fixed region of host LBA addresses and each of the plurality of subarrays is associated with a separate subarray controller;

selecting at least one other subarray of the plurality of subarrays in which to execute a second operation on data already residing in the at least one other subarray;

executing the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray;

wherein the plurality of subarrays are arranged in a plurality of memory banks, each memory bank comprising at least two subarrays, and wherein the memory system comprises an activity limit, the method further comprising the front end preventing execution of the second operation upon detection that the activity limit will be exceeded; and

wherein the activity limit comprises a maximum number of concurrent host write and second operations that is less than a total number of subarrays of the plurality of subarrays.

2. The method of claim 1 , wherein the second operation is a copy operation, the copy operation comprising copying data from one location to another location within the other subarray.

3. The method of claim 1 , wherein the second operation comprises a read operation.

4. The method of claim 1 , wherein the second operation comprises a background operation, wherein the background operation comprises an operation initiated by the memory device when no host command relating to data within the unique, fixed region of host LBA addresses for the at least one other subarray is pending.

5. The method of claim 1 , wherein selecting the at least one subarray and the at least one other subarray comprises selecting subarrays from within a same memory bank.

6. The method of claim 1 , wherein the activity limit comprises a memory system power consumption limit.

7. The method of claim 1 , wherein the activity limit comprises a memory system supply current limit.

8. A memory system comprising:

an array of non-volatile memory cells arranged into a plurality of subarrays, each subarray addressed by a unique, fixed region of host logical block address (LBA) addresses;

a plurality of subarray controllers, each of the plurality of subarray controllers configured to control data read or write operations in a respective one of the plurality of subarrays independent of read or write operations in any other of the plurality of subarrays; and

a front end controller in communication with the plurality of subarray controllers, the front end controller adapted to:

select at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for data received from a host;

select at least one other subarray of the plurality of subarrays in which to execute a second operation on data already residing in the at least one other subarray;

initiate execution of the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray;

wherein the plurality of subarrays are arranged in a plurality of memory banks, each memory bank comprising at least two subarrays, and wherein the memory system comprises an activity limit, the front end controller further configured to prevent execution of the second operation upon detection that the activity limit will be exceeded; and

wherein the activity limit comprises a maximum number of concurrent host write and second operations that is less than a total number of subarrays of the plurality of subarrays.

9. The memory system of claim 8 , wherein the front end controller is configured to select the at least one subarray and the at least one other subarray from within a same memory bank.

10. The memory system of claim 9 , wherein each memory bank comprises a single data channel in communication with the front end controller.

11. The memory system of claim 8 , wherein the activity limit comprises a memory system power consumption limit.

12. The memory system of claim 8 , wherein the activity limit comprises a memory system supply current limit.

13. The memory system of claim 8 , wherein the second operation comprises a copy operation, the copy operation comprising copying data from one location to another location within the other subarray.

14. The memory system of claim 8 , wherein the second operation comprises a read operation.

15. The memory system of claim 8 , wherein the second operation comprises a background operation, and wherein the background operation comprises an operation initiated by the memory device when no host command relating to data within the unique, fixed region of host LBA addresses for the at least one other subarray is pending.

16. A memory system comprising:

an array of non-volatile memory cells arranged into a plurality of subarrays, each subarray addressed by a unique, fixed region of host logical block address (LBA) addresses;

wherein the subarrays are arranged in a two-dimensional array having an X-dimension and a Y-dimension, and wherein host LBA addresses are interleaved in host LBA metapage increments in the X-dimension and host LBA addresses are interleaved in metablock increments in the Y-dimension;

a plurality of subarray controllers, each of the plurality of subarray controllers configured to control data read or write operations in a respective one of the plurality of subarrays independent of read or write operations in any other of the plurality of subarrays; and

a front end controller in communication with the plurality of subarray controllers, the front end controller adapted to:

select at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for data received from a host;

select at least one other subarray of the plurality of subarrays in which to execute a second operation; and

initiate execution of the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray.

17. The memory system of claim 16 , wherein each subarray comprises at least one metablock having a plurality of metapages and the unique, fixed region of host logical block address (LBA) addresses comprises interleaved metapage addresses across subarrays in each of the memory banks, such that for a particular subarray a first LBA address of a first metapage differs from a first LBA address of a next consecutive metapage in the particular subarray by an integer multiple of a length of a metapage and a total number of memory banks.

18. The memory system of claim 16 , wherein the second operation comprises a background operation, and wherein the background operation comprises an operation initiated by the memory device when no host command relating to data within the unique, fixed region of host LBA addresses for the at least one other subarray is pending.

19. A memory system comprising:

an array of non-volatile memory cells arranged into a plurality of subarrays, each subarray addressed by a unique, fixed region of host logical block address (LBA) addresses;

a plurality of subarray controllers, each of the plurality of subarray controllers configured to control data read or write operations in a respective one of the plurality of subarrays independent of read or write operations in any other of the plurality of subarrays;

wherein the plurality of subarray controllers comprises a single processor configured to execute a separate instance of controller firmware for each subarray; and

a front end controller in communication with the plurality of subarray controllers, the front end controller adapted to:

select at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for data received from a host;

select at least one other subarray of the plurality of subarrays in which to execute a second operation; and

initiate execution of the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray.

20. The memory system of claim 19 , wherein the second operation comprises a background operation, and wherein the background operation comprises an operation initiated by the memory device when no host command relating to data within the unique, fixed region of host LBA addresses for the at least one other subarray is pending.

21. A memory system comprising:

an array of non-volatile memory cells arranged into a plurality of subarrays, each subarray addressed by a unique, fixed region of host logical block address (LBA) addresses;

a plurality of subarray controllers, each of the plurality of subarray controllers configured to control data read or write operations in a respective one of the plurality of subarrays independent of read or write operations in any other of the plurality of subarrays;

wherein the plurality of subarray controllers comprises a plurality of processors, each processor associated with a different subarray and each processor positioned on a single die separate from any die comprising the subarrays; and

a front end controller in communication with the plurality of subarray controllers, the front end controller adapted to:

select at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for data received from a host;

select at least one other subarray of the plurality of subarrays in which to execute a second operation; and

initiate execution of the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray.

22. The memory system of claim 21 , wherein the second operation comprises a background operation, and wherein the background operation comprises an operation initiated by the memory device when no host command relating to data within the unique, fixed region of host LBA addresses for the at least one other subarray is pending.

23. A memory system comprising:

an array of non-volatile memory cells arranged into a plurality of subarrays, each subarray addressed by a unique, fixed region of host logical block address (LBA) addresses;

a plurality of subarray controllers, each of the plurality of subarray controllers configured to control data read or write operations in a respective one of the plurality of subarrays independent of read or write operations in any other of the plurality of subarrays;

wherein the plurality of subarray controllers comprises a plurality of processors, each processor associated with a different subarray and each processor positioned on a different die comprising a different one of the subarrays; and

a front end controller in communication with the plurality of subarray controllers, the front end controller adapted to:

select at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for data received from a host;

select at least one other subarray of the plurality of subarrays in which to execute a second operation; and

initiate execution of the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray.

24. The memory system of claim 23 , wherein the second operation comprises a background operation, and wherein the background operation comprises an operation initiated by the memory device when no host command relating to data within the unique, fixed region of host LBA addresses for the at least one other subarray is pending.

25. A method of operating a memory system having an array of non-volatile memory cells, the method comprising the memory system:

receiving data at a front end of the memory system from a host, wherein the data comprises a plurality of host logical block addresses (LBAs);

selecting at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for the received data, wherein each of the plurality of subarrays is associated with a unique, fixed discontinuous region of host LBA addresses and each of the plurality of subarrays is associated with a separate subarray controller;

selecting at least one other subarray of the plurality of subarrays in which to execute a second operation on data already residing in the other subarray; and

executing the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray.

26. A memory system comprising:

an array of non-volatile memory cells arranged into a plurality of subarrays, each subarray addressed by a unique, fixed discontinuous region of host logical block address (LBA) addresses;

a plurality of subarray controllers, each of the plurality of subarray controllers configured to control data read or write operations in a respective one of the plurality of subarrays independent of read or write operations in any other of the plurality of subarrays; and

a front end controller in communication with the plurality of subarray controllers, the front end controller adapted to:

select at least one subarray of a plurality of subarrays in the array in which to execute a host write operation for data received from a host;

select at least one other subarray of the plurality of subarrays in which to execute a second operation; and

initiate execution of the host write operation and the second operation substantially concurrently in the at least one subarray and the at least one other subarray.

Assignments (6)
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 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026285/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2009
From: SINCLAIR, ALAN W.
To: SANDISK CORPORATION
Reel/Frame 023615/0078 →
Continuity (1)
Related Publication 20110138100A1 · Jun 9, 2011