Adaptive Cache Controller for Multi-SSD Data Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache memory systems face inefficiencies in data storage and retrieval, particularly in processor access speed and system performance, as they rely on slower system memories and lack effective mechanisms for managing data across multiple solid-state disks.

Innovation Solution

A caching system that partitions solid-state disks into fixed-size blocks, writes data sequentially and striped across disks, ensures data redundancy, and dynamically manages block usage through garbage collection and SSD reconfiguration, allowing for online expansion or contraction of storage capacity without disrupting cached data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored in system memory (DRAM) for processor access, then data storage capacity is sufficient, but data access speed becomes slow

Engineering Contradiction:
Improvedata access speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments storage into multiple levels: cache memory (fast, small capacity) and system memory (slower, large capacity). The cache controller manages this segmentation by intercepting memory access requests and serving data from cache when available, thus achieving fast access for frequently used data while maintaining sufficient storage capacity in system memory.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache memory acts as an intermediary between the processor and system memory. The cache controller mediates access requests by checking if data exists in cache (hit) or must be fetched from system memory (miss), thereby speeding up access without requiring the processor to directly access the slower system memory for every operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If cache memory is used to store frequently accessed data, then data access speed improves, but system complexity increases due to cache management

Engineering Contradiction:
Improvedata access speedVSAvoidcache management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The cache controller implements self-service through automatic cache line validation, hit/miss detection, and data replacement policies. The system autonomously manages cache contents by monitoring access patterns and dynamically replacing least recently used data, reducing the need for complex external management mechanisms.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The cache system dynamically changes parameters such as cache replacement policies (LRU, FIFO) and associativity levels based on workload characteristics. The controller adjusts cache management strategies according to access patterns, transforming static cache structures into adaptive systems that optimize performance for different scenarios.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple solid-state disks are used for caching, then storage capacity and redundancy improve, but data management complexity increases

Engineering Contradiction:
Improvedata redundancyVSAvoidmulti-SSD management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges multiple SSDs into a unified cache storage pool managed by a single cache controller. The controller abstracts the underlying multi-SSD complexity by presenting a unified address space and handling data distribution, replication, and recovery across disks, thereby achieving redundancy without exposing management complexity to the processor or upper software layers.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9645920B2Adaptive cache memory controller
Publication Date: 2017.05.09 MARVELL ASIA PTE LTD
  • US9645920B2 patent drawing
  • US9645920B2 patent drawing
  • US9645920B2 patent drawing

AI summary

A system comprises a partitioning module and a writing module. The partitioning module is configured to partition each of a plurality of solid-state disks into a plurality of blocks. Each of the plurality of blocks has a predetermined size. The writing module is configured to write data to one or more of the plurality of solid-state disks in a sequence starting from a first block of a first solid-state disk of the plurality of solid-state disks to a first block of a last solid-state disk of the plurality of solid-state disks, and subsequently starting from a second block of the first solid-state disk to a second block of the last solid-state disk. In each of each of the plurality of the plurality of solid-state disks, the second block is subsequent to the first block.