Apollo Guidance Computer was 2MHz, ~72 KB ROM, ~4 KB RAM
The comparison might be up to 10x different due to more efficient architecture and different MIPS/MHz ratio, but it does not change much, since the differences are so dramatic.
(This is based on links in the podcast description, which I assume what they talked about. Those pretty new keyfobs, older ones might have something like nRF24LE01, which is only 16 MHz, 18 KB Flash, 1KB RAM)
Apple has an RTOS, called RTKit, that it uses for certain devices that have to hit ridiculously tight timing windows, or which don't have enough resources to support a full xnu kernel, such as the AirPods and Apple Pencil.
I guess even a disposable vape has more computing power than the Lunar lander. (I don't know if that's more or less ridiculous than a key fob, but at least a key is not so disposable.)
Car chargers for usbs, or digital thermometers, or disposable pregnancy tests - it's absurd the amount of compute that ends up even in single use or trivial products.
A lot of that is because those devices have far more than they actually need because the processors/packages are so cheap. Particularly if it's a relatively low volume item it's probably cheaper to just use a slightly overpowered component even if it's a penny or two more vs changing things.
The keyfob was brought up by someone so they can make a clickbaity title: "A thing in your pocket has more computing power than Apollo guidance computer. And it's not your smartphone"
The contactless chip in your credit card is a full computer that powers up via inductive charging when tapped. It then negotiates 2 way public/private key encryption to verify you. These usually run jme which requires a lot more power than the lunar lander.
Another good one is the many little computers on cars such as the TPMS sensor in each tyre valve.
Well, they run javacard, which is a far cry from normal java or even jme.
No char, double, float or long types. No arrays with more than one dimension. New creates persistent objects in something like flash with no runtime garbage collection. No String, and in fact most of java.lang.* is missing, etc.
With all those limitations I wonder why they didn’t just use something like C…
I guess the portability of bytecode? A modern version might use WebAssembly instead which feels more suited as it’s much lower level (at least without the modern GC extensions)
The HT68F001 stands out: 512 words of program flash and 16 bytes of RAM. ... can only be clocked from an internal 32 kHz oscillator. Since each instruction takes 4 cycles to execute, this results in only 8000 instructions per second!
You can still find things like an Arduino Micro that has less ROM & RAM than the lunar lander.
But finding something new slower than a 2MHz CPU is probably a challenge nowadays; even the Micro is 16MHz and can probably be overclocked a ways above that without much work or risk.
Another related question: Is there any production software system so inefficient that it would run faster if implemented in machine language on the AGC
That's a really interesting comparison! But does anyone know if any Apollo lunar lander was specifically notable at the time for the power of compute on board? I feel like the takeaway could be "wow, technology has come so far, the pinnacle of computing in the 60s is bested by this stupid keyfob."
It does make sense to me that automating only the bare essentials could be an intentional choice on a lunar lander. Relying on intense discipline + training of the astronauts combined with dirt-simple automation should hopefully put them in a good spot to resolve issues you couldn't predict earth-side. If you automated too much, the thing that goes wrong could be a bug IN the automation, which is obviously going to be harder to train for.
There's also power savings and weight, which I'm sure were big factors... so I can't imagine the guidance computers were great examples of the most performant compute 60s/70s had to offer.
(Also, not able to listen to the podcast right now, so if that idea gets dispelled during it, disregard me. Just basing this on what I can read over a coffee break.)
> if any Apollo lunar lander was specifically notable at the time for the power of compute on board?
It was somewhere in between. Absolutely impressive for the physical volume and was consuming about 80% of all integrated circuits being produced at the time, but around an order of magnitude slower than the fastest computers at the time (and maybe more depending on how you want to calculate that. It's very back of the envelope).
And it did have huge amounts of automation. The modern multitasking hard RTOS was basically invented for the AGC. The pilots weren't super happy about it, but also it's generally considered that landing on the moon is essentially impossible without huge amounts of automation.
Does my key fob have more computing power than the Lunar Lander? In this episode of Runtime Arguments that just dropped today, Wolf and I dive into that question and we reveal some information that might surprise you. We had a lot of fun doing the research and we hope you enjoy it. Find it wherever you get your podcasts. And, if you enjoy it, please tell all of your friends. We'd really appreciate it.
If I get back to middle ages I will be smartest man on in the world - first question “so how do your mobile phones work actually and can you build one?”
Well great you can compare compute power but can you get to the LEO at least? I don’t think so.
If you ever get back there make sure to take every 1930s DIY book you can find. They have everything from legal advice to how to make a power rectifier from scratch as well as how batteries and radios work along with instructions for building them from valves. If you can make a vacuum pump it's not ever such a stretch to make thermionic valves (tubes for left-pondians). You could even make something like Konrad Zuse's computers with the technology that is already available.
The first generation won't be as good as the Apollo Guidance Computer though.
This is actually a good example to consider why a better computing model does relatively little to enable some things. Sure, your fob has more computing complexity; the lander had far more of, well, everything else.
If a computing device can’t actually do more useful things tha another computing device, then saying it has more “computing power” is a bit silly.
It’s like measuring national power by population, or saying that ants have “more power” than humans because ants are more numerous, have more legs and can lift more per unit of size. It’s fun to think about for about five seconds before recognizing that “power” is about capability, not abstract numbers.
Something akin to: "Right now, you're carrying more computing power than what's on Voyager. And I'm not talking about your phone, I'm talking about your keyfob."
Right? And not even a way to get a transcript, that I can see. Who has an hour to listen to some dudes talk about a question that could and has been answered in a few seconds?
I’d love to see some disruption of those markets. Let’s see … laws that promote rather than restrict development … search programs that reduce friction identifying maximum buildable area lots for sale … trading platforms for combining lots into larger developments … optimization of actual building technology … innovation in ownership and governance models…. Of course, none of those are strictly dependent on MHz.
Key fob has nRF52840l, 64 MHz ARM, 1024 KB Flash, 256 KB RAM
Apollo Guidance Computer was 2MHz, ~72 KB ROM, ~4 KB RAM
The comparison might be up to 10x different due to more efficient architecture and different MIPS/MHz ratio, but it does not change much, since the differences are so dramatic.
(This is based on links in the podcast description, which I assume what they talked about. Those pretty new keyfobs, older ones might have something like nRF24LE01, which is only 16 MHz, 18 KB Flash, 1KB RAM)
reply