Virtual SSD Emulation for Firmware Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for testing firmware of solid-state storage devices face limitations due to the slow access speed of SSDs and the complexity of investigating failures, which involve multiple factors including host OS compatibility, motherboard compatibility, and flash memory quality.

Innovation Solution

A method and system for virtual stress testing that uses a computing apparatus with a CPU and main memory to emulate volatile and non-volatile memory of SSDs, allowing for the execution of SSD firmware tests without the need for SSD hardware, using binary codes and markers to differentiate between data relevant and irrelevant to firmware operations, thereby speeding up the testing process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If real SSD-based stress testing is performed, then firmware bugs can be discovered, but testing speed is limited by SSD access speed

Engineering Contradiction:
Improvefirmware bug detectionVSAvoidtesting speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent creates a virtual copy of the SSD environment using virtualization technology. Instead of testing on physical SSD hardware, the firmware is tested in a virtualized SSD environment that replicates the behavior and characteristics of real SSDs. This allows testing to proceed at the speed of the host system rather than being constrained by physical SSD access speeds, thus resolving the contradiction between reliable bug detection and fast testing.

Inventive Principle:
Principle #26Copying

2Reliability

If real SSD-based testing is performed, then comprehensive firmware validation is achieved, but failure investigation becomes complex due to multiple factors

Engineering Contradiction:
Improvefirmware validationVSAvoidfailure investigation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts and isolates the firmware under test from the complex real-world SSD environment by placing it in a controlled virtualized testing environment. This separation allows testers to focus solely on firmware behavior without the confounding variables of host OS compatibility, motherboard issues, cable problems, and power supply stability that plague real hardware testing. The virtualized environment provides a clean slate where only the firmware being tested can cause failures, dramatically simplifying debugging and validation.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If conventional stress testing software is used, then intensive read and write traffic can be generated, but testing time becomes excessively long

Engineering Contradiction:
Improvetest intensityVSAvoidtesting duration
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent replaces the mechanical/physical SSD hardware system with a virtualized software-based system. By substituting the physical SSD with a virtual SSD implementation that runs in memory, the testing system can generate intensive read and write traffic without being constrained by the physical access speed limits of actual SSDs. This substitution enables high-intensity testing to complete in minutes rather than hours, resolving the contradiction between test intensity and testing duration.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10504605B2Method and system for testing firmware of solid-state storage device, and electronic apparatus
Publication Date: 2019.12.10 NATIONAL TSING HUA UNIVERSITY
  • US10504605B2 patent drawing
  • US10504605B2 patent drawing
  • US10504605B2 patent drawing

AI summary

A method for testing firmware of an SSD includes: controlling a main memory to emulate volatile and non-volatile memories of the SSD, fetching a testing sequence and a testing criterion, fetching read/write operations from binary codes generated by compiling the firmware, determining whether the read/write operations are associated with a marker, executing the read/write operations when a result of determination is affirmative, otherwise discarding a read/write of data, monitoring whether processes of executing of the read/write operations meet the testing criterion, and generating a result of a test of the firmware when it is monitored that the testing criterion is met.