En informática, Tube era la interfaz de expansión y la arquitectura del sistema de microcomputadoras BBC que permitía que BBC Micro se comunicara con un segundo procesador o coprocesador .
Bajo la arquitectura Tube, el coprocesador ejecutaría el software de la aplicación para el usuario, mientras que el Micro (actuando como host ) proporcionaba 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 podría conectarse en frío a cualquier BBC Micro con una interfaz de disco (cuya ROM contenía el software de host necesario) y usarse inmediatamente.
Implementación
El conector "Tube" IDC de 40 pines era 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 implementaron mediante hardware en el dispositivo adjunto.
Dentro de la unidad del coprocesador, un chip patentado (el Tube ULA , fabricado inicialmente por Ferranti ) interconectaba y aislaba lógicamente los buses del host y del coprocesador . Esto permitió que Tube funcionara con una arquitectura de bus completamente diferente en la unidad de coprocesador. Los únicos otros componentes activos que se necesitaban eran un microprocesador , algo de RAM , una pequeña ROM que contenía el código de cliente específico del procesador, lógica de cola como un decodificador de direcciones y una fuente de alimentación .
Los dos procesadores se comunicaron a través de cuatro pares de búferes FIFO en Tube ULA. La entrada / salida de la consola , los mensajes de error , las transferencias de datos y las llamadas al sistema tenían su propio par de búferes, uno para cada dirección. La capacidad de la cola varió entre 1 y 24 bytes, dependiendo de la función de búfer dedicada. Cada búfer tenía un registro de control y un registro de estado para monitorear su estado y configurar la activación de interrupciones .
El protocolo para el uso de estos búferes fue rigurosamente especificado por Acorn Computers [1] y equivale a la comunicación entre procesos mediante el paso de mensajes . La mayor parte de la interacción era asincrónica, pero las transferencias de bloques rápidas eran sincrónicas y consistían en que el host ejecutaba ciegamente un bucle simple de búsqueda y almacenamiento, que definía la tasa de transferencia. El coprocesador se sincronizó pasando un byte ficticio y luego regulado por el semáforo del búfer correspondiente.
La naturaleza de propósito general del conector de tubo en principio permitió que se usara para cualquier tipo de periférico de alta velocidad, aunque Acorn solo lo usó para coprocesadores de tubo. El rango BBC Micro / Master proporcionó 5 líneas de dirección para el rango de direcciones & 60– & 7F pero el protocolo Tube solo usó los 3 bits más bajos. Solo estas 3 líneas de dirección están conectadas a los enchufes de tubo internos, como se encuentran en BBC Master o Unidad de segundo procesador universal.
Aplicaciones
Se desarrollaron numerosos coprocesadores para Tube. Lo más comúnmente visto fue un procesador MOS Technology 6502 que permitió que los programas BBC Micro sin modificar se ejecutaran más rápido y con más memoria, siempre que usaran la API para todas las E / S. [1] [2] También había un procesador Zilog Z80 para ejecutar CP / M y un procesador National Semiconductor 32016 ejecutando Panos (y extraoficialmente una variante UNIX). [ cita requerida ]
Estos coprocesadores formaron la base de la serie Acorn Business Computer , las máquinas de gama alta se reempacaron BBC Micros con un coprocesador conectado a través del tubo. La serie Master admitía dos conexiones de tubo, lo que permitía instalar un coprocesador dentro de la caja y otro conectado externamente, pero solo se podía usar una en cualquier sesión con alimentación. Se podría instalar un procesador 6502 interno o un sistema basado en Intel 80186 para compatibilidad con DOS (aunque en la práctica esto era limitado). [3]
El tubo también se utilizó durante el desarrollo inicial del procesador ARM . Se desarrolló una placa de evaluación que volvió a utilizar BBC Micro como sistema anfitrión para operaciones de E / S.
Acorn había disuadido enérgicamente a los programadores de BBC Micro de acceder directamente a la memoria del sistema y al hardware, favoreciendo las llamadas API oficiales. [4] Esto fue aparentemente para garantizar que las aplicaciones pudieran trasladarse sin problemas al coprocesador Tube 6502, ya que el acceso directo desde allí era imposible. Cuando un programa llamó a uno de los puntos de entrada del MOS , una subrutina de reemplazo en la ROM del coprocesador pasó un mensaje correspondiente al host que llevó a cabo la operación y devolvió el resultado. De esta manera, una aplicación podría ejecutarse de manera idéntica en el host o en el coprocesador. Otros modelos de CPU usaban una API personalizada, que normalmente era una traducción ortogonal de la API 6502 a un formato nativo.
Referencias
- ^ a b Nota de aplicación de bellota 004, "Nota de aplicación de tubo"
- ^ Aunque la razón más comúnmente citada para que el software se ejecute más rápido en el segundo procesador fue que puede descargar tareas de E / S como cálculos de dibujo de gráficos al procesador host, una consideración mucho más importante fue la velocidad del reloj: el procesador host se limitó a 2MHz para dar tiempo a que la actualización de VDU acceda a la RAM, mientras que el coprocesador podría funcionar a 3MHz, con una actualización de DRAM mucho más simple deteniéndola en 68kHz, consulte las páginas 7 y 19 del Manual de servicio del segundo procesador 6502 archivado en http: // chrisacorns.computinghistory.org.uk/docs/Acorn/Manuals/Acorn_65022ndprocSM.pdf
- ^ Watford Electronics, "Manual de referencia avanzado para la BBC Master Series", 1988
- ^ Coll, John (1982) [1982]. Allen, David (ed.). La BBC Microcomputer User Guide (RTF comprimido) . Londres: British Broadcasting Corporation. págs. 443, 450, 473. ISBN 0-563-16558-8. Consultado el 25 de enero de 2010 .