Controller Array Workload Segmentation With Synchronization Barriers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementing parallel hardware architectures for executing workloads is challenging due to the need for synchronizing workload components that must be executed in a particular order, which is not efficiently addressed by existing technologies.

Innovation Solution

Implementing a system where each controller in an array executes a segment of control code, with synchronization barriers ensuring that all segments are completed before proceeding, using local DM reads and one remote DM write for efficient synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel hardware architectures are used to execute workload components simultaneously, then execution efficiency is improved, but synchronization of workload components that need to be executed in a particular order becomes challenging

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The control code is divided into multiple segments that can be distributed to different controllers for parallel execution. Each controller executes a specific segment independently, allowing simultaneous execution while maintaining logical ordering through segment dependencies. This segmentation enables parallel hardware to efficiently handle workload components without complex centralized synchronization.

Inventive Principle:
Principle #1Segmentation

2Productivity

If control code is divided into segments executed by different controllers, then parallel execution is enabled, but synchronization barriers require coordination between controllers

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidsynchronization reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Controllers provide feedback to each other through notification mechanisms when segments are completed. This feedback allows synchronization barriers to reliably detect when all prerequisite segments have finished executing, ensuring correct ordering without complex coordination protocols. The notification-based feedback system maintains synchronization reliability while enabling parallel execution.

Inventive Principle:
Principle #23Feedback

3Reliability

If notification mechanisms are implemented between controllers for synchronization, then execution order is maintained, but communication overhead increases

Engineering Contradiction:
Improveexecution order maintenanceVSAvoidsynchronization latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Controllers are pre-configured with knowledge of which segments they need to notify about and which segments depend on their completion. This preliminary setup allows synchronization to proceed efficiently without real-time complex coordination. The notification mechanism is optimized based on pre-analyzed dependency relationships, reducing communication overhead and latency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20260030052A1Executing workloads across data processing engine columns
Publication Date: 2026.01.29 XILINX INC
  • US20260030052A1 patent drawing
  • US20260030052A1 patent drawing
  • US20260030052A1 patent drawing

AI summary

Examples herein describe an array of controllers. The array includes a first controller having a first memory and a first processor and a second controller having a second memory and a second processor. The first controller is configured to execute a first segment of control code. The control code is compiled based on one or more instructions included in a user defined application. The second controller is configured to execute a second segment of the control code. The one or more instructions included in the user defined application are executable by executing the first segment of the control code and the second segment of the control code.