In computing, the Tube was the expansion interface and architecture of the BBC Microcomputer System which allowed the BBC Micro to communicate with a second processor, or coprocessor.
Under the Tube architecture, the coprocessor would run the application software for the user, whilst the Micro (acting as a host) provided all I/O functions, such as screen display, keyboard and storage devices management. A coprocessor unit could be coldplugged into any BBC Micro with a disk interface (whose ROM contained the necessary host software) and used immediately.
The 40-pin IDC "Tube" connector was a simple slave connection to the host processor's main bus, with 8 data lines, 7 address lines, and an interrupt input. The Tube protocols were implemented by hardware in the attached device.
Inside the coprocessor unit a proprietary chip (the Tube ULA, manufactured initially by Ferranti) interfaced and logically isolated the host and coprocessor buses. This allowed the Tube to work with a completely different bus architecture in the coprocessor unit. The only other active components needed were a microprocessor, some RAM, a small ROM containing processor specific client code, glue logic such as an address decoder and a power supply.
The two processors communicated through four pairs of FIFO buffers in the Tube ULA. Console input/output, error messages, data transfers and system calls each had their own pair of buffers, one for each direction. The queue capacity varied between 1 and 24 bytes, depending on the dedicated buffer function. Each buffer had a control register and status register to monitor its state and configure the raising of interrupts.