Febrero Departamento de Electrónica e Sistemas Universidade da Coruña. Introducción a las Extensiones Multimedia
|
|
- Roberto Nieto Montero
- hace 8 años
- Vistas:
Transcripción
1 a a Departamento de Electrónica e Sistemas Universidade da Coruña Febrero a
2 Índice a a
3 Qué son extensiones multimedia? a Son nuevas instrucciones añadidas al repertorio de instrucciones de los microprocesadores. Estas instrucciones están optimizadas para procesar datos en aplicaciones multimedia. La característica común es que están basadas en el paradigma SIMD. Las extensiones multimedia utilizan replicación de unidades funcionales. Ejecución síncrona de la misma instrucción sobre datos diferentes. Control 3 a 2 / 30
4 SIMD vs. Superscalar a Un procesador SIMD es más sencillo que uno superscalar por varias razones: Sólo necesita una unidad de control. No es necesario resolver dependencias. Control Banco de registros Acceso a memoria Control Análisis de dependencias Reordenamiento de instrucciones Renombramiento de registros Ejecución de instrucciones Banco de registros Acceso a memoria 3 a 3 / 30
5 SIMD en sistemas comerciales a 3 Microprocesadores multicore actuales: SSE de Intel, Altivec para el PowerPC (IBM), 3DNow! para AMD. GPUs actuales (Graphic Processing Unit): tarjetas gráficas como GeForce GTX 580, ATI Radeon Del orden de cientos de cores pero con una jerarquía que complica su programación. Procesador Cell de la PlayStation3. Dentro de cada unidad SPE (tiene 8 en el mismo procesador) utiliza instrucciones vectoriales propietarias (basadas en Altivec). Many Integrated Core (MIC) de Intel a 4 / 30
6 Contextualización del paralelismo SIMD a SSE 3 a 5 / 30
7 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Aparecen en el Pentium. Usan 8 registros vectoriales (mmx0... mmx7) de 64 bits. Registros compartidos con la FPU. Sólo operaciones sobre enteros. a 6 / 30
8 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Aparecen en el AMD K6-2. Operan tanto sobre enteros como sobre punto flotante. Extendida posteriormente en Enhaced 3dNow! y 3dNow! Professional a 6 / 30
9 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Acrónimo de Streaming SIMD Extensions. Usadas en el Pentium III y el AMD Athlon. 8 nuevos registros (xmm0... xmm7) de 128 bits. 70 nuevas instrucciones vectoriales en punto flotante de simple precisión. a 6 / 30
10 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Presentes en el Pentium IV y el AMD Athlon 64. Nuevas instrucciones vectoriales para enteros y punto flotante en doble precisión. Ya no es necesario el uso de instrucciones MMX. a 6 / 30
11 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Se usan en el Pentium IV Prescott y en los últimos Athlon 64 y Athlon 64 X2. 13 nuevas instrucciones. Mejora la capacidad para trabajar (horizontalmente) sobre datos guardados en el mismo registro. a 6 / 30
12 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Acrónimo de Suplementary SSE3. Usadas sólo en la arquitectura Core. Son 16 nuevas instrucciones para 64 bits y mismas 16 para 128 bits. a 6 / 30
13 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Implementadas en el Intel Core 2 Duo Penryn. Son 54 (47 SSE SSE4.2) nuevas instrucciones. Trabaja con registros de 128 bits pero realiza cálculos tanto de enteros como de punto flotante. a 6 / 30
14 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Implementadas en el procesador AMD Bulldozer (2011). Son 170 nuevas instrucciones. a 6 / 30
15 Evolución histórica de extensiones multimedia a 3 Año 1997: MMX Año 1998: 3dNow! Año 1999: SSE Año 2001: SSE2 Año 2004: SSE3 Año 2006: SSSE3 Año 2007: SSE4 Año 2007: SSE5 Año 2008: AVX Implementadas en el procesador Intel Sandy Bridge (2010) y AMD Bulldozer (2011). a 6 / 30
16 Índice a a
17 Métodos para usar la tecnología SIMD a 3 + facilidad de uso + control Vectorización automática. Ces C++ especiales. Librería. Lenguaje ensamblador embebido. Soporte limitado en los compiladores. No se debe tener confianza en que obtengan un buen rendimiento. En gcc (version >=4.0): -O3 -ftree-vectorize -ftreevectorizer-verbose=nivel -march=arquitectura En icc: -O3 -xsse3 -vec-report[nivel] a 7 / 30
18 Métodos para usar la tecnología SIMD a 3 + facilidad de uso + control Vectorización automática. Ces C++ especiales. Librería. Lenguaje ensamblador embebido. Cabeceras. ivec.h para MMX fvec.h para SSE e incluye ivec.h dvec.h para SSE2 e incluye fvec.h Ces especiales. I8vec8, (ocho enteros de 8 bits) I8vec16, (16 enteros de 8 bits) I16vec4, I16vec8, I32vec2, I32vec4, I64vec1, I64vec2, I128vec1 Isec8, (entero con signo) Iuvec8 (entero sin signo) F32vec4 4 números flotante en simple precisión de 32 bits F64vec4 4 números flotante en simple precisión de 64 bits a 7 / 30
19 Métodos para usar la tecnología SIMD a 3 + facilidad de uso + control Vectorización automática. Ces C++ especiales. Librería. Lenguaje ensamblador embebido. Alta eficiencia pero programación engorrosa y lenta. GCC Inline Assembly: asm { // Instrucciones en ensamblador } a 7 / 30
20 Métodos para usar la tecnología SIMD a 3 + facilidad de uso + control Vectorización automática. Ces C++ especiales. Librería. Lenguaje ensamblador embebido. Funciones de alto nivel que se mapean de forma casi directa en instrucciones ensamblador. Ofrecen lo mejor de ambos mundos. Ejemplos: MMX: m64 m paddb( m64 m1, m64 m2) SSE: m128 mm add ps( m128 a, m128 b) Altivec: vec madd(arg1, arg2, arg3) a 7 / 30
21 Índice a a
22 Programación en SSE usando a 3 Cabeceras a utilizar: mmintrin.h para instrucciones MMX. xmmintrin.h para instrucciones SSE. Incluye mmintrin.h. emmintrin.h para instrucciones SSE2. Incluye xmmintrin.h. pmmintrin.h para instrucciones SSE3. Incluye emmintrin.h. Proporcionan: NOTA Tipos de datos para manejo de los registros vectoriales. Instrucciones vectoriales. En Linux la llamada cat /proc/cpuinfo muestra qué extensiones están disponibles. a 8 / 30
23 Tipos de datos y operaciones de a 3 NOTA Tipo Registro Almacena m64 MMX 8x8 bits, 4x16 bits, 2x32 bits o 1x64 bits m128 XMM 4x32 bits m128d XMM 2x64 bits m128i XMM 16x8 bits, 8x16 bits, 4x32 bits, 2x64 bits Por el tipo de datos: Enteros: 8, 16, 32 y 64 bits, con y sin signo. Punto flotante: simple y doble precisión. Por el tipo de operación: Aritmético-lógicas: sumas, productos... De manipulación de datos: movimiento entre registros y memoria, empaquetar/desempaquetar... No existen instrucciones de control de flujo SIMD. a 9 / 30
24 Instrucciones vectoriales de a 3 El nombre suele seguir la forma libreria instruccion sufijo Librería: mm para SSE, m para MMX. Instrucción: Por ejemplo la suma es add. Sufijo: Sobre registros MMX(64-bit): pi# Contienen enteros de #-bit empaquetados. pu# Contienen enteros sin signo de #-bit empaquetados. si64 Contienen un solo entero de 64 bits. Sobre registros XMM(128-bit): epi# Contienen enteros de #-bit empaquetados. epu# Contienen enteros sin signo de #-bit empaquetados. ps Contienen valores en punto flotante de precisión simple empaquetados. ss Contienen un número en punto flotante de precisión simple. pd Contienen valores en punto flotante de doble precisión empaquetados. sd Contienen un número en punto flotante de doble precisión. si128 Contienen un solo entero de 128 bits. a 10 / 30
25 Instrucciones vectoriales de a 3 El nombre suele seguir la forma libreria instruccion sufijo Librería: mm para SSE, m para MMX. Instrucción: Por ejemplo la suma es add. Sufijo: Sobre registros MMX(64-bit): pi# Contienen enteros de #-bit empaquetados. pu# Contienen enteros sin signo de #-bit empaquetados. si64 Contienen un solo entero de 64 bits. Sobre registros XMM(128-bit): epi# Contienen enteros de #-bit empaquetados. epu# Contienen enteros sin signo de #-bit empaquetados. ps Contienen valores en punto flotante de precisión simple empaquetados. ss Contienen un número en punto flotante de precisión simple. pd Contienen valores en punto flotante de doble precisión empaquetados. sd Contienen un número en punto flotante de doble precisión. si128 Contienen un solo entero de 128 bits. a 10 / 30
26 Instrucciones vectoriales de a 3 El nombre suele seguir la forma libreria instruccion sufijo Librería: mm para SSE, m para MMX. Instrucción: Por ejemplo la suma es add. Sufijo: Sobre registros MMX(64-bit): pi# Contienen enteros de #-bit empaquetados. pu# Contienen enteros sin signo de #-bit empaquetados. si64 Contienen un solo entero de 64 bits. Sobre registros XMM(128-bit): epi# Contienen enteros de #-bit empaquetados. epu# Contienen enteros sin signo de #-bit empaquetados. ps Contienen valores en punto flotante de precisión simple empaquetados. ss Contienen un número en punto flotante de precisión simple. pd Contienen valores en punto flotante de doble precisión empaquetados. sd Contienen un número en punto flotante de doble precisión. si128 Contienen un solo entero de 128 bits. a 10 / 30
27 Instrucciones vectoriales de a 3 El nombre suele seguir la forma libreria instruccion sufijo Librería: mm para SSE, m para MMX. Instrucción: Por ejemplo la suma es add. Sufijo: Sobre registros MMX(64-bit): pi# Contienen enteros de #-bit empaquetados. pu# Contienen enteros sin signo de #-bit empaquetados. si64 Contienen un solo entero de 64 bits. Sobre registros XMM(128-bit): epi# Contienen enteros de #-bit empaquetados. epu# Contienen enteros sin signo de #-bit empaquetados. ps Contienen valores en punto flotante de precisión simple empaquetados. ss Contienen un número en punto flotante de precisión simple. pd Contienen valores en punto flotante de doble precisión empaquetados. sd Contienen un número en punto flotante de doble precisión. si128 Contienen un solo entero de 128 bits. a 10 / 30
28 Instrucciones de Carga/Almacenamiento a m128 mm load ps(float *p) p RAM... p 0 p 1 p 2 p 3... float *p; m128 a; //Inicialización, reserva de espacio y alineado... a = _mm_load_ps(p); p 0 p 1 p 2 p 3 a 3 NOTA La dirección p debe tener un alineamiento de 16 bytes. a 11 / 30
29 Instrucciones de Carga/Almacenamiento a void mm store ps(float *p, m128 a) p RAM... a0 a1 a2 a3... float *p; m128 a; //Inicialización, reserva de espacio y alineado... _mm_store_ps(p, a); a0 a1 a2 a3 a 3 NOTA La dirección debe tener un alineamiento de 16 bytes. a 11 / 30
30 Instrucciones de Inicialización a m128 mm setzero ps(void) Inicializa el registro con 4 ceros en punto flotante de simple precisión. 3 a 12 / 30
31 Instrucciones de Inicialización a m128 mm set ps(float z, float y, float x, float w) w x y z Inicializa el registro con los números en puntos flotante de simple precisión especificados en w,x,y y z. 3 a 12 / 30
32 Instrucciones de Reordenación a m128 mm unpacklo ps( m128 a, m128 b) m128 a, b, c; //Inicialización de registros... c = _mm_unpacklo_ps(a, b); a 0 a 1 a 2 a 3 a UPCKLO b 0 b 1 b 2 b 3 b 3 a 0 b 0 a 1 b 1 c Entrelaza los 2 valores en punto flotante y simple precisión de la parte inferior de a con los 2 de la parte inferior de b. a 13 / 30
33 Instrucciones de Reordenación a m128 mm unpackhi ps( m128 a, m128 b) m128 a, b, c; //Inicialización de registros... c = _mm_unpackhi_ps(a, b); a 0 a 1 a 2 a 3 a UPCKHI b 0 b 1 b 2 b 3 b 3 a 2 b 2 a 3 b 3 c Entrelaza los 2 valores en punto flotante de la parte superior de a con los 2 de la parte superior de b. a 13 / 30
34 Instrucciones de Reordenación a m128 mm shuffle ps( m128 a, m128 b, int imm) m128 a, b, c; //Inicialización de registros... c = _mm_shuffle_ps(a, b, _MM_SHUFFLE(1,2,3,0)); a 0 a 1 a 2 a 3 a SHUFFLE b 0 b 1 b 2 b 3 b 3 a 0 a 3 b 2 b 1 c Selecciona 2 valores de a y 2 valores de b basándose en el contenido de la máscara imm. a 13 / 30
35 Operación de shuffle: Uso de la máscara a Dados dos registros vectoriales m1 y m m1 a b c d m2 e f g h 3 a 14 / 30
36 Operación de shuffle: Uso de la máscara a...los combino en un tercer registro m3, usando una máscara m1 a b c d m3 = _mm_shuffle_ps(m1, m2, _MM_SHUFFLE(,,,)) 3 m e f g h m a 14 / 30
37 Operación de shuffle: Uso de la máscara a Los 2 primeros argumentos seleccionan los elementos de m m1 a b c d m3 = _mm_shuffle_ps(m1, m2, _MM_SHUFFLE(1,2,,)) m2 e f g h m3 g f 0 (1) (2) 3 3 a 14 / 30
38 Operación de shuffle: Uso de la máscara a Los 2 últimos argumentos seleccionan los elementos de m m1 a b c d m3 = _mm_shuffle_ps(m1, m2, _MM_SHUFFLE(1,2,3,0)) (0) 1 2 (3) m2 e f g h m3 a d g f 3 a 14 / 30
39 Instrucciones Aritméticas a m128 mm add ps( m128 a, m128 b) a0 + b0 a1 + b1 a2 + b2 a3 + b Suma los 4 flotantes en simple precisión de a con los de b. 3 a 15 / 30
40 Instrucciones Aritméticas a m128 mm mul ps( m128 a, m128 b) a0 b0 a1 b1 a2 b2 a3 b Multiplica los 4 flotantes en simple precisión de a con los de b. 3 a 15 / 30
41 Instrucciones Aritméticas a m128 mm hadd ps( m128 a, m128 b) a0 + a1 a2 + a3 b0 + b1 b2 + b Suma dos a dos los 4 flotantes en simple precisión de a y los 4 de b. 3 a 15 / 30
42 Instrucciones Aritméticas a m128 mm sqrt ps( m128 a) sqrt(a0) sqrt(a1) sqrt(a2) sqrt(a3) Calcula la raíz cuadrada de los 4 números en punto flotante de simple precisión almacenados en a. 3 a 15 / 30
43 Instrucciones Aritméticas a m128i mm sad epu8( m128i a, m128i b) abs(a8 b8) abs(a9 b9) abs(a15 b15) abs(a0 b0) + abs(a1 b1) abs(a7 b7) Calcula la suma de diferencias absolutas entre los 8 primeros enteros de cada registro y entre los ocho siguientes. 3 a 15 / 30
44 Índice a a
45 Vectorización a 3 La técnica se aplica sobre bucles dentro del programa. La disposición de los datos, el orden de operaciones y dependencias tienen gran influencia en el rendimiento. int i; float A[1024],B[1024],C[1024]; for(i=0; i<1024; i++) C[i]=A[i]*B[i]; int i; Unrolling factor 4 float A[1024],B[1024],C[1024]; m128 reg0, reg1, reg2; for(i=0; i<1024; i+=4){ reg0 = _mm_loadu_ps(&(a[i])); reg1 = _mm_loadu_ps(&(b[i])); reg2 = _mm_mul_ps(reg0, reg1); _mm_storeu_ps(&(c[i]),reg2); } int i; float A[1024],B[1024],C[1024]; for(i=0; i<1024; i+=4){ C[i]=A[i]*B[i]; C[i+1]=A[i+1]*B[i+1]; C[i+2]=A[i+2]*B[i+2]; C[i+3]=A[i+3]*B[i+3]; } a 16 / 30
46 Mapeado de datos: Alineado de memoria a Los registros SSE tienen 128 bits (16 bytes). Las instrucciones vectoriales deben operar sobre datos alineados. NOTA Si operamos vectorialmente datos no alineados obtendremos una excepción. Existen instrucciones específicas para operar datos no alineados (menor rendimiento dependiendo del hardware). 3 a 17 / 30
47 Mapeado de datos: Alineado de memoria a Memoria estática: Alineamiento: float a[1024] attribute ((aligned(16))); Memoria dinámica: Modificación manual del puntero. Instrucción específica de reserva de memoria: int *p=(int *) _mm_malloc(size*sizeof(int),16);... _mm_free(p); 3 a 18 / 30
48 Mapeado de datos: Tamaño de los datos a Ejemplo La máxima aceleración alcanzable utilizando instrucciones SIMD depende directamente del tamaño de los elementos individuales. Es necesario usar el tipo de datos más pequeño que podamos. Usar unsigned short en vez de unsigned int si sabemos que el máximo entero almacenado nunca excederá del rango de un unsigned short. 3 a 19 / 30
49 Índice a a
50 Sumar los elementos de dos vectores a 3... float *a,*b,*c; a=(float *) malloc(size*sizeof(float)); b=(float *) malloc(size*sizeof(float)); c=(float *) malloc(size*sizeof(float)); for (i=0; i<size; i++) { c[i]=a[i]+b[i]; }... free(a);free(b);free(c); a 20 / 30
51 Sumar los elementos de dos vectores a 3... //Alineamiento de datos float *a,*b,*c; a=(float *) mm malloc(size*sizeof(float),16); b=(float *) mm malloc(size*sizeof(float),16); c=(float *) mm malloc(size*sizeof(float),16); /*... Inicializacion de los array...*/ for (i=0; i<size; i++) { c[i]=a[i]+b[i]; }... a 21 / 30
52 Sumar los elementos de dos vectores a 3... //Alineamiento de datos float *a,*b,*c; a=(float *) mm malloc(size*sizeof(float),16); b=(float *) mm malloc(size*sizeof(float),16); c=(float *) mm malloc(size*sizeof(float),16); /*... Inicializacion de los array...*/ //Declarar registros vectoriales m128 rega,regb,regc; for (i=0; i<size; i++) { c[i]=a[i]+b[i]; }... a 22 / 30
53 Sumar los elementos de dos vectores a 3... //Alineamiento de datos float *a,*b,*c; a=(float *) mm malloc(size*sizeof(float),16); b=(float *) mm malloc(size*sizeof(float),16); c=(float *) mm malloc(size*sizeof(float),16); /*... Inicializacion de los array...*/ //Declarar registros vectoriales m128 rega,regb,regc; //Procesar los elementos vectorialmente for (i=0; i<size; i=i+4) { regb= mm load ps(&(a[i])); regc= mm load ps(&(b[i])); rega= mm add ps(regb,regc); mm store ps(&(c[i]),rega); }... //Liberar memoria mm free(a); mm free(b); mm free(c); a 23 / 30
54 Índice a a
55 Cálculo de la norma de cada fila de una matriz densa a for (i=0; i<nfi; i++) { normafila = 0; for (j=0; j<ncols; j++) { normafila += valores[i*ncols+j]*valores[i*ncols+j]; } norma[i] = sqrt(normafila); } 3 a 24 / 30
56 Cálculo de la norma de cada fila de una matriz: Versiones a 3 1 AUTOVEC : vectorizar automáticamente el código con GCC. 2 MANVEC1 : vectorizar la operación producto del bucle interno. 3 MANVEC2: vectorizar 3 operaciones del bucle más externo (+,*,sqrt) mediante operaciones que operen horizontalmente sobre datos ubicados en el mismo registro (instrucción mm hadd ps). 4 MANVEC3: vectorizar 3 operaciones del bucle más externo (+,*,sqrt) mediante operaciones que redistribuyan los datos en los registros para evitar operaciones horizontales (usar instrucciones tales como mm shuffle ps, mm unpacklo ps y mm unpackhi ps). a 25 / 30
57 Cálculo de la norma de cada fila de una matriz densa: Problemas a resolver a Problemas comunes que se deben resolver en versiones que utilizan : 1 Alineamiento de los datos. 2 El ĺımite del bucle puede no ser múltiplo del número de elementos que van a ser procesados simultáneamente en cada iteración del bucle vectorizado. 3 a 26 / 30
58 Cálculo de la norma de cada fila de una matriz densa: MANVEC2 y 3 a La matriz se procesa en subbloques del tamaño apropiado. a1 b1 a2 b2 a3 b3 a4 b4 c1 c2 c3 c4 d1 d2 d3 d4 3 Operación a realizar a1*a1 + a2*a2 + a3*a3 + a4*a4 b1*b1 + b2*b2 + b3*b3 + b4*b4 c1*c1 + c2*c2 + c3*c3 + c4*c4 d1*d1 + d2*d2 + d3*d3 + d4*d4 a 27 / 30
59 Cálculo de la norma de cada fila de una matriz densa: MANVEC2 a Vectorizar (*,+,sqrt) usando operaciones horizontales (p. ej. mm hadd ps): 2 Multiplicar cada registro por sí mismo. a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 a1*a1 a2*a2 a3*a3 a4*a4 b1*b1 b2*b2 b3*b3 b4*b4 c1*c1 c2*c2 c3*c3 c4*c4 a1*a1+ a2*a2+ a3*a3+ a4*4 b1*b1+ b2*b2+ b3*b3+ b4*b4 c1*c1+ c2*c2+ c3*c3+ c4*c4 d1*d1+ d2*d2+ d3*d3+ d4*d4 d1 d2 d3 d4 1 - Cargar los datos en registros vectoriales. d1*d1 d2*d2 d3*d3 d4*d4 3 Sumar todos los registros entre sí Al terminar de procesar cada fila calcular la raíz cuadrada de lo acumulado. a 28 / 30
60 Cálculo de la norma de cada fila de una matriz densa: MANVEC3 a Vectorizar (*,+,sqrt) usando operaciones de redistribución de los datos sobre los registros (p. ej. mm shuffle ps, mm unpacklo ps, mm unpackhi ps): 1 - Cargar los datos en registros vectoriales de 4 en Multiplicar cada registro por sí mismo. a1 a2 a3 a4 a1 a2 a3 a4 a1 b1 c1 d1 a1*a1 b1*b1 c1*c1 d1*d1 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 b1 c1 d1 b2 c2 d2 b3 c3 d3 b4 c4 d4 2 - Reordenar los datos para evitar tener que realizar una suma de valores ubicados en el mismo registro. a2 a3 a4 b2 b3 b4 c2 c3 c4 d2 d3 d4 a2*a2 b2*b2 c2*c2 d2*d2 a1*a1 + b1*b1 + c1*c1 + a2*a2 + b2*b2 + c2*c2 + a3*a3 + b3*b3 + c3*c3 + a4*a4 b4*b4 c4*c4 a3*a3 b3*b3 c3*c3 d3*d3 a4*a4 b4*b4 c4*c4 d4*d4 4 - Sumar todos los registros entre sí. d1*d1 + d2*d2 + d3*d3 + d4*d4 3 Operación a realizar a1*a1 + a2*a2 + a3*a3 + a4*a4 b1*b1 + b2*b2 + b3*b3 + b4*b4 c1*c1 + c2*c2 + c3*c3 + c4*c4 d1*d1 + d2*d2 + d3*d3 + d4*d4 a 29 / 30
61 Información importante a Práctica 3 = Deadline: 16 y 17 de febrero Jorge González Domínguez Grupo de Arquitectura de Tutorías: Martes 11:30-13:30 y Viernes 10:30-12:30 Laboratorio jgonzalezd@udc.es 3 a 30 / 30
Familia de procesadores Intel x86
Familia de procesadores Intel x86 Mario Medina C. mariomedina@udec.cl Intel 8086 y 8088 8086: 1978, 29K transistores 8 Registros de 16 bits Bus de datos de 16 bits Bus de dirección de 20 bits Multiplexado
Más detallesExtensiones multimedia Intel
Facultad de Informática Grado de Ingeniería Informática Ingeniería de Computadores Extensiones multimedia Intel Autor: Mikel Sagastibelza Azcarate Tutor: Clemente Rodríguez Lafuente San Sebastián, Junio
Más detallesArquitecturas GPU v. 2013
v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detallesDr.-Ing. Paola Vega Castillo
EL-3310 DISEÑO O DE SISTEMAS DIGITALES Dr.-Ing. Paola Vega Castillo Información n General Curso: Diseño de Sistemas Digitales Código: EL-3310 Tipo de curso: Teórico Créditos/Horas por semana: 4/4 Requisito:
Más detallesITT-327-T Microprocesadores
ITT-327-T Microprocesadores Introducción al Microprocesador y al Microcomputador. al Microcomputador. Profesor Julio Ferreira. Sistema Microcomputador. Un Sistema Microcomputador tiene dos componentes
Más detallesModelo de aplicaciones CUDA
Modelo de aplicaciones CUDA Utilización de GPGPUs: las placas gráficas se utilizan en el contexto de una CPU: host (CPU) + uno o varios device o GPUs Procesadores masivamente paralelos equipados con muchas
Más detallesArquitecturas CISC y RISC
Arquitecturas CISC y RISC Diseño de Sistemas Digitales EL-3310 I SEMESTRE 2008 2. ARQUITECTURA DEL CONJUNTO DE INSTRUCCIONES 2.1 Elementos de la arquitectura Clasificación de la arquitectura Organización
Más detallesTema 2. Diseño del repertorio de instrucciones
Soluciones a los problemas impares Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 16 Tema 2: Hoja: 3 / 16 Base teórica Al diseñar un computador,
Más detallesACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.
1.- a) Explica qué es un bit de información. Qué es el lenguaje binario? Bit es la abreviatura de Binary digit. (Dígito binario). Un bit es un dígito del lenguaje binario que es el lenguaje universal usado
Más detallesTema 5 Repertorios de instrucciones: Modos de direccionamiento y formato
Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato Bibliografía: William Stallings Organización y Arquitectura de computadores 5ta. Edition. Editorial Pearson Educación.- Objetivos:
Más detallesMICROPROCESADORES, EVOLUCIÓN HISTÓRICA Y CARACTERÍSTICAS TÉCNICAS BÁSICAS
MICROPROCESADORES, EVOLUCIÓN HISTÓRICA Y CARACTERÍSTICAS TÉCNICAS BÁSICAS Se muestra a continuación la evolución histórica de los microprocesadores fabricados por INTEL (fundada en 1968 por Robert Noyce,
Más detallesProcesador Intel Core 2 Extreme de 4 núcleos Traducción de Textos Curso 2007/2008
Procesador Intel Core 2 Traducción de Textos Curso 2007/2008 Versión Cambio 0.9RC Revisión del texto 0.8 Traducido el octavo párrafo 0.7 Traducido el séptimo párrafo Autor: Rubén Paje del Pino i010328
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesLógica Binaria. Arquitectura de Ordenadores. Codificación de la Información. Abelardo Pardo abel@it.uc3m.es. Universidad Carlos III de Madrid
Arquitectura de Ordenadores Codificación de la Información Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Lógica Binaria COD-1 Internamente el ordenador
Más detallesTema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.
Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)
Más detalles"Programación en Ensamblador del microprocesador Pentium (I)"
PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detallesPROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS
PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS Tema 5 Memorias Hoja: 2 / 14 Base teórica La memoria es el lugar en el que se almacenan las instrucciones y los datos para que se puedan
Más detallesPROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO196581 ÁNGEL MARÍA VILABOA PÉREZ UO197092 BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO
PROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO196581 ÁNGEL MARÍA VILABOA PÉREZ UO197092 BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO INTRODUCCIÓN Ligada al concepto de vector Decodifica instrucciones
Más detallesCapítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas
Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse
Más detallesHardware: dentro de la caja. Introducción a la Informática 2010-2011
Hardware: dentro de la caja Introducción a la Informática 2010-2011 Objetivos Conocer cómo se almacena y manipula la información dentro de los ordenadores Analizar la estructura y organización básica de
Más detallesArquitectura de Computadores
Arquitectura de Computadores Ricardo.Sanz@upm.es Curso 2004-2005 Arquitectura de Computadores Arquitectura de computadores es la disciplina que estudia la organización y funcionamiento de los computadores
Más detallesUnidad 1: Conceptos generales de Sistemas Operativos.
Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones
Más detallesCPU. Unidad central de procesamiento
CPU Unidad central de procesamiento QUÉ ES UNA PLACA BASE? La mainboard o motherboard es el elemento principal de un Pc. En ella se integran o se conectan el resto de dispositivos (memoria, procesador,
Más detalles1.1 Definición del problema
Capítulo 1. Introducción 1.1 Definición del problema Cuando el famoso juego Doom apareció, no solamente nos asombró el grandioso juego, sino que también trajo y popularizo un nuevo modelo de programación
Más detallesLECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS
ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se
Más detalles18. Camino de datos y unidad de control
Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 18. Camino de datos y unidad de control Un La versatilidad una característica deseable los Los
Más detallesLos Microprocesadores MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Evolución Histórica de los Microprocesadores Intel Evolución de los microprocesadores Intel de la década de los 70 4004
Más detallesPRÁCTICA MANEJO INTERNO DE DATOS
Objetivos PRÁCTICA 1. El alumno conocerá la representación de datos en el sistema binario y hexadecimal 2. El alumno conocerá como definir un programa en el entorno de desarrollo del lenguaje C Introducción
Más detallesArquitectura Von Neumann
Arquitectura Von Neumann Arquitectura Von Neumann Establecida en 1945 por Von Neumann Modelo básico de arquitectura utilizado en la mayoría de los computadores Su idea es la de conectar permanentemente
Más detallesAritmética finita y análisis de error
Aritmética finita y análisis de error Escuela de Ingeniería Informática de Oviedo (Dpto. de Matemáticas-UniOvi) Computación Numérica Aritmética finita y análisis de error 1 / 47 Contenidos 1 Sistemas decimal
Más detallesJava Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Más detallesEstructura de Computadores
Estructura de Computadores Tema 4. El procesador Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido Elementos de un
Más detallesTiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.
ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador
Más detallesIntroducción a la Programación 11 O. Humberto Cervantes Maceda
Introducción a la Programación 11 O Humberto Cervantes Maceda Recordando En la sesión anterior vimos que la información almacenada en la memoria, y por lo tanto aquella que procesa la unidad central de
Más detallesProcesador Pentium II 450 MHz Procesador Pentium II 400 MHz Procesador Pentium II 350 MHz Procesador Pentium II 333 MHz Procesador Pentium II 300 MHz
PENTIUM El procesador Pentium es un miembro de la familia Intel de procesadores de propósito general de 32 bits. Al igual que los miembros de esta familia, el 386 y el 486, su rango de direcciones es de
Más detallesCurso S08 para Cavernícolas
Curso S08 para Cavernícolas Tema ORIGENES DE LOS MICROCONTROLADORES FREESCALE, 2014 Todos los derechos reservados INTRODUCION Desde sus inicios como Motorola, esta empresa ha sido reconocida mundialmente
Más detallesX86 frente a PPC - Intel/AMD contra IBM
X86 frente a PPC - Intel/AMD contra IBM O el giro hacia RISC - Desmontando el mito del megahercio. Existen varios mitos en la informática de consumo. Uno de los más extendidos, sobre todo al usuario medio,
Más detallesEl microprocesador. Alberto Molina Coballes David Sánchez López. Noviembre 2011. Fundamentos de Hardware
El microprocesador Alberto Molina Coballes David Sánchez López Fundamentos de Hardware Noviembre 2011 Índice 1. Concepto 2. Arquitectura Interna 3. Elementos de un Microprocesador 4. Arquitectura Externa.
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesSe guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Más detallesIntroducción al tipo de dato ARRAY
CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción
Más detallesProgramación Vectorial
Programación Vectorial Rafael Valdés Valdazo, Angel María Vilaboa Pérez UO196558@uniovi.es, UO197092@uniovi.es Resumen. Este documento trata sobre los fundamentos básicos de la programación vectorial,
Más detallesOperaciones Aritméticas en Números con Signo
Operaciones Aritméticas en Números con Signo M. en C. Erika Vilches Parte 3 Multiplicación sin Signo Reglas básicas para multiplicar bits: 0x0 = 0 0x1 = 0 1x0 = 0 1x1 = 1 Ejemplos en números sin signo:
Más detallesPROGRAMA DE CURSO. Horas Docencia Horas de Trabajo Horas de Cátedra Docentes 6 10 1,5 1.5 7
PROGRAMA DE CURSO Código Nombre CC5320 Programación Consciente de la Arquitectura Nombre en Inglés Awareness of architecture in programming SCT Unidades Horas Docencia Horas de Trabajo Horas de Cátedra
Más detallesClase 02: Representación de datos
Arquitectura de Computadores y laboratorio Clase 02: Representación de datos Departamento de Ingeniería de Sistemas Universidad de Antioquia 2015-2 Contenido 1 2 Representación de la Información Y sistemas
Más detallesEs el conjunto de programas y procedimientos ejecutados en un computador, necesarios para hacer posible la realización de una tarea específica.
Introducción a la tecnología informática 1- EL SISTEMA DE CÓMPUTO Un sistema de cómputo es un conjunto de elementos físicos y electrónicos (Hardware), los cuales funcionan ordenadamente bajo el control
Más detallesTema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática
Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción
Más detallesUnidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)
Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA... 1 1. Representación interna de datos.... 1 1.2. Sistemas de numeración.... 2 1.3. Aritmética binaria...
Más detallesProgramación de Sistemas
Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia
Más detallesDISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.
DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar
Más detallesArquitecturas vectoriales, SIMD y extensiones multimedia
Arquitecturas vectoriales, SIMD y extensiones multimedia William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo. Andrew S. Tanenbaum, Organización
Más detallesDiseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE
LENGUAJES DE DESCRIPCIÓN DE HARDWARE METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS Descripción verbal Tablas de verdad Diagrama esquemático Expresiones del álgebra booleana Diagrama de tiempos Lenguajes de
Más detalles2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.
2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos. Objetivos: - Reducir el número de bits para especificar un operando en memoria.
Más detalles1 Estructura básica de un programa C++
Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesTEMA 4. Unidades Funcionales del Computador
TEMA 4 Unidades Funcionales del Computador Álvarez, S., Bravo, S., Departamento de Informática y automática Universidad de Salamanca Introducción El elemento físico, electrónico o hardware de un sistema
Más detallesTema: Historia de los Microprocesadores
Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Historia de los Microprocesadores 1 Contenidos La década de los
Más detallesApuntes de Microcontroladores (Repaso de temas previos)
Apuntes de Microcontroladores (Repaso de temas previos) Por M. C. Miguelangel Fraga Aguilar Enero 2015 Representaciones numéricas En estos apuntes se usara el posfijo b para denotar un número escrito en
Más detalles>> 10.5 + 3.1 % suma de dos números reales, el resultado se asigna a ans
Universidad de Concepción Facultad de Ciencias Físicas y Matemáticas Departamento de Ingeniería Matemática Cálculo Numérico (521230) Laboratorio 1: Introducción al Matlab Matlab es una abreviatura para
Más detallesArrays y Cadenas en C
Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y
Más detallesBuceando en los MCUs Freescale...
COMENTARIO TÉCNICO Buceando en los MCUs Freescale... Por Ing. Daniel Di Lella Dedicated Field Application Engineer EDUDEVICES www.edudevices.com.ar dilella@arnet.com.ar Matemática de Punto Flotante Por
Más detallesUNA NUEVA GENERACIÓN: HÍBRIDOS CPU/GPU. Microprocesadores para Comunicaciones. Paloma Monzón Rodríguez 42217126M
UNA NUEVA GENERACIÓN: HÍBRIDOS CPU/GPU Microprocesadores para Comunicaciones 2010 Paloma Monzón Rodríguez 42217126M Índice 1. Introducción... 3 2. Unidad Central de Procesamiento (CPU)... 4 Arquitectura
Más detallesUnidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)
Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.
Más detallesArquitectura de Computadoras. Clase 5 Posibles soluciones a atascos
Arquitectura de Computadoras Clase 5 Posibles soluciones a atascos Ejemplo de segmentación Notas de Clase 5 2 Atascos de un cauce (stall) Situaciones que impiden a la siguiente instrucción que se ejecute
Más detallesSCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es
SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática
Más detallesby Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad
Más detallesTrabajo Práctico Nº 1 SISTEMAS DE NUMERACION
Trabajo Práctico Nº 1 SISTEMAS DE NUMERACION 66.70 Estructura del Computador OBJETIVOS: Elementos que definen un sistema numérico. Conversiones entre sistemas. Diferentes formas de representar números
Más detallesTema 6. Gestión de la memoria
Tema 6. Índice Introducción Compartición de memoria Memoria virtual Soporte en los procesadores: la MMU en Linux en Windows NT/2000 1 Tema 6. Introducción Necesidad de la gestión de la memoria Requisitos
Más detallesPara ello debemos ingresar al índice del curso y seleccionar recorrido por el curso, tal como se muestra en la siguiente diapositiva:
1. CONOCIENDO LA INTERFAZ GRAFICA DE USUSRIO. Cada aprendiz debe relacionarse con la interfaz de usuario de CCNA Exploration, identificando las diferentes partes que permiten navegar por los diferentes
Más detallesSOLUCIÓN: a) Signo y magnitud:
1. Resolver las siguientes conversiones razonando los pasos seguidos (total 3 a. Dado el número 18525 expresado en decimal, calcular su representación numérica en signo y magnitud, en complemento a 2 y
Más detallesGestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).
CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de
Más detallesTema 11: Sistemas combinacionales
Tema 11: Sistemas combinacionales Objetivo: Introducción Generador Comprobador de paridad Comparadores Semisumador (HA) Sumador Completo (FA) Expansión de sumadores Sumador paralelo con arrastre serie
Más detallesTEMA 1 Representación de la información
TEMA 1 Representación de la información Tema 1: Representación de la información. Aritmética y Representación binaria 1) Introducción BB1, Cap 2, Ap: 2.1, 2.2.1 2) Sistemas binario-octal-hexadecimal BB1,
Más detallesARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Más detallesPONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ DISEÑO E IMPLEMETACIÓN DEL FILTRO MEDIANO DE DOS DIMENSIONES PARA ARQUITECTURAS SIMD
PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ FACULTAD DE CIENCIAS E INGENIERÍA DISEÑO E IMPLEMETACIÓN DEL FILTRO MEDIANO DE DOS DIMENSIONES PARA ARQUITECTURAS SIMD Tesis pata optar el Título de Ingeniero Electrónico,
Más detallesCARRERA TITULO DEL TRABAJO CURSO
CARRERA Ingeniería Informática TITULO DEL TRABAJO TOGAF CURSO Tópicos de Ingeniería del Software CÉSAR ESTRADA CONDORI MAYRA GOMEZ QUEVEDO LUIS MUǸOS ESCAPA ALAN A. ROJAS MARROQUIN SEMESTRE IX 2010 Los
Más detallesSistemas Operativos. Sesión 5: Protocolos de enrutamiento vector distancia
Sistemas Operativos Sesión 5: Protocolos de enrutamiento vector distancia Contextualización Los protocolos de información de enrutamiento tienen la función de determinar cuál es la ruta adecuada que deben
Más detallesNo se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.
RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este
Más detallesRepresentación de números enteros: el convenio signo y magnitud
Representación de números enteros: el convenio signo y magnitud Apellidos, nombre Martí Campoy, Antonio (amarti@disca.upv.es) Departamento Centro Informàtica de Sistemes i Computadors Escola Tècnica Superior
Más detallesArquitecturas DSP. Phil Lapsley, Jeff Bier, Amit Shoham, Edward A. Lee DSP Processor Fundamentals. Architectures and Features IEEE Press 1997
Arquitecturas DSP Phil Lapsley, Jeff Bier, Amit Shoham, Edward A. Lee DSP Processor Fundamentals. Architectures and Features IEEE Press 1997 Arquitecturas DSP Sistemas de procesamiento de señales Transductor
Más detallesESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES
Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Estructura de un computador: conceptos básicos Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa 1. Introducción 2. Elementos
Más detallesEntorno de Ejecución del Procesador Intel Pentium
Arquitectura de Ordenadores Arquitectura del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Entorno de Ejecución del Procesador
Más detallesPRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato Contenido Introducción...1 Dato...1 Valor...1 Tipo de Dato...2 Tipo Abstracto
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 5. Cómo declaramos una variable en Lenguaje C? En C siempre se deben declarar las variables.
Más detallesRepaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y
Más detallesControl Digital en PC con MS-DOS
Control Digital en PC con MS-DOS Abel Alberto Cuadrado Vega 19 de abril de 2006 1. Introducción Un PC puede ser utilizado para realizar un sistema de control digital. Para ello necesita lo siguiente: tarjeta
Más detallesIngeniería Superior de Informática
Ingeniería Superior de Informática Asignatura: Visión Artificial Curso 2007/08 Práctica nº 1 : Fundamentos de la Image Processing Toolbox de MATLAB 1. BREVES DEFINICIONES... 1 2. IMÁGENES EN MATLAB Y LA
Más detallesContenido. Capítulo 1. Introducción a lenguaje C 1
Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje
Más detallesTema 3 Elementos básicos de programación
Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid nati@it.uc3m.es Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender
Más detallesUNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse
Más detallesGuía N 1: Fundamentos básicos(i)
1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,
Más detallesSeminario Universitario Material para estudiantes. Física. Unidad 2. Vectores en el plano. Lic. Fabiana Prodanoff
Seminario Universitario Material para estudiantes Física Unidad 2. Vectores en el plano Lic. Fabiana Prodanoff CONTENIDOS Vectores en el plano. Operaciones con vectores. Suma y producto por un número escalar.
Más detallesUniversidad Central de Bayamón Colegio de Desarrollo Empresarial y Tecnología
Universidad Central de Bayamón Colegio de Desarrollo Empresarial y Tecnología Número de Estudiante: Fecha: Nombre: Examen Parcial #1 Prof. Carlos Rodríguez Sánchez REDES 235 Parte I- Selección Múltiple.
Más detallesGRADO EN INGENIERÍA INFORMÁTICA CURSO 2009/2010. Asignatura: ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I Código: IIN113
GRADO EN INGENIERÍA INFORMÁTICA CURSO 2009/2010 Asignatura: ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I Código: IIN113 Asignatura: 1IN Estructura y Tecnología de Computadores I Formación: Básica Créditos
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesINFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.
INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados
Más detallesGestion de archivos. Problemas al almacenar datos sólo en la memoria:
Gestion de archivos Problemas al almacenar datos sólo en la memoria: 1. El tamaño está limitado por el tamaño de la memoria qué pasa con aplicaciones que necesiten acceder a gran cantidad de información?
Más detalles