El Firefly era una memoria compartida multiprocesador asimétrico estación de trabajo , desarrollado por el Centro de Investigación de Sistemas , una organización de investigación dentro de Digital Equipment Corporation . La primera versión construida contenía hasta siete microprocesadores MicroVAX 78032 . La caché de cada uno de los microprocesadores mantuvo una vista coherente de la misma memoria principal utilizando un algoritmo de coherencia de caché , el protocolo Firefly . La segunda versión de Firefly utilizó microprocesadores CVAX 78034 más rápidos. Posteriormente, DEC lo introdujo como producto como VAX-3520/3540 y lo llamó 'Firefox'.
Desarrollador | Centro de investigación de sistemas de Digital Equipment Corporation |
---|---|
Tipo | Estación de trabajo multiprocesador asimétrica de memoria compartida |
Sistema operativo | Taos, V (sistema operativo) |
Memoria | 4 MB - 128 MB |
Monitor | Pantalla monocromática de 1024 x 768 píxeles |
Aporte | Teclado y ratón |
Descripción del hardware
La Firefly era una computadora en rack especializada con multiprocesador asimétrico, ya que solo uno de los microprocesadores tenía acceso a una interfaz Q-Bus que implementaba el subsistema de E / S.
Procesadores
El Firefly contenía una placa de procesador principal y cero, uno, dos o tres placas de procesador secundario. Estas placas de procesador tenían un tamaño de 8 por 10 pulgadas. La placa del procesador principal contenía un microprocesador, su coprocesador de punto flotante y caché, y la lógica de control Q-Bus. Cada una de las placas de procesador secundario contenía dos microprocesadores, sus coprocesadores de coma flotante y cachés. Las placas originales del procesador de la luciérnaga utilizaron el MicroVAX 78032 microprocesador y MicroVAX 78132-coprocesador de coma flotante, pero más tarde los sistemas de Firefly utilizan los más rápidos CVAX 78034 microprocesadores, CVAX punto flotante chips (coprocesadores de punto flotante). Las placas del procesador se comunicaron entre sí y con la memoria a través de MBus. Los componentes utilizados en las placas del procesador del Firefly original eran los mismos que los diseñados originalmente para el sistema MicroVAX II.
Los cachés de Firefly se asignaron directamente para simplificar y admitir el multiprocesamiento; utilizaron el protocolo Firefly para garantizar la coherencia de la caché. Las memorias caché de las placas del procesador MicroVAX tenían una capacidad de 16 KB (4096 líneas de 4 bytes) y se implementaron con once SRAM de 2 KB (4 bits por 4096 palabras) y veinte dispositivos de lógica transistor-transistor (TTL). La lógica de control de caché se implementó con quince dispositivos, en su mayoría consistentes en dispositivos de lógica de matriz programable (PAL). Las cachés en las placas de procesador CVAX diferían solo en la capacidad: 64 KB (16,384 líneas de 4 bytes) y se implementaron con SRAM de 8 KB (4 bits por 16,384 palabras).
Memoria
Los procesadores de Firefly se comunicaron con la memoria principal a través de sus cachés individuales y a través de MBus. La memoria se implementó mediante uno a cuatro módulos de memoria que se conectan al MBus. El Firefly original tenía un módulo de memoria maestro con una capacidad de 4 MB y hasta tres módulos de memoria esclavos de la misma capacidad para una capacidad de memoria de 4 a 16 MB. Los sistemas Firefly posteriores utilizaron un módulo de memoria con una capacidad de 32 MB, para una capacidad de memoria de 32 a 128 MB. El tiempo de acceso a la memoria en el Firefly original basado en MicroVAX era de 400 ns, mientras que la versión CVAX tenía un tiempo de acceso a la memoria de 200 ns.
E / S
Los dispositivos de E / S se conectaron al sistema a través del Q-Bus, cuyo espacio de direcciones de 22 bits se asignó al espacio de direcciones de memoria de 24 bits del Firefly mediante el uso de registros de mapeo controlados por el procesador maestro. Los dispositivos usaban acceso directo a memoria (DMA) para acceder a la memoria a través de la caché del procesador principal. Los dispositivos de E / S de Firefly eran: un controlador de pantalla monocromática (MDC), un controlador con búfer para unidades de disco magnético, el RQDX3 y un controlador Ethernet DEQNA .
Aunque DEC utilizó componentes existentes para la mayor parte del sistema de E / S, el controlador de pantalla fue diseñado específicamente para Firefly por los ingenieros del proyecto, quienes sintieron que ningún producto existente cumplía con sus requisitos de rendimiento. Había dos controladores de visualización, uno con gráficos en color y el otro con gráficos monocromáticos. Estos controladores operaban verificando una cola de trabajo configurada en la memoria usando DMA, proporcionando acceso completamente simétrico al hardware de pantalla por parte de todos los procesadores.
El controlador de pantalla monocromática (MDC) estaba contenido en una placa que era la mitad de grande que las placas del procesador y era capaz de lograr una resolución de 1024 por 768 píxeles. Contenía un microprocesador 29116 de 16 bits sincronizado a 10 MHz con una memoria de 10 KB que contenía 2048 palabras de 40 bits de memoria de microinstrucciones. Se implementó un búfer de fotogramas de 1024 x 1024 píxeles con VRAM , con tres cuartas partes utilizadas para contener el mapa de bits de la pantalla y el resto disponible para el administrador de pantalla o para almacenar en caché las fuentes.
El microprocesador 29116 verificaba periódicamente una cola de trabajo configurada en la memoria usando DMA y ejecutaba comandos desde esa cola. Los comandos realizaban operaciones BitBlt dentro del búfer de tramas, entre la memoria del sistema y el búfer de tramas y también se usaban para pintar caracteres de la caché de fuentes.
El hardware de la pantalla también proporcionó una interfaz para un teclado y un mouse. Sesenta veces por segundo, el MDC escribió en la memoria la posición del mouse y un mapa de bits no codificado que representa el estado del teclado. Como resultado de la implementación del MDC como un dispositivo de E / S, Firefly admitía varios controladores de pantalla en un sistema conectado a varios monitores.
Software
Dos de las variantes de Firefly usaban un software de sistema llamado Topaz , que consistía en múltiples componentes como el sistema operativo Taos que usaba un microkernel llamado Nub y el sistema de ventanas Trestle . Una de las características de Taos era que admitía la interfaz de llamadas binarias Ultrix , permitía que los binarios Ultrix existentes compilados para MicroVAX ejecutaran una imagen sin modificar en Firefly. A diferencia de Ultrix, Topaz admitía procesos con varios subprocesos que podían abarcar varios procesadores, y el sistema Taos podía ejecutar aplicaciones Ultrix y Topaz al mismo tiempo. Modula-2 + , (un lenguaje extendido Modula-2 ) se utilizó para programar tanto Topaz como sus aplicaciones.
El Stanford V (sistema operativo) también admitía Firefly en una configuración con una CPU CVAX y cuatro Microvax-II en un chasis BA123 y gráficos QVSS? VCB01.
Ver también
- Firefly protocolo - La coherencia de caché protocolo utilizado por la luciérnaga.
enlaces externos
- Paul R. McJones y Garret F. Swart, " Evolución de la interfaz del sistema UNIX para admitir programas multiproceso ", 28 de septiembre de 1987.
- Charles P. Thacker, Lawrence C. Stewart, Edwin H. Satterthwaite Jr., " Firefly: A Multiprocessor Workstation ", 30 de diciembre de 1987.
- Una estación de trabajo multiprocesador
- Mensaje descriptivo de la computadora sobre el producto VAX3520 / 40 Firefox Firefly