I have never considered fault tolerance is a reason for using DMA.
Not sure why you think a claim was made PCs are fault tolerant, quite the contrary, I amI certainly disagree. I have not known of any PC to be fault tolerant.
At the lowest level (commercial PC speaking) , the only mechanisms I am aware of that
were used as an attempt to incorporate some degree of robustness are memory parity checks,
CRC in data storage, parity and error detection and correction in data transmission, brown-out
detection in the power supply system and watch-dog timers in the processor.
Totally agree, a single piece of HW can only contribute part of the solution. No claim was madeMy point is, you can make SW fault tolerant but it is more difficult to do so with single piece
of HW.
These we mostly can design for.
- power supply variations
- brownout
- power line glitch
- ground bounce
- temperature fluctuations
- component degradation
- over-temperature abuse
- EMI
- alpha radiation
- manufacturing defects
- creeping solder
- lead-free solder whiskers
- skewing of clock and data transitions
- transmission line reflections
Do not read what NASA tells you. They only try to justify their budjet (that is why they say we have 8 planets today).Probably NASA the best resource on this discussion. Tons of work on both SW and HW
fault tolerance. I am reading an interesting paper now, as I am weak in this area and
have been curious about how those systems achieve their fault tolerance.
As you point out one resorts to HW, watchdog, as a crude method for fault detection.
More advanced medical products, like injection pumps, use dual processors to achieve
a little higher level of robustness.
I think in earth based system, non radioactive environment, that HW is more fault
tolerant than SW, as SW faults, systems with memory managers, many threaded
applications using stack processes, I think more problematic. One can argue what
about environmental stuff, like noise, affecting HW. That we can usually design for.
But complex SW applications we never test for all possible states in a system,
largely rely on belief logical SW modules provide a firewall against fault propagation.
Then we funnel all that thru stack operations and memory managers and hope for
the best. Mostly works. To wit how many times has ones PC hung, frozen, tanked in
a career. I would posit thats mostly SW inadequacies in multi million line code
systems.
So I think any process I can do in HW, partially or fully, more robust. So for me DMA
Is one part of the solution, when possible.
I think we agree to disagree. But I am interested in what other designers think about
DMA and reasons for use. Should be instructive, at least for me.
Regards, Dana.
The poor engineering practices become even more, they are included in the government requirements and when I tell someone you have to write it day/month/year so we have an order, he says that is not how we do it here with hatred and contempt.Here is some food for thought.
How many times have we made this error or seen someone make this error:
if ( A = B )
{
}
This is a programmer's error not rejected by the compiler or software development system.
Should the compiler detect this as an error or flag it as a warning?
Or another one:
using two or more variable identifiers that are similar but using the wrong one:
Example:
int ThisHour, thisHour, thishour;
Btw, the Y2K bug was human introduced error as a result of poor design/engineering practice and methodology.
And we still continue to invite catastrophes when we write our dates as 08/07/09.
I can personally attest this has been very effective in my self induced personal hair loss program.How many times have we made this error or seen someone make this error:
if ( A = B )
{
}
by Jake Hertz
by Jake Hertz
by Duane Benson
by Jake Hertz