Skip to main content

Interview: Itanium evangelist

David Mosberger ponders the future of Linux on IA-64

Robert McMillan (bob@linux-mag.com), Editor at large, Linux Magazine
Robert McMillan is a freelance journalist and editor at large at Linux Magazine. You can contact Robert at bob@linux-mag.com.

Summary:  Forget the detractors, David Mosberger -- developer of the initial GCC port to IA-64 and lead kernel architect for Linux on IA-64 -- thinks you should care about Intel's new 64-bit chip.

Date:  01 Sep 2002
Level:  Introductory
Activity:  961 views

David Mosberger has been a 64-bit Linux guy since day one. While pursuing a graduate degree at the University of Arizona in the early '90s, Mosberger led the Linux port to the Alpha processor and soon found that his Linux hobby was taking up as much time as his graduate work. He joined an Internet research group within Hewlett Packard in 1997, and a few years later the Swiss-born Mosberger jumped at the chance to contribute to the Itanium port (see Resources for a links to Mosberger's personal page and the IA-64 Linux project), where he is now lead kernel architect. Since 1988, he has written the first IA-64 back end for the GNU Compiler Collection (GCC), wrote much of the IA-64 toolchain support, and implemented much of the IA-64-specific parts of the Linux kernel.

developerWorks: Linus Torvalds has said some less-than-flattering things about Itanium. When you hear him say "we're all secretly plugging for Yamhill [Intel's rumored x86-based alternative to Itanium] project," what does that make you think? Does this mean that Itanium is going to suffer on Linux simply because Linus doesn't like it?

Mosberger: It's a funny situation. Linus is a technical person, and he doesn't care about what's written in the press. And that one particular e-mail, I thought, was totally out of context. On the other hand, I think it's clear that he likes 64-bit extensions to x86, and frankly he has been involved in x86 for more than ten years. What else would you expect? Of course it's dear to his heart.

dW: But if Linus is expressly not that interested in Itanium, isn't there some way this could affect your job? Couldn't his bias toward x86 lead him to make some change that would be bad for Itanium, but good for x86?

Mosberger: In a way, you're right. This could happen. But I don't think Linus really cares that much about what architecture is going to win. What Linus focuses on is the architecture that has 99 percent of the marketshare. If you go through his e-mails and look at how he makes decisions, if you do something that would upset 99 percent of the market, it's a bad idea. He's not going to do it. Whether that 99 percent is x86, Itanium, or anything else, I think he doesn't really care. He cares about what he can get cheaply to run on his desk, and what gives him awesome performance. Whatever gets him there is what he's going to use.

Some people from SuSE tried to do some things for x86-64, saying, "it is really important that we do this right," and people were pushing back saying, "No. The focus is on x86." So it is, in that sense, pretty democratic.

Certainly in the past three years, we haven't had any issues with us not getting things that we would have liked. I maintain a separate patch that goes on top of Linus's patch, and if there was something really detrimental to IA-64, we could just correct that and, so to speak, fork. Now, I don't think this will ever happen. I'm not worried about it, but that's the nice thing about open source: If there really is an issue and there really are two different ways to go about the same problem, maybe there should be two projects.

The question is, "Are we going to deliver machines and CPUs that provide performance at the right price point?". A lot of people are very negative right now. It's kind of funny how things swing around. I mean, I've been keeping an eye on this for the last three years, and at the beginning IA-64 was way overhyped. I didn't feel comfortable about that either. And now it has completely swung back. Now, it's like anything associated with IA-64 is obviously bad and stupid. The truth is actually somewhere in-between.

I'm actually really excited. Merced was, by and large, a development platform and not much else. There were a lot of issues with it, not the least of which was its being so late. But I think we are now starting to see some very interesting things coming out with McKinley-based machines -- with Itanium 2 -- and it's pretty safe to assume that this is not going to be the only play that is going to happen in the IA-64 space over the next couple of years.

Itanium 2 is actually a very formidable CPU, and I don't think people quite appreciate it -- partly because there aren't enough machines around yet. But I think as people start to realize just how powerful a CPU it is, you will see attitudes change a bit.

Merced was an almost baroque CPU design. It was big, heavy, and slow. McKinley is an entirely different kind of breed. It still takes a fair amount of power, but that's largely because it wasn't a design goal to keep that to a minimum. But it is a very lean and mean CPU, in my opinion.

dW: How much more lean is it?

Mosberger: You can look at it this way. It is two to three times faster than Merced. In terms of chip size, it's actually smaller than Merced, and yet it's in the same process. It's still .18 [micron], so it's not even in the latest process yet that's being used for P4 and Athlon. And yet, on a lot of the benchmarks, it's giving everybody else a run for their money.

dW: So why is it so much faster than Merced?

Mosberger: I think there were a lot of mistakes being made with Merced, and I can't really talk about exactly what went wrong. It's partly that Merced was done poorly, in a way, and it was the first one, so everybody was learning what was really important. In the second iteration, they didn't make those mistakes and probably they put in some things they hadn't thought about before.

dW: So let me ask you another question. I think most people were not expecting the first Merced chip to be weak. How much improvement is left in the architecture right now? Are we 50 percent toward what it will be able to do?

Mosberger: You're not going to get me to pin a number. The question is, "What alternatives do you have?". And I think IA-64 has a lot more leeway. Right now we are competitive with today's compiler technology and hardware, but this does not mean that we cannot do a lot better on the compiler side, for example. Clearly on the compiler side on IA-64 we have a lot more headroom than with any other architecture.

dW: Why is that?

Mosberger: Because with IA-64, the whole premise is to basically simplify the chip as much as possible in terms of the issue logic and the instruction execution, and to put more emphasis on the compiler. In the past, a lot of things on the compiler could be hidden because of the out-of-order execution in the other CPUs, so that there's basically a lot of catch-up that certain compilers have to play. On the GCC side, we haven't even begun to scratch the surface yet.

But it's not limited to that. On the chip side there are some very nice ideas being kicked around that we'll see realized on future chips. Because of that, I'm optimistic.

dW: Do you think that the proprietary compilers will always have an advantage on this platform, or do you think that GCC will ever catch up?

Mosberger: I don't know whether it's going to be GCC, but I certainly hope and expect that there will be a competitive free compiler. It's hard to imagine that the free compiler would leapfrog the proprietary compilers by a big margin, but I think it probably could get within a few percent, if somebody really wanted to do that. I don't know if you've heard of the ORC [Open Research Compiler]; it's basically what used to be the SGI compiler for MIPS and Itanium. They open-sourced it, and it definitely has an Itanium back end. I don't know if it has a MIPS back end. And now Intel has a joint project with a Chinese university to really make that a state-of-the-art compiler. Right now, I think it's probably the worst compiler of all, because it doesn't work very reliably. But the good thing there is that the infrastructure is right, which is an advantage compared to GCC, whose infrastructure is still oriented toward very old CISC designs. So I think there will be some competition there.

dW: Why, specifically, has GCC performance suffered on Itanium?

Mosberger: One thing that GCC doesn't do, which would buy a lot, is multiple schedule group, which is a very nice feature of IA-64. Now, that could be added, but frankly the story is a bit more complicated than that. It's not just that you add one piece and then you're done. It's really that the whole GCC infrastructure isn't very well designed for modern architectures where you want to uncover parallelism early, and you want to do that independently of whether you're compiling for IA-64 or other architectures, RISC or CISC.

The difference, I guess, is a difference of quantity. On IA-64, it's clearly more important, but if somebody were to revise the GCC infrastructure, it would actually help everybody. So it would be the right thing to do, no matter what, but it's also not a small task. That's why I think having this other ORC compiler project out there is nice. Sometimes a little competition is a really good thing.

dW: Is ORC released under the GPL?

Mosberger: Yes.

dW: So GCC could theoretically adopt that architecture?

Mosberger: Yes, certainly. The nice thing is that the front end is actually GCC. They took a snapshot at some point, so I guess it isn't completely caught up with the latest version, but at least in principle, it's actually GCC compatible, so it should be just a plug-in replacement.

dW: Do you think they will do that?

Mosberger: I think that is what the ORC people are aiming for. Whether they'll be successful, we'll see. I'm sure the GCC people will do whatever it takes to make sure that doesn't happen.

dW: Linus's main criticism of Itanium seems to be that it is being designed as a server chip rather than a desktop chip.

Mosberger: Itanium 2 looks very different from Itanium. In fact, if you open up a [Itanium 2] machine, you will have a hard time telling whether it's a P4 or an Itanium 2.

dW: But the desktop doesn't seem to be the focus of Itanium right now.

Mosberger: No, clearly right now it's high-end workstations and servers. Linus knows what Merced machines look like; I don't think he has seen the McKinley ones. I think he would be surprised if he saw them. Like I said, this is only the second iteration.

dW: But how far do you think these Itanium systems are from being desktops?

Mosberger: Intel has publicly disclosed that next year there will be Madison and Deerfield. Madison is the server, high-end, huge-amounts-of-cache CPU, and Deerfield is the value segment. So if you look at the performance trajectory, you go high end, and now it's starting to branch off into lower end. So we have workstations now, but with Deerfield, you would expect that the prices would go down. The performance will, of course, go up, but there will be more of a dual approach: More server- and more workstation-oriented CPUs.

dW: What do you see as the benefits for desktop users? Is there something about the IA-64 architectures that developers, for example, are particularly going to appreciate?

Mosberger: Well, I think it comes down to performance. But one nice thing is that you can get rid of all this legacy. If you look at Pentium 4, it has a lot of nice features, but if you develop for x86, you can't assume that everybody has a P4. Some people have an Athlon, some people still have Pentiums, others have Pentium 2 versus Pentium 3, and guess what, they all have different instructions. Most of them are the same, but if you want to build high-performance applications, you are going to have to ship different binaries. It's a huge headache in that sense.

With Itanium, it's a clean sheet. You start with a common denominator, which is basically where the P4 tries to be today, and you don't need to worry about fundamental features like prefetch instructions not being there. In that sense, I think life is a lot easier.

dW: But the trade-off is that you break backward compatibility to get there.

Mosberger: From a technical point of view, it's clearly what you want to do, and it's not quite correct to say it's breaking backward compatibility. Itanium is as backward compatible as anything else out there. The performance of x86 code isn't all that great, but quite frankly I use it every day to do Acrobat, Open Office, RealPlayer, those kinds of things. I think that point is overstated, especially for Linux, because all of the important open source software has been ported to 64-bit and recompiled native for IA-64, so the only things you need to run in emulation mode are those proprietary apps that, for whatever reasons, you can't get natively. And for those, it's just fine. Last week, I ran TaxCut under WINE on an IA-64 Linux machine and it worked fine -- even performance-wise.

dW: We've talked a lot about criticisms of IA-64; what do you think will be the true test of AMD's x86-64 architecture?

Mosberger: I guess it's market acceptance, in a way. I mean, if it takes over the world, it will be successful.

dW: But what about from a technical perspective? I don't know how much you know about its design...

Mosberger: I just don't find anything interesting in that architecture. I guess the most notable thing is putting the memory controller on the CPU chip, which has already been done by the Alpha people, and has already been shown to have upsides and downsides. And the 64-bit extension... it's more of the same. It's the obvious thing to do. AMD would have been stupid not to try it, and I wish them luck.


Resources

About the author

Robert McMillan is a freelance journalist and editor at large at Linux Magazine. You can contact Robert at bob@linux-mag.com.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Linux
ArticleID=11249
ArticleTitle=Interview: Itanium evangelist
publish-date=09012002
author1-email=bob@linux-mag.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers