DSP Fast Run Command Bypasses Kernel Memory Checks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management techniques for microprocessors, especially in digital signal processors (DSPs), are inefficient due to the need for kernel checks to ensure sub-process bins are resident in internal memory before execution, leading to resource waste and performance degradation, particularly when sub-processes are called repeatedly.

Innovation Solution

A method and system that allow a sub-process to be executed without first checking if its bins are in internal memory, provided certain conditions are met, such as the sub-process having been previously loaded and executed, and no other sub-processes having been called since, thereby streamlining the execution process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the kernel checks memory residency before executing a sub-process, then execution reliability is ensured, but system performance and runtime efficiency deteriorate due to unnecessary checks and potential swapping operations

Engineering Contradiction:
Improveexecution reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The parent process proactively ensures that the child process bins are loaded into internal memory before executing the fast run command, eliminating the need for kernel checks. This preliminary action guarantees execution reliability while avoiding performance degradation from runtime checks and potential swapping operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention extracts the memory residency verification responsibility from the kernel to the parent process. The parent process tracks and manages its own child process memory state, allowing the kernel to execute the fast run command without performing residency checks, thus improving system performance while maintaining reliability through parent process oversight.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If the kernel swaps non-resident bins into internal memory, then execution correctness is maintained, but memory bus bandwidth is constrained and power consumption increases

Engineering Contradiction:
Improveexecution correctnessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The parent process proactively loads child process bins into internal memory before the fast run command is executed, ensuring execution correctness is maintained while avoiding the power-consuming swapping operation that would otherwise be performed by the kernel at runtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By using the fast run command with pre-loaded bins, the system skips the memory swapping operation entirely, rushing through the execution process directly without the energy-intensive kernel-mediated swap operation, thus reducing power consumption while maintaining correctness.

Inventive Principle:
Principle #21Skipping (Rushing through)

3Reliability

If the kernel checks and swaps bins before execution, then proper memory management is ensured, but latency in software execution increases

Engineering Contradiction:
Improvememory management correctnessVSAvoidexecution latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The parent process performs the memory loading action preliminarily before the fast run command, ensuring memory management correctness is maintained while eliminating the runtime latency that would otherwise be incurred by kernel checks and potential swapping operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention extracts the timing-critical verification function from the kernel path to the parent process, allowing the kernel to execute the fast run command immediately without latency-inducing checks, while the parent process maintains correctness through its own tracking and management of child process memory state.

Inventive Principle:
Principle #2Taking out (Extraction)

4Ease of operation

If whole memory regions are moved for memory management, then memory allocation is simplified, but memory bus bandwidth is constrained and resource overhead increases

Engineering Contradiction:
Improvememory allocation simplicityVSAvoidresource efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The invention segments the memory management approach by allowing individual child process bins to be loaded independently into internal memory rather than moving whole memory regions. This maintains ease of operation for the parent process while significantly improving resource efficiency by loading only the necessary segments on demand.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The parent process performs partial loading of only the specific child process bins needed for execution rather than moving entire memory regions. This partial action maintains operational simplicity for the parent process while dramatically improving resource efficiency and reducing memory bus bandwidth consumption compared to moving complete memory spaces.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8151266B2Operating system fast run command
Publication Date: 2012.04.03 QUALCOMM INC
  • US8151266B2 patent drawing
  • US8151266B2 patent drawing
  • US8151266B2 patent drawing

AI summary

A fast sub-process is provided in an operating system for a digital signal processor (DSP). The fast sub-process executes a sub-process without a kernel first determining whether the sub-process resides in an internal memory, as long as certain conditions have been satisfied. One of the conditions is that a programmer determines that the sub-process has been previously loaded into internal memory and executed. Another condition is that the programmer has ensured that a process calling the sub-process has not called any other sub-process between the last execution and the current execution request. Yet another condition is that the programmer ensures that the system has not called another overlapping sub-process between the last execution and the current execution request.