En el sistema de microcomputadoras de la BBC , el tubo es la interfaz y arquitectura de expansión que permite que la BBC Micro se comunique con un segundo procesador o coprocesador .
Bajo 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 visualización de pantalla, teclado y administración de dispositivos de almacenamiento. Una unidad de coprocesador puede conectarse en frío a cualquier BBC Micro con una interfaz de disco (cuya ROM contenga el software host necesario) y usarse inmediatamente.
El conector "Tubo" 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 de Tube se implementan mediante hardware en el dispositivo adjunto.
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 host y coprocesador . Esto permite que 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 adhesiva 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 Tube ULA. La entrada/salida de la consola , los mensajes de error , las transferencias de datos y las llamadas al 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 búfer 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 está rigurosamente especificado por Acorn Computers [1] y equivale a una comunicación entre procesos mediante paso de mensajes . La mayor parte de la interacción es asíncrona , pero las transferencias rápidas en bloques son síncronas 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 pasando un byte ficticio y luego se regula mediante el semáforo del búfer correspondiente.
La naturaleza de uso general del conector Tube permite en principio su uso para cualquier tipo de periférico de alta velocidad, aunque Acorn solo lo usa 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. Sólo estas 3 líneas de dirección están conectadas a los enchufes internos del tubo, como los que se encuentran en la unidad BBC Master o en la segunda unidad procesadora universal.
Se desarrollaron numerosos coprocesadores para Tube. El más comúnmente visto fue el segundo procesador 6502 , con un procesador MOS Technology 6502 , que permitía que los programas BBC Micro no modificados se ejecutaran más rápido y con más memoria, siempre que usaran la API para todas las E/S. [1] [2] El segundo procesador Z80 presentaba un procesador Zilog Z80 con CP/M , y el segundo procesador 32016 presentaba un procesador National Semiconductor 32016 con Panos .
Estos coprocesadores forman la base de la serie Acorn Business Computer , y las máquinas de gama alta se reempaquetan como BBC Micros con un coprocesador conectado a través del tubo. La Master Series admite dos conexiones de tubo, lo que permite un coprocesador instalado dentro de la caja y otro conectado externamente, pero solo uno puede usarse en cualquier sesión con alimentación. Se puede instalar un procesador interno 6502 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 nuevamente utiliza BBC Micro como sistema anfitrión para operaciones de E/S.
Antes de enviar complementos de Tube, Acorn había disuadido firmemente a los programadores de BBC Micro de acceder directamente a la memoria y al hardware del sistema, favoreciendo las llamadas API oficiales. [4] Esto fue para garantizar que las aplicaciones se puedan 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 el mensaje correspondiente al host que lleva a cabo la operación y devuelve el resultado. De esta forma, una aplicación puede ejecutarse de forma idéntica en el host o en el coprocesador. Otros modelos de CPU utilizan una API personalizada, que suele ser una traducción ortogonal de la API 6502 a un formato nativo.