![]() |
|
|
#1 |
|
Jun 2003
2×7×113 Posts |
I am just curious that are there any conditions where the computer may produce an invalid result for a a+b compution.
By conditions I mean that the CPU is too hot etc. Please explain if you can, as to why the computer would do so and what is the solution to that problem. Citrix |
|
|
|
|
|
#2 | |
|
Apr 2003
Berlin, Germany
192 Posts |
Quote:
Temperature is a factor, which has an effect on the behaviour of the materials used for creating all the transistors and wiring on the chip. Higher temperatures make the electrons, which are flowing through the transistor, faster, while the reverse happens to the metals used for connecting individual transistors up to different areas on the chip. While we wouldn't care about faster switching transistors we surely doubt, that slower electrons in the wiring metal layers will help us.Now imagine the processor clock as a signal switching between a low and a high voltage (high = the operation voltage of the processor). During such a switch a lot of internal results are transferred to another place. Due to the internal processor pipelines all things have to be processed in small steps, so that not too much is done during one step, which allows higher clock speeds. The internal units, which do all sort of things (like an adder, a multiplier, a store unit etc.) are designed in a way, that they'll do their work fast enough to finish before the (clock) switch to the next step happens. Sometimes such operations are designed to finish in half a clock cycle (between clock up->down and down->up) and more difficult operations are designed to use a full clock cycle (between clock down->up and the next down->up flank). The chip designers use target specifications (like min./max. temperature), for which the chip has to do its job as expected. And sometimes they have to design things, which are close to the given limits (eg. an 64 bit addition could take 360 ps, while a full clock period is 400 ps). A multiplier is more difficult, because it does a lot of parallel addition operations at once. And during these operations some other things are necessary like taking care of the carries. If the temperature is higher than the chip is spec'ed for, then it could happen, that the signals in the wires are so slow, that some information like a last carry bit or some other bits of a multiplication result don't make it into the transfer latch (where they are stored to be fed into the next units) in time. Then the result is wrong. Such places are also named "critical path". Solution: Use a better cooling solution or a lower clock speed.
Last fiddled with by Dresdenboy on 2005-08-05 at 14:13 |
|
|
|
|
|
|
#3 | |
|
∂2ω=0
Sep 2002
República de California
103·113 Posts |
Quote:
|
|
|
|
|
|
|
#4 |
|
Jun 2003
62E16 Posts |
Ewmayer, So one step is slower, it will slow the whole calculation, not produce wrong results? When can a computer produce wrong results?
Assume for simplification you are trying to add 1+0=1 , can the computer return 0 to this in some odd circumstance? Citrix |
|
|
|
|
|
#5 | ||
|
"Richard B. Woods"
Aug 2002
Wisconsin USA
22×3×641 Posts |
Quote:
Quote:
|
||
|
|
|
|
|
#6 |
|
Jun 2003
2·7·113 Posts |
Thanks cheesehead, that makes sense! Can anything other than heating also cause this problem?
Citrix Last fiddled with by Citrix on 2005-08-06 at 13:58 |
|
|
|
|
|
#7 | |
|
"Richard B. Woods"
Aug 2002
Wisconsin USA
22×3×641 Posts |
Quote:
For instance: cosmic rays. Seriously. Example: A high-energy gamma ray from space smashes into your CPU chip one morning. It smacks straight into a silicon atom in one of that CPU's gates and knocks it around so hard that that atom knocks a number of others out of place and scatters a bunch of electrons ... just as the adder was outputting the pulse for the 1-bit after adding 0 + 1 through that gate on its output side. The abnormal electron spray disrupts the circuit pulse so that it looks like a 0 instead of a 1. Everything settles down quickly, and a couple of missing Si atoms don't really have a lasting effect ... but the erroneous output pulse causes 0 + 1 = 0 that one particular time. Over a few years more cosmic rays mess up the nice neat silicon lineup in a memory chip until ... one day bit 2 of the byte at location 1F88843 gets permanently disrupted so that it never again reads out a 0-bit, but always gives a 1 no matter what data was written to 1F88843. So a memory chip goes bad after working perfectly for years. (BTW this type of problem will happen slightly more often to a CPU in mile-high Denver than to a CPU in sea-level Miami.) (Egads! It'll also happen more often here in SE Wisconsin where the soil has a higher-than-average radium content and breathing radon in your basement is a significant lung cancer risk.) Last fiddled with by cheesehead on 2005-08-09 at 00:11 |
|
|
|
|
![]() |
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Error while Computing | Antonio | NFS@Home | 5 | 2016-06-30 17:30 |
| GPU Computing Cheat Sheet (a.k.a. GPU Computing Guide) | Brain | GPU Computing | 20 | 2015-10-25 18:39 |
| How to start GPU computing? | colinhester | GPU Computing | 6 | 2011-07-25 13:54 |
| The ATI GPU Computing thread | Brain | Hardware | 7 | 2009-12-19 18:54 |
| The difference between P2P and distributed computing and grid computing | GP2 | Lounge | 2 | 2003-12-03 14:13 |