Geometric 64-bit Capability Pointer for Mobile Memory Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Capability-enhanced RISC ISAs used in computing systems result in large pointers that are impractical for mobile or handheld devices due to storage and memory constraints, as they expand the footprint of object files significantly.

Innovation Solution

Implementing a 64-bit capability pointer system that encodes memory allocation size using a reduced number of bits, allowing for bounds checking without increasing the footprint, by using a 48-bit base address and encoding the length as an index to a table of memory allocation sizes following a geometric progression, which also includes permissions to restrict memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If capability-enhanced RISC ISAs use large pointers to enable capability-based memory access control, then memory access security and control are improved, but object file sizes and storage requirements increase significantly

Engineering Contradiction:
Improvememory access controlVSAvoidobject file size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The pointer is segmented into multiple fields: base address bits, length bits, and permission bits. This segmentation allows each component to serve a specific function while optimizing the overall pointer size. The base address field provides the memory address, the length field enables bounds checking, and the permission field controls access rights, collectively achieving capability-based security without requiring excessively large pointer structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention changes the parameters of the pointer structure by allocating a specific number of bits for each function (base address, length, permissions) rather than using a uniform large pointer size. This parameter optimization allows the pointer to maintain all necessary capability information while minimizing the total bit width, thereby reducing object file sizes while preserving memory access control functionality.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If pointers include full capability information for memory protection, then security and access control are enhanced, but pointer size and processing overhead increase

Engineering Contradiction:
Improvememory protectionVSAvoidpointer structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The capability information is segmented into distinct fields within the pointer: base address bits for memory location, length bits for bounds checking, and permission bits for access control. This segmentation organizes the capability information in a structured manner that is easier to process and enforce, reducing the complexity of pointer validation while maintaining comprehensive memory protection.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pointer structure preliminarily encodes all necessary capability information (base address, length, permissions) at the time of pointer creation. This preliminary encoding eliminates the need for additional runtime checks or complex validation logic, as the capability constraints are already embedded in the pointer itself, thereby simplifying the processing overhead.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If reduced pointer size is used to decrease object file footprint, then storage efficiency is improved, but capability information completeness may be compromised

Engineering Contradiction:
Improvestorage efficiencyVSAvoidcapability information
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The invention optimizes the parameter allocation within the pointer by carefully selecting the number of bits for base address, length, and permission fields. This parameter optimization ensures that the reduced pointer size still contains all essential capability information needed for memory protection and access control, preventing any loss of critical capability data while achieving storage efficiency.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The pointer is segmented into essential capability fields that are prioritized for inclusion within the reduced size constraint. By segmenting the capability information and selectively including only the most critical fields (base address, length for bounds checking, and key permission bits), the invention maintains capability information completeness while achieving compact representation for storage efficiency.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10713021B2Geometric 64-bit capability pointer
Publication Date: 2020.07.14 APPLE INC
  • US10713021B2 patent drawing
  • US10713021B2 patent drawing
  • US10713021B2 patent drawing

AI summary

One embodiment provides for a computer-implemented method comprising receiving a request to compile a set of program instructions coded in a high-level language, the set of program instructions including a pointer to a virtual memory address, the pointer having a pointer encoding including a base address and a length; while compiling the set of program instructions, decoding the base address and length from the pointer, wherein the base address specifies a first boundary for a memory allocation, the length defines a second boundary for the memory allocation and the length is an encoding of a size of the memory allocation; and generating a set of compiled instructions which, when executed, enable access to a physical address associated with a virtual address between the first boundary and the second boundary.