IP Library Granted Patent US 11,200,180
Granted Patent B2
US 11,200,180 · App. 16/778,177 · Granted Dec 14, 2021

NVMe SGL bit bucket transfers

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F13/1668G06F3/0626G06F3/0647G06F3/0656G06F3/0659G06F3/0679G06F13/4282G06F2213/0026
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,200,180
App. No.
16/778,177
Granted
Dec 14, 2021
Kind
B2
Abstract

Embodiments generally relate to handling of NVMe scatter gather list bit bucket transfers by a data storage device. The data storage device transfers the data associated with the bit bucket transfers to a host or to a controller memory buffer of the data storage device. The data storage device can transfer the data associated with the bit bucket transfers to the host by modifying transaction layer packets (TLPs) to indicate to the host to ignore the data payload of the TLPs.

Claims (35)

1. A process of a device-to-host transfer of data, the process comprising:

receiving a transfer command of data programmed to non-volatile memory, wherein the transfer command comprises using a scatter gather list (SGL) and including one or more bit bucket transfers;

fetching a SGL descriptor associated with the data;

determining that the SGL descriptor is a SGL bit bucket descriptor;

generating a modified transaction layer packet (TLP) when the SGL descriptor is determined to be the SGL bit bucket descriptor, the modified TLP having an indication to a host to ignore a data payload of the modified TLP; and

transferring the modified TLP to the host.

2. The process of claim 1 , wherein the modified TLP indicates byte enables with cleared entries for a last byte enabled (BE) field and for a first BE field as the indication to the host to ignore the data payload of the modified TLP.

3. The process of claim 1 , wherein the modified TLP comprises a set entry for an EP bit as the indication to the host to ignore the data payload of the modified TLP.

4. The process of claim 1 , wherein the modified TLP comprises a replaced address to a host memory buffer of the host for an address field as the indication to the host to ignore the data payload of the modified TLP.

5. The process of claim 1 , wherein the transfer command is a read command and wherein the modified TLP is a modified memory write request TLP.

6. The process of claim 5 , wherein the read command is a NVM Express read command and wherein the modified memory write request TLP is a Peripheral Component Interface Express modified memory write request TLP.

7. A data storage device, comprising:

a host interface operable to interface with a host;

a non-volatile memory; and

a storage device controller, the storage device controller operable to:

receive a transfer command of a data written to non-volatile memory, the transfer command using a scatter gather list (SGL) and including one or more bit bucket transfers;

fetch an SGL descriptor associated with the data;

determine whether the SGL descriptor is a SGL bit bucket descriptor or a SGL data block descriptor;

generate a modified transaction layer packet (TLP) when the SGL descriptor is determined to be the SGL bit bucket descriptor, the modified TLP having an indication to the host to ignore a data payload of the modified TLP; and

transfer the modified TLP to the host.

8. The data storage device of claim 7 , wherein the modified TLP indicates byte enables with cleared entries for a last byte enabled (BE) field and for a first BE field as the indication to the host to ignore the data payload of the modified TLP.

9. The data storage device of claim 7 , wherein the modified TLP comprises a set entry for an EP bit as the indication to the host to ignore the data payload of the modified TLP.

10. The data storage device of claim 7 , wherein the modified TLP comprises a replaced address to a host memory buffer of the host for an address field as the indication to the host to ignore the data payload of the modified TLP.

11. The data storage device of claim 7 , wherein the storage device controller is further operable to transfer an unmodified TLP to the host when the SGL descriptor is determined to be the SGL data block descriptor.

12. The data storage device of claim 7 , wherein the transfer command is a read command and wherein the modified TLP is a modified memory write request TLP.

13. The data storage device of claim 7 , wherein the host interface is configured to operate under a Peripheral Component Interface Express (PCIe) interface protocol and wherein the data storage device is configured to communicate with the host under a NVM Express protocol over the PCIe interface protocol.

14. A data storage device, comprising:

a host Peripheral Component Interface Express (PCIe) interface operable to interface with a device PCIe interface of a host;

a non-volatile memory; and

a NVM Express (NVMe) storage device controller means for transferring a data in response to a device-to-host transfer request using a scatter gather list (SGL) and involving one or more bit bucket transfers to a destination selected from a group consisting of a host memory buffer of the host, a controller memory buffer of the NVMe storage device controller means, and the device PCIe interface of the host, wherein the data comprises a modified memory write request transaction layer packet (TLP), and wherein the modified memory write request TLP comprises an indication to the host to ignore a data payload of the modified memory write request TLP.

15. The data storage device of claim 14 , wherein the NVMe storage device controller means is for transferring the data in response to the device-to-host transfer involving the one or more bit bucket transfers to the destination of the host memory buffer the host by transferring to the host the modified memory write request TLP with an replaced address to the host memory buffer for an address field.

16. The data storage device of claim 14 , wherein the NVMe storage device controller means is for transferring the data in response to the device-to-host transfer involving the one or more bit bucket transfers to the destination of the controller memory buffer of the NVMe storage device controller means.

17. The data storage device of claim 14 , wherein the NVMe storage device controller means is for transferring the data in response to the device-to-host transfer involving the one or more bit bucket transfers to the destination of the device PCIe interface of the host by transferring to the host the modified memory write request TLP with a zero-write byte enable.

18. The data storage device of claim 14 , wherein the NVMe storage device controller means is for transferring the data in response to the device-to-host transfer involving the one or more bit bucket transfers to the destination of the device PCIe interface of the host by transferring to the host a poisoned memory write request TLP.

19. The data storage device of claim 14 , wherein the NVMe storage device controller means is further for transferring the data in response to the device-to-host transfer involving one or more data block transfer by transferring to the host an unmodified memory write request TLP to a host memory of the host.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2020
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052538/0408 →
Cited By (1)
US 12,346,257