QBUS SYSTEMS AND OPTIONS


1. Qbus basics
by Ákos Varga (Hamster)

1.1  The history of the qbus
1.2  The functionality of the qbus
1.2.1  Physical functions
1.2.2  Addressing basics
1.3  Qbus card types
1.4  Qbus backplane types
1.4.1  2 by X backplanes
1.4.2  4 by X backplanes
1.4.2.1  "Serpentine" configuration
1.4.2.2  QBUS/CD configuration
1.4.2.3  Mixed configuration backplanes
1.5  Qbus hints and tips
1.5.1  Device ordering
1.5.2  Working with qbus enclosures


Note: These pages are for informational purposes, I cannot be held responsible for damages, loss of information/hardware or injuries. Take precautions, we're talking about sensitive equipment and electricity here! I gathered the information from handbooks, catalogs, UseNet postings and from my own experience, so I might be wrong here and there. Please mail me, if you find something that doesn't seem right!


1 Basics of the Digital qbus

1.1 The history of the qbus

The Digital qbus originates from the PDP-11 Unibus: it was intended as the system interconnect for the low-end LSI (microprocessor-based) PDP-11 microcomputers (its original designation was "LSI-11 bus"). It's very similar to its predecessor, although it's simpler, and the throughput is smaller (3.3 MB/s at its best). It was introduced in the PDP-11/03 computer with the LSI-11 processor in 1975. The first version was rather simple to the latest qbus systems: the early implementation provided means for 18-bit addressing (the above mentioned two processors used only 16-bit addresses), some connections were used differently. Later qbus systems used 22-bit addressing, and different techniques to access memory, which doesn't count as qbus traffic. From now on, the name "qbus22", or "Q22" means qbus with 22-bit addressing capabilities.
 

1.2 The functionality of the qbus

1.2.1 Pysical functions

For those, who are new to Digital busses (or any busses for that matter): the qbus is there to provide a way for the CPU (central processor unit, the heart of the computer) to communicate with the memory and different devices (peripheral controllers for example). Devices can use the qbus to communicate with the CPU/memory or with another device, and it's the processor's job to tell 'who' can use the bus for transferring data on it (this is called arbitration). Every device issues a request, when it needs to talk, the processor grants the right to do so according to multi-level priorities (which are determined by a priority list and/or by the physical distance of the device in question from the CPU) and the device becomes bus master.  Some devices are able to transfer to and from the memory without CPU intervention (DMA=Direct Memory Access; the CPU grants the access to the memory, and from then the requesting device is responsible for the further moves of data), mostly controllers that generate very much traffic; this speeds up things. The qbus is an asynchronous interconnect, there's no central timing sequence, the functionality of the system depends on the proper use of request/grant/acknowledge signals (of course there are timeouts to prohibit bus hangs).

Logically, the qbus is divided into the following parts: transmission lines (for request/grant signals: data and address, system status), arbitrator (which is normally in the CPU) and transmitters/receivers (which are on the devices (boards) itself). Mechanically, the qbus consists of: the backplane (slots for the boards, interconnection between the connectors in the slots, lines for the electrical power), the card-edge connectors on the qbus devices (the connecting fingers look just like the ones on UNIBUS boards, sometimes it can be confusing), and the signal termination on both ends. There's no "motherboard" on the qbus as seen in the PC's for example: the bus is just a physical way to interconnect system components, and the CPU is just another device on it. The qbus is a "daisy-chain"-type bus, devices are connected one after another. Basically, an empty slot between two qbus devices means a break in the chain.

1.2.2 Addressing basics

The qbus, just like the UNIBUS, has memory mapped I/O addresses for each device in the system, which means that they communicate through special memory locations. Each device on the qbus has a device address, which is referred as the Control and Status Register (CSR) address, and an interrupt vector. These values can be either fixed or floating addresses. Fixed means, that there are address locations in memory for the addresses of the particular option. E.g., there is a fixed address for the first device of the kind, for the second, the third, etc. Devices of the same type must use separate CSRs. A floating address is assigned a location within a range. Sometimes the first device of a particular kind is at a fixed address, and the next one is in the floating space.

As you will see, qbus addresses (both the CSR and the vector) are displayed in octal values (the vectors are at the beginning of the qbus address space, the CSR's are at the end). Physically, the addresses of a qbus device can be set with jumpers or switches on the module. Modules with fixed addresses and vectors are usually shipped with settings for the first device of that particular kind. As the leading digits of an address are always the same, and they're always at a byte boundary  (1776xxxx0), only four digits are configurable (this can be accomplished with 10 switches instead of 22). Vector addresses are often set by the opearting system upon boot. Also, in manuals and by some system software, these addresses are only referred to with six digits, i.e. 760215 is 177602150, or seven, i.e 7602150 is 177602150.

For example, the first MSCP (Digital's Mass Storage Control Protocol - a protocol used with disk drives from te mid-80's) disk controller CSR is at 772150, the other MSCP devices are in the floating CSR address space: 760334, 760340, 760344, etc...). The first TMSCP (which of course stands for Tape MSCP) has its CSR at 774500, the second TMSCP device has a floating CSR. On the other hand, the first Ethernet controller is at 774440, and the next at another fixed location, namely 774460. Finding the possible CSR and vector address values for a certain device is not trivial, but the manuals can help. Also of great help is the SYSGEN utility, which can be found on various Digital operating systems, e.g. RSX11, RSTS, VMS.

1.3 Qbus card types

Something about the terminology used here:

Dual-height card

Figure 1: A dual-height qbus card
Figure 1: A dual-height qbus card

A dual card has two card-edge connecting "fingers". These two "fingers" are enough to transmit and receive all qbus signals and power.
 

Quad-height card

Figure 2: A quad-height qbus card
Figure 2: A quad-height qbus card

The quad boards have four "fingers". Sometimes only the first two are used, and the rest is just used to draw power and to "jumper" some lines (connect one signal line, which ends at the connector to the next line, which starts at another pin, this is necessary to have continuity: if some lines are not jumpered through, the bus chain is broken, and the devices physically behind cannot be used), sometimes the second two fingers are used to form another, "private" bus (For example one device can be spread onto more than one board, and the boards can communicate with each other on these lines (This of course assumes that the backplane is not normal qbus on this side!). We'll see examples for this, one thing's for sure: there are different types of backplanes, one must pay attention when moving around cards between different systems!).

Handles
"Normal" qbus cards (well... most of them) have small plastic handles on the end of the bord, and/or small metal "hooks" that are used to hold it in place and help at insertion or removal. But there are also so-called S-handle boards, which have different fitment, and small blanking panels on them. These are used in BA2xx, BA3xx, etc-series enclosures. Note: there can be other differences between S-handle and normal qbus boards, but let's not overrush it!

Multi-board devices

Click here to see the full-size image

Picture 1: An option consisting of three quad-height boards, connected to each other with ribbon cables

As mentioned earlier, some devices can occupy more qbus boards (mostly 2 or 3), sometimes these are connected with ribbon cables.

Grant continuity jumper card
This card can (must) be fitted into empty slots between two qbus devices (we'll see reasons why can this occur), it jumpers the necessary lines so that the remaining section of the qbus (on the farther side of the break, seen from the processor's side) remains functional.

Qbus jumper
A jumper card (a set of two dual qbus cards connected with ribbon cables) is used to connect two qbus backplanes. There are rules how to do this, as the length of the qbus is limited.
 

1.4 Qbus backplane types

The backplane is the physical interconnect between the qbus devices (boards). A normal qbus slot is dual-height (two "fingers" wide, or two pysical slots), but most (apart from LSI-11 systems) backplanes are quad height (2x2 "fingers"). There are two possibilities with this double width: the second card insertion slot can be either another qbus slot, or it can be used for some other purpose. From now on we'll be illustrating the backplane from the card's insertion side, i.e. as seen when we insert a card. "Row 0" (the top) is seen with the component side of the cards upside.

           -------- --------                
ROW 1     |   A    |   B    |
           -------- --------
ROW 2     |        |        |
           -------- -------- 
ROW 3     |        |        |
           -------- --------
ROW 4     |        |        |
           -----------------
Figure 3: A 2x4 slot qbus backplane (2 columns by 4 rows)
 
           -------- -------- -------- --------               
ROW 1     |   A    |    B   |    C   |    D   |          
           -------- -------- -------- --------
ROW 2     |        |        |        |        |
           -------- -------- -------- --------
ROW 3     |        |        |        |        |
           -------- -------- -------- --------
ROW 4     |        |        |        |        |
           ----------------- -------- --------
Figure 4: A 4x4 slot qbus backplane (4 columns by 4 rows)

1.4.1 2 by X backplanes

This is just like seen above (Fig.3). They're pretty straightforward, as the "second two slots"-problem doesn't exist here. These backplanes were mostly used in old LSI-11 and embedded LSI-11-based systems. Early version are 18-bit, later ones are 22 (the conversion can be done easily, so there could be backplanes with P/N's that suggest 18-bit, while they're 22...).

H9281-BA was one of the early LSI-11/2 backplanes by Digital (18-bit). The -BB and -BC versions were 2x8 and 2x12 configurations with built-in bus terminators.

1.4.2 4 by X backplanes

1.4.2.1 Serpentine configuration

The early 4x4 LSI11 backplanes had a "serpentine" slot configuration, the cards must be ordered by this chain (and remember: no empty slots!).

                        Qbus                   Qbus
                 -------- --------       -------- --------               
ROW 1           |   A    |    B   | --> |    C   |    D   | ---.          
                 -------- --------       -------- --------     |
                 -------- --------       -------- --------     |          
ROW 2      .--- |   A    |    B   | <-- |    C   |    D   | <--'       
           |     -------- --------       -------- --------    
           |     -------- --------       -------- --------
ROW 3      `--> |   A    |    B   | --> |    C   |    D   | --.
                 -------- --------       -------- --------    |   
                                                              |
                                                    etc... <--'
Figure 5: "Serpentine" slot configuration

1.4.2.2 QBUS/CD configuration

Other backplanes (in newer enclosures, such as the BA2xx, BA3xx series) have the so-called Q22/CD-style configuration), in which there are two different bus columns: one is qbus straight downwards, the other is a private interconnect. As this is used mostly in backplanes with 22-bit qbus, it's called Q22/CD configuration (MicroPDP-11/83, MicroVAX3xxx systems use this).

                       Qbus                     C-D
                 -------- --------       -------- --------               
ROW 1           |   A    |    B   |     |    C   |    D   |          
                 -------- --------       -------- --------
                                                 
                         |                       | 
                         V                       V

                 -------- --------       -------- --------            
ROW 2           |   A    |    B   |     |    C   |    D   |       
                 -------- --------       -------- --------
                         
                         |                       | 
                         V                       V
    
                 -------- --------       -------- --------
ROW 3           |   A    |    B   |     |    C   |    D   |
                 -------- --------       -------- --------
              
                         |                       |
                         V                       V
                      etc...                   etc...
Figure 6: QBUS/CD backplane configuration

It's not trivial to use a backplane like this. The first thing: never insert a dual-height qbus card into the C-D slot of such a backplane! Quad cards are another problem. As mentioned earlier, there are different types of them. There are cards that only draw power from the second two fingers, which go into C-D. There's a chance, that card of this sort can be used in such a backplane. Most quad boards don't have qbus connections on the second two fingers, but they jumper the grant lines, which is why they cannot go into a QBUS/CD backplane (or the jumper lines must be cut, you must look at the qbus specs to find out how to do it). The cards intended to be used in a BA2xx or BA3xx enclosure are designed for this backplane configuration, these are the so-called "S-handle" boards. These Boards where also used in VAX4000 BA4xx enclosures.

1.4.2.3 Mixed serpentine / Q/CD configurations

This is something between the "serpentine" and the straight-down QBUS/CD backplanes: the first few slots are Q22/CD, then everything's serpentine downwards. Examples for this can be found in the BA23 (MicroPDP-11, MicroVAX I and II) and BA123 enclosures. The BA23 has 3 Q22/CD and 6 Q22/Q22 rows, the BA123 is 4 Q22/CD and 8 Q22/Q22.
 

                      Qbus                     C-D
                 -------- --------       -------- --------               
ROW 1           |   A    |    B   |     |    C   |    D   |          
                 -------- --------       -------- --------
                                                 
                         |                       | 
                         V                       V

                 -------- --------       -------- --------            
ROW 2           |   A    |    B   |     |    C   |    D   |       
                 -------- --------       -------- --------
                         
                         |                       | 
                         V                       V
    
                 -------- --------       -------- --------
ROW 3           |   A    |    B   |     |    C   |    D   |
                 -------- --------       -------- --------
              
                         |                       
                         V
                 -------- --------       -------- --------               
ROW 4           |   A    |    B   | --> |    C   |    D   | ---.          
                 -------- --------       -------- --------     |
                 -------- --------       -------- --------     |          
ROW 5      .--- |   A    |    B   | <-- |    C   |    D   | <--'       
           |     -------- --------       -------- --------    
           |     -------- --------       -------- --------
ROW 6      `--> |   A    |    B   | --> |    C   |    D   | --.
                 -------- --------       -------- --------    |   
                                                              |
                                                    etc... <--'
Figure 7: A "mixed" backplane configuration (depicts the BA23 drawer)

In this case, only dual-height cards can be inserted into the left part of the upper Q22/CD (if you don't have any, you must use grant continuity card instead of normal cards), quad cards can go into the Q22/Q22 section. To understand the existance of this configuration, you must know, that the MicroPDP and MicroVAX systems which were shipped with this backplane type, had non-qbus memory interconnects (PMI-Provate Memory Interconnect for the PDP and LMI Local Memory Interconnect for the MicroVAX), which use the C-D slot. These machines use the first slots for the CPU and memory, everything comes after that - in the Q22/Q22 section.

4 by X qbus backplanes

H9270-A: 4x4 LSI11 backplane (18-bit), serpentine
H9270-Q: 4x4 Q22 backplane (22-bit), serpentine
H9273-A: 4x9 LSI11 backplane (18-bit), serpentine
H9275-A: 4x9 Q22 backplane (22-bit), serpentine, with built-in terminators
H9276-A: 9x4 Q22 backplane (22-bit)

1.5 Qbus hints and tips

1.5.1 Device ordering

You have to pay attention in which way you put your qbus cards into the backplane. The positioning of a certain module depends on a couple of things, like:

We discussed the different backplane types above, now it's time to get familiar with some rules of thumb: 1.5.2 Working with qbus enclosures

These are just things that pop to my mind...

If you have questions: Emailing me is perhaps not the best way to find a solution you have with your qbus systems. The newsgroups vmsnet.pdp-11, comp.sys.dec, comp.sys.dec.micro or alt.sys.pdp11 might suit better. To use these links, you must have a newsserver configured, that sports these groups. If you don't have access to one, try dejanews!


Copyrights: Ákos Varga, 1999 Last modified: