Is the x86 Ready for Consumer Appliances?
rckymntrider asks: "By now, it's pretty obvious that the movers and shakers of the PC industry are shifting their attention to consumer electronics. Consumers today demand capabilities from their set-top boxes that PCs already deliver (examples: HDTV and gaming). They just don't want a bulky, hot and noisy PC next to their beautiful new plasma TV. Intel, for instance, announced several initiatives for bringing their technology to the media/home automation front, including the establishment of a $200M fund for companies in that arena (small change if you ask me). As a small manufacturer of media-centric devices (I will not name the company and product -- this is not a plug), I have become very frustrated at the availability of hardware for 'consumer' type of applications. ATX? Micro ATX? Too big. Eighty watt CPUs? You're kidding me! Mini ITX? Better but not powerful enough and *way too expensive*. Besides, every new piece of hardware that comes out is practically designed for Windows, and we all know that this is not the operating system that will drive consumer appliances, right? So to sum it up, do you think that the traditional x86 architecture, even with the advent of PCIX and the likes, is suitable for consumer anything? What other platforms do you see on the horizon that could still offer things like High Definition video capability and not double as mini-heaters? Have you ever heard (or envisioned) of a platform designed for powerful but still cost-effective consumer appliances? VIA tried with their EPIA platform but - in my opinion - they failed. Do you think Intel will do it? If not, then who?"
I mean, think about how versatile the code really is, even if it does crash. Take that requirement out of the picture - that the OS has to run on Nteen thousand different hardware configurations, just one, your superblender - and it might not be the worst choice one could make.
I dunno, that sounds a lot like the old argument "windows is crashy because it supports so much hardware, MacOS is stable because the hardware is tightly controlled" -- then linux came along and provided much stability, and greater hardware support than windows (more processors than just x86, anyway).
I've written programs on VAX, Dec Alpha, RS6000, PowerPC, PA-RISC, 6502, Sparc, Ultra Sparc, 68000 and every version of x86 since the original PC. Really, don't get hung up about x86. In the grand scheme, it's just another CPU. Unit cost, energy cost in a million unit device will more than out weigh nearly anything that might make you choose x86.
This is a boring sig
As far as not being able to HDTV you're dead wrong, I've got an HDTV decoder in it which runs flawlessly (want a 40gb HD version of the superbowl? mail me a harddrive). Gaming is a no go for modern FPS, but even without using one of the 2 pci slots (riser card) the onboard video will run Half Life rather well, and most RTS (save WC3) and of course anything MAME can throw at it... Who wants to play an FPS on a TV but doesn't want a console anyway?
In short, if you think VIA has failed with their MiniItx form boards and the C3, justify that conclusion. All your complaints are either incorrect or baseless. Divx DVDs and HDTV all run beautifully on the VIA. As for gaming: the most powerful console on the market runs at less that 1 ghz and boasts a far from cutting edge graphics card so it's not lacking in power, just in development support. PC game companies aren't interested in supporting anything but bleeding edge tech, and in all likelihood people who want games on their TV will be looking to the real players in the market: Sony Nintendo and Microsoft.
Yawn.
"Is the X86 ready for consumer appliances?"
I'd say so, I have an old 486 chip supporting the short foot on my dryer. It has very low power requirements in this capacity and it does a fantastic job of keeping the dryer from wobbling across the basement floor.
The downside is I have to use plenty of Bounce sheets to keep from ESDing the chip.
Unknown host pong.
The only reason that x86 has endured on the desktop is that it was rapidly adopted by the masses in the early 80s, and being intelligent companies, intel and IBM built upon the platform while maintaining FULL BACKWARDS COMPATIBILITY
This doesn't make it the best for most uses. It just makes it the most practical for a general purpose computer. But not necessarily an embedded device.
In the 90s, new, better architectures were introduced, but x86 endured mostly because of the large installed user base. PowerPC, Alpha, and SPARC, if given enough funding during development, would have easily toasted any of intel's x86 offerings. DEC had 64-bit chips before intel had pentium.
Many new platforms designed specifically for embedded devices such as MIPS and ARM (only ones which come to mind) have developed over the last few years. Backward compatibilty is not an issue here.
Look at TiVo. They used a 66mhz PowerPC in their 1st generation boxes because they ran fast and efficently, and without active cooling, and it was open and cheap (PPC is a VERY open platform). There is no way that an x86 at this speed could have performed the complex tasks TiVo needed it to.
-- If you try to fail and succeed, which have you done? - Uli's moose
It's the primary thing that keeps x86 out of the "appliance" market. No one wants to wait for their device - be it refrigerator, TV, etc. - to boot before being able to use it fully.
... and ...
Before you argue that many machines don't need to boot, please keep in mind that MANY do, and can't stay on 24-7. Hell, even the ones that can should shutdown or hibernate in order to keep peoples' electric bills sane.
Anyway, x86 needs to defeat these hurdles to compete in the embedded arena:
a) boot a kernel that is bigger than 1M (like ARM can) - why? because if you want to boot a device FAST, you use an uncompressed kernel; and uncompressed kernels are BIG
b) get over the POST time - POST'ing on most motherboards (yes, even VIA EPIAs), takes 10 seconds or more. I know firsthand because our app was initially built on one[an EPIA-M]. Asking a user to wait for 10 seconds for the Hardware to POST, PLUS another 10-20 for the OS to boot is highly unacceptable. Mark another win for ARM here...
Anyway, the answer to your question is ARM. It's Intel's existing answer. Have a look at an XScale CPU solution young grasshopper.
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
The issue here is whether the x86 platform's issues, like excessive heat and power consumption and the requirement for a separate memory controller, outweigh its advantages, like the large variety of hardware already available to interface to everything under the sun and the fact that it's a well-understood architecture.
Now that's out of the way, here's my two cents: the x86 architecture, or at least the implementations currently available, simply isn't cut out for most embedded applications. While x86's limitations have been addressed with lots of extensions (MMX, SSE, 3dNow, etc.), those end up adding complexity and drawing more power than a chip designed without those limitations. Also, the x86's pitiful lack of registers compared to architectures like the PowerPC (another choice for embedded applications that require a good deal of power) means that almost any complex operations mean lots of going in and out of cache, or, worse, main memory. While x86 is acceptable in an environment with a 300W+ power supply and user tolerance for a good deal of noise, it won't cut it in your VCR. x86 might see some use in applications which require rapid development and lots of power, but in most cases there is already a good solution available.
That's it. I'm no longer part of Team Sanity.
"if you build it, he will come." x86 the architecture itself may be ready for the set-top box and the digital streaming stereo thingy, and good software foundations are out there (for appliances, think QNX Neutrino, embedded Linux, PalmOS 6, and so forth), and there are low power chips like Geodes and C3s. (I've even heard that people are experimenting with Transmeta's processors for appliances.) So the architecture is ready and the software is ready. But there aren't a lot of people out there who seem really interested in making good hardware (mainly motherboards) to fit this niche, and I think that's mostly what the author is frustrated with. (Mind you, VIA is going in the right direction with their new nano-ITX board, if only they'd drop their price a whole heap.)
Standing at the very edge of my imagination, I peered into the inky void and realised -- I couldn't think up a new sig.
The x86 architecture, well, is just plain silly by today's standards...
A RISC CPU and a few DSPs could perform a lot of set-top applications, with tremendmous savings in both power usage and perhaps area (size).
High Performance doesn't not mean +100W consumption. If you don't need 4-way out-of-order execution (which is a really, really, really complicated thing to implement), complicated branch prediction, large multi-level caches, etc, then your power consumption will be ** A LOT ** less.
The fact is that many signal processing applications, don't require large amounts of memory, and they are highly parallelizable. Their algorithmns tend to be much more predictable.
Also, all processing & interrupt delays are known precisely in DSPs (this is a requirement in realtime stuff). This is also why caches, etc are not desirable, since their performance is not constant.
Simple DSPs can outperform desktop PCs for a great many applications, using 1/100th the power, cost, etc....
Of course it's remotely logical.
Windows gets accused of bugs it's often not responsible for. Because some shoddy developer never realized that people might be running on system configuration X instead of system configuration A, when his application crashes, people often blame Windows hardware support.
I'm not advocating for Windows, I'm just saying it's got decent hardware support and that when writing an application for one specific set of hardware it's made to appear infinately better because the consumer can't screw with the default application environment.
Most of the problems aren't with unstable *hardware*, it's unstable and ugly Windows Malware.
can post in under 2 seconds if not in hardware-change-check mode.
Besides, if you were making an appliance, I'm sure you could write your own BIOS (take LinuxBIOS, for example). That'd make it boot instantly into any size kernel image you care.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
x86 is only one of about 60 different processors that can be used in consumer electronic devices.
...
The only question that needs to be asked about whether or not x86 can/should/will be used in consumer electronics devices is the per-unit price.
If you can't get an x86-based chip for integration into your embedded system for, say, $10 - $15, then its not going to happen. The competition in this sector is too fierce. Other, nice, lower power, fun-to-use (RISC, even...), easy-to-integrate processors are out there, which will definitely give the x86 a run for the money.
The only thing x86 has going for it in this space is the development realm - yeah, its great to cross-compile for your target processor, but in the end, its also fun to just run the same binary you just built and run on your PC.
x86 has to get cheaper. Show me an x86-based chip that has tons of SOC-style integrated peripherals, and I'll show you a chip that is just too expensive to compete with the other cpu's we're already using to control stuff, just fine, in consumer electronics-land
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
However there are some minor signs this may be changing. Most of this is rumors but I think the X-box2 and the new gameboy are both going have more then 1 cpu. Plenty of phones already have more then 1 cpu to spread the load of the increasing demands of the software on them. All the chipmakers seem to be working on putting more then one CPU on a single core.
So if phone companies, console makers and chip companies think it is the way of the future why not for consumer appliances?
Think about it, exactly how much cpu power is needed to decode a video stream when a cpu can be dedicated to that task and nothing else? You don't need to go with a SMP like setup. You can simply have one simple processor wich does all the interface stuff. One wich decodes the video. Another perhaps wich decodes the sound. All geared and dedicated to their specific task. Costly? Well to a certain point this is already how PC's work. GPU for visuals. Soundcard for ehm sound.
Of course such a board will be far more expensive to design then a simple board you pick up of the shelf. With consumer electronics like this still extremely unproven the cost may be too high. Until then simply accept the bigger size and other bad points of PC architecture. Have you ever seen the first generation tv's? Video records? Mobile Phones? Etc Etc? They all had one thing in common. THEY WERE HUGE. Hell the first pocket transistor radio's were so big that the sellers had special shirts with enlarged pockets. (got it from an interview with sony people years ago I am sure someone else can better tell this anecdote).
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.