Memory Partitioning via Progression Parameters
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Device complexity
If memory resources are shared without partitioning, then system complexity is reduced, but performance control capability deteriorates
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.
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
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.
Data Source
Figure 1~2
Figure 3
Figure 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.