1- To provide communication between different hardware components. 2- To provide power to the different hardware components. 3- To control and manage the flow of data between the different hardware components.