3. SEGMENTACIÓN DEL CAUCE

Documentos relacionados
Procesadores segmentados. El DLX.

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso Introducción a la segmentación de Instrucciones.

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

1. Objetivo y evolución de los procesadores ILP.

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Pipeline o Segmentación Encausada

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso

Paralelismo en monoprocesadores. Procesadores VLIW

Arquitectura Segmentada: Conceptos básicosb

MICROPROCESADOR. Multiciclo

Arquitectura t de Computadores

Pipeline (Segmentación)

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

Autor: Longinos Recuero Bustos

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Pipelining o Segmentación de Instrucciones

UNIDAD 5: Mejora del rendimiento con la segmentación.

Arquitectura de Computadores

Introducción a la arquitectura de computadores

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Arquitectura de Computadores

Arquitectura e Ingeniería de Computadores

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline:

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

Tema 4: Diseño de un microprocesador

COMPUTADORES SEGMENTADOS (DLX)

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Procesadores superescalares. Introducción

Plataformas de soporte computacional: arquitecturas avanzadas,

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

CICLOS DEL PROCESADOR

Estructura de Computadores

Microarquitectura: DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR

Arquitectura de Computadores II Clase #16

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

UNIDAD 4: El procesador: Camino de los datos y Control.

Tema: Microprocesadores

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

Instituto Tecnológico de Morelia

Apéndice A. Manual de usuario. Guía rápida

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura

Arquitecturas RISC v.2014

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES

Arquitectura de Computadores

Planificación estática

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

El nivel ISA (II)! Conjunto de Instrucciones

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Terecer Certamen

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

PRACTICA 2 Ejercicio 2

Diseño Procesador Monociclo

Arquitecturas vectoriales, SIMD y extensiones multimedia

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

FUNCIONAMIENTO DEL ORDENADOR

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Memoria Cache. Departamento de Arquitectura de Computadores

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Tema 7: Esquema del Funcionamiento de una Computadora. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Carga de la instrucción / Decodificación y carga de registros (Figura 37) Instrucciones de salto condicional (Figura 40)

Arquitectura de Computadores. Apellidos, Nombre:

Diseño arquitectónico 1ª edición (2002)

4. Operadores Operador asignación

Tema 2. Diseño del repertorio de instrucciones

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Paralelismo en monoprocesadores. Procesadores Superescalares

Arquitectura de Computadores II Clase #3

TEMA 3: El proceso de compilación, del código fuente al código máquina

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Tema 2 Introducción a la Programación en C.

La Unidad Procesadora.

Entorno de Ejecución del Procesador Intel Pentium

Conceptos de Arquitectura de Computadoras Curso 2015

Práctica III Introducción a la descripción VHDL del procesador DLX

ARQUITECTURA DE COMPUTADORAS

Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Los objetivos de este tema son:

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713

Ejercicios. 5.2 [5] < 5.3> Este ejercicio es similar al 5.1, pero ahora considere los fallos causados por permanecer en 1 (la señal es siempre 1).

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos

Organización lógica Identificación de bloque

Resolución de los Ejercicios de la Hoja 4

Operadores y Expresiones

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Arquitectura Von Neumann

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN

Transcripción:

3. SEGMENTACIÓN DEL CAUCE 1

SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 2. Etapas del MIPS64 3. Riesgos 4. Operaciones muticiclo 2

SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 3

Conceptos básicos Ciclo de Instrucción Extracción de la instrucción Decodificación / Lectura Registros Ejecución Acceso a Memoria Acceso a Memoria (PC) Actualización PC (+4) Lectura de operandos (registros) Comprobación de saltos Cálculo dirección efectiva Operación aritmética Extensión de signo Lectura o escritura Escritura de Registros Escritura del resultado (registro) 4

Conceptos básicos Ciclo de Instrucción Alternativas de implementación: UN ÚNICO CICLO Todas las instrucciones utilizan para su ejecución un único ciclo de reloj CPI (Clocks Per Instruction) = 1 La duración del ciclo de reloj viene determinada por la instrucción más compleja de ejecutar Aunque es un alternativa correcta es ineficiente Ciclo Ciclo Ciclo Instrucción 1 Instrucción 2 Instrucción 3 5

Conceptos básicos Ciclo de Instrucción Alternativas de implementación: VARIOS CICLOS No todas las instrucciones pasan por todas las fases El ciclo de reloj se ajusta a la duración de la fase más larga CPI (Clocks Per Instruction) depende de las instrucciones y de su frecuencia de aparición en los programas Cada tipo de instrucción tiene asociada una duración (nº ciclos) Por ejemplo (suponiendo que cada fase dura 1 ciclo): La instrucción branch requiere 2 ciclos (F y D) load 5 ciclos (F, D, E, M, y W) Store 4 ciclos (F, D, E,y M) Ciclo Instrucción 1 Instrucción 2 Instrucción 3 6

Conceptos básicos Ciclo de Instrucción Determinar el CPI de una arquitectura Instrucción Nº Ciclos Frecuencia load 5 20% store 4 10% branch 2 25% aritméticas 4 45% CPI = 5*0,2 + 4*0,1 + 2*0,25 + 4*0,45 = 3,7 7

Conceptos básicos Cómo podemos aumentar las prestaciones de los procesadores? Reduciendo el ciclo de reloj Reduciendo el CPI En arquitecturas con más de un ciclo de reloj por instrucción El CPI ya es igual a 1 en arquitecturas de un único ciclo O reduciendo ambos Alternativas? Circuitos más rápidos, pero precio? limites físicos? Explotar la concurrencia a nivel del procesador: Arquitecturas Paralelas Explotar el paralelismo a nivel de las instrucciones: SEGMENTACIÓN 8

Conceptos básicos SEGMENTACIÓN Técnica que permite solapar en el tiempo la ejecución de varias instrucciones La idea está tomada del concepto cadena de montaje La ejecución de la instrucción se divide en etapas de igual duración (ciclo de reloj) La duración del ciclo de reloj lo fija la etapa más lenta Cada etapa dispone de recursos (hardware) para realizar su cometido No visible al programador Todas las instrucciones pasan por todas las etapas ciclo Instrucción 1 Instrucción 2 Instrucción 3 Instrucción 4 Tiempo 9

Conceptos básicos SEGMENTACIÓN Mejoras obtenidas Productividad: nº de instrucciones finalizadas por unidad de tiempo T instrucción: Duración de la ejecución de la instrucción Ciclo Reloj: Lo fijan la duración de las etapas, generalmente toma el valor 1 10

Conceptos básicos Rendimiento SpeedUp = Tiempo Medio SIN segmentación = Nº Etapas Tiempo Medio CON segmentación En condiciones ideales ü CPI = 1 ü En cada ciclo de reloj finaliza una instrucción (cadena de montaje) ü En ejecución tantas instrucciones como nº de etapas Rendimiento: Ejemplo Procesador NO SEGMENTADO Ciclo Reloj = 1 ns. Inst. aritm. 4 ciclos Inst salto y mem. 5 ciclos Programa formado por: 40% inst. aritm. 20 % inst. Salto 40 % inst. mem. Procesador SEGMENTADO 5 etapas Añadir 0,2 ns. por etapa Tiempo Medio Ejecución NO SEGMENTADO = (0,4+0,2)*5 + 0,4*4)= 4,6 ns Tiempo Medio Ejecución SEGMENTADO = 1 ns + 0,2 ns (retardo por etapa) = 1,2 ns SpeedUp = 4,6 / 1.2 = 3,83 veces 11

SEGMENTACIÓN DEL CAUCE 2. Etapas del MIPS64 12

Etapas del MIPS64 q Cauce de 5 etapas (F, D, E, M y W) q Únicamente para datos enteros q 1 ciclo de reloj por etapa q Saltos no optimizados Extracción / Fetch (F) IR MEM [PC] NPC PC + 4 # El tamaño de la instrucción es 4 octetos Decodificación (D) A Registros [rs] B Registros [rt] # Revisar el formato de las instr. Inm extensión_signo (campo Inm 16 bits) 13

Etapas del MIPS64 Ejecución (E) Referencia a memoria (tipo I) ALUoutput A + Inm Instrucción aritmética tipo R ALUoutput A op B Instrucción aritmética tipo I ALUoutput A op Inm Salto (tipo J) ALUoutput NPC + Inm * 4 Cond ( A = 0) # boolean Write-Back(W) Instrucción aritmética tipo R Registros[rd] ALUoutput Instrucción aritmética tipo I Registros[rt] ALUoutput Acceso a memoria (load) Registros[rt] LMD Memoria (M) Acceso a memoria LMD MEM [ALUoutput] # load MEM [ALUoutput] B # store Salto If (Cond) then PC ALUoutput 14

Etapas del MIPS64 Extracción (F) Decodificación (D) Ejecución (E) Memoria (M) Write (W) 4 Add NPC PC MUX Memoria de Instrucciones Zero? Registros Cond IR 16 EXT Signo 32 A B Inm MUX MUX ALU ALU output Memoria de Datos LMD MUX 15

Etapas del MIPS64 Características de la implementación En condiciones ideales CPI = 1 La duración de las instrucciones es 5 ciclos Dispone de 2 memorias (instrucciones y datos) Cada etapa tiene dos subciclos Lectura registros en el 2º de la etapa D Escritura de registros en el 1º de la etapa W En las instrucciones de salto la actualización de PC se hace en M Necesita mejorarse este esquema Cada etapa tiene una serie de registros para comunicarse información (F/D, D/E, E/M y M/W) Faltan las señales del control del cauce 16

SEGMENTACIÓN DEL CAUCE 3. Riesgos 17

Riesgos Por qué el CPI es mayor que 1? Riesgos (detienen el cauce) Estructurales De datos De control 18

Riesgos Estructurales Casos Típicos Falta de recursos en el procesador: accesos a una única memoria o ALU Unidades funcionales no segmentadas Las instrucciones se detienen más de 1 ciclo en ellas Instrucción 1 Instrucción 2 Acceso simultáneo a memoria Instrucción 3 Instrucción 4 Acceso simultáneo a la ALU 19

Riesgos Estructurales Casos Típicos Falta de recursos en el procesador: acceso al banco de registros de una sola puerta Instrucción 1 F D1 D2 E M W1 W2 Instrucción 2 Instrucción 3 Instrucción 4 F D1 D2 E M W1 W2 F D1 D2 E M W1 W2 F D1 D2 E M W1 W2 Escritura 1º subciclo Lectura 2º subciclo 20

Riesgos Estructurales Casos Típicos Falta de recursos en el procesador: Acceso a memoria: ejecución instrucciones multiciclo Dos unidades funcionales Multiplicación: 3 ciclos Suma: 2 ciclos mul.d F3,F2,F1 F D E* E* E* M W add.d F3,F4,F5 F D E+ E+ M W add.d F3,F4,F5 F D E+ E+ E+ M W La instrucción de mayor latencia pasa primero a la etapa de memoria (M) 21

Riesgos de Datos De dos tipos Introducidos por la lógica del programa Debidos al funcionamiento del procesador Read After Write (RAW) Escritura de R1 daddi R1,R0,10 daddi R2,R1,20 daddi R3,R1,30 Lectura de R1 Se lee un valor de R1 incorrecto Read After Read (RAR) daddi R1,R0,10 daddi R2,R0,20 daddi R3,R0,30 No es un riesgo 22

Riesgos de Datos De dos tipos Introducidos por la lógica del programa Debidos al funcionamiento del procesador Write After Read (WAR) daddi R2,R1,10 dsub R1,R3,R5 and R3,R4,R6 Orden CORRECTO: Lec. R1, Esc. R2, Lec. R3, Lec. R5, Esc. R1 Ejecución dsub R1,R3,R5 daddi R2,R1,10 and R3,R4,R6 Orden INCORRECTO: Lec. R3, Lec. R5, Esc. R1, Lec. R1, Esc. R2 Se da con ejecución fuera de orden (planificación dinámica) 23

Riesgos de Datos De dos tipos Introducidos por la lógica del programa Debidos al funcionamiento del procesador Write After Write(WAW) Incorrecto mul.d F3,F2,F1 F D E* E* E* E* M W add.d F3,F4,F5 F D E+ E+ M W Dos unidades funcionales Multiplicación: 4 ciclos Suma: 2 ciclos Se da con ejecución fuera de orden (planificación dinámica) y en instrucciones multiciclo 24

Riesgos de datos Soluciones Riesgos RAW Software Hardware Reordenación de código Inserción de NOP s Detección y parada del cauce Detección, parada del cauce y anticipación MIPS64 MIPS64 25

Riesgos de datos Soluciones Riesgos RAW SOFTWARE HARDWARE La implementa el compilador, sin intervención del procesador Retrasar la etapa D (lectura) de la instrucción con el riesgo Reordenación Opción 1 and R6,R8,R9 daddi R1,R0,10 daddi R2,R1,20 dsub R3,R4,R5 Reordenación daddi R1,R0,10 and R6,R8,R9 dsub R3,R4,R5 daddi R2,R1,20 No siempre es posible una reordenación de código Nuevo R1 26

Riesgos de datos Soluciones Riesgos RAW SOFTWARE HARDWARE Inserción de NOPs Opción 2 daddi R1,R0,10 nop nop daddi R2,R1,20 Nuevo R1 Con instrucciones multiciclo es necesario insertar más NOP Problemas: Tamaño código Ineficiente 27

Riesgos de datos Soluciones Riesgos RAW SOFTWARE HARDWARE La implementa el procesador (más complicado) Para la instrucción (riesgo) en la etapa D (lectura) del cauce Detección y parada de cauce MIPS64 daddi R1,R0,10 daddi R2,R1,20 dsub R5,R5,R6 F D D D E M W F F El tiempo de ejecución es idéntico al de la solución con inserción de NOPs 28

Riesgos de datos Soluciones Riesgos RAW SOFTWARE HARDWARE Detección y anticipación Técnica para pasar información entre diferentes etapas MIPS64 daddi R1,R0,10 daddi R2,R1,20 dsub R5,R2,R6 nuevo R1 nuevo R2 Lectura incorrecta de registros Elimina las paradas. Pero que ocurre con load? 29

Riesgos de datos Soluciones Riesgos RAW SOFTWARE HARDWARE Detección y anticipación Anticipación con instrucciones load (lectura de memoria) MIPS64 ld R1,0(R0) nuevo R1 daddi R2,R1,20 dsub R5,R2,R6 F D D E M W nuevo R2 F Con instrucciones load no se eliminan por completo las paradas 30

Riesgos de datos Soluciones Riesgos RAW SOFTWARE HARDWARE Tipos de adelantamiento MIPS64 1 E 2 E 3 E daddi R1,R0,10 daddi R2,R1,20 E M daddi R1,R0,10 sd R1,0(R15) D daddi R1,R2,10 beq R1,R0,ETIQ 4 M 5 M 6 M M ld R1,0(R10) sd R1,10(R8) D ld R1,10(R8) beq R1,R0,ETIQ E ld R1,10(R8) daddi R2,R1,5 31

Riesgos de control El problema Salto NO TOMADO beq R1,R0,ETIQ daddi R2,R2,20 ld R8,10(R0) ETIQ: dsub R5,R5,R6 F D E o F D E Salto TOMADO Ante un salto hay que parar hasta conocer la dirección destino Provocan paradas del cauce (3 ciclos) Degradan el rendimiento entre un 10% y 30% dependiendo de la frecuencia de los saltos Se puede reducir la penalización a 1 ciclo 32

Riesgos de control Una Mejora: Hacer efectivos los saltos en D 4 Add MUX Add PC Memoria de Instrucciones IR 16 Registros EXT Signo 32 Zero? A B Inm MUX MUX ALU ALU output Memoria de Datos LMD MUX Extracción (F) Decodificación (D) Ejecución (E) Memoria (M) Write (W) 33

Riesgos de control Una Mejora: Hacer efectivos los saltos en D Salto NO TOMADO beq R1,R0,ETIQ daddi R2,R2,20 ld R8,10(R0) ETIQ: dsub R5,R5,R6 F D E o F D E Salto TOMADO Se reduce la penalización a 1 ciclo (parada) Es posible reducir todavía más la penalización? 34

Riesgos de control Una Mejora más: Predecir el sentido del salto Cada vez que aparezca un salto evitar la parada Utilizar un mecanismo de predicción de salto: estático: Tomar el salto o no estático + compilador: predicción en el código de operación (1 bit) dinámico: el procesador tiene en cuenta la historia del salto Predicción estática NO TOMAR EL SALTO MIPS64 R1 R0 ACIERTO beq R1,R0,ETIQ daddi R2,R2,20 ld R8,10(R0) ETIQ: dsub R5,R5,R6 Continua con la instrucción siguiente 35

Riesgos de control Predicción estática NO TOMAR EL SALTO beq R1,R0,ETIQ daddi R2,R2,20 ld R8,10(R0) F R1 = R0 FALLO Abortar la instrucción. Penalización de 1 ciclo ETIQ: dsub R5,R5,R6 and R10,R11,R12 En MIPS 64 no tiene sentido predecir Tomar el salto R1 = R0 ACIERTO beq R1,R0,ETIQ daddi R2,R2,20 ld R8,10(R0) ETIQ: dsub R5,R5,R6 and R10,R11,R12 La dirección del salto se conoce al final de D 36

Riesgos de control SALTO RETARDADO Implementado por: el procesador retardando el efecto del salto y el compilador insertando instrucciones que se ejecutan siempre R1 R0 ACIERTO MIPS64 beq R1,R0,ETIQ daddi r0,r0,0 daddi R2,R2,20 ETIQ: dsub R5,R5,R6 beq R1,R0,ETIQ daddi r0,r0,0 daddi R2,R2,20 ETIQ: dsub R5,R5,R6 R1 = R0 FALLO 37

Riesgos de control SALTO RETARDADO En MIPS64 el salto retardado es de 1 hueco MIPS64 Si el cálculo de la dirección efectiva se realizase en la etapa M, los huecos serían 3. Cuándo no se encuentran instrucciones para los huecos se insertan NOP s Ejemplos de reordenación de código dadd R1,R2,R3 IF R2 = 0 Hueco ENDIF IF R2 = 0 dadd R1,R2,R3 ENDIF Reordenación (compilador) dsub R4,R5,R6 dadd R1,R2,R3 IF R1 = 0 Hueco ENDIF dadd R1,R2,R3 IF R1 = 0 dsub R4,R5,R6 ENDIF dadd R1,R2,R3 IF R1 = 0 Hueco or R7,R8,R9 ENDIF sub R4,R5,R6 dadd R1,R2,R3 IF R1 = 0 sub R4,R5,R6 or R7,R8,R9 ENDIF 38

SEGMENTACIÓN DEL CAUCE 4. Operaciones multiciclo 39

Operaciones multiciclo Instrucciones en coma flotante Nuestro cauce no soporta operaciones en coma flotante Sumas, multiplicaciones y divisiones es imposible que terminen en 1 o 2 ciclos Las instrucciones en coma flotante pueden ir desde una negación (un par de ciclos) hasta una raíz cuadrada (más de un centenar) Soluciones 1. Adaptar el ciclo de reloj a la instrucción más lenta 2. Repetir la etapa EX tantas veces como sea necesario 3. Añadir nuevas unidades funcionales (segmentadas o no) Las dos primeras soluciones no son prácticas (rendimiento) 40

Operaciones multiciclo Nuevo cauce con soporte en coma flotante F E Unidad de enteros MUL D MUL M W MUL MUL MUL MUL MUL ADD ADD ADD ADD Unidad de suma FP Unidad de multiplicación FP/Integer DIV Unidad de división FP/Integer NO SEGMENTADA 41

Operaciones multiciclo E Operaciones enteras con ALU, Load, Store y Saltos ADD ADD ADD ADD Sumas, Restas y Conversiones en FP MUL MUL MUL MUL MUL MUL MUL Multiplicación de Enteros y FP DIV División de Enteros y FP 42

Operaciones multiciclo Riesgos Estructurales Acceso a la U.F. de división: div.d F1,F2,F3 div.d F4,F5,F6 F D /0 F D /0........ /1 /2 /22 /23 /1 /2 /22 /23 M W M W Solución: Parar en ID. div.d F1,F2,F3 div.d F4,F5,F6 F D /0.... M W........ /1 /2 /22 /23 F D D D D D /0 /1 /2 43

Operaciones multiciclo Riesgos Estructurales Acceso a memoria o al banco de registros: add.d F1,F2,F3 daddi R1,R2,5 ld R3,10(R0) ld R4,20(R0) F D +0 +1 +2 +3 M W 44

Operaciones multiciclo Riesgos Estructurales Soluciones: Detectar el problema al intentar entrar en MEM o WB y detener a la instrucción de menor latencia. add.d F1,F2,F3 daddi R1,R2,5 ld R3,10(R0) ld R4,20(R0) F D +0 +1 +2 +3 M W F D E E M W Detectar y detener en ID. add.d F1,F2,F3 daddi R1,R2,5 ld R3,10(R0) ld R4,20(R0) F D +0 +1 +2 +3 M W F D D E M W La solución adoptada por MIPS64 es la última 45

Operaciones multiciclo Riesgos RAW Se dan con mayor frecuencia! Sin multiciclo... dadd R1,R2,R3 nop nop sd R1,10(R4) Sin problemas Con multiciclo... add.d F1,F2,F3 nop nop s.d F1,10(R4) F D +0 +1 +2 +3 M W Hay problemas La solución adoptada por MIPS64 es parar en ID 46

Operaciones multiciclo Riesgos WAW mul.d F1,F2,F3 add.d F1,F4,F5 F D *0 *1 *2 *3 *4 F D +0 +1 +2 +3 *5 *6 M W M W Si hay una lectura del registro entre ambas instrucciones, desaparece el riesgo. mul.d F1,F2,F3 sub.d F6,F7,F1 add.d F1,F4,F5 F D *0 *1 *2 *3 *4 *5 *6 M W F D D D D D D D -0-1 -2-3 M W F F F F F F F D +0 +1 +2 +3 M W 47

Operaciones multiciclo Riesgos WAW Soluciones: La primera instrucción no escribe el resultado. mul.d F1,F2,F3 add.d F1,F4,F5 F D *0 *1 *2 *3 *4 F D +0 +1 +2 +3 *5 *6 M W M W Detención en ID hasta que la anterior entre en MEM. mul.d F1,F2,F3 add.d F1,F4,F5 F D *0 *1 *2 *3 *4 *5 *6 M W F D D D D D D D +0 +1 +2 +3 M W La solución adoptada por MIPS64 es la última 48

Operaciones multiciclo Riesgos WAR No se producen! Los registros se leen en ID mul.d F1,F2,F3 add.d F3,F4,F5 F D *0 *1 *2 *3 *4 F D +0 +1 +2 +3 *5 *6 M W M W 49

Operaciones multiciclo Riesgos de Control Se presentan los mismos casos, pero hay que tener en cuenta que, si se usa salto retardado, no tiene sentido rellenar el hueco con una instrucción multiciclo. Interrupciones Se complica su tratamiento! 50