Sun and Oracle Community Voices How to Buy Log In United States [Change] English

»  Contrarian Minds Archive
Breathing Room

How Project Portmeirion Removes Complexity

Story by Al Riske. Photography by Howard Friedenberg.

April 28, 2009 - The story of Project Portmeirion begins over a cup of tea.

Mario Wolczko, whose name suggests his heritage (Italian mother, Ukrainian father), was born and raised in England and still buys loose leaf tea by the kilo.

Every day at 3 p.m. he brews a pot for his colleagues in Sun Labs, and on one of those occasions he and Greg Wright, who is also British, hit upon an idea.

"We had worked together for a number of years on a project that was trying to bring hardware support to the world of Java, and even though we'd come up with what we thought were interesting schemes, we were having an unsuccessful time getting the SPARC people to adopt any of it," Wolczko recalls. "The conclusion was their lives are difficult enough already. Then we come along and offer them something that has, potentially, a lot of upside, but also a lot of risk."

Exactly what they didn't need.

So, over a number of tea times, Wolczko and Wright began to talk about how they might address that problem – the increasingly complex task of designing and testing microprocessors.

"Their lives are difficult enough already. Then we come along and offer them something that has, potentially, a lot of upside, but also a lot of risk. "

Mario Wolczko
Distinguished Engineer
Sun Microsystems

 

Creating a competitive microprocessor requires years of work by hundreds of engineers, and it just keeps getting harder.

Mario Wolczko

To illustrate the point, Wolczko plops an early SPARC manual on his desk. It's about 200 pages. The current manual comes in two volumes totally more like 2000 pages.

"You need close to a billion transistors to create a competitive processor today," says the distinguished engineer.

One reason is that each new processor has to be fully compatible with previous versions, so you can't take anything out.

"SPARC has been around for 20 years and has accumulated an awful lot of baggage over that time – things that were once a good idea but now aren't considered to be that valuable, and yet we have to implement all of them in hardware for backward compatibility," Wolczko says.

That's one of the central tenets of SPARC and most other processors, but Project Portmeirion shows there may be a way around that.

In a word, software.

"SPARC has been around for 20 years and has accumulated an awful lot of baggage over that time – things that were once a good idea but now aren't considered to be that valuable, and yet we have to implement all of them in hardware for backward compatibility."

Mario Wolczko
Distinguished Engineer
Sun Microsystems

 

"We said, 'What if we provided a translation system, or an emulation system, that would take the pieces of the hardware that aren't paying their own way and implemented those in software instead?' It won't really matter if they're a little bit slower in software because they're not important anyway."

The concept caught on instantly.

"It was kind of strange in that Greg and I talked this through and figured out, 'Yeah, we might have something here.' So we wrote up a simple proposal as to what this project would be, and there was all sorts of interest," Wolczko says. "We kind of sold the project long before we did anything, which is quite unusual for a labs project."

Their next step was to check with folks in the Microelectronics group.

"They gave us quite a long list, but two or three things really stood out as considerable implementation burdens but perhaps not such a great value to end users these days," he says.

"The top two or three are really significant design efforts – things that either take many, many person years to design and verify, or that take a large area of the chip."

The others on the list represent small improvements – a few percent here and there – but there are dozens of them.

"The idea is to give the hardware people, the people who do the real product, some breathing room. They can choose what they want to do with that breathing room. Do they want to bring the chip to market faster? Do they want to make the chip smaller? Do they want to burn less power?"

Mario Wolczko
Distinguished Engineer
Sun Microsystems

 

Wolczko is quick to note that this approach is not entirely new -- and was not entirely successful when others tried it in the past.

However, things have changed.

"We have a great deal of experience writing virtual machines and advanced translators in the context of Java . The Java HotSpot virtual machine and its predecessors embody a degree of sophistication which hasn't been in commercial binary translators before," he says.

Mario Wolczko

"We think the software can be pushed to a new level no one has got to before. We think we can do that based on the experience we've got with Java."

Wolczko also notes that earlier attempts, notably by Transmeta Corporation, targeted desktop or notebook computers.

"When Transmeta tried this nearly 10 years ago it was a single-core processor, and when the translator kicked in, the user program stopped running and that pause was visible to the user," he says. "So if you were sitting at your laptop playing Doom or some other popular game of the time and that translation spent more than a few milliseconds doing its work, you'd see a glitch in the display. Customers would not tolerate that."

On a server, life is different.

"You can pretty much guarantee there are plenty of processor cores around, so you can dedicate some amount of that to doing the work of the translation," he explains.

"We think the software can be pushed to a new level no one has got to before. We think we can do that based on the experience we've got with Java."

Mario Wolczko
Distinguished Engineer
Sun Microsystems

 

A key element of Project Portmeirion – the ability to optimize code on the fly – goes all the way back to the first project Wolczko worked on when he joined Sun 15 years ago, the Self programming system.

"The core idea of the implementation was that you started running the program with a relatively dumb translator and you observed what the program was doing. As you observed you made optimization decisions based on what you saw. So code that wasn't running, you didn't bother optimizing because, well, it's not running. Why bother?" he says.

That stands in stark contrast to traditional software compilers that examine all the code, pick an optimization strategy, and eventually deliver the final binary.

The nature of the Self language made that all but impossible, so researchers had to find a way around it – and they did.

"Once the program was running you could narrow the huge space of possibilities down to the one or two that were actually happening and optimize for those. Again, who cares about the rest? If they're not happening, no problem," Wolczko explains.

"What you'd have to do is put in the checks to make sure that if your assumptions were wrong, you would back out and do the thing right the second time. But we sort of mastered that the first time around in Self, and then all that technology flowed into HotSpot and Sun has been shipping that technology and refining it now at product level for 10 years, so we feel a mastery of that which very few other companies actually have."

"Once the program was running you could narrow the huge space of possibilities down to the one or two that were actually happening and optimize for those."

Mario Wolczko
Distinguished Engineer
Sun Microsystems

 

Mario Wolczko

Wolczko says that he and his team (which includes Wright, Peter Hsu, Peter Kessler, Kevin Moore, and Chris Vick) are about six months from completing the first software prototype needed to test and refine Project Portmeirion and ultimately prove that it really is a better approach.

"The idea is to give the hardware people, the people who do the real product, some breathing room. They can choose what they want to do with that breathing room. Do they want to bring the chip to market faster? Do they want to make the chip smaller? Do they want to burn less power?" he asks.

"It's up to them what they want to optimize for because the problem is strictly simpler than it used to be. They can put the breathing room we buy them into whatever they want. This is neutral with respect to all those choices. It doesn't preclude any direction. It's a systematic way you can look at the existing architecture and take out the stuff that doesn't pay its own way. That goes into software and what you save you can now use in any way you like."


Mario Wolczko

Title: Research Director and Distinguished Principal Engineer, Sun Labs.

Projects: His group's current and recent projects include Project Portmeirion,Sun Labs Lively Kernel, Project Guest VM, Project Live*, the Maxine VM, Management Science, Sedna, Parfait

What's in a Name: Portmeirion is a coastal village in Wales that was designed by Sir Clough Williams-Ellis between 1925 and 1975, and many of the buildings use false perspective to appear larger than they are. Project Portmeirion takes its name from the town because, Wolczko says, "it's an emulation of a grander architecture."

Quote: "The idea is to give the hardware people, the people who do the real product, some breathing room. They can choose what they want to do with that breathing room. Do they want to bring the chip to market faster? Do they want to make the chip smaller? Do they want to burn less power?"

Education: Doctorate in computer science from the University of Manchester.

Background: Post-doctoral researcher and research fellow at the Department of Computer Science of the University of Manchester, investigating hardware and software implementations of dynamic object-oriented languages. Also developed and taught industrial courses, in Smalltalk, C, UNIX, object-oriented methods, and other topics. Joined Sun in August 1993.

Patents: 31

Hobbies: Astronomy, flying, guitar.

Favorite Food: "Anything Italian."

Pet Peeve: “The tendency in computer science to solve artificial problems of our own creation, things that are artifacts of our own earlier mistakes.”

Favorite Movie: Blade Runner, the director's cut.

First Job: Computer programmer, hired by a teacher at age 16 to assist with summer programming job.

Favorite Destination: Italy. ("I still have a fair number of relatives there, and that makes an enormous difference in the quality of the visit.")

What Brought Him to Sun: "What attracted me was the great work that was being done by the Self team, under Dave Ungar and Randy Smith, and the great people in the team."

What Keeps Him Here: "We're one of a very small number of companies that holds enough of the stack – the hardware and the software – that I feel comfortable working either side of that line and can propose solutions that span that boundary."