ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

Arquitectura de Computadores I
Estructuras segmentadas
Scheduling dinámico Scoreboarding.
PROCESADORES SUPERESCALARES
Hazards.
Predicción de saltos.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Arquitectura de Computadores
Pipelines: Riesgos.
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
EMISION MULTIPLE DE INSTRUCCIONES
Funcionamiento de una Computadora
Mejoras a las Máquinas Von Neumann
Composición Interna de un Procesador
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
ISA (Instruction Set Architecture)
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
Microcontroladores PIC16F84A.
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Unidad 2: Organización del CPU
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Gustavo Andrés Uribe Gómez
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Soporte HW para Administración de Memoria Cecilia Hernández
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Scheduling dinámico Algoritmo de Tomasulo.
Funcionamiento de la CPU
Capítulo 5. El procesador: Camino de datos y control.
Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Diseño de la Unidad de Control Multiciclo: Microprogramación
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
Memoria virtual.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 04 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
CLASE 13.
El procesador Diseño del control.
Cap. 6: Pipelining. Encauzamiento de procesadores
Diseño del procesador uniciclo
CLASE 14.
ARQUITECTURA DE COMPUTADORES
Capítulo 4 CPU y la memoria.
Hecho por: M.C. Luis Fernando Guzmán Nateras v3 Organización de Computadoras Preparación: Examen 1 JEOPARDY.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 05 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 10.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 14 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Organización de la Computadora
Capítulo 8 Segmentación de Instrucciones.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 17 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
INTERRUPCIONES – ABRAZO MORTAL
ARQUITECTURA DE COMPUTADORES
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Arquitectura de Computadores Clase 22 Pipelining IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento.
Pipelining Datapath y control.
Excepciones e interrupciones
Pipelining Peligros (hazards).
Pipelining Introducción.
Pipelining Peligros de control.
Transcripción de la presentación:

ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and Design (The hardware / software interface), 4ta Edición, de David A. Patterson y John L. Hennessy. Editorial Morgan Kaufmann

AGENDA Repaso –Camino de datos encauzado –Mejoras al encauce –Predicción dinámica de saltos –Excepciones –Implementación en SystemC del archivo de registros 01/09 – 04/09 Repaso, Predicción dinámica de saltos y Excepciones Proyecto y Jerarquía de memoria 07/09 – 11/09Proyecto y Repaso3er Examen Parcial

Camino de datos de un solo ciclo

Implementación de un solo ciclo Es ineficiente El ciclo de reloj debe durar lo mismo que la instrucción que tarde más. Generalmente, la instrucción load El CPI = 1, pero la duración del ciclo es muy grande ¿Qué ocurre si añadimos instrucciones punto flotante o más complejas a este camino de datos?

Pipelining Múltiples instrucciones solapan su ejecución Como en un línea de ensamblaje Analogía de lavar ropa: –Colocar la ropa sucia en la lavadora y encender –Cuando termine, colocar la ropa mojada en la secadora –Cuando termine, colocar la ropa en una mesa y doblarla –Ubicar la ropa en el closet

Analogía con lavar la ropa

Camino de datos encauzado

Implicaciones del pipeline Idealmente: –Tiempo entre instrucciones con pipeline = Tiempo entre instrucciones sin pipeline / # etapas ¿Mejoramos tiempo de ejecución o productividad? Productividad, el tiempo de ejecución probablemente empeore La duración del ciclo de reloj será igual a lo que tarde la etapa más lenta

Peligros Estructurales: El hardware no soporta cierta combinación de instrucciones De datos: Una instrucción debe esperar por el resultado de otra add $s0,$t0,$t1 sub $t2,$s0,$t3 Se utiliza hardware extra para pasar el dato (Adelantar: forwarding o bypassing)

Peligros De datos (cont.): Pero a veces hace falta introducir una instrucción de detención (stall): Pipeline stall o burbuja

Peligros De datos (cont.): También el compilador puede ayudar reordenando el código:

Peligros De Control (o Salto): El flujo no es el esperado. 1a solución: Detenernos cuando hagamos fetch de un salto.

Peligros De Control (o Salto): 2da solución: Intentar predecir, por ejemplo; nunca se toman los saltos. 3ra solución: “Branch prediction”, tomar el salto algunas veces y otras veces no tomarlo. Por ejemplo, llevando una historia. –¿Qué ocurre si falla la predicción?

Camino de datos

Flujo de datos en el pipelining IF: Instruction Fetch ID: Instruction decode y register file read EX: Execution o Address calculation MEM: Data Memory Access WB: Write Back Pareciera que los datos y las instrucciones se mueven siempre de izquierda a derecha, pero hay dos excepciones: La operación de Write Back El contador de programa Siguiendo con la analogía de “lavar la ropa”: Entre etapa y etapa necesitamos algo donde trasladar la ropa, por ejemplo, unas cestas. En el procesador, requeriremos registros de pipeline (buffers).

Camino de datos encauzado

Registros de pipeline Necesitan ser lo suficientemente anchos (Grandes) como para albergar todos los bits necesarios de una etapa a otra. 64, 128, 97 y 64 bits. Durante un ciclo de reloj, las instrucciones avanzan desde un registros de pipeline al siguiente. En las láminas siguientes, se muestra la secuencia de partes activas del pipeline, para una instrucción lw

Pase de información Toda la información necesaria para los siguientes pasos debe ser pasada ¿Qué faltó en la ejecución de la instrucción lw? –En la última etapa (WB) debemos saber el número del registro donde se escribirá el dato. Pero esto no lo hemos pasado. Por tanto, debemos corregir el encauce.

Camino de datos corregido

Ejecución de un programa sub $2,$1,$3 # Registro $2 es escrito and $12,$2,$5 # 1er operando depende de sub or $13,$6,$2 # 2do operando depende de sub add $14,$2,$2 # 1ro y 2do operandos dependen de sub sw $15,40($2) # La base depende de sub

Ejecución de un programa

Hazards de Datos 1ª opción: Detener la ejecución con la introducción de instrucciones que no hagan nada (Nops). Ejemplo: add $zero,$zero,$zero 2ª opción: Adelantar el dato. ¿Cuándo se tiene disponible el resultado de sub $2,$1,$3? Al final del ciclo 3: Se podría pasar antes el resultado. ¿Qué ocurre cuando un registro es leído y escrito durante el mismo ciclo de reloj? Los archivos de registros realizan la escritura en la 1ª mitad del ciclo y la lectura en la 2ª mitad. Por ende: Entre las instrucciones sub y add no hay dependencia de datos.

Sin adelantamiento

Con adelantamiento

Hazard de dato insalvable

Instrucción Nop

La introducción de una nop, implica que no se altere el estado del camino de datos: –Que no se actualice el PC. –Que no se escriba en los registros (Actualización de los registros IF/ID). –Colocar las señales de control a cero. Por lo tanto, se debe añadir una unidad que detecte este tipo de hazard. El Compilador: Puede disminuir la ocurrencia de este tipo de hazard, adelantando instrucciones en el orden de ejecución.

Hazards de Datos

Hazards de Control

Aún no existe nada tan efectivo para tratarlos como el adelantamiento en el caso de los hazards de datos. Opciones (IPC): –Detener la ejecución (Nops): Demasiado lento –Asumir que el salto no se realiza (Especular): Si el salto sí debía realizarse; las instrucciones que avanzaron indebidamente, se descartan (Flush). –Predicción dinámica de saltos (Especular).

Hazards de Control (Mejora a “No tomar el salto”) –Adelantar en el pipeline la evaluación del branch Calcular la dirección efectiva Evaluar la condición de salto –Hay que adelantar la lectura de los datos –Puede depender de valores aún no calculados –Requiere circuitería para realizar la comparación

Hazards de Control (Mejora a “No tomar el salto”)

Compiladores y ensambladores Pueden intentar aprovechar la instrucción que se pierde al intentar predecir el salto.

Predicción dinámica de saltos Es la predicción del salto, utilizando la información que se tiene en tiempo de ejecución. Una forma: Ver si ese salto fue tomado la última vez que fue evaluado. Si fue tomado la última vez, se comienzan a ejecutar las mismas instrucciones anteriores. Esto se denomina “Memoria de predicción de saltos” o “Tabla histórica de saltos” La tabla (Memoria) contendrá: –Parte inferior de la dirección de salto –1 ó más bits que indican si fue tomado o no Si la predicción es incorrecta, se invierte el bit y debe retornar al estado correcto.

Predicción dinámica de saltos Se pueden utilizar 2 bits para decidir si tomar el salto o no.

Otras soluciones Contar con una estructura (BTB: Branch Target Buffer) que almacene la dirección de salto (El PC destino) Tomar en cuenta la información global y local sobre los saltos (Predictores correlacionados) Predictores tipo torneo: Se tienen varias predicciones de un mismo salto y un mecanismo de escogencia de qué predictor utilizar para qué salto.

Camino de Datos Final

Excepciones Excepciones e interrupciones: Eventos no programados, que interrumpen la ejecución de un programa. Es una actividad llevada a cabo por la Unidad de Control Falta de estandarización de los términos: Tipo de eventoFuenteNosotros Solicitud de I/O de dispositivoExternaInterrupción Invocación del SO desde un programa de usuarioInternaExcepción Overflow u underflowInternaExcepción Uso de instrucción no definidaInternaExcepción Problema en el hardwareCualquieraInterrupción o excepción

¿Cómo manejar un excepción? El procesador debe llevar a cabo dos operaciones: –Guardar la dirección de la instrucción que originó la excepción en el registro Exception Program Counter (EPC). –Transferir el control al sistema operativo. El sistema operativo tomará la acción apropiada: –Hacer algo para el programa de usuario –Reportar un error –Detener la ejecución

¿Qué acción tomar? 1.Método usado en MIPS: Incluir un registro adicional (Cause Register) que almacena la razón de la interrupción 2.Interrupciones vectorizadas: El sistema operativo sabe la causa por la dirección donde recibió el control de la máquina. Tipo de excepciónDirección Instrucción no definida hex Overflow, underflow hex

Unión Hardware - SO El hardware y el SO deben trabajar en conjunto para manejar las excepciones. La excepciones son implementadas en el hardware como otro hazard de control, y debe añadir circuitería para esto en su pipelining. Generalmente: –Se dejan culminar las instrucciones anteriores –Se ingresan instrucciones burbuja mientras culminan estas instrucciones –Se guarda el estado del programa (Contexto) –Se ejecuta el SO a partir de cierto punto donde se manejan la excepciones Estos cambios de contexto son muy comunes dentro de un computador. Varias excepciones pueden ocurrir en un momento dado. ¿Qué hacer? : Priorizar el manejo (¿En orden?).