- Tube (BBC Micro)
In computing, the Tube was an expansion interface and architecture on the BBC Microcomputer System which allowed the BBC Micro to communicate with a second processor, or "coprocessor".
Under the architecture the coprocessor would run user code, whilst the Micro (actingas a "host") provided certain I/O functions such as screen and storage device management. A coprocessor unit could be cold-plugged into any BBC Micro with a disk interface (whose ROM contained the necessary host code) and used immediately.
Implementation
Inside the coprocessor unit a proprietary chip (the "Tube ULA", initially developed by
Ferranti ) interfaced between, and logically isolated, the host and coprocessor buses. This allowed the Tube to adapt to different bus architectures in the coprocessor unit. The only other components needed were amicroprocessor , some RAM, a small ROM containing processor specific client code, anaddress decoder and apower supply .The two processors communicated through four pairs of
FIFO buffers in the Tube ULA. Console input/output,error message s, data transfers andsystem call s each had their own pair, one buffer for each direction. To reduce latency, the queue capacity varied between 1 and 24 bytes, depending on the buffer. Each buffer had a control and status register to monitor its state and configure the raising ofinterrupt s.The protocol for the use of these buffers was rigorously specified by Acorn Computers [http://www.sprow.co.uk/bbc/hardware/armcopro/004.pdf Acorn Application Note 004, "Tube Application Note"] ] and amounts to
interprocess communication bymessage passing . Most interaction was asynchronous but fast block transfers were synchronous and consisted of the host blindly running a simple fetch-store loop, which defined the transfer rate. The coprocessor, which had its own clock, was synchronised by passing a dummy byte and then regulated by the relevant buffer semaphore.Application
Numerous coprocessors were developed for the Tube; most commonly seen was a
MOS Technology 6502 processor which allowed properly written BBC Micro programs to run faster and with more memory. There was also aZilog Z80 processor to runCP/M and a National Semiconductor 32016 processor running Panos (and unofficially a UNIX variant).These coprocessors formed the basis of the
Acorn Business Computer series, the higher end machines being repackaged BBC Micros with a coprocessor attached via the Tube. The Master Series modified the Tube, allowing one coprocessor to be fitted inside the case and another to be connected externally, though the two never ran simultaneously. An internal 6502 processor could be fitted, or anIntel 80186 based system forDOS compatibility (although in practice this was limited). [Watford Electronics,"Advanced Reference Manual for the BBC Master Series",1988]The Tube was also used during the initial development of the ARM processor, an evaluation board being developed that again used the BBC Micro as a host system for I/O operations.
Acorn had strongly discouraged BBC Micro programmers from directly accessing system memory and hardware, favouring official API calls. [Acorn Computers Ltd, "BBC Microcomputer System User Guide", chapters 43, 46.] This was ostensibly to ensure applications could be seamlessly moved to the Tube 6502 coprocessor, since direct access from there was impossible. When a program called one of the MOS entry points, a replacement subroutine in the coprocessor's ROM passed a corresponding message to the host which carried out the operation and passed back the result. In this way an application could run identically on the host or the coprocessor. Other CPU models used a custom API, which was typically an orthogonal translation of the 6502 API into a native format.
References
Wikimedia Foundation. 2010.