Decoupled Cache Control Paths for Parallel Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional cache pipeline architectures face challenges in managing complex cache protocols, especially in multiprocessor systems, due to coupled datapaths that require significant resources and are inflexible for changes, leading to issues like cache coherency management and the inability to support advanced operations like atomic operations and vector arithmetic efficiently.
Innovation Solution
The implementation of a cache memory with decoupled control paths, featuring a schedule module, control modules, and an output module that allows for parallel execution of requests through separate control paths, reducing resource contention and enabling more flexible management of cache operations without the need for duplicating expensive datapaths.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional cache pipeline architectures use coupled datapaths to manage complex cache protocols, then cache coherency management is achieved, but resource consumption increases and flexibility decreases
Solution Approach 1:
The cache controller is segmented into multiple independent control paths, each capable of handling specific cache protocol operations. This segmentation allows parallel processing of multiple requests while reducing the complexity of individual control paths, thereby improving cache coherency management without proportionally increasing resource consumption.
Solution Approach 2:
The patent introduces a temporal dimension to cache management by implementing sequential access to shared datapaths across multiple control paths. Different control paths can access the same datapath at different time slots, enabling efficient resource utilization while maintaining the ability to manage complex cache protocols through multiple independent control entities.
2Productivity
If conventional cache architectures duplicate datapaths to support parallel operations, then processing capacity increases, but resource consumption and cost increase significantly
Solution Approach 1:
Multiple control paths are merged to share common datapaths and functional units. Instead of duplicating expensive datapath resources for each control path, the patent enables multiple control paths to time-multiplex access to shared datapaths, achieving parallel processing capacity while significantly reducing resource consumption.
Solution Approach 2:
The shared datapaths are designed to be universal and multi-functional, capable of handling different types of cache operations (reads, writes, invalidations) for multiple cache ways. This universality allows a single datapath to serve multiple control paths and operation types, reducing the need for specialized duplicated resources.
3Stability of the object's composition
If conventional cache pipelines use coupled control paths, then cache operations are coordinated, but adaptability to changes and support for advanced operations is limited
Solution Approach 1:
The control logic is segmented into independent control paths that can be individually configured and modified. This segmentation enables the addition of advanced operations like atomic operations and vector arithmetic by extending individual control paths without disrupting the overall cache operation coordination established by the modular architecture.
Data Source
AI summary
An example cache memory includes a schedule module, control modules, a datapath, and an output module. The cache memory receives requests to read and/or write cache lines. The schedule module maintains a queue of the requests. The schedule module may assign the requests to the control modules based on the queue. A control module, which receives a request, controls the datapath to execute the request, i.e., to read or write the cache line. The control module can control the execution by the datapath from start to end. Multiple control modules may control parallel executions by the datapath. The output module outputs, e.g., to a processor, responses of the cache memory to the requests after the executions. A response may include a cache line. The cache memory may include a buffer that temporarily stores cache lines before the output to avoid deadlock in the datapath during the parallel executions of requests.


