시리얼 ATA(Serial ATA, SATA)는 컴퓨터 저장 장치에 사용되는 표준 인터페이스로, 컴퓨터와 저장 장치 간의 손쉬운 설치와 높은 호환성을 제공해 왔습니다. 하지만 직렬 통신 방식의 설계는 이미 한계에 다다랐고, 많은 SSD가 드라이브 자체의 성능이 아닌 인터페이스의 성능에 발목 잡히고 있습니다. 바로 이 간극을 메우기 위해 등장한 것이 컴퓨터와 저장 드라이브 간의 새로운 통신 표준, SATA 익스프레스(SATA Express)입니다.
SATA vs PCI Express 통신 방식
기존 SATA 3.0 사양은 대역폭이 최대 6.0Gbps로 제한되며, 이는 약 750MB/s에 해당합니다. 인터페이스 오버헤드를 감안하면 실질적인 유효 성능은 600MB/s로 제한됩니다. 현재 세대의 많은 SSD가 이미 이 한계에 도달했기 때문에, 더 빠른 인터페이스가 필요한 상황입니다.
SATA 익스프레스가 포함된 SATA 3.2 사양은 컴퓨터와 장치 간의 새로운 통신 표준입니다. 이 표준은 기존 SATA 방식을 선택해 구형 장치와의 하위 호환성을 유지하거나, 더 빠른 PCI Express 버스를 사용할 수 있도록 유연성을 제공합니다.
PCI Express 버스는 CPU와 그래픽 카드, 네트워크 인터페이스, USB 포트 같은 주변 장치 간의 통신에 널리 사용됩니다. 현재 PCI Express 3.0 표준 기준으로 하나의 PCI Express 레인(lane)은 최대 1GB/s를 처리할 수 있어, 기존 SATA 인터페이스보다 훨씬 빠릅니다.
실제 장치들은 여러 개의 레인을 함께 사용합니다. SATA 익스프레스 사양에 따르면 새 인터페이스를 탑재한 드라이브는 두 개의 PCI Express 레인(흔히 x2라고 부름)을 활용해 최대 2GB/s의 잠재적 대역폭을 확보할 수 있습니다. 이는 기존 SATA 3.0 하드웨어 대비 거의 3배에 가까운 속도입니다.
새로운 SATA 익스프레스 커넥터
새로운 인터페이스에는 새로운 커넥터가 필요합니다. SATA 익스프레스 커넥터는 두 개의 SATA 데이터 커넥터에, PCI Express 기반 통신을 담당하는 작은 커넥터 하나를 결합한 형태입니다. 두 개의 SATA 커넥터는 완전한 기능을 갖춘 SATA 3.0 포트이며, 컴퓨터의 SATA 익스프레스 커넥터 하나는 구형 SATA 포트 두 개를 지원할 수 있습니다.
모든 SATA 익스프레스 커넥터는 전체 폭을 사용하며, 드라이브가 기존 SATA 통신 기반이든 새로운 PCI Express 기반이든 관계없이 동작합니다. 즉, 하나의 SATA 익스프레스로 SATA 드라이브 두 개 또는 SATA 익스프레스 드라이브 하나를 연결할 수 있습니다.
SATA 익스프레스 기반 드라이브는 두 가지 기술 중 어느 것이든 사용할 수 있으므로 양쪽 모두와 인터페이싱해야 하며, 별도의 세 번째 포트 대신 두 개의 포트를 사용합니다. 또한 많은 SATA 포트는 프로세서와 통신하기 위해 PCI Express 레인에 연결되는데, SATA 익스프레스 드라이브에서 PCI Express 인터페이스를 사용하면 해당 인터페이스에 연결된 두 개의 SATA 포트와의 통신이 비활성화됩니다.
명령 인터페이스(AHCI)의 한계
SATA는 장치와 CPU 간에 데이터를 주고받습니다. 이 데이터 계층 위에는 명령 계층(command layer)이 추가로 동작하며, 이 계층은 저장 드라이브에 무엇을 쓰고 읽을지에 대한 명령을 전달합니다. 오랫동안 이 과정은 AHCI(Advanced Host Controller Interface)가 담당해 왔습니다. AHCI는 현재 시판되는 모든 운영체제에 내장되어 있어 SATA 드라이브를 플러그 앤 플레이 방식으로 사용할 수 있게 해주며, 별도의 드라이버가 필요하지 않습니다.
AHCI는 하드 디스크나 USB 플래시 드라이브처럼 느린 구형 기술과는 잘 맞았지만, 더 빠른 SSD의 성능을 제약합니다. AHCI의 명령 큐는 32개의 명령을 담을 수 있지만, 큐가 하나뿐이라 한 번에 단 하나의 명령만 처리할 수 있습니다.
바로 이 지점에서 NVMe(Non-Volatile Memory Express) 명령 세트가 등장합니다. NVMe는 65,536개의 명령 큐를 제공하며, 각 큐마다 65,536개의 명령을 담을 수 있습니다. 이를 통해 저장 장치로 향하는 명령을 병렬로 처리할 수 있습니다. 헤드 구조상 단일 명령만 가능한 하드 디스크에는 큰 이점이 없지만, 여러 메모리 칩을 탑재한 SSD의 경우 여러 명령을 서로 다른 칩과 셀에 동시에 기록해 대역폭을 크게 높일 수 있습니다.
NVMe는 비교적 새로운 기술이라 시중 대부분의 운영체제에 기본 탑재되어 있지 않습니다. 많은 운영체제에서는 드라이브가 새로운 NVMe 기술을 활용할 수 있도록 추가 드라이버를 설치해야 하며, SATA 익스프레스 드라이브의 최고 성능 구현에는 다소 시간이 걸릴 수 있습니다.
SATA 익스프레스는 두 가지 방식을 모두 지원합니다. AHCI 드라이버와 함께 새 기술을 사용하다가, 나중에 성능 향상을 위해 더 새로운 NVMe 표준으로 전환할 수 있습니다. 다만 이 경우 드라이브를 다시 포맷해야 할 수 있다는 점에 유의해야 합니다.
SATA 3.2 사양의 기타 기능들
새로운 SATA 사양에는 새로운 통신 방식과 커넥터 외에도 여러 가지 기능이 추가되었습니다. 대부분은 모바일 컴퓨터를 겨냔한 것이지만, 데스크톱 등 비모바일 컴퓨터에도 도움이 됩니다.
가장 눈에 띄는 절전 기능은 DevSleep 모드입니다. 이는 저장 장치가 준-최대절전(quasi-hibernate) 상태에 들어갈 수 있는 새로운 전원 모드로, 절전 모드에서의 전력 소모를 크게 줄여줍니다. 덕분에 SSD와 저전력 소비를 중심으로 설계된 울트라북을 포함한 노트북의 배터리 사용 시간이 개선됩니다.
솔리드 스테이트 하이브리드 드라이브(SSHD) 역시 새로운 표준의 혜택을 받습니다. 기존 SATA 구현에서는 드라이브 컨트롤러가 요청되는 데이터를 스스로 판단해 캐시할 항목을 결정했습니다. 반면 새로운 구조에서는 운영체제가 드라이브 컨트롤러에 어떤 항목을 캐시에 보관할지 직접 알려주므로, 컨트롤러의 오버헤드가 줄고 성능이 향상됩니다.
마지막으로 RAID 드라이브 구성을 위한 기능도 추가되었습니다. RAID의 목적 중 하나는 데이터 중복성 확보입니다. 드라이브에 장애가 발생하면 해당 드라이브를 교체하고 체크섬(checksum)을 기반으로 데이터를 재구축하는데, SATA 3.2 표준의 새로운 프로세스는 손상된 데이터와 정상 데이터를 구분해 재구축 과정을 더욱 효율적으로 만듭니다.
구현 현황과 대중화되지 못한 이유
SATA 익스프레스는 2013년 말부터 공식 표준이 되었지만, 2014년 봄 인텔 H97/Z97 칩셋이 출시되면서야 컴퓨터 시스템에 적용되기 시작했습니다. 흥미롭게도 당시 출시된 마더보드에 새 인터페이스가 탑재되었음에도, 이를 사용하는 드라이브는 단 하나도 없었습니다.
이 인터페이스가 빠르게 자리 잡지 못한 핵심 이유는 바로 M.2 인터페이스입니다. M.2는 소형 폼팩터를 사용하는 SSD 전용 규격으로, 자기 플래터 방식 드라이브가 SATA 표준을 넘기 어려운 것과 달리 훨씬 큰 유연성을 제공합니다. 또한 M.2는 네 개의 PCI Express 레인을 사용할 수 있어, 두 개의 레인만 쓰는 SATA 익스프레스보다 더 빠른 드라이브 구현이 가능합니다.
AMD는 2017년 3월 초 라이젠(Ryzen) 마이크로프로세서를 출시하며, AMD 소켓 AM4 플랫폼에 SATA 익스프레스 기본 지원을 도입했습니다.