Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

Arquitectura de Computadores I
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
Estructuras segmentadas
Arquitectura de Computadores I
Scheduling dinámico Scoreboarding.
El Microprocesador.
PROCESADORES SUPERESCALARES
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
PERCY CHUMBE BUENDIA. KIZZY GUTIERREZ VALVERDE. RUTH NOEMY APAZA JARA.
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Arquitectura de Computadores
Pipelines: Riesgos.
Introducción a la programación
El procesador: la ruta de datos y el control (II Parte)
SEGMENTACIÓN DEL CAUCE
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
Introducción a los Sistemas de Bases de Datos Distribuidos
EMISION MULTIPLE DE INSTRUCCIONES
Arquitectura de Conjunto de Instrucciones (ISA)
Mejoras a las Máquinas Von Neumann
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Introducción a los SSOO Sebastián Sánchez Prieto.
TRADUCTOR DE UN PROGRAMA
Fundamentos de Programación
Programación de Computadores
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.
circuitos vlsi TEMA 4. LÓGICA SECUENCIAL CMOS Dr. José Fco. López
Tema 10: Gestión de Memoria
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-
INGENIERIA DE COMPUTADORES II
Tema 4. Condiciones para el paralelismo: Dependencias
Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow.
Segmentación No Lineal
Arquitectura de Máquinas Computadoras II
(Organización y Manejo de Archivos)
Scheduling dinámico Algoritmo de Tomasulo.
TEMA 2: Organización de computadores
Organización de Computadoras
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
 AUTOMATIZACION Y CONTROL  05. SISTEMAS DE MANUFACTURA AUTOMATIZADOS
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
“Organización y Arquitectura de Computadores” William Stallings
INGENIERÍA DE SOFTWARE
Sistemas Operativos Avanzados
Cap. 6: Pipelining. Encauzamiento de procesadores
COMPUTO III Ing. Jimmy Ojeda Arnica.
Términos algoritmo diseñar algoritmo implementar algoritmo
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
ARQUICTECTURA DE SERVIDORES
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
PROCESADORES SUPERESCALARES
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
UNIDAD V Bibliotecas de Funciones L.I. & M.S.C. OSCAR RAMÍREZ CORTÉS PROGRAMACIÓN DE SISTEMAS.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
El procesador es el cerebro del computador que se encarga de organizar, procesar la información ejecutar cálculos y en general realizar muchos procesos.
Proceso de desarrollo de Software
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
Santiago Restrepo Rodríguez
INGENIERIA EN SISTEMAS FUNDAMENTOS DE COMPUTACION B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
Hernández Camacho Víctor Jesus Islas Sánchez Karla Vanessa
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Ciclos condicionales y exactos Estructura de control de ciclos
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Transcripción de la presentación:

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Tema 7. Introducción a la ejecución multiciclo 1 LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI GUTIERREZ JOSÉ CARLOS CASTILLO MONTOYA Departamento de Ingeniería de Sistemas y Automática Organización de Computadores

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. MÁS COMPLICACIONES: OPERACIONES MULTICICLO Existen operaciones demasiado largas para ser acomodadas en un cauce segmentado de longitud fija: –La división entera. –La mayor parte de las operaciones en coma flotante. –Modos de direccionamiento complejos en procesadores CISC. El número de ciclos de reloj varía, puede depender de los datos que se ejecutan, esto afecta a: –Latencia –Ciclo de repetición En una unidad segmentada completamente es de 1 ciclo. No es posible utilizar un cauce estático como el estudiado hasta este momento, donde todas las instrucciones pasan por todas las etapas del cauce. –Deben utilizarse cauces dinámicos con etapas que opcionalmente se ejecutan o no. 2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. SOLUCIONES: UNA PRIMERA IDEA Indudablemente, una posibilidad sería exigir que todas las instrucciones completen su fase de ejecución en un ciclo. –Esto origina que el ciclo de reloj sea innecesariamente largo, y ralentizaría enormemente el procesador. –Otra posibilidad sería utilizar una enorme cantidad de HW para conseguir que el tiempo de la operación más larga se acorte todo lo posible, esto resulta muy caro. La única posibilidad práctica consiste en permitir que la etapa EX finalice la ejecución de la operación en los ciclos que necesite. –Esto genera, como consecuencia un aumento considerable de los riesgos estructurales, ya que mientras la etapa EX esta ejecutando no podría ser utilizada por una instrucción posterior. 3

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. SOLUCIONES POSIBLES Interbloqueo (detener el cauce) –Está solución implementa la idea anterior. Es la forma más sencilla de resolver el problema del riesgo estructural que plantean estas operaciones multiciclo. Es altamente ineficiente, genera un gran número de burbujas en el cauce y degrada las prestaciones del mismo. Segmentación de la etapa de ejecución. –Si se segmenta la etapa de ejecución, se elimina el riesgo estructural (al menos en una parte) ya que la etapa de ejecución sería capaz de aceptar una ejecución de instrucción por ciclo. Esta idea no es nueva, la instrucción load en la arquitectura MIPS esta segmentada siendo ejecutada en dos etapas (en la EX se calcula la dirección del operando en memoria y en la MEM se lee de la memoria) en vez de en una única etapa. Múltiples unidades funcionales. –Una posibilidad es utilizar múltiples unidades funcionales, de forma que mientras que se ejecuta una instrucción en una se pueda proceder a ejecutar otras instrucciones en otras unidades funcionales, de esta forma se solapan las ejecuciones de estas instrucciones. Estas unidades funcionales pueden estar a su vez segmentadas. 4

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. SOLUCIÓN MÁS EFICAZ La solución más eficaz, pero también la más compleja consiste en la utilización de múltiples unidades funcionales. –Esta solución implica que las instrucciones no se completan en el orden del programa original. –La finalización fuera de orden puede dar lugar a riesgos WAW cuando existen dependencias de salida entre instrucciones. –Existen dos posibilidades para resolver este riesgo WAW: –Una primera posibilidad consiste en retrasar el write back de la operación que se ejecuta antes (en el tiempo) para que se cumpla el orden de programa. –Otra posibilidad es desarrollar algún tipo de hardware que permita la finalización fuera de orden. –Entre las técnicas que permiten ejecutar y finalizar out-of-order, y que son denominadas planificación dinámica de instrucciones, tenemos: »Técnica de Scoreboard. »Algoritmo de Tomasulo. »Ambas requieren hardware adicional de cierta complejidad. 5

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. ESQUEMA SIMPLE 6 IFID FP Mult FP Add ALU Div MEM WB

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES: SCOREBOARD Esta técnica permite la ejecución fuera de orden cuando hay suficientes recursos y no existen dependencias de datos. Trata de mantener una tasa de ejecución de 1 instrucción por ciclo en ausencia de riesgos estructurales (permite la ejecución de las instrucciones tan pronto como es posible). El scoreboard, o marcador es un dispositivo HW que permite seguir el estado de la ejecución de las instrucciones, de las unidades funcionales que las ejecutan y de los registros que almacenarán el resultado. Utiliza ciertas estructuras de datos y se comunica con las unidades funcionales. Realiza la detección de riesgos, la resolución de estos y controla la progresión de las instrucciones de una etapa a otra. 7

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES: TOMASULO Esta técnica permite la ejecución fuera de orden cuando hay suficientes recursos y no existen dependencias de datos (verdaderas). Trata de mantener una tasa de ejecución de 1 instrucción por ciclo en ausencia de riesgos estructurales (permite la ejecución de las instrucciones tan pronto como es posible). Elimina los riesgos de datos producidos por dependencias de nombre, es decir elimina los riesgos WAR y WAW. Para ello asocia a cada UF una o más estaciones de reserva (registros internos). Utiliza un bus para la difusión rápida de los resultados (bus común de datos) y técnicas de sondeo de bus para anticipar los datos. El control se realiza por HW de forma distribuida, y sigue el estado de la ejecución de las instrucciones, de las unidades funcionales que las ejecutan y de los registros que almacenarán el resultado. Utiliza ciertas estructuras de datos y se comunica con las unidades funcionales. Realiza la detección de riesgos RAW, la resolución de estos y controla la progresión de las instrucciones de una etapa a otra. 8