PIO Write Sequences Without SFence for HPC Interconnects

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance computing (HPC) systems face performance bottlenecks due to data transfer latencies across interconnects between compute nodes, particularly in large-scale systems where latency increases as data moves down the interconnect hierarchy, limiting overall system performance.

Innovation Solution

The implementation of optimized PIO write sequences without sfences, utilizing a Host Fabric Interface (HFI) that includes a send buffer and Send DMA mechanisms to aggregate writes and reduce processor involvement, allowing for low-latency and high-throughput packet data transfer by eliminating the need for sfence instructions through reordering and reassembly of writes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sfence instructions are used to ensure memory write ordering, then data consistency is maintained, but data transfer latency increases

Engineering Contradiction:
Improvedata consistencyVSAvoiddata transfer latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a buffer as an intermediary between the processor and the network interface card. The buffer temporarily stores write operations, allowing the processor to continue executing instructions without waiting for sfence instructions to complete. The buffer then manages the ordered transmission of data to the NIC, maintaining data consistency while eliminating the latency penalty of frequent sfence instructions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary grouping and ordering of write operations in the buffer before they are transmitted to the network interface card. By pre-organizing the write sequence in the buffer, the system ensures data consistency is maintained without requiring sfence instructions at each write operation, thus reducing latency while preserving reliability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If processor directly handles each packet write, then write ordering is maintained, but processor involvement increases and throughput decreases

Engineering Contradiction:
Improvewrite orderingVSAvoidpacket transfer throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The buffer autonomously manages the ordering and transmission of packet writes without requiring continuous processor intervention. Once the processor places writes in the buffer, the buffer independently handles the sequencing and transmission to the NIC, freeing the processor to handle other tasks and increasing overall system throughput while maintaining write ordering.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The buffer serves as an intermediary that takes over the task of managing write operations from the processor. It receives writes from the processor, maintains their order, and transmits them to the NIC at optimal times, thereby reducing processor involvement and increasing throughput while preserving write ordering guarantees.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If write combining buffer is flushed frequently, then data consistency is ensured, but transfer efficiency decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidtransfer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of flushing the write combining buffer frequently, the patent implements periodic flushing based on buffer fullness or specific synchronization points. This approach maintains data consistency by flushing at appropriate intervals rather than after every write, thereby improving transfer efficiency while still ensuring data consistency when needed.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system performs preliminary assessment of buffer state and transmission conditions before flushing. By determining the optimal flush timing in advance based on buffer contents and NIC readiness, the system ensures data consistency is maintained while minimizing the frequency of flush operations, thereby improving transfer efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3161649B1Sending packets using optimized PIO write sequences without sfences
Publication Date: 2019.07.24 INTEL CORP
  • EP3161649B1 patent drawingFigure 1
  • EP3161649B1 patent drawingFigure 2
  • EP3161649B1 patent drawingFigure 3

AI summary

Method and apparatus for sending packets using optimized PIO write sequences without sfences. Sequences of Programmed Input/Output (PIO) write instructions to write packet data to a PIO send memory are received at a processor supporting out of order execution. The PIO write instructions are received in an original order and executed out of order, with each PIO write instruction writing a store unit of data to a store buffer or a store block of data to the store buffer. Logic is provided for the store buffer to detect when store blocks are filled, resulting in the data in those store blocks being drained via PCIe posted writes that are written to send blocks in the PIO send memory at addresses defined by the PIO write instructions. Logic is employed for detecting the fill size of packets and when a packet's send blocks have been filled, enabling the packet data to be eligible for egress.