Memory Portion Balancer Shuffling Addresses for Cache Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The speed difference between processors and memories in computers leads to inefficiencies, causing systems to appear frozen and limiting the growth of features and applications, as existing memory-access acceleration schemes fail to perform effectively when code behaves unexpectedly, resulting in underutilization of cache and multibank memory resources.
Innovation Solution
The implementation of a memory portion balancer that shuffles memory addresses based on bit ratios to balance access across multiple cache sets or memory banks, ensuring more equal distribution and utilization, thereby enhancing memory-access acceleration and overall computing performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If code naturally distributes requests evenly across memory portions, then memory access efficiency is improved, but this natural distribution does not occur in practice leading to performance degradation
Solution Approach 1:
The patent introduces a memory portion balancer as an intermediary component between the processor and memory system. This balancer intercepts memory requests, analyzes their distribution pattern, and actively redistributes them across memory portions (cache sets or memory banks) to achieve balanced access. The intermediary resolves the contradiction by not relying on natural code distribution but rather actively managing and balancing the distribution through hardware intervention.
2Speed
If faster processor operates independently without waiting for memory, then processing speed is improved, but the speed difference causes the processor to wait and appear frozen
Solution Approach 1:
The memory portion balancer enables continuous useful action by preventing processor stalls. Through balanced memory access distribution, it ensures that memory requests are efficiently handled across multiple memory portions, reducing wait times and keeping the processor continuously productive. This resolves the speed mismatch by making memory access more predictable and efficient, allowing the fast processor to maintain its pace without frequent waiting.
3Productivity
If existing memory-access acceleration schemes are used, then some performance improvement is achieved, but they fail when code behaves unexpectedly resulting in underutilization of cache and multibank memory
Solution Approach 1:
The patent implements dynamic memory access balancing that adapts to different code execution patterns. The memory portion balancer monitors access patterns and dynamically adjusts the distribution strategy in real-time, rather than relying on fixed or static schemes. This dynamic approach allows the system to handle unexpected code behavior effectively, maintaining high memory utilization regardless of how the code accesses memory, thus resolving the contradiction between acceleration performance and adaptability.
Data Source
AI summary
Described apparatuses and methods balance memory-portion accessing. Some memory architectures are designed to accelerate memory accesses using schemes that may be at least partially dependent on memory access requests being distributed roughly equally across multiple memory portions of a memory. Examples of such memory portions include cache sets of cache memories and memory banks of multibank memories. Some code, however, may execute in a manner that concentrates memory accesses in a subset of the total memory portions, which can reduce memory responsiveness in these memory types. To account for such behaviors, described techniques can shuffle memory addresses based on a shuffle map to produce shuffled memory addresses. The shuffle map can be determined based on a count of the occurrences of a reference bit value at bit positions of the memory addresses. Using the shuffled memory address for memory requests can substantially balance the accesses across the memory portions.


