Dlaczego Intel upuścił Itanium? [Zamknięte]

14

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.

Cole Johnson
źródło
1
Ta odpowiedź zawiera podstawowe informacje o Itanium, które mogą okazać się przydatne.
amiregelz
1
Uważam, że procesory EDGE to najbardziej obiecująca nowa architektura. Są nawet lepsze niż procesory VLIW (takie jak Itanium). Możesz przeczytać link do strony „Nowy ISA?” i „Teoria”, ponieważ ta część wyjaśnia, dlaczego są znacznie lepsze.
Dan D.
@DanD problemem jest to, że x86 jest de facto standardem. Prawdopodobnie najbliższym rozwiązaniem jest przejście Apple z Intela na EDGE, ale nawet wtedy może to potrwać lata.
Cole Johnson
„Słyszałem, że było to spowodowane brakiem wstecznej porównywalności 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)” Gdyby mogli wyprodukować układy z dwukrotnie większą ilością tranzystorów bez poświęcania kosztów, wydajności, niezawodności, ciepła itd., Już by to zrobili.
David Schwartz
1
Myślałem, że Itanium był jeszcze martwy .
David Schwartz

Odpowiedzi:

29

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 :

P: Czy masz klienta, z którym mogę porozmawiać o usłudze dostępu zdalnego?

Odp .: Tak, Hamilton Laboratories *. Szczegółowe informacje na temat korzyści Hamilton Laboratories uzyskanych z usługi można znaleźć w studium przypadku Hamilton Laboratories .

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.

Wyzwanie: Przyspieszenie rozwoju produktu Hamilton C Shell w celu zapewnienia korzystnego czasu na wprowadzenie na rynek narzędzi architektury swoich klientów dla Intel® Itanium® i Windows * 2000.

Rozwiązanie: Wykorzystał program zdalnego dostępu, w tym szybki dostęp do Internetu i klienta Shiva® VPN, aby uzyskać dostęp do środowiska programistycznego Itanium, modyfikując kod źródłowy i tworząc pliki, testując zdalnie debugowanie i rekompilację 64-bitowej aplikacji w zaledwie 7 godzin.

Nicole Hamilton
źródło
5
Nic do poprawienia. Cała moja powłoka C jest bardzo wielowątkowa, ale szczególnie w tamtych czasach musiała być bardzo przenośnym C i bardzo wydajnym, jak napisano, ponieważ kompilatory, których używałem na początku lat 90., były często bardzo podstawowe, a optymalizatory czasami zawodne. Zbudowałem już dla 64-bitowych maszyn RISC i już znalazłem i naprawiłem wszelkie problemy z wyrównaniem. Dla perf, zawsze szedłem od razu do interfejsów API Win32, więc prawdopodobnie nie była to zła biblioteka środowiska uruchomieniowego C. Naprawdę gorącą maszyną była Alpha, aw porównaniu z nią Itanium był po prostu rozczarowujący.
Nicole Hamilton
8
Właśnie spojrzałem na twoją C Shell. To jest niesamowite. Zawsze patrzyłem na Cygwina jako wyrzutka. Będę musiał wypróbować jakiś czas.
Michael Brown,
6
To był Intel, a nie Microsoft, z tym szalonym systemem zdalnego programowania. Microsoft był bardzo pomocny dla programistów. Microsoft pomógł mi zorganizować zakup maszyn MIPS, Alpha i PowerPC. Na początku 1992 roku otrzymywałem ręcznie robione płyty CD z nowymi kompilacjami NT od grupy deweloperów, kiedy nie było wielu kopii poza kampusem Microsoft.
Nicole Hamilton,
8
Nie, jądro NT było dość agnostyczne w kwestii architektury procesorów. Dave Cutler był fanatykiem. Rozpoczęli tworzenie NT na i960 , aby uniknąć wkradania się kodu x86. Podczas gdy porzucili i960, NT 3.1 Beta został wydany na platformie x86 i MIPS w lipcu 1992 r., A na Alphie kilka miesięcy później, iirc. Microsoft pomógł mi zdobyć MIPS i maszyny Alpha, więc wspierałem wszystkie 3 procesory, gdy tylko zostały ogłoszone. Jedyną wyjątkową cechą Itanium było to, że było to rozczarowanie i nie sprzedawało się dobrze.
Nicole Hamilton,
1
@ColeJohnson - jak zauważa Nicole Hamilton, problemem nie było jądro NT. Mam na myśli, że do cholery Windows Server 2008 R2 obsługiwał Itanium. Problemem nie był system operacyjny. Problemem była sama platforma. Oczywiście nie pomogło to, że AMD rzuciło kluczem w plany Intela, po prostu rozszerzając samą platformę x86.
Ramhound,
4

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.

A. Phillips
źródło
2
Czy miałeś na myśli niską wydajność podczas robienia Itanium, czy absolutnie okropną wydajność podczas emulacji starszego kodu X86?
Hennes,
1
obie. Moje wrażenie było takie, że emulator X86 nie był zbyt ważny dla zespołu Itanium. Zamiast tego emulator był kluczową cechą produktu, która była właściwa, ponieważ była to przerwa, na której większość klientów wywarłaby pierwsze wrażenie.
A. Phillips,
1
Wydajność Itanium w dobrze napisanym kodzie Itanium była fantastyczna - po prostu nie było zbyt dobrego kodu.
A. Phillips
5
Co oznacza „dobrze napisany kod Itanium”, Aaron? Jeśli jest dobrze czyste C, w którym wszystko jest właściwie wyrównane, bez niepożądanych rzutów itd., Co więcej sprawia, że ​​coś szczególnie dobrze napisanego dla Itanium? Dzięki mojej powłoce C mogłem łatwo timeobliczyć 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.
Nicole Hamilton,
4
Platformy MIPS, Alpha i PowerPC były również nowe, podobnie jak wszystkie NT na początku lat 90., a te inne układy, zwłaszcza Alpha, były szybkie w porównaniu do większości maszyn x86. W piwnicy wciąż mam jedną z tych innych maszyn. Itanium po prostu nie było takie świetne. To nie był pierwszy błąd Intela. Inne greyhairs'y będą pamiętać swoją katastrofę 432 w 1981 roku. Była to również źle zaprojektowana architektura, która przewróciła się pod względem wydajności.
Nicole Hamilton
3

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.

Hennes
źródło
Nie musisz aktualizować kompilatora do nowszych. Po prostu chciałbyś wykorzystać nowe funkcje. Słyszałem, że zachowają zgodność wsteczną.
Cole Johnson
On lubi tylko asembler.
ott--
Wspominam, że ułatwi to kodowanie zestawu. Kompilator może przynajmniej użyć najprostszych instrukcji, jakie może wymyślić.
Cole Johnson
Tworzenie działającego kompilatora różni się od tego, który efektywnie wykorzystuje szerokie / równoległe możliwości procesora. Jeśli wręczysz rzemieślniczego asemblera, powinieneś być w stanie robić wspaniałe rzeczy, ale kosztem dużo pracy.
Hennes,
2
Ze starego wątku slashdot: kompilatory dla Itanium są trudne
Rich Homolka
2

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.

Mark Henderson
źródło
Jestem prawie pewien, że moduł RAM RAM DDR3 o pojemności 128 GB uruchomi teraz co najmniej jeden grand (USD)
Cole Johnson,
2
Nigdy nie widziałem modułu DDR 128 GB ... ale umieszczenie 128 GB zarejestrowanej pamięci RAM ECC na serwerze to więcej niż 1000 USD, ale niewiele więcej; zależy od umowy, którą możesz uzyskać od swojego dostawcy.
Mark Henderson
Nigdy nie widziałem też zwykłego modułu 128 GB . Ale ten zestaw 8 x 16 GB jest ekwiwalentem i kosztuje 1500 USD, co jest dość tanie w porównaniu z zestawami o wartości 10 000 USD, które widziałem w innych miejscach
Cole Johnson
Widzę dużo Gbs; powinny to być GB?
Charlie
1

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.

Tomasz
źródło
1
Powiedzenie „Mógłby ... Miałbym” odnosi się do tego, czym mógłby być Itanium, gdyby AMD po prostu nie rozszerzyło x86. Intel mógłby mieć, gdyby naprawdę tego chciał, zabił x86-64, ale byli pod presją Microsoftu, jestem pewien, że gdyby Intel nie licencjonował x86-64 od AMD, obecna sytuacja prawdopodobnie zostałaby odwrócona z wiodącym AMD, a Intel ledwo byłby w stanie nadążaj za postępami AMD.
Ramhound,