Intel SSD Caching
Introduction
SSD caching (also known as Intel Smart Response Technology) is not new, as it was introduced with the Z68 chipset. SSD caching is intended to provide improved performance for computers that use traditional hard drives in a way that is both cost effective and easy to configure. This is done by using a small, relatively cheap SSD drive to cache or store commonly accessed data. Since SSDs are much faster than traditional hard drives, this allows the computer to read the cached data much faster than if it had to read the same data directly from the hard drive.
SSD caching reduces the time it takes to load commonly used programs, but there is a limit to the benefits. If the data is already stored in the computer's RAM, then SSD caching does not improve load times at all since the computer's RAM is much faster than even the fastest SSD drive currently on the market. The main advantage of SSD cache comes into play when booting into Windows or when a program is run for the first time after a reboot or power off. Since the data in RAM gets cleared each time the computer power cycles, the data is not present in the RAM whereas it is still present on the SSD cache drive.
With SSD caching setup and configured, all that the cache needs in order to function is for the program to run once. After that, the data is stored for future access within the cache drive. On a chipset level, Intel SSD caching is currently only compatible with certain chipsets and their mobile equivalents, but some motherboard manufactures have released software that does much the same thing as Intel SSD caching. In this article we will only be examining the performance of the SSD caching as provided directly from Intel.
Behind the Scenes
In order to understand SSD caching and how it works, you need to understand some of what is going on behind the scenes when a computer is trying to find the data it needs. When a program is first run, all of the different files needed to launch that program (the main .exe, dll files, etc.) are read from the hard drive and loaded into the different levels of temporary storage found in a computer. On most computers, the basic hierarchy goes:
Whenever a computer needs to find data, it goes through this hierarchy of different storage locations starting with the CPU cache and working all the way back to the hard drive. As you go through the list, the speed of the storage gets slower so ideally the most commonly accessed data higher should be up on the list. For example, reading data from the CPU cache is much faster than reading from the RAM, which itself is much faster than reading directly from the hard drive. SSD caching adds an extra step between the RAM and hard drive, so this process becomes:
Since SSD drives are much faster than traditional hard drives, this gives the system one more place to look for data before having to read from the comparatively slow hard drive.
Due to space limitations, not all of the data in a computer can be stored into the relatively small CPU cache or RAM, and SSD caching is no different. While the algorithm to decide what data gets cached is confidential, testing shows that at the very least, files larger than a few MB are not stored in the SSD cache.
Setup and Configuration
Setting up an SSD cache is very easy as long as the following requirements are met:
- The chipset supports Intel Smart Response Technology
- A traditional primary hard drive
- A secondary SSD drive
- The SATA controller must be set to RAID mode (no arrays need to be configured)
- The Intel RST software must be installed.
Before we get into actually setting up SSD caching, there are a few things to note: First, a platter hard drive is required since the benefits of SSD caching are completely non-existent if you already using a SSD as your primary drive. Second, SSD caching is limited to 64GB. If the SSD is larger than 64GB, the remaining space is partitioned as a standard drive. You can either leave this space empty, or format it for use as additional storage through Window's Disk Management utility.
Once the five requirements listed above are fulfilled, simply follow the four easy steps shown below to enable and configure SSD caching:
1) Launch the Intel RST software and click on the "Accelerate" button. If the button is not present, you either are not in RAID mode or one of the other requirements have not been met.
2) On the next screen, click on the link "Enable acceleration"
3) A window comes up allowing you to configure the SSD cache. From here, you can select the cache size (with a maximum of 64GB), the drive to accelerate (likely the OS drive) and can choose between Enhanced* and Maximized** mode.
4) After clicking OK, the SSD cache is fully configured and ready for use. If you want to change the cache mode or disable SSD caching, you can do so from the Accelerate tab.
*Enhanced Mode: Acceleration optimised for data protection. This mode uses the write-through cache method to write data to the cache memory and the disk simultaneously. In the event that the accelerated disk or volume becomes inaccessible, fails, or is disconnected, there is no risk of data loss because data on the disk is always synchronized with the data in the cache memory. For data safety reasons, this mode is the default acceleration setting.
**Maximized Mode: Acceleration optimized for input/output performance. This mode uses the write-back cache method where data is written to the disk at intervals. In the event that the cache device or the accelerated disk or volume becomes inaccessible or disconnected, there is a chance of data loss. However, if the device was missing and can be reconnected, reboot the system and caching activity will resume from where it stopped. To remove the cache device in the future, make sure that acceleration is first disabled on that disk or volume.
Once these four steps are completed, SSD caching is fully setup and will start working immediately; no reboots or additional configuration is needed. At first, not much performance improvement will be seen, but this is due to the simple fact that no data has yet been stored to the SSD cache drive. As use continues, more and more data will get saved to the cache, resulting in better and better system performance.
Performance Benefits
To test the performance benefit of SSD caching, the following hardware in a laptop system was tested:
Laptop: | M550i 15-inch Notebook (Clevo P150EM) |
CPU: | Intel Core i7 Mobile i7-3720QM 2.6GHz 6MB 45W |
RAM: | 2x Kingston SODIMM DDR3-1333 8GB |
GPU: | NVIDIA MXM Geforce GTX 670M 1.5GB |
Hard Drive: | Western Digital Scorpio Black 250GB 7200RPM |
SSD Drive: | Intel 310 80GB SATA II mSATA SSD |
While most of the testing was performed with the operating system installed to the traditional hard drive and the SSD drive configured as the cache drive; testing was also carried out without the SSD cache configured as well as with the OS installed directly onto the SSD. This will give a good look at the difference between not using SSD caching, using SSD caching in both modes and running the system directly from the SSD drive.
To benchmark the performance advantages, testing was carried out to measure the difference SSD caching makes to Window's boot times. This was done using BootRacer to record how long it took Windows to load in each of the configurations. BootRacer provides measurement from two different points: when the base OS is loaded and ready to start user-specific applications; and when the OS is fully loaded and completely ready to go.
Below are both readings, although the total is of most interest. Note that these results are only for the Windows boot time and do not include pre-boot actions such as POST or BIOS hardware detection.
Sufficed to say, the results were impressive. The boot times were only 60% of what they were without SSD caching and essentially identical to simply using the SSD as the boot drive. The only unexpected result was that the difference between Enhanced and Maximized caching modes was so little. Given the risks associated with using Maximized cache, it is highly recommend using the Enhanced cache setting if the primary goal is to improve Windows boot times.
Moving on to the application load testing, three different programs were run and how long it took each to fully load recorded: GIMP (image editing), Avid Studio (video editing) and Google SketchUp (3D modeling). This is a fairly limited number of programs, but gives an insight into SSD caching performance, without getting too caught up on how SSD caching improves performance on a per-application basis.
Each of the programs had been previously launched (so that they would be present in the SSD cache when available) but the system was rebooted before taking measurements to ensure that they were not simply running from the computer's RAM.
| GIMP | Avid Studio | Google SketchUp |
No Cache | 14.2 | 45.9 | 4.7 |
Enhanced Cache | 4.3 (30%) | 10.2 (22%) | 1.6 (34%) |
Maximized Cache | 3.9 (27%) | 11.9 (26%) | 1.7 (36%) |
OS Installed On SSD | 3.8 (27%) | 10.9 (24%) | 1.5 (33%) |
RAM (additional runs) | 3.0 (21%) | 6.9 (15%) | 1.0 (21%) |
From testing, it is clearl to see that SSD caching proves great benefits to program load times. Once again it has to be noted that this is only for the first time you run the program after a reboot. Any subsequent runs will be pulled from the computer's RAM so the load times no matter what caching you use will be much better.
While it is impossible to define a trend using so few data points, the results appear to show that the longer a program normally takes to load, the greater the benefit gained from using SSD caching. With load times reduced to 25-35% of the standard load times, it's clear that SSD caching is not just a hype tool, but is very useful in minimising load times.
What really surprised was how well the SSD caching performed compared to having the OS running directly from the SSD. Having the OS and programs installed directly onto the SSD provided a bit better load times, but the results were close enough that we completely validated Intel's claims of getting SSD-like performance by using SSD caching.
The testing performed just barely scratches the surface of the various programs that can benefit from using SSD caching. To learn more about the performance benefits of SSD caching, we recommend the Anandtech and Tom's Hardware articles about Intel SSD caching. These articles are a little bit dated, but the technology for SSD caching has not changed much since the launch of Z68 so they are still very valid.
Conclusion
Overall, it is impressive how much OS and program load times were reduced when using SSD caching. One thing to keep in mind, however, is that using SSD caching does not result in a system-wide increase in performance. Reading data over a few MB in size and writing data must still be done directly from the hard drive and will not benefit from having an SSD as a cache drive. Depending on the size of the cache drive, some data might also get "evicted" from the cache as newer data gets written too it..
The performance improvement using SSD caching depends on what the computer is used for. If most of your time it is opening lots of different programs, but rarely any large files, SSD caching will likely give you a very good performance boost. If it is used for reading and saving very large files SSD caching will still give a performance boost when opening programs, but the actual reading and writing of the files will not be any faster. At the very least, Windows load times will be greatly improved no matter what the computer is used for.