Skip to main content
added 3 characters in body
Source Link
user4574
  • 3.7k
  • 11
  • 16

Yes. Random bit-flips often occur in real computer systems, even today. Usually they are bad.

In all computer memory there always has a percentage chance of each memory cell changing from 0 to 1 or 1 to 0.
a) The probability of memory related bit-flips occuring increases exponentially with temperature
b) The probability of a bit flip increases with with exposure to radiation. Even on the earth there is always some radiation. In space a lot more. In fact its so common in space environments that digital logic is often designed redundantly to detect and if(if possible) correct those errors.

The chances of long strings of bits randomly flipping into useful sequences is astronomically small, so don't count on that happening. But if the code is designed so that it is broken into a set of useful functions that call eachothereach-other then you can get interesting behavior from even one bit flip.

For example a bit flip in a jump instruction could cause large sequences of useful code to be executed at a different point thatthan originally intended.

Here is an example of a sequence of machine codes that leads to a plausable beneficial mutation.
The nano-bot contains a main code loop that happens to be on lines 1-500.
On line 501 there is a routine (at memory address 501) that checks for damage and initiates repairs.
Suppose that the repair routine was normally called once per day (which may have been OK).
Now lets suppose that the nano-bots are now continually exposed to radiation, most of them experience lots of bit flips, and many go non-functional.
Lets assume that the radiation causes the fourth bit on line 500 to flip from 0 to 1.
So now instead of jumping back to the start of the main loop, the code just keeps going to line 501.
This would cause the error checking routine to execute every iteration of the main loop rather than once per day.
As a result this nano-bot is able to survive the radiation.

MAIN_LOOP:
1: 0011 0101 //some stuff
2: 1111 0001 //some stuff
3: 1101 0001 //some stuff
4: 1111 0111 //some stuff
....
500: 1110 0000 //instruction that jumps back to main loop

PERFORM_INTERNAL_REPAIRS:
501: 1100 1001
502: 1110 1011
...
600: 1110 0000 //instruction that jumps back to main loop

Yes. Random bit-flips often occur in real computer systems, even today. Usually they are bad.

In all computer memory there always has a percentage chance of each memory cell changing from 0 to 1 or 1 to 0.
a) The probability of memory related bit-flips occuring increases exponentially with temperature
b) The probability of a bit flip increases with with exposure to radiation. Even on the earth there is always some radiation. In space a lot more. In fact its so common in space environments that digital logic is often designed redundantly to detect and if possible correct those errors.

The chances of long strings of bits randomly flipping into useful sequences is astronomically small, so don't count on that happening. But if the code is designed so that it is broken into a set of useful functions that call eachother then you can get interesting behavior from even one bit flip.

For example a bit flip in a jump instruction could cause large sequences of useful code to be executed at a different point that originally intended.

Here is an example of a sequence of machine codes that leads to a plausable beneficial mutation.
The nano-bot contains a main code loop that happens to be on lines 1-500.
On line 501 there is a routine (at memory address 501) that checks for damage and initiates repairs.
Suppose that the repair routine was normally called once per day (which may have been OK).
Now lets suppose that the nano-bots are now continually exposed to radiation, most of them experience lots of bit flips, and many go non-functional.
Lets assume that the radiation causes the fourth bit on line 500 to flip from 0 to 1.
So now instead of jumping back to the start of the main loop, the code just keeps going to line 501.
This would cause the error checking routine to execute every iteration of the main loop rather than once per day.
As a result this nano-bot is able to survive the radiation.

MAIN_LOOP:
1: 0011 0101 //some stuff
2: 1111 0001 //some stuff
3: 1101 0001 //some stuff
4: 1111 0111 //some stuff
....
500: 1110 0000 //instruction that jumps back to main loop

PERFORM_INTERNAL_REPAIRS:
501: 1100 1001
502: 1110 1011
...
600: 1110 0000 //instruction that jumps back to main loop

Yes. Random bit-flips often occur in real computer systems, even today. Usually they are bad.

In all computer memory there always has a percentage chance of each memory cell changing from 0 to 1 or 1 to 0.
a) The probability of memory related bit-flips occuring increases exponentially with temperature
b) The probability of a bit flip increases with with exposure to radiation. Even on the earth there is always some radiation. In space a lot more. In fact its so common in space environments that digital logic is often designed redundantly to detect and (if possible) correct those errors.

The chances of long strings of bits randomly flipping into useful sequences is astronomically small, so don't count on that happening. But if the code is designed so that it is broken into a set of useful functions that call each-other then you can get interesting behavior from even one bit flip.

For example a bit flip in a jump instruction could cause large sequences of useful code to be executed at a different point than originally intended.

Here is an example of a sequence of machine codes that leads to a plausable beneficial mutation.
The nano-bot contains a main code loop that happens to be on lines 1-500.
On line 501 there is a routine (at memory address 501) that checks for damage and initiates repairs.
Suppose that the repair routine was normally called once per day (which may have been OK).
Now lets suppose that the nano-bots are now continually exposed to radiation, most of them experience lots of bit flips, and many go non-functional.
Lets assume that the radiation causes the fourth bit on line 500 to flip from 0 to 1.
So now instead of jumping back to the start of the main loop, the code just keeps going to line 501.
This would cause the error checking routine to execute every iteration of the main loop rather than once per day.
As a result this nano-bot is able to survive the radiation.

MAIN_LOOP:
1: 0011 0101 //some stuff
2: 1111 0001 //some stuff
3: 1101 0001 //some stuff
4: 1111 0111 //some stuff
....
500: 1110 0000 //instruction that jumps back to main loop

PERFORM_INTERNAL_REPAIRS:
501: 1100 1001
502: 1110 1011
...
600: 1110 0000 //instruction that jumps back to main loop

Source Link
user4574
  • 3.7k
  • 11
  • 16

Yes. Random bit-flips often occur in real computer systems, even today. Usually they are bad.

In all computer memory there always has a percentage chance of each memory cell changing from 0 to 1 or 1 to 0.
a) The probability of memory related bit-flips occuring increases exponentially with temperature
b) The probability of a bit flip increases with with exposure to radiation. Even on the earth there is always some radiation. In space a lot more. In fact its so common in space environments that digital logic is often designed redundantly to detect and if possible correct those errors.

The chances of long strings of bits randomly flipping into useful sequences is astronomically small, so don't count on that happening. But if the code is designed so that it is broken into a set of useful functions that call eachother then you can get interesting behavior from even one bit flip.

For example a bit flip in a jump instruction could cause large sequences of useful code to be executed at a different point that originally intended.

Here is an example of a sequence of machine codes that leads to a plausable beneficial mutation.
The nano-bot contains a main code loop that happens to be on lines 1-500.
On line 501 there is a routine (at memory address 501) that checks for damage and initiates repairs.
Suppose that the repair routine was normally called once per day (which may have been OK).
Now lets suppose that the nano-bots are now continually exposed to radiation, most of them experience lots of bit flips, and many go non-functional.
Lets assume that the radiation causes the fourth bit on line 500 to flip from 0 to 1.
So now instead of jumping back to the start of the main loop, the code just keeps going to line 501.
This would cause the error checking routine to execute every iteration of the main loop rather than once per day.
As a result this nano-bot is able to survive the radiation.

MAIN_LOOP:
1: 0011 0101 //some stuff
2: 1111 0001 //some stuff
3: 1101 0001 //some stuff
4: 1111 0111 //some stuff
....
500: 1110 0000 //instruction that jumps back to main loop

PERFORM_INTERNAL_REPAIRS:
501: 1100 1001
502: 1110 1011
...
600: 1110 0000 //instruction that jumps back to main loop