There seems to be some debate over the use of defragging utilities on your SSD drive. The purpose of this post is to try to clear this up a bit. In order to do this, we must look at where the opinions are comming from, and how an SSD actually works.
The main proponents that say that you DO need to defrag your SSD also sell defrag programs, which I am SURE is a coincidence (NOT!
).
The opponents of defragging your SSD are pretty much all the makers of SSD drives, virtually every expert on the subject of SSDs, and of course the biggest experts on Windows and how it operates at the high and low levels with the hardware, MICROSOFT, who created the operating system
. They all say the same thing: You do not need to defrag your SSD. Defragging it like a hard drive WILL lower its life expectancy without increasing performance.
So, just looking at who says not to do it, I would think that there should not be too much debate, but as with a lot of things, a lack of understanding (or a simple plain english explanation) of a new technology tends to cause some to hold on to long held beliefs left over from similar hardware (spinning hard drives).
Lets look at the hardware aspect of what an SSD must do to work and be widely accepted by the users: Imagine where SSD technology (and prices) would be today if you had to buy a new motherboard (or computer) just to use an SSD. In addition to the motherboard, you would need to purchase a new 'magic' operating system that could utilize the features of the SSD. The expense alone of all these 'upgrades' would have prevented the mass sales of SSDs, keeping the prices extremely high, and the number of manufacturers low, since it would remain as a high-end only item that only the richest users could afford.
So How does the SSD work with current and past hardware and operating systems without the need for 'magic' expensive upgrades?
Simply put, the first job of the SSD controller is to lie its butt off
! Really! Here are the lies the controller must tell in order to work:
1: It has to tell your BIOS and motherboard "Don't mind me, I'm just a plain old fast hard drive. you can boot from me and use me!"
2: After the hardware accepts the SSD, the SSD controller has to tell the same lie to the operating system which is used to performing input and output to specific blocks on a hard drive. Basically, the operating system is fooled into thinking it is in full control of where on the SSD the data is going, since it has always had control in the past on normal hard drives. There is a lot of logic inviolved in this, so the controller has its own processor and basic operating system (firmware).
So, what does this have to do with defragging? Lots...
On a normal hard drive, you want all your most used data in the fastest area all together, since it has to move the drive head around if the data is not all in one place. Once you write the data to a location, it is up to the operating system to know where it is and to maintain the pointers to it on the physical location on the platters. The data stays there until it is told to move it. Defragging software does this for you through the operating system. Your Spinning disk drive can write and overwrite to any location the operating system says to ("write this data from x through y, read the data to me from x through y).
The SSD does things a little differently. There are no platters or heads to move. Data comes from several places at once instead of from one sequential location. Due to the limited number of writes to any one location (cell) of the SSD, the controller must be in control of where things are written to, or the SSD would wear out very quickly. When the operating system tells the SSD to write something to a specific location, the controller tells the operating system that it did (lies). It then spreads the data out in the unused areas of the SSD. This is called 'wear leveling'. When the operating system asks for it back, the controller takes the location that the OS asked for and converts it to the actual cells where it is stored and sends the data to the OS. The SSD controller also likes to move things around when it is idle to keep as many free cells as possible, but does not need to tell the OS that it is moved. The changes are done in the location conversion table (this is not the actual name, just description of what it does).
Bottom line, there is no need to defragment the SSD, since the operating system has absolutely NO CONTROL at all where the data is actually (physically) stored on your SSD. The SSD will put the data where it pleases, even during a defrag operation!
Personally, I would love it if the firmware could somehow block the defrag operation, but it is allowed to happen simply to maintain compatibility with your operating system and drivers.
Hope this clears this one up for some of you (us)