Multi-Tiered Cache System for I/O Bottleneck Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data storage systems using RAM face inefficiencies due to limitations in NAND memory technology, such as high write amplification, limited storage capacity, and performance bottlenecks, especially when handling large data operations, leading to reduced system performance and increased wear on memory cells.

Innovation Solution

Implementing a multi-tiered cache system with different performance levels, where a high-performance tier (like DRAM) is used as a default for standard operations and a lower-performance tier (like SCM) is utilized during high workload situations or for specific data operations, effectively managing I/O requests and extending memory longevity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If RAM is used as the primary cache to satisfy I/O requests, then I/O performance is improved, but storage capacity is limited and cost increases

Engineering Contradiction:
ImproveI/O performanceVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The cache system is segmented into multiple tiers: a first portion (higher performance, smaller capacity) and a second portion (lower performance, larger capacity). This segmentation allows the system to optimize for both speed and capacity by directing different types of I/O requests to appropriate cache portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the cache structure, organizing storage resources across multiple performance levels rather than using a single uniform cache. This dimensional approach enables the system to balance performance and capacity requirements.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If data is recalled to RAM to perform operations, then operation speed is improved, but valuable storage capacity is polluted and restricted until data is reused

Engineering Contradiction:
Improveoperation speedVSAvoidstorage capacity availability
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

Different portions of the cache are assigned different qualities or performance characteristics. The first portion provides faster access for active operations, while the second portion handles less time-sensitive data, allowing storage capacity to be effectively utilized without polluting high-performance cache space.

Inventive Principle:
Principle #3Local quality

3Reliability

If conventional SSD garbage collection is performed by relocating valid data to new blocks, then invalidated data can be erased and reused, but additional write operations increase write amplification

Engineering Contradiction:
Improvedata reuse capabilityVSAvoidwrite amplification
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache is segmented into portions with different performance characteristics, allowing the system to perform garbage collection more efficiently by utilizing the higher-performance first portion for relocating valid data, thereby reducing the impact on overall write amplification.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11797448B2Using multi-tiered cache to satisfy input/output requests
Publication Date: 2023.10.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11797448B2 patent drawing
  • US11797448B2 patent drawing
  • US11797448B2 patent drawing

AI summary

A computer-implemented method, according to one embodiment, includes: in response to a determination that an available capacity of one or more buffers in a primary cache is not outside a predetermined range, using the one or more buffers in the primary cache to satisfy all incoming I/O requests. In response to a determination that the available capacity of the one or more buffers in the primary cache is outside the predetermined range, one or more buffers in a secondary cache are allocated, and the one or more buffers in the secondary cache are used to satisfy at least some of the incoming I/O requests.