SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarioselcapo2008
 
Cálculo varias variables campos escalares
Cálculo varias variables campos escalaresCálculo varias variables campos escalares
Cálculo varias variables campos escalaresYerikson Huz
 
1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptxFernando Solis
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidosHAROLDO MIRANDA DA COSTA JR
 
Función Logsig y tansig
Función Logsig y tansigFunción Logsig y tansig
Función Logsig y tansigVane Erraez
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesUlrich Schiel
 
Regla de aprendizaje del perceptrón simple
Regla de aprendizaje del perceptrón simpleRegla de aprendizaje del perceptrón simple
Regla de aprendizaje del perceptrón simpleAndrea Lezcano
 
Plano de aula po1 capitulo 6 método simplex 2015 vrs 0000 - fazer.ppt [modo...
Plano de aula po1 capitulo 6   método simplex 2015 vrs 0000 - fazer.ppt [modo...Plano de aula po1 capitulo 6   método simplex 2015 vrs 0000 - fazer.ppt [modo...
Plano de aula po1 capitulo 6 método simplex 2015 vrs 0000 - fazer.ppt [modo...Luis Duncan
 
39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)
39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)
39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)LuiZRt
 
Funciones para el jueves
Funciones para el juevesFunciones para el jueves
Funciones para el juevesMiguel Vasquez
 
Derivadas de funciones paramétricas
Derivadas de funciones paramétricas Derivadas de funciones paramétricas
Derivadas de funciones paramétricas Erick Guaman
 
Generador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorGenerador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorkattyusca
 
Função de duas variáveis, domínios e imagem
Função de duas variáveis, domínios e imagemFunção de duas variáveis, domínios e imagem
Função de duas variáveis, domínios e imagemIsadora Toledo
 

Was ist angesagt? (20)

5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
 
Cálculo varias variables campos escalares
Cálculo varias variables campos escalaresCálculo varias variables campos escalares
Cálculo varias variables campos escalares
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoi
 
1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
 
Función Logsig y tansig
Función Logsig y tansigFunción Logsig y tansig
Función Logsig y tansig
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relações
 
Regla de aprendizaje del perceptrón simple
Regla de aprendizaje del perceptrón simpleRegla de aprendizaje del perceptrón simple
Regla de aprendizaje del perceptrón simple
 
Subsemigrupos y submonoides
Subsemigrupos y submonoidesSubsemigrupos y submonoides
Subsemigrupos y submonoides
 
Transformación lineal
Transformación linealTransformación lineal
Transformación lineal
 
Plano de aula po1 capitulo 6 método simplex 2015 vrs 0000 - fazer.ppt [modo...
Plano de aula po1 capitulo 6   método simplex 2015 vrs 0000 - fazer.ppt [modo...Plano de aula po1 capitulo 6   método simplex 2015 vrs 0000 - fazer.ppt [modo...
Plano de aula po1 capitulo 6 método simplex 2015 vrs 0000 - fazer.ppt [modo...
 
39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)
39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)
39617 7001180393 08-29-2019_215914_pm_s02-sust_alg_e_ipp (1)
 
Funciones para el jueves
Funciones para el juevesFunciones para el jueves
Funciones para el jueves
 
Ud 5 derivadas
Ud 5 derivadasUd 5 derivadas
Ud 5 derivadas
 
Funciones
FuncionesFunciones
Funciones
 
Derivadas de funciones paramétricas
Derivadas de funciones paramétricas Derivadas de funciones paramétricas
Derivadas de funciones paramétricas
 
Listas
ListasListas
Listas
 
Clase integral triple
Clase integral tripleClase integral triple
Clase integral triple
 
Generador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorGenerador de señales seno en un microcontrolador
Generador de señales seno en un microcontrolador
 
Função de duas variáveis, domínios e imagem
Função de duas variáveis, domínios e imagemFunção de duas variáveis, domínios e imagem
Função de duas variáveis, domínios e imagem
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 

Kürzlich hochgeladen (20)

PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 

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