Analog computing may be coming back
bellmar.medium.com
bellmar.medium.com
Analog computing is the closest thing to bioengineering in fundamental computer science that I know of, so I am confident that it will find a niche. I remember reading about Mythic AI here on HN, who were doing some cool work with analog computing chips for ML. My hunch is that matrix multiplication is the most expensive mathematical operation we do as a society (not unit expensive, but in overall absolute cost) - and our progress in AI is directly proportional to how easy / cheap it is to run.
For example, you might decide that 0 volts is a logical 0 and 5 volts is a logical 1. If you get everyone to agree to this convention then you can build components that talk to each other. Unfortunately, it’s very difficult (impossible) to get to exactly 0 or exactly 5 volts. So instead you decide that anything less than 2 volts is a logical 0 and anything greater than 3 volts is a logical 1. This setup makes your circuits quite robust to noise.
To further improve things, you might decide that when you want to output a logical 0 you must produce a voltage less than 1 volt and if you want to output a logical 1 you must produce a voltage above 4 volts. This convention allows your system to continually correct voltages away from the undefined region (between 2 and 3 volts). A marginal input of 3.1 volts gets interpreted as a logical 1 and then output above 4 volts. This “self-correction” is what made digital computers the revolution they are.
Congratulations! You have just built an analog computer to use the Law of Cosines to solve for line segment AC. Non-dimensionalize your result and its a general LofC solver. A problem that (I suspect) would take the majority of modern day Eng undergrads a week to program without the use of the math lib[1], can be solved by any keen middle schooler.
Now build a robot that measures AC for you and you have an API for your analog computer.
Typically an analog computer is thought of as a set of opamps and diodes, whose currents and voltages solve a set of non-linear ODEs; but thats a very narrow view. An analog computer is, ultimately, any physics experiment whose model is known
Wind tunnel? Navier Stokes analog computer
Cold atoms traveling through a double slit in a magnetic field? Analog Quantum computer
RCL circuit? Analog computer solving the response of a car's suspension.
[1] code reuse and libraries are a big reason why digital computers are more popular to solve models nowadays. Cost, bandwidth, are another. Ostensibly so is reproducibility. But if CS scientists cannot get reproducible builds, what hope does a humble physicist hacking on C or Matlab have?
Oh oh oh! and also resistor/capacitor circuits! Great for integration or differentiation!
Integration and differentiation have interesting audio effects; maybe our ears might be one of the better analog computers.
An integrator is just a low-pass filter and a differentiator is just a high-pass filter, so you'll most likely get "boring" audio effects ;)
This line made me laugh out loud, but what an amazing explanation and set of examples. Thank you.
The original ECU in my 1980 Datsun ... is digital, right? I just never thought of the insane analog vacuum pot system that controls the cold start valve and the air conditioning selector and the cruise control to also be a "computer" but I guess it does compute things, in its humble way ;)
Does a 1980's Datsun have an ECU? That's not obvious to me. Even a 6502 would be an expensive add on at the time given car margins. Maybe a one bit controller?
But there are analog solutions to all these control situations. And you don't need vacuum tubes!
Measuring and adjusting the fuel-air mix is the carburetor's job. The carb doesnt just add fuel. It adds the right amount of fuel. Its needle calibrates it for different conditions (namely pressure).
The spark advance "computer" was super cool. Originally spark advance was a lever controlled by the user. Faster rpm -> adjust for more advance. Eventually the lever was attached to a governor (a set of balls attached to a spinning linkage and a stiff spring. It measures rpm) and the spark advance disappeared under the hood.
The automatic version of your car would have had a (very complicated) hydraulic circuit in the tranny pushing pistons that measure throttle, rpm, velocity and choose the gear accordingly.
The manual version had a vast organic neural network doing the same job but using just sound pitch of the engine. The manual transmission was cheaper because it didn't include the neural network shifter except on the very highest end cars - think RRs - and then only as a service (early SAS model).
German WW2 aircraft were fuel injected so they probably used a governor attached to the throttle wire and pressure gauge to guesstimate the mass flow and therefore the fuel to inject. There's a front page HN submission - the fuel control system of those engines or the original Mercedes Gull-wing!
All of the hydro-mechanical stuff described were slowly transistorized (but kept analog) in the 70s. In the late 80s to 90s everything became digital except the transmissions that took longer.
of course https://www.classiczcars.com/forums/topic/63812-1980-280zx-e...
picture https://www.electro-tech-online.com/attachments/4-ecu-full-s... a ton of Hitachi chips, big one on top seems to be some kind of ADC.
https://en.wikipedia.org/wiki/JECS build on BOSH license using Hitachi HD46802P (Motorola 6802 clone). Here reverse engineered https://github.com/eccs-reengineering/280ZX-Turbo-ECCS
Bosh shipped analog controlled d-jetronic in 1967 based on US patents/designs from fifties https://jetronic.org/index.php/en/d-jetronic/51-history.
Afaik first mass produced digital ECU was shipped by GM in 1978 (Motorola 6802 based). Ford also shipped some Toshiba ECUs in 1979. Bosh first fully digital ECU (Intel 8051 based) was https://en.wikipedia.org/wiki/Motronic in 1979 like Datsun/Nissan. Ford went full ECU in 1983 (https://en.wikipedia.org/wiki/Intel_8061)
Coupled together the embodied a mid sized equation (of the other way around), live and reactive as we'd say today.
Kinda blew my mind.
Imagine a NxN matrix-matrix multiply. The computation part is (naively) N^3 multiplies. The conversion back to digital is only N^2 operations, and those operations may be much simpler than digital multipliers. If there’s a way to do the N^3 multiplies as analog, then we can potentially save a lot by converting to and from binary to enable the analog phase.
If you know of any startup working on this let me know because I'd love to join the revolution.
I don't see why it shouldn't use photonics.
My team at Intel Labs is hiring, as are a number of well-funded startups.
Could you give some details? Claims about "forever" often don't hold up. I guess you're referring to things like component size in relation to the wavelength of light used? One could use smaller wavelengths. Integrated photonics is certainly being done and also commercially relevant (in telecommunications). What integration density would you consider not-abysmal? How much does integration density matter if you have very low loss (which means low power dissipation, a huge problem for semiconductor electronics) and can just make big chips?
There is also research arguing that optoelectronics might eventually be very useful for computing, e.g. recently [1]. (Yes, this is by researchers who need to appear relevant. However, if we dismiss their arguments based on that alone, we can abolish all research altogether.) Why do you disagree? Again, you were talking about forever.
The same issues that affect electronic VLSI manufacturing also apply to trying to use light on-chip. The semiconductor industry had to transition to EUV (13.5nm) light to make it work. But that has huge and inefficient light sources.
Photonics makes sense if one end of your system has light on it; if you're building a LIDAR system, or data transmission over fiber, or somesuch. I have not yet seen anyone doing computation at scale in light.
Moreover even in a hypothetical scenario where we somehow were able to find materials applicable to smaller wavelength, the deBroglie wavelength of an electron is ~1000x smaller, than that of a Photon at the same energy. So in terms of integration density electrons will always have a 10^6 - 10^9 (2d - 3d) theoretical advantage over photons, which means that investment in electron based computation will have a much more likely eventual payoff.
Take for example https://www.nature.com/articles/s41586-020-03070-1, they have a bunch of projections for what they hope to achieve over time. The most fantastical figure they give is 50 Peta MAC / s, but this doesn't take into account the PCM programming time.
If you take a look at the supplementary material https://static-content.springer.com/esm/art%3A10.1038%2Fs415... it becomes clear that they currently have a much lower TOPS/Watt figure than current generation ML ASIC like the TPU and this neglects all the expensive experimental optical equipment they would need to miniaturise. So even in their most favourable comparison they are 5x worse. Most of these papers unfortunately are full of hype and claims like that.
In fact reprogramming the optical non-linearities typically is much slower and energy intensive than retrieving and flipping some bits. Which makes non-static non time-multiplexed computation extremely slow compared to whatever the "best" case static scenario is.
Even in the recording studio back in the days of vinyl pressings all ran on studio grade magnetic tape with a higher dynamic range (not by much, albeit), but the sound that the artist was going for was typically hindered by analog recording media in a way that isn't true today.
It's not really a case of them "producing different frequencies when read." It's that CDs are capable of recording and reproducing a broader range of frequencies than vinyl.
Which is a shame for me since I have a entry-level-audiophile setup and just stream and have little desire in getting into vinyl.
You can read them without damaging them slightly. You can't make a perfect copy, so when the vinyl detoriates, you will not be able to "make a fresh copy".
CDs can be copied perfectly and can be moved to superior tech, e.g. SSD. You can continue copying a digital version for the next 1000 years without any loss.
What is a drawback to most, can be a benefit for others.
Many like listening to LPs not because the quality is superior, but because the quality is worse.
Musicians often like old analog equipment because it creates unexpected sounds and sparks ideas (pun partially intended), and may have a nostalgic feel that's hard to emulate in digital. Maybe digital equipment can have randomness algorithms, but they probably have a learning curve.
"each array element had nearest neighbor connectivity so you would calculate nine correlations, an autocorrelation and eight cross-correlations, with each of your eight nearest neighbors, the diagonals and the perpendicular, and then you could interpolate in correlation space where the best fit was. "
"And the reason we did difference squared instead of multiplication is because in the analog domain I could implement a difference-squared circuit with six transistors and so I was like “Okay, six transistors. I can’t do multiplication that cheaply so sold, difference squared, that’s how we’re going to do it.”
"little chip running in the 0.8 micron CMOS could do the equivalent operations per second to 1-1/2 giga operations per second and it was doing this for under 200 milliwatts, nothing you could have approached at that time in the digital domain."
Avago H2000 chip did all the heavy lifting _in analog domain_. No DSP, it was too expensive for digital domain (cost of first civilian handheld GPS receivers also doing heavy autocorrelation, 1998 Garmin StreetPilot was $400-550 retail).
For a signal to convey 8-bits worth of information, it will need to have 256 distinct levels. It we want the signal to range from, lets say, 0 to 5v (which is already quite high), each level only has about 2mV range. This much can easily come from cross-talk, EMI and power supply noise. So all your logic/calculation will be wrong.
Once you start talking about 16 bits, it becomes entirely ridiculous: we now can only have 75uV range for each level. This is getting into RF interference territory - just receiving a phone call close to such an analog signal would disrupt it.
The way I understand it, there is simply not enough SNR available in our electronics (on die traces or PCB traces) for analog computing to work. Thats why we restrict the number of level we use in our signal: digital being just two level, but even with higher level-counts, we typically use 4 levels or 8. This is somewhat analog, but not really.
I am not an EE, so I am entirely open to being corrected on this.
Synthesizers are basically analog computers. Bob Moog was an engineer whose genius was figuring out how to connect keyboards to lab equipment and how to hide enough of the guts to make the gear approachable to musicians. West Coast synthesists like Buchla took the opposite approach of appreciating the sound of analog computing for what it is.
Synthesizers tried to hide it for awhile behind layers of user interface, but especially with the Eurorack boom of the last decade or so you can really see that synthesizers are simply specialized analog computers. Lots of synth modules openly use the same terminology as analog computing: filters, amplifiers, multipliers, low-pass gate, sample and hold, sequencer, etc. Musicians like Hainbach use actual test equipment in their music.
Guitar effect rigs are also basically analog computers. They're just not used for numerical computation.
update: The Signal State is a Zach-like game where you solve puzzles by programming analog computers; in was inspired by Eurorack synthesizers.
That is stretching the definition of a computer to absurdity, sorry.
Discussion: https://news.ycombinator.com/item?id=32106546 (130 points | 6 months ago | 125 comments)
It does not matter how many gates you throw your 1s and 0s through; they will remain ones and zeros. While floating point numerical computations carry challenges, they are at least deterministic challenges. You can build things like an SHA512 hash which can ingest gigabytes upon gigabytes, with the entire computation critically dependent at every step upon all previous computations in the process, a cascading factor of literally billions and billions, and deterministically get the exact same SHA512 hash for the exact same input every time.
This property is so reliable that we don't even think about it.
Analog computers can not do that. You could never build a hash function like that out of analog parts. You can not take the output of an analog computer and feed it back into the input of another analog computation, and then do it billions upon billions of times, and get a reliable result. Such a device would simply be a machine for generating noise.
Analog computing fits into the computing paradigm as another "expansion card". It may take isolated computations and perform them more efficiently. Perhaps even important computations. But they will always be enmeshed in some digital computer paradigm. Breathless reports about how they're "coming back" and coming soon and taking over are just nonsense. (I speak generally, this walled-off article may or may not have made such claims, I dunno.) So many things about how digital computers work that you just take for granted are simply impossible for analog computers, structurally; something as simple as taking a compressed representation of a starting state for your analog computer is something you need a digital computer for, because our best compression algorithms have the same deep data dependencies that I mentioned for the hashing case.
Useful, interesting, innovative, gonna make some people some money and create some jobs? Sure. Something we should all go gaga over? No more than a new database coming out. It's going to be a tool, not a paradigm shift.
Analog computer's weak point is the power supply, such that many companies making them ended up having to manufacture their own to very high standards, such as big capacitors with 0.1% tolerance. Reason is that you are using the analog voltage and thus poor power regulation leads to inaccurate results.
With newer analog computer setups more is integrated into the chip itself, making power supply issues much less of a problem.
You start by examining your problem in mathematical terms and write down the differential equations that describe it. For example, you have a model of a car suspension with parameters for spring stiffness, damping etc. You put the model into the computer, and play with the parameters to see how things work. Not that different from modern simulations. The one advantage over modern simulations is that you might get a better "feel" for the system - or so the proponents of the analog used to say, before digital computers replaced them.
It really isn't a simple thing.
Furthermore, i know it's a really common analogy but the brain is not really comparable to a computer. The brain is not programmable, it only have a single function which is "given x input, what output is more likely to keep the organism alive and well". It's a complex task, for sure.
But that's not a computer.
A computer is a machine on which you can run arbitrary programs. I can't plug some wires in your brain and program it to do what I want. It's not that the sockets for my wires are missing, it's just that the physical structure doesn't allow generic computing. If you really wanted to make an analogy, you could say that the brain is an electric circuit. You cannot program an electric circuit. It does what it's wired to do. You can't say that your electrical circuit is faster than a computer. It makes no sense.
So it's a false assumption to say that brains are faster than computers because it's just something that you cannot compare.
But that is not true, is it? You take a person and train him/her the right way and you will get a fighter pilot, or an equestrian or a poet. The difference between your fingers and the fingers of the finest goldsmith or cellist is thousands of hours of practice. And that didn't change their fingers, it reprogrammed their brain.
So yeah, you can't upload a new program to it with a USB port, but it definitely can be programmed.
Tech people see everything as essentially similar to tech, but its come to be my understanding that biological systems are a fundamentally different kind of thing than technological ones.
Training is feeding the "complex electrical circuit" some input data, repeating it as nauseam in hope that somehow, the machine manages to store and interpret enough of this knowledge to do something with it.
Programming is just throwing data somewhere into some memory and instructing the processor to interpret this data as instructions to follow.
There is no such thing as a processor in the brain that somehow would read some memory somewhere and execute a set of actions.
It’s just « eyes see cake. I know that grabbing it and eating it releases dopamine so I’ll send the required signals to get this into mouth » it’s not ./eat_cake -f --ignore-consequences
I doubt that computers would be as useful as they are if some coach had to train brain-based computers what is Excel and how it should work.