2. PIO, Interrupts, DMA

Programmed I/O and Polling:

  While (STATUS == BUSY)
    ; // wait until device is not busy
  Write data to DATA register
  Write command to COMMAND register
    (starts the device and executes the command)
  While (STATUS == BUSY)
    ; // wait until device is done with your request

Interrupts:

CPU Copying Data:

Direct Memory Access (DMA):