보조 기억장치는 여러 종류와 특징을 가지고 있다.
자기적인 방식으로 데이터를 저장한다.
HDD는 아래와 같은 구성요소를 가지고 있다.
platter는 track과 sector라는 단위로 데이터를 저장하는데, platter를 여러 동심원으로 나누었을 때 그중 하나의 원을 track 이라고 부른다.
그리고 track을 여러 조각으로 나눴을 때, 이 한 조각을 sector라고 부른다.
sector는 HDD의 가장 작은 전송단위이며, 보통 512byte 정도의 크기를 가지지만 정확한 크기는 HDD에 따라 다르다.
여러 겹의 platter 상에서 같은 track이 위치한 곳을 모아 연결한 논리적 단위를 cylinder라고 부르고, 연속된 정보는 보통 하나의 cylinder에 기록한다.
HDD에 저장된 데이터에 접근하는 시간은 크게 seek time, rotational latency, transfer time이라고 부른다.
seek time과 rotational latency의 지연을 단축시키기 위해서는 RPM을 높이는 것도 중요하지만 참조 지역성을 챙기는 것도 중요하다.
USB, SD 카드, SSD 모두 flash memory 기반이다.
flash memory는 cell이라는 단위로 구성된다.
이 cell이 모이고 모여 MB, GB 등 큰 용량을 갖게 되는데 한 cell에 1bit를 저장할 수 있는 flash memory를 SLC(Single Level Cell), 2bits를 저장하는 경우 MLC, 3bits를 저장하는 경우를 TLC 타입이라고 한다.
Cell들이 모여 만들어지는 단위를 page, page가 모여 만들어지는 단위를 block이라고 하고 block을 모아 plane, plane을 모아 die가 된다.
page는 3개의 상태를 가지는데 이를 각각 free, valid, invalid 상태이다.
valid 상태인 page는 새 데이터를 저장할 수 없다.
최근에는 flash memory에 garbage collection을 추가해 쓰레기 값을 제거하는 추세이다.