[CS] 다양한 보조기억장치

정은아·2024년 1월 8일
post-thumbnail

하드 디스크와 플래시 메모리는 가장 대표적인 보조기억장치이다. 두 장치에 대해 알아보자!

하드 디스크 (HDD, Hard Disk Driver)

  • 자기적인 방식으로 데이터를 저장하는 보조기억장치이다.
  • 자기 디스크(magnetic disk)의 일종으로 볼 수 있다.

하드 디스크 특징

  • 동그란 원판에 데이터를 저장하고, 원판을 회전시켜 뾰족한 리더기를 통해 데이터를 읽는다.
  • CD나 LP와 비슷하게 동작한다.

하드 디스크 구조

  • 플래터(platter)란? 하드 디스크에서 데이터가 실질적으로 저장되는 곳.
  • 원판 형태이며, 자기 물질로 덮여 있다. 내부에 수많은 N극과 S극이 존재한다.
  • N극과 S극은 비트 (0과 1) 역할을 한다.
  • 스핀들(spinddle)이란? 플래터를 회전시키는 구성 요소를 뜻한다.
  • RPM(Revolution Per Minute)이란? 스핀들이 플래터를 돌리는 분당 회전 수를 나타내는 단위
    • ex. RPM이 20,000인 경우, 1분에 플래터를 20,000번 회전할 수 있다.
  • 헤드(head)란? 플래터를 대상으로 데이터를 읽고 쓰는 구성요소
    • 헤드는 플래터 위에서 미세하게 떠 있으면서 데이터를 읽고 쓴다. 바늘과 같이 생겼다.
    • 디스크암(disk arm)이란, 헤드를 원하는 위치로 이동시키는 부품. 헤드는 디스크암에 부착돼 있다.

💡 많은 양의 데이터를 저장하기 위해 여러 겹의 플래터로 구성되며, 플래터 양면을 모두 사용 가능하다.
💡 양면 플래터를 사용하게 되면, 플래터마다 위아래로 두 개의 헤드가 사용된다.
💡 모든 헤드는 디스크 암에 부착돼 있으며, 디스크 암의 이동에 따라 모든 헤드가 같이 이동한다.
ex. 플래터가 5개, 헤드가 10개라면 디스크 암의 이동에 따라 10개의 헤드가 모두 움직인다.


플래터 데이터

  • 플래터는 트랙섹터라는 단위로 데이터를 저장한다.
  • 트랙(track): 플래터를 여러 동심원으로 나눌 때 그 중 하나의 원을 말한다.
    • ex. 운동장 달리기 트랙의 한 라인
  • 섹터(sector): 트랙을 여러 조각으로 나눌 때 한 조각을 의미한다.
    • 하드 디스크의 가장 작은 전송 단위이다.
    • 하나의 섹터는 일반적으로 512 바이트이지만, 하드 디스크마다 차이가 있다.
  • 블록(block): 하나 이상의 섹터를 묶어서 블록이라 표현한다.
  • 여러 겹 플래터 상에서 같은 트랙이 위치한 곳을 모아서 연결한 논리적 단위를 실린더(cylinder)라고 한다.
  • 각 플래터의 트랙들이 모여 원통 모양이 된다.
  • 연속된 정보들은 보통 한 실린더에 기록된다.
    ex. 두개의 플래터를 가진 하드 디스크가 네 개 섹터에 데이터를 저장할 때엔 첫 번째 플래터의 윗면과 뒷면, 두 번째 플래터의 윗면과 뒷면에 데이터를 저장한다.

💡 이를 통해 디스크 암을 움직이지 않고 연속된 정보에 바로 접근할 수 있다.


저장된 데이터에 접근하는 과정

  • 하드 디스크가 데이터에 접근하는 시간은 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.
  • 접근할 데이터가 저장된 트랙까지 헤드를 이동시키는 시간을 탐색 시간(search time)이라고 한다.
  • 헤드가 있는 곳으로 플래터를 회전 시키는 시간을 회전 지연(rotation latency)이라고 한다.
  • 하드 디스크와 컴퓨터 사이 데이터를 전송하는 시간을 전송 시간(transfer time)이라고 한다.
  • 탐색 시간, 회전 시간, 전송 시간은 성능에 큰 영향을 끼치게 된다.
  • 하드 디스크에서 데이터를 이용하는 시간은 매우 크다.
프로그래머가 꼭 알아야하는 컴퓨터 시간들소요시간
L1 캐시 참조 시간0.5ns
L1 캐시 참조 시간5ns
메모리 참조 시간7ns
메모리에서 1MB를 순차적으로 읽는 시간250,000ns
(하드) 디스크 탐색 시간10,000,000ns
(하드) 디스크에서 1MB를 순차적으로 읽는 시간30,000,000ns
한 패킷이 캘리포니아에서 네덜란드까지 왕복하는 시간150,000,000ns

💡 성능 향상 방법
플래터를 빨리 돌려 1분당 회전 수(RPM)를 높인다.
참조 지역성을 고려하여 데이터를 위치시켜 플래터와 헤드의 이동 시간을 줄인다.


단일 헤드 디스크와 고정 헤드 디스크

  • 단일 헤드 디스크(single-head disk)
    • 플래터의 한 면당 헤드가 하나씩 달려 있는 하드 디스크
      헤드를 데이터가 있는 곳 까지 이동 시켜야 하기 때문에 이동 헤드 디스크(movable-head disk)라고 부른다.
  • 다중 헤드 디스크(multiple-head disk)
    • 헤드가 트랙별로 여러개 달려 있는 하드 디스크
      헤드를 움직일 필요가 없기 때문에 고정 헤드 디스크(fixed-head disk)라고 부른다.

플래시 메모리

  • 우리는 플래시 메모리 기반의 보조 기억 장치를 많이 사용한다.
    • ex. USB 메모리 / SD 카드 / SSD 등..

플래시 메모리(flash memory)

  • 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반 저장 장치
  • 보조기억장치 뿐만 아니라 다양한 곳에 활용되고 있음
    ex. ROM (주기억장치)

플래시 메모리의 종류

  1. NAND 플래시 메모리
    NAND 연산을 수행하는 회로(NAND 게이트) 기반으로 만들어진 메모리
    대용량 저장 장치로 많이 사용하며 일반적으로 플래시 메모리로 통칭됨
  1. NOR 플래시 메모리
    NOR 연산을 수행하는 회로(NOR 게이트) 기반으로 만들어진 메모리

플래시 메모리 저장 단위와 종류

셀(cell)

  • 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다.
  • 셀 하나에 몇 비트를 저장할 수 있는지에 따라 플래시 메모리가 나뉜다.
    • 1비트: SLC
      2비트: MLC
      3비트: TLC
      4비트: QLC 등...
  • 셀에 저장하는 비트량은 수명, 속도, 가격에 큰 영향을 끼친다.
  • 셀에 일정 횟수 이상 데이터를 쓰고 지우면 더 이상 데이터를 저장할 수 없다.

1. SLC(Single Level Cell) 타입

  • 한 셀에 1비트 저장 가능. 즉, 0/1 2개 정보를 표현할 수 있음

💡 장점

  • MLC나 TLC보다 비트의 빠른 입출력이 가능하다.
  • MLC나 TLC보다 수명이 길어 더 많은 데이터의 입력/삭제가 가능하다.

💡 단점

  • 용량 대비 가격이 높음
  • 기업에서 데이터의 입력/삭제가 많고, 고성능 빠른 저장 장치가 필요할 때 SLC를 주로 사용

2. MLC (Multiple Level Cell) 타입

  • 한 셀에 2비트 저장 가능. 즉, 4개 정보를 표현할 수 있다.

💡 장점

  • SLC 타입보다 용량대비 가격이 저렴하다.
  • 한 셀에 두 비트를 저장하기 때문에 SLC보다 대용량화 하기 유리하다.

💡 단점

  • 속도와 수명은 SLC에 비해 떨어진다.
  • TLC와 함께 시중에서 가장 많이 사용되는 플래시 메모리 저장 타입이다.

3. TLC (Triple-Level Cell) 타입

  • 한 셀에 3비트 저장 가능. 즉, 8개 정보를 표현할 수 있다.

💡 장점

  • SLC, MLC보다 가격이 저렴하다.
  • SLC, MLC보다 대용량화 하기 유리하다.

💡 단점
SLC, MLC보다 수명과 속도가 떨어진다.

표로 다시 보기

구분SLCMLCTLC
셀당 bit1bit2bit3bit
수명길다보통짧다
읽기/쓰기 속도빠르다보통느리다
용량 대비 가격높다보통낮다

셀보다 큰 단위

  • 페이지(page): 셀들이 모인 단위
  • 블록(block): 페이지가 모인 단위
  • 플레인(plane): 블록이 모인 단위
  • 다이(die): 플레인이 모인 단위

플래시 메모리의 읽기와 쓰기, 삭제

  • 플래시 메모리의 읽기/쓰기 단위와 삭제 단위는 다르다.
  • 읽기와 쓰기: 페이지 단위로 이루어진다.
  • 삭제: 블록 단위로 이루어진다.

플래시 메모리 페이지의 상태

  • 페이지는 Free, Valid, Invalid 3가지 상태를 가질 수 있다.

Free 상태란? 어떤 데이터도 저장하지 않아 새로운 데이터를 저장할 수 있는 상태
Valid 상태란? 이미 유효한 데이터를 저장하고 있는 상태
Invalid 상태란? 유효하지 않은 쓰레기 값들을 저장하고 있는 상태

  • 플래시 메모리는 덮어 쓰기가 불가능 하기 때문에 Valid/Invalid 상태의 페이지에는 새 데이터를 저장할 수 없다.

가비지 컬렉션(garbage collection)

  • 쓰레기 값을 정리하는 기능이다.
  • 유효한 페이지들을 새로운 블록에 복사하고, 기존 블록은 삭제한다.
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글