Global Initialization: Things you do once to set your processor and I/O interface for the system.
Transfer Initialization: Things you set to make sure that a transfer is successful, you do this every time you want to transfer.
Data transfer: Includes synchronization before and after the transfer.