Communication of data can take place between different devices, for example, when sending an email or an SMS message. Data is also communicated between the hardware components of a single device, for example, when a computer CPU exchanges data with a peripheral device such as a printer, or when data is fetched to the CPU from the main memory.