본문 바로가기
반도체

NVMe, 데이터 전송을 위한 프로토콜

by 곽사마 2024. 12. 28.
반응형

1. NVMe란

 NVMe(비휘발성 기억장치 익스프레스)는 플래시 스토리지와 솔리드 스테이트 드라이브(SSD)에 사용되는 입출력(I/O) 당 시스템 오버헤드를 줄이면서 고도로 병렬화된 데이터 전송을 위한 프로토콜이다.

 

 NVMe SSD는 병렬 처리와 폴링을 허용하는 장치 드라이버의 변경으로 인해 기존 하드 디스크 드랑이브(HDD)보다 빠른 응답 속도를 제공할 수 있다. 이러한 개선 사항은 대기 시간을 줄이는데 도움이 되며, 기업 워크로드는 물론 수많은 소비자 및 전문 애플리케이션에 이상적이다.

 

2. NVMe가 중요한 이유

 NVM express는 SATA(Serial Advanced Technology Attachment) 및 SAS(Serial Attached SCSI) 프로토콜을 대체하기 위해 2008년부터 2011년까지 개발되었다. NVMe는 경쟁 제품에 비해 지연 시간과 성능이 향상되어 사물인터넷(IoT), 인공 지능(AI) 및 머신 러닝(ML)을 비롯한 다른 중요한 기술의 개발에 기여했다.

 

 오늘날 사용자들은 애플리케이션에 대해 그 어느 때보다 빠른 응답 속도를 요구한다. NVMe 프로토콜은 사용자가 배포하는 애플리케이션의 유형에 관계없이 차세대 고성능, 고대역폭, 저지연 환경을 제공하기 위해 구축되었다. NVMe SSD는 주로 '중간자' 컨트롤러를 제거하여 지연 시간을 줄여주는 주변 장치 구성 요소 상호 연결(PCIe) 버스를 통해 플래시 스토리지에 액세스 한다. 그러나 NVMe 파이버 채널 및 이더넷과 같은 모든 유형의 '패브릭' 상호 연결과 이더넷, iWarp, RoCEv2, iSER 및 NVMe-TCP 내에서도 실행할 수 있다.

 

 NVMe SSD는 수만 개의 병렬 명령 큐를 실행하고, 단일 명령 큐만 구출할 수 있는 SCSI 프로토콜을 사용하여 연결된 드라이브보다 빠른 속도로 프로그램을 실행할 수 있다. 연결 방법은 프로토콜과 독립적으로 이루어진다. 예를 들어 NVMe PCIe는 NVMe 프로토콜을 실행하는 PCIe 링크를 통해 단일 드라이브를 연결할 수 있다. 

 

 NVMe는 고성능 비휘발성 스토리지 미디어용으로 구축되었으므로 그래픽 편집 소프트웨어, 클라우드 컴퓨팅 환경, 펌웨어 및 대규모 데이터베이스와 같은 오늘날의 까다롭고 컴퓨팅 집약적인 환경에 이상적이다. NVMe는 SCSI보다 적은 인프라 풋프린트와 적은 전력으로 엔터프라이즈 워크로드를 신속하고 효율적으로 처리한다.

 

3. NVMe 작동 원리

 SSD와 플래시 스토리지가 등장하기 전까지 SATA는 모든 HDD 스토리지 시스템과 함께 사용되었다. 하지만 모바일 애플리케이션, 비디오 게임, AI와 같은 신기술로 인해 컴퓨팅 환경에 대한 요구가 증가하면서 SATA의 한계가 분명해졌다. 특히 SATA의 낮은 속도와 대역폭은 새로운 애플리케이션 기능의 핵심인 대용량 데이터 전송 속도를 늦추기 시작했다. 

 

 NVMe는 처리 시간을 늦추지 않고, 대용량 데이터 전송이 필요한 환경에서 SSD용 SATA보다 더 나은 데이터 스토리지/전송 옵션으로 개발되었다. NVMe를 사용하면 SATA 드라이브와 마찬가지로 PCIe 버스와 M.2 또는 U.2 어댑터를 사용하여 SSD를 CPU에 직접 연결할 수 있다. NVMe를 사용하면 SSD가 CPU에 바로 연결되어 대량의 데이터를 신속하게 읽고 쓸 수 있다.

 

 더 높은 성능을 달성하기 위해 NVMe는 PCIe 기반 SSD를 위한 레지스터 인터페이스, 명령어 세트 및 기능 그룹을 정의한다. PCIe 버스를 통해 연결되면 NVMe 프로토콜은 지연 시간을 단축하고 초당 입출력 작업 수(IOPS)를 최적화하는 데 도움이 된다.

 

 NVMe 드라이버는 Windows, Linux 및 macOS를 비롯한 다양한 종류의 운영 체제(OS)를 지원한다. 또한 NVMe 프로토콜은 NAND 플래시 지원 SSD를 비롯한 모든 종류의 NVM을 지원한다. 마지막으로, NVMe는 이전 버전의 '인터럽트' 기반 장치 드라이버가 아닌 병렬 명령 대기열과 '폴링 루프'를 사용하여 지연 시간과 시스템 오버헤드를 줄이고 그래픽 카드가 기본 CPU보다 빠르게 작동하는 경우와 같은 CPU 병목 현상을 방지한다.

반응형