Superescalares. Scheduling estático
|
|
- María Poblete del Río
- hace 5 años
- Vistas:
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 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 detallesSuperescalares. 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 detallesEjercicios 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 detallesForwarding 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 detallesTutorí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 detallesEl 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 detallesAspectos 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 detallesEl 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 detallesForwarding 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 detallesPipelining. 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 detallesPROCESADORES 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 detallesArquitectura 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 detallesNombre: 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 detallesPROCESADORES 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 detallesALU. 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 detallesArquitectura 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 detallesEjercicios 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 detalles3. 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 detallesARQUITECTURA 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 detallesDefinició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 detallesIntroducció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 detallesArquitectura 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 detallesTratamiento 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 detallesArquitectura 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 detallesExplotació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 detallesFundamentos 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 detallesSoluciones 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 detallesTema 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 detallesModelo 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 detallesArquitectura 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 detallesOrganizació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 detallesOBJETIVOS 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 detallesEjercicio 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 detallesArquitecturas 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 detallesEl 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 detallesArquitectura 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 detallesParalelismo 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]; }
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 detallesISA (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 detalles1.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 detallesTema 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 detallesADDI 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 detallesEjercicios 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 detallesint 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 detallesQué 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 detallesArquitectura 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 detallesPlanificació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 detallesUNIDAD 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 detallesUniversidad 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 detallesARQUITECTURA 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 detallesArquitectura 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 detalles2. 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 detallesMemoria. 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 detallesMemoria. 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 detallesArquitectura 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 detallesSegmentación de instrucciones
7HPD6HJPHQWDFLyQGH,QVWUXFFLRQHV 2EMHWLYRV 5HIHUHQFLDV (WDSDVGHXQFDXFH 3DURQHV HVWUXFWXUDOHV SRUGHSHQGHQFLDGHGDWRV SRUGHSHQGHQFLDGHFRQWURO 0RGLILFDFLyQGHXQFDXFHSDUDRSHUDFLRQHVPXOWLFLFOR (MHPSORHO0,365 1
Más detallesArquitectura 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 detallesMultiplicació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 detallesTEMA 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 detallesIntroducció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 detallesINTRUCCIONES: 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 detallesUNIVERSIDAD 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 detallesEstructura 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 detallesUnidad 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 detalles2. 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 detallesSegmentació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 detallesRiesgos 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 detallesArquitectura 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 detallesESTRUCTURA 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 detallesApellidos 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 detallesPlataformas 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 detallesEjercicios 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 detallesUnidad 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 detallesCó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 detallesMIPS. 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 detallesFig 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 detallesSISTEMAS 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 detallesLa 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 detallesIntroducció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 detallesRendimiento 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 detallesRendimiento 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 detallesTEMA 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 detallesParalelismo 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 detallesProcesador 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 detallesPlataformas 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 detallesDepartamento 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 detallesUniversidad 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 detalles1. 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 detallesLaboratorio 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 detallesArquitectura 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 detallesImplementació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 detallesTema 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 detallesOrganizació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 detallesJerarquí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 detallesProcesadores 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 detallesTé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 detallesProcesadores 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 detallesEjercicios 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