IP Library Granted Patent US 9,405,679
Granted Patent B2
US 9,405,679 · App. 14/872,455 · Granted Aug 2, 2016

Determining a location of a memory device in a solid state device

Inventor: Troy Manning (Meridian, ID)
Assignee: Micron Technology, Inc.
G06F12/0246G06F12/0292G06F2212/1044G06F2212/1048G06F2212/2022G06F2212/7201G06F2212/7208G11C16/102Y02B60/1225
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,405,679
App. No.
14/872,455
Granted
Aug 2, 2016
Kind
B2
Abstract

A solid state device has a controller. The controller is configured to perform a first division operation that divides a received logical block address that indicates a physical memory block in a memory device of a plurality of memory devices in the solid state device by a number of logical block addresses per page of the physical memory block to obtain a result of the first division operation, configured to perform a second division operation that divides the obtained result of the first division operation by a number of memory devices in the plurality of memory devices, and configured to determine a location of the memory device of the plurality of memory devices within the solid state device from a location in a memory device table, the location in the memory device table identified by

Claims (31)

1. A solid state device comprising:

a controller;

wherein the controller is configured to perform a first division operation that divides a received logical block address that indicates a physical memory block in a memory device of a plurality of memory devices in the solid state device by a number of logical block addresses per page of the physical memory block to obtain a result of the first division operation;

wherein the controller is configured to perform a second division operation that divides the obtained result of the first division operation by a number of memory devices in the plurality of memory devices; and

wherein the controller is configured to determine a location of the memory device of the plurality of memory devices within the solid state device from a location in a memory device table, wherein the location in the memory device table is identified by a remainder of the second division operation.

2. The solid state device of claim 1 , wherein the controller is configured to generate a data block look-up table.

3. The solid state device of claim 2 , wherein the data block look-up table comprises an entry that comprises the received logical block address, wherein the entry points to the physical memory block indicated by the received logical block address.

4. The solid state device of claim 2 , wherein the controller being configured to generate the data block look-up table comprises the controller being configured to generate the data block look-up table using a quotient of the of the second division operation and the remainder of the second division operation.

5. The solid state device of claim 4 , wherein the controller being configured to generate the data block look-up table using the quotient of the of the second division operation and the remainder of the second division operation, comprises the controller being configured to calculate an index from the quotient of the second division operation and the remainder of the second division operation that points to the physical memory block indicated by the received logical block address.

6. The solid state device of claim 5 , wherein the controller being configured to calculate the index from the quotient of the second division operation and the remainder of the second division operation comprises the controller being configured to perform a third division operation that divides the quotient of the second division operation by a number of pages in the physical memory block indicated by the received logical block address to produce a result of the third division operation, to perform a multiplication operation that multiplies the remainder of the second division operation by a number of memory blocks in the memory device of the plurality of memory devices to produce a result of the multiplication operation, and to add the result of the third division operation to the result of the multiplication operation to produce the index.

7. The solid state device of claim 3 , wherein the entry indicates a highest programed page of the memory block indicated by the received logical block address.

8. The solid state device of claim 3 , wherein the entry indicates an erased condition of the memory block indicated by the received logical block address.

9. The solid state device of claim 1 , wherein the controller is configured to generate the memory device table.

10. The solid state device of claim 9 , wherein the controller being configured to generate the memory device table comprises a Flash Translation Layer of the controller being configured to generate the memory device table.

11. The solid state device of claim 1 , wherein the location in the memory device table comprises location characteristics of the memory device of the plurality of memory devices.

12. The solid state device of claim 1 , wherein the received logical block address corresponds to a number of a page within the physical memory block and a position in that page.

13. A solid state device, comprising:

a controller;

wherein the controller is configured to determine the existence of parallel units within the solid state device;

wherein the controller is configured to generate a parallel unit look-up table that includes locations within the solid state device of the parallel units determined to exist within the solid state device;

wherein the controller is configured to determine a location within the solid state device of a target parallel unit that is determined to exist within the solid state device by determining an index for the target parallel unit and finding the location within the solid state device of the target parallel unit from a location in the parallel unit look-up table identified by the index for the target parallel unit, wherein the index for the target parallel unit is determined by dividing a logical block address indicating a memory block in the target parallel unit by a number of logical block addresses per page of the memory block to produce a first result and by performing a modulo operation dividing the first result by a number of memory devices in the parallel look up table to produce a second result, wherein the second result is the index for the target parallel unit.

14. A method of operating solid state device, the method comprising:

using a controller of the solid state device to perform a first division operation that divides a received logical block address that indicates a physical memory block in a memory device of a plurality of memory devices in the solid state device by a number of logical block addresses per page of the physical memory block to obtain a result of the first division operation;

using the controller to perform a second division operation that divides the obtained result of the first division operation by a number of memory devices in the plurality of memory devices, wherein a remainder of the second division operation identifies a location in a memory device table that specifies a location of the memory device of the plurality of memory devices within the solid state device; and

using the controller to determine the location of the memory device of the plurality of memory devices within the solid state device from the location in the memory device table.

15. The method of claim 14 , further comprising using the controller to generate the memory device table.

16. The method of claim 15 , wherein using the controller to generate the memory device table comprises using the controller to determine an existence of the plurality of memory devices within the solid state device and a location within the solid state device of each of the plurality of memory devices.

17. The method of claim 14 , further comprising receiving the logical block address at a Flash Translation Layer of the controller from a host.

18. The method of claim 14 , wherein the logical block address is a portion of a request that comprises a command.

19. The method of claim 14 , further comprising using the controller to generate a data block look-up table comprising an entry that comprises the received logical block address, wherein the entry points to the physical memory block indicated by the received logical block address.

20. The method of claim 14 , further comprising using the controller to perform a third division operation that divides a quotient of the second division operation by a number of pages in the physical memory block indicated by the received logical block address to produce a result of the third division operation, to perform a multiplication operation that multiplies the remainder of the second division operation by a number of memory blocks in the memory device of the plurality of memory devices to produce a result of the multiplication operation, and to add the result of the third division operation to the result of the multiplication operation to produce an index that points to the physical memory block indicated by the received logical block address.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
Continuity (4)
Continuation 14614623 · Feb 5, 2015
Continuation 14467322 · Aug 25, 2014
Continuation 12250043 · Oct 13, 2008
Related Publication 20160026564A1 · Jan 28, 2016