The Linux-Proof Processor That Nobody Wants
Bruce Perens writes "Clover Trail, Intel's newly announced 'Linux proof' processor, is already a dead end for technical and business reasons. Clover Trail is said to include power-management that will make the Atom run longer under Windows. It had better, since Atom currently provides about 1/4 of the power efficiency of the ARM processors that run iOS and Android devices. The details of Clover Trail's power management won't be disclosed to Linux developers. Power management isn't magic, though — there is no great secret about shutting down hardware that isn't being used. Other CPU manufacturers, and Intel itself, will provide similar power management to Linux on later chips. Why has Atom lagged so far behind ARM? Simply because ARM requires fewer transistors to do the same job. Atom and most of Intel's line are based on the ia32 architecture. ia32 dates back to the 1970s and is the last bastion of CISC, Complex Instruction Set Computing. ARM and all later architectures are based on RISC, Reduced Instruction Set Computing, which provides very simple instructions that run fast. RISC chips allow the language compilers to perform complex tasks by combining instructions, rather than by selecting a single complex instruction that's 'perfect' for the task. As it happens, compilers are more likely to get optimal performance with a number of RISC instructions than with a few big instructions that are over-generalized or don't do exactly what the compiler requires. RISC instructions are much more likely to run in a single processor cycle than complex ones. So, ARM ends up being several times more efficient than Intel."
Nice advertisement for RISC architecture.
Sure it has advantages, but obviously it's not all that great. After all Apple ditched the RISC-type PowerPC for CISC-type Intel chips a while back, and they don't seem to be in any hurry to move back. It seems no-one can beat the price/performance of the CISC-based x86 chips...
I'm happy for you that you can develop more efficiently with Visual Studio, but I'm piffed that MyCleanPC still isn't available for Linux. I mean, I'm looking at my friend on his Windows box, and ever since he installed MyCleanPC, his gigabits are running faster than ever!
Plus, MyCleanPC completely eradicated any viruses on his computer, sped up his internet connection and gave him some peace of mind! We desperately need a Linux port of such outstanding software as MyCleanPC!
The x86 instruction set is pretty awful and Atom is a pretty lousy processor. But that's probably not due to RISC vs. CISC. IA32 today is little more than an encoding for a sequence of RISC instructions, and the decoder takes up very little silicon. If there really were large intrinsic performance differences, companies like Apple wouldn't have switched to x86 and RISC would have won in the desktop and workstation markets, both of which are performance sensitive.
I'd like to see a well-founded analysis of the differences of Atom and ARM, but superficial statements like "RISC is bad" don't cut it.
Hell, I remember using an Archimedes in 1988. Odd to think that my phone now has four of them.
Back to the topic, the border between RISC and CISC is a bit fuzzy these days. Every modern CISC chip is basically a dynamic translator on top of a RISC core. But even high-end ARM chips can do some of this with Jazelle.
To be fair, CISC does have a few performance advantages when power consumption isn't (as big) an issue. The code density is better on x86 (yes, even with Thumb), which does mean they tend to use instruction cache more effecitvely. ARM chips generally don't do out-of-order scheduling and retirement; that uses a lot of power, and is the main architectural difference between laptop-grade and desktop/server-grade x86en).
I'd like to see what a mobile-grade Alpha processor looks like. But I never will.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
I wish I could agree with you, but from what I can tell, Gaben has stalled developing the Linux port in favor of making hardware.
The details of Clover Trail's power management won't be disclosed to Linux developers.
So sign up as a Windows developer, get the info, and use it to improve Linux.
Some here were immediately crying anti-trust and not understanding why Intel won't support Linux for Clover Tail. It's not an easy answer but power efficiency for Intel has been their weakness against ARM. If consumers had a choice between ARM based Android or Intel based Android, the Intel one might be slightly more powerful in computing but comes at the cost of battery life. For how tablets are used for most consumers, the increase in computing isn't worth the decrease in battery life. For geeks, it's worth it but general consumers don't see the value. Now if the tablet used a desktop OS like Windows or Linux, then the advantages are more transparent; however, the numbers favor Windows are there are more likely to be desktop Windows users with an Intel tablet than desktop Linux users with an Intel tablet. For short term strategy, it makes sense.
Long term, I would say Intel isn't paying attention. Considering how MS have treated past partners, Intel is being short-sighted if they want to bet their mobile computing hopes on MS. Also have they seen Windows 8? Intel based tablets might appeal to businesses but Win 8 is a consumer OS. So consumers aren't going to buy it; businesses aren't going to buy it. Intel may have bet on the wrong horse.
Well, there's spam egg sausage and spam, that's not got much spam in it.
The world's most popular applications run in browsers, not desktops.
So if I want to include microphone, camera, or gamepad support in something that I intend to become one of "[t]he world's most popular applications", what API should I use? Among desktop browsers, neither IE nor Firefox nor Safari supports HTML Media Capture, and nothing mobile supports it at all.
"ARM ends up being several times more efficient than Intel"
Wow. Someone suffered a flashback to the ancient CISC vs RISC wars.
This is really totally out to lunch. Seek out some analysis from actual CPU designers on the topic. What I read generally pegs the x86 CISC overhead at maybe 10%, not several times.
While I do feel it is annoying that Intel is pushing an Anti-Linux platform, it doesn't make sense to trot out ancient CISC/RISC myths to attack it.
Intel Chips have lagged because they were targeting much different performance envelopes. But now the performance envelopes are converging and so are the power envelopes.
Medfield has already been demonstrated at competetive power envelope in smartphones.
http://www.anandtech.com/show/5770/lava-xolo-x900-review-the-first-intel-medfield-phone/6
Again we see reasonable numbers for the X900 but nothing stellar. The good news is that the whole x86 can't be power efficient argument appears to be completely debunked with the release of a single device.
Is it really true that x86 is necessarily (substantially) less efficient than ARM? x86 instruction decoding has been a tiny part of the chip area for many years now. While it's probably relatively more on smaller processors like Atom, it's still small. The rest of the architecture is already RISC. Atom might still be a bad architecture, but I don't think it's fair to say x86 always causes that.
Also, there is exactly one x86 Android phone that I know of, and while its power efficiency isn't stellar, the difference is nowhere near 4x. From the benchmarks I've seen, it seems to be right in the middle of the pack. I'd really like to see the source for that claim.
Proud member of the Ferengi Socialist Party.
just send me the hardware.
Intel have always designed their processors for performance first where as with ARM it was for power consumption, hell only recently did ARM get a hardware integer divide instruction. x86 instruction decode is not so complicated that it requires four times the amount of power, if it did Intel would never be able to produce high performance chips.
The CISC/RISC debate is pretty much a red-herring but it keeps on coming up over and over again, because as you increase performance the instruction decode becomes a smaller part of the processor, this is why on the A9 you have a fifth extra core for stand-by which has been engineered for low power.
It is n't the 80s and 90s any more.
Every modern CISC chip is basically a dynamic translator on top of a RISC core.
And that's the problem for power consumption. You can cut power to execution units that are not being used. You can't ever turn off the decoder ever (except in Xeons, where you do in loops, but you leave on the micro-op decoder, which uses as much power as an ARM decoder) because every instruction needs decoding.
But even high-end ARM chips can do some of this with Jazelle.
Jazelle has been gone for years. None of the Cortex series include it. It gave worse performance to a modern JIT, but in a lower memory footprint. It's only useful when you want to run Java apps in 4MB of RAM.
The code density is better on x86 (yes, even with Thumb), which does mean they tend to use instruction cache more effecitvely
That's not what my tests show, in either compiled core or hand-written assembly.
I am TheRaven on Soylent News
Nice marketing talk. So was the VAX (most of them anyway - I think the VAX9000 was a notable exception) I mean it had this hardware instruction decoder, and it did simple instructions in hardware, and then it slopped all the complex stuff over onto microcode. In fact most CISC CPUs work that way - in the past all of the "cheap" ones did, and now pretty much all of them do. So if you call any CPU that executes "only simple components directly and translates the rest" it is hard to find any non-RISC CPU. Of corse internally they aren't so much "RISCy" as "VLIWy"...
The x86 is still the poster boy for CISC. (and hey, CISC isn't all bad pick up a copy of Hennasy and Patterson and read up on the relevant topics)
.. and the reason is not efficiency or performance.. Intel enjoys huge (50%+) margins on x86 CPUs that simply will not be tolerated by the tablet or mobile device vendors. Contrast this with the pennies that ARM and their fab partners make for each unit sold. Even Intel's excellent process tech can't save them cost wise when you can get a complete ARM SoC with integrated GPU for $7.
For all intensive porpoises your a bunch of rediculous loosers
Is this like the year that we got Unreal Tournament and Doom on Linux, and we were supposed to take 50% market share from Windows??? Yeah, that worked out well. Although, UT2003 was a lot of fun...
Visual Studio
Please, please, please, stay on Windows, we don't need your Microsoft-infected minds spreading their diseases to other systems.
Contrary to the popular belief, there indeed is no God.
Yes. I consider all these words including RISC, CISC, VLIW, etc to be completely useless for today's processors.
They are only useful for a historical understanding for why things are done a certain way, and how the techniques were developed.
Any kind of serious commercial processor will combine elements from these different architectures.
BTW your argument that somehow intel processors are CISC because other processors use microcode as well doesn't make sense.
It just means that they are both not CISC.
Except MS office, which most of the corporate/academic world still uses for everything. Yes, Libre Office can do everything as well or in many cases better, but that doesn't matter when someone sends you a pptx file that Impress mangles into an unreadable smear.
So this OS specific chip is nothing new, and *nix exclusion is not new. Many microcomputers could not run *nix because they did not have a PMMU. The ATT computer ran a 68K processor with a custom PMMU. Over the past 10 years there have been MS Windows only printers and cameras which offloaded work to the computer to make the peripheral cheaper.
Which is to say that there are clearly benefits for RISC and CISC. MS built and empire on CISC, and clearly intends to continue to do so, only moving to RISC on a limited basis for high end highly efficient devices. For the tablet for the rest of us, if they can ship MS Windows 8 on a $400 device that runs just like a laptop, they will do so., If efficiency were the only issue, then we would be running Apple type hardware, which, I guess, on the tablet we are. But while 50 million tablets are sold, MS wants the other 100 million laptop users that do not have a tablet, yet, because it is not MS Windows.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
Can you please refrain from insulting our intelligence with your baby-talk summary of RISC vs CISC? Furthermore, it has jack shot to do with why Clover Trail is Win8-only.
In other words, Intel says they failed at hiding their power consumption details from the API (instruction set).
If Pandora's box is destined to be opened, *I* want to be the one to open it.
Come on, look at the shift your average user has taken. Grandmothers aren't using eMachines, they prefer iPads. My laptop is heavy so I stick to my Atrix as often as possible when out and about.
It'd be stupid for Intel to ignore this market, especially with Win 8 RT not supporting the "full desktop" experience we love and know.
The only advantages x86 has over ARM are performance and the ability to run closed source x86-only binaries...
Performance is generally less important than power consumption in an embedded device, and this CPU is clearly designed for lower power use so it may not be much faster than comparable ARM designs...
And when it comes to x86-only binaries, there is very little linux software which is x86 only and even less for android... Conversely there are a lot of closed source android applications which are arm-only... So at best you have a linux device which offers no advantages over ARM, at worst you have an android device which cannot run large numbers of android apps while costing more, being slower and having inferior battery life.
Windows on the other hand does have huge numbers of apps which are tied to x86, which for some users may outweigh any other downsides. On the other hand, most windows apps are not designed for a touchscreen interface and might not be very usable on tablets, and any new apps designed for such devices might well be ported to arm too.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Seems you have not actually been keeping up with the arm architecture. They have had out-of-order-execution since the debut of the cortex a9.
If nobody wants it and it's a dead-end for technical and business reasons, then how come that there is a slew of x86 Win8 devices announced by different manufacturers - including guys such as Samsung, who don't have any problems earning boatloads of money on Android today?
Heck, it's even funnier than that - what about Android devices already running Medfield?
Like I posted elsewhere, intel hasn't made real CISC processors for years, and I don't think anyone has. Modern Intel processors are just RISC with a decoder to the old CISC instruction set.
Exactly. Intel has been doing this ever since the Pentium Pro and Pentium II came out in the 1990s. Anyone who knows much at all about x86 CPUs is aware of this, and Perens certainly will be. That's why I'm surprised that that article misleadingly states:-
So, we start with the fact that Atom isn't really the right architecture for portable devices (*) with limited power budgets. Intel has tried to address this by building a hidden core within the chip that actually runs RISC instructions, while providing the CISC instruction set that ia32 programs like Microsoft Windows expect.
The "hidden core" bit is, of course, correct, but the way it's stated here implies that this is (a) something new and (b) something that Intel have done to mitigate performance issues on such devices, when in fact it's the way that all Intel's "x86" processors have been designed for the past 15 years!
Perhaps I'm misinterpreting or misunderstanding the article, and he's saying that- unlike previous CPUs- the new Atom chips have their "internal" RISC instruction set directly accessible to the outside world. But I don't think that's what was meant.
(*) This is in the context of having explained why IA32 is a legacy architecture not suited to portable devices and presented Atom as an example of this.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
This is better:
http://fix-kit.com/Explosive-diarrhea/repair/
http://fix-kit.com/Assassination-of-reigning-monarch/repair/
Finally, downloadable software for Windows that'll cure just about anything!
I imagine /. readers are savvy enough to realise that the site is a scam, and that downloading their software is akin to having unprotected sex with third-world prostitutes.
-- Using the preview button since 2005
So does it matter when someone sends you a .pptx file that Office 2003 freezes on? Yeah, yeah, I'm pretty sure you can get a converter, but I like telling people that if their file has an 'x' in the extension it means that it's 'experimental' and they shouldn't send it to others. They need to send the version without the 'x'.
Faster! Faster! Faster would be better!
What? Valve has multiple teams on different projects. I can't believe you would even post this--hardware people aren't necessarily software people. And if they're doing hardware, how's it gonna run? Oh right, you need software as well. Durr.
I predict clover trail will be a roaring success.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
> It had better, since Atom currently provides about 1/4 of the power efficiency of the
> ARM processors that run IOS and Android devices.
Don't bet on it. The ARM design in itself is more efficient for sure, but Intel are frankly well ahead of anyone else in actual manufacture.
If they decide to build these with their Finfets and the latest node they have, then the gap between Intel Atoms and ARMs made at Samsung, TSMC or anyone else won't be so noticeable, unless that is that the Atoms actually pull ahead.
It will mean Intel using their latest high cost Fabs for Atoms though, rather than server or high end desktop chips.
No, but the way ia32 is binary compatible with the 16 bit x86 code from the 1970s makes it relevant. You still have to handle AL and AH as aliases to AX. Ask Transmeta how much of a pain that was (hint: that is a big part of why their x86 CPU ran windows like a dog...the other part being they benchmarked Windows apps too late in the game to hit the market with something that efficiently handled the register aliases). If x86 mode was a fully distinct mode that ditched anything from the past that Intel decided made stuff slow then yes, we would be talking about ia32 as a 1980s architecture.
I had the same issue with office 2010 when people were sending us excel, word, ppt files in office 2003 format. Yup, some text were tabbed to the right, bullets were different sizes, lines appearing as thick double in excel, draw lines in word half in middle page while the end of the line showing up in the next page line. Word had the most issues compared to excel and powerpoint. I imported these 2003 format into libreoffice and it was not that bad compared to the office 2010, just 2 lines of text tabbed over.
"The details of Clover Trail's power management won't be disclosed to Linux developers." ...Perhaps this is because Microsoft is helping to fund development of the Intel solution behind the scenes? Perhaps they have worked out an agreement of some sort to prevent Linux from finding its way onto the chip.
I would like to know why any information would be withheld from Linux developers--the only reason I could imagine for doing so would be to help Microsoft stage a lead on use of the chip. I can think of no good reason Intel would not reveal how the chip works to Linux developers. Providing the information openly would serve only to increase interest and possible additional revenue for Intel that an Android or other Linux based solution could provide to them. Looks like the same old gaming of the the system here--good old buddies.
That situation existed in the early 1990s/late 1980s when the terms CISC and RISC were invented. The x86 existed and was CISCy on the outside and microcoded inside. The VAX was the same. The arguments were never "you can't implement CISC internally the same as a RISC" because they were all already done that way. It was "if you avoid X, Y and Z in your programmer visible instruction set you don't need all that cruft in the chip". What makes something RISC or CISC was originally all about the instruction set, and I see nothing that has changed in the last 20 years that makes it useful to change the definitions.
Collapsing two useful words into one useless meaning doesn't add value to the language, it destroys it (well, not the whole language, just those two words). So why do it? If the new meanings actually had some value, sure I can see adopting new usage, but why switch to something worse?
ia32 dates back to the 1970's and is the last bastion of CISC, Complex Instruction Set Computing. ARM and all later architectures are based on RISC, Reduced Instruction Set Computing, which provides very simple instructions that run fast. RISC chips allow the language compilers to perform complex tasks by combining instructions, rather than by selecting a single complex instruction that's "perfect" for the task. As it happens, compilers are more likely to get optimal performance with a number of RISC instructions than with a few big instructions that are over-generalized or don't do exactly what the compiler requires
Sounds just like Windows (cisc) versus the Unix Philosophy of a bunch of small tools which each do one thing well and can easily be linked together to form a more complex task (risc).
Getting back on topic: the last ARM architecture, ARMv8, is far from what was called "RISC" back in the '70s. E.g. it can run instructions of different sizes (16 vs 32 bit), it has 4 specialized instructions for AES, registers with different sizes (32, 64 and 128 bits), instructions for running a subset of the Java bytecode, a rich set of SIMD operations and specialized instructions for SHA-1 and SHA-256.
Similarily the architecture supported by the new Atom chips (which is AMD64/x86-64 BTW, IA32 is only present for backward compatibility) is almost universally run on RISC-like processors that have instruction translators. Considering that the increased density of the x86-64 instructions usually allows to save more cache transistors than the ones required for decoding the instructions themselves, I think that the power consumption differences that we see are more due to the implementation and different traditional focus areas of ARM vs Intel/AMD than inherent differences in the instruction sets.
There's a hidden treasure in Python 3.x: __prepare__()
Jazelle has been gone for years. None of the Cortex series include it. It gave worse performance to a modern JIT, but in a lower memory footprint. It's only useful when you want to run Java apps in 4MB of RAM.
Are you sure? ARM advertises it as part of all architectures from ARMv5 to ARMv8: http://www.arm.com/files/downloads/ARMv8_Architecture.pdf.
There's a hidden treasure in Python 3.x: __prepare__()
Steam and Visual Studio. Oh yeah, that's all applications anybody needs.
For me, the year of linux on desktops is now. With Steam coming to Linux [steampowered.com], along with Crossover and pure Linux-ported games, the inevitable has happened. I'm glad Visual Studio [microsoft.com] also runs perfectly on Wine (I'm also making sure to have a party with my friends on Visual Studio 2012 Virtual Launch Party, where thousands of geeks around the globe connect together to party the release of latest Visual Studio).
A bit of "linux on the desktop" ass-licking, followed by a big, fat Visual Studio plug.
Ladies and gents, we have a shill. A very smart one, but a shill none the less. Modded up by a few other plants, no doubt.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
A popular application does not mean it's a productive application that can earn you money through its use.
To do something right, you often have to roll up your sleeves and get busy.
For me, the year of linux on desktops is now. With Steam coming to Linux, along with Crossover and pure Linux-ported games, the inevitable has happened. I'm glad Visual Studio also runs perfectly on Wine (I'm also making sure to have a party with my friends on Visual Studio 2012 Virtual Launch Party, where thousands of geeks around the globe connect together to party the release of latest Visual Studio). Everything I need works in Linux.
Steam coming to Linux is a start. It would take a lot more than the handful of valve games getting ported to seriously interest me, though. In my opinion it will be viable when you can reasonably assume any random game that is released will have a Linux version available. As far as I'm concerned a wine based solution is really no solution at all; unless it's like the last app you need and everything else is already native. I'm all for Linux on the desktop, but I think it's still got a long way to go.
You have shattered my dream of playing Angry Birds foe a living.
Any insufficiently advanced magic is indistinguishable from technology.
Look at the picture, it's only in ARMv5/6. In ARMv7 it's kind-of there, but the enter Jazelle mode instruction returns failure (check the docs). There's no ARMv8 silicon, but given the lack of market, I'd very much doubt it.
I am TheRaven on Soylent News
Every modern CISC chip is basically a dynamic translator on top of a RISC core.
And that's the problem for power consumption. You can cut power to execution units that are not being used. You can't ever turn off the decoder ever (except in Xeons, where you do in loops, but you leave on the micro-op decoder, which uses as much power as an ARM decoder) because every instruction needs decoding.
If it was just the case of turning off execution units for a processor with a simpler decoder then the Cortex-A9 would n't have the need for the extra low-power fifth core.
Whoosh!
Help I am stuck in a signature factory!
Don't give up hope, hundreds of thousands of people in offices across the globe have made a living whilst playing Windows Solitaire.
To do something right, you often have to roll up your sleeves and get busy.
Between now and January 1st (IMHO) the complete "Clover Trail" API will (almost) certainly have been disclosed/reverse engineered by somebody, somewhere.
It ALWAYS happens.
I killed da wabbit -Elmer Fudd
So in this case the processor simply uses more power when running Linux, and has no savings at all under Windows. And yet you get claims of "Oh look how efficient Wintel is!"
I'm a good cook. I'm a fantastic eater. - Steven Brust
I was forced to install it at work to develop for [a platform that forces you to install Visual Studio 2012 to develop for it]...
My god, it has the ugliest UI ever seen from a Microsoft app since the Windows 3.1 days! And that's saying something. I thought the Visual Studio 2010 UI looked crappy compared to 2008 (at least on the classic UI theme, maybe if you have whatever stupid UI candy MS was pushing in vista/7 then maybe it looks better, I don't know and I don't care).
But 2012? Holy fuck balls. No borders or 3d bevels anywhere. You can't tell where the edges of a button or a view are, except by inferring it from the surroundings. You can't tell what is supposed to be clickable for input and what isn't. The icons used in Solution Explorer and similar outline views, are THE UGLIEST bar none, that I've ever seen. 2008 and 2010 had decent-looking icons that were consistent with normal Windows UI themes (e.g. folders were yellowish, just like they are in explorer... files were nicely shaded and the file extension was easily readable on the icon). In 2012, these icons all use only one or two colors (BLACK on WHITE is a popular choice, but WHITE on BLACK and RED on BLACK and similar abominable combinations are present). The fucking things are horrible to look at, they look like some intern made them in 20 minutes with MS Paint.
The menus are in ALL CAPITALS. I'm not kidding. It shouts at you: FILE EDIT and so on. The toolbars, like everything else, have no visual cues to separate them from menus or windows or views.
Visual Studio 2012 has a completely unusable UI. Its like they fired all of the people who knew what they were doing and told marketing execs to make the fucking product. Its completely in-line with all the other stupid stuff Microsoft has been doing recently (Metro and Windows RT, etc.) By which I mean it looks like all of the product decisions were made by retarded monkeys.
What amazes me is that Ballmer is doing his best to run Microsoft into the ground, but so far he's hardly even made a dent in their huge cash warchest. He's got to hurry up with that.
This is from an Intel rep:
There is no fundamental barrier to supporting Linux on Clover Trail since it utilizes Intel architecture cores, we are simply focusing our current efforts for this Clover Trail product on Windows 8. Our Medfield products support Android-based smartphones and tablets on the market today, and we may evaluate supporting Linux-based OSes on other tablet products in the future.
Just quoting, believe what you want.
Breakfast served all day!
True for the instruction decoders. I can't remember which chip it was, but I read about one x86 that had 16 instruction decoders to be able to decode at most 3 or 4 in a cycle. This means that every byte had to be fanned-out to several decoders (first byte only one, 2nd byte to 2, 3rd byte to 3, you see the pattern). Then logic decided what the length of each instruction was and discarded the results from the decoders that had been fed an instruction which did not start on an instruction boundary. This means that at least 75% of the work done by the decoders was lost! Besides that generating copies and routing them costs: fan-out is not free and may be critical in terms of cycle time, i.e., clock frequency.
should mod +5 funny instead of -1 troll.
virtual launch party should clue that in.
world was created 5 seconds before this post as it is.
This is why modern x86 processors have a trace-cache for decoded instructions.
Mods, bugger off! How can 437 be a troll?
Plus, he's right. There is no need for VB compiled for other systems. And no, there is no need for C-code compiled with VC on other systems.
Now mod me down as well, please, to be consistent.
Somebody will reverse engineer the windows version of the API and add an open version into Linux within like half a day of its release (on windows).
omg..i'm dying here
zosxavius photography
ARM can still beat Intel when it comes to power efficiency, but I think the Atom-based android smartphones have proven that power efficiency isn't THAT bad.
"CISC" made a lot of sense when RAM was $1000/KB (pretty much was in mid to late 1970's). It meant you could have more complex programs for a given amount of RAM.
Some make the argument that RISC's low instruction density is a disadvantage, but the bottleneck in most systems is waiting on RAM, not waiting on decoding instructions (and ARM has the "Thumb" modes that serve effectively as a form of instruction stream compression in a way).
Furthermore a distinguishing feature of CISC vs. RISC is number of general purpose registers. RISC always tried to do everything in registers and treat RAM as an I/O device, instead of stuff like "load accumulator with value in RAM and write it back to RAM" or "load this register with this value from RAM, multiply it with the value in this register, then store it back to RAM." - there are many instructions like this in CISC architectures that encourage treating RAM as just as good for temporary storage as registers - which, of course, it hasn't been for a long time now.
Intel has become more RISCy with MMX/SSE and now with the amd64 extensions that give it 8 more general purpose registers.
...is that this will fail miserably and cost enough that other manufacturers will think twice before accepting bribes from Microsoft for making something that actively shuts out non-Windows OS's.
My sig is too lon
Everyone has a RISC style core nowdays because RISC essentially won. People don't understand what RISC was all about though, they tend to think it's about instruction set complexity or microcoding. No, the concept is about putting the CPU resources in places where it matters, eliminating less useful parts of the processor, discarding the accepted design wisdom of the 70s, etc. RISC wasn't even that new or radical an idea, except for the big machine makers. Seymour Cray was using some RISC concepts before the RISC term was invented.
If power consumption is not an issue then code density most likely is not an issue either. Use the space taken up by the decoder and use it for a larger instruction cache or buffer instead. The sole reason the complex decoder is there is for instruction sets that were designed to be hand written by humans. The x86 instruction set was absolutely not created with performance in mind, it was designed as a long series of backwards compatible incremental changes, starting from the original 4004 chip. Every chip since then in the ancestry kept some compatibility to make code easier to convert to the new processors.
Yes it is true that back in the 70s and 80s when this stuff was new that memory was very small and very slow and very expensive. RISC came about in the era when memory stopped being the most expensive part of a computer.
I'm just waiting for the day when I can get an ARM-based mid-high-end PC and expect it to run all the applications and games I currently expect from an x86_64 CPU. It's becoming apparent (to me, at least) that ARM is a much better kind of CPU than x86 derivatives, so naturally, I want one--so long as it doesn't put me in the same boat as Mac users were in 10 years ago.
I wonder what year you were born to write such nonsense.
Religion: The greatest weapon of mass destruction of all time
Okay, it's 2012 for fuck's sake.
None of the processors being discussed are pure "RISC" or pure "CISC". They're all hybrids, or at least any of the ones manufacturers actually want to put inside a device...
There's always going to be a bunch of "academic" holdouts so they have an example of "Hey! The RISC-Not-In-Anything-30519 IS a pure RISC chip (that's totally unsuitable to general computing applications, or even specialized device applications)!"
But for the most part, this argument died decades ago. Let it fucking go already.
Chas - The one, the only.
THANK GOD!!!
Look at the labeled die shot from AMD's presentation on Jaguar. The parts that make CISC differ from RISC are still major parts of the architecture (as written in the old RealWorldTech article www.realworldtech.com/risc-vs-cisc/ ). CISC adds lots of instructions forcing a (much) bigger decode and instruction cache. CISC adds a multi-stage decoder which requires huge increases in branch prediction size just to break even. 32-bit x86 code takes lots more room due to lack of registers (AMD stated (about Hammer) that switching to 16 general purpose registers for 64-bit operation decreased code 5% and increased performance 20% solely based on less time spent grinding the wheels in the dirt). RISC chips are easier to compile for. x86 uses lots of 1 or 2-register operations which require extra mov instructions whenever data shouldn't be overwritten (and that's a lot of the time). There's extra circuitry to deal with instruction dependencies. Finally, all this additional complexity increases the amount of possible errors (Intel and AMD processors have hundreds of unfixable errors that must be coded around. Many of these could be avoided with a simpler system).
I think I'll engage in a technical discussion with some other of the readers.
But you're obviously so incensed by my article, so offended, and so outraged, that it would be funnier if I just ignored you and let you steam.
Bruce Perens.
In my defence, I did say "generally".
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
I'd like to see what a mobile-grade Alpha processor looks like. But I never will.
I think that Alpha just as Alpha went from Superpipelining to Superduper (Superspipelining AND Superscaling), similarly, had they been out this long, they'd have tossed in more cores, rather than increase the frequency. In fact, @ this point, they'd probably have used process shrinks to lower the power consumption, and even compromised the frequency, if needed, so long as it was higher than Intel and POWER7. For their mobile grade CPUs, they might have lowered that even more.
Actually, for a thought experiment, why not look @ how the MIPS has evolved? It underwent a similar journey as the Alpha, except that unlike the 21164, which went from superpipelined to superduper, MIPS went from purely superpipelined in MIPS III (R4x00) to purely superscalar in MIPS IV (R8000). Today, w/ SGI pretty much abandoned, they are one of the main competitors in the tablet market, thanks to XBURST and Loongson. Alpha too might have undertaken a similar journey, aside from being a VAX only CPU.
On a different note, I do wish that Microsoft supported MIPS too w/ Windows RT, just like it does ARM
Ladies and gents, we have a shill. A very smart one, but a shill none the less. Modded up by a few other plants, no doubt.
It's a pretty obvious troll...though it seems to have fooled you.
Clover Trail and Hondo are not Linux-proof CPUs (they are just prioritized towards WIndows 8). Linux is just a great leveller for CPUs, and whatever ARM vendors throw should run it, and it would be fine. There is nothing like Linux being a RISC OS or Windows being a CISC OS (the latter is only true due to the vast s/w and drivers being Wintel)
On the flip side, the best CPU for not necessarily Linux, but the best CPU for the ideal FSF platform would be something like NXP's Trimedia CPU, ADI's SHARC or TI's C6000 CPUs. Or any other VLIW platform. Since no 2 VLIW platforms would be compatible w/ each other, and everything has to be re-compiled, I'd say that HURD should be compiled to that platform, and following that, all GNU s/w should be. That way, the only s/w for this CPU would have to be liberated, b'cos unlike w/ x86, if it isn't, it just won't run for a next VLIW CPU. That way, the FSF can ensure that all s/w for such platforms are liberated s/w
True, but what is @ the core of a CPU is quite important as well. Also, in the x64 version of the x86, both AMD and Intel have left out certain instructions that were there in the 32-bit mode - which made it more CISCy. As it is, more & more software is now win64 and same on the Linux side as well. As 8GB becomes the minimum memory density available, both Intel & AMD can drop support for 32-bit instructions completely, @ which point the x86 would be a pure RISC architecture - just like MIPS and POWER (Although POWER has a hugh instruction set - I recall the thickness of the PPC 601 instruction set book when I was a student.)
No but there are plenty of apps that could be run with say, a bluetooth keyboard/mouse and an external display. Thus nullifying many user's need for a traditional PC in addition to the tablet. And there are other apps that could be adapted to have a scalable UI (like MS is /attempting/ to do with Win8).
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
My bicycle is significantly more efficient getting me to the train station than the bus is.
I walk because it costs 150 yen or so to park the bike. That's still more efficient. I don't live close to a bus stop. Lots of people near me don't live close to a bus stop.
More than half the people going into the station at any particular time of the morning have not come in on a bus. And most buses at this station are about half-full, not operating at maximum efficiency.
The plain and simple fact is that we are not all going from and to the same place at the same time. Buses and trains are very useful in certain traffic corridors, but rely on small-volume transport to fill in the very huge gaps.
That said, there is still more to say. If Intel threw as much money at ARM as they do at x86, ARM could be even that much more efficient at the smaller design rules Intel has to resort to to make x86 anywhere close to efficient. And if Intel had joined (for example) the PPC consortia with the engineers they head-hunted away from better designs, they could have much more efficient server CPUs than any x86 CPU they have now or ever will have.
But, if they had done so, they could not have maintained their practical monopoly on desktop processors, and they would have given up their strategic inroads on servers. (Because someone else owns the IP, you see.)
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Apple bailed, not on the PPC, but on Motorola and IBM's SOC ideas.
Jobs kept talking about the road-map during the switch. Not the CPU, the road map. Intel's (still vaporware) pseudo-UWB, on-chip peripherals dedicated to desktop functionality, etc.
Mostly they ran scared from real UWB, but that's a bit of history that Intel has effectively erased. (A little strong-arm here, a little bribe there, .... Maybe a little help from the government.)
Shoot, my single core Atom ultra-lightweight is about as slow as my (unfortunately dead) iBook G4 on most of the real-world loads I put on it. (Well, some, at least.) The Atom is no improvement over the G4 in battery use, either.
Intel really hasn't kept any of their promises, so we can see that all Jobs really got was road-map into the mists, and the approval of a bunch of lemmingeeks.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Use bc to compute pi on a single-core Atom. (Relatively recent, right?)
Do the same on a G4 iBook. (Ancient, right? waaaaaaaay slow FSB, right?)
Now compare the time between charges.
Gives you something to think about.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
I think the people who designed the Itanium seemed to think you could optimize all conditionals out of your code with the right compiler.
Pushing things way too far to the extreme does not prove much about more normal designs.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Just for kicks, I tried comparing my recent single-core Atom with my ancient G4, using bc to compute pi an easy way.
Not conclusive by any means, but food for thought.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Sure, Intel will pour more money and manufacturing and silicon into maintaining their monopoly.
But it's such a waste.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
The trace cache, as I said in my original post, is mainly used for loops. It's very small, so it only kicks in if you're running the same sequence of instructions repeatedly. Make it any bigger, and it starts to cut into die area that could be used for instruction cache, so it stops being a win. The trace cache contains the result of translating x86 ops to micro ops. The micro ops are about as complex in terms of encoding as a typical RISC encoding like ARM and so the power cost of decoding them is similar to that of just decoding ARM instructions, except that you need to store them in SRAM twice: once in their encoded and once in their decoded state.
I am TheRaven on Soylent News
I've seen both Sophie Wilson and Steve Furber (who designed the ARM instruction set and ARM hardware, respectively) talk. Both are still active in CPU design - Sophie Wilson now working for Broadcom designing processors for networking gear, and Steve Furber at Manchester University is a researcher.
Two interesting points: Sophie Wilson says there's no reason why Intel can't have the same power efficiency as ARM. However, that doesn't necessarily mean that in the small end of the computing world, Intel will be any good - Steve Furber pointed out in his talk when asked "since Intel x86 etc is now a RISC like core with a translator, where's ARM's advantage?" that *just* the part of the x86 that works out how long the next instruction is (just that part!) is as large as an entire ARM execution core. That's not to mention the much more complex circuitry needed to implement things like the pipeline, do branch prediction etc. This doesn't matter so much in a big system like a server where most of the die is taken up by cache, but in a small system it puts x86 at a big disadvantage. Especially a small multicore system.
The other thing that ARM has is they license their design so anyone cam make a SoC they want with the peripherals they want. With Intel, you get only what Intel gives you. So even if Intel got to the power efficiency of ARM for small systems, designers of small systems will still go with ARM partly due to backward compatibility and existing experience (ARM has a strangle hold here for the same reason as Intel has a desktop/server CPU stranglehold), and partly because they can make whatever SoC they want with ARM and aren't limited to what they get offered.
Oolite: Elite-like game. For Mac, Linux and Windows
"Coded around" where? I don't have any special instructions in my code to handle processor errors.
I wasn't spamming, I was repeating a classic troll post in order to lampoon the OP's obvious shilling. And I didn't format the link correctly because I didn't want to help that particular company with SEO.
RISC chips allow the language compilers to perform complex tasks by combining instructions, rather than by selecting a single complex instruction that's "perfect" for the task.
Okay, they got this part right. But...
As it happens, compilers are more likely to get optimal performance with a number of RISC instructions than with a few big instructions that are over-generalized or don't do exactly what the compiler requires.
...they got that wrong. First, RISC instructions would be over-generalized, which CISC instructions are more specific to various tasks requiring more instructions in general. Now, a compiler may be able to optimize performance on a RISC processor in some situations with more instructions than a CISC processor could with its more complex instructions; but it will probably work out about even if not in favor of CISC for performance in general - 4 instructions that run in 4 cycles are always slower than 1 instructions that runs in few cycles, which is the difference between RISC and CISC.
RISC instructions are much more likely to run in a single processor cycle than complex ones. So, ARM ends up being several times more efficient than Intel."
Yes RISC instructions are more likely to run in a single processor cycle, but that instruction does less than the CISC instructions that may run in a couple instructions cycles.
For instance, on a RISC system you have to retrieve a value from memory (1 cycle), operator on it (1 cycle), and then store it back to memory (1 cycle) - so you have a minimum of 3 cycles. Comparatively some CISC instructions (e.g. IA32) can in the single instruction retrieve, operate, and store in the same instruction and may operate in up to the same number of cycles.
Now, here's the kicker - Intel chips are no longer pure CISC chips. At the normal programmer level writing Assembly or a higher level language it still uses the same interface. However, under the hood Intel chips convert a number of those CISC instructions to RISC instructions and then optimize it again. That's what their Micro-code code, and anything newer than a Pentium Pro does it.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
Also, in the x64 version of the x86, both AMD and Intel have left out certain instructions that were there in the 32-bit mode - which made it more CISCy.
And left out neither any of the register-memory arithmetic instructions that were there in the 32-bit mode nor the CALL instruction, which also made it more CISCy.
As it is, more & more software is now win64 and same on the Linux side as well. As 8GB becomes the minimum memory density available, both Intel & AMD can drop support for 32-bit instructions completely, @ which point the x86 would be a pure RISC architecture - just like MIPS and POWER
...unless you consider "load/store architecture" to be an inherent characteristics of a "pure RISC architecture".
I don't think this post could be loaded with any more blatant bias if they tried. Instead of simply informing people of the information, it essentially went on a rant on why Intel sucks, why ia32 sucks, and that ARM is simply better in every way imaginable, so who needs that stupid stinky Intel meanie head anyway?
Next time, leave the crying for the comments.