NVMe (Non-Volatile Memory express)

I. SSD 활용 극대화를 위한, NVMe의 개념

PCI Express 기반의 레지스터 인터페이스에 최적화된 고성능 호스트 컨트롤러 인터페이스

 

II. NVMe 구조/기술요소 및 동작 방식

가. NVMe 구조/기술요소

구분기술요소기능 설명
대역폭– PCIe 기반 전송– PCIe 대역폭 그대로 사용
– PCIe 3.0 슬롯, 최대 4GB/s
병렬 처리– 멀티 Queue– 64K 큐기반 병렬 처리
– 큐 하나당 64K 명령처리
데이터
처리
– 레지스터
– 명령어 세트
– 다이렉트 접근, I/O 수행
– 10개 Admin, 4개 I/O
인터럽트– MSI-X– BUS 기반 메시지 인터럽트
– 인터럽트 개수 확장(2048)
가상화– SRIOV– 스토리지 디바이스를 전용 처럼 사용(접근시 주소변환)
보안– 표준 보안
프로토콜
– E2E 데이터 보호 TCG 표준
– 표준 보안 프로토콜 지원

나. NVMe 동작 방식

절차세부 절차세부 내용
명령
입력
– Queue
Command
– 코어 선택 및 해당 코어의 I/O Submission Queue 명령어를 입력
– Command
알림
– NVMe 컨트롤러에 신규 명령어
– 새로운 명령어의 존재 확인
명령
처리
– Fetch
Command
– Queue의 명령어를 Fetch
– NVMe 컨트롤러 Fetch 수행
– Process
Command
– NVMe 컨트롤러는 명령어 처리
– 시스템 메모리 상 입출력 수행
명령
완료
– Queue
완료
– 명령어 처리 종료 시 결과 입력
– NVMe의 I/O Completion 결과
– Interrupt
발생
– 신호 발생 가능 시 MSI-X 발생
– 완료 Queue를 통해 ISR결과 확인

 

III. NVMe와 AHCI의 비교

항목NVMeAHCI
큐 크기64k개(64k명령/큐)1개(32명령/큐)
명령어 당
레지스터 접근
2회9회
병렬성과
다중 스레드
No LockingLocking
명령 효율성한번에 64byte fetch호스트 DRAM으로
2번 Fetch
드라이버 지원전용 드라이버
설치 필요
기본 설치

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^