Procesador Segmentado

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

Diseño Procesador Monociclo

Procesador Segmentado

La Unidad de Control y el Camino de Datos

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Sección de procesamiento: El camino de datos

Tema 1: PROCESADORES SEGMENTADOS

ELO311 Estructuras de Computadores Digitales. Procesador Monociclo

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Tratamiento de Excepciones en MIPS

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

Fig Riesgos por dependencias de datos.

Arquitectura de Computadores

MICROPROCESADOR. Multiciclo

Diseño del procesador MIPS R2000

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

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Arquitectura de Computadores Problemas (hoja 2). Curso

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

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

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012

Procesador MIPS - Registros

Definición de prestaciones

Tema 4: Diseño de un microprocesador

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

CICLOS DEL PROCESADOR

ARQUITECTURA VON NEUMANN

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

Ejercicios del tema 4. El procesador

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

Arquitectura de Computadores II Clase #5

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

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

ARQUITECTURA VON NEUMANN

Pipelining o Segmentación de Instrucciones

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

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

Arquitectura de Computadores. Resumen para Certamen 2 Por Franco Zuccar

Tema 5. Segmentación: conceptos básicos

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

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Introducción a la arquitectura de computadores

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

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz)

Ejercicios de Paralelismo a Nivel de Instrucción

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura Segmentada: Conceptos básicosb

Arquitectura del MIPS: Introducción

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Arquitectura de Computadores II Clase #4

Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de

Unidad 5 Unidad central de proceso

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

4.5 Microprogramación para simplificar el diseño del control

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Estructura y Tecnología de Computadores. Módulo G. Estructura del procesador. Tema 16. Diseño de la ruta de datos y la unidad de control

SEGMENTACIÓN EN LA EJECUCIÓN DE INSTRUCCIONES

Introducción a los procesadores ILP (Instruction-Level Parallel)

Memoria. Organización de memorias estáticas.

Organización procesador MIPS

Tema 4 (II) El procesador

Microcontroladores. Unidad 1

Procesadores segmentados. El DLX.

Instituto Tecnológico de Morelia

TEMA VI DISEÑO DEL PROCESADOR

MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES

Estructura de Computadores II

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

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

Plataformas de soporte computacional: arquitecturas avanzadas,

La Máquina de Acceso Aleatorio (Random Access Machine)

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

Práctica 7 - Microarquitectura del CPU

Sistemas con Microprocesadores I

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

Estructura de Computadores

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Práctica 1 - Rendimiento *

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0

Práctica 4 - Microarquitectura del CPU

Diseño de un Procesador. (Monociclo)

Arquitectura de Computadores II Clase #3

Tema 0. Introducción a los computadores

Dada la CPU con la estructura interna que se muestra en la figura,

Arquitectura e Ingeniería de Computadores

Funcionamiento de las computadoras

UNIDAD DE CONTROL MICROPROGRAMADA.

Pipeline o Segmentación Encausada

5. Procesador: camino de datos y control

Transcripción:

Procesador Segmentado 1

Se desea ejecutar varias instrucciones, al mismo tiempo. Se dividen las etapas mediante registros, cada instrucción puede estar ejecutándose en una etapa. 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. 2

Se ejecutan varias instrucciones, que usan recursos diferentes, en forma simultánea. Se comienza la próxima instrucción mientras se trabaja aún en otra. a velocidad de avance está limitada por la etapa más lenta. 3

Etapas: Búsqueda de nstrucción. ecodificación.ectura egistros. Ejecución. Operación con memoria de datos. Escritura en arreglo de registros. (B) (ec) (Eje) (em) (W) 4

Ejecución de instrucciones B ec Eje e W tiempo B ec Eje e W B ec Eje e W flujo de ejecución 5

eloj onociclo onociclo oad Store Add eloj ulticiclo y pipeline B ec Eje e W B ec Eje e B ec ulticiclo B ec Eje e W B ec Eje e W B ec Eje e W Segmentado 6

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. 7

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, sw, en el procesador multiciclo. 8

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. 9

Ejemplo: Suponer que se ejecutan 100 instrucciones: Procesador monociclo 45 ns/ciclo x 1 CP x 100 inst = 4500 ns Procesador ulticiclo 10 ns/ciclo x 4.6 CP (debido a la mezcla) x 100 inst = 4600 ns Segmentada ideal 10 ns/ciclo x (1 CP x 100 inst + 4 ciclos llenado) = 1040 ns 10

En procesador Segmentado: Si T es la duración de la etapa más lenta. Con n etapas: instrucciones demoran: T* ( + (n-1) ) 11

tiempo (ciclos de reloj) nstrucción 1 Cuando la instrucción 1 está en escritura de registros W, nstrucción 2 la 2 está en emoria de datos; nstrucción 3 la 3 está en Ejecución en Operaciones; nstrucción 4 nstrucción 5 la 4 está en decodificación y lectura de registros; la 5 está en la etapa de búsqueda de instrucción. orden de ejecución todas las etapas están ejecutando una instrucción diferente en un mismo ciclo. 12

ulticiclo versus segmentación. En un procesador multiciclo interesa que el número de etapas o microciclos sea mínimo para cada una de las instrucciones. Esto disminuye el CP promedio. En un procesador segmentado interesa disminuir las detenciones debidas a conflictos. 13

En un camino segmentado las cinco unidades funcionales independientes son: emoria de instrucciones para la etapa de búsqueda. B (fetch). Puertas A y B de lectura del arreglo de registros para la etapa de ecodificación y ectura de egistros. eg/ec. Unidad aritmético-lógica para la etapa de Ejecución. Ejec. emoria de atos para la etapa de acceso a memoria. em. Puerta de escritura del arreglo de egistros para la etapa de postescritura. Wr. 14

15 Procesador Segmentado AluCtr AluSrc ExtOp egwr emd emwr emtoeg nm16a A B PC S 1 egwr1 emd1 emwr1 emtoeg1 eg add26 inm16 rs COp funct rt rd rt inm16 2 egwr2 2 egwr2 equal Next PC em. nst. PC+4 em. at. ecodi ficador Opera ciones PCsel npc br j out br j

Análisis de las etapas requeridas por las diferentes instrucciones. oad requiere pasar por las cinco etapas lw $t1, 0($t2) tiempo lw $t4, 0($t5) lw $t3, 0($t3) Orden de ejecución 16

No hay conflictos de escritura, ya que el arreglo de registros se emplea para escritura en ciclos diferentes. Tampoco de lectura ya que las instrucciones leen registros que permanecen con sus contenidos sin cambios. Sin embargo la secuencia : lw $t1, 0($t2) lw $t4, 0($t1) requiere usar $t1, que aún no ha sido escrito. 17

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones de tipo requieren cuatro etapas. add $t1, $t2, $t3 tiempo lw $t4, 0($t5) add $t3, $t3, $t2 Orden de ejecución 18

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones de tipo requieren cuatro etapas. os instrucciones intentan escribir en la única puerta de escritura del arreglo de registros en el mismo tiempo (iesgo Estructural). 19

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones de tipo requieren cuatro etapas. Una solución es insertar una operación nop entre un lw y una de tipo. Se producen cinco etapas nulas. o que degrada la velocidad de ejecución de instrucciones. Otra solución es detener la ejecución (stall) de la ejecución de una instrucción de tipo siguiente a un lw, insertando una burbuja. 20

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones de tipo requieren cuatro etapas. add $t1, $t2, $t3 tiempo lw $t4, 0($t5) add $t3, $t3, $t2 Orden de ejecución 21

Análisis de las etapas requeridas por las diferentes instrucciones. En un procesador multiciclo las instrucciones de tipo requieren cuatro etapas. Esta solución requiere una lógica de control que resulta compleja. Se prefiere escoger la solución de insertar un ciclo de memoria nulo en las instrucciones de tipo. Esto implica que las instrucciones de tipo durarán 5 ciclos. 22

Análisis de las etapas requeridas por las diferentes instrucciones. nstrucciones de tipo durarán 5 ciclos. add $t1, $t2, $t3 tiempo lw $t4, 0($t5) add $t3, $t3, $t2 23

Análisis de las etapas requeridas por las diferentes instrucciones. nstrucción store word, sw $t1, $t2, $t3 tiempo lw $t4, $t1, $t2 sw $t3, $t3, $t2 Orden de ejecución 24

Análisis de las etapas requeridas por las diferentes instrucciones. nstrucción store word Se requieren cuatro etapas. En la ejecución en la cañería no es necesario agregar un ciclo nulo de postescritura, para la instrucción store, ya que en este caso se libera el recurso. 25

Análisis de las etapas requeridas por las diferentes instrucciones. a bifurcación requiere cuatro etapas, si se determina la igualdad empleando la condición cero generada por la AU. beq $t1, $t2, rótulo tiempo Orden de ejecución 26

Análisis de las etapas requeridas por las diferentes instrucciones. Para disminuir los riesgos de control es mejor solución detectar la igualdad en la etapa de decodificación y lectura del arreglo de registros y actualizar el valor de PC beq $t1, $t2, rótulo tiempo Orden de ejecución 27

Análisis de las etapas requeridas por las diferentes instrucciones. Salto incondicional (jump) j rótulo tiempo Orden de ejecución 28

Problemas de la segmentación. iesgos de segmentación. Tipos de riesgos Estructurales: Se intenta usar el mismo recurso de dos maneras diferentes, en el mismo tiempo. Conflicto de datos: Se intenta usar un dato antes de que sea válido. Ocurre cuando una instrucción depende de un dato que escribe una instrucción previa que también está en la cañería. Conflicto de Control: Se intenta efectuar una decisión antes de que la condición o flag sea válida. 29

Problemas de la segmentación. iesgos de segmentación. Todos los riesgos pueden resolverse esperando. a unidad de control del procesador segmentado debe detectar los riesgos, y tomar acciones para solucionar los conflictos. 30

Problemas de la segmentación. iesgos de segmentación. iesgo estructural. oad word tiempo nstrucción 2 nstrucción 3 nstrucción 4 nstrucción 5 Orden de ejecución 31

Problemas de la segmentación. iesgos de segmentación. iesgo estructural. Usar, en forma compartida, una memoria para datos e instrucciones provoca un riesgo estructural. Por ejemplo, la instrucción load, en su etapa de lectura de memoria, y el fetch de la instrucción 4, intentan leer al mismo tiempo la única memoria. 32

Problemas de la segmentación. iesgos de segmentación. iesgo estructural. oad word tiempo nstrucción 2 nstrucción 3 nstrucción 4 nstrucción 5 Orden de ejecución 33

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. a bifurcación puede realizarse o no. En caso de tomar la bifurcación ya habrán ingresado a la cañería las dos instrucciones siguientes a la bifurcación y comenzado a ejecutarse; si no se efectúa la bifurcación, ya se tendrá adelantada la ejecución de las instrucciones siguientes a la bifurcación. 34

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. beq $t1, $t2, loop tiempo add $t3, $t4, $t5 add $t3, $t6, $t3 add $t3, $t8, $t7 este fetch es seguro Orden de ejecución 35

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. Se puede solucionar este riesgo de control, deteniendo el procesamiento de las próximas instrucciones hasta que la decisión pueda efectuarse. Esto implica tres ciclos de reloj de detención (stall) por cada branch. No puede efectuarse fetch: urante la etapa de decodificación, urante la etapa de cálculo del flag de cero a la salida de la alu de la instrucción beq, y urante la escritura de PC de la instrucción beq que se efectúa en la etapa mem; Sólo en la etapa W de la instrucción beq puede efectuarse confiablemente el fetch de la instrucción siguiente. 36

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. a detención puede lograrse evitando leer la memoria de instrucciones, mediante la deshabilitación de WE y desactivando las señales de control que modifican el estado del procesador (Wreg, emwr); O bien, limpiando el registro en la etapa de decodificación del beq. Esto intercala burbujas en la cañería. o cual se ilustra en el siguiente diagrama: 37

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. beq $t1, $t2, loop tiempo burbuja burbuja burbuja este fetch es seguro Orden de ejecución 38

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. Puede delegarse la tarea de detención al compilador, que debe intercalar tres instrucciones nop (no operación) después de cada beq; el diagrama que representa esta situación es similar al visto antes, pero se está ejecutando la instrucción nop. 39

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. beq $t1, $t2, loop nop nop nop add $t3, $t4, $t5 #este fetch es seguro. add $t3, $t6, $t3 add $t3, $t8, $t7 40

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. Solución de riesgo de control anticipando la comparación. Puede mejorarse el diseño de la cañería, anticipando la comparación, para esto es preciso agregar hardware, que permita generar la condición "equal" en la etapa de decodificación y a la vez escribir el valor de PC. 41

Problemas de la segmentación. iesgos de segmentación. iesgo de Control. Solución de riesgo de control anticipando la comparación. beq $t1, $t2, loop tiempo add $t3, $t4, $t5 este fetch es seguro 42

Problemas de la segmentación. iesgos de segmentación. Soluciones para este riesgo de control: etención. a solución por hardware consiste en detener por un ciclo el fetch de la instrucción siguiente a un branch. a solución por software consiste en intercalar un nop, después de cada branch. 43

Problemas de la segmentación. iesgos de segmentación. Soluciones para este riesgo de control: Bifurcaciones retardadas. No se detiene la ejecución después de una bifurcación; es decir la instrucción siguiente a una bifurcación comienza a ejecutarse siempre. Esta solución (delayed branch) agrega un ciclo por cada branch, si el compilador no puede encontrar una instrucción que sea útil, y que pueda realizarse después del branch. 44

Problemas de la segmentación. iesgos de segmentación. Soluciones para este riesgo de control: Vaciamiento. (flush) a tercera solución es efectuar el fetch, después del branch. Si el salto no se realiza, se continúa la ejecución. Si el salto se realiza, se debe descartar la instrucción leída y volver a efectuar el fetch. 45

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en operaciones de tipo o inmediatas. add $t1, $t2, $t3 tiempo add $t4, $t1, $t2 sub $t2, $t3, $t1 or $t6, $t1, $t3 and $t2, $t1, $t1 Orden de ejecución 46

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en operaciones de tipo o inmediatas. a solución de los conflictos de datos, puede realizarse mediante la anticipación de los datos. Esto considerando que el dato que será escrito en un registro por una instrucción de tipo o de tipo inmediata, ya está disponible después de terminada la etapa de operaciones. También dicho valor está disponible al terminar el ciclo de memoria(nulo en este caso, ya que la instrucción de tipo o inmediata no emplea la memoria). 47

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en operaciones de tipo o inmediatas. add $t1, $t2, $t3 tiempo add $t4, $t1, $t2 sub $t2, $t3, $t1 or $t6, $t1, $t3 and $t2, $t1, $t1 Orden de ejecución 48

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en transferencias. lw $t1, 0($t2) tiempo add $t3, $t1, $t5 Orden de ejecución 49

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en transferencias. a solución de este riesgo de datos es: etener el ingreso de nuevas instrucciones (detención por hardware), o ntroducir nop (si se delega la detención al compilador), hasta resolver el conflicto. 50

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en transferencias. etención por hardware lw $t1, 0($t2) tiempo add $t3, $t1, $t5 proceso siguiente inst. Orden de ejecución 51

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en transferencias. Solución por software lw $t1, 0($t2) tiempo nop add $t3, $t1, $t5 Orden de ejecución 52

Problemas de la segmentación. iesgos de segmentación. Conflicto de datos en transferencias. lw $t1, 0($t2) tiempo sw $t1, 0($t3) Orden de ejecución 53

Camino de datos y control. Se asume la detección de la igualdad en la etapa de lectura de registros. as señales de control se generan en la etapa de lectura de egistros y ecodificación, ciclo en el cual se sabe cuál instrucción debe ejecutarse. 54

Camino de datos y control. as señales de control para la etapa de ejecución (ExtOpt, AluSrc, AluCtr) se emplean un ciclo después y son pasadas a dicha etapa a través del registro de segmentación, que separa las etapas. as señales de control para la etapa de memoria (emwr, emd, emtoeg) son usadas dos ciclos más tarde. 55

Camino de datos y control. as señales de control para la etapa de postescritura (, egwr) se emplean tres ciclos después. es el número del registro en el que debe escribirse. El diagrama muestra el control y los datos fluyendo. 56

57 Procesador Segmentado AluCtr AluSrc ExtOp egwr emd emwr emtoeg nm16a A B PC S 1 egwr1 emd1 emwr1 emtoeg1 eg add26 inm16 rs COp funct rt rd rt inm16 2 egwr2 2 egwr2 equal Next PC em. nst. PC+4 em. at. ecodi ficador Opera ciones PCsel npc br j out br j

Solución de riesgos. Unidad de anticipación de datos hacia la unidad de operaciones. Cuando en operaciones se tiene una instrucción de tipo o inmediata que escriba en un registro(), y en decodificación una instrucción que lea el registro rs(add, sub, ori, beq, lw) o que lea el registro rt(add, sub, beq). Cuando en etapa de memoria se tiene una de tipo o inmediata y en decodificación una instrucción que lee rs o rt, con igual valor al del registro en que se escribirá(1). 58

Solución de riesgos. Unidad de anticipación de datos hacia la unidad de operaciones. Solución: anticipación de datos hacia la unidad de operaciones se requiere agregar muxes a las entradas de la alu, que permitan ingresar las salidas de la alu y de la memoria, además de los contenidos de los buses de salida del arreglo de registros(busa y busb). 59

Solución de riesgos. Unidad de anticipación de datos hacia la unidad de operaciones. Condiciones de detección: Tipo = (emwr==0) & (emd==0) & (egw==1) Tipo1 = (emwr1==0) & (emd1==0) & (egw1==1) Controles de los muxes if (Tipo ) & (lee_rs) & (rs == ) A = Aluout; /*AntA = 1 */ if (Tipo1) & (lee_rs) & (rs == 1) A = out; /*AntA = 2 */ if (emd1==1) && (Cop== sw ) &&(rs == 1) A = out; en el resto de los casos A = [rs]; /*AntA = 0 */ 60

Solución de riesgos. Unidad de anticipación de datos hacia la unidad de operaciones. Controles de los muxes if (Tipo ) & (lee_rt) & (rt == ) B = Aluout; /* AntB = 1 */ if (Tipo1) & (lee_rt) & (rt == 1) B = out; /* AntB = 2 */ en el resto de los casos B = [rt]; /* AntB = 0 */ 61

Solución de riesgos. Anticipación de escritura en memoria. as instrucciones que escriben en un registro, seguidas de un store word que escriba el contenido del registro que aún no se ha grabado, no requieren detener la ejecución de la escritura en memoria si se adelanta la salida de la etapa de memoria(out) en el registro de segmentación que almacena el valor que será escrito en la memoria(). 62

Solución de riesgos. Anticipación de escritura en memoria. Se detecta cuando la instrucción que escribe en registro está en la etapa de memoria y el store word en operaciones; y si el número del registro cuyo contenido debe escribirse en memoria() es igual al número del registro en que escribirá la instrucción que está en etapa de memoria(1). 63

Solución de riesgos. Anticipación de escritura en memoria. Controles de los muxes if ( (emwr == 1) & (egwr1==1) & (==1 ) ) = out; /* Ant = 1 */ en el resto de los casos = B /* Ant = 0 */ 64

Solución de riesgos. etención de un ciclo en secuencias: lw-alu Se detecta el riesgo cuando el lw está en operaciones(emd1 en 1) y la instrucción que le sigue (que lea el registro en el cual el lw escribe) en decodificación. 65

Solución de riesgos. etención de un ciclo en secuencias: lw-alu Primero las secuencias lw seguidas por instrucciones que leen el registro rs(tipo, transferencias, inmediatas y beq); que se detectan por: (emd1 == 1) & ( OP!= j) & ( rs ==) 66

Solución de riesgos. etención de un ciclo en secuencias: lw-alu En segundo lugar las secuencias lw seguidas de instrucciones que leen el registro rt(tipo y beq) que se detectan según: (emd1 == 1) & (Op==tipo Op==beq ) & ( rt ==) 67

Solución de riesgos. etención de un ciclo en secuencias: lw-alu Ambas condiciones if ( ( emd1 == 1) & ( Op!= j) & ( rs ==) ( emd1== 1)& ( Op==tipo Op==beq) & (rt ==)) { burbuja = 1; válido = 0;} en el resto de los casos burbuja = 0; válido =1; 68

Solución de riesgos. escarte(flush) en caso de saltos incondicionales. En caso de no ejecutar la instrucción siguiente a un jump, que ya pasó por etapa de fetch deben eliminarse los efectos de la instrucción siguiente, para esto basta que la instrucción que completó su fetch no modifique un registro o escriba en la memoria. Se detecta mediante: if ( PCsel==1)&(Op==j) flush =1; 69

Solución de riesgos. escarte(flush) en caso de bifurcaciones. En caso de no ejecutar la instrucción siguiente a un beq, que ya pasó por la etapa de fetch deben eliminarse los efectos de la instrucción siguiente, para esto basta que la instrucción que completó su fetch no modifique un registro o escriba en la memoria. Se detecta mediante: if ( PCsel==1)&(Op==beq) flush =1; También puede diseñarse, según: if ( Equal==1)&(Op==beq) flush =1; 70

Solución de riesgos. nstrucción No operación. Esta instrucción tiene los 32 bits iguales a cero. Es de tipo, con el campo funct = 0. if (Op == nop) { AluCtr=øøø; AluSrc=ø; ExtOp=ø; emd = ø; emwr=0; emtoreg = ø; = 0; egwr =0; PCsel =0; válido = 0} además si es nop: rs=0, rt=0, rd =0. 71

72 Procesador Segmentado AluCtr AluSrc ExtOp egwr emd emwr emtoeg nm16a A B S 1 egwr1 emd1 emwr1 emtoeg1 2 egwr2 equal em. at. Opera ciones PC add26 inm16 rs COp funct rt rd rt inm16 2 egwr2 Next PC em. nst. PC+4 ecodi ficador burbuja reloj out AluOut valido Ant AntA AntB PCsel flush npc out b j