Procesory

Ograniczenia architektury wielordzeniowej SMP

Pierwszym produkowanym seryjnie procesorem wielordzeniowym był Power 4, który firma IBM wprowadziła na rynek w roku 2001. Dysponował on dwoma rdzeniami. Z kolei pierwszymi wielordzeniowymi procesorami zgodnymi z architekturą x86 były dwurdzeniowe procesory AMD Opteron z serii 200 i 800. Zaprezentowane zostały one w kwietniu 2005 roku, a do sprzedaży weszły niecały miesiąc później. Jako pierwszy do sklepów czterordzeniowe pecetowe układy wprowadził zaś Intel. Były to pokazane w grudniu 2006 roku Xeon 5300 i Core 2 Extreme QX6700.

IBM Power 4
Krzemowa struktura pierwszego na świecie dwurdzeniowego procesora – IBM Power 4

Zintegrowanie w jednym kawałku krzemu kilku procesorowych rdzeni teoretycznie zwiększa wydajność w stosunku do pojedynczego procesora tyle razy, ile mamy rdzeni. Jest to jednak teoretyczna wydajność, ponieważ procesory nigdy nie pracują naraz z maksymalną wydajnością, a także muszą komunikować się ze sobą i wymieniać dane. Na proces ten traci jest w architekturze SMP nawet do 30-40% teoretycznej wydajności całego układu wielordzeniowego.

Największymi ograniczeniami wielordzeniowej architektury SMP jest skończona skalowalność, wynikająca z "rywalizacji" poszczególnych rdzeni o zasoby pamięci operacyjnej i zasoby I/O, a także fizyczną przepustowość magistrali systemowej, za pomocą której komunikują się rdzenie ze sobą i wykorzystywaną wspólnie pamięć cache. Istotna jest też szybkość działania protokołów szynowych zapewniających spójność danych we wspólnej pamięci podręcznej – tzw. cache coherency problem.

Problem spójności pamięci cache
Problem spójności pamięci cache

Jak można się domyślić, istnieje graniczna liczba rdzeni, przy której będzie uzyskiwany wzrost wydajności w wielordzeniowej architekturze SMP. Według Intela granica ta to maksimum 16 tradycyjnych rdzeni x86 umieszczonych w jednym układzie i łącznie 64 rdzenie w maszynie wieloprocesorowej. Dalsze rozbudowywanie procesora o kolejne rdzenie nie ma sensu, gdyż zyski ze zwiększenia wydajności tracone są na czas potrzebny do wymiany informacji między rdzeniami i czas potrzebny na zsynchronizowanie i zapewnienie spójności danych przechowywanych w pamięci cache i pamięci RAM. Procesory takie nie tylko nie przyspieszą, ale wręcz zwolnią. Firma AMD uważa z kolei, że w wypadku implementacji architektury x86 procesor wielordzeniowy nie powinien przekraczać 24 rdzeni i 96 rdzeni liczonych dla całego serwera.