Multithread Processor Resource Blocking via Priority Register

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithread processors, managing access to critical sections is complex due to the need for programmers to manually handle blocking mechanisms across multiple resources, leading to increased complexity and errors as new resources are added, as existing solutions do not provide a centralized method for prioritizing and managing access to shared resources.

Innovation Solution

A system that uses a register to store resource identifiers and priorities, allowing a managing module to centrally manage access by receiving blocking instructions, determining priorities, and blocking dependent resources based on these priorities, ensuring that higher priority tasks are not interrupted and simplifying the programming process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual blocking mechanisms are used for each critical section, then access control to shared resources is achieved, but programming complexity increases significantly as new resources are added

Engineering Contradiction:
Improveaccess control consistencyVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The managing module serves as a universal controller that handles blocking operations for multiple critical sections and resources through a single interface. Instead of requiring separate blocking logic in each critical section, the managing module provides centralized control that works across all resources, reducing programming complexity while maintaining access control consistency

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

Solution Approach 2:

The managing module acts as an intermediary between threads and critical sections. When a thread needs to access a critical section, it requests blocking from the managing module, which then coordinates the blocking of the critical section and its dependent resources. This intermediary approach simplifies thread programming while ensuring proper access control

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple critical sections are blocked manually, then resource access consistency is maintained, but the number of operations and time required increases

Engineering Contradiction:
Improveresource access consistencyVSAvoidblocking management time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by automatically identifying and blocking dependent critical sections before the main critical section access is attempted. The managing module pre-determines which critical sections are dependent on the requested resource and blocks them in advance, eliminating the need for manual identification and blocking of each dependent section, thus reducing the time required while maintaining consistency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The managing module provides self-service by automatically managing the blocking of dependent critical sections without requiring manual intervention. When a blocking request is made for a critical section, the managing module automatically identifies dependent sections and blocks them, reducing the operational burden on programmers and decreasing the time required for blocking management

Inventive Principle:
Principle #25Self-service

3Ease of operation

If centralized management with priority registration is implemented, then programming complexity is reduced, but system structure becomes more complex

Engineering Contradiction:
Improveprogramming easeVSAvoidsystem structure complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The complex blocking management logic is extracted from individual critical section code and consolidated into a separate managing module. This extraction allows the critical section code to remain simple while the managing module handles the complexity of priority registration, dependency tracking, and coordinated blocking, thus improving programming ease while containing system complexity in a dedicated component

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8977795B1Method and apparatus for preventing multiple threads of a processor from accessing, in parallel, predetermined sections of source code
Publication Date: 2015.03.10 MARVELL ASIA PTE LTD
  • US8977795B1 patent drawing
  • US8977795B1 patent drawing
  • US8977795B1 patent drawing

AI summary

Systems, methods, and other embodiments associated with managing access to critical sections in a multithread processor are described. According to one embodiment, an apparatus includes a register configured to store i) respective resource identifiers that identify respective resources and ii) respective priorities for respective resource identifiers. The apparatus includes a managing module logic configured to receive a blocking instruction for a first resource having a first resource identifier that is associated with a first task, access the register to determine a priority associated with the first resource identifier, select one or more dependent resources based, at least in part on the priority associated with first resource identifier, and block the first resource and the dependent resources. In this manner the first task is granted access to the first resource and the dependent resources while other tasks are prevented from accessing the first resource and the dependent resources.