Procesory
Artykuł
Mateusz Brzostek, Wtorek, 20 czerwca 2017, 22:00

Dwa procesory, osiem jąder, osiem kontrolerów pamięci – jak to połączyć?

Procesory Epyc są zbudowane z czterech krzemowych jąder umieszczonych w jednej obudowie. Architekci Zen przewidują, że układy MCM (multi-chip module – moduł z wieloma jądrami) będą w bliskiej przyszłości popularnym podejściem do budowy procesorów serwerowych, między innymi ze względu na zwiększony uzysk i możliwość elastycznego konfigurowania całego procesora.

Procesor składa się z czterech równorzędnych części, z których każda zawiera dwukanałowy kontroler pamięci, dwa segmenty pamięci podręcznej L3 i kontroler interfejsów wejścia-wyjścia. Do tego w każdym jądrze rdzenie są pogrupowane po cztery w CCX (Core Complex). Żeby zapewnić dobrą wydajność takiej konfiguracji, trzeba było zadbać o bardzo dobrą komunikację między poszczególnymi pulami pamięci i grupami rdzeni. Tę funkcję spełnia łącze Infinity Fabric. 

Infinity Fabric

Owiane tajemnicą łącze Infinity Fabric jest według AMD drugą po architekturze Zen najważniejszą innowacją w Epyc. Składa się z dwóch części: łącza kontrolnego (SCF – Scalable Control Fabric), które pozwala na koordynację działania podłączonych do niego urządzeń, oraz SDF (Scalable Data Fabric), używanego do przesyłania dużych ilości danych.

SCF służy do zarządzania zasilaniem i taktowaniem, sterowaniem funkcjami bezpieczeństwa (np. funkcją przesyłania kluczy kryptograficznych pomiędzy CCX) i funkcjami zapewniającymi niezawodność komputera. To łącze o stosunkowo niewielkiej przepustowości, które może być poprowadzone niezależnie od SDF.

SDF to wysokoprzepustowe łącze szeregowe typu punkt-punkt, wywodzące się z techniki HyperTransport, wzbogaconej o możliwości kontrolowania spójności danych pomiędzy pulami pamięci oraz nowoczesne funkcje oszczędzania energii. Łącze SDF to pewien protokół komunikacji; może mieć różne prędkości, szerokości, a nawet standardy sygnałowania.

W układach Epyc zastosowano dwa rodzaje SDF. Krótkodystansowe łącze poprowadzone w obudowie procesora, pomiędzy oddzielnymi jądrami, ma szerokość 4 B i prędkość sygnałowania 10,67 Gb/s, co daje przepustowość 42,6 GB/s (w obu kierunkach). Każde jądro ma trzy takie połączenia, bezpośrednio do każdego sąsiadującego jądra. Drugi rodzaj SDF łączy dwa procesory w konfiguracjach 2P. To szybsze, ale węższe łącze o sygnałowaniu 10,67 Gb/s, działające w trybie DDR i wykorzystujące zaawansowane funkcje kontroli błędów, osiągające przepustowość 37,9 GB/s (w obu kierunkach).

Pomiędzy dwoma procesorami są cztery takie łącza, poprowadzone pomiędzy odpowiadającymi sobie jądrami w każdym procesorze. To daje całkowitą przepustowość komunikacji między dwoma procesorami rzędu 152 GB/s – nieco mniej, niż wynosi przepustowość ośmiokanałowego kontrolera pamięci w każdym z procesorów. Dzięki temu dostęp do pamięci podłączonej do drugiego procesora odbywa się z maksymalnie dwoma przeskokami (jeden – do drugiej podstawki, drugi – między odpowiadającym jądrem a jądrem, którego kontroler pamięci przechowuje potrzebne dane). Choć opóźnienie w dostępie do nielokalnej pamięci jest większe niż opóźnienie w dostępie do lokalnej, przepustowość jest prawie taka sama.

AMD jeszcze nie ujawniło, czy prędkość Infinity Fabric jest powiązana z taktowaniem pamięci, choć spodziewamy się, że tak – podobnie jak w desktopowych procesorach Ryzen, opartych na tym samym jądrze.

Programy i systemy operacyjne uwzględniające architektury NUMA mogą traktować jedno jądro i podłączoną do niego pamięć jako jedną strefę NUMA.

Infinity Fabric do innych urządzeń?

Choć na jednej z prezentacji zasugerowano, że łącze Infinity Fabric może posłużyć do komunikacji z jakimś akceleratorem (GPU, FPGA) umieszczonym w drugiej podstawce, nie ujawniono żadnych związanych z tym planów. O ile wiemy, planowane są jakieś urządzenia, które wykorzystają tę możliwość.

Ocena artykułu:
Ocen: 19
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Facebook