# TURBOchannel

TURBOchannel is an open computer bus developed by DEC by during the late 1980s and early 1990s. Although it is open for any vendor to implement in their own systems, it was mostly used in Digital's own systems such as the MIPS-based DECstation and DECsystem systems, in the VAXstation 4000, and in the Alpha-based DEC 3000 AXP. Digital abandoned the use of TURBOchannel in favor of the EISA and PCI buses in late 1994, with the introduction of their AlphaStation and AlphaServer systems.

## History

TURBOchannel was developed in the late 1980s by Digital and was continuously revised through the early 1990s by the TURBOchannel Industry Group, an industry group set up by Digital to develop promote the bus. TURBOchannel has been an open bus from the beginning, the specification was publicly available at an initial purchase cost for the reproduction of material for third-party implementation, as were the mechanical specifications, for both implementation in both systems and in options. TURBOchannel was selected by the failed ACE (Advanced Computing Environment) for use as the industry standard bus in ARC (Advanced RISC Computing) compliant machines. Digital initially expected TURBOchannel to gain widespeard industry acceptance due to its status as an ARC standard, although ultimately Digital was the only major user of the TURBOchannel in their own DEC 3000 AXP, DECstation 5000 Series, DECsystem and VAXstation 4000 systems. While no third parties implemented TURBOchannel in systems, they did implement numerous TURBOchannel option modules for Digital's systems.
Although the main developer and promoter of TURBOchannel was the TURBOchannel Industry Group, Digital's TRI/ADD Program, an initiative to provide technical and marketing support to third parties implementing peripherals based on open interfaces such as FutureBus+, SCSI, VME and TURBOchannel for Digital's systems, was also involved in promoting TURBOchannel implementation and sales. The TRI/ADD Program was discontinued on 15 December 1992, except for in Japan.
In the early 1990s, Digital expected the TURBOchannel bus to face serious competition from other buses from other vendors such as HP, Sun and IBM, and therefore it announced that it intended to update the existing TURBOchannel specification to permit it to transfer up to 200 MB/s, using similar hardware. This upgrade to the protocol was to be backwards compatible, but Digital later canceled the intended update and TURBOchannel itself towards the end of 1994 once it became clear that PCI had become dominant.

## Architecture

TURBOchannel is a 32-bit address and data multiplexed bus, clocked at frequencies between 12.5 and 25 MHz, with a maximum theoretical usable bandwidth of 90 MB/s. The bus differs from others at the time by having point to point control lines. The firmware contained within TURBOchannel cards is MIPS machine code, a remnant of the bus' original use in MIPS-based systems. Because of this, later systems that use this bus such as the Alpha-based DEC 3000 AXP use an emulator contained in its system firmware to properly initialize them.
| Clock frequency | Maximum theoretical bandwidth | Sustained bandwidth (using DMA) | Sustained bandwidth (using PIO) |
| 12.5 MHz | 50 MB/s | ? | ? |
| 22.5 MHz | 90 MB/s | ? | ? |
| 25.0 MHz | 100 MB/s | 90 MB/s | ? |
The TURBOchannel is a synchronous, asymmetrical I/O channel. It is asymmetrical in the sense that option modules (Digital terminology for expansion card) can communicate with the system module (Digital terminology for motherboard) and not with other option modules.
A simple protocol is used to make TURBOchannel efficient. The TURBOchannel bus does not permit bus mastering, if a TURBOchannel connected device wishes to communicate with another, it must first transfer this information to the memory so the other device can read it. The TURBOchannel protocol specifies that each option has its own physical address space. This address space is used to address registers and memory on the option. The maximum amount specified is 16 GB, although each implementation can have an amount anywhere below this amount. Digital's own systems use anywhere from 4 MB (for early DECstation 5000s) to 128 MB in high-end DEC 3000 AXP models.
The TURBOchannel bus uses a 32-bit data and address multiplexed bus for transferring data and addresses. Every TURBOchannel option slot has its own set of seven point-to-point control lines and five lines for universal control and arbitration. The point-to-point control lines are connected directly to the TURBOchannel interface. The TURBOchannel interface was not defined in the TURBOchannel specification, although Digital introduced three possible schemes and an example ASIC. The three possible schemes were divided into a low-cost, a mid-range and high performance system implementations. The system can either time-multiplex multiple option slots in order to use a single memory port to share its bandwidth or dedicate a memory port to each option slot.

### Signals

| Signal name | Signal source | Description |
| ad[P, 31..0] | Bussed | Address/data bus |
| sel | System | I/O read/write select |
| write | System | I/O read/write specifier |
| ack | System | DMA read/write acknowledge |
| err | System | DMA error |
| reset | System | System reset |
| clk | System | Channel clock |
| rdy | Option | I/O read/write ready |
| conflict | Option | I/O read/write conflict |
| rReq | Option | DMA read request |
| wReq | Option | DMA write request |
| int | Option | I/O interrupt |

## Hardware

TURBOchannel option modules uses a 96-pin DIN connector (specifically DIN 41612) and option modules mounted inline with the system module. Each option module can be a single-, double-, or triple-width. Although double and triple width options use more than one TURBOchannel connector, this does not mean that bandwidth is doubled or tripled, as the slots are still sharing a single bus. Double- and triple-width option modules are used to mechanically accommodate larger option modules and for supplying more power. The mechanical specification for option modules is also flexible. There are few limitations for attaching daughterboards such SIMM modules (used in graphics options) and components can be mounted on both sides of the option module, with components on the bottom being restricted only in height to ensure that the option module could fit in the system module while maintaining enough airflow for cooling. An airflow of 150 LFMs is required above the option module and an airflow of 50 LFMs is required below the option module. Each slot has 44 signal pins, of which 32 are used for data and addressing.
| Form-factor | Width (mm) | Depth (mm) | Area (mm$^2$ |
| Single-width | 116.84 | 144.15 | 168 |
| Double-width | | | |
| Triple-width | | | |

### Electrical

The TURBOchannel slot supplies +5 and +12V power rails and provides a maximum of 26 watts of power. The following table shows how many amperes are supplied by each power rail.
| Width of option module | At +5V | At +12V |
| Single-width | 4.0A | 0.5A |
| Double-width | 8.0A | 1.0A |
| Triple-width | 12.0A | 1.5A |

### TURBOchannel Extender

The TURBOchannel bus can be "extended" by the TURBOchannel Extender (TcE) box. Because some options such as 3D graphics accelerators may require more power and board space than a single slot can provide, they are often double- or triple-width option modules. As such option modules consume additional space and slots inside a system, their presence may limit the number or even prevent the installation of other TURBOchannel option modules. A TURBOchannel Extender box is used to reduce the number of slots required inside a system for double and triple width options.
The TURBOchannel Extender box contains a PCB with two or three TURBOchannel slots and a power supply for supplying the required power to the slots. A TURBOchannel option module installed in the host and accompanying external cable extend the necessary data, addressing and control lines to the TURBOchannel extender box. There is no performance loss associated with the use of a TcE box, however TcE boxes support only one option module, regardless of how many slots are used in the extender box.