However, throwing computational power at a simple problem does have benefits, mostly in development speed and ease. We already know that Falcon 9 runs on a voting trio of dual-core x86 CPUs - plus the engine management controllers, one per engine - more than enough grunt to run the landing control software. That extra overhead lets you throw in plenty of monitoring and debugging, lets you retune parameters in real time, and generally means your software can be written and maintained in a sane manner with modern software development practices,
rather than via summoning a chasing-the-beam-grade greybeard to delicately deposit bits into a limited memory and cajole instructions into a predetermined sequence to fit within clock intervals.
For Falcon 9 specifically, I'd wager computational requirements are a LOT lower than many would assume.
However, throwing computational power at a simple problem does have benefits, mostly in development speed and ease. <snip> That extra overhead lets you throw in plenty of monitoring and debugging, lets you retune parameters in real time, and generally means your software can be written and maintained in a sane manner with modern software development practices...
Quoterather than via summoning a chasing-the-beam-grade greybeard to delicately deposit bits into a limited memory and cajole instructions into a predetermined sequence to fit within clock intervals. Modern architectures, with out-of-order speculative execution supported by multiple layers and kinds of cache, branch prediction, etc., make trying to find the optimal instruction sequence a fool's game in most cases. Over the life of the system, half of the caches will end up disabled or degraded to fix security holes, and the next rev of the chip is going to do it differently anyway..
Never played with one myself, but the biggest looks to be a quad-core 64-bit ARM CPU running at 1.5Ghz with up to 8GB of memory; smallest is about 8 years old and has a single CPU and a "mere" 256 MB. Looks like decent floating point in the CPU -- probably more than enough for double-precision Kalman filters -- plus a GPU if they need lots of single-precision oomph. My sense is that they're probably a little shy in the I/O department for managing all the sensors and actuators.
That said, using x86 on-board means you can efficiently run the exact software image you'll load on the rocket in virtualization on developer desktops, server farms, cloud, etc.; ARM servers are becoming more common these days but at the time SpaceX picked a CPU, x86 was the safe bet.
Modern architectures, with out-of-order speculative execution supported by multiple layers and kinds of cache, branch prediction, etc., make trying to find the optimal instruction sequence a fool's game in most cases. Over the life of the system, half of the caches will end up disabled or degraded to fix security holes, and the next rev of the chip is going to do it differently anyway..
As I understand it, Falcon 9 uses 'Kalman filters' in its landing system. ... I do recall him saying is that Kalman filters are computationally very expensive.
Quote from: launchwatcher on 11/25/2020 04:15 pmQuoterather than via summoning a chasing-the-beam-grade greybeard to delicately deposit bits into a limited memory and cajole instructions into a predetermined sequence to fit within clock intervals. Modern architectures, with out-of-order speculative execution supported by multiple layers and kinds of cache, branch prediction, etc., make trying to find the optimal instruction sequence a fool's game in most cases. [...]...Leave it to the compiler's optimizer. LLVM FTW
Quoterather than via summoning a chasing-the-beam-grade greybeard to delicately deposit bits into a limited memory and cajole instructions into a predetermined sequence to fit within clock intervals. Modern architectures, with out-of-order speculative execution supported by multiple layers and kinds of cache, branch prediction, etc., make trying to find the optimal instruction sequence a fool's game in most cases. [...]
In terms of performance, AGC would be roughly comparable to ATmega, the microcontroller used in Arduino. And comparable in this case means just several times slower, as in, not orders of magnitude.
but now the identical software as used to control the Falcon 9 can also control a simulation of the Falcon 9 in a computer model, where various external influences can be tested.
I'm not sure how long this technology has been around - probably since the introduction of Advanced Flight simulators in the 1980s
As long as you have good telemetry and control links, you don't really need any onboard computational power to speak of to land a booster. You can do like the Atlas ICBMs did back when computers were big and heavy and leave the computer on the ground.
(fan) Some acronyms I need help withLLVM (from dglow)FBW (libra) I think that one is fly by wireAGC (alexs) I think that one is automated guidance control (mod) Better to fully expand any acronym you aren't 100% sure everyone knows.
Apollo Guidance Computer
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines. The name "LLVM" itself is not an acronym; it is the full name of the project.