ultra_dev
보조기억장치 본문
대표적으로 하드디스크와 플래시 메모리(ssd, usb, sd카드)가 존재
하드 디스크
- 자기적인 방식으로 데이터 저장
- 큰 동그란 원판(플래터)에 수많은 N극과 S극으로 데이터가 저장됨. 플래터는 여러겹 + 양면 사용!
- 스핀들(원판 가운데)이 플래터를 회전시킴. 회전 단위는 rpm으로
- 플래터를 스팬들이 쭉 회전 시킬 때, 이 자기적인 물질을 갖고 있는 플래터를
읽고 쓸 수 있는 것을 헤드라는 구성 요소가 한다. - 헤드는 플래터 위에 아주 미세하게 떠있는, 자기물질을 읽는 구성요소!
- 플래터의 모든 면마다 헤드가 붙어있다!
- 헤드를 움직여주는 구성요소는 디스크암이다!! 모든 헤드가 디스크암에 부착돼서 함께 이동한다!
- 즉 모든 헤드들이 디스크암에 부착돼서 움직이는 것
- 하드디스크는 트랙과 섹터 단위로 데이터가 저장된다.
- 트랙은 운동장의 트랙 느낌. 플래터를 이루고 있는 동심원을 그리는 저장 단위?
- 섹터는 나누어진 트랙을 피자 조각마냥 나눴을 때 그중 한 조각
- 하나 이상의 섹터를 묶어서 블록이라고 표현하기도 한다.
- 여러 플래터 상에서 같은 트랙이 위치한 곳을 모은 것을 실린더라고 불림
- 보통 연속된 정보는 한 실린더에 기록
- 예를 들어, 2개의 플래터 사용하는 하드디스크에서 4개의 섹터에 걸쳐서 데이터 저장 시에
첫번째 플레터의 윗면,뒷면과 두번째 플래터의 윗면,뒷면에 기록 - why? 한 실린더에 두면 헤드를 움직이지 않고도 데이터를 읽을 수 있으니까!!
하드 디스크가 저장된 데이터에 접근하는 시간 = ( 탐색시간 + 회전지연+ 전송시간 )
1. 탐색 시간
- 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 헤드가 원하는 곳에 닿을 수 있게 길이 줄여야겠지? 탐색시간
2. 회전 지연
- 헤드가 있는 곳으로 플래터를 회전 시키는 시간!!
3. 전송 시간
- 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
참고) 참조 시간
: 메모리에 비해 하드디스크가 확실히 느림
L1 캐시 참조 시간 0.5ns
L2 캐시 참조 시간 5ns
메모리 참조 시간 7ns
메모리에서 1MB를 순차적으로 읽는 시간 250,000ns
(하드) 디스크 탐색 시간 10,000,000ns
(하드) 디스크에서 1MB를 순차적으로 읽는 시간 30,000,000ns
참고)
한 패킷이 캘리포니아에서 네덜란드까지 왕복하는 시간 150,000,000ns
패킷: 네트워크 기본 전송 단위
플래시 메모리
: 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치
→ 범용성이 넓기에 보조기억장치에만 속한다고 보기는 어렵다
→ 주기억장치의 rom에서도 플래시 메모리 주로 사용
ex) ssd, sd카드, usb
플래시 메모리의 종류
- NAND 플래시 메모리(보통 이걸 의미함)
- NOR 플래시 메모리
플래시 메모리
- 셀(cell)
- 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
- 이 셀이 모이고 모여 수 MB, GB, TB 저장 장치가 된다.
- 한 셀에
- 1비트를 저장할 수 있는 플래시 메모리 : SLC
- 셀 1개로 2개의 정보 표현 가능
- 비트의 빠른 입출력(1셀에 1비트니까)
- 긴 수명
- 용량 대비 고가격(1셀을 1비트만 차지하니까)
- 2비트를 저장할 수 있는 플래시 메모리 : MLC
- 셀 1개로 4개의 정보 표현(대용량화 유리)
- SLC보다 느린 입출력
- SLC보다 짧은 수명
- SLC보다 저렴
- 시중에서 많이 사용
- 3비트를 저장할 수 있는 플래시 메모리 : TLC
- 셀 1개로 8개의 정보 표현 (대용량화 유리)
- MLC보다 느린 입출력
- MLC보다 짧은 수명
- MLC보다 저렴
- 시중에서 많이 사용
- 4비트를 저장할 수 있는 플래시 메모리 : QLC
- 1비트를 저장할 수 있는 플래시 메모리 : SLC
셀들이 모이면 페이지(page)
페이지들이 모여서 블록(block)
블록이 모여서 플레인(plane)
플레인이 모여서 다이(die)
읽기/쓰기 단위와 삭제 단위는 다르다
- 읽기 , 쓰기는 페이지 단위로 이루어 진다.
- 삭제는 (페이지보다 큰) 블록 단위로 이루어진다.
페이지는 상태를 가질 수 있다
페이지의 상태
- Free 상태
- 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid 상태
- 이미 유효한 데이터를 저장하고 있는 상태
- Invalid 상태
- 유효하지 않은 데이터(쓰레기값)을 저장하고 있는 상태
→플래시 메모리는 하드 디스크와 달리 덮어쓰기가 불가능하다!!
블록 x에서 a,b페이지 존재할 때 데이터c 추가하고 싶으면 c 페이지 추가
이제 블록 x에서 a페이지를 a2로 바꾸고 싶으면
가비지 컬렉션을 활용
- 새로운 블록 y에다가 valid 페이지인 a2,b,c를 복사하고, invalid 페이지인 a는 복사 안함
- 그 후 기존의 블록을 삭제한다.
여기서 가비지 컬렉션은 유효한 페이지들만 새로운 블록으로 복사한 후 기존 블록을 삭제하여 공간을 정리한다.
RAID의 정의와 종류
1TB 하드 디스크 4개로 RAID를 구성하면
4TB 하드 디스크 한개의 성능과 안정성을 능가할 수 있다.
RAID (Redundant Array of Independent Disks)
- 하드 디스크와 ssd로 사용하는 기술
- 독립적인 하드디스크나 ssd 여러개를 마치 하나처럼 엮어서 사용할 수 있는 기술
- 데이터의 안정성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를
마치 하나의 논리적 보조기억장치처럼 사용하는 기술
RAID 레벨
- RAID를 구성하는 기술
- RAID 0, RAID 1, RAID2, RAID3, RAID4, RAID 5, RAID 6 등이 존재
- → 2,3은 잘 사용 안함
RAID 0
: RAID를 구성하는 방법 중 0번째 방법 ~
데이터를 단순히 나누어 저장하는 방식
각 하드디스크가 번갈아 가면서 데이터를 저장
저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장!
스트라입(stripe) : 마치 줄무늬처럼 분산되어 저장된 데이터
스트라이핑(striping) : 분산하여 저장하는 것
- 하드 디스크 여러개 두고 번갈아가며 a1,b1 이런식으로 경계 나눠서 저장하듯 줄무늬처럼 분산해서 데이터 저장
RAID 0 장점 : 입출력 속도의 향상
나눠서 저장돼있으니 동시에 입출력이 가능해짐!
cpu가 a1,a2,a3,a4 갖다 줘! 했을 때 하드디스크1,2,3,4에 각각 저장돼있으니 동시에 바로 슉 줄 수 있음
RAID 0 단점 : 저장된 정보가 안전하지 않음
- 하드디스크 하나가 고장 나버리면 다른 하드디스크의 데이터도 활용할 수 없게 됨.. 나눠서 저장했으니
RAID 1
미러링 : 복사본을 만드는 방식
데이터를 쓸 때 원본과 복사본 두 군데에 쓴다(느린 쓰기 속도)
하드1,2는 원본으로 사용, 나눠서 저장
하드3,4는 백업(복사본)
RAID1 단점 : 복사본이 만들어지는 용량만큼 사용 불가능(복사본 만들어야하니 공간 낭비..) → 많은 양의 하드 디스크가 필요 → 비용 증가
RAID1 장점 : 백업과 복구가 쉽다!!
RAID 4
(RAID 1처럼 완전한 복사본을 만드는 대신) 오류를 검출하고 복구하기 위한 정보(패리티 비트)를 저장한다.
1처럼 다 저장하는게 아니라 오류 검출 관련 정보만 저장!!
즉 하드디스크 1,2,3에는 데이터 나눠서 저장하고
하드디스크4에는 패리티 비트를 저장하는 느낌
패리티를 저장한 장치를 이용해서 다른 장치들의 오류를 검출하고, 오류가 있다면 복구!
패리티 비트는 원래 컴퓨터공학에서 오류 검출만 가능할 뿐 오류 복구는 불가능한 정보인데
RAID4에서 사용하는 패리티 비트는 오류 복구도 가능하다!!
RAID4 단점 : 패리티 디스크의 병목
- 데이터 새로 쓸 때마다 패리티 디스크에 오류 검출 코드를 계속 저장해줄 수 밖에 없으니
패리티 비트 저장하는 하드디스크에 병목이 생길 수밖에..
RAID 5
패리티 정보를 분산하여 저장하는 방식
RAID4가 패리티를 저장한 하드디스크같은 걸 따로 두는 방식이라면(하드123 + 하드4(패리티 저장))
RAID5는 패리티를 각 하드디스크 같은데다가 분산해서 저장하는 방식임(하드1234에 데이터와 패리티저장)
RAID 6
두 종류의 패리티(오류를 검출하고 복구할 수 있는 수단)…
기존 4,5가 패리티A,B,C만 저장했다면
6은 패리티 1A, 패리티1B, 패리티1C, 패리티 2A, 패리티2B, 패리티 2C 이런식으로 2종류를 저장
RAID 5보다 안전, 쓰기는 RAID 5보다 느림(패리티 비트를 2종류로 써야하니 당연..)
- 각 RAID 레벨 마다 장단점이 있다.
- 어떤 상황에서 무엇을 최우선으로 원하는 지에 따라 최적 RAID 레벨 달라질 수 있다
- 빠른걸 원하면 RAID0, 안전한 걸 원하면 RAID1,RAID6 이런 식으로
'혼자 공부하는 컴퓨터구조+운영체제' 카테고리의 다른 글
운영체제 (0) | 2023.09.19 |
---|---|
입출력장치 (0) | 2023.09.12 |
메모리와 캐시 메모리 (0) | 2023.09.10 |
cpu의 성능 향상 기법 (0) | 2023.09.09 |
CPU의 작동 원리 (1) | 2023.09.05 |