Processor Memory Access via Symbolic Expression Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The parallelization of code in microprocessors is limited by dependencies between memory-access instructions, which existing techniques, such as memory renaming, struggle to effectively address due to reliance on actual numerical values of memory addresses that are only known late in the pipeline, leading to high latency and reduced performance.

Innovation Solution

The processor identifies relationships between memory-access instructions based on their symbolic expressions, allowing for early identification and exploitation of interdependencies, serving outcomes from internal memory instead of external memory, thereby reducing latency and improving parallelization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If memory renaming is used to improve parallelization of memory-access instructions, then memory access speed is improved, but the technique relies on actual numerical values of memory addresses that are only known late in the pipeline, causing high latency

Engineering Contradiction:
Improvememory access speedVSAvoidpipeline latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent performs preliminary identification of memory address relationships based on symbolic expressions early in the pipeline, before actual numerical address values are known. This allows the processor to prepare memory access optimizations in advance, reducing pipeline latency while maintaining improved memory access speed through early parallelization opportunities.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the processor waits for actual numerical values of memory addresses to identify relationships between memory-access instructions, then address resolution is accurate, but parallelization is reduced due to high latency

Engineering Contradiction:
Improveaddress resolution accuracyVSAvoidcode parallelization
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent introduces symbolic expressions as an intermediary representation that allows early identification of memory address relationships without requiring actual numerical values. This intermediary form enables the processor to detect patterns and dependencies between memory-access instructions early in the pipeline, maintaining address resolution accuracy while significantly improving code parallelization capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If memory-access instructions are processed sequentially to ensure accurate address resolution, then address accuracy is maintained, but processing speed and parallelization are reduced

Engineering Contradiction:
Improvememory address accuracyVSAvoidinstruction processing speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The patent segments the memory address resolution process into two independent stages: early symbolic expression analysis for relationship identification, and later numerical value resolution for final address determination. This segmentation allows memory-access instructions to be processed in parallel based on symbolic patterns while maintaining accurate address resolution when numerical values become available, thereby improving instruction processing speed without sacrificing address accuracy.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10185561B2Processor with efficient memory access
Publication Date: 2019.01.22 CENTIPEDE SEMI
  • US10185561B2 patent drawing
  • US10185561B2 patent drawing
  • US10185561B2 patent drawing

AI summary

A method includes, in a processor, processing program code that includes memory-access instructions, wherein at least some of the memory-access instructions include symbolic expressions that specify memory addresses in an external memory in terms of one or more register names. A relationship between the memory addresses accessed by two or more of the memory-access instructions is identified, based on respective formats of the memory addresses specified in the symbolic expressions. An outcome of at least one of the memory-access instructions is assigned to be served from an internal memory in the processor, based on the identified relationship.