NetBurst
Mikroarchitektura NetBurst jest dziedziczną architekturą P6 w rodzinie procesorów Intel x86 . Pierwszym rdzeniem opartym na tej architekturze był Pentium 4 Willamette , wydany pod koniec 2000 roku . Był to pierwszy w linii procesorów Pentium 4 i od tego czasu wszystkie procesory Pentium 4 wykorzystywały wyłącznie architekturę NetBurst.
W połowie 2001 r. Intel wypuścił rdzeń Fostera , również oparty na NetBurst, przełączając procesory Xeon na nową architekturę. Niektóre procesory Celeron również używały NetBurst. NetBurst jest czasami określany jako Intel P7 lub Intel 80786 , ale nie są to oficjalne nazwy.
Gorączka GHz
Architektura NetBurst została opracowana, gdy główną drogą do zwiększenia wydajności wydawało się zwiększenie częstotliwości operacyjnej. Była to de facto architektura stworzona do podbijania procesora do częstotliwości 10 GHz i w tym celu wyposażona w bardzo długie potoki , które w swoim najnowszym wcieleniu dochodziły do 31 stopni. Tak długie potoki podlegają bardzo wysokim karom w przypadku skoków nieprzewidzianych poprawnie lub w przypadku instrukcji, które muszą się zatrzymać z powodu braku pewnych zasobów. Aby zminimalizować ten problem, NetBurst zaimplementował praktycznie wszystkie dostępne techniki w celu zmniejszenia zakleszczeń potoków i zintegrował wiele potoków, aby wykorzystać równoległość kodu.
Charakterystyka techniczna
Podstawy architektury NetBurst
Architektura NetBurst zasadniczo odnosi się do zestawu funkcji, z których najważniejsze to „technologia hiperpotokowa”, „silnik szybkiego wykonywania” i „pamięć podręczna śledzenia wykonywania”.
Technologia hiperpotokowa
Tę nazwę wybrał Intel dla dwudziestostopniowego potoku przewidzianego przez pierwszą generację architektury NetBurst. Jest to znaczny wzrost w porównaniu do zaledwie 10 etapów w rurociągu Pentium III . Jednak tak długi potok ma wady, w szczególności zmniejszone IPC ( instrukcje na cykl ), jednak łagodzone przez możliwość zwiększenia szybkości zegara. Inną wadą jest duża liczba etapów, które należy odtworzyć w przypadku błędu algorytmu przewidywania rozgałęzień ( brak pamięci podręcznej ). Aby ograniczyć szkody ( kara za chybienie ) spowodowane tymi nieuniknionymi problemami, Intel wprowadził technologie „Rapid Execution Engine” i „Execution Trace Cache” oraz udoskonalił algorytm rozgałęziania, znacznie poprawiając wskaźnik trafień .
Silnik szybkiego wykonywania
Intel dodał dwie jednostki do operacji na liczbach całkowitych w ALU w architekturze P6. Dodatki są sumatorem liczb całkowitych i jednostką obliczeniową adresów. Jednak najważniejszą innowacją wprowadzoną przez tę technologię jest taktowanie ALU, które działa z dwukrotnie większą częstotliwością taktowania rdzenia. Oznacza to, że w procesorze 3 GHz ALU działa z częstotliwością 6 GHz.Te ulepszenia zwalczają spadek IPC i znacznie poprawiają wydajność procesora w obliczeniach liczb całkowitych. Minusem jest to, że niektóre instrukcje są wolniejsze, takie jak shift , ze względu na brak beczki zmiany biegów , która była wbudowana w każdy procesor od 80386 .
Pamięć podręczna śledzenia wykonania
Wewnątrz pamięci podręcznej L2 procesora Intel wbudował pamięć podręczną śledzenia wykonania . Ta pamięć podręczna przechowuje mikrooperacje po etapie dekodowania , dzięki czemu gdy musi przejść do nowej operacji, zamiast ponownie pobierać i dekodować instrukcję , procesor może bezpośrednio uzyskać dostęp do mikro operacji z pamięci podręcznej śledzenia , oszczędzając znaczną Ilość czasu. Ponadto mikrooperacje są przechowywane w pamięci podręcznej zgodnie z przewidywaną algorytmicznie kolejnością wykonania, co oznacza, że gdy procesor pobiera instrukcje z pamięci podręcznej, są one już obecne we właściwej kolejności.
Zasady działania
Działanie Pentium 4 można podsumować w kilku podstawowych krokach:
- Procesor ładuje operacje do wykonania maksymalnie do 32 bitów
- Operacje x86 o zmiennej długości są tłumaczone na 118-bitowe mikrooperacje typu RISC o stałej długości . Operacje x86 można również przełożyć na 4 mikrooperacje w przypadku bardziej złożonych instrukcji.
- Procesor uruchamia mikrooperacje w swoich potokach w trybie poza kolejnością, aby zmaksymalizować wewnętrzną równoległość operacji.
- Wyniki są gromadzone i przesyłane do odpowiedniego rejestru w kolejności ustalonej przez oryginalny program.
Jak wspomniano, celem architektury NetBurst było uzyskanie bardzo wysokich częstotliwości roboczych i wszystko zostało zaprojektowane z myślą o tym. Procesor początkowo ładuje dane, konwertuje je na mikrooperacje i umieszcza je w buforze zwanym oknem instrukcji, a także sygnalizuje zdekodowane mikrooperacje w buforze zwanym buforem śledzenia, który jest używany wewnętrznie przez procesor do przewidywania skoków, obsługi wyjątków i poprawnej zmiany kolejności dane po wykonaniu operacji. Mikrooperacje są koncepcyjnie operacjami typu RISC, ale mają długość 118 bitów, aby prawidłowo zarządzać wieloma trybami adresowania operacji x86 . Procesor kontynuuje ładowanie danych aż do zapełnienia okna instrukcji. Jednostka przewidywania skoków , która opiera się na 512-elementowej tabeli, która śledzi ostatnie skoki i ich wynik analizuje mikrooperacje i decyduje o ewentualnych skokach. W przypadku skoku procesor sprawdza tablicę i jeśli stwierdzi, że instrukcja skoku została już wykonana w przeszłości, zachowuje się zgodnie z zawartością tablicy. W przypadku braku danych procesor opiera się na tabeli statycznej. Pojedyncza błędna prognoza może zmniejszyć wydajność procesora o 20% -30% z powodu bardzo długich potoków. Procesor dokonuje zmiany nazw rejestrów zarówno w celu uzyskania maksymalnej równoległości dozwolonej przez wykonywanie instrukcji poza kolejnością, jak i w celu przeciwdziałania ograniczeniom architektury x86, która przewiduje obecność tylko 8 rejestrów ogólnego przeznaczenia. Procesor ma 128 ukrytych rejestrów, które dynamicznie przypisuje różnym instrukcjom, zmieniając nazwy rejestrów w celu zmniejszenia konfliktów. Operacje są podzielone na dwie kolejki: jedna gromadzi operacje w pamięci (ładuj i przechowuj), a druga dla wszystkich innych typów operacji. Każda kolejka działa w trybie „pierwsze weszło, pierwsze wyszło” (FIFO), ale nie ma związku między kolejnością dwóch kolejek, gdy tylko dostępna jest jednostka funkcjonalna zgodna z instrukcją bezkonfliktową, planista kolejki przekazuje edukację w zakresie funkcjonalnym jednostka. Harmonogramy są w stanie przydzielić do sześciu podstawowych operacji na cykl zegara. W rzeczywistości jednostki ALU dla prostych operacji pracują z podwójną częstotliwością zegara, więc w każdym cyklu zegara są w stanie przetworzyć cztery instrukcje, pozostałe dwie jednostki funkcjonalne mogą wykonać jedną operację, a zatem teoretycznie można wykonać do sześciu operacji na cykl. chociaż w rzeczywistości zdarza się to bardzo rzadko. W celu przeciwdziałania czasom dostępu do pamięci, które są niezwykle ważne przy częstotliwości pracy bliskiej 4 Gigahertzom, w procesorze zaimplementowano mechanizm wstępnego ładowania danych. Jest to obsługiwane zarówno przez cztery instrukcje SSE dla specjalnie skompilowanego kodu, jak i przez mechanizm dynamicznej predykcji zaimplementowany w procesorze, który próbuje z góry przewidzieć, który kod zostanie załadowany. Po wykonaniu operacji, końcowa jednostka aktualizuje rejestry zgodnie z kolejnością oryginalnego programu, należy zauważyć, że również wszelkie wyjątki generowane przez instrukcje są zarządzane przez tę jednostkę, w rzeczywistości wyjątki muszą być zgłaszane tylko wtedy, gdy logiczny porządek programu przewiduje to, a gdy tylko wystąpią, w przeciwnym razie będzie nieprzewidywalne zachowanie programów.
Wydajność
Wydajność Pentium 4 w porównaniu do częstotliwości roboczej nie jest szczególnie wysoka. Pentium 4, jak wspomniano na początku, narodził się do pracy na bardzo wysokich częstotliwościach roboczych. W rzeczywistości, przy tej samej częstotliwości taktowania, oferuje nieco niższą wydajność niż poprzedni Pentium III . Cel bardzo wysokich częstotliwości został wtedy osiągnięty tylko częściowo, biorąc pod uwagę, że ograniczenia technologiczne, które nie zostały początkowo przewidziane, uniemożliwiły osiągnięcie przez projekt początkowo oczekiwanych częstotliwości 10 GHz.W rzeczywistości kolejne procesory Intela, takie jak Pentium M, opierały się na bardziej wydajnych architekturach przy częstotliwości parzystość w celu uzyskania wyższej wydajności i mniejszego zużycia.
Procesory oparte na architekturze NetBurst
Następca
Architektura NetBurst ustąpiła w połowie 2006 roku nowej mikroarchitekturze Intel Core , która ma swoje korzenie projektowe w ewolucji projektu Pentium M Banias , Core Duo Yonah .
Pierwszymi przedstawicielami nowej architektury były rdzenie Merom , Conroe i Woodcrest , odpowiednio dla sektorów: mobilnego, stacjonarnego i serwerowego. Jednak w 2006 r. Intel zadeklarował zamiar wprowadzania nowej architektury co 2 lata i faktycznie w listopadzie 2008 r . został wprowadzony Nehalem , u podstawy procesorów Core i7 , a na początku 2011 r. pojawiły się procesory oparte na Sandy Bridge . Tak więc NetBurst powinien być również ostatnią długowieczną architekturą x86.
Mapa drogowa
Powiązane pozycje
- Mikroprocesory Intel
- Intel P6
- Mikroarchitektura Intel Core
- Pentium 4
- Pentium 4 Extreme Edition
- Pentium D
- Pentium Extreme Edition
- Xeon
- Celeron
- Celeron D
Linki zewnętrzne
- Praca dyplomowa z analizą architektury procesora ( PDF ), na stronie imagelab.ing.unimo.it . Pobrano 11 sierpnia 2007 (zarchiwizowane z oryginału 11 maja 2006) .