IP Library › Granted Patent US 10,970,238
Granted Patent B2
US 10,970,238 · App. 16/566,865 · Granted Apr 6, 2021

Non-posted write transactions for a computer bus

Inventors: Rajesh M. Sankaran (Portland, OR); David J. Harriman (Portland, OR); Sean O. Stalley (Hillsboro, OR); Rupin H. Vakharwala (Hillsboro, OR); Ishwar Agarwal (Portland, OR); Pratik M. Marolia (Hillsboro, OR); Stephen R. Van Doren (Portland, OR)
Assignee: Intel Corporation
G06F13/1668G06F13/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 10,970,238
App. No.
16/566,865
Granted
Apr 6, 2021
Kind
B2
Abstract

Systems and devices can include a controller and a command queue to buffer incoming write requests into the device. The controller can receive, from a client across a link, a non-posted write request (e.g., a deferred memory write (DMWr) request) in a transaction layer packet (TLP) to the command queue; determine that the command queue can accept the DMWr request; identify, from the TLP, a successful completion (SC) message that indicates that the DMWr request was accepted into the command queue; and transmit, to the client across the link, the SC message that indicates that the DMWr request was accepted into the command queue. The controller can receive a second DMWr request in a second TLP; determine that the command queue is full; and transmit a memory request retry status (MRS) message to be transmitted to the client in response to the command queue being full.

Claims (88)

1. An apparatus comprising:

a controller;

a non-volatile memory; and

a command queue to buffer incoming write requests into the non-volatile memory from multiple clients;

the controller to:

receive, from a client across a link, a non-posted write request in a transaction layer packet (TLP) to the command queue, wherein the non-posted write request comprises a Deferrable Memory Write (DMWr) request message, wherein the TLP comprises a type field that indicates that the non-posted write request is a DMWr request, the type field comprising a [4:0] b encoding of 11011;

determine that the command queue can accept the non-posted write request;

generate a completion message;

set a bit in a completion status field of the completion message to a value that indicates a successful completion (SC) that indicates that the non-posted write request was accepted into the command queue; and

transmit, to the client across the link, the completion message with the SC that indicates that the non-posted write request was accepted into the command queue.

2. The apparatus of claim 1 , the controller to:

receive a second non-posted write request in a second TLP;

determine that the command queue is full;

generate a completion message;

set a bit in a completion status field of the completion message to a value that indicates a memory request retry status (MRS) that indicates that the command queue is full; and

transmit the completion message that includes the MRS to the client across the link;

wherein the encoding for the MRS comprises a [2:0] b encoding of 101.

3. The apparatus of claim 2 , the controller to:

receive a third TLP comprising a retry of the second non-posted write request;

determine that the command queue can accept the second non-posted write request;

generate a completion message;

set a bit in a completion status field of the completion message to a value that indicates an SC that indicates that the non-posted write request was accepted into the command queue; and

transmit the completion message with the SC to the client across the link.

4. The apparatus of claim 1 , wherein the apparatus comprises an input/output device.

5. The apparatus of claim 1 , wherein the TLP comprises a completion field that indicates completion without data for an acknowledged memory write completion.

6. The apparatus of claim 1 , wherein the link is based on a Peripheral Component Interconnect Express (PCIe) protocol.

7. The apparatus of claim 1 , wherein the completion message comprises a [2:0] b encoding of 000 to indicate the SC.

8. The apparatus of claim 1 , wherein apparatus comprises a hardware accelerator.

9. A system comprising:

a host device comprising a port residing at the host device, the port to transmit a transaction layer packet (TLP) comprising a non-posted write request to the I/O device across a link, wherein the non-posted write request comprises a Deferrable Memory Write (DMWr) request message, wherein the TLP comprises a type field that indicates that the non-posted write request is a DMWr request, the type field comprising a [4:0] b encoding of 11011; and

an input/output (I/O) device coupled to the port across the link, the I/O device to:

receive the TLP comprising the non-posted write request from across the link,

determine that a command queue has space available to accept the non-posted write request,

generate a completion message;

set a completion status of the completion message to Successful Completion (SC) that indicates that the non-posted write request was accepted into the command queue, and

transmit the completion message to the port;

the port to transmit the SC message to a link partner of the host device.

10. The system of claim 9 , wherein the non-posted write request is a first non-posted write request;

the port to transmit a second TLP comprising a second non-posted write request to the I/O device;

the I/O device to:

receive the second non-posted write request,

determine that the command queue at the I/O device is full,

generate a completion message with a completion status bits set to memory request retry status (MRS), the MRS encoded as [2:0] b having a value of 101 and

transmit to the port across the link the completion message;

the port to forward the message that indicates the retry of the non-posted write request to a link partner of the I/O device.

11. The system of claim 10 , wherein the completion message comprises a [2:0] b encoding of 000 to indicate the SC.

12. The system of claim 9 , wherein the non-posted write request is a first non-posted write request.

13. The system of claim 12 , wherein the port is a first port, the host device comprising a second port, the second port comprising an egress blocking enabled, the second port to:

receive a second non-posted write request from a link partner; and

transmit a completion message that comprises a status of unsupported request status identifier.

14. The system of claim 12 , wherein the I/O device is to:

receive a second non-posted write request, the second non-posted write request comprising a transaction layer packet that is corrupted; and

transmit a completion message that includes an unsupported request status indicator to the first port.

15. The system of claim 12 , wherein the I/O device is to:

receive a second non-posted write request;

determine that the second non-posted write request comprises an uncorrectable error; and

transmit a completer abort message to the port.

16. The system of claim 12 , wherein the I/O device is to:

receive a second non-posted write request;

determine that the second non-posted write request comprises an unsupported type or operand; and

transmit a completion message with an unsupported request status indicator to the port.

17. The system of claim 9 , wherein the I/O device comprises an accelerator device.

18. The system of claim 9 , wherein the command queue comprises a shared work queue (SWQ) and the non-posted write request is received at the SWQ of the I/O device.

19. The system of claim 9 , wherein the link is based on a Peripheral Component Interconnect Express (PCIe) protocol.

20. A computer-implemented method comprising:

receiving, at an input/output (I/O) device from a client across a link, a non-posted write request in a transaction layer packet (TLP) to the command queue, wherein the non-posted write request comprises an Deferrable Memory Write (DMWr) request message, wherein the TLP comprises a type field that indicates that the non-posted write request is a DMWr request, the type field comprising a [4:0] b encoding of 11011;

determining, by a controller of the I/O device, that the command queue can accept the non-posted write request;

generating a completion message with a completion status bit set to successful completion (SC); and

transmitting, to the client across the link, the completion message.

21. The method of claim 20 , further comprising:

receiving, at the I/O device, a second non-posted write request in a second TLP;

determining, by a controller of the I/O device, that the command queue is full;

generating a completion message with a completion status bit set to memory request retry status (MRS); and

transmitting, to the client across the link, the completion message.

22. The method of claim 21 , further comprising:

receiving a third TLP comprising a retry of the second non-posted write request;

determining that the command queue can accept the second non-posted write request;

generating a completion message with a completion status bit set to SC; and

transmitting, to the client across the link, the completion message.

23. The method of claim 20 , further comprising:

receiving a second non-posted write request;

determining that the second non-posted write request comprises an uncorrectable error; and

transmit a completer abort message to the link partner.

24. The method of claim 20 , further comprising:

receiving a second non-posted write request;

determining that the non-posted write request comprises an unsupported type or operand; and

transmitting a completion message with an unsupported request status indicator to the link partner.

25. The method of claim 20 , wherein the completion message comprises a [2:0] b encoding of 000 to indicate the SC.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2019
From: SANKARAN, RAJESH M.; HARRIMAN, DAVID J.; STALLEY, SEAN O.; VAKHARWALA, RUPIN H.; AGARWAL, ISHWAR; MAROLIA, PRATIK M.; VAN DOREN, STEPHEN R.
To: INTEL CORPORATION
Reel/Frame 050333/0861 →
Continuity (2)
Provisional Application 62836288 · Apr 19, 2019
Related Publication 20200004703A1 · Jan 2, 2020
Cited By (3)
US 12,197,352 US 12,625,827 US 12,645,395