Hacker News new | ask | show | jobs
by Phillipharryt 1635 days ago
Very interested to watch the second part to this video, off the top of my head I can't come up with a situation in which analogue computation or signals are better than digital ones. Digital's versatility means we are making 2 signals represent an infinite number of other possible values, so there is certainly an inefficiency there, but the analogue signal's propensity to degradation and uncertainty is another hurdle I would find hard to overcome and produce a better computer with.
7 comments

Pure speculation ahead.

It doesn't have to be better in an absolute sense, but being good enough for a cheaper price, lower power usage, smaller footprint, etc.

I think a lot of floating point calculations could fall into this. For example in neural nets, maybe there are analog versions to calculate the weights, sigmoid function and so on.

And for graphics, you don't really need the exact color value of each pixel. Maybe those could be estimated in analog functions too.

I certainly agree with the idea of not being better in an absolute sense, not sure I agree with both use cases. Graphics are built around digital representations of colours and shapes, Vectors are incredibly easy ways to represent 2d graphics, and are very easy to manipulate for digital computers. Polygons were quickly discovered as a memory efficient way of doing the same things in the 3d space. Analogue graphics representation or manipulation became outdated very quickly. For example https://www.youtube.com/watch?v=0wxc3mKqKTk&ab_channel=VICET... shows how much old analogue machinery is required to replicate what could currently be done by most phones. I don't know enough about your other possible use case to comment on it.
What I was imagining was the scene still being represented digitally with polygons, but the shader could still benefit from analog functions. Say, you could do functions like sine and logarithms faster/better/cheaper. So you'd get the same image, but with some added noise. Again, it's just pure speculation on my side.

That video was amazing, by the way!

High frequency signal processing is an obvious example of a case where an analogue computer can be superior under certain conditions. Say you want to detect when a signal has risen above a certain average magnitude over a particular time window. You can quite easily do that using a few op amps and passive components, even up to GHz frequency signals. To do the same thing digitally would require high end ADCs and either a very fast CPU or an FPGA. If your budget is tight then even frequencies of 1MHz might prove challenging to process digitally.

This is probably one of the reasons why analogue fly by wire flight control systems existed quite a way into the digital age. The original Su-27 had an analogue fly by wire flight control system, for example.

https://youtu.be/vHlbC74RJGU

I watched this talk, which describes the current von Neumann computer architecture as "analog communication with digital computing". This consumes more energy than digital communication with analog computing. Projects like Neurogrid, Intel's Loihi chip and pretty much any system that can efficiently run spiking neural networks.

Neuromorphic computing is where this is going.

The resurgence of analog computing is common hype thing. I guess this is the latest iteration that the video is referring to

https://spectrum.ieee.org/analog-ai

Here is another random article from 2019 https://semiengineering.com/using-analog-for-ai/

Analog washing machines had one nice practical thing since you could force the "program" counter forward or backwards. This was especially practical if you were with a tight schedule and the program contained unneeded parts. You could skip them manually. Of course you had to know what you were doing, like not open the door with water in the machine.
Open source! In the old days when taking off the lid or back plate you would find a full schematic of the analogue computer inside inside.
It’s been a while, but didn’t the program knob in those machines turn in discrete steps? If so, then that system was — to be pedantic — a mechanical digital computer, not an analog one.
The most direct analogue (ahem) would be a music-box dial or perhaps a Jacquard loom.

The washer cycle(s) were driven by a clock which rotated a drum or cylinder with pegs that would start and stop specific actions. So, fill, agitate, drain, spin, rinse (fill, agitate, drain, spin), and spin-dry. The mechanisms were bog simple.

Whether you consider these analogue gear logic, or digital pin memory is somewhat arbitrary and a semantic distinction. Either way, the "programme" is fixed, and there is no interactive logic, only a pre-defined behaviour which is followed. Fill and drain were controlled via float switches, I believe.

Users could modify the routine somewhat by selecting different sections of the dial (which programmed different wash cycles) and by where within each the wash started (longer or shorter pre-soak), by selecting fill levels, and by selecting water temperature.

There is nothing that prevents a digital machine from exposing such UX to the user.
Ah, but there is, corporate culture and design culture!

Of course, not much technical barriers, maybe some minor complexity in actually showing it and providing an interface.

The "leading edge" of most corner technologies are usually better in analog. For example, SDRs in radio are only effective up to a certain data rate and frequency bandwidth. At some point analog signal processing (in this case classic "analog radio") is more effective and often the only possible implementation.

Thankfully I work on the leading edge of several technologies and I'm trained in analog so I see this stuff all the time.

Indeed, something like converting the frequency of a laser to a usable clock signal has to be done in the analog domain, and not necessarily even in the electronic domain. Also, (as Horowitz and Hill pointed out) getting higher performance digital electronics to work requires understanding analog techniques.

I do some analog work too, but today's mantra is: Get it into the digital domain as soon as possible.

I have no experience with analog computers at all, but I think those could be less of a problem as of today. You could plug a bunch of digital sensors/controllers/actuators to the analog computing unit to monitor for those, which was simply not possible in the 60s. Also, you can check their accuracy against their digital equivalents or simulations, which are less efficient but yield better results.
Doesn't the inclusion of the digital accuracy checkers then decrease the efficiency, and mean you might as well use a completely digital computer? Just supposing here, but interfacing digital with analogue probably is a poor middle ground between the versatility and ubiquity of purely digital computers (countless existing systems exist to do whatever you want, with optimised algorithms and chips to work with) and purely analogue (presumably gain efficiency advantage by not having to cater to versatile use-cases).
> Doesn't the inclusion of the digital accuracy checkers then decrease the efficiency, and mean you might as well use a completely digital computer?

Not really. Whatever output the analog computer returns can be digitized with no detriment to its performance, pretty much in the same way a sensor which measures a physical property can have its output fed into a digital system with negligible interference over the original measurement.

Also, the same rationale can be used to probe intermediate steps and automatically check for their accuracy, even if only during validation phase. This is a possibility that was definitely not available, say, 60-odd years ago.