Investigating Samsung's RAPID Caching Technology


Introduction

SSDs in Overdrive

Previously, in our feature of the Samsung SSD 840 EVO versus the Crucial M500, we noted that the drive featured something called RAPID mode and we briefly explained that it was a new caching technology that aims to boost random I/O performance with smaller size data at low queue depths. Today, we will be taking a closer look at this new technology and also find out if it is really effective.

RAPID actually stands for Real-time Accelerated Processing of I/O Data and it was introduced in July last year at the Samsung SSD Global Summit alongside the Samsung SSD 840 EVO. At that time, many believed that RAPID mode was introduced to negate the disadvantages of the SSD 840 EVO’s slower TLC NAND, but Samsung has categorically stated that this is not so, and what RAPID aims to do is to bring the performance of the SSD 840 EVO to a whole new level. In addition, Samsung has also confirmed that the summit that this new caching technology will be rolled out to its flagship SSD 840 Pro and also the SSD 840 at a later time.

To be sure, using cache to improve storage performance is not new - traditional mechanical hard disk drives have long used small amounts of flash memory onboard (typically 16MB to 64MB) to help improve performance. However, what’s unique about RAPID is in the way it determines what to cache and how it goes about doing it.

 

How it Works

First and foremost, it is important to note is that RAPID mode is a software-based technology and as such requires Windows 7 or 8 to work - sorry Mac users - and also the appropriate Samsung Magician software (version 4.2 and later) and firmware. Samsung does not explicitly specify what kind of a CPU is required, only that it must be at least 1GHz, but it did specify at least 2GB of RAM. This is crucial because unlike other caching technology, RAPID mode accelerates performance by using idle CPU cores and unused system memory.

When activated, RAPID mode inserts a filter driver in the Windows storage stack and it monitors all your storage-related activities between the operating system, user applications and the SSD. As it does, it learns what applications you use most often and caches them for faster access in future. According to Samsung, unlike typical caching algorithms which only concern themselves with application data, RAPID looks at every read request and caches both application and user data. In addition, it also looks at frequency of access, file types, system statuses and RAM availability to dynamically maintain the cache and accelerate read operations.

RAPID optimizes write operations too by caching write requests in DRAM before moving them in larger blocks to the SSD itself. This helps improve overall performance and also increases endurance of the drive by limiting writes to the SSD cells.

There has been concerns raised with caching writes to DRAM, especially since it is a volatile form of memory and could therefore result in data loss should power be suddenly cut. However, Samsung has assured that RAPID adheres strictly to Windows conventions and the cache is frequently flushed so that data does not remain on the DRAM for longer than is necessary.

For now, RAPID mode limits itself to 1GB of system memory and between reboots, this cache is automatically transferred to the SSD. Naturally, this costs some storage space, but this move preserves contents of the cache and ensures that it constantly and effectively learns your usage patterns.

For those who are concerned about RAPID mode taking up excessive CPU and system memory resource, Samsung is quick to state that RAPID technology was designed to specifically make use of excess system resources and will automatically scale down resource usage and even free up memory for other tasks. In our own usage, we noticed that while system memory and CPU load does go up on storage intensive workloads, it was not so much as to degrade the overall user experience. Furthermore, performance gains from RAPID mode more than makes up for the extra resources it consumes, as you will see later in the benchmarks.