FIFO Buffer Read-Modify-Write for RAID Parity Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for generating parity data in RAID systems are time-consuming and complex, often requiring multiple clock cycles and multiple controllers, which complicates the coordination of operations.

Innovation Solution

The use of a FIFO-based buffer with read and write pointers that perform read-modify-write operations within a single clock cycle, enabling concurrent writing and reading, and utilizing a single controller to simplify operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional methods are used for generating parity data, then fault tolerance is provided, but the process is time-consuming and requires multiple clock cycles

Engineering Contradiction:
Improvefault toleranceVSAvoidtime to generate parity data
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The buffer is divided into multiple buffer lines (first buffer line, second buffer line, etc.) that can be independently accessed. This segmentation allows simultaneous read and write operations on different buffer lines, enabling parity data generation within a single clock cycle while maintaining fault tolerance capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Data units are pre-positioned in the buffer lines before the RMW operation executes. The first data unit is written to the first buffer line and the second data unit to the second buffer line in advance, so that when the RMW operation occurs, all necessary data is already in position for immediate processing within a single clock cycle.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If conventional methods are used for generating parity data, then fault tolerance is achieved, but the coordination of operations becomes complex requiring multiple controllers

Engineering Contradiction:
Improvefault toleranceVSAvoidcoordination of operations
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent combines the functions of multiple controllers into a single controller that manages all RMW operations. The single controller coordinates write operations to the buffer, read operations from the buffer, and the mathematical operations to generate parity data, eliminating the complexity of multi-controller coordination while maintaining fault tolerance.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The buffer structure serves multiple functions: it stores data units, enables concurrent read/write operations, and facilitates RMW operations all within a single clock cycle. This multi-functionality reduces the need for separate control mechanisms that would be required in conventional multi-controller systems.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If RMW operations are performed quickly within a single clock cycle, then productivity is improved, but the buffer structure must support concurrent operations

Engineering Contradiction:
Improvespeed of parity data generationVSAvoidbuffer structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The buffer is segmented into multiple independent buffer lines that can be simultaneously accessed for reading and writing. This segmentation enables the high-speed RMW operations required for improved productivity while keeping the buffer structure relatively simple, as each buffer line operates independently without requiring complex inter-line coordination.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9864546B1FIFO-based operations for redundant array of independent disks (RAID) device
Publication Date: 2018.01.09 MARVELL ISRAEL (M L S L) LTD
  • US9864546B1 patent drawing
  • US9864546B1 patent drawing
  • US9864546B1 patent drawing

AI summary

Apparatuses and methods for modifying data stored on a disk are provided. A buffer comprises a FIFO queue. The FIFO queue includes a plurality of buffer lines for queuing data units in a predetermined order. A controller is configured to write data units from the disk to respective buffer lines of the FIFO queue. The controller is further configured to perform read-modify-write (RMW) operations to modify the data units written to the queue. Each RMW operation includes (i) popping a data unit from a buffer line of the queue based on a location of a read pointer, (ii) performing a mathematical or logic operation to modify the data unit that is popped from the queue, and (iii) pushing the modified data unit into the queue. The modified data unit is written to a buffer line of the queue based on a location of a write pointer.