
Firmware
Small, durable software that lives on a component itself, guiding its most basic behaviour.

A piece of hardware that manages a component or a group of components on the system's behalf.
A piece of hardware that manages a component or a group of components on the system's behalf.
A controller is a small manager built into hardware. It oversees the detailed business of a component or a class of components, coordinating their behaviour so the wider system does not have to. It handles the fine details locally, close to where the work happens.
A driver often speaks to a controller rather than to raw silicon directly, relying on it to handle the lowest-level choreography. This gives the driver a cleaner, simpler partner to talk to, with much of the intricate timing already taken care of.
By taking on the moment-to-moment management of its parts, a controller frees the rest of the system from a great deal of detailed work. The system can issue a higher-level request and trust the controller to carry out the many small steps it involves.
Controllers come in many forms, some managing a single part and others overseeing a whole family of similar ones. In every case they act as a helpful middle manager, sitting between the broad intentions of the system and the precise actions of the hardware.
In practice, a controller is like a department supervisor. Senior leadership gives a broad instruction, and the supervisor handles all the small steps needed to carry it out, without troubling anyone above with the details. A driver leans on a hardware controller in just that way.
We use only essential cookies to keep this educational site working. See our Cookie Notice and Privacy Policy.