Dedicated Bound Information Register File for Memory Safety

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for protecting against out-of-bounds memory references, such as Intel's MPX system, increase the number of instructions and execution time due to the need for additional instructions and costly implementations, which is inefficient in reducing memory safety vulnerabilities.

Innovation Solution

A dedicated bound information register file is introduced to store bounds information for active pointers in general registers, allowing bound-checking operations to be performed using original instructions with reduced additional instructions and special hardware support, maintaining precision to the byte level.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If Intel's MPX system is used to protect against out-of-bounds memory references, then memory safety is improved, but the number of instructions and execution time increase

Engineering Contradiction:
Improvememory safetyVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the bounds information from general registers and stores it in a dedicated register file. This separation allows the processor to access bounds information efficiently without interfering with normal register operations, thereby maintaining execution speed while providing memory safety checks.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The dedicated register file acts as an intermediary between the general registers and the memory access operations. It stores bounds information that can be quickly compared against memory access addresses, providing a mediation layer that enables safety checks without adding significant overhead to the instruction execution path.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If additional instructions and special hardware are added to protect against out-of-bounds references, then memory safety is improved, but device complexity increases

Engineering Contradiction:
Improvememory safetyVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The dedicated register file serves multiple functions: it stores bounds information for multiple buffers simultaneously, supports both load and store operations, and can be integrated with existing processor architectures. This multi-functionality reduces the need for separate hardware components for each protection function, thereby limiting the increase in device complexity.

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

3Reliability

If bounds checking is performed for every memory access, then memory safety is improved, but instruction overhead increases

Engineering Contradiction:
Improvememory safetyVSAvoidinstruction overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary action by storing bounds information in the dedicated register file before memory access operations occur. This pre-positioning of bounds data allows for rapid comparison during memory access without requiring complex real-time calculations, thereby reducing instruction overhead while maintaining comprehensive bounds checking.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11966331B2Dedicated bound information register file for protecting against out-of-bounds memory references
Publication Date: 2024.04.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11966331B2 patent drawing
  • US11966331B2 patent drawing
  • US11966331B2 patent drawing

AI summary

A method, system and apparatus for protecting against out-of-bounds references, including storing an address of a buffer in a general register and storing bounds information (BI) for the buffer in a bounds information register, and when a content of the general register is used as an address in a load or store operation, using a content of the bounds information register to determine if the load or store is out of bounds.