IP Library › Granted Patent US 10,061,719
Granted Patent B2
US 10,061,719 · App. 14/583,147 · Granted Aug 28, 2018

Packed write completions

Inventors: Brian S. Morris (Santa Clara, CA); Jeffrey C. Swanson (Sunnyvale, CA); Bill Nale (Livermore, CA); Robert G. Blankenship (Tacoma, WA); Jeff Willey (Timnath, CO); Eric L. Hendrickson (Downey, CA)
Assignee: Intel Corporation
G06F13/1663G06F13/1673G11C5/04G11C7/10
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,061,719
App. No.
14/583,147
Granted
Aug 28, 2018
Kind
B2
Abstract

A plurality of completed writes to memory are identified corresponding to a plurality of write requests from a host device received over a buffered memory interface. A completion packet is sent to the host device that includes a plurality of write completions to correspond to the plurality of completed writes.

Claims (35)

1. An apparatus comprising:

memory buffer logic to:

identify a plurality of completed writes to memory, wherein the plurality of completed writes are to correspond to a plurality of write requests from a host device received over a buffered memory interface, and each of the plurality of write requests has a corresponding transaction identifier; and

send a completion to the host device, wherein the completion is to comprise a plurality of completion fields, at least a subset of the plurality of completion fields are to be encoded with a respective one of a plurality of write completions to correspond to the plurality of completed writes, the completion is to further comprise a completion count field to indicate an amount of completions corresponding to the plurality of write completions, the completion is to be further encoded with the transaction identifiers corresponding to each of the plurality of write completions, the completion comprises a single link layer flow control unit (flit), and the flit comprises a multi-slot flit;

wherein the multi-slot flit comprises at least three slots, two or more of the plurality of completion fields are to be included in a first one of the at least three slots, two or more of the plurality of completion fields are to be included in a second one of the at least three slots, and at least one of the at least three slots is to be left unused.

2. The apparatus of claim 1 , wherein the memory buffer logic is further to receive the plurality of write requests and cause corresponding data to be written to memory.

3. The apparatus of claim 2 , wherein the plurality of write requests are to be received from the host device over a buffered memory interface.

4. The apparatus of claim 1 , wherein at least a particular one of the write completions is to correspond to an invalidation request, the invalidation request is to update a directory state, and the particular write completion is to indicate directory information corresponding to the invalidation request.

5. The apparatus of claim 1 , wherein the amount of completions is constrained by a maximum number of completions that can be packed in the completion.

6. The apparatus of claim 5 , wherein the maximum number of completions is at least nine.

7. The apparatus of claim 5 , wherein the plurality of write completions comprises less than the maximum number and the completion is to be sent with less than the maximum number of write completions.

8. The apparatus of claim 1 , wherein the memory buffer logic is to comprise a memory controller.

9. The apparatus of claim 1 , wherein at least a first one the plurality of write requests is a first type of write request and at least a second one of the plurality of write requests is a second type of write requests.

10. The apparatus of claim 9 , wherein the first and second types of write requests are included in a plurality of write request types, and the plurality of write request types comprise normal memory write requests, memory write partial requests, memory write flush flow requests, and invalidate requests.

11. A buffer chip comprising:

a memory controller to:

access data in memory responsive to requests received from a separate host device, wherein the requests are to comprise a plurality of write requests, and each of the plurality of write requests has a corresponding transaction identifier;

complete writes to memory associated with the plurality of write requests;

generate a completion to comprise a plurality of completion fields, at least a subset of the plurality of completion fields are to be encoded with a respective one of a plurality of write completions for the completed writes to memory, wherein the completion is to further comprise a completion count field to indicate an amount of completions corresponding to the plurality of write completions, the completion is to be further encoded with the transaction identifiers corresponding to each of the plurality of write, the completion comprises a single link layer flow control unit (flit), and the flit comprises a multi-slot flit; and

send the completion to the host device;

wherein the multi-slot flit comprises at least three slots, two or more of the plurality of completion fields are to be included in a first one of the at least three slots, two or more of the plurality of completion fields are to be included in a second one of the at least three slots, and at least one of the at least three slots is to be left unused.

12. The buffer chip of claim 11 , further comprising a queue to queue the write completions prior to generating the completion.

13. At least one non-transitory machine accessible storage medium having code stored thereon, the code when executed on a machine, causes the machine to:

identify a plurality of completed writes to memory, wherein the plurality of completed writes are to correspond to a plurality of write requests from a host device received over a buffered memory interface, and each of the plurality of write requests has a corresponding transaction identifier; and

send a completion to the host device, wherein the completion is to comprise a plurality of completion fields, at least a subset of the plurality of completion fields are to be encoded with a respective one of a plurality of write completions to correspond to the plurality of completed writes, the completion is to further comprise a completion count field to indicate an amount of completions corresponding to the plurality of write completions, the completion is to be further encoded with the transaction identifiers corresponding to each of the plurality of write completions, the completion comprises a single link layer flow control unit (flit), and the flit comprises a multi-slot flit;

wherein the multi-slot flit comprises at least three slots, two or more of the plurality of completion fields are to be included in a first one of the at least three slots, two or more of the plurality of completion fields are to be included in a second one of the at least three slots, and at least one of the at least three slots is to be left unused.

14. A system comprising:

a buffer chip;

memory to be accessed through the buffer chip; and

a processor block coupled to the buffer chip by a memory access link,

wherein the buffer chip comprises logic to:

identify a plurality of completed writes to memory, wherein the plurality of completed writes are to correspond to a plurality of write requests from the processor block received over the memory access link, and each of the plurality of write requests has a corresponding transaction identifier; and

send a completion to the processor block over the memory access link, wherein the completion is to comprise a plurality of completion fields, at least a subset of the plurality of completion fields are to be encoded with a respective one of a plurality of write completions to correspond to the plurality of completed writes, the completion is to further comprise a completion count field to indicate an amount of completions corresponding to the plurality of write completions, the completion is to be further encoded with the transaction identifiers corresponding to each of the plurality of write completions, the completion comprises a single link layer flow control unit (flit), and the flit comprises a multi-slot flit;

wherein the multi-slot flit comprises at least three slots, two or more of the plurality of completion fields are to be included in a first one of the at least three slots, two or more of the plurality of completion fields are to be included in a second one of the at least three slots, and at least one of the at least three slots Is to be left unused.

15. The system of claim 14 , wherein the processor block is to interface with one or more other devices over a general purpose input/output (GPIO) interconnect link, wherein the memory access link is different from the GPIO interconnect link, and a physical layer of memory access link is based on a physical layer of the GPIO interconnect link.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2015
From: MORRIS, BRIAN S.; SWANSON, JEFFREY C.; NALE, BILL; BLANKENSHIP, ROBERT G.; WILLEY, JEFF; HENDRICKSON, ERIC L.
To: INTEL CORPORATION
Reel/Frame 035443/0268 →
Continuity (1)
Related Publication 20160188500A1 · Jun 30, 2016