인텔이 아이테니엄을 떨어 뜨린 이유는 무엇입니까? [닫은]


14

컴퓨터의 역사를 읽고 있었고 IA-64 (Itanium) 프로세서를 사용했습니다. 그들은 정말 흥미로 웠고 인텔이 왜 포기하기로 결정했는지 혼란 스러웠습니다.

그주기에서 실행하고자하는 2 가지 명령을 명시 적으로 선택할 수있는 기능은 특히 빠른 부트 로더와 같이 어셈블리로 프로그램을 작성할 때 좋은 아이디어입니다.

수백 레지스터는 어셈블리 프로그래머를위한 설득해야한다. 다른 함수를 호출하지 않으면 모든 함수 변수를 레지스터에 저장할 수 있습니다.

다음과 같은 지침을 수행하는 기능 :

(qp) xor r1 = r2, r3    ; r1 =   r2  XOR r3

(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3

해야 할 일 :

; 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

x86과의 비교 가능성이 없다고 들었지만 Pentium 회로를 추가하고 Itanium 모드로 전환하는 프로세서 플래그를 추가하면 해결할 수 없습니다 (보호 또는 긴 모드로 전환).

그것에 대한 모든 위대한 것들이 AMD보다 훨씬 앞서 나갔을 것입니다.

어떤 아이디어?


안타깝게도이 작업을 수행하려면 고급 컴파일러가 필요합니다. 또는 특정 CPU 모델 당 하나도 가능합니다. (예를 들어 추가 기능이있는 Itanium의 최신 버전에는 다른 컴파일러가 필요합니다).

Visual Studio 2010에서 WinForms (대상에는 .NET 2.0 만 있음) 프로젝트를 작업 할 때 IA-64의 컴파일 대상이있었습니다. 이는 IA-64 용으로 컴파일 할 수있는 .NET 런타임이 있고 .NET 런타임은 Windows를 의미합니다. 또한 Hamilton의 답변 에는 Windows NT가 언급되어 있습니다. Windows NT와 같은 완전한 OS가 있다는 것은 IA-64 기계 코드를 생성 할 수있는 컴파일러가 있다는 것을 의미합니다.


1
이 답변 은 유용한 Itanium에 대한 배경 정보를 제공합니다.
amiregelz

1
EDGE 프로세서 가 가장 유망한 새로운 아키텍처 라고 생각합니다 . 또한 Itanium과 같은 VLIW 프로세서보다 우수합니다. "새 ISA?"에서 링크 된 페이지를 읽으십시오. "이론"은 왜 그들이 훨씬 더 나은지를 설명합니다.
Dan D.

@DanD 문제는 x86이 사실상 표준이라는 것입니다. 가장 가까운 것은 애플이 인텔에서 EDGE로 전환 한 것이지만 몇 년이 걸릴 수도있다.
Cole Johnson

"x86과의 호환성이 없다고 들었지만 Pentium 회로를 추가하고 Itanium 모드로 전환하는 프로세서 플래그 만 추가하면 보호 할 수 없습니다." 비용, 성능, 신뢰성, 열 등을 희생시키지 않고 두 배나 많은 트랜지스터로 칩을 만들 수 있다면 이미하고있는 것입니다.
David Schwartz

답변:


29

성능은 기대에 비해 매우 실망 스러웠으며 인텔의 x86 아키텍처에 비해 잘 팔리지 않았습니다.

인텔은 나에게 2000 년경 Windows NT를 실행하는 Itanium에 해밀턴 C 셸 을 구축 하여 전시회를 보겠다고 말했습니다 . Itanium은 사용하기 어려웠으므로 실험실의 컴퓨터에 VPN을 사용했습니다. x86, MIPS, Alpha 및 PowerPC에 NT 용 버전을 이미 구축 한이 "포트"는 사소한 것이 었으며 대부분 내 makefile에 약간의 수정이있었습니다. 아마 30 분이 걸렸다 고 생각합니다.

그러나 성능은 VPN에 비해 정말 압도적이었습니다. 그리고 전시회에 도착했을 때 여전히 실망스럽고 직접 시도해 볼 수있었습니다. Itanium은 훌륭한 제품이 아니었고 아무도 그것을 사지 않았기 때문에 아무데도 갈 수 없었습니다.

추가 :

잠시 동안 인텔은 웹 사이트에서 VPN 원격 개발 경험을 사용하여 Itanium으로 포팅 한 경험을 선전했습니다. 이제 사라졌지 만 archive.org에서 스냅 샷을 찍었습니다. 원격 FAQ에서 다음과 같이 말했습니다 .

Q : 원격 액세스 서비스에 대해 이야기 할 수있는 고객이 있습니까?

A : 예. Hamilton Laboratories *. 서비스에서 파생 된 Hamilton Laboratories의 이점에 대한 자세한 내용은 Hamilton Laboratories 사례 연구를 참조하십시오 .

" 사례 연구 "에서는 고객이 요구하기 때문에 Itanium 버전을 구축했다고 말합니다. 그러나 나는 Itanium을 위해 사본을 판매 한 적이 있습니다. Itanium에서는 PowerPC (NT를 실행하는 사람 중 몇 명이나 있다고 가정 했습니까?)를 포함한 다른 모든 제품을 판매했습니다.

도전 과제 : Hamilton C Shell 제품의 개발을 가속화하여 인텔 ® 아이테니엄 ® 및 Windows * 2000에 대한 고객 아키텍처 도구의 출시 기간을 유리하게 보장합니다.

솔루션 : 고속 인터넷 액세스 및 Shiva® VPN 클라이언트를 포함한 원격 액세스 프로그램을 사용하여 Itanium 개발 환경에 액세스하고, 소스 코드를 수정하고 파일을 작성하며, 7 시간 만에 원격으로 디버깅 및 64 비트 애플리케이션을 재 컴파일합니다.


5
조정할 것이 없습니다. 내 전체 C 셸은 멀티 스레드가 많았지 만 특히 그 당시에는 90 년대 초에 사용했던 컴파일러가 매우 기본적이고 최적화 프로그램이 때로는 신뢰할 수 없기 때문에 작성된 것처럼 매우 이식성이 뛰어나고 효율적이어야했습니다 . 이미 64 비트 RISC 시스템 용으로 구축했으며 정렬 문제를 이미 발견하고 수정했습니다. perf의 경우, 나는 항상 모든 것에 대해 Win32 API로 직접 갔으므로 나쁜 C 런타임 라이브러리도 아니 었습니다. 정말 뜨거운 기계는 알파 였고 그것에 비해 Itanium은 실망 스러웠습니다.
Nicole Hamilton

8
C 쉘을 보았습니다. 꽤 굉장합니다. 나는 항상 Cygwin을 copout으로 보았습니다. 나는 그것을 잠시 시험 해봐야 할 것이다.
Michael Brown

6
그 미친 원격 개발 시스템은 마이크로 소프트가 아닌 인텔이었습니다. Microsoft는 개발자에게 큰 도움이되었습니다. Microsoft는 MIPS, Alpha 및 PowerPC 컴퓨터를 구입할 수 있도록 도와주었습니다. 1992 년 초 개발자 그룹으로부터 Microsoft 캠퍼스 외부에 사본이 많지 않은 NT의 새로운 빌드의 수제 CD를 구했습니다.
니콜 해밀턴

8
아닙니다. NT 커널은 프로세서 아키텍처에 대해 상당히 독립적이었습니다. Dave Cutler는 그것에 대해 광신자였습니다. 그들은 x86이 코드에 침입하는 것을 막기 위해 i960 에서 NT 개발을 시작했습니다 . 그리고 그들이 i960을 떨어 뜨렸을 때 NT 3.1 베타는 1992 년 7 월 x86과 MIPS와 몇 달 후 알파 (iirc)에서 출시되었습니다. Microsoft는 MIPS 및 Alpha 시스템을 얻도록 도와 주므로 발표 된 3 개의 프로세서를 모두 지원했습니다. Itanium의 특별한 점은 실망스럽고 잘 팔리지 않았다는 것입니다.
니콜 해밀턴

1
@ColeJohnson-Nicole Hamilton이 지적했듯이 문제는 NT 커널이 아닙니다. 나는 Windows Server 2008 R2가 Itanium을 지원한다는 것을 의미합니다. 따라서 문제는 운영 체제가 아닙니다. 문제는 플랫폼 자체였습니다. 물론 x86 플랫폼 자체를 확장함으로써 AMD가 인텔의 계획에 렌치를 던지는 데 도움이되지 않았습니다.
Ramhound

4

빠른 답변 : 성능 저하. 인텔은 원하는 제품으로 진화해야했을 때 혁신적인 제품을 출시하려고했습니다.

보다 구체적으로 : 일반적인 상황에서는 프로세서가 충분히 빠르지 않았습니다. 인텔은 프로세서 속도 대 메모리 속도 차이가 커지면서 프로세서를 출시했습니다. ISC (Reduced Instruction Set) 프로세서 인 Itanium은 사촌 x86 변형보다 명령 당 바이트 수가 더 필요했습니다. 증가 된 메모리로드로 인해 프로세서가 느리게 실행되었습니다.

이 모든 것은 전체 아키텍처가 본질적으로 첫 번째 릴리스이기 때문에 악화되었습니다. RISC 자체는 새로운 아이디어는 아니지만 많은 하드웨어 구성 요소는 새로운 레이아웃 디자인이 필요했습니다. Itanium 명령 레이아웃에는 고품질 소프트웨어를 제공하기 전에 개발 커뮤니티에서 철저히 요약해야하는 새로운 아이디어가 많이있었습니다.

결국 많은 기술이 인텔의 기존 칩 릴리스에서 사용되기 시작했습니다. 최종 사용자에게는 쉽게 보이지 않습니다.


2
Itanium 작업을 수행 할 때 성능이 저하되거나 레거시 X86 코드를 에뮬레이션 할 때 절대적으로 끔찍한 성능을 의미 했습니까?
Hennes

1
양자 모두. X86 에뮬레이터가 Itanium 팀에게는 그리 중요하지 않다는 인상을 받았습니다. 대신 에뮬레이터는 대부분의 고객이 첫인상을 쌓을 수있는 간극이기 때문에 올바른 제품 기능이었습니다.
A. Phillips

1
잘 작성된 Itanium 코드의 Itanium 성능은 환상적이었습니다. 그다지 좋은 코드는 없었습니다.
A. Phillips

5
"잘 작성된 Itanium 코드"란 무엇입니까, Aaron? 모든 것이 적절하지 않은 캐스트와 정렬되지 않은 상태에서 C가 좋으면 Itanium을 위해 특별히 작성된 것이 무엇입니까? 내 C 셸을 사용하면 time바운드 항목 (예 : 팩터링 번호), i / o (파일 복사 또는 캐터링 파일) 및 OS perf (스레드 또는 프로세스 작성)를 쉽게 계산할 수 있습니다 . 알파에서는 와우, 이것은 빠르다. 듀얼 프로세서를주세요. 쉽게 측정 할 수 있습니다. 나는 Itanium이 개를 보았던 어떤 방식 으로든지, 특히 과대 광고에 비해 개라고 말하고 있습니다.
니콜 해밀턴

4
MIPS, Alpha 및 PowerPC 플랫폼도 90 년대 초 NT의 모든 NT와 함께 새로 추가되었으며 다른 칩, 특히 Alpha는 대부분의 x86 시스템에 비해 빠릅니다. 나는 아직도 지하실에 다른 기계들 중 하나를 가지고 있습니다. 아이테니엄은 그렇게 크지 않았습니다. 이것은 인텔의 첫 번째 실수가 아니 었습니다. 다른 그레이 헤어들은 1981 년 432 건의 재난 을 기억할 것 입니다. 또한 성능이 저하 된 잘못 설계된 아키텍처였습니다.
니콜 해밀턴

3

아이테니엄은 장점을 활용할 수 있다면 훌륭한 디자인 입니다.

안타깝게도이 작업을 수행하려면 고급 컴파일러가 필요합니다. 또는 특정 CPU 모델 당 하나도 가능합니다. (예를 들어 추가 기능이있는 Itanium의 최신 버전에는 다른 컴파일러가 필요합니다).

이러한 컴파일러를 한 번 작성하는 것은 어려운 작업입니다. CPU의 모든 변형에 대해 그렇게하는 것이 경제적이지 않습니다.


최신 컴파일러를 위해 컴파일러를 업데이트 할 필요는 없습니다. 새로운 기능을 활용하기 만하면됩니다. 이전 버전과의 호환성을 유지할 것이라고 들었습니다.
콜 존슨

그는 어셈블러 만 좋아합니다.
ott--

어셈블리 코딩이 더 쉬워 질 것이라고 언급하고 있습니다. 컴파일러는 최소한 생각할 수있는 가장 간단한 명령어를 사용할 수 있습니다.
Cole Johnson

작동하는 컴파일러를 만드는 것은 CPU의 넓은 / 병렬 명령어 기능을 효율적으로 사용하는 컴파일러와는 다릅니다. 공예 어셈블러를 손에 넣으면 훌륭한 일을 할 수는 있지만 많은 비용이 듭니다.
Hennes

2
오래된 Slashdot의 스레드에서 : 아이테니엄을위한 컴파일러는 어렵다
리치 Homolka

2

실제로 다루지 않은 Itanium 역사의 또 다른 중요한 부분은 2001 년 Itaniums 데뷔와 함께 대량의 RAM을 상용 하드웨어에 넣을 수 없다는 사실입니다. x86_64는 이제 막 시작되었으며 AMD Opterons는 2 년 동안 출시되지 않았습니다.

Itanium 서버에 대한 나의 첫 번째 (그리고 유일한) 경험은 2002 년 화학 회사에서 결함을 감지하기 위해 오일 분석을 수행하기 위해 SQL Server가 필요한 곳이었습니다. 이 석유는 10 억 달러 규모의 회사에서 수백만 달러 규모의 기계에서 나오거나 들어가기 때문에 각각 128Gb의 RAM을 가진 Itanium 클러스터가있었습니다. 현재 128Gb의 RAM은 여전히 ​​많은 양이지만 서버에 설치하기 쉽고 저렴합니다.

2002 년에는 128Gb의 RAM이 엄청나게 많았으며 기존 SQL Server 인프라를 이미 보유하고 있었기 때문에 다른 플랫폼으로 전환하는 것보다 몇 개의 Itanium 시스템을 포크하여 RAM으로로드하는 것이 더 저렴했습니다. 다른 데이터베이스.

실제로 실제 경쟁 업체가없는 Itanium 시장의 큰 부분 중 하나 인 128Gb (또는 그 이상)를 상품 서버로 가져 오는 것은 사소한 일입니다 (Opteron은 2003 년에 출시되었으며 현재는 수백 기가 바이트의 메모리를 사용하는 것은 어디에서나 볼 수 있습니다)) 구매 비용이 저렴하고 소유 비용이 저렴하며 더 빠른 옵션이 넘쳐납니다.


나는 꽤 확실히 1백28기가바이트 DDR3 램 모듈 요즘를 실행 적어도 하나의 그랜드 (USD) 해요
콜 존슨

2
128Gb DDR 모듈을 본 적이 없지만 ... 128Gb의 등록 ECC RAM을 서버에 넣는 것은 1000 달러 이상이지만 그 이상은 아닙니다. 공급 업체로부터 얻을 수있는 거래에 따라 다릅니다.
Mark Henderson

나는 평범한 128 기가 바이트 모듈을 본 적이 없다 . 그러나이 8x16GB 세트는 등가이며 꽤 싼 내가 다른 곳을 본 적이 $ 10,000 세트와 비교되는 $ 1,500 비용
콜 존슨

나는 많은 Gbs를 본다. GB 여야합니까?
Charlie

1

AMD가 경쟁을 위해 더 많은 리소스를 주류 프로세서에 할당하도록 강요했기 때문이라고 들었습니다. AMD는 2003 년에 Athlon 64를 출시하여 Pentium보다 가격 / 성능이 우수했습니다. 인텔이 Itanium을 계속 개발한다면 현재 x86 프로세서보다 빠를 것이라는 믿음이 있습니다.


1
AMD가 x86을 단순히 확장하지 않은 경우 Itanium의 기능에 "Could have ... Would have ..."라는 문구가 적용됩니다. 인텔이 정말로 원한다면 x86-64를 죽였을 수도 있지만 Microsoft로부터 압력을 받았다고 생각합니다. Intel이 AMD에서 x86-64를 라이센스하지 않으면 현재 상황이 AMD의 주도권과 반대로 바뀌고 인텔은 거의 할 수 없었습니다. AMD의 발전을 따라 잡으십시오.
Ramhound
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.