Controllers
Sometimes we have to connect more than one device to a port. Since this makes the communications procedure more complex, special circuitry, called a controller, is added to handle the communications at the port.
Often the controller has its own separate CPU. If this CPU is connected to main memory, the controller is said to have direct memory access (DMA).