Być może ciekawi Cię, jak nowsze generacje procesorów mogą być szybsze z tymi samymi prędkościami zegara, co starsze procesory. Czy to tylko zmiany w fizycznej architekturze, czy jest to coś więcej? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedzi na ciekawe pytania czytelnika.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.
Zdjęcie dzięki uprzejmości Rodrigo Senny (Flickr).
Czytnik SuperUser agz chce wiedzieć, dlaczego nowsze generacje procesorów są szybsze przy tej samej częstotliwości zegara:
Dlaczego, na przykład, dwurdzeniowy rdzeń Core i5 2,66 GHz byłby szybszy niż 2,66 GHz Core 2 Duo, który jest również dwurdzeniowy?
Czy to z powodu nowszych instrukcji, które mogą przetwarzać informacje w mniejszej liczbie cykli zegara? Jakie są inne zmiany architektoniczne?
Dlaczego nowsze generacje procesorów są szybsze przy tej samej prędkości zegara?
Współautorzy SuperUser David Schwartz i Breakthrough mają dla nas odpowiedź. Po pierwsze, David Schwartz:
Zwykle nie jest to spowodowane nowszymi instrukcjami. Dzieje się tak tylko dlatego, że procesor wymaga mniejszej liczby cykli instrukcji do wykonania tych samych instrukcji. Może to wynikać z wielu przyczyn:
- Duże pamięci podręczne oznaczają mniej czasu traconego na oczekiwanie na pamięć.
- Więcej jednostek wykonawczych oznacza krótszy czas oczekiwania na rozpoczęcie pracy z instrukcją.
- Lepsze przewidywanie rozgałęzień oznacza mniej czasu zmarnowanego na spekulacyjne wykonywanie instrukcji, które nigdy nie muszą być wykonywane.
- Ulepszenia jednostek wykonania oznaczają krótszy czas oczekiwania na instrukcje do wykonania.
- Krótsze rurociągi oznaczają szybsze zapełnianie rurociągów.
I tak dalej.
Poniżej znajduje się odpowiedź od Breakthrough:
Absolutnym odniesieniem są podręczniki dla programistów oprogramowania Intel 64 i IA-32 Architectures. Wyszczególniają zmiany między architekturami i są doskonałym źródłem do zrozumienia architektury x86.
Zaleciłbym pobranie połączonych woluminów od 1 do 3C (pierwszy link do pobrania na stronie powyżej). Tom 1, rozdział 2.2 zawiera potrzebne informacje.
Niektóre ogólne różnice wymienione w tym rozdziale, przechodząc od mikro-architektur Nehalem / Sandy Bridge są następujące:
- Ulepszone przewidywanie rozgałęzień, szybsze odzyskiwanie po błędach
- Technologia HyperThreading
- Zintegrowany kontroler pamięci, nowa hierarchia pamięci podręcznej
- Szybsza obsługa wyjątków zmiennoprzecinkowych (tylko Sandy Bridge)
- Poprawa przepustowości LEA (tylko Sandy Bridge)
- Rozszerzenia instrukcji AVX (tylko Sandy Bridge)
Pełną listę można znaleźć w powyższym linku (tom 1, rozdział 2.2).
Przeczytaj tę bardziej interesującą dyskusję, korzystając z poniższego linku!
Czy masz coś do dodania 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.