1) SSD는 플래시 메모리 기반으로 만들어진 보조기억장치이다. 내부 데이터를 저장하는 영역은 플래시 메모리이다.
플래시 메모리로 만들어진 보조기억장치는 SD 카드 등 다른 것도 있지만, SSD는 접근 하는 인터페이스가 하드디스크와 유사하다.
2) 여러개의 플래시 메모리 칩들과 하나의 FTL로 구성되어 있다.
FTL는 Fresh Translation Layer로서, 디스크 컨트롤러의 역할을 한다. host에서 몇 번 블록을 읽어와달라는 요청이 들어오면, 플래시 메모리 칩에 전달하여 해당 데이터에 접근되도록 만들어주는 역할을 한다.
(하드 디스크의 디스크 컨트롤러는 positioner, arm을 움직여서 데이터를 읽어오는, 즉 디스크 pack을 구동시키는 장치이다.)
3) I/O 인터페이스를 통해 접근 가능하며, I/O bus로 접근가능하다.
4) HOST 입장에선 다른 디스크(하드디스크)와 같은 형태로 움직이는 것처럼 보인다.(내부적인 동작 메커니즘은 다르지만)
SSD는 하드디스크의 Head, arm처럼 mechanical하게 움직이는 동작을 하지는 않으며 electronic하게 데이터를 읽어온다.
(메모리 관리 시 사용한 페이지와는 다른 용어이다!)
cpu에서 i/o 버스를 타고 데이터를 읽어오라는 명령이 내려오면, 그 명령에 따라 logical disk block 번호를 FTL에서 실제 어느 블록, 어느 페이지에 있는지 찾는다.
1) 데이터를 읽고 쓰는 단위는 페이지 단위이다.
2) SSD는 In-place write가 불가능하다.
즉, 플래시메모리의 특정 페이지에 데이터를 쓰려고 하는데 비어있는 페이지라면 가능하지만 어떤 데이터가 이미 들어있다면 불가능하다. 따라서 그 내용을 지운 다음에 쓸 수 있다.
3) 데이터를 지우는 단위는 페이지 단위가 아니라 블록 단위로만 지울 수 있다.
따라서 전체 블록의 내용이 지워져 있어야 쓸 수 있다.
4) 일반적인 페이지 하나의 크기는 512Byte ~ 4KB이며, 한 블록에는 보통 페이지가 32-128개 들어있다.
5) 데이터를 Sequential로 읽을 때보다 random으로 읽고 쓸때의 속도가 느리다.
6) write가 read보다 느리다.
데이터가 저장되어 있는지 봐야 하고, 만약 있다면 지워야 하기 때문이다. (하드디스크는 동일하다)
7) 특정 블록을 지우는 횟수는 10만번이 maximum이다.
만약 10만번 이상 사용한다면, 닳아 없어져서 그 영역은 사용하지 못한다.(수명이 존재한다)
8) 하드디스크보다 훨씬 더 빠르다.
Moving part가 없기 때문이다. 전력도 덜 소모하며, 고장도 덜 난다.
9) 하드 디스크보다 비싸다.
-> 점점 SSD가 하드디스크를 대체하가고 있다.