Machineboy空

보조기억장치 ① 하드디스크와 플래시 메모리, Garbage Collection 본문

Computer/CS

보조기억장치 ① 하드디스크와 플래시 메모리, Garbage Collection

안녕도라 2024. 1. 9. 11:03

대표적 보조기억 장치 : 하드디스크, 플래시 메모리 (ssd, usb,sd카드 등)

 


하드디스크 (Hard disk)

자기적인 방식(N극과 S극)으로 데이터를 저장.

플래터 : 수많은 N극과 S극으로 이루어진 여러 겹의 원판층


하드디스크 저장 단위

 

플래터에 저장이 되며 섹터와 트랙 단위로 데이터가 저장된다.

기본적으로 플래터는 양면이 모두 사용될 수 있는데 같은 트랙이 위치한 곳을 모아 연결한 곳을 실린더라고 함.

 

보통 연속된 정보는 한 실린더에 기록된다.


하드디스크 데이터 접근 과정

 

하드 디스크가 저장된 데이터에 접근하는 시간

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

이 시간들이 별 것 아닌 것 처럼 보여도 지금까지 배운 컴퓨터 동작 시간들에 비하면 굉장히 긴 시간이기 때문에 주요한 시간 변인!

Jeff Dean: 구글 AI 주도하는 주요 프로그래머

메모리를 읽는 시간 현저히 높아짐.

 

참고) 하드 디스크 실제로 동작

https://www.youtube.com/watch?v=3owqvmMf6No


플래시 메모리 (Flash Memory)

 

전기적으로 데이터를 읽고 쓰는 반도체 기반 저장장치.

실제로 주기억장치 ROM으로도 플래시 메모리가 쓰임

 

플래시 메모리의 종류

  • NAND (Not-AND) 플래시 메모리 : NAND연산 기반의 회로
  • NOR (Not-OR)플래시 메모리 : NOR연산 기반의 회로

여기서 언급하는 것은 NAND 플래시 메모리

 


플래시 메모리 (Flash Memory)의 저장 단위

 

셀(cell)

  • 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • 이 셀이 모이고 모여 수 MB, GB, TB 저장 장치가 된다
    • SLC(single level cell): 한 셀에 1비트를 저장할 수 있는 플래시 메모리
    • MLC(multi level cell): 한 셀에 2비트를 저장할 수 있는 플래시 메모리
    • TLC: 한 셀에 3비트를 저장할 수 있는 플래시 메모리
    • QLC: 한 셀에 4비트를 저장할 수 있는 플래시 메모리
  • 플래시 메모리의 성능, 가격, 수명을 결정한다.

SLC, MLC, TLC

같은 플래시 메모리라도 수명, 가격, 성능이 다르다

 

  • SLC(Single Level Cell)
    • 한 셀에 한 비트가 저장되어 있기 때문에 한 셀로 두 개의 정보가 표현할 수 있다.
    • 비트의 빠른 입출력 가능
      • 혼자 살 때 외출 준비하는 것 보다, 여러 명 같이 살며 외출준비하는 것이 더 느린 것 처럼
      • 혼자 살 때 좀 더 빠르게 나오고 들어가고가 가능한 것 처럼
    • 용량대비 고 가격
      • 월세 나눠 내는 거랑 혼자 내는 거랑 비교 가능
    • 수명
      • *일정 이상 횟수를 썼다 지웠다 하게 되면 종이가 헐거워지는 것처럼 수명이 있어.

  • MLC(Multi Level Cell)
    • 짧은 수명: 썼다 지웠다 할 수 있는 횟수가 적다.
     

플래시 메모리 (Flash Memory)의 단위

읽기/쓰기 단위와 삭제 단위는 다르다

  • 읽기쓰기페이지(page) 단위로 이루어진다.
  • 삭제는 (페이지보다 큰) 블록(block) 단위로 이루어진다.

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

 

플래시 메모리의 동작 예시

  • 새로운 데이터 C를 한 셀(cell)에 저장해야한다면?
    • 그냥 저장 가능
  • C,B는 그대로 둔 채 A를 수정하고 싶다면?
    • 삭제는 블록(block)단위로 이루어지기 때문에 A만 삭제하는 것은 불가
    • A를 Invalid Page로 만든다음에 새로운 Page에 A'값을 넣게 된다.
    • 즉 A는 쓰레기값을 담고 있지만 괜히 용량을 차지하고 있음
     

가비지 컬렉션 (Garbage Collection)