5 ms·
When you use a hard drive you are already using a "stable" CPU, you are sure that the checking operations(CRC...) you do are well done. How are you going to ch
by forgottenpaswrd 16y ago
When you use a hard drive you are already using a "stable" CPU, you are sure that the checking operations(CRC...) you do are well done.
How are you going to check something is well done without doing it if you don't know the solution?.Whatever you do you are going to add a ton of new logic(more consumption, and complexity and HORRIBLE BUGS on hardware level).
I meet people that had to manage hardware bugs when CPUs where not as reliable as today(automatic testing in VHDL and Verilog has helped a lot), like the people that worked in the first Cray computers. It made their lives miserable, boring, repetitive and painfully slow work.
The worst bug in existence for a programmer is the one that appears and disappears randomly and when you had invested months of work trying to find it on your code, you find is a hardware bug!!
- coderdude 16y agoTo quote myself from above: >>So software (or another part of the CPU) will handle the errors so that the programmer doesn't have to check that every single operation worked correctly. Now, does your comment have any purpose?
- reitzensteinm 16y agoI always imagined that this would work by doubling up the hardware, requiring two logic units to agree, if they didn't then computation work would be redone, much like a branch prediction failing. This would obviously not help power consumption at all, but freqeuncy could probably be scaled up quite a bit. It also assumes that if an error happens it's unlikely to repeat in the same way in the second logic unit. But that may not be a reasonable assumption.
- gdickie 16y agoAt the lowest level, you don't need to double-up, you can use an error correcting code. If the memories and registers on a chip use a multiple-error correcting code, then the underlying error rate could be quite high without making any difference in the user-visible error rate. Similarly you could use noisy-network protocols for on-chip wires, so that each signal path doesn't need to be perfect. Again you don't need to double-up. Instead you lose a small percent to overhead, and a delay in order to encode / decode.
- reitzensteinm 16y agoHow would the error correcting code work for something like a floating point multiplication? Correcting errors in storage is simple, but correcting errors in computation seems like a significantly harder problem.