No New Instruction Sets From Intel

Posted by Gordon on Jun 7th, 2006
2006
Jun 7

I find mildly disturbing this news from Intel that they won’t work on any new instruction sets for their micro processors. The reasons why seem clear. Itanium just did not have any traction in the market place because it had no real mainstream software to run on it. Intel made a misstep by going all or nothing with Itanium where AMD took the more prudent approach of bolting on 64 bit instructions to the x86 instruction set. And Intel was burned badly. However, I find this whole episode disheartening and don’t like to hear that a major R&D based company like Intel is saying no to future developments in micro processor instruction sets. Are we really to believe that we are at the peak of civilization when it comes to micro processors, and that x86 is the pinnacle of human achievement? If so, this is a sad day for humanity and for all the competent and diligent engineers and researchers in Silcon Valley, Silicon Forest, and elsewhere who labor away at developing new and interesting processor designs.

This whole dilemma should mostly be laid at the feet of software developers. Yeah, I know I have heard all the arguments before, massive QA testing efforts, economies or scale, etc. all make building platform agnostic code all but impractical. But is this really the case? In a certain sense, yes. But only because the behemoths and the purveyors of mono culture have won in the market place. This is one of those areas where Microsoft either directly or indirectly, intentionally or unintentionally have contributed to the stagnation of innovation. Other companies have not taken this path, but unfortunately they have not faired as well financially as MSFT. But this does not mean they are total failures either. The company I work for, Sun Microsystems, has made a pretty good business out of Java, a programming language which from the start was designed to be platform agnostic. With Java you can, in theory, write your code and software packages and they will run on any platform so long as there is a Java Virtual Machine (JVM) available for that platform. And building new virtual machines for new and different platforms is a lot more efficient than porting over all your applications to a new platform. As another example take Apple Computer, last year they announced their transition from Power PC (PPC) micro processors to Intel based x86 micro processors. One path Apple could have taken was to say all new software should be ported to intel and left PPC processors cold. But that would have alienated their existing user base and would not have been a smart business decision. Instead Apple did the hard work and developed a methodology and set of developer tools that allow software to be developed as Universal Binaries. For Apple this concept is not new. In a former life these were called Fat Binaries. They first appeared when Apple made a transition from the 68000 Motorola processor to the Power PC processor in the early 90’s. And Steve Jobs’ company NeXT had robust support for fat binaries that allowed software to be run on many platforms including Intel x86. And to further assist the transition Apple announced that they would ship with Rosetta, a software based emulation layer that would allow PPC code to run unchanged on x86 processors, albeit with a performance cost.

For those of you in the know this is all old news. But my point is that these efforts by companies like Apple and Sun should be encouraged. With some long range planning and a little forethought software can be developed to take advantage of advancements in the state of the art of hardware and processor innovation. There are many valid reasons for platform diversity. We take for granted that diversity is good for culture, society, politics, ecosystems, and many other facets of life. Why not for information technology? Different processors are good. They can help our critical information systems guard against malignant viruses and security threats that propagate through vectors bound by homogeneous systems. Different processors can be developed for specialized types of computing that lead to even greater efficiency and productivity. And furthermore innovative developments in processor technology can be achieved by exploring radically new designs which lead to significant advances in the state of the art whether it is greater raw processing power, singificantly lower energy requirements, or productivity enhancing achievements through parallel processing techniques. There is no intrinsic reason software can’t be made to easily take advantage of these new hardware possibilities. And companies like Sun and Apple will be well positioned when the future brings new and interesting platforms to the fore. But apparently Intel is not going to be the company that is willing to innovate in the micro processor field. This is truly a sad day.