Software-Assisted NIC Packet Routing for Protocol Flexibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network interface controllers (NICs) implemented entirely in hardware have limited configurability, leading to outdated functionality due to inflexible handling of updated network interface protocols and complex operations, which affects performance and compatibility.
Innovation Solution
Integrate a network interface controller (NIC) with both hardware logic circuits for frequent and simple operations and software-assisted processing for less frequent or complex operations, allowing for higher performance and forward compatibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If NIC is implemented entirely in hardware logic circuits, then processing speed and performance are improved, but adaptability to new protocols and configurability deteriorate
Solution Approach 1:
The NIC functionality is segmented into two distinct parts: hardware logic circuits for commonly used operations and software for less frequent or complex operations. This segmentation allows the hardware to handle routine data transfers at high speed while the software provides flexibility for protocol updates and complex packet types, resolving the contradiction between performance and adaptability.
Solution Approach 2:
The system dynamically selects between hardware and software processing based on the packet type. Frequently occurring packet types are handled by fixed hardware logic for optimal performance, while less frequent or new packet types are routed to software for flexible handling. This dynamic approach allows the system to maintain high performance for common operations while adapting to new protocols when needed.
2Reliability
If NIC uses fixed hardware logic circuits, then operational reliability is improved, but flexibility for complex operations deteriorates
Solution Approach 1:
The NIC functionality is segmented into two distinct parts: hardware logic circuits for commonly used operations and software for less frequent or complex operations. This segmentation allows the hardware to handle routine data transfers at high speed while the software provides flexibility for protocol updates and complex packet types, resolving the contradiction between performance and adaptability.
Solution Approach 2:
A packet type identification mechanism acts as an intermediary between incoming data packets and the processing units. This intermediary classifies packets and routes them to appropriate handlers - hardware for simple operations and software for complex ones - ensuring both reliable hardware processing and flexible software handling when needed.
3Productivity
If NIC handles all operations in hardware, then processing speed is improved, but device complexity increases
Solution Approach 1:
The NIC functionality is segmented into two distinct parts: hardware logic circuits for commonly used operations and software for less frequent or complex operations. This segmentation allows the hardware to handle routine data transfers at high speed while the software provides flexibility for protocol updates and complex packet types, resolving the contradiction between performance and adaptability.
Solution Approach 2:
Complex and less frequently used operations are extracted from the hardware logic and delegated to software processing. This extraction reduces hardware circuit complexity while maintaining high processing speeds for common operations that remain in hardware, eliminating the need for the hardware to be overly complex to handle all possible operations.
Data Source
AI summary
A network interface controller (NIC) circuit may control data transfers between a network interface and a memory interface circuit. The NIC circuit receives data packets on the network interface and determines whether a packet type of a data packet corresponds to one of a first plurality of operations or a second plurality of operations. For data packets that correspond to one of the first plurality of operations, the NIC circuit controls the memory interface circuit according to the packet type and for data packets that correspond to one of the second plurality of operations, the NIC sends a notification to a processor circuit in the IC to execute software instructions to control the memory interface circuit according to the packet type. The NIC circuit quickly processes data packets corresponding to the first plurality of operations without software involvement but relies on software assistance for the second plurality of operations.


