컴퓨터구조론#11
LeeMir, 17 May 2021
제6장 보조저장장치(이어서)
플래시 메모리와 SSD
- 플래시 메모리
- 비휘발성
- 낮은 전력 소모량, 높은 신뢰성, 속도 향상
- 동작 원리
- 메모리 셀 구현(NMOS 트랜지스터 사용)
- 구조
- 소스 : 전자가 흘러 나오는 수도관
- 드레인 : 전자가 빠져나가는 하수구
- 게이트 : 수도꼭지
- 제어 게이트
- 일반 트랜지스터의 게이트와 동일
- 부동 게이트
- 정보 저장의 핵심적 역할 수행
- 산화막으로 둘러싸여 전자들이 쉽게 들어오거나 나가지 못하며, 초기에는 비어있는 상태(1이 저장되어 있음)
- 제어 게이트
- 프로그래밍(쓰기) 동작 : 제어 게이트로 고전압이 인가될 시 N-채널의 전자들이 +1이 저장되어 있는 부동 게이트로 이동 => 터널링 효과로 인한 터널 주입 발생 => 0 쓰기
- 삭제 동작 : p층에 고전압 인가 시, 부동 게이트에 갇힌 전자들이 N-채널로 빠져 나옴 => 1이 저장
- 읽기 동작 : 드레인 전압(Vd) 인가 후 N-채널에 있는 전자의 수에 따라 전류가 많고 적게 흘러 트랜지스터가 ON / OFF 상태가 됨 => 각각 1과 0을 읽음
- SLC, MLC 및 TLC
- SLC : 두 가지 상태(0, 1)를 가짐으로써 한 비트를 저장하는 셀
- 오류가 날 일이 없음
- MLC : 셀의 상태를 4가지(00,01,10,11)로 구분해 메모리 셀 당 2비트씩 저장
- TLC : 셀의 상태를 8가지로 구분해 셀 당 3비트씩 저장
- MLC와 TLC는 세밀한 작업이 필요하고, 데이터 구분이 어려워 액세스 속도가 저하됨
- 오류 발생 빈도도 증가, 수명도 단축
- SLC : 두 가지 상태(0, 1)를 가짐으로써 한 비트를 저장하는 셀
- SSD
- 비휘발성 반도체 기억장치들을 이용한 대용량 보조저장장치
- 다수의 플래시 메모리들을 배열로 구성한 패키지
- 속도 및 신뢰도 향상
- 플래시 메모리 칩
- 인터리빙 방식으로 데이터 분산 저장, 병렬 입출력 채널 구성
- 동시 액세스 및 병렬 데이터 전송 지원
- NAND형과 NOR형이 있음
- 인터리빙 방식으로 데이터 분산 저장, 병렬 입출력 채널 구성
- SSD Controller(제어기)
- 데이터 저장과 인출, 칩 관리, 주소 변환 등과 같은 핵심적 기능 수행
- 펌웨어 수준의 프로그램을 수행하는 프로세서로 구현
- DRAM
- 컴퓨터와 플래시 메모리 사이의 데이터 버퍼(캐시 역할)
- 외부 인터페이스
- SATA, PCIe 등을 이용한 직렬 전송
- 비휘발성 반도체 기억장치들을 이용한 대용량 보조저장장치
- FTL(Flash Translation Layer)
- 기존의 파일 시스템과 OS로 하여금 SSD를 HDD와 같은 방법으로 사용할 수 있도록 지원해주는 미들웨어(middleware)
- SSD 제어기가 수행
- 페이지 주소와 섹터 주소간의 매핑 기능 지원
- 그 외에도 SSD 성능 향상을 위해 마모 평준화, 쓰레기 수집, 초과 대비공간 기능 수행
- 마모 평준화(wear leveling)
- 플래시 메모리의 셀 수명 한계
- SSD의 모든 페이지들이 고르게 사용되도록 저장 위치 조정
- 각 페이지의 사용 횟수를 기록해 쓰기 동작 시 참고
- 기록 횟수가 적은 페이지 우선 사용
- 쓰레기 수집(garbage collection)
- 삭제 동작이 블록 단위로만 가능
- 페이지 내용은 수정되었지만 삭제하지 못한 원래 페이지는 쓰레기로 표시
- 쓰레기로 표시된 페이지가 많이 축적된 블록을 한꺼번에 삭제
- 초과 대비공간(over-provisioning)
- 쓰레기 수집을 하기 위해서는 추가적 저장 공간이 필요해 SSD 내부에 여분의 저장 공간 마련