New Way to Patch Defective Hardware
brunascle writes "Researchers have devised a new way to patch hardware. By treating a computer chip more like software than hardware, Josep Torrellas, a computer science professor from the University of Illinois at Urbana Champaign, believes we will be able to fix defective hardware by a applying a patch, similar to the way defective software is handled. His system, dubbed Phoenix, consists of a standard semiconductor device called a field programmable gate array (FPGA). Although generally slower than their application-specific integrated circuit counterparts, FPGAs have the advantage of being able to be modified post-production. Defects found on a Phoenix-enabled chip could be resolved by downloading a patch and applying it to the hardware. Torrellas believes this would give chips a shorter time to market, saying "If they know that they could fix the problems later on, they could beat the competition to market.""
I'm not sure I see what this guy is doing that is novel. I can't tell if it's a stupid writeup or if this guy really thinks sending out a new bitstream to an FPGA is a breakthrough. FPGAs are remarkable pieces of hardware, and depending on how much you're willing to spend they can run up to a few hundred megahertz- though timing problems can be difficult to resolve at that kind of speed. Many ASIC designers use FGPAs in house to prototype and can afford to spend up to $25,000 for a single chip (only the craziest number of gates cost that much) but which reduces the number of million dollar ASIC production runs. The other reason you don't see a whole lot of FPGAs in closed source hardware is because an end user/hacker could make the hardware go out of spec or do something unintended and then expect warranty support. An increasing number of open source hardware projects (Universal Software Radio Peripheral, or USRP, for one) include FPGAs however. Anyway, bottom line is I just don't see from the article at least what this guy is doing that is so special. The article makes it sound like the chip can detect the errors itself but then requires a patch to be uploaded. It sounds to me like he's adding logic that works around certain hardware states in the fixed portions of the circuit- but that's just updating the VHDL/Verilog and creating a new bitstream. So again, I don't know if it's a dumb article or a dumb researcher. Anyone have more information?
Don't bother reading TFA, there is no more information there than what's in the summary. Just some additional hand waving about how this enabling technology will magically detect and fix hardware bugs.
I'm sure the professor has developed _something_, but the article sure doesn't give any clue what it might be. This story is nothing more than an exceptionally poor description of what any FPGA can do.
From the wiki link:
The historical roots of FPGAs are in complex programmable logic devices (CPLDs) of the early to mid 1980s. Ross Freeman, Xilinx co-founder, invented the field programmable gate array in 1984.
Umm, ok. Did you mean old way to patch defective hardware?
So we'd get to have these chips in PCs sooner, and in return, they'd be less reliable? No thanks. One Pentium floating-point problem was bad enough.
!#@%*)anks for hanging up the phone, dear.
If the initial quality doesn't suffer because of this, then it will prove to be a nice update to hardware.
You know, I have one simple request. And that is to have sharks with frickin' laser beams attached to their heads!
...and this is new how?
So, from a customer viewpoint, what this offers is slower, more expensive hardware that is less tested and buggier than the competitors coming down the pipeline in a month or two?
I suspect I an do without.
Trust the Computer. The Computer is your friend.
It was called a ROM Patch.
And isn't this the WHOLE reason for Altera and Xilinx???
Dog is my co-pilot.
"If they know that they could fix the problems later on, they could beat the competition to market."
That sounds like vista to me...except for the fixing problems later on part...and the beating competition to market...
What was my point again?
All your 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 are belong to us
In the university lecture I was in this year on FPGA's the big selling point was the fact you could do exactly this and how its used in industry. I'm not seeing any 'news'
Hasnt the lessons that have been learnt by the software industry had *any* impact?
--- perl -e 'printf("%s\n", pack "H*", "7369670a676f6c677940676f6c67792e6e65740a2f736967")'
Great... so I assemble a new system with "patchable" hardware... only to find that the hardware is deffective.
Now I'm left in a situation where I need software to patch the hardware. But I can't run the software because the hardware is defective...
This is just an excuse for being lazy. Do we really need more untested products flooding the market? Nothing like shifting the burden of quality control onto the end user to push up your profits...
On the other hand, this could be very useful in systems where physical access to the hardware is nigh impossibles... satellites for example. But this should not be used in consumer devices, and shouldn't be a crutch for faster development.
I'm out of my mind right now, but feel free to leave a message.....
"If they know that they could fix the problems later on, they could beat the competition to market."
Oh great, now we'll have hardware as crappy as software. I guess we'll have to get used to the new QA mantra: "If it solders, ship it!" Sigh.
Don't blame me, I didn't vote for either of them!
Yeah, so if I had mod points...
The "Field Programmable" bit of FPGA describes exactly the idea that a Gate Array (hardware logic chip) can be programmed in the field, ie, not in the factory.
Great, just what we need. Technology to enable manufacturers to push more crap that doesn't work to market sooner so end users can become beta testers. Then they can obsolete the product by pushing even more crap to market before they ever get done patching the old crap that doesn't work. And the cycle of crap continues.
Having said that, what's so new about FPGAs?
Hmm, he might want to work on changing the name from Phoenix. Good thing the summary says its only "dubbed Phoenix," not that it's the final name.
What's that you say? No, "Firebird" won't work, either...
R.Mo
Supposing a defect in this post-releast-modifiable hardware makes it impossible to connect to the internet? Good luck downloading a fix! :-P
This could make hardware manufacturers cut QA costs at our expense. Yay!
I like basketball!!1!
I see problems with this approach. First of all, with the ability to patch flaws in the future, what is to stop a manufacturer from releasing a chip with a flaw just to get to manufacturing quickly. As we've seen with software, there could be serious flaws that cause security issues. Also, malware writers could make undesirable changes to hardware and might be more difficult to track and repair the damage that is done. I am more curious about the level of security that will be used to prevent unauthorized changes to hardware. Turning hardware into software will introduce the problems of software into hardware.
For the love of god, someone tell this man that his attitude (release now, fix later) is what has gotten us into the shithole of unreliable never finished software that we're stuck in. I hope he takes his "yay short term profits and screw everything else" attitude on a long walk off of a short pier.
If I'm missing something, then I'm sure a lot of other people are too, so please explain:
exactly what is stopping malware2.0 from killing my processor?
Actually, FPGA patches are sometimes done to fix bugs, but more often they're done to change functionality. eg. a new firmware download uses different DSP algorithms or whatever and thus needs different FPGA algorithms to work properly. THus both get updated.
Engineering is the art of compromise.
I was hoping for some idea like slapping an X gate FPGA onto the package of a regular processor, and then if in later testing it is deemed to have a bad cache line, or floating point unit. it could be reimplemented in the FPGA section and wired in, possibly increasing yields. Though these would certainly be lower quality parts they would atleast be functionally correct, if a bit slower.
But I dont know. Something tells me that if there is a hardware problem(not a hardware design problem) then it is likly that there will be others on the same chip, due too some non uniform distribution of impure silicon. and it wouldnt be long before there are too many corrections to fit in the fpga.
No joke, any EE knew about this long before this stupid story. ... which implies that they were well know to the industry before that. And, it was blindingly obvious that this was possible then ... 15 years ago. In fact, we had labs where you did this - it wasn't the point of the lab but FPGAs were and "fast fixing" as we called it got you out of the lab quicker.
... apparently not hardware nerds.
Christ, I knew about FPGAs back in 1992 as an undergrad
News for nerds
"National Security is the chief cause of national insecurity." - Celine's First Law
You know... the merging of Software and Hardware.. SoHardware...?
But seriously this sounds like a bad idea for stuff like x86 CPUs and 3D GPUs. The whole beauty of hardware is that it's fixed. You know it won't change and so do the engineers, hence they spend more time making the systems reliable and bug-free. Self patching hardware just sounds like a bad idea for consumers.
On the other hand, it could do well for what will become legacy systems in the future. Chips that are used in machines which need to operate for 10-25 years could definitely benefit from a system like this.
Look, I'm not even a geek. I'm just some luser, and even I in my eternal stooooopidity could tell you:
a) Duh, duh, duh. This ain't no news, FPGAs have been around for quite a while, and being able to soft-repair hardware is an old idea that is being used where practical. Sheesh, slashdot is really headed for slushdot these days.
b) Great, so now we can get more defective products quicker, be on hold with tech support longer, and spend our own time/money fixing the products under warranty that we've already paid for. Someone, please shoot me!
Hardware Virus.
The article IS light on details, but the last paragraph does explain how the system would work. Basically, manufacturers of mass-market chips would provide a small amount of FPGA-like programmable logic in every chip they make. This programmable logic would sit idle until some defect was discovered in the chip.
At that point, you can send a "patch" to the chip that uses the programmable logic to detect the error condition (or conditions that trigger the error), and work around the problem.
It's fairly clever, and is similar in spirit to the microcode patches that varios x86 CPU manufacturers use to correct for errors in their chips after they're taped out. It would be interesting to read about what the actual design is. It seems like coming up with a generic logic patching mechanism that can deal with previously-unknown errors would be a pretty interesting task.
I can't believe I'm even reading this.
The entire selling point of this system is that it allows hardware developers to do sloppy work? Great! The build-and-fix approach has worked wonders for software what with constant security alerts and all, why not use it for hardware? Inspired!
Have they put any thought into this at all?
That other people might make malicious "patches"?
That they'd be opening up hardware to all the vulnerabilities that software has?
Jesus christ people, use some common sense.
Techniques like this could vastly increase chip yields. One of the limits to the complexity of chips is that it gets hard to produce very complex chips with no flaws. Being able to patch around flaws could bring a process from a 50% yield to a 99% yield. Implementing the system would, of course, be non-trivial.
An example of redundant systems would be communications and deep space satellites. It is so expensive to put the satellites into orbit that doubling the amount of some of the systems is actually not the most expensive part. For instance, if I need a mux with five channels it isn't that much more expensive to include six. It means I can still collect my planned-for revenue even if a channel fails. Otherwise, the failure of a channel would lead to a 20% drop in income. Also, my company would be viewed as less reliable and I would lose even more business on that account. Including the extra channel is almost a no-brainer.
In a sense I'm a bit surprised that nobody has thought of the application of redundancy to chip manufacture before now.
So the P.O.S. unfinished game I just bought to run on the P.O.S. unfinished operating system I just bought is now expected to run on the P.O.S. unfinished PC I just bought...
If you've half a mind to go into marketing, that's all you need...
Gentoo Linux - another day, another USE flag.
And what happens when someone writes a worm that modifies this to *create* errors? It could be pushed to the extent that the processor is completely crippled. A virus could really take out a system this way; you can't even start over with a clean OS install if there's no processor to do the installing. There goes your expensive new system....
FPGA revisions are a lot cheaper (almost free) and thus it is very much faster to verify designs and release a product. Tha significantly improves time to market.
Buggy non-FPGA hardware is typically released because of the long design/test loop in hardware resulting in people releasing hardware when it is "good enough". Speeding that up by using FPGAs can actually help good design and improve first-release quality. On top of that, it also gives the flexibility to change things later.
Engineering is the art of compromise.
This is bad, it means production design testing will be foisted onto the user.
We already have to worry that software products don't work and will be apllying endless patches to it, not hardware?
What about malicious attacks?
No I was to busy being alarmed to read the article.
The Kruger Dunning explains most post on
...except slower and more expensive.
There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
In other news:
A professor in optical systems discover that a light bulb screwed into a socket starts to emit photons.
don't cut it off www.mgmbill.org
Remember how console titles generally weren't very buggy? You know, they mostly worked right*, but then came PC titles and crashes became normal? Yeah, they'd have a shorter time to market, but I have this feeling they'd stop bothering with the fixes when it was no longer "cost effective" ...
* Yes, there were still bugs, and even multiple revisions of games--have Realm sketch an invisible enemy sometime. But I'd never have seen most bugs if there weren't tool assisted speedruns.
Excellent!
127.0.0.1
Predates FPGAs by decades.. Sure they have advanced things greatly, but where the hell has this guy been the last 30 or so years? Under a rock?
Personally I was using proms as rudmentary programmable logic 20 years ago.
---- Booth was a patriot ----
I suppose you all could go to the source.
Half of Google is in "Beta", 90% of the video games I buy are beta-quality, more and more software now-days is labeled as "beta release 3.1415", I don't need to beta-test a processor or GPU as well! While it would be nice to be able to _add_ things to your CPU, like support for SSE42, I think something like this in a CPU would cause more harm than good.
It'd also make debugging software that much harder, as you won't be sure where the problem lies, with the CPU or the software program itself.
We've got the USPTO convinced that "Prior Art" is just paintings by a moderately famous black comedian with a penchant for potty-mouth.
Don't screw this up, m'kay?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
*rolls eyes*
And people wonder what's wrong with slashdot.
Read about the man before you put your foot in your mouth again.
This sucks, as companies will presume its more OK to release buggy hardware now.
I'm surprised anyone would think this is news. Also, as it stands today, some companies have *entirely* too much faith in FPGAs to get them through. We had two companies come give us product to try. Both implementing the exact same technology, one with an FPGA design. They talked about how wonderful FPGAs are (as if they were new to them) and that they were perfect for large-scale deployment, and they could fix *anything* in firmware. During our evaluation, despite their claims of how well it performed, we contorted the tests all over the place to meet 70% of the 'theoretical' performance, with *huge* latency penalties on any given operation no matter how we sliced it. All this coming with the bonus of an abnormally large TDP of the part.
The other solution was a traditional ASIC. Under 1/4th the TDP of the competitor, a 50-fold decrease in latency per-operation, and on the first default run, got 90% of the theoretical performance, 96% after tuning. All this at a lower cost-per-part in production by about 200 dollars.
We were skeptical of both vendors for different reasons, neither vendor was allowed to give us extra hand-holding until the first vendor was so embarassingly bad we let them go hands on with us because we were *certain* we had to be missing something if it was that embarassing. Even after giving them unprecedented advantage to offset initial results, they couldn't come close to touching the other offering.
I know, a better company could have done better, probably, but the cost delta of FPGA and ASIC was not their fault, and the TDP of their parts, while likely worse than they could have done, probably would have been higher regardless. As another poster pointed out, its more difficult in general to clock up FPGAs than ASICs, and so performance will suffer.
FPGAs have their place, and a huge benefit is prototyping. I've seen a number of companies do a proof-of-concept with an FPGA, go forward with a demo, but when time comes for mass-production, it's most often implemented as an ASIC. After decades of dealing with hardware bugs, the industry at large has gotten very good at glossing over the rough spots in firmware. Sure, some hardware bugs can never be addressed in such a way, and as a consequence, your testing has to be better up front and inevitably slow down a release process due to a fear of post-release returns, but that is a *very* healthy fear to have, and it ensures the quality will be better at release time than your FPGA-reliant competitor. First to market is generally an advantage, but it is also a *huge* opportunity for embarrassment and sending your early adopters begging for your competitors competent ASIC implementation, with a low bar to beat as well.
XML is like violence. If it doesn't solve the problem, use more.
in 1980!
Oh, boy! Defective by (lack) of design... sooner!
If there's anything wrong with hardware and software development, its that there isn't enough quality testing done prior to shipping. How does this do anything but encourage products to be rushed to market even more? This also requires additional expense in adding an interface to the product to receive those updates, rather than just building it right the first time.
You think it's tough getting tech support now? Wait until field-patchable hardware hits the market.
Can't read the screen? First you call the O/S manufacturer, then you call the video card guys, then you call the RISC chips guys, and so on.
That'll be loads of fun.
Since this is "programable" there will follow a new plague of "hardware" viruses.
How does the inventor propose to defend against such things????
This is both good and bad. It would be great if a device needed an update because of a mistake. HOWEVER using this as a way to "Fix it later" so you can rush something to marked before it is ready, That is CRAP! There is enough bad software out there that they promise to fix, and never do. There are also devices that list features "Will be available soon" via software, and that never happens either! (I am referring to a video capture card that promised to have a TV guide app, but they stopped making the device after 6 months, and NEVER added the TV GUIDE!!!!)
Introducing WaterOtter®—the most advanced, least well-backed technology ever created.
(Damn browser guys, always taking the good names...)
You can hold down the "B" button for continuous firing.
A lot of you seem to be missing the point and dismissing the article as system to allow designers to be lazy and release "faulty designs." The article was less about allowing bad designs and more about allow defective chips to work thereby increasing yield and product life.
Defect tolerant arrays are still not a new idea. Every single Playstation 3 that ships is assumed to have a defective SPU in it so that the Cell yield could be higher and thus the PS3 could be cheaper. FPGAs are an array of finer grained processing elements and thus have lower susceptibility to defects. Many people note that FPGAs suffer a performance hit to ASICs, though an FPGA is more comparable to a CPU than an ASIC since it is a general purpose device. There are many processing tasks on which an FPGA can achieve order of magnitude higher performance than a CPU due to parallelization and I/O efficiency. Some people said that the cost of FPGAs is very high. This is simply no longer the case: the Xilinx Spartan 3E chips can implement 1M gate designs for about under 10$. Higher performance FPGAs have cost factors which are largely attributable to market demand and any economic comparison with CPUs should be normalized to account for volume. Even still, if cost/gate scales linearly one could currently devise a 1 Trillion gate FPGA for $10M based on the Spartan's costs. Even if I'm a factor of 10 off on cost, it would be the most powerful supercomputer in the world at a bargain price.
Chip defect density will increase with decreasing transistor size to a point where the most economically viable chip is a defect tolerant array that can eliminate much of the semiconductor testing and yield costs.
The major missing piece is an operating system for these things to provide a simple and transferable programming model.
So we can get things to market faster knowing we can fix the bugs in the chips later -- after the user fails to get the promised benefit.
UGH. I'm so sick this attitude that it is beyond description. ASUS makes some great gear, for example, and the worst software for that gear I've ever seen. Netgear is the same way. The crap both companies turn out is low quality and it's clear that their focus is so hardware centric that they see the software as a necessary evil that the users need in order to use the fabulous new hardware they're buying. This attitude of "Fix the software after we ship" means you can almost never rely on the software that ships with products from these companies. Unfortunately, sometimes the patches are worse. Asus in particular makes me ill with this. My P58-N-SLI motherboard is amazingly fast, but the update software is junk and the most recent bios patch was so bad I almost couldn't back down from it.
Sounds to me like this kind of chip would be a red flag for me to dump the product back on the shelf at the store.
The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
I've been a reader for some time now and have been meaning to create an account. It was this article that has finally prompted me to do so..... As a computer science major who is currently focusing a great deal on the electrical engineering portion of his curriculum and who dabbles extensively in digital circuits, I've gotten to know very well an important facet of the design process, "The Engineering Method". This idea is actually at the very heart of anything which is properly engineered. I compel anyone who is reading this comment to google "The Engineering Method" before continuing. Those who are familiar with proper engineering methodology should find concepts (if true) presented in this article deeply...deeply...troubling. When engineering anything, be it a bridge or a digital circuit, certain steps are taken to ensure that the design is WITHOUT fault. Even if a device such as a microprocessor is incredibly complicated, you always insure the design is without fault before allowing it to be released. Would you design a car with the intention of fixing possible faults after production, or even a bridge? That is simply bad engineering practice and to be quite honest, unethical. Such a device has no business being put on the market and could, in fact, present some very real dangers. Suppose such a device were installed in a life support system or even a car, a device with an ACCEPTED high potential for fault. Further more, it's sacrificing the performance of a fixed function circuit with a slower PGA all for the sake of making up for poor engineering. This is in effect replacing a simple design with a more complicated one which is also poor engineering. But enough of my ranting. I really must make a comment on the deeper issue I see here which is that of a non-engineer trying to solve an engineering problem. The person who is proposing this system is a computer scientist. A computer scientist specializes in solving problems using computers via software. It's my assumption that he saw an engineering problem (in this case, the complexity of designing digital circuits vs. cost of development time) and decided to try and solve it. It was only natural of his to do so via a software approach. I give him credit to making the effort however the resulting solution proposed is inappropriate. Again, I'm making assumptions here, but he is a scientist and not an engineer, and perhaps wasn't aware that such a solution caters to bad engineering.
Aaahh, That's good enough. They'll fix it in post.
I'm not sure I understand. Are they saying that being able to put out more defective chips because they're too cheap to test them first is a good thing? What's good for buggy software is good for hardware, I guess. Everyday is Patch Day...
What?
http://www.freepatentsonline.com/4441170.html
This patent seems to cover redundant circuits and one time fuses to patch them and a disable fuse to prevent end user changes. The repairs can be made after packaging. This is not to change code, but to increase manufacturing yeild. A few bad bits can be replaced by patching in redundant spare memory instead of trashing the die.
The truth shall set you free!
And it would be difficult and expensive enough that the manufacturers would still subject their products to thorough testing. And probably expensive enough that it'll only be used in high-confidence operations, such as NASA hardware.
That was my thought, too. I could definitely see this being used in satellites or other applications where getting the hardware back is impossible or very expensive, but I can't see it being used on a microwave or DVD player.
It's my understanding that a lot of NASA's stuff has long been designed with a high degree of flexibility in the hardware, so that as much stuff as possible can be patched and fixed in software. (A while back there was a story about Voyager and how the NASA guys had done some software patching to make it last longer by reducing power consumption.) Actually, I'd be very surprised if some NASA engineer somewhere hasn't considered using FPGAs already, in order to get the additional flexibility and fault-tolerance that being able to re-jigger your hardware from millions of miles away would bring.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
I say someone has hijacked Slashdot.
In other news, read about 10 Firefox extensions you should avoid.
The paper describing Pheonix has won some noteworthy awards:
* Best Paper Award, MICRO 2006, December 2006
* Also appears in the IEEE Micro Special Issue: Micro's Top Picks from Computer Architecture Conferences, Jan-Feb 2007
A quick google search sends you to his UIUC homepage http://iacoma.cs.uiuc.edu/~torrella/ where you can read the full paper. C'mon guys, he's a prof at UIUC, he's not going to announce he invented the FPGA, part II. The paper's actually pretty interesting
Wow - professor discovers what FPGA designers have been doing in industry for 10+ years. How is this news? Jeez.
Meanwhile, somewhere deep in a Redmond lair, Steve Ballmer and Bill Gates are eagerly licking their chops, eager to see these patchable hardware devices and the inevitable Windows-only patch installers...
I think processor companies already do something similar w/o an FPGA.
The difference between the Pentiums and the Celeron (or whatever they called now) used to be mainly cache size -- this might have been motivated from yield considerations (in terms of the cache, since that is a large portion of the chip area). I remember reading something along the lines that they might have a few extra cache lines that can be used to replace a bad one (during the time of manufacture), by blowing a tiny fuse, etc. And I guess that if a particular chip doens't have enough good cache lines for a Pentium, then it becomes a Celeron...
I'm not a hardware designer, but I would think that a general-purpose FPGA wouldn't map well for processor implementation. My guess is that heat/power and/or speed considerations would prevent anything very reconfigurable/not-very-specialized to be used in a modern desktop CPU.
OTOH, modern Intel processors do still use some kind of microcode that can be updated via software (e.g. when the OS is running). I *think* microcode is only used to implement really complex operations or weird instructions that are seldom used. It isn't going to be used for fast things like simple arithmetic operations, etc.
Interesting reading: http://kerneltrap.org/node/2678
Since shipping operating system software before it was ready and just patching it later has worked out so well, it's only logical to do the same thing with hardware. /sarcasm
All FPGA's have cross-point which are connected are left open based on a bit stream. This bit stream is usually present in a EEPROM/EPROM which you program and on startup this program the FPGA. This has been out there in most networking (ever done a firmware upgrade) and other backplane processors. One important reason this is not sued in main stream processors are the time to boot-up and program the cross-points. Also Processors these days tend to run at ASIC timing optimized speeds which an FPGA can never support (mainly because of the increased wireload delay caused by long cross-point wires). One other good reason is processors these days tend to heat up a lot (about 100C) and there is no reliable high-temperature EEPROM that would have reliable long life at this temperature. I am really not sure if this guy has been able to address atleast one if not all of these challenges.
The FPGA could be used as an extra function processor in cases where new or faster functions are needed that are too slow when first implemented by the processor. The designers could hang the FPGA off of a main bus and allowing the processor to re-flash a ROM that holds the bit stream when the FPGA boots.
This could be great for media devices. It wouldn't fix badly designed hardware but for cases where they want to add some extra functions to extend the life of the product until the next product design is ready. If said new functions don't fit in the processor time cycle for the smooth functionality, they could use the FPGA to implement processor intensive functions and therefore extend the device for a while.
This is old news. We were doing this in military devices since the early nineties. When I worked on some flight computers for a mystery product at a defense contractor, there were all sorts of places where an ASIC had a problem and that they had added a programmable logic device to clean up the problem. In fact, I think the designs left an extra programmable logic device for that purpose. Same as when I worked in semiconductor test equipment. At a vendor of automated chip testers, there were many functions on the system that had to handle unbelievable problems and occasionally a mistake was made in an ASIC. Frequently, a patch was tried to the software to make it work and if it didn't work, the functionality was offloaded to an FPGA where the new improved version of that function could be placed. Of course if the mistake was too bad then a very costly ASIC spin had to occur. . .
It's an interesting idea. It's somewhat amusing that early on in the paper they mention the Pentium FDIV bug as an example of a processor defect that triggered an expensive recall, but their proposed mechanism wouldn't be able to detect and fix that sort of problem.
Regardless, it's nice to see some actual categorization of defects for various processors, and they do a good job of explaining why fixing the "easy" cases is very worthwhile.
"We know how to fix software really easily."
Hahahahahahahaha. Anyone who thinks that it's easy to patch several tens of millions of machines in customer homes or offices is an idiot.
Any sufficiently advanced technology is insufficiently documented.
They'd release rushed, shitty hardware that wouldn't work properly until you connect to the internet to patch it, and which would be susceptible to viruses. Viruses that could reconfigure your processor to short the +5V to ground. How fun.
First of all, this guy is way behind the times. Secondly, FPGAs are significantly more expensive than ASICs. Third, their performance is slower. What he's suggesting is akin to building all new homes out of lego in case we change our minds about the design after it's delivered. Nobody would go for it because we live in the Walmart society now, where price is the only motivating factor in purchases. Nobody wants to have to download a patch to their brand new widget either, just because the vendor couldn't take the time to debug it before shipping (not that we don't have the same situation with firmware revisions even today).
"I have never let my schooling interfere with my education." - Mark Twain
shittest idea ever. that is exactly how this will be used. to produce slow, bug riddled hardware that will drive evenone nuts.
If you mod me down, I will become more powerful than you can imagine....
I had a really good read on this, very detail, and very useful information. Thanks. Flv to avi http://www.avi-converter.net/
I work with embedded designs for a living. Almost every single design that's ever crossed my desk has either a Xilinx or an Altera FPGA between the CPU and the PCMCIA interface. It's pretty standard.
Weaselmancer
rediculous.
I took a class from this Jackass once, he is an idiot.
This reminds me of something I read about a few years back: "wafer scale integration", an idea for making much cheaper RAM at a performance penalty.
The idea was that you would design a wafer with a bunch of RAM units on it, and have a control patch with a bunch of fusible links. You would test the wafer, and find out which RAM units were good and which were defective; and then you would blow the fuses to take out the defective ones and connect in the good ones. In theory, with decent yields, you would get a predictable and large number of good RAM units per wafer.
Normally, chips are made on a wafer and the wafer is cut apart, and then the chips mounted in packages; the idea with WSI was that the wafer would not be cut apart, you would use the whole thing.
WSI never really happened; I just checked Wikipedia and there is a terse comment that poor yields killed the idea. Too bad; I'd love a large wad of really cheap RAM in a 3.5" hard disk-shaped box with a SATA connector...
The article makes it hard to tell, but perhaps he is proposing something similar. Imagine a chip with extra logic circuits that you could switch in by blowing some fusible links. If you have a defective floating point multiply, maybe you can switch out the defective one, and switch in enough logic correctly connected to make a new one that works better.
What would be kind of neat would be if you could blow a few links, and take an instruction that would have gone to dedicated hardware and make it execute out of microcode; and of course have field-upgradable microcode. Then, as long as you don't run out of space in your microcode ROM, you could fix any problem; the fixed code would run slower (microcode!) than the dedicated hardware it replaced, but presumably that would be better than getting wrong answers or crashing. And if you are lucky, you might be able to special-case the problem: check for the special case, and if you aren't in the special case, go ahead and use the dedicated hardware for full speed.
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
We already have Microsoft paying hardware device OEMs to use PICs and not release the driver code to any but closed source OS'es, so this just makes it easer to take the MS dollar and shut out OSS. A few may resist, but the surest way to kill OSS is to make it impossible to have drivers that work. In a perfect world, this wouldn't matter. We live, however, in a world far from perfection.
It worries me, if for no other reason than it's likely to be abused. How long until we see a motherboard that requires the use of closed source drivers to enable the keyboard port, or be able to use block or memory devices?
Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves.
I think that there's some potential in the idea of placing a thousand 80386 cores in parallel on the same chip.
When our name is on the back of your car, we're behind you all the way!
"A lot of you seem to be missing the point and dismissing the article as system to allow designers to be lazy and release "faulty designs." The article was less about allowing bad designs and more about allow defective chips to work thereby increasing yield and product life"
Maybe someone can apply the idea to slashdot? Lord knows our "yield" needs to be improved.
You just know it's coming....
My Own Millions Blog
The movement to fpga style cpu's means .......
1. Designs can be released before thorough testing is done meaning that potentially life threatening (or at least data threatening) errors can be introduced requiring months of waiting for a fix.
2 Now that you CPU can be on the fly re-programed it opens up a whole new world of viruses and worms.
I envision conversations with your auto dealer now. "Yes sir we understand that the cars brake system locks up randomly, but the CPU manufacturer has assured us that they will be releasing a new patch that might fix the problem in just a few months."
This is IMHO a way to introduce a high level of error acceptance into a piece of critical hardware. "Get it today! the newest Millennium Edition of the 286!"
I'm sorry, I'm to tired to be witty at the moment so this message will have to do.
Wow if software recently released was not already bad (including drivers), now gaming support boards threads will look like:
HELP!!!
I start the game then get a BsoD about nv4_disp.dll. Any1 help ?
Did you update your Ge10888 GTX ? Yeah got the new stable Forceware OMG you didn't update the card, you only updated teh drivets, u noob !
Don't you know it is now both immoral and criminal to think beyond the next quarterly report?
Now - in addition to incomplete Software - they can deliver incomplete hardware.
The user will be so glad to become part of the testing cycle.
"we are all atheists about most of the gods that societies have ever believed in. Some of us just go one god further."
An anonymous coward replied to my post below with this link to the original paper:h oenix.pdf
http://iacoma.cs.uiuc.edu/iacoma-papers/micro06_p
Basically, the idea is to include a small amount of reconfigurable logic on a conventional microprocessor. The configurable section would be used to detect conditions that trigger known design defects (or errata, as they're called in the industry), and work around the problem. The authors figure that for about 0.5% overhead in wires and silicon area, a chip manufacturer can patch around more than 60% of typical errata conditions.
Typical complex microprocessors like the Pentium 4 already ship with dozens of design defects. Including this technology on the chip would allow the manufacturer to patch around these defects on-chip, rather than leaving that responsibility to the OS and compiler developers, or being forced to recall millions of chips. This will actually lead to more-reliable hardware.
It's for fixing design defects after the design is frozen. Similar in concept to the microcode patches that Intel and AMD use for patching certain problems with their processors, but much more versatile, and specifically targeted at the most common types of design defects, according to the original paper:h oenix.pdf
http://iacoma.cs.uiuc.edu/iacoma-papers/micro06_p
The point is that Intel and AMD are already selling processors with, in some cases, dozens of serious design flaws. This technology would allow them to patch already-installed chips to make them work correctly, rather than just fixing the problem in the next revision of the silicon, and leaving their previous customers with defective hardware, which is how design defects in microprocessors are "handled" now.
I envision conversations with your auto dealer now. "Yes sir we understand that the cars brake system locks up randomly, but the CPU manufacturer has assured us that they will be releasing a new patch that might fix the problem in just a few months."
Chrysler just did that. Over 60,000 vehicles had to be recalled for a software upgrade to the braking and stability control system.
Manufacturer : DAIMLERCHRYSLER CORPORATION
NHTSA CAMPAIGN ID Number : 06V493000
Mfr's Report Date : DEC 22, 2006
Component: SERVICE BRAKES, HYDRAULIC:ANTILOCK:CONTROL UNIT/MODULE
Potential Number Of Units Affected : 50665
- CHRYSLER / 300 2007
- CHRYSLER / SEBRING 2007
- DODGE / CALIBER 2007
- DODGE / CHARGER 2007
- DODGE / MAGNUM 2007
- DODGE / NITRO 2007
- JEEP / COMMANDER 2007
- JEEP / COMPASS 2007
- JEEP / GRAND CHEROKEE 2007
- JEEP / LIBERTY 2007
- JEEP / WRANGLER 2007
Summary:ON CERTAIN VEHICLES, THE ANTILOCK BRAKE SYSTEM (ABS) CONTROL MODULE SOFTWARE MAY CAUSE THE REAR BRAKES TO LOCK UP DURING CERTAIN BRAKING CONDITIONS.
Consequence:
THIS COULD RESULT IN A LOSS OF VEHICLE CONTROL AND CAUSE A CRASH WITHOUT WARNING.
Remedy:
DEALERS WILL REPROGRAM THE ABS ELECTRONIC CONTROL UNIT.
THE RECALL BEGAN ON FEBRUARY 19, 2007. OWNERS MAY CONTACT DAIMLERCHRYSLER AT 1-800-853-1403.
It's very different where I work. We build rather unique items. A build of twenty is unusual. FPGAs allow us to design hardware that can be reprogrammed at a later time. Not for patching so much as incorporating codecs and prototcols that didn't exist when the hardware was designed.
Don't know what vendor you tried. I can regularly get the Xilinx Virtex series to operate at 100% to 120% of their rated speeds.
how in the fuck do you PATCH defective HARDWARE? I'm ignorant, someone please explain this, even though I work in the laptop repair field.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
Back in the days when software had to be right first time, it was often a lot better...
The "release unfinished shit, fix it up later" mentality doesn't work. Not only do initial customers end up with something horrendously buggy and often unuseable, but quite often the original publishers can't be bothered to actually produce any of the patches they promised so the program just remains horrendously buggy with no hope of ever getting fixed.
Besides, rushing to be first to market doesn't do you much good when all your customers think your products are unfinished half assed efforts. You need to be very big and powerful to get away with that.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
LMAO. This is called updating the firmware of an FPGA.
This idea is about 2 decades old and is used in high-cost devices. For low-cost ones, FPGAs are too expensive in comparison to statically structured devices. Does nobody check these stories bfore they appear here???
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Well, I did read the article, and I can't tell what they're claiming is "new"... my first design with "upgradeable hardware" was in the Metabox 500 settop box (1998); this device included a modem for a datacasting technology called BOT (Broadcast Online Television, developed in conjunction with the University of Dresden), and the FPGA/LCA design was uploaded to the device as part of the device driver initialization for the modem. Anytime we released a new device driver, we could change the hardware.
And we could make some radical changes, since nearly the whole design was implemented in a low-cost FPGA. At $5.00, maybe a full custom chip would have been $1.00 (at least without amortizing NREs), but it didn't really matter, it was cheap enough. Anyway, even with a full FPGA design, there are always issues of routability... you can't make any arbitrary change and guarantee you meet timing requirements, or even if it'll fit. So while useful, this isn't as magic as it might sound to laypeople.
There would be serious issues with embedding this into CPUs or other complex devices. Other than the aforementioned speed issues (LCA/FPGA is always slower than gate array, which is slower than full custom, based on the same technology), it's only so good as where the FPGA is embedded. You can't fix any problem unless the whole design is implemented in an FPGA. There's also the startup issue... if you embed the FPGA design in Flash, you have the additional complexity of putting flash down in a complex CPU core (there are plenty of CPUs with on-chip flash, but they're usually things like ARM7/9, or simpler still), and the reality that Flash only lasts so long -- do the chips start to fail completely in 10-something years? If it's loaded at boot time, then obviously you can't FPGA any of the hardware needed at boot time.
-Dave Haynie
> new way to patch faulty hardware ... a computer science professor from the University of Illinois at Urbana Champaign
... ... Daisy, Daisy ...
Dave: HAL? HAL! Open that airlock!
HAL9000: I cannot do that Dave. I'm sorry!
HAL9000: Dave! I'm afraid. I feel I am getting dumber
While this article does not sound so novel, I see that many people misunderstand FPGAs - so to set the record straight -
- History - They have been around for over 20 years (I happen to have one of the first Engineering Samples from '86 on my desk)
- Price - They can be costly - the most expensive I've heard of was about 10k - but you can get a very capable one for $5 - and everywhere in between.
- Speed -The are not slow - sure they run up to 500 MHz, which is say 10X slower in terms of clock speed than your latest intel or amd - but they can do things in parallel - there is not limit (other than chip size) to the number of parallel operations - these things kick the ass at DSP like applications - real time encoding of anything, data crunching, they are even used in super computers because of this. An FPGA, for example can do 500 million multiplications per second per multiplier block. Say a CPU could do 10 times that - the FPGA however has iterally hundreds of multipliers (up to 600 or so!) so thats about 60 times a CPU.
- Power - sure they do burn more power, generally - but there are power saving features - reconfigurability = more transistors = more power. No getting around it.
- IO limited - the latest FPGAs offer 6 gigabits per second, for a SINGLE IO pair (special IO). There can be up to 24 of these special IO on a chip, so thats huge - not to mention general purpose IO run in every standard imaginable and up to 1.2gbits per second. They are used in networking devices as switches because of this immense IO throughput.
- Reconfigurability - this is becoming more popular - for applications like Software Defined Radio - where you need to crunch a lot of data, but you dont know upfront all the alogrithms / codecs that may be needed. So use an FPGA for the raw power, plus the option to upgrade it with new standards at any time (even on the fly - I've heard of applications where the whole modulation scheme / encryption method is changed from minute to minute, making hacking encrypted communications impossible!)
They are becoming available in more and more consumer products too - things like HDTVs and the like.
"If they know that they could fix the problems later on, they could beat the competition to market."
So basically, this allows for total crap to be sold instead of just ironing out the flaws... that's comforting.
Would be surprised if this does a company any good.
On the other hand... to many people put up with bad service and products. They complain but don't switch.
Now the "rush shitty product to market in knowledge it can be patched later" philosophy is coming to hardware, too?
Amnesty International
From my own modest personal experience I know that having a device "do stuff" (be it calculate FFTs for DSP's, measure something like sensors do, be reprogrammed like this FPGA...) is generally not the main difficulty. Interfacing is an often overlooked hurdle: how is this FPGA going to receive this patch? How will the manufacturer know where the clients are?
Is this the History Channel? Come on boys, a little research before slapping it up on the wall would be appreciated.
OK, we do NOT want chip makers to be able to release "buggy" chips like most vendors release code. Intel made a slight mistake 10 years ago or so where one of their Pentium releases had a bug that caused banks much heartache. It took months for someone to notice. Problem is, this chip wasn't exactly "rushed" to market. Intel thought it was fully functional after much internal and external testing. Can you imagine what the result might have been if they started releasing unproven components just for market share?
There is no contest in life for which the unprepared have the advantage.
Forget all this FGPA crap. Use the thing that works best!
"Who controls the past controls the future. Who controls the present controls the past." -- George Orwell
Look, find one of the links to the original research paper elsewhere in the discussion, and read it. The idea is to add a small amount of reconfigurable logic to a complex microprocessor, and use that programmable logic to implement a system for working around design defects in the processor.
Wonderful for "clean room" hardware software.
... not so much:
t roducing-blue-pill.html
- 06-speakers.html#Heasman
e akers.html#Heasman
"Whether Torrellas's technology will make its way into commercial computers, however, is uncertain. "Their analysis of where bugs occur is excellent," says Wilson Snyder, a principal engineer for the high-performance computer-hardware manufacturer SiCortex, based in Maynard, MA. "It provides a good, detailed look at signals that should be analyzed to discover bugs." Hardware manufacturers could learn from the basic research behind Phoenix, Snyder says, and use it to eliminate hardware problems before chips hit the stores. But he questions whether manufacturers would ever implement Phoenix itself. Adding Phoenix onto an existing chip would take time and money, he points out."
For your Sister's computer
Joanna Rutkowska:
http://theinvisiblethings.blogspot.com/2006/06/in
Black Hat Conference:
http://www.blackhat.com/html/bh-federal-06/bh-fed
http://www.blackhat.com/html/bh-dc-07/bh-dc-07-sp
[sarcasm]
You can then just bypass the need for virtualization and just run a straight Malware OS(TM), saving us the bother of even using the web's intertube pipes for work - hell, you might even get a cut of all that "Bank" action from our new Overlords, which, of course, we'd welcome.
[sarcasm]
~hylas
Haven't we got enough problems with Windows software being released 3 years before it's ready? Zero day vulnerabilities 3 years after release isn't a bad thing?
If hardware is released like software, we would never be able to stop the finger pointing when trying to resolve a problem.
As far as features and fixes, I thought using firmware and micros in the controllers fixed all that.
Former geek, now I can rest...
I was hoping for some idea like slapping an X gate FPGA onto the package of a regular processor, and then if in later testing it is deemed to have a bad cache line, or floating point unit. it could be reimplemented in the FPGA section and wired in, possibly increasing yields.
I think the FPGA is still going to be too slow to do even that (IIRC FPGA are big, and thus slow)
The best I can come up with is a flashable area for storing microcode updates so the OS doesn't have to on each boot.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Great because software companies rushing out bugger products isn't enough, now this dude has to make away for companies to make my hardware buggy as well.
For a majority of the defects they analyzed for the paper, they figure that flushing the pipeline and restarting the problematic instruction will work around the problem. Of course, you'd want to have a more-sophisticated version for the more complex cases, but even the naive implementation would drastically reduce the chances of hitting these design defects.
To work around this, you detect the simultaneous L2 flush and L1 miss, and temporarily disable power management. On the next instruction, you put it back the way it was. They also mention that since so many of these defects require such precise timing, just flushing the processor pipeline and restarting the current instruction will work around most of the defects they looked at.
As in... yeah it sort of works sometimes. Not quite right. But lets sell it anyway and fix it later. i.e. sell defective products?