프로그래밍/컴퓨터구조 및 운영체제

하드디스크와 플래시 메모리

gameObject 2023. 10. 31. 11:26
728x90

[혼자공부하는 컴퓨터구조 & 운영체제] 를 공부하며 정리한 내용입니다.

하드디스크

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

 

1) 작동방식

- 수많은 N극과 S극으로 저장을 하는 플래터가 여러겹으로 이루어져있다.

- 플래터는 일반적으로 양면 모두 사용한다.

- 스핀들이 플래터를 회전시켜준다. (회전의 단위 : RPM_분당 회전수)

- 헤드를 통해 플래터의 미세하게 떠있는 자기물질을 읽는다.

- 헤드는 디스크 암에 부착되어 함께 이동한다.

 

2) 하드디스크 저장단위

- 기본적으로 트랙(track) / 섹터(sector) 단위로 데이터를 저장한다.

하나 이상의 섹터를 묶어 블록 이라고 표현하기도 한다.

실린더는 여러겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위이다.

 

연속된 정보는 한 실린더에 기록한다. (헤드를 움직이지 않고 읽을 수 있기 때문)

 

3) 데이터 접근 과정

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

- 회전지연 (rotational latency) : 접근하려는 데이터가 헤드가 있는곳까지 플래터를 회전시키는 시간

- 전송시간 (transfer time) : 하드디스크와 컴퓨터간에 데이터를 전송한느 시간

 

플래시 메모리

- SSD / USB / SD카드 등이다.

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

- 범용성이 넓기에 보조기억장치에만 속한다고 보기는 어렵다.

- 주기억장치중의 하나인 ROM으로써도 많이 사용된다.

1) 종류

 - NAND 플래시메모리 : NAND기반이며 오늘날의 대용량 저장장치로 많이 사용된다.

 - NOR 플래시 메모리 : NOR 게이트 기반이다.

 

2) 셀(cell)

- 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다. 

- 이 셀이 모이고 모여 수 MB,TB 저장장치가 된다.

- 한 셀에

 - 1비트를 저장할 수 있으면 SLC (Single level Cell)

 - 2비트 : MLC

 - 3비트 : TLC

 - 4비트 : QLC

-> 성능, 가격, 수명을 결정하는 요소이다.

 

SLC - 한 집에 한명
한 셀로 두개의 정보 표현 (1bit == 0,1)
비트의 빠른 입출력 (한명이 외출준비 한다고 생각하면 쉽다.== 빠르다)
긴 수명 (USB, SSD, SD카드, 하드디스크 수명이 있다. 일정횟수 이상을 썻다 지웠다 하면 고장나는것처럼 수명이 있다.)
용량 대비 고가격 (혼자서 집을 살때 월세가 더 비싼 느낌)

MLC - 한 집에 두명
한 셀로 네 개의 정보 표현(대용량화 유리)
SLC보다 느린 입출력
SLC 보다 짧은 수명
SLC 보다 저렴
시중에 많이 사용 (MLC, TLC, QLC)

TLC - 한집에 세명
한 셀로 8개 정보 표현(대용량화 유리)
MLC보다 느린 입출력
MLC 보다 짧은 수명
MLC 보다 저렴
시중에서 많이 사용

 

이를 통해 같은 플래시 메모리라도 수명, 가격, 성능이 다르다.
따라서 플래시메모리의 타입도 고려하는것이 좋다.

 

플래시 메모리 - 저장단위
셀(cell)
- 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
- 이 셀이 모이고 모여 MB, GB, TB 저장 장치가 된다.

셀들이 모여 페이지(page)
페이지가 모여 블록(block)
블록이 모여 플레인(plane)
플레인이 모여 다이(die)

 

읽기/쓰기 단위와 삭제 단위가 다르다
- 읽기/ 쓰기는 페이지 단위로 이루어지고
- 삭제는 (페이지 보다 큰) 블록 단위로 이루어진다.

페이지의 상태
1) free 상태
1) 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장 가능
2) Valid 상태
1) 이미 유효한 데이터를 저장하고 있는 상태
3) Invalid 상태
1) 유효하지 않은 데이터(쓰레기 값)를 저장하고 있는 상태
** 플래시 메모리는 하드디스크와 달리 덮어쓰기가 불가능하다.

가비지 컬렉션 (덮어쓰기가 불가능한점을 해결하기 위해)
1. 유효한 페이지들만을 새로운 블록으로 복사
2. 기존의 블록을 삭제

728x90