Práctica 4. DESENROLLADO DE BUCLES.
|
|
|
- Marcos Montes Velázquez
- hace 9 años
- Vistas:
Transcripción
1 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 el rendimiento de nuestros programas cuando son ejecutados en procesador con múltiples unidades aritméticas. Acostumbrar a los alumnos a preparar la práctica en casa. Tiempo aproximado para realizar esta sesión: 4 horas (los laboratorios son de 2:30 horas). Tutorías lunes y miércoles de 3 a 6 de la tarde. Desenrollado de bucles. Para explicar mejor los conceptos del desenrollamiento de bucles, veamos primero un bucle que realiza una operación vectorial consistente en sumar a cada elemento de un vector un escalar. Loop: LD F0, 0(R1) ADDD F4, F0, F2 0(R1), F4 SUB R1, R1, #8 BNEZ R1, loop El vector comienza en la dirección 0x0000 de memoria y la ejecución de una iteración invierte 9 ciclos. Para sacar un mejor rendimiento al código deberíamos poder obtener mayor paralelismo, es decir, mayor independencia entre instrucciones. Esto se puede conseguir desenrollando el bucle ( loop unrolling ). Se consigue replicando muchas veces el cuerpo del bucle, utilizando diferentes registros para cada réplica. Con ello conseguimos: Más y mayor independencia entre instrucciones que repercute en una mejor planificación de las mismas. Menor número de instrucciones ejecutadas, pues hay menos instrucciones de autoincremento de contadores o registros y condicionales. Veamos como quedaría el bucle si lo desenrollamos 4 veces. Loop: LD F0, 0(R1) ; iteración i ADDD F4, F0, F2 0(R1), F4 LD F6,-8(R1) ; iteración i+1 ADDD F8, F6, F2-8(R1), F8 LD F10,-16(R1) ; iteración i+2 ADDD F12, F10, F2-16(R1), F12 LD F14,-24(R1) ; iteración i+3 ADDD F16, F14, F2-24(R1), F16 SUB R1, R1, #32 ; incrementamos en 4 BNEZ R1,loop Este bucle se ejecutará en 27 ciclos de reloj, pero un cuarto de veces menos que el bucle original. La ventaja es que ahora sobre este bucle desenrollado es más fácil hacer una buena planificación. Veamos una posible forma de planificarlo, consistente en agrupar las operaciones de carga, luego agrupamos todas las aritméticas y por último agrupamos todas las de salvar en memoria. Esta es una planificación Vicente Arnau 1 23/11/2010
2 sencilla, pero muy eficiente. Obsérvese que los registros punteros, solo son actualizados una vez dentro del bucle y que los registro de cada iteración desenrollada son necesariamente diferentes. ; > Planificación sencilla: Loop: LD F0, 0(R1) LD F6,-8(R1) LD F10,-16(R1) LD F14,-24(R1) ADDD ADDD ADDD ADDD F4, F0, F2 F8, F6, F2 F12, F10, F2 F16, F14, F2 0(R1), F4-8(R1), F8-16(R1), F12-24(R1), F16 SUB R1, R1, #32 BNEZ R1,loop Al desenrollarlo, el bucle ahora se ejecuta en 14 ciclos de reloj, pero hay 4 veces menos iteraciones, pues k=4. Si consideramos que el bucle original poseía 16 iteraciones, los tiempos de ejecución serian los siguientes: Nº ciclos Velocidad Bucle inicial 9*16= Bucle desenrollado 27*4= Bucle desenrollado y planificado 14*4= (No hacer mucho caso de estos tiempo, son tiempos especulativos). Pregunta: Pero, qué ocurre si el número de iteraciones del bucle original no es un múltiplo perfecto del número de veces que vamos a desenrollar el bucle? Respuesta: Si tenemos n iteraciones en un bucle y lo queremos desenrollar K veces, este lo descompondremos en dos bucles: 1º) El primero desde 1 hasta (n módulo K), que será el desenrollado. 2º) Desde 1 hasta (n div K) tendremos iteraciones fuera del bucle desenrollado, que también podremos planificar. Veremos en hojas contiguas varios ejemplos de programas sobre los cuales se ha aplicado esta técnica. Veremos también un gráfico con los resultados en el ámbito de tiempo de ejecución de los programas. Vicente Arnau 2 23/11/2010
3 ;================================ ; MULT_01.S : Programa ejemplo = ;================================ ; zona de datos datos:.float 1.0, 1.5, 3.0, 3.5, 4.5,.float 5.0, 5.5, 7.0, 8.0, 8.5, CTE:.FLOAT 10.0 ;Zona de código.global main main: R16, R0, 16 bucle: LF LF F2, CTE ; Leo CTE F0, datos(r1) F4, F0, F2 datos(r1), F4 R1, R1, 4 R16, R16, -1 BNEZ R16, bucle ;========================================= ; MULT_03.S : PLANIFICACIÓN SENCILLA = ;========================================= datos:.float 1.0, 1.5, 2.0, 2.5, 3.0,.float 5.0, 5.5, 6.0, 6.5, 7.0, CTE:.FLOAT 10.0 main: R16,R0,16 ;4*4 itera. LF F2, CTE bucle: LF LF LF LF BNEZ F4, datos+0(r1) F6, datos+4(r1) F8, datos+8(r1) F10, datos+12(r1) F5,F4,F2 F7,F6,F2 F9,F8,F2 F11,F10,F2 datos+0(r1),f5 datos+4(r1),f7 datos+8(r1),f9 datos+12(r1),f11 R1,R1,16 R16,R16,-4 R16,bucle ;========================================== ; MULT_02.S : Bucle DESENROLLADO SIN MAS! = ;========================================== datos:.float 1.0, 1.5, 2.0, 2.5, 3.0,.float 5.0, 5.5, 6.0, 6.5, 7.0, CTE:.FLOAT 10.0 main: R16,R0,16 ; 4*4 itera. LF F2, CTE ; Leo cte. bucle: LF F4, datos+0(r1) F5,F4,F2 datos+0(r1),f5 LF F6,datos+4(R1) F7,F6,F2 datos+4(r1),f7 LF F8,datos+8(R1) F9,F8,F2 datos+8(r1),f9 LF F10,datos+12(R1) F11,F10,F2 datos+12(r1),f11 BNEZ R16,R16,-4 R1,R1,16 R16,bucle ;========================================== ; MULT_04.S : MUY PLANIFICADO ;========================================== ; datos:.float 1.0, 1.5, 2.0, 2.5, 3.0,.float 5.0, 5.5, 6.0, 6.5, 8.5, CTE:.FLOAT 10.0 main: R16,R0,16 ;4*4 itera. R1,R0,datos LF F2, CTE bucle: LF F4, datos+0(r1) LF F6, datos+4(r1) F5,F4,F2 LF F8, datos+8(r1) F7,F6,F2 LF F10, datos+12(r1) F9,F8,F2 datos+0(r1),f5 F11,F10,F2 datos+4(r1),f7 datos+8(r1),f9 R16,R16,-4 ; ojo! datos+12(r1),f11 R1, R1, 16 BNEZ R16,bucle ;Si R11<>0 salto. La mejora conseguida con esta técnica es muy elevada. Pero dependerá del número de unidades aritméticas y de la duración de las mismas, el que tengamos que realizar la planificación final de forma distinta para cada caso y configuración. Vicente Arnau 3 23/11/2010
4 Realización. En esta práctica se utilizarán los dos programas nuevos: Series.s y Matrices.s. Sobre ellos se realizarán varios desenrollamientos (con valores de K diferentes). Sobre los programas desenrollados habrá que realizar análisis de cómo varía la aceleración con la variación del número de unidades funcionales. La opción forwarding deberá estar siempre activada. La configuración de las unidades funcionales inicialmente será la que aparece en la figura lateral izquierda. Los tiempos de retardo serán de 4, 9 y 14 ciclos. Posteriormente modificaremos en número de unidades funcionales para ver su repercusión en la ejecución de los programas. También se realizará una PLANIFICACIÓN del código generado para acelerar su ejecución. Importante: la planificación se realizará de forma diferente según dispongamos de más o menos unidades funcionales. Para cada configuración habrá que realizar una planificación a medida. Las dos configuraciones que vamos a utilizar son las dos que aparecen en la siguiente figura. A con una unidad de cada y B con varias unidades aritméticas de cada tipo posible. Configuración A Configuración B Programas. Series: Tenemos tres series X(n), Y(n) y Z(n) de n=16 datos en formato coma flotante simple precisión almacenados a partir de la posición de memoria 0x1000. Y se pide calcular el valor de la serie W(n), tal que: X (n) = [Y(n) * cte_2] + [ X(n) * cte_1] ; Y (n) = X(n) + [X (n) / cte_2] ; Z (n) = Z(n) * cte_1 ; W(n) = X (n) + Y (n) + Z (n) Tener muy en cuenta que para cada configuración debemos mostrar los ciclos alcanzados cuando ejecutamos el programa en 4 condiciones diferentes: i. Sin desenrollar, con el programa sin ninguna modificación ni planificación. ii. Desenrollado y sin ninguna planificación. iii. Desenrollando y con la planificación sencilla que consiste en agrupar las instrucciones de carga, luego las aritméticas y luego las de salvar datos. iv. Sobre este último programa desenrollado, analizar la forma con que se ejecuta el código (ventana clock cicle diagram ), ver las dependencias de datos entre las instrucciones y planificar la emisión de las mismas intentando que el programa se ejecute de la forma más rápida posible. Vicente Arnau 4 23/11/2010
5 Se deberá comprobar en todo momento que los resultados de la ejecución del programa (serie W(n)) no cambian tras ningún desenrollamiento ni ninguna planificación. Para lo cual, después de la ejecución del código de la configuración B y bajo condición iv, se deberá anotar en la siguiente tabla el resultado obtenido para la serie W(n). W[0]= W[1]= W[2]= W[3]= W[4]= W[5]= W[6]= W[7]= W[8]= W[9]= W[10]= W[11]= W[12]= W[13]= W[14]= W[15]= 2) Multiplicación de Matrices 4*4 con 3 bucles: Dadas dos matrices de 4*4 elementos MaX y MaY, realizar un programa que mediante el uso de tres bucles, las multiplique y almacene el resultado en etiqueta MaZ. El bucle más interno recorre los elementos de una fila de la matriz A y los va multiplicando por los elementos de una columna de la matriz B. Para este ejemplo, el bloque Salvar_datos(i) de la iteración del bucle más interno está formado por la instrucción que almacena en un registro temporalmente el resultado de la multiplicación de cada elemento de una fila por cada elemento de columna. El bloque EXE(i) estará formado solo por la instrucción de multiplicar. El bloque Leer(i) estará formado por 2 instrucciones de carga. Para que quede más claro, observar detenidamente el código que aparece en el recuadro, pues el programa en ensamblador debe ser fiel reflejo del algoritmo de multiplicación de matrices que se muestra en él. MaZ = MaX * MaY For (i=1 to 4){ For (j=1 to 4) { TEMP=0; For (k=1 to 4) TEMP = MaX[i][k]*MaY[k][j] + TEMP; MaZ[i, j] = TEMP; } } El programa en ensamblador deberá tener 3 bucles necesariamente. En el siguiente cuadro se deberá anotar el código ensamblador de DLX que implementa el triple bucle realizado para multiplicar las dos matrices. Al programa resultante se le deberá aplicar la técnica de desenrollamiento de bucles, pero solo al bucle más interno. Puedes anotar el código desarrollado en el siguiente cuadro. Nota: Las dos hojas siguientes deberán entregarse para la evaluación de la práctica. Además se tomará nota de los tiempos empleados en la ejecución de cada código. En la Página web podéis encontrar las plantillas que debéis utilizar para realizar los dos programas. P4_P1.s y P4_P2.s. Y en la siguiente página podeis ver la estructura que debe tener vuestro programa: tres bucles anidados, que se repiten 4 veces y que recorren la primera matriz por filas y la segunda por columnas. Importante: Para pasar de un elemento de una fila al siguiente hay que sumarle 4 al puntero de fila. Para pasar de un elemento de una columna al siguiente hay que sumarle 16 al puntero de columna. Vicente Arnau 5 23/11/2010
6 Nom: Nom: ; Programa en DLX sin desenrollar para Matrices. Completar el siguiente código. ;============================================================ ; M A T R I Z _ 4 * 4. S : Multiplicación de matrices 4*4 = ; Lab. AIC. Curso = ;============================================================ ;Datos a partir de esta dirección nn:.word 4, 0, 0, 0 MaX:.word 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9, 7, 5, 3, 1 MaY:.word 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 MaZ:.space 16*4 ;Zona de código en dirección 0x100 main: lw r4, nn ; contador de filas bu1: lw r8, nn ; contador de columnas bu2: lw r14, nn ; elemento de fila por columna bu3: LW R1, MaX(R25) ; Cargo a(i,j) LW R2, MaY(R27) ; Cargo b(i,j) MULT R3, R1, R2 BNEZ R14, bu3 SW MaZ(R24), R10 ; salvo datos BNEZ R8, bu2 BNEZ R4, bu1 ; FIN Vicente Arnau 6 23/11/2010
7 ;============================================================== ; M A T R I Z _ 4 * 4. S : Multiplicación de matrices 4*4 = ; Programa desenrollado con k=2 Lab. AIC. Curso = ;============================================================== ;Datos a partir de esta dirección nn:.word 4, 0, 0, 0 MaX:.word 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9, 7, 5, 3, 1 MaY:.word 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 MaZ:.space 16*4 ;Zona de código en dirección 0x100 main: lw r4, nn ; contador de filas ; FIN Vicente Arnau 7 23/11/2010
8 Nom: Nom: Series.S Series desenrollado k=2 Series desenrollado con planificación sencilla. Configuración A Configuración B Nº ciclos/velocidad Nº instrucciones Nº ciclos/velocidad Nº instrucciones Series desenrollado con planificación TOTAL. No realizar No realizar Series.S Series desenrollado k = 4 Configuración A Configuración B Nº ciclos/velocidad Nº instrucciones Nº ciclos/velocidad Nº instrucciones Planificación sencilla. No realizar No realizar Planificación TOTAL. No realizar No realizar Configuración A Configuración B Nº ciclos/velocidad Nº instrucciones Nº ciclos/velocidad Nº instrucciones Matrices.S Matrices desenrollado k=2 Planificación TOTAL. La velocidad del programa inicial vale 1. La velocidad del programa desenrollado es la velocidad relativa en Nº de ciclos respecto al programa inicial. Es decir, dividir los ciclos del programa inicial por los ciclos del programa desenrollado. Importante: En el transcurso de la práctica se deberá mostrar al profesor que los programas desenrollados funcionan correctamente. Es decir, que los programas desenrollados dan los mismos resultados numéricos que los programas sin desenrollar, pero en un número menor de ciclos. La nota final dependerá de los apartados que se completen y de los ciclos que necesite el programa desenrollado y planificado para ejecutarse. Para no volverme loco, solo miraré la ejecución de los apartados sombreados en azul claro. Vicente Arnau 8 23/11/2010
Problema. Dispone del siguiente fragmento de código intermedio:
Problema Dispone del siguiente fragmento de código intermedio: Loop: LD ADDD SD SUBI BNEZ F0,0(R1) F4,F0,F2 0(R1),F4 R1,R1,#8 R1,Loop y de un procesador VLIW con un formato de instrucción de 5 slots (4
EXAMEN DE ARQUITECTURA II Septiembre, 2010
NOMBRE Y APELLIDOS DEL ALUMNO: EXAMEN DE ARQUITECTURA II Septiembre, 2010 El examen consta de dos bloques de cuestiones de teoría y otro de ejercicios, algunos de ellos con respuestas de opción múltiple.
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
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
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
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
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
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
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
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
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
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
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
1ª Prueba Parcial de Arquitectura de Computadores 25 de octubre de 2013
E. U. de Informática U. P. M. Departamento de Informática Aplicada 1ª Prueba Parcial de Arquitectura de Computadores 25 de octubre de 2013 EJERCICIO 1 Contesta a las siguientes cuestiones (poner una X
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
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
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
1) En un DLX con segmentación ejecutamos el siguiente fragmento de código:
Arquitectura e Ingeniería de Computadores. Examen Parcial (Problemas). 10/02/2009 1) En un DLX con segmentación ejecutamos el siguiente fragmento de código: ADDI r3,r0,#3 L1 : SUBD F2,F6,F8 SUBD F4,F8,F6
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
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.
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
Arquitectura de Computadores (Grado II)
Arquitectura de Computadores (Grado II) Práctica de Memorias caché Departamento de Arquitectura y Tecnología de Sistemas Informáticos Escuela Técnica Superior de Ingenieros Informáticos Universidad Politécnica
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
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
Procesadores Vectoriales
Procesadores Vectoriales Curso 2011-2012 Por qué procesamiento vectorial? La segmentación tiene límites: Si se aumenta mucho el número de etapas, baja el ciclo de reloj, pero aumentan las dependencias.
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
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
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
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
Práctica Guiada: Vectores y Matrices
Práctica Guiada: Vectores y Matrices 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Escribir la declaración de vectores y matrices de tipos básicos. 2. Escribir el código necesario para recorrer
Tutorial 4 de Additio. Estrategias para la evaluación.
Tutorial 4 de Additio. Estrategias para la evaluación. Os quiero comentar la estrategia que debemos usar para poder evaluar según los instrumentos de evaluación de vuestra programación. Cada uno tendrá
COMPUTADORES VECTORIALES (DLXV)
DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA III COMPUTADORES VECTORIALES (DLXV) OBJETIVO Conocer la programación
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.
TEMA 3 PROCESADORES VECTORIALES
TEMA 3 PROCESADORES VECTORIALES A T 5 1 1 8 A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o PROCESADORES VECTORIALES V e n t a j a s d e
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
APUNTE TABLAS MICROSOFT WORD 2003
TABLAS Las tablas nos permiten organizar la información en filas y columnas. En cada intersección de fila y columna tenemos una celda. En Word tenemos varias formas de crear una tabla: Desde el icono Insertar
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
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
Bloques Aritméticos - Multiplicadores
Bloques Aritméticos - Multiplicadores La multiplicación es una operación cara (en términos de recursos) y lenta Este hecho ha motivado la integración de unidades completas de multiplicación en los DSPs
Lógica de programación
Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta La característica fundamental
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
ARQUITECTURA DE COMPUTADORAS
2-12-2012 INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS Cuestionario Unidad 4 Claudia Cristina Enríquez Zamarrón 10 55 05 10 Laura Michell Montes Blanco 10 55 05 02 INTRODUCCIÓN: En
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
Para cada problema realizar: Análisis Diseño Diagramas de Flujo
Para cada problema realizar: Análisis Diseño Diagramas de Flujo 1. Llenar la 1ra columna de una matriz A de dimensión N*M y aplicar la rotación por columnas M-1 veces para llenar el resto de la matriz.
,..., a 1n. ) y B. , a 12. A B a 11 b 11 a 12 b 21 a 1n b n1
93 Operaciones matriciales 373 El producto interno Definición: Producto interno Suponga que (a 11, a 1,, a 1n ) y expresado como, es b 11 b 1 b n1 ; entonces el producto interno, a 11 b 11 a 1 b 1 a 1n
3.1. Errores con pocos dígitos de precisión
Computación Numérica Profesores: José M. Alonso, Fernando Alvarruiz, Juan Garayoa, Jesús Peinado, José L. Pérez, José E. Román, Vicente Vidal. http://www.dsic.upv.es/asignaturas/eui/cnu/prac Práctica 3
Matrices. Álgebra de matrices.
Matrices. Álgebra de matrices. 1. Definiciones generales Definición 1.1 Si m y n son dos números naturales, se llama matriz de números reales de orden m n a una aplicación A : {1, 2, 3,..., m} {1, 2, 3,...,
Distribuciones Bidimensionales.
Distribuciones Bidimensionales. 1.- Variables Estadísticas Bidimensionales. Las variables estadísticas bidimensionales se representan por el par (X, Y) donde, X es una variable unidimensional, e Y es otra
Tema 1: Matrices. El concepto de matriz alcanza múltiples aplicaciones tanto en la representación y manipulación de datos como en el cálculo numérico.
Tema 1: Matrices El concepto de matriz alcanza múltiples aplicaciones tanto en la representación y manipulación de datos como en el cálculo numérico. 1. Terminología Comenzamos con la definición de matriz
MULTIPLICACIÓN DE NÚMEROS NATURALES
MULTIPLICACIÓN DE NÚMEROS NATURALES La solución de una adición donde los sumandos son iguales, es decir, que se repiten, se puede obtener de una forma directa y sencilla. Por ejemplo: Al calcular la cantidad
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
2EMHWLYRV 5HIHUHQFLDV
7HPD6HJPHQWDFLyQ,,,QWURGXFFLyQ DORV6XSHUHVFDODUHV 2EMHWLYRV 5HIHUHQFLDV $SURYHFKDPLHQWRGHXQDDUTXLWHFWXUDVHJPHQWDGD 3ODQLILFDFLyQGLQiPLFD 3UHGLFFLyQGLQiPLFDGHVDOWRV 5HQRPEUDGRGHUHJLVWURV 3UHGLFDFLyQ 3URFHVDGRUHV6XSHUHVFDODUHV
Sentencias iterativas
Sentencias iterativas 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Utilizar adecuadamente la sentencia while para generar la repetición en la ejecución de grupos de sentencias 2. Motivación
-5.2 SUMADOR CON MULTIPLES SUMANDOS.
-5.2 SUMADOR CON MULTIPLES SUMANDOS. Sumador con acarreo almacenado. Este sumador también llamado Carry Save Adder (CSA) nos permitirá realizar la suma de N sumandos en un tiempo mínimo. Para estudiar
INSTRUCCIONES CONDICIONALES
INSTRUCCIONES CONDICIONALES Objetivos Los objetivos que se pretenden alcanzar en este recurso son los siguientes: Aprender cuáles son los mecanismos de ejecución de código no secuencial. Definir las instrucciones
Introduccio n a las operaciones con renglones.
Introduccio n a las operaciones con renglones. Elaboró: Ing. Edwing Daniel Chay Morales. 10-octubre-2013 Antes que entremos a la resolución de sistemas 3x3, es convenientes que nos familiaricemos con la
1. La ventana de Excel
JFSG 1. La ventana de Excel Cuadro de nombres Barra de fórmulas Títulos de columnas Celda activa Títulos de filas Etiquetas de hojas 2. Definiciones básicas Celda.- Unidad básica de una hoja de trabajo
CONTENIDOS MATEMÁTICAS II SEGUNDA EVALUACIÓN CURSO 2017/2018 MATRICES
CONTENIDOS MATEMÁTICAS II SEGUNDA EVALUACIÓN CURSO 2017/2018 Unidades: - Matrices (Bloque Álgebra) - Determinantes (Bloque Álgebra) - Sistemas de ecuaciones lineales (Bloque Álgebra) - Vectores (Bloque
Cómo programar tareas en Windows 7 y 8: avisos emergentes, ejecución de programas, etc.
Cómo programar tareas en Windows 7 y 8: avisos emergentes, ejecución de programas, etc. www.funcionarioseficientes.es 1 Índice Pág 1) Abrimos el programador de tareas de Windows... 1 2) Creamos una tarea...
2. Práctica. 2.1.Introducción. 2.2.Funcionamiento de MATLAB. 2.3.Programas modulizados
2. Práctica 2.1.Introducción En esta práctica se prete dar una introducción al manejo del programa MATLAB. Éste es un programa de cálculo numérico que sirve en sus funciones más básicas, para trabajar
Una matriz es un arreglo rectangular de números. Los números en el arreglo se llaman elementos de la matriz. ) ( + ( ) ( )
MATRICES Una matriz es un arreglo rectangular de números. Los números en el arreglo se llaman elementos de la matriz. Ejemplo 1. Algunos ejemplos de matrices ( + ( ) ( + ( ) El tamaño o el orden de una
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
Algebra lineal y conjuntos convexos
Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar
CUESTIÓN 1 (2.5 puntos)
Escriba las respuestas únicamente en los recuadros indicados. Utilice la parte de atrás como borrador. Puede emplear el CUESTIÓN 1 (2.5 puntos) Realizar un programa en LS2 que lea una palabra por teclado
Estructura y tecnología de computadores - prácticas en ensamblador
Estructura y tecnología de computadores - prácticas en ensamblador Agradecimientos (c) Francisco Charte Ojeda Introducción Código fuente 1. Introducción a los microprocesadores 1.1. El sistema microcomputador
Suma e Intersección de Subespacios. (c) 2012 Leandro Marin
09.00 Suma e Intersección de Subespacios 3 48700 90009 (c) 0 Leandro Marin . Sumas e Intersecciones de Espacios Vectoriales Definición. Sean U un espacio vectorial y sean V y W dos subespacios vectoriales
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
El procesador vectorial consta de:
Medida del Rendimiento de un Bucle Vectorizado Se va a realizar un ejemplo del análisis del rendimiento de un procesador vectorial al ejecutar el código obtenido de vectorizar el conocido bucle DAXPY para
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
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
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
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
5. EJEMPLOS DE USO En este apartado realizaremos una breve exposición sobre el uso que se le puede dar a la aplicación mediante pequeños ejemplos explicativos. Como podremos ver, resulta bastante sencillo
ECUACIONES MATRICIALES. Docente: Sergio Andrés Nieto Duarte
ECUACIONES MATRICIALES Docente: Sergio Andrés Nieto Duarte En sesiones anteriores se ha discutido sobre las operaciones básicas con matrices, sin embargo, la división matricial no fue abordada de una manera
Tema 1: Matrices. El concepto de matriz alcanza múltiples aplicaciones tanto en la representación y manipulación de datos como en el cálculo numérico.
Tema 1: Matrices El concepto de matriz alcanza múltiples aplicaciones tanto en la representación y manipulación de datos como en el cálculo numérico. 1. Terminología Comenzamos con la definición de matriz
TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS.
TEMA 1. MATRICES, DETERMINANTES Y APLICACIÓN DE LOS DETERMINANTES. 1. MATRICES. CONCEPTO DE MATRIZ. LA MATRIZ COMO EXPRESIÓN DE TABLAS Y GRAFOS. DEFINICIÓN: Las matrices son tablas numéricas rectangulares
FUNDAMENTOS MATEMÁTICOS (Grado en Ingeniería Informática) Práctica 8. MATRICES
FUNDAMENTOS MATEMÁTICOS (Grado en Ingeniería Informática) Práctica 8. MATRICES 1.- Introducción de vectores y matrices. Con Derive los vectores se pueden introducir de dos formas distintas: a) Mediante
Multiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
Tema 5. Diagramas de flujo. Computacion - FA.CE.NA.
Tema 5 Diagramas de flujo D i ag ram a d e F l u j o TEMA5 Diagramas de Flujo. Representación simbólica. Símbolos utilizados. Convenciones. Técnicas de construcción de diagramas. Estructuras básicas. Normas
