Arquitectura de Computadores      Planificación de código:      Segmentación software
Planificación de código
Planificación de código                            Planificación de código                                                ...
Planificación de código -> De bucles -> Segmentación Software            • Reordenación y reorganización de las instruccio...
Planificación de código -> De bucles -> Segmentación Software            • Reordenación y reorganización de las instruccio...
Planificación de código -> De bucles -> Segmentación Software            • Reordenación y reorganización de las instruccio...
Planificación de código -> De bucles -> Segmentación Software • Reordenación y reorganización de las instrucciones de un b...
Planificación de código -> De bucles -> Segmentación SoftwareVentajas       • Consume menos espacio de código       • Se c...
Próxima SlideShare
Cargando en…5
×

Arquitectura de computadores segmentacion software

1.972 visualizaciones

Publicado el

ARQ-Segmentación Software

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.972
En SlideShare
0
De insertados
0
Número de insertados
28
Acciones
Compartido
0
Descargas
11
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Arquitectura de computadores segmentacion software

  1. 1. Arquitectura de Computadores Planificación de código: Segmentación software
  2. 2. Planificación de código
  3. 3. Planificación de código Planificación de código Global • Planificación instruccionesDe bloques básicos • Planificación de bucles• Planificador de listas De bucles Desarrollo de bucles Segmentación software
  4. 4. Planificación de código -> De bucles -> Segmentación Software • Reordenación y reorganización de las instrucciones de un bucle • Se intercalan instrucciones de distintas iteraciones sin desarrollar el bucle -> Cada iteración tendrá instrucciones de diferentes iteraciones del bucle original (el objetivo es situar instrucciones dependientes lo mas alejadas posible) Ej: Iteración i ld f0,0(r1) Bucle inicial add f4,f0,f2 loop: ld f0,0(r1) sd f4,0(r1) add f4,f0,f2 Iteración i +1 sd f4,0(r1) addi r1,r1,#-8 ld f0,0(r1)Inst. add f4,f0,f2Control bnez r1,loop sd f4,0(r1) Iteración i +2 ld f0,0(r1) add f4,f0,f2 sd f4,0(r1)
  5. 5. Planificación de código -> De bucles -> Segmentación Software • Reordenación y reorganización de las instrucciones de un bucle • Se intercalan instrucciones de distintas iteraciones sin desarrollar el bucle -> Cada iteración tendrá instrucciones de diferentes iteraciones del bucle original (el objetivo es situar instrucciones dependientes lo mas alejadas posible) Ej: Iteración i ld f0,0(r1) Bucle final Bucle inicial add f4,f0,f2 loop: ld f0,0(r1) sd f4,0(r1) loop: sd f4,16(r1) add f4,f0,f2 add f4,f0,f2 Iteración i +1 sd f4,0(r1) ld f0,0(r1) addi r1,r1,#-8 ld f0,0(r1) addi r1,r1,#-8Inst. Inst. add f4,f0,f2 bnez r1,loopControl bnez r1,loop Control sd f4,0(r1) Iteración i +2 ld f0,0(r1) add f4,f0,f2 sd f4,0(r1)
  6. 6. Planificación de código -> De bucles -> Segmentación Software • Reordenación y reorganización de las instrucciones de un bucle • Se intercalan instrucciones de distintas iteraciones sin desarrollar el bucle -> Cada iteración tendrá instrucciones de diferentes iteraciones del bucle original (el objetivo es situar instrucciones dependientes lo mas alejadas posible) Ej: Iteración i ld f0,0(r1) Bucle final Bucle inicial add f4,f0,f2 loop: ld f0,0(r1) sd f4,0(r1) loop: sd f4,16(r1) add f4,f0,f2 add f4,f0,f2 Iteración i +1 sd f4,0(r1) ld f0,0(r1) addi r1,r1,#-8 ld f0,0(r1) addi r1,r1,#-8Inst. Inst. add f4,f0,f2 bnez r1,loopControl bnez r1,loop Control sd f4,0(r1) Iteración i +2 ld f0,0(r1) add f4,f0,f2 sd f4,0(r1)
  7. 7. Planificación de código -> De bucles -> Segmentación Software • Reordenación y reorganización de las instrucciones de un bucle • Se intercalan instrucciones de distintas iteraciones sin desarrollar el bucle -> Cada iteración tendrá instrucciones de diferentes iteraciones del bucle original (el objetivo es situar instrucciones dependientes lo mas alejadas posible) • La estructura del programa suele ser: Prólogo – Bucle –Epílogo • Objetivo:  Encontrar una secuencia de instrucciones repetitiva que se pueda ejecutar en un solo ciclo o en un número pequeño de ciclos  Es realmente una tarea dificultosa y no siempre son iteraciones tan favorables
  8. 8. Planificación de código -> De bucles -> Segmentación SoftwareVentajas • Consume menos espacio de código • Se consigue una ejecución con un paralelismo mayor durante más tiempo de ejecución • Aprovecha mejor el paralelismo de la máquinaObstáculos • Presencia de anti-dependencias • Saltos incondicionales • Bucles con pocas instrucciones y latencias largas • Combinar segmentación software y desarrollo de buclesImplementación • URPR: UnRolling, Pipeling and Rerolling 1. Planifica el bucle como un bloque básico y lo desarrolla k veces 2. Reordena las instrucciones para obtener mayor paralelismo 3. Busca el patrón repetitivo

×