SlideShare une entreprise Scribd logo
1  sur  8
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




                                                                  Global
                                                              •     Planificación instrucciones
De bloques básicos                                            •     Planificación de bucles
•   Planificador de
    listas
                                De bucles


                 Desarrollo de bucles       Segmentación software
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,f2
Control bnez r1,loop
                                     sd f4,0(r1)
                                     Iteración i +2
                                     ld f0,0(r1)
                                     add f4,f0,f2
                                     sd f4,0(r1)
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,#-8
Inst.                                                                                   Inst.
                                     add f4,f0,f2                   bnez r1,loop
Control bnez r1,loop                                                                    Control
                                     sd f4,0(r1)
                                     Iteración i +2
                                     ld f0,0(r1)
                                     add f4,f0,f2
                                     sd f4,0(r1)
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,#-8
Inst.                                                                                   Inst.
                                     add f4,f0,f2                   bnez r1,loop
Control bnez r1,loop                                                                    Control
                                     sd f4,0(r1)
                                     Iteración i +2
                                     ld f0,0(r1)
                                     add f4,f0,f2
                                     sd f4,0(r1)
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
Planificación de código -> De bucles -> Segmentación Software

Ventajas
       • 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áquina

Obstáculos
       • Presencia de anti-dependencias
       • Saltos incondicionales
       • Bucles con pocas instrucciones y latencias largas
           • Combinar segmentación software y desarrollo de bucles

Implementació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

Contenu connexe

Tendances

Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 
Lema de bombeo
Lema de bombeoLema de bombeo
Lema de bombeoOmega Tech
 
Métodos numéricos- Problemario
Métodos numéricos- ProblemarioMétodos numéricos- Problemario
Métodos numéricos- ProblemarioBren MA
 
Insertion sort
Insertion sortInsertion sort
Insertion sortMichael
 
Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de LagrangeKike Prieto
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Tensor
 
Parte i entendendo o marie
Parte i   entendendo o marieParte i   entendendo o marie
Parte i entendendo o mariesinunifei2011
 
Ejercicios De D Zill 8° Edicion
Ejercicios  De D Zill 8° EdicionEjercicios  De D Zill 8° Edicion
Ejercicios De D Zill 8° EdicionMartin Galvez
 
Introduccion metodo secante en excel
Introduccion metodo secante en excelIntroduccion metodo secante en excel
Introduccion metodo secante en excelJeimer Jimenez
 

Tendances (20)

Merge Sort
Merge SortMerge Sort
Merge Sort
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Lema de bombeo
Lema de bombeoLema de bombeo
Lema de bombeo
 
Métodos numéricos- Problemario
Métodos numéricos- ProblemarioMétodos numéricos- Problemario
Métodos numéricos- Problemario
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de Lagrange
 
Reticulo
ReticuloReticulo
Reticulo
 
Problema de las 8 reinas
Problema de las 8 reinasProblema de las 8 reinas
Problema de las 8 reinas
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Recursividad
RecursividadRecursividad
Recursividad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Lifo round robín informatica
Lifo round robín informatica Lifo round robín informatica
Lifo round robín informatica
 
Parte i entendendo o marie
Parte i   entendendo o marieParte i   entendendo o marie
Parte i entendendo o marie
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
Ejercicios De D Zill 8° Edicion
Ejercicios  De D Zill 8° EdicionEjercicios  De D Zill 8° Edicion
Ejercicios De D Zill 8° Edicion
 
Clase2
Clase2Clase2
Clase2
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Introduccion metodo secante en excel
Introduccion metodo secante en excelIntroduccion metodo secante en excel
Introduccion metodo secante en excel
 
Practica 3 regla falsa
Practica 3 regla falsaPractica 3 regla falsa
Practica 3 regla falsa
 
El metodo doolittle
El metodo doolittleEl metodo doolittle
El metodo doolittle
 

Similaire à Arquitectura de computadores segmentacion software

Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...
Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...
Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...RootedCON
 
Rutinas y Sub Rutinas del MicroZ80
Rutinas y Sub Rutinas del MicroZ80Rutinas y Sub Rutinas del MicroZ80
Rutinas y Sub Rutinas del MicroZ80Pablo Chumania
 
Modulo 02a ospf-y_e_bgp_basico_ipv6
Modulo 02a ospf-y_e_bgp_basico_ipv6Modulo 02a ospf-y_e_bgp_basico_ipv6
Modulo 02a ospf-y_e_bgp_basico_ipv61 2d
 
Análisis de complejidad big o
Análisis de complejidad  big o Análisis de complejidad  big o
Análisis de complejidad big o UVM
 
Lab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84aLab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84almendi
 
Lab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84aLab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84almendi
 

Similaire à Arquitectura de computadores segmentacion software (9)

Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...
Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...
Javier Moreno & Eloi Sanfélix - Seguridad y explotación nativa en Android [Ro...
 
Decompiladores
DecompiladoresDecompiladores
Decompiladores
 
Problema vliw 2
Problema vliw 2Problema vliw 2
Problema vliw 2
 
Rutinas y Sub Rutinas del MicroZ80
Rutinas y Sub Rutinas del MicroZ80Rutinas y Sub Rutinas del MicroZ80
Rutinas y Sub Rutinas del MicroZ80
 
Modulo 02a ospf-y_e_bgp_basico_ipv6
Modulo 02a ospf-y_e_bgp_basico_ipv6Modulo 02a ospf-y_e_bgp_basico_ipv6
Modulo 02a ospf-y_e_bgp_basico_ipv6
 
Guia 5 3 2015 c2
Guia 5 3 2015 c2Guia 5 3 2015 c2
Guia 5 3 2015 c2
 
Análisis de complejidad big o
Análisis de complejidad  big o Análisis de complejidad  big o
Análisis de complejidad big o
 
Lab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84aLab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84a
 
Lab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84aLab.270910.instrucciones basicas del pic 16 f84a
Lab.270910.instrucciones basicas del pic 16 f84a
 

Dernier

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Dernier (20)

El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Arquitectura de computadores segmentacion software

  • 1. Arquitectura de Computadores Planificación de código: Segmentación software
  • 3. Planificación de código Planificación de código Global • Planificación instrucciones De bloques básicos • Planificación de bucles • Planificador de listas De bucles Desarrollo de bucles Segmentación software
  • 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,f2 Control bnez r1,loop sd f4,0(r1) Iteración i +2 ld f0,0(r1) add f4,f0,f2 sd f4,0(r1)
  • 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,#-8 Inst. Inst. add f4,f0,f2 bnez r1,loop Control 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. 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,#-8 Inst. Inst. add f4,f0,f2 bnez r1,loop Control 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. 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. Planificación de código -> De bucles -> Segmentación Software Ventajas • 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áquina Obstáculos • Presencia de anti-dependencias • Saltos incondicionales • Bucles con pocas instrucciones y latencias largas • Combinar segmentación software y desarrollo de bucles Implementació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