Original Link: http://www.anandtech.com/show/3667/oczs-agility-2-reviewed-the-first-sf1200-with-mp-firmware
OCZ's Agility 2 Reviewed: The First SF-1200 with MP Firmwareby Anand Lal Shimpi on April 21, 2010 7:22 PM EST
SandForce made news last week, but for some not so great reasons. It turns out that the production firmware on SF-1200 drives drops random small file write performance by a decent amount on drives presently shipping.
Those impacted include Corsair and OWC. Corsair is handling it by sticking with the RC firmware and providing a workaround for a known issue with the earlier firmware. OWC on the other hand has quietly updated its website to reveal the new (lower) specs of the drive.
Today we have our first drive shipping with the new 3.0.5 MP firmware: OCZ's Agility 2. Due to ship to etailers later this week, we put the Agility 2 through our test suite (including some new tests to see how SandForce's technology performs with highly random data).
Read on for the review!
While it happens a lot less now than a couple of years ago, I still see the question of why SSDs are worth it every now and then. Rather than give my usual answer, I put together a little graph to illustrate why SSDs are both necessary and incredibly important.
Along the x-axis we have different types of storage in a modern computer. They range from the smallest, fastest storage elements (cache) to main memory and ultimately at the other end of the spectrum we have mechanical storage (your hard drive). The blue portion of the graph indicates typical capacity of these storage structures (e.g. 1024KB L2, 1TB HDD, etc...). The further to the right you go, the larger the structure happens to be.
The red portion of the graph lists performance as a function of access latency. The further right you go, the slower the storage medium becomes.
This is a logarithmic scale so we can actually see what’s going on. While capacity transitions relatively smoothly as you move left to right, look at what happens to performance. The move from main memory to mechanical storage occurs comes with a steep performance falloff.
We could address this issue by increasing the amount of DRAM in a system. However, DRAM prices are still too high to justify sticking 32 - 64GB of memory in a desktop or notebook. And when we can finally afford that, the applications we'll want to run will just be that much bigger.
Another option would be to improve the performance of mechanical drives. But we’re bound by physics there. Spinning platters at more than 10,000 RPM proves to be power, sound and reliability prohibitive. The majority of hard drives still spin at 7200 RPM or less.
Instead, the obvious solution is to stick another level in the memory hierarchy. Just as AMD/Intel have almost fully embraced the idea of a Level 3 cache in their desktop/notebook processors, the storage industry has been working towards using NAND as an intermediary between DRAM and mechanical storage. Let’s look at the same graph if we stick a Solid State Drive (SSD) in there:
Not only have we smoothed out the capacity curve, but we’ve also addressed that sharp falloff in performance. Those of you who read our most recent VelociRaptor VR200M review will remember that we recommend a fast SSD for your OS/applications, and a large HDD for games, media and other large data storage. The role of the SSD in the memory hierarchy today is unfortunately user-managed. You have to manually decide what goes on your NAND vs. mechanical storage, but we’re going to see some solutions later this year that hope to make some of that decision for you.
Why does this matter? If left unchecked, sharp dropoffs in performance in the memory/storage hierarchy can result in poor performance scaling. If your CPU doubles in peak performance, but it has to wait for data the majority of the time, you’ll rarely realize that performance increase. In essence, the transistors that gave your CPU its performance boost will have been wasted die area and power.
Thankfully we tend to see new levels in the memory/storage hierarchy injected preemptively. We’re not yet at the point where all performance is bound by mass storage, but as applications like virtualization become even more prevalent the I/O bottleneck is only going to get worse.
Motivation for the Addiction
It’s this sharp falloff in performance between main memory and mass storage that makes SSDs so enticing. I’ve gone much deeper into how these things work already, so if you’re curious I’d suggest reading our SSD Relapse.
SSD performance is basically determined by three factors: 1) NAND, 2) firmware and 3) controller. The first point is obvious; SLC is faster (and more expensive) than MLC, but is limited to server use mostly. Firmware is very important to SSD performance. Much of how an SSD behaves is determined by the firmware. It handles all data mapping to flash, how to properly manage the data that’s written on the drive and ensures that the SSD is always operating as fast as possible. The controller is actually less important than you’d think. It’s really a combination of the firmware and controller that help determine whether or not an SSD is good.
For those of you who haven’t been paying attention, we basically have six major controller manufacturers competing today: Indilinx, Intel, Micron, Samsung, SandForce and Toshiba. Micron uses a Marvell controller, and Toshiba has partnered up with JMicron on some of its latest designs.
Of that list, the highest performing SSDs come from Indilinx, Intel, Micron and SandForce. Micron makes the only 6Gbps controller, while the rest are strictly 3Gbps. Intel is the only manufacturer on our shortlist that we’ve been covering for a while. The rest of the companies are relative newcomers to the high end SSD market. Micron just recently shipped its first competitive SSD, the RealSSD C300 as did SandForce.
We first met Indilinx a little over a year ago when OCZ introduced a brand new drive called the Vertex. While it didn’t wow us with its performance, OCZ’s Vertex seemed to have the beginnings of a decent alternative to Intel’s X25-M. Over time the Vertex and other Indilinx drives got better, eventually earning the title of Intel alternative. You wouldn’t get the same random IO performance, but you’d get better sequential performance and better pricing.
Several months later OCZ introduced another Indilinx based drive called Agility. Using the same Indilinx Barefoot controller as the Vertex, the only difference was Agility used 50nm Intel or 40nm Toshiba NAND. In some cases this resulted in lower performance than Vertex, while in others we actually saw it pull ahead.
OCZ released many other derivatives based on Indilinx’s controller. We saw the Vertex EX which used SLC NAND for enterprise customers, as well as the Agility EX. Eventually as more manufacturers started releasing Indilinx based drives, OCZ attempted to differentiate by releasing the Vertex Turbo. The Vertex Turbo used an OCZ exclusive version of the Indilinx firmware that ran the controller and external DRAM at a higher frequency.
Despite a close partnership with Indilinx, earlier this month OCZ announced that its next generation Vertex 2 and Agility 2 drives would not use Indilinx controllers. They’d instead be SandForce based.
OCZ's Agility 2 and the SF-1200
Relegating Indilinx to the bottom of the pyramid for now is a bold move for OCZ. Considering how much business OCZ has given Indilinx over the past year I don’t expect that they are very happy over this move.
SandForce’s architecture is on a different level from what we’ve seen from Indilinx. While the Vertex could be viewed as an Intel alternative, OCZ’s Vertex 2 and Agility 2 are designed to offer better-than-Intel performance and as such they actually command a higher dollar-per-GB rate.
Both the Vertex 2 and Agility 2 are based on SandForce’s SF-1200 controller. I’ve described the differences between this and the SF-1500 in detail here. It boils down to a bunch of enterprise class features missing and lower sustained small file random write speed on the SF-1200 vs. the 1500.
The Vertex 2 retains the small file random write performance of the SF-1500, while the Agility 2 is a standard SF-1200 implementation. According to SandForce, the Agility 2 is representative of how all other SF-1200 based SSDs will perform using the 1200’s current mass production firmware (more on this later).
Note the missing super cap, that's a feature of enterprise SF-1500 designs
OCZ sent in their Agility 2 for review, arguably the more interesting of the two since we already have an idea of how the Vertex 2 will perform. Similar to previous Agility drives, the new A2 shaves a small amount off the retail price of the Vertex 2 in exchange for lower performance:
|OCZ SandForce Drive Pricing (MSRP)|
|OCZ Agility 2||$204.99||$379.99||$719.99|
|OCZ Vertex 2||$219.99||$399.99||$769.99|
The Agility 2 ships with a 2.5" to 3.5" drive sled for use in desktops. If you use this sled the SATA ports won't line up with drive trays in systems like the Mac Pro.
Inside the drive itself we find SandForce’s SF-1200 controller and no external DRAM. SandForce’s architecture attempts to solve the issue of NAND write amplification by simply writing less to the drive through compression/deduplication techniques. With less data to keep track of, a large external DRAM isn’t necessary - assuming the data being written is easily reduced by SandForce’s algorithms.
SandForce also claims that its reduced write amplification could enable the use of cheaper NAND on these drives. It’s an option that some manufacturers may take however OCZ has committed to using the same quality of NAND as it has in the past. The Agility 2 uses 34nm IMFT NAND, presumably similar to what’s used in Intel’s X25-M G2.
The Agility 2 sample OCZ sent had the first SF-1200 mass production firmware (v3.0.5) from SandForce on it with full TRIM support. The Agility 2 should begin shipping to etailers later this month.
Controversy, Corsair Responds
Last week SandForce called me to reveal something troubling. While version 3.0.1 of its SF-1200 firmware provided SF-1500 like performance on all drives, the mass production version of the firmware (3.0.5) would cap small file random write performance in line with the SF-1200 spec. This applies to all SF-1200 drives except for OCZ’s Vertex 2.
SandForce’s argument is that only version 3.0.5 is ready for mass production, however Corsair had already begun selling drives with version 3.0.1. Meaning Corsair’s Force series SSDs being sold on the market today perform like OCZ’s Vertex LE and Vertex 2, and not like the Agility 2.
The 3.0.1 firmware apparently had a reliability issue with a power management state, however Corsair believes it has circumvented the problem by disabling the state. This comes at the expense of increased power consumption, but it also means that Corsair has no reason to upgrade to the 3.0.5 firmware on its drives.
Corsair appears committed to keeping 3.0.1 on its drives unless there’s a real benefit to move to 3.0.5. This does pose a problem for OCZ and SandForce’s exclusivity agreement stating that only the Vertex 2 would ship with SF-1500 performance, however that’s an issue for those two to work out.
As always, I’m continuing to test Corsair’s 100GB Force drive to see if there are any issues in real world applications. It’s currently installed in my work notebook (MacBook Pro) which gets used quite a bit. As you well know, if I run into any problems I’ll post about them right away.
|CPU||Intel Core i7 965 running at 3.2GHz (Turbo & EIST Disabled)|
|Motherboard:||Intel DX58SO (Intel X58)
|Chipset:|| Intel X58 + Marvell SATA 6Gbps PCIe
|Chipset Drivers:||Intel 18.104.22.1685 + Intel IMSM 8.9|
|Memory:||Qimonda DDR3-1333 4 x 1GB (7-7-7-20)|
|Video Card:||eVGA GeForce GTX 285|
|Video Drivers:||NVIDIA ForceWare 190.38 64-bit|
|Desktop Resolution:||1920 x 1200|
|OS:||Windows 7 x64|
Sequential Read/Write Speed
Using the 6-22-2008 build of Iometer I ran a 3 minute long 2MB sequential test over the entire span of the drive. The results reported are in average MB/s over the entire test length.
As expected, the sequential speed of the Agility 2 is no different than the Vertex LE and Corsair Force drives. It looks very good.
Random Read/Write Speed
This test reads/writes 4KB in a completely random pattern over an 8GB space of the drive to simulate the sort of random access that you'd see on an OS drive (even this is more stressful than a normal desktop user would see). I perform three concurrent IOs and run the test for 3 minutes. The results reported are in average MB/s over the entire time.
I've had to run this test two different ways thanks to the way the newer controllers handle write alignment. Without a manually aligned partition, Windows XP executes writes on sector aligned boundaries while most modern OSes write with 4K alignment. Some controllers take this into account when mapping LBAs to page addresses, which generates additional overhead but makes for relatively similar performance regardless of OS/partition alignment. Other controllers skip the management overhead and just perform worse under Windows XP without partition alignment as file system writes are not automatically aligned with the SSD's internal pages.
First up is my traditional 4KB random write test, each write here is aligned to 512-byte sectors, similar to how Windows XP might write data to a drive:
Here we see the first real impact of the SF-1200's final, shipping firmware. Random write performance drops down a bit, but not by a lot. However the SandForce controllers perform best when run in OSes that align across 4K boundaries:
Here we see a dramatic drop. While the SF-1500 and SF-1200 (3.0.1) based SSDs manage over 160MB/s, the standard SF-1200 (3.0.5) can only push 44.2MB/s. That's still much faster than a HDD, but it ends up being slower than both a C300 and Intel's X25-M G2.
The performance limitation only applies to small file random writes. Random read performance remains unchanged with version 3.0.5 of the SF-1200 firmware.
Random Data Performance
Many of you correctly brought up concerns with our use of Iometer with SandForce drives. SandForce's controller not only looks at how data is being accessed, but also the actual data itself (more info here). The more compressible the data, the lower the write amplification a SandForce drive will realize. While Iometer's random access controls how data is distributed across the drive, the data itself is highly compressible. For example, I took a 522MB output from Iometer and compressed it using Windows 7's built in Zip compression tool. The resulting file was 524KB in size.
This isn't a huge problem because most controllers don't care what you write, just how you write it. Not to mention that the sort of writes you do on a typical desktop system are highly compressable to begin with. But it does pose a problem when testing SandForce's controllers. What we end up showing is best case performance, but what if you're writing a lot of highly random data? What's the worst performance SandForce's controller can offer?
An upcoming version of Iometer will allow you to use 100% random data to test just that. Our own Ryan Smith compiled an early release of this version of Iometer so we could see how much of an impact purely random data has on Iometer performance. When the Use Random Data box is checked, the actual data Iometer generates is completely random. To confirm I tried compressing a 161MB output from Iometer with Use Random Data enabled:
The resulting file was actually slightly bigger. In other words, it could not be compressed. Perfect.
|Iometer Performance Comparison - 4K Aligned, 4KB Random Write Speed|
|Normal Data||Random Data||% of Max Perf|
|Corsair Force 100GB (SF-1200 MLC)||164.6 MB/s||122.5 MB/s||74.4%|
|OCZ Agility 2 100GB (SF-1200 MLC)||44.2 MB/s||46.3 MB/s||105%|
With data that can't be compressed, the SF-1500 (or SF-1200 with 3.0.1 firmware) will drop from 164.6MB/s to 122.5MB/s. That's still faster than any other SSD except for Crucial's RealSSD C300. The Agility 2 and other SF-1200 drives running 3.0.5 shows no performance impact as it's already bound by the performance of its firmware. Since the rest of the Agility 2's performance is identical to the Force drive I'll only include one set of results in the table below:
|Iometer Performance Comparison|
|Corsair Force 100GB (SF-1200 MLC)||Normal Data||Random Data||% of Max Perf|
|4KB Random Read||52.1 MB/s||42.8 MB/s||82.1%|
|2MB Sequential Read||265.2 MB/s||212.4 MB/s||80.1%|
|2MB Sequential Write||251.7 MB/s||144.4 MB/s||57.4%|
Read performance is also impacted, just not that much. Performance drops to around 80% of peak, which does put the SandForce drives behind Intel and Crucial in sequential read speed. Random read speed drops to Indilinx levels. Read speed is impacted because if we write fully random data to the drive there's simply more to read back when we need it, making the process slower.
Sequential write speed actually takes the biggest hit of them all. At only 144.4MB/s if you're writing highly random data sequentially you'll find that the SF-1200/SF-1500 performs worse than just about any other SSD controller on the market. Only the X25-M is slower. While the impact to read performance and random write performance isn't terrible, sequential performance does take a significant hit on these SandForce drives.
Overall System Performance using PCMark Vantage
Next up is PCMark Vantage, another system-wide performance suite. For those of you who aren’t familiar with PCMark Vantage, it ends up being the most real-world-like hard drive test I can come up with. It runs things like application launches, file searches, web browsing, contacts searching, video playback, photo editing and other completely mundane but real-world tasks. I’ve described the benchmark in great detail before but if you’d like to read up on what it does in particular, take a look at Futuremark’s whitepaper on the benchmark; it’s not perfect, but it’s good enough to be a member of a comprehensive storage benchmark suite. Any performance impacts here would most likely be reflected in the real world.
In real world performance the SandForce drives do very well. Crucial and SandForce based drives are the ones to beat. You're looking at around 5%+ performance improvement over Intel's X25-M series and even more compared to Indilinx.
The memories suite includes a test involving importing pictures into Windows Photo Gallery and editing them, a fairly benign task that easily falls into the category of being very influenced by disk performance.
The TV and Movies tests focus on on video transcoding which is mostly CPU bound, but one of the tests involves Windows Media Center which tends to be disk bound.
The gaming tests are very well suited to SSDs since they spend a good portion of their time focusing on reading textures and loading level data. All of the SSDs dominate here, but as you'll see later on in my gaming tests the benefits of an SSD really vary depending on the game. Take these results as a best case scenario of what can happen, not the norm.
In the Music suite the main test is a multitasking scenario: the test simulates surfing the web in IE7, transcoding an audio file and adding music to Windows Media Player (the most disk intensive portion of the test).
The Communications suite is made up of two tests, both involving light multitasking. The first test simulates data encryption/decryption while running message rules in Windows Mail. The second test simulates web surfing (including opening/closing tabs) in IE7, data decryption and running Windows Defender.
I love PCMark's Productivity test; in this test there are four tasks going on at once, searching through Windows contacts, searching through Windows Mail, browsing multiple webpages in IE7 and loading applications. This is as real world of a scenario as you get and it happens to be representative of one of the most frustrating HDD usage models - trying to do multiple things at once. There's nothing more annoying than trying to launch a simple application while you're doing other things in the background and have the load take forever.
The final PCMark Vantage suite is HDD specific and this is where you'll see the biggest differences between the drives:
AnandTech Storage Bench
Note that our 6Gbps controller driver isn't supported by our custom storage bench here, so the C300 results are only offered in 3Gbps mode.
The first in our benchmark suite is a light usage case. The Windows 7 system is loaded with Firefox, Office 2007 and Adobe Reader among other applications. With Firefox we browse web pages like Facebook, AnandTech, Digg and other sites. Outlook is also running and we use it to check emails, create and send a message with a PDF attachment. Adobe Reader is used to view some PDFs. Excel 2007 is used to create a spreadsheet, graphs and save the document. The same goes for Word 2007. We open and step through a presentation in PowerPoint 2007 received as an email attachment before saving it to the desktop. Finally we watch a bit of a Firefly episode in Windows Media Player 11.
There’s some level of multitasking going on here but it’s not unreasonable by any means. Generally the application tasks proceed linearly, with the exception of things like web browsing which may happen in between one of the other tasks.
The recording is played back on all of our drives here today. Remember that we’re isolating disk performance, all we’re doing is playing back every single disk access that happened in that ~5 minute period of usage. The light workload is composed of 37,501 reads and 20,268 writes. Over 30% of the IOs are 4KB, 11% are 16KB, 22% are 32KB and approximately 13% are 64KB in size. Less than 30% of the operations are absolutely sequential in nature. Average queue depth is 6.09 IOs.
The performance results are reported in average I/O Operations per Second (IOPS):
It's not terribly surprising that we're not seeing any performance difference between the Agility 2 and other SandForce drives here. The only difference is in sustained random write performance and desktop workloads simply don't sustain purely random writes for that long a period.
If there’s a light usage case there’s bound to be a heavy one. In this test we have Microsoft Security Essentials running in the background with real time virus scanning enabled. We also perform a quick scan in the middle of the test. Firefox, Outlook, Excel, Word and Powerpoint are all used the same as they were in the light test. We add Photoshop CS4 to the mix, opening a bunch of 12MP images, editing them, then saving them as highly compressed JPGs for web publishing. Windows 7’s picture viewer is used to view a bunch of pictures on the hard drive. We use 7-zip to create and extract .7z archives. Downloading is also prominently featured in our heavy test; we download large files from the Internet during portions of the benchmark, as well as use uTorrent to grab a couple of torrents. Some of the applications in use are installed during the benchmark, Windows updates are also installed. Towards the end of the test we launch World of Warcraft, play for a few minutes, then delete the folder. This test also takes into account all of the disk accesses that happen while the OS is booting.
The benchmark is 22 minutes long and it consists of 128,895 read operations and 72,411 write operations. Roughly 44% of all IOs were sequential. Approximately 30% of all accesses were 4KB in size, 12% were 16KB in size, 14% were 32KB and 20% were 64KB. Average queue depth was 3.59.
Our heavy multitasking test definitely racks up the sequential writes, again we don't see any difference between the Agility 2 and other SandForce drives.
The gaming workload is made up of 75,206 read operations and only 4,592 write operations. Only 20% of the accesses are 4KB in size, nearly 40% are 64KB and 20% are 32KB. A whopping 69% of the IOs are sequential, meaning this is predominantly a sequential read benchmark. The average queue depth is 7.76 IOs.
Here we're completely bound by read performance.
To measure power consumption we connected an ammeter in-line with the SSDs and measured current across all voltage lines supplied to the drive.
At idle, the Agility 2 uses more power than our previous two SandForce based drives. It's unclear whether the slight increase in power consumption is due to the MP firmware or not.
Corsair disabled one of the SF-1200's power saving features in order to maintain stability using the 3.0.1 firmware, with the mass production firmware the Agility 2 doesn't have to use this workaround and thus uses less power. In any case since we're dealing with easily compressible data, the SandForce drives consume far less power than the competition.
Thanks to its artificially limited small file random write performance, the Agility 2 draws less power than either of the other two SandForce drives we've reviewed here.
OCZ's Agility 2 marks the beginning of mass production availability of SandForce hardware. We're not talking about release candidate firmware anymore, this is final hardware shipping with final firmware. SandForce told me that it's not aware of any major, potentially data threatening bugs in the SF-1200 mass production firmware. While something could always crop up (as we've seen from both Crucial and Intel in recent history), SandForce is very confident in what its partners are shipping today.
Despite the sort of handicap throwing fully randomized data at the SF-1200 provides, real world performance of the Agility 2 and other SandForce drives supports the idea that the DuraWrite architecture actually does work. The ironic thing is that the drives work so well in traditional desktop workloads that it's tough to believe they were originally designed for use in enterprise applications (which are potentially more random in the contents of their data). If you do have a highly random workload (or workload that's not easily compressible), then you end up with a drive that performs worse than any Intel or Indilinx solution. Something I theorized back in the early days of looking at SandForce, but something we're able to prove easier with the Q2 2010 branch of Iometer. I don't believe the Iometer results we've seen thus far are indicative of the sort of real-world performance you can expect out of SF-1200 drives on the desktop, but they're important to understand. Remember that SandForce itself found that installing Windows + Microsoft Office 2007 resulted in less than 50% of the data actually being written to the drive. Desktop usage models appear to work very well with SandForce's architecture.
Looking at the Agility 2 itself, you're not paying a tremendous premium for SandForce here but it is more expensive than anything from Intel or Indilinx:
|SSD Pricing Comparison|
|Drive||NAND Capacity||User Capacity||Drive Cost||Cost per GB of NAND||Cost per Usable GB|
|Crucial RealSSD C300||256GB||238.4GB||$680||$2.656||$2.852|
|Intel X25-M G2||160GB||149.0GB||$489||$3.056||$3.282|
|OCZ Agility 2||128GB||93.1GB||$379||$2.960||$4.071|
|OCZ Vertex LE||128GB||93.1GB||$394||$3.078||$4.232|
In our real world tests you're looking at roughly a 5 - 10% performance increase over Intel/Indilinx in typical use cases, and obviously much more if you're doing a lot of sequential writes compared to Intel. Do the drives "feel" faster than Intel's X25-M and other Indilinx offerings? It's tough to quantify, but I'd say they do. Everything seems a bit snappier than on machines I've configured with an X25-M G2. If you're looking for the absolute fastest SSDs on the market today you really only have two options: SandForce or Crucial (you can always just RAID two X25s together as well).
Then there's the issue of what SF-1200 based SSD to buy. With the Agility 2 you'll get the standard SF-1200 performance, while the Vertex 2 and Corsair's Force drives will give you a bit more in random write IOPS. Given the small price premium I'd almost recommend the Vertex 2 over the Agility 2. However as we've seen from our real world performance results, the performance impact is negligible. While I'm still testing all of this in actual systems, I presently don't believe the Vertex 2's additional performance is necessary for desktop use.
That brings us to the Corsair Force. Corsair's drive effectively gives you the performance of the Vertex 2, however there's the concern that we have no idea what the future firmware upgrade path will entail. As we've shown though, the standard SF-1200 performance isn't far off at all in the real world for desktop use.
I'll have to end this review with my usual words of caution. This is the first drive we've tested with SandForce's mass production firmware. While I've done my usual and put these drives in my own personal systems to test long term stability it's going to be a some time before we know how reliable these drives are going to be in the long run. I'm very pleased with the performance we're seeing here today, but we're just going to have to wait and see how the drives do in the field before making a blanket recommendation. Just be aware of the potential for problems that I haven't encountered in my review to crop up. As always, I'll keep you posted with anything I find.