PIPELINING - INTRODUCCION Definciónes básicas Ejemplos prácticos Ejemplos sobre un procesador Tiempo entre instrucciones Pipeline Hazard ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING Un PIPELINE es una serie de etapas, en donde en cada etapa se realiza una porción de una tarea. La tarea no se termina hasta el momento en que haya pasado a través de todas las etapas. Un PIPELINE es usado para mejorar el desempeño mas allá de lo que puede ser alcanzado con un procesamiento sin pipeline. ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING PIPELINE - TROOUGHPUT Este mecanismo incrementa el throughput -el número de instrucciones completadas por unidad de tiempo. No reduce la latencia -el tiempo de ejecución de una solo instrucción ARQUITECTURA DE COMPUTADORES - PIPELINING
COMPLEJIDAD DEL HARDWARE Y EL CONTROL A cierto nivel usar Pipelining implica replicación de algunas funciones. Con el propósito de garantizar ejecución simultanea. ARQUITECTURA DE COMPUTADORES - PIPELINING
EJEMPLO – SIN PIPELINING http://cse.stanford.edu/class/sophomore-college/projects-00/risc/pipelining/ Source http://www.ece.arizona.edu/~ece462/Lec03-pipe/ ARQUITECTURA DE COMPUTADORES - PIPELINING
EJEMPLO – CON PIPELINING http://cse.stanford.edu/class/sophomore-college/projects-00/risc/pipelining/ Source http://www.ece.arizona.edu/~ece462/Lec03-pipe/ ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING Figure PIPELINING.4: A single-cycle processor http://arstechnica.com/articles/paedia/cpu/pipelining-1.ars/2 Autor: Jon Stokes ARQUITECTURA DE COMPUTADORES - PIPELINING
Figure PIPELINING.5: A four-stage pipeline Autor: Jon Stokes ARQUITECTURA DE COMPUTADORES - PIPELINING
EJEMPLO EN EL PROCESADOR Figura 6.3 Single-cycle, nonpipelined execution in top versus pipelined execution in botton ARQUITECTURA DE COMPUTADORES - PIPELINING
Time betwen instructions pipelined Time betweb instructions pipelined= (Time betweb instructions nonpipelined) / Number of pipe stages ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING DEEP PIPELINING Deep Pipelining hace referencia a la cantidad de estados en los cuales es dividido el proceso. En el caso del procesador estudiado se tienen 5 estado Fetch Read register while decoding instruction Execute the operation or calculate an address Access an operand in data memory Write the result into a register ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING PIPELINE HAZARDS STRUCTURAL HAZARD Es cuando el hardware no puede soportar la combinación de instrucciones que se desean ejecutar en el mismo ciclo de reloj. DATA HAZARD Ocurren cuando el pipeline debe detenerse en un paso mientras que se espera que otro se complete CONTROL HAZARD: Ocurren cuando ha necesidad de tomar una dedición basada en el resultado de una instrucción mientras esta se está ejecutando ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING STRUCTURAL HAZARD EJEMPLO: Se dispone de un sistema de una sola memoria para programa y datos- Cuando se ejecuta una cuarta instrucción se darían dos accesos a memoria al mismo tiempo ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING DATA HAZARD Add $s0, $t0, $t1 Sub $t2, $s0, $t3 Existe una dependencia de la segunda instrucción sobre la primera mientras está en el pipelining ARQUITECTURA DE COMPUTADORES - PIPELINING
DATA HAZARD: EJEMPLO FORWARDING O BYPASSING Figure 6.5: Graphical representation of forwarding. Computer Organization and Design. David A Paterson ARQUITECTURA DE COMPUTADORES - PIPELINING
DATA HAZARD :EJEMPLO FORWARDING O BYPASSING AND STALL Figure 6.6 We need a stall even with forwarding when an R-format instruction following a load tries to use the data . Computer Organization and Design. David A Paterson ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING CONTROL HAZARD Son llamados tambíen branch hazard. Existen dos alternativas STALL: Después de realizar fetch de una instrucción de salto se hace fetch de la siguiente, pero no se sabe si esta efectivamen va a realizars, de modo que se agrega una burbuja PREDICT: una aproximación simple es asumir que el salto no va a ser tomado ARQUITECTURA DE COMPUTADORES - PIPELINING
ARQUITECTURA DE COMPUTADORES - PIPELINING CONTROL HAZARD: STALL Figure 6.7: Pipeline shwing stalling on every cibditional branch as solution to control hazard. Computer Organization and Design. David A Paterson ARQUITECTURA DE COMPUTADORES - PIPELINING
CONTROL HAZARD : PREDICT Figure 6.8: Predicting thar branches are no taken as a solution to control hazard. Computer Organization and Design. David A Paterson ARQUITECTURA DE COMPUTADORES - PIPELINING