ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

Documentos relacionados
Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Bus de direcciones. Bus de datos

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

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

Introducción a la arquitectura de computadores

3 - Arquitectura interna de un up

Sección de procesamiento: El camino de datos

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

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

Pipeline (Segmentación)

Ejercicios de Arquitectura de Computadoras

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

COMPUTADORES SEGMENTADOS (DLX)

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

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

Pipelining o Segmentación de Instrucciones

Pipeline o Segmentación Encausada

Autor: Longinos Recuero Bustos

Estructura de Computadores Tema 1. Introducción a los computadores

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

Procesadores superescalares. Introducción

Procesadores segmentados. El DLX.

Tema 4 (II) El procesador

TEMA 4. ARQUITECTURA IA-64

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

Conceptos de Arquitectura de Computadoras Curso 2015

ESTRUCTURA Y TECNOLOGIA DE COMPUTADORES II Curso PROBLEMAS TEMA 4: Unidad Aritmético Lógica

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

Plataformas de soporte computacional: arquitecturas avanzadas,

FUNDAMENTOS DE COMPUTADORES

Sistemas con Microprocesadores I

Arquitectura del CPU. Organización del Computador 1 Verano 2016

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

Tema 1: Introducción a Estructura de Computadores. Conceptos básicos y visión histórica

Diseño del procesador MIPS R2000

6. PROCESADORES SUPERESCALARES Y VLIW

ENIAC, Primer computador electrónico y su panel de conexiones

Arquitectura de Computadores

CICLOS DEL PROCESADOR

ESTRUCTURA BÁSICA DE UN ORDENADOR

MICROPROCESADOR. Multiciclo

Tema: Microprocesadores

1.2.-Analisis de los componentes

COMPUTADORES VECTORIALES (DLXV)

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

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

Instituto Tecnológico de Morelia

Instrucciones de Control de Flujo y Usos de la Pila

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

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.

SISTEMAS OPERATIVOS Arquitectura de computadores

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

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

Ejercicios Jerarquía de Memoria

Informática I. Software - Algoritmo. Alejandro Furfaro

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

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii

Arquitectura de Computadores Segmentación del Cauce - 1

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES

Arquitectura de Computadores II Clase #3

1 La figura 1 muestra la estructura de la CPU de un computador con palabras y direcciones de 32 bits, cuya

Práctica 4. DESENROLLADO DE BUCLES.

Trabajo Práctico Número 6

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

Procesador Segmentado

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

Organización de Computadoras

Entorno de Ejecución del Procesador Intel Pentium

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

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores.

PRACTICA 2 Ejercicio 2

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

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

Medición de Performance. Organización del Computador 1 Verano 2016

Tema 4: Diseño de un microprocesador

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

Implementación de instrucciones para el procesador MIPS de ciclo único.

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

MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES

Resolución de los Ejercicios de la Hoja 4

Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

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

Paralelismo en monoprocesadores. Procesadores VLIW

ORGANIZACIÓN DE COMPUTADORAS

Plataformas de soporte computacional: arquitecturas avanzadas,

259. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m

Clasificación del procesador según el número de referencias a memoria.

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES

Ejercicios del tema 5. Jerarquía de de Memoria

Estructuras de Control

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

Arquitectura Segmentada: Conceptos básicosb

Clase Práctica Memoria Caché

Arquitectura de Computadoras

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

Transcripción:

Departament d Informàtica Sistemes i Computadors ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados SUGERENCIAS PARA LA RESOLUCIÓN DE LOS PROBLEMAS La ruta datos propuesta en todos los problemas presentados es la l microprocesador MIPS R2000 (que es la misma que la l procesador segmentado DLX las prácticas), ambos arquitectura RISC y segmentados en las cinco etapas que se muestran en la Fig. 1. Para la acuada resolución los problemas, se sugieren las siguientes propuestas (sobre el código fuente en ensamblador que también se presenta en la Fig. 3): Etapa 1 instrucción Etapa 2 y codificación Etapa 3 Ejecución y cálculo dirección salto Etapa 4 Acceso a memoria Etapa 5 Escritura l resultado en el buffer entrada instrucciones (lectura) UAL datos (escritura) Fig. 1. Esquema simplificado la ruta datos l microprocesador MIPS R2000 junto con los segmentación. En la última etapa (etapa 5, Write Back) se proce a la escritura l resultado en el banco y su anticipación en el buffer entrada la etapa ejecución (UAL). Fig. 2. Ruta datos l DLX. Tal y como se pue apreciar, en la etapa 4 se proce a la escritura los valores en la memoria datos, mientras que en la etapa 5 se anticipan los resultados sobre el buffer entrada la etapa ejecución. Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 1

Departament d Informàtica Sistemes i Computadors a:.word 33 b:.word 2355 I1 lw r1, a(r0) I2 lw r2, b(r0) I3 loop: I4 add r6, r6, r1 I5 sub r2, r2, #1 I6 bnez r2, loop I7 nop I8 nop I9 nop I10 add r10, r6,r0 trap #0 Fig. 3. Código fuente en ensamblador l programa que se va a utilizar en los ejemplos y que presenta la multiplicación los números a y b, almacenando el resultado final en r10. Riesgos por penncia datos (tención la segmentación): cuando se tecta un riesgo este tipo se be tener en cuenta que, como el valor correcto no se obtiene hasta la 5ª etapa (s don el valor calculado se anticipa al buffer entrada la etapa ejecución) y, como los operandos las instrucciones anteriores no se leen hasta la 2ª etapa, únicamente se verán implicadas en el riesgo las 3 instrucciones siguientes a la analizada (la 4ª se encuentra en la 1ª etapa don sólo se busca la instrucción a partir l PC). Así pues, para el análisis la penncia datos sobre la instrucción I1 (lw r1,a(r0)), comprobaremos el riesgo sobre las tres instrucciones siguientes. Como aparece una penncia en el registro R1 con la instrucción I3 (add r6,r6,r1), ésta última be esperarse en la etapa codificación y búsqueda operandos hasta que el valor R1 sea el correcto. Esto suce en t4 (don I1 escribe el valor correcto R1) por lo que, en t5, I3 ya lee el valor correcto R1 y pue proseguir su ejecución. En este caso la segmentación se ha tenido en una etapa para resolver un riesgo entre dos instrucciones no consecutivas (Fig. 4). Fig. 4. La instrucción add se tiene 1 ciclo en la etapa codificación (en t5) ya que presenta penncia datos en R1 con la instrucción lw. Lo mismo suce en R2 con la instrucción bnez que queda tenida en la etapa 2 hasta que se escriba el resultado correcto en R2 (en t9). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 2

Departament d Informàtica Sistemes i Computadors Riesgos por penncia datos (anticipación en la ALU): en este caso, el resultado correcto se obtiene al final la 3ª etapa (cálculo en la ALU) y pue ser anticipado: 1. s la 5ª etapa al registro entrada la ALU (WB to EX) Fig. 5. Don s la etapa write back se anticipa la información a los la etapa codificación y a los la etapa ejecución (ver path en rojo). Amás los resultados anticipados aparecen en las etapas rotuladas en blanco. Por este motivo, si existe penncia entre las instrucciones I1 e I3, esta queda automáticamente resuelta mediante el método anticipación pues, aunque I3 ha leído los operandos incorrectos en la etapa 2 (codificiación y búsqueda operandos), estos valores incorrectos que se cargan en el registro temporal la ALU, son automáticamente machacados por el valor correcto los operandos que se acaba calcular a la salida la ALU en la etapa 3 y que viene por la vía (path) anticipación hasta el mismo registro temporal entrada en la ALU. Por lo tanto no será necesaria la inserción ninguna burbuja en este caso ( Error! No se encuentra el origen la referencia.). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 3

Departament d Informàtica Sistemes i Computadors 2. s la 4ª etapa al registro entrada la ALU (MEM to EX) Fig. 6. Don s la 4ª etapa ( memory write ) se anticipa la información a los la etapa ejecución y al multiplexor entrada para el caso salto condicional (ver path en morado). Amás los resultados anticipados aparecen en las etapas rotuladas en blanco. Riesgos control (tención la segmentación): por un lado, la dirección salto no se conoce hasta el final la 3ª etapa mientras que, por otro lado, el riesgo control no se tecta hasta el principio la 2ª etapa (cuando se codifica la instrucción). Por este motivo, ante una instrucción control, se tiene la segmentación y no entra ninguna instrucción nueva, hasta que se resuelva la dirección salto (en la etapa 3). En el caso l simulador l DLX (Fig. 7), la segmentación se tiene hasta que se escribe el valor correcto l salto en los (en el PC, 4ª etapa). Fig. 7. En este caso la instrucción add no se empieza a ejecutar hasta que la instrucción control ( bnez ) ha resuelto la dirección salto y la ha escrito en el PC (al terminar la 4ª etapa, en t12). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 4

Departament d Informàtica Sistemes i Computadors Riesgos control (anticipación en la ALU): se podría cir que el hecho anticipar resultados por parte la ALU, no resuelve más rápidamente los riesgos control (Fig. 8). Fig. 8. En este caso la anticipación resultados en la ALU no influye en la ejecución la instrucción salto condicional (ni es terminante en la resolución l riesgo control) ya que, la dirección salto continúa sin resolverse hasta su carga en el PC, una vez se ejecuta la instrucción control en la 4ª etapa (escritura en ). Riesgos control (ejecución especulativa): en el caso resolver los riesgos control mediante ejecución especulativa se supone que las siguientes instrucciones a la control entran en el micro (se especula con que su ejecución es correcta) y, una vez se resuelve la dirección salto y se escribe en el PC (cuando la instrucción control termina en la etapa 4), se ci si las instrucciones ejecutadas son o no las correctas (sechándolas o no). Esto significa que en ejecución especulativa siempre se van a colar las TRES instrucciones siguientes a la control (Fig. 9). Fig. 9. En este caso, tras la instrucción salto ( bnez ) se han colado tres instrucciones nop, que son automáticamente sechadas en t12 cuando se resuelve que la dirección salto correcta supone la ejecución la instrucción add. Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 5

Departament d Informàtica Sistemes i Computadors Riesgos control (predicción l salto): para el mismo ejemplo que en el punto anterior y suponiendo que la BTB (Branch Target Buffer) contenga la estimación correcta l salto a ejecutar (esto significa que, en alguna iteración anterior, ya se ha producido el mismo salto), el riesgo control presentado por la instrucción bnez no se intifica hasta la etapa codificación la instrucción (2ª etapa) por lo que se habrá colado en la 1ª etapa una sola instrucción que, pendiendo l valor almacenado en la BTB (para bnez ), será la siguiente instrucción a ejecutar (si el salto llevaba a ella) o no (en cuyo caso la instrucción colada se marca como no válida y se secha). Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 6

PROBLEMA 1 Departament d Informàtica Sistemes i Computadors Dada la siguiente secuencia instrucciones que se va a ejecutar en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Enumera los tipos riesgos que puen aparecer en un procesador segmentado. b) En el procesador la figura y para el programa ensamblador propuesto: cuáles los riesgos anteriores aparecen? por qué? c) En el procesador la figura y para el programa ensamblador propuesto: cuáles los riesgos anteriores NO aparecen? por qué? d) Soluciona los riesgos scritos anteriormente mediante la técnica inserción burbujas la forma más eficiente posible (mínimo nº burbujas posible colocadas forma que se ralentice al mínimo la ejecución l programa). Presenta la traza la ejecución. e) Suponiendo que, en este caso, el procesador utiliza la técnica la anticipación s la ALU, qué riesgos se solucionarían?, persistiría alguno ellos? Justifica la respuesta. Presenta la traza la ejecución. NOTA: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2 I1 etiq: ADD R2, R2, R1 // Resta R1 y R2 y guarda el resultado en R2 I2 SUB R2, R2, R3 // Resta R2 y R3 y guarda el resultado en R2 I3 SUB R3, R3, R4 // Resta R3 y R4 y guarda el resultado en R3 I4 XOR R2, R1, R4 // Operación XOR entre R1 y R4 guardando el resultado en R2 I5 BEQ R5, R0, etiq // El PC salta a la posición etiq si R5 = R0 I6 LW R6, R2 // Carga en R6 el contenido la posición memoria indicada en R2 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 7

Departament d Informàtica Sistemes i Computadors PROBLEMA 2 Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se va a ejecutar en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Lista los posibles riesgos que puen aparecer en un procesador segmentado y justifica, tanto si aparecen como si no, en el procesador segmentado presentado. b) Suponiendo una CPU programada para resolver riesgos por penncia datos y control mediante la técnica la tención automática la segmentación: resuelve el programa para las dos primeras pasadas l bucle (8 instrucciones) en este caso, y presenta la traza correspondiente. c) Repite el apartado anterior (b) en el caso que los riesgos por penncia datos se resuelvan por scoreboarding y los control mediante la técnica ejecución especulativa. Justifica la actuación la CPU en el caso tener que sechar alguna instrucción que ya haya iniciado su ejecución en el procesador segmentado. d) Repite el apartado anterior (c) para las dos últimas pasadas l bucle. NOTA: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2 a:.word 33 // Primero los operandos a multiplicar b:.word 55 // Segundo los operandos a multiplicar I1 lw r1, a(r0) // Carga el contenido la dirección a en r1 (33) I2 lw r2, b(r0) // Carga el contenido la dirección b en r2 (55) I3 loop: add r6, r6, r1 // Suma r1 y r6 (suponemos inicialmente a 0) y guarda en r6 I4 sub r2, r2, #1 // Resta al contenido r2 una unidad y guarda resultado en r2 I5 bnez r2, loop // Salta a la dirección loop si el valor r2 es distinto 0 I6 add r10, r6,r0 // Almacena el resultado final I7 nop // Burbuja (No Opera) insertada por software I8 trap #0 // Devuelve el control al S.O. Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 8

Departament d Informàtica Sistemes i Computadors PROBLEMA 3 Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se va a ejecutar en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Suponiendo que la duración la intrucción carga (lw) es 5 ciclos y la duración l resto instrucciones es 4 ciclos, calcula la mejora (aceleración) que supone la ejecución l programa propuesto en el procesador segmentado (ciclos ejecutados=10050; instrucciones ejecutadas=3770; ciclos parada=6276), respecto su ejecución en un procesador no segmentado. b) Suponiendo una CPU programada para resolver riesgos por penncia datos mediante la técnica la tención automática la segmentación y los control mediante la predicción los saltos (se presupone tención la segmentación si hay fallo en la BTB): resuelve el programa para las dos primeras pasadas l bucle (8 instrucciones) en este caso, y presenta la traza correspondiente. c) Del apartado anterior, qué significa que ha habido un fallo en la BTB (branch target buffer)? qué suce en este caso? d) Repite el apartado (b) en el caso que los riesgos por penncia datos se resuelvan por anticipación en la ALU. Justifica la actuación la CPU para los riesgos control, en el caso tener que sechar alguna instrucción que ya haya iniciado su ejecución en el procesador segmentado. NOTA: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2 a:.word 48 // Primero los operandos a multiplicar b:.word 1255 // Segundo los operandos a multiplicar I1 lw r1, a(r0) // Carga el contenido la dirección a en r1 I2 lw r2, b(r0) // Carga el contenido la dirección b en r2 I3 loop: add r6, r6, r1 I4 sub r2, r2, #1 I5 bnez r2, loop // Salta a la dirección loop si el valor r2 es distinto 0 // es cir, ejecuta el bucle 1255 veces I6 add r10, r6,r0 // Almacena el resultado final I7 nop I8 trap #0 // Devuelve el control al S.O. Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 9

Departament d Informàtica Sistemes i Computadors PROBLEMA 4 Dado el siguiente programa en ensamblador (comentado) que multiplica dos operandos y que se ejecuta en el procesador segmentado cuya ruta datos aparece en la figura adjunta: a) Suponiendo que la duración la instrucción carga (lw) es 5 ciclos y la duración l resto instrucciones es 4 ciclos, calcula la mejora (aceleración) que supone la ejecución l programa propuesto en el procesador segmentado (ciclos ejecutados=80; instrucciones ejecutadas=34; ciclos parada=42; y valores iniciales las variables -> a=2; b=10), respecto su ejecución en un procesador no segmentado. (NOTA: los valores a y b especificados sólo aplican al presente apartado). b) Suponiendo una CPU programada para resolver riesgos por penncia datos mediante la técnica la tención automática la segmentación y los control mediante la predicción los saltos (se presupone tención la segmentación si hay fallo en la BTB): presenta la traza correspondiente a la ejecución l programa completo. c) Repite el apartado (b) en el caso que los riesgos por penncia datos se resuelvan por anticipación en la ALU, y los control por ejecución especulativa. Justifica la actuación la CPU para los riesgos control, en el caso tener que sechar alguna instrucción que ya haya iniciado su ejecución en el procesador segmentado. d) Calcula la mejora obtenida en el apartado c) respecto la ejecución l programa según los parámetros establecidos en el apartado b) (Mejora = CPI b /CPI c ). NOTA 1: no hay que tener en cuenta la instrucción trap #0 para el cálculo la duración l programa. NOTA 2: El formato las instrucciones es l tipo NOMBRE Destino Operando 1 Operando 2. a:.word 10 // Primero los operandos a multiplicar b:.word 2 // Segundo los operandos a multiplicar I1 lw r1, a(r0) // Carga el contenido la dirección a en r1 I2 lw r2, b(r0) // Carga el contenido la dirección b en r2 I3 loop: add r6, r6, r1 // Suma el contenido r1 + r6 y guarda en r6 I4 sub r2, r2, #1 // Realiza la resta l contenido r2-1 y guarda en r2 I5 bnez r2, loop // Salta a la dirección loop si el valor r2 es distinto 0 I6 add r10, r6,r0 // Almacena el resultado final en r10 I7 nop // No opera I8 trap #0 // Devuelve el control al S.O. Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 instrucción y codificación Ejecución y cálculo dirección salto Acceso a memoria Guardar el resultado instrucciones (lectura) UAL datos (escritura) Esquema simplificado la ruta datos junto con los segmentación Problemas TEMA 4: Microprocesadores avanzados (procesadores segmentados) 10