FPS AP-120B


El FPS AP-120B era un procesador de matriz orientado a tuberías de 38 bits fabricado por Floating Point Systems . Fue diseñado para ser conectado a una computadora host como un DEC PDP-11 como un rápido procesador de números. La transferencia de datos se logró mediante el acceso directo a la memoria .

El tiempo de ciclo del procesador fue de 167 nanosegundos, lo que da una velocidad de 6 MHz. Dado que podía presentar dos resultados de punto flotante por ciclo, uno del sumador y el otro del multiplicador, se reclamó una capacidad de 12 Megaflops para el procesador.

El procesador se diseñó en torno al concepto de múltiples unidades de procesamiento en paralelo que operan en sincronización. Una sola palabra de instrucción de 64 bits se dividió en campos, cada uno de los cuales instruyó a un módulo particular bajo el control de la CPU. Los módulos fueron los siguientes:

El procesador tenía acceso a la memoria central de doble intercalación en la que las direcciones impares se almacenaban en un banco físico y las direcciones pares se almacenaban en el otro. Esto representó un intento de aprovechar la típica búsqueda secuencial de palabras de memoria. La obtención secuencial de un banco físico daría como resultado una latencia de dos ciclos de instrucción antes de que los datos se carguen en la plataforma de datos de destino. El entrelazado permitió que ocurriera un acceso secuencial inmediatamente después del anterior. Ambos accesos tardaron dos ciclos en completarse, pero las plataformas de superposición y de destino doble maximizaron el uso del canal de datos.

Los módulos aritméticos de coma flotante eran procesadores de varias etapas que eran impulsados ​​por instrucciones explícitas. En el sumador de dos etapas, una instrucción de ensamblador como FADD DX, DY cargaría valores de las almohadillas de datos DX y DY en la etapa uno del sumador. Se necesitaría una instrucción FADD posterior para presentar el resultado en la salida del sumador. Este segundo FADD podría ser un maniquí sin argumentos, o podría ser el siguiente cálculo de una secuencia. De esta manera, se podría realizar un flujo de operaciones FADD en una tubería, con un nuevo resultado en cada ciclo de instrucción, aunque cada adición requiere dos ciclos.

De manera similar, el multiplicador, una unidad de tres etapas, requería un FMUL DX, DY para comenzar una multiplicación, seguido de dos instrucciones FMUL más para producir el resultado. La programación cuidadosa de la tubería permitió la producción de un resultado por ciclo, con cada cálculo tomando tres ciclos en sí mismo.