SIPO registers are commonly attached to the output of microprocessors when more general-purpose input/output pins are required than are available. This allows several binary devices to be controlled using only two or three pins, but more slowly than by parallel output. The devices in question are attached to the parallel outputs of the shift register, and the desired state for all those devices can be sent out of the microprocessor using a single serial connection. Similarly, PISO configurations are commonly used to add more binary inputs to a microprocessor than are available – each binary input (such as a button or more complicated circuitry) is attached to a parallel input of the shift register, then the data is sent back via serial to the microprocessor using several fewer lines than originally required.