Processor Link Stack Synchronization via Detection Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processor architectures often fail to accurately recognize procedure return sequences, leading to link stack misalignment and erroneous return address predictions, which can cause instruction fetching errors and performance issues.

Innovation Solution

Incorporating detection logic circuitry within the processor to identify POP and branch instruction sequences as procedure return sequences, allowing for early retrieval of return addresses from a link stack instead of a software stack, thereby maintaining correct instruction fetching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor uses traditional software stack retrieval for procedure returns, then the implementation is simple, but the link stack becomes out of sync leading to address mispredictions

Engineering Contradiction:
Improvelink stack synchronizationVSAvoiddetection logic circuitry
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The detection logic circuitry performs preliminary identification of POP and branch instruction sequences before execution, allowing the fetch logic to proactively retrieve return addresses from the link stack in advance, preventing synchronization issues before they occur

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The detection logic circuitry acts as an intermediary between the instruction decode logic and the fetch logic, analyzing instruction sequences and triggering appropriate fetch operations based on detected POP-branch patterns

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the processor waits for instruction execution to retrieve return addresses, then the hardware logic is simple, but instruction fetching efficiency decreases

Engineering Contradiction:
Improveinstruction fetching efficiencyVSAvoidfetch logic circuitry
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The fetch logic circuitry performs preliminary retrieval of return addresses from the link stack upon detecting POP-branch sequences, rather than waiting for instruction execution to complete, thereby overlapping fetch operations with execution and improving throughput

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By proactively fetching return addresses upon detection of return sequences, the fetch logic maintains continuous operation without idle waiting periods, keeping the instruction pipeline full and improving overall productivity

Inventive Principle:
Principle #20Continuity of useful action

3Speed

If the processor uses link stack for speculative fetching, then instruction fetching is accelerated, but erroneous return address information causes address mispredictions

Engineering Contradiction:
Improveinstruction fetching speedVSAvoidreturn address accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The detection logic circuitry provides feedback to the fetch logic about identified POP-branch sequences, enabling the fetch logic to selectively use link stack addresses only when appropriate, preventing mispredictions while maintaining speed benefits

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8341383B2Method and a system for accelerating procedure return sequences
Publication Date: 2012.12.25 QUALCOMM INC
  • US8341383B2 patent drawing
  • US8341383B2 patent drawing
  • US8341383B2 patent drawing

AI summary

A method for retrieving a return address from a link stack when returning from a procedure in a pipeline processor is disclosed. The method identifies a retrieve instruction operable to retrieve a return address from a software stack. The method further identifies a branch instruction operable to branch to the return address. The method retrieves the return address from the link stack, in response to both the instruction and the branch instruction being identified and fetches instructions using the return address.