Dlaczego procesory wielordzeniowe?

16

Dlaczego chipy zawierają coraz więcej rdzeni? Dlaczego nie wyprodukować większego jednordzeniowego procesora? Czy łatwiej jest wyprodukować? Czy to pozwala programom na wielowątkowość przy użyciu oddzielnych rdzeni?

rkrauter
źródło
Powodem jest głównie marketing. Większość użytkowników nie skorzysta z wielordzeniowego procesora, ale jest o wiele lepszy. Ma to przede wszystkim sens dla serwerów lub zaawansowanych użytkowników.
harrymc
Na pewno jest szum, ale są też korzyści. Większość użytkowników w dzisiejszych czasach może czerpać korzyści z wielordzeniowego (tj. Zwykle dwurdzeniowego), ponieważ większość korzysta z systemu operacyjnego, który ma wiele wątków wykonania. Ale dla tych, którzy nadal używają Windows 95 lub wcześniejszych, zgodziłbym się, że wielordzeniowy to prawdopodobnie kompletna strata czasu.
irracjonalny John
w harrymc: „Powodem jest głównie marketing. Większość użytkowników nie skorzysta z wielordzeniowego procesora, ale jest o wiele lepsza. Ma to sens w przypadku serwerów lub zaawansowanych użytkowników”. --- Ci chciwi sprzedawcy oleju z węża ...
Daniel

Odpowiedzi:

25

Trend w kierunku wielu rdzeni jest podejściem inżynieryjnym, które pomaga projektantom CPU uniknąć problemu zużycia energii, który pojawiał się wraz ze stale rosnącym skalowaniem częstotliwości. Wraz ze wzrostem prędkości procesora do zakresu 3-4 Ghz ilość energii elektrycznej potrzebnej do szybszej pracy zaczęła być zbyt duża. Przyczyny techniczne tego zjawiska są złożone, ale czynniki takie jak straty ciepła i prąd upływowy (moc, która po prostu przepływa przez obwód bez robienia nic pożytecznego) rosną szybciej wraz ze wzrostem częstotliwości. Chociaż z pewnością możliwe jest zbudowanie procesora ogólnego przeznaczenia x86 6 GHz, nie jest to ekonomicznie efektywne. Właśnie dlatego rozpoczęło się przejście na technologię wielordzeniową i dlatego zobaczymy, że trend ten będzie trwał przynajmniej do momentu, gdy problemy z równoległością staną się nie do pokonania.

Jako praktyczny przykład, E5640 Xeon (4 rdzenie przy 2,66 GHz) ma obwiednię mocy 95 watów, podczas gdy L5630 (4 rdzenie przy 2,13 GHz) wymaga jedynie 40 watów. To 137% więcej energii elektrycznej dla 24% więcej mocy procesora dla procesorów, które są w większości kompatybilne z funkcjami. X5677 zwiększa prędkość do 3,46 GHz z kilkoma dodatkowymi funkcjami, ale to tylko o 60% większa moc obliczeniowa dla 225% więcej mocy elektrycznej.

Teraz porównaj X5560 (2,8 GHz, 4 rdzenie, 95 watów) z nowszym X5660 (2,8 GHz, 6 rdzeni, 95 watów), a w gnieździe jest o 50% większa moc obliczeniowa (potencjalnie przy założeniu, że prawo Amdahla jest dla nas dobre teraz) bez konieczności dodatkowej energii elektrycznej. Procesory AMD z serii 6100 odnotowują podobny wzrost łącznej wydajności w porównaniu z seriami 2400 \ 8400, przy jednoczesnym utrzymaniu niskiego zużycia energii elektrycznej.

W przypadku zadań jednowątkowych jest to problem, ale jeśli twoje wymagania mają dostarczyć duże ilości zagregowanej mocy procesora do klastra przetwarzania rozproszonego lub klastra wirtualizacji, jest to rozsądne podejście. Oznacza to, że w większości dzisiejszych środowisk serwerowych skalowanie liczby rdzeni w każdym procesorze jest znacznie lepszym podejściem niż próba zbudowania szybszych \ lepszych jedno-rdzeniowych procesorów.

Trend będzie trwał jeszcze przez jakiś czas, ale pojawiają się wyzwania i ciągłe skalowanie liczby rdzeni nie jest łatwe (utrzymanie wystarczająco dużej przepustowości pamięci i zarządzanie pamięciami podręcznymi staje się coraz trudniejsze wraz ze wzrostem liczby rdzeni). Oznacza to, że obecny dość gwałtowny wzrost liczby rdzeni na gniazdo będzie musiał spowolnić w ciągu kilku pokoleń i zobaczymy inne podejście.

Helvick
źródło
3
Nie potrafię powiedzieć, ile razy próbowałem to wyjaśnić ludziom, którzy nadal sądzą, że procesor 3,6 GHz sprzed 5 lat jest szybszy niż procesor 2,8 GHz z najnowszą technologią. To jest wkurzające. Nienawidzę megahercowego mitu.
churnd
Czy nie ma również fizycznych ograniczeń ze względu na prędkość światła dla sygnałów elektrycznych?
mouche
1
@churnd - Ale weź pod uwagę, że mają rację. Nie wolno nam bowiem mieszać prędkości z mocą (3,6 Ghz jest niewątpliwie szybsze niż 2,8 Ghz; to, czym nie jest, jest mocniejsze). Może to mieć znaczącą różnicę dla programistów, którzy potrzebują wyjątkowo szybszych prędkości, ale nie są jeszcze biegli w technikach programowania wątkowego / równoległego.
Gawron
3
@ldigas Ci programiści dbają o szybkość wykonywania instrukcji jednordzeniowych, a nie o taktowanie rdzenia. Współczesne procesory mają znacznie wyższe wskaźniki wykonania instrukcji jednordzeniowych, nawet jeśli częstotliwość zegara jest niższa.
David Schwartz
5

Zbyt trudno było sprawić, by były użyteczne szybciej.

Problem polega na tym, że musisz pracować jednocześnie nad kilkoma instrukcjami, obecne procesory x86 mają 80 lub więcej instrukcji jednocześnie, i wydaje się, że jest to limit, ponieważ został trafiony P4, do diabła , Pentium Pro wykonał 40 w 1995 roku. Typowych strumieni instrukcji nie można przewidzieć poza tym (musisz odgadnąć gałęzie, dostęp do pamięci itp.), aby wykonać więcej niż kilka instrukcji na raz (486 zrobił 5, Pentium zrobił 10, ledwo) .

Więc chociaż możesz je poszerzyć (bardziej funkcjonalne jednostki do wykonania każdej części instrukcji), dłuższe (głębsze potoki do ukrycia opóźnień), wydaje się, że nie robi to wiele dobrego. Wydaje się, że uderzyliśmy także w ścianę z prędkością zegara. A my wciąż prześcigamy pamięć. Tak więc podzielenie na wiele procesorów wydaje się być wygraną. Ponadto mogą udostępniać pamięci podręczne.

Jest to o wiele więcej, ale sprowadza się to do konwencjonalnych programów, których nie można uruchomić znacznie szybciej na żadnym sprzęcie, jaki możemy sobie wyobrazić, jak projektować i budować.

Teraz, jeśli przewidywalność nie stanowi problemu, na przykład wiele problemów naukowych i grafiki (często sprowadzają się do pomnożenia tego zestawu liczb przez ten zestaw liczb), tak nie jest, a tym samym popularność IA64 firmy Intel ( Itanium) i procesory graficzne, które po prostu stają się coraz szybsze, ale nie pomogą Ci lepiej uruchomić programu Word.

Ronald Pottol
źródło
4

Moc obliczeniowa i częstotliwość taktowania pojedynczego procesora osiągnęły swój szczyt kilka lat temu, po prostu nie jest łatwo stworzyć mocniejsze i / lub szybsze procesory niż obecne; więc główni producenci procesorów (Intel, AMD) zmienili strategię i wybrali procesor wielordzeniowy. To wymaga oczywiście dużo więcej pracy od twórców aplikacji, aby wykorzystać pełną moc wielozadaniowości: program działający na jednym zadaniu po prostu nie korzysta z wielordzeniowego procesora (chociaż system otrzymuje ogólna premia, ponieważ nie blokuje się, jeśli pojedynczy proces wymaga 100% wykorzystania jednego procesora).

O architekturze fizycznej (procesory wielordzeniowe zamiast wielu jedno-rdzeniowych) ... powinieneś zapytać Intela. Ale jestem pewien, że ma to coś wspólnego z płytami głównymi z jednym gniazdem procesora, które są o wiele łatwiejsze do zaprojektowania i wyprodukowania niż płyty z wieloma.

Massimo
źródło
2
Niezwykle, spodziewam się, że usłyszymy więcej o prawie Amdahla niż o prawie Moore'a.
Evan Anderson
1

W celu zwiększenia prędkości zegara krzemowe tranzystory w układzie muszą być w stanie przełączać się szybciej. Te wyższe prędkości wymagają wyższych napięć wejściowych i procesów produkcji półprzewodników, które skutkują większym wyciekiem , które zwiększają zużycie energii i moc cieplną. W końcu osiągasz punkt, w którym nie możesz dalej zwiększać częstotliwości taktowania bez konieczności nadmiernego zasilania lub korzystania z egzotycznych rozwiązań chłodzących.

Aby zilustrować ten problem, porównam dwa nowoczesne procesory AMD. AMD FX-9590 jest zdolny do osiągnięcia taktowania zegara do 5 GHz po wyjęciu z pudełka, ale działa przy napięciu rdzenia do 1,912 V, co jest niezwykle wysokie jak na układ 32 nm i rozprasza szalone 220 watów ciepła. FX-8350, który jest oparty na tej samej matrycy, działa z maksymalną mocą 4,2 GHz, ale działa z maksymalną mocą 1,4 V i rozprasza 125 watów.

W rezultacie, zamiast próbować dalej zwiększać zegary, inżynierowie starali się, aby chipy działały szybciej na inne sposoby, w tym projektować je tak, aby uruchamiały wiele procesów jednocześnie - stąd procesory wielordzeniowe.

bwDraco
źródło
0

Prawo Moore'a . Zasadniczo procesorów nie da się przyspieszyć (uderzenie częstotliwości 3 GHz 5 lat temu i nigdy nie było o wiele za dużo), więc są one bardziej wydajne dzięki większej liczbie rdzeni.

wazoox
źródło
Prawo IMHO Moore'a jest bardziej opisem niż przepowiednią ... na pewno się utrzymało i nadal tak jest, ale nic nie gwarantuje, że jutro się nie złamie. Po prostu nie możesz iść do inżyniera i powiedzieć mu: „powinieneś być w stanie to zrobić, ponieważ prawo Moore'a mówi, że można to zrobić”, gdy fizyka nie pozwoli na to więcej.
vlad-ardelean