Noticias › Level B2 › 27 de septiembre de 2026

Nivel B227 de septiembre de 2026

El algoritmo de tangente del Intel 8087: más que CORDIC

Adaptado al nivel B2 de una historia de Hacker News.

In English: Reverse-engineering the Intel 8087's tangent algorithm: more than CORDIC (Hacker News)

Read this news story in B2-level Spanish for upper-intermediate learners. Key vocabulary is explained below and the original is always linked — free daily Spanish reading practice from Lingocito. Not your level? Pick yours just below.

El algoritmo de tangente del Intel 8087: más que CORDIC

El microcódigo FPTAN del Intel 8087 comienza en la dirección #1039 y mueve el argumento desde la parte superior de la pila al registro tmpA. Si la pila está vacía se produce un desbordamiento inferior, y si la posición que contendrá el resultado no está vacía, un desbordamiento superior; en ambos casos se señala una excepción de "invalid" y la instrucción termina. Una peculiaridad del 8087 es que marca una excepción de precisión si el resultado no es exacto, algo que ocurre con casi cualquier entrada, ya que la única tangente que calcula con precisión es tan(0).

El exponente del argumento se prueba y divide la ejecución en tres caminos. Si el exponente es -64 o menor, el argumento es tan pequeño que la tangente equivale al argumento dentro de la precisión del sistema, y se devuelve sin cambios con denominador 1. Si el exponente es -17 o menor, se omite el paso CORDIC y se salta a la aproximación racional (#1082). El caso más interesante es el camino CORDIC (#1061), que se toma cuando el exponente está entre -1 y -16. El código realiza conceptualmente 16 pasos CORDIC con 16 ángulos almacenados, pero se optimiza saltando los ángulos grandes para entradas pequeñas: el contador del bucle se inicializa según el exponente de la entrada (#1062) y el bucle de pseudodivisión CORDIC (#1061-#1080) prueba los ángulos y resta los que no son demasiado grandes. Los resultados se registran en un registro de desplazamiento de 16 bits situado en el extremo derecho del chip, que se carga y descarga en serie sin acceder al bus interno de fracciones.

El código usa aritmética entera de 64 bits en lugar de punto flotante, lo que dificulta su comprensión porque los valores deben verse como números de punto fijo con exponentes implícitos que no se almacenan y cambian en cada paso. Tras el bucle de pseudodivisión, se calcula la aproximación polinómica racional (#1082), donde el camino de ángulo pequeño se reincorpora. La rutina SQUARE, que multiplica un número de punto fijo por sí mismo, es la parte más lenta; el 8087 usa el algoritmo de Booth para multiplicar de dos bits en dos bits (radix 4), el doble de rápido que la multiplicación binaria normal.

Después viene el bucle CORDIC de pseudomultiplicación (#1100), que aplica las rotaciones en orden inverso para preservar la precisión y se detiene cuando el registro de desplazamiento queda en ceros. La instrucción FPTAN es lenta: típicamente 450 ciclos de reloj, con un rango de 30 a 540. Para el valor examinado (0.95), el 33% del tiempo se dedica a la pseudodivisión CORDIC, el 15% al polinomio racional, el 47% a la pseudomultiplicación CORDIC y el 5% a sobrecarga. Mientras que el Pentium pasó a aproximaciones polinómicas, el 8087 es inusual por combinar CORDIC y un polinomio racional.

🔑 microcódigo — microcode🔑 pila — stack🔑 punto flotante — floating point🔑 registro de desplazamiento — shift register🔑 excepción — exception

Historia original: Hacker News — Lingocito la reescribe en español del nivel B2 y siempre enlaza la fuente.

Comparte esta noticia:WhatsAppXReddit

All B2 stories → · This month's archive

Keep learning

Get tomorrow's edition at YOUR level, free.

Real news, rewritten to your Spanish level (A1–C2), in your inbox every morning. Five minutes with your coffee.

Get the free newsletter →

← Más noticias en español por nivel