PCIe Bifurcation은 하나의 넓은 링크에 배정된 Lane을 여러 독립 링크로 나누는 기능이다. CPU의 x16 포트를 x8/x8이나 x4/x4/x4/x4로 갈라 쓰면, 한 슬롯에 꽂은 멀티 M.2 어댑터의 SSD를 각각 별개의 PCIe 장치로 연결할 수 있다. 카드에 SSD가 여러 개 있다고 저절로 갈라지는 것은 아니며, 호스트 쪽 포트가 그 형태로 나뉠 수 있어야 한다.
단순한 패시브 어댑터에는 PCIe 스위치가 들어가 있지 않다. Lane을 나누는 일을 호스트 CPU와 메인보드가 맡고, UEFI가 알맞은 분할 모드를 선택해야 어댑터의 장치가 모두 드러난다. x16 슬롯에 M.2 소켓 네 개가 달린 카드를 꽂아도 마찬가지다. 호스트가 x4/x4/x4/x4 분할을 지원하지 않거나 그 모드가 켜져 있지 않으면 첫 SSD만 인식되는 경우가 대표적이다.
분할과 PCIe 스위치의 차이
Bifurcation은 호스트에 이미 배정된 Lane을 쪼개는 일이므로 총 Lane 수와 대역폭이 늘어나지 않는다. PCIe 스위치가 들어간 카드나 백플레인은 구조가 다르다. 하나의 업스트림 링크 아래 여러 다운스트림 포트를 만들어 호스트가 세부 분할을 지원하지 않아도 장치 여러 개를 제시할 수 있다. 그 대신 스위치를 쓰는 비용과 전력, 거쳐 가는 지연시간이 더해지고, 장치들은 결국 하나의 업스트림 대역폭을 공유한다.
확인 순서
- CPU가 해당 루트 포트의 분할 구성을 지원하는지 확인한다.
- 메인보드 매뉴얼에서 어느 슬롯이 CPU 직결인지, 지원 모드가 무엇인지 찾는다.
- UEFI의 PCIe 분할 메뉴와 슬롯 번호를 맞춘다.
- 어댑터의 Lane 배선과 M.2 소켓 수, 장착 SSD의 인터페이스를 확인한다.
- 다른 슬롯·M.2 소켓과 Lane을 공유하는 조건을 확인한다.
RAID와 Bifurcation은 해결하는 문제가 다르다. Bifurcation은 물리 경로를 나누어 SSD가 각각의 장치로 보이게 만든다. RAID는 이미 인식된 여러 장치를 하나의 저장 장치 구성으로 묶는 계층이다. 따라서 먼저 분할 덕분에 SSD가 개별 장치로 드러나야 운영체제나 펌웨어가 그 위에서 배열을 구성할 수 있다.
상위 개념: PCIe Lane과 링크 폭 · 저장장치 문맥: 저장장치
x8 슬롯에 네 개의 M.2를 꽂는 경우
패시브 4-M.2 카드가 각 SSD에 x4씩 배선돼 있다면 네 SSD를 모두 독립 x4로 연결하려면 호스트의 x16을 네 링크로 나누어야 한다. 슬롯이 실제로 x8만 연결된 경우에는 적절한 x4/x4 분할을 지원하더라도 배선이 닿는 두 위치만 사용할 수 있다. 카드에 전원이 들어오거나 네 SSD의 표시등이 켜지는 것은 네 데이터 링크가 모두 연결됐다는 뜻이 아니다.
같은 x16 CPU 포트라도 플랫폼이 x8/x8만 지원하고 x4/x4/x4/x4는 지원하지 않을 수 있다. 이 경우 UEFI에서 임의로 숫자를 바꾸는 것으로 네 개의 루트 포트를 만들 수 없다. 어댑터 매뉴얼의 SSD 장착 위치 표와 보드의 CPU별 분할 표를 함께 읽어야 실제 인식할 슬롯을 알 수 있다. Bifurcation을 켠 결과 주 그래픽 슬롯 폭이나 온보드 M.2가 바뀌는 조건도 보드별로 다르다.
운영체제에서 데이터 SSD로 인식하는 것과 해당 SSD에서 부팅하는 것도 별개다. 부팅에는 펌웨어의 NVMe 지원과 부트 항목, RAID를 사용한다면 해당 RAID 부팅 지원이 추가로 필요하다.