ARM Designer Steve Furber On Energy-Efficient Computing
ChelleChelle writes "By now, it has become evident that we are facing an energy problem — while our primary sources of energy are running out, the demand for energy is greatly increasing. In the face of this issue, energy-efficient computing has become a hot topic. For those looking for lessons, who better to ask then Steve Furber, the principal designer of the ARM (Acorn RISC Machine), a prime example of a chip that is simple, low power, and low cost. In this interview, conducted by David Brown of Sun's Solaris Engineering Group, Furber shares some of the lessons and tips on energy-efficient computing that he has learned through working on this and subsequent projects."
That means a portable computer with an ARM processor and a reflective monochrome display big enough to hold normal text pages. In other words an Amazon Kindle DX (separate wired or bluetooth keyboard is fine), but with an open OS that lets me write and run my own programs without having to jailbreak past some DRM crap. Somebody please make something like that? Please??
Thank goodness for netbooks. They will finally make the ARM a viable CPU for use in a wide range of higher-end PCs. We just need to see Windows support for ARM, and then we'll be well on our way towards it being a widely available option.
Frankly, the ARM is a much nicer architecture to target when writing compiler back-ends and when writing high-performance assembly code by hand. It just isn't riddled with the archaic crud that the x86-32 and x86-64 architectures are littered with.
In the face of this issue energy-efficient computing has become a hot topic
No. That has, and never was the case. The problem is A) Programs now take a lot more CPU usage (compare CPU usage for the same task in Office 2007 and Office 97) B) CPUs are designed primarily to be faster (needed because of point A) C) Battery technology isn't improving as rapidly as the rest of the components.
Look at the Poqet PC of the '80s, it had very aggressive power management which wouldn't work today. Computers have -always- tried to be energy-efficient in the portable sector. And quite honestly, its about the only sector that needs work on energy-efficiency to gain any benefit.
Taxation is legalized theft, no more, no less.
(record the uptime with a pen+paper if you want to keep a running total)
Taxation is legalized theft, no more, no less.
http://openinkpot.org/wiki/Hardware
There are a bunch of cheap 'n cheerful Kindle clones that are supported by the openinkpot firmware, if e-ink is your style.
If you need the refresh rates of an LCD, I think you may have a problem. There is the OpenMoko Wikireader which is super low power and pretty cheap; but the screen(although touch sensitive) is a little smaller than what you want and the CPU is more of a microcontroller than what you probably want.
You might also consider going the OLPC route. That gets you a rather nice monochrome screen(with backlight color optional) and, while x86, it is a ~1watt embedded Geode, not too power hungry. That one is also by far the most "normal computer" like of the bunch(i.e. no having to code around super slow refresh rates, and running basically standard linux, rather than building binaries for some microcontroller).
Nothing exactly like what you want(that I know of); but there are some approaches...
Because there is almost no market for it. Lets see here
A) Monochrome displays (other than E-ink) are generally considered to be low-tech, cheap, pieces of junk. Look at how well monochrome TVs are selling... Yes, it does ease strain on eyes and increase readability, but has the other side of making most of... well anything unpleasant to look at other than text.
B) It will be expensive. Amazon can afford to produce the Kindle at-cost or even with a bit of a loss because they will gain sales in e-books and such. Even if they sell it at a profit they still can buy parts in bulk and make them cheaper than a product with a run of only ~1,000 units or less.
C) There aren't enough apps. What apps would make sense to port to this device? Lynx? Most other things would need more CPU power (making it non-energy efficient) or a colour screen.
Really, other than you, this wouldn't appeal to a large enough audience of people. Best thing to do would be to jailbreak an existing e-reader, its simply a bad business decision to make a product with almost no market.
Taxation is legalized theft, no more, no less.
"Finding a computer that will last a year or more without rebooting is hard."
Really ?
In our serverroom we have a few which don't get as many security updates (internal systems), they are doing fine, thank you.
New things are always on the horizon
efficient. I mean if you consider any unit of computation vs energy expended. I bet my current desktop computer would compare from a computation point of view to a super computer from the late 80's. (GFLOP to GFLOP) However my current computer pulls about 300W, I'm pretty sure that's alot better than any super computer from the 80's that would compare to it.
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
The phone market has always been looking for ways of extending battery life. I have a phone which is basically a computer with an antenna. It plays videos, music has wordprocessor, gps, maps etc and the battery still lasts up to 3 days.
Deleted
while our primary sources of energy are running out
Just cleaning up our light-water reactor waste (which we cannot leave around for 300,000 years) can power the Earth's advancing societies for a century.
There are much better reasons to go for low-power computing, portability and economics chief among them.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
http://en.wikipedia.org/wiki/Comparison_of_e-book_readers
Deleted
If the unit of computation is to put a single character on the screen for example. Today, it requires several supercomputer class processors to do the same job as one 286 during the 80s.
Deleted
Notion Ink has you covered if you can wait until June for their Adam. It's basically everything you just described, times 9000. And pricing in the bargain laptop range ($350 - $800). I'm not kidding, check it out.
Now that I think about it, I'm pretty sure everything I just said is completely wrong.
Bit shift instead of multiply by powers of two
I'd think a decent compiler should do that automagically, no?
Sent from my PDP-11
Look up "Energy Return on Energy Invested".
Saudi oil has been 100:1.
Shale... 5:1 maybe, 3:1.
http://en.wikipedia.org/wiki/Oil_shale
When they really start using shale, you know the shit is really hitting the fan.
And no matter how much is left (quoted in the reserve figures as recoverable), could be a trillion trillion barrels, nobody is going to bother trying to get it out when it takes a unit of energy in to get a unit of energy out.
Deleted
Use floats where doubles aren't necessary
That assumes that floats are more energy efficient than doubles. Not necessarily true on architectures that have hardware floating point and save energy by omitting the float portion. They convert the float to double, do the math, then convert back. Check your architecture!
On my Intel Core 2, the execution speed is different by about 0.06% between float and double (edge to double). Can't speak to power consumption though. On my Intel Atom 230, the floats are faster by 0.4%. That's almost certainly saving power, but not a lot.
I'm a big fan of arm. I have two of those!
Only if you're assuming energy cost is the primary cost.
Maybe he means you'll save the energy the compiler would spend to optimize a multiply into a bit shift :-)
We're not likely to run out soon, it's just going to get expensive.
I can 'suspend' but none of that junk ever works properly on WinTel
every computer i've owned or used in the last 10 years has been able to hibernate or sleep. that includes macs, linux and win98 to win 7. if you buy a computer that can't reliably sleep, you should return it and get your $ back.
i like MIPS... in college, we had one semester of hands on lab work learning everything about a specific MIPS implementation, then another semester writing a compiler capable of compiling itself for the architecture.
once you can grasp the simplicity and understand exactly whats going on in the chip, features like HyperThreading seem almost stupid because of how much complexity and exceptions they add to the system.
Of course modern MIPS processors are threaded as well...
It was Acorn RISC Machine way before it became Advanced RISC Machines Ltd; by almost a decade, when Furber ran the show.
#include <sig.h>
Nasty, dirty shitty coal. Coal power should just be illegal already.
Nuke, wind, solar, natural gas all are alternatives with far less pollution and co2 release.
Just last year they found a new oilfield off of Brazil bigger than anything found yet. Last year. After everyone said no new large fields would ever be found.
The Tupi field is estimated to hold 8b barrels of oil. Given our current global consumption that's a three month extension. It's the biggest field discovered in 30 years - which is pretty telling. Find ten of these and we've got a few extra years. Find only another one or two and it makes no difference. Meanwhile, when the global business cycle points up again our oil consumption is going to follow likewise - again. Prices will rocket, and economic growth will be choked. Oil is really a limited resource and the way we've built our entire economy around it is going to limit our capacity for global growth.
Probably from a reliable source. The chip that he designed was the Acorn RISC Machine. When ARM was spun out as a joint venture with Apple, it was renamed. Advanced RISC Machines is a backronym intended to keep the same initials but remove the Acorn branding (which Apple didn't want).
I am TheRaven on Soylent News
Actually, you're only half right. On ARM, there is typically no double hardware, so you get a very slow path for 64-bit floating point arithmetic. On your Core 2, it's more complicated. The x87 unit only supports 80-bit floating point values. This means that any float or double will be sign-extended when it is loaded into a register. You gain a bit better cache usage from using 32-bit floats, but that's it.
No both, however, if you compile with SSE then you will be using a vector for all floating point operations. With floats, the compiler can pack concurrent operations on four of them into a single instruction, with doubles it can only pack two. I'm not sure about the Atom, but I vaguely remember that it splits SSE ops in half, so you really do two 64-bit operations. Either way, you can do twice as many float operations in the same power envelope, as long as your code is suited to vectorisation.
Modern compilers prefer to target SSE instead of x87, because register allocation with x87 is painful. Most operations only work between the top two registers in the 'stack' so you need a lot of register-register copies in a typical bit of x87 code (which burns i-cache too). This is one of the main reasons why you see a performance improvement in x86-64; if you have a 64-bit chip you can guarantee the presence of SSE, so the compiler will always use SSE instead of x87 when compiling 64-bit code. If you're someone like Apple and don't support pre-SSE chips, you can also do this and get the same benefit in 32-bit mode.
I am TheRaven on Soylent News
I not so sure, it was not all that long ago most of us who even had a computer were working on an 80x86 or 80x88 with a 512k of memory, connected to a 80x25 character monocrome display, with no network interface, and primary storage consisting of a box next to the unit filled with 360k floppy disks.
You know what we were like pigs in s**t happy too. I have cell phone, not a facy smart phone. I just use it I don't think about it. I charge it Sunday night before I go to bed and I talk and text on it as much as I want to all week long. The batter never goes flat over that time frame.
I had a smart phone for a little while. It could not even stand by all day. I had to go back because I was afraid I might miss SMS alerts from critial systems because the things battery went flat.
I would be very happy with a device that was inexpensive enough to leave on the back seat of my car for weeks on end that would be just there if I needed it and ready to go. Something that could connect to the internet wireless-ly and run lynx and those kinda of apps would be just perfect, even if the screen refresh was slow an e-ink based. Things like e-mail would be very doable as well. We don't live in the same world that 80x86 lived in. There is all kind of infrastructure around, let the POP or IMAP server do the thinking, just add a command like TXTPLZ to the protocols that would instruct the server to render messages sent in other formats out as plain characters. Get send html no problem
becomes 13 and 10. Hell use libcacca to render images as ascii art.
The software you need to write and run on the device could do allot by simply offloading the thinking to the oh lord dare I say it? cloud...
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
Aka lying.
While it is true that according to best estimates oil is going to become rather scarce in the not too distant future, oil isn't a major provider of power. It is used for power generation, but not near as much as others. Coal and nuclear are the heavy hitters in power generation and both are still extremely abundant. So while we need to consider what will fuel our cars, we are not approaching a situation where the lights go out.
He's just trying to jump on the green bandwagon to hype up his product. ARM has made a name for themselves providing low power chips. That's why they are so popular with cell phones and the like. He's just playing on that and the big carbon hype going on to try and promote his products.
As a practical matter, while we do want to find ways to be more efficient always, we still want to use energy. Energy consumption allows for the things that make modern life so much better, allow us to live longer, healthier, etc. What we really want to do is increase efficiency AND find ways to generate even more power in a sustainable manner, be it fusion, solar, geothermal, etc.
How many bytes was the OS on a TRS-80?
The computer 'booted' to a BASIC interpreter at the command line:
READY
>_
I worked at Acorn in the early 80's and knew Steve Furber, but it's amusing to think that most of the Slashdot crowd probably wasn't even born then. I assume the average age here nowadays must be college age or thereabouts.
Not surprising they don't know what ARM originally stood for.
For less than the cost of the financial stimulus package, or the Iraq war for that matter, the US could produce almost all it's electricity with solar thermal plants with present level technology (and the cost for plants would probably be quartered by the time you are done because of economies of scale, so it would cost far less). Hugely reducing electricity costs in the US would probably do more for the economy than just about anything else the money could be spend on.
As a European I'm envious ... the US really has it all, virtual dead deserts with round the year sunlight, a reserve currency which gives you nearly limitless free money to spend on these kinds of projects, and hell quite a nice supply of oil reserves as well ... it's frankly a miracle how your politicians manage to fuck that kind of potential up.
Windows 95 is way, way worse than any modern OS, even Vista and Windows 7. Back in the '95 days OSes didn't put the CPU into idle mode and certainly didn't support any power management, effectively running the CPU at full throttle 100% of the time.
Sorry, you made the erroneous assumption that low system requirements equals low power. Try again.
People put too much stock in the home energy savings angle.
I hooked up a Kill-A-Watt to my whole computer/media center stack (computer/monitor/stereo/mixer/external HDDs/assorted electronics), and it was pulling about 65 watts. The only thing that pushed that number up was cranking the stereo.
It costs about 5 bucks a month to leave this stack running 24/7. 5 bucks. If I was to be looking for significant energy savings, I think I would be looking somewhere else.
Want to save energy? Insulate your house. Take shorter showers.
Want to save money? Stop drinking cappuccinos and eating fast food, but leave the fscking computer alone.
anyone who has hooked up a Kill-A-Watt to their computer, and then calculated how much money per year they're spending on it, disagrees with you.
I've done it and I disagree with -you-.
A house divided against itself cannot stand.
Well, by computer, I meant not a server and one that has constant general use. Of course its easy to find a server that will run for years. Its a lot harder to find a computer being constantly used, updated and on the internet that hasn't been rebooted in a year.
Huh? You just defined the very such piece of computer technology otherwise known as a "server". I don't post here often, but this comment just makes my jaw drop unusually low for some reason, so I apologize ahead of time if I sound offensive...
1) A server, as described in a TCP/IP client & server topology, is a computer that is "always on" the internet, or so you very well hope so, especially if it is being used for "business" oriented tasks. Those packets get served to your "clients" whom serve you back, and this process cycles over until satisfied. Does this sound like another real world scenario to you?
2) A server is often updated at least once a week, sometimes more, depending on the sort of update this is. You could even argue such a hardware piece is often the most updated piece of equipment, generally speaking. (Some development systems could certainly be an exception, for instance!)
3) A server, by definition, is tasked with the role of serving, or "hosting" information back to said requesting clients, whom could and often are making all sorts of requests all at the same time (concurrently), hitting up your resources significantly as the volume of concurrency rises. This often taxes the hardware in several different key areas, sometimes very much like a video game (on steroids, even!) especially if you do not have a network topology in which allows better distribution of said serving tasks across.
In summary, have you ever tried keeping one, much less several parallel video surveillance systems up for months upon years at a time, with minimum downtime as any loss of said outage could leave you liable to your real-life business clients? Sometimes you don't have the luxury of redundancy to save your ass. When incoming bandwidth is not your bottleneck, you've gotta keep your disks seeking every bit as fast as they can keep up to, along with fast concurrency capabilities, along with allowing proper time for distributed mass A/V encoding of said daily video surveying operations to occur before considering that a solid "tape" and pushing those off to another system for backup, which mind you, is getting hit by many other requests in parallel to this first example.
Okay, so I did a terrible "summary", especially now as I am continuing onward with this new paragraph, but in other words ... real life servers do not often have it easy in their life! Their CPU, memory and disk I/O are often pushing near or at maximum utilization if you are trying to get every dollar out of your time & money spent. I push my personal workstations plenty hard, but not anywhere close to what some of my servers have gone through on a daily basis!
P.S. My examples given are of only my own personal real life business experiences in the "small time" playing league -- this represents 0.01% of what big name brand servers running many of our web sites we most all depend on every day, free or paid. Yes, my "servers" were indeed a mixture between the real stuff and the commodity desktop class hardware. Whereas I cannot prove this, I've got both win32 and personal *nix workstations that have indeed been alive w/o reset for a year. When your hardware does not fail, satisfied setups and plenty of other systems running to do various testing on, with the right style of administrated setup you can easily scale to the years. ksplice can be used on personal desktops / workstations, too.
You only *simply* have to devote a lifetime to computer science to learn the trade down to a true art.! :-)
Nice overview, but I do not believe it to be completely correct.
Although it is technical possible to execute 4 float or 2 double operations in a single SSE operation, the user usually has to explicitly code for those operations to take full advantage. Vectorization (combining multiple float operations into a single instruction) is often difficult because it is only possible with the same operation on "adjecent" values; It is not possible to combine arbitrary operations. As a result, making efficient use of this capability often requires a rewrite of the algorithm, and compilers are usually not very good at it.
SSE1 only operated on float values, but SSE2 added support for doubles as well, and the instructions set specifically makes it possible to also operate on single float or double values. This is indeed due to the clumsiness of the x87 FP stack.
However, the difference in performance between the FP stack and single SSE2 instructions is not always as huge as could be expected. Underneath the FP stack based ISA, modern X86 processors implement a register based architecture. And while the stack only allows to operate on the stack top, the ISA offers an exchange operation to swap arbitrary stack elements. Because the underlying architecture is register based, such an exchange just reassociates a different register with a different stack location, and no data is moved. As a result, this operation is extremely efficient (practically free, except for opcode).
There are, however, other advantages to using SSE instead of FP. For example, rounding a float to an integer is extremely expensive on the FP unit. This is because a global mode switch has to be performed to switch the rounding mode to truncation, and back to rounding around such a conversion. Switching this mode basically stalls the FP pipeline. In SSE on the other hand, a dedicate instruction was added to truncate to an integer for exactly this reason.
As for the performance benefit with X86-64, I believe this to be largely caused by the larger register set. in IA32, there are only 7 registers which are sort-of general purpose. The hardware has to spend quite some effort in tracking loads and stores, to figure out it can actually keep such values in registers too (underneath, a modern X86 processor has lots of registers). X86-64 makes it a lot easier for the compiler to express what it wants.