IP Library Granted Patent US 12699653
Granted Patent B2
US 12699653 · App. 18/665,319 · Granted Aug 4, 2026

DRAM cache tag probing

Inventors: Steven C. Woo (Saratoga, CA); Michael Raymond Miller (Raleigh, NC); Taeksang Song (San Jose, CA); Wendy Elsasser (Austin, TX); Maryam Babaie (Davis, CA)
Assignee: Rambus Inc.
G06F12/0895G06F12/084G06F13/1668
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 12699653
App. No.
18/665,319
Granted
Aug 4, 2026
Kind
B2
Abstract

A dynamic random access memory (DRAM) device includes functions configured to aid with operating the DRAM device as part of data caching functions. The DRAM is configured to respond to at least two types of commands. A first type of command (cache data access command) seeks to access a cache line of data, if present in the DRAM cache. A second type of command (cache probe command) seeks to determine whether a cache line of data is present, but is not requesting the data be returned in response. In response to these types of access commands, the DRAM device is configured to receive cache tag query values and to compare stored cache tag values with the cache tag query values. A hit/miss (HM) interface/bus may indicate the result of the cache tag compare and stored cache line status bits to a controller.

Claims (36)

1 . A memory component, comprising:

a first dynamic random access memory (DRAM) array to store a plurality of cache information entries, each cache information entry comprising a tag field and at least one flag;

a second DRAM array to store a plurality of cache lines;

a command/address interface to receive a first access command from a controller, in association with a first tag query value, indicating a first access to the first DRAM array and a first access to the second DRAM array, the first access to the first DRAM array to access a first cache information entry addressed by a first address, the first cache information entry comprising a first tag value and a first flag value, the first access to the second DRAM array to access a first cache line associated with the first address;

the command/address interface to receive a second access command from the controller, in association with a second tag query value, indicating a second access the first DRAM array and indicating the second DRAM array is not to be accessed in response to the second access command, the second access to the first DRAM array to access a second cache information entry addressed by a second address, the second cache information entry comprising a second tag value and a second flag value;

a cache result interface, distinct from the command/address interface, to transmit a first status indicator and a second status indicator to the controller, the first status indicator including a first hit/miss indication indicating whether the first tag query value matches the first tag value, the second status indicator including a second hit/miss indication indicating whether the second tag query value matches the second tag value; and

a data interface, distinct from the command/address interface and distinct from the cache result interface, to communicate cache lines with the controller, the first status indicator also indicating to the controller a content of a response to the first access command to be communicated via the data interface.

2 . The memory component of claim 1 , wherein the first DRAM array includes a first bank and a second bank, the first address to be directed to the first bank and the second address to be directed to the second bank.

3 . The memory component of claim 2 , wherein the first access command and the second access command are received consecutively by the command/address interface.

4 . The memory component of claim 3 , wherein the second access command being received consecutively after the first access command indicates the second DRAM array is not to be accessed in response to the second access command.

5 . The memory component of claim 1 , wherein, based on the second status indicator, the command/address interface is to receive, from the controller, a third access command indicating a second access to the second DRAM array to access a second cache line associated with the second address.

6 . The memory component of claim 5 , wherein the third access command indicates the first DRAM array is not to be accessed in response to the third access command.

7 . The memory component of claim 1 , wherein the second status indicator at least indicates whether the second cache information entry corresponds to a valid cache information entry, whether the second tag query value matches the second tag value, and whether the second tag query value does not match the second tag value where a second cache line associated with the second address has been modified.

8 . A memory component, comprising:

a command/address interface to receive a first access command and a second access command, the first access command being associated with a first tag query value and a first address and indicating a first access to a first cache information entry and first access to a first cache line both associated with the first address, the second access command being associated with a second tag query value and a second address and indicating a second access to a second cache information entry associated with the second address and also indicating a second cache line associated with the second address is not to be accessed;

a cache information dynamic random access memory (DRAM) array to store the first cache information entry and the second cache information entry, the first cache information entry including a first tag value and a first at least one flag, the second cache information entry including a second tag value and a second at least one flag;

a cache line DRAM array to store the first cache line and the second cache line;

a data interface, distinct from the command/address interface, to communicate the first cache line with a controller; and

a cache result interface, distinct from the command/address interface and distinct from the data interface, to transmit, in response to the first access command, a first status indicator to the controller, the first status indicator to indicate that the first tag query value matches the first tag value and that the data interface is to communicate the first cache line with the controller, the second status indicator to indicate whether the second cache tag query value matches the second tag value.

9 . The memory component of claim 8 , wherein the cache information DRAM array includes a first bank and a second bank, the first address to be directed to the first bank and the second address to be directed to the second bank.

10 . The memory component of claim 9 , wherein the first access command and the second access command are received consecutively and without an intervening access command, by the command/address interface.

11 . The memory component of claim 10 , wherein the second access command being received consecutively after the first access command indicates the cache information DRAM array is not to be accessed in response to the second access command.

12 . The memory component of claim 8 , wherein the command/address interface is to receive a third access command associated with the second address indicating the second cache line is to be accessed, the third access command being transmitted, by the controller, based on the second status indicator.

13 . The memory component of claim 12 , wherein the third access command indicates the cache information DRAM array is not to be accessed in response to the third access command.

14 . The memory component of claim 8 , wherein the second status indicator is to indicate the cache result interface is to communicate the second tag value.

15 . A method of operating a memory controller, comprising:

transmitting, via a command/address interface and to a memory component, a first access command, the first access command associated with a first tag query value and a first address and also indicating a first access to a first cache information entry and first access to a first cache line both associated with the first address;

receiving, via a cache result interface that is distinct from the command/address interface and from the memory component, a first response to the first access command that includes a first status indicator, the first status indicator indicating that the first tag query value matches a first tag value from the first cache information entry and also indicating that the memory component is to communicate the first cache line with the controller via a data interface that is distinct from the command/address interface and is distinct from the cache result interface;

transmitting, via the command/address interface and to the memory component, a second access command associated with a second tag query value and a second address and indicating a second access to a second cache information entry associated with the second address and also indicating a second cache line associated with the second address is not to be accessed and is not, based on the second access command, to be communicated with controller via the data interface; and

receiving, via the cache result interface and from the memory component, a second response to the second access command that includes a second status indicator, the second status indicator indicating whether the second tag query value matches a second tag value from the second cache information entry.

16 . The method of claim 15 , wherein the first address is directed to a first bank of the memory component and the second address is directed to a second bank of the memory component.

17 . The method of claim 16 , wherein the first access command and the second access command are transmitted consecutively and without transmitting an intervening access command.

18 . The method of claim 17 , wherein the second access command being transmitted consecutively after the first access command indicates the second cache line associated with the second address is not to be accessed.

19 . The method of claim 18 , wherein the third access command indicates the second cache information entry is not to be accessed in response to the third access command.

20 . The method of claim 15 , further comprising:

based on the second status indicator, transmitting, via the command/address interface and to the memory component, a third access command associated with the second address indicating the second cache line is to be accessed.