1 / 25

Pipelining

Pipelining. Introducción. Definición. Técnica de implementación. Consiste en ejecutar traslapadas varias instrucciones al mismo tiempo. Ejemplo. Pasos para lavar y secar ropa: Poner una carga de ropa sucia en la lavadora. Al terminar, poner la ropa húmeda en la secadora.

terah
Download Presentation

Pipelining

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pipelining Introducción

  2. Definición • Técnica de implementación. • Consiste en ejecutar traslapadas varias instrucciones al mismo tiempo. Arquitectura de Computadoras

  3. Ejemplo • Pasos para lavar y secar ropa: • Poner una carga de ropa sucia en la lavadora. • Al terminar, poner la ropa húmeda en la secadora. • Al terminar, poner la ropa seca en una mesa y doblarla. • Guardar la ropa doblada. • Al terminar, poner la siguiente carga en la lavadora. Arquitectura de Computadoras

  4. Ejemplo • Hay dos formas de lavar ropa: • Hacer un paso a la vez (versión secuencial). • Hacer varios pasos a la vez (versión con pipeline). • Suponiendo que hay cuatro cargas de ropa y que cada paso tarda media hora (30 minutos). Arquitectura de Computadoras

  5. Versión secuencial Arquitectura de Computadoras

  6. Versión con pipeline Arquitectura de Computadoras

  7. Conclusión • Para 1 carga de ropa: • Versión secuencial: 2 horas. • Versión con pipeline: 2 horas. • Speedup: 2 / 2 = 1.0. • Para 4 cargas de ropa: • Versión secuencial: 8 horas. • Versión con pipeline: 3.5 horas. • Speed-up: 8 / 3.5 = 2.29. Arquitectura de Computadoras

  8. Conclusión • Para 20 cargas de ropa: • Versión secuencial: 40 horas. • Versión con pipeline: 11.5 horas. • Speed-up: 40 / 11.5 = 3.48. • El speed-up está limitado por el número de etapas del pipeline. • El speed-up depende del factor de utilización del pipeline. Arquitectura de Computadoras

  9. Conclusión • Para tener un pipeline se necesitan recursos para cada etapa. Arquitectura de Computadoras

  10. Pipelining en MIPS • Las instrucciones de MIPS tienen 5 etapas: • Obtener (fetch) una instrucción de la memoria. • Leer los registros mientras se decodifica la instrucción. • Ejecutar la operación o calcular una dirección. • Accesar un operando en la memoria de datos. • Escribir el resultado en un registro. Arquitectura de Computadoras

  11. IF ID EX MEM WB Pipelining en MIPS • IF (instruction fetch): obtiene la instrucción de la memoria. • ID (instruction decoding): decodifica la instrucción y lee los operandos. • EX (execute): ejecuta la instrucción, o si es lw/sw calcula la dirección de la memoria. • MEM (memory access): lee/escribe la memoria. Es una no-op para instrucciones tipo-R. • WB (write back): escribe el resultado en el registro. Arquitectura de Computadoras

  12. Ejemplo • El cuadro completo representa la memoria de instrucciones. • El cuadro punteado representa el banco de registros. • EX tiene el símbolo de la ALU. • MEM está en blanco porque add no accesa la memoria de datos. Arquitectura de Computadoras

  13. Pipelining en MIPS • Características de MIPS que ayudan a implementar cada etapa del pipeline en un ciclo: • Las instrucciones tienen la misma longitud. Etapas IF e ID. • Solo 3 formatos de instrucción. Etapa ID. • Las instrucciones lw y sw son las únicas que accesan la memoria. Etapas EX y MEM. • Los operandos están alineados en la memoria. Etapa MEM. Arquitectura de Computadoras

  14. Datapath con pipeline Arquitectura de Computadoras

  15. Datapath con pipeline • Los registros entre etapas sirven para pasar valores e información de control de una etapa a otra. • IF/ID 64 bits para guardar la instrucción y el PC. • ID/EX 128 bits. • EX/MEM 97 bits. • MEM/WB 64 bits. Arquitectura de Computadoras

  16. Comparación • Comparar la implementación MIPS de un ciclo contra la implementación de un pipeline. • Versión de 8 instrucciones: carga palabra (lw), guarda palabra (sw), suma (add), resta (sub), and, or, set-on-less-than (slt) y branch-on-equal (beq). • Versión de un ciclo: todas las instrucciones tardan un ciclo de reloj. Arquitectura de Computadoras

  17. Comparación • Versión con pipeline: • 200 ps por acceso a memoria. • 200 ps por operación de la ALU. • 100 ps por leer o escribir en el banco de registros. Arquitectura de Computadoras

  18. Comparación • En la versión de un ciclo, la duración del ciclo de reloj se acopla a la instrucción mas lenta. • El periodo de reloj es de 800 ps, aunque haya instrucciones que ocupen 500 ps. • Se van a comparar una secuencia de 3 instrucciones lw. Arquitectura de Computadoras

  19. Versión de un ciclo • El tiempo entre la primera y cuarta instrucción es 800 x 3 = 2,400 ps. Arquitectura de Computadoras

  20. Versión pipeline • El tiempo entre la primera y la cuarta instrucción es 600 ps. Arquitectura de Computadoras

  21. Conclusiones • En la versión pipeline, la longitud de cada etapa es la misma y se acopla a la etapa mas lenta. • Cada etapa dura 200 ps. • Speed-up = 2400 / 1400 = 1.71. Arquitectura de Computadoras

  22. Speed-up • Si las etapas del pipeline están perfectamente balanceadas, el tiempo entre instrucciones es: • En teoría, el speedup de un pipeline es aproximadamente igual al número de etapas. • Un pipeline de 5 etapas es 5 veces más rápido que la versión sin pipeline. Arquitectura de Computadoras

  23. Speed-up • En teoría, si el periodo de reloj en la versión de un ciclo es de 800 ps, en la versión pipeline el periodo debería ser de 800 / 5 = 160 ps. • Pero, como las etapas no están balanceadas, el periodo de reloj es de 200 ps. • Además hay que tener en cuenta el overhead de usar un pipeline. • En el ejemplo, el speed-up está limitado a 4. Arquitectura de Computadoras

  24. Speed-up • En el ejemplo, el speed-up es de 1.71. • La razón es que son solo 3 instrucciones. • Si se ejecutan un millón de lw: • El speed-up depende de la utilización del pipeline. Arquitectura de Computadoras

  25. Conclusión • El uso de un pipeline mejora el rendimiento incrementando el throughput sin decrementar el tiempo de ejecución de una instrucción individual. Arquitectura de Computadoras

More Related