07장 - 1 다양한 보조기억장치
목표 : 하드 디스크와 플래시 메모리 학습
가장 대중적인 보조기억장치에는 하드 디스크와 플래시 메모리( USB, SD카드, SSD 등 )가 있다.
하드 디스크(HDD, Hard Disk Drive)
자기적인 방식으로 데이터를 저장하는 보조기억장치로, 자기 디스크라고 부르기도 한다.
구성요소
- 플래터(platter) : 자기 물질로 덮여 있어 수많은 N극과 S극을 저장하는 동그란 원판
- 스핀들(spindle) : 플래터를 회전시키는 물질, 회전수는 분당 회전 수 (RPM, Revolution Per Minute)로 표현
- 헤드(head) : 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰는 바늘같이 생긴 부품
- 디스크 암(disk arm) : 헤드를 원하는 위치로 이동시키는 지지대, 하드 디스크 성능에 큰 영향을 줌
저장 단위
- 트랙(track) : 플래터를 여러 동심원으로 나누었을 때, 그중 하나의 원
- 섹터(Sector) : 트랙의 한 조각, 가장 작은 하드 디스크의 전송 단위로 일반적으로 512바이트 정도의 크기
- 실린더(cylinder) : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
저장된 데이터 접근 과정
- 탐색 시간(seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연(rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간(transfer time) : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
* 참조 지역성, 접근하려는 데이터가 플래터 혹은 헤드를 조금만 옮겨도 접근할 수 있는 곳에 위치하게 하는 것도 중요하다.
* 단일 헤드 디스크 (이동 헤드 디스크)와 다중 헤드 디스크(고정 헤드 디스크)라고 하드 디스크를 구분하기도 한다.
플래시 메모리
전기적으로 데이터를읽고 쓸 수 있는 저장 장치, 보조기억장치의 범주라기보다 다양한 곳에서 사용되는 저장 장치.
* NAND 플래시 메모리 vs NOR 플래시 메모리가 있다. 이번 절에서는 모두 NAND로 통일한다.
* 플래시 메모리와 HDD에도 모두 수명이 있다.
플래시 메모리의 단위
- 셀(Cell) : 플래시 메모리에서 데이터를 저장할 수 있는 가장 작은 단위, SLC(1비트), MLC(2비트), TLC(3비트) 등이 있다.
보통 고급 서버나 산업용에는 SLC, 일반 소비자용 SSD에는 TLC가 가장 많이 사용된다. - 페이지(Page) : 셀들이 모여 만들어진 단위.
- 블록(Block) : 페이지들이 모여 만들어진 단위.
- 플레인(Plane) : 블럭이 모여 만들어진 단위.
- 다이(die) : 플래인이 모여 만들어진 단위.
플래시 메모리에서, 읽기와 쓰기는 페이지 단위로 이루어지지만 삭제는 블록 단위로 이루어진다.
이때 페이지는 세 가지 상태를 가질 수 있다.
- Free : 어떠한 데이터도 저장하고 있지 않아, 새로운 데이터를 저장할 수 있는 상태
- Valid : 이미 유효한 데이터를 저장하고 있는 상태
- Invalid : 쓰레기값이라고 불리는 유효하지 않은 데이터를 저장하고 있는 상태
* 최근 플래시 메모리는 쓰레기값을 정리하기 위해서 가비지 컬렉션 기능을 제공
왜 ? 쓰레기 값을 정리하지 않으면 용량이 낭비되기 때문에
질문 1 : SLC, MLC, TLC의 속도 차이의 이유는 무엇인가 ?
결국 똑같은 양의 데이터를 읽는 것인데, 왜 속도차이가 나는지 궁금했다.
답 : 저장하는 비트 수가 많아질수록 , 한 셀에 표현할 수 있는 상태(전압 레벨)가 많아져야 하기 때문이다.
한 셀에 저장하는 비트의 수가 많아질수록 읽기/ 쓰기에서 더욱 정밀한 전압 제어와 확인이 필요하기 때문에 속도 차이가 발생한다.
질문 2:플래시 메모리에서 읽기/쓰기와 삭제 단위가 다른이유
플래시 메모리는 하드 디스크처럼 직접 덮어쓰기가 안 되고, 쓰기 전에 반드시 삭제가 필요하다.
전기적으로 저장된 셀은 삭제 시 전압을 일정하게 초기화 해야 하는데, 셀 하나만 초기화하기 어렵기 때문에
블록 단위로 전체를지우는 것이 전기적 구조상 효율적이다.
질문 3: 전기적인/자기적인 데이터 저장 방식은 무엇이고, 어떻게 데이터를 저장하는가 ?
위 두 질문을 하게 된 원인은, 전기적인 데이터 저장과 자기적인 데이터 저장을 이해하지 못했기 때문이라고 생각했다.
자기적인 데이터 저장
- 자석처럼 방향을 바꿔서 데이터를 기억
- HDD의 내부에는 플래터 표면에 아주 작은 공간(비트 단위)들이 자기 물질로 덮여 있다
- 자기 물질은 자석처럼 방향을 갖는다, 한쪽 방향이면 0, 반대면 1
- 데이터를 쓸 때는 쓰기 헤드가 전류를 흘려 플래터 위의 자성 물질의 방향을 바꾼다
- 데이터를 읽을 때는 읽기 헤드가 지나가면서 유도 전류를 감지해 0인지 1인지 판별한다.
전기적인 데이터 저장
- 전자를 '가둬두는 것'
- 메모리 셀은 아주작은 전기 스위치이고, 전자를 담는 Floating Gate, 흐름을 조절하는 스위치인 Control Gate
전자를 밖으로 나가지 못하게 막아주는 산화막으로 구성되어 있다. - 전압을 가해서 Floating Gate에 전자를 밀어넣고, 산화막으로 전자를 빠져나오지 못하게 막는다.
- 전압을 흘려서 저항의 크기나 전류 흐름으로 전자가 있는지 없는지를 판단하고, 이를 0 혹은 1로 인식한다.
질문 4 : 그럼 왜 HDD를 사용하는가 ?
분명 내가 컴퓨터를 살 때 무조건 SSD를 사야 한다.. 로딩 시간이 차원이 다르다..! 는 말을 들었다.
그렇다면 왜 더 속도도 빠르고 소음도 없고 전기도 덜 먹는 플래시 메모리를 사용하지 않고 HDD를 사용하는 것일까 ?
- 가격 : 플래시 메모리는 같은 가격이라도 비쌈, 따라서 대용량 아카이빙에 HDD가 자주 사용됨
- 수명 & 기록 방식 : 플래시 메모리의 쓰기 횟수(P/E 사이클)이 제한되어 있어 자주 기록하고 지우는 작업에 부적합
HDD는 자성만 바꾸기 때문에 수명면에서 장점이 있다. - 데이터 복원/포렌식 : 지워진 데이터를 HDD가 복원하기 더 쉬운 편이다.