# US 11,442,634 B2 · Replay protected memory block command queue

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

- Number: US 11,442,634 B2
- Document ID: US11442634B2
- Status: Granted
- Kind: B2
- Application number: 16/485,374
- Filed: 2019-04-11
- Published: 2021-10-28
- Granted: 2022-09-13
- Earliest claimed: 2018-04-12
- Assignees: Micron Technology, Inc.
- Applicants: Micron Technology, Inc.
- Inventors: Sebastien Andre Jean; Greg A. Blodgett
- Web page: https://patentgrep.com/patent/US11442634B2

## CPC

- G06F 3/0622: {in relation to access}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Devices and techniques are disclosed herein for providing an improved Replay Protected Memory Block (RPMB) data frame and command queue for communication between a host device and a memory device.

## Claims

### Claim 1

A system comprising:
a memory device comprising a memory array and control circuitry, wherein the control circuitry is configured to receive Replay Protected Memory Block (RPMB) commands from a host device, the received RPMB commands comprising RPBM read and write commands to be performed on non-volatile memory of the memory device, to maintain an RPMB command queue using the received RPMB commands, and to perform the received RPMB commands in order according to the RPMB command queue,
wherein the memory device is configured to pre-fetch read data from a read address associated with a queued RPMB read command out of order with respect to one or more RPMB write commands, in parallel to execution of the one or more RPMB write commands, and store the pre-fetched read data associated with the queued RPMB read command in volatile memory of the memory device to be provided to the host device in order according to the RPMB command queue, while the control circuitry is performing the received RPMB commands in order according to the RPMB command queue.

### Claim 2 (depends on 1)

The system of claim 1, wherein the memory device is configured to perform RPMB write commands in the RPMB command queue in order according to the RPMB command queue and a counter, and to perform the RPMB read commands in order according to the RPMB command queue using the pre-fetched read data.

### Claim 3 (depends on 1)

The system of claim 1, wherein the memory device comprises multiple memory die, each comprising respective RPMB areas, and
wherein the memory device is configured to maintain separate RPMB command queues for the respective RPMB areas.

### Claim 4 (depends on 1)

The system of claim 1, wherein the memory device comprises multiple memory die, each comprising respective RPMB areas, and
wherein each of the multiple memory die comprises control logic, wherein the control logic is configured to maintain RPMB command queues for each respective RPMB area.

### Claim 5 (depends on 1)

The system of claim 1, wherein the memory device comprises multiple RPMB areas and is configured to maintain separate RPMB command queues for each of the multiple RPMB areas, each of the multiple RPMB areas having a unique key, counter, and data area.

### Claim 6 (depends on 1)

The system of claim 1, wherein the memory device comprises an RPMB area and an RPMB circuit, and
wherein the RPMB circuit is configured to control access to the RPMB area and to maintain the RPMB command queue for the RPMB area.

### Claim 7 (depends on 6)

The system of claim 6, comprising:
a host device configured to provide the RPMB command to the memory device, the RPMB command comprising an RPMB data frame, the RPMB data frame comprising 8 write counter bytes,
wherein the RPMB circuit is configured to implement a counter and to verify the order of an RPMB write command with the received counter bytes and the counter.

### Claim 8 (depends on 7)

The system of claim 7, wherein the RPMB data frame comprises:
header bytes, consisting of 32-64 bytes of data;
data bytes following the header bytes; and
message authentication code (MAC) bytes following the data bytes.

### Claim 9 (depends on 8)

The system of claim 8, wherein the header bytes comprise, in order:
2 req/resp message type bytes;
2 result bytes;
2 block count bytes;
2 address bytes;
8 write counter bytes; and
16 nonce bytes.

### Claim 10 (depends on 8)

The system of claim 8, wherein the data bytes comprise a number (n) chunks of data, the n chunks of data consisting of all of the data bytes for a single read or write transfer, and the header bytes and the MAC bytes consisting all of the header bytes and MAC bytes for the single read or write transfer.

### Claim 11

A method comprising:
receiving, at a memory device, multiple Replay Protected Memory Block (RPMB) commands from a host device, the received RPMB commands comprising RPBM read and write commands to be performed on non-volatile memory of the memory device;
maintaining, using control circuitry of the memory device, an RPMB command queue using the received RPMB commands in the order received from the host device; and
performing, using the control circuitry, the received RPMB commands in order according to the RPMB command queue, comprising:
pre-fetching, using the control circuitry, read data from a read address associated with an RPMB command in the RPMB command queue out of order with respect to one or more RPMB write commands, in parallel to execution of the one or more RPMB write commands, and storing the pre-fetched read data associated with the queued RPMB read command in volatile memory of the memory device to be provided to the host device in order according to the RPMB command queue while still performing the received RPMB commands in order according to the RPMB command queue.

### Claim 12 (depends on 11)

The method of claim 11, wherein performing RPMB commands comprises:
performing RPMB write commands in the RPMB command queue in order according to the RPMB command queue and a counter; and
performing the RPMB read commands in order according to the RPMB command queue using the pre-fetched read data.

### Claim 13 (depends on 11)

The method of claim 11, wherein maintaining the RPMB command queue comprises maintaining separate RPMB command queues for respective RPMB areas of the memory device.

### Claim 14 (depends on 11)

The method of claim 11, wherein the memory device comprises multiple memory die, each comprising respective control logic and RPMB areas, and
wherein maintaining the separate RPMB command queues comprises maintaining respective RPMB command queues for each RPMB area using the control logic of the memory die.

### Claim 15 (depends on 11)

The method of claim 11, wherein the memory device comprises multiple RPMB areas and is configured to maintain separate RPMB command queues for each of the multiple RPMB areas, each of the multiple RPMB areas having a unique key, counter, and data area.

### Claim 16 (depends on 11)

The method of claim 11, wherein the memory device comprises an RPMB area and an RPMB circuit, and
wherein the RPMB circuit is configured to control access to the RPMB area and to maintain the RPMB command queue for the RPMB area,
wherein the RPMB commands comprise first and second RPMB read commands, wherein the first RPMB read command is distinct from the second RPMB read command, and
wherein performing the RPMB commands comprises providing pre-fetched read data associated with the first and second RPMB read commands to the host in order according to the RPMB command queue.

### Claim 17 (depends on 16)

The method of claim 16, comprising:
providing the RPMB command to the memory device using a host device, the RPMB command comprising an RPMB data frame, the RPMB data frame comprising 8 write counter bytes; and
implementing, using the RPMB circuit, a counter and verifying the order of a received RPMB write command with the received counter bytes of the counter.

### Claim 18 (depends on 17)

The method of claim 17, wherein providing the RPMB command comprises providing an RPMB data frame comprising providing:
header bytes, consisting of 32-64 bytes of data;
data bytes following the header bytes; and
message authentication code (MAC) bytes following the data bytes.

### Claim 19 (depends on 18)

The method of claim 18, wherein providing the RPMB header bytes comprises providing, in order:
2 req/resp message type bytes;
2 result bytes;
2 block count bytes;
2 address bytes;
8 write counter bytes; and
16 nonce bytes.

### Claim 20 (depends on 18)

The method of claim 18, wherein providing the data bytes comprises providing a number (n) chunks of data, the n chunks of data consisting of all of the data bytes for a single read or write transfer, and
wherein providing the header bytes and the MAC bytes consists of providing all of the header bytes and MAC bytes for the single read or write transfer.

### Claim 21

At least one non-transitory device-readable storage medium comprising instructions that, when executed by control circuitry of a memory device, cause the control circuitry to perform operations comprising:
receiving multiple Replay Protected Memory Block (RPMB) commands from a host device, the received RPMB commands comprising RPBM read and write commands to be performed on non-volatile memory of the memory device;
maintaining an RPMB command queue using the received RPMB commands in the order received from the host device;
performing the received RPMB commands in order according to the RPMB command queue, comprising:
pre-fetching read data from a read address associated with an RPMB command in the RPMB command queue out of order with respect to one or more RPMB write commands, in parallel to execution of the one or more RPMB write commands, and storing the pre-fetched read data associated with the queued RPMB read command in volatile memory of the memory device to be provided to the host device in order according to the RPMB command queue while still performing the received RPMB commands in order according to the RPMB command queue.

### Claim 22 (depends on 21)

The storage medium of claim 21, wherein performing RPMB commands comprises:
performing RPMB write commands in the RPMB command queue in order according to the RPMB command queue and a counter; and
performing the RPMB read commands in order according to the RPMB command queue using the pre-fetched read data.

### Claim 23 (depends on 21)

The storage medium of claim 21, wherein maintaining the RPMB command queue comprises maintaining separate RPMB command queues for respective RPMB areas of the memory device.

### Claim 24 (depends on 21)

The storage medium of claim 21, wherein receiving an RPMB command comprises receiving an RPMB data frame comprising:
header bytes, consisting of 32-64 bytes of data;
data bytes following the header bytes; and
message authentication code (MAC) bytes following the data bytes.

### Claim 25 (depends on 24)

The storage medium of claim 24, wherein receiving the RPMB header bytes comprises receiving, in order:
2 req/resp message type bytes;
2 result bytes;
2 block count bytes;
2 address bytes;
8 write counter bytes; and
16 nonce bytes.

### Claim 26 (depends on 24)

The storage medium of claim 24, wherein receiving the data bytes comprises receiving a number (n) chunks of data, the n chunks of data consisting of all of the data bytes for a single read or write transfer, and
wherein receiving the header bytes and the MAC bytes consists of receiving all of the header bytes and MAC bytes for the single read or write transfer.
