Sun's MAJC vs Intel's IA-64
Shauna writes "Ars Technica has an informative article on the differences and similarities between Sun's new MAJC and Intel's IA-64 plans on the design-level. I think it shows in a round-about way that MAJC is going places while Intel sleeps. " The article is definitely designed for the chip fetishists in the audience.
Oh the times, they are a-changin'. I forsee it now: Sun is going to make serious claims on the embedded market. I enjoyed the article.
It has always been the case that Sun made boxes that started just below the iNTEL peak and went up substantially from there. The question Sun needs to answer is "why dose IA32 have more apps running on it than all the other platforms ?". It's about price and openness and when Sun starts letting other people in atr all levels of it's market it can start increase that apps support gap. I.e. License the motherboard and bus architecture, rent out the chip masks, Open the complete API ( SCSL isn't OSS but it dose this ). In short realize that iNTEL's success has more to do with the likes of VIA, AMD and Compaq than it dose with Microsoft. Cause it sure aint about performance. Sun already has some segments of the high performance corporate market sewn up. Just ask Oracle.
--= Isn't it surprising how badly I spell ?
umm yeah great but HP did IA64 and most of it was involveing the compiler
trust me IA64 compiler rocks
regards
john
a poor student @ bournemouth uni in the UK (a deltic so please dont moan about spelling but the content)
It has always been the case that Sun made boxes that started just below the iNTEL peak and went
up substantially from there. The question Sun needs to answer is "why dose IA32 have more apps
running on it than all the other platforms ?".
It's about price and openness and when Sun starts letting other people in atr all levels of it's market it
can start increase that apps support gap. I.e. License the motherboard and bus architecture, rent out
the chip masks, Open the complete API ( SCSL isn't OSS but it dose this ).
In short realize that iNTEL's success has more to do with the likes of VIA, AMD and Compaq than
it dose with Microsoft. Cause it sure aint about performance. Sun already has some segments of
the high performance corporate market sewn up. Just ask Oracle.
--= Isn't it surprising how badly I spell ?
Just pointing out AMD's plans to implement 64-bit extensions to x86 architecture, rather than clone intel's IA64 architecture.
I don't know much anything about processor design, but this article was easy enough for even me to read. It's all very fascinating..
Especially I liked the concept of Space-Time Continu.. err Computing, which allows the processor to spawn a speculative instruction stream in case of the main execution stream is working on a loop, or what not. This speculative instruction stream can run ahead, and after the main execution stream gets its job done, both of them can join (possibly, I'll assume this is not always the case). The speculative execution stream can be given to a whole another processing unit in case of a processor cluster (it seems the idea is that there are several MAJC processors per die, mmm, truly parallel threads).
Clustering MAJC processors in a single die makes some interesting prospects for threads. One MAJC processor has enough registers for holding the contexts of four different threads at once (according to the author). This should make some real difference regarding context switches.
Fascinating stuff.
whatever happened to the MIPS R10000, once the most complex CPU in the world? (offtopic, I know... just curious)
Lisp machines, Intel i384(?) [ OOP ], etc. have failed because their abilities were emulated in faster-evolving general purpose chips. A special purpose chip may only be upgraded every three years or so versus, one or two times a year for Intel, PowerPC, etc. The solution for Sun is stay RISC'ish, but to adjust the instruction mix to be favourable to that used in JAVA code.
Is anyone familiar with What this bad boy's gonna sit on in terms of bus architecture? Right now that's the most significant limiter to the celerity of intel boxen. Having a bigass processor is wonderful, but it can't do much without a way of pumping a large amount of data in and out of it.
-Spazimodo
Fsck the millennium, we want it now.
Fsck the millennium, we want it now.
Millennium Crisis Line: 0890 900 2000 [calls cost 50p/min]
MAJC developers connection
A chat with the lead designer for the MAJC architecture
MAJC 5200 chip press release From MAJC docs page: First MAJC implimentation presentation.
Some comments... Firstly, I don't think it was made clear that the MAJC architecture can execute compiled C/C++ as easily as Java. You'd also probably be using a dynamic compiler like HotSpot rather than a JIT compiler. I think the guy got it wrong about the functional units being data agnostic - the registers definately are though. Still, you can (pretty much) execute 4 of any type of instruction at once - the first block is slightly different compared to 2-4 (which are indentical), though I don't know how. The very interesting STC concept is much easier to do with the Java programming model (because of certain issues with data) compared to C/C++. They don't say how easy it would be to apply STC to C/C++ though - might be impossible in the general case, though possible in some "limited" cases. The MAJC does also have scoreboarding for instructions for dynamic execution times eg loads, though I'm not sure if this applies to things like FP multi/div/sqrt etc. There's a couple of other interesting things the guy missed - the cross-bar data switch and the steaming data ports, for example. Though apart from that, I think it was a pretty decent review.
With regards to the first chip - the MAJC 5200, it's supposed to "tape out" (get first physical implimentation) by the end of the year and sample in Q2 next year. The 5200 has 2 CPU units on chip (with a shared L1 data-cache and a seperate L1 instruction caches), will be made on a .22 micron process, run at 500Mhz and consume 15W.
Here are some "here's how fast it is" stuff from the PR:
btw, Sun have a 2000 processor array for simulating their UltraSparc-III chip and they do do some pretty accurate simulations, including things like booting Solaris. In the MAJC 5200 PDF/PS file, they also quote some (estimated) speed-ups gained from using the STC technique for the SPECjvm98 suite of programs - they get from 40-60% or so, which I think is very impressive. The MAJC 5200 also has a graphics pre-processor (it's going to be used in Sun's new high-end graphics systems) and they quote some triangle processing figures with different levels of lighting detail. I don't really get what they mean, but they quote from 60 million triangles/s to 90M/s or so, which is in about the same region as the PlayStation2, or about 4x faster than the fastest current mainstream PC graphics card. However, that doesn't mean you can use 60m-90m in real world stuff...
In general, the chip is aimed at "low end" (though for Sun, "low end" equates to less than $100,000 generally) embedded solutions.
Doesn't this whole "agnostic" thing mean that the four function units on a MAJC chip have to be HUGE? Wouldn't it have to handle any type of instruction that might come down the pike... er... pipe? I don't see much of an advantage to this. Oh sure, each FU is constantly in use, but large portions of those FUs won't be. It seems to me that this really just moves the wasted space around a bit (although I suppose that compiler design is simplified a bit by this). I'm not saying they're wrong, I'd just like to know what the pros and cons are. Interesting though. --Mark
compress: +51%
jess: +56%
db: +62%
javac: +67%
jack: +64%
mpegaudio: +55%
Personally, I think that's very impressive.
There is one importaint advantage to IA-64 and that is the Linux port to it. Sun made nothing to help a port. Sun do not refuse to reveal the instruction set under NDA, but in the same time they do not reply to requests [by individuals]. I guess we need to wait until NDA is lifted, if it ever will. --P
It's hard to believe threaded programming is used as little as this guy says it is. Every hiring manager who hears the word "thread" turns green and starts vomiting cover letters from people who write threaded programs it's just so trivial. Parallel programming is so simple your development times drop and your productivity shoots up.
The success of an Architecture such as MAJC vs any established arch's is based very much on how well the company works the channels to get people to build with it. Look at AMD "vs" Intel, which is the SAME arch! They've had a lot of trouble until their infrastructure surrounding the chip plus market acceptance has gotten better. Alpha, even though they've had some great implementations of the processors, have really lacked for good pushing in the channels to have manufacturers really make machines with them. There's just very little incentive.
However given that - an on-chip cross bar for a chip with a small number of requestors and LOTS of layers of metal for routing may be a better solution than trying to build something with an on-chip tri-state bus (we silicon guys try to avoid on-chip tri-state things if we possibly can)
There are some big new concepts with MAJC. It needs code optimisation done for each implementation, uses speculative threads (which will be competing with the known and proven magic of Vector processing) and has a lump of registers with local/global separation.
I can't imagine any of these optimisations are going to kick butt in useful applications until more information comes out. Intel withheld information on the Pentium (Appendix H) and this resulted in compilers producing slower code when Pentium optimisations were turned on (for about a year).
Meanwhile, general purpose and graphics processors will continue to evolve with the advantage of mature tools supporting them. Embedded chips can also go to tightly coupled SMP on chip at low cost.
Exciting times.
PS: Context switching on cache misses has been around for at least ten years. When everyone thought that superconductors would take over the world there was discussion on how to deal with the monster memory latency and and one architecture (forgotten the name but it may have come from Japan) proposed running 5 threads concurrently and swapping execution on memory accesses.
Material discourse and Sun Microsystem
Agnes O. L. Ashwander
Department of Computer Science, University of Massachusetts, Amherst
Barbara Q. Y. Geoffrey
Department of Microchips, University of Michigan
1. The cultural paradigm of consensus and Sun Microsystem conceptual theory
In the works of Pynchon, a predominant concept is the distinction between figure and ground. Sontag promotes the use of Sun Microsystem conceptual theory to attack the hegemony of capitalism over sexual identity. The subject is interpolated into a Sartrean absurdity that includes language as a whole.
If one examines Sun Microsystem conceptual theory, one is faced with a choice: either accept subcapitalist nationalism or conclude that narrativity is used to exploit the proletariat. Thus, Debord uses the term 'Sartrean absurdity' to denote the difference between society and class. Baudrillard's analysis of material discourse states that consciousness is used to reinforce the status quo, given that Sun Microsystem conceptual theory is invalid. Lyotard's essay on Sartrean absurdity holds that discourse must come from the masses. But Buxton[1] suggests that we have to choose between material discourse and Sun Microsystem conceptual theory. The main theme of the works of Pynchon is the economy of textual society. It could be said that the destruction/creation distinction depicted in Gravity's Rainbow emerges again in Vineland.
An abundance of narratives concerning Lacanian obscurity may be revealed. Therefore, the subject is interpolated into a Sartrean absurdity that includes art as a paradox. Mensonge uses the term 'the precultural paradigm of narrative' to denote the bridge between reality and class.
However, Adorno promotes the use of Sartrean absurdity to modify sexual identity. In a sense, Habermas's model of material discourse implies that the purpose of the reader is deconstruction. Therefore, the primary theme of Geoffrey's[2] essay on Sun Microsystem conceptual theory is the difference between society and society.
Several constructions concerning the capitalist paradigm of consensus exist. If Sartrean absurdity holds, the works of Tarantino are postmodern.
2. Tarantino and material discourse
In the works of Tarantino, a predominant concept is the concept of postdialectic culture. But if Sartrean absurdity holds, we have to choose between Sun Microsystem conceptual theory and capitalist rationalism. Thus, the subject is interpolated into a Sartrean absurdity that includes truth as a totality.
"Language is intrinsically dead," says Sartre; however, according to Cameron[3] , it is not so much language that is intrinsically dead, but rather the praxis, and therefore the collapse, of language. The premise of neocultural discourse holds that the State is capable of intentionality, given that consciousness is distinct from sexuality. It could be said that Saussure promotes the use of Sun Microsystem conceptual theory to challenge militarist ideology.
Debord uses the term 'material discourse' to denote not dematerialism per se, but subdematerialism.
However, the characteristic theme of von Ludwig's[4] model of Sartrean absurdity is a self-falsifying whole. Marx uses the term 'deconstructivist desituationism' to denote not theory, but posttheory. The example of Sun Microsystem conceptual theory which is a central theme of The Name of the Rose is also evident in Foucault's Pendulum, although in a more semiotic sense. The main theme of du Garbandier's[5] critique of material discourse is the role of the artist as artist. However, many discourses concerning the common ground between class and narrativity may be found.
Prinn[6] states that we have to choose between Sartrean absurdity and neodialectic capitalist theory. In a sense, the subject is contextualised into a Bataillean `powerful communication' that includes art as a totality.
It seems to me that SGI is the drowning company here, not Sun. SGI last month reported losses much worse than expected (37 cents per share, when the street expected only 7 cents per share) and recently Sun announced workstat ion aimed directly at SGI's market (visualization and simulation).
The Ars review incorrectly claims that Vertical Multithreading (switching threads at the hardware level when there's a cache miss) is unique to the MAJC architecture.
In fact, this is the basis of Tera Comupter'sMTA (Multithreaded Architecture) processors that are already being evaluated at the San Diego supercomputer center.
The Space Time computing technique was tried in the Hydra project at Stanford (http://www-hydra.stanford.edu/hydra.shtml) It performs speculative multithreading using 4 regular MIPS (I think) cores.
Threading is fine if/when you need it, but if used inappropriately can slow rather than speed development. If you need true concurrency, then you have no choice, but if you're using it as a way to "get around" blocking I/O, you're better switching to a single threaded event driven approach. Debuggging explicit state representation is easier than debugging multithreaded apps.
IMHO multiprocessing is easier to debug than multithreading since you don't have the potential problems of shared data structures unless you're explicitly using shared memory.
Hmm, wasn't Stanford the university Sun got their base for HotSpot technology as well? Could there be a connection here between MAJC's Space Time computing and the fact they're relying on dynamic (or just-in-time) compilation?
Curious.
all it takes ...
... but it was SLOW so we did THIS ...
sorry I was @ work and I know that alot of people where not familer with HP and IA64 I was trying to point out the fact that HP worked on IA64 more than intel have done most of the research has been done with them
its intresting to notice that alot of DATA centers where they process data run HP PA-RISC and HP-UX
HP-UX is a dog just because you find that nothing you would think would be standard is the manual might as well read
THE STANDARD IS
a good referance is the trimaran project
http://www.trimaran.org/
which has been Ported to LINUX now you too can mess with compilers !
I am under NDA over the compiler but I can tell you that they have been very clever with the registers makeing full use of the hardware and that
A) the compiler sees most of what the programer wants to do so can preform most of the checking
B) the hardware has good V. good prediction built in and the compiler tells it what it thinks is going to happen
the compiler is the most important part of the system this was learnt from OS2 and from GCC how much does the GNU Compiler Collection get used !!
regards
john
(bit upset about the troll)
a poor student @ bournemouth uni in the UK (a deltic so please dont moan about spelling but the content)
Whether it is Java, or building "GCC" into the kernel loader so that you can execute a tarball file (and have it compiled on the fly and cached), we need binary independence.
Now, it's temping to say "just compile the source", but if the source is a 20 megabyte monster like Mozilla that takes a loooong time to compile, you have an end-user problem.
The future is going to be awash in processors of all kinds, and we need a way of porting binaries across CPUs. If we don't, we won't have competition in the CPU market anymore, and one architecture will dominate, just like the Windows API dominates.
Also, once you get to IA-64 like devices, code will have to be recompiled for each new generation of IA-64 depending on how many execution units it has. If one generation can do 4-way execution, and the next can do 8-way, a JIT compiler is needed if the code is to be optimal for each CPU.
One approach would be to simply take the middle-layer output of a compiler like GCC, write it out in a byte code format, and then have operating systems backend-compile peephole-optimize this code when loading it.
Whatever mechanism used, JIT compilation (it's not just Java) has several benefits:
1) binary independence, register independence
2) can perform optimizations that even C/C++ can't. C's linker can't inline polymorphic or indirect function calls. A JIT compiler could actually inline calls from a shared library that isn't known until runtime. If this library is
OpenGL or GTK, rendering may get a huge improvement.
3) can adjust code and data locality depending on the size/capability of the CPU's cache
4) security. Depending on the mechanism used, can be used to "sandbox" code.
Try not to focus too much on the "interpreted" aspect of bytecode. Instead, just think of bytecode as simply a compressed version of source code. For instance, Java's bytecode format is so verbose, you can pretty much decompile it back to the original source without much loss.
Java is just the first step, but in the future, when the world is filled with ubiquitous CPUs everywhere, we're going to need ways to prove assertions about untrusted code, and we're going to need ways to run it wherever you are, so you aren't tied to any one device.
HUH?
Sun already licenses SPARC, motherboards, and just about all their other technology. You can go out and buy third party Sun clones right now and they are significantly cheaper. I bought one myself.
Why isn't there more "software" for Solaris (apart from the 15,000 apps already available?) Because Solaris is a server OS, not a consumer OS, that's why.
That's the whole point; AMD is not cloning IA-64.
MAJC is not a Java chip; it's a generic VLIW with a few tweaks that are useful for Java.
The only time Sun gives a rats butt about Linux is when it makes MS look bad. If Sun were serious at all about Linux we wouldn't be seeing Solaris 8 going head to head with Win2k. Sun also wouldn't have some of the butt-stupid licensing regarding their technology
HP may sell compilers, but they build the HP-UX kernel, libraries and apps with GCC - they're not alone in this, however.
Posted by cookieman.k:
... . I also am working(design phase) at some sort of parser that will implement much of those things described above. I do not mention more because I would have to kill you :)
You are right, we must do some steps to not depend on binaries. Any alternative solution ? Nope, for now... Greets:
As much as others seem to dislike, I think that this will be the future for independent paltform/CPU/Language code porting. I'm not refering only to Java here, but every compiler can be *easily* modified to make such PCODE based output. Even further, the ideea of parsing some text file (C++/Java/HTML/...) and getting a PCODE output(or something like this) can also be generalized. There's some comercialy available product also that parse various syntax languages. I've seen it in DDJ, but i forgot it's name
Posted by Nr9:
...
can't you see?
its so simple