3
$\begingroup$

I've just been doing some pondering, and given the fact that computers already operate on fundamentally continuous physical quantities, and then we have to use transistors to turn those real quantities into effectively discrete numbers, why don't any computer architectures just skip the intermediary and do away with floating point numbers to represent reals. I understand for general purpose computing this is probably more effort than it's worth, but high precision scientific computing is such such a large field, it surprises me that there aren't any general purpose chips that actually leverage the continuous nature behind the representation of numbers on computers. What are the challenges in making an analogue computing machine general purpose enough to be widely used, and are there any potential solutions to those problems? It's a bit of a vague question, I know, but at the same time my knowledge is quite vague so it's difficult for me to ask more precise questions. Any related links or avenues for further research would also be greatly appreciated.

$\endgroup$
1

2 Answers 2

3
$\begingroup$

There are many challenges:

  • Digital logic can be made reliable, so that small variations in voltage etc. are corrected. It's less clear how to do that with continuous/analog logic, so small noise and/or errors could compound.

  • This would at best let you represent fixed-point numbers, not floating-point numbers. For instance, if a wire carrying $x$ volts represents the number $x$, then you won't be able to accurately represent either $10^{-9}$ and $10^9$ with such a representation, yet standard floating-point arithmetic can easily represent very small and very large numbers with no difficulty. A lot of scientific computing relies heavily on floating-point numbers, so limiting to fixed-point numbers is a significant limitation. The up-front cost of designing hardware is very high, so if you're going to design hardware, it needs to be widely applicable.

  • The precision would likely be poor, due to noise in analog circuits. You might get two or three digits of precision (only). That's not enough for most scientific computing.

  • How would you multiply two numbers? It seems very difficult to design a circuit that multiplies two numbers: given one wire powered at $x$ volts and another wire powered at $y$ volts, you'd need a circuit that produces an output wire wired at $xy$ volts.

This makes analog circuits likely not very attractive for general-purpose computation or for scientific computing in general. Still, there have been proposals to use analog circuits for some very specific tasks, such as computing neural networks.

$\endgroup$
5
  • $\begingroup$ And given one line powered at x volt, another powered at y volt, try designing a circuit that outputs x times y volt. With a relative error less than 10^-15. Within much less than a nanosecond. $\endgroup$
    – gnasher729
    Commented Jan 19, 2022 at 5:29
  • $\begingroup$ If you look at very expensive HiFi equipment, you will see what they have to do to get 0.1% precision within two dozen microseconds. $\endgroup$
    – gnasher729
    Commented Jan 19, 2022 at 5:31
  • $\begingroup$ Could anyone (maybe downvoter) explain the downvotes? If you think that question is off-topic then vote for migration. Why punish people for good anwers? I do not see other reason to do so. $\endgroup$
    – Evil
    Commented Jan 19, 2022 at 19:13
  • $\begingroup$ Just as a minor nit, multiplier circuits (i.e. voltage-controlled amplifiers) aren't difficult to build. But as everyone has rightly noted, getting high precision is very hard. $\endgroup$
    – Pseudonym
    Commented Jan 19, 2022 at 23:22
  • $\begingroup$ Trying to replicate the extremely high dynamic range of, say, an IEEE-754 binary64 (a.k.a. double precision) with analog technology is equally hard. $\endgroup$
    – njuffa
    Commented Jan 20, 2022 at 20:32
0
$\begingroup$

The problem you identify is much deeper than computing.

The main use of computing, for various kinds of business administration, is not a continuous problem at all, but one that deals with the processing of discrete symbols.

The predecessor to the electronic computer in this field, pen and paper, also used discrete symbols, so you can see that the reduction of the continuous to the discrete did not start in the computer era.

The problem with continuous phenomena is that they cannot be represented. Therefore one of the most basic activities that humans perform on an ongoing basis is the reduction of the continuous to the discrete. Speech is reduced to words and alphabet letters. The visual field of the eye is reduced to objects and the occurrence of processes (which can be spoken about in words). All sorts of things are reduced to discrete symbolic measurements.

Even the "analog clock" is reduced, in the human reading of it, to cardinal hours or smaller discrete divisions, and it incorporates discreteness internally in terms of its gear teeth and the periodicity of its oscillating element (typically a pendulum). Even a sundial has a discrete scale - otherwise, you would just read any old shadow.

The main problem with analog devices is precisely their residual continuity, which is a source of mental effort (and variability) for reducing their final output to the fully-discrete, and a source of error in their internal processing.

The digital computer essentially works by seeking to reduce all its internal and external workings to the discrete, to mirror exactly what a human would do with pen and paper. It is a final perfection of implementing pen-and-paper working as a mechanical machine. The digital computer is a general purpose analog computer.

The only residual area for the use of analog machines is for special purposes. This includes cases where no known discrete (pen-and-paper) method exists for the processing being performed, or where it is too complicated for a digital machine to perform discretely.

This also includes cases where the sheer simplicity of the processing allows it to be implemented very simply in terms of basic mechanical or electronic components (without the overheads of creating a general-purpose assembly of such components operating on digital principles).

Incidentally, what we think of as analog clocks remain in use firstly because the representation of time as angles of clock hands remains preferred - most of us are so familiar with them that the cardinal angular patterns have been learned as discrete symbols, like an alphabet, so it is very easy to read the approximate time even at a glance through peripheral vision (whereas a digital display requires four symbols to be parsed, whose indistinctness requires the use of central vision). Also, the complexity of incorporating a digital computer and a stepper motor to generate the angle for each hand, is far more than just implementing the whole thing as a gear train.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.