IP Library Patent Application 17181383
Patent Application
App. No. 17/181,383

Host Memory Buffer (HMB) Abstraction Protocol Layer

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 None
App. No.
17/181,383
Abstract

A Host Memory Buffer (HMB) Abstraction Protocol layer is individually included in a host device and a SD-PCIe device. The HMB Abstraction Protocol layers provide the SD-PCIe device access to a HMB region of the host device when the SD-PCIe is operating in the SD mode, where the HMB region was previously inaccessible to the SD-PCIe device when operating in the SD mode.

Claims (91)

1 . A data storage device controller, comprising:

memory; and

an electronic processor communicatively coupled to the memory,

wherein the memory includes a Secure Digital (SD) Host Memory Buffer (HMB) dataset and a HMB Abstraction Protocol layer that maintains the SD HMB dataset.

2 . The data storage device controller of claim 1 , wherein the memory further includes a Non-Volatile Memory Express (NVMe) HMB Descriptor list that is separate and distinct from the SD HMB dataset, the NVMe HMB Descriptor list is a list of host memory address ranges of a HMB of a host device for exclusive use by the data storage device controller.

3 . The data storage device controller of claim 1 , wherein the electronic processor is configured to

receive one or more vendor specific commands from a host device, and

determine, with the HMB Abstraction Protocol layer, whether the host device has initialized a HMB from the one or more vendor specific commands.

4 . The data storage device controller of claim 3 , wherein the electronic processor is further configured to request, with the HMB Abstraction Protocol layer, a read operation on the HMB in response to determining that the host device has initialized the HMB.

5 . The data storage device controller of claim 4 , wherein, to request, with the HMB Abstraction Protocol layer, the read operation on the HMB in response to determining that the host device has initialized the HMB, the electronic processor is further configured to request, with the HMB Abstraction Protocol layer, a read of one of control data, tables, or Logical 2 Physical (L2P) mapping table information from the HMB, and wherein the electronic processor is further configured to:

receive the one of the control data, the tables, or the L2P mapping table information from the HMB, and

store the one of the control data, the tables, or the L2P mapping table information in the memory.

6 . The data storage device controller of claim 3 , wherein the electronic processor is further configured to request, with the HMB Abstraction Protocol layer, a write operation on the HMB in response to determining that the host device has initialized the HMB.

7 . The data storage device controller of claim 6 , wherein, to request, with the HMB Abstraction Protocol layer, the write operation on the HMB in response to determining that the host device has initialized the HMB, the electronic processor is further configured to request, with the HMB Abstraction Protocol layer, a write of one of control data, tables, or Logical 2 Physical (L2P) mapping table information to the HMB, and wherein the electronic processor is further configured to receive a result from the host device, the result indicating a status of the write of the one of the control data, the tables, or the L2P mapping table information to the HMB.

8 . The data storage device controller of claim 3 , wherein the one or more vendor specific commands from the host device are a query regarding whether access to the HMB is required, whether read or write access to the HMB is required, and whether access to a specific buffer of the HMB is required, and

wherein the electronic processor is configured to determine, with the HMB Abstraction Protocol layer, the query from the one or more vendor specific commands.

9 . A method, comprising:

receiving, with a data storage device controller operating in a Secure Digital (SD) mode, one or more vendor specific commands from a host device; and

determining, with the data storage device controller operating in the SD mode and executing a HMB Abstraction Protocol layer, whether the host device has initialized a HMB from the one or more vendor specific commands.

10 . The method of claim 9 , further comprising:

requesting, with the data storage device controller operating in the SD mode and executing the HMB Abstraction Protocol layer, a read operation on the HMB in response to determining that the host device has initialized the HMB.

11 . The method of claim 10 , wherein requesting the read operation on the HMB in response to determining that the host device has initialized the HMB further includes requesting a read of one of control data, tables, or Logical 2 Physical (L2P) mapping table information from the HMB, and

wherein the method further includes

receiving the one of the control data, the tables, or the L2P mapping table information from the HMB; and

storing the one of the control data, the tables, or the L2P mapping table information in a memory of the data storage device controller.

12 . The method of claim 9 , further comprising:

requesting, with the data storage device controller operating in the SD mode and executing the HMB Abstraction Protocol layer, a write operation on the HMB in response to determining that the host device has initialized the HMB.

13 . The method of claim 12 , wherein requesting the write operation on the HMB in response to determining that the host device has initialized the HMB further includes requesting a write of one of control data, tables, or Logical 2 Physical (L2P) mapping table information to the HMB, and

wherein the method further includes receiving, with the data storage device controller operating in the SD mode, a result of the write of the one of the control data, the tables, or the L2P mapping table information to the HMB.

14 . The method of claim 9 , wherein the one or more vendor specific commands from the host device are a query regarding whether access to the HMB is required, whether read or write access to the HMB is required, and whether access to a specific buffer of the HMB is required, and

wherein the method further includes determining, with the data storage device controller operating in the SD mode and executing the HMB Abstraction Protocol layer, the query from the one or more vendor specific commands.

15 . A host device, comprising:

memory; and

an electronic processor communicatively coupled to the memory,

wherein the memory includes

a Non-Volatile Memory Express (NVMe) Host Software, and

a Secure Digital (SD) Host Software with a Host Memory Buffer (HMB) Abstraction Protocol layer.

16 . The host device of claim 15 , wherein, when executing the NVMe Host Software and the SD Host Software with the HMB Abstraction Protocol layer, the electronic processor is configured to

query the NVMe Host Software for a HMB descriptor list that is a list of host memory address ranges of a HMB for exclusive use by a data storage device controller,

receive the HMB descriptor list from the NVMe Host Software,

generate one or more vendor specific commands based on the HMB descriptor list that is received, and

send the one or more vendor specific commands to the data storage device controller.

17 . The host device of claim 16 , wherein the electronic processor is further configured to receive a read operation on the HMB from the data storage device controller in response to sending the one or more vendor specific commands to the data storage device controller.

18 . The host device of claim 17 , wherein, to receive the read operation on the HMB from the data storage device controller, the electronic processor is further configured to receive a request to read of one of control data, tables, or Logical 2 Physical (L2P) mapping table information from the HMB, and wherein, when executing the NVMe Host Software and the SD Host Software with the HMB Abstraction Protocol layer, the electronic processor is further configured to:

send a read command to the HMB to read the one of the control data, the tables, or the L2P mapping table information from the HMB,

receive the one of the control data, the tables, or the L2P mapping table information that is read from the HMB, and

output the one of the control data, the tables, or the L2P mapping table information that is read to the data storage device controller.

19 . The host device of claim 16 , wherein the electronic processor is further configured to receive a write operation on the HMB from the data storage device controller in response to sending the one or more vendor specific commands to the data storage device controller.

20 . The host device of claim 19 , wherein, to receive the write operation on the HMB from the data storage device controller, the electronic processor is further configured to receive a request to write one of control data, tables, or Logical 2 Physical (L2P) mapping table information to the HMB, and

wherein the electronic processor, when executing the NVMe Host Software and the SD Host Software with the HMB Abstraction Protocol layer, is further configured to

write the one of the control data, the tables, or the L2P mapping table information to the HMB, and

output a result to the data storage device controller, the result indicating a status of the write of the one of the control data, the tables, or the L2P mapping table information to the HMB.

21 . The host device of claim 16 , wherein the one or more vendor specific commands are a second query regarding whether access to the HMB is required by the data storage device controller, whether read or write access to the HMB is required by the data storage device controller, and whether access to a specific buffer of the HMB is required by the data storage device controller.

22 . A method, comprising:

querying, with an electronic processor of a host device executing a Secure Digital (SD) Host Software with a Host Memory Buffer (HMB) Abstraction Protocol layer, a Non-Volatile Memory Express (NVMe) Host Software for a HMB descriptor list that is a list of host memory address ranges of a HMB for exclusive use by a data storage device controller;

receiving, with the electronic processor, the HMB descriptor list from the NVMe Host Software;

generating, with the electronic processor, one or more vendor specific commands based on the HMB descriptor list that is received; and

sending, with the electronic processor, the one or more vendor specific commands to the data storage device controller.

23 . The method of claim 22 , further comprising:

receiving, with the electronic processor, a read operation on the HMB from the data storage device controller in response to sending the one or more vendor specific commands to the data storage device controller.

24 . The method of claim 23 , wherein receiving the read operation on the HMB from the data storage device controller further includes receiving a request to read of one of control data, tables, or Logical 2 Physical (L2P) mapping table information from the HMB, and

wherein the method further includes

sending, with the electronic processor, a read command to the HMB to read the one of the control data, the tables, or the L2P mapping table information from the HMB,

receiving the one of the control data, the tables, or the L2P mapping table information that is read from the HMB, and

outputting the one of the control data, the tables, or the L2P mapping table information that is read to the data storage device controller.

25 . The method of claim 22 , further comprising:

receiving a write operation on the HMB from the data storage device controller in response to sending the one or more vendor specific commands to the data storage device controller.

26 . The method of claim 25 , wherein receiving the write operation on the HMB from the data storage device controller further includes receiving a request to write one of control data, tables, or Logical 2 Physical (L2P) mapping table information to the HMB, and

wherein the method further includes

writing, with the electronic processor, the one of the control data, the tables, or the L2P mapping table information to the HMB, and

outputting, with the electronic processor, a result to the data storage device controller, the result indicating a status of the write of the one of the control data, the tables, or the L2P mapping table information to the HMB.

27 . The method of claim 22 , wherein the one or more vendor specific commands are a query regarding whether access to the HMB is required by the data storage device controller, whether read or write access to the HMB is required by the data storage device controller, and whether access to a specific buffer of the HMB is required by the data storage device controller.

28 . An apparatus, comprising:

means for receiving one or more vendor specific commands from a host device; and

means for determining whether the host device has initialized a Host Memory Buffer (HMB) from the one or more vendor specific commands.

29 . An apparatus, comprising:

means for querying a Non-Volatile Memory Express (NVMe) Host Software for a Host Memory Buffer (HMB) descriptor list that is a list of host memory address ranges of a Host Memory Buffer (HMB) for exclusive use by a data storage device controller;

means for receiving the HMB descriptor list from the NVMe Host Software;

means for generating one or more vendor specific commands based on the HMB descriptor list that is received; and

means for sending the one or more vendor specific commands to the data storage device controller.

30 . A system, comprising:

a data storage device controller of claim 1 ; and

a host device including

memory; and

an electronic processor communicatively coupled to the memory,

wherein the memory includes

a Non-Volatile Memory Express (NVMe) Host Software, and

a Secure Digital (SD) Host Software with a Host Memory Buffer (HMB) Abstraction Protocol layer,

wherein the data storage device controller and the host device are multi-protocol devices,

wherein a first protocol is the Non-Volatile Memory Express (NVMe) protocol, and

wherein a second protocol is a second host interface protocol that is different from the NVMe protocol.

Assignments (3)
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: BALAKRISHNAN, RAKESH; KUMAR, YUVARAJ; ., CHANDRAMANI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055354/0578 →