Memory Partitioning via Progression Parameters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core platforms, the 'noisy neighbor' problem occurs where one software execution environment's excessive resource usage in a shared memory system can hinder the performance of others, particularly in enterprise networking and server systems, leading to inefficiencies and performance losses.

Innovation Solution

The implementation of a memory bandwidth reservation system that uses partition identifiers to allocate specific memory transaction progression parameters, ensuring each software execution environment has a fair share of resources by controlling memory transactions and resource allocation based on these identifiers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple software execution environments share a common memory system, then resource utilization is improved, but performance isolation deteriorates due to the noisy neighbour problem

Engineering Contradiction:
Improveresource utilizationVSAvoidperformance isolation
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The memory system is segmented into multiple memory channels, with each channel associated with a specific memory controller. Partition identifiers are used to direct memory transactions to specific channels, effectively dividing the shared memory resource into isolated pathways. This segmentation allows multiple software execution environments to access memory simultaneously without interfering with each other's performance, resolving the noisy neighbour problem while maintaining high resource utilization.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If memory resources are shared without partitioning, then system complexity is reduced, but performance control capability deteriorates

Engineering Contradiction:
Improvememory system structureVSAvoidperformance control capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The memory transaction progression is made dynamic through the use of partition identifiers and associated progression parameters. Instead of a static memory allocation scheme, the system dynamically selects progression parameters based on the partition identifier of each memory transaction. This allows the memory system to adapt its behavior to different software execution environments and workload conditions, providing fine-grained performance control without requiring complex manual configuration.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If memory transaction progression is controlled uniformly for all software execution environments, then control mechanism simplicity is improved, but performance fairness deteriorates due to resource monopolization

Engineering Contradiction:
Improvecontrol mechanismVSAvoidperformance fairness
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

Different progression parameters are applied to different partition identifiers, creating local quality variations in memory transaction handling. Each software execution environment, identified by its partition identifier, receives tailored progression parameters that are optimized for its specific workload characteristics. This allows the system to maintain a relatively simple uniform control structure at the top level while implementing differentiated quality-of-service policies for individual partitions, ensuring performance fairness and preventing resource monopolization.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3568759B1Memory partitioning
Publication Date: 2024.07.24 ARM LTD
  • EP3568759B1 patent drawingFigure 1~2
  • EP3568759B1 patent drawingFigure 3
  • EP3568759B1 patent drawingFigure 4~5

AI summary

An apparatus is provided comprising processing circuitry to perform data processing in response to instructions of one of a plurality of software execution environments. At least one memory system component handles memory transactions for accessing data, with each memory transaction specifying a partition identifier allocated to a software execution environment associated with the memory transaction. The at least one memory system component is configured to select one of a plurality of sets of memory transaction progression parameters associated with the partition identifier specified by a memory transaction to be handled. Memory transaction progression control circuitry controls progression of the memory transaction in dependence on the selected set of memory transaction progression parameters.