Memory Partitioning for Noisy Neighbor Mitigation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Reliability
If partition identifiers are used to control resource allocation, then performance stability is improved, but device complexity increases
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.
3Measurement precision
If performance monitoring data is updated for all memory transactions, then measurement precision is improved, but loss of energy increases
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.
Data Source
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.