Multi-Core NICS Initialization Handshaking Protocol

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core systems, independent initialization of shared resources by multiple cores can lead to inefficiencies and errors, as one core may attempt to use a resource while another core is still initializing it.

Innovation Solution

A handshaking protocol is implemented where an interface master communicates initialization messages to interface slaves, ensuring that all cores complete initialization before using a shared resource, and a state machine is maintained to monitor and control the resource's status.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If multiple cores independently perform initialization tasks, then initialization speed is improved, but errors occur when one core uses the resource while another is still initializing

Engineering Contradiction:
Improveinitialization speedVSAvoidresource access reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The interface master core performs preliminary actions by setting an initialization flag before any core accesses the shared resource. This flag serves as a warning signal to other cores that initialization is in progress, preventing them from accessing the resource until initialization is complete. The flag is cleared only after initialization finishes, ensuring safe access.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback through the initialization flag that continuously communicates the initialization state to all cores. When a core detects that the flag is set, it waits for initialization to complete before accessing the resource. This feedback mechanism ensures that no core accesses the resource during initialization, eliminating race conditions.

Inventive Principle:
Principle #23Feedback

2Productivity

If multiple cores independently perform housekeeping tasks, then system responsiveness is improved, but inefficiencies and errors occur due to uncoordinated access

Engineering Contradiction:
Improvesystem responsivenessVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the initialization control function by designating a specific core as the interface master. This master core handles all coordination tasks including setting the initialization flag, managing the initialization process, and clearing the flag when complete. Other cores act as interface slaves that simply respond to the flag status, dividing the complexity into a manageable centralized controller and simple responders.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The initialization flag acts as an intermediary mechanism between the interface master and other cores. Instead of requiring complex direct communication and coordination protocols between all cores, the flag serves as a simple binary mediator that conveys the initialization state, eliminating the need for complex inter-core coordination while maintaining responsiveness.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If centralized initialization control is implemented, then resource access reliability is improved, but initialization time is increased due to sequential coordination

Engineering Contradiction:
Improveresource access reliabilityVSAvoidinitialization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The interface master sets the initialization flag as a preliminary action before actually initializing the shared resource. This allows other cores to detect the upcoming initialization and prepare accordingly, but more importantly, it enables the interface master to perform initialization in a controlled manner without blocking other cores from performing their own initialization tasks in parallel, thus minimizing time loss while ensuring reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9037754B2Systems and methods for initialization and link management of NICS in a multi-core environment
Publication Date: 2015.05.19 CITRIX SYSTEMS INC
  • US9037754B2 patent drawing
  • US9037754B2 patent drawing
  • US9037754B2 patent drawing

AI summary

The present application is directed towards systems and methods for coordination and management of a shared resource in a multi-core system. In a multi-core system, multiple cores may be utilizing a shared resource. However, internal resources common to the shared resource may need to be initialized by only one core, and independent and uncoordinated initialization by multiple cores may cause errors. The present invention provides systems and methods for coordinating such initialization and use through a handshaking protocol.