Processing Unit Instruction Pre-loading to Eliminate Memory Stalls

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processing units face inefficiencies due to waiting times during the execution of program functions, particularly for plannable functions, as they often rely on slower system memories like flash memory, leading to instruction stalls and reduced processing capacity.

Innovation Solution

A method where program instructions for upcoming program functions are pre-loaded into a local memory, such as RAM, using systemic knowledge gained from static planning or software analysis, allowing for the execution of plannable functions without relying on slower system memories, and utilizing a transfer unit to copy instructions from a source memory to the local memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If program instructions are loaded from slower system memory (flash memory) during execution, then memory capacity is reduced, but waiting times and instruction stalls increase

Engineering Contradiction:
Improvewaiting timeVSAvoidprocessing capacity
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-loading program instructions into the local memory before they are needed for execution. The system determines future program functions that need to be executed and proactively transfers their instructions from external memory to the local memory, eliminating waiting times when the processor needs to fetch instructions during execution.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If program instructions are loaded from slower system memory (flash memory), then device complexity is reduced, but instruction stalls occur reducing processing capacity

Engineering Contradiction:
Improvememory structureVSAvoidprocessing capacity
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system performs preliminary determination of future program functions and proactively loads their instructions into the local memory before execution is needed. This eliminates the need for complex real-time memory management during execution, as the instructions are already prepared in the local memory.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The local memory acts as an intermediary between the external memory and the processor. It receives instructions from external memory in advance and provides them to the processor during execution, mediating between the slower external memory and the processor's need for fast instruction access.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If cache memory is used to store program instructions, then waiting times are reduced, but device complexity and cost increase

Engineering Contradiction:
ImprovelatencyVSAvoidmemory structure
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

Instead of using traditional cache memory that passively stores instructions, the system actively determines future program functions and proactively loads their instructions into the local memory. This preliminary action eliminates the need for complex cache memory structures while achieving similar or better performance by ensuring instructions are ready before needed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10671396B2Method for operating a processing unit
Publication Date: 2020.06.02 ROBERT BOSCH GMBH
  • US10671396B2 patent drawing
  • US10671396B2 patent drawing
  • US10671396B2 patent drawing

AI summary

A method for operating a processing unit, including a memory and at least one processor core that executes a plurality of program functions of a computer program, includes ascertaining all program instructions that belong to a program function to be executed at a future execution point in time and providing the ascertained program instructions in the memory before the execution point in time.