Recently, JPL’s Veronia McGregor said “A value in a single memory location was changed from a 0 to a 1” on the Voyager 2 Probe.This caused the probe to send back scrambled data. But why does this matter so much?
Memory location is to a computer what home addresses are to a post office. Each value of memory location points to a piece of memory. Just imagine what would happen if a post office switched around one number in your address. Lucky, the post office can sometimes send mail back back to the sender, however, the wrong address in computing can be disastrous.
Let us look into the brains of the Voyager probe…well a simple version with only a thermometer and a radio. While the program that runs Voyager maybe written in something more humane, the computer on voyager thinks in machine code. What is machine code?
Our simple version of the Voyager probe would have 3 operations:
0: Take data from thermometer and store in memory
1: Broadcast requested data in requested location in memory
2: delete data in memory by storing random bits
For simplicity, let’s say we have 8 bytes of memory. So our happy little probe, running it’s code, decides to take date from the thermometer and store it in the first memory location, it thinks:
Computer speak: (00)(0001)
Human:(Operation zero)(performed on the data in memory location number 1)
Now, let’s say it is out of memory and needs to free up space, so it deletes the oldest piece of data, which happens to be at location three:
Human:(Operation 2)(performed on the data in memory location number 3)
But alas, the first memory slot is labeled 3 has been mislabeled 1 by a flipped bit. In other words, 0011 will point to location 0001 and 0001 will also point to 0001. So now, location 1, where the data was stored, is wiped. So when the people at NASA ask for the data at location 1, they will get random bits.
Now, this is a very simple version of what’s going on, but I think you guys get the point. Confused still? Just ask us, we are here to help you understand science.