DMA Stack Error Detection with Adaptive Guard-Band Checks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for detecting stack overflow and underflow conditions in DMA control circuits are unreliable due to timing dependencies and potential false detections, especially when the stack is moved to a different location or intentionally overwritten.

Innovation Solution

A method and apparatus using direct memory access (DMA) calls to periodically determine whether the stack pointer is beyond a limit, adjusting the periodicity based on the size of the space between the stack pointer and the limit, and asynchronously performing these checks while the processor executes other functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If guard band scanning is used to detect stack overflow/underflow, then detection capability is provided, but detection timing is uncertain and false detections may occur

Engineering Contradiction:
Improvestack error detection reliabilityVSAvoiddetection timing uncertainty
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by proactively monitoring the stack pointer position relative to guard bands before actual stack overflow or underflow occurs. The DMA control circuit continuously compares the stack pointer against predefined guard band addresses, enabling early detection and prevention of stack errors rather than reacting after they occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by using the DMA control circuit to periodically read the stack pointer value, compare it with guard band limits, and generate interrupt signals when the stack pointer approaches or exceeds the guard bands. This closed-loop feedback mechanism ensures reliable and timely detection of stack conditions.

Inventive Principle:
Principle #23Feedback

2Productivity

If fixed periodic scanning is used to check stack limits, then regular detection is achieved, but detection frequency cannot adapt to changing stack conditions

Engineering Contradiction:
Improvedetection frequencyVSAvoidadaptive detection capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies dynamics by making the DMA transfer size adaptive based on the current stack pointer position. When the stack pointer is close to the guard band, the DMA transfer size is reduced, resulting in more frequent monitoring. When the stack pointer is far from the guard band, the transfer size increases, reducing monitoring frequency. This dynamic adjustment optimizes both detection responsiveness and system productivity.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If stack pointer monitoring is performed synchronously with processor execution, then coordination is simplified, but processor performance is degraded

Engineering Contradiction:
Improvemonitoring coordinationVSAvoidprocessor execution speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges the stack monitoring function with the existing DMA data transfer operations. The DMA control circuit performs both data transfer and stack pointer monitoring using the same hardware resources and control logic, eliminating the need for separate monitoring mechanisms and simplifying the overall system architecture while maintaining processor performance.

Inventive Principle:
Principle #5Merging (Combining)

4Device complexity

If DMA transfer size is fixed, then control is simplified, but detection responsiveness varies with stack conditions

Engineering Contradiction:
ImproveDMA control complexityVSAvoiddetection responsiveness
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent changes the DMA transfer size parameter dynamically based on the stack pointer position relative to the guard band. The transfer size is calculated as the difference between the current stack pointer and the guard band address, ensuring that monitoring intensity adapts to the actual stack conditions while maintaining relatively simple control logic.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12461804B2Periodically determining a stack error using a direct memory access call
Publication Date: 2025.11.04 MICROCHIP TECHNOLOGY INC
  • US12461804B2 patent drawing
  • US12461804B2 patent drawing
  • US12461804B2 patent drawing

AI summary

Systems and methods for periodically determining a stack error using a direct memory access (DMA) call are provided. The method may include periodically determining whether a stack pointer is beyond a limit in a stack through a direct memory access (DMA) call. The method may additionally include identifying a stack error based on a determination that the stack pointer is beyond the limit in the stack. In the method, a periodicity of the determination of whether the stack pointer is beyond the limit in the stack through the DMA call may be based on a size of space between the stack pointer and the limit in the stack.