IP Library › Granted Patent US 12,204,471
Granted Patent B2
US 12,204,471 · App. 18/243,493 · Granted Jan 21, 2025

Shared memory for intelligent network interface cards

Inventors: Francesc Guim Bernat (Barcelona, ES); Daniel Rivas Barragan (Cologne, DE); Kshitij A. Doshi (Tempe, AZ); Mark A. Schmisseur (Phoenix, AZ)
Assignee: Intel Corporation
G06F13/1663C07F15/0033G06F12/082G06F12/0822G06F12/0831G06F12/1018H04L12/4625H04L49/9068G06F2212/1024G06F2212/621
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 12,204,471
App. No.
18/243,493
Granted
Jan 21, 2025
Kind
B2
Abstract

In an example, there is disclosed a host-fabric interface (HFI), including: an interconnect interface to communicatively couple the HFI to an interconnect; a network interface to communicatively couple the HFI to a network; network interface logic to provide communication between the interconnect and the network; a coprocessor configured to provide an offloaded function for the network; a memory; and a caching agent configured to: designate a region of the memory as a shared memory between the HFI and a core communicatively coupled to the HFI via the interconnect; receive a memory operation directed to the shared memory; and issue a memory instruction to the memory according to the memory operation.

Claims (48)

1. An apparatus comprising:

a host interface to communicatively couple to a host central processing unit (CPU);

a processor;

a memory arranged to maintain a memory region accessible to the processor and the host CPU; and

circuitry to:

receive, via a dedicated channel routed through the host interface, a first request message that indicates the host CPU requests ownership of a cache line mapped to the memory region accessible to the processor and the host CPU;

invalidate data stored to the cache line;

cause a first response message to be sent to the host CPU via the dedicated channel, the first response message to indicate ownership of the cache line by the host CPU;

receive, via the dedicated channel, a second request message with data from the host CPU that indicates the host CPU requests to write the data included with the second request message to the cache line;

cause the data included in the second request message to be written to the cache line; and

cause a second response message to be sent to the host CPU via the dedicated channel, the second response message to indicate that the data included in the second request message has been written to the cache line.

2. The apparatus of claim 1 , further comprising the circuitry to:

generate a third request message that indicates the processor requests ownership of the cache line;

cause the third request message to be sent via the dedicated channel to the host CPU; and

receive a third response message via the dedicated channel, the third response message to indicate ownership of the cache line by the processor.

3. The apparatus of claim 1 , wherein the host interface comprises a host Peripheral Component Interconnect express (PCIe) interface.

4. The apparatus of claim 1 , wherein the circuitry comprises coherency agent (CA) circuitry arranged to maintain cache coherency between the processor and host CPU for cache lines mapped to the memory region accessible to the processor and the host CPU.

5. The apparatus of claim 4 , wherein the CA circuitry implements a modified/exclusive/shared/invalid (MESI) cache coherency protocol to facilitate maintaining cache coherency.

6. The apparatus of claim 1 , wherein the dedicated channel comprises a dedicated snoop channel routed through the host interface.

7. The apparatus of claim 1 , wherein the memory region is also accessible to a network interface controller that is communicatively coupled with the host CPU.

8. A method implemented at a device, the method comprising:

receiving, via a dedicated channel routed through a host interface communicatively couple to a host central processing unit (CPU), a first request message that indicates the host CPU requests ownership of a cache line mapped to a memory region of a memory maintained at the device that is accessible to a processor at the device and the host CPU;

invalidating data stored to the cache line;

causing a first response message to be sent to the host CPU via the dedicated channel, the first response message to indicate ownership of the cache line by the host CPU;

receiving, via the dedicated channel, a second request message with data from the host CPU that indicates the host CPU requests to write the data included with the second request message with data to the cache line;

causing the data included in the second request message to be written to the cache line; and

causing a second response message to be sent to the host CPU via the dedicated channel, the second response message to indicate that the data included in the second request message has been written to the cache line.

9. The method of claim 8 , further comprising:

generating a third request message that indicates the processor requests ownership of the cache line;

causing the third request message to be sent via the dedicated channel to the host CPU; and

receiving a third response message via the dedicated channel, the third response message to indicate ownership of the cache line by the processor.

10. The method of claim 8 , wherein the host interface comprises a host Peripheral Component Interconnect express (PCIe) interface and the dedicated channel is a dedicated snoop channel routed through the host interface.

11. One or more tangible, non-transitory computer readable storage mediums comprising a plurality of instructions that in response to being executed by a circuitry at a device cause the circuitry to:

receive, via a dedicated channel routed through a host interface communicatively couple to a host central processing unit (CPU), a first request message that indicates the host CPU requests ownership of a cache line mapped to a memory region of a memory maintained at the device that is accessible to a processor at the device and the host CPU;

invalidate data stored to the cache line;

cause a first response message to be sent to the host CPU via the dedicated channel, the first response message to indicate ownership of the cache line by the host CPU;

receive, via the dedicated channel, a second request message with data from the host CPU that indicates the host CPU requests to write the data included with the second request message to the cache line;

cause the data included in the second request message to be written to the cache line; and

cause a second response message to be sent to the host CPU via the dedicated channel, the second response message to indicate that the data included in the second request message has been written to the cache line.

12. The One or more tangible, non-transitory computer readable storage mediums of claim 11 , further comprising the instructions to cause the circuitry to:

generate a third request message that indicates the processor requests ownership of the cache line;

cause the third request message to be sent via the dedicated channel to the host CPU; and

receive a third response message via the dedicated channel, the third response message to indicate ownership of the cache line by the processor.

13. The One or more tangible, non-transitory computer readable storage mediums of claim 11 , wherein the host interface comprises a host Peripheral Component Interconnect express (PCIe) interface.

14. The One or more tangible, non-transitory computer readable storage mediums of claim 11 , wherein the circuitry comprises coherency agent (CA) circuitry arranged to maintain cache coherency between the processor and host CPU for cache lines mapped to the memory region accessible to the processor and the host CPU.

15. The One or more tangible, non-transitory computer readable storage mediums of claim 14 , wherein the CA circuitry implements a modified/exclusive/shared/invalid (MESI) cache coherency protocol to facilitate maintaining cache coherency.

16. The One or more tangible, non-transitory computer readable storage mediums of claim 11 , wherein the dedicated channel comprises a dedicated snoop channel routed through the host interface.

17. The One or more tangible, non-transitory computer readable storage mediums of claim 11 , wherein the memory region is also accessible to a network interface controller that is communicatively coupled with the host CPU.

Continuity (3)
Continuation 17492928 · Oct 4, 2021
Continuation 15475216 · Mar 31, 2017
Related Publication 20240045814A1 · Feb 8, 2024
References Cited (29)
US 6148377A · Carter et al. · 2000 [cited by applicant]
US 6615319B2 · Khare · 2003 [cited by examiner]
US 7826614B1 · Kaniz et al. · 2010 [cited by applicant]
US 8375184B2 · Kumar · 2013 [cited by examiner]
US 10261912B2 · Coppola et al. · 2019 [cited by applicant]
US 20020087804A1 · Khare et al. · 2002 [cited by applicant]
US 20070266179A1 · Chavan et al. · 2007 [cited by applicant]
US 20090198918A1 · Arimilli et al. · 2009 [cited by applicant]
US 20100095079A1 · Kang · 2010 [cited by applicant]
US 20120102266A1 · Olsson et al. · 2012 [cited by applicant]
US 20130339609A1 · Bronson · 2013 [cited by examiner]
US 20150127907A1 · Fahim et al. · 2015 [cited by applicant]
US 20160140039A1 · Sodani et al. · 2016 [cited by applicant]
US 20160170877A1 · Patsilaras et al. · 2016 [cited by applicant]
US 20160337202A1 · Ben-Itzhak et al. · 2016 [cited by applicant]
US 20170024352A1 · Lavasani · 2017 [cited by applicant]
WO 2004025477A2 · 2004 [cited by applicant]
Advisory Action for U.S. Appl. No. 15/475,216, Mailed Dec. 21, 2020, 3 pages. [cited by applicant]
Extended European Search Report in European Patent Office Application No. 18154434.7 dated Jul. 24, 2018, 9 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 15/475,216, Mailed Oct. 8, 2020, 16 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 17/492,928, Mailed Apr. 12, 2023, 18 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/475,216, Mailed Jun. 28, 2021, 7 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/492,928, Mailed Jul. 7, 2023, 10 pages. [cited by applicant]
Office Action for U.S. Appl. No. 15/475,216, Mailed Apr. 24, 2020, 14 pages. [cited by applicant]
Office Action for U.S. Appl. No. 15/475,216, Mailed Feb. 10, 2021, 16 pages. [cited by applicant]
Office Action for U.S. Appl. No. 17/492,928, Mailed Nov. 10, 2022, 16 pages. [cited by applicant]
First Chinese Office Action of P.R. China State Intellectual Property Office for Patent Application No. 201810167848.1, Mailed Feb. 5, 2024, 9 pages. [cited by applicant]
Second Chinese Office Action of P.R. China State Intellectual Property Office for Patent Application No. 201810167848.1, Mailed Jul. 23, 2024, 6 pages. [cited by applicant]
Third Chinese Office Action of P.R. China State Intellectual Property Office for Patent Application No. 201810167848.1, Mailed Sep. 27, 2024, 8 pages. [cited by applicant]