24
$\begingroup$

Computers on spacecraft often have small memory, like a few MB. Wouldn't it be nice to put more memory into them? Or is MB-level already enough? Also, which spacecraft has the largest memory?

$\endgroup$
13
  • 14
    $\begingroup$ It is possible, but really, really challenging to make large RAM that is sufficiently reliable in the radiation environment of space. Sure if your personal laptop on the ISS bluescreens due to a radiation-induced latch error, you can just reboot it. This is not so much an option for a rover driving around on Mars, and enormously not suitable for a rocket busy performing a maneuver. High radiation resistance = larger components in more complex configurations = less ram. The thermal and vibration environment don't help at all, but those are secondary. Also power usage. $\endgroup$ Jul 16 at 11:36
  • 13
    $\begingroup$ Most spacecraft were designed and built decades ago. For instance, the Hubble Space telescope was designed in the 1980s (launched in 1990) when a few MBytes was a lot of memory. The original PC famously had a max of 640K, which should have been enough for anybody :-) By the end of the decade, 1-2 Mb was usual, but that was comparatively cheap commodity RAM, not - as others have pointed out - something qualified for space, where you can't just order a new module from NewEgg and have FexEx do overnight delivery :-) $\endgroup$
    – jamesqf
    Jul 16 at 20:28
  • 2
    $\begingroup$ @Austin Hemmelgarn: Though as I sit here now, just using a browser (Firefox on Linux) I'm using about 5% of a 15-year old CPU, and about half of its 2 MB memory, much of that going to system buffer space rather than active processes. For most people, modern CPU speed & memory is like a 500 HP engine in a car that they only drive on city streets. $\endgroup$
    – jamesqf
    Jul 17 at 16:27
  • 2
    $\begingroup$ @David Hammen: Not hyperbole, just a (rather embarrasing) typo. Of course I meant GBytes. $\endgroup$
    – jamesqf
    Jul 18 at 3:39
  • 2
    $\begingroup$ Pedantically, spacecraft have small amounts of large RAM. $\endgroup$
    – RonJohn
    Jul 19 at 1:53
41
$\begingroup$

Cosmic radiation represents a big threat to humans and to computing devices in space. Astronauts regularly report seeing flashes of light when they have their eyes shut. There are all kinds of things that just one cosmic ray can do to electronics. The generic name for these effects is single event effects. A cosmic ray might for example flip a bit (single event upset) or cause a bit to be frozen at zero or one (single event latchup). There are many other effects that can ensue from a single cosmic ray.

The computing industry is moving toward smaller and smaller die sizes for CPUs and memory. State of the art die sizes are 5 nanometers; even smaller die sizes are in work. A single cosmic ray would rip a big gaping hole in a CPU or memory constructed on the 5 nanometer scale. Computing machinery based on those very small dies would die a quick death in space. This is but one of the reasons why computers used in space are at least a decade behind state of the art, and the problem is getting worse. I'm working on a vehicle yet to be flown that uses computers that would not have been considered state of the art two decades ago.

Addendum
One key factor for why spacecraft have such limited computing power and limited memory is that decisions regarding avionics are made very, very early in the spacecraft design process. It typically takes multiple years, and sometimes more than a decade, to progress from initial design to first flight. Those initial design decisions made years before first flight chose computing machinery that was deemed safe back then, and that typically means, and I'm trying to be nice here, extremely archaic junk. To add insult to injury, that extremely archaic junk is also extremely expensive. One can find better junk at a tiny, tiny fraction of the price in a yard sale. That yard sale junk would not however stand up to one single SEE.

$\endgroup$
13
  • 7
    $\begingroup$ Almost exactly 10 years ago today was the last major inflight failure experienced by a space shuttle - GPC 4 failed due to a SEU. They rebooted it and continued using it. (After a bunch of meetings) $\endgroup$ Jul 16 at 13:39
  • 14
    $\begingroup$ There are all kinds of things that are done to avoid single event effects. We use error correcting memory, but that essentially means having less memory than the number of bits in that that storage would suggest. We have multiple computers perform the same task, cross check for consistency, and vote any bizarro computer off the island, but that essentially means having a lot less memory than would be suggested by the total of those multiple computers' memory. We use computers that are so ridiculously out of date it makes one want to cry (or at least shout obscenities). $\endgroup$ Jul 16 at 17:35
  • 9
    $\begingroup$ There are some bizarre cases where the bizarro computer can lie just right and get one of the non-bizarro computers voted off the island. These are appropriately called Byzantine faults. It takes four computers to have single fault tolerance against Byzantine faults. SpaceX uses six computers all running the same software and all running in sync to protect against multiple Byzantine faults. $\endgroup$ Jul 16 at 17:44
  • 5
    $\begingroup$ @OrganicMarble The Shuttle was developed before the problem of Byzantine faults was uncovered. The Shuttle also used a technique that some now deplore, the concept of a Backup Flight System. (Some new vehicles still use that concept; others don't.) The primary argument for having a BFS is to counteract "what if the developers of the primary flight system made a mistake"? The primary argument against is instead of spending all the money that would have be needed for a BFS, it would be better to spend that money to ensure the developers of the primary flight system did not make a mistake. $\endgroup$ Jul 16 at 17:59
  • 5
    $\begingroup$ The "5 nanometers" term, as explained in the article you linked, is just a marketing term. It bears no relation to actual sizes. $\endgroup$
    – Džuris
    Jul 17 at 9:02
20
$\begingroup$

For the second part of the question, which spacecraft has the largest memory, the answer is likely the International Space Station. But not the modules themselves!

About a decade ago, the station already had over 60 laptops, which is the type of computers in space that will be closest to the current state of the art. Looking up those laptop models listed, the station had at least a triple digit number of gigabytes of RAM.

Since the ISS is one of the very few spacecraft which continously receives hardware updates, the laptop fleet aboard has likely been updated since then, which brings the total amount of memory available even higher.

$\endgroup$
5
  • 9
    $\begingroup$ The laptops are not used for anything safety critical. The safety critical computing machinery is old, slow, and memory limited. $\endgroup$ Jul 16 at 13:00
  • 2
    $\begingroup$ Wouldn't the SpaceX Dragon be loaded in terms of RAM too? Its interface runs chromium, wouldn't hurt to have some spare, would it. $\endgroup$ Jul 16 at 14:42
  • 3
    $\begingroup$ @Speedphoenix That's what the displays presented to astronauts on the SpaceX Dragon use. Those are not safety critical devices and are not involved in any safety critical decisions. The SpaceX Dragon can fly to and dock with the ISS with zero astronaut intervention. The safety critical flight components do not use those Chromium-based devices. $\endgroup$ Jul 17 at 8:05
  • 2
    $\begingroup$ Commands from astronauts are treated as suggestions rather than commands. The Chromium-based devices the astronauts use might have been fried, after all. Even if they weren't fried, the commands come from one of the most unreliable (but also most powerful) computing devices, the human brain. $\endgroup$ Jul 17 at 8:12
  • 2
    $\begingroup$ @DavidHammen Well, the question is not specifically limited to safety critical components. $\endgroup$ Jul 19 at 8:05
9
$\begingroup$

In space, there is more radiation (high energy particles) than on earth. These can damage RAM or flip the values of individual bits (working with corrupted data is often even worse than crashing).

So you can't just send some consumer-grade RAM chips up and expect them to work correctly. They may also need to be able to withstand a wide temperature range, have error-correction, and either be radiation-hardened and/or shielded. Search for "Radiation Hardened RAM" or "Rad Hard RAM".

Since they're specialized components, they don't come cheap (but are probably still a fraction of the cost of launching the device into space). Like every piece of hardware, they also have a size and weight, and space crafts have size and weight budgets. The later may be the even bigger constraint that cost.

With all these constraints, the designers of a craft/device are usually going to design with as few memory as necessary for the mission.

$\endgroup$
7
$\begingroup$

Modern computer RAM sizes are driven by the need to present large media files to a user — images, video, and so on. This isn’t needed at all on a spacecraft; the guidance computer isn’t watching Netflix. The critical functions of early spacecraft could be managed with a handful of kilobytes; more modern ones get by with megabytes rather than gigabytes. Processing of scientific data is done by Earthside computers, so only a moderate amount of memory is really required to buffer that data before transmitting it. As other answers note, RAM on spacecraft needs to be radiation-hardened and often must operate reliably at extreme temperatures, so it’s much more expensive than equivalent amounts of memory on a home computer, so you generally see much smaller memory sizes.

$\endgroup$
5
  • 4
    $\begingroup$ A handful of kilobytes? I wouldn't want to work on a spacecraft that doesn't have handfuls of megabytes of RAM. Many handfuls of handfuls of RAM. The last two Mars landers / rovers have 256 megabytes of RAM and 2 gigabytes of flash memory -- and that is 20 year old technology. This does not count the huge amounts of storage on the non-critical hardware used to capture pretty pictures during landing. $\endgroup$ Jul 17 at 3:33
  • 2
    $\begingroup$ I’m more familiar with the spacecraft of the 1960s. $\endgroup$ Jul 17 at 5:30
  • $\begingroup$ Many of those 1960s spacecraft used the Harvard architecture computer machinery model, where data and instructions were entirely separate. Data and instructions might even have had different word sizes. Harvard lost out to Princeton in this case. Modern computers (and that includes modern flight computers) use the von Neumann architecture, aka the Princeton architecture, where data and instructions are stored as one common set. $\endgroup$ Jul 17 at 7:49
  • 4
    $\begingroup$ You need to make a distinction between RAM, which is used for active computations involved in spacecraft control, and data storage, which can be anything from magnetic tape to solid state memory. It's the same as the difference between your PC's RAM and the size of hard disk or SSD storage. $\endgroup$
    – jamesqf
    Jul 18 at 3:50
  • 1
    $\begingroup$ @jamesqf Or your terabyte backup drive. You would never want to use that backup drive as if it was virtual RAM. $\endgroup$ Jul 18 at 12:05
5
$\begingroup$

Aside from the issues of the harsh environment in space. It's also not necessary for specialised systems with dedicated capabilities e.g. military, space. Modern desktop systems are generalised and "waste" a lot of resources on being able to provide functions determined by software capabilities that is developed independently of the hardware.

I have worked on one of these in the past http://www.computinghistory.org.uk/det/16840/Ferranti-FM1600-B/ and they're still out there. It goes to show what can be achieved with 200kB of RAM coupled with dedicated hardware even in this day and age.

$\endgroup$
1
  • 1
    $\begingroup$ Yep. Computer-controlled instruments in space are like computer-controlled appliances on Earth. Unlike a general-purpose computer, you have a pretty good idea of what the job is and how much memory it takes before you build the system. You put in enough memory for the (specialized) job. The measurement/control units on NICER use automotive microcontrollers with 32 kB RAM, 256 kB flash. That's plenty for the job of handling configuration commands and collecting the data. If the job needed more memory, I would have designed in more memory. $\endgroup$
    – John Doty
    Jul 19 at 13:13
2
$\begingroup$

They aren't all so small. TESS has a 192 gigabyte solid state data recorder.

$\endgroup$
4
  • 8
    $\begingroup$ That is a lot of storage, but that doesn't qualify as RAM. $\endgroup$ Jul 17 at 3:34
  • $\begingroup$ @David Hammen: But it presumably doesn't need a lot of RAM, since the computing would be relatively simple. It does need a lot of storage to hold the data it collects until it can be downloaded to Earth, where processing will be done. This may apply to other spacecraft as well: IIRC many of the earlier ones used magnetic tape, or similar. $\endgroup$
    – jamesqf
    Jul 18 at 3:47
  • 2
    $\begingroup$ @DavidHammen It has a fair amount of RAM, too. The cameras collect 140 megabytes of data for every two second exposure, and those need a bunch of processing. Cosmic ray scrubbing alone requires keeping a 20 second history of every pixel in RAM. I don't remember exactly how much RAM it has, but it's gigabytes. $\endgroup$
    – John Doty
    Jul 18 at 13:56
  • 3
    $\begingroup$ That last comment would make this a much better answer, even if you can't find an exact number. $\endgroup$ Jul 18 at 21:05
-3
$\begingroup$

Another reason is that most small satellites use microcontrollers (mcu) instead of microprocessors (cpu), these mcu have a cpu inside but much more limited (some Mb or Kb) and have an internal ram also limited (about Kb) but they are very useful because when they are asleep they consume some micro watts! and they can also use radio communications, read all the sensors and activate any actuator (ion thruster, torquerod, reaction wheel, etc) and they can also contain real-time operating systems (instead of general purpose ones like windows, gnu / linux, etc) which is essential for critical applications, also these mcu are much cheaper than a general purpose cpu, you do not need a lot of ram unless you want to process a lot of data (analyze images, neural networks, etc)

$\endgroup$
2
  • 8
    $\begingroup$ Many useful thoughts. But please use sentences. $\endgroup$
    – peterh
    Jul 16 at 23:14
  • 3
    $\begingroup$ @peterh Stealing from the Zen of Python, "Sentences are one honking great idea -- let's do more of those!" (Paragraphs also fall into the one honking great idea category.) $\endgroup$ Jul 17 at 9:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.