Cadenas de montaje
Por Jacobo Tarrío
16 de enero de 2003

Antiguamente, los coches eran muy caros, porque todos se hacían uno a uno: en el taller había un grupo de operarios que primero montaban el chasis, después ponían los ejes, suspensión y ruedas, motor, carrocería, asientos, volante, etc… No comenzaban con uno hasta terminar el anterior. Así, construir un coche llevaba varios meses.

La fabricación en cadena existía ya, en el mundo de la manufactura de armas. Se tenían varias fábricas o suministradores de piezas (todas iguales e intercambiables), y varios operarios las ensamblaban, pero de una forma muy especial: uno sólo atornillaba cañones, otro sólo montaba gatillos, otro sólo… Cuando uno terminaba su trabajo con una pieza, se la pasaba al siguiente, y comenzaba a trabajar con otro ejemplar de esa pieza. La idea era fabricar varios rifles, por ejemplo, al mismo tiempo, realizando al mismo tiempo varias etapas de la fabricación de distintas armas.

Henry Ford aplicó el mismo principio a la fabricación de automóviles: en su cadena de montaje, mientras unos atornillaban ruedas en un coche, otros ponían los asientos de otro, y otros ponían el parabrisas de un tercer coche. De este modo, el tiempo entre las salidas de dos coches consecutivos sólo dependía de la duración de cada tarea, no de la suma de las duraciones de todas las tareas: en 1925, se terminaba un Ford modelo T cada 10 segundos. Por supuesto, hoy en día, todos los coches (salvo los de superlujo) se fabrican de esta manera.

En el mundo de los procesadores (de ordenador) ha ocurrido algo similar. El reloj es un dispositivo que emite un pulso cada cierto tiempo; en uno de, por ejemplo, 1 megahertzio, se emite un millón de pulsos por segundo; el tiempo entre pulso y pulso se llama “ciclo”. En un procesador antiguo, cuando llegaba uno de esos pulsos comenzaba a ejecutarse una nueva instrucción; antes de que llegara un pulso nuevo, esta instrucción tenía que ejecutarse por completo. Como algunas instrucciones se ejecutan mucho más rápido que otras, se inventó pronto la forma de hacer que algunas instrucciones se ejecuten en un solo ciclo, y otras en varios ciclos; esto permitía aprovechar mejor el tiempo, y tener la CPU menos tiempo inactiva.

Sin embargo, pronto se inventó el pipelining, que es como una cadena de montaje dentro del procesador. La ejecución de cada instrucción se puede dividir en una serie de etapas, que son iguales en todas las instrucciones; cada fabricante elige sus propias etapas… ;-) El pipelining consiste en tener, al mismo tiempo, varias instrucciones ejecutándose en el procesador; cada una en una etapa de ejecución distinta.

Esto, junto con una reducción de la duración de los ciclos, permite mejorar el rendimiento: supongamos que una instrucción típica dura 2 microsegundos (eso es MUCHO durar, pero…); si se divide el pipeline en cinco etapas, cada instrucción podría durar exactamente los mismos 2 microsegundos, pero tendríamos que… ¡en esos dos microsegundos terminarían de ejecutarse cinco instrucciones! Y en los siguientes 2 microsegundos tendríamos las siguientes cinco instrucciones… y otras cinco… y otras cinco… Al final, como se puede comprobar con unas matemáticas muy simples, se multiplica por cinco el rendimiento del procesador.

Al final, es lo de siempre: las (buenas) ideas antiguas, de vez en cuando, vuelven a nuestro rescate.

Otros artículos sobre “Tirando Líneas (2002-2004)”, “fabricación en serie”, “ordenadores”.
Índice.
Salvo indicación en contrario, esta página y su contenido son Copyright © Jacobo Tarrío Barreiro. Todos los Derechos Reservados. Información sobre tratamiento de datos y condiciones de uso.