COMPUTADORES VECTORIALES (DLXV)

Documentos relacionados
Práctica 2 Procesadores vectoriales (I) 1. Práctica 2. Procesadores vectoriales (I)

Procesadores Vectoriales

El procesador vectorial consta de:

13. Computadores vectoriales segmentados. 14. Computadores SIMD.

Procesadores vectoriales

AMPLIACIÓN DE ARQUITECTURA DE COMPUTADORES

TEMA 3 PROCESADORES VECTORIALES

Programación Vectorial

COMPUTADORES SEGMENTADOS (DLX)

PROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO ÁNGEL MARÍA VILABOA PÉREZ UO BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO

Multiplicación de matrices con DLX

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

TEMA VI DISEÑO DEL PROCESADOR

Algebra de Matrices 1

,..., a 1n. ) y B. , a 12. A B a 11 b 11 a 12 b 21 a 1n b n1

Funciones Lógicas X5

WinDLXV. Manual de usuario

Funciones Lógicas X10

Memoria. Organización de memorias estáticas.

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Práctica 4. DESENROLLADO DE BUCLES.

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

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGIA DEPARTAMENTO DE CIENCIAS BASICAS

Sistemas de coordenadas

ESTRUCTURA DE ASIGNACIÓN

Operaciones en Datos

ARQUITECTURA DE COMPUTADORES. Práctica 8

Contenido. Introducción a los Computadores Conceptos básicos. Sistema de numeración CNM-130

Arquitectura de Computadores Problemas (hoja 4). Curso

ESCUELA POLITÉCNICA NACIONAL

Bloque 3. Geometría y Trigonometría Tema 2 Vectores Ejercicios resueltos

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

Bases Matemáticas para la Educación Primaria. Guía de Estudio. Tema 3: Números racionales. Parte I: Fracciones y razones Números racionales

Tema#2. Tipos de Datos 10

Principios básicos de la segmentación

Unidad II: Memorias. Ing. Marglorie Colina

PARTE II: Programación en ensamblador

INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO MEDIDAS DE RENDIMIENTO

JavaScript: Operadores

Cuestionario Unidad 4: Procesamiento paralelo 2012

Computación I Representación Interna Curso 2011

Electrónica Digital II

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

ARQUITECTURA DE COMPUTADORES I

Algebra vectorial y matricial

Mapa de memoria. memoria CACHÉ

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

MATRICES Y DETERMINANTES EJERCICIOS RESUELTOS

TEMA III: OPERACIONES CON LOS DATOS

Arquitectura de Computadoras

Algebra lineal Matrices

Práctica 1 - Representación de la información

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Resumen teórico de los conceptos necesarios para resolver el práctico 1. Vectores VECTORES

UNIDAD 1: FUERZA Y MOVIMIENTO MOVIMIENTO CIRCUNFERENCIAL UNIFORME

Sistema de Referencia Transformación de Unidades

Asignaturas antecedentes y subsecuentes

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

Sistemas con Microprocesadores I

Arquitecturas Paralelas Examen de Febrero 24 Enero 2005

ORDENADORES VECTORIALES

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Departamento de Automática

FUNDAMENTOS DE COMPUTADORES

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Sistemas Informáticos. Estructura Funcional

Programación en Visual Basic Ricardo Rodríguez García

CAPÍTULO 2: SUMA DE FRACCIONES Y ENTEROS

TEORÍA (5 puntos) Puntuación: Desplazamiento

Microprocesadores. Informática Aplicada DSI-EIE FCEIA

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

Computación I Curso 2016 Facultad de Ingeniería Universidad de la República

Programa Regular. Asignatura: Organización y Arquitectura de Computadoras.

4. Aritmética y operadores

Memorias RAM. Basilio B. Fraguela Rodríguez. Copyright Basilio B. Fraguela 2006

4. Operadores Operador asignación

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez

TEMA 1 CONJUNTOS NUMÉRICOS

Tema 1: PROCESADORES SEGMENTADOS

Diseño de la jerarquía de memoria

ASIGNATURA: Arquitectura de Computadores

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Diagrama de una computadora. Unidad Central de procesamiento (CPU)

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Sentencias de control. Condiciones

( 1 0 BLOQUE DE GEOMETRÍA TEMA 4: ESPACIOS VECTORIALES. ( 5+ 3i )+ ( 2 i )=7+ 2i. La suma de dos números complejos es un número complejo.

Advanced Engineering for Real Solutions CURSO BÁSICO DE ELEMENTOS FINITOS 1.2 CONCEPTOS DE ÁLGEBRA LINEAL

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

C. Ecuaciones e inecuaciones

Expresiones y Operadores

MATEMÁTICAS 1º DE ESO

Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz

-5.2 SUMADOR CON MULTIPLES SUMANDOS.

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

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Clasificación de las Arquitecturas

INICIACIÓN A LA PROGRAMACIÓN EN C

Transcripción:

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 de computadores vectoriales y sus mejoras de rendimiento frente a computadores escalares. Para el desarrollo de la práctica usaremos el simulador DLXV que simula el comportamiento de un computador vectorial. Realizaremos la programación de la operación DAXPY (Y = a X + Y en doble precisión) tanto para programación escalar como vectorial y compararemos resultados. También se estudiará el manejo de los módulos de memoria y se realizará un programa de multiplicación de matrices con instrucciones vectoriales. INTRODUCCIÓN TEÓRICA. Arquitectura del computador DLXV En la figura se muestra el diagrama de bloques del computador DLXV. Es un computador con las características escalares del DLX, ya estudiado, al que se han añadido capacidades vectoriales: registros vectoriales, unidades funcionales vectoriales y una unidad de carga/almacenamiento de vectores.

Memoria principal Carga/almacenamiento vectorial suma/resta FP multiplicación FP Registros vectoriales división FP Entero Lógico Registros escalares Las características de este computador son las siguientes: 8 registros vectoriales de 64 dobles palabras cada uno (V0 a V7). 5 unidades funcionales vectoriales. Unidad de carga/almacenamiento vectorial completamente segmentada para que puedan ser transferidas las palabras entre los registros vectoriales y la memoria con un ancho de banda de una palabra por ciclo de reloj, después de una latencia inicial.. Conjunto de registros escalares formado por los 32 registros enteros y los 32 registros punto flotante del computador DLX.

Instrucciones vectoriales En la siguiente tabla se describen las instrucciones vectoriales del computador Instrucción ADDV ADDSV SUBV SUBVS SUBSV MULTV MULTSV DIVV Operandos Función V1,V2,V3 Suma los elementos de V2 y V3 y pone el resultado en V1. V1,F0,V2 Suma F0 a cada elemento de V2 y pone el resultado en V1. V1,V2,V3 Resta los elementos de V3 a V2 y pone el resultado en V1. V1,V2,F0 Resta F0 a los elementos de V2 y pone el resultado en V1. V1,F0,V2 Resta a F0 los elementos de V2 y pone el resultado en V1. V1,V2,V3 Multiplica los elementos de V2 y V3; resultado en V1. V1,F0,V2 V1,V2,V3 Multiplica los elementos de V2 por F0; resultado en V1. Divide los elementos de V2 por los de V3, resultados a V1. Divide los elementos de V2 por F0, resultados a V1. Divide F0 por los elementos de V2, resultados a V1. DIVVS DIVSV V1,V2,F0 V1,F0,V2 LV V1,A(R1) Carga el registro vectorial V1 desde la posición de memoria indicada por A+R1. SV A(R1),V1 Almacena el registro vectorial V1 en memoria a partir de la posición indicada por A+R1. LVWS V1,R1,R2 Carga V1 desde la dirección en R1 con separación en R2. SVWS R1,R2,V1 Almacena V1 desde la dirección en R1 con separación en R2. LVI V1,R1,V2 Carga V1 con un vector cuyos elementos están en la dirección R1+V2(i). SVI R1,V2,V1 Almacena V1 en las posiciones indicadas por la dirección R1+V2(i). CVI V1,R1 Crea un vector de índices, esto es, almacena en V1 los valores 0,R1,2 R1,3 R1,...,63 R1. S_V S_SV V1,V2 F0,V1 Compara (EQ, NE, GT, LT, GE, LE) los operandos; si la condición se cumple, pone a 1 el bit correspondiente en el registro de mascara vectorial VM y, si no se cumple, lo pone a 0. POP R1,VM Cuenta el número de 1s en el registro VM y almacena el resultado en R1. CVM Pone todo el registro de mascara vectorial a 1. MOVI2S MOVS2I MOVF2S MOVS2F VLR,R1 R1,VLR VM,F0 F0,VM Transfiere el contenido de R1 al registro de longitud vectorial. Transfiere el contenido del registro de longitud vectorial a R1. Transfiere el contenido de F0 al registro de máscara vectorial. Transfiere el contenido del registro de máscara vectorial a F0.

Tiempos en un computador vectorial En un computador vectorial podemos distinguir dos tiempos en la ejecución de instrucciones en las unidades funcionales: Tiempo de arranque: El que transcurre desde el comienzo hasta obtener el resultado de la primera componente; depende de la latencia de la unidad funcional. Velocidad de iniciación: El que transcurre entre la obtención de cada una del resto de componentes después del tiempo de arranque. En computadores totalmente segmentados, como es el caso del DLXV, su valor es 1 ciclo. Los tiempos de arranque de las unidades funcionales del DLXV se muestran en la siguiente tabla. Si dos operaciones consecutivas son dependientes se debe añadir al tiempo de arranque 4 ciclos. Operación Arranque Suma vectorial 6 Multiplicación vectorial 7 División vectorial 20 Carga vectorial 12 NOTA: Los valores mostrados corresponden a los que el simulador DLXV asigna por defecto. Se pueden alterar a voluntad mediante la opción "Configuración". Las cargas vectoriales se realizan desde la memoria dividida en bancos, en los que se realiza una carga simultánea de posiciones de memoria consecutivas, de forma que se pueda suministrar una componente del vector por cada ciclo después del tiempo de acceso a memoria (12 ciclos). Para que esto sea posible el número de bancos debe ser superior al tiempo de acceso. En el caso de que las componentes del vector no estén en posiciones consecutivas de memoria se pueden dar colisiones cuando a dos componentes del vector les corresponde el mismo banco de memoria produciéndose retardos por este motivo. La solución a este problema es aumentar lo suficiente los bancos de memoria o disponer su número de forma que se minimice el número de colisiones.

DESARROLLO DE LA PRÁCTICA 1.- Realizar un programa que calcule la operación Y = a X + Y donde X e Y son vectores de 100 elementos y a un escalar, primero con instrucciones escalares y después con instrucciones vectoriales. Comparar los resultados obtenidos. Hacer un estudio de las estadísticas obtenidas en el programa vectorial. (Todos los operandos deben ser de doble precisión). 2.- Realizar la parte vectorial del apartado 1 cambiando el número de bancos de memoria y, con vectores cuyas componentes no estén almacenadas en memora de forma consecutiva, analizar resultados. Realizar las pruebas y analizar los resultados para las siguientes situaciones: Bancos de Distancia en memoria memoria entre componentes 64 bancos Posiciones consecutivas 32 bancos Posiciones consecutivas 16 bancos Posiciones consecutivas 3.- Realizar un programa que multiplique dos matrices de 10 x 10 usando instrucciones vectoriales. Sugerencia: Obsérvese que se verifica la siguiente igualdad: (c i1,..., c in ) = j=1,n a ij (b j1,..., b jn ) donde A, B son las matrices a multiplicar, C la matriz producto y n el orden de las matrices. Por lo tanto, se trata de reiterar una operación del tipo DAXPY como la comentada en el principio de la práctica.