User:SSDrocks

vRPM Definition and Purpose
The term vRPM, or virtual Revolutions Per Minute, is a synthetic measurement of performance introduced by SanDisk for solid state drive (SSD) storage devices inside client PCs. vRPM was created to give users a metric to compare SSD performance to the hard disk drive (HDD) and to other SSDs. It answers the question: "How fast would you have to spin a virtual HDD to achieve the performance of an SSD in a client PC?" It uses a language that users understand, RPM or Revolutions Per Minute, that is a defacto industry standard to measure the performance of the HDD inside PCs.

Criteria for vRPM Calculation
The vRPM metric is based on three criteria:
 * 1) Understanding the PC usage model
 * 2) Quantifying how HDDs operate inside PCs based on a functional model of their RPM
 * 3) Quantifying how much faster a virtual HDD would have to rotate in order to replicate the performance of an SSD in a PC

Comparing SSD vs. HDD Input/Output Operation
The performance of a storage device can be quantified as the number of Input/Output operations Per Second (IOPS) it achieves. HDD IOPS is proportional to RPM. When a system requests to read/write data randomly from/to a HDD, seek time and rotational latency are two HDD activities that significantly reduce HDD IOPS. Seek time is the time it takes to move the HDD head to the correct cylinder to begin to receive data. Rotational latency is the time it takes to rotate the HDD platter beneath the head so that the data can be read/written. Rotational latency varies based on the RPM of the HDD.

NAND flash is used as the non-volatile memory inside SSDs. It has faster random read than random write performance, since its write performance is delayed by the need to perform garbage collection to free space for writing. However, since NAND flash has no moving parts, the SSD achieves much higher IOPS than a HDD.

For the client PC usage model with approximately a 50:50 read/write ratio, a PC IOPS number can be calculated as follows:

$$PC IOPS (mean)=1/[0.5/SSD IOPS (Iwrite)] + [0.5/SSD IOPS (Iread)]$$

Using this equation, the results for client SSD PC performance are as follows:
 * 2006/7 SSD Generation: 5,000 Read IOPS; 10 Write IOPS; 20 PC IOPS
 * 2008 SSD Generation: 10,000 Read IOPS; 100 Write IOPS; 200 PC IOPS
 * 2009 (estimated) SSD Generation: 25,000 Read IOPS; 400 Write IOPS; 785 PC IOPS

Converting SSD IOPS Rates into vRPM
The vRPM performance of an SSD can be calculated as follows:

$$vRPM=50/[0.5/SSD IOPS (Iwrite)] + [0.5/SSD IOPS (Iread)]$$

where
 * SSD IOPS (IWrite) is the sustained (to the SSD media) 4KB random write rate, Queue Depth=4
 * SSD IOPS (IRead) is the sustained (to the SSD media) 4KB random read rate, Queue Depth=4
 * 50 is the product factor in the calculation

Using this calculation, SSD vRPM rates can be shown to be significantly better than HDD RPM rates, particularly in later generation SSDs:
 * 2006/7 SSD Generation: 5,000 Read IOPS; 10 Write IOPS; 20 PC IOPS; 1000 vRPM
 * 2008 SSD Generation: 10,000 Read IOPS; 100 Write IOPS; 200 PC IOPS; 10000 vRPM
 * 2009 (estimated) SSD Generation: 25,000 Read IOPS; 400 Write IOPS; 785 PC IOPS; 40000 vRPM