stringtranslate.com

Tubo (BBC Micro)

En el sistema de microcomputadoras BBC , el tubo es la interfaz y arquitectura de expansión que permite que 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.

Implementación

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.

Interior del segundo procesador 6502

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 asincrónica , 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.

Aplicaciones

Se desarrollaron numerosos coprocesadores para Tube. El más comúnmente visto fue el segundo procesador 6502 , que presentaba 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.

Referencias

  1. ^ ab Nota de aplicación de Acorn 004, "Nota de aplicación del tubo"
  2. ^ Aunque una razón frecuentemente mencionada 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 es la velocidad del reloj: el procesador host está limitado a 2 MHz. para dar tiempo a que la actualización de VDU acceda a la RAM, mientras que el coprocesador puede funcionar a 3 MHz, con una actualización de DRAM mucho más simple que lo detiene a 68 kHz. Manual de servicio del segundo procesador 6502 (PDF) . Computadoras Bellota. Mayo de 1984. págs.7, 19 . Consultado el 11 de junio de 2023 a través de Chris's Acorns.
  3. ^ Manual de referencia avanzado para BBC Master Series . Electrónica de Watford. 1988.
  4. ^ Coll, John (1982) [1982]. Allen, David (ed.). La guía del usuario de microcomputadoras de la BBC (RTF comprimido) . Londres: Corporación Británica de Radiodifusión. págs.443, 450, 473. ISBN 0-563-16558-8. Consultado el 25 de enero de 2010 .