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
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.