Static Object IDs in Memory Addresses Across CPU Widths
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory address systems in computing systems are limited by the width of instruction sets, leading to inefficiencies and limitations in addressing and accessing different types of objects, particularly across processors with varying instruction widths.
Innovation Solution
Implementing static object identification numbers of a predetermined width, such as 128-bit, to represent objects, allowing processors to generate and use addresses of varying widths, and incorporating a 64-bit or 32-bit offset within a 128-bit address, enabling efficient access and conversion between different address spaces.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If memory addresses are limited by instruction set width, then existing CPU architectures can function, but the system cannot efficiently access objects across processors with varying instruction widths
Solution Approach 1:
The 128-bit address is segmented into two parts: a 64-bit object identifier (OID) that remains constant across address spaces, and a 64-bit offset that varies. This segmentation allows the same address structure to work across processors with different instruction widths by separating the universal identification function from the variable positioning function.
Solution Approach 2:
The 128-bit address structure serves multiple functions simultaneously: it provides universal object identification across different processor architectures, enables efficient memory access, and maintains compatibility with both 64-bit and 32-bit instruction sets. The static OID portion provides architecture-independent object identification while the offset portion adapts to different address space requirements.
2Productivity
If dynamic object identification is used, then flexible memory access is achieved, but performance is reduced due to lookup operations
Solution Approach 1:
The object identifier (OID) is determined in advance based on the object type and is embedded directly into the memory address structure. This preliminary determination of object identity eliminates the need for runtime lookup operations, as the OID is already available when the memory access instruction is executed.
Solution Approach 2:
The memory address structure itself contains the necessary identification information (OID) that enables the system to automatically determine object properties and routing information without external lookup tables or additional processing steps. The address structure serves its own identification function.
3Adaptability or versatility
If fixed-length memory addresses are used, then simple address structure is maintained, but the system cannot efficiently handle objects of different sizes and types
Solution Approach 1:
Different portions of the address structure serve different purposes: the 64-bit OID portion provides universal object identification with specific quality attributes (object type, architecture compatibility), while the 64-bit offset portion provides position information. This local differentiation of address components allows efficient handling of objects of different sizes and types without losing identification information.
Data Source
AI summary
A computer system having an address system of a first predetermined width in which each address of the first predetermined width in the address system includes a first portion identifying an object and a second portion identifying an offset relative to the object, where a static identifier for the first portion is predetermined to identify an address space having a second predetermined width that is smaller than the first predetermined width, or a space of kernel objects.


