Configurable Cache Address Bit Multiplexing for Tag Utilization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache systems face challenges in efficiently resizing cache lines without altering the number of tags, which affects tag utilization and data RAM configurations, particularly in low-powered multi-threaded processors where traditional data locality assumptions do not hold.
Innovation Solution
A configurable cache system that modifies cache line size while maintaining the same number of tags by shifting the index location during memory address lookup, using multiplexers to select address bits based on cache size, allowing for flexible mapping between tags and cache lines to support various data RAM configurations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If cache line size is modified to resize the cache, then cache size is adjusted, but the number of tags must change which reduces tag utilization efficiency
Solution Approach 1:
The patent changes the interpretation of address bits rather than physically reconfiguring the cache structure. By dynamically adjusting which address bits are used as index bits versus tag bits based on cache size, the system achieves cache resizing while maintaining consistent tag array dimensions and preserving tag utilization efficiency
Solution Approach 2:
The system dynamically reconfigures the address bit allocation between index and tag fields based on the desired cache size. Multiplexers selectively route address bits to different fields, enabling the cache to adapt between different size configurations (e.g., 8KB, 16KB, 32KB) without physical reconfiguration, thereby maintaining optimal tag utilization across different operating modes
2Quantity of substance
If the number of tags is changed to accommodate different cache sizes, then cache capacity is adjusted, but address space conflicts increase
Solution Approach 1:
The patent changes the address bit allocation parameters dynamically. When cache size increases, more address bits are allocated to the index field and fewer to the tag field, and vice versa. This parameter adjustment allows the same physical tag array to support different cache capacities while maintaining proper address space mapping and minimizing conflicts
3Device complexity
If traditional cache structures are used in low-powered multi-threaded processors, then device complexity is reduced, but performance decreases due to poor tag utilization
Solution Approach 1:
The patent introduces dynamic reconfiguration capability into the cache structure through multiplexers that can selectively route address bits. This dynamic approach allows the same hardware structure to optimize for different workloads and thread configurations, improving performance without proportionally increasing device complexity
Solution Approach 2:
The configurable cache structure serves multiple functions: it can operate in different cache sizes (8KB, 16KB, 32KB), support different associativity configurations, and adapt to various workload patterns. This multi-functionality is achieved within a unified hardware framework, maintaining relative simplicity while dramatically improving performance across diverse scenarios
Data Source
AI summary
A method includes receiving an address at a tag state array of a cache, wherein the cache is configurable to have a first size and a second size that is smaller than the first size. The method further includes identifying a first portion of the address as a set index, wherein the first portion has a same number of bits when the cache has the first size as when the cache has the second size. The method further includes using the set index to locate at least one tag field of the tag state array, identifying a second portion of the address to compare to a value stored at the at least one tag field, locating at least one state field of the tag state array that is associated with a particular tag field that matches the second portion, identifying a cache line based on a comparison of a third portion of the address to at least one status bit of the at least one state field when the cache has the second size, and retrieving the cache line.


