Cauces segmentados y pipelines

La segmentación es hoy en día es la técnica básica para conseguir aumentar las prestaciones de un procesador o de un sistema informático en general de manera completamente transparente al usuario.

Se trata de una técnica de implementación que permite solapar en el tiempo la ejecución de varias instrucciones o tareas. La idea en la que se basa esta técnica es la de una cadena de montaje industrial: se dividen las instrucciones o tareas en diferentes etapas y a cada una de estas etapas le corresponden unos recursos diferentes dentro del sistema, por lo que se pueden ejecutar al mismo tiempo. Siguiendo con la idea de una cadena de montaje, el objetivo del diseñador es equilibrar las etapas en las que se divide una instrucción o tarea para que todas duren más o menos el mismo tiempo. De esta manera todas las etapas están listas para empezar al mismo tiempo y no tienen que esperar unas por otras.

Con esta técnica se consigue aprovechar mucho mejor todo el hardware disponible en el procesador o en el sistema. La productividad (número de instrucciones o tareas que se terminan por segundo) del sistema aumenta aunque la latencia (tiempo de ejecución de una instrucción o tarea) también aumenta ligeramente debido a la gestión extra que hay que hacer de los recursos para que puedan utilizarse en paralelo.

Y hay que tener en cuenta que el ciclo de reloj del sistema vendrá fijado por la duración de las etapas. Como todas tienen que durar lo mismo (normalmente 1 ciclo), estará limitado por la etapa más lenta.

Cuando hoy en día se habla de un pipeline o de un cauce segmentado, esto nos indica que se trata de un sistema en el que se está utilizando esta técnica de optimización, que es básica en el diseño de sistemas. Por ejemplo, todos los procesadores de PC, portátil, videconsolas o servidores actuales son segmentados.


No hay comentarios: