Describing a small software system, like an I/O process, requires state machines having two or more tape dimensions.
Describing a procedure from variables and operations on them is easy and intuitive, like natural language it has one tape dimension.
A tape dimension is a state change sequence. It is a state function, and the dimension of a state machine.
The state function has a domain of inputs and a range of outputs. These inputs and outputs are members of the set of reachable states in a state machine.
The two dimensional state machine is represented in a cell grid that illustrates the intersecting rows and columns of state functions. Each grid cell contains a state change operation.