본문 바로가기

Computer Science/컴퓨터 구조

컴퓨터 구조 - 다양한 보조기억장치

하드 디스크(HDD; Hard Disk Drive)

: 자기적인 방식으로 데이터를 저장하는 보조기억장치입니다.

  • 플래터 : 실질적인 데이터가 저장되는 곳입니다. 수많은 N극(0)과 S극(1)을 저장하여 데이터를 저장합니다.
  • 스핀들 : 플래터를 회전시키는 구성 요소입니다. 플래터를 돌리는 속도는 분당 회전수로 RPM 단위를 사용합니다.
  • 헤드 : 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰는 부품입니다.
  • 디스크 암 : 헤드를 원하는 위치로 이동시키는 장치입니다. 헤드는 이 장치에 부착되어 있습니다.

 

플래터는 트랙섹터라는 단위로 데이터를 저장합니다. 플래터를 여러 동심원으로 나누었을 때, 하나의 동심원을 트랙이라고 하며 이 트랙은 피자처럼 여러 조각으로 나누어집니다. 이때 한 조각을 섹터라고 부릅니다.

 

플래터는 여러 겹으로 이루어져 있습니다. 이때 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더라고 합니다. 연속된 정보는 한 실린더에 기록됩니다. 이는 디스크 암을 움직이지 않고도 바로 데이터 접근할 수 있기 때문입니다.

 

데이터에 접근하는 시간

  • 탐색 시간(seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

  • 회전 지연(rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간

  • 전송 시간(tranfer time) : 하드 디스크와 컴퓨터 간 데이터를 전송하는 시간

 

 

 

플래시 메모리(Flash Memory)

: 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치입니다. USB 메모리, SD 카드, SSD, ROM 등이 있습니다.

  • 셀(cell) : 플래시 메모리에서 저장하는 가장 작은 단위입니다. 이 셀이 모여 MB, GB, TB 용량을 갖게 됩니다. 한 셀에 몇 비트를 저장할 수 있느냐에 따라서 SLC, MLC, TLC, QLC 타입으로 나뉩니다.
    • SLC(Single Level Cell) : SLC 타입은 한 셀로 2개의 정보를 표현할 수 있습니다. MLC나 TLC에 비해 비트의 빠른 입출력이 가능합니다. 수명 또한 MLC나 TLC에 비해 길어서 수만에서 수십만 번 데이터를 쓰고 지울 수 있습니다. 고성능의 빠른 저장 장치가 필요한 경우에 사용합니다.
    • MLC(Multiple Level Cell) : MLC 타입은 한 셀로 4개의 정보를 표현할 수 있습니다. SLC보다는 속도가 느리지만, 대용량화하기 적합합니다.
    • TLC(Triple-Level Cell) : TLC 타입은 한 셀로 8개의 정보를 표현할 수 있습니다. 일반적으로 SLC나 MLC보다 수명과 속도가 떨어지지만 대용량화하기 적합합니다.
  • 페이지(page) : 셀들이 모여 만들어진 단위입니다. 플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어집니다. 페이지는 3개의 상태를 가질 수 있습니다.
    • Free 상태 : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태입니다.
    • Valid 상태 : 이미 유효한 데이터를 가지고 있는 상태입니다.
    • Invalid 상태 : 쓰레기값, 즉 유효하지 않은 데이터를 저장하고 있는 상태를 의미합니다.

플래시 메모리는 하드 디스크와는 달리 덮어쓰기가 불가능하기 때문에 이미 데이터를 갖고 있는 페이지에 데이터를 덮어쓰기할 수 없습니다.

 

만약 X라는 블록이 4개의 페이지로 이루어져 있습니다. 그 중 2개의 페이지에는 A, B라는 데이터가 저장되어 있습니다. 이 두 페이지는 Valid 상태이고 나머지 2개의 페이지는 Free 상태입니다. 여기에 새로운 데이터 C를 저장하면 Valid 상태 페이지는 3개가 됩니다. 만약 여기서 저장된 데이터 A를 A'로 수정하고 싶다면 Free 상태인 1개의 페이지에 A'를 저장합니다. 그러면 기존에 저장되어있던 A는 Invalid 상태가 되어 쓰레기값이 됩니다.

 

문제는 A와 같이 쓰레기값을 저장하고 있는 공간은 사용하지 않을 공간임에도 용량을 차지하고 있습니다. 또한 플래시 메모리에서 삭제는 블록 단위로 이루어지기 때문에 A가 저장된 페이지만 삭제할 수 없습니다. 따라서 이런 쓰레기값을 정리하기 위해 가비지 컬렉션(garbage collection) 기능을 제공합니다.

 

가비지 컬렉션은 B, C, A' 데이터가 저장된 페이지들만을 새로운 블록을 생성하여 복사한 뒤 기존의 블록을 삭제하는 기능입니다. 즉, 새로운 블록 Y에 블록 X의 유효한 페이지를 복사하고 블록 X를 삭제하는 것입니다.

 

  • 블록(block) : 페이지들이 모여 만들어진 단위입니다. 플래시 메모리에서 삭제는 블록 단위로 이루어집니다.
  • 플레인(plane) : 블록들이 모여 만들어진 단위입니다.
  • 다이(die) : 플레인들이 모여 만들어진 단위입니다.

공부 내용에 쓰인 이미지는 유튜브 채널 '개발자 강민철' 에서 스크랩했습니다.

https://www.youtube.com/@kangminchul