Does writing zeros to an entire ssd (dd if=/dev/zero of/dev/sdX) give the same performance restoring effect that you get from a "secure erase", or does secure erase do something else as well?
==EDIT== To clarify slightly; I don't care about securely destroying the data, I just want to take this drive (which has had a lot of filling/deleting done on it) and restore the SSD performance loss that occurs over time.
If I recall correctly, I'm not sure you can do that to securely erase it. The controller electronics that take instruction from the OS internally implement routines for properly wearing the SSD cells evenly; they have a finite write/read cycle, and if you keep writing them over and over they "die", and so the internal system distributes write instructions to prevent issues with the drive. Your best bet would be to write data to completely then erase the file(s) and do it over again. You'd then shorten its life in the process, and even then there may be space that isn't overwritten in the process as I believe there may be some excess space saved for other data and/or backup space for found bad cells.
If you have security requirements for eliminating data on old storage media, you may not want to use SSD's or you might want to look into something more old fashioned, like shotguns or metal shredders.
If you want to restore performance, you need the drive to support TRIM; most manufacturers are coming out with utilities for their own drives that will refresh the drive. As time goes on operating systems are coming with TRIM support built in.
In a few years you probably won't have to do anything to maintain the drives. It's much like defragmenting a drive. OS X already defragments files that are less than 20 meg. Most Linux filesystems are pretty good at keeping fragmentation down. It seems NTFS still has issues with it, but I think at some point it'll be reduced as the file-within-a-file concept gets more popular in Windows (think ISO images and VM drives).
So to answer the question...zeroing out the drive will not restore performance the way TRIM support and manufacturer utilities will.
Despite the fact that Secure Erase is functionally a single pass process, it differs in many ways from writing a single pass overwrite as an externally executed process. let's consider the following, SE is initiated as an internal process controlled by the device resident controller. The fact that it is initiated as an internal process affords SE the ability to benefit from privileged device controls. These would include the ability to, when properly executed in a favorable environment, to process the Host Protected Area (the system partition usually reserved for OS images), and system files, the G-List, and elimination of the Device Control overlay (the table that defines a virtual device geometry to the host). Essentially, SE has the ability to process all writable data storage regions of the media surface, a feat that no Externally controlled process is capable of under any circumstance on ATA devices (due to controller media region access restrictions), this includes SSD devices as well as magnetic storage devices.
If you are interested in a detailed guide on The Best Practices for the Destruction of Digital Data, I am happy to provide a free personal use copy of the guide authored by myself and Gordon Hughes of the Center for Magnetic Recording Research at the UCSD just for asking. Please go to http://www.cicadasecurity.com.guide.html to access the request form for the guide.
Oh... almost forgot... to regain performance loss caused by wear leveling on SSD's Secure Erase is the answer. externally executed overwrite of the entire drive will be handled as a regular write cycle and will be subject to wear leveling.. Go with SE... for more information on SSD performance and how to regain performance go to Anand LaShimpi's site at anandtech dot com and search for paper 2738 titled 'The SSD Anthology: Understanding SSDs and New Drives from OCZ' for his excellent discussion of SSD performance.
No, it seems not to: according to here, secure erase also resets the drive and marks all blocks as available. Now zeroing can and does clearly not mark a block as available, because it is filled with data, albeit zeroes.
The link also relinks to some tool for that.
If You have any security concerns, I would just zero the drive once completely because AFAIK every flash cell can only hold one state and if You zero it, You determine the last state. Then I would use the secure erase tool for performance reclaim.
Shouldn't be a noticeable hit on the drive lifetime, because every cell should only be used one time in each step and you have thousands of write cycles.
(I wrote another answer because i wanted to keep the answer to the question and further suggestions apart for easier peruse.)