Shared Cache Controller with Virtual Channels for Low-Stall Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-core coherent systems, memory access latency and throughput are bottlenecked by the interconnect handling diverse cache structures and memory access types, leading to increased CPU stall overhead and reduced shared memory bandwidth.
Innovation Solution
A multi-core shared memory controller (MSMC) with integrated address translation and cache prewarming functionality, utilizing virtual memory addresses for DMA operations and virtual channels to arbitrate memory access requests, reducing latency and enhancing throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a coherence interconnect is added to arbitrate among multiple masters' requests and guarantee data consistency, then data coherency is maintained, but the interconnect becomes the access bottleneck reducing memory throughput
Solution Approach 1:
The memory controller is segmented into multiple independent channels, each capable of handling memory requests autonomously. This segmentation allows parallel processing of multiple memory access requests without requiring a single centralized interconnect to arbitrate every request, thereby maintaining data coherency while increasing overall memory throughput.
Solution Approach 2:
The patent introduces virtual channels as an additional dimension for memory access management. By adding this logical layer, the system can multiplex multiple memory requests across physical channels more efficiently, reducing the arbitration burden on the coherence interconnect while maintaining data consistency through virtual channel management.
2Reliability
If the interconnect handles diverse memory access types and sizes serially to guarantee atomicity, then data consistency is ensured, but CPU stall overhead increases
Solution Approach 1:
The memory controller performs preliminary actions by pre-fetching and caching memory data before CPU requests are fully processed. This allows the system to prepare data in advance, reducing the time CPUs spend waiting for memory operations while maintaining data consistency through the caching mechanism.
Solution Approach 2:
The patent implements continuous memory access operations through multiple parallel channels that can simultaneously service different CPU cores. This continuity eliminates idle time in the memory subsystem, reducing CPU stall overhead while maintaining atomicity through coordinated channel management.
3Loss of time
If cache components issue cache allocate accesses with critical line first requests to reduce CPU cache miss stall overhead, then CPU stall overhead is reduced, but other CPU's stall overhead extends and shared memory throughput reduces
Solution Approach 1:
The memory controller is divided into multiple independent channels that can simultaneously handle critical line requests from different CPU cores. This segmentation allows the system to service multiple CPUs in parallel rather than sequentially, reducing stall overhead for all CPUs while maintaining high shared memory throughput through concurrent access.
Data Source
AI summary
Techniques for accessing memory by a memory controller, comprising receiving, by the memory controller, a memory management command to perform a memory management operation at a virtual memory address, translating the virtual memory address to a physical memory address, wherein the physical memory address comprises an address within a cache memory, and outputting an instruction to the cache memory based on the memory management command and the physical memory address.


