Disk Drive Stream Detection Engine Cache Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current disk drive cache management policies are inadequate for efficiently handling multiple streams of data, as they do not effectively prioritize and allocate cache resources based on stream activity and sequential access patterns, leading to suboptimal cache hit probabilities and potential overflow.

Innovation Solution

A stream detection engine is implemented to identify and manage multiple streams by maintaining stream data structures with frequency and age counters, dynamically allocating and deallocating circular buffers in the cache memory based on stream activity, and adjusting read-ahead values to optimize cache usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a simple LRU cache management policy is used, then the cache management is simple and easy to implement, but the cache hit probability decreases when multiple streams are accessed simultaneously

Engineering Contradiction:
Improvecache management simplicityVSAvoidcache hit probability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the cache management by introducing stream-specific LRU lists for each detected stream. Instead of a single global LRU list, the system maintains separate LRU lists for each stream, allowing independent management of cache entries based on stream-specific access patterns. This segmentation enables the system to handle multiple streams effectively while maintaining the simplicity of LRU-based eviction within each stream's cache portion.

Inventive Principle:
Principle #1Segmentation

2Reliability

If stream tracing is implemented to improve cache management, then the cache hit probability improves, but the device complexity increases

Engineering Contradiction:
Improvecache hit probabilityVSAvoidstream detection and management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The stream detection engine operates autonomously to detect streams, maintain stream data structures, and manage cache allocation without requiring complex external control mechanisms. The system self-adjusts by automatically identifying streams from access patterns and managing their respective cache portions independently, reducing the need for higher-level management complexity while achieving improved cache hit probabilities.

Inventive Principle:
Principle #25Self-service

3Quantity of substance

If the cache memory size is increased to handle more streams, then the cache capacity increases, but the access time advantage over disk is reduced

Engineering Contradiction:
Improvecache capacityVSAvoidaccess time advantage
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent dynamically allocates and deallocates circular buffers in the cache memory based on detected stream activity. When streams are detected, corresponding circular buffers are allocated to store stream data. When streams become inactive, their buffers are deallocated to free up cache space. This dynamic allocation allows the cache to adapt its effective size based on actual usage patterns, maintaining fast access times for active streams while avoiding the need for permanently large cache memory.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7392340B1Disk drive employing stream detection engine to enhance cache management policy
Publication Date: 2008.06.24 WESTERN DIGITAL TECHNOLOGIES INC
  • US7392340B1 patent drawing
  • US7392340B1 patent drawing
  • US7392340B1 patent drawing

AI summary

A disk drive is disclosed comprising a disk, a head actuated over the disk, a host interface for receiving disk access commands from a host, a command queue for queuing the disk access commands, and a stream detection engine for evaluating the disk access commands to detect a plurality of streams accessed by the host. The stream detection engine maintains a stream data structure for each detected stream, wherein the stream data structure comprises a frequency counter for tracking a number of disk access commands associated with the stream out of a predetermined number of consecutive disk access commands received from the host. A disk controller selects one of the streams for servicing in response to the frequency counters.