Este artículo demuestra cómo obtener un secuenciamiento óptimo para un pipeline de datos no lineal. Esto tiene como objetivo alcanzar la máxima utilidad del pipeline (máximo throughput) cuando existen conflictos en etapas con realimentaciones negativas (retroalimentaciones).

El concepto de pipeline como técnica de paralelización de tareas fue introducido por Ransom Olds en la línea de ensamblaje del Oldsmobile Curved Dash. Luego fue perfeccionado por Henry Ford para la producción del Ford Modelo T agregando cintas transportadoras, lo cual le permitía producir un vehículo cada 93 minutos. Por esta razón generalmente se le atribuye la idea de pipeline a Henry Ford. Más allá de surgir de la industria automotriz, es un concepto genérico que puede ser aplicado a cualquier tipo de tarea.

En computación, un pipeline de datos es un conjunto de elementos de procesamiento de datos conectados en serie, donde la salida de un elemento o etapa es la entrada de la siguiente. Esto permite paralelizar una tarea subdividiéndola en etapas que se ejecutan concurrentemente. De esta forma es posible ejecutar una misma tarea sobre diferentes datos al mismo tiempo (siempre que no hayan conflictos en las etapas en las que éstos se ejecutan).

En artículos anteriores hemos visto las operaciones de suma y multiplicación de números enteros binarios. Veamos ahora la división, otra de las operaciones aritmética elementales que debe implementar un microprocesador.

Otra de las operaciones aritméticas básicas que debe resolver un procesador de computadoras es la multiplicación. Este artículo explica cómo se ejecuta una multiplicación de números enteros binarios signados en dos complemento dentro de una unidad aritmético-lógica (ALU) de un procesador (CPU).

Para entender los algoritmos aquí demostrados es necesario comprender los conceptos de representación de enteros binarios en dos complemento (complemento a dos o 2's complemento), suma en dos complemento, conversión entre bases binario y decimal, desplazamientos a izquierda y derecha, extensión de signo en sistema binario, y más.

En este artículo vamos a aplicar la recodificación de Booth de a dos bits (radix-4) para acelerar el cómputo de multiplicaciones de enteros binarios signados en dos complemento. Y así lograr reducir el número de iteraciones a la mitad.

Anteriormente vimos la teoría detrás de un sumador Carry Look-Ahead y cómo se construía uno de 4 bits de ancho. También analizamos por qué no era conveniente diseñar uno de mayor cantidad de bits (problemas de fan-in y fan-out). Sin embargo, es posible construir sumadores de más cantidad de bits a partir de varios módulos CLAA conectados entre sí. En este artículo se analizan diferentes alternativas.