Memory Rename Table Mapping Addresses to Registers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern CPU architectures face challenges in efficiently managing memory access due to register pressure, where values are spilled and filled from memory, and compilers struggle to disambiguate pointers, leading to suboptimal performance and energy consumption.

Innovation Solution

A data processing apparatus with a memory rename table that maps memory addresses to registers, allowing store instructions to store values in registers instead of memory and load instructions to read from registers if a corresponding entry exists, reducing memory access and improving performance and energy efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If values are spilled and filled from memory to handle register pressure, then more memory access operations are performed, but processor performance decreases and energy consumption increases

Engineering Contradiction:
Improveprocessor performanceVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent introduces a memory rename table as an intermediary data structure that maps memory addresses to register numbers. This table acts as a mediator between memory access operations and the register file, allowing the processor to check whether a memory address corresponds to a register value before performing actual memory access. When a match is found, the value is retrieved from the register file instead of memory, thereby reducing memory access frequency and energy consumption while maintaining processor performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If a large number of general purpose registers are provided to reduce memory access, then short term storage capacity increases, but device complexity and cost increase

Engineering Contradiction:
Improvestorage capacityVSAvoiddevice complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The memory rename table serves multiple functions: it acts as a mapping structure for address-to-register translation, functions as a cache for recently accessed memory addresses, and provides a mechanism for reducing memory access without requiring additional physical registers. This multi-functionality allows the system to achieve increased effective storage capacity while avoiding the complexity and cost associated with providing a large number of general purpose registers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If compilers conservatively keep values in memory to guarantee correctness due to pointer disambiguation difficulties, then memory safety is maintained, but processor performance decreases

Engineering Contradiction:
Improvememory safetyVSAvoidprocessor performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The memory rename table enables the processor to self-verify memory access safety by checking whether a memory address maps to a register value. When the table indicates a mapping exists, the processor can confidently access the register value without requiring conservative compiler behavior. This self-service mechanism allows the system to maintain memory safety guarantees while enabling more aggressive optimization and improving processor performance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9471480B2Data processing apparatus with memory rename table for mapping memory addresses to registers
Publication Date: 2016.10.18 THE RGT UNIV OF MICHIGAN
  • US9471480B2 patent drawing
  • US9471480B2 patent drawing
  • US9471480B2 patent drawing

AI summary

A data processing apparatus has a memory rename table for storing memory rename entries each identifying a mapping between a memory address of a location in memory and a mapped register of a plurality of registers. The mapped register is identified by a register number. In response to a store instruction, the store target memory address of the store instruction is mapped to a store destination register and so the data value is stored to the store destination register instead of memory. A memory rename entry is provided in the table to identify the mapping between the store target memory address and store destination target register. In response to a load instruction, if there is a hit in the memory rename table for the load target memory address then the loaded value can be read from the mapped register instead of memory.