Solid state drives (SSD)
Categories: memory and storage storage
A solid state drive (SSD) performs the same function as a hard disk. The difference is that an SSD uses flash memory for storage. This means that it contains no moving parts, which gives a number of advantages, but mainly an increase in speed.
SSDs are usually physically compatible with standard hard drives - they are the same size, so they can fit is the same mounting rack inside a computer. They also use the same connectors.
An SSD uses similar technology to memory cards.
Characteristics
Compared to a hard drives, solid state drives:
- Are a few times faster, particularly for reading data. In particular the have no "seek time", see the section on speed.
- Cost a few times more.
- Weigh less.
- Use less power.
- Are more robust in terms of shock, temperature and moisture.
- Have a limited number of read/write cycles before they fail (but this is less of a problem with modern devices).
Typically an SSD will have less storage capacity than a similarly priced HDD. They are often used as a system disk (storing the operating system and program files), so that the computer will boot faster, and programs will run up more quickly. These files are read frequently, but tend not to be written very often - this is ideal for an SSD because they have fast read times but writing is not as fast.
SSDs use files and folders, exactly the same as hard drives.
Speed
SSDs can read data a few times faster than a hard drive. But another advantage they have is that there is no latency (seek time), because an SSD doesn't have a mechanical arm which has to physically move to the correct position.
When you start a large application, it will typically read a lot of files from the disk - the executable, extra libraries, plug-ins, fonts, initialisation files, etc. If the application is installed on a hard drive, the drive must seek to the start of each file, which takes extra time for every file. With an SSD, there is no seek time so the application starts faster. Loading the operating system from SSD is also faster, for similar reasons, so the computer will boot faster is the system disk is an SSD.
Fragmentation
Fragmentation is not a problem with SSDs. For a hard drive, when the disk is fragmented, file access is slowed down because the disk has to seek several times to access the whole file. With an SSD the seek time is zero, so it doesn't matter if files are fragmented.
Erasing data on an SSD
The storage on an SSD is divided into pages. An SSD page is similar to a hard drive sector, it is an area which holds a fixed number of bytes (512 or sometimes more depending on the type of drive).
Unlike a hard disk, you cannot simply overwrite data on an SSD. You must erase the entire page of data first before you can write it. Erasing data is quite slow.
To speed things up, the drive has is able to "swap" pages around. So for example, suppose you need to overwrite the data in page 100. Erasing page 100 before writing to it would be very slow.
Instead, the disk swaps page 100 for a different page which is already empty. It can then start writing immediately. At some point, when the disk is idle, the old page will de erased in the background, so it can be reused later.
Disk lifetime
Each page in the SSD can only we erased and rewritten a certain number of times before it fails and can no longer be used.
This used to be more of a problem in the past, but on modern disks each page can be erased 100,000 times or more before it fails. In addition, the page swapping mechanism is used to make sure all the pages are used equally. This means that modern SSDs will normally last as long as the computer which uses it.
See also
Sign up to the Creative Coding Newletter
Join my newsletter to receive occasional emails when new content is added, using the form below:
Popular tags
555 timer abstract data type abstraction addition algorithm and gate array ascii ascii85 base32 base64 battery binary binary encoding binary search bit block cipher block padding byte canvas colour coming soon computer music condition cryptographic attacks cryptography decomposition decryption deduplication dictionary attack encryption file server flash memory hard drive hashing hexadecimal hmac html image insertion sort ip address key derivation lamp linear search list mac mac address mesh network message authentication code music nand gate network storage none nor gate not gate op-amp or gate pixel private key python quantisation queue raid ram relational operator resources rgb rom search sort sound synthesis ssd star network supercollider svg switch symmetric encryption truth table turtle graphics yenc