?

Log in

No account? Create an account

I wish the Itanic hadn't been such a horrible chip - Journal of Omnifarious

Dec. 5th, 2008

10:55 pm - I wish the Itanic hadn't been such a horrible chip

Previous Entry Share Next Entry

This post has been copied from a post I made on Slashdot also titled "I wish the Itanic hadn't been such a horrible chip".

I wish the Itanic (erm, some people (like Intel) called it the Itanium) hadn't been such a horrible chip because it had a good solution to the problem chip makers are currently trying to solve with multiple cores

The multiple core solution requires programmers to radically alter how they write programs to explicitly allow multiple parts to be executed at the same time.

The Itanic was architected differently. It also had multiple execution units, but they were all available to a single process. The compiler then had the opportunity to decide when it could launch several parallel operations. This allowed concurrent execution on a much finer scale than the multiple core approach, and is much more amenable to automated optimization techniques.

This problem should be solved in a way that encourages automated optimization. Convincing all the software people to change how they do things to make up for the inability of the hardware people to design good hardware isn't the way to solve the problem.

The Itanic got its name for a reason. Despite what I see as the essential correctness of the core (pun intended) assumptions behind its architecture it was a notably poor execution. It was a horrible failure for a number of reasons that I think had more to do with Intel's hubris and temporary failure to realize that good marketing is no subsitute for good engineering in the 2002-2006 timeframe.

I think that another reason for its failure is that radical new chip architectures basically require Open Source software to succeed because otherwise you have to get too many proprietary software vendors on board to porting their software. For example, the port to the x86_64 architecture was essentially complete about 2.5 years ago for Linux and still isn't really done for Windows. Unfortunately, the Itanic came out about 2 years before Open Source likely reached the saturation level necessary to help it along. I also think that Intel did not realize how important it was to encourage important Open Source projects to port to their architecture.

I would like to see the next generation of chips use a hybrid approach. Multiple functional units per core than can be used simultaneously in an explicit way by the instructions that core runs, and multiple cores per chip.

Current Location: 8570 Greenwood Ave N, 98103
Current Mood: [mood icon] contemplative

Comments:

[User Picture]
From:zanfur
Date:December 6th, 2008 01:21 pm (UTC)
(Link)
The compiler then had the opportunity to decide when it could launch several parallel operations. This allowed concurrent execution on a much finer scale than the multiple core approach, and is much more amenable to automated optimization techniques.

How is that advantage more than just a compiler optimization? What prevents good compiler writers from adding the same optimizations into their compilers? (The java JVM already does, in a lot of cases.)
(Reply) (Thread)
[User Picture]
From:omnifarious
Date:December 6th, 2008 05:58 pm (UTC)
(Link)

I suppose a compiler could insert code to launch a few threads to parallelize a loop and then join them at the end. That seems a lot more complex than merely putting in a few instruction molecules that make use of several ALU components at the same time. The latter seems a lot closer to the kinds of instruction scheduling a compiler already does for pipelined architectures.

(Reply) (Parent) (Thread)
[User Picture]
From:eqe
Date:December 6th, 2008 06:11 pm (UTC)
(Link)
Um, you're also missing the part where Open Source people (like Andi) were happy to work on x64 because it was an action against the Intel monopoly, while Itanium was an attempt by Intel to cement their monopoly. I can't find a citation, but I have heard that the IA64 patents are not held by Intel, but instead by a Intel-HP joint venture which licenses them to Intel. That means that they're not covered by the x86 cross-licensing agreements with AMD and the other x86 vendors, thus preventing anyone other than Intel from developing Itanium processors.
(Reply) (Thread)
[User Picture]
From:omnifarious
Date:December 6th, 2008 06:15 pm (UTC)
(Link)

Oh, interesting. :-) There seems to be a lot of interesting reasons the Itanium was a failure.

(Reply) (Parent) (Thread)
[User Picture]
From:hozed
Date:December 7th, 2008 09:25 pm (UTC)
(Link)
Open source + non-intel itanium compatible chips would probably have made the whole thing a raging success.

But no. Intel thought they could bring a whole new architecture to market, and keep everything overpriced.
(Reply) (Parent) (Thread)
[User Picture]
From:iceprincess1010
Date:December 7th, 2008 03:40 pm (UTC)
(Link)
Are you going to send me the info?
(Reply) (Thread)
[User Picture]
From:omnifarious
Date:December 8th, 2008 02:06 pm (UTC)
(Link)

I need to set up a few scripts to collect the data. I'd like to give you a week's worth of it. I will start those scripts sometime today.


(Reply) (Parent) (Thread)