반도체 메모리에 데이터를 저장하는 SSD는 읽기와 쓰기 속도, 충격 내성에서 HDD보다 뛰어나다. 이런 SSD 구조와 특성에 대한 데이터 시스템 연구가 등이 설명해 눈길을 끈다.
이에 따르면 먼저 HDD에 랜덤 액세스하려면 자기 헤드를 자기 디스크 올바른 위치에 물리적으로 이동시킬 필요가 있으며 이 동작에는 10밀리초 가량이 걸린다. 반면 SSD 랜덤 액세스는 플래시 메모리에 100분의 1 정도 시간이면 끝난다.
SSD는 큰 파일을 덩어리 그대로 저장하는 게 아니라 내부에서 저장 최소 단위로 분리해 여러 플래시 칩에 걸쳐 저장하며 순차 액세스용으로 모든 플래시 칩을 사용할 수 있도록 하드웨어 프리페처(Hardware Prefetcher)가 준비되어 있다. 하지만 플래시 칩 단독으로 본 경우에도 순차 액세스와 랜덤 액세스에 큰 차이가 있는 게 아니며 대부분 SSD가 랜덤 액세스에서 최고 속도를 달성할 수 있다. 이렇게는 모든 플래시 칩을 바쁘게 하기 때문에 수백 번 랜덤 입출력 요청을 동시에 관리해야 하지만 이는 다수 스레드를 시작해야 할 비동기 I/O 인터페이스를 이용해 수행할 수 있다.
HDD와 SSD간 또 다른 차이는 HDD는 자기 헤드 하나에 자기 디스크를 읽기 때문에 순차 액세스에서만 잘 작동하는 반면 SSD는 수십 혹은 수백 개 플래시 메모리 칩을 사용해 병렬 액세스를 하기 때문에 2가지 접근 방법 모두 잘 작동한다는 점이다.
SSD 쓰기 속도는 읽기 속도보다 10배 가량 늦은 1ms 소요된다. 소비자용 SSD는 쓰기 이후 명령(sync/flush)을 실행해 지연 시간을 측정할 수 있다. 쓰기를 할 때 높은 지연을 보충해 높은 쓰기 대역폭을 실현하기 위해 쓰기도 가져올 때처럼 여러 플래시 칩에 동시에 액세스하는 구조를 이용한다. 쓰기 캐시는 비동기적으로 페이지를 쓸 수 있기 때문에 좋은 성능을 얻기 위해 동시에 많은 기록을 관리할 필요가 있다. 하지만 쓰기는 읽기보다 10배 긴 플래시 칩을 차지하기 때문에 대기시간을 완전히 제거할 수는 없다. SSD는 저렴하고 고성능으로 진화하고 있다. 관련 내용은 이곳에서 확인할 수 있다.