CXL Storage Control Using Dirty-Data Bitmaps and Cache Flush

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in managing dirty data consistency and efficiency during data transfers between devices, leading to low transfer speeds and potential data inconsistency.

Innovation Solution

A storage device with a first memory, a second memory configured to store a bitmap indicating dirty data, and a storage controller that manages data transfer and cache flush operations using a CXL switch, enabling pre-fetching of dirty data into the second memory and requesting cache flush for external devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If dirty data is transferred directly from the first memory to external devices, then data transmission speed is improved, but data consistency reliability deteriorates due to potential cache inconsistencies

Engineering Contradiction:
Improvedata transmission speedVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent sends a cache flush request command to external devices before transferring dirty data. This preliminary action ensures that external caches are flushed of stale data, guaranteeing data consistency when the dirty data is subsequently transferred. The bitmap is updated to reflect which data blocks are dirty, enabling targeted pre-fetching and cache flush operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all data is pre-fetched into the second memory before transfer, then data transmission reliability is improved, but processing time and energy consumption increase

Engineering Contradiction:
Improvedata transmission reliabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of pre-fetching all data, the patent uses the bitmap to identify only the dirty data blocks that need to be transferred. The cache flush request is sent for all data blocks to ensure consistency, but the actual pre-fetching and transfer operations are limited to only the dirty blocks identified by the bitmap, reducing unnecessary processing time and energy consumption.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If cache flush is requested for all external devices, then data consistency is ensured, but communication overhead and processing complexity increase

Engineering Contradiction:
Improvedata consistencyVSAvoidcontrol complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the data management process by maintaining a bitmap that tracks dirty data blocks individually. This segmentation allows the system to send cache flush requests for all blocks while only performing actual data transfer for dirty blocks identified in the bitmap, reducing unnecessary operations and simplifying the control logic compared to managing all data uniformly.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250238157A1Storage devices, storage systems and methods for operating the same
Publication Date: 2025.07.24 SAMSUNG ELECTRONICS CO LTD
  • US20250238157A1 patent drawing
  • US20250238157A1 patent drawing
  • US20250238157A1 patent drawing

AI summary

A storage device, a method for operating the storage device and a storage system. The storage device comprising a first memory, a second memory configured to store a bitmap indicating whether data stored in the first memory is dirty data, and a storage controller configured to control the first memory and the second memory, the storage controller configured to receive, from a CXL (Compute eXpress Link) switch, a transfer command to send the dirty data stored in the first memory to a first external device connected to the CXL switch, and in response to the transfer command, pre-fetch the data stored in the first memory into the second memory, based on the bitmap and send, to the CXL switch, a request command to request cache flush to at least one second external device connected to the CXL switch.