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?
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?
Odpowiedzi:
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.
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.
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.
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.
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.