Procesor wielordzeniowy to procesor komputerowy, który ma dwie lub więcej sekcji zwanych rdzeniami. Każda sekcja układu wykonuje instrukcje tak, jakby była osobnym komputerem. Fizycznie wszystkie rdzenie znajdują się na jednym układzie scalonym — na tym chipie każdy rdzeń wygląda i działa w większości jak niezależny mikroprocesorami. W praktyce są to kilka w większości niezależnych rdzeni, które współpracują ze sobą równolegle. Procesor dwurdzeniowy to procesor wielordzeniowy z dwoma niezależnymi mikroprocesorami, a procesor czterordzeniowy ma cztery niezależne mikroprocesory. Nazwa procesora oparta jest na liczbie rdzeni umieszczonych na chipie.

Jak działa procesor wielordzeniowy?

Rdzenie w procesorze wielordzeniowym mogą wykonywać różne wątki (threads) lub procesy jednocześnie. System operacyjny przydziela zadania do dostępnych rdzeni za pomocą planowania (scheduling). Każdy rdzeń ma zwykle własne pamięci podręczne L1 (i często L2), a niektóre konstrukcje współdzielą większe pamięci podręczne L2/L3 pomiędzy rdzeniami. Komunikacja i synchronizacja między rdzeniami odbywa się przez pamięć główną, wspólne bufory i specjalne magistrale lub kontrolery łączące rdzenie (np. ring, mesh).

Zalety i ograniczenia

  • Zwiększona wydajność równoległa: Wielordzeniowość pozwala na jednoczesne wykonywanie wielu zadań — przy zadaniach wielowątkowych (np. renderowanie, kompresja, serwery) wydajność rośnie proporcjonalnie do liczby rdzeni.
  • Lepsza wielozadaniowość: Systemy z wieloma rdzeniami lepiej radzą sobie z uruchomieniem wielu aplikacji w tym samym czasie bez znacznego spadku responsywności.
  • Energia i wydajność: Zamiast bardzo szybkiego jednego rdzenia, projektanci mogą użyć kilku wolniejszych rdzeni, co pozwala na lepszą efektywność energetyczną przy podobnej wydajności.
  • Ograniczenia skalowania: Nie wszystkie programy można łatwo podzielić na wiele równoległych wątków — prędkość programu jednowątkowego nadal zależy od pojedynczego rdzenia (IPC, częstotliwość). Dodatkowo pojawiają się koszty synchronizacji i ograniczenia pamięciowe (Amdahl's law).
  • Zależność od oprogramowania: Aby wykorzystać więcej rdzeni, programy i systemy muszą być napisane lub zoptymalizowane pod kątem wielowątkowości; w przeciwnym razie dodatkowe rdzenie pozostają niewykorzystane.

Rodzaje i dodatkowe technologie

  • Dual‑core, quad‑core, hexa‑core, octa‑core — nazwy określają liczbę rdzeni. W urządzeniach mobilnych popularne są również układy big.LITTLE (mieszane rdzenie o różnej wydajności) pozwalające na oszczędność energii.
  • Symetryczne wieloprocesorowanie (SMP): rdzenie traktowane są równo przez system operacyjny i mają równy dostęp do pamięci.
  • Asymetryczne systemy (AMP): rdzenie mogą mieć różne role (np. rdzeń do zadań czasu rzeczywistego i rdzenie ogólnego przeznaczenia).
  • Simultaneous Multithreading (SMT) / Hyper‑Threading: technologia pozwalająca jednemu rdzeniowi na wykonywanie wielu wątków jednocześnie poprzez wykorzystanie niewykorzystanych zasobów wewnętrznych rdzenia.

Zastosowania i praktyczne uwagi

Procesory wielordzeniowe są powszechne w komputerach stacjonarnych, laptopach, serwerach i urządzeniach mobilnych. Ich zalety uwidaczniają się w:

  • serwerach i centrach danych — obsługa wielu jednoczesnych połączeń i zadań;
  • aplikacjach multimedialnych — renderowanie wideo, obróbka grafiki, gry;
  • środowiskach wirtualizacji — uruchamianie wielu maszyn wirtualnych;
  • urządzeniach mobilnych — lepsze zarządzanie energią i równoczesne działanie wielu usług.

W praktyce przy wyborze procesora warto zwrócić uwagę nie tylko na liczbę rdzeni, ale też na częstotliwość taktowania, ilość i rodzaj pamięci podręcznej, architekturę rdzeni oraz wsparcie dla technologii wielowątkowych. Wydajność w zadaniach jednowątkowych może być kluczowa w niektórych zastosowaniach, dlatego większa liczba rdzeni nie zawsze oznacza lepsze rezultaty w każdym scenariuszu.

Uwaga: mimo podobieństwa do systemów z wieloma oddzielnymi procesorami (wiele fizycznych układów), procesory wielordzeniowe integrowane są zwykle na jednym chipie, co upraszcza konstrukcję płyty głównej i zmniejsza opóźnienia komunikacji między rdzeniami w porównaniu do oddzielnych procesorów.