Slashdot Mirror


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."

46 of 195 comments (clear)

  1. so why can't i buy a !@##$% low powered computer? by Anonymous Coward · · Score: 4, Insightful

    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??

  2. Netbooks will make the ARM viable. by Anonymous Coward · · Score: 2, Interesting

    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.

    1. Re:Netbooks will make the ARM viable. by Lunix+Nutcase · · Score: 4, Insightful

      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.

      And you also mean the porting of thousands and thousands of x86 apps as well? If the ARM version of Windows can't run the apps people want, they aren't going to by an ARM netbook.

    2. Re:Netbooks will make the ARM viable. by del_diablo · · Score: 2, Interesting

      What conversion? If you write an app in C++, it RUNS on anything with a compiler. Now, if you use bad compilers such as MS one there will even be trouble with compiling it on other platforms. I.E: gcc and llvm compitable means it will compile for anything those 2 can compile for(litteraly about anything). You never plan for it, instead you do the code properly the first time. What to not do: overdone amount of assembly(needs to be changed), compiled against binary blobs(needs to be ported), using weird libaries, ineffective coding, using a weird compiler, etc.

    3. Re:Netbooks will make the ARM viable. by emt377 · · Score: 2, Interesting

      Just out of curiosity, while I've done some programming professionally, I haven't touched C or Assembly in well over 15 years, since I needed immediate results and haven't had bosses that allowed anything less, how much work is it to convert something from X86 to ARM? Assuming you didn't write it with the intention of every needing to do so, vs having planned for such a possibility.

      Depends on the ARM CPU. ARM7/ARM9 are alignment sensitive. ARM Cortex has a bus/cache interface that allows arbitrary alignment. Porting to the former may be difficult depending on the software, or may simply be tedious, the latter is usually as easy as a recompile if the platform and toolchain is similar (e.g. Linux+gcc).

    4. Re:Netbooks will make the ARM viable. by Tumbleweed · · Score: 3, Interesting

      And you also mean the porting of thousands and thousands of x86 apps as well?

      But most people don't USE thousands and thousands of apps. Or even hundreds of apps. Most people don't even use dozens of apps. You got your web browser and your IM client (maybe), (maybe) an email client, a DVD player, and I bet that's it for the vast majority of computer users outside of work. IM & email clients can be handled by the browser. Seriously - Chrome OS or Android running on a nice 1-2gHz dual-core ARM beast with hardware accelerated HD video w/ 4GB of memory is probably all that most people need at home, as long as it's got a decent screen, keyboard and mouse, they're set.

      Download your Android apps, of which there *are* thousands (though many different versions of a much smaller number of TYPES of applications) for expanding into more obscure things. Most of which would be games, of course.

      I'd like to see Chrome OS & Android merge sooner rather than later. Absolutely no point in having these be separate projects - with the rise of 'superphones,' there's not that much difference in horsepower anymore, and one platform target is better than two from a developer standpoint (usually).

      IMO, anyway. :)

      I'm hoping the day when I can take my dual-core 1+ gHz superphone out of my pocket, put it in a dock at home to get a big screen, real keyboard and mouse and true broadband home connection. Shouldn't be more than a year away. C'mon, Sprint, with the Supersonic! I'll fire up the beastly machine when I need to run Photoshop or whatever, but most of the time at home, my computer use is watching TV/movies/websurfing/email.

    5. Re:Netbooks will make the ARM viable. by Dog-Cow · · Score: 4, Insightful

      You haven't actually ported any non-trivial app, have you?

    6. Re:Netbooks will make the ARM viable. by marcansoft · · Score: 3, Informative

      Run PowerTOP on Linux (and use a tickless kernel, of course). There are some offenders, but most of those background services aren't using any power. As long as the processes are sleeping most of the time and don't wake up often (once every few seconds at most), they aren't going to increase your power usage.

      There are a few slightly annoying ones (ntp tends to wake up once per second, and I think mysql wakes up twice per second), but most of the crap comes from poorly-written GUI apps that poll for stuff or feel the need to wake up tens or hundreds of times per second. Bad user preferences also don't help (hint: anything that's moving on the screen at any sort of framerate while the computer is otherwise idle is going to massively increase power usage over a truly quiescent CPU).

  3. No always has been by Darkness404 · · Score: 3, Insightful

    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.
    1. Re:No always has been by farble1670 · · Score: 2, Informative

      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.

      that couldn't be further from the truth. energy costs are just going up. for households it's mildly important as they can usually sleep their computers when not in use. for businesses, energy efficiency ranges from very important to critical when they have massive server rooms full of tens of thousands of CPUs powered and busy 24x7.

      moreover, for developing countries, it's again critical. while the L in OLPC stands for laptop and therefore technically qualifies as mobile, it's more about having a battery to deal with locales where the electric grid is often shut down either on purpose to save energy or inadvertently because of a poor / out of date infrastructure.

    2. Re:No always has been by Cajun+Hell · · Score: 2, Informative

      And quite honestly, its about the only sector that needs work on energy-efficiency to gain any benefit.

      Google disagrees with you, in a really big way.

      Also, 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.

      This one asshole spent an estimated half a million dollars (of someone else's money) on electricity (which is probably the main reason he really got in trouble), not counting the harder-to-measure increased electric bill for the air conditioning (he was doing this in Arizona).

      Energy costs money. People care about money.

      --
      "Believe me!" -- Donald Trump
  4. Re:Energy Efficient Tips by Darkness404 · · Score: 3, Informative

    (record the uptime with a pen+paper if you want to keep a running total)

    ...That isn't true uptime. The point of uptime being a bragging right isn't that you have an APC, but rather your computer is configured correctly so it doesn't randomly run out of memory and crash, your hardware doesn't overheat after a week of constant usage, etc. Almost -any- computer can work 12 hours and not fail. Finding a computer that will last a year or more without rebooting is hard. Simply adding up the amount the computer has been on is not uptime, not in the least.

    --
    Taxation is legalized theft, no more, no less.
  5. Re:so why can't i buy a !@##$% low powered compute by fuzzyfuzzyfungus · · Score: 3, Insightful

    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...

  6. Re:so why can't i buy a !@##$% low powered compute by Darkness404 · · Score: 3, Insightful

    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.
  7. Re:Energy Efficient Tips by Lennie · · Score: 2, Insightful

    "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
  8. The funny part is newer computers are more by NotSoHeavyD3 · · Score: 4, Insightful

    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.
    1. Re:The funny part is newer computers are more by Michael+Kristopeit · · Score: 2, Informative

      my mac mini only pulls 14W and isn't far behind your current desktop in performance. my fit-pc2 only pulls 6W. relative to power consumption, both of those machines are easily besting super computers from the 80s as well as your current desktop.

  9. Indeed by Colin+Smith · · Score: 2, Insightful

    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
  10. Begging the Question by bill_mcgonigle · · Score: 2, Interesting

    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)
  11. You can. But apparently are unable to use Google by Colin+Smith · · Score: 4, Informative
    --
    Deleted
  12. I doubt it by Colin+Smith · · Score: 2, Funny

    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
    1. Re:I doubt it by Amouth · · Score: 2, Funny

      but now we have cuved edges and smooth colors - and wait.. still using a square dot to show it.. crap

      --
      '...if only "Jumping to a Conclusion" was an event in the Olympics.'
  13. Re:so why can't i buy a !@##$% low powered compute by Arthur+Grumbine · · Score: 2, Interesting

    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.
  14. Re:Energy Efficient Tips by mirix · · Score: 4, Insightful

    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
  15. Re:Bull... by Colin+Smith · · Score: 3, Informative

    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
  16. Re:Energy Efficient Tips by dfsmith · · Score: 3, Insightful

    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.

  17. Re:RISC = Good by Yvan256 · · Score: 4, Funny

    I'm a big fan of arm. I have two of those!

  18. Re:Bull... by maeka · · Score: 2, Insightful

    5:1 - 3:1 is still a net profit.

    Only if you're assuming energy cost is the primary cost.

  19. Re:Energy Efficient Tips by FrangoAssado · · Score: 3, Funny

    Maybe he means you'll save the energy the compiler would spend to optimize a multiply into a bit shift :-)

  20. Re:Energy running out by Eharley · · Score: 2, Interesting

    We're not likely to run out soon, it's just going to get expensive.

  21. Re:Make Boots & Scans Faster by farble1670 · · Score: 2, Informative

    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.

  22. Re:RISC = Good by emt377 · · Score: 2, Insightful

    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...

  23. Re:where do you get your facts? by BestNicksRTaken · · Score: 2, Informative

    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>
  24. Re:Bull...you are not even counting coal by h4rr4r · · Score: 4, Informative

    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.

  25. Re:Energy running out by emt377 · · Score: 2, Informative

    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.

  26. Re:where do you get your facts? by TheRaven64 · · Score: 4, Informative

    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
  27. Re:Energy Efficient Tips by TheRaven64 · · Score: 4, Informative

    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
  28. Re:so why can't i buy a !@##$% low powered compute by DarkOx · · Score: 3, Insightful

    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
  29. It's just marketing by Sycraft-fu · · Score: 2, Insightful

    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.

  30. Re:Make Boots & Scans Faster by CohibaVancouver · · Score: 2, Interesting

    How many bytes was the OS on a TRS-80?

    The computer 'booted' to a BASIC interpreter at the command line:

    READY
    >_

  31. Re:where do you get your facts? by SpinyNorman · · Score: 3, Interesting

    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.

  32. Re:Fearmongering. by Pinky's+Brain · · Score: 4, Interesting

    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.

  33. Re:so why can't i buy a !@##$% low powered compute by marcansoft · · Score: 2, Insightful

    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.

  34. Looking in the wrong places by pedestrian+crossing · · Score: 2, Insightful

    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.
  35. Re:Energy Efficient Tips by i8degrees · · Score: 2, Informative

    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.! :-)

  36. Re:Energy Efficient Tips by Anonymous Coward · · Score: 2, Informative

    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.