IP Library › Granted Patent US 8,700,961
Granted Patent B2
US 8,700,961 · App. 13/330,975 · Granted Apr 15, 2014

Controller and method for virtual LUN assignment for improved memory bank mapping

Inventors: Paul A. Lassa (Cupertino, CA); 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,700,961
App. No.
13/330,975
Granted
Apr 15, 2014
Kind
B2
Abstract

A controller communicates with a plurality of multi-chip memory packages. Each multi-chip memory package comprises a plurality of memory dies, each having a respective plurality of memory blocks, some of which are good and some of which are bad. The controller determines a number of good blocks in each memory die. Based on the determined number of good blocks in each memory die, the controller selects a memory die from each of the multi-chip memory packages to access in parallel, wherein the selected memory dies are not necessarily all in the same relative position in each multi-chip package. The controller then creates a metablock from a set of good blocks from each of the selected memory dies, wherein a maximum number of metablocks that can be created across the selected memory dies is determined by a lowest number of good blocks in the selected memory dies.

Claims (29)

1. A controller comprising:

one or more interfaces through which to communicate with a plurality of multi-chip memory packages, wherein each multi-chip memory package comprises a plurality of memory dies, and wherein each memory die has a respective plurality of memory blocks, some of which are good blocks and some of which are bad blocks; and

a processor in communication with the one or more interfaces, wherein the processor is configured to:

determine a number of good blocks in each memory die in each of the multi-chip memory packages;

based on the determined number of good blocks in each memory die, select a memory die from each of the multi-chip memory packages to access in parallel, wherein the selected memory dies are not necessarily all in the same relative position in each multi-chip package; and

create a metablock from a set of good blocks from each of the selected memory dies, wherein a maximum number of metablocks that can be created across the selected memory dies is determined by a lowest number of good blocks in the selected memory dies.

2. The controller of claim 1 , wherein the selecting and creating acts are performed for N instances of storage management software running on the controller, wherein N is the number of memory dies on each multi-chip package, and wherein different memory dies are selected in each instance.

3. The controller of claim 2 , wherein the memory dies are selected to uniformly spread good blocks across all the instances.

4. The controller of claim 2 , wherein the memory dies are selected to allocated the greatest number of good blocks together in a single instance.

5. The controller of claim 2 , wherein the processor is further configured to prioritize traffic to the instances according to a service level.

6. The controller of claim 2 , wherein the processor is further configured to prioritize traffic to the instances according to a traffic type.

7. The controller of claim 1 , wherein the controller is part of a solid-state drive.

8. The controller of claim 1 , wherein the controller is in communication with each multi-chip memory package using a different Open NAND Flash Interface (ONFI) channel.

9. The controller of claim 8 , wherein each ONFI channel supports a plurality of multi-chip memory packages.

10. The controller of claim 1 , wherein good blocks that are not allocated to a metablock are reserved as spare blocks for bad block remapping.

11. A method for creating a metablock across multi-chip memory packages, the method comprising:

performing in a controller comprising one or more interfaces through which to communicate with a plurality of multi-chip memory packages, wherein each multi-chip memory package comprises a plurality of memory dies, and wherein each memory die has a respective plurality of memory blocks, some of which are good blocks and some of which are bad blocks:

determine a number of good blocks in each memory die in each of the multi-chip memory packages;

based on the determined number of good blocks in each memory die, select a memory die from each of the multi-chip memory packages to access in parallel, wherein the selected memory dies are not necessarily all in the same relative position in each multi-chip package; and

create a metablock from a set of good blocks from each of the selected memory dies, wherein a maximum number of metablocks that can be created across the selected memory dies is determined by a lowest number of good blocks in the selected memory dies.

12. The method of claim 11 , wherein the selecting and creating acts are performed for N instances of storage management software running on the controller, wherein N is the number of memory dies on each multi-chip package, and wherein different memory dies are selected in each instance.

13. The method of claim 12 , wherein the memory dies are selected to uniformly spread good blocks across all the instances.

14. The method of claim 12 , wherein the memory dies are selected to allocated the greatest number of good blocks together in a single instance.

15. The method of claim 12 further comprising prioritizing traffic to the instances according to a service level.

16. The method of claim 12 further comprising prioritizing traffic to the instances according to a traffic type.

17. The method of claim 11 , wherein the controller is part of a solid-state drive.

18. The method of claim 11 , wherein the controller is in communication with each multi-chip memory package using a different Open NAND Flash Interface (ONFI) channel.

19. The method of claim 18 , wherein each ONFI channel supports a plurality of multi-chip memory packages.

20. The method of claim 11 , wherein good blocks that are not allocated to a metablock are reserved as spare blocks for bad block remapping.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2012
From: LASSA, PAUL A.; SINCLAIR, ALAN W.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 027805/0226 →
Continuity (1)
Related Publication 20130159601A1 · Jun 20, 2013