Análisis del troquel del desplazador rápido de bits del coprocesador matemático 8087

Fuentes: Die analysis of the 8087 math coprocessor's fast bit shifter

El coprocesador matemático Intel 8087, lanzado en 1980 para acompañar al microprocesador 8086, fue una pieza clave para llevar las operaciones en coma flotante a los microordenadores. Aceleró esos cálculos hasta 100 veces frente a la emulación por software y resultó decisivo en aplicaciones como AutoCAD, hojas de cálculo o simuladores de vuelo. Su diseño, supervisado por el experto en análisis numérico William Kahan, sentó las bases del estándar IEEE 754, todavía vigente en prácticamente todos los computadores actuales. Con 40 000 transistores frente a los 29 000 del 8086, el chip exprimió al límite la tecnología de fabricación de su época.

Este artículo se centra en uno de los componentes más críticos del 8087: el desplazador (shifter) de alta velocidad, que ocupa una fracción significativa del área del troquel. Su función es desplazar números binarios a izquierda o derecha, una operación esencial para alinear los puntos binarios al sumar o restar valores en coma flotante, para ensamblar números a partir de fragmentos de 16 bits leídos de memoria y para alimentar las instrucciones transcendentales basadas en el algoritmo CORDIC.

Para lograrlo con alto rendimiento y un tamaño contenido, Intel optó por un desplazador de tipo "barril" (barrel shifter) capaz de desplazar cualquier cantidad de bits en un solo ciclo. La arquitectura se divide en dos etapas: una primera que desplaza de 0 a 7 bits y una segunda que desplaza de 0 a 7 bytes, de modo que combinadas abarcan cualquier desplazamiento entre 0 y 63 bits. Cada bit de entrada se conecta diagonalmente a ocho transistores controlables mediante líneas de selección, de forma que activar una columna concreta redirige la entrada hacia la salida desplazada el número deseado de posiciones. Sobre el troquel fotografiado al microscopio se observa cómo esas conexiones diagonales, construidas entre la capa de polisilicio y el metal, materializan físicamente el circuito del desplazador de bits. Una segunda etapa paralela desplaza múltiplos de ocho bits y completa el diseño global del desplazador del 8087.