해커를 위한 PCIe: 가장 많은 정보 추출
이제 여러분은 PCIe 접근 방식의 기본 사항을 알았으며 아마도 PCIe 관련 목표를 염두에 두고 있을 것입니다. 싱글 보드 컴퓨터에 저렴하면서도 강력한 워드라이빙용 PCIe WiFi 카드를 장착하고 싶거나, 전혀 사용하지 않는 이더넷 컨트롤러 대신 두 번째 NVMe SSD를 노트북에 추가하거나, 전체 SSD를 추가하고 싶을 수도 있습니다. 멋진 어댑터를 통해 GPU를 Raspberry Pi 4에 맞게 크기를 조정하세요. 무엇을 하든, 익숙하지 않은 PCIe 영역이 없는지 확인하세요.
특히 채굴이나 PC 땜질 커뮤니티에서 PCIe를 사용해 본 적이 있다면 "분기점"이라는 용어를 들어보셨을 것입니다. 이는 PCIe 슬롯을 여러 개의 PCIe 링크로 분할하는 것이며, 상상할 수 있듯이 해커에게는 매우 유용한 기능입니다. 추가 하드웨어는 필요하지 않습니다. 실제로 필요한 것은 REFCLK용 버퍼를 추가하는 것뿐입니다. 보세요, 얻는 모든 추가 포트에는 여전히 필요합니다. 하지만 물리적으로 동일한 클록 차이 쌍을 한 번에 모든 슬롯에 끌어올 수는 없습니다. 그렇게 하면 스텁이 발생하고 결과적으로 신호 반사가 발생하기 때문입니다. REFCLK 버퍼 칩은 호스트에서 클럭을 가져와 독립형으로 가져오는 REFCLK 신호의 동일한 복사본을 여러 개 생성합니다. 온라인에서 x16~4개의 NVMe 슬롯 카드를 본 적이 있을 것입니다. 항상 카드 모서리 어딘가에서 REFCLK 버퍼 칩을 찾을 수 있습니다. 완벽한 시나리오에서는 이것이 PCIe에서 더 많은 PCIe를 얻는 데 필요한 전부입니다.
실제로 적절한 분기 지원은 지저분합니다. 분기에는 호스트의 지원이 필요합니다. 이 지원은 매우 상황에 따라 다릅니다. 일부 칩셋만 분기를 수행할 수 있고 상당수의 마더보드에서는 분기를 수행할 수 있지만 어떤 이유로든 소프트웨어 측면에서 이를 가능하게 하지 않기로 결정했습니다. FPGA를 사용하여 자체 PCIe 호스트를 만들고 이것이 의미하는 유연성이 있더라도 FPGA는 내부 이유로 인해 분기를 지원하지 않을 수 있습니다. 게다가 단일 x16 슬롯에서 16개의 x1 링크를 얻을 수는 없습니다. 일반적으로 지원되는 조합은 x16 슬롯에서 4개의 x4 링크, 아마도 x8 연결 x16 슬롯에서 2개의 x4 링크입니다.
이제 대안이 있습니다. 바로 PCIe 스위치입니다. 이는 호스트에 PCIe 장치 인터페이스를 제공하고 모든 장치에 여러 PCIe 호스트 인터페이스를 제공하는 무거운 칩입니다. PCIe 스위치의 레인에 호스트 또는 장치 역할이 있고 이더넷 스위치 포트가 일반적으로 모두 동일하다는 점을 제외하면 작동 방식 측면에서 이더넷 스위치와 비교할 수 있습니다. 이러한 스위치는 RP2040 스타일 QFN(ASM1182의 경우 1:2 스위치)에서 x86 CPU 크기까지 크기가 지정되며 외부 냉각이 필요한 경우가 많으며 가격이 비싸고 상당한 양의 전력을 소비하는 경향이 있습니다. 힘. 예를 들어 Aliexpress에서 분기 카드를 찾고 있다면 필연적으로 PCIe 스위치가 있는 카드를 우연히 발견하게 될 것입니다.
장점은 호스트의 관점에서 일반 PCIe 장치와 똑같이 보이기 때문에 호스트의 특별한 지원이 필요하지 않다는 것입니다. 단점은 역시 상당한 비용이 들고 문서화되는 경우가 거의 없다는 것입니다. 예를 들어, 저는 PCIe 1:4 스위치 칩을 찾고 있었는데, 단일 x1 링크에서 4개의 x1 링크를 생성하는 ASM1184 1:4 컨트롤러를 우연히 발견했습니다. 이것이 바로 나에게 필요한 것이었고, 인터넷 검색을 통해 이 칩이 모든 종류의 중국 PCIe 스플리터 보드, Gigabyte와 같은 제조업체의 데스크탑 마더보드, 심지어 Walmart와 같은 곳에서도 판매되는 보드에 사용되고 있음을 발견했습니다. ASM118x(ASM1184의 경우 1:4, ASM1182의 경우 1:2) 칩 자체도 Aliexpress에서 쉽게 찾을 수 있습니다. 주요 문제는 문서가 부족하다는 것입니다. 기술적으로 칩이 외부 제어 없이 독립형으로 작동하도록 의도된 것처럼 보이기 때문에 실제 장치 회로도는 최소한으로 필요합니다. 저는 ASM1182용을 찾았고 제 친구는 최근 ASM1184용을 찾았습니다. 그러나 외부 제어를 위한 I2C 레지스터와 같은 것들은 여전히 미스터리로 남아 있습니다.
따라서 ASM1184와 같은 칩이 매력적이고 저렴하며 Aliexpress에서 독립형 IC와 제품의 일부로 쉽게 구입할 수 있더라도 디버깅이 까다로울 수 있습니다. 고맙게도 제가 아는 서양 제조업체 중 하나가 PCIe 스위치와 관련하여 귀하의 하루를 절약해 줄 것입니다. 바로 Diodes Incorporated이며 Pericom에서 인수한 PCIe 제품 라인입니다. PCIe 스위치에 대한 전체 데이터시트를 공개적으로 다운로드할 수 있으며 Digikey에는 몇 가지가 있습니다. Broadcom의 PCIe 스위치를 우연히 발견할 수도 있지만 짐작할 수 있듯이 이들 스위치의 개방성은 일반적인 Broadcom 제품의 과정과 동등합니다. 즉 존재하지도 않습니다.