Main Menu
IT Visions
Backplane Bus
|
Most modern PC systems are based an the PCI (Peripheral Component
Interconnect) bus. However, the PCI bus has a lot of disadvantages because
it was not originally created as a backplane bus, but as a way to connect
integrated circuits. To avoid termination resistors PCI uses a very
special modulation method known as Reflected Wave Switching, which
utilizes the reflections from the far end of the transmission line to build
up the signal level. The driver must have an output impedans, which
corresponds to the impedance it looks into. When the driver is
initiated, the signal level will initially be only 1/2 of the
full level. However, because the bus is unterminated the reflections from
the far end will be added to the signal, so that the level in this end
attain the full level and with that exeeds the threshold level of the
receiver. Then the reflected wave propagates towards the driver where it
is absorbed in the resistor, so that the level on the entire bus has now
attained full signal level and that there will be no more reflections.
The PCI bus has a lot of disadvantages, most of these coursed
by the special modulation method.
- It requires a special driver or a serial resistor, so it is
impossible to interface directly by means af e.g. standard High Speed
CMOS logik.
- The ideal output impedance depends on the driver possition on
the bus. If it is located in the middle, it will look into two
transmission lines in parallel and should therefore have the half line
impedance, that is, 25 ohm on a 50 ohm bus. On the other hand, if the
driver is located in the far end, it will only look into one transmission
line and should therefore have a 50 ohm impedance on a 50 ohm bus. The
output impedance is therefore a compromise, which will never be ideal.
The compromise is made even futher difficult because of the big resistor
tollerances in an integrated circuit. Because of the compromise, the
reflections will not be absorbed 100%, but continue backwards and
forwards more times until a steady state has been obtained. This gives
a strong limitation on the maximun bus speed.
- Because of the necessary reflection round-trips the bus must be
really short to fulfill the demand for a 10 nS settle time.
Originally, the PCI bus was only 4 inches long!
- The output impedance of the driver works as a low pass filter
together with the input capacitance of the connected units. This reduces
the maximum number of units to 8, but above 4 units it becomes very
critical.
- The short bus length and the low number of units may make it
necessary to split up the bus in more segments, which are connected by
means of bridge units. This futher slows down the bus and makes it
extremely complicated to interface to. A typical bus coupler is a
circuit with over 200 legs and a specification of over 100 pages.
- It is not possible to reduce the bus speed as required, so that
it may interface to slow cards.
- The PCI bus is unnecessary complex. One of the fundamental idears
of the bus is that it should be able to work as a "traffic circle" with
possibility for more traffic flows. However, in practice it is only data
transfers between the CPU and any level 2 cache, which may benefit from
this. The CPU depends 100% on access to the memory and the memory unit
is also the only one, which the remaining units are interested in talking
to directly (DMA). A separate bus between the CPU and the L2 cache could
solve the problem in a far more simple and appropriate way.
For Innovatic, which has specialized itself in simple and reliable
solutions, the PCI bus is of course much too complicated and critical.
Therefore, we also have our own suggestion for an efficient and far more
simple alternative.
A "modern" PC has a lot of different busses. There is a local bus to
the memory, local busses to harddisk and diskette drive, a bus between the
CPU and the graphical controller (AGP), one or more PCI busses and perhaps
an ISA or EISA bus. Everything are connected by means of extremely
complex bridge units and controllers. However, the Innovatic suggestion is
one bus for the whole exept for a local bus between the CPU and any
L2 cache. All other units - including CPU, memory, harddisk,
diskette drive, CD-ROM etc. - are connected to a common backplane with a
fast, passive bus. This makes the system much cheaper and easier to
service, and there is no demand for any diskette or harddisk controllers.
By utilizing the same idears for bus arbitration and utilization of the
reflections as in our fieldbus (see [Automation]
[Fieldbus] ) it is possible to make a bus with the following
properties:
- Extremely simple - demands almost as little logic as the ISA bus
(Industry Standard Architecture - the old PC bus).
- Very simple modulation method - almost as simple as NRZ (Not
Return to Zero). The reflections are utilized to improve the signal to
noise level, but the bus do not depend on them. No bias distortion.
- No need for any termination resistors.
- Is able to use a standard High Speed CMOS driver and a standard
High Speed CMOS schmitt-trigger receiver.
- Up to 32 connected units.
- Is able to adapt the speed to the actual requirement.
- Possibility for a faster speed than PCI. Theoretically op to 200
MHz is possible on a 15 inch bus based on a simple double sided epoxy
printed circuit board.
- Multimasterbus with a very simple, but fast and efficient bus
arbitration, which is also utilized as interrupt controller and DMA. It
is therefore not necessary with a common bus arbitration unit, interrupt
controller or DMA controller. All this are replaced by 3 groups of
priority levels. The lowest group is used for e.g. memory access from
the CPU, the next group for DMA transfers and the group with the higest
priority for interrupts. If e.g. a harddisk wants to transfer some data
by means of DMA, it do not need to use an external DMA controller.
Because the bus is a multimaster bus it just performs a bus arbitration
cycle when the bus becomes idle, which it always does at short
intervals. If the harddisk has the highest priority between the units
which are waiting for bus access, it will obtain the bus and may then
itself transfer the data to the memory. In the same way, an
arbitration cycle is performed if a unit request interrupt service. In
this case, it will just be the CPU, which performs the data transfer. If
more units request interrupt simultaneously it is of course the unit
with the higest priority, which is serviced. After that a new
arbitration cycle is performed.
|