IP Library Granted Patent US 10,083,119
Granted Patent B2
US 10,083,119 · App. 15/841,601 · Granted Sep 25, 2018

Memory having a static cache and a dynamic cache

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,083,119
App. No.
15/841,601
Granted
Sep 25, 2018
Kind
B2
Abstract

The present disclosure includes memory having a static cache and a dynamic cache. A number of embodiments include a memory, wherein the memory includes a first portion configured to operate as a static single level cell (SLC) cache and a second portion configured to operate as a dynamic SLC cache when the entire first portion of the memory has data stored therein.

Claims (41)

1. A method of operating memory, comprising:

determining, upon receiving a command to program data to a memory, whether any blocks of memory cells in a portion of the memory configured to operate as a static single level cell (SLC) cache do not have data stored therein;

programming the data received in the command to the portion of the memory configured to operate as a static SLC cache upon determining there is at least one block of memory cells in that portion of the memory that does not have data stored therein; and

programming the data received in the command to a portion of the memory configured to operate as a dynamic SLC cache or multilevel cell (MLC) memory upon determining there are no blocks of memory cells in the portion of the memory configured to operate as a static SLC cache that do not have data stored therein.

2. The method of claim 1 , wherein the method includes:

determining, upon determining there are no blocks of memory cells in the portion of the memory configured to operate as a static SLC cache that do not have data stored therein, whether any blocks of memory cells in the portion of the memory configured to operate as a dynamic SLC cache do not have data stored therein; and

programming the data received in the command to the portion of the memory configured to operate as a dynamic SLC cache upon determining there is at least one block of memory cells in the portion of the memory configured to operate as a dynamic SLC cache that does not have data stored therein.

3. The method of claim 2 , wherein the method includes programming the data received in the command to the portion of the memory configured to operate as MLC memory upon determining there are no blocks of memory cells in the portion of the memory configured to operate as a dynamic SLC cache that do not have data stored therein.

4. The method of claim 1 , wherein determining whether any blocks of memory cells in the portion of the memory configured to operate as a static SLC cache do not have data stored therein includes determining whether any blocks of memory cells in the portion of the memory configured to operate as a static SLC cache are erased blocks.

5. The method of claim 1 , wherein the method includes programming the data received in the command to the at least one block of memory cells in the portion of the memory configured to operate as a static SLC cache upon determining there is at least one block of memory cells in that portion of the memory that does not have data stored therein.

6. The method of claim 1 , wherein the method includes receiving the command from a host.

7. The method of claim 1 , wherein programming the data received in the command to the portion of the memory configured to operate as a static SLC cache includes caching the data received in the command in the portion of the memory configured to operate as a static SLC cache.

8. An apparatus, comprising:

a memory; and

circuitry configured to:

determine, upon receiving a command to program data to a memory, whether any blocks of memory cells in a portion of the memory configured to operate as a static single level cell (SLC) cache do not have data stored therein;

program the data received in the command to the portion of the memory configured to operate as a static SLC cache upon determining there is at least one block of memory cells in the portion of the memory configured to operate as a static SLC cache that does not have data stored therein;

determine, upon determining there are no blocks of memory cells in the portion of the memory configured to operate as a static SLC cache that do not have data stored therein, whether any blocks of memory cells in a portion of the memory configured to operate as a dynamic SLC cache do not have data stored therein;

program the data received in the command to the portion of the memory configured to operate as a dynamic SLC cache upon determining there is at least one block of memory cells in the portion of the memory configured to operate as a dynamic SLC cache that does not have data stored therein; and

program the data received in the command to a portion of the memory configured to operate as multilevel cell (MLC) memory upon determining there are no blocks of memory cells in the portion of the memory configured to operate as a dynamic SLC cache that do not have data stored therein.

9. The apparatus of claim 8 , wherein the circuitry is configured to determine whether any blocks of memory cells in the portion of the memory configured to operate as a static SLC cache do not have data stored therein using a tracking table in the circuitry.

10. The apparatus of claim 8 , wherein the portion of the memory configured to operate as MLC memory is configured to operate as triple level cell (TLC) memory.

11. The apparatus of claim 8 , wherein the portion of the memory configured to operate as a dynamic SLC cache is included within the portion of the memory configured to operate as MLC memory.

12. The apparatus of claim 8 , wherein a size of the portion of the memory configured to operate as a static SLC cache is 3 Gigabytes (GB) or less.

13. The apparatus of claim 8 , wherein the portion of the memory configured to operate as a static SLC cache, the portion of the memory configured to operate as a dynamic SLC cache, and the portion of the memory configured to operate as MLC memory are part of a single die of the memory.

14. The apparatus of claim 8 , wherein the portion of the memory configured to operate as a dynamic SLC cache includes MLC memory cells configured to operate in SLC mode.

15. A method of operating memory, comprising:

determining, upon receiving a command to program data to a memory, whether an entire portion of the memory configured to operate as a static single level cell (SLC) cache has data stored therein;

programming the data received in the command to the portion of the memory configured to operate as a static SLC cache upon determining the entire portion of the memory configured to operate as a static SLC cache does not have data stored therein; and

programming the data received in the command to a portion of the memory configured to operate as a dynamic SLC cache or multilevel cell (MLC) memory upon determining the entire portion of the memory configured to operate as a static SLC cache has data stored therein.

16. The method of claim 15 , wherein the method includes:

determining, upon determining the entire portion of the memory configured to operate as a static SLC cache has data stored therein, whether a quantity of program or erase operations performed on the portion of the memory configured to operate as a dynamic SLC cache meets or exceeds a particular quantity of program or erase operations; and

programming the data received in the command to the portion of the memory configured to operate as MLC memory upon determining the quantity of program or erase operations performed on the portion of the memory configured to operate as a dynamic SLC cache meets or exceeds the particular quantity.

17. The method of claim 16 , wherein determining whether the quantity of program or erase operations performed on the portion of the memory configured to operate as a dynamic SLC cache meets or exceeds the particular quantity includes:

tracking the quantity of program or erase operations performed on the portion of the memory configured to operate as a dynamic SLC cache; and

comparing the tracked quantity to the particular quantity.

18. The method of claim 16 , wherein the method includes:

determining, upon determining the quantity of program or erase operations performed on the portion of the memory configured to operate as a dynamic SLC cache does not meet or exceed the particular quantity of program or erase operations, whether a quantity of blocks in the portion of the memory configured to operate as a dynamic SLC cache having data stored therein meets or exceeds a particular quantity of blocks; and

programming the data received in the command to the portion of the memory configured to operate as MLC memory upon determining the quantity of blocks in the portion of the memory configured to operate as a dynamic SLC cache having data stored therein meets or exceeds the particular quantity of blocks.

19. The method of claim 18 , wherein the method includes programming the data received in the command to the portion of the memory configured to operate as a dynamic SLC cache upon determining the quantity of blocks in the portion of the memory configured to operate as a dynamic SLC cache having data stored therein does not meet or exceed the particular quantity of blocks.

20. The method of claim 18 , wherein the method includes determining whether the quantity of blocks in the portion of the memory configured to operate as a dynamic SLC cache having data stored therein meets or exceeds the particular quantity of blocks using a tracking table.

Assignments (5)
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 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050716/0678 →
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 →
SUPPLEMENT NO. 7 TO PATENT SECURITY AGREEMENT Recorded Feb 6, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 045267/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2017
From: HALE, CHRISTOPHER S.; RATNAM, SAMPATH K.; MUCHHERLA, KISHORE K.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 044396/0204 →