Memory Partitioning for Noisy Neighbor Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In shared memory systems, the performance of one software execution environment can be hindered by another using excessive resources, leading to the 'noisy neighbor' problem, particularly in enterprise networking and server systems, where resource monopolization can impact other processes.

Innovation Solution

The implementation of partitioning mechanisms within the memory system, using partition identifiers to manage resource allocation and performance monitoring, allowing for controlled allocation of resources and separate tracking of performance data for each software execution environment, thereby mitigating contention and identifying performance issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple software execution environments share a common memory system, then resource utilization efficiency is improved, but performance of individual environments deteriorates due to noisy neighbor problem

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidperformance stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The memory system is segmented into multiple partitions, each associated with a specific software execution environment through partition identifiers. This segmentation allows independent resource allocation and performance monitoring for each environment, preventing one environment from adversely affecting others while maintaining overall resource utilization efficiency.

Inventive Principle:
Principle #1Segmentation

2Reliability

If partition identifiers are used to control resource allocation, then performance stability is improved, but device complexity increases

Engineering Contradiction:
Improveperformance stabilityVSAvoidmemory system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The partition identifier mechanism serves multiple functions simultaneously: it identifies the software execution environment, controls resource allocation parameters, and enables performance monitoring. This multi-functionality reduces the need for separate control mechanisms, thereby limiting the increase in device complexity while achieving performance stability.

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

3Measurement precision

If performance monitoring data is updated for all memory transactions, then measurement precision is improved, but loss of energy increases

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoidenergy consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

Performance monitoring is applied selectively based on partition identifiers rather than uniformly to all memory transactions. The system updates performance monitoring data only for specific partitions or under specific conditions, achieving sufficient measurement precision for each environment while reducing overall energy consumption compared to universal monitoring.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3568763A1Partitioning of memory system resources or performance monitoring
Publication Date: 2019.11.20 ARM LTD

AI summary

Memory transactions are issued to a memory system component specifying a partition identifier allocated to a software execution environment associated with said memory transaction. The memory system component selects one of a plurality of sets of memory system component parameters in dependence on the partition identifier specified by a memory transaction to be handled. The memory system component controls allocation of resources for handling the memory transaction or manages contention for the resources in dependence on the selected set of parameters, or updates performance monitoring data specified by the selected set of parameters in response to handling of said memory transaction. Partition identifier remapping circuitry is provided to remap a virtual partition identifier specified for a memory transaction by a first software execution environment to a physical partition identifier to be specified with the memory transaction issued to the memory system component.