IP Library Granted Patent US 8,806,090
Granted Patent B2
US 8,806,090 · App. 13/149,457 · Granted Aug 12, 2014

Apparatus including buffer allocation management and related methods

Inventors: Douglas A. Larson (Lakeville, MN); Joseph M. Jeddeloh (Shoreview, MN)
Assignee: Micron Technology, Inc.
G06F12/023H04L49/901
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,806,090
App. No.
13/149,457
Granted
Aug 12, 2014
Kind
B2
Abstract

Memory system controllers can include hardware masters, first buffers, and a switch coupled to the hardware masters and to the first buffers. The switch can include second buffers and a buffer allocation management (BAM) circuit. The BAM circuit can include a buffer tag pool. The buffer tag pool can include tags, each identifying a respective first buffer or a respective second buffer. The BAM circuit can be configured to allocate a tag to a hardware master in response to an allocation request from the hardware masters. The BAM circuit can be configured to prioritize allocation of a tag identifying a second buffer over a tag identifying a first buffer.

Claims (53)

1. An apparatus, comprising:

a number of hardware masters;

non-volatile memory control circuitry coupled to non-volatile memory;

volatile memory control circuitry coupled to volatile memory including a plurality of first buffers; and

a switch coupled to the volatile memory control circuitry, to the non-volatile memory control circuitry, and to the number of hardware masters, wherein the switch includes:

a plurality of second buffers distinct from the non-volatile memory and the volatile memory; and

a buffer allocation management (BAM) circuit including a buffer tag pool, wherein the buffer tag pool includes a plurality of tags, each identifying a respective one of the plurality of first buffers or the plurality of second buffers, wherein the BAM circuit is configured to:

allocate a tag to one of the number of hardware masters in response to an allocation request from the one of the number of hardware masters; and

prioritize allocation of a tag identifying one of the plurality of second buffers over a tag identifying one of the plurality of first buffers;

wherein one of the number of hardware masters comprises a processor configured to enable direct memory access (DMA) operations between the non-volatile memory control circuitry and the volatile memory control circuitry with access to an entire space of the volatile memory without regard to the plurality of tags.

2. The apparatus of claim 1 , wherein:

the plurality of first buffers comprise a plurality of dynamic random access memory (DRAM) buffers; and

the plurality of second buffers comprise a plurality of internal static random access memory (SRAM) buffers (ISBs).

3. The apparatus of claim 1 , wherein the plurality of second buffers are faster and lower powered than the plurality of first buffers.

4. The apparatus of claim 1 , wherein the BAM circuit is configured to prioritize allocation of tags such that a tag identifying one of the plurality of first buffers is allocated only after all tags identifying second buffers have been allocated.

5. The apparatus of claim 1 , wherein at least one of the number of hardware masters is configured to request allocation of a tag generically without requesting allocation of a tag specific to one of the plurality of second buffers or one of the plurality of first buffers.

6. The apparatus of claim 1 , wherein at least one of the number of hardware masters is configured to:

request allocation of a tag from the BAM circuit in conjunction with a read command or a write command; and

request deallocation of an allocated tag from the BAM circuit in conjunction with completion of the read command or the write command.

7. The apparatus of claim 6 , wherein the at least one of the number of hardware masters is configured to prioritize deallocation requests over allocation requests.

8. The apparatus of claim 6 :

wherein the at least one of the number of hardware masters is configured to send a read command to the non-volatile memory control circuitry along with an allocated tag; and

wherein the non-volatile memory control circuitry is configured to store information corresponding to the read command in a buffer identified by the allocated tag and to notify the particular hardware master that sent the read command that the information is ready.

9. The apparatus of claim 6 :

wherein the at least one of the number of hardware masters is configured to:

send a write command to the non-volatile memory control circuitry along with an allocated tag; and

store information corresponding to the write command in a buffer identified by the allocated tag; and

wherein the non-volatile memory control circuitry is configured to:

retrieve the information from the buffer identified by the allocated tag;

write the information to non-volatile memory; and

notify the particular hardware master that sent the write command that the information has been written.

10. The apparatus of claim 1 , wherein the processor is coupled to the switch, wherein the processor is configured to access the BAM circuit and remove tags associated with non-functioning buffers from the buffer tag pool.

11. The apparatus of claim 1 , wherein the BAM circuit is configured to remove tags associated with non-functioning buffers from the buffer tag pool.

12. A method, comprising:

receiving an allocation request from one of a number of hardware masters;

allocating a tag, via a buffer allocation management (BAM) circuit including a buffer tag pool, to the one of the number of hardware masters in response to the request, wherein the buffer tag pool includes a plurality of tags, each identifying a respective one of a plurality of first buffers or a plurality of second buffers;

prioritizing allocation of a tag identifying one of the plurality of second buffers over a tag identifying one of the plurality of first buffers; and

enabling direct memory access (DMA) operations between non-volatile memory control circuitry and volatile memory control circuitry with access to an entire space of the volatile memory without regard to the plurality of tags, wherein the volatile memory control circuitry is coupled to volatile memory including the plurality of first buffers, and wherein the non-volatile memory control circuitry is coupled to non-volatile memory that is distinct from the plurality of second buffers.

13. The method of claim 12 , wherein the plurality of first buffers comprise dynamic random access memory (DRAM) buffers, and wherein the plurality of second buffers comprise internal static random access memory (SRAM) buffers (ISBs).

14. The method of claim 12 , wherein prioritizing allocation of the tag includes prioritizing allocation such that a tag identifying one of the plurality of first buffers is allocated only after all tags identifying second buffers have been allocated.

15. The method of claim 12 , wherein the method includes removing tags associated with non-functioning buffers from the buffer tag pool.

16. The method of claim 12 , wherein receiving the allocation request includes requesting the allocation request in conjunction with a read command or a write command; and

wherein the method further includes storing information corresponding to the read command or the write command in a buffer identified by the allocated tag.

17. The method of claim 12 , wherein the method includes:

receiving a request for deallocation of an allocated tag in conjunction with completion of a read command or a write command; and

prioritizing deallocation requests over allocation requests.

18. A method, comprising:

receiving an allocation request in association with a read command or a write command for a non-volatile memory;

allocating a tag, via a buffer allocation management (BAM) circuit for facilitating read and write operations to a non-volatile memory, the BAM circuit including a buffer tag pool, to one of a number of hardware masters in response to the request, wherein the buffer tag pool includes a plurality of tags, each identifying a respective one of a plurality of first buffers within a volatile memory or a plurality of second buffers distinct from both the volatile memory and the non-volatile memory, wherein the plurality of second buffers are faster and/or lower powered than the plurality of first buffers;

prioritizing allocation of a tag identifying one of the plurality of second buffers over a tag identifying one of the plurality of first buffers;

receiving a request for deallocation of an allocated tag in conjunction with completion of the read command or the write command; and

prioritizing deallocation requests over allocation requests including prioritizing a particular request for deallocation of a second allocated tag corresponding to a first one of the plurality of second buffers over a particular allocation request corresponding to a second one of the plurality of second buffers.

19. The method of claim 18 , wherein the method includes storing information corresponding to the read command or the write command in a buffer identified by the allocated tag.

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 Aug 4, 2011
From: LARSON, DOUGLAS A.; JEDDELOH, JOSEPH M.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 026703/0454 →
Continuity (1)
Related Publication 20120311197A1 · Dec 6, 2012