Superescalares. Scheduling estático

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Superescalares. Scheduling estático"

Transcripción

1 Superescalares Scheduling estático

2 Introducción La CPU ejecuta las instrucciones en orden. El compilador: Puede cambiar el orden de ejecución. Genera el paquete de emisión. Trata de prevenir o reducir los peligros de datos y de control. Paquete de emisión (issue packet): el conjunto de instrucciones que se emiten juntas en un ciclo de reloj. Universidad de Sonora Arquitectura de Computadoras 2

3 Introducción La mayoría de CPUs móviles (tipo ARM) son superescalares con scheduling estático. Universidad de Sonora Arquitectura de Computadoras 3

4 Ejemplo Considerar una CPU MIPS superescalar con scheduling estático y doble emisión. Limitación: solo una instrucción puede ser de tipo R o brinco y la otra puede ser una carga o un store. El paquete de emisión tiene 8 bytes (2 instrucciones). La instrucción R o de brinco se pone primero y luego la instrucción de memoria. Universidad de Sonora Arquitectura de Computadoras 4

5 Ejemplo Si el paquete no se puede completar, la instrucción faltante se reemplaza con una instrucción nop (no operation). Fuente: COD 5, p Universidad de Sonora Arquitectura de Computadoras 5

6 Peligros La forma de tratar los peligros depende de cada arquitectura. En algunas arquitecturas: El compilador quita todos los peligros insertando nops si es necesario. No hay detección de peligros por hardware ni detenciones (stalls). Universidad de Sonora Arquitectura de Computadoras 6

7 Peligros Por ejemplo, en una CPU con doble emisión el compilador convierte el siguiente código: en: add $t0, $t1, $t2 sub $t3, $t0, $t4 add $t0, $t1, $t2 nop # paquete i # paquete i # paquete i # paquete i sub $t3, $t0, $t4 # paquete i + 1 Universidad de Sonora Arquitectura de Computadoras 7

8 En otras arquitecturas: Peligros El hardware detecta peligros de datos verdaderos y genera detenciones entre dos paquetes de emisión. El compilador evita todas las dependencias entre cada instrucción dentro del mismo paquete de emisión. Universidad de Sonora Arquitectura de Computadoras 8

9 Datapath Datapath doble emisión: 1 R/B 1 Mem. Fuente: COD 5, p Universidad de Sonora Arquitectura de Computadoras 9

10 Explicación En cada ciclo se obtienen 2 instrucciones. En cada ciclo se leen hasta 4 registros: 2 de la instrucción R o beq. 1 de la instrucción lw o 2 de sw. Hay 2 ALUs: 1 para la instrucción R/beq. 1 para instrucción lw/sw. La memoria de datos no cambia (en cada ciclo solo hay máximo una instrucción de acceso a memoria). Universidad de Sonora Arquitectura de Computadoras 10

11 Explicación En cada ciclo hasta dos instrucciones necesitan escribir registros: Instrucciones R. Instrucciones lw. La carga sigue teniendo una latencia de uso de 1. El siguiente paquete de emisión a una carga no puede depender de su registro de destino. Universidad de Sonora Arquitectura de Computadoras 11

12 Ejemplo Dado el siguiente código en una CPU MIPS de doble emisión y scheduling estático: loop: lw $t0, 0($s1) # t0 = elemento de arreglo addu $t0, $t0, $s2 # le suma s2 sw $t0, 0($s1) # lo guarda de nuevo addi $s1, $s1, -4 # decrementa el índice bne $s1, $zero, loop Mostrar como se emite el código. Suponer que los brincos se predicen y que el hardware maneja los peligros de control. Universidad de Sonora Arquitectura de Computadoras 12

13 Ejemplo Las instrucciones se reordenan para evitar al máximo los peligros de datos. ALU Mem Ciclo loop: lw $t0, 0($s1) 1 addi $s1, $s1, 4 2 addu $t0, $t0, $s2 3 bne $s1, $zero, loop sw $t0, 4($s1) 4 Los espacios representan instrucciones nop. Universidad de Sonora Arquitectura de Computadoras 13

14 Ejemplo Las 5 instrucciones se ejecutan en 4 ciclos. CPI = 0.8 IPC = 1.25 Lo ideal es CPI = 0.5 y, por lo tanto, IPC = 2. Importante: los nops no se cuentan. Universidad de Sonora Arquitectura de Computadoras 14

15 Loop unrolling Técnica de compilación que consiste en extender (desenrollar) un ciclo. De esta forma se pueden emitir juntas instrucciones de distintas iteraciones. Universidad de Sonora Arquitectura de Computadoras 15

16 Loop unrolling en C Dado el siguiente código en C: for (int i = 0; i < 4; i++) { a[i] = b[i] + c[i]; } Desenrollar el ciclo significa hacer: a[0] = b[0] + c[0]; a[1] = b[1] + c[1]; a[2] = b[2] + c[2]; a[3] = b[3] + c[3]; Universidad de Sonora Arquitectura de Computadoras 16

17 Ciclo original en MIPS li $t5, 0 # i = 0 loop: beq $t5, 4, fin # if i == 4 goto fin lw $t0, 0($s0) # s0 apunta a B[i] lw $t1, 0($s1) # s1 apunta a C[i] add $t2, $t0, $t1 sw $t2, 0($s2) # s2 apunta a A[i] addi $s0, $s0, 4 # apunta a B[i + 1] addi $s1, $s1, 4 # apunta a C[i + 1] addi $s2, $s2, 4 # apunta a A[i + 1] Universidad de Sonora Arquitectura de Computadoras 17

18 Ciclo original en MIPS addi $t5, $t5, 1 # i++ j loop Universidad de Sonora Arquitectura de Computadoras 18

19 Loop unrolling en MIPS lw $t0, 0($s0) # s0 apunta a B[0] lw $t1, 0($s1) # s1 apunta a C[0] add $t2, $t0, $t1 sw $t2, 0($s2) # s2 apunta a A[0] lw $t3, 4($s0) # s0 + 4 apunta a B[1] lw $t4, 4($s1) # s1 + 4 apunta a C[1] add $t5, $t3, $t4 sw $t5, 4($s2) # s2 + 4 apunta a A[1] Universidad de Sonora Arquitectura de Computadoras 19

20 Loop unrolling en MIPS lw $t6, 8($s0) # s0 + 8 apunta a B[2] lw $t7, 8($s1) # s1 + 8 apunta a C[2] add $t8, $t6, $t7 sw $t8, 8($s2) # s2 + 8 apunta a A[2] lw $s3, 12($s0) # s apunta a B[3] lw $s4, 12($s1) # s apunta a C[3] add $s5, $s3, $s4 sw $s5, 12($s2) # s apunta a A[3] Universidad de Sonora Arquitectura de Computadoras 20

21 Loop unrolling Ventajas: Se quita la instrucción beq y se evitan los peligros de control. Las distintas iteraciones son independientes entre si y sus instrucciones se pueden reordenar. Desventaja: Los registros pueden ser insuficientes para desenrollar un ciclo grande. Esto se puede evitar desenrollando el ciclo parcialmente. Universidad de Sonora Arquitectura de Computadoras 21

22 Loop unrolling parcial Ciclo original en C: for (int i = 0; i < 20; i++) { a[i] = b[i] + c[i]; } Ciclo en C desenrollado parcialmente: for (int i = 0; i < 20; i += 4) { a[i] = b[i] + c[i]; a[i + 1] = b[i + 1] + c[i + 1]; a[i + 2] = b[i + 2] + c[i + 2]; a[i + 3] = b[i + 3] + c[i + 3]; } Universidad de Sonora Arquitectura de Computadoras 22

23 Ejemplo Repetir el ejemplo anterior: loop: lw $t0, 0($s1) # t0 = elemento de arreglo addu $t0, $t0, $s2 # le suma s2 sw $t0, 0($s1) # lo guarda de nuevo addi $s1, $s1, -4 # decrementa el índice bne $s1, $zero, loop Suponiendo que el índice del ciclo es múltiplo de 4. Universidad de Sonora Arquitectura de Computadoras 23

24 # Código desenrollado loop: addi $s1, $s1, -16 lw $t0, 0($s1) lw $t3, 4($s1) lw $t2, 8($s1) lw $t1, 12($s1) addu $t0, $t0, $s2 addu $t1, $t1, $s2 addu $t2, $t2, $s2 Ejemplo Universidad de Sonora Arquitectura de Computadoras 24

25 Ejemplo # Código desenrollado continuación addu $t3, $t3, $s2 sw $t3, 4($s1) sw $t2, 8($s1) sw $t1, 12($s1) sw $t0, 16($s1) bne $s1, $zero, loop Universidad de Sonora Arquitectura de Computadoras 25

26 Explicación Ahora hay 4 copias de lw, addu y sw. Un addi y un bne. Hay 3 temporales extras $t1, $t2 y $t3. Estos temporales son para evitar introducir dependencias de nombre entre grupos de lw/addu/sw. Ahora son 14 instrucciones en vez de 5. Universidad de Sonora Arquitectura de Computadoras 26

27 Código scheduled: Ejemplo Fuente: COD 5, p Universidad de Sonora Arquitectura de Computadoras 27

28 Explicación Las 14 instrucciones se ejecutan en 8 ciclos. CPI = 8 / 14 = 0.57 IPC = El CPI está cerca del ideal de 0.5. El costo es usar 4 registros temporales en vez de 1 y utilizar 14 instrucciones en vez de 5. Universidad de Sonora Arquitectura de Computadoras 28

29 Scheduling estático: Conclusiones Las instrucciones corren en el orden dictado por el compilador. Si los peligros no se detectan por hardware, el compilador debe hacerlo. Es más fácil de implementar que el scheduling dinámico. Se usa principalmente en CPUs móviles. Universidad de Sonora Arquitectura de Computadoras 29

Procesadores superescalares. Introducción

Procesadores superescalares. Introducción Procesadores superescalares Introducción Introducción El término superescalar (superscalar) fue acuñado a fines de los 80s. Todas las CPUs modernas son superescalares. Es un desarrollo de la arquitectura

Más detalles

Superescalares. Scheduling dinámico: algoritmo de Tomasulo

Superescalares. Scheduling dinámico: algoritmo de Tomasulo Superescalares Scheduling dinámico: algoritmo de Tomasulo Introducción Scheduling dinámico significa que la CPU (el hardware) puede reordenar las instrucciones. La mayoría de las CPUs de escritorio son

Más detalles

Ejercicios para el 3er parcial

Ejercicios para el 3er parcial Problema 1: Representar la ejecución de las siguientes instrucciones: Add $2, $5, $4 Add $4, $2, $5 Lw $5, 100($2) Add $3, $5, $4 Beq $8, $8, s1 And $1, $2, $3 OR $4, $5, $6 s1: Sub $7, $8, $9 Ejercicios

Más detalles

Forwarding versus Stalling

Forwarding versus Stalling Forwarding versus Stalling Dependencias Considerar el siguiente código: 1.sub $2, $1, $3 2.and $12, $2, $5 3.or $13, $6, $2 4.add $14, $2, $2 5.sw $15, 100($2) Las instrucciones 2 a 5 dependen de $2. Universidad

Más detalles

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

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Paralelismo a nivel de instrucción

Más detalles

El procesador. Datapath para las instrucciones de brinco

El procesador. Datapath para las instrucciones de brinco El procesador Datapath para las instrucciones de brinco Instrucciones de brinco Dos tipos de instrucciones de brincos: 1. Brinco condicional. beq $t0, $t1, Etiqueta ; if t0 == t1 goto Etiqueta 2. Brinco

Más detalles

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

Aspectos avanzados de arquitectura de computadoras Superescalares I. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Superescalares I Facultad de Ingeniería - Universidad de la República Curso 2017 Instruction Level Parallelism Propiedad de un programa. Indica qué tanto

Más detalles

El procesador. Diseño del control

El procesador. Diseño del control El procesador Diseño del control Datapath MIPS simple Universidad de Sonora Arquitectura de Computadoras 2 MIPS simple El datapath anterior cubre instrucciones: Aritméticas-lógicas: add, sub, and, or y

Más detalles

Forwarding versus Stalling

Forwarding versus Stalling Forwarding versus Stalling Dependencias Considerar el siguiente código: 1.sub $2, $1, $3 2.and $12, $2, $5 3.or $13, $6, $2 4.add $14, $2, $2 5.sw $15, 100($2) Las instrucciones 2 a 5 dependen de $2. Universidad

Más detalles

Pipelining. Introducción

Pipelining. Introducción Pipelining Introducción Definición Técnica de implementación. Consiste en ejecutar traslapadas varias instrucciones al mismo tiempo. Universidad de Sonora Arquitectura de Computadoras 2 Ejemplo Pasos para

Más detalles

PROCESADORES DE EMISIÓN MÚLTIPLE

PROCESADORES DE EMISIÓN MÚLTIPLE PROCESADORES DE EMISIÓN MÚLTIPLE Cómo conseguir un CPI1)? Emitiendo varias instrucciones en un mismo ciclo de reloj Dos clases de procesadores de emisión múltiple Superescalares y VLIW (Very Long

Más detalles

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura de Computadores Problemas (hoja 4). Curso Arquitectura de Computadores Problemas (hoja 4). Curso 2006-07 1. Sea un computador superescalar similar a la versión Tomasulo del DLX capaz de lanzar a ejecución dos instrucciones independientes por ciclo

Más detalles

Nombre: Carnet: Examen Parcial 1 (35 Puntos)

Nombre: Carnet: Examen Parcial 1 (35 Puntos) Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC7 Arquitectura del Computador II Trimestre Abril Julio de 008 0/0/008 Nombre: Carnet: Examen Parcial

Más detalles

PROCESADORES DE EMISIÓN MÚLTIPLE

PROCESADORES DE EMISIÓN MÚLTIPLE PROCESADORES DE EMISIÓN MÚLTIPLE Cómo conseguir un CPI1)? Emitiendo varias instrucciones en un mismo ciclo de reloj Dos clases de procesadores de emisión múltiple Superescalares y VLIW (Very Long

Más detalles

ALU. Unidad aritmético-lógica

ALU. Unidad aritmético-lógica ALU Unidad aritmético-lógica Definición La ALU (unidad aritmético-lógica) es el dispositivo que se encarga de realizar: a) Operaciones aritméticas (suma, resta, etc.). b) Operaciones lógicas (and, or,

Más detalles

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso Arquitectura de Computadores Problemas (hoja 2). Curso 2012-13 1. Sea la siguiente secuencia de código de instrucciones en punto flotante para un computador similar al DLX que aplica gestión dinámica de

Más detalles

Ejercicios de Paralelismo a Nivel de Instrucción

Ejercicios de Paralelismo a Nivel de Instrucción Ejercicios de Paralelismo a Nivel de Instrucción J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo

Más detalles

3. SEGMENTACIÓN DEL CAUCE

3. SEGMENTACIÓN DEL CAUCE 3. SEGMENTACIÓN DEL CAUCE 1 SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 2. Etapas del MIPS64 3. Riesgos 4. Operaciones muticiclo 2 SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 3 Conceptos básicos Ciclo

Más detalles

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES Escuela Universitaria de Informática Ingeniería de Computadores ARQUITECTURA DE COMPUTADORES PRÁCTICA Nº 3 DESENROLLADO DE BUCLES INTRODUCCIÓN Este documento contiene el enunciado de la práctica de desenrollado

Más detalles

Definición de prestaciones

Definición de prestaciones Definición de prestaciones En términos de velocidad. Diferentes puntos de vista: Tiempo de ejecución. Productividad (throughput) Medidas utilizadas En función de la duración del ciclo de reloj y del número

Más detalles

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

Introducción a los procesadores ILP (Instruction-Level Parallel) Introducción a los procesadores ILP (Instruction-Level Parallel) Herramientas básicas para conseguir paralelismo entre instrucciones: Encauzamiento (pipelining) Se usa en todo procesador ILP Utilizar varias

Más detalles

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Apellidos Nombre Grupo: Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Instrucciones.- Cada pregunta consta de cinco afirmaciones, y cada una de las afirmaciones puede ser cierta

Más detalles

Tratamiento de Excepciones en MIPS

Tratamiento de Excepciones en MIPS Tratamiento de en MIPS Elías Todorovich Arquitectura I - Curso 2013 Riesgos de Control Las direcciones del PC no son secuenciales (PC = PC + 4) en los siguientes casos: Saltos condicionales (beq, bne)

Más detalles

Arquitectura de Computadores Certamen I

Arquitectura de Computadores Certamen I Universidad de Concepción Facultad de Ingeniería Dpto. Ingeniería Eléctrica Arquitectura de Computadores - 543426 Certamen I 1. Performance [2 ptos.] 30 de Abril del 2003 La Tabla 1 muestra la cantidad

Más detalles

Explotación del paralelismo a nivel de instrucción

Explotación del paralelismo a nivel de instrucción Explotación del paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) Objetivos Plantear y modificar una ruta de datos para un repertorio de instrucciones

Más detalles

Soluciones a ejercicios de Paralelismo a Nivel de instrucción

Soluciones a ejercicios de Paralelismo a Nivel de instrucción Soluciones a ejercicios de Paralelismo a Nivel de instrucción J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores

Más detalles

Tema 10. Introducción a la op5mización de código

Tema 10. Introducción a la op5mización de código Tema 10. Introducción a la op5mización de código Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO

Más detalles

Modelo de von Neumann

Modelo de von Neumann Conceptos básicos Modelo de von Neumann También conocida como arquitectura de Princeton. Propuesta por John von Neumann en 1945. Partes de una computadora digital: Unidad de procesamiento (CPU unidad central

Más detalles

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso Arquitectura de Computadores Problemas (hoja 2). Curso 2006-07 1. El siguiente fragmento de código se ejecuta en un DLX con segmentación: SUB R1,R2,R3 ADD R4,R5,R6 SUB R5,R4,R8 ADD R7,R2,R3 ADD R9,R7,R3

Más detalles

Organización de Computadoras. Principios de Conjuntos de Intrucciones

Organización de Computadoras. Principios de Conjuntos de Intrucciones Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load

Más detalles

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX Arquitectura de Sistemas Paralelos 3 er curso de Ingeniería Técnica en Informática de Sistemas Práctica: Procesador segmentado DLX. Técnicas de optimización Curso 2005/2006 OBJETIVOS En esta práctica se

Más detalles

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

Ejercicio 1. Considere el siguiente fragmento en ensamblador: UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Para la realización del presente examen se dispondrá de 1:30 horas. NO se podrán

Más detalles

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

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de

Más detalles

El procesador. Datapath y control

El procesador. Datapath y control El procesador Datapath y control Introducción En esta parte del curso contiene: Las principales técnicas usadas en el diseño de un procesador. La construcción del datapath y del control. Estudiaremos la

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Segmentación (Pipeline) MIPS 64 7. Memoria Caché 8. Arquitecturas RISC Arquitectura

Más detalles

Paralelismo al nivel de instrucciones

Paralelismo al nivel de instrucciones Paralelismo al nivel de instrucciones Arquitectura de Computadoras M. C. Felipe Santiago Espinosa Mayo de 2017 Qué es la segmentación o pipelining? O Técnica para la generación de paralelismo en microprocesadores.

Más detalles

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; }

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; } PROBLEMA 1 Memoria Cache (10 puntos) Supongamos un sistema con un procesador que lanza direcciones de 32 bits. Dispone de dos caches, una para instrucciones y otra para datos, de 8 KBytes cada una. La

Más detalles

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones Instruction Set Architecture (ISA) Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad

Más detalles

1.2. Implementación de Procesadores Superescalares

1.2. Implementación de Procesadores Superescalares 1.2. Implementación de Procesadores Superescalares Técnicas dinámicas: Complejidad alta desde el p. de v. de estructura o arquitectura Aquí las instrucciones son las normales o clásicas : compatibilidad

Más detalles

Tema 2. Diseño del repertorio de instrucciones

Tema 2. Diseño del repertorio de instrucciones Enunciados de problemas Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 10 Tema 2: Hoja: 3 / 10 Base teórica Al diseñar un computador, uno

Más detalles

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

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 P2. (3 puntos) El siguiente código en ensamblador recorre un vector v, que comienza en la posición 0, calculando para cada v[i] el número de combinaciones que pueden darse con v[i] elementos tomados de

Más detalles

Ejercicios Jerarquía de Memoria

Ejercicios Jerarquía de Memoria Ejercicios Jerarquía de Memoria Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Memoria caché CPU cache Memoria principal 2. Memoria

Más detalles

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1;

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1; ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERIA TECNICA EN INFORMATICA DE SISTEMAS. BOLETÍN DE EJERCICIOS DE Introducción al paralelismo. Curso 04/05 (SOLUCIONES) 1. Inicialmente R3 = R2 + 400. como

Más detalles

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

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones. Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones. Aprovecha el paralelismo entre instrucciones en una corriente secuencial de instrucciones.

Más detalles

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores II Clase #16 Arquitectura de Computadores II Clase #16 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Organización general Superescalar Varios pipelines. 2 operaciones enteras,

Más detalles

Planificación estática

Planificación estática Planificación estática Planificación de bloques básicos Planificación de bucles Planificación global Serafín Benito AIC: Planificación estática 1 Planificación de bloques básicos.. Técnica sencilla. Eficiencia

Más detalles

UNIDAD 2: Instrucciones: el lenguaje de las computadoras.

UNIDAD 2: Instrucciones: el lenguaje de las computadoras. UNIDAD 2: Instrucciones: el lenguaje de las computadoras. 2.1 Introducción Para comandar una computadora se le debe hablar en su lenguaje. Las palabras del lenguaje de una máquina son llamadas instrucciones,

Más detalles

Universidad de Sonora Arquitectura de Computadoras 2

Universidad de Sonora Arquitectura de Computadoras 2 Memoria Cachés Introducción Caché es el nivel de memoria situada entre el procesador y la memoria principal. Se comenzaron a usar a fines de los años 60s. Hoy en día, todas la computadoras incluyen cachés.

Más detalles

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados 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

Más detalles

Arquitectura de Computadoras. Clase 8 Procesadores superescalares

Arquitectura de Computadoras. Clase 8 Procesadores superescalares Arquitectura de Computadoras Clase 8 Procesadores superescalares Procesador Escalar Ejecución secuencial de instrucciones F: búsqueda D: decodificación F D ALU F D ALU F D ALU Instrucción 1 Instrucción

Más detalles

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

Más detalles

Memoria. Rendimiento del caché

Memoria. Rendimiento del caché Memoria Rendimiento del caché Medidas El tiempo de CPU se divide en: Ciclos de reloj usados en ejecutar el programa. Ciclos de reloj usados en detenciones (stalls) del sistema de memoria. La ecuación:

Más detalles

Memoria. Otros temas sobre cachés

Memoria. Otros temas sobre cachés Memoria Otros temas sobre cachés Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias de reemplazo de bloque. 3. Cachés multinivel. Universidad de Sonora Arquitectura de Computadoras 2 Localizando

Más detalles

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones Arquitectura de Computadoras Clase 4 Segmentación de Instrucciones Segmentación de cauce: Conceptos básicos La segmentación de cauce (pipelining) es una forma particularmente efectiva de organizar el hardware

Más detalles

Segmentación de instrucciones

Segmentación de instrucciones 7HPD6HJPHQWDFLyQGH,QVWUXFFLRQHV 2EMHWLYRV 5HIHUHQFLDV (WDSDVGHXQFDXFH 3DURQHV HVWUXFWXUDOHV SRUGHSHQGHQFLDGHGDWRV SRUGHSHQGHQFLDGHFRQWURO 0RGLILFDFLyQGHXQFDXFHSDUDRSHUDFLRQHVPXOWLFLFOR (MHPSORHO0,365 1

Más detalles

Arquitectura de Computadores - 2001

Arquitectura de Computadores - 2001 IV. Segmentación o Pipelining Alternativas de Implementación de Procesador 1. Procesador Uniciclo CPI = 1 Pero Período de Reloj Grande 2. Procesador Multiciclo CPI > 1 Pero Período de Reloj más Pequeño

Más detalles

Multiplicación de matrices con DLX

Multiplicación de matrices con DLX Multiplicación de matrices con DLX Universidad de Salamanca Depto. Informática y Automática Arquitectura e Ingeniería de computadores Trabajo presentado por: Sergio Garrido Chamorro Santiago González Pérez

Más detalles

TEMA 1: ARQUITECTURAS ENCADENADAS AVANZADAS

TEMA 1: ARQUITECTURAS ENCADENADAS AVANZADAS TEMA 1: ARQUITECTURAS ENCADENADAS AVANZADAS 1.1 Enfoques del paralelismo a nivel de instrucciones: Enfoque superescalar, VLIW, supersegmentado (superpipeline). 1.2 Procesadores RISC superescalares: coste

Más detalles

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Introducción. Universidad de Sonora Arquitectura de Computadoras 2 Memoria virtual Introducción Memoria virtual es un mecanismo que permite que la memoria principal parezca mas grande que su tamaño físico. Permite ejecutar programas mas grandes que la memoria física disponible.

Más detalles

INTRUCCIONES: LENGUAJE MAQUINA

INTRUCCIONES: LENGUAJE MAQUINA INTRUCCIONES: LENGUAJE MAQUINA 1.- INTRODUCCION Conceptos importantes Instrucción: Orden al hardware del Computador Repertorio de Instrucciones Lenguaje Máquina (ML) Lenguaje Ensamblador (AL) Lenguaje

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal: a) 010011 b) 100111 Ejercicio 3 Dada la siguiente expresión

Más detalles

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization

Más detalles

Unidad 3. Facultad de Ciencias Departamento de Electrónica

Unidad 3. Facultad de Ciencias Departamento de Electrónica Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad 3 Instrucciones: Lenguaje de la Computadora Dra. Ruth M. Aguilar Ponce Primavera Unidad 3 Operaciones del

Más detalles

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

Más detalles

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación Segmentación: Mejora del rendimiento IEC UTM Moisés E. Ramírez G. 1 Segmentación La segmentación (pipelining) es una técnica de implementación por la cual se solapa la ejecución de múltiples instrucciones.

Más detalles

Riesgos de Control. Problemas con el Control de Flujo Saltos en el MIPS R3000 Métodos de Resolución

Riesgos de Control. Problemas con el Control de Flujo Saltos en el MIPS R3000 Métodos de Resolución Arquitectura (08/09) Riesgos Control Problemas con el Control Flujo Saltos en el MIPS R3000 Métodos Resolución Reducción la Latencia Predicción Salto Salto Retardado 53 Arquitectura (08/09) Problemas con

Más detalles

Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso

Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso 2006-07 1. Sea la siguiente secuencia de código de instrucciones en punto flotante para un computador similar al DLX que aplica gestión

Más detalles

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S. Nombre: SOLUCIÓN Madrid, 24 de abril de 2008. NOTAS: Duración: 60 minutos. Se puede hacer a lápiz. No se permiten apuntes ni calculadora. No se permite desgrapar las hojas. 1. (2 puntos) Indique cuáles

Más detalles

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012 Apellidos Nombre Grupo Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012 Instrucciones.- Cada pregunta consta de cinco afirmaciones, y cada una de las

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador Ejercicios del tema 4. El procesador Estructura del procesador elemental WepSIM Address Bus Data Bus Control Bus C0 Ta Internal Bus RA RB RC LC MAR T9 Memory MRdy BE ADDR DATA R W A31-A0 BE3-BE0 D31-D0

Más detalles

Unidad 9. Daniel Rojas UTN. Thursday, July 31, 14

Unidad 9. Daniel Rojas UTN. Thursday, July 31, 14 Unidad 9 Daniel Rojas UTN Manejo de Memoria La memoria consiste en un punto central de los sistemas modernos de computadora. Consiste en arreglos de bytes, cada uno con su propia dirección. Ciclo de Instrucciones

Más detalles

Cómo ejecuta el hardware las operaciones básicas (suma, resta, división y multiplicación).

Cómo ejecuta el hardware las operaciones básicas (suma, resta, división y multiplicación). Objetivos Cómo ejecuta el hardware las operaciones básicas (suma, resta, división y multiplicación). Operaciones con números enteros. Operaciones con números reales. Universidad de Sonora 2 Suma Sumar

Más detalles

MIPS. Universidad de Sonora 2

MIPS. Universidad de Sonora 2 MIPS MIPS (Microprocessor without Interlocked Pipeline Stages) es una familia de microprocesadores RISC desarrollada por MIPS Technologies desde 1981 y por Imagination Technologies desde 2012. Principio

Más detalles

Fig Riesgos por dependencias de datos.

Fig Riesgos por dependencias de datos. 5.4 Riesgos por dependencia de datos Hasta el momento se han considerado secuencias de código en las que no hay dependencias de datos, en esos casos la implementación mostrada en la figura 5.23 trabaja

Más detalles

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

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713 SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713 OBJETIVOS. En esta práctica se trata de estudiar dos de las técnicas de planificación estática más importantes:

Más detalles

La Unidad de Control y el Camino de Datos

La Unidad de Control y el Camino de Datos Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 Contenido Veremos el diseño completo de un subconjunto

Más detalles

Introducción a paralelismo a nivel de instrucción

Introducción a paralelismo a nivel de instrucción Introducción a paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo

Más detalles

Rendimiento y sus factores

Rendimiento y sus factores Rendimiento y sus factores Rendimiento 1. m. Producto o utilidad que rinde o da alguien o algo. 2. m. Proporción entre el producto o el resultado obtenido y los medios utilizados. Real Academia Española

Más detalles

Rendimiento de computadores

Rendimiento de computadores + Prof. José María Foces Morán Dept. IESA Universidad de León Rendimiento de computadores Tiempo de ejecución Tiempo de CPU Rendimiento comparativo Ley de Amdahl Ley de Gustaffson + Computador síncrono

Más detalles

TEMA 3 PROCESADORES VLIW (Very Long Instruction Word)

TEMA 3 PROCESADORES VLIW (Very Long Instruction Word) TEMA 3 PROCESADORES VLIW (Very Long Instruction Word) Esta arquitectura de CPU implementa una forma de paralelismo a nivel de instrucción. Es similar a las arquitecturas superescalares, ambas usan varias

Más detalles

Paralelismo en monoprocesadores. Introducción

Paralelismo en monoprocesadores. Introducción Paralelismo en monoprocesadores Introducción Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura Computadoras y técnicas Digitales Carrera: Ingeniería Sistemas Ciclo: 4º año 1 Técnicas para mejorar el

Más detalles

Procesador Segmentado

Procesador Segmentado 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

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión 2 Diego. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice 1. Segmentación

Más detalles

Departamento de Automática

Departamento de Automática Departamento de Automática Tema 3 Paralelismo a nivel de instrucción (I) Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso 2010-2011 Tema 3. Paralelismo a Nivel de Instrucción I Planificación

Más detalles

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1 Arquitectura I Sistema de memoria 1 1. En un espacio de direcciones de 64 Kbytes deben colocarse los s de memoria que se indican. Suponer que el direccionamiento de la memoria se hace al byte. Dibujar

Más detalles

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados.

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados. TEMA 9: LANZAMIENTO MÚLTIPLE DE INSTRUCCIONES 1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados. Bibliografía: J.L. Hennessy & D. A. Patterson. Computer

Más detalles

Laboratorio 2: Uso de un Simulador MIPS32: PCSpim

Laboratorio 2: Uso de un Simulador MIPS32: PCSpim Laboratorio 2: Uso de un Simulador MIPS32: PCSpim Objetivos. Dominar el uso de un simulador assembler y herramientas para la depuración de programas. Analizar la creación de frames en la invocación de

Más detalles

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017 Arquitectura de Computadoras I Ingeniería de Sistemas Curso 217 Práctica de Laboratorio: Microprocesador MIPS Segmentado El objetivo de esta práctica es implementar el microprocesador MIPS (visto en clase

Más detalles

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

Implementación de instrucciones para el procesador MIPS de ciclo único. Implementación de instrucciones para el procesador MIPS de ciclo único. 1. Introducción. El MIPS (Microprocessor without Interlock Pipeline Stages) es un conocido tipo de procesador de arquitectura RISC

Más detalles

Tema 7: Procesadores superescalares

Tema 7: Procesadores superescalares Tema 7: Procesadores superescalares Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA Tema 7: Procesadores superescalares

Más detalles

Organización de Computadoras. Algunas temas tomados en 2ª evaluación integradora

Organización de Computadoras. Algunas temas tomados en 2ª evaluación integradora Organización de Computadoras Algunas temas tomados en 2ª evaluación integradora Temas de Arquitecturas 1- Describa mediante ejemplos los modos de direccionamiento que conozca. 2- Describa los distintos

Más detalles

Jerarquía de memoria y memoria caché Ejercicios resueltos

Jerarquía de memoria y memoria caché Ejercicios resueltos Jerarquía de memoria y memoria caché Ejercicios resueltos Ejercicio 1. Sea un computador de 32 bits con una memoria caché de 256 KB, líneas de 64 bytes y un tiempo de acceso de 5 ns. La caché es asociativa

Más detalles

Procesadores de palabra de instrucción muy larga (VLIW) v.2012

Procesadores de palabra de instrucción muy larga (VLIW) v.2012 Procesadores de palabra de instrucción muy larga (VLIW) v.2012 William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 13: Paralelismo a nivel de instrucciones y procesadores

Más detalles

Técnicas hardware para extraer más paralelismo de instrucciones

Técnicas hardware para extraer más paralelismo de instrucciones Técnicas hardware para extraer más paralelismo de instrucciones El paralelismo extraído por el compilador está limitado por las bifurcaciones que no son fácilmente predecibles Diversas técnicas ayudan

Más detalles

Procesadores Superescalares

Procesadores Superescalares Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Prof. Mónica Parada Segmentación de Cauce y Paralelismo Multiples unidades de

Más detalles

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

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique

Más detalles