11Aug

Dlaczego rdzenie procesora mają taką samą prędkość zamiast różnych?

Jeśli kiedykolwiek robiłeś wiele porównań do zakupu nowego procesora, być może zauważyłeś, że wszystkie rdzenie wydają się mieć prędkość, a nie kombinację różnych. Dlaczego? Dzisiejszy post SuperUser Q & A ma odpowiedź na ciekawe pytanie czytelnika.

Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupy Q & A.

Pytanie Czytnik

SuperUser Jamie chce wiedzieć, dlaczego rdzenie procesora mają tę samą prędkość, a nie różne:

Ogólnie rzecz biorąc, jeśli kupujesz nowy komputer, musisz określić, który procesor kupić, na podstawie oczekiwanego obciążenia komputera. Wydajność w grach wideo jest zwykle określana przez szybkość pojedynczego rdzenia, podczas gdy aplikacje, takie jak edycja wideo, zależą od liczby rdzeni. Pod względem tego, co jest dostępne na rynku, wszystkie procesory wydają się mieć mniej więcej taką samą prędkość, a główne różnice to więcej wątków lub więcej rdzeni.

Na przykład:

  • Intel Core i5-7600K, częstotliwość podstawowa 3,80 GHz, 4 rdzenie, 4 wątki
  • Intel Core i7-7700K, częstotliwość podstawowa 4,20 GHz, 4 rdzenie, 8 wątków
  • AMD Ryzen 5 1600X, częstotliwość podstawowa 3,60 GHz, 6rdzenie, 12 wątków
  • AMD Ryzen 7 1800X, częstotliwość podstawowa 3,60 GHz, 8 rdzeni, 16 wątków

Dlaczego widzimy ten wzorzec rosnących rdzeni, a wszystkie rdzenie mają tę samą częstotliwość taktowania? Dlaczego nie ma wariantów z różnymi prędkościami zegara? Na przykład dwa "duże" rdzenie i wiele małych rdzeni.

Zamiast, powiedzmy, czterech rdzeni o częstotliwości 4,0 GHz( tj. 4 × 4 GHz, maksymalnie 16 GHz), jak o procesorze z dwoma rdzeniami działającymi z częstotliwością 4,0 GHz i czterema rdzeniami pracującymi z częstotliwością 2,0 GHz( tj. 2 × 4,0 GHz + 4 ×2,0 GHz, maksymalnie 16 GHz)?Czy druga opcja byłaby równie dobra w przypadku obciążeń z jednym gwintem, ale potencjalnie lepiej w przypadku obciążeń wielowątkowych?

Pytam o to jako ogólne pytanie, a nie szczególnie w odniesieniu do procesorów wymienionych powyżej lub o jednym konkretnym obciążeniu. Jestem tylko ciekawy, dlaczego wzór jest taki, jaki jest.

Dlaczego rdzenie procesora mają tę samą prędkość, a nie różne?

Odpowiedź Odpowiedź

SuperUser bwDraco ma dla nas odpowiedź:

Jest to tak zwane heterogeniczne przetwarzanie wielostanowiskowe( HMP) i jest szeroko stosowane przez urządzenia mobilne. W urządzeniach opartych na ARM, które implementują big. LITTLE, procesor zawiera rdzenie o różnych parametrach wydajności i mocy, tj. Niektóre rdzenie działają szybko, ale pobierają dużo energii( szybsza architektura i / lub wyższe zegary), podczas gdy inne są energooszczędne, ale powolne( wolniejsza architektura i / lub niższe zegary).Jest to użyteczne, ponieważ zużycie energii wzrasta nieproporcjonalnie, ponieważ zwiększasz wydajność, gdy przekroczysz określony punkt. Chodzi o to, aby uzyskać wydajność, gdy jej potrzebujesz i żywotność baterii, gdy tego nie robisz.

Na platformach stacjonarnych zużycie energii jest znacznie mniejszym problemem, więc nie jest to naprawdę konieczne. Większość aplikacji oczekuje, że każdy rdzeń ma podobną charakterystykę wydajności, a procesy szeregowania dla systemów HMP są znacznie bardziej złożone niż planowanie dla tradycyjnych symetrycznych systemów wieloprocesorowych( SMP)( technicznie system Windows 10 obsługuje HMP, ale jest przeznaczony głównie dla urządzeń mobilnychurządzenia korzystające z ARM big. LITTLE).

Większość dzisiejszych procesorów do komputerów stacjonarnych i laptopów nie jest termicznie lub elektrycznie ograniczona do punktu, w którym niektóre rdzenie muszą działać szybciej niż inne, nawet w przypadku krótkich serii. Zasadniczo uderzyliśmy w ścianę o tym, jak szybko możemy wykonać pojedyncze rdzenie, więc zastąpienie niektórych rdzeni wolnymi nie pozwoli na szybsze działanie pozostałych rdzeni.

Chociaż istnieje kilka procesorów stacjonarnych, które mają jeden lub dwa rdzenie zdolne do pracy szybciej niż inne, ta zdolność jest obecnie ograniczona do niektórych bardzo zaawansowanych procesorów Intel( znanych jako Turbo Boost Max Technology 3.0) i wymaga tylko niewielkiego wzmocnieniaw wydajności tych rdzeni, które mogą działać szybciej.

Chociaż możliwe jest zaprojektowanie tradycyjnego procesora x86 z dużymi, szybkimi rdzeniami i mniejszymi, wolniejszymi rdzeniami w celu zoptymalizowania dla obciążeń z grubymi gwintami, zwiększyłoby to znacznie złożoność projektu procesora, a aplikacje prawdopodobnie go nie obsłużyły.

Weź hipotetyczny procesor z dwoma szybkimi rdzeniami Kaby Lake( 7 generacji) i ośmioma wolnymi rdzeniami Goldmont( Atom).Miałbyś w sumie 10 rdzeni, a mocno obciążone obciążenia zoptymalizowane pod kątem tego rodzaju procesora mogą zwiększyć wydajność i wydajność w porównaniu do normalnego czterordzeniowego procesora Kaby Lake. Jednak różne typy rdzeni mają bardzo różne poziomy wydajności, a wolne rdzenie nie obsługują nawet niektórych instrukcji obsługiwanych przez szybkie rdzenie, takich jak AVX( ARM unika tego problemu, wymagając dużych i małych rdzeni do obsługi tych samych instrukcji).

Ponownie, większość opartych na systemie Windows wielowątkowych aplikacji zakłada, że ​​każdy rdzeń ma taki sam lub prawie taki sam poziom wydajności i może wykonywać te same instrukcje, więc ten rodzaj asymetrii prawdopodobnie spowoduje mniej niż idealną wydajność, być możenawet zawiesza się, jeśli używa instrukcji nie obsługiwanych przez wolniejsze rdzenie. Podczas gdy Intel mógł modyfikować wolne rdzenie w celu dodania zaawansowanej obsługi instrukcji, tak aby wszystkie rdzenie mogły wykonywać wszystkie instrukcje, to nie rozwiązałoby problemów z obsługą oprogramowania dla heterogenicznych procesorów.

Inne podejście do projektowania aplikacji, bliżej tego, o czym prawdopodobnie myślisz w swoim pytaniu, wykorzystywałoby GPU do przyspieszania bardzo równoległych części aplikacji. Można to zrobić za pomocą interfejsów API, takich jak OpenCL i CUDA.Jeśli chodzi o rozwiązanie jednoukładowe, AMD promuje sprzętową akcelerację GPU w swoich APU, która łączy tradycyjny procesor i wydajne zintegrowane GPU w tym samym chipie, co Heterogeneous System Architecture, choć nie widziało to większego zainteresowaniakilku specjalistycznych aplikacji.

Czy chcesz coś dodać do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.

Image Credit: Mirko Waltermann( Flickr)