IP Library Granted Patent US 11,442,634
Granted Patent B2
US 11,442,634 · App. 16/485,374 · Granted Sep 13, 2022

Replay protected memory block command queue

Inventors: Sebastien Andre Jean (Meridian, ID); Greg A. Blodgett (Marsing, ID)
Assignee: Micron Technology, Inc.
G06F3/0622G06F3/0659G06F3/0679G06F21/602G06F21/79
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 11,442,634
App. No.
16/485,374
Granted
Sep 13, 2022
Kind
B2
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 (80)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. 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.

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.

12. 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.

13. 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.

14. 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.

15. 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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

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.

22. 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.

23. 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.

24. 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.

25. 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.

26. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2023
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP, LLC
Reel/Frame 065042/0269 →