Tech-Excursus

 

If we were to name the ten questions the most interesting concerning modern computer hardware, “How long does a SSD live?” would definitely be amongst. Hidden deeply in the mysterious cave of electrotechnology, this topic has countless dusky gaps leading into the abyss. Many of those who have tried to survive a trip down here had to surrender already. Every editor who dares entering this cavern will immediately be confronted with comments like “There are durability tests available, so how do you fool want to determine the lifetime of these drives?”. Helplessly and irritated, he will then wander around blindly, hoping to find answers in the dark somehow. This tech-excursion was written to be a weak light of hope to those who want to survive their journey without sliding into the abyss.

Before we muddle ourselves through this topic “lifetime of SSDs”, let's have a look at some relevant facts important for our understanding of these new drives. Did we just say new? The ignorant reader may think so, but in reality the technology that SSDs are based on is no new at all. The memory chips that SSDs consist of, NAND – Flash, has been used for many years now and can be found mostly in small, rather slow, therefore affordable devices: USB Flash Drives. The main difference between a well-known USB stick and the newcomer Solid State Drive can be found in the much more complex controller. It's job is to assure the SSD behaves with integrity when you install it into your computer. This includes, amongst other things, using a wear leveling system to spare the drive the otherwise certain death. A wear leveling system is a hopefully able algorithm making sure that every memory chip has the exact same amount of work to do. On top of that it tries hard to avoid writing on the chips whenever possible. To become a serious rival to HDDs, you just have to connect a fair many chips to the controller working with a multichannel system. If you put all this into a standardised 1.8”-, 2.5”- or 3.5”- case, you get a SSD. That means that all advantages and disadvantages of SSDs can be traced back to the fact that they are basically improved USB Flash Drives. In order to clarify how the disadvantages affect the lifetime of a SSD, we have to have a look at the following question: How is data being stored in and read-out of NAND memory?

The world of computers is fairly monotonous and simple: Ones and zeros – Either there is electricity flowing, or there isn't. This is the principle our modern hardware is based on. The 0 or 1 is also known as a bit, derived from binary digit. The row 01110001, for example, consists of 8 Bit or 1 Byte. In order to avoid any misunderstandings that usually occur with the usage of terms like KByte, GByte and such, we will stick with the IEC specifications, which can be found – amongst others – on Wikipedia.org. Accordingly, 1024 Byte can also be written as 1 KiB. Despite other approaches to save data, the binary system has outrivaled them all. What's new with SSDs, is the fact that they don't need any mechanical parts to work. The good old HDD needs record player-like read/write-heads which store and read from ferromagnetic disks (platters). Data is being written on these spinning platters with the help of magnetisation and demagnetisation of distinct areas. When accessing information on the HDD, the heads read the magnetic condition of this area and translates it back to binary digits – pretty similar to the pick-up technology. Now, performance is directly linked to the rotating speed of the platters, the physical size of the magnetic sectors, and the speed the write/read-heads can be aligned at. When talking about performance you shouldn't forget about the role of the position of data, it's so called fragmentation. Fragmentation simply means that one file is cut into pieces and scattered all over the HDD, which makes the heads jump all over the place to access it – not very efficient. On top of that, rotation speed in the middle of a plattern is lower than it is in the border area, resulting in a slower data processing whenever accessing files that are written there. As you can see, there are a lot of mechanical barriers a HDD has to deal with, in order to minimise problems with data integrity and failures.

A file system such as FAT or NTFS is based on clusters, the smallest administrable data package on a storage medium. Some tend to use the term block instead of cluster, particularly for non-Microsoft operation systems. To a certain degree, the size of clusters of an operation system can be set. The smallest unit usually has the size of 512 Byte. To be able to distinguish these two terms from each other, we will use cluster when talking about the file system. A block describes the smallest addressable unit that hardware and the firmware of the controller can handle. Cluster and block can be of different sizes, in fact it is very common to have much bigger clusters. Increasing HDD memory lead to a bottleneck in addessing the whole HDD – the file system was simply unable to handle this many blocks. Also, performance improves if files are smaller or just as big as a cluster, because they can then be processed in one go. In a nutshell: The administration becomes a fair bit easier. As a side-effect, fragmentation decreases. When formating a HDD the cluster size can be set to values like 4 KiB or even 32 KiB. The optimal value would be the arithmetic average value of all the files sizes. Thus, big clusters should be used when working with many big files. When handling small files, small clusters are the way to go, since only then you benefit from a faster system and improve the efficiency of memory usage. You should also be familiar with terms like “random read”, random write” and “accesstime”. As mentioned before, data that is scattered all over the HDD can be troublesome. The write/read-heads then have to realign to get access to every single piece. The random time the heads need to do this, is called “accesstime”, the process of accessing data “random read” or “random write”. If data can be processed without realigning the heads, it is called “sequential read” or “sequential write”. The access speed for files, especially when opened for the first time after booting, is mainly linked to the rotation speed of the platters. Only when they have been accessed before, the operation system can find them in the cache. This is the reason for the success of Western Digital's 3,5” Velociraptor Series, which rotate at a speed of 10.000 rpm instead of the usual 7.200 and access data in about 4ms. Unfortunately, spinning platters produce heat, vibrations and noise. High-Performance HDDS, e.g. from SAS, with 15.000 rpm also crave for a lordly amount of energy. All those are factors that home users as well as mobile users don't want to be bothered with. They want a low current drain, noiseless operation, a minimum in height and weight, realiability,... Anything out there that does it better than a HDD?

Actually, SSDs are getting ready to take over the field. They will potentially replace HDDs and, while they're at it, they will also bury all these uncertainty factors. Just imagine there were no write/read-heads anymore to crash into a rapidly spinning platter, destroying not only themselves but the whole HDD with it. Imagine there was no motor running, thus no motor that could deny its work one day. Imagine your HDD's life would be outreached easily. This is what SSDs are promising to accomplish. How is that possible?

A Solid State Drive works doesn't contain any mechanical parts. Using NAND Flash memory, that is based on either Single Level Cells (SLC) or Multi Level Cells (MLC), SSDs process data electrically. Data storage works as follows: If you push an electron into a flash cell, this cell has the value of a 0; if you remove the electron, the value changes to 1. As you might remember from physic lessons at school, electrons are darn agile and hate staying in one and the same place. This is where the so called gate oxides (MOSFETs) join the game. These components make sure the electron can't escape its destiny. Without changing a change in voltage that is, of course. So if the electron has to be removed, it's the condensor's job to change the voltage. Depending on the chemical parts of a MOSFET, the condensors can be found inside the MOSFET.

SLCs are capable of storing one Bit (one electron), MLCs are supposed to handle at least two Bits, thus give electrons an unwanted home. Sounds like MLCs are more talented, but beware of their disadvantages! MLCs can't be rewritten without having been erased before. The technically correct term for this characteristic attribute is NOP 1 (Number of Partial Page Operation). SLC on the contrary are supposed to handle 3 NOPs before demanding the erasure of their value. Now, if you put a few billions of these cells together and combine them with a controller, you get a SSD.

As with HDDs, a number of cells is merged to a so called Page, the smallest addressable unit of SSDs. The size of these Pages varies greatly. For ordinary data storage, the Page size is usually as big as 2048 or 4096 Bytes. Another 64 operative Bytes are used to mark a cell's condition and to offer compensation for potentially defective cells (reserve cells). A Block or “Erase Block” usually consists of 128 Pages, sometimes even more. To give you an idea of the value of all these numbers: A whole memory chip is subdivided into 4000 Blocks. A Block always contains the same Pages, they can't be adjusted dynamically. The biggest problem of the NAND-Technology definitely is the inability to write on / delete single Pages. Before rewriting one single Page, the whole block that it's linked with has to be deleted. All the MOSFETs have to be opened at the same time, the electrons regain their freedom and the cells values are back to 1. On top of that you have to keep in mind that memory cells, especially MOSFETs, have a very limited life time, which means that electrons – and with them the stored data - will eventually be able to escape without the cell's permission. Repeated erase cycles harm the sensitive gate oxides even more so. It is estimated that SLCs (or rather their MOSFETs) live for an average of 100.000, MLC for an average of 10.000 erase cycles. As the words “assumed” and “average” indicate, these numbers are a good guess; there is no statistic that accounts for them. So whoever is of the opinion these cells have to survive this long, could get a nasty surprise. Due to the awkward write function, blocks get marked as unusable much faster than you might think. Once a Page has perished and no compensation cells are left, the whole block is segregated. The time for SLCs can come after 100.001 cycles, after 32 million cycles or after 100 – you can impossibly tell. Just one thing about the life of SSDs is perfectly certain: MLC based drives have a shorter average life than those made of SLCs, especially if you consider other possible defects MLCs are vulnerable to. As you can see, there is a good reason for SLCs being twice as expensive as MLCs.

Given the fact that SSDs are based on NAND-Flash, their lifetime is finite. How long they last depends on a variety of factors. Let's have a closer look at them.

Chip quality: We already issued the difference between SLC and MLC chips and touched on the vulnerability of MLC, just a few sentences ago. The keyword here is “voltage fluctuation”. Even though MLC do have error correction (ECC), the probability of failure can't be excluded and is three times higher than for SLCs. This is a result of the materials used to build Multi Level Cells. This is especially delicate when talking about server systems, who have to face voltage swings regularly, other than laptops or desktop computers, which don't even dream of hefty loads servers endure daily. You shouldn't underestimate the usage of sub-standard chips for building MLC SSDs either; many chips get a sharp laser cut before they are put back on the profitable track. “You get what you pay for” - hasn't it always been this way?

Wear Leveling: Without this technique, SSDs couldn't possibly exist. Well, not quite, but they wouldn't last nearly as long as you want them to. SSDs would literally write their own grave. Wear leveling however takes care this doesn't happen all too fast. It tries to divide the work evenly amongst all the erase blocks, thus preventing single erase blocks from wearing down by getting deleted again and again. Like this, distinct areas of the SSDs can't be abused, nor be written to death. This could for example be achieved by just storing and deleting a small file, till the block affected gets sorted out; then you proceed with the next block, yadda yadda yadda. Potentially important data stored on supposedly secure Pages would just be crippled together with the erase blocks.

Now, there are two approaches of wear leveling: static and dynamic. Dyanamic wear leveling makes sure new data is written onto scarcely used blocks. Static wear leveling does a bit more, since it also shifts data that had once been saved onto a block; meaning if you save a pretty useless file onto your SSD and don't use it for an eternity, a controller using wear leveling would at least walk it from time to time to make sure all the erase blocks have the same amount of work to do. In this context, the memory space of your SSD plays an important role: The more free memory your SSD has, the longer all the cells live. Do we have to mention that wear leveling is a computationally pretty intense life saver that requires a smart and well-programmed controller? And do we have to add that more data saved on your SSD means more work for the controller, which will eventually lead to a decrease in performance (notably for MLC-SSDs)? Guess not...


Reserve cells: When a cell's gate oxydes can't hold the electrons in place anymore, they get mapped out. Where this buffer of free cells comes from depends on the manufacturer. Some withhold 10% of the specified memory capacity, others just 5%. Yet another SSD builder hide a stockpile of cells somewhere on the drive; those can mostly be found amongst the 64 operative Bytes we mentioned earlier. Wherever these reserve cells come from, they have quite an impact on the drive's life. But they can't protect you from losing data when the cell dies.

Size of the erase blocks: The bigger the erase blocks, the shorter the life of your SSD. Even if the process that needs to be executed affects a small file only, the whole erase block needs to be erased to make it happen. And some manufacturers don't feel like publishing the size of their SSD's erase blocks, which doesn't solve this issue. This silence-politicy makes things even worse, since the size of these blocks can vary from rather normal and sufficient 100-500KiB up to horrendous 4MiB. Like this you sometimes don't know what you get, even though this value is one of the elemental values for calculating (or should we say estimating) the lifetime of a Solid State Drive.

Character of use: We don't have to emphasise on the fact that SSDs are good at reading anymore, it's proven. Unfortunately, things look a bit different for their write performance. Since there is a latecy time for every block deletion, writing takes some time. It varies from enjoyable 0,1ms for SLCs to measured 214ms for MLCs. And even if the erase block would have been big enough to accommodate two small files, these are sometimes written onto two distinct blocks, hence wasting time and lifetime. This undesirable process is called random write. If blocks get packed with data without wasting any cell, they are used efficiently – this process is called sequential write. If you could chose, you would want your SSD to use sequential write only, to make sure erase blocks are only deleted when really needed. This increases your SSD's lifetime and performance. If the controllers were able to use a “log structured file system”, the dream of sequential write only could become true. Sadly, these controllers are still being developed, therefore not to be found in any SSD yet. It is these controllers who will eventually increase SSDs survivability and writing speed enormously, both MLCs and SLCs. If you can't wait that long, have a look at Easy Computing Company's software “Managed Flash Technology (MFT)”, which is a good attempt at rendering random write into sequential write.

When talking about the character of use, we also have to drop a few words on the role of defragmenter software. Although a log structured file system will make them become obsolete anyways, this reason is not the most important one. NAND-Flash technology has incredibly fast access times of about 0.1ms, so that data can be read in almost no time, even when scattered all over the drive. If you defragment anyhow, you just waste your SSD's erase cycles. You should also keep in mind that data written on SSD blocks doesn't really have a fixed position as it is the case with HDDs; there is no file written “behind” the other one, there is no write/read-head searching for and jumping to it. The utmost level of defragmentation would be data written together onto the same Pages. We just say: Forget about defragmentation, it is useless and harmful.

Let us add yet a few more lifetimes-influencer. A problem which has put the cat among the pigeon just recently, has been given the suitable name “15MB bug”: The SSD controller indicates the drive's capacity as 15MB, thus making it useless to its user. As you can see, manufacturers still have a bit of work to do. There have also been incidents of data corruption associated with OCZ's “Core Series”, as soon as Kaspersky Anti Virus Software was installed. Problems like these make consumers returning their SSDs. If you are planning on buying such a piece of technology, keep in mind they are still in the process of development; they don't even match Windows' way of processing read or write commands. All the manufacturers have to emulate a HDD so the OS actually understands the SSD. And since every manufacturer uses a different way of emulation and no one shares his technology with anyone, it is really hard to evaluate errors or difficulties.

But let's get back to things we can understand. Ever heard of MTTF or MTBF? These can usually be found on the specification or features lable of a product and should not be taken into consideration at all, when buying a SSD. MTTF (Meantime before failure) and MTBF (Meantime between failures) are nothing but means that have most likely been projected. 1.5 Million hours could as well mean a lifetime of 10.000 hours – weather forecast is more accurate. On top of that, most manufacturers use the term MTBF, translating it with Meantime before failures – although MTBF should state the lifetime till and error + the time needed to repare the device once an error occurs. Not to mention what manufacturers call an error: A mapped out block is only very rarely regarded as an error, however, data can be lost forever when a block is retired.

Also forget about raid systems as safety precaution, it is simply senseless. There is no motor that could stop running overnight, there is no write/read-head that could strike. If a cell gets broken, the corrupt data will be copied onto all the other raid-drives. The probability of a SSD dying due to an internal power failure without data loss and without the partner drives copying the error is imaginably tiny. Only raid0 is likely to survive, providing an increased read- and write-performance.


As you might have noticed, we avoided using any equations to calculate (better: estimate / predict / forecast / guess) a SSD's theoretical lifetime, which could not replace the durability tests missing. This is especially true when you browse through some forums and read about defects caused by software or the controller. We don't want to juggle with numbers, so we say what is for certain: SLD-SSDs with wear leveling are the only drives to work reliably over years. MLC-SSDs however have to wait till the log structured file system is implemented into their controllers.

Nevertheless, if you are into playing with fire, have a go with this formula:


(erase cycles) x (SSD-capacity in MB) / writing speed in MB/s = lifetime in seconds


If you chose this equation don't hesitate to use the sequential writing speed, even though most write processes are random write; the SSD can write much faster sequentially than it could ever randomly. A small example:


If you chose this equation, don't hesitate to use the sequential writing speed, since it is much faster than random write. A small example:

10.000 (MLC) x 128.000 MB / 80 MB/s = roughly 6 months lifetime


The only problem with this calculation are the hypothetical amount of erase cycles as well as the fact that no normal home user would ever give his SSD enough work for 6 full months. So let's have a quick look at another possible equation, which is a bit more optimistic about the lifetime for a SSD:


(SSD-capacity in GB) x 10.000 (MLC) / lifetime expected from user y (e.g. 3650 for 10 years) = amount of data that can be written onto the drive daily, without failing to reach the expected lifetime y


If you took a drive with 128 GB capacity and want it to live for say, 10 years, you would be allowed to write about 350 GB onto the chips daily – even if they are MLCs. This equation explains where all these highly unlikely appearing statements of a lifetime of 200 years for SLC drives (100 GB a day) come from. The second equation puts the 6 months calculated with the first formula into perspective. You simply don't realise that 80 MB/s accumulate to 7.000 GB data after 24 hours – not quite representing the common user's behaviour. Still, even this equation is based on the assumption of a MLC-SSD surviving 10.000 erase cycles. But what if a cell dies at cycle 10? Right, we have corruption! And don't forget about the lifetime of a controller which might not make it as long as the cells, may it be due to poor quality or current fluctuation. Two good examples for the informative value of such equations. This is why we stick with our conclusion: Once SSD controllers work flawlessly, a SSD should survive at least as long as normal HDDs. If they can exceed their predecessor's lifetime? Only time can tell...