오늘은 비휘발성 저장 장치인 보조기억장치에 대해서 배웠다.
보조기억장치 중에서 하드 디스크는 내장하드라고 하며 컴퓨터 내부에 있는 부품이기도 하다. 또한 플래시 메모리는 우리가 흔히 알고 있는 USB와 SD 카드 곳곳에 쓰인다.
평소에 자주 등장하는 단어이기 때문에 이번을 계기로 개념을 제대로 확립하자.
오늘도 🏃♂️🏃♂️🏃🏃🏃♀️🏃♀️
하드디스크 : 자기적인 방식(N극, S극)으로 데이터를 저장하는 보조기억장치
하드디스크는 여려겹의 플래터로 구성되어져 있다.
하나의 플래터에는 나이테처럼 여러개의 트랙으로 나누어져 있다.
트랙은 피자 조각처럼 여러 개의 섹터로 나누어지게 되며
섹터는 하드 디스크의 가장 작은 전송 단위이다.
일반적으로 하나의 섹터는 512바이트 정도의 크기를 가지고 있다.
실린더는 여러 겹의 플레터들의 같은 위치에 있는 트랙들을 모아서 실린더라고 한다.
연속된 정보를 보통 한 실린더에 기록된다.
디스크 암의 이동을 최소화하기 위해서(이동에도 시간이 들기 때문이다.)
플래터는 위와 같이 앞뒤 모두에 데이터가 저장되기 때문에
앞뒤 모두에 헤드와 디스크 암이 있다. 그래서 같은 실린더에는 연속된 정보를 저장하는 것이 효율적이다.
데이터를 접근하는 과정은 크게 3가지이며 그에 따라 시간도 3가지로 나뉜다.
이 시간들이 성능에 큰 영향을 끼치기 때문에
RPM 플래터를 회전시키는 속도도 중요하지만 관련 정보들이 주변에 위치해 있는 참조지역성을 지키는 것도 중요하다.
플래시 메모리 : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치
USB, SD 카드, SSD에 쓰이지만 보조기억장치가 아닌 주기억장치 중 하나인 ROM에도 쓰이는 등 곳곳에 쓰인다.
종류
플래시 메모리에는 단위가 있다.
단위에 의해서 결정되는 것들이 있다.
셀에서는 한 셀에 몇 개의 비트를 저장할 수 있느냐에 따라 플래시 메모리의 종류를 나눌 수 있다.
또한 페이지 단위로 데이터가 읽고 쓰이며
블럭 단위로 데이터가 삭제된다
자세히 알아보자
셀이 모여서 플래시 메모리의 용량을 결정지으며 한 셀에 몇 개의 비트가 저장될 수 있느냐에 따라 플래시 메모리의 종류를 나눌 수 있다.
SLC(Single Level Cell)에는 한 셀에 1비트,
MLC(Multiple)에는 한 셀에 2비트,
TLC(Triple Level Cell)에는 한 셀에 3비트가 저장된다.
종류에 따라 플래시 메모리의 수명, 속도, 가격이 달라진다.
(플래시 메모리와 하드 디스크에도 수명이 있다.)
셀들이 모여 페이지가 된다고 했다. 또한 페이지 단위로 데이터가 읽고 쓰인다고 했다.
페이지는 3가지의 상태를 가진다.
중요한 것은 플래시 메모리는 하드 디스크와 다르게 덮어쓰기가 불가능하기 때문에 Valid상태와 Invalid상태의 페이지에는 데이터를 저장할 수 없다.
따라서 만약에 기존에 저장된 'A'라는 값을 'a'로 바꾸고 싶다면 Free인 페이지에 'a'를 저장하고 'A'가 저장된 페이지는 Valid에서 Invalid로 상태를 변경해야 한다.
왜 삭제하지 못할까?
앞서 언급했지만 삭제는 블럭 단위로 가능하기 때문에 'A'라는 데이터를 삭제하기 위해서는 Valid 상태의 페이지도 함께 삭제된다.
결국 Invalid한 상태의 페이지들이 많아지게 되고
필요한 데이터를 저장할 수 있는 공간이 점차 줄어들게 된다.
따라서 최근 SSD를 비롯한 플래시 메모리는
Valid한 상태의 페이지만 새로운 블럭에 복사하여 저장하고
기존의 것을 삭제하는 기능인 가비지 컬렉션 기능을 제공한다.