# US 11,030,098 B2 · Configurable burst optimization for a parameterizable buffer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,030,098 B2
- Document ID: US11030098B2
- Status: Granted
- Kind: B2
- Application number: 16/141,034
- Filed: 2018-09-25
- Published: 2020-03-26
- Granted: 2021-06-08
- Earliest claimed: 2018-09-25
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Michael Ou
- Web page: https://patentgrep.com/patent/US11030098B2

## CPC

- G06F 12/0804: with main memory updating (G06F12/0806 takes precedence)
- G06F 13/1673: {using buffers}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An incoming write request received from a client is accessed. The incoming write request comprises a write command to transfer write data to a buffer memory. An initial portion of the write data is written to the buffer memory. An alignment of a final portion of the write data with respect to a memory bank width of the buffer memory is determined. The client is determined to be designated as a burst-overwrite client. In response to determining that the final portion of the write data is unaligned with the memory bank width of the buffer memory, the final portion of the write data is written to the buffer memory without preserving previously stored data based on the client being designated as a burst-overwrite client.

## Claims

### Claim 1

A method comprising:
designating each client of a buffer memory as either a burst over-write client or a data preserving client based on a function performed by each client;
accessing an incoming write request received from a client of the buffer memory, the incoming write request comprising a write command to transfer write data to the buffer memory;
writing an initial portion of the write data to the buffer memory;
determining that a final portion of the write data is unaligned with a memory bank width of the buffer memory;
determining a designation of the client by accessing a configuration register that stores client designations for a plurality of clients of the buffer memory, the designation of the client indicating whether data previously stored in the buffer memory is to be preserved when writing the final portion of the write data to the buffer memory, the client being designated as either a burst-overwrite client or a data preserving client; and
in response to determining that the final portion of the write data is unaligned with the memory bank width of the buffer memory, determining whether to preserve previously stored data in the buffer memory based on the designation of the client.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
writing the final portion of the write data to the buffer memory without preserving the previously stored data based on the client being designated as a burst-overwrite client.

### Claim 3 (depends on 2)

The method of claim 2, wherein the writing of the final portion of the write data to the buffer memory comprises overwriting the previously stored data.

### Claim 4 (depends on 3)

The method of claim 3, wherein the overwriting of the previously stored data comprises padding the final portion of the write data with one or more padding bytes to align a length of the final portion of the write data with the memory bank width.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
performing a read-modify-write operation to write the final portion of the write data to the buffer memory and preserve the previously stored data in the buffer memory based on the client being designated as a data-preserving client.

### Claim 6 (depends on 5)

The method of claim 5, wherein the performing the read-modify-write operation comprises:
reading the previously stored data from the buffer memory;
merging the previously stored data with the write data to generate merged data; and
writing the merged data to the buffer memory.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the incoming write request is a first write request;
the write command is a first write command to transfer first write data to the buffer memory; and
the method further comprises:
accessing a second incoming write request received from the client, the second incoming write request comprising a second write command to transfer second write data to the buffer memory;
writing an initial portion of the second write data to the buffer memory;
determining that a final portion of the second write data is aligned with the memory bank width of the buffer memory; and
in response to determining that the final portion of the second write data is aligned with the memory bank width of the buffer memory, writing the final portion of the second write data to the buffer memory.

### Claim 8 (depends on 1)

The method of claim 1, wherein the client being designated as a burst-overwrite client indicates that the data previously stored in the buffer memory is to be overwritten with the final portion of the write data.

### Claim 9 (depends on 8)

The method of claim 8, each client of the buffer memory is a component or process of a memory sub-system that includes the buffer memory.

### Claim 10

A system comprising:
a memory device configured as a buffer memory that is accessible by a plurality of clients; and
a processing device, operatively coupled with the memory device, to perform operations comprising:
designating each client of the buffer memory as either a burst over-write client or a data preserving client based on a function performed by each client;
accessing an incoming write request received from a client, the incoming write request comprising a write command to transfer write data to the buffer memory;
writing an initial portion of the write data to the buffer memory;
determining an alignment of a final portion of the write data with respect to a memory bank width of the buffer memory;
determining a designation of the client by accessing a configuration register that stores client designations for each of the plurality of clients, the designation of the client indicating whether data previously stored in the buffer memory is to be preserved when writing the final portion of the write data to the buffer memory;
determining, based on accessing the configuration register, that the client is designated as a burst-overwrite client; and
in response to determining that the final portion of the write data is unaligned with the memory bank width of the buffer memory, writing the final portion of the write data to the buffer memory without preserving the data previously stored in the buffer memory based on the client being designated as a burst-overwrite client.

### Claim 11 (depends on 10)

The system of claim 10, wherein determining that the final portion of the write data is unaligned with the memory bank width of the buffer memory comprises determining that a length of the final portion of the write data is less than the memory bank width of the buffer memory.

### Claim 12 (depends on 10)

The system of claim 10, wherein the writing of the final portion of the write data to the buffer memory comprises overwriting the data previously stored in the buffer memory.

### Claim 13 (depends on 12)

The system of claim 12, wherein the overwriting of the previously stored data comprises padding the final portion of the write data with one or more padding bytes to align a length of the final portion of the write data with the memory bank width.

### Claim 14 (depends on 10)

The system of claim 10, wherein the client being designated as a burst-overwrite client indicates that the data previously stored in the buffer memory is to be overwritten with the final portion of the write data.

### Claim 15 (depends on 14)

The system of claim 14, wherein:
each client of the buffer memory is a component or process of the system.

### Claim 16 (depends on 10)

The system of claim 10, wherein:
the incoming write request is a first write request;
the write command is a first write command to transfer first write data to the buffer memory;
the client is a first client;
a second client is designated as a data-preserving client; and
the processing device is to perform further operations comprising:
accessing a second incoming write request received from the second client, the second incoming write request comprising a second write command to transfer second write data to the buffer memory;
writing an initial portion of the second write data to the buffer memory;
determining an alignment of a final portion of the second write data with respect to the memory bank width of the buffer memory; and
based on a designation of the second client and based on determining that the final portion of the second write data is unaligned with the memory bank width of the buffer memory, performing a read-modify-write operation to write the final portion of the second write data to the buffer memory and preserve previously stored data in the buffer memory.

### Claim 17 (depends on 16)

The system of claim 16, wherein the performing the read-modify-write operation comprises:
reading the previously stored data from the buffer memory;
merging the previously stored data with the second write data to generate merged data; and
writing the merged data to the buffer memory.

### Claim 18 (depends on 10)

The system of claim 10, wherein:
the incoming write request is a first write request;
the write command is a first write command to transfer first write data to the buffer memory; and
the processing device is to perform further operations comprising:
accessing a second incoming write request received from the client, the second incoming write request comprising a second write command to transfer second write data to the buffer memory;
writing an initial portion of the second write data to the buffer memory;
determining that a final portion of the second write data is aligned with the memory bank width of the buffer memory; and
in response to determining that the final portion of the second write data is aligned with the memory bank width of the buffer memory, writing the final portion of the second write data to the buffer memory.

### Claim 19

A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
designating each client of a buffer memory as either a burst over-write client or a data preserving client based on a function performed by each client;
accessing an incoming write request received from a client of the buffer memory, the incoming write request comprising a write command to transfer write data to the buffer memory;
writing an initial portion of the write data to the buffer memory;
determining that a final portion of the write data is unaligned with a memory bank width of the buffer memory;
determining a designation of the client by accessing a configuration register that stores client designations for a plurality of clients, the designation of the client indicating whether data previously stored in the buffer memory is to be preserved when writing the final portion of the write data to the buffer memory, the client being designated as either a burst-overwrite client or a data preserving client; and
in response to determining that the final portion of the write data is unaligned with the memory bank width of the buffer memory, determining whether to preserve previously stored data in the buffer memory based on the designation of the client.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, the operations further comprise:
performing a read-modify-write operation to write the final portion of the write data to the buffer memory and preserve the previously stored data in the buffer memory based on the client being designated as a data-preserving client; and
writing the final portion of the write data to the buffer memory without preserving the previously stored data based on the client being designated as a burst-overwrite client.
