Originally Posted by CharlesS
TRIM's not a hack it's the other way around, really. TRIM is a way for the OS to tell the SSD controller which blocks are free and able to be erased.
Which you don't need to do if you have extra capacity.
Extra capacity costs more. Flash is expensive. To avoid having to bundle in extra capacity, TRIM was invented.
Well, and some of it was face-saving for Intel getting caught with the their pants down. By emphasizing TRIM, they didn't have to admit their early SSDs (which I have one of, thank you!) were basically flawed.
You can defragment cells and ensure totally free one's one of two ways. You can oversubscribe the drive by having more flash than you present as usable space, or you can use a hack like TRIM to shuffle flash cells within the flash that you present as useable space.
Either way you ensure the SSD has enough cells to allow the controller to shuffle things around to ensure a steady supply of totally empty and ready to write to cells.
That's it. All the other crap is smoke/mirrors, marketing fluff and people making it harder than it has to be.
If you run out of totally empty cells, your write performance drops to total crap - that's the nature and only real drawback of SSDs.
You see, a drive has no way to tell the difference between a block that has valuable data on it and a block that used to have data on it which has now been trashed
No duh. But because my SSD has about 20% more flash in the drive than is presented to the computer for use (it's over-subscribed) there is always room without the SSD having to know what is going on in the file system
for the SSD controller to do it's thing to ensure there is a steady supply of totally empty flash cells to write to.
No TRIM needed. No TRIM wanted, really. And because my SSD has that extra capacity, as flash cells wear out and are flagged as unusable, my drive will still be working long after yours just dies on you. That's worth a slight premium to me.
The way I understand it, the SandForce drives' performance comes from some weird write compression they do, compressing data on the fly to reduce the number of writes it has to do. This preserves the free blocks on the drive longer than for a normal SSD, and the large amount of extra spare blocks certainly helps as well but you're still going to run out eventually. It'll just take longer than for other drives.
The compression is for some performance optimization, but the primary feature that allows SandForce drives to maintain performance without TRIM is the extra flash capacity that is reserved for the SSD controller to have room to do it's thing. The compression and the extra "hidden" space serve different purposes.
The only way the SSD controller could effectively clear out blocks that belong to deleted files would be if it has knowledge of the specific file system you're using.
Or the other way is if there is extra flash capacity that is reserved for the drives's internal use that isn't exposed to the host OS. "working space", "scratch pad" - whatever you want to call it, it serves the same purpose as drives that don't have the extra space but support TRIM - it allows the controller to optimized and ensure a steady supply of totally free cells.
this type of garbage collection truly is a hack.
All SSD's do "garbage collection". If they didn't, you would run out of totally free cells and once every cell in your SSD has data, to write new data the cell has to be read, erased and then rewritten with the old/new data.
Whether you ensure space for the SSD controller to do this "garbage collection" (I prefer optimization but whatever floats your boat) via TRIM or having extra built in reserve capacity, the basic mechanism and result is the same.
Personally I prefer the drive just take care of it - what if TRIM has a bug and tells the SSD to whack data that is really good? Seems like a solution that introduces complexity - a whole new protocol, now there is interaction between the OS, the controller and the SSD?
Meh - I'll stick with drives that have extra capacity and the SSD controller takes care of optimizing for performance without any dependency on the host OS, thank you.
It has a large number of problems:
You have no idea what you are talking about.
It's not OS-independent. If the SSD controller knows about NTFS but not HFS+, then the GC won't function on a Mac. If it supports both, the GC still won't function on a Linux machine using ext4.
Your describing the downfall of TRIM, not over subscription. Oversubscription happens within the firmware. It's automatic. No reliance on support of a hokey protocol that's only baked into the newest OS's.
Even if it does support all file systems you want, then as soon as Microsoft releases WinFS, Apple releases "iFS" or something, or the Linux people come out with ext5, suddenly the GC won't function anymore without a firmware update.
Again, the drive cares not as to what bits are on it. It's block level storage. TRIM is what is trying to give the drive visibility into what is going on at the file system and TRIM again has all of the issues you are citing.
Drives that have extra capacity to allow the controller guaranteed free space at all times
to optimize themselves will work literally with any OS and any file system because, unlike drives that rely on TRIM support to ensure the SSD controller has some space to optimize with, drives with extra capacity ALWAYS have free space irrespective of what is loaded on them.
On the other hand, if Apple makes a minor improvement to HFS+ that doesn't change things drastically enough to keep it from looking like HFS+, but the SSD's GC isn't aware of this modification, it could cause all sorts of issues and incompatibilities as the GC makes assumptions about the file system format that aren't valid, possibly leading to data loss.
Again, irrelevant since the drive is a block level device and couldn't care less about what is on it. Every bit is sacred. This is yet another disadvantage for TRIM.
And even when everything else works, you're still relying on a third-party HFS+ driver not written by Apple, which you're using to continually scan the entire drive and decide what data can be erased. God help you if the FS driver has a bug in it.
Sigh - there is no driver. The drive doesn't care!
The drive IN MY MAC PRO RIGHT NOW
cares not about what is on it. It does it's thing and optimizes itself with no problem. I could format it, put Linux on it and it wouldn't slow down. I could format it, load DOS from 1989 with WIndows 3.1 and it wouldn't slow down.
Compare all this to TRIM, where everything is far simpler
HAHAHAHA - again, you have it exactly backwards. TRIM is adding a layer of complexity and introducing layered dependancies on OS and filesystem and SSD controllers all working correctly and not screwing up from bugs or anything else.
You can keep your drive with TRIM if you like - but again TRIM is a hack to allow SSD manufacturers to ensure there is space for the SSD controller to optimize within the useable space on the SSD. It's done for cost reasons - nothing else. The difference between a good OWC SSD and the cheaper SSD's that aren't oversubscribed isn't worth it - to me anyway.
And again, I think Intel is pushing TRIM to save face. They stonewalled for MONTHS on their original SSD's blaming everything from us users to sunspots before they finally had to admit that SSD's were different and that there was a problem after all
It wasn't pretty.
Why else would they push something that makes the overall environment more complex with a marginal cost savings - I mean they manufacture their own flash and already charge a premium compared to others - you would think it would be more appealing to them release drives that would, gee - I don't know, work with anything loaded on them?
Things that make you go hmm....