Controller for Managing Instruction Dependencies in Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, particularly CNN systems, achieving parallel execution of instructions across multiple functional modules while maintaining correct logical relationships between them is challenging due to dependencies between instructions, leading to inefficiencies and potential logical errors.

Innovation Solution

A controller is introduced to determine and manage the dependency relationships between instructions, ensuring that each functional module executes its respective instruction only after the preceding instruction has completed, using an instruction scheduling module that analyzes sequence numbers and operation status signals to maintain correct logical order and facilitate parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If instructions are executed sequentially one by one, then logical correctness is maintained, but parallel execution efficiency is lost and functional modules remain idle

Engineering Contradiction:
Improvelogical correctnessVSAvoidparallel execution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller pre-fetches and queues multiple instructions before execution, analyzing their dependency relationships in advance. This allows the system to prepare parallel execution paths while maintaining logical correctness, as instructions are ready to be dispatched simultaneously once dependencies are resolved.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The instruction queue dynamically adjusts the execution order and timing of instructions based on real-time dependency analysis. The controller can flexibly schedule instructions to maximize parallel execution while ensuring that dependent instructions are executed in the correct sequence, resolving the contradiction between parallelism and logical correctness.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple functional modules execute instructions simultaneously, then parallel processing efficiency improves, but logical relationships between instructions may be violated

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidlogical relationship correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The controller implements feedback mechanisms by continuously monitoring the execution status of instructions and adjusting the scheduling of subsequent instructions accordingly. When a functional module completes an instruction, the controller receives feedback and can immediately dispatch dependent instructions to appropriate modules, maintaining logical correctness while maximizing parallel execution.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The instruction queue acts as an intermediary between the host computer and functional modules. It buffers instructions, analyzes their dependency relationships, and schedules their execution to ensure logical correctness is maintained while enabling parallel processing. The queue mediates between the need for simultaneous execution and the requirement for correct instruction ordering.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If instructions are dispatched without dependency analysis, then execution speed increases, but logical errors occur when modules read inappropriate values

Engineering Contradiction:
Improveinstruction execution speedVSAvoiddata reading correctness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The controller performs preliminary dependency analysis on instructions before they are dispatched to functional modules. By examining the dependency relationships in advance, the controller can identify which instructions must be executed sequentially and which can run in parallel, ensuring that data-dependent instructions are only executed after their dependencies are satisfied, thus preventing logical errors while maintaining high execution speed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10664283B2Computing system and controller thereof
Publication Date: 2020.05.26 XILINX TECH BEIJING LTD
  • US10664283B2 patent drawing
  • US10664283B2 patent drawing
  • US10664283B2 patent drawing

AI summary

Computing system and controller thereof are disclosed for ensuring the correct logical relationship between multiple instructions during their parallel execution. The computing system comprises: a plurality of functional modules each performing a respective function in response to an instruction for the given functional module; and a controller for determining whether or not to send an instruction to a corresponding functional module according to dependency relationship between the plurality of instructions.