• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
segmentacion estructura computadores
 

segmentacion estructura computadores

on

  • 763 views

 

Statistics

Views

Total Views
763
Views on SlideShare
763
Embed Views
0

Actions

Likes
0
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    segmentacion estructura computadores segmentacion estructura computadores Presentation Transcript

    • Estructuras de ComputadoresTema 6: Mejora del rendimiento con la segmentación LECTURAS OBLIGATORIAS: D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”:Capítulo 6. BIBLIOGRAFÍA DE CONSULTA DEL TEMA: 1 D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”: Capítulo 6.
    • Tema 6: Procesador Segmentado Índice: •  6. Segmentación • 6.1. Introducción • 6.2. Camino de datos segmentado • 6.3. Control en la segmentación • 6.4. Riesgos de datos y anticipación • 6.5. Riesgos de datos y bloqueos • 6.6 Riesgos de saltos 2CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado INTRODUCCIÓN A LA SEGMENTACIÓN Técnica que permite solapar la ejecución de múltiples instrucciones. Se basa en la segmentación cada instrucción a partir de sus 5 pasos clásicos: 1.  Búsqueda de la instrucción en memoria. 2.  Lectura de registros mientras se decodifica la instrucción 3.  Ejecución de la operación o cálculo de una dirección 4.  Acceso a un operando en la memoria de datos 5.  Escritura del resultado en un registro Clase instrucción Búsqueda Lectura Operación Acceso al Escritura TOTAL instrucción registros ALU dato registros Load word 2 ns 1 ns 2 ns 2 ns 1 ns 8 ns Store word 2 ns 1 ns 2 ns 2 ns 7 ns Formato R 2 ns 1 ns 2 ns 1 ns 6 ns BEQ 2 ns 1 ns 2 ns 5 ns JUMP 2 ns 2 ns 3CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Ejemplo de la mejora del rendimiento: 2 4 6 8 10 11 12 14 16 18 Acceso lw $1, 100($0) Búsqueda Reg ALU Reg dato 8 ns Acceso Búsqueda Reg ALU Reg lw $2, 200($0) dato 8 ns lw $3, 300($0) Búsqueda Reg ALU 8 ns 2 4 6 8 10 11 12 14 16 18 Acceso lw $1, 100($0) Búsqueda Reg ALU Reg dato 2 ns Acceso Búsqueda Reg ALU Reg lw $2, 200($0) dato 2 ns Acceso Búsqueda Reg ALU Reg lw $3, 300($0) dato 2 ns 2 ns 2 ns 2 ns 2 ns 4CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Mejora del rendimiento: Tiempo instrucciones no segmentadas Tiempo instrucciones segmentadas Número de etapas de segmentación En condiciones ideales, el incremento de la velocidad de la segmentación iguala al número de etapas: 5 etapas à 5 veces más rápido Pero las etapas pueden estar mal equilibradas, además de la carga adicional que puede conllevar la segmentación. El tiempo por instrucción en una máquina segmentada excederá el mínimo y incremento de velocidad será menor que el número de etapas de la segmentación. 5CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador SegmentadoDiseño del repertorio de instrucciones para la segmentación: 1.- Todas las instrucciones tienen la misma longitud 2.- MIPS tiene solo unos pocos formatos de instrucciones y las posiciones de los campos son muy regulares en todos los formatos. 3.- En MIPS, los operandos de memoria solo aparecen en loads y stores. 4.- Los operandos deben estar alineados en memoria Riesgos del pipeline (segmentación): 1.- Estructural: la circuitería no puede soportar la combinación de instrucciones que se quiere ejecutar en el mismo ciclo. 2.- De Control: surgen de la necesidad de tomar una decisión basada en los resultados de una instrucción mientras las otras se están ejecutando. 3.- De Datos: una instrucción depende del resultado de una instrucción previa que todavía está en el pipeline. 6CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Perspectiva general y resumen de la segmentación: Técnica que explota el paralelismo entre las instrucciones de un flujo secuencial. Totalmente invisible al programador. Incrementa el número de instrucciones que se están ejecutando simultáneamente y la rapidez con las que las instrucciones empiezan y acaban. No reduce el tiempo que se tarda en completar una instrucción individual: 5 etapas à 5 ciclos. La segmentación mejora la productividad. Los repertorios de instrucciones pueden simplificar y dificultar la tarea de los diseñadores de procesadores segmentados (riesgos estructurales, de control y de datos). Predicción de saltos y bloqueos son las herramientas para hacer un computador más rápido de forma correcta. 7CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado SEGMENTACIÓN DEL CAMINO DE DATOS: ID: Decodificación/ EX: Ejecución/ MEM: Acceso lectura registros cálculo direcciones a memoria WB: escritura retardada 0 1 <<2 Sumador Sumador 4 Leer Registro 1 Dato Leer Leído 1 Zero Registro 2 Dirección ALU PC Escribir Registro Resultado Dirección Dato 0 Dato Instrucción Banco Leído 2 leído 0 Registros 1 Escribir 1 Memoria Dato Memoria de datos instrucciones Escribir dato Extensión de IF: Búsqueda signo de instrucciones 8CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado SEGMENTACIÓN DEL CAMINO DE DATOS: Tiempo (en ciclos de reloj) Orden de ejecución CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 del programa(en instrucciones) A lw $1, 100($0) IM Reg L DM Reg U A lw $2, 200($0) IM Reg L DM Reg U A lw $3, 300($0) IM Reg L DM Reg U 9CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0 PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 10CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado LW búsqueda instrucción 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 11CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado LW decodificación de la instrucción 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 12CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado LW ejecución 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 13CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado LW memoria 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 14CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado LW escritura 0 retardada 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 15CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo 16CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Tiempo (en ciclos de reloj) Orden de ejecución CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 del programa(en instrucciones) A lw $10, 20($0) IM Reg L DM Reg U A sub $11, $2, $3 IM Reg L DM Reg U Orden de Tiempo (en ciclos de reloj) ejecución del programa CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7(en instrucciones) Búsqueda de Decodificación Acceso Escritura lw $10, 20($0) instrucciones instrucción Ejecución a los datos retardada Búsqueda de Decodificación Acceso Escritura Ejecución sub $11, $2, $3 instrucciones instrucción a los datos retardada 17CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado lw $10, 20($1) Búsqueda instrucción 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo CICLO 1 18CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado sub $11, $2, $3 lw $10, 20($1) Búsqueda instrucción Decodif. instrucc 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo CICLO 2 19CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado sub $11, $2, $3 lw $10, 20($1) Decodif. instrucción Ejecución 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo CICLO 3 20CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado sub $11, $2, $3 lw $10, 20($1) Ejecución Memoria 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo CICLO 4 21CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado lw $10, 20($1) sub $11, $2, $3 WB Memoria 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo CICLO 5 22CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado sub $11, $2, $3 WB 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador 4 <<2 Leer Registro 1 Dato Leer Leído 1 Registro 2 Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de Escribir instrucciones dato 16 32 Extensión de signo CICLO 6 23CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado FuentePC 0 1 IF/ID ID/EX EX/MEM MEM/WB Sumador Sumador EscrReg Salto 4 <<2 Leer Registro 1 MemaReg Dato EscMem Leer Leído 1 Registro 2 FuenteALU Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de 16 Ext. Ext. Escribir 32 6 dato instrucciones de de signo signo 0 1 LeerMem ALUOp EscrReg 24CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado CONTROL DE LA SEGMENTACIÓN: Señal de Control Efecto cuando no está activa Efecto cuando está activa RegDest (RegDst) El destino es rt [20-16] El destino es rd [15-11] EscrReg (RegWrite) Ninguno Registro destino se actualiza con valor a escribir Fuente ALU (ALUSrc) Segundo op. ALU segundo registro leído Segundo op. ALU ext_sig[15-0] FuentePC (PCSrc) PC=PC+4 PC=salida sumador (dirección salto) LeerMem (MemRead) Ninguno El valor de la pos. de mem. dada por dirección se coloca en la salida de lectura EscrMem (MemWrite) Ninguno El valor de la pos. de mem. dada por dirección se reemplaza por el valor de la entrada de datos MemaReg (MemtoReg) Entrada en banco de registros proviene El valor de la entrada del banco de registros proviene de la de ALU memoria Instrucción Líneas control etapa ejecución/cálculo Líneas control etapa acceso Líneas control etapa dirección memoria postescritura RegDst ALUOp1 ALUOp0 FuenteALU Salto LeerMem EscrMem EscrReg MemaReg TIPO R 1 0 0 1 0 0 0 1 0 LW 0 1 1 1 1 0 0 0 0 SW X 1 X 0 0 1 0 0 0 BEQ X 0 X 0 0 0 1 0 1 25CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado WB Control M WB EX M WB Instrucción IF/ID IF/EX EX/MEM MEM/WB 26CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado FuentePC ID/EX 0 WB EX/MEM 1 M WB MEM/WB IF/ID AluOp M WB EX EscrReg Salto FuenteALU EscMmem MemaReg LeerMem EscrReg Sumador Sumador EscrReg Salto 4 <<2 Leer Registro 1 MemaReg Dato EscMem Leer Leído 1 Registro 2 FuenteALU Zero Escribir ALU Dirección Registro Resultado Dato Dirección Dato 0 leído 0PC Banco Leído 2 Registros 1 1 Instrucción Escribir Memoria Dato datos Memoria de 16 Ext. Escribir 32 6 dato instrucciones de ALU signo Control 0 1 LeerMem ALUOp EscrReg 27CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RIESGOS DE DATOS Y ANTICIPACIÓN: CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9 Valor del registro $2: 10 10 10 10 10/-20 -20 -20 -20 -20 A sub $2, $1, $3 IM Reg L DM Reg U A and $12, $2, $5 IM Reg L DM Reg U A or $13, $6, $2 IM Reg L DM Reg U A add $14, $2, $2 IM Reg L DM Reg U A sw $15, 100($2) IM Reg L DM Reg U 28CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9 Valor del registro $2: 10 10 10 10 10/-20 -20 -20 -20 -20 Valor de EX/MEM: X X X -20 X X X X X Valor de MEM/WB: X X X X -20 X X X X A sub $2, $1, $3 IM Reg L DM Reg U A and $12, $2, $5 IM Reg L DM Reg U A or $13, $6, $2 IM Reg L DM Reg U A add $14, $2, $2 IM Reg L DM Reg U A L sw $15, 100($2) IM Reg U DM Reg 29CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Registros ALU Memoria de datos M U X a) Sin anticipación ID/EX EX/MEM MEM/WB M U X ALU Registros Anticipar A M Memoria U de X M datos Anticipar B U Rs Rt X M Rt U EX/MEM RegistroRd Rd X b) con anticipación Unidad de MEM/WB RegistroRd anticipación 30CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado VALORES DE CONTROL PARA LOS MULTIPLEXORES DE LA ANTICIPACIÓN: Control Multiplexor Fuente Explicación AnticiparA=00 ID/EX El primer operando de la ALU vine del banco de registros AnticiparA=10 EX/MEM El primer operando de la ALU se anticipa del resultado de la ALU anterior AnticiparA=01 MEM/WB El primer operando de la ALU se anticipa de la memoria de datos o de un resultado de la ALU anterior AnticiparB=00 ID/EX El segundo operando de la ALU viene del banco de registros AnticiparB=10 EX/MEM El segundo operando de la ALU se anticipa del resultado de la ALU anterior AnticiparB=01 MEM/WB El segundo operando de la ALU se anticipa de la memoria de datos o de un resultado de la ALU anterior 31CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado ID/EX WB EX/MEM Control M WB MEM/WB IF/ID EX M WB M U X Registros A Memoria L de Memoria U datos M PC de U instrucciones M X U X IF/ID RegistroRs Rs IF/ID RegistroRt Rt M IF/ID RegistroRt Rt U IF/ID RegistroRd Rd X Unidad de anticipación 32CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado EJEMPLO ANTICIPACIÓN: Veamos ahora como funciona la anticipación en el siguiente ejemplo: sub $2, $1, $3 and $4, $2, $5 or $4, $4, $2 add $9, $4, $2 Las dependencias de datos se muestran en negro. 33CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado or $4, $4, $2 and $4, $2, $5 sub $2, $1, $3 ID/EX 10 10 WB EX/MEM Control M WB MEM/WB IF/ID EX M WB $2 $1 2 M U 5 X Registros A Memoria L de Memoria U M PC de $5 $3 datos U instrucciones M X U X 2 1 5 3 M U 4 2 X Unidad de anticipación CICLO 3 34CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado and $9, $4, $2 or $4, $4, $2 and $4, $2, $5 sub $2, $1, $3 ID/EX 10 10 WB EX/MEM Control M WB MEM/WB IF/ID EX M WB $4 $2 4 M U 2 X Registros A Memoria L de Memoria U M PC de $2 $5 datos U instrucciones M X U X 4 2 2 5 M 2 U 4 4 X Unidad de anticipación CICLO 4 35CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado add $9, $4, $2 or $4, $4, $2 and $4, $2, $5 sub $2… ID/EX 10 10 WB EX/MEM 10 Control M WB MEM/WB IF/ID EX M WB $4 $4 4 M U 2 X Registros A Memoria L de Memoria U M PC de $2 $2 datos U instrucciones M X U X 4 4 2 2 M 4 2 U 9 4 X Unidad de anticipación CICLO 5 36CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado and $9, $4, $2 or $4, $4, $2 and $4… ID/EX 10 WB EX/MEM 10 Control M WB MEM/WB EX M WB 1 IF/ID $4 M U X 4 Registros A Memoria L de Memoria U M PC de $2 datos U instrucciones M X U X 4 2 4 M 4 U 9 X Unidad de anticipación CICLO 6 37CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RIESGOS DE DATOS Y BLOQUEOS: Unidad de detección de riesgos: Hay ocasiones en las que la unidad de anticipación no puede anticipar el dato. Ej: una instrucción después de un load intenta leer el registro que escribe el load. Dicha unidad operará durante la etapa ID, para que se pueda insertar un bloqueo entre el load y la instrucción que lo usa. Control para la detección de riesgos cuando se analiza un load: Si (ID/EX.LeerMem y ((ID/EX.Registro.Rt=IF/ID.RegistroRs) o (ID/EX.Registro.Rt=IF/ID.RegistroRt))) BLOQUEAR EL PIPELINE 38CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9 A lw $2, 20($1) IM Reg L DM Reg U A and $4, $2, $5 IM Reg L DM Reg U A or $8, $2, $6 IM Reg L DM Reg U A add $9, $4, $2 IM Reg L DM Reg U A slt $1, $6, $7 IM Reg L DM Reg U 39CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9 A lw $2, 20($1) IM Reg L DM Reg U A and $4, $2, $5 IM Reg Reg L DM Reg U A or $8, $2, $6 IM IM Reg L DM Reg U A add $9, $4, $2 BURBUJA IM Reg L DM Reg U A slt $1, $6, $7 IM Reg L DM U 40CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Unidad de detección ID/EX LeerMem ID/EX RegistroRt Escr IF/ID ID/EX WB EX/MEM Control M M WB U MEM/WB X IF/ID 0 EX M WB EscrPC M U X Registros A Memoria L de Memoria U datos M PC de U instrucciones M X U X IF/ID RegistroRs Rs IF/ID RegistroRt Rt M IF/ID RegistroRt Rt U IF/ID RegistroRd Rd X Unidad de anticipación 41CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado and $4, $2, $5 lw $2, 20($1) 1 Unidad de detección ID/EX LeerMem ID/EX RegistroRt X Escr IF/ID ID/EX 11 WB EX/MEM Control M M WB U MEM/WB X IF/ID 0 EX M WB EscrPC $1 1 M U X X Registros A Memoria L de Memoria U datos M PC de $X U instrucciones M X U X 1 X M 2 U X CICLO 2 Unidad de anticipación 42CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado or $4, $4, $2 and $4, $2, $5 lw $2, 20($1) 2 Unidad de detección ID/EX LeerMem ID/EX RegistroRt 5 Escr IF/ID ID/EX 00 11 WB EX/MEM Control M M WB U MEM/WB X IF/ID 0 EX M WB EscrPC $2 $1 2 M U 5 X Registros A Memoria L de Memoria U datos M PC de $5 $x U instrucciones M X U X 2 1 5 x M 2 U X 4 CICLO 3 Unidad de anticipación 43CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado or $4, $4, $2 and $4, $2, $5 BURBUJA lw $2, 20($1) 2 Unidad de detección ID/EX LeerMem ID/EX RegistroRt 5 Escr IF/ID ID/EX 10 00 WB EX/MEM 11 Control M M WB U MEM/WB X IF/ID 0 EX M WB EscrPC $2 $2 2 M U 5 X Registros A Memoria L de Memoria U datos M PC de $5 $5 U instrucciones M X U X 2 2 5 5 M 2 U X 4 4 CICLO 4 Unidad de anticipación 44CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado add $9, $4, $2 or $4, $4, $2 and $4, $2, $5 BURBUJA lw $2… 4 Unidad de detección ID/EX LeerMem ID/EX RegistroRt 2 Escr IF/ID ID/EX 10 10 WB EX/MEM 0 Control M M WB U MEM/WB X 11 IF/ID 0 EX M WB EscrPC $2 $2 4 M U 2 X 2 Registros A Memoria L de Memoria U datos M PC de $5 $5 U instrucciones M X U X 4 2 2 5 M U X 4 4 CICLO 5 Unidad de anticipación 45CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado add $9, $4, $2 or $4, $4, $2 and $4, $2, $5 BURBUJA 4 Unidad de detección ID/EX LeerMem ID/EX RegistroRt 2 Escr IF/ID ID/EX 10 10 WB EX/MEM 10 Control M M WB U MEM/WB X 0 IF/ID 0 EX M WB EscrPC $4 $4 4 M U 2 X Registros A Memoria L de Memoria U datos M PC de $2 $2 U instrucciones M X U X 4 4 2 2 M 4 U X 9 4 CICLO 6 Unidad de anticipación 46CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado add $9, $4, $2 or $4, $4, $2 and $4… Unidad de detección ID/EX LeerMem ID/EX RegistroRt Escr IF/ID ID/EX 10 10 WB EX/MEM 10 Control M M WB U MEM/WB X 1 IF/ID 0 EX M WB EscrPC $4 M U X 4 Registros A Memoria L de Memoria U datos M PC de $2 U instrucciones M X U X 4 2 M 4 U X 9 CICLO 7 Unidad de anticipación 47CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RIESGOS DE SALTOS: Hasta ahora, riesgos con operaciones aritméticas y de transferencia de datos. También existen riesgos en la segmentación que involucran instrucciones de sato. En nuestro camino de datos, se debe buscar una instrucción por ciclo para mantener el pipeline, aunque si se considera una instrucción de salto, no se sabrá si es efectivo o no hasta la etapa de MEM. Ese retardo a la hora de determinar la instrucción correcta que se tiene que buscar, se denomina riesgo de control o riesgo de saltos. 48CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9 A 40 beq $1, $3, 7 IM Reg L DM Reg U A 44 and $12, $2, $5 IM Reg L DM Reg U A 48 or $13, $6, $2 IM Reg L DM Reg U A 52 add $14, $2, $2 IM Reg L DM Reg U A 72 lw $4, 50($7) IM Reg L DM Reg U 49CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado EscrPC Unidad de detección ID/EX LeerMem ID/EX RegistroRt Escr IF/ID ID/EX WB EX/MEM M U Control M M WB X U MEM/WB X IF/ID 0 EX M WB + 4 + M U X Registros = A <<2 Memoria L de Memoria U datos M PC de U instrucciones M X U ext X sign M IF.Flush U X Unidad de anticipación 50CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado EJEMPLO SALTO SEGMENTADO: Que ocurre cuando se toma el salto de la siguiente secuencia, suponiendo pipeline optimizado para saltos que no se toman y se mueve la ejecución del salto a la etapa ID: 36 sub $10, $4, $8 40 beq $1, $3, 7 Salto relativo al PC 44 and $12, $2, $5 40 + 4 + 7*4 = 72 48 or $13, $2, $6 52 add $14, $4, $2 56 slt $15, $6, $7 … 72 lw $4, 40($7) 51CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado and $12, $2, $5 beq $1, $3, 7 sub $10, $4, $8 10 Unidad de detección ID/EX LeerMem ID/EX RegistroRt EscrPC Escr IF/ID ID/EX WB EX/MEM 72 M U Control M M WB X U MEM/WB 48 X IF/ID 0 EX M WB 28 72 + 4 + 44 $1 48 M $472 U X Registros = A <<2 Memoria L de Memoria U datos M PC de U 44 instrucciones 7 M $8 X $3 U ext X sign M IF.Flush U X CICLO 3 Unidad de anticipación 52CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado lw $4, 50($7) BURBUJA beq $1, $3, 7 sub $10, $4, $8 Unidad de anticipación ID/EX LeerMem ID/EX RegistroRt EscrPC Escr IF/ID ID/EX WB EX/MEM M U Control M M WB X U MEM/WB 76 X IF/ID 0 EX M WB 72 + 4 + 72 76 M $176 U X Registros = A <<2 Memoria L de Memoria U datos M PC de U 72 instrucciones 7 M $3 X U ext X sign M 10 IF.Flush U X CICLO 4 Unidad de anticipación 53CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Bucles y predicción: Examinar si dicha instrucción tomó el salto en la última ocasión en la que se ejecutó (buffer de predicciones de saltos o tabla de historia de saltos mediante 1 bit). La predicción es una apuesta que se supone correcta à la búsqueda se comienza con la dirección predicha. Si la apuesta es incorrecta, se invierte el bit de predicción, se guarda y se ejecuta la secuencia normal. PROBLEMA: aunque un salto sea tomado casi siempre, probablemente se harán dos predicciones incorrectas, en vez de una, cuando no sea tomado. Veamos esto con un ejemplo: Considerar un salto de final de bucle que salta nueve veces seguidas y entonces no salta. ¿Cuál es la tasa de aciertos de la predicción para este salto suponiendo que el bit de predicción de este salto se mantiene en el buffer de predicción? La predicción fallará en la primera y en la última iteraciones del bucle. Fallar en la última es inevitable (el bit de predicción indicará tomado à 9 veces seguidas). El fallo en la primera iteración se debe a que el bit se cambia en la ejecución anterior de la última iteración, ya que el salto no fue tomado en esa iteración de salida del bucle. La tasa de aciertos de la predicción de este salto, que es tomado el 90%, es solo del 80% (2 incorrectas y 8 correctas). 54CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Tomado No tomado Predecir tomado Predecir tomado Tomado No tomado Tomado No tomado Predecir no tomado Predecir no tomado Tomado No tomado 55CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado Segmentación SUPERESCALAR MIPS: Tipo Instrucción Etapas Instrucción ALU o de salto IF ID EX MEM WB Instrucción de load o IF ID EX MEM WB store Instrucción ALU o de salto IF ID EX MEM WB Instrucción de load o IF ID EX MEM WB store Instrucción ALU o de salto IF ID EX MEM WB Instrucción de load o IF ID EX MEM WB store Instrucción ALU o de salto IF ID EX MEM WB Instrucción de load o IF ID EX MEM WB store M U X Registros A Memoria Memoria de M de L PC M datos U instrucciones U U X X + M U X Unidad de anticipación 56CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RESUMEN: Dependencia: Cualquier motivo que hace que una instrucc. dependa de otra. •  Dependencia por un dato (en registro o memoria). •  Dependencia de control (salto tomado o no). •  Dependencia estructural (conflictos con recursos). Riesgo: Situación de posible error de ejecución por la presencia de una dependencia. Todo riesgo debe resolverse: •  Complicando el HW para evitar el riesgo. •  Mediante SW (reordenación instrucc., …). •  Introduciendo los bloqueos necesarios (requiere HW adicional para detectar riesgos peligrosos). Bloqueo: Es la detención de alguna/s fase/s en la ejecución. 57CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RESUMEN: Por lo general, cuando se produce un bloqueo, Todas las instrucciones siguientes a la que lo produjo también se bloquearán. No se emite IF ninguna instrucción. Las instrucciones previas al bloqueo deben continuar para que se resuelva el bloqueo. Cada bloqueo se puede entender como una “burbuja vacía” en la cadena que se propaga de izquierda a derecha. Ciclos totales = Ciclos Ideales + Ciclos Bloqueo CPIreal = CPIideal + CPIbloqueo = 1 + CPIbloqueo CPIbloqueo = CPIbl.datos + CPIbl. estruc + CPIbl.control 58CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RESUMEN: Dependencias de datos: Registros u operandos puedan ser leídos/escritos en orden diferente al código. Una dependencia de datos ocurre cuando una primera instrucción lee o escribe un registro, y este registro es usado por una instrucción posterior (en lectura o escritura) que empieza a ejecutarse antes de que concluya la primera. Podemos resolverlos por bloqueos o por anticipación. Antes, debemos detectarlos (en RISC es sencillo, solo se lee en ID y se escribe en WB, en CISC es más complejo). 59CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RESUMEN: Read Read Tipo de dependencias de datos: After Write Write RAW (Read After Write): dependencia real. Cuando el operando destino de una instrucción va a ser utilizado como fuente para alguna/s instrucciones posteriores. Muy común. Inevitable e inherente al algoritmo. MUL tiene que leer un valor que tiene que escribir antes ADD ADD R0, R1, R2 MUL R3, R0, R4 WAR (Write After Read): o antidependencia. Una instrucción escribe su resultado en un registro destino que es el mismo que un registro fuente de una instrucción anterior. No producen riesgos. Son ficticias. MUL tiene que escribir un valor que tiene que leer antes ADD ADD R1, R0, R2 MUL R0, R3, R4 WAW (Write After Write): o dependencia de salida. Dos instrucciones usan el mismo registro de destino, y el riesgo se produce cuando la instrucción posterior quiere escribir antes que la anterior. En nuestro caso, tampoco son riesgos reales, puesto que solo se puede escribir en la fase WB. MUL tiene que escribir un valor después de lo haya escrito ADD ADD R0, R1, R2 MUL R0, R3, R4 RAR (Read After Read): No es un problema, puesto que la lectura no modifica valores. ADD R1, R0, R2 MUL R3, R0, R4 60CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado RESUMEN: Tiempo instrucciones no segmentadas Tiempo instrucciones segmentadas Número de etapas de segmentación Tiempo sin segmentar Ganancia Tiempo segmentado Para 3 instrucciones: 8x3 24 Ganancia 1’715 (2 x 3) + 8 14 Para 1003 instrucciones: 8 x 1003 8024 Ganancia 3’98 (2 x 1003) + 8 2014 61CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado CONCLUSIONES: •  La segmentación mejora el tiempo de ejecución medio por instrucción. •  Se puede ver como una reducción del tiempo de ciclo o de CPI. •  La segmentación mejora la productividad, pero no el tiempo de ejecución o latencia. •  Se comienza la ejecución de una instrucción por ciclo, con varias unidades dedicadas. •  La latencia introduce problemas debido a las dependencias entre instrucciones que pueden bloquear al procesador. •  El coste de una dependencia de datos se reduce con la anticipación. •  La frecuencia de los riesgos de control se reduce con predicción de salto. •  El incremento de la longitud del cauce no siempre incrementa el rendimiento debido a: •  Dependencias de datos. •  Riesgos de control. •  Sobrecarga de los registros de segmentación. 62CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
    • Tema 6: Procesador Segmentado 3.0 2.5 Relative performance 2.0 1.5 1.0 0.5 0.0 1 2 4 8 16 Pipeline depth 63CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores