Differential Cache Block Sizing for Memory Bandwidth Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face inefficiencies in cache management due to mismatched cache block sizes between processor cores and main memory, leading to suboptimal cache packing and channel bandwidth utilization, particularly in handling cache misses and prefetch requests.
Innovation Solution
Implementing differential cache block sizing by determining the number of available cache blocks based on main memory payload length and cache block size, and using a missing address storage unit (MASU) to associate and merge prefetch requests, allowing for optimized cache block sizing and efficient channel bandwidth utilization through vector prefetching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If a fixed cache block size is used for all cache requests, then the cache structure is simple and easy to implement, but cache packing efficiency and channel bandwidth utilization become suboptimal
Solution Approach 1:
The patent implements dynamic cache block sizing where the cache block size is adjusted based on the payload length of main memory requests. The cache controller determines the number of cache blocks to retrieve from main memory based on available payload length, transforming the fixed block size into a dynamic parameter that adapts to different memory transaction sizes, thereby improving cache packing efficiency without significantly complicating the cache structure
Solution Approach 2:
The patent changes the parameter of cache block size from a fixed value to a variable that depends on main memory payload length. The cache controller modifies the number of cache blocks retrieved based on the payload length information from main memory, allowing the system to optimize cache packing efficiency by matching cache block quantities to the actual data transfer capacity of the memory interface
2Speed
If the cache block size is optimized for processor core access, then processor performance is improved, but main memory channel bandwidth utilization becomes suboptimal
Solution Approach 1:
The patent creates a dynamic cache retrieval mechanism that adjusts the number of cache blocks fetched from main memory based on payload length. This allows the system to maintain small cache block sizes for fast processor access while simultaneously optimizing the number of blocks retrieved per memory transaction to fully utilize the available channel bandwidth, resolving the contradiction between processor speed and bandwidth utilization
Solution Approach 2:
The patent changes the retrieval parameter from a fixed cache block size to a variable number of cache blocks based on payload length. This allows the cache controller to fetch an optimal number of blocks that matches the memory channel capacity, ensuring both fast processor access (by maintaining appropriate block sizes) and efficient bandwidth utilization (by adjusting the quantity of blocks transferred)
3Productivity
If differential cache block sizing is implemented, then cache packing efficiency and bandwidth utilization are improved, but cache management complexity increases
Solution Approach 1:
The patent implements a dynamic cache block sizing mechanism controlled by a cache controller that receives payload length information from main memory. The controller dynamically determines the number of cache blocks to retrieve based on this information, improving cache packing efficiency while managing complexity through a centralized control unit that handles the differential sizing logic
Solution Approach 2:
The patent changes the cache block retrieval parameter from fixed to variable based on payload length. The cache controller manages this parameter change by calculating the number of cache blocks to retrieve using the payload length information, improving cache packing efficiency while containing management complexity within the cache controller's decision-making process
Data Source
AI summary
Described is a computing system and method for differential cache block sizing for computing systems. The method for differential cache block sizing includes determining, upon a cache miss at a cache, a number of available cache blocks given a payload length of the main memory and a cache block size for the last level cache, generating a main memory request including at least one indicator for a missed cache block and any available cache blocks, sending the main memory request to the main memory to obtain data associated with the missed cache block and each of the any available cache blocks, storing the data received for the missed cache block in the cache; and storing the data received for each of the any available cache blocks in the cache depending on a cache replacement algorithm.


