IP Library Granted Patent US 10,896,033
Granted Patent B2
US 10,896,033 · App. 16/237,044 · Granted Jan 19, 2021

Configurable NAND firmware search parameters

Inventor: Giuseppe Cariello (Boise, ID)
Assignee: Micron Technology, Inc.
G06F8/63G06F8/61G06F12/0246G06F21/57G06F21/572G11C11/5628G11C16/10G11C2211/5641
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,896,033
App. No.
16/237,044
Granted
Jan 19, 2021
Kind
B2
Abstract

Disclosed in some examples are memory devices which include electrically programmable elements that specify values for one or more firmware search parameters for use by the bootloader in locating and reading the firmware object. The values of the firmware search parameters may be dynamically selected at manufacturing time by modifying the configuration of the electrically programmable elements by applying or not applying a specified voltage to the electrically programmable elements. In some examples, an electrically programmable element may include: a fuse, an anti-fuse, and/or an e-fuse.

Claims (50)

1. A memory device, comprising:

a first set of one or more electrically programmable elements indicating values for one or more firmware search parameters;

a second set of one or more electrically programmable elements indicating values for one or more firmware read parameters, the respective programmable elements of the first and second sets of one or more electrically programmable elements being a fuse, anti-fuse, or an e-fuse; and

a processor configured to perform operations comprising:

reading signals from the first set and the second set of one or more programmable elements;

interpreting the signal from the first set of one or more electrically programmable elements to determine values for the one or more firmware search parameters;

interpreting the signal from the second set of one or more electrically programmable elements to determine values for the one or more firmware read parameters, the firmware read parameters comprising a read retry voltage;

determining one or more potential locations of a firmware image in memory cells of the memory device in accordance with the values for the one or more firmware search parameters indicated by the first set of one or more electrically programmable elements, the firmware search parameters comprising an offset and a step size, a first potential location of the one or more potential locations determined by adding the offset to a base address, and subsequent locations of the one or more potential locations are determined based upon a previous location and the step size;

searching the one or more potential locations for a valid firmware image by reading the memory cells at the one or more potential locations in accordance with the values for the one or more firmware read parameters indicated by the second set of one or more electrically programmable elements;

determining that a read-error occurred when reading at least one of the one or more potential locations;

responsive to determining that the read-error occurred when reading the at least one of the one or more potential locations, re-reading the at least one of the one or more potential locations utilizing a read voltage based upon the read retry voltage;

upon finding a valid firmware image, validating the firmware image; and

responsive to reading a valid firmware image, causing execution of the firmware image.

2. The memory device of claim 1 , wherein one of the firmware search parameters is a number of potential locations to try.

3. The memory device of claim 1 , wherein one of the firmware read parameters is a number of read retry loops specifying a number of times to try to search each of the one or more potential locations.

4. The memory device of claim 1 , wherein one of the firmware read parameters is a read retry step voltage.

5. The memory device of claim 1 , wherein the first and second sets of one or more electrically programmable elements and the processor are part of a memory controller.

6. The memory device of claim 1 , wherein the processor is part of a memory controller, and the first and second sets of one or more electrically programmable elements are separate from the memory controller.

7. The memory device of claim 1 , wherein the memory cells are NAND memory cells.

8. A non-transitory machine readable medium, comprising instructions, which when executed by a processor of a memory device, cause the processor to perform operations comprising:

reading signals from a first set and a second set of one or more programmable elements;

interpreting the signal from the first set of one or more electrically programmable elements to determine values for one or more firmware search parameters;

interpreting the signal from the second set of one or more electrically programmable elements to determine values for one or more firmware read parameters, the firmware read parameters comprising a read retry voltage;

determining one or more potential locations of a firmware image in memory cells of the memory device in accordance with values for one or more firmware search parameters indicated by a first set of one or more electrically programmable elements, the firmware search parameters comprising an offset and a step size, a first potential location of the one or more potential locations determined by adding the offset to a base address, and subsequent locations of the one or more potential locations are determined based upon a previous location and the step size;

searching the one or more potential locations for a valid firmware image by reading the memory cells at one or more potential locations in accordance with values for one or more firmware read parameters indicated by a second set of one or more electrically programmable elements, the first and second sets of one or more electrically programmable elements being a fuse, anti-fuse, or an e-fuse, the firmware read parameters comprising a read-retry voltage;

determining that a read-error occurred when reading at least one of the one or more potential locations;

responsive to determining that the read-error occurred when reading the at least one of the one or more potential locations, re-reading the at least one of the one or more potential locations utilizing a read voltage based upon the read retry voltage;

upon finding a valid firmware image, validating the firmware image; and

responsive to reading a valid firmware image, causing execution of the firmware image.

9. The non-transitory machine readable medium of claim 8 wherein one of the firmware search parameters is a number of potential locations to try.

10. The non-transitory machine readable medium of claim 8 , wherein one of the firmware read parameters is a number of read retry loops specifying a number of times to try to search each of the one or more potential locations.

11. The non-transitory machine readable medium of claim 8 , wherein one of the firmware read parameters is a read retry step voltage.

12. The non-transitory machine readable medium of claim 8 , wherein the first and second sets of one or more electrically programmable elements and the processor are part of a memory controller.

13. The non-transitory machine readable medium of claim 8 , wherein the processor is part of a memory controller, and the first and second sets of one or more electrically programmable elements are separate from the memory controller.

14. The non-transitory machine readable medium of claim 8 , wherein the memory cells are NAND memory cells.

15. A method performed by a NAND controller, the method comprising:

reading signals from a first set and a second set of one or more programmable elements;

interpreting the signal from the first set of one or more electrically programmable elements to determine values for one or more firmware search parameters;

interpreting the signal from the second set of one or more electrically programmable elements to determine values for one or more firmware read parameters, the firmware read parameters comprising a read retry voltage;

determining one or more potential locations of a firmware image in memory cells of a memory device in accordance with values for one or more first firmware search parameters indicated by a first set of one or more electrically programmable elements, the firmware search parameters comprising an offset and a step size, a first potential location of the one or more potential locations determined by adding the offset to a base address, and subsequent locations of the one or more potential locations are determined based upon a previous location and the step size;

searching the one or more potential locations for a valid firmware image by reading the memory cells at one or more potential locations in accordance with values for one or more firmware read parameters indicated by a second set of one or more electrically programmable elements, the first and second sets of one or more electrically programmable elements being a fuse, anti-fuse, or an e-fuse, the firmware read parameters comprising a read-retry voltage;

determining that a read-error occurred when reading at least one of the one or more potential locations;

responsive to determining that the read-error occurred when reading the at least one of the one or more potential locations, re-reading the at least one of the one or more potential locations utilizing a read voltage based upon the read retry voltage;

upon finding a valid firmware image, validating the firmware image; and

responsive to reading a valid firmware image, causing execution of the firmware image.

16. The method of claim 15 , wherein one of the first firmware search parameters is a number of potential locations to try.

17. The method of claim 15 , wherein one of the firmware read parameters is a number of read retry loops specifying a number of times to try to search each of the one or more potential locations.

18. The method of claim 15 , wherein one of the firmware read parameters is a read retry step voltage.

19. The method of claim 15 , wherein the first and second sets of one or more electrically programmable elements are part of the NAND controller.

20. The method of claim 15 , wherein the first and second sets of one or more electrically programmable elements are separate from the NAND controller.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: CARIELLO, GIUSEPPE
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051795/0128 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →