Resource Allocation Engine for Multiprocessor Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor environments, existing resource allocation methods face challenges such as resource allocation deadlocks, wastage of CPU bandwidth, and increased software complexity due to the need for mutual exclusion mechanisms and complex resource management.

Innovation Solution

The implementation of a resource allocation engine (RAE) that uses transaction-based atomic allocation and release of global common resources, eliminating the need for multiple mutex protections and ensuring fairness in resource allocation by managing resources in a singular entity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If mutex protections are used to manage resource allocation in multi-CPU environments, then resource access safety is improved, but CPU bandwidth is wasted due to tracking mutex availability

Engineering Contradiction:
Improveresource access safetyVSAvoidCPU bandwidth
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the mutex tracking function from the CPU workload by implementing a dedicated Resource Allocation Engine (RAE) that autonomously manages mutex availability. This separates the resource management function from the main CPU tasks, allowing CPUs to focus on productive work while the RAE handles mutex tracking independently, thus reducing CPU bandwidth waste while maintaining resource access safety

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism (the RAE with its internal mutex tracker) that mediates between multiple CPUs and the resource pool. Instead of CPUs directly tracking and managing mutexes, they interact with the RAE which maintains the centralised mutex state, eliminating the need for CPUs to waste bandwidth on tracking operations while ensuring consistent resource access control

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If conventional software solutions are used for resource allocation, then implementation simplicity is improved, but resource allocation deadlocks occur

Engineering Contradiction:
Improveimplementation simplicityVSAvoidresource allocation deadlock prevention
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The RAE acts as an intermediary that implements a sophisticated resource allocation algorithm (trying to allocate resources in order of resource ID, with fallback to alternative orders) while presenting a simple interface to CPUs. This mediator handles the complex deadlock prevention logic internally, maintaining implementation simplicity from the CPU perspective while ensuring high reliability through advanced allocation strategies

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical approach of manual mutex management and software-based deadlock detection with a hardware-accelerated RAE that autonomously manages resource allocation. This substitution of the resource allocation mechanism with a dedicated engine eliminates deadlocks through systematic resource ordering while maintaining ease of use for CPU applications

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If multiple resource types are allocated individually, then flexibility in resource management is improved, but complexity of resource allocation increases and deadlocks become more likely

Engineering Contradiction:
Improveresource management flexibilityVSAvoidresource allocation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple individual resource allocation operations into a single atomic transaction handled by the RAE. When a CPU requests multiple resource types, the RAE processes them together in a coordinated manner, trying different allocation orders (e.g., R1-R2-R3, then R3-R2-R1) to ensure all resources are allocated or none are, preventing deadlocks while maintaining flexibility in supporting multiple resource types

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The RAE implements a universal resource allocation mechanism that handles multiple resource types through a unified interface and consistent allocation strategy. The same RAE engine manages all resource types using the same deadlock prevention logic, reducing overall system complexity while maintaining the ability to flexibly allocate different resource types according to varying CPU needs

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Speed

If CPUs allocate resources simultaneously without coordination, then allocation speed is improved, but fairness in resource allocation deteriorates

Engineering Contradiction:
Improveallocation speedVSAvoidfairness in resource allocation
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The RAE serves as a coordinating intermediary that receives simultaneous allocation requests from multiple CPUs and processes them in a fair manner. It maintains a queue of pending requests and allocates resources in the order received, ensuring that CPU-X and CPU-Y both get fair access to available resources without one starving the other, while still maintaining high allocation speed through efficient batch processing

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10108456B2Accelerated atomic resource allocation on a multiprocessor platform
Publication Date: 2018.10.23 WESTERN DIGITAL TECHNOLOGIES INC
  • US10108456B2 patent drawing
  • US10108456B2 patent drawing
  • US10108456B2 patent drawing

AI summary

A method, system, and apparatus are provided for accelerated atomic resource allocation on a multiprocessor platform. In particular, a resource allocation engine (RAE) performs the following: counting available units for each of the one or more resources; parsing a multi-resource ticket (MRT) for a processor, wherein the parsing identifies one or more requested resource types, each resource type being paired with a requested resource units; comparing the multi-resource ticket to one or more resource queues for the requested resource types, wherein the comparing determines an availability status of at least one the requested resource types; and based on the availability status, calculating whether or not all of the requested resource types can be allocated for the processor, wherein the calculating is completed before allocating a next requested resource for a next processor.