얼마 전에 USB 3.2와 USB4 같은 새로운 규격이 나왔습니다. USB 3.2는 2017년에 표준화가 끝난 차세대 USB 규격입니다. USB 3.2의 새로운 호칭이 2019년 2월에 열린 MWC 19에서 발표됐고, 이게 기존의 USB 표준에도 영향을 주기에 상황이 좀 복잡해졌습니다. 그게 정리되지 않은 상태에서 차세대 USB 표준인 USB4가 나와 USB를 둘러싼 상황은 더욱 복잡해졌습니다. 여기에선 앞으로 나올 USB 표준의 특징과 이름을 정리하겠습니다.
USB 3.2란 무엇인가?
Synopsys가 공개한 USB 3.2의 데모 환경
우선 USB 3.2를 봅시다. USB 규격을 책정하고 표준화와 인증 절차를 진행하는 단체인 USB Implementers Forum(줄여서 USB-IF라 표기)는 2017년 9월에 USB 3.2의 표준화를 끝냈습니다. 다만 크게 화제가 되진 않았지요.
USB 3.1은 Gen1(즉 USB 3.0)가 5Gbps의 전송 속도를, Gen 2가 10Gbps의 전송 속도를 냅니다. 5Gbps는 슈퍼스피드 USB, 10Gbps는 슈퍼스피드플러스 USB라고 부르는데 썩 잘 알려지진 않은듯.
USB 3.2의 특징은 Two-lane operation입니다. USB 3.1 Gen 2를 확장해-
USB 3.2 Gen 1x2 : 5Gbps × 2 레인 = 10Gbps
USB 3.2 Gen 2x1 : 10Gbps × 1 레인 = 10Gbps
USB 3.2 Gen 2x2 : 10Gbps × 2 레인 = 20Gbps
3가지의 전송 속도를 실현했습니다. 전송 속도 자체는 5Gbps와 10Gbps 뿐이나, 전송 레인을 2개로 늘려 최고 20Gbps의 속도를 냅니다.
문제는 2개의 레인을 어떻게 하나의 케이블로 전송하냐는 것입니다. USB 3.2의 Two-lane operation은 USB Type-C를 전제로 한 규격입니다. 원래 USB 3.0과 USB 3.1의 USB 케이블은 위 이미지대로 8개의 신호로 구성됩니다.
D+ / D- : USB 2.0 신호 전송. 양방향.
SSTX ±, SSRX ± : USB 3.0, 3.1 신호 전송. 단방향이니 2묶음 4개가 1세트 구성.
VBUS : 5V 전력 공급
GND : 5V 전원의 GND
USB 3.1 Legacy Cable and Connector Specification에서 설명한 USB 3.1 케이블의 배선 단면. 처음네는 SSTX와 SSRX를 같은 실드로 묶어서 구현했으나 나중에 차폐가 추가됐습니다.
이에 비해 USB-C 커넥터는 위/아래 방향 구분이 없고, 어느 쪽으로든 꽂아도 통신이 되도록 커넥터 양면에 배선을 넣었습니다. Universal Serial Bus Type-C Cable and Connector Specification 1.3에서 발췌한 소켓 부분의 배선인데, 케이블은 소켓과 다르게 D+/D-가 한 쌍밖에 없습니다.
D+ / D- : USB 2.0 신호 전송. 2개가 있는 것처럼 보이지만 실제로는 1개입니다.
TX1 ±, TX2 ±, RX1 ±, RX2 ± : USB 3.0, 3.1 신호 전송. 단방향 전송이라 2묶음 4개 1세트로 총 2세트
VBUS : 5V 전력 공급
GND : 5V 전원 GND. 1면당 2개로 늘어나며 1개가 500mA. 2개니까 총 1A
SBU1, SBU2 : 타입 C에 추가된 신호선(Side Band Use). 일반적으로는 안 쓰지만 타입 C의 Alternate Mode와 Audio Adapter Accessory Mode에서 씁니다.
CC1, CC2 : Configuration Pins. 이것도 타입 C에 추가됐습니다. USB PD 전원 공급, 전원을 공급받는 쪽에서 Dual-Role 구분할 때 이 핀을 씁니다.
타입 C는 D+, D-를 제외한 대부분의 커넥터가 신호선을 그대로 사용합니다. 커넥터의 위/아래를 뒤집어도 제대로 작동하도록 만드려면 DFP(Downstream Facing Port 아래쪽)과 UFP (Upstream Facing Port 위쪽)의 배선을 연결하면 되니, 신호선은 2묶음 4개만 있으면 됩니다.
하지만 실제 구현은 다릅니다. 배선이 4묶음 8개가 있으며, TX -/+, RX1 -/+, TX2 -/+, RX2 -/+는 CC1, CC2의 전압 레벨을 측정해 통신 상대와의 연결 상태를 확인합니다. 이를 써서 DFP는 TX1 -/+과 RX1 -/+(파란색), TX2 -/+와 RX2 -/+(빨간색) 중, 연결된 배선을 이용해서 통신합니다.
타입 C에서 한층 더 발전한 것이 USB 3.2입니다. 송/수신을 2묶음으로 진행합니다. 케이블을 반대로 연결해도 TX1과 RX2. TX2와 RX1이 통신하기에 프로토콜 상위 레벨에서 처리가 가능합니다. 이렇게 해서 전송 속도를 어렵지 않게 2배로 늘릴 수 있게 됩니다.
왜 USB 3.2의 보급이 늦어지는가?
여기까지가 USB 3.2의 스펙입니다. 그럼 왜 이게 보급되지 않았을까요? 그 이유는 이렇습니다.
USB 타입 C 커넥터와 케이블의 보급이 필요: 최근 USB C를 쓰는 제품이 늘었으나, 스마트폰이나 태블릿 말고 PC용 주변 장치는 여전히 USB A, 혹은 마이크로 타입이 많습니다. 이들 커넥터는 이론적으로 2레인 구성이 불가능합니다. 표준 포트와 마이크로 USB에서도 USB 3.2는 작동하지만, 그 경우 신호 전송은 1레인, 즉 Gen1 x1과 Gen2 x1밖에 안 나오기에 USB 3.1 수준의 속도밖에 안 나옵니다. 표준 커넥터 2개를 사용해서 2레인 연결하는 건 이론적으로 불가능하지 않으나, 나올 것 같진 않네요.
Two-lane operation은 2배의 USB PHY가 필요: Two-lane operation은 1개의 컨트롤러, 2배의 USB PHY가 필요합니다. 레인 수가 2배가 되면서 PHY의 수고 그만큼 늘어나지요. 하지만 그 위의 MAC 레벨은 1개면 충분합니다.
이는 PHY와 MAC의 연결 방법을 정한 PIPE I/F에서 USB의 속도를 5GT/s와 10GT/s로 정해서 그렇습니다. 그러니 20GT/s를 만드려면 2개의 PHY가 필요합니다. 여러 이더넷 컨트롤러를 드라이버 레벨에서 묶어 1개의 이더넷으로 가상 처리하는 방법을 USB에서 쓰진 않았습니다. MAC은 1개여도 PHY가 2개가 되면 처리량은 2배가 됩니다. 따라서 처리 성능을 그만큼 높여야 합니다. 이 모든 과정은 제조 비용을 올리는 원인입니다. USB 3.2 컨트롤러의 가격은 USB 3.1의 2배 이상이리라 추측됩니다.
호스트 인터페이스 성능 향상: USB 3.2의 최대 데이터 전송 속도는 20Gbps입니다. 그럼 호스트 인터페이스도 강화할 필요가 있습니다. 현재 USB 3.1 컨트롤러는 PCIe 3.0 x2로 칩셋과 연결하는데, USB 3.2의 향상된 속도에 맞춰 PCI 3.0 x4로 올려야 합니다. 그런데 USB를 위해서 4레인을 쓰기가 쉽지 않습니다. 안그래도 M.2나 무선 랜 등 PCIe 레인을 차지하는 게 많습니다. PCIe 4.0 2레인이라면 커버되지만 아직은 PCIe 4.0을 지원하는 칩셋이 없습니다.
USB 3.2의 보급을 가로막는 이유들은 이렇습니다. 다만 Asmedia가 2018년 컴퓨텍스에서 USB 3.2 호환 컨트롤러(MAC)과 PHY를 시연한 바 있습니다. 아직 출시는 되지 않았고 시제품만 공개했습니다. 정식 제품은 올해 출시되리라 보입니다. 올해 컴퓨텍스에선 더 많은 USB 3.2 호환 컨트롤러가 등장하리라 봅니다.
USB 3.2 세대에서 바뀐 명명 규칙
그럼 USB 3.2에서 명명 규칙이 어떻게 바뀌었는지 봅시다. 2018년 10월에 USF-IF는 USB 3.2 Specification Lan guage Usage Guide lines from USB-IF https://www.usb.org/sites/default/files/usb_3_2_language_product_and_packaging_guidelines_final.pdf 라는 문서를 공개해 USB 3.2의 이름을 정했으나, 이 사실은 거의 알려지지 않았습니다. USB-IF가 보도 자료를 내지 않아서 그렇기도 했을 겁니다. 그래서 2019년 2월 MWC 19에서 설명회를 열어 USB 3.2의 명명 규칙을 소개했습니다.
이름 | 예전 이름 | 마케팅 이름 |
---|---|---|
USB 3.2 Gen 1 | USB 3.1 Gen 1 USB 3.0 |
SuperSpeed USB |
USB 3.2 Gen 2 | - | SuperSpeed USB 10Gbps |
USB 3.2 Gen 1x2 | - | - |
USB 3.2 Gen 2x2 | - | SuperSpeed USB 20Gbps |
USB 3.0과 USB 3.1 Gen1은 앞으로 USB 3.2 Gen1로 바뀝니다. 그리고 USB 3.2 Gen1 x2, 그러니까 5Gbps x2는 마케팅 이름이 없습니다. 바꿔 말하면 이게 스펙으로만 존재하지 실제로 출시될 가능성은 없다는 말이기도 합니다. 2레인 PHY를 만들고 1레인당 10Gbps가 아닌 5Gbps만 쓰는 건 상당한 낭비입니다. 그럴 바에는 그냥 10Gbps 1레인이 더 싸고 효율적입니다.
썬더볼트 3를 승계하는 USB4
마지막은 USB4입니다. 2019년 3월 4일에 인텔은 썬더볼트 3 프로토콜을 USB-IF에 기증한다고 발표했습니다. 인텔이 썬더볼트를 오픈 소스로 만든다는 이야기는 2015년 컴퓨텍스부터 나왔으나, 그게 이제야 이루어진 겁니다. 인텔은 2017년에 CPU에 썬더볼트를 통합하고, 썬더볼트 프로토콜을 무료로 공개한다고 발표했습니다. 당시만 해도 2018년에 나올 CPU에 썬더볼트 3를 넣는다는 이야기였으나, 10nm 공정이 지연되면서 이도 연기됐습니다.
2019년 3월의 발표는 아마 올해 나올 인텔의 CPU, 그러니까 아이스레이크에 썬더볼트 3 컨트롤러를 통합하니까, 그 전에 썬더볼트 3 프로토콜을 USB-IF에 제공해 주변기기의 썬더볼트 3 도입에 나서겠다는 의미로 보입니다.
USB-IF의 경우 개발 중이던 USB4를 중단한다고 발표했다가, 3월 4일에 USB4 관련 자료를 발표했습니다. 그 내용은 아래 3개입니다.
USB4는 썬더볼트 3 프로토콜 기반
기존 USB C 케이블을 쓰면 Two-lane operation을 통해 20Gbps, 새로 만든 40Gbps 인증 케이블을 쓰면 40Gbps 통신 가능
USB 4는 USB 3.2와 USB 2.0, 썬더블트 3와 호환됨
현재 50개 이상의 조직/단체에서 USB4 초안을 최종 검토 중이며, 2019년 중반에 스펙을 공개합니다. 올 하반기에 열리는 개발자 이벤트 USB Developer Days 2019에서는 USB4 관련 교육이 진행됩니다.
썬더볼트 3는 USB-C와 같은 커넥터를 사용하며, USB 3.2 2레인 오퍼레이션을 써서 구현했습니다. 그래서 기본 레인이 20Gbps, 추가 레인 20Gbps를 더해 40Gbps로 동작합니다. 썬더볼트 3는 PCIe 신호를 그대로 전송하는 PCIe 오버 썬더볼트를 지원하며, 데이지 체인을 비롯한 여러 기능을 갖고 있으며, USB 3.1/3.2와 호환성이 좋습니다. 데이지 체인 USB 허브와 USB 디바이스의 조합이 가능하며, PCIe 오버 썬더볼트도 구현이 어렵지 않습니다.
썬더볼트 3는 구리 패시브 케이블(평범한 케이블)에서 40Gbps의 전송 속도를 50cm까지 냅니다. 50cm 이상의 거리에서 40Gbps의 전송을 실현하려면 액티브 케이블(커텍터 사이에 버퍼 칩을 내장)이 필요합니다. 이는 USB4도 마찬가지라 보입니다.
썬더볼트 3가 USB-IF에 귀속되면서 썬더볼트 3의 도입을 주저했던 AMD와 arm 기반 SoC도 USB4에 썬더볼트 3 호환 컨트롤러를 쓸 가능성이 나왔습니다. ASMedia, Cypress, 르네사스 같은 곳이 USB4 컨트롤러를 만들면 이를 메인보드에 내장하고, 나중에는 칩셋과 SoC에도 통합되라라 봅니다.