5 ms·
I know nothing about analog computing. Is it possible to “program” an analog computer as one does with a digital computer? For example, can a compiler be made s
by avidphantasm 4y ago
I know nothing about analog computing. Is it possible to “program” an analog computer as one does with a digital computer? For example, can a compiler be made so that an recognizable programming language can be used to control an analog computer? Or is the “programming” done at the hardware configuration level?
- bardworx 4y agoIt’s hardware logic so there is no compiler. It’s kinda like a single purpose computational device.
- jacquesm 4y agoAnalog computers simply are computers that use a sliding scale between whatever counts as zero and one. You define relationships between inputs and outputs and just like with digital computers you have to deal with underflow and overflow. If it works it works well enough, but the big killer is noise. In digital you have this step twice: quantization on input and the reverse on output leading to everything being off by a little. But in the analog domain the noise increases with every step and there is no way to correct for it. So if at any point in time you are dealing with very small values the output of your analog computer will trend to become more and more noisy, until the output is unusable. This is why digital computers won out over analog computers: they are deterministic, whereas analog computers would like to be and sometimes are deterministic but the nature of the device works against you all the time. The kind of abstractions that we can achieve in the digital domain would be impossible in the analog domain.
- amelius 4y agoI think in DL applications the sigmoid threshold functions can suppress the noise.
- adrian_b 4y agoThe noise problem affects digital processing as much as analog processing, because every arithmetic operation, e.g. addition or multiplication, adds a rounding noise. The digital noise has the advantage that it normally does not depend on time or temperature, i.e. 5 years after you have bought it, unless it has broken meanwhile, the digital device will produce the same noise as in the first day (when executing the same program). Also, a properly designed digital device will produce the same noise regardless if the weather is warm or cold. The greatest difficulty in analog processing is to avoid changes in behavior caused by the variable ambient temperature or by aging. Besides the immunity to temperature and time effects (within reasonable ranges), the second advantage of digital processing is that it is much easier to implement programmable devices, where, e.g. if the noise is too high, one can just change the algorithm to use numbers with more digits. That will work fine, even if it may increase the power consumption or reduce the signal bandwidth (due to slower digital operations). On the other hand if the SNR is not good enough in an analog computer, increasing it may require a complete redesign.
- specialist 4y agoAm also noob. Another question: Is there a connection between clockless and analog computing? I dimly recall reading about Ivan Sutherland (and maybe Sun Computers) pushing clockless. And for some reason I associated the two strategies. I (think I) get that analog is continuous function. And I think of clockless as like async and queues from high level programming languages. Thanks for humoring me.
- jacquesm 4y agoAnalog computers are - in all cases that I'm familiar with - clockless. With respect to Sutherland, I think you're talking about 'fleet', which was a digital async solution, HN discussion from back in the day (13 years ago, all resources seem to have vanished): https://news.ycombinator.com/item?id=723882 https://news.ycombinator.com/item?id=723882
- adrian_b 4y agoIt is possible to do analog processing of signals that have been sampled in time, using a clock signal, but which have not been quantized in amplitude. Some circuits of this kind are widespread, e.g. the so-called switched-capacitor filters or the so-called charge-coupled devices (CCD), which are used in many image sensors. It is possible to make an analog computer that works like a synchronous digital computer, with all operations done under the control of a central clock signal. In such an analog computer, the digital registers of a digital computer are replaced by capacitors which store electrical charges that are the analog quantities corresponding to the numbers stored in the digital registers of the equivalent digital computer. Such a synchronous analog computer would be slower than an analog computer that works in continuous time, without a clock, but the synchronous analog computer can be made to have a higher precision, because its precision can be made to depend only on area ratios between capacitors, and such ratios can be very stable during aging or temperature variations. In an analog computer with continuous time, without a clock, the precision is also influenced by other kinds of electrical components, at least by resistors, and in integrated circuits it is difficult to make high-quality resistors.
- 4y ago
- nradov 4y agoTraditionally analog computer programming has been done through manual hardware reconfiguration, like manually plugging in wires. It should be possible to build a programmable hybrid digital-analog computer with the digital component executing the program and essentially treating the analog components as peripherals. So the connections between analog components could be dynamically changed. This would require a completely different programming paradigm.
- topspin 4y ago> Is it possible to “program” an analog computer as one does with a digital computer? Yes. You design a circuit; you're program is a diagram. Here is a simple one[1]. Believe it or not when you get good you can suss the basic function of such a thing pretty fast, much like a decent programmer can grasp the structure of code they've just encountered. There are a lot of idioms to learn, and you need to be able to approximate logarithmic functions in your head. The 'op' part of op-amp (those big triangles) means 'operation,' as in mathematical operation. Their output is some mathematical function of their inputs (the + - terminals). That circuit multiplies two numbers and divides that product by a third number. [1] https://electronics.stackexchange.com/questions/325472/how-does-this-analog-op-amp-multiplier-divider-work https://electronics.stackexchange.com/questions/325472/how-d...
- magicalhippo 4y agoIt should be noted that the op-amps don't perform the multiplication directly, they can only do scaled/weighted addition or subtraction. It should also be noted that this circuit can only operate on positive signals. A full four quadrant multiplier circuit, where both inputs can be positive or negative, is more complex AFAIK.