Most modern processors do more with superscalar execution than just adding a second ALU. Rather, they distribute the work of handling different types of instructions among different types of execution units. An execution unit is a block of circuitry in the processor’s back end that executes a certain category of instruction. For instance, you’ve already met the arithmetic logic unit (ALU), an execution unit that performs arithmetic and logical operations on integers. In this section we’ll take a closer look at the ALU, and you’ll learn about some other types of execution units for non-integer arithmetic operations, memory accesses, and branch instructions.