IP Library › Granted Patent US 10,817,425
Granted Patent B2
US 10,817,425 · App. 14/583,389 · Granted Oct 27, 2020

Hardware/software co-optimization to improve performance and energy for inter-VM communication for NFVs and other producer-consumer workloads

Inventors: Ren Wang (Portland, OR); Andrew J. Herdrich (Hillsboro, OR); Yen-cheng Liu (Portland, OR); Herbert H. Hum (Portland, OR); Jong Soo Park (Santa Clara, CA); Christopher J. Hughes (Santa Clara, CA); Namakkal N. Venkatesan (Hillsboro, OR); Adrian C. Moga (Portland, OR); Aamer Jaleel (Northborough, MA); Zeshan A. Chishti (Hillsboro, OR); Mesut A. Ergin (Portland, OR); Jr-shian Tsai (Portland, OR); Alexander W. Min (Portland, OR); Tsung-yuan C. Tai (Portland, OR); Christian Maciocco (Portland, OR); Rajesh Sankaran (Portland, OR)
Assignee: Intel Corporation
G06F12/0842G06F9/45558G06F12/0813G06F12/0833G06F12/0893G06F12/109G06F2009/45595G06F2212/1021G06F2212/283G06F2212/62Y02D10/13
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,817,425
App. No.
14/583,389
Granted
Oct 27, 2020
Kind
B2
Abstract

Methods and apparatus implementing Hardware/Software co-optimization to improve performance and energy for inter-VM communication for NFVs and other producer-consumer workloads. The apparatus include multi-core processors with multi-level cache hierarchies including and L1 and L2 cache for each core and a shared last-level cache (LLC). One or more machine-level instructions are provided for proactively demoting cachelines from lower cache levels to higher cache levels, including demoting cachelines from L1/L2 caches to an LLC. Techniques are also provided for implementing hardware/software co-optimization in multi-socket NUMA architecture system, wherein cachelines may be selectively demoted and pushed to an LLC in a remote socket. In addition, techniques are disclosure for implementing early snooping in multi-socket systems to reduce latency when accessing cachelines on remote sockets.

Claims (29)

1. A processor, configured to be implemented in a multi-socketed computer system employing a Non-Uniform Memory Access (NUMA) architecture in which multiple instances of the processor are to be installed, each socket including a processor and local system memory, comprising:

a plurality of cores, each having at least one associated cache occupying a respective level in a cache hierarchy;

a last level cache (LLC), communicatively coupled to the plurality of cores;

a memory controller, communicatively coupled to the plurality of cores, configured to support access to external system memory when the processor is installed in the computer system; and

a socket-to-socket interconnect interface configured to facilitate communication between processors installed in different sockets;

wherein each of the caches associated with a core, and the LLC include a plurality of cacheline slots for storing cacheline data, and wherein the processor is further is configured to support a machine instruction that when executed by a core on a processor operating as a local socket causes the processor to:

demote a cacheline to the LLC cache on the local socket; and

push a copy of the cacheline to an LLC of a processor installed in a remote socket, wherein the cacheline is pushed via the socket-to-socket interconnect interface.

2. The processor of claim 1 , wherein execution of the machine instruction causes a write-back of the cacheline to system memory.

3. The processor of claim 1 , wherein the processor includes a third level (L3) cache and a fourth level (L4) cache comprising the LLC.

4. The processor of claim 1 , wherein execution of the instruction causes the processor to release ownership of the cacheline in the processor operating as the local socket.

5. The processor of claim 1 , wherein execution of the instruction causes the processor to mark the cacheline as (S)hared.

6. The processor of claim 1 , wherein execution of the instruction causes the processor to:

write-back the cacheline from the LLC on the local socket to system memory on the local socket; and

release the cacheline in the LLC on the local socket.

7. The processor of claim 1 , wherein the processor is further configured to:

receive a cacheline that has been pushed from a processor operating in a remote socket via the socket-to-socket interconnect interface; and

store the cacheline in its LLC.

8. A method implemented on a processor including a plurality of cores, each having at least one associated cache occupying a respective layer in a cache hierarchy, and a last level cache (LLC) that is shared among the plurality of cores, the processor further including a memory controller to access system memory when the processor is installed in a multi-socketed computer system employing a Non-Uniform Memory Access (NUMA) architecture in which multiple instances of the processor are installed, each socket including a processor and local system memory, and the processor further includes a socket-to-socket interconnect interface configured to facilitate communication between processors installed in different sockets, the method comprising:

demoting a cacheline to the LLC cache on the local socket via execution of an associated cacheline demotion machine instruction on a processor core; and

pushing a copy of the cacheline to an LLC of a processor installed in a remote socket, wherein the cacheline is pushed via the socket-to-socket interconnect interface.

9. The method of claim 8 , wherein execution of the machine instruction causes a write-back of the cacheline to system memory.

10. The method of claim 8 , further comprising releasing ownership of the cacheline in the processor operating as the local socket.

11. The method of claim 8 , further comprising:

performing a write-back of the cacheline from the LLC on the local socket to system memory on the local socket; and

releasing the cacheline in the LLC on the local socket.

12. The method of claim 8 , further comprising:

receiving a cacheline that has been pushed from a processor operating in a remote socket via the socket-to-socket interconnect interface; and

storing the cacheline in the LLC of the processor to which the cacheline is pushed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2015
From: WANG, REN; HERDRICH, ANDREW J.; LIU, YEN-CHENG; HUM, HERBERT H.; PARK, JONG SOO; HUGHES, CHRISTOPHER J.; VENKATESAN, NAMAKKAL N.; MOGA, ADRIAN C.; JALEEL, AAMER; CHISHTI, ZESHAN A.; ERGIN, MESUT A.; TSAI, JR-SHIAN; MIN, ALEXANDER W.; TAI, TSUNG-YUAN C.; MACIOCCO, CHRISTIAN; SANKARAN, RAJESH
To: INTEL CORPORATION
Reel/Frame 035661/0463 →
Continuity (1)
Related Publication 20160188474A1 · Jun 30, 2016