Pentium Pro - Pentium Pro

Pentium Pro
Logo Intel Pentium Pro.svg
Informacje ogólne
Wystrzelony 1 listopada 1995
Wycofane czerwiec 1998
Wspólni producenci
Wydajność
Maks. Częstotliwość taktowania procesora 150 MHz do 200 MHz
Prędkości FSB 60 MHz do 66 MHz
Architektura i klasyfikacja
Min. rozmiar funkcji 0,35 μm do 0,50 μm
Mikroarchitektura P6
Zestaw instrukcji x86
Specyfikacje fizyczne
Rdzenie
Gniazdo(a)
Historia
Następca Pentium II Xeon

Pentium Pro jest szósta generacja x86 mikroprocesor zaprojektowany i wyprodukowany przez firmę Intel i wprowadzone z dniem 1 listopada 1995 r wprowadziła mikroarchitektury P6 (czasami określany jako i686) i był pierwotnie przeznaczony do zastąpienia oryginalnego Pentium w pełnej gamie zastosowań. Podczas gdy Pentium i Pentium MMX miały odpowiednio 3,1 i 4,5 miliona tranzystorów , Pentium Pro zawierał 5,5 miliona tranzystorów. Później został zredukowany do bardziej wąskiej roli jako serwer i wysokiej klasy procesor do komputerów stacjonarnych i był używany w superkomputerach, takich jak ASCI Red , pierwszy komputer, który osiągnął bilion operacji zmiennoprzecinkowych na sekundę (tera FLOPS ). Pentium Pro był w stanie obsługiwać zarówno konfiguracje dwu-, jak i czteroprocesorowe. Pojawił się tylko w jednej formie, stosunkowo dużym prostokątnym Socket 8 . Pentium Pro został zastąpiony przez Pentium II Xeon w 1998 roku.

Mikroarchitektura

Pentium Pro 200 MHz z pamięcią podręczną L2 512 KB w pakiecie PGA
200 MHz Pentium Pro z 1 MB pamięci podręcznej L2 w obudowie PPGA .
Pentium Pro bez ograniczeń 256 KB
Pentium II Overdrive z usuniętym radiatorem. Rdzeń Flip-chip Deschutes znajduje się po lewej stronie. Pamięć podręczna 512 KB znajduje się po prawej stronie.

Głównym architektem Pentium Pro był Fred Pollack, który specjalizował się w superskalarności i pracował również jako główny inżynier Intel iAPX 432 .

Streszczenie

Pentium Pro zawiera nową mikroarchitekturę , inną niż mikroarchitektura P5 Pentium . Ma odsprzężoną, 14-stopniową, superpotokową architekturę, która wykorzystuje pulę instrukcji. Pentium Pro ( P6 ) zawierał wiele zaawansowanych koncepcji, których nie ma w Pentium, chociaż nie był to pierwszy lub jedyny procesor x86 , który je zaimplementował (patrz NexGen Nx586 lub Cyrix 6x86 ). Pentium Pro rurociąg miał dodatkowe etapy dekodowania dynamicznie tłumaczyć IA-32 instrukcji do buforowanych mikro-operation sekwencji, które mogą być następnie analizowane, ponownie uporządkowanych i zmienione w celu wykrycia operacji parallelizable, które mogą być wydane na więcej niż jednej jednostki wykonawczej naraz. W ten sposób Pentium Pro charakteryzował się egzekucją poza zleceniem , w tym egzekucją spekulacyjną poprzez zmianę nazwy rejestru . Miał również szerszą 36-bitową magistralę adresową , wykorzystywaną przez rozszerzenie adresu fizycznego (PAE), umożliwiającą dostęp do 64 GB pamięci.

Pentium Pro posiada pamięć podręczną instrukcji o wielkości 8 KB , z której w każdym cyklu pobieranych jest do 16 bajtów i wysyłanych do dekoderów instrukcji . Istnieją trzy dekodery instrukcji. Dekodery mają nierówne możliwości: tylko jeden może dekodować dowolną instrukcję x86, podczas gdy pozostałe dwa mogą dekodować tylko proste instrukcje x86. Ogranicza to zdolność Pentium Pro do dekodowania wielu instrukcji jednocześnie, ograniczając wykonywanie superskalarnych. Instrukcje x86 są dekodowane na 118-bitowe mikrooperacje (mikrooperacje). Mikrooperacje są podobne do zestawu instrukcji komputerowych (RISC); to znaczy, kodują operację, dwa źródła i cel. Ogólny dekoder może generować do czterech mikrooperacji na cykl, podczas gdy proste dekodery mogą generować po jednej mikrooperacji na cykl. Tak więc instrukcje x86, które operują na pamięci (np. dodaj ten rejestr do tej lokalizacji w pamięci) mogą być przetwarzane tylko przez ogólny dekoder, ponieważ ta operacja wymaga minimum trzech mikrooperacji. Podobnie proste dekodery są ograniczone do instrukcji, które można przetłumaczyć na jedną mikrooperację. Instrukcje wymagające większej liczby mikrooperacji niż cztery są tłumaczone za pomocą sekwencera, który generuje wymagane mikrooperacje w wielu cyklach zegara. Pentium Pro był pierwszym procesorem z rodziny x86 obsługującym uaktualniany mikrokod pod kontrolą BIOS - u i/lub systemu operacyjnego (OS).

Mikrooperatorzy wychodzą z bufora ponownego zamawiania (ROB) i wchodzą do stacji rezerwowej (RS), gdzie oczekują na wysyłkę do jednostek wykonawczych. W każdym cyklu zegara do pięciu jednostek wykonawczych można wysłać do pięciu mikrooperacji. Pentium Pro ma łącznie sześć jednostek wykonawczych: dwie jednostki całkowite, jedną jednostkę zmiennoprzecinkową (FPU), jednostkę obciążenia, jednostkę adresu sklepu i jednostkę danych przechowywania. Jedna z jednostek całkowitych współdzieli te same porty co FPU, dlatego Pentium Pro może wysyłać tylko jedną mikrooperację całkowitą i jedną mikrooperację zmiennoprzecinkową lub dwie mikrooperacje całkowite na cykl, oprócz mikrooperacji. ops dla pozostałych trzech jednostek wykonawczych. Spośród dwóch jednostek liczb całkowitych tylko ta, która dzieli ścieżkę z FPU na porcie 0, ma pełny zestaw funkcji, takich jak zmiana beczki , mnożnik, dzielnik i obsługa instrukcji LEA. Druga jednostka liczb całkowitych, która jest podłączona do portu 1, nie ma tych udogodnień i ogranicza się do prostych operacji, takich jak dodawanie, odejmowanie i obliczanie adresów docelowych gałęzi.

FPU wykonuje operacje zmiennoprzecinkowe. Dodawanie i mnożenie są potokowe i mają opóźnienie odpowiednio trzech i pięciu cykli. Podział i pierwiastek kwadratowy nie są potokowe i są wykonywane w oddzielnych jednostkach, które współdzielą porty FPU. Podział i pierwiastek kwadratowy mają latencję odpowiednio 18-36 i 29-69 cykli. Najmniejsza liczba jest dla liczb zmiennoprzecinkowych o pojedynczej precyzji (32-bity), a największa dla liczb o rozszerzonej precyzji (80-bitowych). Dzielenie i pierwiastek kwadratowy mogą działać jednocześnie z dodawaniem i mnożeniem, uniemożliwiając ich wykonanie tylko wtedy, gdy wynik ma być zapisany w ROB.

Po wydaniu mikroprocesora wykryto błąd w jednostce zmiennoprzecinkowej , powszechnie nazywany „błędem FPU Pentium Pro i Pentium II”, a przez firmę Intel „błędem flagi”. Błąd występuje w pewnych okolicznościach podczas konwersji liczby zmiennoprzecinkowej na liczbę całkowitą, gdy liczba zmiennoprzecinkowa nie pasuje do mniejszego formatu liczb całkowitych, powodując odstępstwo FPU od udokumentowanego zachowania. Błąd jest uważany za drobny i występuje w tak szczególnych okolicznościach, że dotyczy bardzo niewielu programów, jeśli w ogóle.

Mikroarchitektura Pentium Pro P6 była używana w takiej czy innej formie przez firmę Intel przez ponad dekadę. Rurociąg będzie się skalował od początkowego 150 MHz, aż do 1,4 GHz z „Tualatin” Pentium III . Różne cechy projektu będą kontynuowane po tym, jak w pochodnym rdzeniu zwanym „ Banias ” w Pentium M i Intel Core ( Yonah ), który sam ewoluował w mikroarchitekturę Core ( procesor Core 2 ) w 2006 roku i później.

Zestaw instrukcji

Pentium Pro (P6) wprowadził nowe instrukcje do gamy Intela; instrukcje CMOVxx („przesunięcie warunkowe”) mogą przenieść wartość, która jest zawartością rejestru lub komórki pamięci do innego rejestru lub nie, zgodnie z pewnym predykatowym warunkiem logicznym xx w rejestrze flag, przy czym xx jest podanym kodem predykatu flag w warunku instrukcji skoku warunkowego. Na przykład CMOVNE przenosi określoną wartość do rejestru lub nie w zależności od tego, czy warunek NE (nierówny) jest spełniony w rejestrze flag, tj. flaga Z = 0. Pozwala to na ocenę operacji jeśli-to-inaczej i na przykład ten ? : operacja w C. Instrukcje te zwiększają wydajność, pozwalając uniknąć kosztownych instrukcji skoków i rozgałęzień. W np. CMOVxx destreg1, source_operand2 pierwszy operand jest rejestrem docelowym, drugi rejestrem źródłowym lub lokalizacją pamięci. Drugi operand niestety nie może być wartością bezpośrednią (stałą in-line) i taka stała musiałaby być najpierw umieszczona w rejestrze. Kod predykatu xx może przyjmować pełny zakres wartości dozwolony w gałęziach warunkowych.

Drugim wydarzeniem była dokumentacja nielegalnej instrukcji UD2. Ten kod operacyjny jest zarezerwowany i gwarantuje, że spowoduje nieprawidłowy wyjątek instrukcji na P6 i wszystkich późniejszych procesorach. Pozwala to programistom na łatwe zawieszenie bieżącego programu w przyszłości, gdy błąd zostanie wykryty przez oprogramowanie.

Wydajność

Pomimo zaawansowanej jak na tamte czasy, architektura zmiany nazwy rejestru poza kolejnością w Pentium Pro miała problemy z uruchomieniem 16-bitowego kodu i mieszanego kodu ( 8-bitowego z 16-bitowym (8/16) lub 16-bitowego z 32-bitowym (16/32), ponieważ używanie rejestrów częściowych powoduje częste opróżnianie potoku. Specyficzne użycie rejestrów częściowych było wówczas powszechną optymalizacją wydajności, ponieważ nie powodowało spadku wydajności na procesorach Intel sprzed P6; również dominujących systemów operacyjnych w czasie Pentium Pro to 16-bitowy DOS i mieszany 16/32-bitowy Windows 3.1x i Windows 95 (chociaż ten ostatni wymaga 32-bitowego procesora 80386, znaczna część jego kodu jest nadal 16-bitowa ze względu na wydajność, np. USER.exe ) .To , przy wysokich kosztach systemów Pentium Pro, doprowadziło do letniej sprzedaży wśród kupujących komputery w tamtym czasie. Aby w pełni wykorzystać mikroarchitekturę P6 Pentium Pro , potrzebny jest w pełni 32-bitowy system operacyjny, taki jak Windows NT , Linux , Unix lub OS/2 . Problemy z wydajnością starszego kodu zostały później częściowo złagodzone przez firmę Intel h Pentium II.

W porównaniu do mikroprocesorów RISC, Pentium Pro, po wprowadzeniu, nieco przewyższał najszybsze mikroprocesory RISC pod względem wydajności w liczbach całkowitych podczas testu SPECint95, ale wydajność zmiennoprzecinkowa była znacznie niższa, o połowę niższa niż w przypadku niektórych mikroprocesorów RISC. Czołowa wydajność Pentium Pro szybko zniknęła, najpierw wyprzedzona przez MIPS Technologies R10000 w styczniu 1996 roku, a następnie przez wariant EV56 Alpha 21164 firmy Digital Equipment Corporation .

Recenzenci szybko zauważyli, że bardzo powolne zapisy w pamięci wideo są słabym punktem platformy P6, a wydajność tutaj wynosi zaledwie 10% identycznie taktowanego systemu Pentium w testach porównawczych, takich jak VIDSPEED. Sposoby na obejście tego obejmowały ustawienie rysunku VESA w pamięci systemowej zamiast w pamięci wideo w grach takich jak Quake , a później pojawiły się narzędzia, takie jak FASTVID, które mogły podwoić wydajność w niektórych grach, umożliwiając łączenie funkcji zapisu w procesorze. Rejestry zakresu typu pamięci (MTRR) są ustawiane automatycznie przez sterowniki wideo systemu Windows, począwszy od ~1997, a ulepszony podsystem pamięci podręcznej/pamięci oraz wydajność FPU spowodowały, że przewyższył on zegar na zegarze Pentium w pojawiających się grach 3D w połowie roku. do końca lat dziewięćdziesiątych, szczególnie przy użyciu NT4. Jednak brak implementacji MMX zmniejsza wydajność aplikacji multimedialnych, które korzystały z tych instrukcji.

Buforowanie

Prawdopodobnie najbardziej zauważalnym dodatkiem Pentium Pro była jego pakietowa pamięć podręczna L2 , która wahała się od 256 KB w momencie wprowadzenia do 1 MB w 1997 roku. W tamtych czasach technologia produkcyjna nie pozwalała na zintegrowanie dużej pamięci podręcznej L2 z rdzeniem procesora. Zamiast tego Intel umieścił kość L2 osobno w pakiecie, co nadal pozwalało jej działać z taką samą częstotliwością zegara, jak rdzeń procesora. Dodatkowo, w przeciwieństwie do większości schematów pamięci podręcznej opartych na płytach głównych, które współdzielą główną magistralę systemową z procesorem, pamięć podręczna Pentium Pro miała własną magistralę tylną (nazywaną przez Intel podwójną magistralą niezależną ). Z tego powodu procesor mógł jednocześnie czytać pamięć główną i pamięć podręczną, znacznie zmniejszając tradycyjne wąskie gardło. Pamięć podręczna była również „nieblokująca”, co oznacza, że ​​procesor mógł wysyłać jednocześnie więcej niż jedno żądanie pamięci podręcznej (do 4), zmniejszając kary za braki w pamięci podręcznej. (Jest to przykład MLP, równoległości na poziomie pamięci .) Połączenie tych właściwości dało pamięć podręczną L2, która była znacznie szybsza niż pamięci podręczne oparte na płytach głównych starszych procesorów. Sama pamięć podręczna dała procesorowi przewagę pod względem wydajności wejścia/wyjścia nad starszymi procesorami x86 . W konfiguracjach wieloprocesorowych zintegrowana pamięć podręczna Pentium Pro zwiększyła wydajność w niebotycznym tempie w porównaniu do architektur, w których każdy procesor współdzielił centralną pamięć podręczną.

Jednak ta znacznie szybsza pamięć podręczna L2 wiązała się z pewnymi komplikacjami. Układ pamięci podręcznej na opakowaniu w Pentium Pro był wyjątkowy. Procesor i pamięć podręczna znajdowały się na osobnych matrycach w tym samym opakowaniu i były ściśle połączone magistralą o pełnej prędkości. Dwie lub trzy matryce musiały zostać połączone ze sobą na wczesnym etapie procesu produkcyjnego, zanim możliwe było przeprowadzenie testów. Oznaczało to, że pojedyncza, drobna wada w obu matrycach spowodowała konieczność wyrzucenia całego zespołu, co było jednym z powodów stosunkowo niskiej wydajności produkcji i wysokich kosztów Pentium Pro. Wszystkie wersje układu były drogie, szczególnie te z 1024 KB, ponieważ wymagały dwóch matryc pamięci podręcznej 512 KB oraz procesora.

Dostępne modele

Prędkości zegara Pentium Pro wynosiły 150, 166, 180 lub 200 MHz z zegarem zewnętrznej szyny 60 lub 66 MHz . Niektórzy użytkownicy zdecydowali się przetaktować swoje układy Pentium Pro, przy czym wersja 200 MHz często działa z częstotliwością 233 MHz, wersja 180 MHz często działa z częstotliwością 200 MHz, a wersja 150 MHz często działa z częstotliwością 166 MHz. Chip był popularny w symetrycznych konfiguracjach wieloprocesorowych, przy czym powszechne były konfiguracje z dwoma i czterema serwerami SMP i stacjami roboczymi.

W schemacie „Family/Model/Stepping” firmy Intel, Pentium Pro to rodzina 6, model 1, a jego kod produktu Intel to 80521.

Zegar

(MHz)

Autobus

(MHz)

L2

Pamięć podręczna

(KB)

Maks.

TDP

(W)

150 60 256 29,2
166 66 512 35
180 60 256 31,7
200 66 35
512 37,9
1024 44

Produkcja

Proces użyty do produkcji matrycy procesora Pentium Pro i jego oddzielnej matrycy pamięci podręcznej uległy zmianie, prowadząc do kombinacji procesów używanych w tym samym pakiecie:

  • Prototypowa matryca procesora Pentium Pro 133 MHz została wykonana w procesie BiCMOS 0,6 μm.
  • Matryca procesora Pentium Pro 150 MHz została wykonana w procesie 0,50 μm BiCMOS .
  • Matryca procesora Pentium Pro 166, 180 i 200 MHz została wykonana w procesie 0,35 μm BiCMOS.
  • Matryca pamięci podręcznej L2 o pojemności 256 KB została wykonana w procesie BiCMOS 0,50 μm.
  • Matryca pamięci podręcznej L2 o wielkości 512 i 1024 KB została wykonana w procesie 0,35 μm BiCMOS.

Opakowania

Pentium Pro (do 512 KB pamięci podręcznej) jest zapakowany w ceramiczny moduł wieloukładowy (MCM). Moduł MCM zawiera dwie wnęki na spodzie, w których znajduje się kość mikroprocesora i towarzysząca jej kość pamięci podręcznej. Matryce są przymocowane do ślimaka cieplnego, którego odsłonięta wierzchołek pomaga przenieść ciepło z matryc bardziej bezpośrednio do urządzenia chłodzącego, takiego jak radiator. Matryce są połączone z pakietem za pomocą konwencjonalnego łączenia drutowego. Wnęki są zakryte płytą ceramiczną.

Pentium Pro z 1 MB pamięci podręcznej wykorzystuje plastikowy MCM. Zamiast dwóch wnęk jest tylko jedna, w której znajdują się trzy matryce, przyklejone do opakowania zamiast kuli cieplnej. Wnęki są wypełnione żywicą epoksydową.

MCM ma 387 pinów, z których około połowa jest ułożona w układzie siatki pinów (PGA), a połowa w układzie międzywęzłowej siatki pinów (IPGA). Opakowanie zostało zaprojektowane dla Socket 8 .

Ścieżki aktualizacji

W 1998 roku został wydany procesor 300/333 MHz Pentium II Overdrive dla Socket 8. Wyposażony w 512 KB pamięci podręcznej o pełnej szybkości, został wyprodukowany przez firmę Intel jako opcja aktualizacji typu drop-in dla właścicieli systemów Pentium Pro. Jednak obsługiwał tylko dwukierunkowe, bezklejowe przetwarzanie wieloprocesorowe, a nie czterodrożne lub wyższe, co nie czyniło go użytecznym ulepszeniem dla systemów czteroprocesorowych. Te specjalnie zapakowane procesory Pentium II Xeon zostały użyte do uaktualnienia ASCI Red , który stał się pierwszym komputerem, który osiągnął znak wydajności teraFLOPS z procesorem Pentium Pro, a następnie pierwszym, który przekroczył 2 teraFLOPS po uaktualnieniu do procesorów Pentium II Xeon.

Ponieważ płyty główne Slot 1 stały się powszechne, kilku producentów wypuściło adaptery typu Slocket , takie jak Tyan M2020, Asus C-P6S1, Tekram P6SL1 i Abit KP6. Sloty umożliwiły użycie procesorów Pentium Pro z płytami głównymi z gniazdem 1. Chipset Intel 440FX wyraźnie obsługiwał zarówno procesory Pentium Pro, jak i Pentium II, ale chipsety Intel 440BX i nowsze sloty 1 nie wspierały wyraźnie Pentium Pro, więc sloty Socket 8 nie były szeroko stosowane. Slockets, w postaci adapterów Socket 370 do Slot 1, zyskały nową popularność, gdy Intel wprowadził procesory Socket 370 Celeron i Pentium III .

Podstawowe specyfikacje

Pentium Pro

Przesterowanie Pentium II

  • Pamięć podręczna L1: 16, 16 KB (dane + instrukcje)
  • Pamięć podręczna L2: zewnętrzny układ 512 KB na module procesora taktowany z prędkością procesora
  • Gniazdo: Gniazdo 8
  • Mnożnik: Zablokowany na 5×
  • Magistrala FSB: 60 i 66 MHz
  • VCore: 3,1–3,3 V (posiada wbudowany regulator napięcia)
  • Produkcja: 0,25 μm
  • Częstotliwość zegara: oparta na Pentium II generacji Deschutes
  • Pierwsze wydanie: 1997
  • Obsługuje technologię MMX

Możliwości magistralowe i wieloprocesorowe

Pentium Pro używał sygnalizacji GTL+ w swojej magistrali FSB. Pentium Pro może być używany samodzielnie w projektach czterodrożnych. Zbudowano również ośmiokierunkowe komputery Pentium Pro, ale używały one wielu magistral.

Projekt magistrali Pentium Pro był pod wpływem Futurebus , magistrali Intel iAPX 432 oraz elementów magistrali Intel i960 . Futurebus został pomyślany jako zaawansowany autobus, który ma zastąpić VMEbus używany z Motorolą 68000 od późnych lat 70., ale w komitecie normalizacyjnym pozostawał w stagnacji przez ponad dekadę, jeśli policzysz wszystkie zwroty akcji. Inicjatywa Intela iAPX 432 również okazała się komercyjną porażką, ale w trakcie tego procesu nauczyli się budować magistralę dzieloną transakcją do obsługi systemu wieloprocesorowego bez pamięci podręcznej. Model i960 rozwinął dalej magistralę iAPX 432 z podzieloną transakcją, aby zawierała protokół spójności pamięci podręcznej, kończąc na zestawie funkcji bardzo przypominającym pierwotne ambicje Futurebus.

Głównym architektem i960 był specjalista od superskalarności Fred Pollack, który był także głównym inżynierem Intel iAPX 432 oraz głównym architektem układu i686, Pentium Pro. Bez wątpienia był dobrze zaznajomiony z całą tą historią. Pentium Pro został zaprojektowany tak, aby zawierał 4-drożną magistralę SMP ze spójną pamięcią podręczną z dzielonymi transakcjami jako obowiązkową cechą każdego produkowanego chipa. Służyło to również odmowie dostępu konkurencji do gniazda w celu produkcji sklonowanych procesorów.

Chociaż Pentium Pro nie odniósł sukcesu jako maszyna dla mas, ze względu na słabą obsługę 16-bitowego systemu Windows 95, odniósł duży sukces w przestrzeni serwera plików ze względu na zaawansowaną, zintegrowaną konstrukcję magistrali, wprowadzając wiele zaawansowanych funkcji, które miały wcześniej były dostępne tylko w segmencie drogich stacji roboczych na rynku towarowym.

Konkurenci Pentium Pro/6. generacji

Zobacz też

Bibliografia

Zewnętrzne linki