10.1 Asynchronous data transfer Synchronous data transfer –It usually occur when peripherals are located within the same computers as the CPU. –It shares a common clock. –Data does not have to travel very far physically. Asynchronous data transfer –It is used when synchronous transfers are not viable. –It uses control signals and their associated hardware to coordinate the movement of data. –A common clock is not needed.
10.1 Asynchronous data transfer (continued) Types of asynchronous data transfer –Source-initiated data transfer –Destination-initiated data transfer –Handshaking –Destination-initiated data transfer with handshaking
Source-initiated data transfer The source outputs its data, then strobes a control signal for a set amount of time. The destination device reads in the data during this time. Example: Figure 10.2
Destination-initiated data transfer The destination device initiates data transfer The destination device transmits a data strobe signal to the source device and after a set delay, the destination device reads in this data and desserts the data strobe. Example: Figure 10.3
Source-initiated data transfer with handshaking It is useful when the time of data transfer between the destination device and the source device. It uses an additional control signal, data acknowledge signal. Figure 10.4
Destination-initiated data transfer with handshaking It is useful when the time of data transfer between the destination device and the source device. It uses an additional control signal, data- ready signal. Figure 10.5
10.2 Programmed I/O Programmed I/O –A program instruction causes CPU to input or output data. Input port –It makes data available to the CPU when the CPU would read the data from the data bus.
10.2 Programmed I/O(continued) Thermostat control example –Read temperature(T) from external sensor. –If (T thermostat setting+2 ) turn on air conditioner –If (T thermostat setting and air conditioner is on) turn off air conditioner –If (T thermostat setting-2 ) turn on heater –If (T thermostat setting and air heater is on) turn off heater. –Go to start of sequence
10.2 Programmed I/O(continued) Thermostat controller (program in Figure 10.7) –Memory mapped I/O 0FFFFH: input port (Figure 10.6) 0FFFEH: thermostat setting 0FFFDH: output port 01 = turn on air conditioning 02 = turn off air conditioning 03 = turn on heat 04=turn off heat 1000H: current status 00 = heat and air conditioning are both off FF = heat onFE=air conditioning off
10.2 Programmed I/O(continued) Isolated I/O instructions (Table 10.1) –INPT –OTPT Control Signal –IO/M’
10.2 Programmed I/O(continued) RTL of INPT instruction –INPT1: DR M, PC PC+1, AR AR+1 –INPT2: TR DR, DR M, PC PC+1 –INPT3: AR DR,TR –INPT4: DR input port –INPT5: AC DR Figure 10.8 –States to implement the INPT execute routine Figure 10.9 –Hardware to generate the state signals for the INPT execute routine
10.3 Interrupts Interrupt –A mechanism for alleviating the delay for I/O. Polling (Refer to Figure 10.10) –The CPU sends a request to an I/O device. –The I/O device processes the request and sets a device- ready signal when it is ready. –The CPU reads in this signal via another I/O address and checks the value. –If the signal is set, it performs the data transfer. If not, it loops back.
10.3 Interrupts(continued) Polling is relatively straightforward in design and programming. But a slow device causes the CPU to remain in the polling loop. –To make use of this wasteful CPU time, interrupts were developed. Interrupt request signal Interrupt acknowledge signal
10.3 Interrupts(continued) Processing interrupt: by interrupt handler –Do nothing until the current instruction has been executed –Get the address of the handler routine(vector interrupts) –Invoke the handler routine
I/O Processors I/O processor (Figure 10.21) –I/O processors are sometimes called as I/O controllers, channel controllers, or peripheral processing units(PPUs) –I/O commands Block transfer commands Control commands Arithmetic, logic, and branch operations