[컴퓨터 구조] 보조기억장치

byeol·2023년 3월 17일
0

오늘은 비휘발성 저장 장치인 보조기억장치에 대해서 배웠다.

보조기억장치 중에서 하드 디스크는 내장하드라고 하며 컴퓨터 내부에 있는 부품이기도 하다. 또한 플래시 메모리는 우리가 흔히 알고 있는 USB와 SD 카드 곳곳에 쓰인다.

평소에 자주 등장하는 단어이기 때문에 이번을 계기로 개념을 제대로 확립하자.

오늘도 🏃‍♂️🏃‍♂️🏃🏃🏃‍♀️🏃‍♀️

하드 디스크

하드디스크 : 자기적인 방식(N극, S극)으로 데이터를 저장하는 보조기억장치

구성 요소

  • 플래터(Flatter) : CD처럼 생긴 원판 모양으로 실질적으로 데이터가 저장되는 곳, 자기적인 방식으로 저장되기 때문에 자기 물질로 덮여있다.
  • 스핀들(Spindle) : 회전축이라고도 하는데 스핀들은 플래터를 회전시키는 역할을 한다.
    • RPM(Revolution Per Minute) : 스핀들이 플래터를 돌리는 속도로 분당 회전수이다.
  • 헤드 (Head) : 플래터를 대상으로 데이터를 읽고 쓰는 역할을 담당한다.
  • 디스크 암(Disk Arm): Actuator Arm이라고도 한다. 헤드를 원하는 위치로 움직이는 역할을 한다. 해당하는 데이터가 있는 곳으로 위 아래로 움직인다.

어떻게 저장될까?


하드디스크는 여려겹의 플래터로 구성되어져 있다.
하나의 플래터에는 나이테처럼 여러개의 트랙으로 나누어져 있다.
트랙은 피자 조각처럼 여러 개의 섹터로 나누어지게 되며
섹터는 하드 디스크의 가장 작은 전송 단위이다.

일반적으로 하나의 섹터는 512바이트 정도의 크기를 가지고 있다.

실린더는 여러 겹의 플레터들의 같은 위치에 있는 트랙들을 모아서 실린더라고 한다.

연속된 정보를 보통 한 실린더에 기록된다.
디스크 암의 이동을 최소화하기 위해서(이동에도 시간이 들기 때문이다.)

플래터는 위와 같이 앞뒤 모두에 데이터가 저장되기 때문에
앞뒤 모두에 헤드와 디스크 암이 있다. 그래서 같은 실린더에는 연속된 정보를 저장하는 것이 효율적이다.

어떻게 원하는 데이터가 저장된 곳에 접근할까?

데이터를 접근하는 과정은 크게 3가지이며 그에 따라 시간도 3가지로 나뉜다.

  • 탐색시간 : 데이터가 저장된 섹터가 위치한 트랙으로 헤드를 이동시키는 시간(이 시간을 줄이기 위해 한 실린더에 연속된 정보가 저장된다.)
  • 회전지연시간 : 섹터가 위한 곳이 헤드에 닿도록 플래터를 회전시키는 시간이다.
  • 전송시간: 섹터와 컴퓨터 사이에 데이터를 전송하는 시간이다.

이 시간들이 성능에 큰 영향을 끼치기 때문에
RPM 플래터를 회전시키는 속도도 중요하지만 관련 정보들이 주변에 위치해 있는 참조지역성을 지키는 것도 중요하다.

헤드의 개수에 따른 디스크 분류

  • 단일 헤드 디스크(이동 헤드 디스크) : 하나의 헤드가 이동하면서 트랙에 접근
  • 다중 헤드 디스크(고정 헤드 디스크) : 트랙 별로 헤드가 존재하기 때문에 헤드가 이동할 필요가 없어 탐색시간이 0이다.

플래시 메모리

플래시 메모리 : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치

USB, SD 카드, SSD에 쓰이지만 보조기억장치가 아닌 주기억장치 중 하나인 ROM에도 쓰이는 등 곳곳에 쓰인다.

종류

  • NAND 플래시 메모리 : NAND 연산을 수행하는 회로를 기반으로 만들어진 메모리로 대용량 저장 장치에 많이 사용된다. 내가 배우는 플래시 메모리에 대한 내용은 NAND에 속한다.
  • NOR 플래시 메모리 : NOR 연산을 수행하는 회로를 기반으로 만들어진 메모리

단위


플래시 메모리에는 단위가 있다.
단위에 의해서 결정되는 것들이 있다.
셀에서는 한 셀에 몇 개의 비트를 저장할 수 있느냐에 따라 플래시 메모리의 종류를 나눌 수 있다.
또한 페이지 단위로 데이터가 읽고 쓰이며
블럭 단위로 데이터가 삭제된다

  • 셀(cell): 데이터를 저장하는 가장 작은 단위
  • 페이지(page) : 셀이 모여 페이지가 된다
  • 블록(block) : 페이지가 모여 블록이 된다.
  • 플레인(plane) : 블록이 모여 플레인이 된다.
  • 다이(die) : 플레인이 모여 다이가 된다.

자세히 알아보자

셀(cell)

셀이 모여서 플래시 메모리의 용량을 결정지으며 한 셀에 몇 개의 비트가 저장될 수 있느냐에 따라 플래시 메모리의 종류를 나눌 수 있다.

SLC(Single Level Cell)에는 한 셀에 1비트,
MLC(Multiple)에는 한 셀에 2비트,
TLC(Triple Level Cell)에는 한 셀에 3비트가 저장된다.

종류에 따라 플래시 메모리의 수명, 속도, 가격이 달라진다.
(플래시 메모리와 하드 디스크에도 수명이 있다.)

SLC 타입

  • 한 셀에 1비트가 저장된다.
  • 따라서 두가지의 데이터가 표현된다 0과 1
  • 하나만 왔다갔다 하면되기 때문에 다른 플래시 메모리에 비해서 입출력 속도가 빠르다.
  • 수명도 다른 타입에 비해서 길지만 용량 대비 가격은 비싸다.

MLC 타입

  • 한 셀에 2비트가 저장된다.
  • 따라서 4가지의 데이터가 표현된다.
    00 01 10 11
  • SLC에 비해서 왔다갔다 하는 데이터가 길어서 SLC보다 입출력 속도가 느리며 수명도 SLC에 비해서 짧다
  • 그러나 가격 측면에서는 SLC보다 용량 대비 저렴하다.

TLC 타입

  • 한 셀에 3비트가 저장된다.
  • 따라서 8가지의 데이터가 표현된다.
    000 001 010 011 100 110 101 111
  • MLC에 비해 입출력 속도가 느리고 수명이 짧다.
  • MLC에 비해 용량 대비 가격이 저렴하다

페이지

셀들이 모여 페이지가 된다고 했다. 또한 페이지 단위로 데이터가 읽고 쓰인다고 했다.

페이지는 3가지의 상태를 가진다.

  • Free : 어떠한 데이터도 저장하고 있지 않은 상태로 새로운 데이터를 저장할 수 있다.
  • Valid : 유효한 데이터가 저장된 상태
  • Invalid : 유효하지 않은 쓰레기 값을 저장하고 있는 상태

중요한 것은 플래시 메모리는 하드 디스크와 다르게 덮어쓰기가 불가능하기 때문에 Valid상태와 Invalid상태의 페이지에는 데이터를 저장할 수 없다.

따라서 만약에 기존에 저장된 'A'라는 값을 'a'로 바꾸고 싶다면 Free인 페이지에 'a'를 저장하고 'A'가 저장된 페이지는 Valid에서 Invalid로 상태를 변경해야 한다.

왜 삭제하지 못할까?

앞서 언급했지만 삭제는 블럭 단위로 가능하기 때문에 'A'라는 데이터를 삭제하기 위해서는 Valid 상태의 페이지도 함께 삭제된다.

결국 Invalid한 상태의 페이지들이 많아지게 되고
필요한 데이터를 저장할 수 있는 공간이 점차 줄어들게 된다.

따라서 최근 SSD를 비롯한 플래시 메모리는
Valid한 상태의 페이지만 새로운 블럭에 복사하여 저장하고
기존의 것을 삭제하는 기능인 가비지 컬렉션 기능
을 제공한다.

profile
꾸준하게 Ready, Set, Go!

0개의 댓글