A synchronous data transfer is a data transmitting method where data is sent in a non-continuous, non-synchronous manner. This shows that data is transmitted at irregular intervals, without any fixed timing or coordination between the sender and receiver.
We synchronize the internal operations in any individual unit of the digital system using clock pulse. That means clock pulse is given to every register within the unit. All the data transfer among internal registers co-occurs during the occurrence of the clock pulse.
Now, let's assume that two units of the digital system are designed independently, like CPU and I/O interface. If the internal registers in the I/O interface share a standard clock with the CPU registers, then data transfer between the units (two or more) is said to be synchronous. But in maximum cases, the internal timing in every unit is independent of each other, so every unit uses its clock for its registers. In this case, the units are asynchronous, and data transfer between them is called Asynchronous data transfer.
This article will discuss asynchronous data transfer between two computer organization and architecture units.
Must Recommended Topic, Internal and External Fragmentation
Methods of Asynchronous Data Transfer
We have four different methods of Asynchronous data transfer:
- Strobe Control Method
- Handshaking Method
- Asynchronous Serial Transfer
- Asynchronous Communication Interface
Read About - Shift Registers in Digital Electronics
1. Strobe Control Method
The Strobe Control mode of asynchronous data transfer employs only one control line to time each transfer. This control line is known as a strobe, and we may achieve it either by destination or source, depending upon the one who initiates the data transfer.
Source initiated strobe: In the below figure, we can see that the source initiates the strobe, and as shown in the diagram, the source unit will first place the data on the data bus.
Source: coagarage.blogspot.com
In the figure, we may see that the source unit initializes the strobe. In the timing diagram, we can notice that the source unit first places the data on the data bus. Then after a brief delay, the source unit activates a strobe pulse to ensure that the data revolves to a stable value. The strobe control signal and data bus information remain in the active state for enough time to permit the destination unit to receive the data.
Destination initiated strobe: In the below figure, we can see that the destination unit initiates the strobe, and as shown in the timing diagram, the destination unit activates the strobe pulse first by informing the source to provide the data.
Source: coagarage.blogspot.com
In destination initiated transfer, the source unit will respond by placing the requested information on the data bus. The transfer data must be valid and remain on the data bus long enough for the destination unit to receive it. We can use the strobe pulse's falling edge again to trigger a destination register. The destination unit then disables the stroke pulse. Finally, the source unit removes the data from the bus after some determined time interval.
Recommended Topic, Microinstruction in Computer Architecture
2. Handshaking method
The strobe control method for asynchronous data transfer has a disadvantage. The source unit always assumes that the destination unit has received the data placed in the data bus. Similarly, the destination unit that initiates the transfer takes that the source unit has placed data on the bus.
This problem is solved by the handshaking method of data transfer. In this method, we also have a second control line that provides the unit that initiates the transfer with a relay.
In the Handshaking method, one control line is in the direction of the bus's data flow, i.e., from source to destination. The source unit uses it to inform the destination unit if the data is valid in the bus. The second control line is in the opposite direction, i.e., from destination to source. The destination unit uses this control line to inform the source unit of accepting the data. And also, the sequence of control depends on the unit that first initiates the transfer.
Source initiated handshaking: In the figure below, we can see that we have two handshaking lines, "data valid" and "data accepted," generated by the source unit and the destination unit, respectively.
Source: coagarage.blogspot.com
The timing diagram shows that the source initiates the transfer by placing the data on the data bus and enabling its data valid signal. The destination then activates a data accepted signal after it accepts the data from the bus. The source then disables the valid data signal, which makes the data on the bus invalid. Finally, the destination disables the data accepted signal, and hence the system goes into its initial state. We have a surety that the destination unit has read the data on the data bus through the accepted signal.
Destination initiated handshaking: In the figure below, we can see that we have two handshaking lines, "data valid" and "ready for data" generated by the source unit and the destination unit, respectively.
Source: coagarage.blogspot.com
In destination initiated, the destination unit initiates the transfer, so the source unit does not place data on the bus until it receives a ready-for-data signal from the destination. After that, the handshaking process is the same as the source initiated.