SlideShare una empresa de Scribd logo
1 de 88
Procesamiento Segmentado
Introducción

      Los procesadores segmentados sirven
      para mejorar el rendimiento sin necesidad
      de duplicar excesivamente el hardware.

      Se usaron por primera vez en los años 60 para
      los grandes sistemas (mainframes) de altas
      presentaciones, y fueron muy importantes en
      los años 80 para el enfoqué RISC del diseño de
      computadores (la mayoria de técnicas RISC se
      relacionan con el objetivo de conseguir una
      buena segmentación).
En la Actualidad…
 La  segmentación se utiliza
 mucho actualmente para el
 desarrollo de juegos de
 instrucciones del procesador.
 Actualmente, la tendencia es
 lograr segmentaciones más
 profundas     para     obtener
 frecuencias de reloj muy altas.
 Es un método muy eficaz para
 obtener un mayor rendimiento.
 La segmentación (pipelining) es una técnica
 de implementación por lo cual se solapa la
 ejecucion de múltiples instrucciones.

 Técnica clave para hacer CPU lapidas.
 Ejem: Línea de montaje de automóviles
Ejemplo
Ejemplo de una cadena de
montaje
 El procesamiento segmentado
 aprovecha la misma filosofía de
 trabajo de la fabricación en
 cadena: cada etapa de la
 segmentación (o segmento)
 completa una parte (subtarea)
 de la tarea total.
 Los segmentos están conectados cada
 uno con el siguiente, de forma que la
 salida de uno pasa ser la entrada del
 siguiente.
 La segmentación es como una
            línea de ensamblaje cada etapa
            de la segmentación completa una
            parte de la instrucción.




Como en una línea de ensamblaje de
automóviles, el trabajo que va a realizar una
instrucción se descompone en partes más
pequeñas, cada una de las cuales necesita
una fracción del tiempo necesario para
completar la instrucción completa.
 Cada uno de estos pasos se
             define como etapa de la
             segmentación o segmento.




 Las etapas están conectadas, cada
  una a la siguiente, para formar una
  especie de cauce. Las instrucciones
  entran por un extremo, son
  procesadas a través de las etapas y
  salen por el otro extremo.
El modelo de
        segmentación
 El modelo de segmentación más repetido
 en la primera mitad de los años 90 es el
 compuesto por las siguientes cinco etapas:

   Búsqueda de la instrucción .
   Decodificación.
   Lectura de operandos.
   Ejecución de la operación asociada.
   Escritura de su resultado.
Importancia
 Los mas importante de la segmentación es
  que las diferentes subtarea se pueden
  procesarse de forma simultanea, aunque se
  sobre diferentes datos.

 Una contribución clave de la segmentación es
  la posibilidad de comenzar una nueva tarea
  sin necesidad de que la anterior se haya
  terminado.
Ejemplo
 Considérese una tarea, compuesta por n
 subtarea. Si estas subtarea se procesan de
 forma totalmente, el tiempo necesario para
 procesar la tarea total será la suma de los
 tiempos necesarios para la terminación de cada
 una de las subtarea
 Si para procesar esa misma tarea, se emplea un
  procesador segmentado, basta que se haya
  terminado la primera subtarea para poder
  empezar a procesar una nueva tarea.
Rendimiento

 Un procesador rinde mas cuando es mas
  rápido  menor tiempo.

     Medida de rendimiento  Tiempo
Factores que reducen el rendimiento


 Factores tecnológicos

   Tiempo de carga de los registros
   Desplazamiento del reloj (clock skew)
Clock skew:

El clock debería llegar a
todas las etapas en el
mismo instante pero
debido a diferentes
factores físicos
(cableado,carga,drivers....)
se produce un
desplazamiento temporal
en la llegada del clock a
cada etapa.
 Factores de diseño y utilización

   Participación en etapas inadecuadas


   Riesgos por dependencia de datos, surgen cuando
    una instrucción depende de los resultados de un
    instrucción anterior de forma que ambas no
    podrán ejecutarse de forma solapada.
Riesgos estructurales

 Surgen del conflicto de los recursos, cuando
  el hardware no puede soportar todas las
  combinaciones posibles de instrucciones en
  ejecuciones solapadas simultáneamente.



 Ejemplo: pedir a una ALU que realice el
  calculo de un dirección efectiva y una resta al
  mismo tiempo.
Ciclo de instrucción ALU




                   24
Ejemplo...

Tenemos una máquina no segmentada con 5
pasos de ejecución cuya duraciones son 50ns,
50ns, 60ns y 50ns. Suponer que debido
al tiempo        de     preparación        y al
desplazamiento del reloj (clock Skew),
segmentar la máquina añade 5ns de
gasto en cada etapa de ejecución. Calcular la
aceleración que conseguimos con la
segmentación       en     la    frecuencia   de
ejecución de las instrucciones.
Solución
 No segmentada:
Tiempo medio de instrucción = 50 + 50 +60 +
50 +50 = 260ns

 Segmentada:
 El reloj debe ir a la velocidad de la etapa más
lenta y debe tener en
           cuenta el gasto -----> 60 + 5 = 65ns
Ejemplo de segmentación




    Programa de instrucciones en el Intel Pentium 4.




                                        28
Conseguimos asi, que un procesador
compuesto por N unidades funcionales
que trabajan a la vez en circunstancias
ideales, incremente su rendimiento en
un factor de N.
Las instrucciones fluyen secuencialmente por
    las distintas unidades funcionales del
 procesador, de igual forma que el agua fluye
 por el cauce de una tubería, de ahí que en la
     jerga de la calle se les conozca como
procesadores pipeline que significa tubería en
                      inglés
Recordemos que…

 El modelo de segmentación más repetido en
 la primera mitad de los años 90 es el
 compuesto por las siguientes cinco etapas:

   Búsqueda de la instrucción
   Decodificación
   Lectura de operandos
   Ejecución de la operación asociada
   Escritura de su resultado.
Búsqueda de la instrucción


Decodificación de la instrucción y búsqueda de
registro (lectura)


Ejecución (y calculo de dirección efectiva)


Memoria (acceso): accede a memoria si es
necesario. Carga o almacena

Escritura (o pos escritura write-back): Escribe el
resultado en el registro destino.
CISC

 Se pronuncia Sisk, y está a favor del conjunto
  de instrucciones informáticas complejas. La
  mayoría de los PC usan CPU basados ​en esta
  arquitectura. Por ejemplo, Intel y AMD, la
  CPU se basan en arquitecturas CISC.

 Por lo general los chips CISC tienen una gran
  cantidad de instrucciones diferentes y
  complejos
CISC
 La filosofía detrás de esto es que el hardware es
  siempre más rápido que el software, por lo tanto,
  uno     debe    hacer     un    conjunto      de
  instrucciones potente, que proporciona a los
  programadores las instrucciones de montaje que
  tiene que ver mucho con programas de corto
  plazo.

 En conjunto los chips CISC son relativamente
  lentos (en comparación con los chips RISC) ​por
  instrucción, pero usan menos instrucciones que
  los RISC
RISC

 Computadoras con un conjunto de instrucciones
  reducido. Los Chips RICS desarrollados a
  mediados de 1980 como una reacción a los Chips
  CISC.

 La filosofía detrás de esto es que casi nadie
  utiliza complejas instrucciones en el lenguaje
  ensamblador como el usado por CISC y las
  personas utilizan compiladores que no utilizan
  instrucciones complejas. Apple, por ejemplo
  utiliza chips RICS
RISC

 Por lo tanto, las instrucciones rápidas y simples
  serian mejor que las instrucciones CISC grandes,
  complejas y lentas. Sin embargo, son necesarias
  más instrucciones para realizar una tarea.

 Otra ventaja de RISC es que - en teoría – a causa
  de las instrucciones más sencillas, los chips RISC
  requieren menos transistores, los que los hace
  más fáciles de diseñar y más baratos para
  producir.
DLX
El DLX es un microprocesador de tipo RISC
diseñado por John L. Hennessy y David A.
Patterson presenta una ejecucion en cinco
etapas, similares a las del microprocesador
MIPS, también diseñado por John L.
Hennessy en la Universidad de Stanford,
buscando la filosofía de la segmentación.
 Estas 5 etapas son:

 IF: búsqueda
 ID: decodificación
 EX: ejecucion de unidad aritmético
  lógico
 MEM: memoria
 WB: escritura
Etapa IF

 Se carga la instrucción en curso en el IR.
 Se prepara el contador de programa para
  apuntar a la siguiente instrucción.

               IR ← Mem[PC]
                NPC ← PC + 4
Etapa ID

 Se decodifica la instrucción y se cargan los
  diferentes campos en los registros especiales
  A, B, Imm.

              A ← Regs[IR6…10]
              B ← Regs[IR11…15]
          Imm ← ((IR16 )16## IR16…31)
Etapa Ex

 Acceso a memoria (cálculo de la dirección
  efectiva)
            ALUOutput ← A + Imm
 Reg-Reg ALU (operación especificada por func)
            ALUOutput ← A func B
 Reg-Imm ALU (operación especificada por op)
             ALUOutput ← A op Imm
 Salto (cálculo del PC destino y de la condición)
            ALUOutput ← NPC + Imm
                  Cond ← (A op 0)
Etapa MEM

 Acceso a memoria (lectura-Load o escritura-Store en
  memoria)

              LMD ← Mem[ALUOutput]
               Mem[ALUOutput] ← B

 Salto (carga de la dirección efectiva en el PC)
                       if (cond)
                   PC ← ALUOutput
                          else
                      PC ← NPC
Etapa WB

 Reg-Reg ALU:
    Regs[IR16…20] ← ALUOutput
 • Reg-Imm ALU:
    Regs[IR11…15] ← ALUOutput
 Instrucción de carga (Load):
       Regs[IR11…15] ← LMD
 Podemos observar en el siguiente grafico la
  ejecucion simultánea de cinco instrucciones
  distintas etapas en un procesador DLX
De esta manera, mientras el procesador
escribe una instrucción, ejecuta
simultáneamente las siguiente, busca
los operandos de una tercera,
decodifica una cuarta y busca en
memoria una quinta         instrucción,
lográndose en un caso ideal una
aceleración de cinco para el
rendimiento del chip.
En la ejecución monociclo:

 El período del reloj lo establece la instrucción que
  más demora en ejecutarse.
 A la vez este período es la suma de los tiempos
  asociados a cada etapa.
 En el diagrama los tiempos de acceso a memoria
  de instrucciones y de datos se asumen iguales y
  levemente mayores que la operación de la
  unidad aritmético lógica; la lectura y escritura de
  registros, se asumen iguales y menores que el
  tiempo de propagación en la alu.
En la ejecución multiciclo:

 El período del reloj lo establece la etapa que
  más demora en realizarse(acceso a memoria).
 En el diagrama se aprecia que la instrucción
  load word demora más en ejecutarse en la
  máquina multiciclo.
 Sin embargo la instrucción store word
  demora menos y también es más rápida la
  ejecución de la secuencia lw(load word),
  sw(stored word), en el procesador multiciclo.
En la ejecución segmentada
(pipeline):
 Asumiendo que cada instrucción ocupa las
  cinco etapas, la realización individual de una
  de ellas demora lo mismo que la más lenta en
  la ejecución multiciclo.

 Se aprecia que es más rápida la ejecución de
  la secuencia lw, sw, en el procesador
  segmentado que en el multiciclo.
Ejemplo:
   Suponemos que se ejecutan 100 instrucciones:


   Procesador monociclo


                    45 ns/ciclo x 1 CPI x 100 inst = 4500 ns


   Procesador Multiciclo


        10 ns/ciclo x 4.6 CPI (debido a la mezcla) x 100 inst = 4600 ns


   Segmentada ideal


          10 ns/ciclo x (1 CPI x 100 inst + 4 ciclos llenado) = 1040 ns
Ventaja
 La    gran ventaja de la aplicación de la
  segmentación en el diseño de los microprocesadores
  es que el aumento del rendimiento se consigue con
  solo reorganizar las unidades funcionales existentes,
  por lo que no supone un incremento de coste para la
  Unidad de Proceso

 El diseño de la Unidad de Control sí se complica un
  poco a medida que aumenta el número de etapas y el
  grado de concurrencia en la ejecución de las
  instrucciones pero es despreciable si lo comparamos
  con el espectacular incremento del rendimiento.
Puntos importantes de
Procesamiento segmentado
  • Se desea ejecutar varias instrucciones, al mismo tiempo.



  • Cinco etapas, pueden ejecutarse simultáneamente cinco instrucciones.


  • Es preciso que cada instrucción pase por las cinco etapas, y que cada etapa tenga
    su propio control.



  • Se comienza la próxima instrucción mientras se trabaja aun en otra.



  • Se ejecutan varias instrucciones, que usan recursos diferentes en forma
    simultanea
SUPERSEGMENTACION
INTRODUCCION

 La Supersegmentacion de los procesadores es una
 técnica de implementación que busca el mencionado
 paralelismo a nivel de instrucción.

 Pero antes de explicarlo, conviene explicar otras
 técnicas que también sirven para lograr el
 paralelismo y que suelen combinarse todas juntas
 como son la segmentación, Superescalaridad y
 la combinación de ambas
SUPERESCALARIDAD


 Consiste en la replicación de la circuitería de las
 unidades funcionales de un microprocesador,
 creando por lo tanto varios cauces (pipelines) de
 manera que se puedan ejecutar varias instrucciones a
 la vez
Procesador superescalar



 Un  procesador superescalar de factor N es
 aquel que replica N veces la circuitería de alguna de
 sus unidades funcionales con el fin de poder ejecutar
 N instrucciones en sus respectivas etapas de
 computación.
 Sin embargo, el coste de incrementar el rendimiento
 mediante la Superescalaridad es superior al de la
 segmentación.



 En el siguiente grafico se muestra la ejecucion en
 paralelo de 5 instrucciones cada una en su cauce o
 pipeline, lo que representa una Superescalaridad de
 factor 5.
COMBINACION DE SEGMENTACIO Y
               SUPERESCALARIDAD




 Como se puede observarse en la figura, las filosofías
 de segmentación y Superescalaridad son
 perfectamente compatibles.
 Sin embargo existen ciertos conflictos a la hora de
 poner en práctica simultáneamente ambas ideas, y es
 que cada técnica exige unos requisitos diferentes:
 La       segmentación       La Superescalaridad
 requiere una elevada         por      el    contrario
 frecuencia de forma          necesita un ingente
 que solo un periodo reloj    número               de
 muy corto permitirá          transistores       para
 descomponer         cada     poder ser implementada.
 instrucción     en    un
 número      elevado   de
 etapas.
SUPERSEGMENTACION

 La palabra Supersegmentacion nos lleva a la
 tentación de aplicar la ecuación superescalar +
 segmentado = supersegmentado, cuando en realidad
 la ecuación correcta es segmento + segmento =
 supersegmentado.
Microprocesadores supersegmentados

 Todos los microprocesadores actuales se
 encuentran supersegmentados, habiendo
 aumentado el número de etapas con el paso de las
 generaciones. Así, lo normal en la séptima
 generación es encontrarnos con cauces de ejecución
 entera de 20 etapas de segmentación en el caso del
 Pentium IV (2003) de Intel o 31 etapas en los
 procesadores Prescott (2004) también de Intel.
Control de colisiones en procesadores segmentados monofunción



                 1     2      3     4     5      6

           A     X                              X

           B           X                         X

           C                  X

           D                        X     X
Control de colisiones en procesadores segmentados monofunción



                 1     2      3     4     5      6

           A           X

           B                  X

           C                        X

           D                              X     X
Control de colisiones en procesadores segmentados monofunción



                 1        2       3      4       5    6

           A     X        X                           X

           B              X       X                   X

           C                      X      X

           D                             X       X    X

                     Vector de colisiones: (1 . . .
Control de colisiones en procesadores segmentados monofunción



                 1        2       3      4       5      6

           A     X                X                     X

           B              X              X              X

           C                      X              X

           D                             X       X      X

                     Vector de colisiones: (1 0 . . .
Control de colisiones en procesadores segmentados monofunción



                 1        2       3      4       5        6

           A     X                       X                X

           B              X                      X        X

           C                      X                       X

           D                             X       X

                     Vector de colisiones: (1 0 0 . . .
Control de colisiones en procesadores segmentados monofunción



                 1        2       3      4       5          6

           A     X                               X          X

           B              X                                 X

           C                      X

           D                             X       X

                     Vector de colisiones: (1 0 0 1 . . .
Control de colisiones en procesadores segmentados monofunción



                 1        2      3      4       5        6

           A     X                                       X

           B              X                              X

           C                     X

           D                            X      X

                     Vector de colisiones: (1 0 0 1 1)
Algoritmo de Patel-Davidson

            1       2       3       4      5       6
     A      X                                      X
     B              X                              X
     C                      X
     D                             X       X
Según el diagrama anterior: MA ciclo avaro = 4, MAL = 3
Número máximo de marcas en la una fila de la tabla = 2
Cota mínima del MAL = 2
Algoritmo de Patel-Davidson


      1      2       3       4        5   6   7   8
A    X               P                P   X   P   P
B            X              P             R
                                          P   X   P
C                    X                P       P
D                           X         X   P   P   P

Nuevo vector de colisiones: (10001)
Resultado del algoritmo de Patel-Davidson




                Nuevo MAL = 2
Control de colisiones en procesadores segmentados multifunción




         1    2   3    4    5   6            1    2   3    4   5    6
    A    X                      X       A    X                 X
    B         X                  X      B        X             X
    C             X                     C             X
    D                  X    X           D                  X        X


  Tabla de reservas de la función x   Tabla de reservas de la función y
Matrices de colisiones



              v xx                       v xy
        Mx                     My
              v yx                       v yy


Que en nuestro caso serán:

       v xx    10011              v xy          11110
Mx                        My
       v yx    10011              v yy          01110
Conflictos de control




Ejecución de instrucciones sin bifurcaciones




Detención producida por un conflicto de control
Conflictos de control: bifurcación retardada




Detención producida por una bifurcación (sin medidas correctoras)




Efecto de la reordenación de instrucciones efectuada por el compilador
en una máquina con bifurcación retardada
Procesadores superescalares
Procesadores supersegmentados
Procesadores superescalares supersegmentados
Comparación de las características de los procesadores
       escalares, superescalares y supersegmentados



                                                                     Superescalar
Tipo de           Escalar con n   Superescalar   Supersegmentada
                                                                   supersegmentada
máquina            segmentos       de grado N       de grado M
                                                                    de grado (N,M)
Ciclo máquina
básico                 1               1              1/M               1/M
Instrucciones
por emisión            1              N                1                 N
Ciclos entre
emisiones              1               1              1/M               1/M
consecutivas
ILP sin riesgos        1              N                M                MN
Ganancia de
velocidad              1              N                M                MN
Arquitectura de los
procesadores VLIW
Esquema temporal del funcionamiento de los procesadores VLIW
Procesamiento segmentado

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Registros del Pic 16F84
Registros del Pic 16F84Registros del Pic 16F84
Registros del Pic 16F84
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
UNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓNUNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓN
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.Tema 4: Procesamiento paralelo.
Tema 4: Procesamiento paralelo.
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Registros del cpu
Registros del cpuRegistros del cpu
Registros del cpu
 
Intel y amd
Intel y amdIntel y amd
Intel y amd
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesador
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Microprocesador ppt
Microprocesador pptMicroprocesador ppt
Microprocesador ppt
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 

Similar a Procesamiento segmentado

Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSebastian Gonzalez
 
Informe top sw
Informe top swInforme top sw
Informe top swcams21
 
Tarea s 5_cpu
Tarea s 5_cpuTarea s 5_cpu
Tarea s 5_cpuEdison35
 
Unidad aritmético lógica
Unidad aritmético lógicaUnidad aritmético lógica
Unidad aritmético lógicaguest5423e2
 
Unidad aritmético lógica
Unidad aritmético lógicaUnidad aritmético lógica
Unidad aritmético lógicaguest5423e2
 
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoCapacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoEduardMora4
 
Introduccion a la arquitectura de computadoras.docx
Introduccion a la arquitectura de computadoras.docxIntroduccion a la arquitectura de computadoras.docx
Introduccion a la arquitectura de computadoras.docxJessilara3
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadorassebasti97
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadorassebasti97
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamientoAlejandro Molina
 
Recuperacion
RecuperacionRecuperacion
Recuperacioncali_jd
 
Recuperacion
RecuperacionRecuperacion
Recuperacioncali_jd
 
Recuperacion
RecuperacionRecuperacion
Recuperacioncali_jd
 

Similar a Procesamiento segmentado (20)

Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corte
 
Informe top sw
Informe top swInforme top sw
Informe top sw
 
Tarea s 5_cpu
Tarea s 5_cpuTarea s 5_cpu
Tarea s 5_cpu
 
Arquitectura tipos lupe
Arquitectura tipos lupeArquitectura tipos lupe
Arquitectura tipos lupe
 
Curso MATLAB
Curso MATLABCurso MATLAB
Curso MATLAB
 
MICROPROCESADOR UNICICLO
MICROPROCESADOR UNICICLOMICROPROCESADOR UNICICLO
MICROPROCESADOR UNICICLO
 
Cpu
CpuCpu
Cpu
 
Unidad aritmético lógica
Unidad aritmético lógicaUnidad aritmético lógica
Unidad aritmético lógica
 
Unidad aritmético lógica
Unidad aritmético lógicaUnidad aritmético lógica
Unidad aritmético lógica
 
Cpu
CpuCpu
Cpu
 
Cp uup
Cp uupCp uup
Cp uup
 
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamientoCapacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento
 
Introduccion a la arquitectura de computadoras.docx
Introduccion a la arquitectura de computadoras.docxIntroduccion a la arquitectura de computadoras.docx
Introduccion a la arquitectura de computadoras.docx
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Arquitectura de computadoras
Arquitectura de computadorasArquitectura de computadoras
Arquitectura de computadoras
 
Multiciclo
MulticicloMulticiclo
Multiciclo
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Recuperacion
RecuperacionRecuperacion
Recuperacion
 
Recuperacion
RecuperacionRecuperacion
Recuperacion
 
Recuperacion
RecuperacionRecuperacion
Recuperacion
 

Más de Jairo Quiroz Cabanillas (20)

COMPUTACIÓN EVOLUTIVA
COMPUTACIÓN EVOLUTIVACOMPUTACIÓN EVOLUTIVA
COMPUTACIÓN EVOLUTIVA
 
ROBOTICA
ROBOTICAROBOTICA
ROBOTICA
 
Algoritmo voraces
Algoritmo voracesAlgoritmo voraces
Algoritmo voraces
 
Sistemas raid
Sistemas raidSistemas raid
Sistemas raid
 
Sql dataadapter
Sql dataadapterSql dataadapter
Sql dataadapter
 
Sql connection
Sql connectionSql connection
Sql connection
 
ADO
ADOADO
ADO
 
ACCIDENTES DE TRABAJO
ACCIDENTES  DE TRABAJOACCIDENTES  DE TRABAJO
ACCIDENTES DE TRABAJO
 
Segmentación
Segmentación Segmentación
Segmentación
 
Discos duros
Discos durosDiscos duros
Discos duros
 
Evolucion web
Evolucion webEvolucion web
Evolucion web
 
Procesamiento superescalar
Procesamiento superescalarProcesamiento superescalar
Procesamiento superescalar
 
Buses de arquitectura
Buses de arquitecturaBuses de arquitectura
Buses de arquitectura
 
MRP y ERP
MRP y ERPMRP y ERP
MRP y ERP
 
Planeacion de produccion
Planeacion de produccionPlaneacion de produccion
Planeacion de produccion
 
Sistema justo a tiempo
Sistema justo a tiempoSistema justo a tiempo
Sistema justo a tiempo
 
Administración del mantenimiento y fiabilidad
Administración del mantenimiento y fiabilidadAdministración del mantenimiento y fiabilidad
Administración del mantenimiento y fiabilidad
 
Mantenimiento y confiabiliadad
Mantenimiento y confiabiliadadMantenimiento y confiabiliadad
Mantenimiento y confiabiliadad
 
Nivel red
Nivel redNivel red
Nivel red
 
Capa de transporte nivel enrutamiento - pat - nat
Capa de transporte   nivel enrutamiento - pat - natCapa de transporte   nivel enrutamiento - pat - nat
Capa de transporte nivel enrutamiento - pat - nat
 

Procesamiento segmentado

  • 1.
  • 3. Introducción Los procesadores segmentados sirven para mejorar el rendimiento sin necesidad de duplicar excesivamente el hardware. Se usaron por primera vez en los años 60 para los grandes sistemas (mainframes) de altas presentaciones, y fueron muy importantes en los años 80 para el enfoqué RISC del diseño de computadores (la mayoria de técnicas RISC se relacionan con el objetivo de conseguir una buena segmentación).
  • 4. En la Actualidad…  La segmentación se utiliza mucho actualmente para el desarrollo de juegos de instrucciones del procesador. Actualmente, la tendencia es lograr segmentaciones más profundas para obtener frecuencias de reloj muy altas. Es un método muy eficaz para obtener un mayor rendimiento.
  • 5.
  • 6.  La segmentación (pipelining) es una técnica de implementación por lo cual se solapa la ejecucion de múltiples instrucciones. Técnica clave para hacer CPU lapidas. Ejem: Línea de montaje de automóviles
  • 8. Ejemplo de una cadena de montaje
  • 9.
  • 10.  El procesamiento segmentado aprovecha la misma filosofía de trabajo de la fabricación en cadena: cada etapa de la segmentación (o segmento) completa una parte (subtarea) de la tarea total.
  • 11.  Los segmentos están conectados cada uno con el siguiente, de forma que la salida de uno pasa ser la entrada del siguiente.
  • 12.
  • 13.  La segmentación es como una línea de ensamblaje cada etapa de la segmentación completa una parte de la instrucción. Como en una línea de ensamblaje de automóviles, el trabajo que va a realizar una instrucción se descompone en partes más pequeñas, cada una de las cuales necesita una fracción del tiempo necesario para completar la instrucción completa.
  • 14.  Cada uno de estos pasos se define como etapa de la segmentación o segmento.  Las etapas están conectadas, cada una a la siguiente, para formar una especie de cauce. Las instrucciones entran por un extremo, son procesadas a través de las etapas y salen por el otro extremo.
  • 15. El modelo de segmentación  El modelo de segmentación más repetido en la primera mitad de los años 90 es el compuesto por las siguientes cinco etapas:  Búsqueda de la instrucción .  Decodificación.  Lectura de operandos.  Ejecución de la operación asociada.  Escritura de su resultado.
  • 16. Importancia  Los mas importante de la segmentación es que las diferentes subtarea se pueden procesarse de forma simultanea, aunque se sobre diferentes datos.  Una contribución clave de la segmentación es la posibilidad de comenzar una nueva tarea sin necesidad de que la anterior se haya terminado.
  • 17. Ejemplo  Considérese una tarea, compuesta por n subtarea. Si estas subtarea se procesan de forma totalmente, el tiempo necesario para procesar la tarea total será la suma de los tiempos necesarios para la terminación de cada una de las subtarea
  • 18.  Si para procesar esa misma tarea, se emplea un procesador segmentado, basta que se haya terminado la primera subtarea para poder empezar a procesar una nueva tarea.
  • 19. Rendimiento  Un procesador rinde mas cuando es mas rápido  menor tiempo. Medida de rendimiento  Tiempo
  • 20. Factores que reducen el rendimiento  Factores tecnológicos  Tiempo de carga de los registros  Desplazamiento del reloj (clock skew)
  • 21. Clock skew: El clock debería llegar a todas las etapas en el mismo instante pero debido a diferentes factores físicos (cableado,carga,drivers....) se produce un desplazamiento temporal en la llegada del clock a cada etapa.
  • 22.  Factores de diseño y utilización  Participación en etapas inadecuadas  Riesgos por dependencia de datos, surgen cuando una instrucción depende de los resultados de un instrucción anterior de forma que ambas no podrán ejecutarse de forma solapada.
  • 23. Riesgos estructurales  Surgen del conflicto de los recursos, cuando el hardware no puede soportar todas las combinaciones posibles de instrucciones en ejecuciones solapadas simultáneamente.  Ejemplo: pedir a una ALU que realice el calculo de un dirección efectiva y una resta al mismo tiempo.
  • 25. Ejemplo... Tenemos una máquina no segmentada con 5 pasos de ejecución cuya duraciones son 50ns, 50ns, 60ns y 50ns. Suponer que debido al tiempo de preparación y al desplazamiento del reloj (clock Skew), segmentar la máquina añade 5ns de gasto en cada etapa de ejecución. Calcular la aceleración que conseguimos con la segmentación en la frecuencia de ejecución de las instrucciones.
  • 26. Solución  No segmentada: Tiempo medio de instrucción = 50 + 50 +60 + 50 +50 = 260ns  Segmentada: El reloj debe ir a la velocidad de la etapa más lenta y debe tener en cuenta el gasto -----> 60 + 5 = 65ns
  • 27.
  • 28. Ejemplo de segmentación Programa de instrucciones en el Intel Pentium 4. 28
  • 29.
  • 30.
  • 31. Conseguimos asi, que un procesador compuesto por N unidades funcionales que trabajan a la vez en circunstancias ideales, incremente su rendimiento en un factor de N.
  • 32. Las instrucciones fluyen secuencialmente por las distintas unidades funcionales del procesador, de igual forma que el agua fluye por el cauce de una tubería, de ahí que en la jerga de la calle se les conozca como procesadores pipeline que significa tubería en inglés
  • 33. Recordemos que…  El modelo de segmentación más repetido en la primera mitad de los años 90 es el compuesto por las siguientes cinco etapas:  Búsqueda de la instrucción  Decodificación  Lectura de operandos  Ejecución de la operación asociada  Escritura de su resultado.
  • 34. Búsqueda de la instrucción Decodificación de la instrucción y búsqueda de registro (lectura) Ejecución (y calculo de dirección efectiva) Memoria (acceso): accede a memoria si es necesario. Carga o almacena Escritura (o pos escritura write-back): Escribe el resultado en el registro destino.
  • 35. CISC  Se pronuncia Sisk, y está a favor del conjunto de instrucciones informáticas complejas. La mayoría de los PC usan CPU basados ​en esta arquitectura. Por ejemplo, Intel y AMD, la CPU se basan en arquitecturas CISC.  Por lo general los chips CISC tienen una gran cantidad de instrucciones diferentes y complejos
  • 36. CISC  La filosofía detrás de esto es que el hardware es siempre más rápido que el software, por lo tanto, uno debe hacer un conjunto de instrucciones potente, que proporciona a los programadores las instrucciones de montaje que tiene que ver mucho con programas de corto plazo.  En conjunto los chips CISC son relativamente lentos (en comparación con los chips RISC) ​por instrucción, pero usan menos instrucciones que los RISC
  • 37. RISC  Computadoras con un conjunto de instrucciones reducido. Los Chips RICS desarrollados a mediados de 1980 como una reacción a los Chips CISC.  La filosofía detrás de esto es que casi nadie utiliza complejas instrucciones en el lenguaje ensamblador como el usado por CISC y las personas utilizan compiladores que no utilizan instrucciones complejas. Apple, por ejemplo utiliza chips RICS
  • 38. RISC  Por lo tanto, las instrucciones rápidas y simples serian mejor que las instrucciones CISC grandes, complejas y lentas. Sin embargo, son necesarias más instrucciones para realizar una tarea.  Otra ventaja de RISC es que - en teoría – a causa de las instrucciones más sencillas, los chips RISC requieren menos transistores, los que los hace más fáciles de diseñar y más baratos para producir.
  • 39. DLX El DLX es un microprocesador de tipo RISC diseñado por John L. Hennessy y David A. Patterson presenta una ejecucion en cinco etapas, similares a las del microprocesador MIPS, también diseñado por John L. Hennessy en la Universidad de Stanford, buscando la filosofía de la segmentación.
  • 40.  Estas 5 etapas son:  IF: búsqueda  ID: decodificación  EX: ejecucion de unidad aritmético lógico  MEM: memoria  WB: escritura
  • 41. Etapa IF  Se carga la instrucción en curso en el IR.  Se prepara el contador de programa para apuntar a la siguiente instrucción. IR ← Mem[PC] NPC ← PC + 4
  • 42. Etapa ID  Se decodifica la instrucción y se cargan los diferentes campos en los registros especiales A, B, Imm. A ← Regs[IR6…10] B ← Regs[IR11…15] Imm ← ((IR16 )16## IR16…31)
  • 43. Etapa Ex  Acceso a memoria (cálculo de la dirección efectiva) ALUOutput ← A + Imm  Reg-Reg ALU (operación especificada por func) ALUOutput ← A func B  Reg-Imm ALU (operación especificada por op) ALUOutput ← A op Imm  Salto (cálculo del PC destino y de la condición) ALUOutput ← NPC + Imm Cond ← (A op 0)
  • 44. Etapa MEM  Acceso a memoria (lectura-Load o escritura-Store en memoria) LMD ← Mem[ALUOutput] Mem[ALUOutput] ← B  Salto (carga de la dirección efectiva en el PC) if (cond) PC ← ALUOutput else PC ← NPC
  • 45. Etapa WB  Reg-Reg ALU: Regs[IR16…20] ← ALUOutput  • Reg-Imm ALU: Regs[IR11…15] ← ALUOutput  Instrucción de carga (Load): Regs[IR11…15] ← LMD
  • 46.  Podemos observar en el siguiente grafico la ejecucion simultánea de cinco instrucciones distintas etapas en un procesador DLX
  • 47. De esta manera, mientras el procesador escribe una instrucción, ejecuta simultáneamente las siguiente, busca los operandos de una tercera, decodifica una cuarta y busca en memoria una quinta instrucción, lográndose en un caso ideal una aceleración de cinco para el rendimiento del chip.
  • 48.
  • 49. En la ejecución monociclo:  El período del reloj lo establece la instrucción que más demora en ejecutarse.  A la vez este período es la suma de los tiempos asociados a cada etapa.  En el diagrama los tiempos de acceso a memoria de instrucciones y de datos se asumen iguales y levemente mayores que la operación de la unidad aritmético lógica; la lectura y escritura de registros, se asumen iguales y menores que el tiempo de propagación en la alu.
  • 50. En la ejecución multiciclo:  El período del reloj lo establece la etapa que más demora en realizarse(acceso a memoria).  En el diagrama se aprecia que la instrucción load word demora más en ejecutarse en la máquina multiciclo.  Sin embargo la instrucción store word demora menos y también es más rápida la ejecución de la secuencia lw(load word), sw(stored word), en el procesador multiciclo.
  • 51. En la ejecución segmentada (pipeline):  Asumiendo que cada instrucción ocupa las cinco etapas, la realización individual de una de ellas demora lo mismo que la más lenta en la ejecución multiciclo.  Se aprecia que es más rápida la ejecución de la secuencia lw, sw, en el procesador segmentado que en el multiciclo.
  • 52. Ejemplo:  Suponemos que se ejecutan 100 instrucciones:  Procesador monociclo 45 ns/ciclo x 1 CPI x 100 inst = 4500 ns  Procesador Multiciclo 10 ns/ciclo x 4.6 CPI (debido a la mezcla) x 100 inst = 4600 ns  Segmentada ideal 10 ns/ciclo x (1 CPI x 100 inst + 4 ciclos llenado) = 1040 ns
  • 53.
  • 54. Ventaja  La gran ventaja de la aplicación de la segmentación en el diseño de los microprocesadores es que el aumento del rendimiento se consigue con solo reorganizar las unidades funcionales existentes, por lo que no supone un incremento de coste para la Unidad de Proceso  El diseño de la Unidad de Control sí se complica un poco a medida que aumenta el número de etapas y el grado de concurrencia en la ejecución de las instrucciones pero es despreciable si lo comparamos con el espectacular incremento del rendimiento.
  • 55. Puntos importantes de Procesamiento segmentado • Se desea ejecutar varias instrucciones, al mismo tiempo. • Cinco etapas, pueden ejecutarse simultáneamente cinco instrucciones. • Es preciso que cada instrucción pase por las cinco etapas, y que cada etapa tenga su propio control. • Se comienza la próxima instrucción mientras se trabaja aun en otra. • Se ejecutan varias instrucciones, que usan recursos diferentes en forma simultanea
  • 57. INTRODUCCION  La Supersegmentacion de los procesadores es una técnica de implementación que busca el mencionado paralelismo a nivel de instrucción.  Pero antes de explicarlo, conviene explicar otras técnicas que también sirven para lograr el paralelismo y que suelen combinarse todas juntas como son la segmentación, Superescalaridad y la combinación de ambas
  • 58. SUPERESCALARIDAD  Consiste en la replicación de la circuitería de las unidades funcionales de un microprocesador, creando por lo tanto varios cauces (pipelines) de manera que se puedan ejecutar varias instrucciones a la vez
  • 59. Procesador superescalar  Un procesador superescalar de factor N es aquel que replica N veces la circuitería de alguna de sus unidades funcionales con el fin de poder ejecutar N instrucciones en sus respectivas etapas de computación.
  • 60.  Sin embargo, el coste de incrementar el rendimiento mediante la Superescalaridad es superior al de la segmentación.  En el siguiente grafico se muestra la ejecucion en paralelo de 5 instrucciones cada una en su cauce o pipeline, lo que representa una Superescalaridad de factor 5.
  • 61.
  • 62. COMBINACION DE SEGMENTACIO Y SUPERESCALARIDAD  Como se puede observarse en la figura, las filosofías de segmentación y Superescalaridad son perfectamente compatibles.
  • 63.
  • 64.  Sin embargo existen ciertos conflictos a la hora de poner en práctica simultáneamente ambas ideas, y es que cada técnica exige unos requisitos diferentes:
  • 65.  La segmentación  La Superescalaridad requiere una elevada por el contrario frecuencia de forma necesita un ingente que solo un periodo reloj número de muy corto permitirá transistores para descomponer cada poder ser implementada. instrucción en un número elevado de etapas.
  • 66. SUPERSEGMENTACION  La palabra Supersegmentacion nos lleva a la tentación de aplicar la ecuación superescalar + segmentado = supersegmentado, cuando en realidad la ecuación correcta es segmento + segmento = supersegmentado.
  • 67. Microprocesadores supersegmentados  Todos los microprocesadores actuales se encuentran supersegmentados, habiendo aumentado el número de etapas con el paso de las generaciones. Así, lo normal en la séptima generación es encontrarnos con cauces de ejecución entera de 20 etapas de segmentación en el caso del Pentium IV (2003) de Intel o 31 etapas en los procesadores Prescott (2004) también de Intel.
  • 68. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X X B X X C X D X X
  • 69. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X B X C X D X X
  • 70. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X X X B X X X C X X D X X X Vector de colisiones: (1 . . .
  • 71. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X X X B X X X C X X D X X X Vector de colisiones: (1 0 . . .
  • 72. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X X X B X X X C X X D X X Vector de colisiones: (1 0 0 . . .
  • 73. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X X X B X X C X D X X Vector de colisiones: (1 0 0 1 . . .
  • 74. Control de colisiones en procesadores segmentados monofunción 1 2 3 4 5 6 A X X B X X C X D X X Vector de colisiones: (1 0 0 1 1)
  • 75. Algoritmo de Patel-Davidson 1 2 3 4 5 6 A X X B X X C X D X X Según el diagrama anterior: MA ciclo avaro = 4, MAL = 3 Número máximo de marcas en la una fila de la tabla = 2 Cota mínima del MAL = 2
  • 76. Algoritmo de Patel-Davidson 1 2 3 4 5 6 7 8 A X P P X P P B X P R P X P C X P P D X X P P P Nuevo vector de colisiones: (10001)
  • 77. Resultado del algoritmo de Patel-Davidson Nuevo MAL = 2
  • 78. Control de colisiones en procesadores segmentados multifunción 1 2 3 4 5 6 1 2 3 4 5 6 A X X A X X B X X B X X C X C X D X X D X X Tabla de reservas de la función x Tabla de reservas de la función y
  • 79. Matrices de colisiones v xx v xy Mx My v yx v yy Que en nuestro caso serán: v xx 10011 v xy 11110 Mx My v yx 10011 v yy 01110
  • 80. Conflictos de control Ejecución de instrucciones sin bifurcaciones Detención producida por un conflicto de control
  • 81. Conflictos de control: bifurcación retardada Detención producida por una bifurcación (sin medidas correctoras) Efecto de la reordenación de instrucciones efectuada por el compilador en una máquina con bifurcación retardada
  • 85. Comparación de las características de los procesadores escalares, superescalares y supersegmentados Superescalar Tipo de Escalar con n Superescalar Supersegmentada supersegmentada máquina segmentos de grado N de grado M de grado (N,M) Ciclo máquina básico 1 1 1/M 1/M Instrucciones por emisión 1 N 1 N Ciclos entre emisiones 1 1 1/M 1/M consecutivas ILP sin riesgos 1 N M MN Ganancia de velocidad 1 N M MN
  • 87. Esquema temporal del funcionamiento de los procesadores VLIW