It is important to realize that a device may be a bus initiator some of the time and a bus responder at other times. For example, an I/O device may be a responder while the CPU is the initiator in one bus transaction. Later that same I/O device may become the initiator while the memory is a responder. To do input, the CPU transmits a command to the I/O controller, such as "read the next 100 bytes from your tape drive and put it into memory at location XYZ." The I/O controller, after getting the command from the CPU, carries it out by becoming bus initiator and copying the data into main memory. |