Hard disk drive, flash memory

보조기억장치

Apr 02, 2024

하드 디스크

  • 일반적으로 회전하는 자기 디스크들 위에 자료를 기록
  • 자기장을 이용하여 데이터를 저장하고 읽는 방식의 자기적인 저장방식을 사용

구성

  • 스핀들
  • 플래터
  • 디스크 암
  • 헤드

저장 단위

  • 트랙
  • 섹터
  • 블록: 하나 이상의 섹터를 묶은 단위
  • 실린더: 여러겹의 플래터 상에서 같은 트랙이 위한 한 곳을 모아 연결한 논리적 단위

데이터 접근과정

  • 탐색 시간(seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
  • 회전 지연(rotational latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간(transfer time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

플래시 메모리(USB, SD, SSD)

  • 전기적으로 데이터를 기록하고 지우고 읽는 반도체 기반의 기술
  • 일반적으로 휘발성 메모리보다는 저렴하고 내구성이 뛰어나며, 작고 경량하며 전력 소모가 적은 특징
  • NOR 플래시: 비교적 빠른 읽기 속도 제공하고 주소 및 데이터 버스에 직접 액세스 가능
  • NAND 플래시: 더 높은 밀도와 낮은 비용을 제공하며 주로 대용량 저장 장치에 사용됨(여기서는 플래시 메모리가 NAND를 뜻함)

비트 용량에 따른 플래시 메모리 종류

셀(cell): 플래시 메모리에서 데이터를 저장하는 가장 작은 단위, 이 셀이 모여 MB, GB, TB 용량을 갖는 저장장치가 됨.

구분셀당 bit수명읽기/쓰기 속도용량 대비 가격
SLC(Single Level Cell)1bit길다빠르다높다
MLC(Multiple Level Cell)2bit보통보통보통
TLC(Triple Level Cell)3bit짧다느리다낮다

데이터 저장 단위

페이지(page)

  • 셀들이 모여 하나의 페이지가 형성
  • 플래시 메모리의 가장 작은 기본 단위
  • 데이터가 기록되는 물리적인 공간
  • 일반적으로 4KB 또는 8KB 크기로 구성됨

블록(block)

  • 여러 페이지가 모여 하나의 블록을 형성
  • 블록은 데이터를 읽고 쓰는 최소 단위
  • 보통 16개 이상의 페이지를 포함

플레인(plain)

  • 여러 블록이 모여 하나의 플레인 형성
  • 플래시 메모리 칩은 여러 개의 플레인으로 나누어질 수 있음
  • 각 플레인은 독립적인 데이터를 저장하고 읽고 쓸 수 있는 논리적인 영역

다이(die)

  • 여러 플레인이 모여 하나의 다이 형성
  • 다이는 플래시 메모리 칩의 실제 칩
  • 다이는 독립적인 물리적인 장치로 간주되며, 하나의 다이는 보통 하나의 패키지에 들어가는 것이 일반적임

페이지 상태

Free 상태

  • 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태

Valid 상태

  • 이미 유효한 데이터를 자장하고 있는 상태

Invalid 상태

  • 유효하지 않은 데이터(쓰레기값)을 저장하고 있는 상태

  • 읽기와 쓰기는 페이지 단위로 이루어짐

  • 삭제는 페이지보다 큰 블록 단위로 이루어짐

  • 플래시 메모리는 덮어쓰기 불가능

CASE1 - 데이터를 수정할 때

  1. X 블록이 네 개의 페이지로 이루어져 있음

  2. 각 페이지에 A, B라는 데이터가 저장되어 있음 (X: A, B, _, _)

  3. 새로운 데이터 C를 저장하려고 할 때, 쓰기는 페이지 단위로 이루어져 있기 때문에 추가할 수 있음 (X: A, B, C, _)

  4. 저장된 A 데이터를 A'로 수정하고 싶을때, 덮어쓰기가 불가능

    1. A Case

      • 새로운 A'를 추가 (X: A, B, C, A')
      • 기존 A는 사용하지 않을 공간이기 때문에 용량을 낭비하고 있지만 삭제가 블록단위라 삭제할 수도 없음 -> 가비지 컬렉션
    2. B Case

      • 유효한 페이지들만 새로운 블록으로 복사(X: _, B, C, A')
      • 기존의 블록을 삭제

RAID(Redundant Array of Independent Disks)

여러 개의 하드 디스크 드라이브를 하나의 논리적인 단위로 결합하여 데이터를 보호하고 성능을 향상시키는 기술

RAID 0

  • 데이터가 여러 디스크에 분산되어 저장되는 스트라이핑을 사용하여 성능을 향상
  • 데이터의 복제본을 만들지 않으므로 저장 용량은 증가하지만, 하나의 디스크에 장애가 발생하면 데이터가 손실될 수 있음

RAID 1

  • 데이터를 미러링하여 여러 디스크에 중복하여 저장
  • 이렇게 하면 하나의 디스크에 장애가 발생해도 다른 디스크에 데이터가 안전하게 보존(신뢰성)
  • 하드 디스크 개수가 한정되었을 때 사용가능한 용량이 적어짐

RAID 4

  • 패리티 비트(Parity bit: 오류를 검출하고 복구하기 위한 정보)를 저장한 장치를 따로 추가
  • RAID 1보다 적은 하드 디스크로도 데이터를 안전하게 보관

RAID 5

  • 패리티를 분산하여 저장하여 RAID 4에서 발생할 수 있는 병목현상 해소
  • 성능과 데이터 보호를 균형있게 제공

RAID 6

  • RAID 5와 유사하지만 RAID 6는 두 개의 패리티 정보를 사용하여 여러 디스크에서 두 개의 독립적인 디스크 장애 처리
  • RAID 4, RAID 5 보다 안전하지만 새로운 정보를 저장할 때마다 함께 저장할 패리티가 2개이므로 속도가 느림

출처:
개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

Go toor?