Unified Cache Dynamic Allocation for SCSI Logical Units
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems in SCSI devices face inefficiencies due to static cache allocation policies, which lead to underutilization of cache resources and increased hardware complexity, and fail to dynamically allocate cache based on Quality of Service (QoS) traffic classes and LU requirements, resulting in degraded I/O performance and frequent cache flushing.
Innovation Solution
A system and method for dynamically allocating a unified cache to Logical Units (LUs) in SCSI devices, utilizing a cache balancer module, a unified cache module, and a cache allocation table to allocate cache slots based on I/O requests, classify cache entries by QoS traffic classes, and selectively flush stale entries, thereby optimizing cache usage and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If static cache allocation is implemented for each LU, then cache allocation is simple and hardware complexity is reduced, but cache utilization efficiency deteriorates and I/O performance is degraded
Solution Approach 1:
The patent implements dynamic cache allocation where the cache allocation table maintains cache allocation status for all LUs and the system dynamically adjusts cache slot allocation based on I/O requests and QoS traffic classes. This allows cache resources to be flexibly reallocated according to actual demand rather than fixed static partitions, resolving the contradiction between simple allocation and efficient utilization.
Solution Approach 2:
The patent creates a unified cache that serves multiple LUs simultaneously through a single cache allocation table, rather than dedicating separate static cache segments to each LU. This universal cache structure improves overall utilization while maintaining manageable complexity through centralized control.
2Adaptability or versatility
If scalable cache is added to switch between fixed and scalable cache, then cache flexibility is improved, but hardware complexity increases
Solution Approach 1:
The patent implements dynamic cache allocation where the cache allocation table maintains cache allocation status for all LUs and the system dynamically adjusts cache slot allocation based on I/O requests and QoS traffic classes. This allows cache resources to be flexibly reallocated according to actual demand rather than fixed static partitions, resolving the contradiction between simple allocation and efficient utilization.
3Reliability
If all cache entries are flushed using cache flush operation, then cache consistency is maintained, but system performance deteriorates due to frequent flushing
Solution Approach 1:
The patent extracts the flushing operation from a blanket all-or-nothing approach to a selective targeted operation. The cache balancer module identifies and flushes only specific cache entries that need invalidation based on LU requirements and cache allocation status, rather than flushing entire cache segments. This selective extraction maintains consistency while minimizing performance impact.
Solution Approach 2:
The cache allocation table provides feedback about cache entry status and allocation to the cache balancer module, enabling intelligent decisions about which entries to flush. This feedback mechanism allows the system to maintain consistency only where necessary rather than performing unnecessary widespread flushing operations.
Data Source
AI summary
A system and method provide a unified cache in a Small Computer System Interface (SCSI) device which can be dynamically allocated to one or more Logical Units (LUs). A cache balancer module of the SCSI device can allocate the entire unified cache to a single LU, or divide the unified cache among multiple LUs. The cache entries for each LU can be further classified based on Quality of Service (QoS) traffic classes within each LU thereby improving the QoS performance. The system provides a cache allocation table that maintains a unified cache allocation status for each LU.


