본문 바로가기
Computer Science/컴퓨터 구조

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

by 클레어몬트 2024. 2. 24.

하드디스크와 플래시메모리같은 보조기억장치들은 개인 컴퓨터부터 서버구성 및 관리까지 다방면으로 사용되는 부품이기 때문에 잘 알아놔야 한다

 

 

 

ㅇ하드디스크 (HDD: Hard Disk Drive)

하드디스크는 자기적 성질을 이용하는 자기디스크의 일종이다

수많은 N극과 S극들이 0과 1의 역할을 수행한다

 

 RPM: Revolution Per Minute

e.g. RPM이 15000이면 1분에 15000바퀴

HDD는 여러겹의 플래터로 이루어져 있고 플래터 양면을 모두 사용할 수 있다

보통 연속된 정보는 한 실린더에 기록한다(디스크 암이 움직일 필요가 없기 때문)

 

 

하드디스크가 저장된 데이터에 접근하는 시간은 크게 3가지로 나뉜다

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

일반적으로 셋 중 시간이 제일 오래 걸린다

 

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

 

3. 전송시간 (transfer time): 하드디스크와 컴퓨터 간에 데이터를 전송하는 시간

 

 

+ 다중 헤드 디스크(고정 헤드 디스크)

우리가 지금까지 배운 건 왼쪽의 단일 헤드 디스크(이동 헤드 디스크) 이다

하지만 오른쪽 그림처럼 헤드가 트랙별로 여러 개 달려 있는 경우를 다중 헤드 디스크(고정 헤드 디스크)

라 한다, 다중 헤드 디스크는 트랙마다 헤드가 있기 때문에 탐색시간이 0이다

 

 

 

참고) 구글의 AI 엔지니어로 유명한 제프 딘이 2011년 공개한 자료

<프로그래머가 꼭 알아야 할 컴퓨터 시간들>

 

 

 

 

ㅇ플래시메모리 (Flash Memory)

반도체 기반으로 전기적 성질을 이용한다

(HDD와 플래시메모리 다 수명이 있다)

e.g. USB 메모리, SD 카드, SSD, ROM 등

플래시메모리는 NANDNOR로 나뉜다, 앞으로 나올 플래시메모리는 모두 NAND 플래시메모리를 생각하면 된다

- 디지털 논리회로때의 NAND와 NOR 게이트 생각하기

 

 

셀(cell): 플래시메모리에서 데이터를 저장하는 가장 작은 단위

한 셀에 몇 비트를 저장하냐에 따라서 플래시메모리의 타입이 나뉜다

 

- SLC 타입: 한 셀에 1비트 저장 (Single Level Cell)

한 셀로 2개(2^1)의 정보 표현 가능

 

 

- MLC 타입: 한 셀에 2비트 저장 (Multiple Level Cell)

한 셀로 4개(2^2)의 정보 표현 가능

 

 

- TLC 타입: 한 셀에 3비트 저장 (Triple Level Cell)

한 셀로 8개(2^3)의 정보 표현 가능

 

 

 

+ QLC 타입: 한 셀에 4비트 저장 (Quadraple Level Cell)도 있다

 

 

 

 

 

플래시메모리의 단위들에 대해서 알아보자

셀들이 모여 페이지를 이루고 페이지가 모여 블록을 이룬다 그리고 블록이 모여 플레인, 플레인이 모여 다이가 된다

 

플래시메모리의 가장 큰 특징은 "읽기 / 쓰기 단위와 삭제 단위가 다르다"는 것이다

읽기 / 쓰기: 페이지 단위

삭제: 블록 단위

 

 

 

페이지에는 3가지 상태가 있다

Free 상태: 데이터 x

Valid 상태: 데이터 저장

Invalid 상태: 쓰레기값 저장

 

 

간단한 예시를 통해 플래시메모리의 동작을 알아보자

X라는 블록이 4개의 페이지로 이루어져 있고 A, B가 저장되어 있다 가정하자

 

상황 1) 블록 X에 new 데이터 C를 저장

 

 

상황 2) 블록 X의 A를 A'로 수정

플래시메모리는 HDD와 다르게 덮어쓰기가 불가능하다 따라서 기존에 저장된 A는 Invalid 상태가 되어 쓰레기값이 되고 새로운 데이터 A'가 저장된다 결과적으로 블록 X의 Valid 페이지는 B, C, A'가 된다

하지만 여기서 문제가 발생한다, A와 같이 쓰레기값을 저장하고 있는 공간은 낭비가 되지만 플래시메모리는 삭제를 블록단위로 하므로 지울 수가 없다 그래서 이런 쓰레기값을 정리하기 위해 나온 최근 기술이 가비지 컬렉션이다

가비지 컬렉션 알고리즘

 

가비지 컬렉션은 유효한 페이지들만 새로운 블록으로 복사한 후 기존 블록을 삭제하여 공간을 정리하는 기능이자 기술이다

.

.

.

그 밖의 다른 보조기억장치들

ㅇ광 기억장치(Optical Disk): 저가 / data backup

- CD(Compact Disk): 대용량 복사본 배포(저가)

- DVD(Digital Versatile Disk, 디지털 다목적 디스크): 영화

 

ㅇ자기 테이프(Magnetic Tape): 초저가 / data backup

최저 비용으로 영구백업의 목적으로 많이 쓰인다

e.g. 은행/전산/기록원 예전 data들

 

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

ㅇRAID (Redundant Array of Independent Disks)

RAID는 여러 개의 물리적 보조기억장치들을 하나로 간주하는 기술이다

안정성과 성능을 높이며 주로 HDD와 SSD에 사용된다

이러한 RAID에는 레벨이 있다

 

 

RAID 0: 각 HDD가 번갈아가며 데이터 저장 (HDD 개수만큼 나뉘어 저장) 성능 up

스트라이프: 분산되어 저장된 데이터

스트라이핑: 분산하여 저장하는 것

 

 

 

하지만 이런 성능 좋은 RAID 0에 단점이 있다 바로 안정적이지 않다는 것이다

하나라도 문제가 생기면 전체에 피해가 가기 때문에 안정성의 측면에서 좋지 않다 

 

 

 

그래서 등장한 것이 RAID 1이다

RAID 1: 백업을 만든다 (미러링) 안전성 up

읽을 때는 2개를 사용하지만, 쓸 때는 4개를 사용해서 속도와 용량이 좋지 않다

비용도 더 들지만 복구가 간편하여 더욱 안정적이다

 

 

 

RAID 2: 해밍 코드를 사용

RAID 3: 패리티 비트를 사용

(RAID 2, 3은 현재 거의 사용하지 않는다)

 

 

 

RAID 4: 패리티 디스크 사용 속도, 용량 up

패리티 디스크를 아예 하나 따로 두는 방식이다

패리티 비트는 에러를 체킹하는 정보로 컴퓨터 네트워크에서 또 배운다

 

패리티 A 데이터는 A 데이터들의 에러체크를 맡고 패리티 B 데이터는 B 데이터들의 에러체크를 맡고 패리티 C와 패리티 D도 같은 방식이다

원래 패리티 비트는 에러체크용 비트이지만 RAID에서는 복구까지 가능하다

 

단점으로는 패리티 디스크에 과부하가 걸려 병목현상이 생길 수 있다

 

 

 

ㅇRAID 5: 패리티 분산 저장 → 패리티 디스크 병목현상 해결

앞서 RAID 4 방식의 단점인 병목현상을 해결하기 위하여 나왔다

 

 

 

ㅇRAID 6: 서로 다른 2개의 패리티 더 안전 but 쓰기 속도 ↓

 

 

 

"여러 상황에 맞는 RAID 레벨이 무엇인지 알아야 한다"

가령 RAID 0은 신뢰도가 낮지만 저비용이라 간단한 사설 서버에 사용되고 RAID 1은 신뢰도가 높아 회계/은행 쪽에서 사용한다 

 

 

추가) 여러 RAID 레벨을 혼합한 방식을 Nested RAID라고 한다

e.g. RAID 0 + RAID 1 = RAID 10

       RAID 0 + RAID 5 = RAID 50

 

 

 

 

 

 

 

 

참고 및 출처: 컴퓨터시스템구조론(William Stallings), 혼공컴운(강민철), Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham)