Original Link: http://www.anandtech.com/show/3812/the-ssd-diaries-crucials-realssd-c300
The SSD Diaries: Crucial's RealSSD C300by Anand Lal Shimpi on July 13, 2010 12:39 AM EST
Life just isn’t fair. When I met with Crucial at CES to talk about its first foray into the high performance SSD market I was given very high expectations for reliability and the testing that Crucial would put the drive through. We talked about the failure of other controller vendors to do adequate testing. Even Intel’s own follies. Crucial assured me that validation testing was high on the priority list.
The company already tests hundreds if not thousands of configurations for its memory. Slotting SSDs into the mix wouldn’t be difficult. In contrast, most of the vendors who ship Indilinx and SandForce drives don’t have nearly the validation experience or infrastructure in place to gain it.
Then, just weeks after I got my C300, the drive stopped working. Crucial sent me another drive which didn’t die, but let me discover that the C300 had serious issues when it came to worst case scenario performance. Similar to the original X25-M firmware when given a random enough workload, the RealSSD C300 could be backed into a corner that it would never get out of.
I dropped the C300 from my list of even potential recommendations while Crucial worked on a fix. Meanwhile SandForce’s partners had been shipping drives, with relatively few problems. To make matters worse? The majority of SandForce drives that shipped while Crucial suffered used release candidate firmware. Mass production firmware wasn’t distributed until later. And SandForce did nothing to stop it.
The moral of this story is that entering the storage market is still new territory for everyone. Company size, whether small or large, doesn’t dictate whether you’ll face a failure from a new product. The only guarantee you have is the experience of others who’ve used the drives in configurations similar to your own.
Which brings me to todays topic. I’ve been testing Crucial’s fixed firmware and so far things look good. The situation has improved enough to warrant another look at the C300, including its more affordable 128GB version. And that’s exactly what we’ll do today.
Like most SSD vendors, Crucial turned to a third party to supply a controller for its SSD - Marvell. Inside Marvell’s controller is a pair of ARM9 CPUs that work in parallel. One core handles SATA requests while the other handles NAND requests.
On the SATA side is a 6Gbps interface, a significant upgrade from the 3Gbps controllers found on all other SSDs we’ve reviewed. If you’ve followed our SSD coverage you’ll know that sequential read speed is one area where SSDs are traditionally limited by 3Gbps SATA. The C300 should fix that. To feed the controller Crucial uses ONFI 2.0 NAND with higher max transfer rates.
While the controller is made by Marvell, the firmware is entirely Crucial’s design. As we’ve seen in the past, as long as the controller’s CPU is fast enough the biggest influence on SSD performance is the architecture of the firmware.
Paired with the controller is an absolutely massive 256MB DRAM. The Marvell controller has a smaller cache than what Intel outfits its X25-M G2 with and rather than demand a more expensive controller with a larger cache, Crucial uses a very large external DRAM to store mapping tables and access history. Micron, Crucial’s parent company, being a DRAM manufacturer probably played a role in making that decision.
The RealSSD C300 is available in three capacity points, two of which I’ll be looking at today: 64GB, 128GB and 256GB. The Crucial controller has 8 channels to its NAND. Both the 128GB and 256GB versions have all 8 channels populated, however the 256GB drive physically has more die per NAND package which allows for greater parallelism and potentially higher performance.
Like the Intel and Indilinx drives, Crucial dedicates around 7% of the drive’s capacity to spare area. This non user-addressable NAND is used as a pool of clean blocks to replace dirty ones during normal use, and to replace any bad blocks.
|Drive||NAND Capacity||User Capacity||Drive Cost||Cost per GB of NAND||Cost per Usable GB|
|Corsair Nova V128||128GB||119.2GB||$319||$2.492||$2.676|
|Crucial RealSSD C300 128GB||128GB||119.2GB||$369||$2.883||$3.096|
|Crucial RealSSD C300 256GB||256GB||238.4GB||$660||$2.578||$2.768|
|Intel X25-M G2 160GB||160GB||149.0GB||$405||$2.531||$2.718|
|Intel X25-M G2 80GB||80GB||74.5GB||$215||$2.688||$2.886|
|OCZ Vertex 2 120GB||128GB||111.8GB||$329||$2.570||$2.943|
|OCZ Vertex 2 240GB||256GB||223.6GB||$640||$2.500||$2.862|
High end SSDs have dropped in price considerably over the past couple of months. While 100GB SandForce drives were once at or above $400, these days you can get 120GB extended capacity versions for $330. In fact, the price of SandForce drives have dropped so much that there’s pretty much no reason to buy an Indilinx drive at this point. Note that there's no tangible performance difference between the extended capacity SandForce drives and the older versions with more spare area for any of the workloads we'll be talking about today.
Crucial’s C300 is priced competitively with the market, but it does command a price premium over the equivalent capacity SandForce drive. While OCZ will sell you 128GB of NAND on its Vertex 2 for $2.57/GB, Crucial asks for $2.883/GB on its C300.
|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 188.8.131.525 + 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|
Random Read/Write Speed
The four corners of SSD performance are as follows: random read, random write, sequential read and sequential write speed. Random accesses are generally small in size, while sequential accesses tend to be larger and thus we have the four Iometer tests we use in all of our reviews.
Our first 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.
The C300 offers by far the best random read performance of any SSD we’ve tested. This applies to both the 256GB and 128GB versions of the C300, and while operating on a 3Gbps SATA controller. There’s a roughly 38% performance advantage over the SandForce based OCZ Vertex 2 and Intel X25-M G2. There's hardly any benefit to moving to a 6Gbps controller here as the transfer rates don't even saturate 1.5Gbps SATA.
Random write speed is similarly high, but not quite as dominant. Intel’s X25-M G2 simply shows its age here. You must keep in mind that the G2 was a mild update to the original X25-M, an architecture that was designed back in 2006 - 2007 and first sold in 2008. The X25-M G2 is simply an old architecture by today’s standards. While it makes a great value SSD, there should be no surprise that a C300 is over twice as fast in our 4KB random write test.
It’s the SandForce comparison that’s less cut and dry. By default Iometer uses data that is highly repetitive in nature. While our random test writes data to random addresses, the contents of the data itself isn’t random. The Vertex 2’s SF-1200 controller recognizes the obvious pattern in the data and just doesn’t write most of it to the drive. This is the best case scenario for the SandForce controller architecture. Now it’s absolutely a realistic workload, but not always likely.
Using a custom build of Iometer we are able to write completely random data to the drive. This data can’t be compressed and effectively defeats SandForce’s write amplification reduction algorithm. I’d argue that this scenario is even less likely than one where the data is nearly infinitely compressible, at least for a desktop user. SandForce claims that an install of Windows 7 + Office 2007 requires less than half the writes on one of its drives compared to a traditional SSD.
The point here is that while I can present performance in both cases, the real world write performance of the Vertex 2 and other SandForce drives will be somewhere in between the two numbers you see represented in the chart above. And compared to the 128GB C300, I’d say it’s likely that the Vertex 2 has the advantage in 4K random write performance. The 256GB drive improves performance enough where I’d be comfortable saying it’s probably a tossup between the two.
The 6Gbps performance is an odd story to tell here. The 128GB drive actually performs the same regardless of whether or not it's on our 6Gbps controller, however the 256GB drive takes a performance hit going to the 6Gbps controller (HighPoint Rocket 620, using the Marvell 88SE9128 controller similar to many motherboards). This is purely a fault of the controller and unfortunately one of the tradeoffs you'll have to make with the move to 6Gbps. It's very difficult to beat Intel's own SATA controller.
Many of you have asked for random write performance at higher queue depths. What I have below is our 4KB random write test performed at a queue depth of 32 instead of 3. While the vast majority of desktop usage models experience queue depths of 0 - 5, higher depths are possible in heavy I/O workloads:
While the 128GB C300 is slower than the 100GB Vertex 2, the 256GB version hangs with the SandForce posterchild. If you need the capacity, the 256GB C300 is easily a good performer even at high queue depths.
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.
Sequential read performance is a virtual tie across the board, the exception being if you have totally random data on a SandForce drive. In that case the Vertex 2 is noticeably behind the competition. Pair the C300 with a 6Gbps controller and it has a clear advantage - you get a 20% increase in sequential read speed from the C300.
Sequential write speed is strong on the C300, but mostly if you look at the 256GB drive. The 128GB C300 is 30% faster than Intel’s 160GB X25-M G2, but no where near the peak speed of OCZ’s Vertex 2. The random data test has the Vertex 2 and C300 a lot closer, but in reality I’d expect the Vertex 2 to be a bit quicker than the 128GB C300 in sequential write speed. The 256GB C300 should be at least as fast as the Vertex 2 in practice, if not faster. Once again we see the odd situation where our 256GB C300 paired with a 6Gbps controller actually drops performance a bit here. There must be a driver optimization issue with 4K aligned, 128KB sequential writes because the same problem doesn't present itself with unaligned 2MB sequential writes. Unfortunately for Marvell/Crucial, this test is more representative of how modern OSes write sequential data.
Looking at our synthetic tests alone it seems that the C300 is very competitive with SandForce. It boils down to the workload more than anything else. The C300 is clearly in the run for first or second place.
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.
The overall PCMark vantage score puts the OCZ Vertex 2 ahead of the C300 by only 3%. Move to a 6Gbps controller and the C300 is now on par with the Vertex 2. Either way you look at it, general desktop performance should be about the same between the two for workloads exemplified by PCMark Vantage. The real world advantage over the Corsair Nova is 12.5%, just enough to be noticeable. This also reflects what I’ve seen in my own experiences with these drives as a user. There’s a noticeable performance increase between the X25-M/Indilinx class of SSDs and the new guard. It’s not earth shattering, and no where near the gap you see between SSDs and HDDs, but it’s noticeable on fast systems.
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:
In the HDD suite itself, OCZ holds the clear advantage with the Vertex 2 showing up 15% faster than the 128GB RealSSD C300. Moving to a 6Gbps interface basically levels the playing field between the two.
SYSMark is mostly CPU bound and thus we don’t see any real differences between the contenders here. It is a good reality check that points out SSDs won’t improve performance in applications that are simply not IO bound.
AnandTech Storage Bench
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):
In our custom test suite we can finally put to rest concerns about the real world behavior of SandForce’s drives. Our light test case makes it pretty clear: in practice the Vertex 2 performs within 3% of the 256GB C300, and is a good 20% faster than the Intel X25-M G2. Keep in mind that we’re looking at raw IO performance and not total system performance here.
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 downloading workload involves more heavily compressed files and thus we see the Vertex 2 perform like a 128GB C300. The 256GB C300 just can't be touched.
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.
Our gaming workload has been SATA bound for the high end SSDs for some time now. If you happen to be baller enough to play games off of an SSD, any of these high end drives will perform the same. Although our custom tests don't work with the 6Gbps Marvell controller, the boost to sequential read speed should be quite visible in gaming workloads with the C300.
At idle the Crucial and SandForce drives all use around 0.7W. The Corsair Nova manages to cut that down to 0.4W and the Intel G2 is down just under 0.6W.
In our highest load scenario the 128GB C300 draws as much power as the 160GB X25-M G2. The 256GB C300’s extra NAND that’s used in parallel eats up an additional watt of power consumption. We’re still below what you’d find from a 3.5” HDD but not necessarily from a low power 2.5” drive.
The SandForce based Vertex 2 simply offers lower power consumption than the C300, it doesn’t matter what sort of workload you throw at it. The C300’s power consumption isn’t overly high, it’s simply higher than the competition.
TRIM and Performance over Time
When I first tested the C300 I noted that it fell victim to the same bug that plagued Intel’s X25-M: throw a bunch of random writes at the drive and it’ll get backed into a corner that it’ll never get out of. The scenario that you have to create to force the drive into this condition isn’t realistic at all, however that isn’t to say that over months or years of heavy use that you wouldn’t find yourself in the same situation. Either way, Crucial corrected the problem and spent weeks validating the firmware fix. Crucial did continue to sell drives during this period, which I wasn’t exactly happy about.
Either way the problem is now fixed with the 0002 firmware revision. It’s a destructive firmware update so you’ll lose any and all data on your drive after applying it. I also had a strange issue where the update had to be applied twice on my 256GB drive before it would work properly. Here’s what the C300’s performance looks like after being hammered for 20 minutes with random writes:
Ouch. Writes drop down to a dismal 20MB/s. But now if we TRIM the contents of the drive the performance curve looks like this:
Writes are at about 140MB/s and reads are in the low 200s. Everything is back to normal.
Now note that unlike the SandForce drives, Crucial’s controller/firmware combination will let the drive get into this state. Even if I throw randomly generated data at a SandForce drive the performance remains very high (the drive in the chart below is OCZ's Vertex 2):
Note that the lower line actually represents read performance - write speed is still up above 180MB/s.
The C300’s performance is simply not as resilient as what SandForce has to offer. For the majority of users this isn’t a problem. Typical desktop workloads shouldn’t get the drive into this state. Add in the efficiency of Crucial’s TRIM implementation and you should never see such a drop. However if your workload is atypical or particularly write intensive, the C300 may not be a good fit.
The C300 does perform background garbage collection. I’ve never particularly been a fan of idle GC simply because it fixes a problem after it’s created rather than avoiding the problem altogether. If you don’t have TRIM however (running RAID, Mac OS X, any Windows OS other than 7), idle GC is all you can rely on.
How well does it work? I subjected my 128GB C300 to almost the same torture test I mentioned above. I filled the drive to 80% of its total capacity and then threw random writes all over the drive for 20 minutes straight. Performance was predictably bad:
I left 20% of the drive empty because free space is needed for the idle GC to take effect. Here’s what the drive’s performance looked like after being idle for 3 hours:
Not exactly a drastic improvement. The idle GC just isn’t very aggressive. Compared to what Indilinx and SandForce have done, Crucial’s implementation just doesn’t cut it. For Windows 7 users running a single drive this shouldn't matter since you have TRIM. But if you're running RAID or another OS, the C300 isn't as desirable.
In terms of new, out of box performance, the Crucial RealSSD C300 does very well. It performs like a next generation drive and is significantly faster than Intel's X25-M G2 or anything based on an Indilinx controller. The 128GB C300 tends to be slower than the 100GB SandForce drives while the 256GB C300 is about on par and sometimes faster. The 256GB C300 also pulls ahead if you move to a 6Gbps SATA controller.
For Crucial the achilles heel is our old friend: the read-modify-write, a used C300 can potentially lose a good amount of its initial performance. The major disadvantage for SandForce is if you’re writing perfectly random or highly compressed data. Again I’m talking about data that’s random in nature, not random in terms of access pattern. Our heavy downloading workload shows this best where the 256GB C300 remains on top while the 100GB SandForce drive drops to Indilinx-like performance.
The C300 is clearly a drive made for Windows 7. With no TRIM utility, poor 512-byte aligned performance and clear degradation over time with heavy random writes, the C300 is best used with Windows 7 and its native TRIM support. Luckily for Crucial, there are a lot of Windows 7 users out there. Update: Version 2.6.33 of the Linux kernel supports TRIM as well. Presumably the C300 would do just as well under Linux so long as there's TRIM support.
I often get questions from Mac users asking what the best SSD is for OS X. Since Apple still won’t support TRIM you need a very resilient drive under OS X. That path leads you to SandForce. Pick up a Corsair Force, OCZ Vertex 2, G.Skill Phoenix or whatever SF drive tickles your fancy if you want the best of the best in your Mac.
At last year’s IDF a very smart man put this slide up on a projector:
At the time, the best SSDs offered great peak performance but lost a significant percentage of that over time. The aforementioned smart man then went on to say that Intel is currently playing with technologies that would trade peak performance for better overall performance, not to mention more consistent performance.
Ultimately that’s what bothers me about the C300. In terms of pure performance, in many areas, it’s the drive to beat. The 256GB version performs admirably regardless of workload, and even the 128GB drive is pretty fast. But its performance drop over time just isn’t indicative of a next generation controller. I want to see less of a drop from peak to worst case scenario performance. The larger that hit is, the more write amplification is going on. TRIM fixes much of this but it really depends on the workload. I'd say most desktop users should be fine.
It boils down to this. Crucial is a big company. Micron, its parent, is just plain huge. Despite the early hiccups with the drive I do trust their validation and testing. Even the best fall victim to mistakes. Micron works with enough OEMs to know the importance of shipping stable product. I don’t like that Crucial continued to sell C300s while the drives could potentially brick themselves, but the company gets points for being a name you can trust. Particularly if paired with a good 6Gbps controller, the 256GB C300 is fast. As a result, the C300 is a good balance of high performance and reputable brand.
SandForce on the other hand is much smaller. Most of its validation falls on the shoulders of its partners. And there’s also this nasty habit of selling drives with RC instead of MP (mass production) firmware. Things that wouldn’t fly at Crucial/Micron. But the performance ranges from decent to absolutely amazing depending on the workload. And in terms of degradation over time? I’m almost willing to say that SandForce is simply immune to it. Almost.
So who do you pick? The big company with a controller that behaves more traditionally, yet still tops the charts. Or the smaller company, with a controller that acts more like a rockstar.
If you’re running Windows 7, have a 6Gbps controller and want a 256GB drive, go Crucial. If you’re running any other OS, are using RAID or can only afford a 128GB drive, go SandForce.