Czytałem historię komputera i natrafiłem na procesory IA-64 (Itanium). Brzmiały naprawdę interesująco i byłem zdezorientowany, dlaczego Intel zdecydował się je upuścić.
Możliwość jednoznacznego wyboru 2 instrukcji, które chcesz uruchomić w tym cyklu, to świetny pomysł, szczególnie podczas pisania programu w asemblerze, na przykład szybszego programu ładującego.
Do setki rejestrów powinny być przekonujące dla każdego programisty montażowej. Możesz zasadniczo przechowywać wszystkie zmienne funkcji w rejestrach, jeśli nie wywołuje innych.
Możliwość wykonania takich instrukcji:
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
w porównaniu z koniecznością:
; eax = r1
; ebx = r2
; ecx = r3
mov eax, ebx ; first put r2 into r1
xor eax, ecx ; then set r1 equivalent to r2 XOR r3
mov eax, (imm32) ; first put (imm32) into r1
xor eax, ecx ; then set r1 equivalent to (imm32) XOR r3
Słyszałem, że było to spowodowane brakiem porównywalności wstecz x86, ale nie można tego naprawić, po prostu dodając do niego układ Pentium i po prostu dodając flagę procesora, która przestawiłaby go na tryb Itanium (jak przejście na tryb chroniony lub długi)
Wszystkie te wspaniałe rzeczy z pewnością przyniosłyby im olbrzymi skok przed AMD.
Jakieś pomysły?
Niestety oznacza to, że potrzebujesz do tego bardzo zaawansowanego kompilatora. Lub nawet jeden na konkretny model procesora. (Np. Nowsza wersja Itanium z dodatkową funkcją wymagałaby innego kompilatora).
Kiedy pracowałem nad projektem WinForm (docelowy miał tylko .NET 2.0) w Visual Studio 2010, miałem kompilowany cel IA-64. Oznacza to, że istnieje środowisko uruchomieniowe .NET, które można było skompilować dla IA-64, a środowisko uruchomieniowe .NET oznacza system Windows. Ponadto odpowiedź Hamiltona wspomina o systemie Windows NT. Posiadanie pełnego systemu operacyjnego, takiego jak Windows NT, oznacza, że istnieje kompilator zdolny do generowania kodu maszynowego IA-64.
źródło
Odpowiedzi:
Wydajność była bardzo rozczarowująca w porównaniu z oczekiwaniami i nie sprzedawała się dobrze w porównaniu z architekturami Intela x86.
Intel namówił mnie do zbudowania mojej powłoki Hamilton C na Itanium z systemem Windows NT około 2000 na targach. Itaniums były trudne do zdobycia, więc użyłem VPN do maszyny w ich laboratorium. Po zbudowaniu wersji dla NT na x86, MIPS, Alpha i PowerPC, „port” był trywialny, tylko drobne poprawki głównie do moich plików makefile. Myślę, że zajęło mi to może pół godziny.
Ale wydajność była naprawdę niezadowalająca, zdecydowanie tak przez VPN i wciąż rozczarowująca, kiedy dotarłem na targi i mogłem spróbować tam osobiście. Itanium nigdzie nie poszedł, ponieważ nie był to świetny produkt i nikt go nie kupił.
Dodany:
Przez jakiś czas Intel reklamował moje doświadczenia związane z portowaniem na Itanium, korzystając ze swojego zdalnego programowania VPN na swojej stronie internetowej. Nie ma już, ale migawka na archive.org, oto, co powiedział w zdalnym FAQ :
W „ studium przypadku ” napisano, że zbudowałem wersję Itanium, ponieważ klienci domagali się jej. Ale nie przypominam sobie, żeby kiedykolwiek sprzedawałem kopię dla Itanium. Sprzedali je za wszystko inne, w tym PowerPC (i ilu z tych, którzy używają NT, są)? Tylko nigdy dla Itanium.
źródło
Szybka odpowiedź: niska wydajność. Intel próbował wypuścić rewolucyjny produkt, gdy powinien ewoluować do pożądanego produktu.
Mówiąc dokładniej: procesor nie był wystarczająco szybki w ogólnych okolicznościach. Intel wypuścił procesor w chwili, gdy prędkość procesora do luki w pamięci rosła. Procesor Itanium, będący procesorem RISC, wymagał więcej bajtów na instrukcję niż jego kuzyn, wersje x86. Zwiększone obciążenie pamięci powodowało powolne działanie procesora.
Wszystko to zirytowało to, że cała architektura jest zasadniczo pierwszym wydaniem. Chociaż sam RISC nie był nowym pomysłem, wiele komponentów sprzętowych wymagało nowych projektów układu. Pojawiło się także wiele nowych pomysłów w układzie instrukcji Itanium, które musiały zostać gruntownie przeanalizowane przez społeczność programistów przed udostępnieniem wysokiej jakości oprogramowania.
Ostatecznie wiele technologii ostatecznie wykorzystano w istniejącym wydaniu układów Intela - po prostu nie jest łatwo widoczne dla użytkownika końcowego.
źródło
time
obliczyć rzeczy powiązane (np. Faktoring liczb), operacje wejścia / wyjścia (kopiowanie lub cat'ing plików) i OS perf (tworzenie wątków lub procesów). Na Alfie było tak, wow, to jest szybkie. Daj mi podwójny procesor, mógłbym łatwo go zmierzyć. Mówię ci, Itanium był psem, niezależnie od tego, jak na niego spojrzałeś, szczególnie w porównaniu z szumem.Itanium to świetny projekt, jeśli możesz wykorzystać jego zalety .
Niestety oznacza to, że potrzebujesz do tego bardzo zaawansowanego kompilatora. Lub nawet jeden na konkretny model procesora. (Np. Nowsza wersja Itanium z dodatkową funkcją wymagałaby innego kompilatora).
Utworzenie takiego kompilatora raz jest trudnym zadaniem. Wykonanie tego dla każdej odmiany procesora nie jest ekonomiczne.
źródło
Inną ważną częścią historii Itanium, której tak naprawdę nie poruszono, jest fakt, że w 2001 roku w debiucie Itaniums nie było możliwe włożenie dużej ilości pamięci RAM na sprzęt. x86_64 to tylko chwila na horyzoncie, a AMD Opterons tak naprawdę nie pojawiłby się jeszcze przez kolejne 2 lata.
Moje pierwsze (i jedyne) doświadczenie z serwerem Itanium miało miejsce w 2002 roku w firmie chemicznej, w której potrzebowano serwera SQL Server do przeprowadzenia analizy oleju w celu wykrycia wad. Ropa ta pochodziła z maszyn wartych miliardy dolarów i trafiała do nich w firmie wartej miliardy dolarów, więc mieli oni klaster Itaniums, każdy z 128 GB pamięci RAM. 128 GB pamięci RAM dzisiaj jest wciąż sporą kwotą, ale jest łatwa i tania w instalacji na serwerze.
W 2002 r. 128 GB pamięci RAM było ogromną kwotą, a ponieważ mieli już istniejącą infrastrukturę SQL Server, taniej było rozwidlić kilka maszyn Itanium i załadować je pamięcią RAM, niż przejście na inną platformę i inna baza danych.
Teraz, gdy przeniesienie 128Gb (lub więcej) na serwer towarowy jest banalne, jedna z dużych części rynku Itanium, która nie miała żadnych realnych konkurentów (Opteron pojawił się w 2003 roku, a teraz oczywiście serwery, które mogą setki koncertów pamięci są wszechobecne) jest zalewany opcjami tańszymi w zakupie, tańszymi w posiadaniu i szybszymi.
źródło
Słyszałem, że dzieje się tak, ponieważ AMD zmusiło Intela do przydzielenia większej ilości zasobów procesorom głównego nurtu w celu konkurowania. AMD wypuściło Athlona 64 w 2003 roku, który miał lepszą cenę / wydajność niż Pentium. Istnieje przekonanie, że gdyby Intel nadal rozwijał Itanium z pełną siłą, byłby szybszy niż obecne procesory x86.
źródło