Back
Next
Control bus (packet)
Control bus provides a variety of signals needed for proper interaction of
units.
Common controls (specific controls vary by bus architecture).
Clock - provides for synchronization of system.
Data direction - specified the direction of data movement between master
and slave. Bus itself is bidirectional but target logic often includes
internal multiplexing to distinguish between input and output.
Memory/IO - indicates whether address specified identifies primary
memory or an I/O device.
Bus arbitration (request/grant)- provides correct interaction on
multi-master systems. Each device has dedicate pair.
Interrupt - used by devices to request attention from master.
Reset - causes the system to return to initial power up or start state.
Control/Status - used between master/slave (initiator/target) units
to establish a task session and monitor/report status of task.
Examples :
Conventional PCI
- 1992 (created) - 2003 (PCIe) - 2004 (last revision) - current but rare.
32-bit address/data lines to transmit both address and data information.
!FRAME to signal a frame of data consisting of mutliple 32-bit
transfers.
First transfer in frame is an address and command.
4-bit command/byte enable (C/BE)
During address transfer, represents a 4-bit command,
such as burst read, burst write, flush, etc.
Burst mode (alternatively burst-mode) is a generic electronics term referring to any situation in which a device is transmitting data repeatedly without going through all the steps required to transmit each piece of data in a separate transaction.
From en.wikipedia.org/wiki/Burst_mode_(computing)
|
During subsequent data transfers, functions as a mask applied to
the 32-bit (4 byte) data bus.
PCI performs burst transactions. An initiator initiates a transaction
session with a target using !FRAME, C/BE, and data lines.
Buffers set up on initiator and target.
Initial command and addressing information sent over C/BE
and data lines.
Multiple 32-bit words of data may then be burst transmitted with
minimal additional overhead.
The C/BE allows the transfer of less than 4 bytes at a time.
There is no protocol limit to the size of the data burst transfer.
But there are practical limits.
Transaction is unidirectional but may be moved in either way.
Under normal circumstances, only one initiator/target transaction can
occur on the PCI bus at a time.
PCI's efficiency improves as the size of transaction increases.
i.e file access on a hard drive.
Very small transactions occur very high overhead.
Under certain circumstances a transaction can be suspended and
another initiator can start a different transaction.
GNT/REQ - arbitration lines. For selecting an initiator.
Each connector has its own GNT/REQ lines.
INT# - four interrupts lines available to any device.
Each connector has all 4 interrupt lines. Lines are shifted on
each connector. A device may use all 4 interrupts.
IDSEL - before a PCI device can be seen by the system, the PCI
controller must configure the interface. Each interface has its
own IDSEL line that is used by the controller to target specific
device/slot.
DEVSEL - used by selected target to ackknowledge recognition of its
selection. Must respond within 3 clock cycles.
IRDY/TRDY - ready status lines for initiator and target.
Used when buffers full/empty to provide short pauses in transfer.
STOP - a type of abort request.
# not complete list, bus includes error or special purpose signals.
General Purpose Interface Bus
The GPIB is a true asynchronous bus. All data movement is controlled
by a series of control/status signals.
8-bit data bus used for address/data transfers.
Single-ended signalling.
8-bit ground lines.
8 Control/status signals pull-up or pull-down.
This means that all devices have to respond to signal.
EOI - end or identity (marks the end of the data stream).
DAV - Data valid
NRFD - Not ready for data
NDAC - Not data accepted (Data not read)
IFC - Interface clear (reset)
ATN - Attention (data represents a command )
SRQ - service request (interrupt) - requires polling.
REN - Remote enabled - used to transfer initiatior task.
Control/Status line can be combined in a number of ways to indicate
different tasks or statuses.
These may be defined by a particular implementation of the bus.
Devices are assigned a 5-bit ID (usually jumpers).
Transfer initialization
A device is chosen by the user as an initiator.
A talker is selected by an initiator.
(This arbitration requires human interaction)
This consists of setting the device ID as data
and using the control/status lines to signal this.
Selected talker responds with certain signals
as it becomes active.
Talk selects a listner by similar procedure.
Begin data transmission.
Talker indicates data invalid (new transaction) by bring DAV high.
Listeners see DAV and finish last transaction. Each listener then brings
both !NRFD and !NDAC low indicating everyone in an idle state.
Talker puts data on data lines.
Note that there is an implied time frame, after listeners have held
both !NRFD and !NDAC low for a short time, each will allow !NRFD high.
When Talker sees that all devices are listening, it indicates that
new data is valid by taking !DAV low.
As each listener reads data, it indicates that it is busy processing the new
data by bringing !NRFD low.
Once read, each listener then indicates it has taken the new data it allows
!NDAC to go high.
Only addressed device will process it further and slowest device determines
overall speed.
When all listeners indicate data accepted, talker indicates data invalid and
process starts over for next byte of data. (!DAV high)
# Note that by definition of burst above, GPIB does support burst mode. The
selection of talker and listener is selected and then multiple bytes of data
may be transferred with out having to reselect devices.
Misc - others as appropriate to specific bus architecture.