next up previous
Next: csync Up: Multi-cellular and Differentiation Previous: Multi-cellular and Differentiation

split

The split instruction causes a single thread to split into two. A new virtual CPU is created. All data contained in the original CPU will be copied into the new CPU (registers, stack, stack pointer, flags, instruction pointer). However, the two CPUs will be differentiated on the basis of a value in one CPU register (specified in the opcode.map file). For both CPUs, the value in that register will be multiplied by two, but for the new CPU, the doubled value will also be incremented by one.

When a organism receives a time slice, the size of the slice (number of instructions to be executed) is determined. This is the SliceSize. The actual number of cycles that an organism will execute during its time slice will be SliceSize times the number of CPUs that it has. Each CPU in the organism will execute SliceSize instructions during the time slice. However, each CPU executes one instruction, in turn, rather than having each CPU execute its entire slice before allowing the next CPU to execute.



Thomas S.Ray
Tue Jan 14 16:09:05 JST 1997