W 2014 roku słyszę wiele języków programowania reklamowanych pod kątem funkcji współbieżności. Mówi się, że współbieżność ma kluczowe znaczenie dla wzrostu wydajności.
Wypowiadając to oświadczenie, wiele osób powraca do artykułu z 2005 roku pt. „Darmowy lunch się skończył: fundamentalny zwrot w kierunku współbieżności w oprogramowaniu” . Podstawowym argumentem jest to, że coraz trudniej jest zwiększyć częstotliwość taktowania procesorów, ale nadal możemy umieścić więcej rdzeni na chipie i że aby uzyskać wzrost wydajności, trzeba będzie napisać oprogramowanie, aby skorzystać z wielu rdzeni.
Niektóre kluczowe cytaty:
Jesteśmy przyzwyczajeni do tego, że procesory 500 MHz ustępują miejsca procesorom 1 GHz, procesory 2 GHz itd. Dzisiaj jesteśmy w zakresie 3GHz na głównych komputerach.
Kluczowe pytanie brzmi: kiedy to się skończy? W końcu Prawo Moore'a przewiduje wzrost wykładniczy, a wzrost wykładniczy wyraźnie nie może trwać wiecznie, zanim osiągniemy twarde granice fizyczne; światło nie przyspiesza. Wzrost musi ostatecznie spowolnić, a nawet zakończyć.
... Coraz trudniej jest wykorzystywać wyższe częstotliwości taktowania z powodu nie tylko jednego, ale kilku problemów fizycznych, w szczególności ciepła (zbyt dużej i zbyt trudnej do rozproszenia), zużycia energii (zbyt dużej) i problemów z upływem prądu.
... Przyszłość Intela i większości dostawców procesorów leży gdzie indziej, ponieważ firmy zajmujące się układami scalonymi agresywnie realizują te same nowe kierunki wielordzeniowe.
... Multicore polega na uruchamianiu dwóch lub więcej rzeczywistych procesorów na jednym układzie.
Wydaje się, że prognozy z tego artykułu się utrzymały, ale nie rozumiem dlaczego. Mam tylko bardzo mgliste pomysły na temat działania sprzętu.
Mój uproszczony pogląd brzmi: „coraz trudniej jest pakować więcej mocy obliczeniowej w tę samą przestrzeń” (z powodu problemów z ciepłem, zużyciem energii itp.). Spodziewam się, że wniosek będzie „w związku z tym będziemy musieli mieć większe komputery lub uruchamiać nasze programy na wielu komputerach”. (I rzeczywiście, rozproszone przetwarzanie w chmurze jest rzeczą, o której słyszymy więcej).
Ale częścią tego rozwiązania wydaje się być architektura wielordzeniowa. O ile komputery nie powiększają się (czego nie mają), wydaje się to po prostu innym sposobem na powiedzenie „spakuj więcej mocy pocessingu w tę samą przestrzeń”.
Dlaczego „dodawanie większej liczby rdzeni” nie ma tych samych fizycznych ograniczeń, co „przyspieszenie procesora”?
Proszę wyjaśnić w najprostszy możliwy sposób. :)
źródło
Odpowiedzi:
Podsumowanie
Ekonomia. Tańsze i łatwiejsze jest zaprojektowanie procesora o większej liczbie rdzeni niż wyższej częstotliwości taktowania, ponieważ:
Znaczący wzrost zużycia energii. Zużycie energii procesora gwałtownie wzrasta wraz ze wzrostem częstotliwości taktowania - możesz podwoić liczbę rdzeni pracujących z mniejszą prędkością w przestrzeni termicznej potrzebnej do zwiększenia szybkości taktowania o 25%. Czteroosobowy za 50%.
Są inne sposoby na zwiększenie prędkości przetwarzania sekwencyjnego, a producenci procesorów dobrze z nich korzystają.
Będę mocno czerpać z doskonałych odpowiedzi na to pytanie na jednej z naszych siostrzanych witryn SE. Głosujcie więc!
Ograniczenia prędkości zegara
Istnieje kilka znanych fizycznych ograniczeń szybkości zegara:
Czas transmisji
Czas potrzebny na przejście sygnału elektrycznego przez obwód jest ograniczony przez prędkość światła. Jest to twardy limit i nie ma znanego sposobu na jego obejście 1 . W zegarach gigahercowych zbliżamy się do tego limitu.
Jednak jeszcze nas tam nie ma. 1 GHz oznacza jedną nanosekundę na takt zegara. W tym czasie światło może pokonać 30 cm. Przy 10 GHz światło może przenosić 3 cm. Pojedynczy rdzeń procesora ma szerokość około 5 mm, więc napotkamy te problemy gdzieś powyżej 10 GHz. 2)
Opóźnienie przełączania
Nie wystarczy jedynie wziąć pod uwagę czas potrzebny na przemieszczenie sygnału z jednego końca na drugi. Musimy również wziąć pod uwagę czas, jaki zajmuje bramka logiczna w CPU do przejścia z jednego stanu do drugiego! Wraz ze wzrostem częstotliwości zegara może to stanowić problem.
Niestety nie jestem pewien szczegółów i nie mogę podać żadnych liczb.
Najwyraźniej wpompowanie do niego większej mocy może przyspieszyć przełączanie, ale prowadzi to zarówno do zużycia energii, jak i do problemów związanych z rozpraszaniem ciepła. Ponadto większa moc oznacza, że potrzebujesz obszerniejszych kanałów, które poradzą sobie z nią bez uszkodzeń.
Rozpraszanie ciepła / zużycie energii
Ten jest duży. Cytując odpowiedź fuzzyhair2 :
W tym wątku na forum AnandTech są piękne pomiary , a nawet wyprowadzili wzór na zużycie energii (które idzie w parze z wytwarzanym ciepłem):
Kredyt dla Idontcare
Możemy to sobie wyobrazić na poniższym wykresie:
Kredyt dla Idontcare
Jak widać, zużycie energii (i wytwarzane ciepło) rośnie niezwykle szybko, gdy prędkość zegara wzrasta powyżej określonego punktu. To sprawia, że nieskończone zwiększenie prędkości zegara jest niepraktyczne.
Przyczyna szybkiego wzrostu zużycia energii jest prawdopodobnie związana z opóźnieniem przełączania - nie wystarczy po prostu zwiększyć moc proporcjonalną do częstotliwości taktowania; napięcie należy również zwiększyć, aby zachować stabilność przy wyższych zegarkach. To może nie być całkowicie poprawne; możesz wskazać poprawki w komentarzu lub dokonać edycji tej odpowiedzi.
Więcej rdzeni?
Dlaczego więc więcej rdzeni? Nie mogę definitywnie odpowiedzieć na to pytanie. Będziesz musiał zapytać ludzi z Intel i AMD. Ale widać powyżej, że przy nowoczesnych procesorach w pewnym momencie zwiększenie częstotliwości zegara staje się niepraktyczne.
Tak, wielordzeniowy zwiększa również wymaganą moc i rozpraszanie ciepła. Ale starannie unika problemów z czasem transmisji i opóźnieniami przełączania. Jak widać z wykresu, możesz z łatwością podwoić liczbę rdzeni w nowoczesnym procesorze z tym samym obciążeniem termicznym, co 25% wzrost prędkości zegara.
Niektóre osoby to zrobiły - obecny rekord świata w przetaktowywaniu jest tylko 9 GHz. Jest to jednak poważne wyzwanie inżynierskie, przy jednoczesnym utrzymaniu zużycia energii w dopuszczalnych granicach. W pewnym momencie projektanci zdecydowali, że dodanie większej liczby rdzeni w celu wykonania większej liczby prac równolegle zapewni bardziej efektywny wzrost wydajności w większości przypadków.
Właśnie tam pojawia się ekonomia - prawdopodobnie przejście na wielordzeniową trasę było prawdopodobnie tańsze (krótszy czas projektowania, mniej skomplikowana produkcja). I łatwo jest sprzedać - kto nie lubi nowego ośmiordzeniowego układu? (Oczywiście wiemy, że wielordzeniowy jest dość bezużyteczny, gdy oprogramowanie go nie wykorzystuje ...)
Tam jest minusem dla wielordzeniowych: trzeba więcej przestrzeni fizycznej umieścić dodatkowy rdzeń. Jednak rozmiary procesorów stale się kurczą, więc jest dużo miejsca na umieszczenie dwóch kopii poprzedniego projektu - prawdziwym kompromisem nie jest możliwość stworzenia większych, bardziej złożonych, pojedynczych rdzeni. Z drugiej strony, zwiększenie złożoności rdzenia jest złym aspektem z punktu widzenia projektu - większa złożoność = więcej błędów / błędów i błędów produkcyjnych. Wydaje się, że znaleźliśmy szczęśliwy środek z wydajnymi rdzeniami, które są na tyle proste, że nie zajmują zbyt wiele miejsca.
Osiągnęliśmy już limit liczby rdzeni, które możemy zmieścić na jednej matrycy przy obecnych rozmiarach procesu. Możemy przekroczyć granicę tego, jak daleko możemy się zmniejszyć. Więc, co dalej? Czy potrzebujemy więcej? Niestety trudno na nie odpowiedzieć. Czy ktoś tu jest jasnowidzem?
Inne sposoby poprawy wydajności
Nie możemy więc zwiększyć szybkości zegara. Więcej rdzeni ma dodatkową wadę - pomagają tylko wtedy, gdy oprogramowanie na nich działające może z nich skorzystać.
Co jeszcze możemy zrobić? W jaki sposób współczesne procesory są znacznie szybsze niż starsze przy tej samej częstotliwości zegara?
Szybkość zegara jest tak naprawdę tylko bardzo przybliżonym przybliżeniem wewnętrznego działania procesora. Nie wszystkie elementy procesora działają z tą prędkością - niektóre mogą działać raz na dwa tyknięcia itp.
Bardziej znacząca jest liczba instrukcji, które można wykonać w jednostce czasu. Jest to znacznie lepsza miara tego, ile pojedynczy rdzeń procesora może osiągnąć. Niektóre instrukcje; niektóre zajmą jeden cykl zegara, inne trzy. Na przykład podział jest znacznie wolniejszy niż dodawanie.
Możemy więc poprawić wydajność procesora, zwiększając liczbę instrukcji, które może on wykonać na sekundę. W jaki sposób? Cóż, możesz uczynić instrukcję bardziej wydajną - może podział zajmuje teraz tylko dwa cykle. Potem jest potokowanie instrukcji . Dzieląc każdą instrukcję na wiele etapów, możliwe jest wykonywanie instrukcji „równolegle” - ale każda instrukcja wciąż ma dobrze zdefiniowaną, sekwencyjną kolejność odpowiadającą instrukcjom przed i po niej, więc nie wymaga obsługi oprogramowania, takiego jak wielordzeniowy robi.
Jest inny sposób: bardziej wyspecjalizowane instrukcje. Widzieliśmy takie rzeczy jak SSE, które zawierają instrukcje przetwarzania dużych ilości danych jednocześnie. Ciągle wprowadzane są nowe zestawy instrukcji o podobnych celach. Te znowu wymagają wsparcia oprogramowania i zwiększają złożoność sprzętu, ale zapewniają przyjemny wzrost wydajności. Ostatnio pojawiła się AES-NI, która zapewnia przyspieszane sprzętowo szyfrowanie i deszyfrowanie AES, znacznie szybciej niż kilka arytmetyki zaimplementowanych w oprogramowaniu.
1 W każdym razie nie bez zagłębiania się w teoretyczną fizykę kwantową.
2 Może być w rzeczywistości niższy, ponieważ propagacja pola elektrycznego nie jest tak szybka jak prędkość światła w próżni. Dotyczy to również odległości w linii prostej - prawdopodobnie istnieje co najmniej jedna ścieżka, która jest znacznie dłuższa niż linia prosta.
źródło
exponential
jest używany. Jest to całkowicie poprawne użycie tego słowa i byłoby styczne do punktu tej odpowiedzi, aby zagłębić się w szczegóły matematyczne. Jeśli naprawdę chcesz to „poprawić”, możesz zasugerować edycję. Nie będzie to zależało ode mnie, czy zostanie zaakceptowane czy nie, o ile nie zmienisz znacząco znaczenia.Fizyka to fizyka. Nie możemy wiecznie pakować kolejnych tranzystorów w coraz mniejsze przestrzenie. W pewnym momencie robi się tak mały, że masz do czynienia z dziwnymi bzdurami kwantowymi. W pewnym momencie nie możemy spakować dwa razy więcej tranzystorów w ciągu roku niż kiedyś (o co chodzi w prawie Moore'a).
Surowe prędkości zegara nic nie znaczą. Mój stary Pentium M był o połowę szybszy niż współczesny procesor do komputerów stacjonarnych (a jednak pod wieloma względami szybszy ) - a współczesne systemy ledwie zbliżają się do prędkości systemów 10 lat temu (i są wyraźnie szybsze). Zasadniczo „po prostu” zwiększenie prędkości zegara w wielu przypadkach nie daje realnego wzrostu wydajności. Może to pomóc w niektórych operacjach z jednym wątkiem, ale lepiej jest wydawać budżet projektowy na lepszą wydajność pod względem wszystkiego innego.
Wiele rdzeni pozwala robić dwie lub więcej rzeczy jednocześnie, więc nie musisz czekać na zakończenie jednej rzeczy na następną. Krótko mówiąc, możesz po prostu umieścić dwa istniejące rdzenie w tym samym pakiecie (na przykład z Pentium D i ich MCM, co było projektem przejściowym), a masz system, który jest dwa razy szybszy. Oczywiście większość współczesnych implementacji udostępnia takie rzeczy, jak kontroler pamięci.
Możesz także budować inteligentniej na różne sposoby. ARM robi Big-Little - posiadając 4 „słabe” rdzenie małej mocy współpracujące z 4 mocniejszymi rdzeniami, dzięki czemu masz to, co najlepsze z obu światów. Intel pozwala zwolnić przepustnicę (dla lepszej wydajności mocy) lub przetaktować określone rdzenie (dla lepszej wydajności pojedynczego wątku). Pamiętam, że AMD robi coś z modułami.
Możesz także przenosić takie rzeczy, jak kontrolery pamięci (dzięki czemu masz mniejsze opóźnienia) i funkcje związane z IO (nowoczesny procesor nie ma mostka północnego), a także wideo (co jest ważniejsze w przypadku laptopów i projektowania AIW). Bardziej sensowne jest robienie tych rzeczy niż „po prostu” przyspieszanie prędkości zegara.
W pewnym momencie „więcej” rdzeni może nie działać - chociaż procesory graficzne mają setki rdzeni.
Multikresy jako takie pozwalają komputerom działać inteligentniej na wszystkie te sposoby.
źródło
wierd quantum crap
+ 1 za to sam!Prosta odpowiedź
Najprostsza odpowiedź na pytanie
znajduje się w innej części pytania:
Zasadniczo wiele rdzeni przypomina wiele „komputerów” na tym samym urządzeniu.
Kompleksowa odpowiedź
„Rdzeń” to część komputera, która faktycznie przetwarza instrukcje (dodawanie, mnożenie i dodawanie itp.). Rdzeń może wykonać tylko jedną instrukcję jednocześnie. Jeśli chcesz, aby Twój komputer był „potężniejszy”, możesz zrobić dwie podstawowe rzeczy:
Fizycznymi ograniczeniami # 1 są przede wszystkim konieczność wyrzucania ciepła spowodowanego przetwarzaniem i prędkością elektronu w obwodzie. Po rozdzieleniu niektórych tranzystorów na osobny rdzeń w znacznym stopniu złagodzisz problem cieplny.
Jest ważne ograniczenie # 2: musisz być w stanie podzielić problem na wiele niezależnych problemów, a następnie połączyć odpowiedź. Na nowoczesnym komputerze osobistym nie jest to tak naprawdę problemem, ponieważ istnieje mnóstwo niezależnych problemów, które i tak walczą o czas obliczeniowy z rdzeniem (rdzeniami). Jednak przy wykonywaniu intensywnych problemów obliczeniowych wiele rdzeni naprawdę pomaga tylko wtedy, gdy problem jest podatny na współbieżność.
źródło
Napotykają te same fizyczne ograniczenia, ale przejście na projektowanie wielordzeniowe daje nam trochę miejsca na oddech, zanim trafimy na niektóre z nich. Jednocześnie pojawiają się inne problemy spowodowane tymi ograniczeniami, ale łatwiej je pokonać.
Fakt 1: Zużycie energii i emitowane ciepło rosną szybciej niż moc obliczeniowa. Zwiększenie mocy procesora z 1 GHz na 2 GHZ spowoduje zwiększenie zużycia energii z 20 W do 80 W, podobnie jak w przypadku rozpraszania ciepła. (Właśnie wymyśliłem te liczby, ale tak to działa)
Fakt 2: Kupując drugi procesor i działając z częstotliwością 1 GHz podwoiłbyś swoją moc obliczeniową. Dwa procesory działające z częstotliwością 1 GHz mogą przetwarzać tę samą ilość danych, co jeden procesor 2 GHz, ale każdy z nich zużywa tylko 20 W energii, czyli łącznie 40 W.
Zysk: Podwojenie liczby procesorów zamiast częstotliwości taktowania oszczędza nam trochę energii i nie jesteśmy tak blisko „bariery częstotliwości” jak wcześniej.
Problem: Musisz podzielić pracę na dwa procesory i połączyć wyniki później.
Jeśli potrafisz rozwiązać ten problem w odpowiednim czasie i zużywasz mniej energii niż właśnie zaoszczędziłeś, to właśnie zyskałeś dzięki użyciu wielu procesorów.
Teraz musisz po prostu połączyć dwa procesory w jeden dwurdzeniowy procesor i jesteś w domu. Jest to korzystne, ponieważ rdzenie mogą współdzielić niektóre części procesora, na przykład pamięć podręczną ( odpowiednia odpowiedź ).
źródło
Krótko mówiąc: Przyspieszenie pojedynczych rdzeni osiągnęło granice, więc ciągle je zmniejszamy i dodajemy ich więcej, aż osiągnie to granice lub możemy zmienić na lepsze materiały (lub osiągnąć fundamentalny przełom, który obali ustaloną technologię, coś w rodzaju wielkości domu, faktycznie działające, obliczenia kwantowe).
Myślę, że ten problem jest wielowymiarowy i zajmie trochę pisania, aby namalować bardziej kompletny obraz:
Może być o wiele więcej. Wielozadaniowy procesor próbuje znaleźć rozwiązanie, aby zmieszać wszystkie te czynniki (i więcej) w jednym, produkowanym masowo układzie, który pasuje do 93% podmiotów na rynku. Jak widać, ostatni punkt jest najważniejszy - postrzeganie klienta, które wynika bezpośrednio ze sposobu, w jaki klient korzysta z procesora.
Zadaj sobie pytanie, jaka jest Twoja zwykła aplikacja? Może: 25 zakładek Firefoksa, z których każda wyświetla reklamy w tle, gdy słuchasz muzyki, a wszystkie czekają na ukończenie pracy nad kompilacją rozpoczętej około 2 godziny temu. To dużo pracy do zrobienia, a mimo to chcesz mieć płynne wrażenia. Ale twój procesor poradzi sobie z JEDNYM zadaniem w tym czasie! Na jednej rzeczy. Więc to, co robisz, polega na tym, że dzielisz rzeczy i tworzysz dłuższą kolejkę, a każdy otrzymuje swój własny udział i wszyscy są szczęśliwi. Z wyjątkiem ciebie, ponieważ wszystkie rzeczy stają się opóźnione i wcale nie gładkie.
Przyspiesz procesor, aby wykonać więcej operacji w tym samym czasie. Ale jak powiedziałeś: zużycie ciepła i energii. I tu dochodzimy do części dotyczącej surowców. Krzem staje się bardziej przewodzący, gdy robi się cieplej, co oznacza, że więcej prądu przepływa przez materiał podczas jego podgrzewania. Tranzystory mają wyższy pobór mocy, ponieważ przełączasz je szybciej. Również wysokie częstotliwości pogarszają przesłuch między krótkimi przewodami. Widzisz, podejście przyspieszające doprowadzi do „krachu”. Dopóki nie mamy lepszych surowców niż krzem lub znacznie lepszych tranzystorów, utkniemy tam, gdzie jesteśmy, z prędkością pojedynczego rdzenia.
To prowadzi nas z powrotem do miejsca, w którym zaczęliśmy. Robienie rzeczy równolegle. Dodajmy kolejny rdzeń. Teraz możemy faktycznie zrobić dwie rzeczy naraz. Rozluźnijmy trochę i napiszmy oprogramowanie, które może podzielić pracę na dwa, mniej wydajne, ale bardziej funkcjonalne rdzenie. Podejście to wiąże się z dwoma głównymi problemami (poza tym, że świat oprogramowania potrzebuje czasu, aby się do niego dostosować): 1. Zwiększ rozmiar układu lub zmniejsz indywidualny rdzeń. 2. Niektórych zadań po prostu nie można podzielić na dwie części, które działają jednocześnie. Dodawaj rdzenie tak długo, jak możesz je skurczyć, lub powiększ chip i utrzymuj problem cieplny z daleka. No i nie zapominajmy o kliencie. Jeśli zmienimy nasze przypadki użycia, branże muszą się dostosować. Zobacz wszystkie błyszczące „nowe” rzeczy, które wymyślił sektor mobilny.
Tak, ta strategia osiągnie swoje ograniczenia! I Intel to wie, dlatego mówią, że przyszłość leży gdzie indziej. Ale będą to robić tak długo, jak będzie to tanie, skuteczne i wykonalne.
Last but not least: fizyka. Mechanika kwantowa ograniczy kurczenie się wiórów. Prędkość światła nie jest jeszcze granicą, ponieważ elektrony nie mogą poruszać się z prędkością światła w krzemie, w rzeczywistości jest znacznie wolniejsze. Jest to także prędkość impulsowa, która nakłada twarde ograniczenie na prędkość oferowaną przez materiał. Tak jak dźwięk przemieszcza się szybciej w wodzie niż w powietrzu, tak impulsy elektryczne przemieszczają się szybciej, na przykład w grafenie niż w krzemie. Prowadzi to z powrotem do surowców. Grafen jest świetny, jeśli chodzi o jego właściwości elektryczne. Byłby znacznie lepszym materiałem do budowy procesorów, niestety jest bardzo trudny do wyprodukowania w dużych ilościach.
źródło
Powiedzmy (jako nierealistyczny przykład, ale nadal powinienem się zorientować), że masz procesor działający w 100F. Zwykle działa wielordzeniowy pobór częstotliwości zegara procesora działającego przy 100F i obniżenie go, a tym samym zmniejszenie prędkości. Ponieważ nie jest już tak gorący, mogą ustawić drugi, trzeci, a nawet czwarty tuż obok niego, nie wpływając znacząco na ogólną temperaturę procesora i czerpiąc korzyści z wielordzeniowego. To oczywiście wiąże się z pewnym obciążeniem, ponieważ rdzenie wciąż muszą być kontrolowane z jednego miejsca, za pomocą jednego rdzenia. Im więcej rdzeni dodasz, tym więcej jest narzutu. Jeśli chodzi o pojedyncze rdzenie, im bardziej zwiększasz na nich prędkość, tym więcej wytwarzają ciepła. Ma to oczywiście ograniczenia fizyczne (tj. Po pewnym momencie zaczyna być szkodliwe dla wydajności,
Z biegiem czasu znaleźli sposoby na zmniejszenie fizycznej wielkości procesorów, dlatego tak naprawdę nie potrzebowaliśmy jeszcze więcej miejsca, jednak na przykład 16 rdzeni procesorów tak naprawdę nie istnieje (w czas pisania) poza sprzętem klasy serwerowej ze względu na ograniczenia wielkości fizycznej, ponieważ procesory klasy serwerowej są znacznie większe fizycznie niż standardowa klasa konsumencka.
źródło
CPU = silnik samochodu: Łatwiej jest stworzyć mocniejszy samochód z 16 zaworami, tj. Lamborghini, niż samochód o wysokiej prędkości obrotowej, który miałby jeden gigantyczny zawór / cylinder przy 100 000 obr / min.
Przyczyny są fizyczne i chemiczne, krzem należy zastąpić obliczeniowym paliwem rakietowym, aby zmienić równowagę między liczbą rdzeni a prędkością rdzenia.
źródło
Powiedziałbym, że podstawowe ograniczenie limitów mocy obliczeniowej jest przede wszystkim związane z ograniczeniem szybkości przemieszczania elektronu przez obwód (
prędkośćdryfu elektronuświatła). Istnieje wiele innych czynników, o których wspomniałeś.Dodanie dodatkowych rdzeni nie przyspieszy procesora, choć pozwoli mu na większą obróbkę w tym samym czasie.
Prawo Moore'a to bardzo interesująca i pouczająca lektura. Ten cytat jest szczególnie istotny tutaj:
źródło
Długa historia jeszcze krótsza:
Naprawdę nie potrzebujemy szybszych procesorów. Poza kilkoma wysoce wyspecjalizowanymi zastosowaniami * procesor nie był wąskim gardłem od lat - wszystkie bity peryferyjne, takie jak pamięć, pamięć i sieć, zwykle zmuszają procesor do czekania na miliony cykli zegara, podczas których może wykonywać inne czynności. Drugi rdzeń może robić więcej „innych rzeczy”, tworząc w ten sposób wrażenie wyższej wydajności dla użytkownika.
Wiele urządzeń mobilnych, laptopów itp. Podkręci procesor, aby wydłużyć czas pracy baterii i obniżyć temperaturę. Niewielka zachęta do opracowania rdzenia ARM 3,5 GHz, jeśli główny klient obsługuje go z częstotliwością 1,3 GHz.
źródło
Krótka i prosta odpowiedź:
Dlaczego przejście z 1 ciężarówki przewożącej towary na 100 ciężarówek przewożących 100 razy więcej nie napotyka takich samych fizycznych ograniczeń jak przejście z 1 ciężarówki jadącej z prędkością 100 km / h na 1 ciężarówkę jadącą z prędkością 10 000 km / h?
Odpowiedz na to pytanie, a na twoje pytanie również zostanie udzielona odpowiedź. Koncepcja jest mniej więcej taka sama.
źródło
Myślę, że innym czynnikiem jest temperatura. Jeśli zwiększysz częstotliwość taktowania, temperatura rdzenia wzrośnie. Jeśli dodasz więcej rdzeni, nawet jeśli zużycie energii wzrośnie, zostanie to rozdzielone na rdzenie, więc temperatura pozostanie taka sama (tak jak w przypadku dodania do siebie dwóch gorących cieczy o tej samej temperaturze, temperatura pozostanie taka sama ).
Innym powodem jest to, że zwiększenie częstotliwości zegara ma tendencję do zwiększania zużycia energii o kwadrat współczynnika wzrostu częstotliwości (w zależności od tego, jakie inne bariery pokonujesz w danym punkcie). Zatem zwiększenie częstotliwości zegara zwiększa zużycie energii o kwadrat, a dodanie większej liczby rdzeni zwiększa je tylko liniowo.
źródło
Odpowiedź na pytanie, dlaczego „nie dodaje się więcej rdzeni”, nie napotyka tych samych fizycznych ograniczeń, co pytanie „przyspiesz procesor”, że system wielordzeniowy napotyka dokładnie takie same ograniczenia jak procesor jednordzeniowy. Doszliśmy do punktu, w którym tak naprawdę nie mamy opcji, aby system z jednym rdzeniem działał szybciej, więc zrobiliśmy to, abyśmy mogli robić więcej rzeczy naraz. Wyzwania związane z rozmiarem i koordynacją są obecnie łatwiejsze do rozwiązania niż szybsze. Minusem jest to, że jeśli zadania nie da się rozbić na części, nie możemy skończyć dużo szybciej niż system z jednym rdzeniem.
źródło
Nie można przyspieszyć procesora, po prostu wciskając więcej bramek. Ostatecznie instrukcje muszą zostać wykonane, a każda instrukcja wymaga kilku operacji „przełączania”. Istnieją podstawowe ograniczenia fizyczne (mechanika kwantowa - zasada nieoznaczoności), które bardzo utrudniają zwiększenie „częstotliwości taktowania” procesora powyżej prędkości obecnych systemów najwyższej klasy.
źródło