Thursday, December 15, 2011

Seagate 2nd Generation Momentus XT (750GB) Hybrid HDD

To say I liked the original Momentus XT would be an understatement. While Seagate had the lofty goal of negating the need for an SSD with its first mass-market hybrid HDD, the reality was the Momentus XT ended up being the best 2.5" hard drive on the market. In many cases, it was fast enough to be better than 3.5" desktop hard drives as well.
Seagate earned this praise by combining a small amount of of SLC NAND (4GB at the time) with a traditional 7200RPM 2.5" hard drive. A separate NAND controller was introduced to handle caching of frequently accessed data to the NAND. By acting solely as a read cache (only read requests to the drive are pulled into the cache), Seagate skirted the complicated issue of effectively building an on-board SSD by only caching reads from the hard drive and not writes to it.

It's Analogy Time: How Caches Work

Caches are pretty simple to understand. Let's say you're running a library with thousands of books and thousands of users. Allowing everyone to roam freely would create a traffic nightmare so you make all requests for books go through your help desk. A customer approaches the desk, tells your employee what book they want, and your employee runs to grab the book. This happens for each request. The time it takes your employee to return with a book after receiving a request from a customer is your service time and it's a value that you want to keep as low as possible in order to prevent you losing your customers to another library.
Over time your employee may notice that certain books are frequently requested. A smart employee would decide to have copies of these books at the help desk, to more quickly service those requests. With a large enough desk, your employee could likely accommodate a good percentage of the requests that come by. At the end of the day, doing so would lower your service time and allow you to serve more customers. Requesting a book not located at the help desk would still take the same amount of time.
If reading patterns change over time, your employee could adapt. Assuming there's a finite amount of space at the help desk, books that are no longer as frequently read as they once were could be evicted from the desk and replaced with more popular titles.
The library I've described above is an example of a cache. The books are of course data, the customers are instructions and the help desk is the cache itself. Data that's accessed more frequently is stored in the cache and as access patterns change, so does the data in the cache.

Improving Mechanical Storage via a NAND Cache

Caches exist in several locations in any modern day computer, both in hardware and software. We often talk about CPU caches that are used to save trips to main memory, but in the case of Seagate's Momentus XT there's an on-board NAND cache to save trips to the spinning platters.
The mechanical components of a hard drive are what make it slow. Dealing with electrons is far quicker than waiting to reposition a head over a spinning platter. For a while, hard drive manufacturers were able to improve performance through spinning the magnetic platters at higher speeds. Power and reliability concerns have limited progress in spindle speed however, most high performance client drives spin their platters at 7200RPM. Instead, increasing platter density has been the hard drive maker's weapon of choice to address performance over the past decade.
Improving platter density only really addresses sequential access performance, without faster spindle speeds, random access performance remains mostly untouched from one generation to the next. Amdahl's law tells us the maximum speedup we can hope to gain from a new system is ultimately bound by the portion of the system that isn't upgraded. The same rule applies to hard drives. For any workload that isn't perfectly sequential in nature, not addressing random access performance means that improvements to platter density will provide increasingly smaller performance improvements. In other words, even if you double sequential performance, you'll see a less than double increase in overall performance. Taken to the extreme, it'll eventually mean that doubling the sequential performace of a hard drive will result in virtually no impact in overall performance.
Granted the hard drive manufacturers won't let it get to that point, and the Momentus XT shows us one path to avoiding this problem.
Seagate takes its standard 7200RPM 2.5" drive architecture and combines it with a NAND controller, firmware and 8GB of SLC NAND. The job of the NAND controller is to look at LBAs requested by the host controller and pull the most frequently read data into the NAND. A copy of the data remains on the mechanical drive, so in the unlikely event of a failure in the NAND the data is still safe. The controller only caches read requests to the drive, which has a couple of major implications. On the one hand, this greatly simplifies the Momentus XT's architecture. It reduces traffic to the NAND, allowing for a simpler page management algorithm and guaranteeing longer lifespan (although using SLC NAND already helps in that department). On the other hand by only caching reads, it means that writes to the hard drive are no faster than they would be on a more conventional drive. Seagate is banking on the fact that most client usage models are read rather than write heavy. Although the Momentus XT's NAND doesn't directly cache writes, it can improve write performance by allowing the drive to service some reads through the cache, thus freeing up the drive's heads for write operations instead of being weighed down by servicing both.

The New Momentus XT

The Momentus XT originally only had 4GB of SLC NAND on board, but the second generation 750GB version now comes with 8GB. The new drive retails for $249, up nearly $100 from the $156 MSRP of the original 500GB version.
Seagate Momentus XT Comparison
 ST750LX003ST95005620AS
Capacity750GB500GB
Sector Size4KB512B
DRAM Buffer Size32MB32MB
NAND Cache Size8GB SLC NAND4GB SLC NAND
SATA Interface6Gbps3Gbps
Price$245$140
A doubling of the NAND capacity allows Seagate to be much more aggressive with caching. The Momentus XT will now achieve near peak-performance in many cases by the second time you access data, while its predecessor could require more runs to make optimal use of the cache.
Seagate will eventually use the larger NAND to cache writes as well as reads. Early next year 750GB Momentus XT owners will get a firmware update adding write caching support. I've played with an early version of this firmware and it does improve performance tremendously.
Intel obviously believed that 20GB was the right size for an SSD cache, so why did Seagate stick to 8GB when upgrading the Momentus XT? Ultimately it's an issue of cost. Seagate is hoping to drive its hybrid HDD technology into the mainstream by convincing OEMs to use its Momentus XT drives. To gain widespread adoption Seagate needs two things: 1) aggressive pricing and 2) a second supplier of hybrid HDDs.
Hard drives are treated as commodities by all OEMs. They're a checkbox on a spec sheet that typically only values capacity and cost. Performance can be used as an upgrade but only if the capacity and cost points are compelling. It's this mentality that limits the Momentus XT to 8GB of NAND while encouraging an upgrade to a 750GB capacity. From a performance standpoint, Seagate probably needs at least twice as much NAND on board to really deliver an optimal solution for all users. Ideally I'd like to see 32GB of NAND on a hybrid drive like the Momentus XT. Unfortunately, by using SLC NAND Seagate pretty much guarantees it's not going to ship anything close to that size anytime soon.
Meeting the second requirement is a more difficult one. Most OEMs want two suppliers for commodity parts like display panels or hard drives. Today, Seagate is the only HDD manufacturer delivering a high-performance hybrid solution like the Momentus XT. Seagate does expect this to change eventually, but until it does the Momentus XT's sales potential is limited.
With the second generation Momentus XT we have a hybrid hard drive that has the ability to outperform its predecessor, without really seeing the huge upgrade necessary to fully negate the need for an SSD. To quantify the performance improvement over the previous generation as well as its place in the HDD-SSD continuum, we turn to a mix of application based, trace based and synthetic benchmarks.

Once More, With Feeling

Just as we did in our original Momentus XT review, we'll start with a look at some hand-timed application tests.
First up is a good old fashioned boot test. I measured boot time on our testbed from POST to first seeing the mouse cursor on the Windows 7 desktop. This isn't a timing of actual boot-to-use since more loading happens even after you get to the desktop, but it does encapsulate much of the Windows 7 boot process.
All tests were repeated until performance leveled off. In the case of an SSD, this was after just one run. In the case of the 500GB Momentus XT, it took five runs to get there, whereas the second generation model was there after just two. The traditional hard drives each took a few runs for their performance to stabilize as well due to Windows 7's own boot optimizations taking effect.
Boot Time
Boot performance continues to be very impressive on the Momentus XT. It's still not quite as fast as a high end SSD, but it's definitely faster than a traditional hard drive (even a faster, 3.5" model). With a larger NAND cache, your boot time is more likely to remain this low even as other applications and data are pulled into the cache.
Next let's look at a simple application launch test. Adobe Photoshop continues to be one of the more stressful workloads for a hard drive, even down to launching the application. Here I measured from the time I clicked on the Photoshop icon in the Start Menu to first appearance of the blank Photoshop canvas and toolbars. Again, I repeated this test until performance leveled off in all cases.
For the Momentus XT performance fluctuated and it never truly settled on a single launch time. Performance started out at over 5.6 seconds but for all runs after the 2nd launch time ranged in the upper 2s - upper 3s. For its results as well as those from all of the hard drives, I averaged five launch times and presented those averages. The lone SSD in this comparison delivered consistent performance across all runs.
Load Adobe Photoshop CS4
Here the Momentus XT continues to do very well, for a hard drive. It's faster than any of our mechanical drives, and significantly faster than your run-of-the-mill 5400RPM 2.5" drive for sure. A good SSD is still around 70% faster than the Momentus XT.
When constructing our Visual Studio 2008 project build benchmark for our CPU reviews I was reminded just how much of a pain it is to do development work on a system with a hard drive. I tried using the same benchmark to measure drive performance however it seems I used too good of a CPU benchmark as disk performance plays a small role in actual compile time here. Instead I looked at the impact of disk performance on loading the Chromium project in VS2008. I used the same test rules as before, presenting performance once it has leveled off for all drives involved. Once again, the SSD delivered peak performance after a single run. The Momentus XT was able to do it after 2 - 3 runs. Performance didn't improve over multiple runs with the traditional hard drives.
Visual Studio 2008 - Load Chromium Project
There's a clear division between the NAND equipped Momentus XTs and the traditional hard drives here, but not so much between the former and the Intel SSD 510. I can definitely understand Seagate's temptation to draw the comparison to the performance of an SSD. The problem with doing this is highlighted in my comments above however. While the SSD always performed to the best of its abilities in our tests, regardless of the number of times I ran a test, the Momentus XT needed a couple of runs to get to that point. The NAND cache isn't overly predictive and as a result the first time you do almost anything the Momentus XT will perform like a traditional 7200RPM 2.5" hard drive. Given a light enough workload, the Momentus XT should be able to eventually fit much of the most frequently read data into its cache, but the process of actually getting there can still be painful.
For our last application level benchmark I turn to something I've used since the early days of SSD reviews: the fresh test. Take our boot test from earlier, and string together a series of application launches after you hit the desktop. In this case I'm launching Excel 2007, PowerPoint 2007, Word 2007, Visual Studio 2008 and Photoshop CS4 as soon as the system boots. I measure the time from POST until the last application is completely launched. I call this the fresh test because when you first build a machine everything, even on a traditional hard drive, performs quickly. Load up a lot of applications and use your system for a while and you'll soon notice that things aren't quite as snappy any more. Defragmenting your drive can help but after a certain point it's the bloat of everything installed that really limits performance. A better test would be to use an image that was months (if not years) old, but I've found that this benchmark gets the job done. Lower numbers here translate very well to a snappier system and one that feels new regardless of what you've got loaded on it. SSDs truly excel in the fresh test, but what about the Momentus XT?
The Fresh Test
Surprisingly enough, the Momentus XT does extremely well. The newer model clearly does a better job of keeping more data in NAND, but both are head and shoulders above the traditional hard drives. If you have a fairly regular usage pattern (E.g. you always run the same 5 or 6 applications), the Momentus XT can significantly improve the overall user experience. In some cases, it can even approach the performance of an SSD.

Power Consumption and Drive Behavior

Our power consumption tests are really worst case scenario for the Momentus XT since the cache is hardly given time to work here. In these tests the Momentus XT looks to be in-line with other, similar drives. In normal use however you may see even better behavior from the drive. If data is being requested out of the drive's NAND cache, the rest of the Momentus XT can actually spin down to save power. In practice I did notice the Momentus XT spinning up and down much more aggressively than a traditional hard drive. I know this was a problem with the original drive where it was a bit too aggressive in the power management department. My advice to Seagate would be to be more conservative here, particularly while only caching reads. The Momentus XT has the ability to deliver great performance, I'd leave the power savings for a version of the drive with a bigger cache and the ability to cache reads and writes. Otherwise I feel that the Momentus XT will do a lot of spinning up and spinning down for little gain.
Drive Power Consumption - Idle
Drive Power Consumption - Sequential Write

No comments:

Post a Comment