일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 자료구조
- 보조저장장치
- 후위표기법변환
- 제어유닛
- Nodemon
- 프론트엔드
- 자바스크립트 배열
- pug
- mongoose
- 유튜브 클론코딩
- 후위표기법연산
- 컴퓨터 구조론
- 리액트
- 컴퓨터 구조
- Session
- 자바스크립트
- 유튜브클론코딩
- Express
- 표현식과 문
- MongoDB
- 모던 자바스크립트 Deep Dive
- 깃허브 로그인
- JavaScript
- 마이크로명령어
- 연결자료구조
- 제어유니트
- react
- node.js
- CPU
- cookie
- Today
- Total
909 Devlog
[컴퓨터 구조] - 보조저장장치 본문
👋 본 글은 "컴퓨터 구조론" 책을 읽고 요약, 정리한 글입니다.
책 구매 링크에서 책을 확인하실 수 있습니다.
6장에서는 가장 대표적인 보조저장장치인 하드 디스크의 구조와 동작 원리를 살펴보고, 용량과 신뢰도를 높이기 위한 디스크 배열인 RAID의 설계 개념과 구조를 분석한다. 그리고 최근 보조저장장치로 사용이 확대되고 있는 플래시 메모리와 SSD의 내부 구조 및 동작 원리에 대하여 자세히 설명한다. 특히 최근 반도체 분야의 핵심 기술로 부각되고 있는 3D V-NAND 플래시의 구조에 대해서도 분석하며, SSD의 성능 개선을 위한 제반 기술들도 살펴본다.
🎯 1. 하드 디스크
자화될 수 있는 물질로 코팅된 플라스틱이나 금속을 이용한 원형 평판으로 만들어진 저장장치 : 하드 디스크, 혹은 디스크라고 부름
주요 구성 요소들
- 원형 평판 : 실제 정보가 저장되는 장소로서, 다수의 트랙들로 구성
- 헤드 : 전도성 코일을 통하여 표면을 자화시킴으로써 데이터를 저장하는 장치
- 디스크 팔 : 헤드를 이동시키는 장치
- 구동장치 : 원형 평판 회전 및 디스크 팔 구동을 위한 모터
아래는 단일-헤드 디스크를 나타내는 그림이다.
디스크 쓰기 : 헤드의 코일에 전류가 흐를 때 발생하는 자기장을 이용하여 데이터를 저장하는 동작
디스크 읽기 : 자기장이 존재하는 위치에 헤드가 지나갈 때 코일에 유기되는 전기를 감지하여 데이터를 인출하는 동작
📌 1 - 1. 디스크의 구조
아래는 디스크 표면의 세부 구조를 나타내는 그림이다.
섹터 : 디스크에 한 번에 쓰거나 읽는 데이터 크기의 최소 단위
섹터간 갭 : 섹터들을 구분하기 위한 간격
트랙간 갭 : 헤드가 잘못 정렬되거나 자장의 간섭 때문에 발생하는 오류를 방지하기 위한 트랙들 사이의 간격
전형적인 디스크의 경우, 표면당 트랙의 수 = 500 ~ 2000개, 트랙당 섹터의 수 = 32개
등각속도 (Constant Angular Velocity, CAV)
- 디스크가 일정한 속도로 회전하는 상태에서 트랙의 위치에 상관없이 데이터를 동일한 비율로 액세스 하는 방식
- [장점] : 디스크 읽기 / 쓰기 장치가 간단하다
- [단점] : 저장 공간이 낭비된다. (바깥쪽 트랙이 안쪽 트랙보다 더 길지만, 저장하는 데이터 양은 같아야 하기 때문)
아래는 CAV 방식을 나타내는 그림이다.
다중 영역 기록 (Multiple Zone Recording: MZR) 방식
- 디스크 표면이 여러 개의 동심원 영역들로 나누어 지며, 같은 영역에 속한 트랙들의 저장 밀도는 동일
- 디스크 전체적으로 저장 밀도를 거의 같도록 조정
- 바깥쪽 트랙들에 더 많은 데이터 저장 가능
- 각 트랙이 더 많은 섹터들로 분할
- 15개 트랙들이 5개 영역들로 분할
- 안쪽 두 영역들 : 두 개의 트랙이 각각 9개 혹은 11개 섹터
- 다음 영역 : 세 트릭이 14 혹은 15개 섹터
- 바깥쪽 두 영역은 각 네 트랙씩, 각 트랙은 14 혹은 16개 섹터
- 15개 트랙들이 5개 영역들로 분할
- [장점] : 디스크 전체 용량 증가
- [단점] : 트랙 위치에 따라 회전속도가 조정되어야 하므로 제어 회로가 더 복잡, 영역에 따라 읽기 및 쓰기 시간에 미세한 차이 발생
아래는 MZR 방식을 나타내는 그림이다.
디스크 형식화 작업
- 디스크의 구성을 검사하고, 그에 관한 정보와 트랙의 시작점, 섹터의 시작과 끝을 구분하기 위한 제어 정보 등을 디스크상의 특정 위치에 저장하는 과정
- 트랙 형식의 예
- 섹터 크기 = 600 바이트 (512 바이트 데이터 + 제어 정보)
- 제어 정보 (ID 필드) : 섹터를 구분하는 데 필요한 식별자 또는 주소
- SYNCH 바이트, 트랙 번호, 헤드 번호, 섹터 번호, 오류 검출 코드(CRC)
아래는 트랙 및 섹터의 데이터 형식을 나타내는 그림이다.
CRC (Cyclic Redundancy Check)
- 디스크로부터 데이터를 읽거나 데이터 통신 과정에서 발생하는 오류를 검출하기 위하여 순환 2진 부호를 사용하는 방식
- 송신 측에서 데이터를 블록 단위로 나누고, 각 블록 뒤에 2진 다항식의 특수 계산에 의해 얻어진 순환 부호를 여분으로 붙여서 자장 혹은 전송
- 수신 측에서도 동일한 계산을 수행하여 동일한 순환 부호가 얻어지는지를 확인함으로써 전송 오류의 유무를 검사
- 페리티 비트를 이용하는 방법보다 정교하여 오류 검출 능력이 뛰어남
- 저장장치(하드 디스크, CD-ROM, DVD) 및 각종 통신 프로토콜에서 사용
디스크 드라이브
- 디스크, 헤드가 부착된 디스크 팔, 구동장치, 디스크를 회전시키는 축, 데이터 전송을 위한 전자 회로 등을 포함한 전체 패키지
- 디스크 이동성에 따른 분류
- 제거불가능 디스크 : 디스크 드라이브 내에 고정시킨 디스크 (하드 디스크)
- 제거가능 디스크 : 디스크 드라이브로부터 꺼낼 수 있으며, 다른 디스크 드라이브에 삽입시켜 데이터를 읽거나 쓸 수 있는 디스크 (플로피 디스크)
- 디스크 면 수에 따른 분류
- 양면 디스크
- 단면 디스크
- 실린더 : 서로 다른 디스크 표면에 있지만 같은 반경에 위치하고 있어서, 디스크 팔을 움직이지 않고도 동시에 액세스할 수 있는 트랙들의 집합
아래는 단일-평판 디스크 드라이브를 나타내는 그림이다.
아래는 다중-평판 디스크 드라이브를 나타내는 그림이다.
📌 1 - 2. 디스크 액세스 시간
디스크 액세스 동작의 순서
- 헤드를 해당 트랙으로 이동
- 원하는 섹터가 헤드 아래로 회전되어 올 때까지 대기
- 데이터를 전송
디스크 액세스 시간 = 탐색 시간 + 회전 지연 시간 + 데이터 전송 시간
탐색 시간 : 1번에 걸리는 시간
회전 지연 시간 : 2번에 걸리는 시간
데이터 전송 시간 : 3번에 걸리는 시간 및 디스크 제어기에서 소요되는 시간
(3번이 가장 적은 시간을 소요함, 1과 2번은 모터를 돌려 물리적인 움직임을 만들어 내야하기에 비교적 오래 걸림)
회전 지연 시간 : 디스크의 회전 속도에 따라 결정
[예] 회전축의 속도 = 7200 rpm인 경우,
- 초당 120바퀴 회전 ➡️ 한 바퀴 회전에는 1 / 120sec(8.33ms) 소요
- 헤드가 해당 트랙에 도착한 순간의 헤드 위치에 따라,
- 회전 지연 시간 = 0 ~ 8.33ms
- 평균 회전 시간 = 4.17ms (1/2 바퀴 회전에 걸리는 시간)
(최근 디스크의 회전축 속도 : 5400, 7200, 10000, 15000, 20000 rpm)
🎯 2. RAID
📌 2 - 1. RAID 출현의 배경
한 개의 대형 디스크를 사용하는 것보다, 크기가 작은 여러 개의 디스크들을 서로 연결하여 하나의 큰 용량을 가진 디스크 배열을 구성하면 보다 더 저렴한 가격으로 더 큰 용량을 가진 디스크 서브 시스템의 구성 가능
- 추가적인 장점
- 데이터 분산 저장에 의한 동시 액세스 가능
- 병렬 데이터 채널에 의한 데이터 전송 속도 향상
- 문제점
- 고장 가능성 증가 (MTTF (Mean Time To Failure : 고장이 나는 평균 시간) 단축)
기본 기술 : 디스크 인터리빙
- 데이터 블록들을 여러 개의 디스크들로 이루어진 디스크 배열에 분산 저장하는 기술
- 균등 분산 저장을 위하여 라운드-로빈 방식 사용
아래는 디스크 인터리빙을 이용한 분산 저장을 나타내는 그림이다.
디스크 배열의 단점
- 디스크 배열의 주요 단점 : MTTF의 단축
- MTTF = 단일 디스크의 MTTF / 배열 내 디스크들의 수
- [예] MTTF가 30,000 시간인 디스크 100개를 이용한 디스크 배열의 MTTF는 30,000 / 100 = 300 시간으로 단축
- 디스크 배열의 결함허용도를 높이기 위하여 RAID가 제안됨
RAID의 제안
- 핵심 기술 : 검사 디스크들을 이용하여 오류 검출 및 복구 기능 추가
- 디스크 결함 발생 시의 복구 절차
- 해당 디스크 사용 중단 및 시스템으로부터 분리
- 검사 디스크에 저장된 정보를 이용하여 원래의 데이터 복구
- 결함 수리 후 디스크 재설치
- 시스템 재구성 (원래의 디스크 용량 회복)
📌 2 - 2. RAID의 종류
1. RAID-1
- 디스크 미러링 방식 이용 : 데이터 디스크에 저장된 모든 데이터들은 짝을 이루고 있는 미러 디스크의 같은 위치에 복사
- [장점] : 거의 완전한 결함허용도 제공
- [단점] : 가격이 높다
- [주요 용도] : 높은 신뢰도를 요구하는 결함 허용 시스템에 주로 사용, 시스템 소프트웨어 혹은 중요한 데이터 파일 저장에 사용
아래는 RAID-1을 나타내는 그림이다.
2. RAID-2
- 비트-단위 인터리빙 방식 사용 : 데이터를 각 디스크에 비트 단위로 분산 저장
- 해밍 코드를 이용한 오류 검출 및 정정
- [단점] : 필요한 검사 디스크들의 수가 많아서 가격이 비싸다
- [주요 용도] : 오류가 많이 발생하는 환경에서 사용
아래는 RAID-2를 나타내는 그림이다.
필요한 검사 디스크 수를 구하는 식 : 2ⁿ - 1 >= G + n
단, G = 데이터 디스크의 수, n = 필요한 검사 디스크들의 수
[예] G = 8인 경우 : 검사 디스크 수 = 4, 오버헤드 = 50%
[예] G = 16인 경우 : 검사 디스크 수 = 5, 오버헤드 = 31%
3. RAID-3
- 패리티 비트 방식을 이용한 오류 검출 및 정정 방식 사용
- 패리티 비트 : p = b1 ⊕ b2 ⊕ b3 ⊕ b4 (⊕ = XOR 연산)
- [예] : b2가 저장된 디스크 결함 발생시 : b2 = p ⊕ b1 ⊕ b2 ⊕ b4
- [장점] : 병렬 데이터 읽기 / 쓰기 가능 ➡️ 디스크 액세스 속도 향상
- [단점] : 쓰기 동작 때마다 패리티 비트 갱신 필요 ➡️ 시간 지연 발생
아래는 RAID-3을 나타내는 그림이다.
4. RAID-4
- 블록-단위 인터리빙 방식 사용
- 데이터 디스크들의 동일한 위치에 있는 블록들에 대한 패리티 블록을 패리티 디스크에 저장 : 패리티 블록 P1 = B1 ⊕ B2 ⊕ B3 ⊕ B4
아래는 RAID-4를 나타내는 그림이다.
- 데이터 블록의 쓰기(갱신) 과정
- 두 번째 디스크에 저장된 블록 B2를 B2'로 갱신하는 경우
- 새로운 패리티 블록 P' = B1 ⊕ B2' ⊕ B3 ⊕ B4
- 세 번의 디스크 읽기 (B1, B3 및 B3 읽기)와 두 번의 디스크 쓰기 (새로운 데이터 B2' 및 패리티 P' 쓰기) 동작들이 필요 ➡️ 성능 저하 (오버 헤드)
- 디스크 액세스 횟수의 최소화 방법 P' = B1 ⊕ B2' ⊕ B3 ⊕ B4 = P ⊕ B2 ⊕ B2'
- 즉, 디스크 수에 상관 없이, 한 블록 갱신에 네 번의 디스크 액세스만 필요 (원래 데이터 읽기, 원래 패리티 읽기, 새로운 데이터 쓰기, 새로운 패리티 쓰기)
- [문제점] : 매 쓰기 동작을 위해 패리티 디스크를 두 번씩 액세스 ➡️ 병목 현상
5. RAID-5
- RAID-4의 문제점을 보완하기 위하여 패리티 블록들을 라운드-로빈 방식으로 분산 저장
- [장점] : 패리티 디스크에 대한 병목 현상 해소 (쓰기 동작들의 병렬 수행 가능)
- 데이터 디스크들의 수가 G개 일 때, 최대 (G + 1) / 2개의 쓰그 동작이 동시에 수행 가능
- [예] : B1에 대한 쓰기 동작으로 P1의 쓰기 동작이 요구되는데, B7에 대한 쓰기 동작이 동시에 일어나더라고 P5의 쓰기 동작이면 되므로, B1(+P1)과 B7(+P5)의 쓰기 동작은 동시에 수행 가능
아래는 RAID-5를 나타내는 그림이다.
- [문제점] : 작은 쓰기 문제
- 어느 한 블록만 갱신하는 '작은 쓰기'의 경우에 네 번의 디스크 액세스가 필요하기 때문에 성능이 저하됨
RAID-1과 RAID-5의 비교
- RAID-1 : 읽기와 작은 쓰기가 많은 환경에 적합
- RAID-5 : 용량과 비용을 중요시하는 응용이나 큰 쓰기 요구가 많은 환경에 적함
- 가격 대 성능비 측면에서 RAID-5가 더 우수
🎯 3. 플래시 메모리와 SSD
주기억장치-보조저장장치 간 정보 전송의 필요성
- 시스템 초기화(부팅) 과정에서 OS 프로그램을 주기억장치로 적재
- 응용 프로그램이 처음 수행될 때는 디스크로부터 주기억장치로 적재
- 새로이 생성되거나 수정된 데이터는 보조저장장치에 영구 저장
- 주기억장치 공간이 부족한 경우에는 적재되어 있는 블록들을 보조저장장치로 내보내고(swap-out), 새로운 블록을 읽어와서 그 공간에 적제(swap-in)
주기억장치와 보조저장장치 간의 속도 격차 증가 ➡️ 보조저장장치의 성능 향상 필요 ➡️ 기계장치가 포함된 디스크 드라이브의 성능 한계 ➡️ SSD의 출현
SSD (Solid-State Drive)
- 비휘발성 반도체 기억장치들을 이용한 대용량 보조저장장치
- 속도 및 신뢰도 향상
- 디스크와는 다른 읽기 / 쓰기 특성을 가지기 때문에 별도 관리 필요
- 상대적 고가(가격이 높은) 및 낮은 내구성 (데이터 갱신 횟수 제한)
📌 3 - 1. 플래시 메모리
플래시 메모리의 출현 ➡️ 비휘발성 반도체 기억장치 분야 활성화 계기
- 높은 저장 밀도 : 한 비트 저장에 한 개의 트랜지스터 사용
- [비교] : EEPROM : 비트 당 두 개의 트랜지스터 사용
- 낮은 전력 소모량, 높은 신뢰성, 속도 향상
동작 원리
- 메모리 셀(기억 소자) 구현 : NMOS 트랜지스터 사용
- 구조적 특징 : 두 개의 게이트
- 제어 게이트 : 일반 트랜지스터의 게이트와 동일
- 부동 게이트 : 정보저장의 핵심적 역할 수행
- 절연체인 산화막으로 둘러싸여 전자들이 쉽게 들어오거나 나가지 못하며, 초기에는 비어있는 상태 = '1' 저장 상태
아래는 메모리 셀의 기호와 내부 구조를 나타내는 그림이다.
- 프로그래밍 (쓰기) 동작 : 제어 게이트로 고전압 (+12V) 인가 시, N-채널의 전자들이 부동 게이트로 진입 (터널링 효과로 인한 터널 주입 발생) ➡️ '0' 쓰기
- '0' 저장 : Vg = +12V 인가
- '1' 저장 : Vg = 0
- 삭제 동작 : p층(p-well)에 고전압(Vp) 인가 시, 부동 게이트에 갇힌 전자들이 N-채널로 빠져 나옴 (터널 릴리스 현상)
- 설에 저장된 값 ➡️ 원래의 값('1')으로 변경
- 읽기 동작
- 드레인 전압(Vd : 5V) 인가 ➡️ N-채널을 통하여 전자 흐름 발생
- 게이트 전압(Vg : 5V) 인가 ➡️ 전기장 발생
아래는 셀의 읽기 동작 원리를 나타내는 그림이다.
플래시 메모리의 셀 배열 조직
- NOR형 플래시 메모리
- 메모리 셀 배열이 NMOS 트랜지스터들의 병렬 접속으로 구성 : 전원이 비트 라인(BL)을 통하여 모든 트랜지스터들의 드레인으로 직접 공급되며, 트랜지스터들의 소스는 접지로 접속 ➡️ 각 트랜지스터의 독립적 스위칭 동작 가능 (셀 단위 액세스 가능)
- NAND형 플래시 메모리
- 메모리 셀 배열이 NMOS 트랜지스터들의 직렬 접속으로 구성 : 전원이 첫 번째 트랜지스터의 드레인으로만 접속되고, 소스가 다음 트랜지스터의 드레인으로 접속되며, 마지막 트랜지스터의 소스만 접지 ➡️ 트랜지스터의 독립적 스위칭 동작 불가능 (셀 단위 액세스 불가능)
NOR형 및 NAND형 플래시의 비교
- NOR형
- 셀(비트) 단위 읽기 / 쓰기 가능 : 프로그램 코드 저장, 작은 데이터 수시 인출 및 변경 응용에 적합
- 셀 당 접속 선의 수 = 3개 ➡️ 낮은 저장 밀도 (칩 당 저장용량 감소)
- 주요 용도 : PC-BIOS 저장장치, PDA / 스마트폰 OS 저장장치 등
- NAND형
- 셀(비트) 단위 읽기 / 쓰기 불가능 (페이지 단위만 가능)
- 셀 당 접속 선의 수 = 1개 ➡️ 높은 저장 밀도
내부 조직 및 특성 (NAND형 플래시 메모리)
- 블록들로 구성되며, 각 블록은 다수의 페이지들로 구성
- 페이지 크기 : 2KByte, 4KByTE, 16KByte, 65KByte 등
- [비교] : 디스크 : 읽기 / 쓰기 / 전송의 기본 단위인 섹터 = 512Byte
- 읽기, 쓰기 및 전송 : 페이지 단위
- 삭제 : 블록 단위
- [예] : 1Gbit 플래시 메모리의 내부 조직
- 페이지 : x 방향으로 2048개의 셀들로 구성되고, z 방향으로 8개씩의 셀로 이루어짐 ➡️ 16 Kbit (2 KByte)
- 블록 : 64개의 페이지들로 구성 ➡️ 1Mbit (128KByte)
- 메모리 모듈 : 1024개의 블록들이 y 방향으로 쌓여 이루어짐 ➡️ 전체 용량 = 1Gbit (128MByte)
아래는 1Gbit 플래시 메모리의 내부 조직을 나타내는 그림이다.
- 읽기 동작
- 페이지 선택 해독기의 한 출력이 2048개 셀들의 게이트들로 인가 (페이지 선택)
- z 방향의 8개 배열들에 대하여 동시에 수행 (Byte 단위)
- 해당 페이지의 모든 데이터 (2048 x 8비트)가 인출되어 페이지 레지스터로 적재된 후, 버스를 통하여 CPU로 전송
- 페이지 단위로 수행 ➡️ 바이트 단위 동작이 가능한 NOR형에 비해 읽기 시간이 더 길어짐
- 쓰기 동작도 동일한 방법 (반대 순서)으로 이루어짐
- 칩의 용량
- {(2048 x 8비트) x 64 페이지} x 1024 블록 = 1Gbit = 128MByte
- 오류 검출 및 정정을 위한 ECC 추가 시, 페이지 당 64Byte ECC 정보가 데이터와 함께 저장됨 ➡️ 페이지 당 (2K+64) Byte, 블록 당 (128K+4K)Byte 저장
- 내부 조직 유형
- 블록 당 페이지 수 : 32개, 64개 ,128개 등
- 페이지 크기 : 2KByte, 4KByte, 16KByte, 64KByte 등
- 액세스 및 전송의 기본 단위인 페이지의 크기가 일정하지 않고, 하드 디스크의 섹터 크기와도 다르며, 삭제는 블록 단위로만 가능
SLC, MLC 및 TLC
- 부동 게이트로 들어가는 전자들의 수를 조정하여 각 셀에 저장되는 상태의 수를 증가
- SLC(single-level cell) : 두 가지 상태를 가지는 셀들로 이루어진 플래시 메모리 칩 (셀 당 한 비트씩 저장)
- MLC(multi-level cell) : 셀의 상태를 4가지 (00, 01, 10, 11)로 구분 (2비트 씩 저장) ➡️ 저장 용량 : 2배 증가
- TLC : 셀의 상태를 8가지(000, 001, 010, 011, 100, 101, 110, 111)로 구분 (3비트씩 저장) ➡️ 저장 용량 4배 증가
- MLC 및 TLC의 문제점
- 전자 수 조정을 위한 세밀한 작업 필요
- 데이터 구분의 어려움으로 인한 액세스 속도 저하
- 오류 발생 빈도 증가
- 수명 단축
아래는 SLC, MLC 및 TLC의 특성 비교를 나타내는 표이다.
📌 3 - 2. SSD
- 기계정 장치가 포함된 하드 디스크 드라이브를 대체하기 위해 개발된 대용량 비휘발성 반도체 저장장치
- 구성요소 : 저장 밀도가 높은 NAND형 플래시 메모리
- 다수의 플래시 메모리들을 배열로 구성하여 패키징
- [장점] : 높은 안정성 및 신뢰도
- [단점] : 저장용량 대비 가격이 HDD에 비해 다소 높음, 내구성
아래는 SDD의 내부 PCB 앞면을 나타내는 그림이다.
SSD의 내부 조직
- 플래시 메모리 칩
- PCB 앞면과 뒷면에 각각 4개씩 장착
- 인터리빙 방식으로 데이터 분산 저장, 벙렬 입출력 채널 구성 ➡️ 동시 액세스 및 병렬 데이터 전송 지원
- SSD 제어기
- 데이터 저장과 인출, 칩 관리, 주소 변환 등과 같은 핵심적 기능 수행
- 펌웨어 수준의 프로그램을 수행하는 프로세서로 구현
- DRAM : 컴퓨터와 플래시 메모리 사이의 데이터 버퍼 (캐시)
- 외부 인터페이스 : SATA 또는 PCle 등을 이용한 직렬 전송
FTL(Flash Translation Layer)
- 기존의 파일 시스템과 OS가 HDD와 같은 방법으로 SSD를 사용할 수 있도록 지원해주는 미들웨어
- 플래시 메모리의 블록과 페이지를 논리적으로 HDD의 섹터와 같은 구조로 변환 : 주소 맵핑
- SSD 제어기가 수행
아래는 플래시 변환 계층을 포함한 SSD 구성을 나타내는 그림이다.
- FTL은 페이지 주소와 섹터 주소간의 매핑 기능 외에도, SSD의 성능 향상을 위하여 아래의 기능들을 수행
- 마모 평준화
- 쓰레기 수집
- 초과 대비공간
마묘 평준화
- 필요성
- 플래시 메모리의 셀 수명 (재기록 반복횟수)한계
- MLC 및 TLC에서 그 문제는 더욱 심각
- 삭제 및 쓰기 동작들이 일부 블록이나 페이지들에 집중될 경우, 전체 SSD 수명 단축
- 해결책 : 마모 평준화
- 모든 페이지들을 고르게 사용하도록 위치 조정
- 각 페이지의 사용 횟수를 기록하여 쓰기 동작 시 참고
- 기록 횟수가 적은 페이지 우선 사용
쓰레기 수집
- 필요성
- 삭제 동작은 블록 단위로만 가능
- 페이지 수정 시 마모 평준화 정책에 따라 다른 위치의 페이지에 새로운 내용을 쓰고, 원래 페이지는 삭제 불가
- 해결책
- 수정되었지만 삭제되지 않은 페이지 : 쓰레기로 표시
- 쓰레기로 표시된 페이지가 많이 축적된 블록을 한꺼번에 삭제 : 쓰레기 수집
- TRIM 명령
- OS가 수행하는 명령으로서, SSD의 무효 페이지들을 SSD 제어기에게 통보해줌으로써, 쓰레기 수집의 효율을 높여 SSD의 성능을 향상시켜주는 보조 기능
- 삭제 횟수를 최소화시켜주는 효과도 있음
아래는 쓰레기 수집 과정의 예를 나타내는 그림이다.
초과 대비공간
- 필요성
- 마모 평준화의 효율을 높이기 위해서는 (수정된 페이지와 쓰레기 페이지의 일시적 중복 저장을 위한) 추가적 저장 공간 필요
- 해결책
- SSD 내부에 여분의 저장 공간 제공
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] - 기억장치 (0) | 2023.11.13 |
---|---|
[컴퓨터 구조] - 제어 유니트 (1) | 2023.10.30 |
[컴퓨터 구조] - 컴퓨터 산술과 논리 연산 (0) | 2023.10.08 |
[컴퓨터 구조] - CPU의 구조와 기능 (1) | 2023.10.07 |
[컴퓨터 구조] - 컴퓨터 시스템 개요 (1) | 2023.10.05 |