ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 3.

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

Download "ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 3."

Transcripción

1 ARQUIECURA DE SISEMAS PARALELOS I. 4º INGENIERÍA INFORMÁICA. PRÁCICA 3. BLOQUEOS DE COROL, DESENROLLADO DE BUCLES Y PREDICCIÓN DINÁMICA DE SALOS. OBJEIVOS. En esta práctica se trata de estudiar teóricamente, y manejar el simulador WinDLX, para analizar una de las técnicas estáticas más potentes para reducir los ciclos de bloqueo de datos y de control: el desenrollado de bucles. ambién usaremos la herramienta Visual BB para estudiar y comprender la técnica dinámica de predicción de saltos BB, analizando los demás tipos de técnicas de predicción. odo lo anterior estará sometido a una fase de optimización, basada en técnicas simples como reordenación de código, supresión de dependencias con gasto de nuevos registros, etc., que intentará minimizar en lo posible los ciclos de bloqueo. IRODUCCIÓN EÓRICA 1.- Desenrollado de bucles Vamos a usar como ejemplo el bucle SAXPY con multiplicación (ver anexo 1) y analizaremos los bloqueos de control que se producen en la herramienta de simulación WinDLX. Analizaremos teóricamente (en papel) cómo se comportarían procesadores DLX con la implementación hardware de otras soluciones y entraremos más en detalle en la solución del desenrollado de bucles. La técnica estática del desenrollado de bucles consiste agrupar varias iteraciones de un bucle en una única iteración (con más instrucciones que la iteración original, claro está) de un nuevo bucle. Al ejecutar en una sola iteración del nuevo bucle varias iteraciones del bucle inicial, y mediante el uso de nuevos registros temporales, la reordenación del código y la variación de los direccionamientos a memoria en función del incremento de los punteros, se reducirá el número de bloqueos, y se acelerará la ejecución. Hay que tener en cuenta que esta técnica no se puede aplicar directamente a todos los bucles, sino solamente a los llamados paralelizables, es decir, aquellos donde las iteraciones se pueden de alguna forma ejecutar en paralelo. Por ejemplo, cuando las iteraciones son independientes, el bucle es claramente paralelizable; pero cuando una iteración depende de los resultados de la anterior, no se puede desenrollar fácilmente tal bucle. Por ejemplo, el bucle normal para calcular la serie de Fibonacci no se puede desenrollar, puesto que el término i-ésimo depende de los anteriores. Pero el SAXPY o el bucle ejemplo que trataremos a continuación son claramente paralelizables: int i, a, x[m], y[m]; // aquí se inicializan a y los arrays. for (i=0; i<m; i++) y[i]= x[i] * a ; Vamos a mostrar el desenrollado de 4 iteraciones de tal bucle trabajando con un lenguaje de alto nivel como el C. Sencillamente como queremos que se ejecuten en paralelo 4 iteraciones, podríamos rescribir el bucle como: for (i=0; i<m; i+=4) { y[i+0]= x[i+0] * a ; y[i+1]= x[i+1] * a ; y[i+2]= x[i+2] * a ; y[i+3]= x[i+3] * a ; } De esa forma el bucle original en ensamblador sería algo como: bucle_orig: R2, 0(R1) MUL (R3)0, R2 ADDI R1, R1, 4 ADDI R3, R3, 4 SLI R7, R1, fin_array_x; esta constante apunta al final del array x[m] BNEZ R7, bucle_orig Mientras que el bucle desenrollado sería algo como: bucle_desen: MUL R2, 0(R1) (R3)0, R2 pág 1de 7

2 MUL MUL MUL R2, 4(R1) (R3)4, R2 R2, 8(R1) (R3)8, R2 R2, 12(R1) (R3)12, R2 ADDI R1, R1, 4*4 ADDI R3, R3, 4*4 SLI R7, R1, fin_array_x BNEZ R7, bucle_desen Nótese que han desaparecido una buena cantidad de instrucciones de incremento de punteros (R1 y R3) y de saltos del bucle original de la traza del código desenrollado: son las llamadas instrucciones de exceso o sobrecarga (en inglés overhead). Nótese también que tal cantidad guarda una proporción directa con el número de iteraciones desenrolladas. Sin embargo las instrucciones de cómputo y acceso a memoria (las realmente útiles en este bucle) siguen siendo las mismas. Pero para obtener más velocidad en la ejecución, se pueden reducir los bloqueos de datos reordenando el bucle desenrollado. La forma más fácil es entrelazar las diferentes iteraciones (sólo las instrucciones realmente útiles), de forma que las instrucciones que tienen dependencia RAW se alejan: bucle_entrel: R2, 0(R1) R20, 4(R1) R21, 8(R1) R22, 12(R1) MUL MUL R20, R20, R25 ; R25 contiene el valor de a MUL R21, R21, R25 ; R25 contiene el valor de a MUL R22, R22, R25 ; R25 contiene el valor de a (R3)0, R2 (R3)4, R20 (R3)8, R21 (R3)12, R22 ADDI R1, R1, 4*4 ADDI R3, R3, 4*4 SLI R7, R1, fin_array_x BNEZ R7, bucle_entrel Notar como se han renombrado registros en este proceso para que las dependencias ficticias (WAW y WAR) desaparezcan. Por tanto, la cantidad de iteraciones que se pueden desenrollar depende claramente de la cantidad de registros disponible (en un procesador CISC este proceso es prácticamente imposible). En el proceso anterior, se ha supuesto que M es divisible por 4. En caso de que no fuera así habría que dejar unas cuantas iteraciones (exactamente el resto de M/4, es decir M mod 4, o M%4) fuera de la iteración del nuevo bucle. Por ejemplo, se suelen dejar antes del nuevo bucle (lo que sería un código de comienzo, preámbulo o arranque, en inglés startup): for (i=0; i<m%4; i++) y[i]= x[i] * a ; for (i=m%4; i<m; i+=4) { y[i+0]= x[i+0] * a ; y[i+1]= x[i+1] * a ; y[i+2]= x[i+2] * a ; y[i+3]= x[i+3] * a ; } El alumno debe hacer como ejercicio el mismo desenrollado pero trabajando en ensamblador, para ello, tener en cuenta el siguiente guión: 1. Copiamos n veces la iteración, renombrando registros para cada iteración. Sea iteracione s el número de nuevas iteraciones. Así, (iteraciones mod n) son las iteraciones que faltan para n completar el total. Pág 2 de 7

3 Por tanto el número total de iteraciones será: iteraciones iteraciones = + iteraciones mod n n 2. Eliminamos los saltos intermedios (el último no). 3. Sustituimos los decrementos poniendo en los almacenamientos dicha operación como inmediato. Bucle: LD SD 0(R1),F4 SD 8(R1),F4 SD 8*(n-1)(R1),F4 SUBI R1,R1,#n*8 RBNEZ R1,Bucle 4. Reorganizamos el código de las n iteraciones como mejor convenga. Entrelazar es la forma más fácil. ambién ayuda subir las instrucciones de overhead hacia arriba para evitar riesgos RAW. Por ejemplo, sea 1 salto por cada 5 instrucciones (3 de cómputo y acceso a memoria, una de incremento de puntero y un salto), es decir un 20% de saltos. Realizando un desenrollado de 4 iteraciones quedaría 1 salto por cada 4*3+2=14 instrucciones, es decir, un 7%, casi un tercio. Como el CPI control es proporcional a la frecuencia o porcentaje de saltos, estamos reduciéndolo aprox. a la tercera parte. Además, si reordenando se consiguieran 0 bloqueos de datos en 4 iteraciones conseguiríamos CPI datos =0, lo que acercaría el CPI al ideal de 1 instr/ciclo. Los cambios a realizar a un bucle deben ser útiles para tres cosas: 1. Darse cuenta de la cantidad de paralelismo que puede o no extraerse de un código. 2. Intentar fijar las condiciones por las cuales pueden intercambiarse las instrucciones. Para ello, el compilador debería: - Ajustar los offset para cambiar direcciones, - determinar qué iteraciones son independientes para poder desenrollarlas, - usar registros diferentes para evitar dependencias, - analizar las direcciones de memoria que acceden los LD/SD para poder saber si son intercambiables, - atender a las dependencias reales y conservar su orden, - 3. Intentar resolver o eliminar las dependencias ficticias. 4. Intentar eliminar los ciclos de bloqueo por dependencias reales. 2.- Predicción dinámica de saltos. En esta práctica suponemos que trabajamos con un procesador RISC DLX, dotado en su fase ID del hardware necesario para resolver los saltos. Recordar que la técnica de implementación de saltos que Apuesta por No omado () es la solución inherente al pipeline básico. En ella se opta por suponer que el salto nunca se tomará y se comienza a ejecutar la siguiente instrucción en memoria tras el salto. Sólo cuando la apuesta sea errónea (salto sea ) se perderá un ciclo, repitiendo IF de la instrucción de la otra rama. Sin embargo cuando se dispone de un caché de predicción de saltos (Branch Prediction Buffer, BPB) y de otro caché de direcciones de destino de los saltos (Branch arget Buffer, BB), se puede predecir dinámicamente el comportamiento de un salto. Con tal predicción se podrán buscar y ejecutar las instrucciones de la rama predicha por la BPB, según la dirección de destino que indique la BB. De esta manera, al hacer IF de la instrucción de salto, se consultaría la BB y sabríamos no sólo la predicción, sino la dirección de la siguiente instrucción a ejecutar, de manera que en el siguiente ciclo comenzaría la instrucción predicha, sin bloqueos. Los bloqueos vendrían cuando la predicción fallara o no se acertara en la caché BB. Cuando hay un fallo de acceso a la caché BB (el salto no está en la caché y no hay predicción) o un fallo de predicción, es en la etapa ID cuando esto es detectado, incrementándose el CPI para estos casos. En el siguiente gráfico se especifica cuántos ciclos de bloqueo se van a considerar para cada caso en esta práctica. Se supone que existe una BB que almacena la dirección predicha de todos los saltos (ya sean predichos o ) y que se accede en IF. La BPB almacena una información completa de la historia de los saltos y se accede en ID, en paralelo con la resolución del salto, de forma que la actualización de la máquina de estados de predicción se hace justo al final de tal fase ID. Pág 3 de 7

4 Enviar PC a caché de instr y BB NO Acierto BB? SI IF NO Fue salto? SI Enviar PC predicho a IF y BB ID Ejecución normal. 0 ciclos de bloqueos SI Error de predicc.? NO Actualizar BB 1 ciclo de bloqueo si 2 ciclos de bloqueo si Mala predicción. Actualizar BB si cambia la pred. 1 ciclo de bloqueo 2 ciclos de bloqueos si cambia la pred. Predicción correcta 0 ciclos de bloqueos EXE ESUDIO PREVIO 1.- Desenrollado de bucles En el anexo 1 se encuentra el bucle SAXPY en código DLX. Realice el desenrollado sistemático de 2 y 3 iteraciones (son dos desenrollados) del bucle. 2.- Predicción dinámica de saltos (BB) Se va a manejar un simulador llamado VisualBB que simula la evolución de las máquinas BB (Branch arget Buffer, Buffer de destino de saltos) para distintos bits de historia (de 1 a 16) y bits de correlación (de 0 a 16). La entrada que recibe VisualBB para simular la evolución de la BB es muy simple, pero suficiente para entender el mecanismo de las BB. Se trata de una traza de ejecución con el formato llamado din : FORMAO DE LA RAZA: Está compuesto por dos campos. El primer campo está formado por un carácter e indica el tipo de acceso a la memoria caché que se realiza. El segundo campo (separado por un espacio) indica la dirección del acceso y se presenta en formato hexadecimal, con la opción de tener como prefijo 0x, siendo de longitud máxima de 32 bits. En el caso de que fuera menor de 32 bits se le añadirían ceros a la izquierda. Los diferentes caracteres que permite este formato para indicar el tipo de acceso son: - 0 : lectura, realiza una lectura de datos en la caché. - 1: escritura, realiza una escritura de datos en la caché. - 2: instrucción, realiza una lectura de instrucciones en la caché. Para esta práctica sólo es necesario usar el tipo de acceso 2. Con esto, Visual BB detecta qué saltos hay el programa por los cambios de PC (si un salto nunca se toma, Visual BB sólo tiene la opción de considerar que no es un salto). Para ello realiza una comprobación nada más cargar la traza, dando una pasada completa a la traza. En el ejemplo que se va a simular se usarán máquinas de 2 bits de historia. La máquina de 2 bits es la de la figura. 0/ 1/ 2/ 3/ Pág 4 de 7

5 El ejemplo que se va a simular consistirá en dos bucles anidados, es decir se trata de un programa como: Bucle: ; más código del bucle interno Branch1 R4, Bucle ; más código del bucle externo Branch2 R3, Bucle Nótese que el tipo de salto (BEQZ, BNEZ, etc.) no tiene importancia en esta práctica, ya que sólo se pretende predecir si es o (omado o No omado). La etiqueta Bucle sirve para el bucle externo y el interno. Las direcciones son las siguientes: la etiqueta Bucle es la 0x20, la dirección del primer salto es la 0x30 y la del segundo 0x40; o sea el programa ensamblado sería (los caracteres 0x no son necesarios en la traza, por defecto ésta es hexadecimal): 20: instrucción 1 24: instrucción 2 28: instrucción 3 2C: instrucción 4 30: instrucción de salto: Si condición salta a 20 34: instrucción 5 38: instrucción 6 3C: instrucción 7 40: instrucción de salto: Si condición salta a 20 44: instrucción 8 48: instrucción 9 4C: instrucción 10 50: instrucción 11 De esa forma la traza del programa irá pasando por las direcciones 20 a la 30 para iterar el primer bucle y de la 20 a la 40 para el segundo, englobando al primer bucle. El simulador de BB tiene almacenado el comportamiento de los saltos en un array binario, donde 1 es y 0. En la siguiente figura se muestra el final de la ejecución de otro ejemplo diferente de bucles anidados. El asterisco * indica que Visual BB ha detectado que tal instrucción es un salto La pantalla se divide en cuatro partes: Estado, donde se muestra la historia de las últimas operaciones realizadas por el simulador. Caché BB. Aparece el contenido de cada línea así como el estado de las máquinas. En este caso por tener 2 bits de correlación tiene 4 columnas y por tener 2 bits de historia, en cada casilla (fila y columna) se tiene una máquina de 2 bits, o sea de 4 estados posibles llamados sencillamente 0, 1, 2 y 3. ambién aparece el registro de correlación o desplazamiento que se inicializa (por defecto) a 00 (,) Ventana de traza, donde aparece el fichero de traza con un * en cada instrucción de salto. Las estadísticas separadas por categorías de fallos por distintas causas. Haciendo doble click en una línea de la BB se puede ver el estado de las máquinas y la siguiente predicción para dicho salto. Desde la barra de tareas o los menús se puede modificar el número de bits de historia, el número de bits de correlación y el tamaño de la caché (número de líneas). La ejecución de la traza puede hacerse paso a paso, de una vez o de tramo en tramo. El alumno debe previamente a la realización de la práctica. Comprender la evolución de la máquina de estados de dos bits y Calcular cuál sería la traza de ejecución del ejemplo dado para 5 iteraciones del bucle externo y 5 del interno. Pág 5 de 7

6 REALIZACIÓN EN EL LABORAORIO 1. Bloqueos de control y desenrollado de bucles. a) El simulador WinDLX sólo permite una técnica de tratamiento de los saltos. Comprobar cuál es ésta, viendo los bloqueos de control y el comportamiento del salto cuando el salto se toma y cuando no se toma. Calcular el CPI bloqueocontrol y la duración de las 10 iteraciones (quitar los NOP de tal código que introduzca el simulador o estén en el anexo). b) Simular en el WINDLX el código desenrollado de 2 iteraciones, reordenando el código para minimizar bloqueos de datos. Calcular el CPI, CPI bloqueodatos, CPI bloqueocontrol, CPI estructural del programa (bucle SAXPY) completo Hallar la aceleración entre a) y b). c) Simular en el WINDLX el código desenrollando sistemáticamente de 3 iteraciones del mismo. Notar que 3 no es divisor de 10 y sobra una iteración (se suele poner antes del bucle). y calcular el CPI, CPI bloqueodatos, CPI bloqueocontrol, CPI estructural. del programa completo. Hallar la aceleración entre a) y c). 2. Predicción dinámica de saltos: BB. Primer ejemplo: Ejecutar el programa VisualBB. Crear el fichero de traza correspondiente al bucle anidado descrito en la preparación de esta parte para el caso de 5 iteraciones del bucle interior y 5 del bucle exterior. Probar con números de línea siempre potencias de 2. Entender la evolución de la BB. Anotar el porcentaje de aciertos y finalmente calcular el número de ciclos de bloqueo en función de lo explicado en el apartado de preparación de la práctica para un DLX. Contestar a las siguientes cuestiones: a) Ejecutar la traza para una BB(2,2) de 2 bits de historia y 2 de correlación con 8 líneas de BB, con estado inicial de las máquinas de estado 2, y bits de correlación inicial también a 0. Cuál es el CPI bloqueos del programa (usar para ello el modelo del DLX de la página 1, distinguiendo a qué casos corresponde cada fallo de BB)? El porcentaje de acierto en la BB? El porcentaje de acierto de la predicción? b) Cuál es el estado de la máquina de la columna apuntada por, en el registro de correlación, para el salto 0x30 tras la ejecución completa del primer bucle interno? c) Ejecutando la traza para una BB de 4 líneas, Qué máquina (de que columna y línea) predice el salto 40 la tercera vez que se va a ejecutar (antes de ejecutarlo, puesto que se está prediciendo)? Qué predice? Acertó? ANEXO 1 ;*********** WINDLX PRACICA 4 A.S.P. 1 ************* ;*********** EVALUACION DE BLOQUEOS DE DAOS Y COROL *************.data ;*** ARRAY PARA X, Y arrayx:.word 1,2,3,4,5,6,7,8,9,10 ;/* declarado con 10 elementos, múltiplos de 1 */ arrayy:.word 3,6,9,12,15,18,21,24,27,30 ;/* declarado con 10 elementos, múltiplos de 3 */ ;/* el resultado del bucle será los múltiplos de 7 en arrayy*/ finaly:.space 4 ;/* apunta a la dirección posterior al final de x */.text ; ********** EMPIEZA CODIGO ************ addi r2, r0, arrayy addi r1, r0, arrayx addi r28, r0, 4 ; registro r28 para contener la constante (no interesa usar operandos inmediatos) bucle: ; ********** EMPIEZA BUCLE SAXPY ************ lw r4, 0(r1) lw r6, 0(r2) mult r5, r4, r28 ; r28 contiene la constante 100b addi r2, r2, 4 addi r1, r1, 4 seq r7, r2, finaly add r6, r5, r6 sw -4(r2), r6 beqz r7, bucle Fin: ;*** fin programa trap 0 ; IERRUPCION SOFWARE DE FIN DE PROGRAMA (devuelve control al S.O.) Pág 6 de 7

7 ARQUIECURA DE SISEMAS PARALELOS I 4º INGENIERIA INFORMAICA PRACICA 3: DESENROLLADO DE BUCLES, BLOQUEOS DE COROL Y PREDICCIÓN DINÁMICA DE SALOS. NUM GRUPO: ALUMNOS: ABLA DE RESULADOS: Ejercicio 1 a) CPI control b) Código CPI CPI datos CPI control CPI estruct Aceler.: c) Código CPI CPI datos CPI control Aceler.: Ejercicio 2 A CPI bloqueos control : % Acierto BB: % Acierto Predicción: B Estado máquina,: Siguiente predicción de máquina,: C Máquina: Predicción: Acertó predicción?: Pág 7 de 7

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

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

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

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

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

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1 SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 5. PROCESADORES SUPERESCALARES: PLANIFICACIÓN DINÁMICA. OBJETIVOS. En esta práctica se trata de estudiar, por un lado, el aumento de prestaciones que

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

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

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

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento de un computador. 1.4. Características

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

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz)

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz) UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III SIMULADOR DLX (jbz) Integrantes: Denis José Torres Guadamuz 2001 10500

Más detalles

5. PREDICCIÓN DINÁMICA DE SALTOS

5. PREDICCIÓN DINÁMICA DE SALTOS 5. PREDICCIÓN DINÁMICA DE SALTOS 1 PREDICCIÓN DINÁMICA DE SALTOS 1. Introducción 2. Buffer de Predicción de Saltos (BPB) 3. Buffer de Destinos de Saltos (BTB) 4. Predictores Globales 5. Predictores Adaptativos

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

Estrategias de predicción dinámicas.

Estrategias de predicción dinámicas. Estrategias de predicción dinámicas. Las técnicas que vamos a ver ahora para predicción de saltos se basan en información conocida sólo en tiempo de ejecución. Dos estructuras son necesarias para realizar

Más detalles

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

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.. CONCEPTOS FUNDAMENTALES 3., 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

Más detalles

6. PROCESADORES SUPERESCALARES Y VLIW

6. PROCESADORES SUPERESCALARES Y VLIW 6. PROCESADORES SUPERESCALARES Y VLIW 1 PROCESADORES SUPERESCALARES Y VLIW 1. Introducción 2. El modelo VLIW 3. El cauce superescalar 4. Superescalar con algoritmo de Tomasulo 2 PROCESADORES SUPERESCALARES

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

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

ARQUITECTURA DE COMPUTADORES. Práctica 8

ARQUITECTURA DE COMPUTADORES. Práctica 8 ARQUITECTURA DE COMPUTADORES Práctica 8 Procesadores Segmentados: Introducción al simulador DLXIDE Evaluación de las prestaciones de la segmentación en el DLX Práctica 8: Procesadores Segmentados 1 de

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

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

ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERÍA TECNICA EN INFORMÁTICA DE SISTEMAS. PRÁCTICA 6 (curso 03/04) SEGMENTACION EN EL PROCESADOR DLX

ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERÍA TECNICA EN INFORMÁTICA DE SISTEMAS. PRÁCTICA 6 (curso 03/04) SEGMENTACION EN EL PROCESADOR DLX ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERÍA TECNICA EN INFORMÁTICA DE SISTEMAS. PRÁCTICA 6 (curso 03/04) SEGMENTACION EN EL PROCESADOR DLX OBJETIVOS. En esta práctica manejaremos un simulador (WinDLX,

Más detalles

Práctica 4. DESENROLLADO DE BUCLES.

Práctica 4. DESENROLLADO DE BUCLES. Práctica 4. DESENROLLADO DE BUCLES. Objetivos. Aplicar la técnica del desenrollado de bucles para extraer paralelismo a los programas y aplicar la técnica de reorganización de código para ver cómo mejora

Más detalles

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Sistema de memoria 3 (Solución): Segmentación + Bancos En un

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

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION SEGMENTACION SEGMENTACION SEGMENTACION I I I I I 1 2 3 4 5 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB SEGMENTACION INTRODUCIR NUEVA INSTRUCCIÓN CADA CICLO 1 CICLO,

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

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

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

ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 5. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO.

ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 5. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 5. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. OBJETIVOS. En esta práctica vamos a estudiar una técnica de scheduling dinámico

Más detalles

ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. 1. OBJETIVOS.

ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. 1. OBJETIVOS. ARQUITECTURA DE SISTEMAS PARALELOS I. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PLANIFICACIÓN DINÁMICA: EL ALGORITMO DE TOMASULO. 1. OBJETIVOS. En esta práctica vamos a estudiar una técnica de scheduling

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

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

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

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Tema 4 (II) El procesador

Tema 4 (II) El procesador Tema 4 (II) El procesador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Técnicas de control 1. Lógica cableada 2. Lógica almacenada

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

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

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

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 1. La

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. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

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

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Pipeline Facultad de Ingeniería - Universidad de la República Curso 2017 Objetivo Mejorar el rendimiento Incrementar frecuencia de reloj? Ancho de los

Más detalles

Arquitectura de Computadores II Clase #5

Arquitectura de Computadores II Clase #5 Arquitectura de Computadores II Clase #5 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Algunas ideas para mejorar el rendimiento Obvio: incrementar la frecuencia

Más detalles

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

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11 6.3.3 Riesgo de Control. Los riesgos por control en DLX son menos frecuentes que los riesgos por dependencia de datos, pero al no haber una solución tan buena como el adelantamiento de datos, se convierten

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

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 1. La

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

Procesadores segmentados. El DLX.

Procesadores segmentados. El DLX. Procesadores segmentados. El DLX. Curso 2011-2012 Características de las Arquitecturas Tipos de Arquitectura Organización de la Memoria Direccionamiento de Memoria Operaciones en el Repertorio de Instrucciones

Más detalles

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

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-2011. 6.1 Introducción a la segmentación de Instrucciones. SEGMENTACIÓN 6.1 Introducción a la segmentación de Instrucciones. La segmentación o pipeline es una técnica de realización de procesadores por la cual se solapa la ejecución de las instrucciones. Hoy en

Más detalles

Trabajo Práctico Número 6

Trabajo Práctico Número 6 Página 1 de 6 Trabajo Práctico Número 6 Arquitectura de Computadoras 24/05/2014 Instrucciones Los problemas de ejercitación propuestos en el presente trabajo práctico pueden ser resueltos en forma individual

Más detalles

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

Predicción Dinámica - 1. Arquitectura de Computadores Para conseguir el rendimiento óptimo de una instrucción por ciclo, otro de los obstáculos que nos encontramos es el de las dependencias de control, esencialmente, los saltos. Ya vimos que hay soluciones

Más detalles

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

TEMA 2 ILP BASADO EN PLANIFICACIÓN ESTÁTICA DE INSTRUCCIONES ÍNDICE

TEMA 2 ILP BASADO EN PLANIFICACIÓN ESTÁTICA DE INSTRUCCIONES ÍNDICE TEMA 2 ILP BASADO EN PLANIFICACIÓN ESTÁTICA DE INSTRUCCIONES ÍNDICE 2.1. Conceptos fundamentales: Grafo y tipos de dependencias, Bloques básicos, Límite teórico de ejecución (dataflow-limit), compatibilidad

Más detalles

COMPUTADORES SEGMENTADOS (DLX)

COMPUTADORES SEGMENTADOS (DLX) DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica

Más detalles

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

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.1. CONCEPTOS FUNDAMENTALES 3.2, 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

Más detalles

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7 Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2009 Veremos Memoria virtual Resumen de ideas para mejorar performance 1 Recordemos:

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) 7. Memoria Caché 8. Arquitecturas RISC Arquitectura de

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

Autor: Longinos Recuero Bustos

Autor: Longinos Recuero Bustos Actividad 1.1 Autor: Longinos Recuero Bustos Suponiendo que se aplica una mejora a una máquina de tal forma que el rendimiento es 20 veces superior al que tenía y considerando que la mejora únicamente

Más detalles

Práctica 5 - Memoria Cache

Práctica 5 - Memoria Cache Práctica 5 - Memoria Cache Organización del Computador 1 Verano 2008 Aclaración: siempre que se informa del tamaño de una memoria cache o de una línea, se está haciendo referencia a la capacidad útil de

Más detalles

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

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

5 - Lenguaje Ensamblador

5 - Lenguaje Ensamblador PROGRAMACIÓN EN ENSAMBLADOR 62 Fuente.asm,.s51,... Fases del Ensamblado Ensamblado Objeto.obj,.r03 Objeto Enlazado Ejecutable.hex,.bin Librerías Eprom Simulador Emulador Monitor PROGRAMACIÓN EN ENSAMBLADOR

Más detalles

2EMHWLYRV 5HIHUHQFLDV

2EMHWLYRV 5HIHUHQFLDV 7HPD6HJPHQWDFLyQ,,,QWURGXFFLyQ DORV6XSHUHVFDODUHV 2EMHWLYRV 5HIHUHQFLDV $SURYHFKDPLHQWRGHXQDDUTXLWHFWXUDVHJPHQWDGD 3ODQLILFDFLyQGLQiPLFD 3UHGLFFLyQGLQiPLFDGHVDOWRV 5HQRPEUDGRGHUHJLVWURV 3UHGLFDFLyQ 3URFHVDGRUHV6XSHUHVFDODUHV

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

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

Memoria. Organización de memorias estáticas.

Memoria. Organización de memorias estáticas. Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria

Más detalles

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

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

Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda

Programación (PRG) PRÁCTICA 10. Algoritmos de búsqueda Programación (PRG) Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia 1. Introducción El objetivo de esta práctica es estudiar el comportamiento

Más detalles

ARQUITECTURA DE VON NEUMANN Y HARVARD

ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA VON NEUMANN En esta arquitectura se observa que las computadoras utilizan el mismo dispositivo de almacenamiento para datos e instrucciones conectados

Más detalles

IS09. Introducción a los Computadores Práctica 1. Introducción al computador básico

IS09. Introducción a los Computadores Práctica 1. Introducción al computador básico IS09. Introducción a los Computadores Práctica 1. Introducción al computador básico OBJETIVOS Los objetivos que el estudiante debe alcanzar al al de esta práctica se resumen en los siguientes puntos: 1.

Más detalles

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

Más detalles

CAPÍTULO 2 PROCESADORES SUPERESCALARES

CAPÍTULO 2 PROCESADORES SUPERESCALARES CAPÍTULO 2 PROCESADORES SUPERESCALARES LECTURA DE INSTRUCCIONES (etapa if) Falta de alineamiento Rotura de secuencialidad Tratamiento de los saltos Estrategias de predicción dinámica Pila de dirección

Más detalles

TEMA 4 TECNICAS DE DIRECCIONAMIENTO

TEMA 4 TECNICAS DE DIRECCIONAMIENTO TEMA 4 TECNICAS DE DIRECCIONAMIENTO CURSO 2010/2011 TECNICAS DE DIRECCIONAMIENTO 1. Introducción 2. Registros de los Generadores de Direcciones (DAG) Registros Alternos de los DAG 3. Modos de Operación

Más detalles

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS Arquitectura de Computadores Tema 4 PROCESADORES SEGMENTADOS 1. Arquitecturas RISC y CISC. 2. Unidad de Control monociclo y multiciclo. 3. Segmentación. 3.1. Ruta de datos del MIPS R2000. 3.2. Control

Más detalles

Tema V Generación de Código

Tema V Generación de Código Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.

Más detalles

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento

Más detalles

TEMA 4. ARQUITECTURA IA-64

TEMA 4. ARQUITECTURA IA-64 TEMA 4. ARQUITECTURA IA-64 Stalling, W.Computer Organization and Architecture cap. 15 Intel IA-64 Architecture Software Developer s Manual Generalidades IA-64 Desarrollo conjunto Intel-HP Nueva arquitectura

Más detalles

Estructura de los sistemas de cómputo

Estructura de los sistemas de cómputo Estructura de los sistemas de cómputo Introducción Elementos básicos de un computador Registro del procesador Ejecución de las instrucciones Interrupciones Hardware de protección Introducción Qué es un

Más detalles

Paralelismo en monoprocesadores. Procesadores VLIW

Paralelismo en monoprocesadores. Procesadores VLIW Paralelismo en morocesadores Procesadores VLIW Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura de Computadoras y técnicas Digitales Carrera: Ingeniería de Sistemas Ciclo: 4º año Arquitectura VLIW básica

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores Tema 5 Jerarquía de memoria Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Tipos de memoria

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 Para la realización del presente examen se dispondrá de 15 minutos. NO se podrán utilizar libros, apuntes ni calculadoras de Ejercicio 1 Los siguientes números se encuentran representados en complemento

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen constará de dos partes: 1ª parte: Test, con una puntuación de 5 puntos y 30 minutos de tiempo 2ª parte: Ejercicios prácticos, con una puntuación

Más detalles

FUNDAMENTOS DE COMPUTADORES I

FUNDAMENTOS DE COMPUTADORES I OBJETIVO DE LAS PRÁCTICAS. FUNDAMENTOS DE COMPUTADORES I El objetivo de las prácticas de la asignatura Fundamentos de Computadores I consiste en completar el aprendizaje de los modelos estructurales, funcionales

Más detalles

Organización de Computadoras. Clase 6

Organización de Computadoras. Clase 6 Organización de Computadoras Clase 6 Tema de Clase Ciclo de Instrucción Notas de Clase 6 2 Función de la computadora(1) Ejecutar programas El programa está compuesto de instrucciones almacenadas en memoria

Más detalles

Modos de Direccionamiento

Modos de Direccionamiento Arquitectura de Ordenadores Modos de Direccionamiento del Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Modos de Direccionamiento ADM-1

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

ADMINISTRADOR DE DISPOCITIVOS

ADMINISTRADOR DE DISPOCITIVOS ADMINISTRADOR DE DISPOCITIVOS figura 1: Administrador de dispositivos El Administrador de dispositivos almacena información acerca de los dispositivos instalados en el equipo. El Administrador de dispositivos

Más detalles

Procesadores de lenguaje Tema 8 Generación de código y optimización

Procesadores de lenguaje Tema 8 Generación de código y optimización Procesadores de lenguaje Tema 8 Generación de código y optimización Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Tipos de código objeto Operaciones básicas en la generación

Más detalles

Sistemas de Computación Memoria. 2º Semestre, 2008 José Miguel Rubio L.

Sistemas de Computación Memoria. 2º Semestre, 2008 José Miguel Rubio L. Sistemas de Computación Memoria 2º Semestre, 2008 José Miguel Rubio L. jose.rubio.l@ucv.cl http://www.inf.ucv.cl/~jrubio Técnicas de Administración de Memoria 2 Al administrar la memoria física, ocurren

Más detalles

Práctica ENS:Ensamblar y depurar

Práctica ENS:Ensamblar y depurar Práctica ENS:Ensamblar y depurar 1. Objetivos Familiarizarse con el manejo básico de la herramienta µvision3 con programas escritos en lenguaje ensamblador. Depurar los programas escritos en lenguaje ensamblador

Más detalles

Memoria Estática Punteros, Vectores y Matrices

Memoria Estática Punteros, Vectores y Matrices Memoria Estática Punteros, Vectores y Matrices Organización del Computador II 1 o Cuatrimestre 2017 28 de Marzo Organización del Computador II Memoria Estática / Punteros / Vectores / Matrices 1 / 29 Repaso

Más detalles

PARTE II: Programación en ensamblador

PARTE II: Programación en ensamblador Cuaderno de Prácticas Laboratorio de Fundamentos de Computadores PARTE II: Programación en ensamblador Autor: Rafael Moreno Vozmediano Facultad de Informática La Máquina Rudimentaria: Arquitectura del

Más detalles

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

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

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

Arquitectura del CPU. Organización del Computador 1 Verano 2016 Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales

Más detalles

Semana Lenguajes 7de programación Tipos de lenguajes de programación

Semana Lenguajes 7de programación Tipos de lenguajes de programación Semana Lenguajes 7de programación Semana 6 Empecemos! Estimados participantes, bienvenidos a esta nueva semana, en la que estudiaremos los lenguajes de programación más utilizados. No olvides repasar los

Más detalles

Memoria Estática Punteros, Vectores y Matrices

Memoria Estática Punteros, Vectores y Matrices Memoria Estática Punteros, Vectores y Matrices Organización del Computador II 2 o Cuatrimestre 2017 29 de Agosto Organización del Computador II Memoria Estática / Punteros / Vectores / Matrices 1 / 31

Más detalles

FUNDAMENTOS DE COMPUTADORES

FUNDAMENTOS DE COMPUTADORES FUNDAMENTOS DE COMPUTADORES CURSO ACADÉMICO: 2000 / 2001 TITULACIÓN: INGENIERO EN INFORMÁTICA CICLO: 1º CURSO: 1º CUATRIMESTRE: PRIMERO CARÁCTER: TRONCAL CRÉDITOS: 9 (6+3) PROFESOR: MANUEL E. ACACIO, JUAN

Más detalles

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

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

Tecnologías en Educación Matemática

Tecnologías en Educación Matemática Tecnologías en Educación Matemática jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Verificación de un algoritmo Qué significa que un algoritmo sea correcto?

Más detalles