3 puntos por GN⁺ 2025-03-04 | 1 comentarios | Compartir por WhatsApp
  • En 1993, Intel lanzó el procesador Pentium de alto rendimiento
    • Mientras analizaban los circuitos del Pentium, descubrieron un circuito complejo para multiplicar por 3
    • Este circuito forma parte del multiplicador de punto flotante del Pentium y multiplica números de 64 bits usando una base octal
  • La necesidad de la multiplicación en base octal
    • La multiplicación binaria es conceptualmente simple, pero lenta
    • El Pentium realiza la multiplicación en base octal para reducir circuitería y aumentar la velocidad
    • La multiplicación octal es compleja porque hay que multiplicar por dígitos del 0 al 7
  • El algoritmo de Booth y el circuito ×3
    • Se usa el algoritmo de Booth para optimizar la multiplicación
    • El circuito ×3 debe manejarse como un caso especial en la multiplicación de punto flotante
    • Este circuito debe funcionar rápidamente y usa técnicas como carry lookahead para maximizar el rendimiento
  • Carry lookahead y sumadores de prefijo paralelo
    • El sumador carry lookahead calcula todos los bits de acarreo en paralelo para realizar la suma rápidamente
    • Se implementa carry lookahead en bloques de 8 bits usando un sumador de prefijo paralelo
    • Se usa el algoritmo de Kogge-Stone para minimizar la latencia y estructurar el circuito de forma eficiente
  • Sumador carry select
    • El sumador carry select realiza dos sumas al mismo tiempo y entrega el resultado en cuanto se determina el acarreo
    • El Pentium usa un sumador carry select para cada bloque de 8 bits en el circuito ×3
  • Driver de salida BiCMOS
    • La salida del circuito ×3 requiere alta corriente, y se usa un proceso BiCMOS para reducir el retraso de la señal
    • BiCMOS combina CMOS y transistores bipolares para ofrecer alto rendimiento
  • Conclusión
    • El circuito ×3 del Pentium tiene un diseño complejo y usa más transistores que los microprocesadores del pasado
    • Esto muestra cuánto ha aumentado la complejidad de los procesadores

1 comentarios

 
GN⁺ 2025-03-04
Opiniones de Hacker News
  • En la emulación de computadoras ternarias existe una forma de convertir la división por potencias de 3 en desplazamientos de bits y sumas

    • 1/3 puede expresarse como 1/2 - 1/2(1/3)
    • Repitiendo esto infinitamente, 1/3 puede expresarse como -(-1/2)^N
    • También es posible con pares arbitrarios de potencias de 2 y 3
    • Con esto se pueden construir circuitos de división por constantes en tiempo fijo usando solo sumadores y restadores
  • El procesador de los juegos arcade de Cinematronics tiene dos acumuladores de 12 bits

    • La instrucción de multiplicación desplaza a un valor de 24 bits y suma el contenido de memoria
    • Ejecuta 8 multiplicaciones consecutivas para obtener un resultado de 24 bits
    • Se usaba principalmente para la multiplicación de matrices 2x2 para rotar las coordenadas de objetos en el juego
    • A mediados de los años 70 alcanzaba un rendimiento máximo de 5 MIPS usando componentes de la serie 7400
  • Peter Kogge obtuvo su doctorado en Stanford y, como IBM Fellow, fue una de las personas que inventaron la CPU multinúcleo

  • Multiplicar por 3 en el cálculo de direcciones es una operación común

    • Puede hacerse en un solo ciclo usando la instrucción LEA
    • Fue una buena decisión gastar presupuesto de transistores en eso
  • En un multiplicador, hay una forma de resolver ×7 multiplicando por 8 y restando 1

    • Esto es similar a un circuito de carry lookahead
    • 7 = 8-1, 6 = 8-2, 5 = 8-3, 4 = 8-4
  • El multiplicador ×3 incluye alrededor de 9000 transistores, más que el microprocesador Z80 de 1976

    • Esto muestra el enorme crecimiento en la complejidad de los procesadores
    • Hoy hemos llegado a los límites de la tecnología de semiconductores de silicio y es momento de trabajar de forma más inteligente
  • Un multiplicador Booth radix-8 necesita un circuito x3

    • Es un trade-off de área/rendimiento para empujar el fmax
  • 8086: 29,000

    • 386: 275,000
    • 486: 1.2 million
    • Pentium: 3.1 million
    • La NSA entró en escena después de 2000
  • La desventaja de la multiplicación radix-8 es que multiplicar por números del 0 al 7 es complejo

    • Multiplicar por 2 equivale a desplazar los bits 1 posición a la izquierda
    • Multiplicar por 4 equivale a desplazar los bits 2 posiciones a la izquierda
    • Multiplicar por 7 puede resolverse multiplicando por 8 y restando 1
    • ×3 puede calcularse como la suma de 2x y 1x, o como la diferencia entre 4x y 1x
    • Si ×6 puede calcularse fácilmente, entonces ×3 puede obtenerse desplazando ese valor a la derecha