Difference with SAS/SATA/NVMe

요새 SSD 들을 많이 사용하시는데요, SSD 를 보면 여러가지 종류들이 있습니다. SATA SSD / SAS SSD 최근에는 NVMe SSD 라고 하는 것들 까지.. 종류가 많지요. 

SATA SSD 의 경우 AHCI(Advanced Host Controller Interface) 라는 인터페이스를 사용하는데, AHCI 자체가 SSD 가 아닌 HDD 를 위해 설계된 인터페이스여서, SSD 성능이 아무리 좋아도, 인터페이스 자체에서 처리할 수 있는 속도에 한계가 있었습니다. SATA3 가 최대 6Gb/s 입니다만, 이건 이론적인 속도에 불과하게 실제로 전송할 수 있는 최대속도는 600MB/s 정도가 됩니다. 실제로 시장에서 많이 사용하는 상위급 SATA 3 SSD 들을 보면 Read 속도의 한계가 550MB/s 가 한계였죠(Write 는 더 떨어짐) (8b/10b 엔코딩으로 에 따른 20% overhead 로 인하여 600 -> 550MB/s )

또한 AHCI 는 한번에 단일큐에서 32개의 커맨드만 처리할 수 있었습니다.

skylake block diagram에 대한 이미지 검색결과

위의 Skylake Block  diagram 을 보면 보시다시피 SATA 의 경우는 6Gb/s 가 한계인것을 알 수 있습니다.  또한 CPU 와 바로 연결되어있는 것이 아니라 Z170 이라는 PCH 와 연결되어 있죠. 즉 CPU 까지 도달하기 위해서 DMI 라는 채널도 경유했어야 합니다. (PCH 를 경유하지 않는 SATA HBA 도 있지만 거의 쓰지 않으니 논외로 치겠습니다.)

SAS 에서는 커맨드를 256개까지 처리할 수 있었고, SAS3 는 12Gb/s 까지 지원했었기 때문에, SATA 보다는 좀 더 빠르게 전송할 수 있는 장점이 있고, SAS 라는 프로토콜자체가 엔터프라이즈 제품들을 대상으로 디자인된것이여서 듀얼포트 지원등의 장점이 있었습니다.  그렇지만 일반적으로 메인보드에서 SAS 까지 내장한 경우는 거의 없어서, SAS 를 사용하기 위해서는 별도의 SAS Controller 가 필요했었습니다. 그리고 그마저도 충분하지 않기 때문에, NVMe 라는 것이 나오게 됩니다.

NVMe 는 애초에 SSD 를 위해 설계된 인터페이스입니다. NVMe 는 PCI-Express 를 사용하고, 4개의 Lane 을 사용합니다. PCIe 3.0 규격에서는 레인당 985 MB/s 까지 대역폭을 제공하기 때문에, 1개만 사용해도 SATA 보다 더 빠른 속도를 제공할 수 있죠. overhead 도 SATA 와 비교하면 128b/130b 엔코딩으로 인하여, 1.54% 정도밖에 되지 않습니다. 4개를 사용하기 때문에 최대 3.94GB/s 의 전송속도를 기대해볼 수 있겠습니다.  PCIe 2.0 과 비교하여 2배, SATA 와 비교하면 8배 정도 차이가 납니다. 또한 64K 개의 큐에서 64K 개의 커맨드를 처리할 수 있기 때문에 64K x 64K 라는 엄청난 수의 커맨드를 처리할 수 있습니다. 또한 이 경우는 CPU 과 바로 연결되어있는 PCIe 를 사용하게 됩니다. 따라서 별도의 HBA 를 필요로 하지 않고, overhead 가 줄어듭니다. 또한 Power Consumption 면에서도 이점이 있습니다.

단순 성능비교를 해보자면, SAS 12Gbps 대비하여, 이정도 차이가 납니다. (제품에 따라 달라질 수 있고, NVMe 와 SAS 간의 인터페이스 대한 비교자료이니 참고만 하시기 바랍니다) – Green bar 는 SATA 입니다. ^^  

그외에 SAS 대비하여 CPU Cycle 을 절반정도 더 적게 소모합니다. 적은 cpu cycle 을 사용하지만, 효율성은 더 좋다는 것 입니다. Latency 측면에서도 더 좋습니다.

암튼 앞으로는 PCIe 기반의 NVMe 방식이 대세가 될 겁니다. 가격이 얼마만큼 현실화 될것인지가 관건이겠지요.  Intel P3600 2TB NVMe SSD 가격이 2500불 정도 하기 때문에 아직은 쉽게 범접하기 어려운 것 같습니다. 기업시장에서야 이야기가 좀 다를수도 있겠습니다만.. ^^

SSD 의 성능은 자체의 NAND 의 개선으로도 이루어지지만, 장착되어있는 Controller 로 인한 성능차이도 크기 때문에, 잘 확인해보시기 바랍니다. 단순히 SLC/MLC/TLC 냐를 놓고 비교하시면 안됩니다. 엔터프라이즈 마켓에서는 내구성도 당연히 보셔야 하고요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다