Re: Core2Duo a częstotliwość pracy

Autor: gerlach <gerlach_at_localhost.com>
Data: Tue 02 Jan 2007 - 21:16:37 MET
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Message-ID: <459aac83$0$17967$f69f905@mamut2.aster.pl>

Andrzej wrote:
> Czy procesory Core2Duo to takie coś jak dwa procesory, lub procesor
> z HT, czyli czegoś co jakby udaje dwa procesory ?

Starsza generacja dwurdzeniowców Intela - Pentium D 9xx - to były
de-facto dwa fizyczne procesory na jednej płytce, co widać na zdjęciu:

http://images.tomshardware.com/2006/01/05/the_65_nm_pentium_d_900s_coming_out_party/intro-pentium-d-900.jpg

W nowej generacji - Core 2 Duo - jest tylko jedna płytka krzemu, lecz
rdzeń to nadal pełnowartościowy procesor. Natomiast obydwa rdzenie, nie
są już od siebie niezależne: wprowadzono dzielenie pojedynczej pamięci
podręcznej drugiego poziomu między dwa rdzenie.

Czyli w Pentium D każdy rdzeń to niezależny procesor z własną pamięcią
podręczną pierwszego poziomu i z własną pamięcią podręczną drugiego
poziomu. W Core 2 Duo każdy rdzeń to pełnowartościowy procesor z
pamięcią podręczną pierwszego poziomu, ale "złączony" z drugim rdzeniem
wspólną pamięcią podręczną drugiego poziomu.

Takie dzielenie pamięci podręcznej drugiego poziomu pozwala na lepsze
jej wykorzystanie dla przypadku gdy kod uruchomiony na jednym rdzeniu
potrzebuje mało pamięci podręcznej, a uruchomiony na drugim wymaga dużo.
Lub gdy uruchamia się starszy program lub system, które nie potrafią
wykorzystać drugiego rdzenia - wówczas jeden pracujący rdzeń ma do
dyspozycji całą pamięć podręczną drugiego poziomu! I m.in. w ten sposób
procesor dwurdzeniowy Core 2 Duo jest lepszy od dwóch procesorów
jednordzeniowych.

> Jeśli tak, to Core2Duo dedykowane są tylko pod systemy które potrafią
> to wykorzystać ...

Na szczęście systemy operacyjne już od dawna (lata 60-te?) potrafią
wykorzystać wiele procesorów :-) Aczkolwiek można przez przypadek lub
celowo taki system stworzyć - np. podmieniając jądro Windowsa czy Linuxa
na jądro nie-SMP lub gdy podczas upgrade z procesora jednordzeniowego do
procesora dwurdzeniowego zostanie stare jądro nie-SMP.

Jeżeli chodzi o wydajność jednowątkową w porównaniu do P-III, to w ogóle
nie ma porówniania - Core 2 Duo pod każdym względem go przewyższa.

Zaczynając od "brutalnej siły" - rdzeń C2D potrafi wykonać 4 instrukcje
na cykl zegara, P3 tylko 3 instrukcje na cykl zegara.

C2D ma 128-bitowe jednostki wektorowe z kompletną listą instrukcji SSE3,
a P3 ma o połowę węższe - 64 bitowe jednostki i to tylko z
niepełnowartościową listą instrukcji SSE1.

Przepustowość szyny łączącej procesor z pamięcią jest 8 razy (!) większa.

Pamięć podręczna jest 4 - 16 razy większa (2-4MB kontra 1/4 - 1/2 MB w
najlepszym modelu P3).

Dodatkowo przy pracy z oprogramowaniem 64 bitowym jest dostępnych 8
dodatkowych rejestrów - co daje ~15% przyśpieszenia.

Ale te parametry wcale nie jest najmocniejszą stroną Core 2 Duo.
Aktualnie problemem wszystkich procesorów jest tzw. "memory wall",
polegający na tym, że procesor musi czekać na pamięć (~50% czasu nic nie
robiąc tylko czekając). A to dlatego, że dostęp losowy do pamięci trwa
~100 ns, a procesory pracują z częśtotliwościa ~3GHz - czyli cykl to
0,33 ns.

Core 2 Duo ma obecnie najlepsze ze wszystkich - jednostki do
przewidywania przebiegu programu (branch prediction) i uprzedniego
sprowadzania potrzebnych w przyszłości danych do pamięci podręcznej
(prefetch). Dzięki dobrej umiejętności przewidywania przyszłości C2D
statystycznie często nie musi czekać na wolną pamięć bo dane i kod
zostają mu "podstawione pod nos".

Poza tym ma bardzo dobre - lepsze od Athlonów czy P3 - mechanizmy "out
of order execution", polegające przede wszystkim na omijaniu w
programie tych instrukcji, które czekają na wolną pamięć, przez
instrukcje od nich niezależne znajdujące się za nimi w programie.
Received on Tue Jan 2 21:20:10 2007

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 02 Jan 2007 - 21:51:01 MET