The central processing unit on a microcontroller is the brain of the device, to use an analogy. The CPU takes all of the instructions issued by the program, all of the input from its I/O ports and all other information and uses that to control the processes going on within the microcontroller itself. It utilizes several subunits to execute these tasks. These include the instruction decoder, which takes program instructions and utilizes them to run the microcontroller in the desired fashion. It also uses an accumulator, which stores data that needs to be processed further or acted upon. The Arithmetical Logical Unit (ALU) performs all of the mathematical calculations within the processor.