Jaka jest różnica między MultiCore a MultiProcessor? [duplikować]

Odpowiedzi:

28

CPU lub Central Processing Unit, jest to, co jest zwykle określane jako procesor. Procesor zawiera wiele dyskretnych części, takich jak jedna lub więcej pamięci podręcznych dla instrukcji i danych, dekodery instrukcji i różne typy jednostek wykonawczych do wykonywania operacji arytmetycznych lub logicznych.

System wieloprocesorowy zawiera więcej niż jeden taki procesor, co pozwala im pracować równolegle. Nazywa się to SMP lub Symmetric MultiProcessing.

A multi rdzeń CPU ma wiele rdzeni wykonawczych w jednym CPU. Może to oznaczać różne rzeczy w zależności od dokładnej architektury, ale w zasadzie oznacza, że ​​pewien podzbiór komponentów procesora jest zduplikowany, dzięki czemu wiele „rdzeni” może pracować równolegle na osobnych operacjach. Nazywa się to CMP, wieloprocesowe przetwarzanie chipów.

Na przykład procesor wielordzeniowy może mieć osobną pamięć podręczną L1 i jednostkę wykonawczą dla każdego rdzenia, podczas gdy ma wspólną pamięć podręczną L2 dla całego procesora. Oznacza to, że chociaż procesor ma jedną dużą pulę wolniejszej pamięci podręcznej, ma osobną szybką pamięć i jednostki arytmetyczne / logiczne dla każdego z kilku rdzeni. Umożliwiłoby to każdemu rdzeniu wykonywanie operacji w tym samym czasie co inne.

Istnieje jeszcze dalszy podział, zwany SMT , równoczesny wielowątkowość. Tutaj duplikowany jest jeszcze mniejszy podzbiór komponentów procesora lub rdzenia. Na przykład rdzeń SMT może mieć zduplikowane zasoby planowania wątków, tak że rdzeń wygląda jak dwa osobne „procesory” dla systemu operacyjnego, nawet jeśli ma tylko jeden zestaw jednostek wykonawczych. Jedną z powszechnych implementacji tego jest Hyperthreading Intela.

W ten sposób można mieć system wieloprocesorowy, wielordzeniowy i wielowątkowy. Coś w rodzaju dwóch czterordzeniowych, hiperwątkowych procesorów dałoby 2x4x2 = 16 logicznych procesorów z punktu widzenia systemu operacyjnego.

Różne obciążenia korzystają z różnych konfiguracji. Jedno-wątkowe obciążenie wykonywane na maszynie głównie do jednego celu korzysta z bardzo szybkiego systemu z jednym rdzeniem / procesorem. Obciążenia, które korzystają z wysoce zrównoleglonych systemów, takich jak konfiguracje SMP / CMP / SMT, obejmują te, które mają wiele małych części, nad którymi można pracować jednocześnie, lub systemy, które są używane do wielu rzeczy jednocześnie, takie jak pulpit używany do surfuj po Internecie, zagraj w grę Flash i obejrzyj wideo naraz. Ogólnie rzecz biorąc, sprzęt w dzisiejszych czasach zyskuje coraz bardziej na architekturze wysoce równoległej, ponieważ większość prędkości pierwotnych pojedynczego procesora / rdzenia jest „wystarczająco szybka” dla typowych obciążeń w większości modeli.

phoebus
źródło
Co z ciepłem, która konfiguracja? Jeśli włożysz wiele procesorów do jednej obudowy procesora, ciepło jest bardzo skoncentrowane tylko w jednym „miejscu” i wymaga lepszych urządzeń chłodzących, prawda? Jeśli to prawda, dlaczego producenci pozostają przy tym projekcie, tylko ze względu na koszty? Czy są też inne problemy, które należy przezwyciężyć, stosując oddzielne rdzenie?
Codebeat
18

Wszyscy udzielili wystarczających wyjaśnień. Nadal jeśli nie rozumiesz. Spójrz na to:

alternatywny tekst

pazury
źródło
Dwa zapytania dotyczące umieszczonego na niej obrazu 1) Co to jest APIC 2) Schemat w ostatnim rzędzie komórek, dla wielordzeniowych i wieloprocesorowych (2 diagramy w pierwszej i trzeciej kolumnie ostatniego rzędu siatki) wydaje się być to samo, z wyjątkiem linii przerywanych / ciągłych / granic kwadratowych wokół ALU. Co mają na myśli?
goldenmean
2
@goldenmean: 1. APIC to en.wikipedia.org/wiki/… , to właśnie odbiera przerwania od innych urządzeń i działa. Mógłbym wyjaśnić więcej, jeśli masz trochę wiedzy na temat wewnętrznego działania systemów operacyjnych 2) Cóż, linia ciągła oznacza, że ​​są to dwa różne układy / matryce, jak pokazano w pierwszym rzędzie, a linia przerywana pokazuje, że oba są na jednym chipie lub matrycy
pazury
Powinno to
brzmieć:
2

procesor wielordzeniowy zawiera dwa lub więcej rdzeni w jednym pakiecie fizycznym.

system wieloprocesorowy to system zawierający więcej niż jeden procesor fizyczny. każdy z tych procesorów może zawierać wiele rdzeni (jak odpowiedział WoodE).

jeśli chodzi o ich porównanie:
w procesorze wielordzeniowym każdy z rdzeni jest ogólnie wolniejszy (z prędkością pierwotną) niż szybki procesor jednordzeniowy. Ponadto wszystkie rdzenie tego procesora współużytkują tę samą szynę systemową i pamięć główną. Jednak w przypadku większości codziennych zadań nie jest to zauważalny problem i dla większości użytkowników system będzie czuł się szybciej, ponieważ będą mogli wykonywać prostsze zadania jednocześnie.

w systemie wieloprocesorowym wydajność wzrośnie w przypadkach, gdy wykonuje się wiele zadań o wysokiej intensywności. w zależności od płyty głównej może to być spowodowane tym, że każdy procesor będzie miał własną dedykowaną magistralę i / lub pamięć główną, co pozwoli im na wykorzystanie pełnych możliwości każdego z nich do tych zadań.

wielordzeniowy system wielordzeniowy stanowiłby połączenie zalet i wad każdego z nich.

Ponadto w miarę opracowywania kolejnych programów wielowątkowych (program zdolny do informowania procesora o więcej niż jednym zadaniu na raz), wady procesora wielordzeniowego będą się zmniejszać.

Xantec
źródło
2

Z punktu widzenia komputera stacjonarnego / laptopa wieloprocesor ma dwa lub więcej osobnych procesorów w maszynie.

Wielordzeniowy ma wiele rdzeni przetwarzających na tym samym układzie, w zasadzie wiele procesorów na jednym bicie krzemu. Aby być uważanym za wielordzeniowy, każdy rdzeń powinien być zasadniczo pełnym procesorem - fakt, że nawet najwcześniejsze układy Pentium miały wiele jednostek obliczających liczby całkowite (co pozwala na bardziej wydajne potokowanie) nie ma znaczenia.

Oczywiście możesz mieć wielordzeniowy układ wielordzeniowy z więcej niż jednym wielordzeniowym procesorem na tym samym komputerze.

Plusy i minusy mogą być skomplikowane, ponieważ należy wziąć pod uwagę wiele zmiennych, ale niektóre znaczące różnice to:

  • chłodzenie: dwurdzeniowy procesor często wytwarza mniej ciepła odpadowego niż dwa oddzielne jednordzeniowe urządzenia o tej samej specyfikacji i będzie wymagał tylko jednego radiatora i wentylatora, co na ogół będzie tańsze (chociaż całe ciepło jest w jednym miejscu, a nie rozłożone dwa, które mogą wymagać zaawansowanych rozwiązań chłodniczych)
  • prędkość ze względu na lokalizację pamięci podręcznej: będąc na tym samym chipie, istnieje możliwość zwiększenia wydajności koherencji / współdzielenia pamięci podręcznej L2 (lub L3), ponieważ rdzenie nie muszą koordynować na większej odległości przez zewnętrzną magistralę pamięci
  • różnice kosztów ze względu na prostotę: rozwiązanie wielordzeniowe nie wymaga wielu gniazd na płycie głównej i tak dalej
David Spillett
źródło
1

Mówiąc w skrócie, procesor wielordzeniowy to pojedynczy procesor z wieloma rdzeniami (czterordzeniowy ma na przykład 4 rdzenie), gdzie jako system wieloprocesorowy zawiera więcej niż jeden procesor na płycie głównej (który z kolei może być również wielordzeniowy).

Jeśli chodzi o zalety i wady każdego z nich, staje się to trochę bardziej skomplikowane.

Edycja: korekta pisowni.

WoodE
źródło
1

Wielordzeniowy to wiele rdzeni w jednej kości . Multiprocesory to wiele matryc.

Mehper C. Palavuzlar
źródło
1

o ile wiem, rdzeń znajduje się w procesorze, więc wielordzeniowy oznaczałby pojedynczy mocny procesor, wielordzeniowy to wiele procesorów na płycie głównej (uważam, że niższe problemy z ogrzewaniem, a może nawet wspólny ładunek równa się lepszej wydajności) nie jestem pewien, ale z tego, co przeczytałem, uznałem, że jest to dokładne

Dacota
źródło