En el sistema de microcomputadora BBC , el tubo es la interfaz de expansión y la arquitectura que permite que el BBC Micro se comunique con un segundo procesador o coprocesador .
En la arquitectura Tube, el coprocesador ejecuta el software de aplicación para el usuario, mientras que el Micro (que actúa como host ) proporciona todas las funciones de E/S , como la visualización de la pantalla, el teclado y la gestión de dispositivos de almacenamiento. Una unidad de coprocesador se puede conectar en frío a cualquier BBC Micro con una interfaz de disco (cuya ROM contenga el software host necesario) y se puede utilizar de inmediato.
El conector "Tube" IDC de 40 pines es una conexión esclava simple al bus principal del procesador host, con 8 líneas de datos, 7 líneas de dirección y una entrada de interrupción. Los protocolos Tube se implementan mediante hardware en el dispositivo conectado.
Dentro de la unidad de coprocesador, un chip propietario (el Tube ULA , fabricado inicialmente por Ferranti ) interactúa y aísla lógicamente los buses del host y del coprocesador . Esto permite que el Tube funcione con una arquitectura de bus completamente diferente en la unidad de coprocesador. Los otros componentes activos necesarios son un microprocesador , algo de RAM , una pequeña ROM que contiene el código de cliente específico del procesador, lógica de unión como un decodificador de direcciones y una fuente de alimentación .
Los dos procesadores se comunican a través de cuatro pares de buffers FIFO en el ULA de Tube. La entrada/salida de la consola , los mensajes de error , las transferencias de datos y las llamadas del sistema tienen cada uno su propio par de buffers, uno para cada dirección. La capacidad de la cola varía entre 1 y 24 bytes, dependiendo de la función del buffer dedicado. Cada buffer tiene un registro de control y un registro de estado para monitorear su estado y configurar la generación de interrupciones .
El protocolo para el uso de estos buffers fue especificado rigurosamente por Acorn Computers [1] y equivalía a una comunicación entre procesos mediante el paso de mensajes . La mayor parte de la interacción es asincrónica , pero las transferencias de bloques rápidas son sincrónicas y consisten en que el host ejecuta ciegamente un bucle simple de búsqueda y almacenamiento, que define la velocidad de transferencia. El coprocesador se sincroniza mediante el paso de un byte ficticio y luego se regula mediante el semáforo del buffer correspondiente.
La naturaleza de propósito general del conector Tube permite, en principio, que se utilice para cualquier tipo de periférico de alta velocidad, aunque Acorn solo lo utiliza para coprocesadores Tube. La gama BBC Micro/Master proporciona 5 líneas de dirección para el rango de direcciones &60–&7F, pero el protocolo Tube utiliza los 3 bits más bajos. Solo estas 3 líneas de dirección están conectadas a conectores Tube internos, como los que se encuentran en la BBC Master o la unidad de segundo procesador universal.
Se desarrollaron numerosos coprocesadores para el Tube. El más común fue el 6502 Second Processor , que incluía un procesador MOS Technology 6502 , que permitía que los programas BBC Micro sin modificar se ejecutaran más rápido y con más memoria, siempre que utilizaran la API para todas las E/S. [1] [2] El Z80 Second Processor incluía un procesador Zilog Z80 que ejecutaba CP/M , y el 32016 Second Processor incluía un procesador National Semiconductor 32016 que ejecutaba Panos .
Estos coprocesadores formaron la base de la serie Acorn Business Computer , y las máquinas de gama alta eran BBC Micros reenvasados con un coprocesador conectado a través del tubo. La serie Master admite dos conexiones de tubo, lo que permite instalar un coprocesador dentro de la carcasa y otro conectado externamente, pero solo se puede utilizar uno en cualquier sesión con alimentación. Se puede instalar un procesador 6502 interno o un sistema basado en Intel 80186 para compatibilidad con DOS (aunque en la práctica esto es limitado). [3]
El Tube también se utilizó durante el desarrollo inicial del procesador ARM . Se desarrolló una placa de evaluación que utiliza nuevamente el BBC Micro como sistema host para operaciones de E/S.
Antes de distribuir los complementos de Tube, Acorn había desalentado firmemente a los programadores de BBC Micro a acceder directamente a la memoria y el hardware del sistema, favoreciendo las llamadas API oficiales. [4] Esto era para garantizar que las aplicaciones se pudieran mover sin problemas al coprocesador Tube 6502, ya que el acceso directo desde allí es imposible. Cuando un programa llama a uno de los puntos de entrada MOS , una subrutina de reemplazo en la ROM del coprocesador pasa un mensaje correspondiente al host que realiza la operación y devuelve el resultado. De esta manera, una aplicación puede ejecutarse de manera idéntica en el host o en el coprocesador. Otros modelos de CPU utilizan una API personalizada, que normalmente es una traducción ortogonal de la API 6502 a un formato nativo.