IP Library Granted Patent US 7,426,605
Granted Patent B2
US 7,426,605 · App. 11/240,004 · Granted Sep 16, 2008

Method and apparatus for optimizing flash device erase distribution

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 7,426,605
App. No.
11/240,004
Granted
Sep 16, 2008
Kind
B2
Abstract

A remapping circuit is connected to a memory. A configuration register is connected to the memory. The configuration register includes performance information for memory blocks in the memory. Also, a system includes a processor, a memory management device is connected to the processor, a display is connected to the processor, a non-volatile memory including a memory blocks is connected to the memory management device, and a register is connected to the non-volatile memory. The memory management device to re-map the non-volatile memory based on information stored in the register.

Claims (51)

1. An apparatus comprising:

a memory;

a configuration register to store performance information for memory blocks disposed within the memory, the performance information comprising memory block erase time; and

a remapping circuit coupled to the memory and the configuration register, the remapping circuit to

read the performance information from the configuration register for each memory block,

store the performance information of each memory block in a array,

sort the array according to the performance information, and

remap the memory blocks to store data in a first contiguous portion and to store code in a second contiguous portion based on the sorted array and a memory block erase time performance threshold.

2. The apparatus of claim 1 , wherein the configuration register is disposed within the memory.

3. The apparatus of claim 1 , wherein the performance information further comprises memory block application performance time information.

4. The apparatus of claim 3 , wherein the remapping circuit remaps the memory blocks to store data in a first contiguous portion and to store code in a second contiguous portion based on an application performance time threshold.

5. The apparatus of claim 4 , wherein the memory blocks are physically remapped.

6. The apparatus of claim 1 , wherein the memory is a flash memory.

7. A system comprising:

a processor;

a memory management device coupled to the processor;

a display coupled to the processor;

a non-volatile memory including a plurality of memory blocks coupled to the memory management device; and

a register to store performance information for the memory blocks, the performance information comprising memory block erase time, wherein the memory management device

reads the performance information from the register for each memory block,

stores the performance information of each memory block in an array,

sorts the array according to the performance information, and

re-maps the non-volatile memory to store data in a first contiguous portion and to store code in a second contiguous portion based on the sorted array and a memory block erase time performance threshold.

8. The system of claim 7 , wherein the memory management device operates to re-map the non-volatile memory based on memory block application time performance information.

9. The system of claim 7 , wherein the memory management device physically re-maps the plurality of memory blocks in at least two contiguous segments.

10. The system of claim 7 , wherein the memory management device is one of a memory management unit and a remapping circuit.

11. A machine-accessible medium containing instructions that, when executed, cause a machine to:

store memory block performance information in a register, the performance information comprising memory block erase time for each block of a plurality of blocks in a memory;

read the performance information from the register for each block,

store the performance information of each block in an array,

sort the array according to the performance information; and

remap the memory to store data in a first contiguous portion and to store code in a second contiguous portion based on the sorted array and a memory block erase time performance threshold.

12. The machine-accessible medium of claim 11 , wherein the instruction causing the machine to remap causes the machine to logically remap the plurality of blocks in the memory into at least two contiguous segments.

13. The machine-accessible medium of claim 11 , wherein the instruction causing the machine to remap causes the machine to physically remap the plurality of blocks in the memory into at least two contiguous segments.

14. The machine-accessible medium of claim 11 , further containing instructions, that, when executed cause the machine to:

determine block erase timing performance for each block of the plurality of blocks.

15. The machine-accessible medium of claim 11 , further containing instructions that, when executed, cause the machine to:

determine application timing performance for each block of the plurality of blocks.

16. The machine-accessible medium of claim 11 , wherein the memory is a flash memory.

17. The machine-accessible medium of claim 16 , wherein the register is disposed within the flash memory.

18. The machine-accessible medium of claim 11 , further comprising instructions that, when executed, cause the machine to:

determine a timing threshold for performance;

assign criteria for each block of the plurality of blocks based on the timing threshold;

designate a first set of the plurality of blocks to store code based on the timing threshold; and

designate a second set of the plurality of blocks to store data values based on the timing threshold.

19. A machine-accessible medium containing instructions that, when executed, cause a machine to perform a method comprising:

storing memory block performance information in a register, the performance information comprising memory block programming time for each block of a plurality of blocks in a memory;

reading the performance information from the register for each memory block,

storing the performance information of each memory block in an array,

sorting the performance information of each memory block in an array

remapping the memory to store data in a first contiguous portion and to store code in a second contiguous portion based on the sorted array and a memory block programming time performance threshold.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 4, 2013
From: INTEL CORPORATION
To: MICRON TECHNOLOGY, INC.
Reel/Frame 030747/0001 →