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

diveintoo·2024년 3월 6일
0

혼공컴운

목록 보기
7/15
post-thumbnail

📑 본 글은 <혼공컴운>을 읽고 정리한 글입니다.

1. 다양한 보조기억장치

1-1. 하드 디스크

하드 디스크(HDD)

  • 자기적인 방식으로 데이터를 저장하는 보조기억장치
  • = 자기 디스크
  • 덮어쓰기 가능

하드 디스크의 구성요소

  • 플래터(platter)
    • 데이터가 저장되는 곳 : 동그란 원판
    • 수많은 N극과 S극을 저장 → 0과 1
  • 스핀들(spindle)
    • 플래터를 회전시키는 구성요소
    • RPM : 스핀들이 플래터를 돌리는 속도
  • 헤드(head)
    • 플래터에서 데이터를 읽고 쓰는 구성 요소
    • 바늘같음
  • 디스크 암(disk arm)
    • 원하는 위치로 헤드를 이동시키는 구성 요소

📢 일반적으로 여러 겹의 플래터로 이루어져 있고, 플래터 양면을 모두 사용할 수 있다.

  • 양면 플래터를 사용하면 위아래로 플래터당 두 개의 헤드가 사용된다.
  • 모든 헤드는 디스크 암에 부착되어 다같이 이동한다.

플래터에 데이터가 어떻게 저장됨?

  • 트랙(track)
    • 운동장 달리기 트랙
  • 섹터(sector)
    • 트랙 & 피자 조각
    • 하드 디스크의 가장 작은 전송 단위
    • 일반적으로 512바이트
    • 블록 : 하나 이상의 섹터를 묶은 단위
  • 실린더(cylinder)
    • 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
    • 원통 모양
    • 일반적으로 연속된 정보는 한 실린더에 기록된다.
      • 디스크 암을 움직이지 않고도 바로 데이터에 접근할 수 있기 때문

플래터에 저장된 데이터에 어떻게 접근함?

  • 탐색 시간(seek time)
    • 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    • 매우매우 오래 걸림
  • 회전 지연(rotation latency)
    • 헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간(transfer time)
    • 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

⇒ 탐색 시간과 회전 지연 단축시키기 : RPM 높이기, 참조 지역성

1-2. 플래시 메모리

플래시 메모리

  • 전기적으로 동작하는 반도체 기반의 저장 장치
  • USB 메모리, SD 카드, SSD, ROM(주기억장치)
  • 보통 NAND 플래시 메모리
  • 셀(cell)
    • 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • 페이지(page)
    • 셀들이 모여 만들어진 단위
    • read/write 단위
  • 블록(block)
    • 페이지가 모여 만들어진 단위
    • delete 단위
  • 플레인(plane)
    • 블록이 모여..
  • 다이(die)
    • 플레ㅇ..

플래시 메모리의 종류

기준) 하나의 셀에 몇 비트를 저장할 수 있는가

  • SLC(Single Level Cell)
    • 한 셀에 1비트 저장
    • 비트의 빠른 입출력 / 수명이 길다.
    • 용량 대비 가격이 높다.
    • read/write 많이 하고, 고성능의 빠른 저장 장치가 필요하다면..
  • MLC(Multiple Level Cell)
    • 한 셀에 2비트 저장
    • SLC보다 대용량화하기 유리하다. / SLC보다 용량 대비 가격이 저렴하다.
    • SLC보다 속도와 수명이 떨어진다.
    • 시중에서 많이 사용됨
  • TLC(Triple Level Cell)
    • 한 셀에 3비트 저장
    • 대용량화하기 유리하다. / 용량 대비 가격이 저렴하다.
    • SLC, MLC보다 속도와 수명이 떨어진다.
    • 저가의 대용량 저장 장치를 원한다면… 시중에서 많이 사용됨

⇒ 같은 용량의 플래시 메모리라고 하더라도, 셀의 타입에 따라 수명, 가격, 성능이 다르다!

페이지의 상태

  • Free
    • 암것도 없어서 새로운 데이터를 저장할 수 있는 상태
  • Valid
    • 유효한 데이터 저장 중
  • Invalid
    • 쓰레기값 보유 중

플래시 메모리의 동작 알아보기

데이터 읽기, 쓰기 단위 → 페이지

데이터 삭제 단위 → 블록

덮어쓰기 불가능 → Valid 상태인 페이지에 새 데이터 저장할 수 없음

  • 데이터 쓰기
    • 새 페이지에 저장
  • 데이터 수정
    • 기존 페이지 → Invalid 처리, 새로운 페이지에 수정값 저장
  • 가비지 컬렉션(garbage collection) 기능
    • 유효한 페이지들만 새로운 블록으로 복사 → 기존의 블록 삭제 for 용량 낭비 노노

2. RAID의 정의와 종류

중요한 정보들을 보조기억장치에 어떻게 안전하게 관리할 것인가?

2-1. RAID의 정의

RAID(Redundant Array of Independent Disks)

  • 데이터의 안전성 혹은 높은 성능을 위해
  • 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술
  • 주로 하드 디스크와 SSD를 사용함

2-2. RAID의 종류

RAID 레벨 : RAID 구성 방법

  • RAID 0
    • 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장함
      • HDD 4개에 돌아가면서 데이터를 저장한다.
    • 스트라이핑(striping)
      • 데이터를 하드 디스크에 번갈아가면서 저장하는 것
      • 스트라입 : 줄무늬처럼 분산되어 저장된 데이터
    • 데이터를 읽고 쓰는 속도가 빨라진다. like parallelization
    • BUT! 저장된 정보가 안전하지 않다.
  • RAID 1
    • 미러링 : 복사본을 만드는 방식
      • RAID 0처럼 스트라이핑하지만, 완전한 복사본을 하나 더 만든다.
      • (HDD 2개에 돌아가면서 데이터를 저장한다.) X 2
      • 두 군데에 써야해서 쓰기 속도가 RAID 0보다 느리다.
    • 복구가 매우 간단하다.
    • BUT! 사용 가능한 용량이 적어진다.
  • RAID 4
    • 패리티 비트(parity bit)를 저장하는 장치를 따로 둔다.
      • 오류를 검출하고 복구하기 위한 정보(원래 패리티 비트는 오류 복구는 못 함, 여기에서만 가능)
      • HDD 3개에 돌아가면서 데이터를 저장한다. + 1개에 parity bit를 저장한다.
    • 하드 디스크 단 하나의 희생으로 데이터를 안전하게 보관할 수 있다.
    • BUT! 데이터를 저장할 때마다 패리티 디스크에도 써야하므로, 패리티를 저장하는 장치에 병목 현상이 발생한다.
  • RAID 5
    • 패리티 정보를 각 HDD로 분산한다. → RAID 4의 병목 현상 해소
  • RAID 6
    • RAID 5 + 서로 다른 두 개의 패리티를 둔다.
    • 저장할 패리티가 2개이므로 쓰기 속도는 느리다.
    • BUT 데이터 매우매우 안전하다.

0개의 댓글