Memory Page Allocation Using Cache Color Bitmaps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems, the displacement of data objects across memory pages of the same cache color leads to performance impairment due to slower retrieval from physical memory compared to the cache, as these objects tend to displace each other, necessitating frequent retrieval and storage, which slows down system performance.

Innovation Solution

A method for allocating memory pages based on cache colors, using bitmaps (system available colors bitmap, process bitmap, and object bitmap) to select and allocate pages across multiple cache colors, reducing displacement and improving performance by logical operations to determine available and recently used cache colors for allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data objects are allocated to memory pages of the same cache color, then allocation simplicity is maintained, but cache hit rate decreases due to frequent displacement and retrieval from physical memory

Engineering Contradiction:
Improvecache hit rateVSAvoidallocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The invention segments the cache into multiple cache colors and divides memory pages according to these cache colors. By allocating data objects to memory pages across different cache colors rather than concentrating them in one color, the system reduces cache displacement and increases cache hit rates. This segmentation approach directly addresses the contradiction by organizing memory allocation to match cache structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention applies local quality by treating different cache colors differently in the allocation process. Each cache color is monitored individually through bitmaps that track available pages and recent allocations. This localized tracking and allocation strategy optimizes each cache color's utilization independently, improving overall cache efficiency without requiring complete reorganization of the memory system.

Inventive Principle:
Principle #3Local quality

2Reliability

If data objects are frequently retrieved from physical memory due to cache displacement, then memory utilization is maximized, but system performance deteriorates due to slower retrieval time

Engineering Contradiction:
Improvememory utilizationVSAvoidretrieval time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The invention performs preliminary action by pre-allocating memory pages across different cache colors before data objects experience displacement. The system proactively tracks cache color utilization using bitmaps and makes allocation decisions in advance to prevent displacement. This preliminary organization of memory pages reduces the need for frequent retrieval operations from physical memory.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention implements feedback mechanisms through bitmaps that continuously monitor cache color status, tracking both available pages and recent allocation patterns. This feedback information is used to dynamically adjust allocation decisions, ensuring that data objects are placed in cache colors that will minimize displacement. The feedback loop prevents time-consuming retrieval operations by making informed allocation choices.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8274521B2System available cache color map
Publication Date: 2012.09.25 ORACLE AMERICAN INC
  • US8274521B2 patent drawing
  • US8274521B2 patent drawing
  • US8274521B2 patent drawing

AI summary

A method involving receiving an indication of a requirement to allocate at least one page for a process, where pages are associated with cache colors; generating a selection bitmap by performing a logical operation of a system available colors bitmap and a process bitmap, where the system available colors bitmap and the process bitmap each include one bit corresponding to each cache color, where each bit of the system available colors bitmap indicates whether a number of pages associated with a corresponding cache color that are available to be allocated is above a minimum threshold, and where each bit of the process bitmap indicates whether any pages associated with the corresponding cache color have been recently allocated for the process. The method also includes selecting, using the selection bitmap, a cache color; and allocating a page for the process, wherein the allocated page is associated with the selected cache color.