IP Library Granted Patent US 10,754,578
Granted Patent B2
US 10,754,578 · App. 15/975,607 · Granted Aug 25, 2020

Memory buffer management and bypass

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,754,578
App. No.
15/975,607
Granted
Aug 25, 2020
Kind
B2
Abstract

Methods, systems, and devices for memory buffer management and bypass are described. Data corresponding to a page size of a memory array may be received at a virtual memory bank of a memory device, and a value of a counter associated with the virtual memory bank may be incremented. Upon determining that a value of the counter has reached a threshold value, the data may be communicated from the virtual memory bank to a buffer of the same memory device. For instance, the counter may be incremented based on the virtual memory bank receiving an access command from a host device.

Claims (73)

1. A method, comprising:

receiving, at a virtual memory bank of a device, data corresponding to a page size of a memory array of the device;

incrementing, at the device, a value of a first counter associated with the virtual memory bank based at least in part on a memory access operation associated with the data;

determining that the value of the first counter associated with the virtual memory bank satisfies a threshold;

communicating the data between the virtual memory bank and a buffer of the device based at least in part on the value of the first counter satisfying the threshold; and

setting the value of the first counter to an initial value based at least in part on communicating the data between the virtual memory bank and the buffer.

2. The method of claim 1 , further comprising:

receiving a write command from a host device, wherein the value of the first counter associated with the virtual memory bank is incremented based at least in part on receiving the write command.

3. The method of claim 1 , further comprising:

determining that the value of the first counter associated with the virtual memory bank does not satisfy the threshold before determining that the value of the first counter associated with the virtual memory bank satisfies the threshold; and

communicating the data between the virtual memory bank and the memory array based at least in part on determining that the value of the first counter does not satisfy the threshold.

4. The method of claim 1 , further comprising:

receiving a read command from a host device, wherein the value of the first counter associated with the virtual memory bank is incremented based at least in part on receiving the read command.

5. The method of claim 4 , wherein the data is received at the virtual memory bank based at least in part on the read command, and the data is communicated from the virtual memory bank to the buffer based at least in part on the read command.

6. The method of claim 1 , further comprising:

incrementing a value of a second counter associated with the memory array based at least in part on the virtual memory bank receiving the data;

determining that the value of the second counter associated with the memory array satisfies the threshold; and

communicating the data between the virtual memory bank and the buffer of the device based at least in part on the value of second counter satisfying the threshold.

7. The method of claim 6 , further comprising:

determining that the value of the second counter associated with the memory array does not satisfy the threshold before determining that the value of the second counter associated with the memory array satisfies the threshold; and

communicating the data between the virtual memory bank and the memory array based at least in part on determining that the value of the second counter does not satisfy the threshold.

8. An apparatus, comprising:

a memory array that comprises memory cells and is configured with a page size;

a first controller coupled with the memory array and configured to interface with a system on a chip (SoC) or a processor;

a virtual memory bank coupled with the first controller, the virtual memory bank configured to receive data having the page size from with the memory array and to increment a value of a first counter associated with the virtual memory bank based at least in part on a memory access operation associated with the data; and

a buffer coupled with the virtual memory bank, the buffer configured to receive the data from the virtual memory bank based at least in part on the value of the first counter, and

wherein the memory array is configured to increment a value of a second counter associated with the memory array based at least in part on the virtual memory bank receiving the data, wherein the buffer is further configured to receive the data from the virtual memory bank based at least in part on the value of the second counter.

9. The apparatus of claim 8 , wherein the SoC or the processor is configured to communicate a command to the first controller, wherein the virtual memory bank is configured to receive the data based at least in part on the command.

10. The apparatus of claim 8 , wherein the SoC or the processor comprises a host controller.

11. A method, comprising:

receiving, at a virtual memory bank of a device, data corresponding to a page of a memory array of the device;

determining at least one application associated with the data;

determining whether to communicate the data to a buffer of the device or the memory array of the device based at least in part on a characteristic of the data, wherein the characteristic of the data is based at least in part on the at least one application associated with the data; and

communicating the data between the virtual memory bank and the buffer of the device based at least in part on the characteristic of the data.

12. The method of claim 11 , further comprising:

determining a quantity of memory access operations associated with the data, wherein the characteristic of the data is based at least in part on the quantity of memory access operations and the data is communicated to the buffer based at least in part on the quantity of prior memory access operations exceeding a threshold.

13. A method, comprising:

receiving, at a virtual memory bank of a device, data corresponding to a page of a memory array of the device;

determining that the data is buffered at a system on a chip (SoC) or a processor;

determining whether to communicate the data to a buffer of the device or the memory array of the device based at least in part on a characteristic of the data, wherein the characteristic of the data is based at least in part on the data being buffered at the SoC or the processor; and

communicating the data between the virtual memory bank and the memory array of the device based at least in part on the characteristic of the data.

14. The method of claim 13 , wherein communicating the data between the virtual memory bank and the memory array comprises:

communicating the data from the virtual memory bank to a main memory of the device.

15. A method, comprising:

receiving, at a virtual memory bank of a device, data corresponding to a page of a memory array of the device;

receiving an indication from a system on a chip (SoC) or a processor that a characteristic of the data comprises a data type indicated to be buffered by the SoC or the processor;

determining whether to communicate the data to a buffer of the device or the memory array of the device based at least in part on the characteristic of the data; and

communicating the data between the virtual memory bank and the buffer of the device based at least in part on the characteristic of the data.

16. A method, comprising:

receiving, at a virtual memory bank of a device, data corresponding to a page of a memory array of the device;

determining whether to communicate the data to a buffer of the device or the memory array of the device based at least in part on a characteristic of the data;

communicating the data between the virtual memory bank and the memory array of the device based at least in part on the characteristic of the data;

adjusting a value of a first counter associated with the virtual memory bank based at least in part on determining the characteristic of the data;

determining that the value of the first counter associated with the virtual memory bank satisfies a threshold;

closing the page of the memory array opened at the virtual memory bank based at least in part on the first counter satisfying the threshold; and

communicating the data to the buffer based at least in part on closing the page.

17. An apparatus, comprising:

a memory array that comprises memory cells and is configured with a page size;

a virtual memory bank of a device coupled with the memory array;

a buffer coupled with the virtual memory bank; and

a controller coupled with the virtual memory bank and configured to interface with a system on a chip (SoC) or a processor, the controller operable to:

initiate reading data corresponding to the page size of the memory array;

increment, at the device, a value of a first counter associated with the virtual memory bank based at least in part on a memory access operation associated with the data;

initiate incrementing a value of a second counter associated with the memory array based at least in part on reading the data;

determine that the value of the first counter associated with the virtual memory bank satisfies a threshold after incrementing the value of the first counter;

communicate the data between the virtual memory bank and the buffer of the device based at least in part on the first counter satisfying the threshold, wherein the virtual memory bank and the buffer are disposed on a same chip; and

reset the value of the first counter based at least in part on communicating the data between the virtual memory bank and the buffer.

18. The apparatus of claim 17 , wherein the controller is further operable to:

initiate determining that the value of the second counter associated with the memory array does not satisfy the threshold before determining that the value of the second counter associated with the memory array satisfies the threshold; and

communicate the data between the virtual memory bank and the memory array based at least in part on determining that the value of the second counter does not satisfy the threshold.

19. The apparatus of claim 17 , wherein the controller is further operable to:

determine at least one characteristic of the data, wherein communicating the data between the virtual memory bank and the buffer is based at least in part on the at least one characteristic of the data or the first counter satisfying the threshold, or both.

20. The apparatus of claim 19 , wherein the at least one characteristic comprises a quantity of prior memory access operations associated with the data, a type of data that is buffered at the SoC or the processor, at least one application associated with the data, or a data type indicated to be buffered by the SoC or the processor, or a combination thereof.

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 11, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050713/0001 →
SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT Recorded Aug 9, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 047282/0463 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2018
From: HASBUN, ROBERT NASRY; GANS, DEAN D.; DARUWALLA, SHAROOKH
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046095/0272 →