Microkernels are better
Posted Feb 26, 2013 9:48 UTC (Tue) by khim
In reply to: Microkernels are better
Parent article: MINIX 3.2.1 released
Firstly, you're going on about deep pipelines. Which causes processor stalls. Which was, I believe, a major reasoning for abandoning the Pentium 4 architecture - it was so prone to massive stalls it wasn't true.
Well, it had 31 stages and was able to execute up to three μops. Which meant you need to always have almost hundred μops in flight. It was unfeasible. Today fastest CPUs have 16 stages and can execute up to four μops. That's two times smaller but still is pretty hard to keep all these pipes filled, yes. What's your point? That you can reduce size of the pipe and this will solve most problems? Yes, but speed will suffer: you'll have larger stages in the pipes and they will be naturally slower.
And secondly, while I can't remember / don't know an awful lot about 50-series architecture, I don't understand why ring-switching should be slow. It's something to do with the memory segmentation, but the point was the segmentation gave you fast AND SAFE switching.
No matter how exactly switching is done it changes context. Either you need more context to keep all rings "in the loop" (which means larger pieces of CPU core which means slower frequency which means slower CPU overall) or you need to load and unload said context (which means ring switch is slow).
The Intel architecture won. Intel architecture cannot do a fast ring-switch.
Yes, but why do you think it's coincidence? It's not. The fact that Intel won the war may be an accident, but the fact that architecture which won can't do fast ring-switch is not a coincidence. The very some tricks which brings you more raw speed for the same price (and that is how Intel architecture won) make it harder to have fast ring switch.
Doesn't mean that other architectures can't, doesn't mean that Intel architecture is the best. It just happened to be the one that gained the market share needed for network effects to knock out the competition.
Yes and no. Intel architecture won because it was faster. And it was faster because it used tricks to make smaller CPU core pieces (that's the only way to keep frequency of CPU high enough) and to have smaller CPU core pieces you need smaller number of stuff in them.
If Pr1me hadn't lost out in the market, and had continued development of their cpus, I'm sure they could have taken advantage of all the same things as Intel, and we would expect fast ring-switching as a matter of course.
Nope. To make fast CPU you need to make it's synchronously-executing pieces small. And that means you need to push "useless fat" out of them. You make fast-path which only executes the most important pieces and slow-path which does everything else. Either you keep the machinery needed for optional rare things like ring switch in the fast path or you keep them on slow path. In the first case you have slow CPU (basically CPU has 2-3-4x slower frequency then streamlined AMD's, IBM's or Intel's CPU) in the second case you have slow ring switch.
P.S. PowerPC 601 had 32 KiB cache back in 1992. Latest and greatest Intel's CPU still have 32 KiB L1 cache. Think about it and about implications for fancy techniques (like GC support or fast ring-switching or… whatever can you stuff in the CPU core to simplify life for OS and pplication writers). Twenty years ago "fancy techniques" meant "bigger price" — and thus people used them where price was not the most important aspect. But fifteen or ten years ago (and most definitely today) trade-offs changes and "fancy techniques" started to mean "slower CPU". And people have chosen "faster CPU" over fancy techniques. The fact that all these interesting architectures have died off at that time and were replaced by dull AMD's, IBM's, Intel's (and for some time SGI's and Sun's) creations is not a coincidence.
to post comments)