Pentium III

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Pentium III on motherboard.jpg

Pentium IIIprocesor w 32-bitowej architekturze stworzony przez firmę Intel w 1999 roku[1]. Procesor bazuje na mikroarchitekturze P6.

Projekt rozwijał się pod kryptonimem Katmai, zanim został oficjalnie przemianowany przez firmę Intel na procesor Pentium III. Zestaw nowych instrukcji określany w fazie wstępnej mianem KNI (Katmai New Instructions) lub MMX-2 przemianowany został w ślad za tym na SSE (Streaming SIMD Extensions), przy czym element SIMD (Single Instruction Multiple Data) określa znane już z techniki MMX jednoczesne przetwarzanie grupy danych przy pomocy jednego rozkazu. Główna różnica pomiędzy SIMD w wersji MMX i SIMD w wersji SSE polega na tym, iż o ile MMX operuje na danych w formacie całkowitym, SSE stosuje tę samą technikę również w odniesieniu do liczb zmiennoprzecinkowych.

Pentium III jest pod wieloma względami bardzo podobny do swego poprzednika, czyli modelu Pentium II. Podwyższenie częstotliwości taktowania stanowi naturalny krok na drodze ewolucji w tej dziedzinie.

Na rdzeniu Coppermine jest oparty procesor konsoli Xbox.

Podstawowe dane[edytuj | edytuj kod]

Intel Pentium III Katmai.jpg

Ogólne[edytuj | edytuj kod]

  • architektura RISC[a]
  • rozmiar pamięci podręcznej pierwszego poziomu (L1) dla kodu: 16 kB
  • rozmiar pamięci RAM objętej pamięcią podręczną: 6 GB
  • liczba etapów przetwarzania rozkazu (w potoku): 12
  • liczba jednostek zmiennoprzecinkowych (FPU): 1 (z potokowaniem)
  • liczba jednostek całkowitoliczbowych: 6 potoków
  • liczba jednostek MMX: 2
  • maksymalny pobór mocy (W): 29,7; 34,5; 17,6; 19,8; 22,0; 24,1[potrzebne źródło]
  • możliwość pracy w systemie wieloprocesorowym (do 2 procesorów).

Katmai (0,25 µm)[edytuj | edytuj kod]

  • data wydania (pierwszego modelu): 17 maja 1999
  • rozmiar pamięci cache drugiego poziomu (L2) dla kodu i danych: 512 kB (taktowana z połową prędkości rdzenia)
  • gniazdo: Slot 1
  • taktowanie magistrali (FSB): 100, 133 MHz
  • VCore: 2,0 V (dla 600 MHz 2,05 V)
  • taktowanie rdzenia: 450-600 MHz
    • 100 MHz FSB: 450 (4,5x), 500 (5x), 550 (5,5x), 600 (6x)
    • 133 MHz FSB: 533 (4x), 600 (4,5x)

Coppermine (0,18 µm)[edytuj | edytuj kod]

  • data wydania (pierwszego modelu): 25 października 1999
  • rozmiar pamięci cache drugiego poziomu (L2) dla kodu i danych: 256 kB (taktowana z pełną prędkością rdzenia)
  • gniazdo: Slot1, Socket 370 (FC-PGA)
  • taktowanie magistrali (FSB): 100, 133 MHz
  • VCore: 1,6; 1,65; 1,70; 1,75 V
  • taktowanie rdzenia: 500-1133
    • Modele E (100 MHz FSB): 500 (5x), 550 (5,5x), 600 (6x), 650 (6,5x), 700 (7x), 750 (7,5x), 800 (8x), 850 (8,5x), 900 (9x), 1000 (10x), 1100 (11x) MHz
    • Modele EB (133 MHz FSB): 533 (4x), 600 (4,5x), 667 (5x), 733 (5,5x), 800 (6x), 866 (6,5x), 933 (7x), 1000(7,5x), 1133 (8,5x) MHz

Coppermine-T (0,18 µm)[edytuj | edytuj kod]

  • data wydania (pierwszego modelu): czerwiec 2001
  • rozmiar pamięci cache drugiego poziomu (L2) dla kodu i danych: 256 kB (taktowana z pełną prędkością rdzenia)
  • gniazdo: Socket 370 (FC-PGA)
  • taktowanie magistrali (FSB): 133 MHz
  • VCore: 1,75 V
  • taktowanie rdzenia: 800-1133 MHz
    • 133 MHz FSB: 800, 866, 933, 1000, 1133 MHz
  • W pierwszej fazie produkcji Coppermine-T nie różnił się w zasadzie niczym od starszego brata, później jednak jeszcze przed pojawieniem się Tualatinów Intel zaczął wyposażać także procesory oparte na rdzeniu Coppermine-T w IHS (czyli miedzianą osłonę chroniącą rdzeń przed ukruszeniem).

Tualatin (0,13 µm)[edytuj | edytuj kod]

  • data wprowadzenia (pierwszego modelu): 2001
  • rozmiar pamięci cache drugiego poziomu (L2) dla kodu i danych: 256 kB lub 512 kB (taktowana z pełną prędkością rdzenia)
  • gniazdo: Socket 370 (FC-PGA2)
  • taktowanie magistrali (FSB): 133 MHz
  • VCore: 1,45; 1,475 V
  • taktowanie rdzenia: 1000 – 1400 MHz
    • Pentium III (256 KB L2-Cache): 1000 (7,5x), 1133 (8,5x), 1200 (9,0x), 1333 (10x) MHz
    • Pentium III-S (512 KB L2-Cache): 1133 (8,5x), 1266 (9,5x), 1400 (10,5x) MHz

Nowe możliwości[edytuj | edytuj kod]

Po nowych rozkazach SSE oczekuje się więcej mocy obliczeniowej oddawanej do dyspozycji głównie aplikacjom bogatym w efekty 3D, a także dekoderom MPEG-2. Nowe formy organizacji sterowania przepływem mają zoptymalizować proces wymiany informacji pomiędzy procesorem, pamięciami podręcznymi, magistralą AGP i pamięcią operacyjną, co jest najbardziej korzystne dla programów przetwarzających wyjątkowo szerokie strumienie danych. Do grupy tej zaliczają się systemy rozpoznawania mowy, szybkie i dokładne obliczenia w przestrzeni 3D, obróbka sekwencji video i gry komputerowe.

Udoskonalona obsługa MMX i SIMD[edytuj | edytuj kod]

Ponieważ w Pentium III nie ma miejsca ukrywanie dodatkowych rejestrów pod rejestrami FP – koprocesora matematycznego – (stosowane w architekturach MMX i 3DNow!), możliwa jest równoległa praca jednostki SIMD-FP niezależnie od FP/MMX. Znika również (drugi czynnik pozytywny) ograniczenie rozmiarów XMM0 – XMM7. W przypadku MMX były one w naturalny sposób obcięte do rozmiarów swej „przykrywki”, czyli maksymalnie 8 × 80 bitów.

Sterowanie przepływem i obsługa pamięci podręcznej[edytuj | edytuj kod]

Instrukcje sterujące przepływem (Memory Streaming) pozwalają na określenie dokładnej strategii dla pamięci podręcznej. Decyzje takie podejmowane są jeszcze w fazie programowania, bądź to przez samego programistę, bądź przez kompilator. W szczególności możliwe jest wymuszenie przedwczesnego ładowania partii danych lub kodu (Prefetch) oraz określenie, czy blok ten ma być przechowywany w pamięci podręcznej L1, L2, obydwu lub w żadnej z nich. Przechowywanie danych w pamięci podręcznej nie zawsze ma sens. Niejednokrotnie z góry wiadomo, iż część z nich nie będzie powtórnie przetwarzana. Nie ma wtedy sensu zamazywać innych, częściej wykorzystywanych partii kodu. Nowe instrukcje sterowania przepływem nie są związane bezpośrednio z SSE i stanowią rozszerzenia architektury, które mogą być z powodzeniem wykorzystywane niezależnie od jednostki SIMD. Nie wymagają one żadnego dodatkowego wsparcia ze strony systemu operacyjnego.

Uaktualnianie pamięci operacyjnej na podstawie pamięci podręcznej[edytuj | edytuj kod]

W Pentium III zmodyfikowane zostały bufory zapisu i poprawiono mechanizm grupowania następujących po sobie odwołań do pamięci (Write Combining). Cykle zapisu (w odniesieniu do pewnego konkretnego bloku danych) mogą odbywać się poprzez pamięć podręczną (Write Through) lub bez jej udziału, czyli bezpośrednio do pamięci.

Wsparcie ze strony oprogramowania[edytuj | edytuj kod]

By móc czerpać korzyści z techniki SSE konieczna jest stosunkowo głęboka ingerencja w istniejące już aplikacje. Zmiany nie ograniczają się do ponownego skompilowania poszerzonego kodu, ale często dotyczą całych algorytmów, tak by stworzyć możliwość równoległego przetwarzania danych zmiennoprzecinkowych. Gwoli ścisłości warto wspomnieć, iż wiele algorytmów nie poddaje się takim zabiegom.

Obsługa nowych możliwości przez systemy operacyjne[edytuj | edytuj kod]

Możliwości oferowane przez rozszerzenia architektury o SIMD nie są tak łatwe do wykorzystania w praktyce jak MMX czy też 3DNow!, ponieważ nie wystarczy samo przeprogramowanie aplikacji, tak by posługiwały się nowymi rozkazami. Główną barierę stanowi grupa nowych rejestrów, o których istnieniu nic nie wiedzą wielozadaniowe systemy operacyjne. 3DNow! (podobnie jak MMX) korzysta jedynie z ośmiu oryginalnych 64-bitowych rejestrów MM0 – MM7, które naprzemiennie przydzielane są dla operacji INT i FP.

Sytuacja ulega zmianie w przypadku SSE. Przełączaniu procesora do kolejnych programów korzystających z instrukcji SIMD grupy I i II musi towarzyszyć zabezpieczanie i odtwarzanie zawartości rejestrów XMM. Jeżeli któryś z programów podejmie pracę z danymi przejętymi z innego modułu, katastrofa jest nieunikniona. Pentium III dysponuje parą rozkazów fxsave/fxstore, która zabezpiecza i odtwarza zarówno rejestry MMO – MM7 (przynależne do jednostek MMX/FPU), jak i XMMO – XMM7 obsługiwane przez SIMD-FP. Omawiana para instrukcji przemieszcza w sumie 352 bajty.

Microsoft Windows 95[edytuj | edytuj kod]

Windows 95 należy do grupy systemów, która nie pozwala na posługiwanie się rozkazami SIMD. Procesor Pentium III musi być zaprogramowany tak, by nie wykraczał poza zakres, w którym porusza się Pentium II. Bez obawy można wykorzystać wywołania z grupy III i IV, co poprawia nieco dostęp do pamięci i daje kilka nowych rozkazów MMX. W sumie jednak nie należy się spodziewać znaczących efektów z zastosowania nowego procesora w ramach tego systemu operacyjnego.

Microsoft Windows 98[edytuj | edytuj kod]

W lepszej sytuacji znajdują się użytkownicy Windows 98 (wersja pierwotna Windows 98 rozpoznaje Pentium III jako Pentium II, ale mimo tego nowy procesor jest prawidłowo konfigurowany i może używać SSE w pełnym zakresie. Zainstalowanie pierwszego dodatku z poprawkami Service Pack 1 usuwa ten drobny błąd) bowiem spełnia on wszystkie niezbędne wymagania gwarantujące zabezpieczenie treści krytycznych rejestrów XMM. Aplikacje mogą w tym wypadku operować całą gamą nowych rozkazów. Wszystkie programy (nawet te, które „nie wiedzą” nic o istnieniu nowych rozkazów), korzystające z DirectX 6.1 używają (poprzez bibliotekę) wsparcia SSE w formie pośredniej. Funkcje tej biblioteki odwołują się bowiem już do nowych rozkazów.

Microsoft Windows NT 4.0[edytuj | edytuj kod]

W przypadku Windows NT 4.0 wymagany jest dodatek Service Pack 4 i dodatkowy sterownik programowy przygotowany przez firmę Intel. Z powodu braku wsparcia DirectX, korzyści mogą przynieść wyłącznie aplikacje, które same posługują się instrukcjami SSE.

Uwagi

  1. Procesor wykonuje rozkazy CISC tłumacząc je na wewnętrzny mikrokod RISC wykonywany potokowo (patrz: superskalarność).

Przypisy

  1. Intel Museum - Microprocessor Hall of Fame. Intel Corporation. [dostęp 2014-02-14].