Back
Next
Bus synchronization.
Synchronous bus
Clock is provided to signal boundaries of state changes.
Can be dedicated clock signal
Can be embedded in data stream, using techniques like NRZI, RLL, and/or
Manchester encoding.
Simplifies control and interaction between devices.
But requires more expensive and precise controls.
And/or encoding/decoding of clock within bit stream.
Requires that devices function in a defined parameters.
received data must be latched within defined clock periods.
May not act in a single clock cycle, but information must be ready at
specific change of clock cycle.
Or additional buffer circuitry added to isolate the asynchronous portion.
Modern system bus implementation often uses a tiered design to allow
buffering and bus segments that function at optimal timing for a set
of devices or interfaces.
Asynchronous bus
Data/signal may arrive at any time.
Additional control signals needed to guarantee proper interaction.
Handshaking. (Review the timing diagram of RAM)
Devices interact only when and if necessary.
Small packets of data may be encapsulated in Start/Stop bit patterns.
Or require additional signals/lines to indicate when bit/byte is
valid and usable.
Most implementations use local clocks at approx. same frequency
to make reasonable measurements of bit stream.
Truly asynchronous bus may have no clock info at all
Uses extensive hand-shaking and control lines.
Real vs. Virtual bus implementation.
Real - bus has dedicated lines for address, data, control, and power.
Real shared - some implementation use data lines for transmitting
address and data on alternate clock cycles or transmission periods
or at alternative levels of the clock cycle.
Virtual - with the development of networking and packet driven
communications, it is practical to use a limited number of lines to
deliver address, data, and control information by encoding it on an
appropriately identified packet.
Packet may be flagged to ID the 'type' of information being transmitted.
e.g SATA, PCIe, USB, Ethernet