Practica Pipeline

Written by: Holguer A. Becerra

  • Suponga lo siguiente: su maquina de estados recibe un dato(in) cada start y realiza la siguiente operación matemática a=in*3 y luego a=a+3, para realizar esta operación suponga que su FSM utilizo 4 estados, IDLE, MULT, SUM y READY, ahora suponga que su FSM trabaja a 50MHz y que el start esta en 1'b1 y responda:

      • ¿Cuantas ciclos de reloj necesito para realizar la operación?

      • Cuanto tiempo requiere para dar un resultado.

      • ¿Que tendría que hacer para se genere una respuesta cada 20ns?

  • Entendido el anterior concepto podemos empezar con el concepto de pipeline, para esto comparemos una FSM con un diseño pipeline.

      • Compare la FSM del anterior punto con lo siguiente:

        • Imagine una fabrica que fabrica dulces y tiene solo un trabajador que se llama wilmer el cual se encarga de toda la cadena de producción, y esta cadena de producción tiene 4 etapas.

          • 1 etapa: Recibe el dulce.

          • 2 etapa: le da forma al dulce.

          • 3 etapa: sella el dulce.

          • 4 etapa pone el dulce en una caja listo para la venta.

        • Como en la FSM se requirieron 4 etapas para llevar un dulce de una etapa inicial a una etapa final, hágase la misma pregunta de el primer punto.

        • ¿como aumentaría el numero de dulces por minuto que genera la fabrica?

          • Si usted lo pensó bien, contrataría a 3 personas mas, teniendo así 4 personas en producción.

          • veamos ahora el ciclo

            • La primera persona recibe el dulce, mientras que las otras 3 no hacen nada.

            • La segunda persona le da forma dulce mientras que la primera recibe otro dulce, y las otras 2 no hacen nada.

            • La tercera persona sella el dulce mientras que la segunda le da forma al dulce y la ultima no hace nada.

            • la cuarta persona pone el dulce en la caja listo para la venta, mientras que la tercera sella otro dulce, la segunda le da forma a otro dulce y la primera recibe otro dulce.

            • ahora todas las personas están haciendo algo y cada vez que la primera persona recibe un dulce, sale un dulce listo en una caja.

          • ¿Que diferencia tiene esto con tener una persona(FSM) y tener 4 personas(Pipeline)?

          • ¿Que beneficios trae con respecto a la cantidad de dulces que puede hacer por minuto?

      • Ahora pensemos en hardware y no en personas, la misma FSM del punto 1...si lo noto bien y para aumentar la cantidad de operaciones se debe aumentar la frecuencia de reloj, lo que traer como consecuencia el aumento de potencia que consume un dispositivo electrónico, ¿no es asi?, osea que si yo necesito que mi FSM genere datos a alta velocidad necesitare aumentar frecuencia y por lo tanto la potencia que disipara la FPGA sera mayor...

      • Ahora imagine utilizar en vez de 4 estados, 4 stage (como las personas) y que cada stage es un registro que almacena lo que viene del anterior(persona) en la cadena de producción.

        • ¿Que beneficios trae esto en cuanto al consumo de potencia y la frecuencia necesaria?

        • ¿Alguna desventaja?.

    • Habiendo leído lo anterior usted ya tiene el concepto de pipeline y ahora necesita aplicarlo, para esto va hacer lo siguiente.

      • Diseñe una FSM como la del punto 1.

      • Lea la documentación siguiente desde la diapositiva #9 a la #15 y desarrolle cada circuito y problema que proponen en el.

      • Ahora en base a la documentación diseñe en configuración Pipeline un sistema que haga lo mismo que la FSM del primer punto.

      • Simule los dos circuitos el de FSM y Pipeline.

        • ¿Cuando se produce el primer resultado en la FSM?

        • ¿Cuando se produce el primer resultado en Pipeline?

        • Suponga una frecuencia de reloj de 500MHz para el sistema de FSM

          • ¿Cuantas operaciones es capaz de realizar por segundo?

        • Ahora compare con Pipeline.

          • ¿Que frecuencia de reloj necesitaría el circuito en Pipeline para producir la misma cantidad de operaciones?

    • Haga un cuadro comparativo entre FSM y Pipeline viendo ventajas y desventajas de cada configuración, llegue a sus propias conclusiones.

    • ¿Donde se aplica este concepto en la computación?

    • Lea los siguientes artículos y analice para ver el campo de aplicación:

    • http://clusters09.wikispaces.com/Special+Hardware

    • http://www.yosefk.com/blog/

    • http://cg.informatik.uni-freiburg.de/course_notes/graphics_01_pipeline.pdf

    • https://sites.google.com/site/ece31289upb/practicas-de-clase/practica-pipeline/RR-LIP-2010-16.pdf

    • http://www.win.tue.nl/~keesh/ow/2IV40/pipeline2.pdf