Some terms you need to know
Memory-mapped I/O: The CPU and I/O devices communicate by
writing/reading special locations in memory assigned to these devices.
Status registers provide status and control information. The CPU needs
to be check them periodically - polling. Wastes CPU time.
An alternative to polling - interrupt-driven I/O - the CPU is notified
by I/O about the completion of a job with an interrupt.
Direct memory access (DMA) - allows to transfer data between memory
and I/O without intervention of the CPU.