After several long discussions on the subject, I am left thinking that SSDs still can't clean up the space from deleted files that haven't been TRIMmed. One article that I was referred to specifically states that Garbage Collection will keep moving blocks from deleted files.
So, a question. Can I make sure that all unused space has been freed on the SSD by making a very large file that takes up all my free space and then deleting it?
If your system isn't issuing TRIM commands (because the SSDs are in a RAID set, for example), then creating and deleting a big file won't get a TRIM to the SSD either. So I guess I don't quite understand the question - why would you think that creating/deleting a large file would work any differently than deleting the smaller files in the first place?
Another thing to keep in mind is that creating a huge file won't have any effect on the SSD unless you actually write data into all of the blocks, and that's not particularly desirable because it will cause more write wear on the drive.
For OSs like XP that don't support TRIM there are utilities that you can run manually that will scan a drive and issue TRIM commands for all of the unused space. For example my Intel SSD came with the "Intel SSD Toolbox" software that can do this. This kind of tool would be better than just creating a huge file and then deleting it, but it also relies on TRIM commands being able to reach the drive.
The drive accumulates untagged unused cells in other ways. The worst example is when I restore one of the partitions from an image dump - unless I secure erase the drive and restore them all, I end up with a lot of "used" cells that I will never touch again.
Please no comments on the wisdom of partitioning SSDs - it was just a convenient example. The point is that a lot of cells get abandoned without the OS seeing the deletion and reporting it via TRIM.
OK, I see what you're saying. A "dumb" image restore that writes to every block on the drive will cause all of the blocks on the SSD to be flagged as used. In that case I still think that the best way to solve that is to run a utility like the Intel SSD Toolbox to go through the restored partition to identify all of sectors that are not in use by the file system and send TRIM commands to the drive for them.
It's also useful to note that since Windows 7 is SSD-aware, it's built-in tools are also useful for these kinds of situations. For example, if you're about to install a fresh copy of Windows to an SSD that's been used before, you'd want to use the Windows 7 install DVD to first delete the old partition. That sends a TRIM command for all the blocks in the partition so that you have a "clean" series of blocks to install into.