Often, the word "controller" is used which describing certain computer components. For instance, words such as SATA or IDE Controller is often used to refer to the component on the motherboard which interfaces with the harddrive, CDROM, DVDROM, etc. Or, the word USB controller is often used to describe the component which interfaces external USB devices like keyboards, mice, external harddrives, flash drives, etc. with the USB port of the computer. While I understand interfacing aspect of controllers, I am still unclear on exactly what a controller is within the realms of computer science.
Could someone give me a breakdown or easy to understand explanation of controllers? I will look forward to any input to this question.