Distributed Job Manager Port Access Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current digital data processing systems face challenges in efficiently scheduling jobs across multiple processing devices due to the limitations of centralized scheduling approaches, which do not scale well with increasing numbers of devices and lack optimal decision-making capabilities due to information constraints.

Innovation Solution

A distributed job management system that utilizes a programmable hardware scheduler and job managers to pre-schedule jobs, manage port access, and coordinate progress among multiple processing devices, including digital signal processors and hardware accelerators, using a cross-bar switch for communication and pipelining for concurrent job processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a centralized scheduler is used to coordinate jobs and DMA engines, then control and coordination can be achieved, but the system does not scale well as the number of processing devices increases

Engineering Contradiction:
Improvecontrol and coordinationVSAvoidscaling capability
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the centralized scheduling function into distributed job managers at each processing device. Each job manager independently manages jobs and DMA engines locally, eliminating the single point of control and enabling the system to scale to thousands of devices without increasing central controller complexity.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a centralized scheduler is used, then job distribution can be managed, but the amount of information available to the scheduler is limited, preventing optimal scheduling decisions

Engineering Contradiction:
Improvescheduling efficiencyVSAvoidinformation availability
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent introduces shared memory as an intermediary information repository where each job manager stores detailed local information about jobs, DMA engines, and processing device status. This allows any job manager to access comprehensive system information when making scheduling decisions, eliminating information constraints while maintaining distributed architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If control and coordination are customized for each individual processing device, then device-specific requirements can be met, but additional demands are placed on the scheduler

Engineering Contradiction:
Improvedevice customizationVSAvoidscheduler burden
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements self-service by giving each processing device its own job manager that autonomously handles device-specific control and coordination tasks. Each job manager customizes job scheduling and DMA coordination for its local device without requiring central scheduler intervention, eliminating the burden on the central scheduler while maintaining device-specific optimization.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10459770B2Method and apparatus for port access management at a distributed job manager in a digital multi-processor system
Publication Date: 2019.10.29 MARVELL ASIA PTE LTD
  • US10459770B2 patent drawing
  • US10459770B2 patent drawing
  • US10459770B2 patent drawing

AI summary

A method and a system for port access management at a distributed job manager, encompassing: initializing a port access process for each of one or more ports on a processing device; determining first whether a job is assigned to an active slot identified by an active_slot_id on the processing device, and when the determining is positive: determining second whether the job has been serviced by a port identified by the active_slot_id; and when either the first determining is negative or the second determining is positive then: retesting the first and second determining; else: determining whether the job requires an access to the port identified by the active_slot_id; and when the determining is positive: fetching the port's configuration words; processing the fetched port's configuration words; marking the job as serviced by the port upon conclusion or the processing of the fetched port's configuration words; and recalculating the value of the active_slot_id.