There is a physical equivalent of address counting in micro-controllers, namely the physical translocation of small molecules along larger ones. A ribosome or ribozyme advancing along a stretch of RNA can be simply simulated via an auto-increment-feature in the micro-controller. Every access to a register (memory-location) or to the program of another micro-controller then results in an address-increment. Handling finite length sequences or circular sequences (like plasmids in biology) poses no further problem. Arithmetic is no longer needed for control: Molecules simply react with each other if the physico-chemical properties are suitable – they do not calculate whether the differences in potential are sufficient or the enthalpic contributions of the reactions-steps are sufficient to finish the whole reaction.
There are two steps that can be taken to reduce the
complexity of microcontroller control structures:
1. Minimize the number of
memory-locations or registers
As is well known from computer-science, micro-controllers with a minimal number of registers or different possible states require long sequential algorithms. If the number of registers is minimized, then the length of programs violate the third requirement above. There is however one way to minimize the number of registers and the length of programs: distribute registers among many micro-controllers.
2. Shorten the length of programs
as much as possible.
A major contribution to the length of assembler-programs is address-calculus and the increment or decrement of counters. Not using arithmetic further shortens programs (of course, the range of efficient algorithms is restricted strongly, but this does not necessarily curtail the solution of regulation questions as posed here). A further simplification can be gained by not only sharing the registers between several micro-controllers but also the sequence of control. The idea is to disentangle the structured programming into separate processes.