Is a device controller also a microcontroller with more functions? I know device controller has input and output ports for external device communication but how about communication between device controller and cpu?
The Device Controller receives the data from a connected device and stores it temporarily in some special purpose registers (i.e. local buffer) inside the controller. Then it communicates the data with a Device Driver . For each device controller there is an equivalent device driver which is the standard interface through which the device controller communicates with the Operating Systems through Interrupts. Device controller is a hardware whereas device driver is a software. The controller's job is to convert the serial bit stream to block bytes and perform any error correction necessary.