In-line Non-Volatile Memory Disk Read Cache and Write Buffer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional hard disk drives are slow to spin up, leading to prolonged boot times and power consumption, noise, and wear and tear, especially in server systems with multiple drives, and existing solutions do not adapt to changing user preferences or updated operating systems.

Innovation Solution

Implementing solid-state non-volatile memory in-line with the hard drive interface to cache data and control the disk spin, reducing the number of spin-ups and power consumption by buffering writes and using an energy storage device to maintain data integrity during power failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the hard drive is used for persistent storage, then data can be stored permanently, but the boot time and access time are slow due to disk spin-up requirements

Engineering Contradiction:
Improveboot timeVSAvoiddata transfer speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The storage system is segmented into two parts: a small non-volatile memory (NVM) cache and the main hard drive. The NVM cache stores frequently accessed data and boot information, while the hard drive stores the complete file system. This segmentation allows the system to boot quickly from NVM without requiring the hard drive to spin up, thus reducing boot time while maintaining full storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Data is pre-loaded into the non-volatile memory cache before the system needs it. During normal operation, the hard drive transfers data to the NVM cache in advance, so that when boot or hibernation resume is needed, the data is already available in the fast NVM storage, eliminating the need for slow disk spin-up and rapid data transfer.

Inventive Principle:
Principle #10Preliminary action

2Speed

If the hard drive spins up frequently to ensure data availability, then data access speed is improved, but power consumption and wear increase

Engineering Contradiction:
Improvedata access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary data transfer from the hard drive to the non-volatile memory cache during idle periods or when the hard drive is already spinning. This ensures that frequently accessed data is available in the fast NVM storage before it is actually needed, allowing the hard drive to spin down and conserve energy while maintaining quick data access capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The non-volatile memory cache acts as an intermediary between the hard drive and the system memory. It buffers data transfers and provides a middle layer that can supply data quickly without requiring the hard drive to be continuously spinning, thus reducing power consumption while maintaining data access speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If the hard drive spins up frequently to ensure data availability, then data access speed is improved, but the lifespan of the hard drive decreases due to increased wear

Engineering Contradiction:
Improvedata access speedVSAvoidhard drive lifespan
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

Data is preliminarily transferred to the non-volatile memory cache before actual access is needed. This reduces the frequency of hard drive spin-ups and mechanical operations, thereby decreasing wear on the hard drive components and extending its operational lifespan while still providing fast data access through the NVM cache.

Inventive Principle:
Principle #10Preliminary action

4Loss of time

If a small amount of non-volatile memory is used for boot storage, then boot time is reduced, but the memory cannot be changed to adapt to updates

Engineering Contradiction:
Improveboot timeVSAvoidmemory update capability
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The non-volatile memory cache serves as an intermediary storage layer that combines the advantages of both ROM and hard drive storage. It provides fast boot times like ROM while maintaining the ability to be updated and modified like hard drive storage. The NVM can be programmatically updated with new boot code and data without requiring physical replacement or having fixed content, thus providing both speed and adaptability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This solution significantly reduces boot and hibernate times, decreases power consumption, and extends the life of hard disk drives by minimizing spin-ups and wear, while allowing for dynamic data management and adaptation to user preferences.

Implementation Method 1

an energy storage device, such as a small battery, that provides sufficient power to keep the device powered long enough to move data from volatile memory to the NV memory to the disk drive platters in case of sudden power failure

Methodology Applied
Scientific EffectEnergy storage: Accumulator (energy)

Data Source

PatentUS7620773B2In-line non volatile memory disk read cache and write buffer
Publication Date: 2009.11.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7620773B2 patent drawing
  • US7620773B2 patent drawing
  • US7620773B2 patent drawing

AI summary

A method and apparatus to improve the read/write performance of a hard drive is presented. A device having solid state, non-volatile (NV) memory is added in-line to the conventional hard drive and acts as a read/write cache. Data specified by the operating system is stored in the NV memory. The operating system provides a list of data to be put in NV memory. The data includes data to be pinned in NV memory and data that is dynamic. Pinned data persists in NV memory until the operating system commands it to be flushed. Dynamic data can be flushed by the hard drive controller. Data sent by an application for storage is temporarily stored in NV memory in data blocks until the operating system commits it to the disk.