데이터와 컨트롤의 2가지 패브릭
AMD는 새로운 CPU 라이젠에서 칩 안/밖의 인터커넥트 패브릭을 새로 바꿨습니다.인피니티 패브릭(Infinity Fabric)이라는 새로운 패브릭이 등장해 라이젠 이후의 AMD 칩에선 확장 가능한 데이터 전송과 정교한 제어가 가능해집니다.
인피니티 패브릭은 실제로는 두개의 다른 패브릭으로 구성됩니다. 데이터 전송을 수행하는 Infinity Scalable Data Fabric(SDF)와 제어 신호를 전달하는 Infinity Scalable Control Fabric(SCF)의 2가지입니다. 데이터 전송 Infinity SDF이 칩의 데이터 흐름을 관장한다면 제어의 Infinity SCF는 칩의 신경계에 해당합니다. 이 2개의 패브릭을 통해 AMD의 새로운 칩은 효율적인 설계가 가능해졌습니다. AMD의 Mark Papermaster(SVP & CTO 인 AMD)는 다음과 같이 설명합니다.
라이젠(서밋 릿지)의 SoC 구성. 인피니티 패브릭이 이 장치를 연결합니다.
인피니티 패브릭의 개념
제어 신호를 전달하는 Infinity Scalable Control Fabric (SCF)
데이터 전송과 일관성 제어를 수행하는 Infinity Scalable Data Fabric (SDF)
"CPU 설계에서는 마이크로 아키텍처도 중요하지만, 이를 어떻게 연결하느냐가 매우 중요합니다. 칩 설계에서 연결은 두가지 의미가 있는데 데이터와 컨트롤입니다. 그 둘 중 하나가 일관성을 지니도록 하는 것이 인피니티 패브릭의 설계 사상입니다.
인피니티 패브릭은 두 조각으로 이루어집니다. 데이터 구조와 제어 구조의 두 가지입니다. 데이터 구조는 다수의 엔진을 연결하여 높은 확장성의 데이터 전송을 얻을 수 있도록 만들었습니다. 제어 구조는 다른 SoC에 확장되는 일관된 제어 시스템을 제공합니다. 따라서 모두 확장 패브릭이라고 부릅니다. 다른 SoC는 데스크탑 버전 라이젠 뿐만 아니라 서버용 Naples, 모바일 버전 라이젠, 또 외장 그래픽인 베가에서 공통된 구조를 제공합니다. 데스크탑 버전 라이젠 이후 AMD의 SoC는 공통된 인피니티 패브릭의 기반 위에 만들어지게 될 것입니다."
AMD 제품은 라이젠 이후 CPU와 APU, GPU가 모두 인피니티 패브릭 기반이 됩니다. GPU는 차세대 베가가 인피니티 패브릭을 채택합니다. 2017년의 제품에선 데스크탑 라이젠(서밋 릿지) 서버 CPU인 네이플(Naples), 라이젠 모바일(레이븐 릿지), 외장 그래픽인 GPU인 베가가 모두 인피니티 패브릭을 씁니다.
인피니티 패브릭은 데이터와 컨트롤 모두 AMD의 IP를 위한 패브릭입니다. AMD가 외부 업체에 개방하는 표준이 아닙니다. 어디까지나 AMD가 내부에서 사용하기 위해 개발한 패브릭입니다. 그러나 다른 회사의 IP를 인피니티 패브릭으로 가져오긴 쉽다고 합니다.
AMD의 Mark Papermaster(SVP & CTO 인 AMD)
인피니티 패브릭은 앞으로 AMD 모든 제품의 기반이 될 것.
인피니티 패브릭의 요구
CPU와 외장 GPU 사이를 포함한 소켓 사이의 연결에도 인피니티 패브릭을 사용
인피니티 패브릭의 데이터 패브릭 SDF는 온칩과 다이 사이의 서로 다른 2가지 계통이 있습니다. 온다이 패브릭은 칩의 다이에서 CPU 코어와 GPU 코어 등의 각 유닛과 메모리 컨트롤러를 연결합니다. 오프 다이 패브릭은 칩 패키지에서 다이끼리 연결이나 칩 소켓 사이를 연결합니다. 모두 인피니티 패브릭인 이유는 프로토콜 계층이 일반화되서입니다. 논리 계층 프로토콜이 일반화되어 온 다이와 오프 다이 연결 프로토콜 사이에서 변환 오버헤드가 필요없는 것으로 보입니다.
"인피니티 패브릭은 온칩 인터커넥트의 확장입니다. 그러나 소켓 사이의 연결도 지원합니다. 소켓에서 CPU와 CPU 사이, CPU와 GPU 사이, CPU와 다른 가속 카드 사이를 인피니티 패브릭이 연결합니다.
데이터 패브릭에선 AMD의 IP 확장에 초점을 맞췄습니다. 어느 정도의 노드까지 고효율 성능 확장이 되도록 설계했습니다. 구체적으로는 데이터 구조가 64 코어까지 스케일링됩니다. 1 소켓뿐만 아니라 2 소켓 사이에서도 거의 같은 비율로 늘어납니다."라고 Papermaster는 설명합니다.
4 코어에서 8 코어로 성능 스케일링. 4 코어의 코어 컴플렉스 CCX는 온칩 SDF로 연결되됩니다.
64 코어까지의 성능 확장. 16 코어는 2 다이 사이를 오프 다이의 SDF에 연결, 64 코어는 2 소켓으로 SDF에서 연결
인피니티 패브릭은 확장 가능한 프로토콜로 오프 다이을 포함하여 64 코어까지 높은 효율의 확장성을 지녔습니다. 물론 구현 역시 확장성을 제공하는 광대역 패브릭으로 됐을 것입니다.
또한 여기에서 CPU와 GPU의 일관된 연결도 인피니티 패브릭이라 표기한다는 것이 중요합니다. 2015년 12월에 AMD는 CPU와 GPU 사이를 업계 표준의 가속 장치로 상호 연결할 것이라 설명했습니다. 지금은 여기도 오프 칩 인피니티 패브릭으로 변화했습니다. 덧붙여서 NVIDIA는 IBM Power CPU와 NVIDIA GPU를 NVLink로 연결할하도록 했습니다.
인피니티 SDF 프로토콜 계층은 AMD의 기존 인터커넥트인 Coherent HyperTransport를 출발점으로 합니다. 그러나 여기서 크게 달라지면서 하이퍼트랜스포트와 호환되지 않습니다.
"메모리 일관성의 경우 하이퍼트랜스포트를 기반으로 했지만 인피니티 패브릭은 논리적 계층도 확장했습니다. 노하우의 출발점이 하이퍼트랜스포트였을 뿐 논리 계층은 다릅니다. 우리는 하이퍼트랜스포트와의 호환성을 유지하기 필요가 없습니다. 하위 호환성을 유지할 이유가 없기에 프로토콜을 자유롭게 변경할 수 있습니다. 또한 외부의 특정 스펙에 맞출 필요도 없습니다. "
실제 구현이 제품마다 크게 다른 SDF
인피니티 패브릭의 SDF는 논리 계층이 공통화돼 다이이와 다이 사이를 연결합니다. 그러나 구현 방식은 온칩과 다이가 완전히 다릅니다. 또한 온칩 SDF의 구현도 각 제품마다 크게 다르게 구성됩니다. 온다이 SDF도 제품마다 요구되는 스펙이 크게 다르기 때문입니다.
"데이터 패브릭은 매우 신중하게 구현됐습니다. 검증된 프로토콜 정의, 적절한 대역, 그리고 지연의 관리. 프로토콜, 대역폭, 지연 시간의 3가지를 중시하여 설계했습니다. 또 프로토콜은 공통이지만 구현은 각각의 제품마다 다릅니다.
데이터 구조는 설정 가능해야 합니다. 우리는 Infinity Scalable Data Fabric(SDF)이라 부르는데 Scalable을 붙인 이유는 설정이 가능해서입니다. SDF 프로토콜은 하이퍼트랜스포트의 자산을 어느 정도 이용하지만 구현은 매우 유연하게 구성할 수 있도록 했습니다.
예를 들어 2017년 후반에 나올 모바일 버전의 라이젠에서 데이터 패브릭의 구성은 데스크탑 버전 라이젠과는 크게 다릅니다. 그러나 여전히 인피니티 패브릭은 공통된 아키텍쳐입니다. 즉 SDF는 다른 제품에서도 같은 아키텍처를 채용하지만 각각의 제품마다 독특한 구성과 물리 최적화, 지연 시간 최적화가 이루어지고 있습니다. 데이터 구조는 고정된 하드 매크로가 아니라 각각의 SoC마다 최적화할 수 있는 형태입니다."
CPU를 8코어 탑재한 데스크탑 버전 라이젠과, CPU 코어와 GPU 코어를 탑재하는 APU인 모바일 버전 라이젠에선 SDF에 요구하는 스펙이 다릅니다. 데이터를 많이 쓰는 GPU 코어는 광대역 내부 패브릭을 필요로 합니다. AMD는 기존의 APU에서 이 문제를 해결하기 위해 CPU 코어에서 메모리를 액세스하는 버스와 GPU 코어에서 메모리를 액세스하는 버스를 분리했습니다. 이것이 CPU 코어와 GPU 코어 사이의 연계를 어렵게 하는 요인이 되고 있었습니다. AMD 인피니티 SDF는 일관성을 지녀 이 문제를 해결할 것으로 보입니다. 이를 위해 CPU 버전 라이젠과 APU 버전 라이젠은 내부 SDF의 구현이 크게 다를 것으로 보입니다.
인피니티 패브릭의 SDF는 온칩 패브릭 구현 스펙이 AMD의 내부에서 고정됩니다. 그러나 SDF의 인터페이스는 다른 회사의 IP를 SDF에 연결할 수 있도록 만들 수 있습니다.
"인피니티 패브릭의 내부 구현은 AMD만 사용합니다. 이것은 어디까지나 AMD의 IP입니다. 그러나 우리의 패브릭에 다른 회사의 IP를 표준 방식으로 연결할 수 있도록 하기 위해 인터페이스 라이센스가 쉽도록 만들고 있습니다"
다이와 소켓 사이의 Infinity Scalable Data Fabric 구현은 현재 서버 버전 Naples을 봤을 때, PCI-E 3.0과 공통화된 물리 계층을 구성해 사용하는 스펙이 됩니다. 네이플스는 32코어 서버 CPU지만 각 CPU 패키지마다 128 레인의 고속 I/O 연결을 갖춥니다. 이 I/O 링크는 PCI-E 3.0, SATA NVMe, 그리고 인피니티 패브릭에 사용할 수 있습니다. 2소켓의 경우 2개 네이플스의 연결을 64레인의 인피니티 패브릭으로 수행합니다. 나머지 64 레인이 다른 I/O 연결에 사용됩니다.
네이플스 자체가 4개의 다이를 연결한 멀티 다이의 제품일 것이라 추측됩니다. 따라서 패키지 내에서 각각의 다이가 고속 I/O를 사용한 인피니티 패브릭에 연결되며, 나머지 고속 I/O 패키지와 외부 I/O, 인피니티 패브릭에 사용될 것으로 추측됩니다.
8코어 서밋 릿지의 다이
네이플의 2소켓 솔루션
노드 사이의 연결은 인피니티 패브릭이 아닌 Gen-Z
온다이 디바이스의 연결과, 다이와 소켓 사이의 연결을 모두 커버하는 인피니티 패브릭의 데이터 패브릭. 그 다음의 의문은 AMD가 노드 사이의 연결을 인피니티 패브릭으로 커버하냐는 것입니다. CPU 군과 메모리, 혹은 GPU도 추가한 클러스터. 대규모 시스템의 클러스터 계단 노드에서도 고속 패브릭으로 연결해야 합니다.
기존의 HPC (High Performance Computing)는 광대역의 노드 사이에 패브릭이 요구됐습니다. 그러나 현재는 데이터 센터도 빅 데이터에 대응한 광대역 패브릭이 필요하다고 주장합니다. 인텔은 이러한 노드 사이의 패브릭에 자체 개발한 Omni-Path를 사용합니다. 현재 패브릭은 여러 표준과 규격이 나와 서로 경쟁하고 있습니다. 그러나 AMD는 인피니티 패브릭을 노드 사이의 패브릭으로 확장할 생각은 없다고 합니다.
"서버 노드 사이의 컨텐츠는 HPC 등의 분야에서 광대역 패브릭이 요구되고 있습니다.하지만 AMD는이 부분에서 독점적인 방식은 사용하지 않습니다. 왜냐하면 다음 단계를 목표로하고 있기 때문입니다. 따라서 이를 공개해야 한다고 생각합니다.
우리는 온 다이과 소켓 사이의 상호 연결은 인피니티 패브릭처럼 독자 규격을 씁니다. 왜냐면 가능한 빨리 스펙을 제정할 필요가 있어서입니다. 또 AMD 최적화도 필요합니다. 패브릭 스펙 책정에 오랜 시간이 걸리면 새로운 CPU를 빠르게 상품화하지 못합니다. 그래서 다이와 소켓 사이에는 AMD만의 솔루션을 씁니다.
그러나 그 이상의 연결에선 업계 공통의 인터커넥트를 쓰고 싶습니다. 클러스터 사이를 연결하거나 NVM(비휘발성 메모리) 등 대용량 메모리를 연결하는 FPGA (Field-Programmable Gate Array)를 연결하는 경우에는 다른 기업과 제휴할 필요가 있습니다. 우리의 경쟁자는 여기에서 독점적인 접근 방식을 사용했으나 AMD는 다릅니다. 클러스터에서 외부 연결은 다른 업계와 제휴하고 싶습니다.
따라서 우리는 차세대 패브릭을 책정하는 Gen-Z 컨소시엄에 참여했습니다. Gen-Z이 모든 분야에서 개방적인 접근으로 확장될 것입니다. 그래서 AMD는 Gen-Z에 협력하고 있습니다."
이러한 상호 연결의 표준화는 Gen-Z와 CCIX가 있습니다. 두가지는 일부 겹치긴 하지만 CCIX는 컴퓨팅 노드와 가속 장치 사이의 연결에 초점을 맞췄으며 Gen-Z는 좀 더 포괄적인 상호 연결을 목표로 하고 있습니다. AMD는 자사 IP 사이에선 인피니티 패브릭을 쓰기에 Gen-Z에 중점을 두고 있습니다. 인텔의 옴니 패스를 의식하기도 합니다.
덧붙여 AMD는 ARM 기반의 고밀도 서버 벤처 SeaMicro를 인수했을 때 자사 서버를 위한 네트워크 패브릭인 Freedom Fabric을 채용한다고 설명했습니다. 그러나 지금은 방침을 전환했는데, 지난 몇 년 동안 패브릭 컨소시엄이 진행됐기 때문이라 보입니다.