La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Computadoras (Taller) Semestre II de 2008.

Presentaciones similares


Presentación del tema: "Arquitectura de Computadoras (Taller) Semestre II de 2008."— Transcripción de la presentación:

1 Arquitectura de Computadoras (Taller) Semestre II de 2008

2 Pipelining Pipelining es una técnica de implementación en la cual múltiples instrucciones se solapan en su ejecución. Analogía física: una lavadora. Elementos o fases: proceso de lavado, proceso de secado, doblado de la ropa, almacenamiento de la ropa. Pipelining es una técnica de implementación en la cual múltiples instrucciones se solapan en su ejecución. Analogía física: una lavadora. Elementos o fases: proceso de lavado, proceso de secado, doblado de la ropa, almacenamiento de la ropa.

3 Elementos y procesos Proceso de lavado Proceso de secado Doblado de la ropa Almacenamiento de la ropa

4 Sin pipelining Sin pipelining, cada proceso dura media hora. Un usuario gastaría 8 horas para el lavado completo de cuatro prendas.

5 Con pipelining Con pipelining se trabaja en paralelo dependiendo de la disponibilidad de los recursos. El proceso se reduce de 8 horas a 3.5 horas.

6 Fases de ejecución en MIPS 1. Buscar la instrucción en memoria 2. Leer los registros mientras se decodifica la instrucción 3. Ejecutar la operación o calcular una dirección 4. Buscar un operando en la memoria de datos 5. Escribir el resultado en un registro 1. Buscar la instrucción en memoria 2. Leer los registros mientras se decodifica la instrucción 3. Ejecutar la operación o calcular una dirección 4. Buscar un operando en la memoria de datos 5. Escribir el resultado en un registro

7 Proyecto base: 8 instrucciones load word (lw) store word (sw) add (add) subtract (sub) and (and) or (or) set-less-than (slt) branch-on-equal (beq) load word (lw) store word (sw) add (add) subtract (sub) and (and) or (or) set-less-than (slt) branch-on-equal (beq)

8 Implantación MONOCICLO Todas las instrucciones toman un ciclo de reloj. En cada ciclo actúan las unidades funcionales. El Tiempo de operación para las unidades funcionales es: Acceso a memoria:200 ps Operación de la ALU:200 ps Lectura o escritura de registros:100 ps Todas las instrucciones toman un ciclo de reloj. En cada ciclo actúan las unidades funcionales. El Tiempo de operación para las unidades funcionales es: Acceso a memoria:200 ps Operación de la ALU:200 ps Lectura o escritura de registros:100 ps

9 Tiempo para cada instrucción La longitud del ciclo de reloj debe ser tal que acomode a la instrucción que consuma más tiempo. En este caso la longitud del ciclo de reloj debe ser de 800 ps.

10 Ejecución no pipelining para tres instrucciones lw Tres instrucciones lw SIN pipelinign consumen 2400 ps = 800 ps * 3.

11 Ejecución pipelining para tres instrucciones lw Tres instrucciones lw CON pipelining consumen 1400 ps

12 Relación entre pipelining y NO pipelining Para un caso en el cual se tienen 5 etapas funcionales, como es el caso que se acaba de estudiar, se tiene: 160 = 800 / 5 Este es un caso ideal.

13 PREGUNTA 1 Analice la fórmula de la diapositiva anterior, explicando su significado: Respuesta: El tiempo promedio que tarda en ejecutar cada parte de la instrucción, este caso se trata de una instrucción que tiene 5 pasos.

14 Diseño de instrucciones utilizando pipelining Las instrucciones deben cumplir ciertas restricciones a la hora de diseñar un sistema basado en pipelining.  Todas las instrucciones tienen la misma longitud  En MIPS hay pocos formatos de instrucción  Los datos caben exactamente en una palabra Las instrucciones deben cumplir ciertas restricciones a la hora de diseñar un sistema basado en pipelining.  Todas las instrucciones tienen la misma longitud  En MIPS hay pocos formatos de instrucción  Los datos caben exactamente en una palabra

15 Riesgos al utilizar pipelining 1. Riesgo estructural La estructura del procesador impide que se pueda realizar el pipelining. Por ejemplo, si se tiene, en lugar de dos memorias, una sola memoria, ejecutar cuatro instrucciones lw plantearía un problema de acceso a la memoria. 1. Riesgo estructural La estructura del procesador impide que se pueda realizar el pipelining. Por ejemplo, si se tiene, en lugar de dos memorias, una sola memoria, ejecutar cuatro instrucciones lw plantearía un problema de acceso a la memoria.

16 PREGUNTA 2 Analice la gráfica de la ejecución pipeline de tres instrucciones lw y agregue una cuarta instrucción lw. ¿Qué problema se presenta?: Respuesta: En ese instante se esta accediendo al mismo espacio de memoria con dos instrucciones independientes que deben hacer referencia a datos diferentes, uno de lectura y otro de lectura. Esto hace que el dato leído no sea el que se espera.

17 Riesgos al utilizar pipelining 2. Riesgo en los datos Ocurre cuando una instrucción necesita datos de una instrucción que se está ejecutando previamente, y debe esperar a que culmine para la anterior para que ella pueda ser ejecutada. 2. Riesgo en los datos Ocurre cuando una instrucción necesita datos de una instrucción que se está ejecutando previamente, y debe esperar a que culmine para la anterior para que ella pueda ser ejecutada.

18 PREGUNTA 3 Analice las siguientes instrucciones: add $s0, $t0, $t1 sub $t2, $s0, $t3 ¿Piensa usted que se presenta alguna dependencia? Respuesta en la siguiente diapositiva AYUDA: observe que el dato en $s0 se obtiene en la primera instrucción, al FINAL de la ejecución.

19 PREGUNTA 3 Respuesta: Respuesta: Existe dependencia debido a que primero se debe calcular la instrucción add para que en la siguiente instrucción $s0 contenga el valor que se necesita para la instrucción sub.

20 Peligro con los datos Debe tomarse en cuenta, en relación con el riesgo relativo a los datos, que seguramente debe introducirse un retardo (bubble) antes de que la nueva instrucción pueda ejecutarse. Lo anterior implica una disminución de la eficiencia en el proceso de pipelining. Debe tomarse en cuenta, en relación con el riesgo relativo a los datos, que seguramente debe introducirse un retardo (bubble) antes de que la nueva instrucción pueda ejecutarse. Lo anterior implica una disminución de la eficiencia en el proceso de pipelining.

21 Implantación específica IF: Bloque de búsqueda de instrucción ID: Decodificación de la instrucción y almacenamiento en registro EX: Etapa de ejecución en el ALU MEM: Acceso a la memoria WB: Escritura de registro IF: Bloque de búsqueda de instrucción ID: Decodificación de la instrucción y almacenamiento en registro EX: Etapa de ejecución en el ALU MEM: Acceso a la memoria WB: Escritura de registro A continuación (en la siguiente diapositiva) se muestran los bloques funcionales debidamente interconectados, operando en cascada para las instrucciones add y sub.

22 Implantación específica IF: Bloque de búsqueda de instrucción ID: Decodificación de la instrucción y almacenamiento en registro EX: Etapa de ejecución en el ALU MEM: Acceso a la memoria WB: Escritura de registro IF: Bloque de búsqueda de instrucción ID: Decodificación de la instrucción y almacenamiento en registro EX: Etapa de ejecución en el ALU MEM: Acceso a la memoria WB: Escritura de registro

23 Interpretación sombreado Si el bloque está sombreado a la derecha, entonces el componente es leído. Si el bloque está sombreado a la izquierda, entonces sobre el bloque se escribe. En la suma, por ejemplo, se LEE una instrucción, se LEEN los registros de la instrucción, se lee y escribe información en la ALU, el acceso a la memoria no se utiliza y, finalmente, se ESCRIBE sobre un registro destino. Si el bloque está sombreado a la derecha, entonces el componente es leído. Si el bloque está sombreado a la izquierda, entonces sobre el bloque se escribe. En la suma, por ejemplo, se LEE una instrucción, se LEEN los registros de la instrucción, se lee y escribe información en la ALU, el acceso a la memoria no se utiliza y, finalmente, se ESCRIBE sobre un registro destino.

24 Pipelining de las dos instrucciones Observe la línea azul. Ella indica que la segunda etapa no podrá continuar hasta tanto no se produzca el resultado en la etapa anterior. Es decir, la resta está condicionada por la suma.

25 PREGUNTA 4 Respuesta: Se lee una instrucción add que hace referencia a dos posiciones de memoria, luego se ejecuta en la alu la suma se accede a memoria y se escribe el resultado. La instrucción sub sigue este mismo camino un paso atrás en la ejecución, el resultado de la operación de la alu es utilizada para calcular la instrucción sub, aun sin terminar de ejecutarse la totalidad de la instrucción add. Sí no se incluye en la estructura un camino para enviar el resultado antes de escribirlo en memoria se presenta un error ya que la instrucción sub estaría referenciando un valor que aun no esta disponible. Explique con sus propias palabras el funcionamiento del anterior circuito para la suma y la resta:

26 Resolviendo riesgos En el siguiente circuito se ejecutan dos instrucciones utilizando pipeline. Dado que dichas instrucciones presentan dificultades por el uso de recursos, es necesario introducir retardos. Estudie cuidadosamente el circuito y responda la pregunta que se hace.

27 Instrucciones lw y sub PREGUNTA 5: Explique el funcionamiento, en sus palabras, del circuito mostrado.

28 PREGUNTA 5 Respuesta: La instrucción lw carga la palabra que se encuentra en la direccion 20$(12) en la posición de memoria $10, la siguiente instrucción sub requiere de este resultado para su operación. En este caso se introdujo un retardo con el fin de que al acceder esta posición en la instrucción sub el nuevo dato ya se encuentre disponible en el archivo de registros.


Descargar ppt "Arquitectura de Computadoras (Taller) Semestre II de 2008."

Presentaciones similares


Anuncios Google