Everything you need to know about Solid State Disks (SSD)
written by Matt_Nextabyte
Also known as SSD.
Unlike conventional hard drives, SSDs utilize several flash chips to store data. There are two kinds of flash chips, Single-Layer Cell (SLC) and Multi-Layer Cell (MLC). The main difference between the two is that MLC stores 4 states per transistor (2 bit) while SLC stores 2 states per transistor (1 bit). This causes MLC to be cheaper and to hold more data, but at the cost of slower speeds and a drop in the number of writes. MLC can handle approximately 10,000-100,000 writes per cell while SLC can handle 100,000 - 1,000,000 writes per cell.
To prevent certain areas of cells from dying prematurely, SSDs utilize a technology known as wear leveling. Wear leveling will make sure that all cells are written too evenly. Using an internal table, it translates OS file locations to its own internal file locations. Depending on the efficiency and effitiveness of this wear leveling code, it can greatly affect performance of the SSD.
One thing to note about SSDs is that they cannot write directly to flash cells if they have been previously written too. Please note that groups of cells are organized into pages and these pages are organized into blocks. While read and write operations can be performed on pages, only blocks can be erased at a time. This means that a whole block must be erased to rewrite a previously written to page.
This is why SSDs have such low write speeds compared to read speeds. Once all the blocks have been filled due to day to day operating (wear leveling will fill all the blocks in your SSDs even if you use very little of your drive), blocks must be erased to allow further use. As an example, pretend that we have a block with 5 pages. One page is deleted, which used to be a document. Two other pages are a picture of my dog. Now we try to store a 3 page file, but with the data written to in the first page, we must now erase the whole block. To erase a whole block without losing certain pages, the whole block must be moved to cache. See below for the example.
I hope this example shows why SSDs get slower the more you write to them. While a clean SSD with no data may perform 100 MB/s writes for the first few days, this can quickly drop once it is used. With insufficient cache and an inefficient controller, this can cause stuttering anytime a write it performed.
Before I get into the specific drives, let me first explain the controllers. The controllers not only translate standard SATA commands into flash reads/writes, but these controllers can usually handle 6-12 flash chips at a time. This is where SSDs get their speed and why certain SSDs cost sufficiently more than others. Not only do the flash chips account for price (brand and type), but also the brand and type of the controller. See below for the most common controllers.
JMicron JMF602 - This was the controller that revolutionized SSDs. This controller was used in the first low-cost SSDs from the likes of the OCZ, Ridata, and others. Just because it was cheap does not make a great SSD controller. Due to its small amount of cache and bad design, this controller is shown to greatly affect the random write performance down to horrendous levels. It is very much recommended to stay away from drives with this chip inside. Issues with this controller: slow writes, long latency, system freezing, system lockup, drive failure, and etc.
Indilinx Barefoot - Created by a Korean company with a large number of ex-Samsung employees, this chip was created to replace the JMicron. Utilizing an ARM processor and a large 64 MB DRAM cache, this controller was the first low-cost controller to offer amazing read/write performance that rivaled the higher cost controllers. This controller features 8 channels. This controller is recommended.
Intel X Controller - Intel designed their own controllers for their own SSDs. Even though Intel never created SSDs before, these controllers offer amazing read/write performance. The reason for this performance is the 10 channel controller. Extremely recommended.
Samsung S3C29RBB01 - Samsung is the largest player in the SSD industry. Everyone uses their flash chips and many people use their controllers. This is Samsung's newest MLC controller and is just now showing up in SSDs and is showing a great level of performance without being expensive. Extremely recommended.
Now that you know what the controllers are capable of, let me list out exactly what drives have what controllers.
- CT128M225 - MLC, Indilinx. Interestingly, they use SuperTalent's PCB rather than whoever it is that makes them for G.Skill, OCZ, etc.
- S128 - MLC, Samsung S3C49RBX01
- P256 - MLC, Samsung S3C29RBB01
- Falcon - Indilinx
- Titan - dual JMicron JMF602B
- All Intel drives use the same controller, Intel X Controller. Their -M drives are MLC, the -E drives are SLC.
- SSDNow E-Series : rebadged Intel X25-E
- SSDNow M-Series : rebadged Intel X25-M
- SSDNow V-Series : JMicron JMF602B, sort of. It's a Toshiba-branded chip, and claims to be using tweaked firmware plus has 64 KB RAM instead of 16 KB.
I don't really know much about Mtron drives. AFAIK, they all use the same Mtron-designed FPGA/ASIC controller.
- Mobi 1000 - MLC
- Mobi 3000 - SLC
- Mobi 3500 - SLC
- Agility - MLC, Indilinx, supposed to be slower than the Vertex (probably through the use of lower cost flash chips). Need someone to pop the lid to get a better idea.
- Apex - MLC, dual JMicron JMF602B
- Core - MLC, JMicron JMF602
- Core V2 - MLC, JMicron JMF602B
- Solid - MLC, JMicron JMF602B
- Solid 2 - MLC, crippled Indilinx controller. Until someone pops the lid, it's not clear how it's been crippled. The spec'd speeds seem to indicate only half the channels being used or something.
- Summit - MLC, Samsung S3C29RBB01
- Vertex - MLC, Indilinx
- Vertex Turbo - MLC, Indilinx, overclocked controller + RAM, but the flash is apparently still running at the same speed so it's unclear whether there's any real-world performance advantage.
- Vertex EX - SLC, Indilinx
- Warp - MLC, JMicron JMF602?
- Warp V2 - MLC, JMicron JMF602B
- Warp V3 - MLC, dual JMicron JMF602B
- Torqx - MLC, Indilinx
- Torqx M28 - MLC, unknown, though 128 MB RAM implies Samsung S3C29RBB01 rather than Indilinx.
- X25-M - The same as the Intel drive of the same name ...
- S525/S518 - JMicron, appears to be both SLC and MLC versions floating around.
Note that Samsung tends to supply drives to computer assemblers (Dell, Apple, etc) as opposed to selling direct to the end user. So there's probably lots more out there that aren't included below.
- PB22-J - MLC, Samsung S3C29RBB01
- K1 - SLC, JMicron
- K2 - MLC, JMicron
- K5 - SLC, Indilinx
- K6 - MLC, Indilinx
- X1 - SLC, dual JMicron
- X2 - MLC, dual JMicron
- UltraDrive LE - SLC, Indilinx
- UltraDrive ME - MLC, Indilinx. SuperTalent use their own PCB layout for this drive (and presumably their SLC version as well).
- MasterDrive BX - SLC, unknown (only SATA I, so whatever it is, it's old )
- MasterDrive OX - MLC, JMicron
- MasterDrive PX - SLC, JMicron
- MasterDrive RX - SLC (parts starting with FTD) or MLC (parts starting with FTM), dual JMicron JMF602B
- MasterDrive SX - MLC, Samsung S3C29RBB01