Multi-Processor Cache Segmentation for Storage Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Global cache systems in storage devices face challenges with concurrent access by multiple processors, leading to data lockouts and delays due to the need for additional mechanisms to prevent simultaneous writing and ensure data consistency.
Innovation Solution
Implementing multiple cache areas within a storage device, where data is loaded into a local cache accessible only to specific processors for reading and a global cache accessible to all processors for writing, with dynamic management of cache slots and metadata to optimize data access and reduce conflicts.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If global cache is used to store data accessed by multiple processors, then data access speed is improved, but system complexity increases due to additional mechanisms needed to prevent simultaneous writes and ensure data consistency
Solution Approach 1:
The cache is segmented into local cache areas and global cache areas. Each processor has an associated local cache that stores frequently accessed data, reducing the need for processors to access the global cache. This segmentation reduces contention and simplifies cache management by dividing the single global cache into multiple smaller, more manageable local caches that can be accessed without complex locking mechanisms.
2Productivity
If global cache is used for data storage, then data access efficiency is improved, but data lockouts occur causing delays when processors need to access unrelated data
Solution Approach 1:
The cache is divided into local cache areas accessible by specific processors and a global cache area accessible by all processors. This segmentation allows processors to access their local cache areas without causing lockouts, thereby improving data access efficiency and reducing processor delay time when accessing unrelated data.
Solution Approach 2:
Each processor is assigned a dedicated local cache area with specific access permissions. This local quality approach ensures that processors can efficiently access their local cache without interfering with other processors, eliminating data lockouts and reducing delays while maintaining overall system productivity.
3Reliability
If additional mechanisms are added to global cache to prevent simultaneous writes, then data consistency is improved, but overhead increases reducing system performance
Solution Approach 1:
The cache is segmented into local cache areas where each processor has exclusive or prioritized access, eliminating the need for complex write prevention mechanisms. This segmentation maintains data consistency by allowing processors to write to their local caches without coordination overhead, thereby preserving system performance while ensuring reliability.
Solution Approach 2:
The local cache acts as an intermediary between the processor and the global cache. Processors write to their local caches first, which then periodically synchronize with the global cache. This intermediary approach maintains data consistency without requiring complex real-time coordination mechanisms, thus preserving system performance while ensuring reliability.
Data Source
AI summary
Maintaining multiple cache areas in a storage device having multiple processors includes loading data from a specific portion of non-volatile storage into a local cache area in response to a specific processor of a first subset of the processors performing a read operation to the specific portion of non-volatile storage, where the local cache area is accessible to the first subset of the processors and is inaccessible to a second subset of the processors that is different than the first subset of the processors and includes loading data from the specific portion of non-volatile storage into a global cache area in response to one of the processors performing a write operation to the specific portion of non-volatile storage, where the global cache area is accessible to the first subset of the processors and to the second subset of the processors. Different processors may be placed on different directors.


