Ir al contenido principal

Segmentación (PIPELINED)


Introducción 

La arquitectura de computadores segmentada ha recibido considerable atención desde la década de 1960, cuando la necesidad de sistemas más rápidos y rentables se volvió crítica. Este principio de segmentación (pipelined) se ha convertido en un atributo arquitectónico importante de la mayoría de los sistemas informáticos actuales. 


Segmentación (PIPELINED) y su importancia

Pipelined es una forma de paralelismo incrustado o concurrencia en un sistema informático. Se refiere a la segmentación de un proceso computacional en varios subprocesos que son ejecutados por unidades autónomas dedicadas. Los procesos sucesivos pueden llevarse a cabo en un modo superpuesto análogo (ver Figura 1 y 2). Entonces, la segmentación se puede definir como la técnica de descomponer un proceso secuencial repetido en subprocesos que operan sumultáneamente con los demás. Por ejemplo, el diseño RISC contiene 5 etapas de instrucción que son búsqueda, decodificación, ejercución en la unidad aritmético lógica, memoria y escritura.  

Una principal contribución de la segmentación es su eficiencia para comenzar una nueva tarea sin que la anterior haya finalizado. La medida de esta eficacia en los procesadores se determina por el tiempo máximo o duración de un ciclo de procesador que puede pasar entre la finalización de dos tareas consecutivas. 

Figura 1. Tarea procesada de forma totalmente secuencial.

Figura 2. Tarea ejecutada mediante un procesador segmentado.
 

Consecuencias cuando se implementa en arquitecturas computacionales


Pipeling es una técnica de implementación clave utilizada para elevar procesadores rápidos. Sin embargo, sino se incrementan los recursos del proceso para llevar a cabo tareas simultáneas, la segmentación no sería posible, por esa razón, una principal consecuencia es que los procesadores segmentados necesitan redundancia de muchos recursos: registros, circuitos aritméticos y demás.

Por otro lado, al momento de implementar pipelining se generan circunstancias que pueden disminuir el rendimiento de un procesador. Estas circunstancias serán llamadas riesgos y entre ellos se encuentran tres clases:
  • Riesgos estructurales: se producen detenciones en el procesador por insuficiencia del hardware, debido a que un subproceso no puede avanzar porque el hardware necesario está siendo usado por otra etapa o subproceso.
  • Riesgos de datos: surgen cuando una instrucción depende de los resultados de otra instrucción que aún no se ha ejecutado completamente. 
  • Riesgos de control: se dan por la canalización de ramas o el control de flujo, en las cuales no se pueden leer las instrucciones siguientes hasta que no se conozca su dirección.
Estos riesgos pueden hacer que sea necesario detener o en algunos casos retrasar el proceso. Para estos riesgos existen diferentes métodos o técnicas en los que se pueden prevenir la detención del cauce y así conseguir la menor pérdida en el rendimiento del procesador, puede complementar este tema en la lectura complementaria [3].

Dificultades de implementación


La principal dificultad son las situaciones excepcionales en un procesador, ya que con pipeline son más difíciles de manejar debido a las superposiciones de instrucciones o tareas que complican la obtención de información sobre cual instrucción puede cambiar el estado seguro del procesador. Además, se pueden encontrar distintos fallos e interrupciones como mal funcionamiento del hardware, violación de protección de memoria, desbordamiento aritmético de enteros, accesos a la memoria, entre otros. 

¿Por qué a pesar de las dificultades se implementa?


Se implementa debido a su gran capacidad para realizar múltiples trabajos simultáneos utilizando diferentes recursos, además, no ayuda en una única tarea, sino en la realización de una carga de trabajo. Por otro lado, pipeling reduce el tiempo de ciclo del procesador y aumenta el rendimiento de instrucciones. 

Caso de ejemplo

Con este pequeño ejemplo se espera que se aclaren los conceptos de segmentación. En la Figura 3 se observan procesos en los que se espera que se ejecuten las instrucciones. Para este ejemplo no se tendrán en cuenta los riesgos para un fácil entendimiento.  



Figura 3. Cuatro instrucciones en pipeline 
























Referencias y lecturas complementarias

[1] Ramamoorthy, C. V., & Li, H. F. (1997). Pipeline architecture. ACM Computing Surveys (CSUR), 9(1), 61-102.

[2] Baer, J. L. (2009). Microprocessor architecture: from simple pipelines to chip multiprocessors. Cambridge University Press.

[3] Hennessy, J, L., & Patterson, D. A. (2011). Computer architecture: a quantitative approach. Elsevier 

[4] Porto, J. Merino, M. (2015) Definición de pipeline. Recuperado de https://definicion.de/pipeline/



Comentarios

  1. Buen resumen y explicación del tema. Excelente trabajo

    ResponderBorrar
  2. Muy buena forma de explicar un tema complejo de una forma sencilla. Además, muy completa la información.

    ResponderBorrar
  3. Muy buena explicación, quedan claros todos los conceptos presentados, el caso facilita esto

    ResponderBorrar
  4. Muy buena explicación, un tema bastante complejo pero que se trata de buena manera desde una introducción a un ejemplo.

    ResponderBorrar
  5. Se nota que es un tema bastante complicado, pero lo hace breve de entender, muy buena información, gracias!!

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Smart Campus UIS

Actualmente, la tecnología está presente en la mayoría de los aspectos de nuestras vidas, convirtiéndose en una herramienta valiosa para múltiples tareas y factores que nos incorporan en una nueva forma de vida digital; con su crecimiento exponencial, la tecnología influye en la educación y gestión de esta, por lo cual el campus también se enfrenta a las mismas tendencias. El Smart Campus es una red basada en el uso de medios e instrumentos informáticos avanzados para construir un espacio digital y así aumentar la eficiencia del campus tradicional.