Tube (BBC Micro)
Encyclopedia
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 coldplug
ged into any BBC Micro with a disk interface (whose ROM contained the necessary host software) and used immediately.
Inside the coprocessor unit a proprietary chip (the Tube ULA
, initially developed 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 message
s, data transfers and system call
s 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 interrupt
s.
The protocol for the use of these buffers was rigorously specified by Acorn Computers and amounts to interprocess communication by message 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 was synchronised by passing a dummy byte and then regulated by the relevant buffer semaphore.
The general-purpose nature of the Tube connector in principle allowed it to be used for any type of high-speed peripheral, although Acorn only used it for Tube coprocessors. The BBC Micro/Master range provided 5 address lines for the address range &60–&7F but the Tube protocol only used the lowest 3 bits. Only these 3 address lines are connected to internal Tube sockets, as found in the BBC Master or Universal Second Processor Unit.
processor which allowed unmodified BBC Micro programs to run faster and with more memory, as long as they used the API for all I/O. There was also a Zilog Z80
processor to run CP/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 supported two Tube connections, allowing for a coprocessor fitted inside the case and another connected externally, but only one could be used in any powered session. An internal 6502 processor could be fitted, or an Intel 80186
based system for DOS
compatibility (although in practice this was limited).
The Tube was also used during the initial development of the ARM
processor. An evaluation board was 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. 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.
BBC Micro
The BBC Microcomputer System, or BBC Micro, was a series of microcomputers and associated peripherals designed and built by Acorn Computers for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation...
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
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
functions, such as screen display, keyboard and storage devices management. A coprocessor unit could be coldplug
Coldplug
Computer components are usually described as coldpluggable if the computer system must be powered down to add or remove them. The opposite term is hotpluggable; hotpluggable components can be added or removed without powering down the computer....
ged into any BBC Micro with a disk interface (whose ROM contained the necessary host software) and used immediately.
Implementation
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
Gate array
A gate array or uncommitted logic array is an approach to the design and manufacture of application-specific integrated circuits...
, initially developed by Ferranti
Ferranti
Ferranti or Ferranti International plc was a UK electrical engineering and equipment firm that operated for over a century from 1885 until it went bankrupt in 1993. Known primarily for defence electronics, the Company was once a constituent of the FTSE 100 Index but ceased trading in 1993.The...
) 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
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...
, some RAM, a small ROM containing processor specific client code, glue logic such as an address decoder
Address decoder
In digital electronics, an address decoder is a decoder circuit that has two or more bits of an address bus as inputs and that has one or more device selection lines as outputs. When the address for a particular device appears on the address bus, the address decoder asserts the selection line for...
and a power supply
Power supply
A power supply is a device that supplies electrical energy to one or more electric loads. The term is most commonly applied to devices that convert one form of electrical energy to another, though it may also refer to devices that convert another form of energy to electrical energy...
.
The two processors communicated through four pairs of FIFO
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...
buffers in the Tube ULA. Console
System console
The system console, root console or simply console is the text entry and display device for system administration messages, particularly those from the BIOS or boot loader, the kernel, from the init system and from the system logger...
input/output, error message
Error message
An error message is information displayed when an unexpected condition occurs, usually on a computer or other device. On modern operating systems with graphical user interfaces, error messages are often displayed using dialog boxes...
s, data transfers and system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...
s 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 interrupt
Interrupt
In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....
s.
The protocol for the use of these buffers was rigorously specified by Acorn Computers and amounts to interprocess communication by message passing
Message passing
Message passing in computer science is a form of communication used in parallel computing, object-oriented programming, and interprocess communication. In this model, processes or objects can send and receive messages to other processes...
. Most interaction was asynchronous
Asynchronous systems
In a synchronous system, operations are coordinated under thecentralized control of a fixed-rate clock signal or several clocks. Anasynchronous digital system, in contrast, has no global clock: instead,...
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 was synchronised by passing a dummy byte and then regulated by the relevant buffer semaphore.
The general-purpose nature of the Tube connector in principle allowed it to be used for any type of high-speed peripheral, although Acorn only used it for Tube coprocessors. The BBC Micro/Master range provided 5 address lines for the address range &60–&7F but the Tube protocol only used the lowest 3 bits. Only these 3 address lines are connected to internal Tube sockets, as found in the BBC Master or Universal Second Processor Unit.
Application
Numerous coprocessors were developed for the Tube. Most commonly seen was a MOS Technology 6502MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...
processor which allowed unmodified BBC Micro programs to run faster and with more memory, as long as they used the API for all I/O. There was also a Zilog Z80
Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...
processor to run CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...
and a National Semiconductor 32016
NS320xx
The 320xx or NS32000 was a series of microprocessors from National Semiconductor . They were likely the first 32-bit general-purpose microprocessors on the market, but due to a number of factors never managed to become a major player...
processor running Panos (and unofficially a UNIX variant).
These coprocessors formed the basis of the Acorn Business Computer
Acorn Business Computer
The Acorn Business Computer was a series of microcomputers announced at the end of 1983 by the British company Acorn Computers. The series of eight computers was aimed at the business, research and further education markets. However, the ABC range was cancelled before any of the models were...
series, the higher end machines being repackaged BBC Micros with a coprocessor attached via the Tube. The Master Series supported two Tube connections, allowing for a coprocessor fitted inside the case and another connected externally, but only one could be used in any powered session. An internal 6502 processor could be fitted, or an Intel 80186
Intel 80186
The 80188 is a version with an 8-bit external data bus, instead of 16-bit. This makes it less expensive to connect to peripherals. The 80188 is otherwise very similar to the 80186. It has a throughput of 1 million instructions per second....
based system for DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...
compatibility (although in practice this was limited).
The Tube was also used during the initial development of the ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
processor. An evaluation board was 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. 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.