Tema 1: PROCESADORES SEGMENTADOS

Documentos relacionados
TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

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

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

6. PROCESADORES SUPERESCALARES Y VLIW

Pipeline (Segmentación)

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

Arquitectura Segmentada: Conceptos básicosb

Pipeline o Segmentación Encausada

Introducción a la arquitectura de computadores

Pipelining o Segmentación de Instrucciones

Arquitectura de Computadores

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

Arquitectura de Computadores II Clase #16

Procesadores superescalares. Introducción

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Procesadores segmentados. El DLX.

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

CICLOS DEL PROCESADOR

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

Arquitectura de Computadores

Autor: Longinos Recuero Bustos

El nivel ISA (II)! Conjunto de Instrucciones

Arquitectura de Computadores Segmentación del Cauce - 1

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

Tema: Microprocesadores

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Plataformas de soporte computacional: arquitecturas avanzadas,

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

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

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

Planificación Dinámica - 1. Arquitectura de Computadores

Instituto Tecnológico de Morelia

Arquitectura de Computadores

Diseño del procesador MIPS R2000

Procesador. Memoria. Ejemplo de un Procesador: MU0. Instrucciones. Direcciones. Registros. Datos. Instrucciones y datos SETI Tr.

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

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

MICROPROCESADOR. Multiciclo

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

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

Estructura del Computador

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

DIAGRAMA A BLOQUES DE UNA COMPUTADORA

Plataformas de soporte computacional: arquitecturas avanzadas,

TEMA 4. ARQUITECTURA IA-64

ESTRUCTURA BÁSICA DE UN ORDENADOR

Estructura de Computadores

SISTEMAS OPERATIVOS Arquitectura de computadores

Procesador Segmentado

Arquitectura Von Neumann

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

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

TEMA III: OPERACIONES CON LOS DATOS

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Paralelismo en monoprocesadores. Procesadores VLIW

FUNCIONAMIENTO DEL ORDENADOR

PRACTICA 2 Ejercicio 2

Arquitectura de Computadores II Clase #3

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

Qué es un programa informático?

Superescalares y VLIW - 1. Arquitectura de Computadores

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

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

Sistemas embebidos basados en FPGAs para instrumentación

Organización del Computador I. Introducción e Historia

Tema 5: Memorias. Espacio reservado para notas del alumno

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

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

Ejercicios del tema 4. El procesador

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Análisis general de un Microprocesador

4.1 Ejecución de instrucciones en el nivel de Microprogramación

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

Explotación del paralelismo a nivel de instrucción

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

Organización de la memoria

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

3 - Arquitectura interna de un up

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

Organizacion del Computador

Tema 4: Diseño de un microprocesador

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Memoria. Organización de memorias estáticas.

Organización del Computador 1 Memoria Cache

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Organización lógica Identificación de bloque

Lenguaje binario. Código ASCII. Medidas de la información

Entorno de Ejecución del Procesador Intel Pentium

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

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

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

Diagrama a bloques de una computadora

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

Arquitectura de Computadores II Clase #7

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

Estructuras de Control

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Transcripción:

Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento de un computador. 1.4. Características de los procesadores segmentados. 1.5. Arquitectura segmentada genérica. 1.6. Riesgos en la segmentación. 1.7. Planificación dinámica: Algoritmo de Tomasulo.

CARACTERÍSTICAS DE LOS PROCESADORES SEGMENTADOS Segmentación (pipelining): técnica empleada en el diseño de procesadores que trata de aprovechar el paralelismo intrínseco que existe entre instrucciones en un flujo secuencial. Un elemento (unidad funcional, procesador, circuito etc.) se divide en una serie de etapas que funcionan de forma independiente por las que van pasando los operandos y las instrucciones

Tarea procesada de forma totalmente secuencial

Tarea ejecutada mediante un procesador segmentado (equivale a una cadena de montaje) profundidad de la segmentación= número de etapas en que puede dividirse el procesamiento de una instrucción

CP=Contador de programa CO= Código operación DO= Dato operando en memoria ARQUITECTURA SEGMENTADA GENÉRICA (ASG) Sencilla arquitectura con propósitos educativos. Las instrucciones aritmético lógicas utilizan 3 operandos y ninguno hace referencia a memoria. (instrucciones registro registro) Operaciones carga/almacenamiento Modo de direccionamiento con desplazamiento CP Relativo a Registro Base CO OP=16 + RB 200 DE=<Registro base>+op DE= Dirección efectiva RB= Registro base (R1,R2 ) OP= Desplazamiento 216 DO Memoria principal DE

32 registros genéricos de 32 bits R0,R1,R2..R31 32 registros de 32 bits para simple F0,F1,F2..F31 o doble precisión F0,F2,F4..F30 Repertorio de instrucciones de la ASG CO Opd(destino) Op1(fuente 1) Op2(fuente 2) Aritméticas y lógicas Transferencia de datos Bifurcaciones o saltos incondicionales Saltos condicionales

Aritméticas y lógicas Transferencia de datos (entre paréntesis aparece el Registro Base propio del Direccionamiento con desplazamiento) realizan movimiento entre memoria y registro o viceversa Repertorio de instrucciones de la ASG Bifurcaciones o saltos incondicionales Saltos condicionales Un salto es efectivo cuando la condición probada por la instrucción es verdadera

IMPLEMENTACIÓN DE LA SEGMENTACIÓN DE INSTRUCCIONES EN LA ASG EL CICLO DE UNA INSTRUCCIÓN SE DESCOMPONE EN CINCO ETAPAS BÁSICAS IF (Instruction Fetch): Lectura de la instrucción de la caché de instrucciones ID (Instruction Decoding): Decodificación de la instrucción y lectura de sus operandos del fichero de registros EX (Execution): Ejecución de las operaciones si se trata de una instrucción aritmético-lógica y del cálculo de la condición y de la dirección de salto si se trata de una bifurcación o salto condicional. Cálculo de dirección en instrucción de carga y almacenamiento MEM (Memory Access): Acceso a la caché de datos para lecturas (cargas) o escrituras (almacenamientos) WB (Write-Back results): Escritura del resultado en el fichero de registros.

IMPLEMENTACIÓN DE LA SEGMENTACIÓN DE INSTRUCCIONES EN LA ASG

Ejemplo de segmentación de instrucciones Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB

Ejemplo de segmentación de instrucciones OPERA CIÓN ALU Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB

Ejemplo de segmentación de instrucciones CARGA DE MEMORIA Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB

Ejemplo de segmentación de instrucciones ALMACENAMIENTO EN MEMORIA Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB

Ejemplo de segmentación de instrucciones SALTO INCONDICIONAL Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB

Ejemplo de segmentación de instrucciones SALTO CONDICIONAL Etapa IF Etapa ID Etapa EX Etapa MEM Etapa WB

Segmentación en cinco etapas de la ASG Se incrementa la productividad, es decir, el número de instrucciones completadas por unidad de tiempo

No reduce el tiempo de ejecución de una instrucción individual (algo superior debido a Cerrojo o buffers de contención para aislar la información entre etapas. La duración de todas las etapas es similar y viene determinada por la duración de la etapa más lenta Los riesgos que se producen en la segmentación ( siguiente apartado) Ventajas de la segmentación

8 Riesgos en la segmentación Se denomina riesgo a la dependencia entre instrucciones que provoca que la instrucción que sucede a aquella con la cual posee dependencias no pueda ejecutarse en el ciclo de reloj que le corresponde ya que ha de esperar algún resultado para poder efectuar su ejecución Existen 1. RIESGOS ESTRUCTURALES 2. RIESGOS POR DEPENDENCIA DE DATOS 3. RIESGOS DE CONTROL

8 Riesgos en la segmentación 1. Riesgos estructurales Conflictos en los recursos; una instrucción en una etapa no puede avanzar a la siguiente porque el hardware que necesita lo está usando otra. Ejemplo: máquina con un único puerto de memoria (no dispone de dos memorias caché). SOLUCIÓN: Una detención no resuelve el problema globalmente (con estas instrucciones sí). ASG dispone de dos cachés (datos + instrucciones)

8 Riesgos en la segmentación 1. Riesgos estructurales No todas las etapas tienen la misma duración I1: ADD R3, R6, R7 I2: MULT R4, R1, R2 I3: MULT R5, R8, R9 I4: SD 7(R11), R10

8 Riesgos en la segmentación 2. Riesgos por dependencias de datos (dos instrucciones comparten algún dato) RAW - Read After Write (dependencia verdadera) Una dependencia RAW hace referencia a una situación donde se necesita un dato que aún no ha sido calculado, por ejemplo: ADD R1, R2, R3 SUB R4, R1, R5

8 Riesgos en la segmentación 2. Riesgos por dependencias de datos WAR - Write After Read (antidependencia o dependencia falsa) Una dependencia WAR representa un problema de ejecución concurrente, por ejemplo: ADD R1, R2, R3 SUB R2, R4, R5 Es necesario asegurarse de que no se almacenará el resultado en el registro R2 antes de que la instrucción 1 haya podido leer sus operandos.

8 Riesgos en la segmentación 2. Riesgos por dependencias de datos WAW - Write After Write Una dependencia WAW es otra de las posibles situaciones problemáticas en un entorno de ejecución concurrente, por ejemplo: ADD R1, R2, R3 SUB R1, R4, R5 Debe retrasarse la escritura (etapa WB) de la instrucción 2 hasta que la instrucción 1 haya finalizado.

8 Riesgos en la segmentación 2. Riesgos por dependencias de datos RAR (Read After Read) no es un riesgo. La ASG solo tiene riesgos de tipo RAW->SOLUCIONES REORGANIZACIÓN DEL CÓDIGO. INTERBLOQUEO ENTRE ETAPAS ADELANTAMIENTO WAR no se presenta pues lecturas de registro en ID es anterior a escrituras de registro en WB WAW no se produce pues solo se escribe en una etapa WB

RAW-> 1. SOLUCIONES REORGANIZACIÓN DEL CÓDIGO Entre instrucciones de tipo RAW existen instrucciones que permiten retrasar la segunda hasta que la primera haya escrito su resultado. problema solución

RAW-> 1. SOLUCIONES REORGANIZACIÓN DEL CÓDIGO Se trata de una técnica software. Se cargan en ese orden las instrucciones en la caché de instrucciones otra solución

RAW-> 1. SOLUCIONES REORGANIZACIÓN DEL CÓDIGO Reorganización cuando la escritura se realiza en el flanco de subida y la lectura en el flanco de bajada. otra solución otra solución aun mejor con reordenación de código

RAW-> 1. SOLUCIONES REORGANIZACIÓN DEL CÓDIGO No se pueden reordenar sin alterar la lógica del programa: SOLUCIÓN: inclusión de instrucciones NOP

RAW-> 2. SOLUCIONES INTERBLOQUEO ENTRE ETAPAS Introduce elementos hardware para detectar la existencia de dependencias. El programa termina correctamente pero se siguen perdiendo ciclos

RAW->3. SOLUCIONES ADELANTAMIENTO (caminos de bypass o forwarding) Al detectar dependencia RAW se habilitan unos caminos que permiten que los resultados de una etapa pasen a la etapa donde sean necesarias. En el ejemplo se comprueba si Registro destino coincide con alguno de los registros fuente de la instrucción siguiente.

8 Riesgos en la segmentación 1 RIESGOS ESTRUCTURALES 2 RIESGOS POR DEPENDENCIA DE DATOS 3 RIESGOS DE CONTROL: En la instrucción de salto, hasta que no pasan tres ciclos no se ha verificado la condición y calculado la nueva dirección del PC. Podemos leer la siguiente instrucción en la secuencia aun a riesgo de que no sea efectivo el salto Redundante si el salto no es efectivo

8.3 Riesgos de control. Implementación de los saltos condicionales en ASG

8.3 Riesgos de control en instrucciones de salto (SOLUCIONES EN TIEMPO DE COMPILACIÓN): SOLUCIÓN 1: Detener las segmentación hasta que se conoce el resultado del salto->introducción de instrucciones NOP Reduce rendimiento segmentación

SOLUCIÓN 1: Introducción de NOP para evitar las NOP (SOLUCIONES EN TIEMPO DE COMPILACIÓN) SOLUCIÓN 2: Técnica de salto retardado(delayed branch)

(SOLUCIONES EN TIEMPO DE COMPILACIÓN) SOLUCIÓN 3: Ejecución especulativa. Se predice el salto como no efectivo. Si al final el salto es efectivo se detiene la segmentación y se recomienza la búsqueda de la instrucción destino del salto (cuidado con no cambiar el estado de la máquina al retroceder)

Solución hardware al Riesgos de control. Inclusión en la etapa ID del hardware que detecta la instrucción de salto, acceda al registro para evaluar la condición y calculo la dirección de destino del salto Redundante si el salto no es efectivo