A few years ago it seemed as if Hybrid Hard Drives were the future. Yet after a bunch of announcements and hope today we find ourselves in a world with two distinct markets: HDDs and SSDs. If you're willing to pay the price premium and limit maximum capacity, today's SSDs are very fast and if you choose well, reliable.

For a desktop PC this isn't a tough choice to make. I've been advocating a setup where you have a SSD for your OS + applications and a separate RAID-1 array of 1TB or larger drives for all of your music, movies and photos.

Notebook users don't usually have a ton of drive bays and thus only have room for a single drive. It's not a lost cause though, if your notebook is your only machine you can get away with an internal SSD + external storage whether in the form of a NAS or just something you attach via USB when you're at your desk.

For the very portable users that don't want to lug around another hard drive, or for those who refuse to pay the high dollar per GB rates that SSDs command, there hasn't really been an option other than mechanical storage.

Today Seagate is attempting to change that with its latest Hybrid HDD: the Momentus XT.

More 918 Spyder than Prius

Simply put a Hybrid HDD is a mechanical drive with some NAND flash on it that is automatically used by the drive to store data for quicker access. A hybrid drive really just attempts to do what my setup of two drives (SSD + HDD) does manually: put small, frequently used data on NAND flash and put larger, less frequently used data on platters.

In theory you get the best of both worlds, the overall capacity of a HDD and (most of the time) the performance of an SSD.

Seagate's Momentus XT starts with a standard 7200PM 2.5" Momentus drive and adds a 32MB buffer, the largest on any 2.5" Momentus drive. Seagate then makes it a hybrid by adding a single 4GB SLC (!) NAND chip on the drive's PCB. Connect a controller to manage what goes into the NAND and we're in business.

Seagate Momentus XT Drive Pricing (MSRP)
  250GB 320GB 500GB
Seagate Momentus XT $113 $132 $156
Seagate Momentus 7200.4 $55 $55 $85
Seagate Momentus 5400.6 $50 $55 $65

The size of the NAND was a shocker to me when I first heard it. I honestly expected something much larger. In the Momentus XT however, the SLC NAND acts exclusively as a read cache - writes never touch the NAND. The drive looks at access patterns over time (most likely via a history table of LBAs and their frequency of access) and pulls some data into the NAND. If a read request comes in for an LBA that is present in the NAND, it's serviced out of the 4GB chip. If the LBA isn't present in the NAND, the data comes from the platters.

If a read request can be serviced out of the NAND, the drive can be spun down which should save power. In practice it's rare that a sequence of reads can entirely be serviced out of NAND. What usually happens is you get a little bit of data out of the NAND and then the drive has to spin up to give you the rest. This can be a bit annoying because you get a drive spinup event in the middle of a data access rather than just before it.

The data in the NAND remains persistent across power cycles, however not formats or defrags. You still have to defragment the drive, but doing so resets the drive's learning back to zero. Defragmenting less often is the only real solution.

It's not a huge problem because the drive learns pretty quickly. By the second time you do anything the Momentus XT is usually a lot faster at the task assuming Seagate's algorithms pull any of the data you're accessing into its on-board NAND.

The chart below shows a comparison of a Western Digital VelociRaptor 600GB, a SandForce SF-1200 based SSD and the Momentus XT in boot times. I simply timed how long it took to boot into Windows 7 from the point the OS began loading to the time I got a cursor on the desktop. After a completed boot I shut down the machine and tried again.

While the first boot takes pretty long on both hard drives, by the second boot the Momentus XT is already noticeably faster than the VelociRaptor. Seagate appears to focus mostly on small, frequently used files and aggressively pulls them into the NAND.

The chart also illustrates a very important point. The SSD's performance is consistent even compared to the first run, while the Momentus XT needs to run through a workload once before it's optimized. This applies to more than just boot time, application loads or any sort of disk access.

Over a short period of time the Momentus XT should get many of the small files you use regularly into its NAND cache but the drive is best optimized for repeatable usage patterns. If you always use the same few applications in the same way the Momentus XT will work very well. I found that it's not very difficult to get data evicted from the NAND cache if you throw a random set of applications/workloads at the drive.

Why a Read Cache?

I've written a lot about the struggles that SSD controllers must deal with to manage writing and re-writing NAND. It's not surprising that Seagate opted to use the NAND on the Momentus XT as a read-only cache. Seagate controls what data gets written to the NAND, which makes block management much simpler. There's never a situation where the drive doesn't know what it needs to keep track of. And by using SLC instead of MLC NAND, Seagate doesn't even have to worry about aggressive wear leveling either. So it's about simplicity, not the perfect hybrid design.

Seagate claims that the 4GB size offered the best balance of price/performance, but I suspect that with more aggressive caching algorithms Seagate could benefit from a larger cache. With more NAND Seagate could also prefetch data into the cache. And eventually, if there is to be a future for hybrid drives, Seagate will have to enable a NAND write cache.

Once you start caching writes as well then you effectively make the jump into the SSD realm in terms of complexity. The read-only design is pretty simple but until we see Seagate enter the consumer SSD space I doubt we'll see a more aggressive hybrid drive.

Note that you shouldn't expect to get the same performance out of the Momentus XT's single NAND device as you would an SSD. Remember that modern SSDs have anywhere between 4 and 10 channels of NAND accessed in parallel to reach their very high transfer rates. A single NAND device isn't going to end up anywhere near as fast. At best the Momentus XT should be able to read from the cache at 20 - 40MB/s depending on the data being accessed and the type of NAND Seagate is using.

The Test - Real World First
Comments Locked

120 Comments

View All Comments

  • dannysauer - Saturday, July 2, 2011 - link

    That's a terrible metaphor. A "100 shot" of nitrous is called a "100 shot" because it's good for 100 horsepower. Dyno tests on properly tuned vehicles repeatedly confirm that the advertised power change is usually within a few HP of the documentation.

    Now that I think about it, I guess it's inadvertently a good metaphor for poorly understanding technology. :)

    In any event, you have a good point that it's deceptive to market this as a "hybrid". It's just a regular drive with a large intelligent cache. They should just say "now! with adaptive caching!" or something.
  • Chloiber - Monday, May 24, 2010 - link

    In the beginning you said you would use a Patriot Inferno, but on most benchmarks it says "Agility 2" ?!

    OT:
    This drive should be a perfect upgrade for all notebook users who think SSDs are too expensive or who need more space than the usual 40-120GB of SSDs.
  • Anand Lal Shimpi - Monday, May 24, 2010 - link

    I only used the Inferno for the new tests, the rest was existing data pulled out of Bench. However the two drives perform the same, they are both SF-1200 based 100GB drives with production firmware :)

    Take care,
    Anand
  • Chloiber - Monday, May 24, 2010 - link

    Ah, no problem then, thought it's a copy&paste error :)
  • Aikouka - Monday, May 24, 2010 - link

    What I'm curious about is how this drive handles regularly used files that change somewhat often. Caching can be great for executables or libraries (DLLs, etc), given that they don't change often if at all. But what happens when you have files that are accessed during a specific task that may change every time you perform this task? You said that the algorithm doesn't work with writes, which if it understood what write was coming in, it could intercept and possibly alter the already cached data to the new value.

    This mostly came from a nerdy WoW example where while textures and such don't normally change too often, add-on settings can possibly change every time you load the game (and load-up can be pretty ardruous with a lot of add-ons). So, if these settings files are changing possibly every time, the cache values will be out of date and it'll have to use its poor Random Read rate to access the proper data.

    It's really just one drop in the bucket of the many examples you can think of where this drive wouldn't have a problem, but start-up time in WoW is one of the reasons why I went with the Intel X25-M to begin with... when I bought it, it was pretty much top notch in random read performance.
  • Anand Lal Shimpi - Monday, May 24, 2010 - link

    As is the case with any cache there has to be some mechanism to invalidate data in the cache if the original data is modified. I believe that's what happens here. There's a table of LBAs that are cached and if one is modified then the cached version is immediately invalidated and/or updated.

    Take care,
    Anand
  • Aikouka - Monday, May 24, 2010 - link

    Definitely true with cache invalidating.

    I think I was reading a bit too far into this line:

    "the Momentus XT however, the SLC NAND acts exclusively as a read cache - writes never touch the NAND."

    and considering that it meant that the caching wouldn't access incoming writes for validating cached data. It sounded odd that way as it'd make caching an absolute sleeping bear of a problem. I'm assuming the statement is meant to be taken literally -- the drive simply doesn't write cache to help speed up writes.

    Thanks for the clarification on a sleepy Monday morning and bienvendo!
  • siberian 3 - Monday, May 24, 2010 - link

    Hi Anand do we know what will happen if the NAND fail and not the mechanical part of the drive?
    Will the user lose the DATA it is on the drive
  • jaydee - Monday, May 24, 2010 - link

    Anand, how do you think this would compare if they chose to do, say 8GB of MLC instead of 4GB of SLC? Surely it would bring the cost down, and I would think the double cache would be more important than the decrease in speed?
  • Chloiber - Monday, May 24, 2010 - link

    It has also something to do with reliability/lifetime, not just performance.

Log in

Don't have an account? Sign up now